@prosopo/provider 3.2.5 → 3.12.3

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 (52) hide show
  1. package/CHANGELOG.md +578 -0
  2. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +7 -4
  3. package/dist/api/blacklistRequestInspector.js +26 -20
  4. package/dist/api/captcha.js +121 -33
  5. package/dist/api/domainMiddleware.js +8 -8
  6. package/dist/api/headerCheckMiddleware.js +4 -0
  7. package/dist/api/ignoreMiddleware.js +4 -1
  8. package/dist/api/ja4Middleware.js +5 -23
  9. package/dist/api/public.js +26 -3
  10. package/dist/api/verify.js +4 -2
  11. package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +6 -3
  12. package/dist/cjs/api/blacklistRequestInspector.cjs +25 -19
  13. package/dist/cjs/api/captcha.cjs +121 -33
  14. package/dist/cjs/api/domainMiddleware.cjs +8 -8
  15. package/dist/cjs/api/headerCheckMiddleware.cjs +4 -0
  16. package/dist/cjs/api/ignoreMiddleware.cjs +3 -0
  17. package/dist/cjs/api/ja4Middleware.cjs +4 -22
  18. package/dist/cjs/api/public.cjs +26 -3
  19. package/dist/cjs/api/verify.cjs +4 -2
  20. package/dist/cjs/compositeIpAddress.cjs +53 -0
  21. package/dist/cjs/index.cjs +7 -0
  22. package/dist/cjs/pairs.cjs +27 -0
  23. package/dist/cjs/services/ipComparison.cjs +123 -0
  24. package/dist/cjs/services/ipInfo.cjs +87 -0
  25. package/dist/cjs/tasks/captchaManager.cjs +49 -2
  26. package/dist/cjs/tasks/client/clientTasks.cjs +33 -12
  27. package/dist/cjs/tasks/detection/decodePayload.cjs +712 -278
  28. package/dist/cjs/tasks/detection/getBotScore.cjs +14 -3
  29. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +128 -24
  30. package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +17 -0
  31. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +62 -20
  32. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +43 -15
  33. package/dist/cjs/util.cjs +248 -16
  34. package/dist/cjs/utils/hashUserAgent.cjs +10 -0
  35. package/dist/compositeIpAddress.js +53 -0
  36. package/dist/index.js +8 -1
  37. package/dist/pairs.js +27 -0
  38. package/dist/services/ipComparison.js +123 -0
  39. package/dist/services/ipInfo.js +87 -0
  40. package/dist/tasks/captchaManager.js +49 -2
  41. package/dist/tasks/client/clientTasks.js +33 -12
  42. package/dist/tasks/detection/decodePayload.js +712 -278
  43. package/dist/tasks/detection/getBotScore.js +15 -4
  44. package/dist/tasks/frictionless/frictionlessTasks.js +128 -24
  45. package/dist/tasks/frictionless/frictionlessTasksUtils.js +18 -1
  46. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +64 -22
  47. package/dist/tasks/powCaptcha/powTasks.js +44 -16
  48. package/dist/util.js +249 -17
  49. package/dist/utils/hashUserAgent.js +10 -0
  50. package/package.json +28 -25
  51. package/vite.test.config.ts +3 -2
  52. package/vite.threads.test.config.ts +33 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,583 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 3.12.3
