@arcjet/analyze-wasm 1.0.0-beta.1

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.
@@ -0,0 +1,875 @@
1
+ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.instantiate) {
2
+
3
+ class ComponentError extends Error {
4
+ constructor (value) {
5
+ const enumerable = typeof value !== 'string';
6
+ super(enumerable ? `${String(value)} (see error.payload)` : value);
7
+ Object.defineProperty(this, 'payload', { value, enumerable });
8
+ }
9
+ }
10
+
11
+ let dv = new DataView(new ArrayBuffer());
12
+ const dataView = mem => dv.buffer === mem.buffer ? dv : dv = new DataView(mem.buffer);
13
+
14
+ function throwInvalidBool() {
15
+ throw new TypeError('invalid variant discriminant for bool');
16
+ }
17
+
18
+ function toUint32(val) {
19
+ return val >>> 0;
20
+ }
21
+
22
+ const utf8Decoder = new TextDecoder();
23
+
24
+ const utf8Encoder = new TextEncoder();
25
+
26
+ let utf8EncodedLen = 0;
27
+ function utf8Encode(s, realloc, memory) {
28
+ if (typeof s !== 'string') throw new TypeError('expected a string');
29
+ if (s.length === 0) {
30
+ utf8EncodedLen = 0;
31
+ return 1;
32
+ }
33
+ let buf = utf8Encoder.encode(s);
34
+ let ptr = realloc(0, 0, 1, buf.length);
35
+ new Uint8Array(memory.buffer).set(buf, ptr);
36
+ utf8EncodedLen = buf.length;
37
+ return ptr;
38
+ }
39
+
40
+
41
+ const module0 = getCoreModule('arcjet_analyze_js_req.component.core.wasm');
42
+ const module1 = getCoreModule('arcjet_analyze_js_req.component.core2.wasm');
43
+ const module2 = getCoreModule('arcjet_analyze_js_req.component.core3.wasm');
44
+
45
+ const { hasGravatar, hasMxRecords, isDisposableEmail, isFreeEmail } = imports['arcjet:js-req/email-validator-overrides'];
46
+ const { detect } = imports['arcjet:js-req/sensitive-information-identifier'];
47
+ const { verify } = imports['arcjet:js-req/verify-bot'];
48
+ let gen = (function* init () {
49
+ let exports0;
50
+ let exports1;
51
+ let memory0;
52
+ let realloc0;
53
+
54
+ function trampoline0(arg0, arg1, arg2, arg3) {
55
+ var ptr0 = arg0;
56
+ var len0 = arg1;
57
+ var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0));
58
+ var ptr1 = arg2;
59
+ var len1 = arg3;
60
+ var result1 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr1, len1));
61
+ const ret = verify(result0, result1);
62
+ var val2 = ret;
63
+ let enum2;
64
+ switch (val2) {
65
+ case 'verified': {
66
+ enum2 = 0;
67
+ break;
68
+ }
69
+ case 'spoofed': {
70
+ enum2 = 1;
71
+ break;
72
+ }
73
+ case 'unverifiable': {
74
+ enum2 = 2;
75
+ break;
76
+ }
77
+ default: {
78
+ if ((ret) instanceof Error) {
79
+ console.error(ret);
80
+ }
81
+
82
+ throw new TypeError(`"${val2}" is not one of the cases of validator-response`);
83
+ }
84
+ }
85
+ return enum2;
86
+ }
87
+
88
+ function trampoline1(arg0, arg1) {
89
+ var ptr0 = arg0;
90
+ var len0 = arg1;
91
+ var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0));
92
+ const ret = isFreeEmail(result0);
93
+ var val1 = ret;
94
+ let enum1;
95
+ switch (val1) {
96
+ case 'yes': {
97
+ enum1 = 0;
98
+ break;
99
+ }
100
+ case 'no': {
101
+ enum1 = 1;
102
+ break;
103
+ }
104
+ case 'unknown': {
105
+ enum1 = 2;
106
+ break;
107
+ }
108
+ default: {
109
+ if ((ret) instanceof Error) {
110
+ console.error(ret);
111
+ }
112
+
113
+ throw new TypeError(`"${val1}" is not one of the cases of validator-response`);
114
+ }
115
+ }
116
+ return enum1;
117
+ }
118
+
119
+ function trampoline2(arg0, arg1) {
120
+ var ptr0 = arg0;
121
+ var len0 = arg1;
122
+ var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0));
123
+ const ret = isDisposableEmail(result0);
124
+ var val1 = ret;
125
+ let enum1;
126
+ switch (val1) {
127
+ case 'yes': {
128
+ enum1 = 0;
129
+ break;
130
+ }
131
+ case 'no': {
132
+ enum1 = 1;
133
+ break;
134
+ }
135
+ case 'unknown': {
136
+ enum1 = 2;
137
+ break;
138
+ }
139
+ default: {
140
+ if ((ret) instanceof Error) {
141
+ console.error(ret);
142
+ }
143
+
144
+ throw new TypeError(`"${val1}" is not one of the cases of validator-response`);
145
+ }
146
+ }
147
+ return enum1;
148
+ }
149
+
150
+ function trampoline3(arg0, arg1) {
151
+ var ptr0 = arg0;
152
+ var len0 = arg1;
153
+ var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0));
154
+ const ret = hasMxRecords(result0);
155
+ var val1 = ret;
156
+ let enum1;
157
+ switch (val1) {
158
+ case 'yes': {
159
+ enum1 = 0;
160
+ break;
161
+ }
162
+ case 'no': {
163
+ enum1 = 1;
164
+ break;
165
+ }
166
+ case 'unknown': {
167
+ enum1 = 2;
168
+ break;
169
+ }
170
+ default: {
171
+ if ((ret) instanceof Error) {
172
+ console.error(ret);
173
+ }
174
+
175
+ throw new TypeError(`"${val1}" is not one of the cases of validator-response`);
176
+ }
177
+ }
178
+ return enum1;
179
+ }
180
+
181
+ function trampoline4(arg0, arg1) {
182
+ var ptr0 = arg0;
183
+ var len0 = arg1;
184
+ var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0));
185
+ const ret = hasGravatar(result0);
186
+ var val1 = ret;
187
+ let enum1;
188
+ switch (val1) {
189
+ case 'yes': {
190
+ enum1 = 0;
191
+ break;
192
+ }
193
+ case 'no': {
194
+ enum1 = 1;
195
+ break;
196
+ }
197
+ case 'unknown': {
198
+ enum1 = 2;
199
+ break;
200
+ }
201
+ default: {
202
+ if ((ret) instanceof Error) {
203
+ console.error(ret);
204
+ }
205
+
206
+ throw new TypeError(`"${val1}" is not one of the cases of validator-response`);
207
+ }
208
+ }
209
+ return enum1;
210
+ }
211
+
212
+ function trampoline5(arg0, arg1, arg2) {
213
+ var len1 = arg1;
214
+ var base1 = arg0;
215
+ var result1 = [];
216
+ for (let i = 0; i < len1; i++) {
217
+ const base = base1 + i * 8;
218
+ var ptr0 = dataView(memory0).getInt32(base + 0, true);
219
+ var len0 = dataView(memory0).getInt32(base + 4, true);
220
+ var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0));
221
+ result1.push(result0);
222
+ }
223
+ const ret = detect(result1);
224
+ var vec5 = ret;
225
+ var len5 = vec5.length;
226
+ var result5 = realloc0(0, 0, 4, len5 * 16);
227
+ for (let i = 0; i < vec5.length; i++) {
228
+ const e = vec5[i];
229
+ const base = result5 + i * 16;var variant4 = e;
230
+ if (variant4 === null || variant4=== undefined) {
231
+ dataView(memory0).setInt8(base + 0, 0, true);
232
+ } else {
233
+ const e = variant4;
234
+ dataView(memory0).setInt8(base + 0, 1, true);
235
+ var variant3 = e;
236
+ switch (variant3.tag) {
237
+ case 'email': {
238
+ dataView(memory0).setInt8(base + 4, 0, true);
239
+ break;
240
+ }
241
+ case 'phone-number': {
242
+ dataView(memory0).setInt8(base + 4, 1, true);
243
+ break;
244
+ }
245
+ case 'ip-address': {
246
+ dataView(memory0).setInt8(base + 4, 2, true);
247
+ break;
248
+ }
249
+ case 'credit-card-number': {
250
+ dataView(memory0).setInt8(base + 4, 3, true);
251
+ break;
252
+ }
253
+ case 'custom': {
254
+ const e = variant3.val;
255
+ dataView(memory0).setInt8(base + 4, 4, true);
256
+ var ptr2 = utf8Encode(e, realloc0, memory0);
257
+ var len2 = utf8EncodedLen;
258
+ dataView(memory0).setInt32(base + 12, len2, true);
259
+ dataView(memory0).setInt32(base + 8, ptr2, true);
260
+ break;
261
+ }
262
+ default: {
263
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``);
264
+ }
265
+ }
266
+ }
267
+ }
268
+ dataView(memory0).setInt32(arg2 + 4, len5, true);
269
+ dataView(memory0).setInt32(arg2 + 0, result5, true);
270
+ }
271
+ let postReturn0;
272
+ let postReturn1;
273
+ let postReturn2;
274
+ let postReturn3;
275
+ let postReturn4;
276
+ Promise.all([module0, module1, module2]).catch(() => {});
277
+ ({ exports: exports0 } = yield instantiateCore(yield module1));
278
+ ({ exports: exports1 } = yield instantiateCore(yield module0, {
279
+ 'arcjet:js-req/email-validator-overrides': {
280
+ 'has-gravatar': exports0['4'],
281
+ 'has-mx-records': exports0['3'],
282
+ 'is-disposable-email': exports0['2'],
283
+ 'is-free-email': exports0['1'],
284
+ },
285
+ 'arcjet:js-req/sensitive-information-identifier': {
286
+ detect: exports0['5'],
287
+ },
288
+ 'arcjet:js-req/verify-bot': {
289
+ verify: exports0['0'],
290
+ },
291
+ }));
292
+ memory0 = exports1.memory;
293
+ realloc0 = exports1.cabi_realloc;
294
+ (yield instantiateCore(yield module2, {
295
+ '': {
296
+ $imports: exports0.$imports,
297
+ '0': trampoline0,
298
+ '1': trampoline1,
299
+ '2': trampoline2,
300
+ '3': trampoline3,
301
+ '4': trampoline4,
302
+ '5': trampoline5,
303
+ },
304
+ }));
305
+ postReturn0 = exports1['cabi_post_detect-bot'];
306
+ postReturn1 = exports1['cabi_post_generate-fingerprint'];
307
+ postReturn2 = exports1['cabi_post_validate-characteristics'];
308
+ postReturn3 = exports1['cabi_post_is-valid-email'];
309
+ postReturn4 = exports1['cabi_post_detect-sensitive-info'];
310
+
311
+ function detectBot(arg0, arg1) {
312
+ var ptr0 = utf8Encode(arg0, realloc0, memory0);
313
+ var len0 = utf8EncodedLen;
314
+ var variant7 = arg1;
315
+ let variant7_0;
316
+ let variant7_1;
317
+ let variant7_2;
318
+ let variant7_3;
319
+ switch (variant7.tag) {
320
+ case 'allowed-bot-config': {
321
+ const e = variant7.val;
322
+ var {entities: v1_0, skipCustomDetect: v1_1 } = e;
323
+ var vec3 = v1_0;
324
+ var len3 = vec3.length;
325
+ var result3 = realloc0(0, 0, 4, len3 * 8);
326
+ for (let i = 0; i < vec3.length; i++) {
327
+ const e = vec3[i];
328
+ const base = result3 + i * 8;var ptr2 = utf8Encode(e, realloc0, memory0);
329
+ var len2 = utf8EncodedLen;
330
+ dataView(memory0).setInt32(base + 4, len2, true);
331
+ dataView(memory0).setInt32(base + 0, ptr2, true);
332
+ }
333
+ variant7_0 = 0;
334
+ variant7_1 = result3;
335
+ variant7_2 = len3;
336
+ variant7_3 = v1_1 ? 1 : 0;
337
+ break;
338
+ }
339
+ case 'denied-bot-config': {
340
+ const e = variant7.val;
341
+ var {entities: v4_0, skipCustomDetect: v4_1 } = e;
342
+ var vec6 = v4_0;
343
+ var len6 = vec6.length;
344
+ var result6 = realloc0(0, 0, 4, len6 * 8);
345
+ for (let i = 0; i < vec6.length; i++) {
346
+ const e = vec6[i];
347
+ const base = result6 + i * 8;var ptr5 = utf8Encode(e, realloc0, memory0);
348
+ var len5 = utf8EncodedLen;
349
+ dataView(memory0).setInt32(base + 4, len5, true);
350
+ dataView(memory0).setInt32(base + 0, ptr5, true);
351
+ }
352
+ variant7_0 = 1;
353
+ variant7_1 = result6;
354
+ variant7_2 = len6;
355
+ variant7_3 = v4_1 ? 1 : 0;
356
+ break;
357
+ }
358
+ default: {
359
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`BotConfig\``);
360
+ }
361
+ }
362
+ const ret = exports1['detect-bot'](ptr0, len0, variant7_0, variant7_1, variant7_2, variant7_3);
363
+ let variant15;
364
+ switch (dataView(memory0).getUint8(ret + 0, true)) {
365
+ case 0: {
366
+ var len9 = dataView(memory0).getInt32(ret + 8, true);
367
+ var base9 = dataView(memory0).getInt32(ret + 4, true);
368
+ var result9 = [];
369
+ for (let i = 0; i < len9; i++) {
370
+ const base = base9 + i * 8;
371
+ var ptr8 = dataView(memory0).getInt32(base + 0, true);
372
+ var len8 = dataView(memory0).getInt32(base + 4, true);
373
+ var result8 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr8, len8));
374
+ result9.push(result8);
375
+ }
376
+ var len11 = dataView(memory0).getInt32(ret + 16, true);
377
+ var base11 = dataView(memory0).getInt32(ret + 12, true);
378
+ var result11 = [];
379
+ for (let i = 0; i < len11; i++) {
380
+ const base = base11 + i * 8;
381
+ var ptr10 = dataView(memory0).getInt32(base + 0, true);
382
+ var len10 = dataView(memory0).getInt32(base + 4, true);
383
+ var result10 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr10, len10));
384
+ result11.push(result10);
385
+ }
386
+ var bool12 = dataView(memory0).getUint8(ret + 20, true);
387
+ var bool13 = dataView(memory0).getUint8(ret + 21, true);
388
+ variant15= {
389
+ tag: 'ok',
390
+ val: {
391
+ allowed: result9,
392
+ denied: result11,
393
+ verified: bool12 == 0 ? false : (bool12 == 1 ? true : throwInvalidBool()),
394
+ spoofed: bool13 == 0 ? false : (bool13 == 1 ? true : throwInvalidBool()),
395
+ }
396
+ };
397
+ break;
398
+ }
399
+ case 1: {
400
+ var ptr14 = dataView(memory0).getInt32(ret + 4, true);
401
+ var len14 = dataView(memory0).getInt32(ret + 8, true);
402
+ var result14 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr14, len14));
403
+ variant15= {
404
+ tag: 'err',
405
+ val: result14
406
+ };
407
+ break;
408
+ }
409
+ default: {
410
+ throw new TypeError('invalid variant discriminant for expected');
411
+ }
412
+ }
413
+ const retVal = variant15;
414
+ postReturn0(ret);
415
+ if (typeof retVal === 'object' && retVal.tag === 'err') {
416
+ throw new ComponentError(retVal.val);
417
+ }
418
+ return retVal.val;
419
+ }
420
+
421
+ function generateFingerprint(arg0, arg1) {
422
+ var ptr0 = utf8Encode(arg0, realloc0, memory0);
423
+ var len0 = utf8EncodedLen;
424
+ var vec2 = arg1;
425
+ var len2 = vec2.length;
426
+ var result2 = realloc0(0, 0, 4, len2 * 8);
427
+ for (let i = 0; i < vec2.length; i++) {
428
+ const e = vec2[i];
429
+ const base = result2 + i * 8;var ptr1 = utf8Encode(e, realloc0, memory0);
430
+ var len1 = utf8EncodedLen;
431
+ dataView(memory0).setInt32(base + 4, len1, true);
432
+ dataView(memory0).setInt32(base + 0, ptr1, true);
433
+ }
434
+ const ret = exports1['generate-fingerprint'](ptr0, len0, result2, len2);
435
+ let variant5;
436
+ switch (dataView(memory0).getUint8(ret + 0, true)) {
437
+ case 0: {
438
+ var ptr3 = dataView(memory0).getInt32(ret + 4, true);
439
+ var len3 = dataView(memory0).getInt32(ret + 8, true);
440
+ var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
441
+ variant5= {
442
+ tag: 'ok',
443
+ val: result3
444
+ };
445
+ break;
446
+ }
447
+ case 1: {
448
+ var ptr4 = dataView(memory0).getInt32(ret + 4, true);
449
+ var len4 = dataView(memory0).getInt32(ret + 8, true);
450
+ var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4));
451
+ variant5= {
452
+ tag: 'err',
453
+ val: result4
454
+ };
455
+ break;
456
+ }
457
+ default: {
458
+ throw new TypeError('invalid variant discriminant for expected');
459
+ }
460
+ }
461
+ const retVal = variant5;
462
+ postReturn1(ret);
463
+ if (typeof retVal === 'object' && retVal.tag === 'err') {
464
+ throw new ComponentError(retVal.val);
465
+ }
466
+ return retVal.val;
467
+ }
468
+
469
+ function validateCharacteristics(arg0, arg1) {
470
+ var ptr0 = utf8Encode(arg0, realloc0, memory0);
471
+ var len0 = utf8EncodedLen;
472
+ var vec2 = arg1;
473
+ var len2 = vec2.length;
474
+ var result2 = realloc0(0, 0, 4, len2 * 8);
475
+ for (let i = 0; i < vec2.length; i++) {
476
+ const e = vec2[i];
477
+ const base = result2 + i * 8;var ptr1 = utf8Encode(e, realloc0, memory0);
478
+ var len1 = utf8EncodedLen;
479
+ dataView(memory0).setInt32(base + 4, len1, true);
480
+ dataView(memory0).setInt32(base + 0, ptr1, true);
481
+ }
482
+ const ret = exports1['validate-characteristics'](ptr0, len0, result2, len2);
483
+ let variant4;
484
+ switch (dataView(memory0).getUint8(ret + 0, true)) {
485
+ case 0: {
486
+ variant4= {
487
+ tag: 'ok',
488
+ val: undefined
489
+ };
490
+ break;
491
+ }
492
+ case 1: {
493
+ var ptr3 = dataView(memory0).getInt32(ret + 4, true);
494
+ var len3 = dataView(memory0).getInt32(ret + 8, true);
495
+ var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
496
+ variant4= {
497
+ tag: 'err',
498
+ val: result3
499
+ };
500
+ break;
501
+ }
502
+ default: {
503
+ throw new TypeError('invalid variant discriminant for expected');
504
+ }
505
+ }
506
+ const retVal = variant4;
507
+ postReturn2(ret);
508
+ if (typeof retVal === 'object' && retVal.tag === 'err') {
509
+ throw new ComponentError(retVal.val);
510
+ }
511
+ return retVal.val;
512
+ }
513
+
514
+ function isValidEmail(arg0, arg1) {
515
+ var ptr0 = utf8Encode(arg0, realloc0, memory0);
516
+ var len0 = utf8EncodedLen;
517
+ var variant7 = arg1;
518
+ let variant7_0;
519
+ let variant7_1;
520
+ let variant7_2;
521
+ let variant7_3;
522
+ let variant7_4;
523
+ switch (variant7.tag) {
524
+ case 'allow-email-validation-config': {
525
+ const e = variant7.val;
526
+ var {requireTopLevelDomain: v1_0, allowDomainLiteral: v1_1, allow: v1_2 } = e;
527
+ var vec3 = v1_2;
528
+ var len3 = vec3.length;
529
+ var result3 = realloc0(0, 0, 4, len3 * 8);
530
+ for (let i = 0; i < vec3.length; i++) {
531
+ const e = vec3[i];
532
+ const base = result3 + i * 8;var ptr2 = utf8Encode(e, realloc0, memory0);
533
+ var len2 = utf8EncodedLen;
534
+ dataView(memory0).setInt32(base + 4, len2, true);
535
+ dataView(memory0).setInt32(base + 0, ptr2, true);
536
+ }
537
+ variant7_0 = 0;
538
+ variant7_1 = v1_0 ? 1 : 0;
539
+ variant7_2 = v1_1 ? 1 : 0;
540
+ variant7_3 = result3;
541
+ variant7_4 = len3;
542
+ break;
543
+ }
544
+ case 'deny-email-validation-config': {
545
+ const e = variant7.val;
546
+ var {requireTopLevelDomain: v4_0, allowDomainLiteral: v4_1, deny: v4_2 } = e;
547
+ var vec6 = v4_2;
548
+ var len6 = vec6.length;
549
+ var result6 = realloc0(0, 0, 4, len6 * 8);
550
+ for (let i = 0; i < vec6.length; i++) {
551
+ const e = vec6[i];
552
+ const base = result6 + i * 8;var ptr5 = utf8Encode(e, realloc0, memory0);
553
+ var len5 = utf8EncodedLen;
554
+ dataView(memory0).setInt32(base + 4, len5, true);
555
+ dataView(memory0).setInt32(base + 0, ptr5, true);
556
+ }
557
+ variant7_0 = 1;
558
+ variant7_1 = v4_0 ? 1 : 0;
559
+ variant7_2 = v4_1 ? 1 : 0;
560
+ variant7_3 = result6;
561
+ variant7_4 = len6;
562
+ break;
563
+ }
564
+ default: {
565
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`EmailValidationConfig\``);
566
+ }
567
+ }
568
+ const ret = exports1['is-valid-email'](ptr0, len0, variant7_0, variant7_1, variant7_2, variant7_3, variant7_4);
569
+ let variant12;
570
+ switch (dataView(memory0).getUint8(ret + 0, true)) {
571
+ case 0: {
572
+ let enum8;
573
+ switch (dataView(memory0).getUint8(ret + 4, true)) {
574
+ case 0: {
575
+ enum8 = 'valid';
576
+ break;
577
+ }
578
+ case 1: {
579
+ enum8 = 'invalid';
580
+ break;
581
+ }
582
+ default: {
583
+ throw new TypeError('invalid discriminant specified for EmailValidity');
584
+ }
585
+ }
586
+ var len10 = dataView(memory0).getInt32(ret + 12, true);
587
+ var base10 = dataView(memory0).getInt32(ret + 8, true);
588
+ var result10 = [];
589
+ for (let i = 0; i < len10; i++) {
590
+ const base = base10 + i * 8;
591
+ var ptr9 = dataView(memory0).getInt32(base + 0, true);
592
+ var len9 = dataView(memory0).getInt32(base + 4, true);
593
+ var result9 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr9, len9));
594
+ result10.push(result9);
595
+ }
596
+ variant12= {
597
+ tag: 'ok',
598
+ val: {
599
+ validity: enum8,
600
+ blocked: result10,
601
+ }
602
+ };
603
+ break;
604
+ }
605
+ case 1: {
606
+ var ptr11 = dataView(memory0).getInt32(ret + 4, true);
607
+ var len11 = dataView(memory0).getInt32(ret + 8, true);
608
+ var result11 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr11, len11));
609
+ variant12= {
610
+ tag: 'err',
611
+ val: result11
612
+ };
613
+ break;
614
+ }
615
+ default: {
616
+ throw new TypeError('invalid variant discriminant for expected');
617
+ }
618
+ }
619
+ const retVal = variant12;
620
+ postReturn3(ret);
621
+ if (typeof retVal === 'object' && retVal.tag === 'err') {
622
+ throw new ComponentError(retVal.val);
623
+ }
624
+ return retVal.val;
625
+ }
626
+
627
+ function detectSensitiveInfo(arg0, arg1) {
628
+ var ptr0 = utf8Encode(arg0, realloc0, memory0);
629
+ var len0 = utf8EncodedLen;
630
+ var {entities: v1_0, contextWindowSize: v1_1, skipCustomDetect: v1_2 } = arg1;
631
+ var variant8 = v1_0;
632
+ let variant8_0;
633
+ let variant8_1;
634
+ let variant8_2;
635
+ switch (variant8.tag) {
636
+ case 'allow': {
637
+ const e = variant8.val;
638
+ var vec4 = e;
639
+ var len4 = vec4.length;
640
+ var result4 = realloc0(0, 0, 4, len4 * 12);
641
+ for (let i = 0; i < vec4.length; i++) {
642
+ const e = vec4[i];
643
+ const base = result4 + i * 12;var variant3 = e;
644
+ switch (variant3.tag) {
645
+ case 'email': {
646
+ dataView(memory0).setInt8(base + 0, 0, true);
647
+ break;
648
+ }
649
+ case 'phone-number': {
650
+ dataView(memory0).setInt8(base + 0, 1, true);
651
+ break;
652
+ }
653
+ case 'ip-address': {
654
+ dataView(memory0).setInt8(base + 0, 2, true);
655
+ break;
656
+ }
657
+ case 'credit-card-number': {
658
+ dataView(memory0).setInt8(base + 0, 3, true);
659
+ break;
660
+ }
661
+ case 'custom': {
662
+ const e = variant3.val;
663
+ dataView(memory0).setInt8(base + 0, 4, true);
664
+ var ptr2 = utf8Encode(e, realloc0, memory0);
665
+ var len2 = utf8EncodedLen;
666
+ dataView(memory0).setInt32(base + 8, len2, true);
667
+ dataView(memory0).setInt32(base + 4, ptr2, true);
668
+ break;
669
+ }
670
+ default: {
671
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``);
672
+ }
673
+ }
674
+ }
675
+ variant8_0 = 0;
676
+ variant8_1 = result4;
677
+ variant8_2 = len4;
678
+ break;
679
+ }
680
+ case 'deny': {
681
+ const e = variant8.val;
682
+ var vec7 = e;
683
+ var len7 = vec7.length;
684
+ var result7 = realloc0(0, 0, 4, len7 * 12);
685
+ for (let i = 0; i < vec7.length; i++) {
686
+ const e = vec7[i];
687
+ const base = result7 + i * 12;var variant6 = e;
688
+ switch (variant6.tag) {
689
+ case 'email': {
690
+ dataView(memory0).setInt8(base + 0, 0, true);
691
+ break;
692
+ }
693
+ case 'phone-number': {
694
+ dataView(memory0).setInt8(base + 0, 1, true);
695
+ break;
696
+ }
697
+ case 'ip-address': {
698
+ dataView(memory0).setInt8(base + 0, 2, true);
699
+ break;
700
+ }
701
+ case 'credit-card-number': {
702
+ dataView(memory0).setInt8(base + 0, 3, true);
703
+ break;
704
+ }
705
+ case 'custom': {
706
+ const e = variant6.val;
707
+ dataView(memory0).setInt8(base + 0, 4, true);
708
+ var ptr5 = utf8Encode(e, realloc0, memory0);
709
+ var len5 = utf8EncodedLen;
710
+ dataView(memory0).setInt32(base + 8, len5, true);
711
+ dataView(memory0).setInt32(base + 4, ptr5, true);
712
+ break;
713
+ }
714
+ default: {
715
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant6.tag)}\` (received \`${variant6}\`) specified for \`SensitiveInfoEntity\``);
716
+ }
717
+ }
718
+ }
719
+ variant8_0 = 1;
720
+ variant8_1 = result7;
721
+ variant8_2 = len7;
722
+ break;
723
+ }
724
+ default: {
725
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant8.tag)}\` (received \`${variant8}\`) specified for \`SensitiveInfoEntities\``);
726
+ }
727
+ }
728
+ var variant9 = v1_1;
729
+ let variant9_0;
730
+ let variant9_1;
731
+ if (variant9 === null || variant9=== undefined) {
732
+ variant9_0 = 0;
733
+ variant9_1 = 0;
734
+ } else {
735
+ const e = variant9;
736
+ variant9_0 = 1;
737
+ variant9_1 = toUint32(e);
738
+ }
739
+ const ret = exports1['detect-sensitive-info'](ptr0, len0, variant8_0, variant8_1, variant8_2, variant9_0, variant9_1, v1_2 ? 1 : 0);
740
+ var len12 = dataView(memory0).getInt32(ret + 4, true);
741
+ var base12 = dataView(memory0).getInt32(ret + 0, true);
742
+ var result12 = [];
743
+ for (let i = 0; i < len12; i++) {
744
+ const base = base12 + i * 20;
745
+ let variant11;
746
+ switch (dataView(memory0).getUint8(base + 8, true)) {
747
+ case 0: {
748
+ variant11= {
749
+ tag: 'email',
750
+ };
751
+ break;
752
+ }
753
+ case 1: {
754
+ variant11= {
755
+ tag: 'phone-number',
756
+ };
757
+ break;
758
+ }
759
+ case 2: {
760
+ variant11= {
761
+ tag: 'ip-address',
762
+ };
763
+ break;
764
+ }
765
+ case 3: {
766
+ variant11= {
767
+ tag: 'credit-card-number',
768
+ };
769
+ break;
770
+ }
771
+ case 4: {
772
+ var ptr10 = dataView(memory0).getInt32(base + 12, true);
773
+ var len10 = dataView(memory0).getInt32(base + 16, true);
774
+ var result10 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr10, len10));
775
+ variant11= {
776
+ tag: 'custom',
777
+ val: result10
778
+ };
779
+ break;
780
+ }
781
+ default: {
782
+ throw new TypeError('invalid variant discriminant for SensitiveInfoEntity');
783
+ }
784
+ }
785
+ result12.push({
786
+ start: dataView(memory0).getInt32(base + 0, true) >>> 0,
787
+ end: dataView(memory0).getInt32(base + 4, true) >>> 0,
788
+ identifiedType: variant11,
789
+ });
790
+ }
791
+ var len15 = dataView(memory0).getInt32(ret + 12, true);
792
+ var base15 = dataView(memory0).getInt32(ret + 8, true);
793
+ var result15 = [];
794
+ for (let i = 0; i < len15; i++) {
795
+ const base = base15 + i * 20;
796
+ let variant14;
797
+ switch (dataView(memory0).getUint8(base + 8, true)) {
798
+ case 0: {
799
+ variant14= {
800
+ tag: 'email',
801
+ };
802
+ break;
803
+ }
804
+ case 1: {
805
+ variant14= {
806
+ tag: 'phone-number',
807
+ };
808
+ break;
809
+ }
810
+ case 2: {
811
+ variant14= {
812
+ tag: 'ip-address',
813
+ };
814
+ break;
815
+ }
816
+ case 3: {
817
+ variant14= {
818
+ tag: 'credit-card-number',
819
+ };
820
+ break;
821
+ }
822
+ case 4: {
823
+ var ptr13 = dataView(memory0).getInt32(base + 12, true);
824
+ var len13 = dataView(memory0).getInt32(base + 16, true);
825
+ var result13 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr13, len13));
826
+ variant14= {
827
+ tag: 'custom',
828
+ val: result13
829
+ };
830
+ break;
831
+ }
832
+ default: {
833
+ throw new TypeError('invalid variant discriminant for SensitiveInfoEntity');
834
+ }
835
+ }
836
+ result15.push({
837
+ start: dataView(memory0).getInt32(base + 0, true) >>> 0,
838
+ end: dataView(memory0).getInt32(base + 4, true) >>> 0,
839
+ identifiedType: variant14,
840
+ });
841
+ }
842
+ const retVal = {
843
+ allowed: result12,
844
+ denied: result15,
845
+ };
846
+ postReturn4(ret);
847
+ return retVal;
848
+ }
849
+
850
+ return { detectBot, detectSensitiveInfo, generateFingerprint, isValidEmail, validateCharacteristics, };
851
+ })();
852
+ let promise, resolve, reject;
853
+ function runNext (value) {
854
+ try {
855
+ let done;
856
+ do {
857
+ ({ value, done } = gen.next(value));
858
+ } while (!(value instanceof Promise) && !done);
859
+ if (done) {
860
+ if (resolve) resolve(value);
861
+ else return value;
862
+ }
863
+ if (!promise) promise = new Promise((_resolve, _reject) => (resolve = _resolve, reject = _reject));
864
+ value.then(nextVal => done ? resolve() : runNext(nextVal), reject);
865
+ }
866
+ catch (e) {
867
+ if (reject) reject(e);
868
+ else throw e;
869
+ }
870
+ }
871
+ const maybeSyncReturn = runNext(null);
872
+ return promise || maybeSyncReturn;
873
+ }
874
+
875
+ export { instantiate };