@prosopo/types 3.8.0 → 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 +19 -14
- package/.turbo/turbo-build$colon$tsc.log +8 -8
- package/.turbo/turbo-build.log +49 -44
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +515 -0
- package/dist/api/api.d.ts +23 -5
- package/dist/api/api.d.ts.map +1 -1
- package/dist/api/ipapi.d.ts +2 -1
- package/dist/api/ipapi.d.ts.map +1 -1
- package/dist/api/params.d.ts +24 -1
- package/dist/api/params.d.ts.map +1 -1
- package/dist/api/params.js +23 -0
- package/dist/api/params.js.map +1 -1
- package/dist/cjs/api/params.cjs +23 -0
- package/dist/cjs/client/captchaType/captchaType.cjs +16 -0
- package/dist/cjs/client/index.cjs +17 -0
- package/dist/cjs/client/settings.cjs +83 -1
- package/dist/cjs/client/testSiteKeys.cjs +22 -0
- package/dist/cjs/config/config.cjs +25 -18
- 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/provider/api.cjs +261 -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 +4 -2
- package/dist/client/captchaType/captchaType.d.ts.map +1 -1
- package/dist/client/captchaType/captchaType.js +17 -1
- package/dist/client/captchaType/captchaType.js.map +1 -1
- 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 -1
- package/dist/client/settings.d.ts +276 -0
- package/dist/client/settings.d.ts.map +1 -1
- package/dist/client/settings.js +84 -2
- package/dist/client/settings.js.map +1 -1
- 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/config/config.d.ts +371 -27
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +25 -18
- package/dist/config/config.js.map +1 -1
- 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 -1
- 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/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 -1
- package/dist/datasets/captcha.d.ts +2 -2
- package/dist/datasets/captcha.d.ts.map +1 -1
- package/dist/datasets/captcha.js.map +1 -1
- 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 -1
- package/dist/procaptcha/api.d.ts +3 -2
- package/dist/procaptcha/api.d.ts.map +1 -1
- package/dist/procaptcha/behavioral.d.ts +13 -1
- package/dist/procaptcha/behavioral.d.ts.map +1 -1
- package/dist/procaptcha/props.d.ts +5 -0
- package/dist/procaptcha/props.d.ts.map +1 -1
- package/dist/procaptcha-bundle/index.d.ts +0 -3
- package/dist/procaptcha-bundle/index.d.ts.map +1 -1
- package/dist/procaptcha-frictionless/props.d.ts +1 -0
- package/dist/procaptcha-frictionless/props.d.ts.map +1 -1
- package/dist/provider/api.d.ts +1662 -122
- package/dist/provider/api.d.ts.map +1 -1
- package/dist/provider/api.js +261 -9
- package/dist/provider/api.js.map +1 -1
- 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/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 -1
- 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 -1
- package/package.json +6 -5
package/dist/api/params.js
CHANGED
|
@@ -40,7 +40,30 @@ var ApiParams = /* @__PURE__ */ ((ApiParams2) => {
|
|
|
40
40
|
ApiParams2["enabled"] = "enabled";
|
|
41
41
|
ApiParams2["headHash"] = "headHash";
|
|
42
42
|
ApiParams2["behavioralData"] = "behavioralData";
|
|
43
|
+
ApiParams2["simdReadings"] = "simdReadings";
|
|
44
|
+
ApiParams2["decisionMachineScope"] = "decisionMachineScope";
|
|
45
|
+
ApiParams2["decisionMachineRuntime"] = "decisionMachineRuntime";
|
|
46
|
+
ApiParams2["decisionMachineSource"] = "decisionMachineSource";
|
|
47
|
+
ApiParams2["decisionMachineLanguage"] = "decisionMachineLanguage";
|
|
48
|
+
ApiParams2["decisionMachineName"] = "decisionMachineName";
|
|
49
|
+
ApiParams2["decisionMachineVersion"] = "decisionMachineVersion";
|
|
50
|
+
ApiParams2["decisionMachineCaptchaType"] = "decisionMachineCaptchaType";
|
|
43
51
|
ApiParams2["salt"] = "salt";
|
|
52
|
+
ApiParams2["email"] = "email";
|
|
53
|
+
ApiParams2["targetX"] = "targetX";
|
|
54
|
+
ApiParams2["targetY"] = "targetY";
|
|
55
|
+
ApiParams2["originX"] = "originX";
|
|
56
|
+
ApiParams2["originY"] = "originY";
|
|
57
|
+
ApiParams2["finalX"] = "finalX";
|
|
58
|
+
ApiParams2["finalY"] = "finalY";
|
|
59
|
+
ApiParams2["puzzleEvents"] = "puzzleEvents";
|
|
60
|
+
ApiParams2["tolerance"] = "tolerance";
|
|
61
|
+
ApiParams2["mode"] = "mode";
|
|
62
|
+
ApiParams2["reason"] = "reason";
|
|
63
|
+
ApiParams2["escalation"] = "escalation";
|
|
64
|
+
ApiParams2["hp"] = "hp";
|
|
65
|
+
ApiParams2["clientMetaData"] = "clientMetaData";
|
|
66
|
+
ApiParams2["honeypot"] = "honeypot";
|
|
44
67
|
return ApiParams2;
|
|
45
68
|
})(ApiParams || {});
|
|
46
69
|
export {
|
package/dist/api/params.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/api/params.ts"],"names":[],"mappings":"AAcA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/api/params.ts"],"names":[],"mappings":"AAcA,MAAM,CAAN,IAAY,SAkEX;AAlED,WAAY,SAAS;IACpB,oCAAuB,CAAA;IACvB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,wCAA2B,CAAA;IAC3B,wCAA2B,CAAA;IAC3B,kCAAqB,CAAA;IACrB,0CAA6B,CAAA;IAC7B,4BAAe,CAAA;IACf,4CAA+B,CAAA;IAC/B,oDAAuC,CAAA;IACvC,wCAA2B,CAAA;IAC3B,uDAA0C,CAAA;IAC1C,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,oCAAuB,CAAA;IACvB,sCAAyB,CAAA;IACzB,4BAAe,CAAA;IACf,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,oCAAuB,CAAA;IACvB,oCAAuB,CAAA;IACvB,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,wCAA2B,CAAA;IAC3B,oCAAuB,CAAA;IACvB,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;IACnB,4DAA+C,CAAA;IAC/C,4CAA+B,CAAA;IAC/B,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,wCAA2B,CAAA;IAC3B,sBAAS,CAAA;IACT,wDAA2C,CAAA;IAC3C,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;IACrB,8CAAiC,CAAA;IACjC,0CAA6B,CAAA;IAC7B,0DAA6C,CAAA;IAC7C,8DAAiD,CAAA;IACjD,4DAA+C,CAAA;IAC/C,gEAAmD,CAAA;IACnD,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,sEAAyD,CAAA;IACzD,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,0CAA6B,CAAA;IAC7B,oCAAuB,CAAA;IACvB,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,sCAAyB,CAAA;IACzB,sBAAS,CAAA;IACT,8CAAiC,CAAA;IACjC,kCAAqB,CAAA;AACtB,CAAC,EAlEW,SAAS,KAAT,SAAS,QAkEpB"}
|
package/dist/cjs/api/params.cjs
CHANGED
|
@@ -42,7 +42,30 @@ var ApiParams = /* @__PURE__ */ ((ApiParams2) => {
|
|
|
42
42
|
ApiParams2["enabled"] = "enabled";
|
|
43
43
|
ApiParams2["headHash"] = "headHash";
|
|
44
44
|
ApiParams2["behavioralData"] = "behavioralData";
|
|
45
|
+
ApiParams2["simdReadings"] = "simdReadings";
|
|
46
|
+
ApiParams2["decisionMachineScope"] = "decisionMachineScope";
|
|
47
|
+
ApiParams2["decisionMachineRuntime"] = "decisionMachineRuntime";
|
|
48
|
+
ApiParams2["decisionMachineSource"] = "decisionMachineSource";
|
|
49
|
+
ApiParams2["decisionMachineLanguage"] = "decisionMachineLanguage";
|
|
50
|
+
ApiParams2["decisionMachineName"] = "decisionMachineName";
|
|
51
|
+
ApiParams2["decisionMachineVersion"] = "decisionMachineVersion";
|
|
52
|
+
ApiParams2["decisionMachineCaptchaType"] = "decisionMachineCaptchaType";
|
|
45
53
|
ApiParams2["salt"] = "salt";
|
|
54
|
+
ApiParams2["email"] = "email";
|
|
55
|
+
ApiParams2["targetX"] = "targetX";
|
|
56
|
+
ApiParams2["targetY"] = "targetY";
|
|
57
|
+
ApiParams2["originX"] = "originX";
|
|
58
|
+
ApiParams2["originY"] = "originY";
|
|
59
|
+
ApiParams2["finalX"] = "finalX";
|
|
60
|
+
ApiParams2["finalY"] = "finalY";
|
|
61
|
+
ApiParams2["puzzleEvents"] = "puzzleEvents";
|
|
62
|
+
ApiParams2["tolerance"] = "tolerance";
|
|
63
|
+
ApiParams2["mode"] = "mode";
|
|
64
|
+
ApiParams2["reason"] = "reason";
|
|
65
|
+
ApiParams2["escalation"] = "escalation";
|
|
66
|
+
ApiParams2["hp"] = "hp";
|
|
67
|
+
ApiParams2["clientMetaData"] = "clientMetaData";
|
|
68
|
+
ApiParams2["honeypot"] = "honeypot";
|
|
46
69
|
return ApiParams2;
|
|
47
70
|
})(ApiParams || {});
|
|
48
71
|
exports.ApiParams = ApiParams;
|
|
@@ -5,8 +5,24 @@ var CaptchaType = /* @__PURE__ */ ((CaptchaType2) => {
|
|
|
5
5
|
CaptchaType2["image"] = "image";
|
|
6
6
|
CaptchaType2["pow"] = "pow";
|
|
7
7
|
CaptchaType2["frictionless"] = "frictionless";
|
|
8
|
+
CaptchaType2["puzzle"] = "puzzle";
|
|
8
9
|
return CaptchaType2;
|
|
9
10
|
})(CaptchaType || {});
|
|
10
11
|
const CaptchaTypeSchema = z.z.nativeEnum(CaptchaType);
|
|
12
|
+
const DecisionMachineCaptchaTypeSchema = z.z.union([
|
|
13
|
+
z.z.literal(
|
|
14
|
+
"pow"
|
|
15
|
+
/* pow */
|
|
16
|
+
),
|
|
17
|
+
z.z.literal(
|
|
18
|
+
"image"
|
|
19
|
+
/* image */
|
|
20
|
+
),
|
|
21
|
+
z.z.literal(
|
|
22
|
+
"puzzle"
|
|
23
|
+
/* puzzle */
|
|
24
|
+
)
|
|
25
|
+
]);
|
|
11
26
|
exports.CaptchaType = CaptchaType;
|
|
12
27
|
exports.CaptchaTypeSchema = CaptchaTypeSchema;
|
|
28
|
+
exports.DecisionMachineCaptchaTypeSchema = DecisionMachineCaptchaTypeSchema;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const user = require("./user.cjs");
|
|
4
4
|
const settings = require("./settings.cjs");
|
|
5
|
+
const testSiteKeys = require("./testSiteKeys.cjs");
|
|
5
6
|
const captchaType = require("./captchaType/captchaType.cjs");
|
|
6
7
|
const captchaTypeSpec = require("./captchaType/captchaTypeSpec.cjs");
|
|
7
8
|
exports.Tier = user.Tier;
|
|
@@ -11,9 +12,15 @@ exports.ClientSettingsSchema = settings.ClientSettingsSchema;
|
|
|
11
12
|
exports.ContextConfigSchema = settings.ContextConfigSchema;
|
|
12
13
|
exports.ContextType = settings.ContextType;
|
|
13
14
|
exports.ContextTypeSchema = settings.ContextTypeSchema;
|
|
15
|
+
exports.EmailSpamRulesSchema = settings.EmailSpamRulesSchema;
|
|
16
|
+
exports.EncodingType = settings.EncodingType;
|
|
17
|
+
exports.EncodingTypeSchema = settings.EncodingTypeSchema;
|
|
18
|
+
exports.HoneypotSettingsSchema = settings.HoneypotSettingsSchema;
|
|
14
19
|
exports.IPValidationAction = settings.IPValidationAction;
|
|
15
20
|
exports.IPValidationActionSchema = settings.IPValidationActionSchema;
|
|
16
21
|
exports.IPValidationRulesSchema = settings.IPValidationRulesSchema;
|
|
22
|
+
exports.SpamFilterRulesSchema = settings.SpamFilterRulesSchema;
|
|
23
|
+
exports.TrafficFilterSchema = settings.TrafficFilterSchema;
|
|
17
24
|
exports.abuseScoreThresholdDefault = settings.abuseScoreThresholdDefault;
|
|
18
25
|
exports.abuseScoreThresholdExceedActionDefault = settings.abuseScoreThresholdExceedActionDefault;
|
|
19
26
|
exports.captchaTypeDefault = settings.captchaTypeDefault;
|
|
@@ -24,10 +31,20 @@ exports.distanceExceedActionDefault = settings.distanceExceedActionDefault;
|
|
|
24
31
|
exports.distanceThresholdKmDefault = settings.distanceThresholdKmDefault;
|
|
25
32
|
exports.domainsDefault = settings.domainsDefault;
|
|
26
33
|
exports.frictionlessThresholdDefault = settings.frictionlessThresholdDefault;
|
|
34
|
+
exports.honeypotEncodingTypeDefault = settings.honeypotEncodingTypeDefault;
|
|
35
|
+
exports.imageMaxRoundsDefault = settings.imageMaxRoundsDefault;
|
|
27
36
|
exports.imageThresholdDefault = settings.imageThresholdDefault;
|
|
28
37
|
exports.ispChangeActionDefault = settings.ispChangeActionDefault;
|
|
38
|
+
exports.maxLocalPartDotsDefault = settings.maxLocalPartDotsDefault;
|
|
29
39
|
exports.powDifficultyDefault = settings.powDifficultyDefault;
|
|
40
|
+
exports.puzzleToleranceDefault = settings.puzzleToleranceDefault;
|
|
30
41
|
exports.requireAllConditionsDefault = settings.requireAllConditionsDefault;
|
|
42
|
+
exports.trafficFilterAbuserScoreThresholdDefault = settings.trafficFilterAbuserScoreThresholdDefault;
|
|
43
|
+
exports.ALWAYS_FAIL_SITE_KEY = testSiteKeys.ALWAYS_FAIL_SITE_KEY;
|
|
44
|
+
exports.ALWAYS_PASS_SITE_KEY = testSiteKeys.ALWAYS_PASS_SITE_KEY;
|
|
45
|
+
exports.TestSiteKeyMode = testSiteKeys.TestSiteKeyMode;
|
|
46
|
+
exports.getTestSiteKeyMode = testSiteKeys.getTestSiteKeyMode;
|
|
31
47
|
exports.CaptchaType = captchaType.CaptchaType;
|
|
32
48
|
exports.CaptchaTypeSchema = captchaType.CaptchaTypeSchema;
|
|
49
|
+
exports.DecisionMachineCaptchaTypeSchema = captchaType.DecisionMachineCaptchaTypeSchema;
|
|
33
50
|
exports.CaptchaTypeSpec = captchaTypeSpec.CaptchaTypeSpec;
|
|
@@ -8,7 +8,9 @@ const domainsDefault = [];
|
|
|
8
8
|
const frictionlessThresholdDefault = 0.5;
|
|
9
9
|
const powDifficultyDefault = 4;
|
|
10
10
|
const imageThresholdDefault = 0.8;
|
|
11
|
+
const imageMaxRoundsDefault = 32;
|
|
11
12
|
const contextAwareThresholdDefault = 0.7;
|
|
13
|
+
const puzzleToleranceDefault = 15;
|
|
12
14
|
var IPValidationAction = /* @__PURE__ */ ((IPValidationAction2) => {
|
|
13
15
|
IPValidationAction2["Allow"] = "allow";
|
|
14
16
|
IPValidationAction2["Reject"] = "reject";
|
|
@@ -38,6 +40,7 @@ const IPValidationSchema = z.object({
|
|
|
38
40
|
requireAllConditions: z.boolean().optional()
|
|
39
41
|
});
|
|
40
42
|
const IPValidationRulesSchema = z.object({
|
|
43
|
+
enabled: z.boolean().optional().default(false),
|
|
41
44
|
actions: z.object({
|
|
42
45
|
countryChangeAction: IPValidationActionSchema.optional().default(
|
|
43
46
|
countryChangeActionDefault
|
|
@@ -84,23 +87,97 @@ const ContextAwareSchema = z.object({
|
|
|
84
87
|
enabled: z.boolean().optional().default(false),
|
|
85
88
|
contexts: ContextsSchema
|
|
86
89
|
});
|
|
90
|
+
const maxLocalPartDotsDefault = 2;
|
|
91
|
+
const MAX_REGEX_PATTERN_LENGTH = 256;
|
|
92
|
+
const MAX_CUSTOM_REGEX_PATTERNS = 50;
|
|
93
|
+
const DANGEROUS_REGEX_TOKENS = /(\(\?[<!=])|(\(\?P[<])|(\(\?\{)|(\{[\d,]{4,})/;
|
|
94
|
+
const safeRegexPattern = z.string().max(MAX_REGEX_PATTERN_LENGTH).refine(
|
|
95
|
+
(raw) => {
|
|
96
|
+
try {
|
|
97
|
+
new RegExp(raw, "i");
|
|
98
|
+
return true;
|
|
99
|
+
} catch {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{ message: "Invalid regular expression syntax" }
|
|
104
|
+
).refine((raw) => !DANGEROUS_REGEX_TOKENS.test(raw), {
|
|
105
|
+
message: "Pattern uses disallowed features (lookahead, lookbehind, or large quantifiers)"
|
|
106
|
+
});
|
|
107
|
+
const EmailSpamRulesSchema = z.object({
|
|
108
|
+
enabled: z.boolean().optional().default(false),
|
|
109
|
+
maxLocalPartDots: z.number().int().min(0).optional(),
|
|
110
|
+
normaliseGmail: z.boolean().optional().default(false),
|
|
111
|
+
useDefaultPatterns: z.boolean().optional().default(false),
|
|
112
|
+
customRegexBlocklist: z.array(safeRegexPattern).max(MAX_CUSTOM_REGEX_PATTERNS).optional().default([])
|
|
113
|
+
});
|
|
114
|
+
const SpamFilterRulesSchema = z.object({
|
|
115
|
+
enabled: z.boolean().optional().default(false),
|
|
116
|
+
emailRules: EmailSpamRulesSchema.optional()
|
|
117
|
+
});
|
|
118
|
+
const trafficFilterAbuserScoreThresholdDefault = 0.5;
|
|
119
|
+
const TrafficFilterSchema = z.object({
|
|
120
|
+
blockVpn: z.boolean().optional().default(false),
|
|
121
|
+
blockProxy: z.boolean().optional().default(false),
|
|
122
|
+
blockTor: z.boolean().optional().default(false),
|
|
123
|
+
blockAbuser: z.boolean().optional().default(true),
|
|
124
|
+
abuserScoreThreshold: z.number().min(0).max(1).optional().default(trafficFilterAbuserScoreThresholdDefault),
|
|
125
|
+
blockDatacenter: z.boolean().optional().default(false),
|
|
126
|
+
blockMobile: z.boolean().optional().default(false),
|
|
127
|
+
blockSatellite: z.boolean().optional().default(false),
|
|
128
|
+
blockCrawler: z.boolean().optional().default(false)
|
|
129
|
+
});
|
|
130
|
+
var EncodingType = /* @__PURE__ */ ((EncodingType2) => {
|
|
131
|
+
EncodingType2["morse"] = "morse";
|
|
132
|
+
EncodingType2["semaphore"] = "semaphore";
|
|
133
|
+
return EncodingType2;
|
|
134
|
+
})(EncodingType || {});
|
|
135
|
+
const EncodingTypeSchema = z.z.nativeEnum(EncodingType);
|
|
136
|
+
const honeypotEncodingTypeDefault = "morse";
|
|
137
|
+
const HoneypotSettingsSchema = z.object({
|
|
138
|
+
enabled: z.boolean().optional().default(false),
|
|
139
|
+
question: z.string().optional(),
|
|
140
|
+
encodingType: EncodingTypeSchema.optional().default(
|
|
141
|
+
honeypotEncodingTypeDefault
|
|
142
|
+
)
|
|
143
|
+
});
|
|
87
144
|
const ClientSettingsSchema = z.object({
|
|
88
145
|
captchaType: captchaTypeSpec.CaptchaTypeSpec.optional().default(captchaTypeDefault),
|
|
89
146
|
domains: z.array(z.string()).min(1),
|
|
90
147
|
frictionlessThreshold: z.number().min(0).max(1).optional().default(frictionlessThresholdDefault),
|
|
91
148
|
powDifficulty: z.number().int().positive().min(1).max(10).optional().default(powDifficultyDefault),
|
|
92
149
|
imageThreshold: z.number().min(0).max(1).optional().default(imageThresholdDefault),
|
|
150
|
+
imageMaxRounds: z.number().int().min(2).optional().default(imageMaxRoundsDefault),
|
|
151
|
+
// Detector score at or above which the frictionless flow blocks the
|
|
152
|
+
// request outright instead of issuing a challenge. Undefined disables.
|
|
153
|
+
autoBanScoreThreshold: z.number().min(0).optional(),
|
|
154
|
+
puzzleTolerance: z.number().int().min(5).max(50).optional().default(puzzleToleranceDefault),
|
|
93
155
|
ipValidationRules: IPValidationRulesSchema.optional(),
|
|
94
156
|
disallowWebView: z.boolean().optional().default(false).optional(),
|
|
95
|
-
contextAware: ContextAwareSchema.optional()
|
|
157
|
+
contextAware: ContextAwareSchema.optional(),
|
|
158
|
+
spamEmailDomainCheckEnabled: z.boolean().optional(),
|
|
159
|
+
spamFilter: SpamFilterRulesSchema.optional(),
|
|
160
|
+
trafficFilter: TrafficFilterSchema.optional(),
|
|
161
|
+
// When true, the provider persists the metadata (`email`, ...) that
|
|
162
|
+
// dapp servers attach to `/verify` requests on the captcha record.
|
|
163
|
+
// Off by default — opt in to enable downstream analysis (e.g. judging
|
|
164
|
+
// whether the submitted emails are mostly spam).
|
|
165
|
+
storeMetadata: z.boolean().optional(),
|
|
166
|
+
honeypot: HoneypotSettingsSchema.optional()
|
|
96
167
|
});
|
|
97
168
|
exports.ClientSettingsSchema = ClientSettingsSchema;
|
|
98
169
|
exports.ContextConfigSchema = ContextConfigSchema;
|
|
99
170
|
exports.ContextType = ContextType;
|
|
100
171
|
exports.ContextTypeSchema = ContextTypeSchema;
|
|
172
|
+
exports.EmailSpamRulesSchema = EmailSpamRulesSchema;
|
|
173
|
+
exports.EncodingType = EncodingType;
|
|
174
|
+
exports.EncodingTypeSchema = EncodingTypeSchema;
|
|
175
|
+
exports.HoneypotSettingsSchema = HoneypotSettingsSchema;
|
|
101
176
|
exports.IPValidationAction = IPValidationAction;
|
|
102
177
|
exports.IPValidationActionSchema = IPValidationActionSchema;
|
|
103
178
|
exports.IPValidationRulesSchema = IPValidationRulesSchema;
|
|
179
|
+
exports.SpamFilterRulesSchema = SpamFilterRulesSchema;
|
|
180
|
+
exports.TrafficFilterSchema = TrafficFilterSchema;
|
|
104
181
|
exports.abuseScoreThresholdDefault = abuseScoreThresholdDefault;
|
|
105
182
|
exports.abuseScoreThresholdExceedActionDefault = abuseScoreThresholdExceedActionDefault;
|
|
106
183
|
exports.captchaTypeDefault = captchaTypeDefault;
|
|
@@ -111,7 +188,12 @@ exports.distanceExceedActionDefault = distanceExceedActionDefault;
|
|
|
111
188
|
exports.distanceThresholdKmDefault = distanceThresholdKmDefault;
|
|
112
189
|
exports.domainsDefault = domainsDefault;
|
|
113
190
|
exports.frictionlessThresholdDefault = frictionlessThresholdDefault;
|
|
191
|
+
exports.honeypotEncodingTypeDefault = honeypotEncodingTypeDefault;
|
|
192
|
+
exports.imageMaxRoundsDefault = imageMaxRoundsDefault;
|
|
114
193
|
exports.imageThresholdDefault = imageThresholdDefault;
|
|
115
194
|
exports.ispChangeActionDefault = ispChangeActionDefault;
|
|
195
|
+
exports.maxLocalPartDotsDefault = maxLocalPartDotsDefault;
|
|
116
196
|
exports.powDifficultyDefault = powDifficultyDefault;
|
|
197
|
+
exports.puzzleToleranceDefault = puzzleToleranceDefault;
|
|
117
198
|
exports.requireAllConditionsDefault = requireAllConditionsDefault;
|
|
199
|
+
exports.trafficFilterAbuserScoreThresholdDefault = trafficFilterAbuserScoreThresholdDefault;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const ALWAYS_PASS_SITE_KEY = "5EARALUe4HXQwKo5KanZSGGKqJV4VTaytpezFwv8ZHbZewmh";
|
|
4
|
+
const ALWAYS_FAIL_SITE_KEY = "5ETtechmZkn3CUVeJX7Z511oiuiu742aHLm91D5ZZw4fqoAG";
|
|
5
|
+
var TestSiteKeyMode = /* @__PURE__ */ ((TestSiteKeyMode2) => {
|
|
6
|
+
TestSiteKeyMode2["Pass"] = "pass";
|
|
7
|
+
TestSiteKeyMode2["Fail"] = "fail";
|
|
8
|
+
return TestSiteKeyMode2;
|
|
9
|
+
})(TestSiteKeyMode || {});
|
|
10
|
+
const getTestSiteKeyMode = (siteKey) => {
|
|
11
|
+
if (siteKey === ALWAYS_PASS_SITE_KEY) {
|
|
12
|
+
return "pass";
|
|
13
|
+
}
|
|
14
|
+
if (siteKey === ALWAYS_FAIL_SITE_KEY) {
|
|
15
|
+
return "fail";
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
exports.ALWAYS_FAIL_SITE_KEY = ALWAYS_FAIL_SITE_KEY;
|
|
20
|
+
exports.ALWAYS_PASS_SITE_KEY = ALWAYS_PASS_SITE_KEY;
|
|
21
|
+
exports.TestSiteKeyMode = TestSiteKeyMode;
|
|
22
|
+
exports.getTestSiteKeyMode = getTestSiteKeyMode;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const locale = require("@prosopo/locale");
|
|
4
4
|
const z = require("zod");
|
|
5
|
+
const mode = require("./mode.cjs");
|
|
5
6
|
require("../provider/index.cjs");
|
|
6
7
|
const frictionless = require("./frictionless.cjs");
|
|
7
8
|
const timeouts = require("./timeouts.cjs");
|
|
@@ -99,12 +100,18 @@ const defaultPoWCaptchaTimeouts = {
|
|
|
99
100
|
solutionTimeout: timeouts.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT,
|
|
100
101
|
cachedTimeout: timeouts.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT
|
|
101
102
|
};
|
|
103
|
+
const defaultPuzzleCaptchaTimeouts = {
|
|
104
|
+
verifiedTimeout: timeouts.DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT,
|
|
105
|
+
solutionTimeout: timeouts.DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT,
|
|
106
|
+
cachedTimeout: timeouts.DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT
|
|
107
|
+
};
|
|
102
108
|
const defaultContractCaptchaTimeouts = {
|
|
103
109
|
maxVerifiedTime: timeouts.DEFAULT_MAX_VERIFIED_TIME_CONTRACT
|
|
104
110
|
};
|
|
105
111
|
const defaultCaptchaTimeouts = {
|
|
106
112
|
image: defaultImageCaptchaTimeouts,
|
|
107
113
|
pow: defaultPoWCaptchaTimeouts,
|
|
114
|
+
puzzle: defaultPuzzleCaptchaTimeouts,
|
|
108
115
|
contract: defaultContractCaptchaTimeouts
|
|
109
116
|
};
|
|
110
117
|
const CaptchaTimeoutSchema = z.object({
|
|
@@ -121,6 +128,11 @@ const CaptchaTimeoutSchema = z.object({
|
|
|
121
128
|
solutionTimeout: z.number().positive().optional().default(timeouts.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT),
|
|
122
129
|
cachedTimeout: z.number().positive().optional().default(timeouts.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT)
|
|
123
130
|
}).default(defaultPoWCaptchaTimeouts),
|
|
131
|
+
puzzle: z.object({
|
|
132
|
+
verifiedTimeout: z.number().positive().optional().default(timeouts.DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT),
|
|
133
|
+
solutionTimeout: z.number().positive().optional().default(timeouts.DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT),
|
|
134
|
+
cachedTimeout: z.number().positive().optional().default(timeouts.DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT)
|
|
135
|
+
}).default(defaultPuzzleCaptchaTimeouts),
|
|
124
136
|
contract: z.object({
|
|
125
137
|
maxVerifiedTime: z.number().positive().optional().default(timeouts.DEFAULT_MAX_VERIFIED_TIME_CONTRACT)
|
|
126
138
|
}).default(defaultContractCaptchaTimeouts)
|
|
@@ -144,25 +156,12 @@ const AccountCreatorConfigSchema = z.object({
|
|
|
144
156
|
seed: z.number().positive()
|
|
145
157
|
});
|
|
146
158
|
const ThemeType = z.union([z.literal("light"), z.literal("dark")]);
|
|
147
|
-
var ModeEnum = /* @__PURE__ */ ((ModeEnum2) => {
|
|
148
|
-
ModeEnum2["visible"] = "visible";
|
|
149
|
-
ModeEnum2["invisible"] = "invisible";
|
|
150
|
-
return ModeEnum2;
|
|
151
|
-
})(ModeEnum || {});
|
|
152
|
-
const Mode = z.enum([
|
|
153
|
-
"visible",
|
|
154
|
-
"invisible"
|
|
155
|
-
/* invisible */
|
|
156
|
-
]).optional();
|
|
157
159
|
const ProcaptchaConfigSchema = ProsopoClientConfigSchema.and(
|
|
158
160
|
z.object({
|
|
159
161
|
theme: ThemeType.optional().default("light"),
|
|
160
162
|
captchas: CaptchaTimeoutSchema.optional().default(defaultCaptchaTimeouts),
|
|
161
163
|
language: locale.LanguageSchema.optional(),
|
|
162
|
-
mode: Mode.optional().default(
|
|
163
|
-
"visible"
|
|
164
|
-
/* visible */
|
|
165
|
-
)
|
|
164
|
+
mode: mode.Mode.optional().default(mode.ModeEnum.visible)
|
|
166
165
|
})
|
|
167
166
|
);
|
|
168
167
|
const IpApiServiceSpec = z.object({
|
|
@@ -191,13 +190,17 @@ const ProsopoConfigSchema = ProsopoBasicConfigSchema.merge(
|
|
|
191
190
|
}).optional(),
|
|
192
191
|
clientEntropyScheduler: z.object({
|
|
193
192
|
schedule: z.string().optional()
|
|
193
|
+
}).optional(),
|
|
194
|
+
spamEmailDomainsScheduler: z.object({
|
|
195
|
+
schedule: z.string().optional()
|
|
194
196
|
}).optional()
|
|
195
197
|
}).optional(),
|
|
196
198
|
server: ProsopoApiConfigSchema.optional(),
|
|
197
199
|
mongoEventsUri: z.string().optional(),
|
|
198
200
|
mongoCaptchaUri: z.string().optional(),
|
|
199
201
|
mongoClientUri: z.string().optional(),
|
|
200
|
-
ipApi: IpApiServiceSpec,
|
|
202
|
+
ipApi: IpApiServiceSpec.optional(),
|
|
203
|
+
spamEmailDomainsUrls: z.array(z.string()).optional(),
|
|
201
204
|
redisConnection: z.object({
|
|
202
205
|
url: z.string(),
|
|
203
206
|
password: z.string(),
|
|
@@ -209,21 +212,25 @@ const ProsopoConfigSchema = ProsopoBasicConfigSchema.merge(
|
|
|
209
212
|
rateLimits: api.ApiPathRateLimits.default(api.ProviderDefaultRateLimits),
|
|
210
213
|
proxyCount: z.number().optional().default(0),
|
|
211
214
|
lRules: z.record(z.string(), z.number()).optional(),
|
|
215
|
+
maxmindDbPath: z.string().optional(),
|
|
216
|
+
maxmindCityDbPath: z.string().optional(),
|
|
217
|
+
maxmindAsnDbPath: z.string().optional(),
|
|
212
218
|
authAccount: z.object({
|
|
213
219
|
address: z.string().optional(),
|
|
214
220
|
secret: z.string().optional(),
|
|
215
221
|
password: z.string().optional()
|
|
216
|
-
})
|
|
222
|
+
}),
|
|
223
|
+
dnsServers: z.array(z.string()).optional()
|
|
217
224
|
})
|
|
218
225
|
);
|
|
226
|
+
exports.Mode = mode.Mode;
|
|
227
|
+
exports.ModeEnum = mode.ModeEnum;
|
|
219
228
|
exports.AccountCreatorConfigSchema = AccountCreatorConfigSchema;
|
|
220
229
|
exports.CaptchaTimeoutSchema = CaptchaTimeoutSchema;
|
|
221
230
|
exports.DatabaseConfigSchema = DatabaseConfigSchema;
|
|
222
231
|
exports.DatabaseTypes = DatabaseTypes;
|
|
223
232
|
exports.EnvironmentTypesSchema = EnvironmentTypesSchema;
|
|
224
233
|
exports.IpApiServiceSpec = IpApiServiceSpec;
|
|
225
|
-
exports.Mode = Mode;
|
|
226
|
-
exports.ModeEnum = ModeEnum;
|
|
227
234
|
exports.PolkadotSecretJSONSpec = PolkadotSecretJSONSpec;
|
|
228
235
|
exports.ProcaptchaConfigSchema = ProcaptchaConfigSchema;
|
|
229
236
|
exports.ProsopoApiConfigSchema = ProsopoApiConfigSchema;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const config = require("./config.cjs");
|
|
4
|
+
const mode = require("./mode.cjs");
|
|
4
5
|
const network = require("./network.cjs");
|
|
5
6
|
const timeouts = require("./timeouts.cjs");
|
|
6
7
|
const frictionless = require("./frictionless.cjs");
|
|
@@ -10,8 +11,6 @@ exports.DatabaseConfigSchema = config.DatabaseConfigSchema;
|
|
|
10
11
|
exports.DatabaseTypes = config.DatabaseTypes;
|
|
11
12
|
exports.EnvironmentTypesSchema = config.EnvironmentTypesSchema;
|
|
12
13
|
exports.IpApiServiceSpec = config.IpApiServiceSpec;
|
|
13
|
-
exports.Mode = config.Mode;
|
|
14
|
-
exports.ModeEnum = config.ModeEnum;
|
|
15
14
|
exports.PolkadotSecretJSONSpec = config.PolkadotSecretJSONSpec;
|
|
16
15
|
exports.ProcaptchaConfigSchema = config.ProcaptchaConfigSchema;
|
|
17
16
|
exports.ProsopoApiConfigSchema = config.ProsopoApiConfigSchema;
|
|
@@ -21,6 +20,8 @@ exports.ProsopoCaptchaSolutionConfigSchema = config.ProsopoCaptchaSolutionConfig
|
|
|
21
20
|
exports.ProsopoClientConfigSchema = config.ProsopoClientConfigSchema;
|
|
22
21
|
exports.ProsopoConfigSchema = config.ProsopoConfigSchema;
|
|
23
22
|
exports.ProsopoServerConfigSchema = config.ProsopoServerConfigSchema;
|
|
23
|
+
exports.Mode = mode.Mode;
|
|
24
|
+
exports.ModeEnum = mode.ModeEnum;
|
|
24
25
|
exports.NetworkPairTypeSchema = network.NetworkPairTypeSchema;
|
|
25
26
|
exports.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT = timeouts.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT;
|
|
26
27
|
exports.DEFAULT_IMAGE_CAPTCHA_TIMEOUT = timeouts.DEFAULT_IMAGE_CAPTCHA_TIMEOUT;
|
|
@@ -30,6 +31,9 @@ exports.DEFAULT_MAX_VERIFIED_TIME_CONTRACT = timeouts.DEFAULT_MAX_VERIFIED_TIME_
|
|
|
30
31
|
exports.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = timeouts.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT;
|
|
31
32
|
exports.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = timeouts.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT;
|
|
32
33
|
exports.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = timeouts.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT;
|
|
34
|
+
exports.DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT = timeouts.DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT;
|
|
35
|
+
exports.DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT = timeouts.DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT;
|
|
36
|
+
exports.DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT = timeouts.DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT;
|
|
33
37
|
exports.FrictionlessPenalties = frictionless.FrictionlessPenalties;
|
|
34
38
|
exports.PENALTY_ACCESS_RULE_DEFAULT = frictionless.PENALTY_ACCESS_RULE_DEFAULT;
|
|
35
39
|
exports.PENALTY_OLD_TIMESTAMP_DEFAULT = frictionless.PENALTY_OLD_TIMESTAMP_DEFAULT;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const z = require("zod");
|
|
4
|
+
var ModeEnum = /* @__PURE__ */ ((ModeEnum2) => {
|
|
5
|
+
ModeEnum2["visible"] = "visible";
|
|
6
|
+
ModeEnum2["invisible"] = "invisible";
|
|
7
|
+
return ModeEnum2;
|
|
8
|
+
})(ModeEnum || {});
|
|
9
|
+
const Mode = z.enum([
|
|
10
|
+
"visible",
|
|
11
|
+
"invisible"
|
|
12
|
+
/* invisible */
|
|
13
|
+
]).optional();
|
|
14
|
+
exports.Mode = Mode;
|
|
15
|
+
exports.ModeEnum = ModeEnum;
|
|
@@ -8,6 +8,9 @@ const DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED = DEFAULT_IMAGE_CAPTCHA_TIMEOUT * 1
|
|
|
8
8
|
const DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = ONE_MINUTE;
|
|
9
9
|
const DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT * 2;
|
|
10
10
|
const DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT * 3;
|
|
11
|
+
const DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT = ONE_MINUTE;
|
|
12
|
+
const DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT * 2;
|
|
13
|
+
const DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT = DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT * 3;
|
|
11
14
|
const DEFAULT_MAX_VERIFIED_TIME_CONTRACT = ONE_MINUTE * 15;
|
|
12
15
|
exports.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT;
|
|
13
16
|
exports.DEFAULT_IMAGE_CAPTCHA_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_TIMEOUT;
|
|
@@ -17,3 +20,6 @@ exports.DEFAULT_MAX_VERIFIED_TIME_CONTRACT = DEFAULT_MAX_VERIFIED_TIME_CONTRACT;
|
|
|
17
20
|
exports.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT;
|
|
18
21
|
exports.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT;
|
|
19
22
|
exports.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT;
|
|
23
|
+
exports.DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT = DEFAULT_PUZZLE_CAPTCHA_CACHED_TIMEOUT;
|
|
24
|
+
exports.DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT = DEFAULT_PUZZLE_CAPTCHA_SOLUTION_TIMEOUT;
|
|
25
|
+
exports.DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_PUZZLE_CAPTCHA_VERIFIED_TIMEOUT;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const z = require("zod");
|
|
4
|
+
const captchaType = require("../client/captchaType/captchaType.cjs");
|
|
5
|
+
var DecisionMachineRuntime = /* @__PURE__ */ ((DecisionMachineRuntime2) => {
|
|
6
|
+
DecisionMachineRuntime2["Node"] = "node";
|
|
7
|
+
return DecisionMachineRuntime2;
|
|
8
|
+
})(DecisionMachineRuntime || {});
|
|
9
|
+
var DecisionMachineScope = /* @__PURE__ */ ((DecisionMachineScope2) => {
|
|
10
|
+
DecisionMachineScope2["Global"] = "global";
|
|
11
|
+
DecisionMachineScope2["Dapp"] = "dapp";
|
|
12
|
+
return DecisionMachineScope2;
|
|
13
|
+
})(DecisionMachineScope || {});
|
|
14
|
+
var DecisionMachineLanguage = /* @__PURE__ */ ((DecisionMachineLanguage2) => {
|
|
15
|
+
DecisionMachineLanguage2["JavaScript"] = "js";
|
|
16
|
+
DecisionMachineLanguage2["TypeScript"] = "ts";
|
|
17
|
+
return DecisionMachineLanguage2;
|
|
18
|
+
})(DecisionMachineLanguage || {});
|
|
19
|
+
var DecisionMachineDecision = /* @__PURE__ */ ((DecisionMachineDecision2) => {
|
|
20
|
+
DecisionMachineDecision2["Allow"] = "allow";
|
|
21
|
+
DecisionMachineDecision2["Deny"] = "deny";
|
|
22
|
+
return DecisionMachineDecision2;
|
|
23
|
+
})(DecisionMachineDecision || {});
|
|
24
|
+
const DecisionMachineOutputSchema = z.z.object({
|
|
25
|
+
decision: z.z.nativeEnum(DecisionMachineDecision),
|
|
26
|
+
reason: z.z.string().optional(),
|
|
27
|
+
score: z.z.number().optional(),
|
|
28
|
+
tags: z.z.array(z.z.string()).optional()
|
|
29
|
+
});
|
|
30
|
+
const DecisionMachineConfigSchema = z.z.object({
|
|
31
|
+
runtime: z.z.nativeEnum(DecisionMachineRuntime),
|
|
32
|
+
source: z.z.string(),
|
|
33
|
+
language: z.z.nativeEnum(DecisionMachineLanguage).optional(),
|
|
34
|
+
name: z.z.string().optional(),
|
|
35
|
+
version: z.z.string().optional(),
|
|
36
|
+
createdAt: z.z.string(),
|
|
37
|
+
captchaType: captchaType.DecisionMachineCaptchaTypeSchema.optional()
|
|
38
|
+
});
|
|
39
|
+
const COUNTER_WINDOWS = ["1m", "10m", "1h", "3h", "6h", "24h"];
|
|
40
|
+
const COUNTER_WINDOW_SECONDS = {
|
|
41
|
+
"1m": 60,
|
|
42
|
+
"10m": 600,
|
|
43
|
+
"1h": 3600,
|
|
44
|
+
"3h": 10800,
|
|
45
|
+
"6h": 21600,
|
|
46
|
+
"24h": 86400
|
|
47
|
+
};
|
|
48
|
+
const COUNTER_KINDS = ["served", "solved"];
|
|
49
|
+
const COUNTER_DIMENSIONS = ["ip", "userAccount"];
|
|
50
|
+
const COUNTER_CAPTCHA_ANY = "any";
|
|
51
|
+
const CounterSpecSchema = z.z.object({
|
|
52
|
+
kind: z.z.enum(COUNTER_KINDS),
|
|
53
|
+
captchaType: z.z.union([
|
|
54
|
+
z.z.literal(captchaType.CaptchaType.pow),
|
|
55
|
+
z.z.literal(captchaType.CaptchaType.image),
|
|
56
|
+
z.z.literal(captchaType.CaptchaType.puzzle),
|
|
57
|
+
z.z.literal(COUNTER_CAPTCHA_ANY)
|
|
58
|
+
]),
|
|
59
|
+
dimension: z.z.enum(COUNTER_DIMENSIONS),
|
|
60
|
+
window: z.z.enum(COUNTER_WINDOWS)
|
|
61
|
+
});
|
|
62
|
+
const encodeCounterKey = (dappAccount, spec, value) => `cnt:${dappAccount}:${spec.kind}:${spec.captchaType}:${spec.dimension}:${value}:${spec.window}`;
|
|
63
|
+
const RoutingMachineOutputSchema = z.z.object({
|
|
64
|
+
captchaType: z.z.union([
|
|
65
|
+
z.z.literal(captchaType.CaptchaType.pow),
|
|
66
|
+
z.z.literal(captchaType.CaptchaType.image),
|
|
67
|
+
z.z.literal(captchaType.CaptchaType.puzzle)
|
|
68
|
+
]),
|
|
69
|
+
solvedImagesCount: z.z.number().int().positive().optional(),
|
|
70
|
+
powDifficulty: z.z.number().int().positive().optional()
|
|
71
|
+
});
|
|
72
|
+
exports.COUNTER_CAPTCHA_ANY = COUNTER_CAPTCHA_ANY;
|
|
73
|
+
exports.COUNTER_DIMENSIONS = COUNTER_DIMENSIONS;
|
|
74
|
+
exports.COUNTER_KINDS = COUNTER_KINDS;
|
|
75
|
+
exports.COUNTER_WINDOWS = COUNTER_WINDOWS;
|
|
76
|
+
exports.COUNTER_WINDOW_SECONDS = COUNTER_WINDOW_SECONDS;
|
|
77
|
+
exports.CounterSpecSchema = CounterSpecSchema;
|
|
78
|
+
exports.DecisionMachineConfigSchema = DecisionMachineConfigSchema;
|
|
79
|
+
exports.DecisionMachineDecision = DecisionMachineDecision;
|
|
80
|
+
exports.DecisionMachineLanguage = DecisionMachineLanguage;
|
|
81
|
+
exports.DecisionMachineOutputSchema = DecisionMachineOutputSchema;
|
|
82
|
+
exports.DecisionMachineRuntime = DecisionMachineRuntime;
|
|
83
|
+
exports.DecisionMachineScope = DecisionMachineScope;
|
|
84
|
+
exports.RoutingMachineOutputSchema = RoutingMachineOutputSchema;
|
|
85
|
+
exports.encodeCounterKey = encodeCounterKey;
|