ribaunt 0.2.2 → 0.2.4

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.
Files changed (60) hide show
  1. package/README.md +113 -10
  2. package/demo/lib/ribaunt-solver.wasm +0 -0
  3. package/demo/lib/solver-worker.js +174 -0
  4. package/demo/lib/solver-worker.js.map +1 -0
  5. package/demo/lib/solver.js +135 -0
  6. package/demo/lib/solver.js.map +1 -0
  7. package/demo/lib/wasm-solver.js +296 -0
  8. package/demo/lib/wasm-solver.js.map +1 -0
  9. package/demo/lib/widget-browser.js +9 -0
  10. package/demo/lib/widget-browser.js.map +1 -0
  11. package/demo/lib/widget.js +942 -0
  12. package/demo/lib/widget.js.map +1 -0
  13. package/demo/lib/worker-client.js +128 -0
  14. package/demo/lib/worker-client.js.map +1 -0
  15. package/dist/cjs/index.d.ts +48 -3
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +196 -17
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/risk.d.ts +124 -0
  20. package/dist/cjs/risk.d.ts.map +1 -0
  21. package/dist/cjs/risk.js +213 -0
  22. package/dist/cjs/risk.js.map +1 -0
  23. package/dist/index.d.ts +48 -3
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +193 -16
  26. package/dist/index.js.map +1 -1
  27. package/dist/ribaunt-solver.wasm +0 -0
  28. package/dist/risk.d.ts +124 -0
  29. package/dist/risk.d.ts.map +1 -0
  30. package/dist/risk.js +202 -0
  31. package/dist/risk.js.map +1 -0
  32. package/dist/solver-worker.d.ts.map +1 -1
  33. package/dist/solver-worker.js +166 -7
  34. package/dist/solver-worker.js.map +1 -1
  35. package/dist/solver.d.ts +1 -0
  36. package/dist/solver.d.ts.map +1 -1
  37. package/dist/solver.js +38 -3
  38. package/dist/solver.js.map +1 -1
  39. package/dist/wasm-solver.d.ts +29 -0
  40. package/dist/wasm-solver.d.ts.map +1 -0
  41. package/dist/wasm-solver.js +296 -0
  42. package/dist/wasm-solver.js.map +1 -0
  43. package/dist/widget-browser.d.ts +3 -2
  44. package/dist/widget-browser.d.ts.map +1 -1
  45. package/dist/widget-browser.js +1 -1
  46. package/dist/widget-browser.js.map +1 -1
  47. package/dist/widget-react.d.ts +4 -1
  48. package/dist/widget-react.d.ts.map +1 -1
  49. package/dist/widget-react.js +102 -14
  50. package/dist/widget-react.js.map +1 -1
  51. package/dist/widget.d.ts +42 -14
  52. package/dist/widget.d.ts.map +1 -1
  53. package/dist/widget.js +254 -12
  54. package/dist/widget.js.map +1 -1
  55. package/dist/worker-client.d.ts +7 -1
  56. package/dist/worker-client.d.ts.map +1 -1
  57. package/dist/worker-client.js +69 -19
  58. package/dist/worker-client.js.map +1 -1
  59. package/package.json +22 -9
  60. package/context7.json +0 -4