4
+ ### Patch Changes
5
+
6
+ - 04d0f1a: weighted random provider selection
7
+ - Updated dependencies [04d0f1a]
8
+ - Updated dependencies [1e3a838]
9
+ - @prosopo/load-balancer@2.8.0
10
+ - @prosopo/config@3.1.20
11
+ - @prosopo/api@3.1.24
12
+ - @prosopo/api-express-router@3.0.25
13
+ - @prosopo/api-route@2.6.28
14
+ - @prosopo/common@3.1.20
15
+ - @prosopo/database@3.4.5
16
+ - @prosopo/datasets@3.0.34
17
+ - @prosopo/env@3.2.13
18
+ - @prosopo/keyring@2.8.27
19
+ - @prosopo/locale@3.1.20
20
+ - @prosopo/types@3.5.3
21
+ - @prosopo/types-database@3.3.5
22
+ - @prosopo/types-env@2.7.38
23
+ - @prosopo/user-access-policy@3.5.19
24
+ - @prosopo/util@3.1.5
25
+ - @prosopo/util-crypto@13.5.22
26
+
27
+ ## 3.12.2
28
+ ### Patch Changes
29
+
30
+ - 5659b24: Release 3.4.4
31
+ - Updated dependencies [f912439]
32
+ - Updated dependencies [5659b24]
33
+ - @prosopo/common@3.1.19
34
+ - @prosopo/api-express-router@3.0.24
35
+ - @prosopo/user-access-policy@3.5.18
36
+ - @prosopo/types-database@3.3.4
37
+ - @prosopo/load-balancer@2.7.12
38
+ - @prosopo/util-crypto@13.5.21
39
+ - @prosopo/api-route@2.6.27
40
+ - @prosopo/types-env@2.7.37
41
+ - @prosopo/database@3.4.4
42
+ - @prosopo/datasets@3.0.33
43
+ - @prosopo/keyring@2.8.26
44
+ - @prosopo/locale@3.1.19
45
+ - @prosopo/types@3.5.2
46
+ - @prosopo/util@3.1.4
47
+ - @prosopo/api@3.1.23
48
+ - @prosopo/env@3.2.12
49
+ - @prosopo/config@3.1.19
50
+
51
+ ## 3.12.1
52
+ ### Patch Changes
53
+
54
+ - 52cd544: Integrity checks
55
+ - b8cc590: New injection methods
56
+ - b117ba3: Hot fix country code
57
+ - 50c4120: Release 3.4.3
58
+ - Updated dependencies [52cd544]
59
+ - Updated dependencies [c72ecbd]
60
+ - Updated dependencies [b117ba3]
61
+ - Updated dependencies [50c4120]
62
+ - @prosopo/types@3.5.1
63
+ - @prosopo/database@3.4.3
64
+ - @prosopo/api-express-router@3.0.23
65
+ - @prosopo/user-access-policy@3.5.17
66
+ - @prosopo/types-database@3.3.3
67
+ - @prosopo/load-balancer@2.7.11
68
+ - @prosopo/util-crypto@13.5.20
69
+ - @prosopo/api-route@2.6.26
70
+ - @prosopo/types-env@2.7.36
71
+ - @prosopo/datasets@3.0.32
72
+ - @prosopo/keyring@2.8.25
73
+ - @prosopo/common@3.1.18
74
+ - @prosopo/locale@3.1.18
75
+ - @prosopo/util@3.1.3
76
+ - @prosopo/api@3.1.22
77
+ - @prosopo/env@3.2.11
78
+ - @prosopo/config@3.1.18
79
+
80
+ ## 3.12.0
81
+ ### Minor Changes
82
+
83
+ - e20ad6b: IP country overrides
84
+
85
+ ### Patch Changes
86
+
87
+ - 618703f: Release 3.4.2
88
+ - cf6c8a4: Hot fix the request logger
89
+ - Updated dependencies [618703f]
90
+ - Updated dependencies [e20ad6b]
91
+ - @prosopo/api-express-router@3.0.22
92
+ - @prosopo/user-access-policy@3.5.16
93
+ - @prosopo/types-database@3.3.2
94
+ - @prosopo/load-balancer@2.7.10
95
+ - @prosopo/util-crypto@13.5.19
96
+ - @prosopo/api-route@2.6.25
97
+ - @prosopo/types-env@2.7.35
98
+ - @prosopo/database@3.4.2
99
+ - @prosopo/datasets@3.0.31
100
+ - @prosopo/keyring@2.8.24
101
+ - @prosopo/common@3.1.17
102
+ - @prosopo/locale@3.1.17
103
+ - @prosopo/types@3.5.0
104
+ - @prosopo/util@3.1.2
105
+ - @prosopo/api@3.1.21
106
+ - @prosopo/env@3.2.10
107
+ - @prosopo/config@3.1.17
108
+
109
+ ## 3.11.1
110
+ ### Patch Changes
111
+
112
+ - 7e5613a: Always store image rounds count
113
+ - 11303d9: feat/pluggable-redis
114
+ - b6794f8: Timestamp decay fn
115
+ - 11303d9: Release 3.4.0
116
+ - 18cb28b: Release 3.4.1
117
+ - 11303d9: feat/pluggable-redis
118
+ - Updated dependencies [11303d9]
119
+ - Updated dependencies [b6794f8]
120
+ - Updated dependencies [11303d9]
121
+ - Updated dependencies [bac2d91]
122
+ - Updated dependencies [18cb28b]
123
+ - Updated dependencies [11303d9]
124
+ - @prosopo/user-access-policy@3.5.15
125
+ - @prosopo/database@3.4.1
126
+ - @prosopo/types-database@3.3.1
127
+ - @prosopo/api-express-router@3.0.21
128
+ - @prosopo/load-balancer@2.7.9
129
+ - @prosopo/util-crypto@13.5.18
130
+ - @prosopo/api-route@2.6.24
131
+ - @prosopo/types-env@2.7.34
132
+ - @prosopo/datasets@3.0.30
133
+ - @prosopo/keyring@2.8.23
134
+ - @prosopo/common@3.1.16
135
+ - @prosopo/locale@3.1.16
136
+ - @prosopo/types@3.4.1
137
+ - @prosopo/util@3.1.1
138
+ - @prosopo/api@3.1.20
139
+ - @prosopo/env@3.2.9
140
+ - @prosopo/config@3.1.16
141
+
142
+ ## 3.11.0
143
+ ### Minor Changes
144
+
145
+ - 6768f14: Update salt
146
+
147
+ ### Patch Changes
148
+
149
+ - f3f7aec: Release 3.4.0
150
+ - Updated dependencies [f3f7aec]
151
+ - Updated dependencies [6768f14]
152
+ - @prosopo/api-express-router@3.0.20
153
+ - @prosopo/user-access-policy@3.5.14
154
+ - @prosopo/types-database@3.3.0
155
+ - @prosopo/load-balancer@2.7.8
156
+ - @prosopo/util-crypto@13.5.17
157
+ - @prosopo/api-route@2.6.23
158
+ - @prosopo/types-env@2.7.33
159
+ - @prosopo/database@3.4.0
160
+ - @prosopo/datasets@3.0.29
161
+ - @prosopo/keyring@2.8.22
162
+ - @prosopo/common@3.1.15
163
+ - @prosopo/locale@3.1.15
164
+ - @prosopo/types@3.4.0
165
+ - @prosopo/util@3.1.0
166
+ - @prosopo/api@3.1.19
167
+ - @prosopo/env@3.2.8
168
+ - @prosopo/config@3.1.15
169
+
170
+ ## 3.10.0
171
+ ### Minor Changes
172
+
173
+ - 97edf3f: Adding dom manip checks
174
+
175
+ ### Patch Changes
176
+
177
+ - Release 3.3.1
178
+ - 0824221: Release 3.2.4
179
+ - Updated dependencies [97edf3f]
180
+ - Updated dependencies
181
+ - Updated dependencies [0824221]
182
+ - @prosopo/types@3.3.0
183
+ - @prosopo/api-express-router@3.0.19
184
+ - @prosopo/user-access-policy@3.5.13
185
+ - @prosopo/types-database@3.2.2
186
+ - @prosopo/load-balancer@2.7.7
187
+ - @prosopo/util-crypto@13.5.16
188
+ - @prosopo/api-route@2.6.22
189
+ - @prosopo/types-env@2.7.32
190
+ - @prosopo/database@3.3.2
191
+ - @prosopo/datasets@3.0.28
192
+ - @prosopo/keyring@2.8.21
193
+ - @prosopo/common@3.1.14
194
+ - @prosopo/locale@3.1.14
195
+ - @prosopo/util@3.0.17
196
+ - @prosopo/api@3.1.18
197
+ - @prosopo/env@3.2.7
198
+ - @prosopo/config@3.1.14
199
+
200
+ ## 3.9.1
201
+ ### Patch Changes
202
+
203
+ - 5137f01: Update pow record at verify
204
+ - bebb855: ip parsing
205
+ - 509be28: Fix IP conditions logic
206
+ - 509be28: Fix require all conditions logic
207
+ - 008d112: Release 3.3.0
208
+ - Updated dependencies [5137f01]
209
+ - Updated dependencies [0555cd8]
210
+ - Updated dependencies [509be28]
211
+ - Updated dependencies [008d112]
212
+ - @prosopo/types-database@3.2.1
213
+ - @prosopo/database@3.3.1
214
+ - @prosopo/types@3.2.1
215
+ - @prosopo/api-express-router@3.0.18
216
+ - @prosopo/user-access-policy@3.5.12
217
+ - @prosopo/load-balancer@2.7.6
218
+ - @prosopo/util-crypto@13.5.15
219
+ - @prosopo/api-route@2.6.21
220
+ - @prosopo/types-env@2.7.31
221
+ - @prosopo/datasets@3.0.27
222
+ - @prosopo/keyring@2.8.20
223
+ - @prosopo/common@3.1.13
224
+ - @prosopo/locale@3.1.13
225
+ - @prosopo/util@3.0.16
226
+ - @prosopo/api@3.1.17
227
+ - @prosopo/env@3.2.6
228
+ - @prosopo/config@3.1.13
229
+
230
+ ## 3.9.0
231
+ ### Minor Changes
232
+
233
+ - cf48565: Store additional details. Remove duplicate indexes.
234
+ - 260de39: Fix indexes so that stuff properly expires
235
+
236
+ ### Patch Changes
237
+
238
+ - 0824221: Release 3.2.4
239
+ - Updated dependencies [cf48565]
240
+ - Updated dependencies [d644c04]
241
+ - Updated dependencies [0824221]
242
+ - Updated dependencies [260de39]
243
+ - @prosopo/types-database@3.2.0
244
+ - @prosopo/database@3.3.0
245
+ - @prosopo/types@3.2.0
246
+ - @prosopo/api-express-router@3.0.17
247
+ - @prosopo/user-access-policy@3.5.11
248
+ - @prosopo/load-balancer@2.7.5
249
+ - @prosopo/util-crypto@13.5.14
250
+ - @prosopo/api-route@2.6.20
251
+ - @prosopo/types-env@2.7.30
252
+ - @prosopo/datasets@3.0.26
253
+ - @prosopo/keyring@2.8.19
254
+ - @prosopo/common@3.1.12
255
+ - @prosopo/locale@3.1.12
256
+ - @prosopo/util@3.0.15
257
+ - @prosopo/api@3.1.16
258
+ - @prosopo/env@3.2.5
259
+ - @prosopo/config@3.1.12
260
+
261
+ ## 3.8.4
262
+ ### Patch Changes
263
+
264
+ - 0d1a33e: Adding ipcomparison service with user features
265
+ - 0d1a33e: Adding ip comparison service
266
+ - 1a23649: Release 3.2.3
267
+ - Updated dependencies [0d1a33e]
268
+ - Updated dependencies [0d1a33e]
269
+ - Updated dependencies [1a23649]
270
+ - @prosopo/types-database@3.1.5
271
+ - @prosopo/locale@3.1.11
272
+ - @prosopo/types@3.1.4
273
+ - @prosopo/api-express-router@3.0.16
274
+ - @prosopo/user-access-policy@3.5.10
275
+ - @prosopo/load-balancer@2.7.4
276
+ - @prosopo/util-crypto@13.5.13
277
+ - @prosopo/api-route@2.6.19
278
+ - @prosopo/types-env@2.7.29
279
+ - @prosopo/database@3.2.4
280
+ - @prosopo/datasets@3.0.25
281
+ - @prosopo/keyring@2.8.18
282
+ - @prosopo/common@3.1.11
283
+ - @prosopo/util@3.0.14
284
+ - @prosopo/api@3.1.15
285
+ - @prosopo/env@3.2.4
286
+ - @prosopo/config@3.1.11
287
+
288
+ ## 3.8.3
289
+ ### Patch Changes
290
+
291
+ - 36b23e0: Fix entropy. Fix api call. Persist ja4 through logs.
292
+ - 657a827: Release 3.2.2
293
+ - 4aac849: Do not error when IPs don't match
294
+ - Updated dependencies [36b23e0]
295
+ - Updated dependencies [a8a9251]
296
+ - Updated dependencies [657a827]
297
+ - @prosopo/api@3.1.14
298
+ - @prosopo/types-database@3.1.4
299
+ - @prosopo/api-express-router@3.0.15
300
+ - @prosopo/user-access-policy@3.5.9
301
+ - @prosopo/load-balancer@2.7.3
302
+ - @prosopo/util-crypto@13.5.12
303
+ - @prosopo/api-route@2.6.18
304
+ - @prosopo/types-env@2.7.28
305
+ - @prosopo/database@3.2.3
306
+ - @prosopo/datasets@3.0.24
307
+ - @prosopo/keyring@2.8.17
308
+ - @prosopo/common@3.1.10
309
+ - @prosopo/locale@3.1.10
310
+ - @prosopo/types@3.1.3
311
+ - @prosopo/util@3.0.13
312
+ - @prosopo/env@3.2.3
313
+ - @prosopo/config@3.1.10
314
+
315
+ ## 3.8.2
316
+ ### Patch Changes
317
+
318
+ - 4440947: fix type-only tsc compilation
319
+ - 7bdaca6: Release 3.2.1
320
+ - 1249ce0: Be more lenient with random provider selection
321
+ - Updated dependencies [4440947]
322
+ - Updated dependencies [7bdaca6]
323
+ - Updated dependencies [809b984]
324
+ - Updated dependencies [1249ce0]
325
+ - Updated dependencies [809b984]
326
+ - @prosopo/api-express-router@3.0.14
327
+ - @prosopo/user-access-policy@3.5.8
328
+ - @prosopo/types-database@3.1.3
329
+ - @prosopo/load-balancer@2.7.2
330
+ - @prosopo/util-crypto@13.5.11
331
+ - @prosopo/api-route@2.6.17
332
+ - @prosopo/types-env@2.7.27
333
+ - @prosopo/database@3.2.2
334
+ - @prosopo/datasets@3.0.23
335
+ - @prosopo/keyring@2.8.16
336
+ - @prosopo/common@3.1.9
337
+ - @prosopo/locale@3.1.9
338
+ - @prosopo/types@3.1.2
339
+ - @prosopo/util@3.0.12
340
+ - @prosopo/api@3.1.13
341
+ - @prosopo/env@3.2.2
342
+ - @prosopo/config@3.1.9
343
+
344
+ ## 3.8.1
345
+ ### Patch Changes
346
+
347
+ - 1f980c4: Fix types mismatch in decryption
348
+ - 6fe8570: Release 3.2.0
349
+ - Updated dependencies [1f980c4]
350
+ - Updated dependencies [6fe8570]
351
+ - @prosopo/load-balancer@2.7.1
352
+ - @prosopo/types@3.1.1
353
+ - @prosopo/api-express-router@3.0.13
354
+ - @prosopo/user-access-policy@3.5.7
355
+ - @prosopo/types-database@3.1.2
356
+ - @prosopo/util-crypto@13.5.10
357
+ - @prosopo/api-route@2.6.16
358
+ - @prosopo/types-env@2.7.26
359
+ - @prosopo/database@3.2.1
360
+ - @prosopo/datasets@3.0.22
361
+ - @prosopo/keyring@2.8.15
362
+ - @prosopo/common@3.1.8
363
+ - @prosopo/locale@3.1.8
364
+ - @prosopo/util@3.0.11
365
+ - @prosopo/api@3.1.12
366
+ - @prosopo/env@3.2.1
367
+ - @prosopo/config@3.1.8
368
+
369
+ ## 3.8.0
370
+ ### Minor Changes
371
+
372
+ - 8bdc7f0: Using detector to select provider
373
+
374
+ ### Patch Changes
375
+
376
+ - f304be9: Release 3.1.13
377
+ - Updated dependencies [f304be9]
378
+ - Updated dependencies [8bdc7f0]
379
+ - @prosopo/api-express-router@3.0.12
380
+ - @prosopo/user-access-policy@3.5.6
381
+ - @prosopo/types-database@3.1.1
382
+ - @prosopo/load-balancer@2.7.0
383
+ - @prosopo/util-crypto@13.5.9
384
+ - @prosopo/api-route@2.6.15
385
+ - @prosopo/types-env@2.7.25
386
+ - @prosopo/database@3.2.0
387
+ - @prosopo/datasets@3.0.21
388
+ - @prosopo/keyring@2.8.14
389
+ - @prosopo/common@3.1.7
390
+ - @prosopo/locale@3.1.7
391
+ - @prosopo/types@3.1.0
392
+ - @prosopo/util@3.0.10
393
+ - @prosopo/api@3.1.11
394
+ - @prosopo/env@3.2.0
395
+ - @prosopo/config@3.1.7
396
+
397
+ ## 3.7.0
398
+ ### Minor Changes
399
+
400
+ - 9b92339: fix/ipv6-in-captcha-flow
401
+
402
+ ### Patch Changes
403
+
404
+ - a07db04: Release 3.1.12
405
+ - ebb0168: Allowing for simple pattern matching with domains
406
+ - Updated dependencies [9b92339]
407
+ - Updated dependencies [9eed772]
408
+ - Updated dependencies [a07db04]
409
+ - Updated dependencies [ebb0168]
410
+ - @prosopo/types-database@3.1.0
411
+ - @prosopo/database@3.1.0
412
+ - @prosopo/datasets@3.0.20
413
+ - @prosopo/config@3.1.6
414
+ - @prosopo/api-express-router@3.0.11
415
+ - @prosopo/user-access-policy@3.5.5
416
+ - @prosopo/types-env@2.7.24
417
+ - @prosopo/api@3.1.10
418
+ - @prosopo/env@3.1.11
419
+ - @prosopo/util@3.0.9
420
+ - @prosopo/api-route@2.6.14
421
+ - @prosopo/common@3.1.6
422
+ - @prosopo/keyring@2.8.13
423
+ - @prosopo/load-balancer@2.6.21
424
+ - @prosopo/locale@3.1.6
425
+ - @prosopo/types@3.0.10
426
+ - @prosopo/util-crypto@13.5.8
427
+
428
+ ## 3.6.2
429
+ ### Patch Changes
430
+
431
+ - Updated dependencies [e64160c]
432
+ - Updated dependencies [553025d]
433
+ - @prosopo/database@3.0.19
434
+ - @prosopo/user-access-policy@3.5.4
435
+ - @prosopo/env@3.1.10
436
+ - @prosopo/api@3.1.9
437
+ - @prosopo/types-database@3.0.19
438
+ - @prosopo/api-express-router@3.0.10
439
+ - @prosopo/datasets@3.0.19
440
+ - @prosopo/types-env@2.7.23
441
+
442
+ ## 3.6.1
443
+ ### Patch Changes
444
+
445
+ - d8e855c: Adding checks for IP consistency throughout the verification process
446
+ - 6960643: lint detect missing and unneccessary imports
447
+ - Updated dependencies [d8e855c]
448
+ - Updated dependencies [6960643]
449
+ - @prosopo/types-database@3.0.18
450
+ - @prosopo/locale@3.1.5
451
+ - @prosopo/api-express-router@3.0.9
452
+ - @prosopo/user-access-policy@3.5.3
453
+ - @prosopo/load-balancer@2.6.20
454
+ - @prosopo/util-crypto@13.5.7
455
+ - @prosopo/api-route@2.6.13
456
+ - @prosopo/types-env@2.7.22
457
+ - @prosopo/database@3.0.18
458
+ - @prosopo/datasets@3.0.18
459
+ - @prosopo/keyring@2.8.12
460
+ - @prosopo/common@3.1.5
461
+ - @prosopo/types@3.0.9
462
+ - @prosopo/util@3.0.8
463
+ - @prosopo/api@3.1.8
464
+ - @prosopo/env@3.1.9
465
+
466
+ ## 3.6.0
467
+ ### Minor Changes
468
+
469
+ - dc5ce11: Use out of the box JA4 impl
470
+
471
+ ### Patch Changes
472
+
473
+ - 6b98f67: Fix recency checker
474
+ - Updated dependencies [30e7d4d]
475
+ - @prosopo/datasets@3.0.17
476
+ - @prosopo/config@3.1.5
477
+ - @prosopo/api-express-router@3.0.8
478
+ - @prosopo/api-route@2.6.12
479
+ - @prosopo/common@3.1.4
480
+ - @prosopo/database@3.0.17
481
+ - @prosopo/env@3.1.8
482
+ - @prosopo/keyring@2.8.11
483
+ - @prosopo/load-balancer@2.6.19
484
+ - @prosopo/types@3.0.8
485
+ - @prosopo/types-database@3.0.17
486
+ - @prosopo/types-env@2.7.21
487
+ - @prosopo/user-access-policy@3.5.2
488
+ - @prosopo/util@3.0.7
489
+ - @prosopo/util-crypto@13.5.6
490
+
491
+ ## 3.5.0
492
+ ### Minor Changes
493
+
494
+ - 3834a10: Proper session validation
495
+
496
+ ### Patch Changes
497
+
498
+ - 0c865a7: Add missing var
499
+ - 1f3a02f: Release 3.1.8
500
+ - Updated dependencies [1f3a02f]
501
+ - @prosopo/user-access-policy@3.5.1
502
+ - @prosopo/types-database@3.0.16
503
+ - @prosopo/types-env@2.7.20
504
+ - @prosopo/database@3.0.16
505
+ - @prosopo/datasets@3.0.16
506
+ - @prosopo/env@3.1.7
507
+
508
+ ## 3.4.0
509
+ ### Minor Changes
510
+
511
+ - e0628d9: Make sure rules don't leak between IPs
512
+
513
+ ### Patch Changes
514
+
515
+ - 8cc6551: x
516
+ - Updated dependencies [926df8a]
517
+ - Updated dependencies [e0628d9]
518
+ - @prosopo/datasets@3.0.15
519
+ - @prosopo/user-access-policy@3.5.0
520
+ - @prosopo/database@3.0.15
521
+ - @prosopo/types-database@3.0.15
522
+ - @prosopo/env@3.1.6
523
+ - @prosopo/types-env@2.7.19
524
+
525
+ ## 3.3.1
526
+ ### Patch Changes
527
+
528
+ - a49b538: Extra tests
529
+ - e090e2f: More tests
530
+ - Updated dependencies [44ffda2]
531
+ - Updated dependencies [a49b538]
532
+ - Updated dependencies [e090e2f]
533
+ - @prosopo/config@3.1.4
534
+ - @prosopo/user-access-policy@3.4.1
535
+ - @prosopo/common@3.1.3
536
+ - @prosopo/api-express-router@3.0.7
537
+ - @prosopo/api-route@2.6.11
538
+ - @prosopo/database@3.0.14
539
+ - @prosopo/datasets@3.0.14
540
+ - @prosopo/env@3.1.5
541
+ - @prosopo/keyring@2.8.10
542
+ - @prosopo/types@3.0.7
543
+ - @prosopo/types-database@3.0.14
544
+ - @prosopo/types-env@2.7.18
545
+ - @prosopo/util@3.0.6
546
+ - @prosopo/util-crypto@13.5.5
547
+
548
+ ## 3.3.0
549
+ ### Minor Changes
550
+
551
+ - df4e030: Revising UAP rule getters
552
+
553
+ ### Patch Changes
554
+
555
+ - 91bbe87: configure typecheck before bundle for vue packages
556
+ - 91bbe87: make typecheck script always recompile
557
+ - 346e092: NODE_ENV default to "development"
558
+ - 5d36e05: remove tsc --force
559
+ - Updated dependencies [828066d]
560
+ - Updated dependencies [df4e030]
561
+ - Updated dependencies [91bbe87]
562
+ - Updated dependencies [3ef4fd2]
563
+ - Updated dependencies [91bbe87]
564
+ - Updated dependencies [346e092]
565
+ - Updated dependencies [5d36e05]
566
+ - @prosopo/types-database@3.0.13
567
+ - @prosopo/api-route@2.6.10
568
+ - @prosopo/types-env@2.7.17
569
+ - @prosopo/database@3.0.13
570
+ - @prosopo/common@3.1.2
571
+ - @prosopo/types@3.0.6
572
+ - @prosopo/env@3.1.4
573
+ - @prosopo/config@3.1.3
574
+ - @prosopo/user-access-policy@3.4.0
575
+ - @prosopo/api-express-router@3.0.6
576
+ - @prosopo/util-crypto@13.5.4
577
+ - @prosopo/datasets@3.0.13
578
+ - @prosopo/keyring@2.8.9
579
+ - @prosopo/util@3.0.5
580
+
3
581
  ## 3.2.5
