@arcjet/analyze 1.0.0-alpha.21 → 1.0.0-alpha.23

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