@prosopo/types 3.8.0 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +19 -14
  2. package/.turbo/turbo-build$colon$tsc.log +8 -8
  3. package/.turbo/turbo-build.log +49 -44
  4. package/.turbo/turbo-typecheck.log +1 -1
  5. package/CHANGELOG.md +520 -0
  6. package/dist/api/api.d.ts +23 -5
  7. package/dist/api/api.d.ts.map +1 -1
  8. package/dist/api/ipapi.d.ts +2 -1
  9. package/dist/api/ipapi.d.ts.map +1 -1
  10. package/dist/api/params.d.ts +24 -1
  11. package/dist/api/params.d.ts.map +1 -1
  12. package/dist/api/params.js +23 -0
  13. package/dist/api/params.js.map +1 -1
  14. package/dist/cjs/api/params.cjs +23 -0
  15. package/dist/cjs/client/captchaType/captchaType.cjs +16 -0
  16. package/dist/cjs/client/index.cjs +17 -0
  17. package/dist/cjs/client/settings.cjs +83 -1
  18. package/dist/cjs/client/testSiteKeys.cjs +22 -0
  19. package/dist/cjs/config/config.cjs +25 -18
  20. package/dist/cjs/config/index.cjs +6 -2
  21. package/dist/cjs/config/mode.cjs +15 -0
  22. package/dist/cjs/config/timeouts.cjs +6 -0
  23. package/dist/cjs/decisionMachine/index.cjs +85 -0
  24. package/dist/cjs/index.cjs +81 -2
  25. package/dist/cjs/provider/api.cjs +261 -9
  26. package/dist/cjs/provider/database.cjs +254 -0
  27. package/dist/cjs/provider/index.cjs +43 -0
  28. package/dist/cjs/provider/reasons.cjs +45 -0
  29. package/dist/cjs/provider/scheduler.cjs +1 -0
  30. package/dist/client/captchaType/captchaType.d.ts +4 -2
  31. package/dist/client/captchaType/captchaType.d.ts.map +1 -1
  32. package/dist/client/captchaType/captchaType.js +17 -1
  33. package/dist/client/captchaType/captchaType.js.map +1 -1
  34. package/dist/client/index.d.ts +1 -0
  35. package/dist/client/index.d.ts.map +1 -1
  36. package/dist/client/index.js +20 -3
  37. package/dist/client/index.js.map +1 -1
  38. package/dist/client/settings.d.ts +276 -0
  39. package/dist/client/settings.d.ts.map +1 -1
  40. package/dist/client/settings.js +84 -2
  41. package/dist/client/settings.js.map +1 -1
  42. package/dist/client/testSiteKeys.d.ts +8 -0
  43. package/dist/client/testSiteKeys.d.ts.map +1 -0
  44. package/dist/client/testSiteKeys.js +22 -0
  45. package/dist/client/testSiteKeys.js.map +1 -0
  46. package/dist/config/config.d.ts +371 -27
  47. package/dist/config/config.d.ts.map +1 -1
  48. package/dist/config/config.js +25 -18
  49. package/dist/config/config.js.map +1 -1
  50. package/dist/config/index.d.ts +1 -0
  51. package/dist/config/index.d.ts.map +1 -1
  52. package/dist/config/index.js +6 -2
  53. package/dist/config/index.js.map +1 -1
  54. package/dist/config/mode.d.ts +8 -0
  55. package/dist/config/mode.d.ts.map +1 -0
  56. package/dist/config/mode.js +15 -0
  57. package/dist/config/mode.js.map +1 -0
  58. package/dist/config/timeouts.d.ts +3 -0
  59. package/dist/config/timeouts.d.ts.map +1 -1
  60. package/dist/config/timeouts.js +7 -1
  61. package/dist/config/timeouts.js.map +1 -1
  62. package/dist/datasets/captcha.d.ts +2 -2
  63. package/dist/datasets/captcha.d.ts.map +1 -1
  64. package/dist/datasets/captcha.js.map +1 -1
  65. package/dist/decisionMachine/index.d.ts +174 -0
  66. package/dist/decisionMachine/index.d.ts.map +1 -0
  67. package/dist/decisionMachine/index.js +85 -0
  68. package/dist/decisionMachine/index.js.map +1 -0
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +85 -6
  72. package/dist/index.js.map +1 -1
  73. package/dist/procaptcha/api.d.ts +3 -2
  74. package/dist/procaptcha/api.d.ts.map +1 -1
  75. package/dist/procaptcha/behavioral.d.ts +13 -1
  76. package/dist/procaptcha/behavioral.d.ts.map +1 -1
  77. package/dist/procaptcha/props.d.ts +5 -0
  78. package/dist/procaptcha/props.d.ts.map +1 -1
  79. package/dist/procaptcha-bundle/index.d.ts +0 -3
  80. package/dist/procaptcha-bundle/index.d.ts.map +1 -1
  81. package/dist/procaptcha-frictionless/props.d.ts +1 -0
  82. package/dist/procaptcha-frictionless/props.d.ts.map +1 -1
  83. package/dist/provider/api.d.ts +1662 -122
  84. package/dist/provider/api.d.ts.map +1 -1
  85. package/dist/provider/api.js +261 -9
  86. package/dist/provider/api.js.map +1 -1
  87. package/dist/provider/database.d.ts +1385 -0
  88. package/dist/provider/database.d.ts.map +1 -0
  89. package/dist/provider/database.js +254 -0
  90. package/dist/provider/database.js.map +1 -0
  91. package/dist/provider/detection.d.ts +22 -0
  92. package/dist/provider/detection.d.ts.map +1 -1
  93. package/dist/provider/index.d.ts +2 -0
  94. package/dist/provider/index.d.ts.map +1 -1
  95. package/dist/provider/index.js +44 -1
  96. package/dist/provider/index.js.map +1 -1
  97. package/dist/provider/reasons.d.ts +40 -0
  98. package/dist/provider/reasons.d.ts.map +1 -0
  99. package/dist/provider/reasons.js +45 -0
  100. package/dist/provider/reasons.js.map +1 -0
  101. package/dist/provider/scheduler.d.ts +2 -1
  102. package/dist/provider/scheduler.d.ts.map +1 -1
  103. package/dist/provider/scheduler.js +1 -0
  104. package/dist/provider/scheduler.js.map +1 -1
  105. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/api/params.ts"],"names":[],"mappings":"AAcA,oBAAY,SAAS;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,kBAAkB,wBAAwB;IAC1C,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,EAAE,OAAO;IACT,mBAAmB,wBAAwB;IAC3C,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,IAAI,SAAS;CACb"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/api/params.ts"],"names":[],"mappings":"AAcA,oBAAY,SAAS;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,kBAAkB,wBAAwB;IAC1C,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,EAAE,OAAO;IACT,mBAAmB,wBAAwB;IAC3C,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,0BAA0B,+BAA+B;IACzD,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,QAAQ,aAAa;CACrB"}
@@ -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 {
@@ -1 +1 @@
1
- {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/api/params.ts"],"names":[],"mappings":"AAcA,MAAM,CAAN,IAAY,SA2CX;AA3CD,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,0BAAa,CAAA;AACd,CAAC,EA3CW,SAAS,KAAT,SAAS,QA2CpB"}
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"}
@@ -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;