@prosopo/provider 3.3.0 → 3.12.14
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/CHANGELOG.md +718 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +4278 -0
- package/coverage/coverage-final.json +42 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +311 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/api/admin/apiAdminRoutesProvider.ts.html +214 -0
- package/coverage/src/api/admin/apiRegisterSiteKeyEndpoint.ts.html +259 -0
- package/coverage/src/api/admin/apiRemoveDetectorKeyEndpoint.ts.html +283 -0
- package/coverage/src/api/admin/apiToggleMaintenanceModeEndpoint.ts.html +334 -0
- package/coverage/src/api/admin/apiUpdateDetectorKeyEndpoint.ts.html +298 -0
- package/coverage/src/api/admin/createApiAdminRoutesProvider.ts.html +163 -0
- package/coverage/src/api/admin/index.html +191 -0
- package/coverage/src/api/blacklistRequestInspector.ts.html +751 -0
- package/coverage/src/api/block.ts.html +187 -0
- package/coverage/src/api/captcha.ts.html +2803 -0
- package/coverage/src/api/domainMiddleware.ts.html +493 -0
- package/coverage/src/api/headerCheckMiddleware.ts.html +256 -0
- package/coverage/src/api/ignoreMiddleware.ts.html +181 -0
- package/coverage/src/api/index.html +266 -0
- package/coverage/src/api/ja4Middleware.ts.html +400 -0
- package/coverage/src/api/public.ts.html +343 -0
- package/coverage/src/api/robotsMiddleware.ts.html +157 -0
- package/coverage/src/api/validateAddress.ts.html +214 -0
- package/coverage/src/api/verify.ts.html +871 -0
- package/coverage/src/compositeIpAddress.ts.html +340 -0
- package/coverage/src/index.html +161 -0
- package/coverage/src/index.ts.html +175 -0
- package/coverage/src/pairs.ts.html +238 -0
- package/coverage/src/rules/index.html +116 -0
- package/coverage/src/rules/lang.ts.html +187 -0
- package/coverage/src/schedulers/captchaScheduler.ts.html +250 -0
- package/coverage/src/schedulers/getClientList.ts.html +271 -0
- package/coverage/src/schedulers/index.html +131 -0
- package/coverage/src/services/index.html +131 -0
- package/coverage/src/services/ipComparison.ts.html +685 -0
- package/coverage/src/services/ipInfo.ts.html +490 -0
- package/coverage/src/tasks/captchaManager.ts.html +865 -0
- package/coverage/src/tasks/client/clientTasks.ts.html +1381 -0
- package/coverage/src/tasks/client/index.html +116 -0
- package/coverage/src/tasks/dataset/datasetTasks.ts.html +268 -0
- package/coverage/src/tasks/dataset/datasetTasksUtils.ts.html +271 -0
- package/coverage/src/tasks/dataset/index.html +131 -0
- package/coverage/src/tasks/detection/decodePayload.js.html +127 -0
- package/coverage/src/tasks/detection/getBotScore.ts.html +244 -0
- package/coverage/src/tasks/detection/index.html +131 -0
- package/coverage/src/tasks/frictionless/frictionlessTasks.ts.html +1216 -0
- package/coverage/src/tasks/frictionless/frictionlessTasksUtils.ts.html +247 -0
- package/coverage/src/tasks/frictionless/index.html +131 -0
- package/coverage/src/tasks/imgCaptcha/imgCaptchaTasks.ts.html +1972 -0
- package/coverage/src/tasks/imgCaptcha/imgCaptchaTasksUtils.ts.html +232 -0
- package/coverage/src/tasks/imgCaptcha/index.html +131 -0
- package/coverage/src/tasks/index.html +146 -0
- package/coverage/src/tasks/index.ts.html +127 -0
- package/coverage/src/tasks/powCaptcha/index.html +131 -0
- package/coverage/src/tasks/powCaptcha/powTasks.ts.html +961 -0
- package/coverage/src/tasks/powCaptcha/powTasksUtils.ts.html +244 -0
- package/coverage/src/tasks/tasks.ts.html +388 -0
- package/coverage/src/util.ts.html +1627 -0
- package/coverage/src/utils/hashUserAgent.ts.html +184 -0
- package/coverage/src/utils/index.html +116 -0
- package/dist/api/admin/apiAdminRoutesProvider.d.ts +9 -0
- package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -0
- package/dist/api/admin/apiAdminRoutesProvider.js +13 -18
- package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -0
- package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts +14 -0
- package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +1 -0
- package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +1 -0
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +23 -0
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -0
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +7 -4
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +1 -0
- package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts +13 -0
- package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts.map +1 -0
- package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js +40 -0
- package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js.map +1 -0
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +14 -0
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +1 -0
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +1 -0
- package/dist/api/admin/createApiAdminRoutesProvider.d.ts +4 -0
- package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +1 -0
- package/dist/api/admin/createApiAdminRoutesProvider.js.map +1 -0
- package/dist/api/blacklistRequestInspector.d.ts +19 -0
- package/dist/api/blacklistRequestInspector.d.ts.map +1 -0
- package/dist/api/blacklistRequestInspector.js +14 -12
- package/dist/api/blacklistRequestInspector.js.map +1 -0
- package/dist/api/block.d.ts +3 -0
- package/dist/api/block.d.ts.map +1 -0
- package/dist/api/block.js.map +1 -0
- package/dist/api/captcha.d.ts +4 -0
- package/dist/api/captcha.d.ts.map +1 -0
- package/dist/api/captcha.js +226 -48
- package/dist/api/captcha.js.map +1 -0
- package/dist/api/domainMiddleware.d.ts +4 -0
- package/dist/api/domainMiddleware.d.ts.map +1 -0
- package/dist/api/domainMiddleware.js +8 -8
- package/dist/api/domainMiddleware.js.map +1 -0
- package/dist/api/headerCheckMiddleware.d.ts +4 -0
- package/dist/api/headerCheckMiddleware.d.ts.map +1 -0
- package/dist/api/headerCheckMiddleware.js +4 -0
- package/dist/api/headerCheckMiddleware.js.map +1 -0
- package/dist/api/ignoreMiddleware.d.ts +3 -0
- package/dist/api/ignoreMiddleware.d.ts.map +1 -0
- package/dist/api/ignoreMiddleware.js +4 -1
- package/dist/api/ignoreMiddleware.js.map +1 -0
- package/dist/api/ja4Middleware.d.ts +10 -0
- package/dist/api/ja4Middleware.d.ts.map +1 -0
- package/dist/api/ja4Middleware.js +5 -23
- package/dist/api/ja4Middleware.js.map +1 -0
- package/dist/api/public.d.ts +4 -0
- package/dist/api/public.d.ts.map +1 -0
- package/dist/api/public.js +26 -3
- package/dist/api/public.js.map +1 -0
- package/dist/api/robotsMiddleware.d.ts +3 -0
- package/dist/api/robotsMiddleware.d.ts.map +1 -0
- package/dist/api/robotsMiddleware.js.map +1 -0
- package/dist/api/validateAddress.d.ts +5 -0
- package/dist/api/validateAddress.d.ts.map +1 -0
- package/dist/api/validateAddress.js.map +1 -0
- package/dist/api/verify.d.ts +4 -0
- package/dist/api/verify.d.ts.map +1 -0
- package/dist/api/verify.js +27 -3
- package/dist/api/verify.js.map +1 -0
- package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +13 -18
- package/dist/cjs/api/admin/apiRegisterSiteKeyEndpoint.cjs +2 -1
- package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +9 -5
- package/dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs +41 -0
- package/dist/cjs/api/blacklistRequestInspector.cjs +13 -11
- package/dist/cjs/api/captcha.cjs +226 -48
- package/dist/cjs/api/domainMiddleware.cjs +8 -8
- package/dist/cjs/api/headerCheckMiddleware.cjs +4 -0
- package/dist/cjs/api/ignoreMiddleware.cjs +3 -0
- package/dist/cjs/api/ja4Middleware.cjs +6 -23
- package/dist/cjs/api/public.cjs +26 -3
- package/dist/cjs/api/verify.cjs +27 -3
- package/dist/cjs/compositeIpAddress.cjs +53 -0
- package/dist/cjs/index.cjs +7 -0
- package/dist/cjs/pairs.cjs +27 -0
- package/dist/cjs/services/ipComparison.cjs +123 -0
- package/dist/cjs/services/ipInfo.cjs +87 -0
- package/dist/cjs/tasks/captchaManager.cjs +41 -10
- package/dist/cjs/tasks/client/clientTasks.cjs +31 -43
- package/dist/cjs/tasks/detection/decodePayload.cjs +616 -281
- package/dist/cjs/tasks/detection/getBotScore.cjs +28 -4
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +227 -36
- package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +17 -0
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +78 -30
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +49 -21
- package/dist/cjs/util.cjs +262 -17
- package/dist/cjs/utils/hashUserAgent.cjs +10 -0
- package/dist/compositeIpAddress.d.ts +5 -0
- package/dist/compositeIpAddress.d.ts.map +1 -0
- package/dist/compositeIpAddress.js +53 -0
- package/dist/compositeIpAddress.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -0
- package/dist/pairs.d.ts +3 -0
- package/dist/pairs.d.ts.map +1 -0
- package/dist/pairs.js +27 -0
- package/dist/pairs.js.map +1 -0
- package/dist/rules/lang.d.ts +3 -0
- package/dist/rules/lang.d.ts.map +1 -0
- package/dist/rules/lang.js.map +1 -0
- package/dist/schedulers/captchaScheduler.d.ts +4 -0
- package/dist/schedulers/captchaScheduler.d.ts.map +1 -0
- package/dist/schedulers/captchaScheduler.js.map +1 -0
- package/dist/schedulers/getClientList.d.ts +4 -0
- package/dist/schedulers/getClientList.d.ts.map +1 -0
- package/dist/schedulers/getClientList.js.map +1 -0
- package/dist/schedulers/setClientEntropy.d.ts +4 -0
- package/dist/schedulers/setClientEntropy.d.ts.map +1 -0
- package/dist/schedulers/setClientEntropy.js +31 -0
- package/dist/schedulers/setClientEntropy.js.map +1 -0
- package/dist/services/ipComparison.d.ts +3 -0
- package/dist/services/ipComparison.d.ts.map +1 -0
- package/dist/services/ipComparison.js +123 -0
- package/dist/services/ipComparison.js.map +1 -0
- package/dist/services/ipInfo.d.ts +3 -0
- package/dist/services/ipInfo.d.ts.map +1 -0
- package/dist/services/ipInfo.js +87 -0
- package/dist/services/ipInfo.js.map +1 -0
- package/dist/tasks/captchaManager.d.ts +34 -0
- package/dist/tasks/captchaManager.d.ts.map +1 -0
- package/dist/tasks/captchaManager.js +39 -9
- package/dist/tasks/captchaManager.js.map +1 -0
- package/dist/tasks/client/clientTasks.d.ts +21 -0
- package/dist/tasks/client/clientTasks.d.ts.map +1 -0
- package/dist/tasks/client/clientTasks.js +31 -43
- package/dist/tasks/client/clientTasks.js.map +1 -0
- package/dist/tasks/dataset/datasetTasks.d.ts +13 -0
- package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
- package/dist/tasks/dataset/datasetTasks.js.map +1 -0
- package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
- package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
- package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
- package/dist/tasks/detection/decodePayload.d.ts +5 -0
- package/dist/tasks/detection/decodePayload.d.ts.map +1 -0
- package/dist/tasks/detection/decodePayload.js +616 -281
- package/dist/tasks/detection/decodePayload.js.map +1 -0
- package/dist/tasks/detection/getBotScore.d.ts +20 -0
- package/dist/tasks/detection/getBotScore.d.ts.map +1 -0
- package/dist/tasks/detection/getBotScore.js +29 -5
- package/dist/tasks/detection/getBotScore.js.map +1 -0
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +67 -0
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -0
- package/dist/tasks/frictionless/frictionlessTasks.js +227 -36
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -0
- package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +6 -0
- package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -0
- package/dist/tasks/frictionless/frictionlessTasksUtils.js +18 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +30 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +80 -32
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/powCaptcha/powTasks.d.ts +17 -0
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
- package/dist/tasks/powCaptcha/powTasks.js +50 -22
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
- package/dist/tasks/powCaptcha/powTasksUtils.d.ts +3 -0
- package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
- package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
- package/dist/tasks/tasks.d.ts +25 -0
- package/dist/tasks/tasks.d.ts.map +1 -0
- package/dist/tasks/tasks.js.map +1 -0
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.d.ts.map +1 -0
- package/dist/tests/index.js +2 -0
- package/dist/tests/index.js.map +1 -0
- package/dist/tests/integration/accessRules.integration.test.d.ts +2 -0
- package/dist/tests/integration/accessRules.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/accessRules.integration.test.js +588 -0
- package/dist/tests/integration/accessRules.integration.test.js.map +1 -0
- package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts +2 -0
- package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +60 -0
- package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -0
- package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts +2 -0
- package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +368 -0
- package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -0
- package/dist/tests/integration/imgCaptcha.integration.test.d.ts +2 -0
- package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/imgCaptcha.integration.test.js +272 -0
- package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -0
- package/dist/tests/integration/ipValidation.integration.test.d.ts +2 -0
- package/dist/tests/integration/ipValidation.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/ipValidation.integration.test.js +75 -0
- package/dist/tests/integration/ipValidation.integration.test.js.map +1 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.js +1046 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
- package/dist/tests/integration/powCaptcha.integration.test.d.ts +2 -0
- package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/powCaptcha.integration.test.js +308 -0
- package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -0
- package/dist/tests/integration/registerSitekey.d.ts +3 -0
- package/dist/tests/integration/registerSitekey.d.ts.map +1 -0
- package/dist/tests/integration/registerSitekey.js +24 -0
- package/dist/tests/integration/registerSitekey.js.map +1 -0
- package/dist/tests/integration/userAccessPolicy.d.ts +2 -0
- package/dist/tests/integration/userAccessPolicy.d.ts.map +1 -0
- package/dist/tests/integration/userAccessPolicy.js +2 -0
- package/dist/tests/integration/userAccessPolicy.js.map +1 -0
- package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +60 -0
- package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -0
- package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +43 -0
- package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +1 -0
- package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/ja4Middleware.unit.test.js +57 -0
- package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +1 -0
- package/dist/tests/unit/compositeIpAddress.unit.test.d.ts +2 -0
- package/dist/tests/unit/compositeIpAddress.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/compositeIpAddress.unit.test.js +86 -0
- package/dist/tests/unit/compositeIpAddress.unit.test.js.map +1 -0
- package/dist/tests/unit/pairs.unit.test.d.ts +2 -0
- package/dist/tests/unit/pairs.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/pairs.unit.test.js +83 -0
- package/dist/tests/unit/pairs.unit.test.js.map +1 -0
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +2 -0
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +75 -0
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -0
- package/dist/tests/unit/services/ipComparison.unit.test.d.ts +2 -0
- package/dist/tests/unit/services/ipComparison.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/services/ipComparison.unit.test.js +258 -0
- package/dist/tests/unit/services/ipComparison.unit.test.js.map +1 -0
- package/dist/tests/unit/services/ipInfo.unit.test.d.ts +2 -0
- package/dist/tests/unit/services/ipInfo.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/services/ipInfo.unit.test.js +210 -0
- package/dist/tests/unit/services/ipInfo.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.js +311 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +289 -0
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +92 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +75 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +143 -0
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +145 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +64 -0
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +388 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +46 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +216 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +69 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +1 -0
- package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts +2 -0
- package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js +505 -0
- package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js.map +1 -0
- package/dist/tests/unit/util.ipDistance.unit.test.d.ts +2 -0
- package/dist/tests/unit/util.ipDistance.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/util.ipDistance.unit.test.js +93 -0
- package/dist/tests/unit/util.ipDistance.unit.test.js.map +1 -0
- package/dist/tests/unit/util.unit.test.d.ts +2 -0
- package/dist/tests/unit/util.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/util.unit.test.js +170 -0
- package/dist/tests/unit/util.unit.test.js.map +1 -0
- package/dist/util.d.ts +24 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +263 -18
- package/dist/util.js.map +1 -0
- package/dist/utils/hashUserAgent.d.ts +2 -0
- package/dist/utils/hashUserAgent.d.ts.map +1 -0
- package/dist/utils/hashUserAgent.js +10 -0
- package/dist/utils/hashUserAgent.js.map +1 -0
- package/package.json +31 -29
- package/vite.test.config.ts +3 -2
- package/vite.threads.test.config.ts +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getClientList.d.ts","sourceRoot":"","sources":["../../src/schedulers/getClientList.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAW9E,wBAAsB,aAAa,CAClC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,mBAAmB,iBA+B3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getClientList.js","sourceRoot":"","sources":["../../src/schedulers/getClientList.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAA4B,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,IAAiB,EACjB,YAAoB,EACpB,MAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IAEpB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC7C,kBAAkB,CAAC,aAAa,EAChC,GAAG,CAAC,KAAK,EAAE,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtB,GAAG,EAAE,GAAG,kBAAkB,CAAC,aAAa,kBAAkB,WAAW,EAAE;YACvE,IAAI,EAAE,EAAE,WAAW,EAAE;SACrB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtB,GAAG,EAAE,GAAG,kBAAkB,CAAC,aAAa,WAAW;gBACnD,IAAI,EAAE,EAAE;aACR,CAAC,CAAC,CAAC;YACJ,MAAM,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvB,GAAG;oBACH,GAAG,EAAE,2BAA2B;iBAChC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { KeyringPair } from "@prosopo/types";
|
|
2
|
+
import { type ProsopoConfigOutput } from "@prosopo/types";
|
|
3
|
+
export declare function setClientEntropy(pair: KeyringPair, cronSchedule: string, config: ProsopoConfigOutput): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=setClientEntropy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setClientEntropy.d.ts","sourceRoot":"","sources":["../../src/schedulers/setClientEntropy.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAW9E,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,mBAAmB,iBA+B3B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ProviderEnvironment } from "@prosopo/env";
|
|
2
|
+
import { ScheduledTaskNames } from "@prosopo/types";
|
|
3
|
+
import { CronJob } from "cron";
|
|
4
|
+
import { Tasks } from "../tasks/tasks.js";
|
|
5
|
+
import { checkIfTaskIsRunning } from "../util.js";
|
|
6
|
+
export async function setClientEntropy(pair, cronSchedule, config) {
|
|
7
|
+
const env = new ProviderEnvironment(config, pair);
|
|
8
|
+
await env.isReady();
|
|
9
|
+
const tasks = new Tasks(env);
|
|
10
|
+
const job = new CronJob(cronSchedule, async () => {
|
|
11
|
+
const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.SetClientEntropy, env.getDb());
|
|
12
|
+
env.logger.info(() => ({
|
|
13
|
+
msg: `${ScheduledTaskNames.SetClientEntropy} task running: ${taskRunning}`,
|
|
14
|
+
data: { taskRunning },
|
|
15
|
+
}));
|
|
16
|
+
if (!taskRunning) {
|
|
17
|
+
env.logger.info(() => ({
|
|
18
|
+
msg: `${ScheduledTaskNames.SetClientEntropy} task....`,
|
|
19
|
+
data: {},
|
|
20
|
+
}));
|
|
21
|
+
await tasks.clientTaskManager.calculateClientEntropy().catch((err) => {
|
|
22
|
+
env.logger.error(() => ({
|
|
23
|
+
err,
|
|
24
|
+
msg: "Error setting client entropy",
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
job.start();
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=setClientEntropy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setClientEntropy.js","sourceRoot":"","sources":["../../src/schedulers/setClientEntropy.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAA4B,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,IAAiB,EACjB,YAAoB,EACpB,MAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IAEpB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC7C,kBAAkB,CAAC,gBAAgB,EACnC,GAAG,CAAC,KAAK,EAAE,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtB,GAAG,EAAE,GAAG,kBAAkB,CAAC,gBAAgB,kBAAkB,WAAW,EAAE;YAC1E,IAAI,EAAE,EAAE,WAAW,EAAE;SACrB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtB,GAAG,EAAE,GAAG,kBAAkB,CAAC,gBAAgB,WAAW;gBACtD,IAAI,EAAE,EAAE;aACR,CAAC,CAAC,CAAC;YACJ,MAAM,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvB,GAAG;oBACH,GAAG,EAAE,8BAA8B;iBACnC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipComparison.d.ts","sourceRoot":"","sources":["../../src/services/ipComparison.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,oBAAoB,EAGpB,MAAM,gBAAgB,CAAC;AAkBxB,wBAAsB,UAAU,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,oBAAoB,CAAC,CA6J/B"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { getDistance } from "geolib";
|
|
2
|
+
import { getIPInfo } from "./ipInfo.js";
|
|
3
|
+
async function compareIPs(ip1, ip2, apiKey, apiUrl) {
|
|
4
|
+
try {
|
|
5
|
+
if (!ip1 || !ip2 || typeof ip1 !== "string" || typeof ip2 !== "string") {
|
|
6
|
+
return {
|
|
7
|
+
error: "Invalid IP addresses provided",
|
|
8
|
+
ip1: ip1 || "undefined",
|
|
9
|
+
ip2: ip2 || "undefined"
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (ip1 === ip2) {
|
|
13
|
+
return {
|
|
14
|
+
ipsMatch: true,
|
|
15
|
+
ip1,
|
|
16
|
+
ip2
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const [ip1Info, ip2Info] = await Promise.all([
|
|
20
|
+
getIPInfo(ip1, apiUrl, apiKey),
|
|
21
|
+
getIPInfo(ip2, apiUrl, apiKey)
|
|
22
|
+
]);
|
|
23
|
+
if (!ip1Info.isValid && !ip2Info.isValid) {
|
|
24
|
+
return {
|
|
25
|
+
error: "Failed to lookup both IP addresses",
|
|
26
|
+
ip1,
|
|
27
|
+
ip2,
|
|
28
|
+
ip1Error: ip1Info.error,
|
|
29
|
+
ip2Error: ip2Info.error
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (!ip1Info.isValid) {
|
|
33
|
+
return {
|
|
34
|
+
error: "Failed to lookup first IP address",
|
|
35
|
+
ip1,
|
|
36
|
+
ip2,
|
|
37
|
+
ip1Error: ip1Info.error
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (!ip2Info.isValid) {
|
|
41
|
+
return {
|
|
42
|
+
error: "Failed to lookup second IP address",
|
|
43
|
+
ip1,
|
|
44
|
+
ip2,
|
|
45
|
+
ip2Error: ip2Info.error
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const determineConnectionType = (ipInfo) => {
|
|
49
|
+
if (ipInfo.isMobile) return "mobile";
|
|
50
|
+
if (ipInfo.isDatacenter) return "datacenter";
|
|
51
|
+
if (ipInfo.isSatellite) return "satellite";
|
|
52
|
+
if (ipInfo.providerType === "isp") return "residential";
|
|
53
|
+
switch (ipInfo.providerType) {
|
|
54
|
+
case "hosting":
|
|
55
|
+
return "datacenter";
|
|
56
|
+
case "business":
|
|
57
|
+
case "education":
|
|
58
|
+
case "government":
|
|
59
|
+
case "banking":
|
|
60
|
+
return "residential";
|
|
61
|
+
default:
|
|
62
|
+
return "unknown";
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const ip1ConnectionType = determineConnectionType(ip1Info);
|
|
66
|
+
const ip2ConnectionType = determineConnectionType(ip2Info);
|
|
67
|
+
const differentConnectionTypes = ip1ConnectionType !== ip2ConnectionType;
|
|
68
|
+
const ip1Provider = ip1Info.providerName || ip1Info.asnOrganization || "Unknown";
|
|
69
|
+
const ip2Provider = ip2Info.providerName || ip2Info.asnOrganization || "Unknown";
|
|
70
|
+
const differentProviders = ip1Provider !== ip2Provider;
|
|
71
|
+
let distanceKm;
|
|
72
|
+
if (ip1Info.latitude !== void 0 && ip1Info.longitude !== void 0 && ip2Info.latitude !== void 0 && ip2Info.longitude !== void 0) {
|
|
73
|
+
const distanceMeters = getDistance(
|
|
74
|
+
{ latitude: ip1Info.latitude, longitude: ip1Info.longitude },
|
|
75
|
+
{ latitude: ip2Info.latitude, longitude: ip2Info.longitude }
|
|
76
|
+
);
|
|
77
|
+
distanceKm = distanceMeters / 1e3;
|
|
78
|
+
}
|
|
79
|
+
const ip1IsVpnOrProxy = ip1Info.isVPN || ip1Info.isProxy || ip1Info.isTor;
|
|
80
|
+
const ip2IsVpnOrProxy = ip2Info.isVPN || ip2Info.isProxy || ip2Info.isTor;
|
|
81
|
+
const anyVpnOrProxy = ip1IsVpnOrProxy || ip2IsVpnOrProxy;
|
|
82
|
+
const ip1Coordinates = ip1Info.latitude !== void 0 && ip1Info.longitude !== void 0 ? { latitude: ip1Info.latitude, longitude: ip1Info.longitude } : void 0;
|
|
83
|
+
const ip2Coordinates = ip2Info.latitude !== void 0 && ip2Info.longitude !== void 0 ? { latitude: ip2Info.latitude, longitude: ip2Info.longitude } : void 0;
|
|
84
|
+
return {
|
|
85
|
+
ipsMatch: false,
|
|
86
|
+
ip1,
|
|
87
|
+
ip2,
|
|
88
|
+
comparison: {
|
|
89
|
+
differentProviders,
|
|
90
|
+
differentConnectionTypes,
|
|
91
|
+
distanceKm,
|
|
92
|
+
anyVpnOrProxy,
|
|
93
|
+
ip1Details: {
|
|
94
|
+
provider: ip1Provider,
|
|
95
|
+
connectionType: ip1ConnectionType,
|
|
96
|
+
isVpnOrProxy: ip1IsVpnOrProxy,
|
|
97
|
+
country: ip1Info.country,
|
|
98
|
+
countryCode: ip1Info.countryCode,
|
|
99
|
+
city: ip1Info.city,
|
|
100
|
+
coordinates: ip1Coordinates
|
|
101
|
+
},
|
|
102
|
+
ip2Details: {
|
|
103
|
+
provider: ip2Provider,
|
|
104
|
+
connectionType: ip2ConnectionType,
|
|
105
|
+
isVpnOrProxy: ip2IsVpnOrProxy,
|
|
106
|
+
country: ip2Info.country,
|
|
107
|
+
countryCode: ip2Info.countryCode,
|
|
108
|
+
city: ip2Info.city,
|
|
109
|
+
coordinates: ip2Coordinates
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
} catch (error) {
|
|
114
|
+
return {
|
|
115
|
+
error: `Comparison failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
116
|
+
ip1,
|
|
117
|
+
ip2
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
compareIPs
|
|
123
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipComparison.js","sourceRoot":"","sources":["../../src/services/ipComparison.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBxC,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,GAAW,EACX,GAAW,EACX,MAAc,EACd,MAAc;IAEd,IAAI,CAAC;QAEJ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxE,OAAO;gBACN,KAAK,EAAE,+BAA+B;gBACtC,GAAG,EAAE,GAAG,IAAI,WAAW;gBACvB,GAAG,EAAE,GAAG,IAAI,WAAW;aACvB,CAAC;QACH,CAAC;QAGD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACjB,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,GAAG;gBACH,GAAG;aACH,CAAC;QACH,CAAC;QAGD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;SAC9B,CAAC,CAAC;QAGH,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO;gBACN,KAAK,EAAE,oCAAoC;gBAC3C,GAAG;gBACH,GAAG;gBACH,QAAQ,EAAG,OAA6C,CAAC,KAAK;gBAC9D,QAAQ,EAAG,OAA6C,CAAC,KAAK;aAC9D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;gBACN,KAAK,EAAE,mCAAmC;gBAC1C,GAAG;gBACH,GAAG;gBACH,QAAQ,EAAG,OAA6C,CAAC,KAAK;aAC9D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;gBACN,KAAK,EAAE,oCAAoC;gBAC3C,GAAG;gBACH,GAAG;gBACH,QAAQ,EAAG,OAA6C,CAAC,KAAK;aAC9D,CAAC;QACH,CAAC;QAGD,MAAM,uBAAuB,GAAG,CAC/B,MAAoB,EACD,EAAE;YACrB,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YACrC,IAAI,MAAM,CAAC,YAAY;gBAAE,OAAO,YAAY,CAAC;YAC7C,IAAI,MAAM,CAAC,WAAW;gBAAE,OAAO,WAAW,CAAC;YAC3C,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK;gBAAE,OAAO,aAAa,CAAC;YAExD,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC7B,KAAK,SAAS;oBACb,OAAO,YAAY,CAAC;gBACrB,KAAK,UAAU,CAAC;gBAChB,KAAK,WAAW,CAAC;gBACjB,KAAK,YAAY,CAAC;gBAClB,KAAK,SAAS;oBACb,OAAO,aAAa,CAAC;gBACtB;oBACC,OAAO,SAAS,CAAC;YACnB,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,wBAAwB,GAAG,iBAAiB,KAAK,iBAAiB,CAAC;QAGzE,MAAM,WAAW,GAChB,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,eAAe,IAAI,SAAS,CAAC;QAC9D,MAAM,WAAW,GAChB,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,eAAe,IAAI,SAAS,CAAC;QAE9D,MAAM,kBAAkB,GAAG,WAAW,KAAK,WAAW,CAAC;QAGvD,IAAI,UAA8B,CAAC;QACnC,IACC,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC9B,OAAO,CAAC,SAAS,KAAK,SAAS;YAC/B,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC9B,OAAO,CAAC,SAAS,KAAK,SAAS,EAC9B,CAAC;YAEF,MAAM,cAAc,GAAG,WAAW,CACjC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAC5D,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAC5D,CAAC;YACF,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC;QACpC,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QAC1E,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QAC1E,MAAM,aAAa,GAAG,eAAe,IAAI,eAAe,CAAC;QAGzD,MAAM,cAAc,GACnB,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAChE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GACnB,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAChE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,GAAG;YACH,GAAG;YACH,UAAU,EAAE;gBACX,kBAAkB;gBAClB,wBAAwB;gBACxB,UAAU;gBACV,aAAa;gBACb,UAAU,EAAE;oBACX,QAAQ,EAAE,WAAW;oBACrB,cAAc,EAAE,iBAAiB;oBACjC,YAAY,EAAE,eAAe;oBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,WAAW,EAAE,cAAc;iBAC3B;gBACD,UAAU,EAAE;oBACX,QAAQ,EAAE,WAAW;oBACrB,cAAc,EAAE,iBAAiB;oBACjC,YAAY,EAAE,eAAe;oBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,WAAW,EAAE,cAAc;iBAC3B;aACD;SACD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,KAAK,EAAE,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACrF,GAAG;YACH,GAAG;SACH,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipInfo.d.ts","sourceRoot":"","sources":["../../src/services/ipInfo.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEX,cAAc,EAEd,MAAM,gBAAgB,CAAC;AAYxB,wBAAsB,SAAS,CAC9B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,kBAAkB,UAAQ,GACxB,OAAO,CAAC,cAAc,CAAC,CAmGzB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
async function getIPInfo(ip, apiUrl, apiKey, includeRawResponse = false) {
|
|
2
|
+
try {
|
|
3
|
+
if (!ip || typeof ip !== "string") {
|
|
4
|
+
return {
|
|
5
|
+
isValid: false,
|
|
6
|
+
error: "Invalid IP address provided",
|
|
7
|
+
ip: ip || "undefined"
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
const url = apiUrl;
|
|
11
|
+
const body = { q: ip };
|
|
12
|
+
if (apiKey) {
|
|
13
|
+
body.key = apiKey;
|
|
14
|
+
}
|
|
15
|
+
const response = await fetch(url, {
|
|
16
|
+
method: "POST",
|
|
17
|
+
headers: {
|
|
18
|
+
"Content-Type": "application/json",
|
|
19
|
+
Accept: "application/json"
|
|
20
|
+
},
|
|
21
|
+
body: JSON.stringify(body)
|
|
22
|
+
});
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
return {
|
|
25
|
+
isValid: false,
|
|
26
|
+
error: `API request failed with status ${response.status}: ${response.statusText}`,
|
|
27
|
+
ip
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const data = await response.json();
|
|
31
|
+
if (data.is_bogon) {
|
|
32
|
+
return {
|
|
33
|
+
isValid: false,
|
|
34
|
+
error: "IP address is bogon (non-routable)",
|
|
35
|
+
ip
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const result = {
|
|
39
|
+
ip: data.ip,
|
|
40
|
+
isValid: true,
|
|
41
|
+
// Threat indicators
|
|
42
|
+
isVPN: data.is_vpn,
|
|
43
|
+
isTor: data.is_tor,
|
|
44
|
+
isProxy: data.is_proxy,
|
|
45
|
+
isDatacenter: data.is_datacenter,
|
|
46
|
+
isAbuser: data.is_abuser,
|
|
47
|
+
isMobile: data.is_mobile,
|
|
48
|
+
isSatellite: data.is_satellite,
|
|
49
|
+
// Provider information
|
|
50
|
+
providerName: data.company?.name || data.datacenter?.datacenter,
|
|
51
|
+
providerType: data.company?.type || data.asn?.type,
|
|
52
|
+
asnNumber: data.asn?.asn,
|
|
53
|
+
asnOrganization: data.asn?.org,
|
|
54
|
+
// Geolocation
|
|
55
|
+
country: data.location?.country,
|
|
56
|
+
countryCode: data.location?.country_code,
|
|
57
|
+
region: data.location?.state,
|
|
58
|
+
city: data.location?.city,
|
|
59
|
+
latitude: data.location?.latitude,
|
|
60
|
+
longitude: data.location?.longitude,
|
|
61
|
+
timezone: data.location?.timezone,
|
|
62
|
+
// VPN specific details
|
|
63
|
+
vpnService: data.vpn?.service,
|
|
64
|
+
vpnType: data.vpn?.type,
|
|
65
|
+
// Risk scoring
|
|
66
|
+
abuserScore: Number.parseFloat(
|
|
67
|
+
data.asn?.abuser_score.split(" ")[0] || "0"
|
|
68
|
+
),
|
|
69
|
+
companyAbuserScore: Number.parseFloat(
|
|
70
|
+
data.company?.abuser_score.split(" ")[0] || "0"
|
|
71
|
+
)
|
|
72
|
+
};
|
|
73
|
+
if (includeRawResponse) {
|
|
74
|
+
result.rawResponse = data;
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
} catch (error) {
|
|
78
|
+
return {
|
|
79
|
+
isValid: false,
|
|
80
|
+
error: `Network or parsing error: ${error instanceof Error ? error.message : String(error)}`,
|
|
81
|
+
ip
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export {
|
|
86
|
+
getIPInfo
|
|
87
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipInfo.js","sourceRoot":"","sources":["../../src/services/ipInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import type { TranslationKey } from "@prosopo/locale";
|
|
3
|
+
import type { KeyringPair } from "@prosopo/types";
|
|
4
|
+
import { CaptchaType, Tier } from "@prosopo/types";
|
|
5
|
+
import type { ClientRecord, IProviderDatabase, IUserDataSlim, Session } from "@prosopo/types-database";
|
|
6
|
+
import type { ProviderEnvironment } from "@prosopo/types-env";
|
|
7
|
+
import type { AccessPolicy, AccessRulesStorage, UserScope, UserScopeRecord } from "@prosopo/user-access-policy";
|
|
8
|
+
export declare class CaptchaManager {
|
|
9
|
+
pair: KeyringPair;
|
|
10
|
+
db: IProviderDatabase;
|
|
11
|
+
logger: Logger;
|
|
12
|
+
constructor(db: IProviderDatabase, pair: KeyringPair, logger?: Logger);
|
|
13
|
+
validateSessionIP(sessionRecord: Session, currentIP: string, env: ProviderEnvironment): Promise<{
|
|
14
|
+
valid: boolean;
|
|
15
|
+
reason?: TranslationKey;
|
|
16
|
+
}>;
|
|
17
|
+
isValidRequest(clientSettings: ClientRecord | IUserDataSlim, requestedCaptchaType: CaptchaType, env: ProviderEnvironment, sessionId?: string, userAccessPolicy?: AccessPolicy, currentIP?: string): Promise<{
|
|
18
|
+
valid: boolean;
|
|
19
|
+
reason?: TranslationKey;
|
|
20
|
+
sessionId?: string;
|
|
21
|
+
type: CaptchaType;
|
|
22
|
+
powDifficulty?: number;
|
|
23
|
+
solvedImagesCount?: number;
|
|
24
|
+
}>;
|
|
25
|
+
getVerificationResponse(verified: boolean, clientRecord: ClientRecord, translateFn: (key: string) => string, score?: number): {
|
|
26
|
+
score?: number | undefined;
|
|
27
|
+
status: string;
|
|
28
|
+
verified: boolean;
|
|
29
|
+
};
|
|
30
|
+
getPrioritisedAccessPolicies(userAccessRulesStorage: AccessRulesStorage, clientId: string, userScope: UserScope | UserScopeRecord): Promise<import("@prosopo/user-access-policy").AccessRule[]>;
|
|
31
|
+
getDetectorKeys(): Promise<string[]>;
|
|
32
|
+
static canClientSeeScore(tier: Tier, score?: number): boolean | 0 | undefined;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=captchaManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAa,WAAW,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,MAAM,6BAA6B,CAAC;AAGrC,qBAAa,cAAc;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;gBAEH,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM;IAM/D,iBAAiB,CACtB,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IAMjD,cAAc,CACnB,cAAc,EAAE,YAAY,GAAG,aAAa,EAC5C,oBAAoB,EAAE,WAAW,EACjC,GAAG,EAAE,mBAAmB,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,YAAY,EAC/B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QACV,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAsIF,uBAAuB,CACtB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EACpC,KAAK,CAAC,EAAE,MAAM;;;;;IAaT,4BAA4B,CACjC,sBAAsB,EAAE,kBAAkB,EAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GAAG,eAAe;IASjC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM;CAGnD"}
|
|
@@ -7,13 +7,10 @@ class CaptchaManager {
|
|
|
7
7
|
this.db = db;
|
|
8
8
|
this.logger = logger || getLogger("info", import.meta.url);
|
|
9
9
|
}
|
|
10
|
-
async
|
|
11
|
-
|
|
12
|
-
sessionRecord.tokenId
|
|
13
|
-
);
|
|
14
|
-
return tokenRecord ? tokenRecord._id : void 0;
|
|
10
|
+
async validateSessionIP(sessionRecord, currentIP, env) {
|
|
11
|
+
return { valid: true };
|
|
15
12
|
}
|
|
16
|
-
async isValidRequest(clientSettings, requestedCaptchaType, sessionId, userAccessPolicy) {
|
|
13
|
+
async isValidRequest(clientSettings, requestedCaptchaType, env, sessionId, userAccessPolicy, currentIP) {
|
|
17
14
|
this.logger.debug(() => ({
|
|
18
15
|
msg: "Validating request",
|
|
19
16
|
data: {
|
|
@@ -52,11 +49,44 @@ class CaptchaManager {
|
|
|
52
49
|
type: requestedCaptchaType
|
|
53
50
|
};
|
|
54
51
|
}
|
|
55
|
-
|
|
52
|
+
if (currentIP) {
|
|
53
|
+
const ipValidation = await this.validateSessionIP(
|
|
54
|
+
sessionRecord,
|
|
55
|
+
currentIP,
|
|
56
|
+
env
|
|
57
|
+
);
|
|
58
|
+
if (!ipValidation.valid) {
|
|
59
|
+
return {
|
|
60
|
+
valid: false,
|
|
61
|
+
reason: ipValidation.reason,
|
|
62
|
+
type: requestedCaptchaType
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (sessionRecord.captchaType !== requestedCaptchaType) {
|
|
67
|
+
this.logger.warn(() => ({
|
|
68
|
+
msg: "Invalid frictionless request",
|
|
69
|
+
data: {
|
|
70
|
+
account: clientSettings.account,
|
|
71
|
+
sessionId
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
return {
|
|
75
|
+
valid: false,
|
|
76
|
+
reason: "CAPTCHA.NO_SESSION_FOUND",
|
|
77
|
+
type: requestedCaptchaType
|
|
78
|
+
};
|
|
79
|
+
}
|
|
56
80
|
return {
|
|
57
81
|
valid: true,
|
|
58
|
-
|
|
59
|
-
type: requestedCaptchaType
|
|
82
|
+
sessionId: sessionRecord.sessionId,
|
|
83
|
+
type: requestedCaptchaType,
|
|
84
|
+
...sessionRecord.powDifficulty && {
|
|
85
|
+
powDifficulty: sessionRecord.powDifficulty
|
|
86
|
+
},
|
|
87
|
+
...sessionRecord.solvedImagesCount && {
|
|
88
|
+
solvedImagesCount: sessionRecord.solvedImagesCount
|
|
89
|
+
}
|
|
60
90
|
};
|
|
61
91
|
}
|
|
62
92
|
this.logger.warn(() => ({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captchaManager.js","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import { CaptchaDatabase } from "@prosopo/database";
|
|
3
|
+
import { type IUserSettings, type ProsopoConfigOutput, type Tier } from "@prosopo/types";
|
|
4
|
+
import type { IProviderDatabase } from "@prosopo/types-database";
|
|
5
|
+
export declare class ClientTaskManager {
|
|
6
|
+
config: ProsopoConfigOutput;
|
|
7
|
+
logger: Logger;
|
|
8
|
+
providerDB: IProviderDatabase;
|
|
9
|
+
captchaDB: CaptchaDatabase | undefined;
|
|
10
|
+
constructor(config: ProsopoConfigOutput, logger: Logger, db: IProviderDatabase);
|
|
11
|
+
getCaptchaDB(mongoCaptchaUri: string): CaptchaDatabase;
|
|
12
|
+
storeCommitmentsExternal(): Promise<void>;
|
|
13
|
+
getClientList(): Promise<void>;
|
|
14
|
+
registerSiteKey(siteKey: string, tier: Tier, settings: IUserSettings): Promise<void>;
|
|
15
|
+
updateDetectorKey(detectorKey: string): Promise<string[]>;
|
|
16
|
+
removeDetectorKey(detectorKey: string, expirationInSeconds?: number): Promise<void>;
|
|
17
|
+
domainPatternMatcher(referrer: string, clientDomain: string): boolean;
|
|
18
|
+
private isRecordUpdated;
|
|
19
|
+
private processBatchesWithCursor;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=clientTasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/client/clientTasks.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAGxB,KAAK,IAAI,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEX,iBAAiB,EAIjB,MAAM,yBAAyB,CAAC;AAkBjC,qBAAa,iBAAiB;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;gBAEtC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,iBAAiB;IAWtB,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe;IAmBhD,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqHzC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE9B,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IAWV,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAazD,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAehB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IA8CrE,OAAO,CAAC,eAAe;YAWT,wBAAwB;CAatC"}
|
|
@@ -100,39 +100,8 @@ class ClientTaskManager {
|
|
|
100
100
|
async (skip) => await this.providerDB.getUnstoredSessionRecords(BATCH_SIZE, skip),
|
|
101
101
|
async (batch) => {
|
|
102
102
|
const filteredBatch = lastTask?.updated ? batch.filter((record) => this.isRecordUpdated(record)) : batch;
|
|
103
|
-
const frictionlessTokenRecords = await this.providerDB.getFrictionlessTokenRecordsByTokenIds(
|
|
104
|
-
filteredBatch.map((record) => record.tokenId)
|
|
105
|
-
);
|
|
106
|
-
this.logger.info(() => ({
|
|
107
|
-
msg: `Frictionless token records: ${frictionlessTokenRecords.length}`
|
|
108
|
-
}));
|
|
109
|
-
const filteredBatchWithScores = filteredBatch.map((record) => {
|
|
110
|
-
const tokenRecord = frictionlessTokenRecords.find(
|
|
111
|
-
(tokenRecord2) => tokenRecord2._id?.toString() === record.tokenId.toString()
|
|
112
|
-
);
|
|
113
|
-
if (!tokenRecord) {
|
|
114
|
-
this.logger.error(() => ({
|
|
115
|
-
msg: "No token record found",
|
|
116
|
-
data: { tokenId: record.tokenId }
|
|
117
|
-
}));
|
|
118
|
-
return {
|
|
119
|
-
...record,
|
|
120
|
-
score: 0,
|
|
121
|
-
scoreComponents: {
|
|
122
|
-
baseScore: 0
|
|
123
|
-
},
|
|
124
|
-
threshold: 0
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
return {
|
|
128
|
-
...record,
|
|
129
|
-
score: tokenRecord?.score || 0,
|
|
130
|
-
scoreComponents: tokenRecord?.scoreComponents,
|
|
131
|
-
threshold: tokenRecord?.threshold || 0
|
|
132
|
-
};
|
|
133
|
-
});
|
|
134
103
|
if (filteredBatch.length > 0) {
|
|
135
|
-
await captchaDB.saveCaptchas(
|
|
104
|
+
await captchaDB.saveCaptchas(filteredBatch, [], []);
|
|
136
105
|
await this.providerDB.markSessionRecordsStored(
|
|
137
106
|
filteredBatch.map((record) => record.sessionId)
|
|
138
107
|
);
|
|
@@ -192,7 +161,7 @@ class ClientTaskManager {
|
|
|
192
161
|
this.logger
|
|
193
162
|
);
|
|
194
163
|
const tenMinuteWindow = 10 * 60 * 1e3;
|
|
195
|
-
const updatedAtTimestamp = lastTask?.updated ? lastTask.updated - tenMinuteWindow || 0 : 0;
|
|
164
|
+
const updatedAtTimestamp = lastTask?.updated ? lastTask.updated.getTime() - tenMinuteWindow || 0 : 0;
|
|
196
165
|
this.logger.info(() => ({
|
|
197
166
|
msg: `Getting updated client records since ${new Date(updatedAtTimestamp).toDateString()}`
|
|
198
167
|
}));
|
|
@@ -246,25 +215,44 @@ class ClientTaskManager {
|
|
|
246
215
|
const activeDetectorKeys = await this.providerDB.getDetectorKeys();
|
|
247
216
|
return activeDetectorKeys;
|
|
248
217
|
}
|
|
249
|
-
async removeDetectorKey(detectorKey) {
|
|
218
|
+
async removeDetectorKey(detectorKey, expirationInSeconds) {
|
|
250
219
|
if (!isValidPrivateKey(detectorKey)) {
|
|
251
220
|
throw new ProsopoApiError("INVALID_DETECTOR_KEY", {
|
|
252
221
|
context: { detectorKey },
|
|
253
222
|
logger: this.logger
|
|
254
223
|
});
|
|
255
224
|
}
|
|
256
|
-
await this.providerDB.removeDetectorKey(detectorKey);
|
|
225
|
+
await this.providerDB.removeDetectorKey(detectorKey, expirationInSeconds);
|
|
257
226
|
}
|
|
258
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Matches a request referrer against an allowed domain pattern.
|
|
229
|
+
* Supports global '*', subdomain '*.example.com', glob '*example*',
|
|
230
|
+
* plain domains (exact or subdomain), and 'localhost'.
|
|
231
|
+
*/
|
|
232
|
+
domainPatternMatcher(referrer, clientDomain) {
|
|
259
233
|
if (!referrer || !clientDomain) return false;
|
|
260
|
-
if (clientDomain === "*") return true;
|
|
261
234
|
try {
|
|
262
|
-
const
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
235
|
+
const referrerHost = parseUrl(referrer).hostname.replace(/\.$/, "");
|
|
236
|
+
const pattern = clientDomain.trim().toLowerCase();
|
|
237
|
+
if (pattern === "*") return true;
|
|
238
|
+
if (pattern === "localhost") {
|
|
239
|
+
return referrerHost === "localhost" || referrerHost.startsWith("localhost:");
|
|
240
|
+
}
|
|
241
|
+
if (pattern.startsWith("*.")) {
|
|
242
|
+
const suffix = pattern.slice(2);
|
|
243
|
+
const allowed = parseUrl(suffix).hostname.replace(/\.$/, "");
|
|
244
|
+
return referrerHost.endsWith(`.${allowed}`) || referrerHost === allowed;
|
|
245
|
+
}
|
|
246
|
+
if (pattern.includes("*")) {
|
|
247
|
+
const escaped = pattern.replace(/[.+?^${}()|\[\]\\]/g, "\\$&").replace(/\*/g, ".*");
|
|
248
|
+
const regex = new RegExp(`^${escaped}$`, "i");
|
|
249
|
+
return regex.test(referrerHost);
|
|
250
|
+
}
|
|
251
|
+
const allowedHost = parseUrl(pattern).hostname.replace(/\.$/, "");
|
|
252
|
+
return referrerHost === allowedHost || referrerHost.endsWith(`.${allowedHost}`);
|
|
253
|
+
} catch (e) {
|
|
266
254
|
this.logger.error(() => ({
|
|
267
|
-
msg: "Error in
|
|
255
|
+
msg: "Error in domainPatternMatcher",
|
|
268
256
|
data: { referrer, clientDomain }
|
|
269
257
|
}));
|
|
270
258
|
return false;
|
|
@@ -272,7 +260,7 @@ class ClientTaskManager {
|
|
|
272
260
|
}
|
|
273
261
|
isRecordUpdated(record) {
|
|
274
262
|
const { lastUpdatedTimestamp, storedAtTimestamp } = record;
|
|
275
|
-
return !lastUpdatedTimestamp || !storedAtTimestamp || lastUpdatedTimestamp > storedAtTimestamp;
|
|
263
|
+
return !lastUpdatedTimestamp || !storedAtTimestamp || lastUpdatedTimestamp.getTime() > storedAtTimestamp.getTime();
|
|
276
264
|
}
|
|
277
265
|
async processBatchesWithCursor(fetchBatch, processBatch) {
|
|
278
266
|
let skip = 0;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientTasks.js","sourceRoot":"","sources":["../../../src/tasks/client/clientTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Logger } from "@prosopo/common";
|
|
2
|
+
import type { DatasetRaw, ProsopoCaptchaCountConfigSchemaOutput, ProsopoConfigOutput } from "@prosopo/types";
|
|
3
|
+
import type { IProviderDatabase } from "@prosopo/types-database";
|
|
4
|
+
export declare class DatasetManager {
|
|
5
|
+
config: ProsopoConfigOutput;
|
|
6
|
+
logger: Logger;
|
|
7
|
+
captchaConfig: ProsopoCaptchaCountConfigSchemaOutput;
|
|
8
|
+
db: IProviderDatabase;
|
|
9
|
+
constructor(config: ProsopoConfigOutput, logger: Logger, captchaConfig: ProsopoCaptchaCountConfigSchemaOutput, db: IProviderDatabase);
|
|
10
|
+
providerSetDatasetFromFile(file: JSON): Promise<void>;
|
|
11
|
+
providerSetDataset(datasetRaw: DatasetRaw): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=datasetTasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasetTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/dataset/datasetTasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAe9C,OAAO,KAAK,EACX,UAAU,EACV,qCAAqC,EACrC,mBAAmB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,qBAAa,cAAc;IAC1B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,qCAAqC,CAAC;IACrD,EAAE,EAAE,iBAAiB,CAAC;gBAGrB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,qCAAqC,EACpD,EAAE,EAAE,iBAAiB;IAahB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAS/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasetTasks.js","sourceRoot":"","sources":["../../../src/tasks/dataset/datasetTasks.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,cAAc;IAM1B,YACC,MAA2B,EAC3B,MAAc,EACd,aAAoD,EACpD,EAAqB;QAErB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,CAAC;IAOD,KAAK,CAAC,0BAA0B,CAAC,IAAU;QAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAsB;QAC9C,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAC5C,UAAU,EACV,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CACjC,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasetTasksUtils.d.ts","sourceRoot":"","sources":["../../../src/tasks/dataset/datasetTasksUtils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,eAAO,MAAM,uBAAuB,eACvB,UAAU,qBACH,MAAM,uBACJ,MAAM,8CAyC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasetTasksUtils.js","sourceRoot":"","sources":["../../../src/tasks/dataset/datasetTasksUtils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC3C,UAAsB,EACtB,iBAAyB,EACzB,mBAA2B,EAC1B,EAAE;IAEH,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,iBAAiB,GAAG,mBAAmB,EAAE,CAAC;QAC1E,MAAM,IAAI,eAAe,CAAC,6CAA6C,EAAE;YACxE,OAAO,EAAE,EAAE,cAAc,EAAE,uBAAuB,CAAC,IAAI,EAAE;SACzD,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ;SACnC,GAAG,CAAC,CAAC,OAAO,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAG/C,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,8CAA8C,EAAE;YACzE,OAAO,EAAE,EAAE,cAAc,EAAE,uBAAuB,CAAC,IAAI,EAAE;SACzD,CAAC,CAAC;IACJ,CAAC;IAGD,IAAI,SAAS,GAAG,mBAAmB,EAAE,CAAC;QACrC,MAAM,IAAI,eAAe,CAAC,8CAA8C,EAAE;YACzE,OAAO,EAAE,EAAE,cAAc,EAAE,uBAAuB,CAAC,IAAI,EAAE;SACzD,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAG/C,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACrD,MAAM,IAAI,eAAe,CAAC,8BAA8B,EAAE;YACzD,OAAO,EAAE;gBACR,cAAc,EAAE,uBAAuB,CAAC,IAAI;gBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC1C;SACD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodePayload.d.ts","sourceRoot":"","sources":["../../../src/tasks/detection/decodePayload.js"],"names":[],"mappings":";AACo8uB;;GAAwyE"}
|