@@ -0,0 +1,296 @@
1
+ /**
2
+ * TypeScript adapter for the WASM SHA-256 solver.
3
+ * Contains all WASM-specific implementation details and validates boundary values.
4
+ */
5
+ let wasmInstance = null;
6
+ let wasmState = 'uninitialized';
7
+ let loadPromise = null;
8
+ let cachedChallenge = null;
9
+ let cachedPtr = 0;
10
+ let cachedLen = 0;
11
+ const VALID_HASH_RE = /^[a-f0-9]{64}$/;
12
+ const VALID_NONCE_RE = /^\d+$/;
13
+ const VALID_SHA256_HEX_RE = /^[a-f0-9]{64}$/i;
14
+ // Embedded SHA-256 of dist/ribaunt-solver.wasm for integrity verification.
15
+ // Recompute with `shasum -a 256 dist/ribaunt-solver.wasm` after rebuilding wasm.
16
+ const EMBEDDED_WASM_SHA256 = '774398452596d67491a6ee5bd6291c9665dc4fc1a83db15f14dbbb4058f74c3e';
17
+ function isValidHash(hash) {
18
+ return VALID_HASH_RE.test(hash);
19
+ }
20
+ function isValidNonce(nonce) {
21
+ return nonce.length > 0 && VALID_NONCE_RE.test(nonce);
22
+ }
23
+ function bytesToHex(bytes) {
24
+ return Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
25
+ }
26
+ async function sha256Hex(bytes) {
27
+ const subtle = typeof crypto !== 'undefined' ? crypto.subtle : undefined;
28
+ if (subtle) {
29
+ const digest = await subtle.digest('SHA-256', bytes);
30
+ return bytesToHex(new Uint8Array(digest));
31
+ }
32
+ // Node fallback when Web Crypto is unavailable
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ const nodeCrypto = await import('node:crypto');
35
+ return nodeCrypto.createHash('sha256').update(bytes).digest('hex');
36
+ }
37
+ function getExpectedWasmSha256() {
38
+ const g = globalThis;
39
+ const fromGlobal = typeof g.__RIBAUNT_WASM_SHA256__ === 'string' ? g.__RIBAUNT_WASM_SHA256__.trim().toLowerCase() : '';
40
+ if (fromGlobal && VALID_SHA256_HEX_RE.test(fromGlobal))
41
+ return fromGlobal;
42
+ const proc = typeof process !== 'undefined' ? process : undefined;
43
+ const fromEnv = proc?.env?.RIBAUNT_WASM_SHA256?.trim().toLowerCase() ?? '';
44
+ if (fromEnv && VALID_SHA256_HEX_RE.test(fromEnv))
45
+ return fromEnv;
46
+ if (EMBEDDED_WASM_SHA256 && VALID_SHA256_HEX_RE.test(EMBEDDED_WASM_SHA256))
47
+ return EMBEDDED_WASM_SHA256.toLowerCase();
48
+ return null;
49
+ }
50
+ async function loadWasmBytes() {
51
+ const candidates = [];
52
+ try {
53
+ candidates.push(new URL('./ribaunt-solver.wasm', import.meta.url));
54
+ }
55
+ catch (_e) {
56
+ void _e;
57
+ }
58
+ try {
59
+ candidates.push(new URL('../dist/ribaunt-solver.wasm', import.meta.url));
60
+ }
61
+ catch (_e) {
62
+ void _e;
63
+ }
64
+ try {
65
+ candidates.push(new URL('./dist/ribaunt-solver.wasm', import.meta.url));
66
+ }
67
+ catch (_e) {
68
+ void _e;
69
+ }
70
+ // Browser / worker path: try fetch for each candidate
71
+ if (typeof fetch === 'function') {
72
+ for (const cand of candidates) {
73
+ try {
74
+ const res = await fetch(cand);
75
+ if (res.ok) {
76
+ const buf = await res.arrayBuffer();
77
+ if (buf.byteLength > 0)
78
+ return new Uint8Array(buf);
79
+ }
80
+ }
81
+ catch (_e) {
82
+ void _e;
83
+ }
84
+ }
85
+ }
86
+ // Node.js fallback: try fs for candidates plus cwd
87
+ const fsCandidates = [...candidates];
88
+ try {
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ const pathMod = await import('node:path');
91
+ const cwd = typeof process !== 'undefined' ? process.cwd() : '';
92
+ if (cwd) {
93
+ fsCandidates.push(pathMod.resolve(cwd, 'dist/ribaunt-solver.wasm'));
94
+ fsCandidates.push(pathMod.resolve(cwd, 'dist/cjs/ribaunt-solver.wasm'));
95
+ }
96
+ }
97
+ catch (_e) {
98
+ void _e;
99
+ }
100
+ try {
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ const fs = await import('node:fs/promises');
103
+ for (const cand of fsCandidates) {
104
+ try {
105
+ const bytes = await fs.readFile(cand);
106
+ if (bytes && bytes.length > 0)
107
+ return bytes;
108
+ }
109
+ catch (_e) {
110
+ void _e;
111
+ }
112
+ }
113
+ }
114
+ catch (_e) {
115
+ void _e;
116
+ }
117
+ throw new Error('WASM asset fetch failure');
118
+ }
119
+ async function instantiateWasm() {
120
+ if (typeof WebAssembly === 'undefined')
121
+ return false;
122
+ try {
123
+ const bytes = await loadWasmBytes();
124
+ const expectedSha256 = getExpectedWasmSha256();
125
+ if (!expectedSha256)
126
+ return false;
127
+ const actualSha256 = await sha256Hex(bytes);
128
+ if (actualSha256 !== expectedSha256)
129
+ return false;
130
+ const mod = await WebAssembly.compile(bytes);
131
+ const instance = await WebAssembly.instantiate(mod, {});
132
+ const exp = instance.exports;
133
+ if (!exp.memory || typeof exp.solve_batch !== 'function' || typeof exp.get_hash_ptr !== 'function' || typeof exp.alloc !== 'function') {
134
+ return false;
135
+ }
136
+ wasmInstance = instance;
137
+ wasmState = 'wasm-ready';
138
+ return true;
139
+ }
140
+ catch {
141
+ return false;
142
+ }
143
+ }
144
+ export async function ensureWasm() {
145
+ if (wasmState === 'wasm-ready')
146
+ return true;
147
+ if (wasmState === 'wasm-unavailable')
148
+ return false;
149
+ if (loadPromise)
150
+ return loadPromise;
151
+ loadPromise = (async () => {
152
+ const ok = await instantiateWasm();
153
+ wasmState = ok ? 'wasm-ready' : 'wasm-unavailable';
154
+ return ok;
155
+ })();
156
+ return loadPromise;
157
+ }
158
+ export function getWasmState() {
159
+ return wasmState;
160
+ }
161
+ export function resetWasmForTesting() {
162
+ wasmInstance = null;
163
+ wasmState = 'uninitialized';
164
+ loadPromise = null;
165
+ cachedChallenge = null;
166
+ cachedPtr = 0;
167
+ cachedLen = 0;
168
+ }
169
+ // For testing: allow injecting failure or mock
170
+ export function setWasmUnavailableForTesting() {
171
+ wasmState = 'wasm-unavailable';
172
+ wasmInstance = null;
173
+ loadPromise = Promise.resolve(false);
174
+ }
175
+ export function isWasmAvailable() {
176
+ return wasmState === 'wasm-ready';
177
+ }
178
+ export function resetWasmHeap() {
179
+ cachedChallenge = null;
180
+ cachedPtr = 0;
181
+ cachedLen = 0;
182
+ if (wasmInstance) {
183
+ try {
184
+ const exp = wasmInstance.exports;
185
+ exp.reset_heap?.();
186
+ }
187
+ catch {
188
+ // ignore
189
+ }
190
+ }
191
+ }
192
+ /**
193
+ * Synchronous batch solver - must be called after ensureWasm() succeeds.
194
+ * Encodes challenge as UTF-8, allocates in WASM memory, calls solve_batch,
195
+ * validates and returns result.
196
+ */
197
+ export function solveBatch(challenge, startNonce, batchSize, difficulty) {
198
+ if (wasmState !== 'wasm-ready' || !wasmInstance) {
199
+ throw new Error('WASM solver not initialized');
200
+ }
201
+ // Validate inputs
202
+ if (!Number.isInteger(difficulty) || difficulty < 1 || difficulty > 64) {
203
+ throw new Error('Invalid difficulty');
204
+ }
205
+ if (!Number.isInteger(batchSize) || batchSize <= 0 || batchSize > 16384) {
206
+ throw new Error('Invalid batchSize');
207
+ }
208
+ if (!Number.isInteger(startNonce) || startNonce < 0 || !Number.isFinite(startNonce)) {
209
+ throw new Error('Invalid startNonce');
210
+ }
211
+ if (typeof challenge !== 'string') {
212
+ throw new Error('Invalid challenge');
213
+ }
214
+ // Overflow guard before calling WASM (also checked inside)
215
+ if (startNonce > 0xffffffff - batchSize + 1) {
216
+ throw new Error('Nonce range exceeds u32');
217
+ }
218
+ // Also guard signed limit to avoid sentinel confusion (max 2^31-1 for v1); allow final batch where last nonce is 0x7fffffff
219
+ if (startNonce > 0x7fffffff || startNonce + batchSize > 0x7fffffff + 1) {
220
+ throw new Error('Nonce exceeds wasm signed limit');
221
+ }
222
+ const exp = wasmInstance.exports;
223
+ const mem = exp.memory;
224
+ let ptr;
225
+ let challengeLen;
226
+ if (cachedChallenge === challenge && cachedPtr !== 0) {
227
+ ptr = cachedPtr;
228
+ challengeLen = cachedLen;
229
+ }
230
+ else {
231
+ // Encode challenge as UTF-8 bytes
232
+ const encoder = new TextEncoder();
233
+ const challengeBytes = encoder.encode(challenge);
234
+ if (challengeBytes.length > 1014) {
235
+ throw new Error('Challenge too long for WASM solver');
236
+ }
237
+ const newPtr = exp.alloc(challengeBytes.length);
238
+ // Refresh view after possible growth
239
+ const memU8 = new Uint8Array(mem.buffer);
240
+ // Bounds check: ensure ptr + len within memory
241
+ if (newPtr < 0 || newPtr + challengeBytes.length > memU8.length) {
242
+ throw new Error('WASM memory allocation out of bounds');
243
+ }
244
+ memU8.set(challengeBytes, newPtr);
245
+ cachedChallenge = challenge;
246
+ cachedPtr = newPtr;
247
+ cachedLen = challengeBytes.length;
248
+ ptr = newPtr;
249
+ challengeLen = cachedLen;
250
+ }
251
+ let result;
252
+ try {
253
+ result = exp.solve_batch(ptr, challengeLen, startNonce >>> 0, batchSize, difficulty);
254
+ }
255
+ catch (e) {
256
+ throw new Error(`WASM solver trap: ${e instanceof Error ? e.message : String(e)}`, { cause: e });
257
+ }
258
+ if (result === -1) {
259
+ return { found: false };
260
+ }
261
+ if (result === -2) {
262
+ throw new Error('WASM solver overflow');
263
+ }
264
+ if (result < 0) {
265
+ throw new Error(`WASM solver internal error: ${result}`);
266
+ }
267
+ // Validate nonce
268
+ const nonceStr = String(result >>> 0);
269
+ if (!isValidNonce(nonceStr)) {
270
+ throw new Error('WASM returned invalid nonce');
271
+ }
272
+ // Read hash
273
+ const hashPtr = exp.get_hash_ptr();
274
+ const hashLen = 32;
275
+ const mem2 = new Uint8Array(mem.buffer);
276
+ if (hashPtr < 0 || hashPtr + hashLen > mem2.length) {
277
+ throw new Error('WASM hash pointer out of bounds');
278
+ }
279
+ const hashBytes = mem2.slice(hashPtr, hashPtr + hashLen);
280
+ const hashHex = Array.from(hashBytes).map(b => b.toString(16).padStart(2, '0')).join('');
281
+ if (!isValidHash(hashHex)) {
282
+ throw new Error('WASM returned invalid hash');
283
+ }
284
+ if (!hashHex.startsWith('0'.repeat(difficulty))) {
285
+ throw new Error('WASM returned hash that does not satisfy difficulty');
286
+ }
287
+ // Additional validation: ensure hash corresponds to challenge+nonce (defense in depth)
288
+ // We trust WASM but validate shape; deeper verification (re-hashing in JS) could be done
289
+ // but would duplicate work. We just validate invariants.
290
+ return { found: true, nonce: nonceStr, hash: hashHex };
291
+ }
292
+ // Re-export for worker to use TextEncoder check
293
+ export function isTextEncoderAvailable() {
294
+ return typeof TextEncoder !== 'undefined';
295
+ }
296
+ //# sourceMappingURL=wasm-solver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-solver.js","sourceRoot":"","sources":["../src/wasm-solver.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * Browser-only entry point for the Ribaunt Widget
3
3
  * This file only exports the web component, not the server-side functions
