@prosopo/types 3.6.4 → 4.3.0
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/.turbo/turbo-build$colon$cjs.log +48 -42
- package/.turbo/turbo-build$colon$tsc.log +23 -0
- package/.turbo/turbo-build.log +53 -43
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +566 -0
- package/dist/api/api.d.ts +26 -8
- package/dist/api/api.d.ts.map +1 -1
- package/dist/api/api.js.map +1 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/ipapi.d.ts +2 -1
- package/dist/api/ipapi.d.ts.map +1 -1
- package/dist/api/ipapi.js.map +1 -0
- package/dist/api/params.d.ts +26 -1
- package/dist/api/params.d.ts.map +1 -1
- package/dist/api/params.js +25 -0
- package/dist/api/params.js.map +1 -0
- package/dist/cjs/api/params.cjs +25 -0
- package/dist/cjs/client/captchaType/captchaType.cjs +16 -1
- package/dist/cjs/client/index.cjs +17 -0
- package/dist/cjs/client/settings.cjs +88 -6
- package/dist/cjs/client/testSiteKeys.cjs +22 -0
- package/dist/cjs/config/config.cjs +25 -19
- package/dist/cjs/config/index.cjs +6 -2
- package/dist/cjs/config/mode.cjs +15 -0
- package/dist/cjs/config/timeouts.cjs +6 -0
- package/dist/cjs/decisionMachine/index.cjs +85 -0
- package/dist/cjs/index.cjs +81 -2
- package/dist/cjs/procaptcha/behavioral.cjs +1 -0
- package/dist/cjs/procaptcha/index.cjs +1 -0
- package/dist/cjs/provider/api.cjs +263 -9
- package/dist/cjs/provider/database.cjs +253 -0
- package/dist/cjs/provider/index.cjs +43 -0
- package/dist/cjs/provider/reasons.cjs +45 -0
- package/dist/cjs/provider/scheduler.cjs +1 -0
- package/dist/client/captchaType/captchaType.d.ts +3 -2
- package/dist/client/captchaType/captchaType.d.ts.map +1 -1
- package/dist/client/captchaType/captchaType.js +17 -2
- package/dist/client/captchaType/captchaType.js.map +1 -0
- package/dist/client/captchaType/captchaTypeSpec.js.map +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +20 -3
- package/dist/client/index.js.map +1 -0
- package/dist/client/settings.d.ts +278 -2
- package/dist/client/settings.d.ts.map +1 -1
- package/dist/client/settings.js +89 -7
- package/dist/client/settings.js.map +1 -0
- package/dist/client/testSiteKeys.d.ts +8 -0
- package/dist/client/testSiteKeys.d.ts.map +1 -0
- package/dist/client/testSiteKeys.js +22 -0
- package/dist/client/testSiteKeys.js.map +1 -0
- package/dist/client/user.js.map +1 -0
- package/dist/config/config.d.ts +371 -30
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +25 -19
- package/dist/config/config.js.map +1 -0
- package/dist/config/enumMap.js +6 -0
- package/dist/config/enumMap.js.map +1 -0
- package/dist/config/frictionless.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -2
- package/dist/config/index.js.map +1 -0
- package/dist/config/mode.d.ts +8 -0
- package/dist/config/mode.d.ts.map +1 -0
- package/dist/config/mode.js +15 -0
- package/dist/config/mode.js.map +1 -0
- package/dist/config/network.js.map +1 -0
- package/dist/config/timeouts.d.ts +3 -0
- package/dist/config/timeouts.d.ts.map +1 -1
- package/dist/config/timeouts.js +7 -1
- package/dist/config/timeouts.js.map +1 -0
- package/dist/datasets/assets.js.map +1 -0
- package/dist/datasets/captcha.d.ts +2 -2
- package/dist/datasets/captcha.d.ts.map +1 -1
- package/dist/datasets/captcha.js.map +1 -0
- package/dist/datasets/dataset.js.map +1 -0
- package/dist/datasets/index.js.map +1 -0
- package/dist/datasets/merkle.js.map +1 -0
- package/dist/decisionMachine/index.d.ts +174 -0
- package/dist/decisionMachine/index.d.ts.map +1 -0
- package/dist/decisionMachine/index.js +85 -0
- package/dist/decisionMachine/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -6
- package/dist/index.js.map +1 -0
- package/dist/keyring/index.js.map +1 -0
- package/dist/keyring/keyring/types.d.ts +8 -1
- package/dist/keyring/keyring/types.d.ts.map +1 -1
- package/dist/keyring/keyring/types.js.map +1 -0
- package/dist/keyring/pair/types.js.map +1 -0
- package/dist/procaptcha/api.d.ts +3 -2
- package/dist/procaptcha/api.d.ts.map +1 -1
- package/dist/procaptcha/api.js.map +1 -0
- package/dist/procaptcha/behavioral.d.ts +49 -0
- package/dist/procaptcha/behavioral.d.ts.map +1 -0
- package/dist/procaptcha/behavioral.js +1 -0
- package/dist/procaptcha/behavioral.js.map +1 -0
- package/dist/procaptcha/client.js.map +1 -0
- package/dist/procaptcha/collector.js.map +1 -0
- package/dist/procaptcha/index.d.ts +1 -0
- package/dist/procaptcha/index.d.ts.map +1 -1
- package/dist/procaptcha/index.js +1 -0
- package/dist/procaptcha/index.js.map +1 -0
- package/dist/procaptcha/manager.js.map +1 -0
- package/dist/procaptcha/props.d.ts +27 -0
- package/dist/procaptcha/props.d.ts.map +1 -1
- package/dist/procaptcha/props.js.map +1 -0
- package/dist/procaptcha/token.js.map +1 -0
- package/dist/procaptcha/utils.js.map +1 -0
- package/dist/procaptcha-bundle/index.d.ts +0 -3
- package/dist/procaptcha-bundle/index.d.ts.map +1 -1
- package/dist/procaptcha-bundle/index.js.map +1 -0
- package/dist/procaptcha-frictionless/index.js.map +1 -0
- package/dist/procaptcha-frictionless/props.d.ts +23 -0
- package/dist/procaptcha-frictionless/props.d.ts.map +1 -1
- package/dist/procaptcha-frictionless/props.js.map +1 -0
- package/dist/provider/accounts.js.map +1 -0
- package/dist/provider/api.d.ts +1663 -116
- package/dist/provider/api.d.ts.map +1 -1
- package/dist/provider/api.js +263 -9
- package/dist/provider/api.js.map +1 -0
- package/dist/provider/database.d.ts +1376 -0
- package/dist/provider/database.d.ts.map +1 -0
- package/dist/provider/database.js +253 -0
- package/dist/provider/database.js.map +1 -0
- package/dist/provider/detection.d.ts +21 -0
- package/dist/provider/detection.d.ts.map +1 -1
- package/dist/provider/detection.js.map +1 -0
- package/dist/provider/index.d.ts +2 -0
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +44 -1
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/reasons.d.ts +40 -0
- package/dist/provider/reasons.d.ts.map +1 -0
- package/dist/provider/reasons.js +45 -0
- package/dist/provider/reasons.js.map +1 -0
- package/dist/provider/scheduler.d.ts +2 -1
- package/dist/provider/scheduler.d.ts.map +1 -1
- package/dist/provider/scheduler.js +1 -0
- package/dist/provider/scheduler.js.map +1 -0
- package/package.json +9 -7
- package/vite.cjs.config.ts +1 -1
- package/vite.esm.config.ts +1 -1
|
@@ -5,7 +5,9 @@ export declare const domainsDefault: string[];
|
|
|
5
5
|
export declare const frictionlessThresholdDefault = 0.5;
|
|
6
6
|
export declare const powDifficultyDefault = 4;
|
|
7
7
|
export declare const imageThresholdDefault = 0.8;
|
|
8
|
+
export declare const imageMaxRoundsDefault = 32;
|
|
8
9
|
export declare const contextAwareThresholdDefault = 0.7;
|
|
10
|
+
export declare const puzzleToleranceDefault = 15;
|
|
9
11
|
export declare enum IPValidationAction {
|
|
10
12
|
Allow = "allow",
|
|
11
13
|
Reject = "reject",
|
|
@@ -72,6 +74,7 @@ declare const IPValidationSchema: z.ZodObject<{
|
|
|
72
74
|
requireAllConditions?: boolean | undefined;
|
|
73
75
|
}>;
|
|
74
76
|
export declare const IPValidationRulesSchema: z.ZodObject<{
|
|
77
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
75
78
|
actions: z.ZodObject<{
|
|
76
79
|
countryChangeAction: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof IPValidationAction>>>;
|
|
77
80
|
cityChangeAction: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof IPValidationAction>>>;
|
|
@@ -152,6 +155,7 @@ export declare const IPValidationRulesSchema: z.ZodObject<{
|
|
|
152
155
|
distanceThresholdKm: number;
|
|
153
156
|
abuseScoreThreshold: number;
|
|
154
157
|
requireAllConditions: boolean;
|
|
158
|
+
enabled: boolean;
|
|
155
159
|
forceConsistentIp: boolean;
|
|
156
160
|
countryOverrides?: Record<string, {
|
|
157
161
|
actions: {
|
|
@@ -176,6 +180,7 @@ export declare const IPValidationRulesSchema: z.ZodObject<{
|
|
|
176
180
|
distanceThresholdKm?: number | undefined;
|
|
177
181
|
abuseScoreThreshold?: number | undefined;
|
|
178
182
|
requireAllConditions?: boolean | undefined;
|
|
183
|
+
enabled?: boolean | undefined;
|
|
179
184
|
countryOverrides?: Record<string, {
|
|
180
185
|
actions: {
|
|
181
186
|
countryChangeAction?: IPValidationAction | undefined;
|
|
@@ -243,13 +248,132 @@ declare const ContextAwareSchema: z.ZodObject<{
|
|
|
243
248
|
enabled?: boolean | undefined;
|
|
244
249
|
}>;
|
|
245
250
|
export type IContextAware = z.infer<typeof ContextAwareSchema>;
|
|
251
|
+
export declare const maxLocalPartDotsDefault = 2;
|
|
252
|
+
export declare const EmailSpamRulesSchema: z.ZodObject<{
|
|
253
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
254
|
+
maxLocalPartDots: z.ZodOptional<z.ZodNumber>;
|
|
255
|
+
normaliseGmail: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
256
|
+
useDefaultPatterns: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
257
|
+
customRegexBlocklist: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, "many">>>;
|
|
258
|
+
}, "strip", z.ZodTypeAny, {
|
|
259
|
+
enabled: boolean;
|
|
260
|
+
normaliseGmail: boolean;
|
|
261
|
+
useDefaultPatterns: boolean;
|
|
262
|
+
customRegexBlocklist: string[];
|
|
263
|
+
maxLocalPartDots?: number | undefined;
|
|
264
|
+
}, {
|
|
265
|
+
enabled?: boolean | undefined;
|
|
266
|
+
maxLocalPartDots?: number | undefined;
|
|
267
|
+
normaliseGmail?: boolean | undefined;
|
|
268
|
+
useDefaultPatterns?: boolean | undefined;
|
|
269
|
+
customRegexBlocklist?: string[] | undefined;
|
|
270
|
+
}>;
|
|
271
|
+
export declare const SpamFilterRulesSchema: z.ZodObject<{
|
|
272
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
273
|
+
emailRules: z.ZodOptional<z.ZodObject<{
|
|
274
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
275
|
+
maxLocalPartDots: z.ZodOptional<z.ZodNumber>;
|
|
276
|
+
normaliseGmail: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
277
|
+
useDefaultPatterns: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
278
|
+
customRegexBlocklist: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, "many">>>;
|
|
279
|
+
}, "strip", z.ZodTypeAny, {
|
|
280
|
+
enabled: boolean;
|
|
281
|
+
normaliseGmail: boolean;
|
|
282
|
+
useDefaultPatterns: boolean;
|
|
283
|
+
customRegexBlocklist: string[];
|
|
284
|
+
maxLocalPartDots?: number | undefined;
|
|
285
|
+
}, {
|
|
286
|
+
enabled?: boolean | undefined;
|
|
287
|
+
maxLocalPartDots?: number | undefined;
|
|
288
|
+
normaliseGmail?: boolean | undefined;
|
|
289
|
+
useDefaultPatterns?: boolean | undefined;
|
|
290
|
+
customRegexBlocklist?: string[] | undefined;
|
|
291
|
+
}>>;
|
|
292
|
+
}, "strip", z.ZodTypeAny, {
|
|
293
|
+
enabled: boolean;
|
|
294
|
+
emailRules?: {
|
|
295
|
+
enabled: boolean;
|
|
296
|
+
normaliseGmail: boolean;
|
|
297
|
+
useDefaultPatterns: boolean;
|
|
298
|
+
customRegexBlocklist: string[];
|
|
299
|
+
maxLocalPartDots?: number | undefined;
|
|
300
|
+
} | undefined;
|
|
301
|
+
}, {
|
|
302
|
+
enabled?: boolean | undefined;
|
|
303
|
+
emailRules?: {
|
|
304
|
+
enabled?: boolean | undefined;
|
|
305
|
+
maxLocalPartDots?: number | undefined;
|
|
306
|
+
normaliseGmail?: boolean | undefined;
|
|
307
|
+
useDefaultPatterns?: boolean | undefined;
|
|
308
|
+
customRegexBlocklist?: string[] | undefined;
|
|
309
|
+
} | undefined;
|
|
310
|
+
}>;
|
|
311
|
+
export declare const trafficFilterAbuserScoreThresholdDefault = 0.5;
|
|
312
|
+
export declare const TrafficFilterSchema: z.ZodObject<{
|
|
313
|
+
blockVpn: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
314
|
+
blockProxy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
315
|
+
blockTor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
316
|
+
blockAbuser: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
317
|
+
abuserScoreThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
318
|
+
blockDatacenter: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
319
|
+
blockMobile: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
320
|
+
blockSatellite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
321
|
+
blockCrawler: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
322
|
+
}, "strip", z.ZodTypeAny, {
|
|
323
|
+
blockVpn: boolean;
|
|
324
|
+
blockProxy: boolean;
|
|
325
|
+
blockTor: boolean;
|
|
326
|
+
blockAbuser: boolean;
|
|
327
|
+
abuserScoreThreshold: number;
|
|
328
|
+
blockDatacenter: boolean;
|
|
329
|
+
blockMobile: boolean;
|
|
330
|
+
blockSatellite: boolean;
|
|
331
|
+
blockCrawler: boolean;
|
|
332
|
+
}, {
|
|
333
|
+
blockVpn?: boolean | undefined;
|
|
334
|
+
blockProxy?: boolean | undefined;
|
|
335
|
+
blockTor?: boolean | undefined;
|
|
336
|
+
blockAbuser?: boolean | undefined;
|
|
337
|
+
abuserScoreThreshold?: number | undefined;
|
|
338
|
+
blockDatacenter?: boolean | undefined;
|
|
339
|
+
blockMobile?: boolean | undefined;
|
|
340
|
+
blockSatellite?: boolean | undefined;
|
|
341
|
+
blockCrawler?: boolean | undefined;
|
|
342
|
+
}>;
|
|
343
|
+
export type IEmailSpamRules = output<typeof EmailSpamRulesSchema>;
|
|
344
|
+
export type ISpamFilterRules = output<typeof SpamFilterRulesSchema>;
|
|
345
|
+
export type ITrafficFilter = output<typeof TrafficFilterSchema>;
|
|
346
|
+
export declare enum EncodingType {
|
|
347
|
+
morse = "morse",
|
|
348
|
+
semaphore = "semaphore"
|
|
349
|
+
}
|
|
350
|
+
export declare const EncodingTypeSchema: z.ZodNativeEnum<typeof EncodingType>;
|
|
351
|
+
export declare const honeypotEncodingTypeDefault = EncodingType.morse;
|
|
352
|
+
export declare const HoneypotSettingsSchema: z.ZodObject<{
|
|
353
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
354
|
+
question: z.ZodOptional<z.ZodString>;
|
|
355
|
+
encodingType: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof EncodingType>>>;
|
|
356
|
+
}, "strip", z.ZodTypeAny, {
|
|
357
|
+
enabled: boolean;
|
|
358
|
+
encodingType: EncodingType;
|
|
359
|
+
question?: string | undefined;
|
|
360
|
+
}, {
|
|
361
|
+
enabled?: boolean | undefined;
|
|
362
|
+
question?: string | undefined;
|
|
363
|
+
encodingType?: EncodingType | undefined;
|
|
364
|
+
}>;
|
|
365
|
+
export type IHoneypotSettings = output<typeof HoneypotSettingsSchema>;
|
|
246
366
|
export declare const ClientSettingsSchema: z.ZodObject<{
|
|
247
367
|
captchaType: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof CaptchaType>>>;
|
|
248
|
-
domains: z.
|
|
368
|
+
domains: z.ZodArray<z.ZodString, "many">;
|
|
249
369
|
frictionlessThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
250
370
|
powDifficulty: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
251
371
|
imageThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
372
|
+
imageMaxRounds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
373
|
+
autoBanScoreThreshold: z.ZodOptional<z.ZodNumber>;
|
|
374
|
+
puzzleTolerance: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
252
375
|
ipValidationRules: z.ZodOptional<z.ZodObject<{
|
|
376
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
253
377
|
actions: z.ZodObject<{
|
|
254
378
|
countryChangeAction: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof IPValidationAction>>>;
|
|
255
379
|
cityChangeAction: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof IPValidationAction>>>;
|
|
@@ -330,6 +454,7 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
330
454
|
distanceThresholdKm: number;
|
|
331
455
|
abuseScoreThreshold: number;
|
|
332
456
|
requireAllConditions: boolean;
|
|
457
|
+
enabled: boolean;
|
|
333
458
|
forceConsistentIp: boolean;
|
|
334
459
|
countryOverrides?: Record<string, {
|
|
335
460
|
actions: {
|
|
@@ -354,6 +479,7 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
354
479
|
distanceThresholdKm?: number | undefined;
|
|
355
480
|
abuseScoreThreshold?: number | undefined;
|
|
356
481
|
requireAllConditions?: boolean | undefined;
|
|
482
|
+
enabled?: boolean | undefined;
|
|
357
483
|
countryOverrides?: Record<string, {
|
|
358
484
|
actions: {
|
|
359
485
|
countryChangeAction?: IPValidationAction | undefined;
|
|
@@ -394,12 +520,101 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
394
520
|
}>>;
|
|
395
521
|
enabled?: boolean | undefined;
|
|
396
522
|
}>>;
|
|
523
|
+
spamEmailDomainCheckEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
524
|
+
spamFilter: z.ZodOptional<z.ZodObject<{
|
|
525
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
526
|
+
emailRules: z.ZodOptional<z.ZodObject<{
|
|
527
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
528
|
+
maxLocalPartDots: z.ZodOptional<z.ZodNumber>;
|
|
529
|
+
normaliseGmail: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
530
|
+
useDefaultPatterns: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
531
|
+
customRegexBlocklist: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, "many">>>;
|
|
532
|
+
}, "strip", z.ZodTypeAny, {
|
|
533
|
+
enabled: boolean;
|
|
534
|
+
normaliseGmail: boolean;
|
|
535
|
+
useDefaultPatterns: boolean;
|
|
536
|
+
customRegexBlocklist: string[];
|
|
537
|
+
maxLocalPartDots?: number | undefined;
|
|
538
|
+
}, {
|
|
539
|
+
enabled?: boolean | undefined;
|
|
540
|
+
maxLocalPartDots?: number | undefined;
|
|
541
|
+
normaliseGmail?: boolean | undefined;
|
|
542
|
+
useDefaultPatterns?: boolean | undefined;
|
|
543
|
+
customRegexBlocklist?: string[] | undefined;
|
|
544
|
+
}>>;
|
|
545
|
+
}, "strip", z.ZodTypeAny, {
|
|
546
|
+
enabled: boolean;
|
|
547
|
+
emailRules?: {
|
|
548
|
+
enabled: boolean;
|
|
549
|
+
normaliseGmail: boolean;
|
|
550
|
+
useDefaultPatterns: boolean;
|
|
551
|
+
customRegexBlocklist: string[];
|
|
552
|
+
maxLocalPartDots?: number | undefined;
|
|
553
|
+
} | undefined;
|
|
554
|
+
}, {
|
|
555
|
+
enabled?: boolean | undefined;
|
|
556
|
+
emailRules?: {
|
|
557
|
+
enabled?: boolean | undefined;
|
|
558
|
+
maxLocalPartDots?: number | undefined;
|
|
559
|
+
normaliseGmail?: boolean | undefined;
|
|
560
|
+
useDefaultPatterns?: boolean | undefined;
|
|
561
|
+
customRegexBlocklist?: string[] | undefined;
|
|
562
|
+
} | undefined;
|
|
563
|
+
}>>;
|
|
564
|
+
trafficFilter: z.ZodOptional<z.ZodObject<{
|
|
565
|
+
blockVpn: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
566
|
+
blockProxy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
567
|
+
blockTor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
568
|
+
blockAbuser: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
569
|
+
abuserScoreThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
570
|
+
blockDatacenter: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
571
|
+
blockMobile: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
572
|
+
blockSatellite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
573
|
+
blockCrawler: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
574
|
+
}, "strip", z.ZodTypeAny, {
|
|
575
|
+
blockVpn: boolean;
|
|
576
|
+
blockProxy: boolean;
|
|
577
|
+
blockTor: boolean;
|
|
578
|
+
blockAbuser: boolean;
|
|
579
|
+
abuserScoreThreshold: number;
|
|
580
|
+
blockDatacenter: boolean;
|
|
581
|
+
blockMobile: boolean;
|
|
582
|
+
blockSatellite: boolean;
|
|
583
|
+
blockCrawler: boolean;
|
|
584
|
+
}, {
|
|
585
|
+
blockVpn?: boolean | undefined;
|
|
586
|
+
blockProxy?: boolean | undefined;
|
|
587
|
+
blockTor?: boolean | undefined;
|
|
588
|
+
blockAbuser?: boolean | undefined;
|
|
589
|
+
abuserScoreThreshold?: number | undefined;
|
|
590
|
+
blockDatacenter?: boolean | undefined;
|
|
591
|
+
blockMobile?: boolean | undefined;
|
|
592
|
+
blockSatellite?: boolean | undefined;
|
|
593
|
+
blockCrawler?: boolean | undefined;
|
|
594
|
+
}>>;
|
|
595
|
+
storeMetadata: z.ZodOptional<z.ZodBoolean>;
|
|
596
|
+
honeypot: z.ZodOptional<z.ZodObject<{
|
|
597
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
598
|
+
question: z.ZodOptional<z.ZodString>;
|
|
599
|
+
encodingType: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof EncodingType>>>;
|
|
600
|
+
}, "strip", z.ZodTypeAny, {
|
|
601
|
+
enabled: boolean;
|
|
602
|
+
encodingType: EncodingType;
|
|
603
|
+
question?: string | undefined;
|
|
604
|
+
}, {
|
|
605
|
+
enabled?: boolean | undefined;
|
|
606
|
+
question?: string | undefined;
|
|
607
|
+
encodingType?: EncodingType | undefined;
|
|
608
|
+
}>>;
|
|
397
609
|
}, "strip", z.ZodTypeAny, {
|
|
398
610
|
captchaType: CaptchaType;
|
|
399
611
|
domains: string[];
|
|
400
612
|
frictionlessThreshold: number;
|
|
401
613
|
powDifficulty: number;
|
|
402
614
|
imageThreshold: number;
|
|
615
|
+
imageMaxRounds: number;
|
|
616
|
+
puzzleTolerance: number;
|
|
617
|
+
autoBanScoreThreshold?: number | undefined;
|
|
403
618
|
ipValidationRules?: {
|
|
404
619
|
actions: {
|
|
405
620
|
countryChangeAction: IPValidationAction;
|
|
@@ -411,6 +626,7 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
411
626
|
distanceThresholdKm: number;
|
|
412
627
|
abuseScoreThreshold: number;
|
|
413
628
|
requireAllConditions: boolean;
|
|
629
|
+
enabled: boolean;
|
|
414
630
|
forceConsistentIp: boolean;
|
|
415
631
|
countryOverrides?: Record<string, {
|
|
416
632
|
actions: {
|
|
@@ -433,12 +649,43 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
433
649
|
threshold: number;
|
|
434
650
|
}>>;
|
|
435
651
|
} | undefined;
|
|
652
|
+
spamEmailDomainCheckEnabled?: boolean | undefined;
|
|
653
|
+
spamFilter?: {
|
|
654
|
+
enabled: boolean;
|
|
655
|
+
emailRules?: {
|
|
656
|
+
enabled: boolean;
|
|
657
|
+
normaliseGmail: boolean;
|
|
658
|
+
useDefaultPatterns: boolean;
|
|
659
|
+
customRegexBlocklist: string[];
|
|
660
|
+
maxLocalPartDots?: number | undefined;
|
|
661
|
+
} | undefined;
|
|
662
|
+
} | undefined;
|
|
663
|
+
trafficFilter?: {
|
|
664
|
+
blockVpn: boolean;
|
|
665
|
+
blockProxy: boolean;
|
|
666
|
+
blockTor: boolean;
|
|
667
|
+
blockAbuser: boolean;
|
|
668
|
+
abuserScoreThreshold: number;
|
|
669
|
+
blockDatacenter: boolean;
|
|
670
|
+
blockMobile: boolean;
|
|
671
|
+
blockSatellite: boolean;
|
|
672
|
+
blockCrawler: boolean;
|
|
673
|
+
} | undefined;
|
|
674
|
+
storeMetadata?: boolean | undefined;
|
|
675
|
+
honeypot?: {
|
|
676
|
+
enabled: boolean;
|
|
677
|
+
encodingType: EncodingType;
|
|
678
|
+
question?: string | undefined;
|
|
679
|
+
} | undefined;
|
|
436
680
|
}, {
|
|
681
|
+
domains: string[];
|
|
437
682
|
captchaType?: CaptchaType | undefined;
|
|
438
|
-
domains?: string[] | undefined;
|
|
439
683
|
frictionlessThreshold?: number | undefined;
|
|
440
684
|
powDifficulty?: number | undefined;
|
|
441
685
|
imageThreshold?: number | undefined;
|
|
686
|
+
imageMaxRounds?: number | undefined;
|
|
687
|
+
autoBanScoreThreshold?: number | undefined;
|
|
688
|
+
puzzleTolerance?: number | undefined;
|
|
442
689
|
ipValidationRules?: {
|
|
443
690
|
actions: {
|
|
444
691
|
countryChangeAction?: IPValidationAction | undefined;
|
|
@@ -450,6 +697,7 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
450
697
|
distanceThresholdKm?: number | undefined;
|
|
451
698
|
abuseScoreThreshold?: number | undefined;
|
|
452
699
|
requireAllConditions?: boolean | undefined;
|
|
700
|
+
enabled?: boolean | undefined;
|
|
453
701
|
countryOverrides?: Record<string, {
|
|
454
702
|
actions: {
|
|
455
703
|
countryChangeAction?: IPValidationAction | undefined;
|
|
@@ -472,6 +720,34 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
472
720
|
}>>;
|
|
473
721
|
enabled?: boolean | undefined;
|
|
474
722
|
} | undefined;
|
|
723
|
+
spamEmailDomainCheckEnabled?: boolean | undefined;
|
|
724
|
+
spamFilter?: {
|
|
725
|
+
enabled?: boolean | undefined;
|
|
726
|
+
emailRules?: {
|
|
727
|
+
enabled?: boolean | undefined;
|
|
728
|
+
maxLocalPartDots?: number | undefined;
|
|
729
|
+
normaliseGmail?: boolean | undefined;
|
|
730
|
+
useDefaultPatterns?: boolean | undefined;
|
|
731
|
+
customRegexBlocklist?: string[] | undefined;
|
|
732
|
+
} | undefined;
|
|
733
|
+
} | undefined;
|
|
734
|
+
trafficFilter?: {
|
|
735
|
+
blockVpn?: boolean | undefined;
|
|
736
|
+
blockProxy?: boolean | undefined;
|
|
737
|
+
blockTor?: boolean | undefined;
|
|
738
|
+
blockAbuser?: boolean | undefined;
|
|
739
|
+
abuserScoreThreshold?: number | undefined;
|
|
740
|
+
blockDatacenter?: boolean | undefined;
|
|
741
|
+
blockMobile?: boolean | undefined;
|
|
742
|
+
blockSatellite?: boolean | undefined;
|
|
743
|
+
blockCrawler?: boolean | undefined;
|
|
744
|
+
} | undefined;
|
|
745
|
+
storeMetadata?: boolean | undefined;
|
|
746
|
+
honeypot?: {
|
|
747
|
+
enabled?: boolean | undefined;
|
|
748
|
+
question?: string | undefined;
|
|
749
|
+
encodingType?: EncodingType | undefined;
|
|
750
|
+
} | undefined;
|
|
475
751
|
}>;
|
|
476
752
|
export type IUserSettings = output<typeof ClientSettingsSchema>;
|
|
477
753
|
export type IIPValidationRules = output<typeof IPValidationRulesSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"AAaA,OAAO,EAAkC,KAAK,MAAM,EAAU,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,cAAc,EAAE,MAAM,EAAO,CAAC;AAC3C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,4BAA4B,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/client/settings.js
CHANGED
|
@@ -6,7 +6,9 @@ const domainsDefault = [];
|
|
|
6
6
|
const frictionlessThresholdDefault = 0.5;
|
|
7
7
|
const powDifficultyDefault = 4;
|
|
8
8
|
const imageThresholdDefault = 0.8;
|
|
9
|
+
const imageMaxRoundsDefault = 32;
|
|
9
10
|
const contextAwareThresholdDefault = 0.7;
|
|
11
|
+
const puzzleToleranceDefault = 15;
|
|
10
12
|
var IPValidationAction = /* @__PURE__ */ ((IPValidationAction2) => {
|
|
11
13
|
IPValidationAction2["Allow"] = "allow";
|
|
12
14
|
IPValidationAction2["Reject"] = "reject";
|
|
@@ -36,6 +38,7 @@ const IPValidationSchema = object({
|
|
|
36
38
|
requireAllConditions: boolean().optional()
|
|
37
39
|
});
|
|
38
40
|
const IPValidationRulesSchema = object({
|
|
41
|
+
enabled: boolean().optional().default(false),
|
|
39
42
|
actions: object({
|
|
40
43
|
countryChangeAction: IPValidationActionSchema.optional().default(
|
|
41
44
|
countryChangeActionDefault
|
|
@@ -68,7 +71,7 @@ var ContextType = /* @__PURE__ */ ((ContextType2) => {
|
|
|
68
71
|
const ContextTypeSchema = z.nativeEnum(ContextType);
|
|
69
72
|
const ContextConfigSchema = z.object({
|
|
70
73
|
type: ContextTypeSchema,
|
|
71
|
-
threshold: number().optional().default(contextAwareThresholdDefault)
|
|
74
|
+
threshold: number().min(Number((contextAwareThresholdDefault - 0.2).toFixed(2))).max(Number((contextAwareThresholdDefault + 0.2).toFixed(2))).optional().default(contextAwareThresholdDefault)
|
|
72
75
|
});
|
|
73
76
|
const ContextsSchema = z.record(
|
|
74
77
|
z.enum([
|
|
@@ -82,24 +85,98 @@ const ContextAwareSchema = object({
|
|
|
82
85
|
enabled: boolean().optional().default(false),
|
|
83
86
|
contexts: ContextsSchema
|
|
84
87
|
});
|
|
88
|
+
const maxLocalPartDotsDefault = 2;
|
|
89
|
+
const MAX_REGEX_PATTERN_LENGTH = 256;
|
|
90
|
+
const MAX_CUSTOM_REGEX_PATTERNS = 50;
|
|
91
|
+
const DANGEROUS_REGEX_TOKENS = /(\(\?[<!=])|(\(\?P[<])|(\(\?\{)|(\{[\d,]{4,})/;
|
|
92
|
+
const safeRegexPattern = string().max(MAX_REGEX_PATTERN_LENGTH).refine(
|
|
93
|
+
(raw) => {
|
|
94
|
+
try {
|
|
95
|
+
new RegExp(raw, "i");
|
|
96
|
+
return true;
|
|
97
|
+
} catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{ message: "Invalid regular expression syntax" }
|
|
102
|
+
).refine((raw) => !DANGEROUS_REGEX_TOKENS.test(raw), {
|
|
103
|
+
message: "Pattern uses disallowed features (lookahead, lookbehind, or large quantifiers)"
|
|
104
|
+
});
|
|
105
|
+
const EmailSpamRulesSchema = object({
|
|
106
|
+
enabled: boolean().optional().default(false),
|
|
107
|
+
maxLocalPartDots: number().int().min(0).optional(),
|
|
108
|
+
normaliseGmail: boolean().optional().default(false),
|
|
109
|
+
useDefaultPatterns: boolean().optional().default(false),
|
|
110
|
+
customRegexBlocklist: array(safeRegexPattern).max(MAX_CUSTOM_REGEX_PATTERNS).optional().default([])
|
|
111
|
+
});
|
|
112
|
+
const SpamFilterRulesSchema = object({
|
|
113
|
+
enabled: boolean().optional().default(false),
|
|
114
|
+
emailRules: EmailSpamRulesSchema.optional()
|
|
115
|
+
});
|
|
116
|
+
const trafficFilterAbuserScoreThresholdDefault = 0.5;
|
|
117
|
+
const TrafficFilterSchema = object({
|
|
118
|
+
blockVpn: boolean().optional().default(false),
|
|
119
|
+
blockProxy: boolean().optional().default(false),
|
|
120
|
+
blockTor: boolean().optional().default(false),
|
|
121
|
+
blockAbuser: boolean().optional().default(true),
|
|
122
|
+
abuserScoreThreshold: number().min(0).max(1).optional().default(trafficFilterAbuserScoreThresholdDefault),
|
|
123
|
+
blockDatacenter: boolean().optional().default(false),
|
|
124
|
+
blockMobile: boolean().optional().default(false),
|
|
125
|
+
blockSatellite: boolean().optional().default(false),
|
|
126
|
+
blockCrawler: boolean().optional().default(false)
|
|
127
|
+
});
|
|
128
|
+
var EncodingType = /* @__PURE__ */ ((EncodingType2) => {
|
|
129
|
+
EncodingType2["morse"] = "morse";
|
|
130
|
+
EncodingType2["semaphore"] = "semaphore";
|
|
131
|
+
return EncodingType2;
|
|
132
|
+
})(EncodingType || {});
|
|
133
|
+
const EncodingTypeSchema = z.nativeEnum(EncodingType);
|
|
134
|
+
const honeypotEncodingTypeDefault = "morse";
|
|
135
|
+
const HoneypotSettingsSchema = object({
|
|
136
|
+
enabled: boolean().optional().default(false),
|
|
137
|
+
question: string().optional(),
|
|
138
|
+
encodingType: EncodingTypeSchema.optional().default(
|
|
139
|
+
honeypotEncodingTypeDefault
|
|
140
|
+
)
|
|
141
|
+
});
|
|
85
142
|
const ClientSettingsSchema = object({
|
|
86
143
|
captchaType: CaptchaTypeSpec.optional().default(captchaTypeDefault),
|
|
87
|
-
domains: array(string()).
|
|
88
|
-
frictionlessThreshold: number().optional().default(frictionlessThresholdDefault),
|
|
89
|
-
powDifficulty: number().optional().default(powDifficultyDefault),
|
|
90
|
-
imageThreshold: number().optional().default(imageThresholdDefault),
|
|
144
|
+
domains: array(string()).min(1),
|
|
145
|
+
frictionlessThreshold: number().min(0).max(1).optional().default(frictionlessThresholdDefault),
|
|
146
|
+
powDifficulty: number().int().positive().min(1).max(10).optional().default(powDifficultyDefault),
|
|
147
|
+
imageThreshold: number().min(0).max(1).optional().default(imageThresholdDefault),
|
|
148
|
+
imageMaxRounds: number().int().min(2).optional().default(imageMaxRoundsDefault),
|
|
149
|
+
// Detector score at or above which the frictionless flow blocks the
|
|
150
|
+
// request outright instead of issuing a challenge. Undefined disables.
|
|
151
|
+
autoBanScoreThreshold: number().min(0).optional(),
|
|
152
|
+
puzzleTolerance: number().int().min(5).max(50).optional().default(puzzleToleranceDefault),
|
|
91
153
|
ipValidationRules: IPValidationRulesSchema.optional(),
|
|
92
154
|
disallowWebView: boolean().optional().default(false).optional(),
|
|
93
|
-
contextAware: ContextAwareSchema.optional()
|
|
155
|
+
contextAware: ContextAwareSchema.optional(),
|
|
156
|
+
spamEmailDomainCheckEnabled: boolean().optional(),
|
|
157
|
+
spamFilter: SpamFilterRulesSchema.optional(),
|
|
158
|
+
trafficFilter: TrafficFilterSchema.optional(),
|
|
159
|
+
// When true, the provider persists the metadata (`email`, ...) that
|
|
160
|
+
// dapp servers attach to `/verify` requests on the captcha record.
|
|
161
|
+
// Off by default — opt in to enable downstream analysis (e.g. judging
|
|
162
|
+
// whether the submitted emails are mostly spam).
|
|
163
|
+
storeMetadata: boolean().optional(),
|
|
164
|
+
honeypot: HoneypotSettingsSchema.optional()
|
|
94
165
|
});
|
|
95
166
|
export {
|
|
96
167
|
ClientSettingsSchema,
|
|
97
168
|
ContextConfigSchema,
|
|
98
169
|
ContextType,
|
|
99
170
|
ContextTypeSchema,
|
|
171
|
+
EmailSpamRulesSchema,
|
|
172
|
+
EncodingType,
|
|
173
|
+
EncodingTypeSchema,
|
|
174
|
+
HoneypotSettingsSchema,
|
|
100
175
|
IPValidationAction,
|
|
101
176
|
IPValidationActionSchema,
|
|
102
177
|
IPValidationRulesSchema,
|
|
178
|
+
SpamFilterRulesSchema,
|
|
179
|
+
TrafficFilterSchema,
|
|
103
180
|
abuseScoreThresholdDefault,
|
|
104
181
|
abuseScoreThresholdExceedActionDefault,
|
|
105
182
|
captchaTypeDefault,
|
|
@@ -110,8 +187,13 @@ export {
|
|
|
110
187
|
distanceThresholdKmDefault,
|
|
111
188
|
domainsDefault,
|
|
112
189
|
frictionlessThresholdDefault,
|
|
190
|
+
honeypotEncodingTypeDefault,
|
|
191
|
+
imageMaxRoundsDefault,
|
|
113
192
|
imageThresholdDefault,
|
|
114
193
|
ispChangeActionDefault,
|
|
194
|
+
maxLocalPartDotsDefault,
|
|
115
195
|
powDifficultyDefault,
|
|
116
|
-
|
|
196
|
+
puzzleToleranceDefault,
|
|
197
|
+
requireAllConditionsDefault,
|
|
198
|
+
trafficFilterAbuserScoreThresholdDefault
|
|
117
199
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const ALWAYS_PASS_SITE_KEY = "5EARALUe4HXQwKo5KanZSGGKqJV4VTaytpezFwv8ZHbZewmh";
|
|
2
|
+
export declare const ALWAYS_FAIL_SITE_KEY = "5ETtechmZkn3CUVeJX7Z511oiuiu742aHLm91D5ZZw4fqoAG";
|
|
3
|
+
export declare enum TestSiteKeyMode {
|
|
4
|
+
Pass = "pass",
|
|
5
|
+
Fail = "fail"
|
|
6
|
+
}
|
|
7
|
+
export declare const getTestSiteKeyMode: (siteKey: string) => TestSiteKeyMode | null;
|
|
8
|
+
//# sourceMappingURL=testSiteKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testSiteKeys.d.ts","sourceRoot":"","sources":["../../src/client/testSiteKeys.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,oBAAoB,qDACkB,CAAC;AACpD,eAAO,MAAM,oBAAoB,qDACkB,CAAC;AAEpD,oBAAY,eAAe;IAC1B,IAAI,SAAS;IACb,IAAI,SAAS;CACb;AAID,eAAO,MAAM,kBAAkB,YAAa,MAAM,KAAG,eAAe,GAAG,IAQtE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const ALWAYS_PASS_SITE_KEY = "5EARALUe4HXQwKo5KanZSGGKqJV4VTaytpezFwv8ZHbZewmh";
|
|
2
|
+
const ALWAYS_FAIL_SITE_KEY = "5ETtechmZkn3CUVeJX7Z511oiuiu742aHLm91D5ZZw4fqoAG";
|
|
3
|
+
var TestSiteKeyMode = /* @__PURE__ */ ((TestSiteKeyMode2) => {
|
|
4
|
+
TestSiteKeyMode2["Pass"] = "pass";
|
|
5
|
+
TestSiteKeyMode2["Fail"] = "fail";
|
|
6
|
+
return TestSiteKeyMode2;
|
|
7
|
+
})(TestSiteKeyMode || {});
|
|
8
|
+
const getTestSiteKeyMode = (siteKey) => {
|
|
9
|
+
if (siteKey === ALWAYS_PASS_SITE_KEY) {
|
|
10
|
+
return "pass";
|
|
11
|
+
}
|
|
12
|
+
if (siteKey === ALWAYS_FAIL_SITE_KEY) {
|
|
13
|
+
return "fail";
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
ALWAYS_FAIL_SITE_KEY,
|
|
19
|
+
ALWAYS_PASS_SITE_KEY,
|
|
20
|
+
TestSiteKeyMode,
|
|
21
|
+
getTestSiteKeyMode
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testSiteKeys.js","sourceRoot":"","sources":["../../src/client/testSiteKeys.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,oBAAoB,GAChC,kDAAkD,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAChC,kDAAkD,CAAC;AAEpD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IAC1B,gCAAa,CAAA;IACb,gCAAa,CAAA;AACd,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAID,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAA0B,EAAE;IAC7E,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;QACtC,OAAO,eAAe,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;QACtC,OAAO,eAAe,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/client/user.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAN,IAAY,IAIX;AAJD,WAAY,IAAI;IACf,qBAAa,CAAA;IACb,qCAA6B,CAAA;IAC7B,iCAAyB,CAAA;AAC1B,CAAC,EAJW,IAAI,KAAJ,IAAI,QAIf;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACZ,oBAAoB,EAAE,MAAM;KAC5B;IACD,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACpB,oBAAoB,EAAE,OAAO;KAC7B;IACD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QAClB,oBAAoB,EAAE,WAAW;KACjC;CACD,CAAC"}
|