4
582
  ### Patch Changes
5
583
 
@@ -1,6 +1,6 @@
1
1
  import { ApiEndpointResponseStatus } from "@prosopo/api-route";
2
2
  import { getLogger } from "@prosopo/common";
3
- import { UpdateDetectorKeyBody } from "@prosopo/types";
3
+ import { RemoveDetectorKeyBodySpec } from "@prosopo/types";
4
4
  class ApiRemoveDetectorKeyEndpoint {
5
5
  constructor(clientTaskManager) {
6
6
  this.clientTaskManager = clientTaskManager;
@@ -8,10 +8,13 @@ class ApiRemoveDetectorKeyEndpoint {
8
8
  async processRequest(args, logger) {
9
9
  logger = logger || getLogger("info", import.meta.url);
10
10
  try {
11
- const { detectorKey } = args;
11
+ const { detectorKey, expirationInSeconds } = args;
12
12
  logger = logger || getLogger("info", import.meta.url);
13
13
  logger.info(() => ({ msg: "Removing detector key" }));
14
- await this.clientTaskManager.removeDetectorKey(detectorKey);
14
+ await this.clientTaskManager.removeDetectorKey(
15
+ detectorKey,
16
+ expirationInSeconds
17
+ );
15
18
  return {
16
19
  status: ApiEndpointResponseStatus.SUCCESS
17
20
  };
@@ -24,7 +27,7 @@ class ApiRemoveDetectorKeyEndpoint {
24
27
  }
25
28
  }
26
29
  getRequestArgsSchema() {
27
- return UpdateDetectorKeyBody;
30
+ return RemoveDetectorKeyBodySpec;
28
31
  }
29
32
  }
30
33
  export {
@@ -1,5 +1,5 @@
1
1
  import { ApiPrefix } from "@prosopo/types";
2
- import { ScopeMatch, userScopeInputSchema, AccessPolicyType } from "@prosopo/user-access-policy";
2
+ import { userScopeInputSchema, ScopeMatch, AccessPolicyType } from "@prosopo/user-access-policy";
3
3
  import { uniqueSubsets } from "@prosopo/util";
4
4
  const getRequestUserScope = (requestHeaders, ja4, ip, user) => {
5
5
  const userAgent = requestHeaders["user-agent"] ? requestHeaders["user-agent"].toString() : void 0;
@@ -8,13 +8,12 @@ const getRequestUserScope = (requestHeaders, ja4, ip, user) => {
8
8
  ...ja4 && { ja4Hash: ja4 },
9
9
  ...userAgent && { userAgent },
10
10
  ...ip && { ip }
11
+ // TODO more things with headers
11
12
  };
12
13
  };
13
- const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clientId) => {
14
- const userScopeKeys = Object.keys(userScope).filter(
15
- (key) => userScope[key] !== void 0
16
- );
17
- const prioritisedUserScopes = uniqueSubsets(userScopeKeys).map(
14
+ const getPrioritisedUserScopes = (userScope) => {
15
+ const userScopeKeys = Object.keys(userScope);
16
+ return uniqueSubsets(userScopeKeys).map(
18
17
  (subset) => subset.reduce(
19
18
  (acc, key) => {
20
19
  acc[key] = userScope[key];
@@ -22,22 +21,29 @@ const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clien
22
21
  },
23
22
  {}
24
23
  )
25
- ).filter((us) => Object.keys(us).length > 0).filter((us) => Object.values(us).some((value) => value !== void 0));
24
+ );
25
+ };
26
+ const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clientId) => {
27
+ const prioritisedUserScopes = getPrioritisedUserScopes(userScope);
26
28
  const policyPromises = [];
27
- for (const clientOrUndefined of [clientId, void 0]) {
29
+ const clientLoop = clientId ? [clientId, void 0] : [void 0];
30
+ for (const clientOrUndefined of clientLoop) {
28
31
  for (const scope of prioritisedUserScopes) {
29
- policyPromises.push(
30
- userAccessRulesStorage.findRules({
31
- ...clientOrUndefined && {
32
- policyScope: {
33
- clientId: clientOrUndefined
34
- }
35
- },
36
- policyScopeMatch: ScopeMatch.Exact,
37
- userScope: userScopeInputSchema.parse(scope),
38
- userScopeMatch: ScopeMatch.Exact
39
- })
40
- );
32
+ if (Object.values(scope).every((value) => value === void 0)) {
33
+ continue;
34
+ }
35
+ const parsedUserScope = userScopeInputSchema.parse(scope);
36
+ const filter = {
37
+ ...clientOrUndefined && {
38
+ policyScope: {
39
+ clientId: clientOrUndefined
40
+ }
41
+ },
42
+ policyScopeMatch: ScopeMatch.Exact,
43
+ userScope: parsedUserScope,
44
+ userScopeMatch: ScopeMatch.Exact
45
+ };
46
+ policyPromises.push(userAccessRulesStorage.findRules(filter, true, true));
41
47
  }
42
48
  }
43
49
  return (await Promise.all(policyPromises)).flat();