@prosopo/provider 4.15.14 → 4.15.15
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 +106 -106
- package/.turbo/turbo-build$colon$tsc.log +24 -24
- package/.turbo/turbo-build.log +107 -104
- package/CHANGELOG.md +49 -0
- package/dist/_virtual/_rolldown/runtime.js +3 -0
- package/dist/api/admin/apiAdminRoutesProvider.js +27 -46
- package/dist/api/admin/apiClearAllCountersEndpoint.js +62 -57
- package/dist/api/admin/apiDnsEventEndpoint.js +79 -92
- package/dist/api/admin/apiGetAllDecisionMachinesEndpoint.js +43 -45
- package/dist/api/admin/apiGetDecisionMachineEndpoint.js +40 -40
- package/dist/api/admin/apiRegisterSiteKeyEndpoint.js +23 -22
- package/dist/api/admin/apiRegisterSiteKeysEndpoint.js +26 -30
- package/dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js +35 -37
- package/dist/api/admin/apiRemoveDecisionMachineEndpoint.js +40 -40
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +29 -31
- package/dist/api/admin/apiRemoveSiteKeyEndpoint.js +33 -29
- package/dist/api/admin/apiRemoveSiteKeysEndpoint.js +32 -31
- package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js +43 -35
- package/dist/api/admin/apiUpdateDecisionMachineEndpoint.js +43 -63
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +36 -35
- package/dist/api/admin/createApiAdminRoutesProvider.js +6 -8
- package/dist/api/blacklistRequestInspector.js +285 -377
- package/dist/api/block.js +17 -30
- package/dist/api/captcha/checkSpamEmail.js +88 -98
- package/dist/api/captcha/contextAwareValidation.js +21 -15
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js +126 -140
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js +11 -12
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +236 -299
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js +10 -13
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +336 -462
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js +17 -14
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js +27 -27
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +42 -63
- package/dist/api/captcha/getFrictionlessCaptchaChallenge.js +2 -4
- package/dist/api/captcha/getImageCaptchaChallenge.js +136 -207
- package/dist/api/captcha/getPoWCaptchaChallenge.js +128 -198
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js +132 -201
- package/dist/api/captcha/maintenanceModeResponses.js +38 -47
- package/dist/api/captcha/submitImageCaptchaSolution.js +75 -101
- package/dist/api/captcha/submitPoWCaptchaSolution.js +137 -207
- package/dist/api/captcha/submitPuzzleCaptchaSolution.js +73 -105
- package/dist/api/captcha.js +76 -58
- package/dist/api/dnsEventUrl.js +20 -22
- package/dist/api/domainMiddleware.js +104 -115
- package/dist/api/forwardVerify.js +62 -48
- package/dist/api/handshakeTimingMiddleware.js +43 -62
- package/dist/api/hardBlockVerdictCache.js +114 -117
- package/dist/api/headerCheckMiddleware.js +34 -34
- package/dist/api/ignoreMiddleware.js +13 -15
- package/dist/api/ipInfoMiddleware.js +17 -19
- package/dist/api/ja4.js +149 -188
- package/dist/api/ja4Middleware.js +39 -54
- package/dist/api/metrics.js +245 -257
- package/dist/api/public.js +52 -54
- package/dist/api/robotsMiddleware.js +10 -10
- package/dist/api/startProviderApi.js +205 -232
- package/dist/api/testSiteKey.js +16 -16
- package/dist/api/validateAddress.js +23 -21
- package/dist/api/verify.js +334 -377
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +40 -59
- package/dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs +63 -58
- package/dist/cjs/api/admin/apiDnsEventEndpoint.cjs +82 -93
- package/dist/cjs/api/admin/apiGetAllDecisionMachinesEndpoint.cjs +46 -48
- package/dist/cjs/api/admin/apiGetDecisionMachineEndpoint.cjs +41 -41
- package/dist/cjs/api/admin/apiRegisterSiteKeyEndpoint.cjs +25 -24
- package/dist/cjs/api/admin/apiRegisterSiteKeysEndpoint.cjs +28 -32
- package/dist/cjs/api/admin/apiRemoveAllDecisionMachinesEndpoint.cjs +38 -40
- package/dist/cjs/api/admin/apiRemoveDecisionMachineEndpoint.cjs +41 -41
- package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +31 -33
- package/dist/cjs/api/admin/apiRemoveSiteKeyEndpoint.cjs +35 -31
- package/dist/cjs/api/admin/apiRemoveSiteKeysEndpoint.cjs +34 -33
- package/dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs +45 -35
- package/dist/cjs/api/admin/apiUpdateDecisionMachineEndpoint.cjs +45 -65
- package/dist/cjs/api/admin/apiUpdateDetectorKeyEndpoint.cjs +38 -37
- package/dist/cjs/api/admin/createApiAdminRoutesProvider.cjs +7 -8
- package/dist/cjs/api/blacklistRequestInspector.cjs +288 -376
- package/dist/cjs/api/block.cjs +18 -30
- package/dist/cjs/api/captcha/checkSpamEmail.cjs +90 -100
- package/dist/cjs/api/captcha/contextAwareValidation.cjs +21 -14
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs +125 -140
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/constants.cjs +10 -10
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +238 -301
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.cjs +9 -12
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +349 -473
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.cjs +18 -14
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.cjs +26 -26
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +42 -63
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge.cjs +2 -3
- package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +138 -208
- package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +131 -200
- package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +135 -203
- package/dist/cjs/api/captcha/maintenanceModeResponses.cjs +38 -44
- package/dist/cjs/api/captcha/submitImageCaptchaSolution.cjs +77 -102
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +140 -209
- package/dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs +76 -107
- package/dist/cjs/api/captcha.cjs +79 -58
- package/dist/cjs/api/dnsEventUrl.cjs +20 -21
- package/dist/cjs/api/domainMiddleware.cjs +106 -117
- package/dist/cjs/api/forwardVerify.cjs +63 -49
- package/dist/cjs/api/handshakeTimingMiddleware.cjs +43 -61
- package/dist/cjs/api/hardBlockVerdictCache.cjs +114 -114
- package/dist/cjs/api/headerCheckMiddleware.cjs +34 -34
- package/dist/cjs/api/ignoreMiddleware.cjs +12 -14
- package/dist/cjs/api/ipInfoMiddleware.cjs +16 -18
- package/dist/cjs/api/ja4.cjs +149 -187
- package/dist/cjs/api/ja4Middleware.cjs +40 -53
- package/dist/cjs/api/metrics.cjs +229 -228
- package/dist/cjs/api/public.cjs +57 -57
- package/dist/cjs/api/robotsMiddleware.cjs +9 -9
- package/dist/cjs/api/startProviderApi.cjs +219 -237
- package/dist/cjs/api/testSiteKey.cjs +15 -14
- package/dist/cjs/api/validateAddress.cjs +24 -21
- package/dist/cjs/api/verify.cjs +338 -379
- package/dist/cjs/compositeIpAddress.cjs +40 -47
- package/dist/cjs/index.cjs +65 -71
- package/dist/cjs/pairs.cjs +31 -35
- package/dist/cjs/rules/lang.cjs +10 -14
- package/dist/cjs/schedulers/captchaScheduler.cjs +26 -32
- package/dist/cjs/schedulers/getClientList.cjs +35 -33
- package/dist/cjs/schedulers/setClientEntropy.cjs +35 -33
- package/dist/cjs/schedulers/updateSpamEmailDomains.cjs +39 -43
- package/dist/cjs/services/ipComparison.cjs +122 -119
- package/dist/cjs/tasks/captchaManager.cjs +407 -486
- package/dist/cjs/tasks/client/clientTasks.cjs +347 -470
- package/dist/cjs/tasks/dataset/datasetTasks.cjs +25 -29
- package/dist/cjs/tasks/dataset/datasetTasksUtils.cjs +16 -32
- package/dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs +220 -307
- package/dist/cjs/tasks/detection/decodeBehavior.cjs +408 -317
- package/dist/cjs/tasks/detection/decodePayload.cjs +686 -468
- package/dist/cjs/tasks/detection/decodeSimd.cjs +462 -304
- package/dist/cjs/tasks/detection/getBotScore.cjs +37 -43
- package/dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs +88 -71
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +348 -486
- package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +13 -30
- package/dist/cjs/tasks/frictionless/routingMachine.cjs +71 -55
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +555 -806
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +22 -23
- package/dist/cjs/tasks/index.cjs +2 -4
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +491 -687
- package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +17 -29
- package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +422 -591
- package/dist/cjs/tasks/puzzleCaptcha/puzzleTasksUtils.cjs +8 -5
- package/dist/cjs/tasks/spam/checkSpamEmail.cjs +133 -141
- package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +118 -76
- package/dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs +75 -84
- package/dist/cjs/tasks/spam/updateSpamEmailDomains.cjs +40 -56
- package/dist/cjs/tasks/tasks.cjs +107 -158
- package/dist/cjs/util/usageCounters.cjs +220 -211
- package/dist/cjs/util.cjs +329 -359
- package/dist/cjs/utils/devicePlatform.cjs +14 -8
- package/dist/cjs/utils/dns.cjs +68 -93
- package/dist/cjs/utils/hashUserAgent.cjs +14 -7
- package/dist/cjs/utils/hashUserIp.cjs +14 -6
- package/dist/cjs/utils/honeypot/encoders.cjs +74 -80
- package/dist/cjs/utils/honeypot/phraseBank.cjs +51 -44
- package/dist/cjs/utils/normalizeRequestIp.cjs +33 -25
- package/dist/compositeIpAddress.js +38 -46
- package/dist/index.js +12 -56
- package/dist/pairs.js +31 -37
- package/dist/rules/lang.js +11 -15
- package/dist/schedulers/captchaScheduler.js +25 -31
- package/dist/schedulers/getClientList.js +34 -32
- package/dist/schedulers/setClientEntropy.js +34 -32
- package/dist/schedulers/updateSpamEmailDomains.js +38 -42
- package/dist/services/ipComparison.js +122 -119
- package/dist/tasks/captchaManager.js +403 -483
- package/dist/tasks/client/clientTasks.js +343 -467
- package/dist/tasks/dataset/datasetTasks.js +24 -28
- package/dist/tasks/dataset/datasetTasksUtils.js +15 -31
- package/dist/tasks/decisionMachine/decisionMachineRunner.js +217 -306
- package/dist/tasks/detection/getBotScore.js +37 -43
- package/dist/tasks/dnsEvent/enrichDnsEvent.d.ts.map +1 -1
- package/dist/tasks/dnsEvent/enrichDnsEvent.js +88 -74
- package/dist/tasks/dnsEvent/enrichDnsEvent.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +342 -479
- package/dist/tasks/frictionless/frictionlessTasksUtils.js +14 -32
- package/dist/tasks/frictionless/routingMachine.js +72 -56
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +550 -801
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +21 -22
- package/dist/tasks/index.js +1 -3
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +486 -682
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasksUtils.js +15 -28
- package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js +417 -586
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasksUtils.js +9 -6
- package/dist/tasks/spam/checkSpamEmail.js +133 -141
- package/dist/tasks/spam/checkTrafficFilter.d.ts +1 -0
- package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
- package/dist/tasks/spam/checkTrafficFilter.js +117 -77
- package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
- package/dist/tasks/spam/evaluateEmailSpamRules.js +75 -86
- package/dist/tasks/spam/updateSpamEmailDomains.js +36 -54
- package/dist/tasks/tasks.js +98 -150
- package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +4 -1
- package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -1
- package/dist/tests/unit/api/block.unit.test.js +8 -4
- package/dist/tests/unit/api/block.unit.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/maintenanceModeShortCircuit.unit.test.js +8 -6
- package/dist/tests/unit/api/captcha/maintenanceModeShortCircuit.unit.test.js.map +1 -1
- package/dist/tests/unit/api/forwardVerify.unit.test.js +3 -1
- package/dist/tests/unit/api/forwardVerify.unit.test.js.map +1 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +15 -7
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +24 -18
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -1
- package/dist/tests/unit/schedulers/getClientList.unit.test.js +19 -13
- package/dist/tests/unit/schedulers/getClientList.unit.test.js.map +1 -1
- package/dist/tests/unit/schedulers/setClientEntropy.unit.test.js +19 -13
- package/dist/tests/unit/schedulers/setClientEntropy.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +22 -16
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +140 -0
- package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
- package/dist/tests/unit/testUtils/mockProviderEnv.d.ts +7 -7
- package/dist/util/usageCounters.js +220 -212
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +327 -364
- package/dist/util.js.map +1 -1
- package/dist/utils/devicePlatform.js +15 -9
- package/dist/utils/dns.js +64 -77
- package/dist/utils/hashUserAgent.js +14 -7
- package/dist/utils/hashUserIp.js +14 -6
- package/dist/utils/honeypot/encoders.js +74 -80
- package/dist/utils/honeypot/phraseBank.js +49 -44
- package/dist/utils/normalizeRequestIp.js +34 -26
- package/package.json +24 -24
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
|
@@ -1,60 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
[types.AdminApiPaths.RemoveDecisionMachine]: new apiRemoveDecisionMachineEndpoint.ApiRemoveDecisionMachineEndpoint(this.tasks.clientTaskManager),
|
|
42
|
-
[types.AdminApiPaths.RemoveAllDecisionMachines]: new apiRemoveAllDecisionMachinesEndpoint.ApiRemoveAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
|
|
43
|
-
[types.AdminApiPaths.ClearAllCounters]: new apiClearAllCountersEndpoint.ApiClearAllCountersEndpoint(
|
|
44
|
-
this.tasks.usageCounters
|
|
45
|
-
),
|
|
46
|
-
[types.AdminApiPaths.SiteKeyRemove]: new apiRemoveSiteKeyEndpoint.ApiRemoveSiteKeyEndpoint(
|
|
47
|
-
this.tasks.clientTaskManager
|
|
48
|
-
),
|
|
49
|
-
[types.AdminApiPaths.SiteKeysRemove]: new apiRemoveSiteKeysEndpoint.ApiRemoveSiteKeysEndpoint(
|
|
50
|
-
this.tasks.clientTaskManager
|
|
51
|
-
),
|
|
52
|
-
[types.AdminApiPaths.ToggleMaintenanceMode]: new apiToggleMaintenanceModeEndpoint.ApiToggleMaintenanceModeEndpoint(),
|
|
53
|
-
[types.AdminApiPaths.DnsEvent]: new apiDnsEventEndpoint.ApiDnsEventEndpoint(
|
|
54
|
-
this.tasks.db,
|
|
55
|
-
this.tasks.env.ipInfoService
|
|
56
|
-
)
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
const require_apiToggleMaintenanceModeEndpoint = require("./apiToggleMaintenanceModeEndpoint.cjs");
|
|
2
|
+
const require_apiClearAllCountersEndpoint = require("./apiClearAllCountersEndpoint.cjs");
|
|
3
|
+
const require_apiDnsEventEndpoint = require("./apiDnsEventEndpoint.cjs");
|
|
4
|
+
const require_apiGetAllDecisionMachinesEndpoint = require("./apiGetAllDecisionMachinesEndpoint.cjs");
|
|
5
|
+
const require_apiGetDecisionMachineEndpoint = require("./apiGetDecisionMachineEndpoint.cjs");
|
|
6
|
+
const require_apiRegisterSiteKeyEndpoint = require("./apiRegisterSiteKeyEndpoint.cjs");
|
|
7
|
+
const require_apiRegisterSiteKeysEndpoint = require("./apiRegisterSiteKeysEndpoint.cjs");
|
|
8
|
+
const require_apiRemoveAllDecisionMachinesEndpoint = require("./apiRemoveAllDecisionMachinesEndpoint.cjs");
|
|
9
|
+
const require_apiRemoveDecisionMachineEndpoint = require("./apiRemoveDecisionMachineEndpoint.cjs");
|
|
10
|
+
const require_apiRemoveDetectorKeyEndpoint = require("./apiRemoveDetectorKeyEndpoint.cjs");
|
|
11
|
+
const require_apiRemoveSiteKeyEndpoint = require("./apiRemoveSiteKeyEndpoint.cjs");
|
|
12
|
+
const require_apiRemoveSiteKeysEndpoint = require("./apiRemoveSiteKeysEndpoint.cjs");
|
|
13
|
+
const require_apiUpdateDecisionMachineEndpoint = require("./apiUpdateDecisionMachineEndpoint.cjs");
|
|
14
|
+
const require_apiUpdateDetectorKeyEndpoint = require("./apiUpdateDetectorKeyEndpoint.cjs");
|
|
15
|
+
let _prosopo_types = require("@prosopo/types");
|
|
16
|
+
//#region src/api/admin/apiAdminRoutesProvider.ts
|
|
17
|
+
var ApiAdminRoutesProvider = class {
|
|
18
|
+
constructor(tasks) {
|
|
19
|
+
this.tasks = tasks;
|
|
20
|
+
}
|
|
21
|
+
getRoutes() {
|
|
22
|
+
return {
|
|
23
|
+
[_prosopo_types.AdminApiPaths.SiteKeyRegister]: new require_apiRegisterSiteKeyEndpoint.ApiRegisterSiteKeyEndpoint(this.tasks.clientTaskManager),
|
|
24
|
+
[_prosopo_types.AdminApiPaths.SiteKeysRegister]: new require_apiRegisterSiteKeysEndpoint.ApiRegisterSiteKeysEndpoint(this.tasks.clientTaskManager),
|
|
25
|
+
[_prosopo_types.AdminApiPaths.UpdateDetectorKey]: new require_apiUpdateDetectorKeyEndpoint.ApiUpdateDetectorKeyEndpoint(this.tasks.clientTaskManager),
|
|
26
|
+
[_prosopo_types.AdminApiPaths.RemoveDetectorKey]: new require_apiRemoveDetectorKeyEndpoint.ApiRemoveDetectorKeyEndpoint(this.tasks.clientTaskManager),
|
|
27
|
+
[_prosopo_types.AdminApiPaths.UpdateDecisionMachine]: new require_apiUpdateDecisionMachineEndpoint.ApiUpdateDecisionMachineEndpoint(this.tasks.clientTaskManager),
|
|
28
|
+
[_prosopo_types.AdminApiPaths.GetAllDecisionMachines]: new require_apiGetAllDecisionMachinesEndpoint.ApiGetAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
|
|
29
|
+
[_prosopo_types.AdminApiPaths.GetDecisionMachine]: new require_apiGetDecisionMachineEndpoint.ApiGetDecisionMachineEndpoint(this.tasks.clientTaskManager),
|
|
30
|
+
[_prosopo_types.AdminApiPaths.RemoveDecisionMachine]: new require_apiRemoveDecisionMachineEndpoint.ApiRemoveDecisionMachineEndpoint(this.tasks.clientTaskManager),
|
|
31
|
+
[_prosopo_types.AdminApiPaths.RemoveAllDecisionMachines]: new require_apiRemoveAllDecisionMachinesEndpoint.ApiRemoveAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
|
|
32
|
+
[_prosopo_types.AdminApiPaths.ClearAllCounters]: new require_apiClearAllCountersEndpoint.ApiClearAllCountersEndpoint(this.tasks.usageCounters),
|
|
33
|
+
[_prosopo_types.AdminApiPaths.SiteKeyRemove]: new require_apiRemoveSiteKeyEndpoint.ApiRemoveSiteKeyEndpoint(this.tasks.clientTaskManager),
|
|
34
|
+
[_prosopo_types.AdminApiPaths.SiteKeysRemove]: new require_apiRemoveSiteKeysEndpoint.ApiRemoveSiteKeysEndpoint(this.tasks.clientTaskManager),
|
|
35
|
+
[_prosopo_types.AdminApiPaths.ToggleMaintenanceMode]: new require_apiToggleMaintenanceModeEndpoint.ApiToggleMaintenanceModeEndpoint(),
|
|
36
|
+
[_prosopo_types.AdminApiPaths.DnsEvent]: new require_apiDnsEventEndpoint.ApiDnsEventEndpoint(this.tasks.db, this.tasks.env.ipInfoService)
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
60
41
|
exports.ApiAdminRoutesProvider = ApiAdminRoutesProvider;
|
|
@@ -1,59 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
1
|
+
let _prosopo_logger = require("@prosopo/logger");
|
|
2
|
+
let _prosopo_types = require("@prosopo/types");
|
|
3
|
+
let _prosopo_api_route = require("@prosopo/api-route");
|
|
4
|
+
//#region src/api/admin/apiClearAllCountersEndpoint.ts
|
|
5
|
+
/**
|
|
6
|
+
* Admin endpoint: delete every per-sitekey usage counter (optionally scoped
|
|
7
|
+
* to a single dappAccount). Intended for manual integration testing and
|
|
8
|
+
* staging-environment resets — not part of the hot path. Returns the number
|
|
9
|
+
* of Redis keys deleted.
|
|
10
|
+
*/
|
|
11
|
+
var ApiClearAllCountersEndpoint = class {
|
|
12
|
+
constructor(usageCounters) {
|
|
13
|
+
this.usageCounters = usageCounters;
|
|
14
|
+
}
|
|
15
|
+
async processRequest(args, logger) {
|
|
16
|
+
logger = logger ? logger.with({}, "admin:counters:clear-all") : (0, _prosopo_logger.getLogger)("info", "provider:admin:counters:clear-all");
|
|
17
|
+
const dappAccount = args.dapp;
|
|
18
|
+
const scope = dappAccount ?? "all";
|
|
19
|
+
try {
|
|
20
|
+
logger.info(() => ({
|
|
21
|
+
msg: "Clearing usage counters",
|
|
22
|
+
data: { scope }
|
|
23
|
+
}));
|
|
24
|
+
if (!this.usageCounters) return {
|
|
25
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.FAIL,
|
|
26
|
+
error: "Usage counters not available (Redis unreachable)"
|
|
27
|
+
};
|
|
28
|
+
const deleted = await this.usageCounters.clearAll(dappAccount);
|
|
29
|
+
if (deleted === null) return {
|
|
30
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.FAIL,
|
|
31
|
+
error: "Counter clear failed"
|
|
32
|
+
};
|
|
33
|
+
logger.info(() => ({
|
|
34
|
+
msg: "Usage counters cleared",
|
|
35
|
+
data: {
|
|
36
|
+
scope,
|
|
37
|
+
deletedCount: deleted
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
return {
|
|
41
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
|
|
42
|
+
data: _prosopo_types.ClearAllCountersResponse.parse({
|
|
43
|
+
success: true,
|
|
44
|
+
deletedCount: deleted,
|
|
45
|
+
scope
|
|
46
|
+
})
|
|
47
|
+
};
|
|
48
|
+
} catch (error) {
|
|
49
|
+
logger.error(() => ({
|
|
50
|
+
msg: "Error clearing usage counters",
|
|
51
|
+
err: error
|
|
52
|
+
}));
|
|
53
|
+
return {
|
|
54
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.FAIL,
|
|
55
|
+
error: error.message
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
getRequestArgsSchema() {
|
|
60
|
+
return _prosopo_types.ClearAllCountersBody;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//#endregion
|
|
59
64
|
exports.ApiClearAllCountersEndpoint = ApiClearAllCountersEndpoint;
|
|
@@ -1,96 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const out = {
|
|
12
|
-
peerIp: event.src_ip
|
|
13
|
-
};
|
|
14
|
-
if (typeof event.path_valid === "boolean") {
|
|
15
|
-
out.pathValid = event.path_valid;
|
|
16
|
-
}
|
|
17
|
-
return out;
|
|
1
|
+
const require_enrichDnsEvent = require("../../tasks/dnsEvent/enrichDnsEvent.cjs");
|
|
2
|
+
let _prosopo_logger = require("@prosopo/logger");
|
|
3
|
+
let _prosopo_types = require("@prosopo/types");
|
|
4
|
+
let _prosopo_api_route = require("@prosopo/api-route");
|
|
5
|
+
//#region src/api/admin/apiDnsEventEndpoint.ts
|
|
6
|
+
var dnsEventToFields = (event) => {
|
|
7
|
+
if (event.kind === "dns") return { resolverIp: event.src_ip };
|
|
8
|
+
const out = { peerIp: event.src_ip };
|
|
9
|
+
if (typeof event.path_valid === "boolean") out.pathValid = event.path_valid;
|
|
10
|
+
return out;
|
|
18
11
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
12
|
+
var ApiDnsEventEndpoint = class {
|
|
13
|
+
constructor(db, ipInfoService) {
|
|
14
|
+
this.db = db;
|
|
15
|
+
this.ipInfoService = ipInfoService;
|
|
16
|
+
}
|
|
17
|
+
async processRequest(args, logger) {
|
|
18
|
+
logger = logger ? logger.with({}, "admin:dns-event:ingest") : (0, _prosopo_logger.getLogger)("info", "provider:admin:dns-event:ingest");
|
|
19
|
+
const { events } = args;
|
|
20
|
+
let stored = 0;
|
|
21
|
+
let errors = 0;
|
|
22
|
+
const now = /* @__PURE__ */ new Date();
|
|
23
|
+
for (const event of events) {
|
|
24
|
+
const sessionId = event.jti;
|
|
25
|
+
if (!sessionId) continue;
|
|
26
|
+
try {
|
|
27
|
+
const fields = dnsEventToFields(event);
|
|
28
|
+
if (await this.db.mergeSessionDnsEvent(sessionId, fields, now)) {
|
|
29
|
+
stored += 1;
|
|
30
|
+
await this.recomputeDnsAsymmetry(sessionId, logger);
|
|
31
|
+
}
|
|
32
|
+
} catch (err) {
|
|
33
|
+
errors += 1;
|
|
34
|
+
logger.warn(() => ({
|
|
35
|
+
err,
|
|
36
|
+
data: {
|
|
37
|
+
sessionId,
|
|
38
|
+
kind: event.kind
|
|
39
|
+
},
|
|
40
|
+
msg: "Failed to merge DNS event into session"
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
logger.info(() => ({
|
|
45
|
+
data: {
|
|
46
|
+
received: events.length,
|
|
47
|
+
stored,
|
|
48
|
+
errors
|
|
49
|
+
},
|
|
50
|
+
msg: "Processed DNS event batch"
|
|
51
|
+
}));
|
|
52
|
+
return {
|
|
53
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
|
|
54
|
+
data: {
|
|
55
|
+
stored,
|
|
56
|
+
errors
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
getRequestArgsSchema() {
|
|
61
|
+
return _prosopo_types.DnsEventBatchSchema;
|
|
62
|
+
}
|
|
63
|
+
async recomputeDnsAsymmetry(sessionId, logger) {
|
|
64
|
+
if (!this.ipInfoService) return;
|
|
65
|
+
try {
|
|
66
|
+
const session = await this.db.getSessionRecordBySessionId(sessionId);
|
|
67
|
+
if (!session?.dnsEvent) return;
|
|
68
|
+
const enriched = await require_enrichDnsEvent.enrichDnsEvent(session.dnsEvent, this.ipInfoService, session.ipInfo?.ip);
|
|
69
|
+
const dnsAsymmetry = require_enrichDnsEvent.computeDnsAsymmetry(enriched, session.ipInfo);
|
|
70
|
+
if (dnsAsymmetry > 0) await this.db.updateSessionRecord(sessionId, { scoreComponents: {
|
|
71
|
+
...session.scoreComponents,
|
|
72
|
+
dnsAsymmetry
|
|
73
|
+
} });
|
|
74
|
+
} catch (err) {
|
|
75
|
+
logger.warn(() => ({
|
|
76
|
+
err,
|
|
77
|
+
data: { sessionId },
|
|
78
|
+
msg: "Failed to recompute dnsAsymmetry after DNS event merge"
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
95
84
|
exports.ApiDnsEventEndpoint = ApiDnsEventEndpoint;
|
|
96
85
|
exports.dnsEventToFields = dnsEventToFields;
|
|
@@ -1,49 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
}
|
|
1
|
+
let _prosopo_logger = require("@prosopo/logger");
|
|
2
|
+
let _prosopo_types = require("@prosopo/types");
|
|
3
|
+
let zod = require("zod");
|
|
4
|
+
let _prosopo_api_route = require("@prosopo/api-route");
|
|
5
|
+
//#region src/api/admin/apiGetAllDecisionMachinesEndpoint.ts
|
|
6
|
+
var ApiGetAllDecisionMachinesEndpoint = class {
|
|
7
|
+
constructor(clientTaskManager) {
|
|
8
|
+
this.clientTaskManager = clientTaskManager;
|
|
9
|
+
}
|
|
10
|
+
async processRequest(args, logger) {
|
|
11
|
+
logger = logger ? logger.with({}, "admin:decision-machines:get-all") : (0, _prosopo_logger.getLogger)("info", "provider:admin:decision-machines:get-all");
|
|
12
|
+
try {
|
|
13
|
+
logger.info(() => ({ msg: "Getting all decision machines" }));
|
|
14
|
+
const result = await this.clientTaskManager.getAllDecisionMachines();
|
|
15
|
+
logger.info(() => ({
|
|
16
|
+
msg: "Retrieved all decision machines",
|
|
17
|
+
data: { count: result.length }
|
|
18
|
+
}));
|
|
19
|
+
logger.info(() => ({
|
|
20
|
+
msg: "Result before parsing",
|
|
21
|
+
data: { result }
|
|
22
|
+
}));
|
|
23
|
+
logger.info(() => ({
|
|
24
|
+
msg: "Schema definition",
|
|
25
|
+
data: { schema: _prosopo_types.GetAllDecisionMachinesResponse.toString() }
|
|
26
|
+
}));
|
|
27
|
+
return {
|
|
28
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
|
|
29
|
+
data: _prosopo_types.GetAllDecisionMachinesResponse.parse(result)
|
|
30
|
+
};
|
|
31
|
+
} catch (error) {
|
|
32
|
+
logger.error(() => ({
|
|
33
|
+
msg: "Error getting all decision machines",
|
|
34
|
+
err: error
|
|
35
|
+
}));
|
|
36
|
+
return {
|
|
37
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.FAIL,
|
|
38
|
+
error: error.message
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getRequestArgsSchema() {
|
|
43
|
+
return (0, zod.object)({});
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
49
47
|
exports.ApiGetAllDecisionMachinesEndpoint = ApiGetAllDecisionMachinesEndpoint;
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
let _prosopo_logger = require("@prosopo/logger");
|
|
2
|
+
let _prosopo_types = require("@prosopo/types");
|
|
3
|
+
let _prosopo_api_route = require("@prosopo/api-route");
|
|
4
|
+
//#region src/api/admin/apiGetDecisionMachineEndpoint.ts
|
|
5
|
+
var ApiGetDecisionMachineEndpoint = class {
|
|
6
|
+
constructor(clientTaskManager) {
|
|
7
|
+
this.clientTaskManager = clientTaskManager;
|
|
8
|
+
}
|
|
9
|
+
async processRequest(args, logger) {
|
|
10
|
+
logger = logger ? logger.with({}, "admin:decision-machine:get") : (0, _prosopo_logger.getLogger)("info", "provider:admin:decision-machine:get");
|
|
11
|
+
try {
|
|
12
|
+
const { id } = args;
|
|
13
|
+
logger.info(() => ({
|
|
14
|
+
msg: "Getting decision machine",
|
|
15
|
+
data: { id }
|
|
16
|
+
}));
|
|
17
|
+
const result = await this.clientTaskManager.getDecisionMachine(id);
|
|
18
|
+
logger.info(() => ({
|
|
19
|
+
msg: "Retrieved decision machine",
|
|
20
|
+
data: { id }
|
|
21
|
+
}));
|
|
22
|
+
return {
|
|
23
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
|
|
24
|
+
data: _prosopo_types.GetDecisionMachineResponse.parse(result)
|
|
25
|
+
};
|
|
26
|
+
} catch (error) {
|
|
27
|
+
logger.error(() => ({
|
|
28
|
+
msg: "Error getting decision machine",
|
|
29
|
+
err: error
|
|
30
|
+
}));
|
|
31
|
+
return {
|
|
32
|
+
status: _prosopo_api_route.ApiEndpointResponseStatus.FAIL,
|
|
33
|
+
error: error.message
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
getRequestArgsSchema() {
|
|
38
|
+
return _prosopo_types.GetDecisionMachineBody;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
//#endregion
|
|
42
42
|
exports.ApiGetDecisionMachineEndpoint = ApiGetDecisionMachineEndpoint;
|