altcha
Version:
Privacy-first CAPTCHA widget, compliant with global regulations (GDPR/HIPAA/CCPA/LGDP/DPDPA/PIPL) and WCAG accessible. No tracking, self-verifying.
128 lines (127 loc) • 3.94 kB
JavaScript
const l = () => {
};
function b(e, r) {
return e != e ? r == r : e !== r || e !== null && typeof e == "object" || typeof e == "function";
}
let u = !1;
function h(e) {
var r = u;
try {
return u = !0, e();
} finally {
u = r;
}
}
function p(e, r, a) {
if (e == null)
return r(void 0), l;
const o = h(
() => e.subscribe(
r,
// @ts-expect-error
a
)
);
return o.unsubscribe ? () => o.unsubscribe() : o;
}
const n = [];
function v(e, r = l) {
let a = null;
const o = /* @__PURE__ */ new Set();
function s(t) {
if (b(e, t) && (e = t, a)) {
const c = !n.length;
for (const i of o)
i[1](), n.push(i, e);
if (c) {
for (let i = 0; i < n.length; i += 2)
n[i][0](n[i + 1]);
n.length = 0;
}
}
}
function d(t) {
s(t(
/** @type {T} */
e
));
}
function g(t, c = l) {
const i = [t, c];
return o.add(i), o.size === 1 && (a = r(s, d) || l), t(
/** @type {T} */
e
), () => {
o.delete(i), o.size === 0 && a && (a(), a = null);
};
}
return { set: s, update: d, subscribe: g };
}
function f(e) {
let r;
return p(e, (a) => r = a)(), r;
}
globalThis.altchaPlugins = globalThis.altchaPlugins || [];
globalThis.altchaI18n = globalThis.altchaI18n || {
get: (e) => f(globalThis.altchaI18n.store)[e],
set: (e, r) => {
Object.assign(f(globalThis.altchaI18n.store), {
[e]: r
}), globalThis.altchaI18n.store.set(f(globalThis.altchaI18n.store));
},
store: v({})
};
const V = {
ariaLinkLabel: "Visitez Altcha.org",
enterCode: "Entrez le code",
enterCodeAria: "Entrez le code que vous entendez. Appuyez sur la barre d'espace pour écouter l'audio.",
error: "Échec de la vérification. Réessayez plus tard.",
expired: "La vérification a expiré. Réessayez.",
verificationRequired: "Vérification requise !",
footer: 'Protégé par <a href="https://altcha.org/" target="_blank" aria-label="Visitez Altcha.org">ALTCHA</a>',
getAudioChallenge: "Obtenir un défi audio",
label: "Pas un robot",
loading: "Chargement...",
reload: "Recharger",
verify: "Vérifier",
verified: "Vérifié",
verifying: "Vérification en cours...",
waitAlert: "Vérification en cours... veuillez patienter."
};
globalThis.altchaI18n.set("fr-ca", V);
const A = {
ariaLinkLabel: "Visitar Altcha.org",
enterCode: "Ingresa el código",
enterCodeAria: "Ingresa el código que escuchas. Presiona Espacio para reproducir el audio.",
error: "Falló la verificación. Por favor vuelve a intentarlo más tarde.",
expired: "La verificación expiró. Por favor inténtalo de nuevo.",
verificationRequired: "¡Verificación requerida!",
footer: 'Protegido por <a href="https://altcha.org/" target="_blank" aria-label="Visitar Altcha.org">ALTCHA</a>',
getAudioChallenge: "Obtener un reto de audio",
label: "No soy un robot",
loading: "Cargando...",
reload: "Volver a cargar",
verify: "Verificar",
verified: "Verificado",
verifying: "Verificando...",
waitAlert: "Verificando... por favor espera."
};
globalThis.altchaI18n.set("es-419", A);
const C = {
ariaLinkLabel: "Visitar Altcha.org",
enterCode: "Digite o código",
enterCodeAria: "Digite o código que você ouve. Pressione Espaço para reproduzir o áudio.",
error: "Falha na verificação. Por favor, tente novamente mais tarde.",
expired: "Verificação expirada. Por favor, tente novamente.",
verificationRequired: "Verificação necessária!",
footer: 'Protegido por <a href="https://altcha.org/" target="_blank" aria-label="Visitar Altcha.org">ALTCHA</a>',
getAudioChallenge: "Obter desafio de áudio",
label: "Eu não sou um robô",
loading: "Carregando...",
reload: "Recarregar",
verify: "Verificar",
verified: "Verificado",
verifying: "Verificando...",
waitAlert: "Verificando... por favor aguarde."
};
globalThis.altchaI18n.set("pt-br", C);