@prosopo/provider 5.11.1 → 5.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +116 -115
  2. package/.turbo/turbo-build$colon$tsc.log +27 -27
  3. package/.turbo/turbo-build.log +117 -116
  4. package/CHANGELOG.md +75 -0
  5. package/dist/api/blacklistRequestInspector.d.ts +5 -2
  6. package/dist/api/blacklistRequestInspector.d.ts.map +1 -1
  7. package/dist/api/blacklistRequestInspector.js +10 -5
  8. package/dist/api/blacklistRequestInspector.js.map +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +1 -1
  10. package/dist/api/captcha/getPoWCaptchaChallenge.js +1 -1
  11. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +1 -1
  12. package/dist/api/cpuProfiler.d.ts +32 -0
  13. package/dist/api/cpuProfiler.d.ts.map +1 -0
  14. package/dist/api/cpuProfiler.js +128 -0
  15. package/dist/api/cpuProfiler.js.map +1 -0
  16. package/dist/api/metrics.d.ts +9 -0
  17. package/dist/api/metrics.d.ts.map +1 -1
  18. package/dist/api/metrics.js +107 -1
  19. package/dist/api/metrics.js.map +1 -1
  20. package/dist/api/startProviderApi.d.ts.map +1 -1
  21. package/dist/api/startProviderApi.js +2 -0
  22. package/dist/api/startProviderApi.js.map +1 -1
  23. package/dist/cjs/api/blacklistRequestInspector.cjs +10 -5
  24. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +1 -1
  25. package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +1 -1
  26. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +1 -1
  27. package/dist/cjs/api/cpuProfiler.cjs +129 -0
  28. package/dist/cjs/api/metrics.cjs +108 -0
  29. package/dist/cjs/api/startProviderApi.cjs +2 -0
  30. package/dist/cjs/tasks/captchaManager.cjs +61 -4
  31. package/dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs +2 -1
  32. package/dist/cjs/tasks/detection/decoderModules.cjs +14 -0
  33. package/dist/cjs/tasks/detection/decoderPool.cjs +183 -0
  34. package/dist/cjs/tasks/detection/getBotScore.cjs +9 -2
  35. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +6 -3
  36. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +5 -2
  37. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +6 -3
  38. package/dist/cjs/tasks/puzzle/backgroundBuffer.cjs +3 -2
  39. package/dist/cjs/tasks/puzzle/nativeBackground.cjs +30 -0
  40. package/dist/cjs/tasks/puzzle/puzzleRenderer.cjs +3 -2
  41. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +6 -3
  42. package/dist/tasks/captchaManager.d.ts +7 -0
  43. package/dist/tasks/captchaManager.d.ts.map +1 -1
  44. package/dist/tasks/captchaManager.js +61 -4
  45. package/dist/tasks/captchaManager.js.map +1 -1
  46. package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts.map +1 -1
  47. package/dist/tasks/decisionMachine/decisionMachineRunner.js +2 -1
  48. package/dist/tasks/decisionMachine/decisionMachineRunner.js.map +1 -1
  49. package/dist/tasks/detection/decoderModules.d.ts +5 -0
  50. package/dist/tasks/detection/decoderModules.d.ts.map +1 -0
  51. package/dist/tasks/detection/decoderModules.js +13 -0
  52. package/dist/tasks/detection/decoderModules.js.map +1 -0
  53. package/dist/tasks/detection/decoderPool.d.ts +4 -0
  54. package/dist/tasks/detection/decoderPool.d.ts.map +1 -0
  55. package/dist/tasks/detection/decoderPool.js +183 -0
  56. package/dist/tasks/detection/decoderPool.js.map +1 -0
  57. package/dist/tasks/detection/getBotScore.js +9 -2
  58. package/dist/tasks/detection/getBotScore.js.map +1 -1
  59. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  60. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +6 -3
  61. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  62. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -1
  63. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +5 -2
  64. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -1
  65. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  66. package/dist/tasks/powCaptcha/powTasks.js +6 -3
  67. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  68. package/dist/tasks/puzzle/backgroundBuffer.d.ts.map +1 -1
  69. package/dist/tasks/puzzle/backgroundBuffer.js +4 -3
  70. package/dist/tasks/puzzle/backgroundBuffer.js.map +1 -1
  71. package/dist/tasks/puzzle/nativeBackground.d.ts +3 -0
  72. package/dist/tasks/puzzle/nativeBackground.d.ts.map +1 -0
  73. package/dist/tasks/puzzle/nativeBackground.js +31 -0
  74. package/dist/tasks/puzzle/nativeBackground.js.map +1 -0
  75. package/dist/tasks/puzzle/puzzleRenderer.d.ts.map +1 -1
  76. package/dist/tasks/puzzle/puzzleRenderer.js +3 -2
  77. package/dist/tasks/puzzle/puzzleRenderer.js.map +1 -1
  78. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  79. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +6 -3
  80. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  81. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +42 -1
  82. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -1
  83. package/dist/tests/unit/api/cpuProfiler.unit.test.d.ts +2 -0
  84. package/dist/tests/unit/api/cpuProfiler.unit.test.d.ts.map +1 -0
  85. package/dist/tests/unit/api/cpuProfiler.unit.test.js +47 -0
  86. package/dist/tests/unit/api/cpuProfiler.unit.test.js.map +1 -0
  87. package/dist/tests/unit/api/cpuSpans.unit.test.d.ts +2 -0
  88. package/dist/tests/unit/api/cpuSpans.unit.test.d.ts.map +1 -0
  89. package/dist/tests/unit/api/cpuSpans.unit.test.js +37 -0
  90. package/dist/tests/unit/api/cpuSpans.unit.test.js.map +1 -0
  91. package/dist/tests/unit/tasks/captchaManager.unit.test.js +83 -5
  92. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  93. package/dist/tests/unit/tasks/detection/decoderPool.unit.test.d.ts +2 -0
  94. package/dist/tests/unit/tasks/detection/decoderPool.unit.test.d.ts.map +1 -0
  95. package/dist/tests/unit/tasks/detection/decoderPool.unit.test.js +59 -0
  96. package/dist/tests/unit/tasks/detection/decoderPool.unit.test.js.map +1 -0
  97. package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js +39 -18
  98. package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js.map +1 -1
  99. package/dist/tests/unit/tasks/puzzle/nativeBackground.unit.test.d.ts +2 -0
  100. package/dist/tests/unit/tasks/puzzle/nativeBackground.unit.test.d.ts.map +1 -0
  101. package/dist/tests/unit/tasks/puzzle/nativeBackground.unit.test.js +50 -0
  102. package/dist/tests/unit/tasks/puzzle/nativeBackground.unit.test.js.map +1 -0
  103. package/package.json +18 -17
  104. package/dist/cjs/tasks/detection/decodeBehavior.cjs +0 -721
  105. package/dist/cjs/tasks/detection/decodePayload.cjs +0 -1325
  106. package/dist/cjs/tasks/detection/decodeSimd.cjs +0 -805
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@5.11.1 build
2
+ > @prosopo/provider@5.12.1 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@5.11.1 build:cross-env
6
+ > @prosopo/provider@5.12.1 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -63,123 +63,124 @@ ViteEsmConfig: .
63
63
  vite v8.1.5 building ssr environment for production...
