vendor: 3,547 bytes, lines 1-128
1const noop = () => { 2}; 3function safe_not_equal(a, b) { 4 return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function"; 5} 6function subscribe_to_store(store2, run, invalidate) { 7 if (store2 == null) { 8 run(void 0); 9 return noop; 10 } 11 const unsub = untrack( 12 () => store2.subscribe( 13 run, 14 // @ts-expect-error 15 invalidate 16 ) 17 ); 18 return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; 19} 20const subscriber_queue = []; 21function writable(value, start = noop) { 22 let stop = null; 23 const subscribers = /* @__PURE__ */ new Set(); 24 function set(new_value) { 25 if (safe_not_equal(value, new_value)) { 26 value = new_value; 27 if (stop) { 28 const run_queue = !subscriber_queue.length; 29 for (const subscriber of subscribers) { 30 subscriber[1](); 31 subscriber_queue.push(subscriber, value); 32 } 33 if (run_queue) { 34 for (let i = 0; i < subscriber_queue.length; i += 2) { 35 subscriber_queue[i][0](subscriber_queue[i + 1]); 36 } 37 subscriber_queue.length = 0; 38 } 39 } 40 } 41 } 42 function update(fn) { 43 set(fn( 44 /** @type {T} */ 45 value 46 )); 47 } 48 function subscribe(run, invalidate = noop) { 49 const subscriber = [run, invalidate]; 50 subscribers.add(subscriber); 51 if (subscribers.size === 1) { 52 stop = start(set, update) || noop; 53 } 54 run( 55 /** @type {T} */ 56 value 57 ); 58 return () => { 59 subscribers.delete(subscriber); 60 if (subscribers.size === 0 && stop) { 61 stop(); 62 stop = null; 63 } 64 }; 65 } 66 return { set, update, subscribe }; 67} 68function get(store2) { 69 let value; 70 subscribe_to_store(store2, (_) => value = _)(); 71 return value; 72} 73let untracking = false; 74function untrack(fn) { 75 var previous_untracking = untracking; 76 try { 77 untracking = true; 78 return fn(); 79 } finally { 80 untracking = previous_untracking; 81 } 82} 83function store(defaultValue) { 84 const scope = { 85 get: (name) => { 86 return get(scope.store)[name]; 87 }, 88 set: (name, value) => { 89 if (typeof name === "string") { 90 Object.assign(get(scope.store), { 91 [name]: value 92 }); 93 } else { 94 Object.assign(get(scope.store), name); 95 } 96 scope.store.set(get(scope.store)); 97 }, 98 store: writable(defaultValue) 99 }; 100 return scope; 101} 102globalThis.$altcha = globalThis.$altcha || { 103 algorithms: /* @__PURE__ */ new Map(), 104 defaults: store({}), 105 i18n: store({}), 106 instances: /* @__PURE__ */ new Set(), 107 plugins: /* @__PURE__ */ new Set() 108}; 109const i18n = { 110 ariaLinkLabel: "Altcha (site officiel)", 111 enterCode: "Entrez le code", 112 enterCodeAria: "Entrez le code que vous entendez. Appuyez sur Espace pour écouter l'audio.", 113 error: "Ãchec de la vérification. Essayez à nouveau plus tard.", 114 expired: "La vérification a expiré. Essayez à nouveau.", 115 footer: 'Protégé par <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (site officiel)">ALTCHA</a>', 116 getAudioChallenge: "Obtenir un défi audio", 117 label: "Je ne suis pas un robot", 118 loading: "Chargement...", 119 reload: "Recharger", 120 verify: "Vérifier", 121 verificationRequired: "Vérification requise !", 122 verified: "Vérifié", 123 verifying: "Vérification en cours...", 124 waitAlert: "Vérification en cours... veuillez patienter.", 125 cancel: "Annuler", 126 enterCodeFromImage: "Pour continuer, veuillez entrer le code de l'image ci-dessous." 127}; 128globalThis.$altcha.i18n.set("fr-fr", i18n);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.