@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":"domainMiddleware.js","sourceRoot":"","sources":["../../src/api/domainMiddleware.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAe,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAwB,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7B,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAChE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAW,CAAC;YAC1D,IAAI,CAAC,OAAO;gBACX,MAAM,yBAAyB,CAC9B,GAAG,CAAC,IAAI,EACR,qBAAqB,EACrB,GAAG,CAAC,MAAM,CACV,CAAC;YAEH,IAAI,CAAC;gBACJ,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc;gBAClB,MAAM,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAEhE,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;YACxD,IAAI,CAAC,cAAc;gBAClB,MAAM,yBAAyB,CAC9B,GAAG,CAAC,IAAI,EACR,OAAO,EACP,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,MAAM,CACV,CAAC;YAEH,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,MAAM;gBACV,MAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAEhE,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;oBAClE,IAAI,EAAE,CAAC;oBACP,OAAO;gBACR,CAAC;YACF,CAAC;YAED,MAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IACC,GAAG,YAAY,eAAe;gBAC9B,GAAG,YAAY,QAAQ;gBACvB,GAAG,YAAY,WAAW,EACzB,CAAC;gBACF,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9D,OAAO;YACR,CAAC;QACF,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CACjC,IAAgD,EAChD,IAAY,EACZ,MAAe,EACd,EAAE;IACH,OAAO,IAAI,eAAe,CAAC,6BAA6B,EAAE;QACzD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;QACrC,IAAI;QACJ,MAAM;KACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC3B,IAAgD,EAChD,OAAe,EACf,MAAe,EACd,EAAE;IACH,OAAO,IAAI,eAAe,CAAC,sBAAsB,EAAE;QAClD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QACxC,IAAI;QACJ,MAAM;KACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC/B,IAAgD,EAChD,MAAe,EACf,MAAe,EACd,EAAE;IACH,OAAO,IAAI,eAAe,CAAC,6BAA6B,EAAE;QACzD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;QAC9B,IAAI;QACJ,MAAM;KACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CACjC,IAAgD,EAChD,IAAY,EACZ,MAAc,EACd,MAAe,EACd,EAAE;IACH,OAAO,IAAI,eAAe,CAAC,6BAA6B,EAAE;QACzD,OAAO,EAAE;YACR,IAAI,EAAE,GAAG;YACT,OAAO,EACN,+EAA+E;YAChF,OAAO,EAAE,IAAI;YACb,MAAM;SACN;QACD,IAAI;QACJ,MAAM;KACN,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ProviderEnvironment } from "@prosopo/types-env";
|
|
2
|
+
import type { NextFunction, Request, Response } from "express";
|
|
3
|
+
export declare const headerCheckMiddleware: (env: ProviderEnvironment) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=headerCheckMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headerCheckMiddleware.d.ts","sourceRoot":"","sources":["../../src/api/headerCheckMiddleware.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,qBAAqB,QAAS,mBAAmB,WAC1C,OAAO,OAAO,QAAQ,QAAQ,YAAY,kBAgC7D,CAAC"}
|
|
@@ -17,6 +17,10 @@ const headerCheckMiddleware = (env) => {
|
|
|
17
17
|
validateAddr(user, void 0, req.logger);
|
|
18
18
|
req.user = user;
|
|
19
19
|
req.siteKey = siteKey;
|
|
20
|
+
req.logger = req.logger.with({
|
|
21
|
+
user,
|
|
22
|
+
siteKey
|
|
23
|
+
});
|
|
20
24
|
next();
|
|
21
25
|
} catch (err) {
|
|
22
26
|
return handleErrors(err, req, res, next);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headerCheckMiddleware.js","sourceRoot":"","sources":["../../src/api/headerCheckMiddleware.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAwB,EAAE,EAAE;IACjE,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAChE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAW,CAAC;YACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAW,CAAC;YAE1D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO;YACR,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO;YACR,CAAC;YAED,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAErC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAE1C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;YAGtB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC5B,IAAI;gBACJ,OAAO;aACP,CAAC,CAAC;YAEH,IAAI,EAAE,CAAC;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,YAAY,CAAC,GAAY,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,GAAa,EAAE,EAAE,CACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoreMiddleware.d.ts","sourceRoot":"","sources":["../../src/api/ignoreMiddleware.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,gBAAgB,UAClB,OAAO,OAAO,QAAQ,QAAQ,YAAY,UAcvD"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { ApiPrefix } from "@prosopo/types";
|
|
1
|
+
import { PublicApiPaths, ApiPrefix } from "@prosopo/types";
|
|
2
2
|
function ignoreMiddleware() {
|
|
3
3
|
return (req, res, next) => {
|
|
4
|
+
if (req.originalUrl.indexOf(PublicApiPaths.Healthz) !== -1) {
|
|
5
|
+
return next();
|
|
6
|
+
}
|
|
4
7
|
if (req.originalUrl.indexOf(ApiPrefix) === -1) {
|
|
5
8
|
res.statusCode = 404;
|
|
6
9
|
res.send("Not Found");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoreMiddleware.js","sourceRoot":"","sources":["../../src/api/ignoreMiddleware.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,UAAU,gBAAgB;IAC/B,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAC1D,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAE5D,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;QAGD,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtB,OAAO;QACR,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IncomingHttpHeaders } from "node:http";
|
|
2
|
+
import { type Logger } from "@prosopo/common";
|
|
3
|
+
import type { ProviderEnvironment } from "@prosopo/types-env";
|
|
4
|
+
import type { NextFunction, Request, Response } from "express";
|
|
5
|
+
export declare const DEFAULT_JA4 = "ja4";
|
|
6
|
+
export declare const getJA4: (headers: IncomingHttpHeaders, logger?: Logger) => Promise<{
|
|
7
|
+
ja4PlusFingerprint: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const ja4Middleware: (env: ProviderEnvironment) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
10
|
+
//# sourceMappingURL=ja4Middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ja4Middleware.d.ts","sourceRoot":"","sources":["../../src/api/ja4Middleware.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAM/D,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,eAAO,MAAM,MAAM,YAAmB,mBAAmB,WAAW,MAAM;;EA2DzE,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,mBAAmB,WAClC,OAAO,OAAO,QAAQ,QAAQ,YAAY,kBAc7D,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
1
|
import { Readable } from "node:stream";
|
|
3
2
|
import { handleErrors } from "@prosopo/api-express-router";
|
|
4
3
|
import { getLogger } from "@prosopo/common";
|
|
5
4
|
import { randomAsHex } from "@prosopo/util-crypto";
|
|
6
|
-
import { readTlsClientHello } from "read-tls-client-hello";
|
|
5
|
+
import { readTlsClientHello, calculateJa4FromHelloData } from "read-tls-client-hello";
|
|
7
6
|
const DEFAULT_JA4 = "ja4";
|
|
8
7
|
const getJA4 = async (headers, logger) => {
|
|
9
8
|
logger = logger || getLogger("info", import.meta.url);
|
|
@@ -15,7 +14,6 @@ const getJA4 = async (headers, logger) => {
|
|
|
15
14
|
try {
|
|
16
15
|
const xTlsClientHello = (headers["x-tls-clienthello"] || "").toString();
|
|
17
16
|
const xTlsVersion = (headers["x-tls-version"] || "").toString().toLowerCase();
|
|
18
|
-
const xTlsServerName = (headers["x-tls-server-name"] || "").toString();
|
|
19
17
|
const clientHelloBuffer = Buffer.from(xTlsClientHello, "base64");
|
|
20
18
|
logger.debug(() => ({
|
|
21
19
|
msg: "ClientHello First Bytes:",
|
|
@@ -31,32 +29,13 @@ const getJA4 = async (headers, logger) => {
|
|
|
31
29
|
msg: "Headers TLS Version:",
|
|
32
30
|
data: { xTlsVersion }
|
|
33
31
|
}));
|
|
34
|
-
const tlsVersion = xTlsVersion.replace(/(tls)|\./g, "");
|
|
35
32
|
const readableStream = new Readable({
|
|
36
33
|
read() {
|
|
37
34
|
this.push(clientHelloBuffer);
|
|
38
35
|
}
|
|
39
36
|
});
|
|
40
37
|
const clientHello = await readTlsClientHello(readableStream);
|
|
41
|
-
const
|
|
42
|
-
const [_tlsVersion, cipherSuites, extensions] = clientHello.fingerprintData;
|
|
43
|
-
const transport = "t";
|
|
44
|
-
const sniIndicator = xTlsServerName ? "d" : "i";
|
|
45
|
-
const validCipherSuites = cipherSuites.filter(
|
|
46
|
-
(cs) => (cs & 3855) !== 2570
|
|
47
|
-
);
|
|
48
|
-
const cipherCount = validCipherSuites.length;
|
|
49
|
-
const validExtensions = extensions.filter(
|
|
50
|
-
(ext) => (ext & 3855) !== 2570
|
|
51
|
-
);
|
|
52
|
-
const extensionCount = validExtensions.length;
|
|
53
|
-
const alpn = alpnProtocols?.length ? alpnProtocols[0] : "";
|
|
54
|
-
const alpnLabel = alpn ? `${alpn[0]}${alpn[alpn.length - 1]}` : "00";
|
|
55
|
-
const sortedCiphers = validCipherSuites.map((cs) => cs.toString(16).padStart(4, "0")).sort().join(",");
|
|
56
|
-
const cipherHash = createHash("sha256").update(sortedCiphers).digest("hex").slice(0, 12);
|
|
57
|
-
const decimalString = extensions.sort((a, b) => a - b).map((ext) => ext.toString(10)).join("-");
|
|
58
|
-
const extensionHash = createHash("sha256").update(decimalString).digest("hex").slice(0, 12);
|
|
59
|
-
const ja4PlusFingerprint = `${transport}${tlsVersion}${sniIndicator}${cipherCount}${extensionCount}${alpnLabel}_${cipherHash}_${extensionHash}`;
|
|
38
|
+
const ja4PlusFingerprint = calculateJa4FromHelloData(clientHello);
|
|
60
39
|
return { ja4PlusFingerprint };
|
|
61
40
|
} catch (e) {
|
|
62
41
|
logger.error(() => ({
|
|
@@ -72,6 +51,9 @@ const ja4Middleware = (env) => {
|
|
|
72
51
|
req.logger.debug(() => ({ data: { url: req.url } }));
|
|
73
52
|
const ja4 = await getJA4(req.headers, req.logger);
|
|
74
53
|
req.ja4 = ja4.ja4PlusFingerprint || "";
|
|
54
|
+
req.logger = req.logger.with({
|
|
55
|
+
ja4: req.ja4
|
|
56
|
+
});
|
|
75
57
|
next();
|
|
76
58
|
} catch (err) {
|
|
77
59
|
return handleErrors(err, req, res, next);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ja4Middleware.js","sourceRoot":"","sources":["../../src/api/ja4Middleware.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EACN,yBAAyB,EACzB,kBAAkB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,OAA4B,EAAE,MAAe,EAAE,EAAE;IAC7E,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAGtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC5C,OAAO;YACN,kBAAkB,EAAE,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;SAClE,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QAEJ,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;aAClD,QAAQ,EAAE;aACV,WAAW,EAAE,CAAC;QAGhB,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAGjE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,0BAA0B;YAC/B,IAAI,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;SAC/D,CAAC,CAAC,CAAC;QAGJ,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnB,GAAG,EAAE,qDAAqD;aAC1D,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,sBAAsB;YAC3B,IAAI,EAAE,EAAE,WAAW,EAAE;SACrB,CAAC,CAAC,CAAC;QAGJ,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC;YACnC,IAAI;gBACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,CAAC;SACD,CAAC,CAAC;QAGH,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAE7D,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAElE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,oCAAoC;YACzC,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAC5C,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAwB,EAAE,EAAE;IACzD,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAChE,IAAI,CAAC;YACJ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAElD,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC5B,GAAG,EAAE,GAAG,CAAC,GAAG;aACZ,CAAC,CAAC;YACH,IAAI,EAAE,CAAC;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,YAAY,CAAC,GAAY,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/api/public.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAO/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA2D7D"}
|
package/dist/api/public.js
CHANGED
|
@@ -3,16 +3,39 @@ import { ProsopoApiError } from "@prosopo/common";
|
|
|
3
3
|
import { PublicApiPaths } from "@prosopo/types";
|
|
4
4
|
import { version } from "@prosopo/util";
|
|
5
5
|
import express from "express";
|
|
6
|
-
function publicRouter() {
|
|
6
|
+
function publicRouter(env) {
|
|
7
7
|
const router = express.Router();
|
|
8
8
|
router.get(PublicApiPaths.Healthz, (req, res) => {
|
|
9
9
|
res.status(200).send("OK");
|
|
10
10
|
});
|
|
11
11
|
router.get(PublicApiPaths.GetProviderDetails, async (req, res, next) => {
|
|
12
12
|
try {
|
|
13
|
-
|
|
13
|
+
const db = env.getDb();
|
|
14
|
+
const redisConnection = db.getRedisConnection();
|
|
15
|
+
const redisAccessRulesConnection = db.getRedisAccessRulesConnection();
|
|
16
|
+
const response = {
|
|
17
|
+
version,
|
|
18
|
+
message: "Provider online",
|
|
19
|
+
redis: [
|
|
20
|
+
{
|
|
21
|
+
actor: "General",
|
|
22
|
+
isReady: redisConnection.isReady(),
|
|
23
|
+
awaitingTimeSeconds: Math.ceil(
|
|
24
|
+
redisConnection.getAwaitingTimeMs() / 1e3
|
|
25
|
+
)
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
actor: "UAP",
|
|
29
|
+
isReady: redisAccessRulesConnection.isReady(),
|
|
30
|
+
awaitingTimeSeconds: Math.ceil(
|
|
31
|
+
redisAccessRulesConnection.getAwaitingTimeMs() / 1e3
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
};
|
|
36
|
+
return res.json(response);
|
|
14
37
|
} catch (err) {
|
|
15
|
-
|
|
38
|
+
env.logger.error(() => ({
|
|
16
39
|
err,
|
|
17
40
|
data: { reqParams: req.params },
|
|
18
41
|
msg: "Error getting provider details"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/api/public.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAwB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,OAAwB,MAAM,SAAS,CAAC;AAO/C,MAAM,UAAU,YAAY,CAAC,GAAwB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAKH,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtE,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAEvB,MAAM,eAAe,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAChD,MAAM,0BAA0B,GAAG,EAAE,CAAC,6BAA6B,EAAE,CAAC;YAEtE,MAAM,QAAQ,GAAoB;gBACjC,OAAO;gBACP,OAAO,EAAE,iBAAiB;gBAC1B,KAAK,EAAE;oBACN;wBACC,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE;wBAClC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAC7B,eAAe,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAC1C;qBACD;oBACD;wBACC,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,0BAA0B,CAAC,OAAO,EAAE;wBAC7C,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAC7B,0BAA0B,CAAC,iBAAiB,EAAE,GAAG,IAAI,CACrD;qBACD;iBACD;aACD,CAAC;YAEF,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,GAAG;gBACH,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;gBAC/B,GAAG,EAAE,gCAAgC;aACrC,CAAC,CAAC,CAAC;YACJ,OAAO,IAAI,CACV,IAAI,eAAe,CAAC,iBAAiB,EAAE;gBACtC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;aACtB,CAAC,CACF,CAAC;QACH,CAAC;IACF,CAAC,CAAC,CAAC;IAKH,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEzB,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robotsMiddleware.d.ts","sourceRoot":"","sources":["../../src/api/robotsMiddleware.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,gBAAgB,WACjB,OAAO,OAAO,QAAQ,QAAQ,YAAY,UAOxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robotsMiddleware.js","sourceRoot":"","sources":["../../src/api/robotsMiddleware.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,gBAAgB;IAC/B,OAAO,CAAC,IAAa,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAC3D,GAAG,CAAC,SAAS,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;QAChE,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import type { TranslationKey } from "@prosopo/locale";
|
|
3
|
+
export declare const validateSiteKey: (siteKey: string, logger?: Logger) => void;
|
|
4
|
+
export declare const validateAddr: (address: string, translationKey?: TranslationKey, logger?: Logger) => void;
|
|
5
|
+
//# sourceMappingURL=validateAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateAddress.d.ts","sourceRoot":"","sources":["../../src/api/validateAddress.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,eAAO,MAAM,eAAe,YAAa,MAAM,WAAW,MAAM,SAE/D,CAAC;AAEF,eAAO,MAAM,YAAY,YACf,MAAM,mBACC,cAAc,WACrB,MAAM,SAiBf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateAddress.js","sourceRoot":"","sources":["../../src/api/validateAddress.ts"],"names":[],"mappings":"AAcA,OAAO,EAAe,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,MAAe,EAAE,EAAE;IACnE,OAAO,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC3B,OAAe,EACf,iBAAiC,0BAA0B,EAC3D,MAAe,EACd,EAAE;IACH,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE;gBACzC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;gBACxC,MAAM;aACN,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE;YACzC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;YACxC,MAAM;SACN,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/api/verify.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAU/C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA8NpE"}
|
package/dist/api/verify.js
CHANGED
|
@@ -4,12 +4,23 @@ import { ClientApiPaths, VerifySolutionBody, decodeProcaptchaOutput, ApiParams,
|
|
|
4
4
|
import { validateAddress } from "@prosopo/util-crypto";
|
|
5
5
|
import express from "express";
|
|
6
6
|
import { Tasks } from "../tasks/tasks.js";
|
|
7
|
+
import { getMaintenanceMode } from "./admin/apiToggleMaintenanceModeEndpoint.js";
|
|
7
8
|
function prosopoVerifyRouter(env) {
|
|
8
9
|
const router = express.Router();
|
|
9
10
|
router.post(
|
|
10
11
|
ClientApiPaths.VerifyImageCaptchaSolutionDapp,
|
|
11
12
|
async (req, res, next) => {
|
|
12
13
|
const tasks = new Tasks(env, req.logger);
|
|
14
|
+
if (getMaintenanceMode()) {
|
|
15
|
+
req.logger.info(() => ({
|
|
16
|
+
msg: "Maintenance mode active - returning verified for image captcha verification"
|
|
17
|
+
}));
|
|
18
|
+
const verificationResponse = {
|
|
19
|
+
status: "ok",
|
|
20
|
+
verified: true
|
|
21
|
+
};
|
|
22
|
+
return res.json(verificationResponse);
|
|
23
|
+
}
|
|
13
24
|
let parsed;
|
|
14
25
|
try {
|
|
15
26
|
parsed = VerifySolutionBody.parse(req.body);
|
|
@@ -22,7 +33,7 @@ function prosopoVerifyRouter(env) {
|
|
|
22
33
|
})
|
|
23
34
|
);
|
|
24
35
|
}
|
|
25
|
-
const { dappSignature, token, ip } = parsed;
|
|
36
|
+
const { dappSignature, token, ip, maxVerifiedTime } = parsed;
|
|
26
37
|
try {
|
|
27
38
|
const { user, dapp, timestamp, commitmentId } = decodeProcaptchaOutput(token);
|
|
28
39
|
validateAddress(dapp, false, 42);
|
|
@@ -43,8 +54,10 @@ function prosopoVerifyRouter(env) {
|
|
|
43
54
|
user,
|
|
44
55
|
dapp,
|
|
45
56
|
commitmentId,
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
env,
|
|
58
|
+
maxVerifiedTime,
|
|
59
|
+
ip,
|
|
60
|
+
clientRecord.settings.disallowWebView
|
|
48
61
|
);
|
|
49
62
|
req.logger.debug(() => ({ data: { response } }));
|
|
50
63
|
const verificationResponse = tasks.imgCaptchaManager.getVerificationResponse(
|
|
@@ -71,6 +84,16 @@ function prosopoVerifyRouter(env) {
|
|
|
71
84
|
ClientApiPaths.VerifyPowCaptchaSolution,
|
|
72
85
|
async (req, res, next) => {
|
|
73
86
|
const tasks = new Tasks(env, req.logger);
|
|
87
|
+
if (getMaintenanceMode()) {
|
|
88
|
+
req.logger.info(() => ({
|
|
89
|
+
msg: "Maintenance mode active - returning verified for PoW captcha verification"
|
|
90
|
+
}));
|
|
91
|
+
const verificationResponse = {
|
|
92
|
+
status: "ok",
|
|
93
|
+
verified: true
|
|
94
|
+
};
|
|
95
|
+
return res.json(verificationResponse);
|
|
96
|
+
}
|
|
74
97
|
let parsed;
|
|
75
98
|
try {
|
|
76
99
|
parsed = ServerPowCaptchaVerifyRequestBody.parse(req.body);
|
|
@@ -111,6 +134,7 @@ function prosopoVerifyRouter(env) {
|
|
|
111
134
|
dapp,
|
|
112
135
|
challenge,
|
|
113
136
|
verifiedTimeout,
|
|
137
|
+
env,
|
|
114
138
|
ip
|
|
115
139
|
);
|
|
116
140
|
const verificationResponse = tasks.powCaptchaManager.getVerificationResponse(
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/api/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,30 +3,25 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const types = require("@prosopo/types");
|
|
4
4
|
const apiRegisterSiteKeyEndpoint = require("./apiRegisterSiteKeyEndpoint.cjs");
|
|
5
5
|
const apiRemoveDetectorKeyEndpoint = require("./apiRemoveDetectorKeyEndpoint.cjs");
|
|
6
|
+
const apiToggleMaintenanceModeEndpoint = require("./apiToggleMaintenanceModeEndpoint.cjs");
|
|
6
7
|
const apiUpdateDetectorKeyEndpoint = require("./apiUpdateDetectorKeyEndpoint.cjs");
|
|
7
8
|
class ApiAdminRoutesProvider {
|
|
8
9
|
constructor(tasks) {
|
|
9
10
|
this.tasks = tasks;
|
|
10
11
|
}
|
|
11
12
|
getRoutes() {
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
path: types.AdminApiPaths.RemoveDetectorKey,
|
|
25
|
-
endpoint: new apiRemoveDetectorKeyEndpoint.ApiRemoveDetectorKeyEndpoint(
|
|
26
|
-
this.tasks.clientTaskManager
|
|
27
|
-
)
|
|
28
|
-
}
|
|
29
|
-
];
|
|
13
|
+
return {
|
|
14
|
+
[types.AdminApiPaths.SiteKeyRegister]: new apiRegisterSiteKeyEndpoint.ApiRegisterSiteKeyEndpoint(
|
|
15
|
+
this.tasks.clientTaskManager
|
|
16
|
+
),
|
|
17
|
+
[types.AdminApiPaths.UpdateDetectorKey]: new apiUpdateDetectorKeyEndpoint.ApiUpdateDetectorKeyEndpoint(
|
|
18
|
+
this.tasks.clientTaskManager
|
|
19
|
+
),
|
|
20
|
+
[types.AdminApiPaths.RemoveDetectorKey]: new apiRemoveDetectorKeyEndpoint.ApiRemoveDetectorKeyEndpoint(
|
|
21
|
+
this.tasks.clientTaskManager
|
|
22
|
+
),
|
|
23
|
+
[types.AdminApiPaths.ToggleMaintenanceMode]: new apiToggleMaintenanceModeEndpoint.ApiToggleMaintenanceModeEndpoint()
|
|
24
|
+
};
|
|
30
25
|
}
|
|
31
26
|
}
|
|
32
27
|
exports.ApiAdminRoutesProvider = ApiAdminRoutesProvider;
|
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const apiRoute = require("@prosopo/api-route");
|
|
4
4
|
const common = require("@prosopo/common");
|
|
5
5
|
const types = require("@prosopo/types");
|
|
6
|
+
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
6
7
|
class ApiRegisterSiteKeyEndpoint {
|
|
7
8
|
constructor(clientTaskManager) {
|
|
8
9
|
this.clientTaskManager = clientTaskManager;
|
|
9
10
|
}
|
|
10
11
|
async processRequest(args, logger) {
|
|
11
12
|
const { siteKey, tier, settings } = args;
|
|
12
|
-
logger = logger || common.getLogger("info",
|
|
13
|
+
logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("api/admin/apiRegisterSiteKeyEndpoint.cjs", document.baseURI).href);
|
|
13
14
|
const temp = settings || types.ClientSettingsSchema.parse({});
|
|
14
15
|
logger.info(() => ({ data: { siteKey }, msg: "`Registering site key" }));
|
|
15
16
|
await this.clientTaskManager.registerSiteKey(siteKey, tier, temp);
|
|
@@ -3,17 +3,21 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const apiRoute = require("@prosopo/api-route");
|
|
4
4
|
const common = require("@prosopo/common");
|
|
5
5
|
const types = require("@prosopo/types");
|
|
6
|
+
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
6
7
|
class ApiRemoveDetectorKeyEndpoint {
|
|
7
8
|
constructor(clientTaskManager) {
|
|
8
9
|
this.clientTaskManager = clientTaskManager;
|
|
9
10
|
}
|
|
10
11
|
async processRequest(args, logger) {
|
|
11
|
-
logger = logger || common.getLogger("info",
|
|
12
|
+
logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("api/admin/apiRemoveDetectorKeyEndpoint.cjs", document.baseURI).href);
|
|
12
13
|
try {
|
|
13
|
-
const { detectorKey } = args;
|
|
14
|
-
logger = logger || common.getLogger("info",
|
|
14
|
+
const { detectorKey, expirationInSeconds } = args;
|
|
15
|
+
logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("api/admin/apiRemoveDetectorKeyEndpoint.cjs", document.baseURI).href);
|
|
15
16
|
logger.info(() => ({ msg: "Removing detector key" }));
|
|
16
|
-
await this.clientTaskManager.removeDetectorKey(
|
|
17
|
+
await this.clientTaskManager.removeDetectorKey(
|
|
18
|
+
detectorKey,
|
|
19
|
+
expirationInSeconds
|
|
20
|
+
);
|
|
17
21
|
return {
|
|
18
22
|
status: apiRoute.ApiEndpointResponseStatus.SUCCESS
|
|
19
23
|
};
|
|
@@ -26,7 +30,7 @@ class ApiRemoveDetectorKeyEndpoint {
|
|
|
26
30
|
}
|
|
27
31
|
}
|
|
28
32
|
getRequestArgsSchema() {
|
|
29
|
-
return types.
|
|
33
|
+
return types.RemoveDetectorKeyBodySpec;
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
exports.ApiRemoveDetectorKeyEndpoint = ApiRemoveDetectorKeyEndpoint;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const apiRoute = require("@prosopo/api-route");
|
|
4
|
+
const common = require("@prosopo/common");
|
|
5
|
+
const types = require("@prosopo/types");
|
|
6
|
+
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
7
|
+
function getMaintenanceMode() {
|
|
8
|
+
return process.env.MAINTENANCE_MODE?.toLowerCase() === "true";
|
|
9
|
+
}
|
|
10
|
+
function setMaintenanceMode(enabled) {
|
|
11
|
+
process.env.MAINTENANCE_MODE = enabled ? "true" : "false";
|
|
12
|
+
}
|
|
13
|
+
class ApiToggleMaintenanceModeEndpoint {
|
|
14
|
+
async processRequest(args, logger) {
|
|
15
|
+
const { enabled } = args;
|
|
16
|
+
logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("api/admin/apiToggleMaintenanceModeEndpoint.cjs", document.baseURI).href);
|
|
17
|
+
const previousMode = getMaintenanceMode();
|
|
18
|
+
logger.info(() => ({
|
|
19
|
+
data: { enabled, previous: previousMode },
|
|
20
|
+
msg: "Toggling maintenance mode"
|
|
21
|
+
}));
|
|
22
|
+
setMaintenanceMode(enabled);
|
|
23
|
+
const currentMode = getMaintenanceMode();
|
|
24
|
+
logger.info(() => ({
|
|
25
|
+
data: { enabled: currentMode },
|
|
26
|
+
msg: "Maintenance mode updated"
|
|
27
|
+
}));
|
|
28
|
+
return {
|
|
29
|
+
status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
|
|
30
|
+
data: {
|
|
31
|
+
maintenanceMode: currentMode
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
getRequestArgsSchema() {
|
|
36
|
+
return types.ToggleMaintenanceModeBody;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ApiToggleMaintenanceModeEndpoint = ApiToggleMaintenanceModeEndpoint;
|
|
40
|
+
exports.getMaintenanceMode = getMaintenanceMode;
|
|
41
|
+
exports.setMaintenanceMode = setMaintenanceMode;
|
|
@@ -10,13 +10,12 @@ const getRequestUserScope = (requestHeaders, ja4, ip, user) => {
|
|
|
10
10
|
...ja4 && { ja4Hash: ja4 },
|
|
11
11
|
...userAgent && { userAgent },
|
|
12
12
|
...ip && { ip }
|
|
13
|
+
// TODO more things with headers
|
|
13
14
|
};
|
|
14
15
|
};
|
|
15
|
-
const
|
|
16
|
-
const userScopeKeys = Object.keys(userScope)
|
|
17
|
-
|
|
18
|
-
);
|
|
19
|
-
const prioritisedUserScopes = util.uniqueSubsets(userScopeKeys).map(
|
|
16
|
+
const getPrioritisedUserScopes = (userScope) => {
|
|
17
|
+
const userScopeKeys = Object.keys(userScope);
|
|
18
|
+
return util.uniqueSubsets(userScopeKeys).map(
|
|
20
19
|
(subset) => subset.reduce(
|
|
21
20
|
(acc, key) => {
|
|
22
21
|
acc[key] = userScope[key];
|
|
@@ -24,26 +23,29 @@ const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clien
|
|
|
24
23
|
},
|
|
25
24
|
{}
|
|
26
25
|
)
|
|
27
|
-
)
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clientId) => {
|
|
29
|
+
const prioritisedUserScopes = getPrioritisedUserScopes(userScope);
|
|
28
30
|
const policyPromises = [];
|
|
29
31
|
const clientLoop = clientId ? [clientId, void 0] : [void 0];
|
|
30
32
|
for (const clientOrUndefined of clientLoop) {
|
|
31
33
|
for (const scope of prioritisedUserScopes) {
|
|
32
|
-
|
|
33
|
-
if (Object.values(parsedUserScope).every((value) => value === void 0)) {
|
|
34
|
+
if (Object.values(scope).every((value) => value === void 0)) {
|
|
34
35
|
continue;
|
|
35
36
|
}
|
|
37
|
+
const parsedUserScope = userAccessPolicy.userScopeInput.parse(scope);
|
|
36
38
|
const filter = {
|
|
37
39
|
...clientOrUndefined && {
|
|
38
40
|
policyScope: {
|
|
39
41
|
clientId: clientOrUndefined
|
|
40
42
|
}
|
|
41
43
|
},
|
|
42
|
-
policyScopeMatch: userAccessPolicy.
|
|
44
|
+
policyScopeMatch: userAccessPolicy.FilterScopeMatch.Exact,
|
|
43
45
|
userScope: parsedUserScope,
|
|
44
|
-
userScopeMatch: userAccessPolicy.
|
|
46
|
+
userScopeMatch: userAccessPolicy.FilterScopeMatch.Exact
|
|
45
47
|
};
|
|
46
|
-
policyPromises.push(userAccessRulesStorage.findRules(filter));
|
|
48
|
+
policyPromises.push(userAccessRulesStorage.findRules(filter, true, true));
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
return (await Promise.all(policyPromises)).flat();
|