64
64
  Bundle build started
65
65
  
66
- ✓ 112 modules transformed.
66
+ ✓ 113 modules transformed.
67
67
  rendering chunks...
68
68
  computing gzip size...
69
- dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
70
- dist/tasks/index.js 0.05 kB │ gzip: 0.06 kB
71
- dist/api/captcha/getFrictionlessCaptchaChallenge.js 0.11 kB │ gzip: 0.10 kB
72
- dist/api/admin/createApiAdminRoutesProvider.js 0.35 kB │ gzip: 0.18 kB
73
- dist/api/robotsMiddleware.js 0.36 kB │ gzip: 0.24 kB
74
- dist/tasks/puzzleCaptcha/puzzleTasksUtils.js 0.37 kB │ gzip: 0.24 kB
75
- dist/rules/lang.js 0.39 kB │ gzip: 0.24 kB
76
- dist/api/ignoreMiddleware.js 0.41 kB │ gzip: 0.26 kB
77
- dist/api/ipInfoMiddleware.js 0.41 kB │ gzip: 0.26 kB
78
- dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js 0.51 kB │ gzip: 0.27 kB
79
- dist/utils/hashUserIp.js 0.52 kB │ gzip: 0.33 kB
80
- dist/api/testSiteKey.js 0.56 kB │ gzip: 0.30 kB
81
- dist/utils/hashUserAgent.js 0.63 kB │ gzip: 0.39 kB
82
- dist/api/validateAddress.js 0.70 kB │ gzip: 0.33 kB
83
- dist/api/dnsEventUrl.js 0.80 kB │ gzip: 0.44 kB
84
- dist/api/ja4.js 0.80 kB │ gzip: 0.44 kB
85
- dist/tasks/dataset/datasetTasks.js 0.85 kB │ gzip: 0.39 kB
86
- dist/tasks/powCaptcha/powTasksUtils.js 0.89 kB │ gzip: 0.46 kB
87
- dist/api/headerCheckMiddleware.js 0.91 kB │ gzip: 0.43 kB
88
- dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js 0.95 kB │ gzip: 0.51 kB
89
- dist/api/admin/apiRegisterSiteKeyEndpoint.js 1.00 kB │ gzip: 0.46 kB
90
- dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js 1.01 kB │ gzip: 0.45 kB
91
- dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js 1.04 kB │ gzip: 0.57 kB
92
- dist/api/admin/apiRemoveSiteKeysEndpoint.js 1.07 kB │ gzip: 0.48 kB
93
- dist/api/admin/apiRegisterSiteKeysEndpoint.js 1.08 kB │ gzip: 0.50 kB
94
- dist/api/admin/apiRemoveSiteKeyEndpoint.js 1.08 kB │ gzip: 0.48 kB
95
- dist/api/block.js 1.08 kB │ gzip: 0.46 kB
96
- dist/schedulers/captchaScheduler.js 1.11 kB │ gzip: 0.48 kB
97
- dist/utils/normalizeRequestIp.js 1.14 kB │ gzip: 0.52 kB
98
- dist/pairs.js 1.19 kB │ gzip: 0.58 kB
99
- dist/schedulers/getClientList.js 1.19 kB │ gzip: 0.53 kB
100
- dist/tasks/puzzle/backgroundBuffer.js 1.20 kB │ gzip: 0.50 kB
101
- dist/api/admin/apiGetDecisionMachineEndpoint.js 1.26 kB │ gzip: 0.50 kB
102
- dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js 1.27 kB │ gzip: 0.51 kB
103
- dist/api/admin/apiRemoveDecisionMachineEndpoint.js 1.29 kB │ gzip: 0.51 kB
104
- dist/tasks/dataset/datasetTasksUtils.js 1.30 kB │ gzip: 0.48 kB
105
- dist/api/assetDocument.js 1.36 kB │ gzip: 0.75 kB
106
- dist/compositeIpAddress.js 1.36 kB │ gzip: 0.55 kB
107
- dist/tasks/detection/assignSecret.js 1.42 kB │ gzip: 0.74 kB
108
- dist/utils/clientMetaData.js 1.42 kB │ gzip: 0.72 kB
109
- dist/api/admin/apiGetAllDecisionMachinesEndpoint.js 1.48 kB │ gzip: 0.57 kB
110
- dist/schedulers/updateSpamEmailDomains.js 1.52 kB │ gzip: 0.60 kB
111
- dist/api/admin/apiReplaceDetectorPoolEndpoint.js 1.57 kB │ gzip: 0.68 kB
112
- dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js 1.57 kB │ gzip: 0.69 kB
113
- dist/api/ja4Middleware.js 1.59 kB │ gzip: 0.75 kB
114
- dist/utils/honeypot/encoders.js 1.62 kB │ gzip: 0.67 kB
115
- dist/api/admin/apiGetSessionEndpoint.js 1.66 kB │ gzip: 0.80 kB
116
- dist/api/admin/apiToggleMaintenanceModeEndpoint.js 1.66 kB │ gzip: 0.69 kB
117
- dist/utils/devicePlatform.js 1.68 kB │ gzip: 0.90 kB
118
- dist/api/admin/apiUpdateDecisionMachineEndpoint.js 1.68 kB │ gzip: 0.58 kB
119
- dist/utils/honeypot/phraseBank.js 1.69 kB │ gzip: 0.84 kB
120
- dist/api/handshakeTimingMiddleware.js 1.75 kB │ gzip: 0.69 kB
121
- dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
122
- dist/api/captcha/signedAssetsResolver.js 1.89 kB │ gzip: 0.94 kB
123
- dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
124
- dist/tasks/frictionless/ipMatch.js 1.98 kB │ gzip: 1.02 kB
125
- dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
126
- dist/tasks/puzzle/stratifiedSampler.js 2.14 kB │ gzip: 1.07 kB
127
- dist/tasks/frictionless/frictionlessTasksUtils.js 2.16 kB │ gzip: 1.09 kB
128
- dist/api/captcha/maintenanceModeResponses.js 2.16 kB │ gzip: 0.73 kB
129
- dist/tasks/frictionless/routingMachine.js 2.20 kB │ gzip: 0.93 kB
130
- dist/tasks/captchaTypeSelection.js 2.22 kB │ gzip: 1.03 kB
131
- dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
132
- dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
133
- dist/api/public.js 2.45 kB │ gzip: 0.98 kB
134
- dist/api/captcha/checkSpamEmail.js 2.47 kB │ gzip: 0.91 kB
135
- dist/tasks/puzzle/puzzleDifficulty.js 2.50 kB │ gzip: 1.09 kB
136
- dist/api/captcha/submitPuzzleCaptchaSolution.js 2.55 kB │ gzip: 0.96 kB
137
- dist/api/forwardVerify.js 2.59 kB │ gzip: 1.10 kB
138
- dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
139
- dist/api/admin/apiAdminRoutesProvider.js 2.78 kB │ gzip: 0.55 kB
140
- dist/index.js 2.92 kB │ gzip: 0.80 kB
141
- dist/tasks/detection/getBotScore.js 3.26 kB │ gzip: 1.29 kB
142
- dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.39 kB │ gzip: 1.32 kB
143
- dist/api/captcha/assignDetectorBundle.js 3.40 kB │ gzip: 1.34 kB
144
- dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
145
- dist/api/rawTlsSignalsMiddleware.js 3.69 kB │ gzip: 1.13 kB
146
- dist/tasks/spam/evaluateEmailSpamRules.js 3.84 kB │ gzip: 1.59 kB
147
- dist/tasks/puzzle/puzzleRenderer.js 3.91 kB │ gzip: 1.49 kB
148
- dist/api/captcha/trafficFilterRequestTime.js 3.94 kB │ gzip: 1.51 kB
149
- dist/services/ipComparison.js 4.04 kB │ gzip: 1.21 kB
150
- dist/api/captcha.js 4.05 kB │ gzip: 1.31 kB
151
- dist/tasks/spam/checkSpamEmail.js 4.12 kB │ gzip: 1.12 kB
152
- dist/api/hardBlockVerdictCache.js 4.14 kB │ gzip: 1.69 kB
153
- dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 4.35 kB │ gzip: 1.07 kB
154
- dist/tasks/tasks.js 4.69 kB │ gzip: 1.51 kB
155
- dist/tasks/dnsEvent/enrichDnsEvent.js 4.71 kB │ gzip: 1.72 kB
156
- dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
157
- dist/api/captcha/getPoWCaptchaChallenge.js 6.09 kB │ gzip: 1.83 kB
158
- dist/api/captcha/getImageCaptchaChallenge.js 6.51 kB │ gzip: 1.99 kB
159
- dist/api/captcha/getPuzzleCaptchaChallenge.js 6.84 kB │ gzip: 1.97 kB
160
- dist/api/healthzGeo.js 6.86 kB │ gzip: 2.68 kB
161
- dist/tasks/spam/checkTrafficFilter.js 7.16 kB │ gzip: 2.45 kB
162
- dist/api/metrics.js 7.36 kB │ gzip: 2.19 kB
163
- dist/api/captcha/submitPoWCaptchaSolution.js 8.60 kB │ gzip: 2.66 kB
164
- dist/tasks/detection/bundlePool.js 8.80 kB │ gzip: 3.32 kB
165
- dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 9.36 kB │ gzip: 1.80 kB
166
- dist/api/startProviderApi.js 9.93 kB │ gzip: 3.42 kB
167
- dist/tasks/client/clientTasks.js 11.27 kB │ gzip: 3.00 kB
168
- dist/tasks/decisionMachine/decisionMachineRunner.js 12.19 kB │ gzip: 3.81 kB
169
- dist/api/blacklistRequestInspector.js 12.46 kB │ gzip: 4.37 kB
170
- dist/util.js 12.47 kB │ gzip: 3.20 kB
171
- dist/api/verify.js 15.12 kB │ gzip: 2.82 kB
172
- dist/tasks/frictionless/frictionlessTasks.js 17.80 kB │ gzip: 4.86 kB
173
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 18.54 kB │ gzip: 4.48 kB
174
- dist/tasks/captchaManager.js 21.77 kB │ gzip: 6.50 kB
175
- dist/tasks/puzzleCaptcha/puzzleTasks.js 22.65 kB │ gzip: 5.11 kB
176
- dist/tasks/powCaptcha/powTasks.js 23.55 kB │ gzip: 5.95 kB
177
- dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.47 kB │ gzip: 6.31 kB
178
- dist/tasks/detection/decodeBehavior.js 32.26 kB │ gzip: 10.34 kB
179
- dist/tasks/detection/decodeSimd.js 36.06 kB │ gzip: 12.00 kB
180
- dist/tasks/detection/decodePayload.js 52.94 kB │ gzip: 17.83 kB
69
+ dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
70
+ dist/tasks/index.js 0.05 kB │ gzip: 0.06 kB
71
+ dist/api/captcha/getFrictionlessCaptchaChallenge.js 0.11 kB │ gzip: 0.10 kB
72
+ dist/api/admin/createApiAdminRoutesProvider.js 0.35 kB │ gzip: 0.18 kB
73
+ dist/api/robotsMiddleware.js 0.36 kB │ gzip: 0.24 kB
74
+ dist/tasks/puzzleCaptcha/puzzleTasksUtils.js 0.37 kB │ gzip: 0.24 kB
75
+ dist/rules/lang.js 0.39 kB │ gzip: 0.24 kB
76
+ dist/api/ignoreMiddleware.js 0.41 kB │ gzip: 0.26 kB
77
+ dist/api/ipInfoMiddleware.js 0.41 kB │ gzip: 0.26 kB
78
+ dist/tasks/detection/decoderModules.js 0.41 kB │ gzip: 0.22 kB
79
+ dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js 0.51 kB │ gzip: 0.27 kB
80
+ dist/utils/hashUserIp.js 0.52 kB │ gzip: 0.33 kB
81
+ dist/api/testSiteKey.js 0.56 kB │ gzip: 0.30 kB
82
+ dist/utils/hashUserAgent.js 0.63 kB │ gzip: 0.39 kB
83
+ dist/api/validateAddress.js 0.70 kB │ gzip: 0.33 kB
84
+ dist/api/dnsEventUrl.js 0.80 kB │ gzip: 0.44 kB
85
+ dist/api/ja4.js 0.80 kB │ gzip: 0.44 kB
86
+ dist/tasks/dataset/datasetTasks.js 0.85 kB │ gzip: 0.39 kB
87
+ dist/tasks/powCaptcha/powTasksUtils.js 0.89 kB │ gzip: 0.46 kB
88
+ dist/api/headerCheckMiddleware.js 0.91 kB │ gzip: 0.43 kB
89
+ dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js 0.95 kB │ gzip: 0.51 kB
90
+ dist/api/admin/apiRegisterSiteKeyEndpoint.js 1.00 kB │ gzip: 0.46 kB
91
+ dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js 1.01 kB │ gzip: 0.45 kB
92
+ dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js 1.04 kB │ gzip: 0.57 kB
93
+ dist/tasks/puzzle/nativeBackground.js 1.06 kB │ gzip: 0.58 kB
94
+ dist/api/admin/apiRemoveSiteKeysEndpoint.js 1.07 kB │ gzip: 0.48 kB
95
+ dist/api/admin/apiRegisterSiteKeysEndpoint.js 1.08 kB │ gzip: 0.50 kB
96
+ dist/api/admin/apiRemoveSiteKeyEndpoint.js 1.08 kB │ gzip: 0.48 kB
97
+ dist/api/block.js 1.08 kB │ gzip: 0.46 kB
98
+ dist/schedulers/captchaScheduler.js 1.11 kB │ gzip: 0.48 kB
99
+ dist/utils/normalizeRequestIp.js 1.14 kB │ gzip: 0.52 kB
100
+ dist/pairs.js 1.19 kB │ gzip: 0.58 kB
101
+ dist/schedulers/getClientList.js 1.19 kB │ gzip: 0.53 kB
102
+ dist/api/admin/apiGetDecisionMachineEndpoint.js 1.26 kB │ gzip: 0.50 kB
103
+ dist/tasks/puzzle/backgroundBuffer.js 1.26 kB │ gzip: 0.51 kB
104
+ dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js 1.27 kB │ gzip: 0.51 kB
105
+ dist/api/admin/apiRemoveDecisionMachineEndpoint.js 1.29 kB │ gzip: 0.51 kB
106
+ dist/tasks/dataset/datasetTasksUtils.js 1.30 kB │ gzip: 0.48 kB
107
+ dist/api/assetDocument.js 1.36 kB │ gzip: 0.75 kB
108
+ dist/compositeIpAddress.js 1.36 kB │ gzip: 0.55 kB
109
+ dist/tasks/detection/assignSecret.js 1.42 kB │ gzip: 0.74 kB
110
+ dist/utils/clientMetaData.js 1.42 kB │ gzip: 0.72 kB
111
+ dist/api/admin/apiGetAllDecisionMachinesEndpoint.js 1.48 kB │ gzip: 0.57 kB
112
+ dist/schedulers/updateSpamEmailDomains.js 1.52 kB │ gzip: 0.60 kB
113
+ dist/api/admin/apiReplaceDetectorPoolEndpoint.js 1.57 kB │ gzip: 0.68 kB
114
+ dist/api/ja4Middleware.js 1.59 kB │ gzip: 0.75 kB
115
+ dist/utils/honeypot/encoders.js 1.62 kB │ gzip: 0.67 kB
116
+ dist/api/admin/apiGetSessionEndpoint.js 1.66 kB │ gzip: 0.80 kB
117
+ dist/api/admin/apiToggleMaintenanceModeEndpoint.js 1.66 kB │ gzip: 0.69 kB
118
+ dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js 1.67 kB │ gzip: 0.74 kB
119
+ dist/utils/devicePlatform.js 1.68 kB │ gzip: 0.90 kB
120
+ dist/api/admin/apiUpdateDecisionMachineEndpoint.js 1.68 kB │ gzip: 0.58 kB
121
+ dist/utils/honeypot/phraseBank.js 1.69 kB │ gzip: 0.84 kB
122
+ dist/api/handshakeTimingMiddleware.js 1.75 kB │ gzip: 0.69 kB
123
+ dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
124
+ dist/api/captcha/signedAssetsResolver.js 1.89 kB │ gzip: 0.94 kB
125
+ dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
126
+ dist/tasks/frictionless/ipMatch.js 1.98 kB │ gzip: 1.02 kB
127
+ dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
128
+ dist/tasks/puzzle/stratifiedSampler.js 2.14 kB │ gzip: 1.07 kB
129
+ dist/tasks/frictionless/frictionlessTasksUtils.js 2.16 kB │ gzip: 1.09 kB
130
+ dist/api/captcha/maintenanceModeResponses.js 2.16 kB │ gzip: 0.73 kB
131
+ dist/tasks/frictionless/routingMachine.js 2.20 kB │ gzip: 0.93 kB
132
+ dist/tasks/captchaTypeSelection.js 2.22 kB │ gzip: 1.03 kB
133
+ dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
134
+ dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
135
+ dist/api/public.js 2.45 kB │ gzip: 0.98 kB
136
+ dist/api/captcha/checkSpamEmail.js 2.47 kB │ gzip: 0.91 kB
137
+ dist/tasks/puzzle/puzzleDifficulty.js 2.50 kB │ gzip: 1.09 kB
138
+ dist/api/captcha/submitPuzzleCaptchaSolution.js 2.55 kB │ gzip: 0.96 kB
139
+ dist/api/forwardVerify.js 2.59 kB │ gzip: 1.10 kB
140
+ dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
141
+ dist/api/admin/apiAdminRoutesProvider.js 2.78 kB │ gzip: 0.55 kB
142
+ dist/index.js 2.92 kB │ gzip: 0.80 kB
143
+ dist/tasks/detection/getBotScore.js 3.29 kB │ gzip: 1.32 kB
144
+ dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.39 kB │ gzip: 1.32 kB
145
+ dist/api/captcha/assignDetectorBundle.js 3.40 kB │ gzip: 1.34 kB
146
+ dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
147
+ dist/api/rawTlsSignalsMiddleware.js 3.69 kB │ gzip: 1.13 kB
148
+ dist/tasks/spam/evaluateEmailSpamRules.js 3.84 kB │ gzip: 1.59 kB
149
+ dist/api/captcha/trafficFilterRequestTime.js 3.94 kB │ gzip: 1.51 kB
150
+ dist/tasks/puzzle/puzzleRenderer.js 3.99 kB │ gzip: 1.52 kB
151
+ dist/services/ipComparison.js 4.04 kB │ gzip: 1.21 kB
152
+ dist/api/captcha.js 4.05 kB │ gzip: 1.31 kB
153
+ dist/tasks/spam/checkSpamEmail.js 4.12 kB │ gzip: 1.12 kB
154
+ dist/api/cpuProfiler.js 4.12 kB │ gzip: 1.77 kB
155
+ dist/api/hardBlockVerdictCache.js 4.14 kB │ gzip: 1.69 kB
156
+ dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 4.35 kB │ gzip: 1.07 kB
157
+ dist/tasks/tasks.js 4.69 kB │ gzip: 1.51 kB
158
+ dist/tasks/dnsEvent/enrichDnsEvent.js 4.71 kB │ gzip: 1.72 kB
159
+ dist/tasks/detection/decoderPool.js 5.34 kB │ gzip: 2.02 kB
160
+ dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
161
+ dist/api/captcha/getPoWCaptchaChallenge.js 6.09 kB │ gzip: 1.83 kB
162
+ dist/api/captcha/getImageCaptchaChallenge.js 6.51 kB │ gzip: 1.99 kB
163
+ dist/api/captcha/getPuzzleCaptchaChallenge.js 6.84 kB │ gzip: 1.97 kB
164
+ dist/api/healthzGeo.js 6.86 kB │ gzip: 2.68 kB
165
+ dist/tasks/spam/checkTrafficFilter.js 7.16 kB │ gzip: 2.45 kB
166
+ dist/api/captcha/submitPoWCaptchaSolution.js 8.60 kB │ gzip: 2.66 kB
167
+ dist/tasks/detection/bundlePool.js 8.80 kB │ gzip: 3.32 kB
168
+ dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 9.36 kB │ gzip: 1.80 kB
169
+ dist/api/startProviderApi.js 10.02 kB │ gzip: 3.45 kB
170
+ dist/api/metrics.js 11.27 kB │ gzip: 3.53 kB
171
+ dist/tasks/client/clientTasks.js 11.27 kB │ gzip: 3.00 kB
172
+ dist/tasks/decisionMachine/decisionMachineRunner.js 12.28 kB │ gzip: 3.85 kB
173
+ dist/util.js 12.47 kB │ gzip: 3.20 kB
174
+ dist/api/blacklistRequestInspector.js 12.75 kB │ gzip: 4.46 kB
175
+ dist/api/verify.js 15.12 kB │ gzip: 2.82 kB
176
+ dist/tasks/frictionless/frictionlessTasks.js 17.80 kB │ gzip: 4.86 kB
177
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 18.54 kB │ gzip: 4.48 kB
178
+ dist/tasks/puzzleCaptcha/puzzleTasks.js 22.71 kB │ gzip: 5.12 kB
179
+ dist/tasks/captchaManager.js 23.44 kB │ gzip: 7.03 kB
180
+ dist/tasks/powCaptcha/powTasks.js 23.61 kB │ gzip: 5.97 kB
181
+ dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.42 kB │ gzip: 6.30 kB
181
182
 
