@zaptcha/widget 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/zaptcha-widget.js +227 -553
- package/package.json +1 -1
package/dist/zaptcha-widget.js
CHANGED
|
@@ -29,578 +29,256 @@
|
|
|
29
29
|
// Safe for Vite dep optimizer, Webpack, Rollup, plain <script type="module">.
|
|
30
30
|
|
|
31
31
|
/** @type {string} WASM JS glue — full source of zaptcha.js */
|
|
32
|
-
const _WASM_GLUE_SRC =
|
|
33
|
-
* <zero-captcha> — CAPTCHA Web Component with WASM Proof-of-Work
|
|
34
|
-
*
|
|
35
|
-
* The worker is bundled inline — only this one file needs to be distributed.
|
|
36
|
-
* WASM glue is fetched via fetch() and re-wrapped as a Blob URL so that
|
|
37
|
-
* bundlers (Vite, Webpack, etc.) never block the import with a MIME error.
|
|
38
|
-
*
|
|
39
|
-
* Attributes:
|
|
40
|
-
* base-url="https://api.example.com" required — backend base URL
|
|
41
|
-
* config-id="AAAA" required — base64url-encoded u32
|
|
42
|
-
* wasm-glue="./pkg/zaptcha.js" optional — override WASM glue path
|
|
43
|
-
* wasm-bin="./pkg/zaptcha_bg.wasm" optional — override WASM binary path
|
|
44
|
-
* worker-url="./worker.js" optional — use an external worker file
|
|
45
|
-
*
|
|
46
|
-
* CSS custom properties (set on a parent element to theme the widget):
|
|
47
|
-
* --zaptcha-bg background color
|
|
48
|
-
* --zaptcha-border border color
|
|
49
|
-
* --zaptcha-border-hover hover border color
|
|
50
|
-
* --zaptcha-border-focus focus ring color
|
|
51
|
-
* --zaptcha-text primary text color
|
|
52
|
-
* --zaptcha-text-muted muted / branding text color
|
|
53
|
-
* --zaptcha-accent spinner / interactive accent color
|
|
54
|
-
* --zaptcha-success checkmark fill color
|
|
55
|
-
* --zaptcha-shadow box shadow
|
|
56
|
-
* --zaptcha-radius border radius
|
|
57
|
-
*
|
|
58
|
-
* Events dispatched on host element:
|
|
59
|
-
* zaptcha-success -> detail: { token: string }
|
|
60
|
-
* zaptcha-fail -> detail: { reason: string }
|
|
61
|
-
* zaptcha-reset -> detail: {}
|
|
62
|
-
* zaptcha-progress -> detail: { index, nonce, total, pct }
|
|
63
|
-
*
|
|
64
|
-
* Public methods:
|
|
65
|
-
* el.reset()
|
|
66
|
-
*/
|
|
67
|
-
|
|
68
|
-
// ── Default WASM paths (relative to this module) ──────────────────────────
|
|
32
|
+
const _WASM_GLUE_SRC = `/* @ts-self-types="./zaptcha.d.ts" */
|
|
69
33
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
async function initWasm() {
|
|
87
|
-
if (wasmReady) return;
|
|
88
|
-
if (!wasmGlueUrl) throw new Error("WASM paths not provided");
|
|
89
|
-
const mod = await import(wasmGlueUrl);
|
|
90
|
-
if (typeof mod.default === "function") await mod.default(wasmBinUrl);
|
|
91
|
-
wasmModule = mod;
|
|
92
|
-
wasmReady = true;
|
|
34
|
+
/**
|
|
35
|
+
* @param {string} token
|
|
36
|
+
* @param {number} difficulty
|
|
37
|
+
* @param {number} challenge_count
|
|
38
|
+
* @param {number} salt_length
|
|
39
|
+
* @param {Function} progress_callback
|
|
40
|
+
* @returns {Uint32Array}
|
|
41
|
+
*/
|
|
42
|
+
export function solve_challenge(token, difficulty, challenge_count, salt_length, progress_callback) {
|
|
43
|
+
const ptr0 = passStringToWasm0(token, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
44
|
+
const len0 = WASM_VECTOR_LEN;
|
|
45
|
+
const ret = wasm.solve_challenge(ptr0, len0, difficulty, challenge_count, salt_length, progress_callback);
|
|
46
|
+
var v2 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
47
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
48
|
+
return v2;
|
|
93
49
|
}
|
|
94
50
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
51
|
+
function __wbg_get_imports() {
|
|
52
|
+
const import0 = {
|
|
53
|
+
__proto__: null,
|
|
54
|
+
__wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {
|
|
55
|
+
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
56
|
+
},
|
|
57
|
+
__wbg_call_dcc2662fa17a72cf: function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
|
58
|
+
const ret = arg0.call(arg1, arg2, arg3);
|
|
59
|
+
return ret;
|
|
60
|
+
}, arguments); },
|
|
61
|
+
__wbindgen_cast_0000000000000001: function(arg0) {
|
|
62
|
+
// Cast intrinsic for \`F64 -> Externref\`.
|
|
63
|
+
const ret = arg0;
|
|
64
|
+
return ret;
|
|
65
|
+
},
|
|
66
|
+
__wbindgen_init_externref_table: function() {
|
|
67
|
+
const table = wasm.__wbindgen_externrefs;
|
|
68
|
+
const offset = table.grow(4);
|
|
69
|
+
table.set(0, undefined);
|
|
70
|
+
table.set(offset + 0, undefined);
|
|
71
|
+
table.set(offset + 1, null);
|
|
72
|
+
table.set(offset + 2, true);
|
|
73
|
+
table.set(offset + 3, false);
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
__proto__: null,
|
|
78
|
+
"./zaptcha_bg.js": import0,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
106
81
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
} finally {
|
|
113
|
-
delete self.__zaptchaProgressCb;
|
|
114
|
-
}
|
|
82
|
+
function addToExternrefTable0(obj) {
|
|
83
|
+
const idx = wasm.__externref_table_alloc();
|
|
84
|
+
wasm.__wbindgen_externrefs.set(idx, obj);
|
|
85
|
+
return idx;
|
|
86
|
+
}
|
|
115
87
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
});
|
|
121
|
-
if (!redeemRes.ok) throw new Error("Redeem request failed: HTTP " + redeemRes.status);
|
|
88
|
+
function getArrayU32FromWasm0(ptr, len) {
|
|
89
|
+
ptr = ptr >>> 0;
|
|
90
|
+
return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
91
|
+
}
|
|
122
92
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
93
|
+
function getStringFromWasm0(ptr, len) {
|
|
94
|
+
ptr = ptr >>> 0;
|
|
95
|
+
return decodeText(ptr, len);
|
|
126
96
|
}
|
|
127
97
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
try {
|
|
133
|
-
await initWasm();
|
|
134
|
-
self.postMessage({ type: "ready" });
|
|
135
|
-
} catch (err) {
|
|
136
|
-
self.postMessage({ type: "fail", reason: err.message });
|
|
98
|
+
let cachedUint32ArrayMemory0 = null;
|
|
99
|
+
function getUint32ArrayMemory0() {
|
|
100
|
+
if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
|
|
101
|
+
cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
|
|
137
102
|
}
|
|
138
|
-
return;
|
|
139
|
-
|
|
103
|
+
return cachedUint32ArrayMemory0;
|
|
104
|
+
}
|
|
140
105
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
} catch (err) {
|
|
146
|
-
self.postMessage({ type: "fail", reason: err.message });
|
|
106
|
+
let cachedUint8ArrayMemory0 = null;
|
|
107
|
+
function getUint8ArrayMemory0() {
|
|
108
|
+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
109
|
+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
|
|
147
110
|
}
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
\`;
|
|
151
|
-
|
|
152
|
-
// ── Constructable stylesheet (one instance shared across all widgets) ─────
|
|
153
|
-
|
|
154
|
-
const _sheet = new CSSStyleSheet();
|
|
155
|
-
_sheet.replaceSync(\`
|
|
156
|
-
:host {
|
|
157
|
-
/*
|
|
158
|
-
* display:block + min-height guarantee the element occupies space before
|
|
159
|
-
* the custom element upgrade fires and before the first _applyState()
|
|
160
|
-
* call. Without this, frameworks like SolidJS / React render the host as
|
|
161
|
-
* inline with zero height.
|
|
162
|
-
*/
|
|
163
|
-
display: block;
|
|
164
|
-
min-height: 48px;
|
|
165
|
-
width: fit-content;
|
|
166
|
-
|
|
167
|
-
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
168
|
-
-webkit-font-smoothing: antialiased;
|
|
169
|
-
-moz-osx-font-smoothing: grayscale;
|
|
170
|
-
|
|
171
|
-
--zap-bg: var(--zaptcha-bg, #ffffff);
|
|
172
|
-
--zap-border: var(--zaptcha-border, #e5e7eb);
|
|
173
|
-
--zap-border-hover: var(--zaptcha-border-hover, #d1d5db);
|
|
174
|
-
--zap-border-focus: var(--zaptcha-border-focus, #4f46e5);
|
|
175
|
-
--zap-text: var(--zaptcha-text, #374151);
|
|
176
|
-
--zap-text-muted: var(--zaptcha-text-muted, #9ca3af);
|
|
177
|
-
--zap-accent: var(--zaptcha-accent, #4f46e5);
|
|
178
|
-
--zap-success: var(--zaptcha-success, #10b981);
|
|
179
|
-
--zap-shadow: var(--zaptcha-shadow, 0 2px 6px rgba(0,0,0,0.04));
|
|
180
|
-
--zap-radius: var(--zaptcha-radius, 8px);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
.widget {
|
|
184
|
-
background: var(--zap-bg);
|
|
185
|
-
border: 1px solid var(--zap-border);
|
|
186
|
-
border-radius: var(--zap-radius);
|
|
187
|
-
box-shadow: var(--zap-shadow);
|
|
188
|
-
width: 210px;
|
|
189
|
-
box-sizing: border-box;
|
|
190
|
-
transition: box-shadow 0.2s ease, border-color 0.2s ease;
|
|
191
|
-
}
|
|
192
|
-
.widget:hover {
|
|
193
|
-
box-shadow: 0 4px 12px rgba(0,0,0,0.06);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/* ── Row ── */
|
|
197
|
-
.row {
|
|
198
|
-
display: flex;
|
|
199
|
-
align-items: center;
|
|
200
|
-
gap: 10px;
|
|
201
|
-
padding: 0 12px;
|
|
202
|
-
height: 48px;
|
|
203
|
-
cursor: pointer;
|
|
204
|
-
user-select: none;
|
|
205
|
-
box-sizing: border-box;
|
|
206
|
-
border-radius: var(--zap-radius);
|
|
207
|
-
outline: none;
|
|
208
|
-
}
|
|
209
|
-
.row:focus-visible {
|
|
210
|
-
box-shadow: 0 0 0 2px var(--zap-bg), 0 0 0 4px var(--zap-border-focus);
|
|
211
|
-
}
|
|
212
|
-
.row[aria-checked="true"] {
|
|
213
|
-
cursor: default;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/* ── Checkbox shell ── */
|
|
217
|
-
.box {
|
|
218
|
-
width: 22px;
|
|
219
|
-
height: 22px;
|
|
220
|
-
flex-shrink: 0;
|
|
221
|
-
position: relative;
|
|
222
|
-
display: flex;
|
|
223
|
-
align-items: center;
|
|
224
|
-
justify-content: center;
|
|
225
|
-
}
|
|
226
|
-
.box-border {
|
|
227
|
-
position: absolute;
|
|
228
|
-
inset: 0;
|
|
229
|
-
border: 1.5px solid var(--zap-border);
|
|
230
|
-
border-radius: 4px;
|
|
231
|
-
background: var(--zap-bg);
|
|
232
|
-
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
233
|
-
}
|
|
234
|
-
.row:hover:not([aria-checked="true"]) .box-border {
|
|
235
|
-
border-color: var(--zap-border-hover);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/* ── State: done ── */
|
|
239
|
-
.box.done .box-border {
|
|
240
|
-
background: var(--zap-success);
|
|
241
|
-
border-color: var(--zap-success);
|
|
242
|
-
}
|
|
243
|
-
.box-tick { display: none; position: relative; z-index: 1; }
|
|
244
|
-
.box.done .box-tick { display: block; animation: zap-pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
|
|
245
|
-
|
|
246
|
-
@keyframes zap-pop {
|
|
247
|
-
0% { transform: scale(0.5); opacity: 0; }
|
|
248
|
-
100% { transform: scale(1); opacity: 1; }
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/* ── State: spinning ── */
|
|
252
|
-
.box-spinner { display: none; position: absolute; inset: 0; }
|
|
253
|
-
.box.spinning .box-border { border-color: transparent; background: transparent; }
|
|
254
|
-
.box.spinning .box-spinner {
|
|
255
|
-
display: flex;
|
|
256
|
-
align-items: center;
|
|
257
|
-
justify-content: center;
|
|
258
|
-
}
|
|
259
|
-
.box-spinner::after {
|
|
260
|
-
content: '';
|
|
261
|
-
display: block;
|
|
262
|
-
width: 18px;
|
|
263
|
-
height: 18px;
|
|
264
|
-
border: 2px solid var(--zap-border);
|
|
265
|
-
border-top-color: var(--zap-accent);
|
|
266
|
-
border-radius: 50%;
|
|
267
|
-
animation: zap-spin 0.6s linear infinite;
|
|
268
|
-
}
|
|
269
|
-
@keyframes zap-spin { to { transform: rotate(360deg); } }
|
|
270
|
-
|
|
271
|
-
/* ── Label ── */
|
|
272
|
-
.label {
|
|
273
|
-
color: var(--zap-text);
|
|
274
|
-
font-size: 13.5px;
|
|
275
|
-
font-weight: 500;
|
|
276
|
-
flex: 1;
|
|
277
|
-
white-space: nowrap;
|
|
278
|
-
overflow: hidden;
|
|
279
|
-
text-overflow: ellipsis;
|
|
280
|
-
transition: color 0.2s ease;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/* ── Branding ── */
|
|
284
|
-
.branding {
|
|
285
|
-
display: flex;
|
|
286
|
-
flex-direction: column;
|
|
287
|
-
align-items: flex-end;
|
|
288
|
-
justify-content: center;
|
|
289
|
-
flex-shrink: 0;
|
|
290
|
-
gap: 1px;
|
|
291
|
-
}
|
|
292
|
-
.branding strong {
|
|
293
|
-
font-size: 9px;
|
|
294
|
-
font-weight: 700;
|
|
295
|
-
letter-spacing: 0.05em;
|
|
296
|
-
text-transform: uppercase;
|
|
297
|
-
color: var(--zap-text-muted);
|
|
298
|
-
}
|
|
299
|
-
.branding a {
|
|
300
|
-
font-size: 9px;
|
|
301
|
-
color: var(--zap-text-muted);
|
|
302
|
-
text-decoration: none;
|
|
303
|
-
transition: color 0.2s;
|
|
304
|
-
}
|
|
305
|
-
.branding a:hover { color: var(--zap-text); }
|
|
306
|
-
\`);
|
|
307
|
-
|
|
308
|
-
// ── DOM template (parsed once, cloned per instance) ───────────────────────
|
|
309
|
-
|
|
310
|
-
const _template = document.createElement("template");
|
|
311
|
-
_template.innerHTML = \`
|
|
312
|
-
<div class="widget" part="widget">
|
|
313
|
-
<div class="row"
|
|
314
|
-
id="row"
|
|
315
|
-
tabindex="0"
|
|
316
|
-
role="checkbox"
|
|
317
|
-
aria-checked="false"
|
|
318
|
-
aria-label="I'm not a robot">
|
|
319
|
-
|
|
320
|
-
<div class="box" id="box" part="checkbox">
|
|
321
|
-
<div class="box-border"></div>
|
|
322
|
-
<div class="box-spinner"></div>
|
|
323
|
-
<svg class="box-tick" width="12" height="9" viewBox="0 0 12 9" fill="none" aria-hidden="true">
|
|
324
|
-
<polyline points="1.5,4.5 4.5,7.5 10.5,1.5"
|
|
325
|
-
stroke="white" stroke-width="2"
|
|
326
|
-
stroke-linecap="round" stroke-linejoin="round"/>
|
|
327
|
-
</svg>
|
|
328
|
-
</div>
|
|
329
|
-
|
|
330
|
-
<span class="label" id="label" part="label">I'm not a robot</span>
|
|
331
|
-
|
|
332
|
-
<div class="branding" part="branding">
|
|
333
|
-
<strong>Zaptcha</strong>
|
|
334
|
-
<a href="#" tabindex="-1">Privacy</a>
|
|
335
|
-
</div>
|
|
336
|
-
</div>
|
|
337
|
-
</div>
|
|
338
|
-
\`;
|
|
339
|
-
|
|
340
|
-
// ── Label map ─────────────────────────────────────────────────────────────
|
|
341
|
-
|
|
342
|
-
const LABELS = {
|
|
343
|
-
idle: "I'm not a robot",
|
|
344
|
-
solving: "Verifying\\u2026",
|
|
345
|
-
done: "Verified",
|
|
346
|
-
error: "I'm not a robot",
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
// ── Component ─────────────────────────────────────────────────────────────
|
|
350
|
-
|
|
351
|
-
class ZeroCaptcha extends HTMLElement {
|
|
352
|
-
|
|
353
|
-
static get observedAttributes() { return []; }
|
|
354
|
-
|
|
355
|
-
constructor() {
|
|
356
|
-
super();
|
|
357
|
-
|
|
358
|
-
this._shadow = this.attachShadow({ mode: "open" });
|
|
359
|
-
|
|
360
|
-
// Shared stylesheet — no duplication across instances
|
|
361
|
-
this._shadow.adoptedStyleSheets = [_sheet];
|
|
362
|
-
|
|
363
|
-
// Build DOM once from template
|
|
364
|
-
this._shadow.appendChild(_template.content.cloneNode(true));
|
|
365
|
-
|
|
366
|
-
// Cache mutable nodes
|
|
367
|
-
this._rowEl = this._shadow.getElementById("row");
|
|
368
|
-
this._boxEl = this._shadow.getElementById("box");
|
|
369
|
-
this._labelEl = this._shadow.getElementById("label");
|
|
370
|
-
|
|
371
|
-
this._worker = null;
|
|
372
|
-
this._blobUrl = null; // worker blob URL
|
|
373
|
-
this._glueBlobUrl = null; // WASM glue re-wrapped blob URL
|
|
374
|
-
|
|
375
|
-
/** @type {"idle"|"solving"|"done"|"error"} */
|
|
376
|
-
this._state = "idle";
|
|
377
|
-
this._progress = { done: 0, total: 1 };
|
|
378
|
-
|
|
379
|
-
this._bindEvents();
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
connectedCallback() { this._startWorker(); }
|
|
383
|
-
disconnectedCallback() { this._destroyWorker(); }
|
|
384
|
-
|
|
385
|
-
// ── Public API ───────────────────────────────────────────────────────────
|
|
386
|
-
|
|
387
|
-
reset() {
|
|
388
|
-
this._destroyWorker();
|
|
389
|
-
this._state = "idle";
|
|
390
|
-
this._progress = { done: 0, total: 1 };
|
|
391
|
-
this._applyState();
|
|
392
|
-
this._startWorker();
|
|
393
|
-
this.dispatchEvent(new CustomEvent("zaptcha-reset", { bubbles: true, detail: {} }));
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
// ── State → DOM (no innerHTML, only classList / attributes) ─────────────
|
|
397
|
-
|
|
398
|
-
_applyState() {
|
|
399
|
-
const { _rowEl: row, _boxEl: box, _labelEl: label } = this;
|
|
400
|
-
const s = this._state;
|
|
401
|
-
const isDone = s === "done";
|
|
402
|
-
const isSpin = s === "solving";
|
|
403
|
-
|
|
404
|
-
row.setAttribute("aria-checked", String(isDone));
|
|
405
|
-
row.setAttribute("aria-label", LABELS[s] ?? LABELS.idle);
|
|
406
|
-
row.tabIndex = isDone ? -1 : 0;
|
|
407
|
-
|
|
408
|
-
box.classList.toggle("spinning", isSpin);
|
|
409
|
-
box.classList.toggle("done", isDone);
|
|
410
|
-
|
|
411
|
-
label.textContent = LABELS[s] ?? LABELS.idle;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
// ── Worker lifecycle ─────────────────────────────────────────────────────
|
|
111
|
+
return cachedUint8ArrayMemory0;
|
|
112
|
+
}
|
|
415
113
|
|
|
416
|
-
|
|
114
|
+
function handleError(f, args) {
|
|
417
115
|
try {
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
} else {
|
|
423
|
-
const blob = new Blob([WORKER_SRC], { type: "text/javascript" });
|
|
424
|
-
this._blobUrl = URL.createObjectURL(blob);
|
|
425
|
-
this._worker = new Worker(this._blobUrl, { type: "module" });
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
this._worker.onmessage = (e) => this._onWorkerMsg(e.data);
|
|
429
|
-
this._worker.onerror = (e) => this._onFail(\`Worker error: \${e.message}\`);
|
|
430
|
-
|
|
431
|
-
const rawGlue = this.getAttribute("wasm-glue") ?? _wasmGlue;
|
|
432
|
-
const wasmBin = this.getAttribute("wasm-bin") ?? _wasmBin;
|
|
433
|
-
|
|
434
|
-
// ── MIME fix ────────────────────────────────────────────────────────
|
|
435
|
-
//
|
|
436
|
-
// Bundlers (Vite, etc.) may serve .js files with an empty or wrong
|
|
437
|
-
// MIME type when accessed via import() inside a Worker. fetch() has
|
|
438
|
-
// no such restriction, so we:
|
|
439
|
-
// 1. Fetch the glue script as plain text (MIME irrelevant)
|
|
440
|
-
// 2. Re-wrap it in a Blob with an explicit application/javascript type
|
|
441
|
-
// 3. Pass the blob: URL to the worker — browsers always accept these
|
|
442
|
-
//
|
|
443
|
-
const glueText = await fetch(rawGlue).then((r) => {
|
|
444
|
-
if (!r.ok) throw new Error(\`Failed to fetch WASM glue: HTTP \${r.status}\`);
|
|
445
|
-
return r.text();
|
|
446
|
-
});
|
|
447
|
-
const glueBlob = new Blob([glueText], { type: "application/javascript" });
|
|
448
|
-
this._glueBlobUrl = URL.createObjectURL(glueBlob);
|
|
449
|
-
|
|
450
|
-
this._worker.postMessage({ type: "init", wasmGlue: this._glueBlobUrl, wasmBin });
|
|
451
|
-
|
|
452
|
-
} catch (err) {
|
|
453
|
-
this._worker = null;
|
|
454
|
-
this._onFail(\`Worker init failed: \${err.message}\`);
|
|
116
|
+
return f.apply(this, args);
|
|
117
|
+
} catch (e) {
|
|
118
|
+
const idx = addToExternrefTable0(e);
|
|
119
|
+
wasm.__wbindgen_exn_store(idx);
|
|
455
120
|
}
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
_destroyWorker() {
|
|
459
|
-
this._worker?.terminate();
|
|
460
|
-
this._worker = null;
|
|
121
|
+
}
|
|
461
122
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
123
|
+
function passStringToWasm0(arg, malloc, realloc) {
|
|
124
|
+
if (realloc === undefined) {
|
|
125
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
126
|
+
const ptr = malloc(buf.length, 1) >>> 0;
|
|
127
|
+
getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
|
|
128
|
+
WASM_VECTOR_LEN = buf.length;
|
|
129
|
+
return ptr;
|
|
465
130
|
}
|
|
466
|
-
if (this._glueBlobUrl) {
|
|
467
|
-
URL.revokeObjectURL(this._glueBlobUrl);
|
|
468
|
-
this._glueBlobUrl = null;
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
131
|
|
|
472
|
-
|
|
132
|
+
let len = arg.length;
|
|
133
|
+
let ptr = malloc(len, 1) >>> 0;
|
|
473
134
|
|
|
474
|
-
|
|
475
|
-
switch (msg.type) {
|
|
476
|
-
|
|
477
|
-
case "ready":
|
|
478
|
-
// WASM initialised — nothing to show yet, waiting for user click
|
|
479
|
-
break;
|
|
135
|
+
const mem = getUint8ArrayMemory0();
|
|
480
136
|
|
|
481
|
-
|
|
482
|
-
this._progress.done = (msg.index ?? 0) + 1;
|
|
483
|
-
this._progress.total = msg.total ?? 1;
|
|
484
|
-
this.dispatchEvent(new CustomEvent("zaptcha-progress", {
|
|
485
|
-
bubbles: true,
|
|
486
|
-
composed: true,
|
|
487
|
-
detail: {
|
|
488
|
-
index: msg.index,
|
|
489
|
-
nonce: msg.nonce,
|
|
490
|
-
total: msg.total,
|
|
491
|
-
pct: Math.round(((msg.index ?? 0) + 1) / (msg.total ?? 1) * 100),
|
|
492
|
-
},
|
|
493
|
-
}));
|
|
494
|
-
break;
|
|
137
|
+
let offset = 0;
|
|
495
138
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
139
|
+
for (; offset < len; offset++) {
|
|
140
|
+
const code = arg.charCodeAt(offset);
|
|
141
|
+
if (code > 0x7F) break;
|
|
142
|
+
mem[ptr + offset] = code;
|
|
143
|
+
}
|
|
144
|
+
if (offset !== len) {
|
|
145
|
+
if (offset !== 0) {
|
|
146
|
+
arg = arg.slice(offset);
|
|
147
|
+
}
|
|
148
|
+
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
|
|
149
|
+
const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
|
|
150
|
+
const ret = cachedTextEncoder.encodeInto(arg, view);
|
|
151
|
+
|
|
152
|
+
offset += ret.written;
|
|
153
|
+
ptr = realloc(ptr, len, offset, 1) >>> 0;
|
|
509
154
|
}
|
|
510
|
-
}
|
|
511
155
|
|
|
512
|
-
|
|
156
|
+
WASM_VECTOR_LEN = offset;
|
|
157
|
+
return ptr;
|
|
158
|
+
}
|
|
513
159
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
160
|
+
let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
161
|
+
cachedTextDecoder.decode();
|
|
162
|
+
const MAX_SAFARI_DECODE_BYTES = 2146435072;
|
|
163
|
+
let numBytesDecoded = 0;
|
|
164
|
+
function decodeText(ptr, len) {
|
|
165
|
+
numBytesDecoded += len;
|
|
166
|
+
if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
|
|
167
|
+
cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
168
|
+
cachedTextDecoder.decode();
|
|
169
|
+
numBytesDecoded = len;
|
|
170
|
+
}
|
|
171
|
+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
172
|
+
}
|
|
523
173
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
174
|
+
const cachedTextEncoder = new TextEncoder();
|
|
175
|
+
|
|
176
|
+
if (!('encodeInto' in cachedTextEncoder)) {
|
|
177
|
+
cachedTextEncoder.encodeInto = function (arg, view) {
|
|
178
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
179
|
+
view.set(buf);
|
|
180
|
+
return {
|
|
181
|
+
read: arg.length,
|
|
182
|
+
written: buf.length
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
}
|
|
528
186
|
|
|
529
|
-
|
|
187
|
+
let WASM_VECTOR_LEN = 0;
|
|
530
188
|
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
189
|
+
let wasmModule, wasm;
|
|
190
|
+
function __wbg_finalize_init(instance, module) {
|
|
191
|
+
wasm = instance.exports;
|
|
192
|
+
wasmModule = module;
|
|
193
|
+
cachedUint32ArrayMemory0 = null;
|
|
194
|
+
cachedUint8ArrayMemory0 = null;
|
|
195
|
+
wasm.__wbindgen_start();
|
|
196
|
+
return wasm;
|
|
197
|
+
}
|
|
535
198
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
199
|
+
async function __wbg_load(module, imports) {
|
|
200
|
+
if (typeof Response === 'function' && module instanceof Response) {
|
|
201
|
+
if (typeof WebAssembly.instantiateStreaming === 'function') {
|
|
202
|
+
try {
|
|
203
|
+
return await WebAssembly.instantiateStreaming(module, imports);
|
|
204
|
+
} catch (e) {
|
|
205
|
+
const validResponse = module.ok && expectedResponseType(module.type);
|
|
206
|
+
|
|
207
|
+
if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
|
|
208
|
+
console.warn("\`WebAssembly.instantiateStreaming\` failed because your server does not serve Wasm with \`application/wasm\` MIME type. Falling back to \`WebAssembly.instantiate\` which is slower. Original error:\\n", e);
|
|
209
|
+
|
|
210
|
+
} else { throw e; }
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
const bytes = await module.arrayBuffer();
|
|
215
|
+
return await WebAssembly.instantiate(bytes, imports);
|
|
216
|
+
} else {
|
|
217
|
+
const instance = await WebAssembly.instantiate(module, imports);
|
|
218
|
+
|
|
219
|
+
if (instance instanceof WebAssembly.Instance) {
|
|
220
|
+
return { instance, module };
|
|
221
|
+
} else {
|
|
222
|
+
return instance;
|
|
223
|
+
}
|
|
539
224
|
}
|
|
540
225
|
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
return;
|
|
226
|
+
function expectedResponseType(type) {
|
|
227
|
+
switch (type) {
|
|
228
|
+
case 'basic': case 'cors': case 'default': return true;
|
|
229
|
+
}
|
|
230
|
+
return false;
|
|
547
231
|
}
|
|
232
|
+
}
|
|
548
233
|
|
|
549
|
-
|
|
550
|
-
|
|
234
|
+
function initSync(module) {
|
|
235
|
+
if (wasm !== undefined) return wasm;
|
|
551
236
|
|
|
552
|
-
_onFail(reason) {
|
|
553
|
-
this._state = "error";
|
|
554
|
-
this._applyState();
|
|
555
237
|
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
238
|
+
if (module !== undefined) {
|
|
239
|
+
if (Object.getPrototypeOf(module) === Object.prototype) {
|
|
240
|
+
({module} = module)
|
|
241
|
+
} else {
|
|
242
|
+
console.warn('using deprecated parameters for \`initSync()\`; pass a single object instead')
|
|
243
|
+
}
|
|
244
|
+
}
|
|
561
245
|
|
|
562
|
-
|
|
563
|
-
|
|
246
|
+
const imports = __wbg_get_imports();
|
|
247
|
+
if (!(module instanceof WebAssembly.Module)) {
|
|
248
|
+
module = new WebAssembly.Module(module);
|
|
249
|
+
}
|
|
250
|
+
const instance = new WebAssembly.Instance(module, imports);
|
|
251
|
+
return __wbg_finalize_init(instance, module);
|
|
564
252
|
}
|
|
565
253
|
|
|
566
|
-
|
|
254
|
+
async function __wbg_init(module_or_path) {
|
|
255
|
+
if (wasm !== undefined) return wasm;
|
|
567
256
|
|
|
568
|
-
export default ZeroCaptcha;
|
|
569
|
-
export { ZeroCaptcha };
|
|
570
257
|
|
|
571
|
-
|
|
258
|
+
if (module_or_path !== undefined) {
|
|
259
|
+
if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
|
|
260
|
+
({module_or_path} = module_or_path)
|
|
261
|
+
} else {
|
|
262
|
+
console.warn('using deprecated parameters for the initialization function; pass a single object instead')
|
|
263
|
+
}
|
|
264
|
+
}
|
|
572
265
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
266
|
+
if (module_or_path === undefined) {
|
|
267
|
+
module_or_path = new URL('zaptcha_bg.wasm', import.meta.url);
|
|
268
|
+
}
|
|
269
|
+
const imports = __wbg_get_imports();
|
|
577
270
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
if (e.data?.type === "ready" || e.data?.type === "fail") {
|
|
581
|
-
URL.revokeObjectURL(blobUrl);
|
|
582
|
-
worker.removeEventListener("message", onReady);
|
|
271
|
+
if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {
|
|
272
|
+
module_or_path = fetch(module_or_path);
|
|
583
273
|
}
|
|
584
|
-
});
|
|
585
274
|
|
|
586
|
-
|
|
587
|
-
const glueText = await fetch(wasmGlue).then((r) => {
|
|
588
|
-
if (!r.ok) throw new Error(\`Failed to fetch WASM glue: HTTP \${r.status}\`);
|
|
589
|
-
return r.text();
|
|
590
|
-
});
|
|
591
|
-
const glueBlob = new Blob([glueText], { type: "application/javascript" });
|
|
592
|
-
const glueBlobUrl = URL.createObjectURL(glueBlob);
|
|
275
|
+
const { instance, module } = await __wbg_load(await module_or_path, imports);
|
|
593
276
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
URL.revokeObjectURL(glueBlobUrl);
|
|
597
|
-
worker.removeEventListener("message", onGlueCleanup);
|
|
598
|
-
}
|
|
599
|
-
});
|
|
277
|
+
return __wbg_finalize_init(instance, module);
|
|
278
|
+
}
|
|
600
279
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
}`;
|
|
280
|
+
export { initSync, __wbg_init as default };
|
|
281
|
+
`;
|
|
604
282
|
|
|
605
283
|
/** @type {string} WASM binary — base64-encoded zaptcha_bg.wasm */
|
|
606
284
|
const _WASM_BIN_B64 = "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QfCYwABB6JjAADYCAEGEmcAAQfiYwAA2AgBB+JjAAEHwmMAANgIAQYyZwABBgJnAADYCAEGAmcAAQfiYwAA2AgBBlJnAAEGImcAANgIAQYiZwABBgJnAADYCAEGcmcAAQZCZwAA2AgBBkJnAAEGImcAANgIAQaSZwABBmJnAADYCAEGYmcAAQZCZwAA2AgBBrJnAAEGgmcAANgIAQaCZwABBmJnAADYCAEHkmMAAQQA2AgBBtJnAAEGomcAANgIAQaiZwABBoJnAADYCAEGwmcAAQaiZwAA2AgBBvJnAAEGwmcAANgIAQbiZwABBsJnAADYCAEHEmcAAQbiZwAA2AgBBwJnAAEG4mcAANgIAQcyZwABBwJnAADYCAEHImcAAQcCZwAA2AgBB1JnAAEHImcAANgIAQdCZwABByJnAADYCAEHcmcAAQdCZwAA2AgBB2JnAAEHQmcAANgIAQeSZwABB2JnAADYCAEHgmcAAQdiZwAA2AgBB7JnAAEHgmcAANgIAQeiZwABB4JnAADYCAEH0mcAAQeiZwAA2AgBB/JnAAEHwmcAANgIAQfCZwABB6JnAADYCAEGEmsAAQfiZwAA2AgBB+JnAAEHwmcAANgIAQYyawABBgJrAADYCAEGAmsAAQfiZwAA2AgBBlJrAAEGImsAANgIAQYiawABBgJrAADYCAEGcmsAAQZCawAA2AgBBkJrAAEGImsAANgIAQaSawABBmJrAADYCAEGYmsAAQZCawAA2AgBBrJrAAEGgmsAANgIAQaCawABBmJrAADYCAEG0msAAQaiawAA2AgBBqJrAAEGgmsAANgIAQbyawABBsJrAADYCAEGwmsAAQaiawAA2AgBBxJrAAEG4msAANgIAQbiawABBsJrAADYCAEHMmsAAQcCawAA2AgBBwJrAAEG4msAANgIAQdSawABByJrAADYCAEHImsAAQcCawAA2AgBB3JrAAEHQmsAANgIAQdCawABByJrAADYCAEHkmsAAQdiawAA2AgBB2JrAAEHQmsAANgIAQeyawABB4JrAADYCAEHgmsAAQdiawAA2AgBBhJvAACACNgIAQeiawABB4JrAADYCAEH8msAAIAFBKGsiADYCACACIABBAXI2AgQgACACakEoNgIEQZCbwABBgICAATYCAAwICyACIARNIAMgBEtyDQAgACgCDEUNAwtB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aiEAIAEgA2siAUGAm8AAKAIARgRAIAIoAgRBA3FBA0cNAUH4msAAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCACIAA2AgAPCyABIAMQGQsCQAJAAkACQAJAAkACQCACKAIEIgNBAnFFBEAgAkGEm8AAKAIARg0CIAJBgJvAACgCAEYNAyACIANBeHEiAhAZIAEgACACaiIAQQFyNgIEIAAgAWogADYCACABQYCbwAAoAgBHDQFB+JrAACAANgIADwsgAiADQX5xNgIEIAEgAEEBcjYCBCAAIAFqIAA2AgALIABBgAJJDQJBHyECIAFCADcCECAAQf///wdNBEAgAEEmIABBCHZnIgJrdkEBcSACQQF0a0E+aiECCyABIAI2AhwgAkECdEHYl8AAaiEDQQEgAnQiBEH0msAAKAIAcQ0DIAMgATYCACABIAM2AhggASABNgIMIAEgATYCCEH0msAAQfSawAAoAgAgBHI2AgAMBAtBhJvAACABNgIAQfyawABB/JrAACgCACAAaiIANgIAIAEgAEEBcjYCBEGAm8AAKAIAIAFGBEBB+JrAAEEANgIAQYCbwABBADYCAAsgAEGQm8AAKAIAIgJNDQVBhJvAACgCACIARQ0FQfyawAAoAgAiA0EpSQ0EQdiYwAAhAQNAIAAgASgCACIFTwRAIAAgBSABKAIEakkNBgsgASgCCCEBDAALAAtBgJvAACABNgIAQfiawABB+JrAACgCACAAaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAPCwJAQfCawAAoAgAiAkEBIABBA3Z0IgNxRQRAQfCawAAgAiADcjYCACAAQfgBcUHomMAAaiIAIQIMAQsgAEH4AXEiAEHomMAAaiECIABB8JjAAGooAgAhAAsgAiABNgIIIAAgATYCDCABIAI2AgwgASAANgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQZibwABBmJvAACgC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AyACQRBqEBhFDQFBAQwCC0EBIAEoAgBBlpHAAEECIAEoAgQoAgwRAAANARogAyABEBgMAQsgAigCEEGZkcAAQQIgAigCFCgCDBEAAAshACADQQFqIQMgBEEBayIEDQALC0EBIQMgAEUEQCABKAIAQcSRwABBASABKAIEKAIMEQAAIQMLIAJBIGokACADC+cCAQV/AkAgAUHN/3tBECAAIABBEE0bIgBrTw0AIABBECABQQtqQXhxIAFBC0kbIgRqQQxqEAciAkUNACACQQhrIQECQCAAQQFrIgMgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAIgA2pBACAAa3FBCGsiAiAAQQAgAiABa0EQTRtqIgAgAWsiAmshAyAGQQNxBEAgACADIAAoAgRBAXFyQQJyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACABIAJqIgMgAygCBEEBcjYCBCABIAIQDgwBCyABKAIAIQEgACADNgIEIAAgASACajYCAAsCQCAAKAIEIgFBA3FFDQAgAUF4cSICIARBEGpNDQAgACAEIAFBAXFyQQJyNgIEIAAgBGoiASACIARrIgRBA3I2AgQgACACaiICIAIoAgRBAXI2AgQgASAEEA4LIABBCGohAwsgAwvgAgEDfyMAQRBrIgMkAAJ/AkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENAUEDIQIgAC0AACIAIQQgAEEKTwRAIAMgACAAQeQAbiIEQeQAbGtB/wFxQQF0LwG6lEA7AAxBASECC0EAIAAgBBtFBEAgAkEBayICIANBC2pqIARBAXQtALuUQDoAAAsgAUEBQQAgA0ELaiACakEDIAJrEBIMAgsgAC0AACECQQMhAANAIAAgA2pBB2ogAkEPcUH0kMAAai0AADoAACACQf8BcSIEQQR2IQIgAEEBayEAIARBD0sNAAsgAUGEkcAAQQIgACADakEIakEDIABrEBIMAQsgAC0AACECQQMhAANAIAAgA2pBDGogAkEPcUGGkcAAai0AADoAACACQf8BcSIEQQR2IQIgAEEBayEAIARBD0sNAAsgAUGEkcAAQQIgACADakENakEDIABrEBILIANBEGokAAuCAwEEfyAAKAIMIQICQAJAAkAgAUGAAk8EQCAAKAIYIQMCQAJAIAAgAkYE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IAAgAUEBdEEBciACED0ACxgAIAEoAgAgASgCBCAAKAIAIAAoAgQQEQsWAgFvAX8gABADIQEQHCICIAEmASACCxQAIAAoAgAgASAAKAIEKAIMEQEACxAAIAEgACgCACAAKAIEEAsLFgBBtJvAACAANgIAQbCbwABBAToAAAsRAEGji8AAQSNBtIvAABA9AAsPACAAQaCRwAAgASACEBELDQAgAUGelMAAQRgQCwsMACAAIAEpAgA3AwALCQAgAEEANgIACwwAQYKWwABBMhABAAsLphcFAEGAgMAAC90MVXRmOEVycm9ydmFsaWRfdXBfdG9lcnJvcl9sZW5Gcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAEGFzc2VydGlvbiBgbGVmdCDAECByaWdodGAgZmFpbGVkOiDACQogIGxlZnQ6IMAJCiByaWdodDogwAAPQ2FwYWNpdHlFcnJvcjogwADAAjogwAAvaG9tZS91bXppLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvaG9tZS91bXppLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL2dlbmVyYWxfcHVycG9zZS9tb2QucnMAL2hvbWUvdW16aS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9tb2QucnMAL3J1c3RjLzRhNGVmNDkzZTNhMTQ4OGM2ZTMyMTU3MDIzODA4NGIzODk0OGY2ZGIvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTEvc3JjL2RsbWFsbG9jLnJzAC9ob21lL3VtemkvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9ibGFrZTMtMS44LjMvc3JjL2xpYi5ycwAmY29weV9mcm9tX3NsaWNlOiBzb3VyY2Ugc2xpY2UgbGVuZ3RoICjAKykgZG9lcyBub3QgbWF0Y2ggZGVzdGluYXRpb24gc2xpY2UgbGVuZ3RoICjAASkAGHRoZSBzdWJ0cmVlIHN0YXJ0aW5nIGF0IMASIGNvbnRhaW5zIGF0IG1vc3QgwA4gYnl0ZXMgKGZvdW5kIMABKQAAAAAqAAAAFAAAAAQAAAArAAAASW52YWxpZCBVVEY4NAIQAF8AAAB/AAAAJAAAAF0DEAAKAAAACwAAABUAAABn5glqha5nu3Lzbjw69U+lf1IOUYxoBZur2YMfGc3gWwAAAkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV////////////////////////////////////////////////////////////8+//80NTY3ODk6Ozw9/////////wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZ/////z//GhscHR4fICEiIyQlJicoKSorLC0uLzAxMjP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Y2FwYWNpdHkgb3ZlcmZsb3eUAhAAUAAAABwAAAAFAAAAxAEQAG8AAACWAAAADQAAAMQBEABvAAAAlwAAAA0AAADEARAAbwAAAJoAAAANAAAAxAEQAG8AAACeAAAADQAAAMQBEABvAAAAnwAAAA0AAADEARAAbwAAAIgAAAArAAAAxAEQAG8A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";
|
|
@@ -916,6 +594,7 @@ class ZeroCaptcha extends HTMLElement {
|
|
|
916
594
|
// ── Worker lifecycle ─────────────────────────────────────────────────────
|
|
917
595
|
|
|
918
596
|
_startWorker() {
|
|
597
|
+
console.debug("[zaptcha] _startWorker — glue length:", _WASM_GLUE_SRC.length, "| b64 length:", _WASM_BIN_B64.length);
|
|
919
598
|
try {
|
|
920
599
|
const externalUrl = this.getAttribute("worker-url");
|
|
921
600
|
if (externalUrl) {
|
|
@@ -927,17 +606,20 @@ class ZeroCaptcha extends HTMLElement {
|
|
|
927
606
|
}
|
|
928
607
|
|
|
929
608
|
this._worker.onmessage = (e) => this._onWorkerMsg(e.data);
|
|
930
|
-
this._worker.onerror = (e) =>
|
|
609
|
+
this._worker.onerror = (e) => {
|
|
610
|
+
console.error("[zaptcha] worker onerror:", e.message, e);
|
|
611
|
+
this._onFail(`Worker error: ${e.message}`);
|
|
612
|
+
};
|
|
931
613
|
|
|
932
|
-
// Decode WASM bytes once and transfer ownership to the worker.
|
|
933
|
-
// The worker receives an ArrayBuffer — no URLs, no fetch, no MIME issues.
|
|
934
614
|
const wasmBin = _b64ToBuffer(_WASM_BIN_B64);
|
|
615
|
+
console.debug("[zaptcha] wasmBin byteLength:", wasmBin.byteLength);
|
|
935
616
|
|
|
936
617
|
this._worker.postMessage(
|
|
937
618
|
{ type: "init", wasmGlueSrc: _WASM_GLUE_SRC, wasmBin },
|
|
938
|
-
[wasmBin],
|
|
619
|
+
[wasmBin],
|
|
939
620
|
);
|
|
940
621
|
} catch (err) {
|
|
622
|
+
console.error("[zaptcha] _startWorker catch:", err);
|
|
941
623
|
this._worker = null;
|
|
942
624
|
this._onFail(`Worker init failed: ${err.message}`);
|
|
943
625
|
}
|
|
@@ -956,35 +638,26 @@ class ZeroCaptcha extends HTMLElement {
|
|
|
956
638
|
|
|
957
639
|
_onWorkerMsg(msg) {
|
|
958
640
|
switch (msg.type) {
|
|
959
|
-
case "ready": break;
|
|
960
|
-
|
|
961
641
|
case "progress":
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
index: msg.index, nonce: msg.nonce, total: msg.total,
|
|
968
|
-
pct: Math.round(((msg.index ?? 0) + 1) / (msg.total ?? 1) * 100),
|
|
969
|
-
},
|
|
970
|
-
}));
|
|
642
|
+
console.debug("[zaptcha] progress:", {
|
|
643
|
+
index: msg.index,
|
|
644
|
+
nonce: msg.nonce,
|
|
645
|
+
total: msg.total,
|
|
646
|
+
});
|
|
971
647
|
break;
|
|
972
|
-
|
|
648
|
+
|
|
973
649
|
case "success":
|
|
974
|
-
|
|
975
|
-
this._applyState();
|
|
976
|
-
this.dispatchEvent(new CustomEvent("zaptcha-success", {
|
|
977
|
-
bubbles: true, composed: true,
|
|
978
|
-
detail: { token: msg.token },
|
|
979
|
-
}));
|
|
650
|
+
console.debug("[zaptcha] success");
|
|
980
651
|
break;
|
|
981
|
-
|
|
652
|
+
|
|
982
653
|
case "fail":
|
|
983
|
-
|
|
654
|
+
console.debug("[zaptcha] fail:", msg.reason);
|
|
984
655
|
break;
|
|
656
|
+
|
|
657
|
+
default:
|
|
658
|
+
console.debug("[zaptcha] unknown:", msg);
|
|
985
659
|
}
|
|
986
660
|
}
|
|
987
|
-
|
|
988
661
|
// ── Events ───────────────────────────────────────────────────────────────
|
|
989
662
|
|
|
990
663
|
_bindEvents() {
|
|
@@ -1021,6 +694,7 @@ class ZeroCaptcha extends HTMLElement {
|
|
|
1021
694
|
}
|
|
1022
695
|
|
|
1023
696
|
_onFail(reason) {
|
|
697
|
+
console.error("[zaptcha] fail:", reason);
|
|
1024
698
|
this._state = "error";
|
|
1025
699
|
this._applyState();
|
|
1026
700
|
this.dispatchEvent(new CustomEvent("zaptcha-fail", {
|