4
4
  */
5
- export { RibauntWidget } from './widget.js';
6
- export { calibrateBrowser, calibrateClient } from './solver.js';
5
+ export { RibauntWidget, WidgetError } from './widget.js';
6
+ export type { RibauntWidgetElement, WidgetErrorCode, WidgetErrorDetail, WidgetState, WidgetStateDetail, WidgetVerifyDetail, } from './widget.js';
7
+ export { calibrateBrowser, calibrateClient, type ChallengeSolution } from './solver.js';
7
8
  import './widget.js';
8
9
  //# sourceMappingURL=widget-browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget-browser.d.ts","sourceRoot":"","sources":["../src/widget-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,aAAa,CAAC"}
1
+ {"version":3,"file":"widget-browser.d.ts","sourceRoot":"","sources":["../src/widget-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGxF,OAAO,aAAa,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Browser-only entry point for the Ribaunt Widget
3
3
  * This file only exports the web component, not the server-side functions
4
4
  */
5
- export { RibauntWidget } from './widget.js';
5
+ export { RibauntWidget, WidgetError } from './widget.js';
6
6
  export { calibrateBrowser, calibrateClient } from './solver.js';
7
7
  // Auto-register the widget when imported
8
8
  import './widget.js';
@@ -1 +1 @@
1
- {"version":3,"file":"widget-browser.js","sourceRoot":"","sources":["../src/widget-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEhE,yCAAyC;AACzC,OAAO,aAAa,CAAC"}
1
+ {"version":3,"file":"widget-browser.js","sourceRoot":"","sources":["../src/widget-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AASzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAA0B,MAAM,aAAa,CAAC;AAExF,yCAAyC;AACzC,OAAO,aAAa,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { RibauntWidgetElement, WidgetErrorDetail, WidgetState, WidgetStateDetail, WidgetVerifyDetail } from './widget.js';
3
- import type { WorkerMode } from './worker-client.js';
3
+ import type { WorkerMode, WasmMode } from './worker-client.js';
4
+ export type { RibauntWidgetElement, WidgetErrorDetail, WidgetState, WidgetStateDetail, WidgetVerifyDetail, } from './widget.js';
4
5
  export interface RibauntWidgetProps extends Omit<React.HTMLAttributes<RibauntWidgetElement>, 'onError' | 'onLoad'> {
5
6
  challengeEndpoint?: string;
6
7
  verifyEndpoint?: string;
@@ -9,8 +10,10 @@ export interface RibauntWidgetProps extends Omit<React.HTMLAttributes<RibauntWid
9
10
  warningMessage?: string;
10
11
  solveTimeout?: number | string;
11
12
  workerMode?: WorkerMode;
13
+ wasmMode?: WasmMode;
12
14
  challengeMethod?: 'GET' | 'POST';
13
15
  calibrate?: boolean | string;
16
+ showProgress?: boolean | string;
14
17
  disabled?: boolean | string;
15
18
  fallback?: React.ReactNode;
16
19
  onVerify?: (detail: WidgetVerifyDetail) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"widget-react.d.ts","sourceRoot":"","sources":["../src/widget-react.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuE,MAAM,OAAO,CAAC;AAC5F,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1F;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,WAAW,GAAG,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAqDD;;;GAGG;AACH,eAAO,MAAM,aAAa,gGAyMzB,CAAC;AAIF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"widget-react.d.ts","sourceRoot":"","sources":["../src/widget-react.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuE,MAAM,OAAO,CAAC;AAC5F,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE/D,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1F;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,WAAW,GAAG,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAgHD;;;GAGG;AACH,eAAO,MAAM,aAAa,gGAwPzB,CAAC;AAIF,eAAe,aAAa,CAAC"}
@@ -8,7 +8,42 @@ function syncAttribute(element, name, value) {
8
8
  }
9
9
  element.setAttribute(name, typeof value === 'boolean' ? 'true' : String(value));
10
10
  }
11
- function syncWidgetProps(element, { challengeEndpoint, verifyEndpoint, showWarning, warningMessage, solveTimeout, workerMode, challengeMethod, calibrate, disabled, autoVerify, }) {
11
+ const HANDLER_PROP_PATTERN = /^on[A-Z]/;
12
+ function toDomEventType(key) {
13
+ return key.slice(2).toLowerCase();
14
+ }
15
+ /**
16
+ * Applies non-widget HTML props (title, className, data-*, ...) to the
17
+ * custom element as attributes, and removes attributes for props that are
18
+ * no longer present. Handler props (onClick, ...) and non-serializable
19
+ * values (functions, objects) are ignored here; handlers are bound as real
20
+ * event listeners because assigning `element.onClick` does nothing.
21
+ */
22
+ const appliedPropsCache = new WeakMap();
23
+ function applyStandardProps(element, props) {
24
+ const applied = new Set();
25
+ Object.entries(props).forEach(([key, value]) => {
26
+ if (key === 'children'
27
+ || value === undefined
28
+ || value === null
29
+ || typeof value === 'function'
30
+ || typeof value === 'object'
31
+ || HANDLER_PROP_PATTERN.test(key)) {
32
+ return;
33
+ }
34
+ element.setAttribute(key, value === true ? '' : String(value));
35
+ applied.add(key);
36
+ });
37
+ const previous = appliedPropsCache.get(element);
38
+ if (previous) {
39
+ for (const key of previous) {
40
+ if (!applied.has(key))
41
+ element.removeAttribute(key);
42
+ }
43
+ }
44
+ appliedPropsCache.set(element, applied);
45
+ }
46
+ function syncWidgetProps(element, { challengeEndpoint, verifyEndpoint, showWarning, warningMessage, solveTimeout, workerMode, wasmMode, challengeMethod, calibrate, showProgress, disabled, autoVerify, }) {
12
47
  syncAttribute(element, 'challenge-endpoint', challengeEndpoint);
13
48
  syncAttribute(element, 'verify-endpoint', verifyEndpoint);
14
49
  syncAttribute(element, 'auto-verify', autoVerify);
@@ -16,15 +51,25 @@ function syncWidgetProps(element, { challengeEndpoint, verifyEndpoint, showWarni
16
51
  syncAttribute(element, 'warning-message', warningMessage);
17
52
  syncAttribute(element, 'solve-timeout', solveTimeout);
18
53
  syncAttribute(element, 'worker-mode', workerMode);
54
+ syncAttribute(element, 'wasm-mode', wasmMode);
19
55
  syncAttribute(element, 'challenge-method', challengeMethod);
20
56
  syncAttribute(element, 'calibrate', calibrate);
57
+ // showProgress is tri-state, not presence-based: the widget hides progress
58
+ // only when the attribute is present with literal value "false", so false
59
+ // must be passed through verbatim instead of removing the attribute.
60
+ if (showProgress === undefined) {
61
+ element.removeAttribute('show-progress');
62
+ }
63
+ else {
64
+ element.setAttribute('show-progress', String(showProgress));
65
+ }
21
66
  syncAttribute(element, 'disabled', disabled);
22
67
  }
23
68
  /**
24
69
  * React wrapper for the Ribaunt Web Component.
25
70
  * Safely loads the web component dynamically, avoiding Next.js SSR issues.
26
71
  */
27
- export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, showWarning, warningMessage, solveTimeout, workerMode, challengeMethod, calibrate, disabled, autoVerify, fallback, onVerify, onError, onStateChange, onReady, onLoad, onEvent, ...props }, ref) => {
72
+ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, showWarning, warningMessage, solveTimeout, workerMode, wasmMode, challengeMethod, calibrate, showProgress, disabled, autoVerify, fallback, onVerify, onError, onStateChange, onReady, onLoad, onEvent, ...props }, ref) => {
28
73
  const widgetRef = useRef(null);
29
74
  const containerRef = useRef(null);
30
75
  const [isLoading, setIsLoading] = useState(true);
@@ -36,8 +81,30 @@ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, sh
36
81
  onLoad,
37
82
  onEvent,
38
83
  });
84
+ const handlersRef = useRef(new Map());
85
+ const boundEventTypesRef = useRef(new Set());
86
+ const nativeDispatcherRef = useRef((event) => {
87
+ for (const handler of handlersRef.current.get(event.type) ?? []) {
88
+ handler(event);
89
+ }
90
+ });
39
91
  const hasStateEventRef = useRef(false);
40
92
  const hasReadyRef = useRef(false);
93
+ const standardProps = {};
94
+ const nextHandlers = new Map();
95
+ Object.entries(props).forEach(([key, value]) => {
96
+ if (value === undefined)
97
+ return;
98
+ if (HANDLER_PROP_PATTERN.test(key) && typeof value === 'function') {
99
+ const eventType = toDomEventType(key);
100
+ const listeners = nextHandlers.get(eventType) ?? [];
101
+ listeners.push(value);
102
+ nextHandlers.set(eventType, listeners);
103
+ return;
104
+ }
105
+ standardProps[key] = value;
106
+ });
107
+ handlersRef.current = nextHandlers;
41
108
  useImperativeHandle(ref, () => ({
42
109
  reset: () => widgetRef.current?.reset?.(),
43
110
  getState: () => widgetRef.current?.getState?.() ?? '',
@@ -84,18 +151,6 @@ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, sh
84
151
  widget.addEventListener('verify', handleVerify);
85
152
  widget.addEventListener('error', handleError);
86
153
  widget.addEventListener('state-change', handleStateChange);
87
- // Apply any remaining standard HTML attributes to the element
88
- Object.entries(props).forEach(([key, value]) => {
89
- if (value !== undefined) {
90
- // Check if it's a valid property of the HTML element, if so set it
91
- if (key in widget) {
92
- widget[key] = value;
93
- }
94
- else {
95
- widget.setAttribute(key, String(value));
96
- }
97
- }
98
- });
99
154
  syncWidgetProps(widget, {
100
155
  challengeEndpoint,
101
156
  verifyEndpoint,
@@ -104,8 +159,10 @@ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, sh
104
159
  warningMessage,
105
160
  solveTimeout,
106
161
  workerMode,
162
+ wasmMode,
107
163
  challengeMethod,
108
164
  calibrate,
165
+ showProgress,
109
166
  disabled,
110
167
  });
111
168
  containerRef.current.appendChild(widget);
@@ -129,15 +186,42 @@ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, sh
129
186
  callbacksRef.current.onEvent?.('state-change', detail);
130
187
  }
131
188
  }, 0);
189
+ // The dispatcher is a stable ref created once, so capturing it here is
190
+ // safe and keeps the cleanup function self-contained.
191
+ const dispatchNativeEvent = nativeDispatcherRef.current;
132
192
  return () => {
133
193
  clearTimeout(fallbackTimer);
134
194
  widget.removeEventListener('verify', handleVerify);
135
195
  widget.removeEventListener('error', handleError);
136
196
  widget.removeEventListener('state-change', handleStateChange);
197
+ for (const eventType of boundEventTypesRef.current) {
198
+ widget.removeEventListener(eventType, dispatchNativeEvent);
199
+ }
200
+ boundEventTypesRef.current = new Set();
201
+ handlersRef.current = new Map();
137
202
  widget.remove();
138
203
  widgetRef.current = null;
139
204
  };
205
+ // Creation-only effect: prop changes are synced to the element by the
206
+ // effects below, so re-creating the element on every prop change would
207
+ // reset the widget and restart any verification in flight.
208
+ // eslint-disable-next-line react-hooks/exhaustive-deps
140
209
  }, [isLoading]);
210
+ // Re-apply standard HTML props after every render so updates propagate
211
+ // to the imperatively-created element (React never re-renders it), and
212
+ // bind native listeners for any newly-seen handler props (onClick, ...).
213
+ useEffect(() => {
214
+ const widget = widgetRef.current;
215
+ if (!widget)
216
+ return;
217
+ applyStandardProps(widget, standardProps);
218
+ for (const eventType of handlersRef.current.keys()) {
219
+ if (boundEventTypesRef.current.has(eventType))
220
+ continue;
221
+ boundEventTypesRef.current.add(eventType);
222
+ widget.addEventListener(eventType, nativeDispatcherRef.current);
223
+ }
224
+ });
141
225
  useEffect(() => {
142
226
  if (!widgetRef.current)
143
227
  return;
@@ -149,8 +233,10 @@ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, sh
149
233
  warningMessage,
150
234
  solveTimeout,
151
235
  workerMode,
236
+ wasmMode,
152
237
  challengeMethod,
153
238
  calibrate,
239
+ showProgress,
154
240
  disabled,
155
241
  });
156
242
  }, [
@@ -161,8 +247,10 @@ export const RibauntWidget = forwardRef(({ challengeEndpoint, verifyEndpoint, sh
161
247
  warningMessage,
162
248
  solveTimeout,
163
249
  workerMode,
250
+ wasmMode,
164
251
  challengeMethod,
165
252
  calibrate,
253
+ showProgress,
166
254
  disabled,
167
255
  ]);
168
256
  return isLoading ? (fallback ?? (_jsxs(_Fragment, { children: [_jsx("style", { children: `
@@ -1 +1 @@
1
- {"version":3,"file":"widget-react.js","sourceRoot":"","sources":["../src/widget-react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget-react.js","sourceRoot":"","sources":["../src/widget-react.tsx"],"names":[],"mappings":"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"}