182
- ✓ built in 132ms
183
+ ✓ built in 158ms
183
184
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeBehavior.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodeBehavior.js
184
185
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodePayload.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodePayload.js
185
186
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodeSimd.js
package/CHANGELOG.md CHANGED
@@ -1,5 +1,80 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 5.12.1
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [59c02da]
7
+ - @prosopo/locale@3.5.0
8
+ - @prosopo/api-express-router@3.1.92
9
+ - @prosopo/common@3.1.58
10
+ - @prosopo/types@5.9.2
11
+ - @prosopo/types-database@5.6.2
12
+ - @prosopo/database@4.0.38
13
+ - @prosopo/datasets@3.1.87
14
+ - @prosopo/env@3.6.61
15
+ - @prosopo/keyring@2.9.94
16
+ - @prosopo/load-balancer@2.10.49
17
+ - @prosopo/user-access-policy@3.14.8
18
+ - @prosopo/api@4.3.2
19
+ - @prosopo/ipinfo@0.4.7
20
+ - @prosopo/types-env@2.11.7
21
+
22
+ ## 5.12.0
23
+ ### Minor Changes
24
+
25
+ - 6d9711f: Measure where the provider's CPU actually goes, and move puzzle background generation to Rust.
26
+
27
+ **Measuring first.** We have been choosing what to optimise by reading the code and guessing, and the guesses have been wrong in both directions — a decoder shipped nine times slower than its predecessor without anyone noticing, and a background generator we assumed would be ten to twenty times faster in Rust turned out to be three. Two things now answer the question with numbers instead.
28
+
29
+ `measureSync` wraps a named block of synchronous work and records the CPU it burns, so `prosopo_sync_span_cpu_seconds_total` gives a per-day ranking of which blocks cost the most. Seven blocks are instrumented: the three payload decoders, puzzle background generation and rendering, the merkle build, and decision machine execution. The measurement is only honest for work that holds the event loop, which is why the helper takes a plain function and not an async one — billing a function for the requests served during its awaits would produce a confident wrong answer.
30
+
31
+ A periodic CPU profiler covers what nobody thought to instrument. It samples the isolate for a few seconds, logs the busiest call frames by self time, and sleeps. It is off unless `PROSOPO_CPU_PROFILE_ENABLED=true`, samples a short window every fifteen minutes by default, and cannot take the provider down with it if it fails.
32
+
33
+ Event loop lag and process CPU were already being collected by the default Prometheus metrics; nothing was added there.
34
+
35
+ **Puzzle backgrounds in Rust.** The new `@prosopo/native-puzzle` package generates the mesh-gradient background the slider puzzle sits on. It produces byte-identical output to the JavaScript for the same seed — verified against the existing implementation, which stays in place as the reference — and takes about a third of the time, so a buffer refill now stalls the event loop for around eleven milliseconds instead of thirty-two. The JavaScript remains the browser-side implementation and the thing the differential test compares against.
36
+ - c151f8a: Decode detector payloads on worker threads instead of on the request path, and fix the CPU metric that was measuring the wrong thing.
37
+
38
+ **The measurement was wrong.** `prosopo_sync_span_cpu_seconds_total` claimed to report the CPU a block of synchronous work costs, on the reasoning that nothing else can run while it holds the event loop. That is true of the main thread but not of the process: `process.cpuUsage()` counts every thread, so V8's background garbage collector and compiler and the image encoder's thread pool were all billed to whichever block happened to be open. In production it reported *more* CPU than wall-clock time, which is impossible for work on one thread, and that is what gave it away. Node offers no per-thread CPU clock, so the counter is removed rather than corrected — process-wide CPU is already reported as `prosopo_process_cpu_seconds_total`. The wall-time counter was never affected and is the one to rank by: for a synchronous block it is exactly the delay imposed on everything else waiting.
39
+
40
+ **What that measurement found.** The three detector decoders held the event loop for 15–47 ms every time they ran, and together accounted for about 84% of all the blocking we measured. That cost does not stay with the request doing the decoding — it delays every other request being served at that moment, health checks included. It is the same shape of problem as the decoder that shipped nine times slower in 3.8.14.
41
+
42
+ **The fix.** The decoders now run on a small pool of worker threads. The decoders themselves are untouched: the same file, the same input, the same output, including the same failures — the tests check that decoding through the pool is indistinguishable from decoding inline. A round trip to a worker costs between 0.01 and 0.2 ms against the 15–47 ms it takes off the request path.
43
+
44
+ Set `PROSOPO_DECODER_WORKERS=0` to go back to decoding inline; it takes a restart but not a rollback. `PROSOPO_DECODER_WORKERS` sets the pool size (default: up to four, leaving a core spare) and `PROSOPO_DECODER_TIMEOUT_MS` caps how long one decode may take before the worker is replaced. If workers cannot be started at all the provider decodes inline and says so in the log, because serving slowly is better than not serving.
45
+
46
+ Two new metrics replace the decoder spans: `prosopo_decoder_duration_seconds` and `prosopo_decoder_calls_total`. Watch them next to `prosopo_nodejs_eventloop_lag_p99_seconds` — that pair is how you confirm the work moved rather than disappeared.
47
+
48
+ The decoders are now copied next to the bundle under fixed names and loaded by path, because a worker cannot ask the bundler what it called a chunk. `copyAssetsPlugin` does the copying.
49
+
50
+ ### Patch Changes
51
+
52
+ - a22069d: Let a Block access rule name the reason it fired, so the 403 says why instead of "Forbidden"
53
+ - de1dc32: Decode a submission's two payloads together instead of one after the other.
54
+
55
+ A solution submission can carry both behavioural data and SIMD readings. Both are encrypted with the same detector bundle and neither depends on the other, but the pow and puzzle paths were looking that bundle up twice and then decoding one payload after the other.
56
+
57
+ That cost little when decoding happened inline. Once decoding moved to worker threads it became two serialised round trips on the submit path, and measured as a 22% latency increase on `pow/solution` and 25% on `puzzle/solution` against an identical node running the previous release — while every other route got faster and the event loop's p99 delay halved. This recovers that.
58
+
59
+ The bundle is now resolved once and both payloads decode concurrently, which is what the image path already did. A payload that cannot be read still comes back empty rather than failing the submission, and a decoder that throws no longer discards the other payload's perfectly good result along with it.
60
+ - Updated dependencies [a22069d]
61
+ - Updated dependencies [6d9711f]
62
+ - @prosopo/user-access-policy@3.14.7
63
+ - @prosopo/types@5.9.1
64
+ - @prosopo/locale@3.4.4
65
+ - @prosopo/native-puzzle@0.1.0
66
+ - @prosopo/database@4.0.37
67
+ - @prosopo/types-database@5.6.1
68
+ - @prosopo/api@4.3.1
69
+ - @prosopo/api-express-router@3.1.91
70
+ - @prosopo/common@3.1.57
71
+ - @prosopo/datasets@3.1.86
72
+ - @prosopo/env@3.6.60
73
+ - @prosopo/ipinfo@0.4.6
74
+ - @prosopo/keyring@2.9.93
75
+ - @prosopo/load-balancer@2.10.48
76
+ - @prosopo/types-env@2.11.6
77
+
3
78
  ## 5.11.1
4
79
  ### Patch Changes
5
80
 
@@ -1,9 +1,12 @@
1
1
  import type { Logger } from "@prosopo/logger";
2
- import { type IPInfoResponse } from "@prosopo/types";
2
+ import { type IPInfoResponse, ResultReason } from "@prosopo/types";
3
3
  import type { IProviderDatabase } from "@prosopo/types-database";
4
4
  import { type AccessRule, type AccessRulesStorage, type UserScope, type UserScopeRecord } from "@prosopo/user-access-policy";
5
5
  import type { NextFunction, Request, Response } from "express";
6
6
  import { HardBlockVerdictCache } from "./hardBlockVerdictCache.js";
7
+ export type BlockOutcome = {
8
+ messageKey?: ResultReason;
9
+ };
7
10
  export declare const getRequestUserScope: (requestHeaders: Record<string, unknown>, ja4?: string, ip?: string, user?: string, headHash?: string, coords?: string, countryCode?: string, asn?: number, webBotAuthAgent?: string) => Pick<UserScopeRecord, "userId" | "ja4Hash" | "userAgent" | "ip" | "headHash" | "coords" | "countryCode" | "asn" | "os" | "browser" | "headerMatch" | "webBotAuthAgent">;
8
11
  export declare const normalizeHeadersForMatching: (headers: Record<string, unknown>) => Record<string, string>;
9
12
  export declare const rankCandidateRules: (rules: AccessRule[], request: UserScope, requestClientId: string | undefined, requestHeaders: Record<string, string>) => AccessRule[];
@@ -21,7 +24,7 @@ export declare class BlacklistRequestInspector {
21
24
  private readonly db?;
22
25
  constructor(userAccessRulesStorage: AccessRulesStorage, environmentReadinessWaiter: () => Promise<void>, db?: IProviderDatabase | undefined);
23
26
  abortRequestForBlockedUsers(request: Request, res: Response, next: NextFunction): Promise<void>;
24
- shouldAbortRequest(requestedRoute: string, rawIp: string, ja4: string, requestHeaders: Record<string, unknown>, requestBody: Record<string, unknown>, logger: Logger, ipInfo?: IPInfoResponse, requestMemoHost?: object): Promise<boolean>;
27
+ shouldAbortRequest(requestedRoute: string, rawIp: string, ja4: string, requestHeaders: Record<string, unknown>, requestBody: Record<string, unknown>, logger: Logger, ipInfo?: IPInfoResponse, requestMemoHost?: object, blockOutcome?: BlockOutcome): Promise<boolean>;
25
28
  private recordBlockDecision;
26
29
  protected isApiUnrelatedRoute(url: string): boolean;
27
30
  protected extractIdsFromRequest(requestHeaders: Record<string, unknown>, requestBody: Record<string, unknown>): {
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistRequestInspector.d.ts","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blacklistRequestInspector.d.ts","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import { recordBlockedRequest } from "./metrics.js";
1
2
  import { getCompositeIpAddress } from "../compositeIpAddress.js";
2
3
  import { HardBlockVerdictCache, hardBlockCacheKey } from "./hardBlockVerdictCache.js";
3
- import { recordBlockedRequest } from "./metrics.js";
4
4
  import { ApiPrefix, CaptchaStatus, CaptchaType, FrictionlessReason, ResultReason } from "@prosopo/types";
5
5
  import { randomUUID } from "node:crypto";
6
6
  import { captchaPolicySeverity } from "@prosopo/captcha-severity";
@@ -168,16 +168,20 @@ var BlacklistRequestInspector = class {
168
168
  async abortRequestForBlockedUsers(request, res, next) {
169
169
  const rawIp = request.ip || "";
170
170
  request.logger.debug(() => ({ data: { ja4: request.ja4 } }));
171
- if (await this.shouldAbortRequest(request.url, rawIp, request.ja4, request.headers, request.body, request.logger, request.ipInfo, request)) {
171
+ const blockOutcome = {};
172
+ if (await this.shouldAbortRequest(request.url, rawIp, request.ja4, request.headers, request.body, request.logger, request.ipInfo, request, blockOutcome)) {
173
+ const { messageKey } = blockOutcome;
174
+ const reason = messageKey ? request.i18n.t(messageKey) : "Forbidden";
172
175
  res.status(403).json({ error: {
173
- message: `Forbidden: ${request.requestId ?? "unknown"}`,
174
- code: 403
176
+ message: `${reason}: ${request.requestId ?? "unknown"}`,
177
+ code: 403,
178
+ ...messageKey && { key: messageKey }
175
179
  } });
176
180
  return;
177
181
  }
178
182
  next();
179
183
  }
180
- async shouldAbortRequest(requestedRoute, rawIp, ja4, requestHeaders, requestBody, logger, ipInfo, requestMemoHost) {
184
+ async shouldAbortRequest(requestedRoute, rawIp, ja4, requestHeaders, requestBody, logger, ipInfo, requestMemoHost, blockOutcome) {
181
185
  if (this.isApiUnrelatedRoute(requestedRoute)) return false;
182
186
  if (!rawIp) {
183
187
  logger.info(() => ({
@@ -204,6 +208,7 @@ var BlacklistRequestInspector = class {
204
208
  const accessPolicy = enforceable[0];
205
209
  const isBlock = AccessPolicyType.Block === accessPolicy.type;
206
210
  if (isBlock) {
211
+ if (blockOutcome) blockOutcome.messageKey = accessPolicy.messageKey;
207
212
  recordBlockedRequest("access_policy");
208
213
  this.recordBlockDecision(accessPolicy, {
209
214
  userId,
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistRequestInspector.js","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EACN,SAAS,EACT,aAAa,EACb,WAAW,EACX,kBAAkB,EAGlB,YAAY,GAEZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,gBAAgB,EAGhB,gBAAgB,EAChB,kBAAkB,EAGlB,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACN,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,cAAuC,EACvC,GAAY,EACZ,EAAW,EACX,IAAa,EACb,QAAiB,EACjB,MAAe,EACf,WAAoB,EACpB,GAAY,EAIZ,eAAwB,EAevB,EAAE;IACH,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC;QAC7C,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;QACzC,CAAC,CAAC,SAAS,CAAC;IAEb,OAAO;QACN,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC5B,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,EAAE,CAAC;QAGvC,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,CAAC;QAG3C,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC;QACzB,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC;QAKnC,WAAW,EAAE,kBAAkB;KAC/B,CAAC;AACH,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,OAAgC,EACP,EAAE;IAC3B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAKF,MAAM,wBAAwB,GAAG;IAChC,QAAQ;IACR,SAAS;IACT,aAAa;IACb,eAAe;IACf,UAAU;IACV,QAAQ;IACR,aAAa;IACb,KAAK;IACL,IAAI;IACJ,SAAS;IAMT,aAAa;IACb,iBAAiB;CACiC,CAAC;AAMpD,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAY,EAAE;IACrD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,wBAAwB,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;SAAM,IACN,IAAI,CAAC,gBAAgB,KAAK,SAAS;QACnC,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAClC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAOF,MAAM,sBAAsB,GAAG,CAC9B,OAAgC,EACf,EAAE;IACnB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IACD,OAAO,GAAqB,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAgB,EAAW,EAAE,CACzD,IAAI,CAAC,SAAS,KAAK,SAAS;IAC5B,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;AAE9E,MAAM,oBAAoB,GAAG,CAC5B,IAAgB,EAChB,SAA6B,EACnB,EAAE;IACZ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;IAGD,OAAO,CACN,SAAS,IAAK,IAAI,CAAC,gBAA2B;QAC9C,SAAS,IAAK,IAAI,CAAC,gBAA2B,CAC9C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CACnB,IAAgB,EAChB,OAAkB,EAClB,eAAmC,EACnC,cAAsC,EAC5B,EAAE;IAGZ,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACd,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS;QACV,CAAC;QACD,IAAI,SAAS,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACd,CAAC;IAID,OAAO,uBAAuB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACvB,IAAgB,EAChB,eAAmC,EAC1B,EAAE;IACX,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACtE,KAAK,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,CAAC;QACZ,CAAC;IACF,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAqCF,MAAM,aAAa,GAAG,CAAC,IAAgB,EAAU,EAAE;IAClD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,gBAAgB,CAAC;IAChC,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,KAAmB,EACnB,OAAkB,EAClB,eAAmC,EACnC,cAAsC,EACvB,EAAE,CACjB,KAAK;KACH,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAChB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,CAC3D;KACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACd,MAAM,SAAS,GACd,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC;QACnC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAgCL,MAAM,YAAY,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAIjD,MAAM,CAAC,MAAM,eAAe,GAAG,GAA0B,EAAE,CAAC,YAAY,CAAC;AAOzE,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAKxE,MAAM,sBAAsB,GAAG,CAC9B,eAAgC,EAClB,EAAE;IAChB,IAAI,IAAI,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACjB,eAAe,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAmBF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC5C,sBAA0C,EAC1C,SAAsC,EACtC,QAA4B,EAM5B,cAAsC,EACtC,OAAyC,EACjB,EAAE;IAC1B,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IAC9C,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC;IAC1D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IAC9C,MAAM,eAAe,GAAG,OAAO,EAAE,eAErB,CAAC;IAEb,MAAM,QAAQ,GAAG,iBAAiB,CACjC,QAAQ,EACR,eAAe,EACf,SAAS,EACT,eAAe,CACf,CAAC;IAGF,MAAM,WAAW,GAAG,eAAe;QAClC,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC;IACb,MAAM,OAAO,GAAG,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG;QACd,GAAG,CAAC,QAAQ,IAAI;YACf,WAAW,EAAE;gBACZ,QAAQ;aACR;SACD,CAAC;QACF,gBAAgB,EAAE,gBAAgB,CAAC,MAAM;QACzC,SAAS,EAAE,eAAe;QAC1B,cAAc,EAAE,gBAAgB,CAAC,MAAM;QACvC,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACrC,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;KACjD,CAAC;IAOF,MAAM,OAAO,GAAG,KAAK,IAA2B,EAAE,CACjD,sBAAsB,CAAC,SAAS,CAC/B,MAAM,EACN,IAAI,EACJ,IAAI,CACJ,CAAC;IAcH,IAAI,UAAwB,CAAC;IAC7B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,UAAU,GAAG,OAAO,CAAC;IACtB,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACtB,UAAU,GAAG,MAAM,OAAO,EAAE,CAAC;IAC9B,CAAC;SAAM,CAAC;QACP,UAAU,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvC,OAAO,kBAAkB,CACxB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,cAAc,CACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,yBAAyB;IACrC,YACkB,sBAA0C,EAC1C,0BAA+C,EAQ/C,EAAsB;QATtB,2BAAsB,GAAtB,sBAAsB,CAAoB;QAC1C,+BAA0B,GAA1B,0BAA0B,CAAqB;QAQ/C,OAAE,GAAF,EAAE,CAAoB;IACrC,CAAC;IAEG,KAAK,CAAC,2BAA2B,CACvC,OAAgB,EAChB,GAAa,EACb,IAAkB;QAElB,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;QAE/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SAC1B,CAAC,CAAC,CAAC;QAEJ,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACvD,OAAO,CAAC,GAAG,EACX,KAAK,EACL,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,EAId,OAAO,CACP,CAAC;QAEF,IAAI,kBAAkB,EAAE,CAAC;YAUxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE;oBACN,OAAO,EAAE,cAAc,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;oBACvD,IAAI,EAAE,GAAG;iBACT;aACD,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,EAAE,CAAC;IACR,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC9B,cAAsB,EACtB,KAAa,EACb,GAAW,EACX,cAAuC,EACvC,WAAoC,EACpC,MAAc,EACd,MAAuB,EACvB,eAAwB;QAGxB,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACd,CAAC;QAGD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE;oBACL,cAAc,EAAE,cAAc;oBAC9B,cAAc,EAAE,cAAc;oBAC9B,WAAW,EAAE,WAAW;iBACxB;gBACD,GAAG,EAAE,oBAAoB;aACzB,CAAC,CAAC,CAAC;YAEJ,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAExC,IAAI,CAAC;YACJ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,qBAAqB,CACtD,cAAc,EACd,WAAW,CACX,CAAC;YAMF,MAAM,WAAW,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAE3D,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACpD,IAAI,CAAC,sBAAsB,EAC3B,mBAAmB,CAClB,cAAc,EACd,GAAG,EACH,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW,EACX,GAAG,CACH,EACD,QAAQ,EACR,2BAA2B,CAAC,cAAc,CAAC,EAO3C,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,CACpC,CAAC;YAMF,MAAM,WAAW,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CACvB,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC;YACd,CAAC;YACD,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAEpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC;YAC7D,IAAI,OAAO,EAAE,CAAC;gBACb,oBAAoB,CAAC,eAAe,CAAC,CAAC;gBAKtC,IAAI,CAAC,mBAAmB,CACvB,YAAY,EACZ;oBACC,MAAM;oBACN,QAAQ;oBACR,KAAK;oBACL,GAAG;oBACH,cAAc;oBACd,MAAM;oBACN,WAAW;oBACX,GAAG;iBACH,EACD,MAAM,CACN,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnB,GAAG;gBACH,GAAG,EAAE,wBAAwB;aAC7B,CAAC,CAAC,CAAC;YAEJ,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAYO,mBAAmB,CAC1B,YAAwB,EACxB,GASC,EACD,MAAc;QAEd,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,CAAC;QACjD,MAAM,SAAS,GACd,OAAO,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,QAAQ;YACnD,CAAC,CAAE,GAAG,CAAC,cAAc,CAAC,YAAY,CAAY;YAC9C,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClB,GAAG,EAAE,qBAAqB;YAC1B,IAAI,EAAE;gBACL,QAAQ;gBACR,QAAQ;gBACR,eAAe;gBACf,UAAU,EAAE,YAAY,CAAC,IAAI;gBAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS,EAAE;oBACV,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,EAAE,EAAE,GAAG,CAAC,KAAK;oBACb,SAAS;oBACT,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC;oBACzB,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC;iBACnC;aACD;SACD,CAAC,CAAC,CAAC;QAKJ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;YAGhB,OAAO;QACR,CAAC;QACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAY;YACxB,SAAS,EAAE,WAAW,UAAU,EAAE,EAAE;YACpC,SAAS,EAAE,IAAI,IAAI,EAAE;YAMrB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YACjC,WAAW,EAAE,WAAW,CAAC,YAAY;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,EAAE;YAErB,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,SAAS;YACT,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO;YACP,MAAM,EAAE,kBAAkB,CAAC,mBAAmB;YAC9C,MAAM,EAAE;gBACP,MAAM,EAAE,aAAa,CAAC,WAAW;gBACjC,MAAM,EAAE,YAAY,CAAC,mBAAmB;aACxC;YAKD,QAAQ;YACR,QAAQ;YACR,eAAe;YACf,WAAW,EAAE,mBAAmB,CAAC,YAAY,CAAC;SAI9C,CAAC;QACF,KAAK,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAES,mBAAmB,CAAC,GAAW;QACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAES,qBAAqB,CAC9B,cAAuC,EACvC,WAAoC;QAKpC,MAAM,MAAM,GACX,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,QAAQ,GACb,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,kBAAkB,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE1C,OAAO;YACN,MAAM,EAAE,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACvD,QAAQ,EAAE,QAAQ,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC;IACH,CAAC;IAES,cAAc,CACvB,MAA+B,EAC/B,GAAW;QAEX,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;CACD"}
1
+ {"version":3,"file":"blacklistRequestInspector.js","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import { recordBotScore, recordDetectorTriggered, recordFrictionlessDecision } from "../../metrics.js";
1
2
  import { buildDnsEventUrl } from "../../dnsEventUrl.js";
2
3
  import { getCompositeIpAddress } from "../../../compositeIpAddress.js";
3
- import { recordBotScore, recordDetectorTriggered, recordFrictionlessDecision } from "../../metrics.js";
4
4
  import { getRequestUserScope, normalizeHeadersForMatching } from "../../blacklistRequestInspector.js";
5
5
  import { derivePlatform, deriveTrafficPolicies } from "../../../utils/devicePlatform.js";
6
6
  import { Tasks } from "../../../tasks/tasks.js";
@@ -1,6 +1,6 @@
1
1
  import { validateAddr, validateSiteKey } from "../validateAddress.js";
2
- import { getCompositeIpAddress } from "../../compositeIpAddress.js";
3
2
  import { recordCaptchaIssueError, recordCaptchaIssued } from "../metrics.js";
3
+ import { getCompositeIpAddress } from "../../compositeIpAddress.js";
4
4
  import { getRequestUserScope, normalizeHeadersForMatching } from "../blacklistRequestInspector.js";
5
5
  import { Tasks } from "../../tasks/tasks.js";
6
6
  import { getMaintenanceMode } from "../admin/apiToggleMaintenanceModeEndpoint.js";
@@ -1,6 +1,6 @@
1
1
  import { validateAddr, validateSiteKey } from "../validateAddress.js";
2
- import { getCompositeIpAddress } from "../../compositeIpAddress.js";
3
2
  import { recordCaptchaIssueError, recordCaptchaIssued } from "../metrics.js";
3
+ import { getCompositeIpAddress } from "../../compositeIpAddress.js";
4
4
  import { getRequestUserScope, normalizeHeadersForMatching } from "../blacklistRequestInspector.js";
5
5
  import { renderPuzzleImages, resolvePuzzlePieceSize, resolvePuzzleRenderSettings } from "../../tasks/puzzle/puzzleRenderer.js";
6
6
  import { Tasks } from "../../tasks/tasks.js";
@@ -0,0 +1,32 @@
1
+ import type { Logger } from "@prosopo/logger";
2
+ interface ProfileFrame {
3
+ fn: string;
4
+ url: string;
5
+ line: number;
6
+ selfMs: number;
7
+ pct: number;
8
+ }
9
+ interface ProfileSummary {
10
+ durationMs: number;
11
+ samples: number;
12
+ accountedMs: number;
13
+ idlePct: number;
14
+ top: ProfileFrame[];
15
+ }
16
+ export declare const summariseProfile: (profile: {
17
+ nodes: Array<{
18
+ id: number;
19
+ callFrame: {
20
+ functionName: string;
21
+ url: string;
22
+ lineNumber: number;
23
+ };
24
+ }>;
25
+ samples?: number[];
26
+ timeDeltas?: number[];
27
+ startTime: number;
28
+ endTime: number;
29
+ }, topN: number) => ProfileSummary;
30
+ export declare const startCpuProfiler: (logger: Logger) => (() => void);
31
+ export {};
32
+ //# sourceMappingURL=cpuProfiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpuProfiler.d.ts","sourceRoot":"","sources":["../../src/api/cpuProfiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAiB9C,UAAU,YAAY;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,cAAc;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,YAAY,EAAE,CAAC;CACpB;AAaD,eAAO,MAAM,gBAAgB,YACnB;IACR,KAAK,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;YACrB,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,CAAC;SACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CAChB,QACK,MAAM,KACV,cA+CF,CAAC;AAqDF,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,CAAC,MAAM,IAAI,CA0B5D,CAAC"}