@prosopo/user-access-policy 3.14.15 → 3.14.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$cjs.log +2 -2
- package/.turbo/turbo-build$colon$tsc.log +13 -13
- package/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +27 -0
- package/dist/cjs/ruleInput/policyInput.cjs +1 -1
- package/dist/ruleInput/policyInput.d.ts +2 -2
- package/dist/ruleInput/policyInput.d.ts.map +1 -1
- package/dist/ruleInput/policyInput.js +2 -2
- package/dist/ruleInput/policyInput.js.map +1 -1
- package/package.json +4 -4
|
@@ -57,7 +57,7 @@ dist/cjs/api/read/findRuleIds.cjs 1.58 kB │ gzip: 0.66 kB
|
|
|
57
57
|
dist/cjs/mongoose/mongooseRuleSchema.cjs 1.90 kB │ gzip: 0.47 kB
|
|
58
58
|
dist/cjs/redis/redisClient.cjs 1.92 kB │ gzip: 0.72 kB
|
|
59
59
|
dist/cjs/classifyOs.cjs 2.04 kB │ gzip: 1.05 kB
|
|
60
|
-
dist/cjs/ruleInput/policyInput.cjs 2.
|
|
60
|
+
dist/cjs/ruleInput/policyInput.cjs 2.17 kB │ gzip: 0.81 kB
|
|
61
61
|
dist/cjs/ruleInput/ruleInput.cjs 2.28 kB │ gzip: 0.69 kB
|
|
62
62
|
dist/cjs/matchedRule.cjs 2.29 kB │ gzip: 1.03 kB
|
|
63
63
|
dist/cjs/.export.cjs 2.44 kB │ gzip: 0.57 kB
|
|
@@ -74,4 +74,4 @@ dist/cjs/redis/reader/redisRulesSplitQuery.cjs 5.17 kB │ gzip: 2.17 kB
|
|
|
74
74
|
dist/cjs/headerMatch.cjs 5.74 kB │ gzip: 2.25 kB
|
|
75
75
|
dist/cjs/redis/reader/redisRulesReader.cjs 11.87 kB │ gzip: 2.88 kB
|
|
76
76
|
|
|
77
|
-
[32m✓ built in
|
|
77
|
+
[32m✓ built in 137ms[39m
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
$ tsc --build --verbose
|
|
2
|
-
|
|
2
|
+
11:33:29 AM - Projects in this build:
|
|
3
3
|
* ../../dev/config/tsconfig.json
|
|
4
4
|
* ../util/tsconfig.json
|
|
5
5
|
* ../locale/tsconfig.json
|
|
@@ -12,27 +12,27 @@ $ tsc --build --verbose
|
|
|
12
12
|
* ../api/tsconfig.json
|
|
13
13
|
* tsconfig.json
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
11:33:29 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
11:33:29 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
11:33:29 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
11:33:29 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
11:33:29 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
11:33:29 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
11:33:29 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/tsconfig.tsbuildinfo'
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
11:33:29 AM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/tests/apiRoute.unit.test.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
11:33:30 AM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
11:33:30 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
11:33:30 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
11:33:30 AM - Building project '/home/runner/work/captcha/captcha/packages/user-access-policy/tsconfig.json'...
|
|
38
38
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -59,7 +59,7 @@ dist/.export.js 1.43 kB │ gzip: 0.42 kB
|
|
|
59
59
|
dist/redis/redisClient.js 1.78 kB │ gzip: 0.68 kB
|
|
60
60
|
dist/ruleInput/ruleInput.js 1.80 kB │ gzip: 0.63 kB
|
|
61
61
|
dist/mongoose/mongooseRuleSchema.js 1.85 kB │ gzip: 0.45 kB
|
|
62
|
-
dist/ruleInput/policyInput.js 1.
|
|
62
|
+
dist/ruleInput/policyInput.js 1.93 kB │ gzip: 0.76 kB
|
|
63
63
|
dist/classifyOs.js 1.98 kB │ gzip: 1.03 kB
|
|
64
64
|
dist/api/rulesApiClient.js 2.12 kB │ gzip: 0.62 kB
|
|
65
65
|
dist/matchedRule.js 2.22 kB │ gzip: 1.00 kB
|
|
@@ -75,4 +75,4 @@ dist/redis/reader/redisRulesSplitQuery.js 4.98 kB │ gzip: 2.14 kB
|
|
|
75
75
|
dist/headerMatch.js 5.51 kB │ gzip: 2.22 kB
|
|
76
76
|
dist/redis/reader/redisRulesReader.js 10.45 kB │ gzip: 2.75 kB
|
|
77
77
|
|
|
78
|
-
[32m✓ built in
|
|
78
|
+
[32m✓ built in 108ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @prosopo/user-access-policy
|
|
2
2
|
|
|
3
|
+
## 3.14.17
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- Updated dependencies [4570692]
|
|
7
|
+
- @prosopo/api@4.6.0
|
|
8
|
+
- @prosopo/types@5.15.0
|
|
9
|
+
- @prosopo/common@3.1.64
|
|
10
|
+
|
|
11
|
+
## 3.14.16
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- b299a91: An audio challenge, offered only as an accessibility alternative, like reCAPTCHA's audio option. The user hears a short sequence of spoken digits and types them in.
|
|
15
|
+
|
|
16
|
+
It is off by default and needs two switches. Prosopo has to turn on the `captchaTypeFeatureFlags.audio` feature flag for the site, which the site owner cannot do, and the site owner has to set `audioAccessibilityEnabled`. When both are on, image, puzzle and icon-order challenges show a "Use audio instead" button. Pressing it swaps the visual challenge for the audio one. After a wrong answer the user stays on audio and gets a fresh clip.
|
|
17
|
+
|
|
18
|
+
Audio is never a captcha type that can be selected or routed to. A site's `captchaType`, traffic-filter categories, Restrict rules and the site-key CLI all reject it, and routing, PoW escalation and the severity tiers leave it out. The provider only serves audio against the visual session the user was already given, and only on a site with both switches on; any other audio request is refused before the session is used up, and a request without a session is always refused.
|
|
19
|
+
|
|
20
|
+
The spoken digits are synthesised by `@prosopo/audio-assets`, so there is no recorded set of clips to collect. The answer never leaves the provider, and a challenge can be submitted and verified only once, even under concurrent requests. `@prosopo/procaptcha-audio` is the widget. It and the "Use audio instead" button are built on the shared widget code in `@prosopo/procaptcha-common`, and the provider side is built on the shared interactive-captcha code that puzzle and icon-order use.
|
|
21
|
+
|
|
22
|
+
The demo playground has audio pages, and there is an end-to-end test for it.
|
|
23
|
+
- Updated dependencies [b299a91]
|
|
24
|
+
- Updated dependencies [e13d7a8]
|
|
25
|
+
- Updated dependencies [270395d]
|
|
26
|
+
- @prosopo/types@5.14.0
|
|
27
|
+
- @prosopo/api@4.5.0
|
|
28
|
+
- @prosopo/common@3.1.63
|
|
29
|
+
|
|
3
30
|
## 3.14.15
|
|
4
31
|
### Patch Changes
|
|
5
32
|
|
|
@@ -5,7 +5,7 @@ let _prosopo_types = require("@prosopo/types");
|
|
|
5
5
|
//#region src/ruleInput/policyInput.ts
|
|
6
6
|
var accessPolicyInputShape = zod.z.object({
|
|
7
7
|
type: zod.z.nativeEnum(require_rule.AccessPolicyType),
|
|
8
|
-
captchaType: _prosopo_types.
|
|
8
|
+
captchaType: _prosopo_types.SelectableCaptchaTypeSchema.optional(),
|
|
9
9
|
description: zod.z.coerce.string().optional(),
|
|
10
10
|
solvedImagesCount: zod.z.coerce.number().optional(),
|
|
11
11
|
imageThreshold: zod.z.coerce.number().optional(),
|
|
@@ -3,7 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { type AccessPolicy, AccessPolicyType } from "#policy/rule.js";
|
|
4
4
|
export declare const accessPolicyInputShape: z.ZodObject<{
|
|
5
5
|
type: z.ZodNativeEnum<typeof AccessPolicyType>;
|
|
6
|
-
captchaType: z.ZodOptional<z.ZodNativeEnum<typeof import("@prosopo/types").CaptchaType>>;
|
|
6
|
+
captchaType: z.ZodOptional<z.ZodEffects<z.ZodNativeEnum<typeof import("@prosopo/types").CaptchaType>, import("@prosopo/types").CaptchaType, import("@prosopo/types").CaptchaType>>;
|
|
7
7
|
description: z.ZodOptional<z.ZodString>;
|
|
8
8
|
solvedImagesCount: z.ZodOptional<z.ZodNumber>;
|
|
9
9
|
imageThreshold: z.ZodOptional<z.ZodNumber>;
|
|
@@ -37,7 +37,7 @@ export declare const accessPolicyInputShape: z.ZodObject<{
|
|
|
37
37
|
}>;
|
|
38
38
|
export declare const accessPolicyInput: z.ZodEffects<z.ZodObject<{
|
|
39
39
|
type: z.ZodNativeEnum<typeof AccessPolicyType>;
|
|
40
|
-
captchaType: z.ZodOptional<z.ZodNativeEnum<typeof import("@prosopo/types").CaptchaType>>;
|
|
40
|
+
captchaType: z.ZodOptional<z.ZodEffects<z.ZodNativeEnum<typeof import("@prosopo/types").CaptchaType>, import("@prosopo/types").CaptchaType, import("@prosopo/types").CaptchaType>>;
|
|
41
41
|
description: z.ZodOptional<z.ZodString>;
|
|
42
42
|
solvedImagesCount: z.ZodOptional<z.ZodNumber>;
|
|
43
43
|
imageThreshold: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyInput.d.ts","sourceRoot":"","sources":["../../src/ruleInput/policyInput.ts"],"names":[],"mappings":"AAeA,OAAO,
|
|
1
|
+
{"version":3,"file":"policyInput.d.ts","sourceRoot":"","sources":["../../src/ruleInput/policyInput.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAA+B,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,KAAK,YAAY,EACjB,gBAAgB,EAGhB,MAAM,iBAAiB,CAAC;AAwBzB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBD,CAAC;AAEnC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB7B,CAAC;AAOF,eAAO,MAAM,oBAAoB,WAAY,YAAY,KAAG,YAM3D,CAAC;AAOF,eAAO,MAAM,gBAAgB;;;;;;EAUI,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { AccessPolicyType } from "../rule.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import {
|
|
4
|
+
import { ResultReason, SelectableCaptchaTypeSchema } from "@prosopo/types";
|
|
5
5
|
//#region src/ruleInput/policyInput.ts
|
|
6
6
|
var accessPolicyInputShape = z.object({
|
|
7
7
|
type: z.nativeEnum(AccessPolicyType),
|
|
8
|
-
captchaType:
|
|
8
|
+
captchaType: SelectableCaptchaTypeSchema.optional(),
|
|
9
9
|
description: z.coerce.string().optional(),
|
|
10
10
|
solvedImagesCount: z.coerce.number().optional(),
|
|
11
11
|
imageThreshold: z.coerce.number().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyInput.js","sourceRoot":"","sources":["../../src/ruleInput/policyInput.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"policyInput.js","sourceRoot":"","sources":["../../src/ruleInput/policyInput.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEN,gBAAgB,EAChB,4BAA4B,GAE5B,MAAM,iBAAiB,CAAC;AAwBzB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;IACpC,WAAW,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/C,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE5C,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE3C,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjD,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAI/C,aAAa,EAAE,CAAC;SACd,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC1E,QAAQ,EAAE;IACZ,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CACjB,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,WAAW,CAClE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IACf,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK;QAAE,OAAO;IACnD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,aAAa,CAAC;YACrB,OAAO,EACN,mKAAmK;SACpK,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC5C,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,mBAAmB,CAAC;YAC3B,OAAO,EACN,6HAA6H;SAC9H,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CACD,CAAC;AAOF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAoB,EAAgB,EAAE;IAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC;QAClE,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAMxC,QAAQ,EAAE,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,4BAA4B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3D,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAC5B;CAC8B,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/user-access-policy",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.17",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": "^24"
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
"#policy/*": "./dist/*"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@prosopo/api": "4.
|
|
34
|
+
"@prosopo/api": "4.6.0",
|
|
35
35
|
"@prosopo/api-route": "2.6.63",
|
|
36
|
-
"@prosopo/common": "3.1.
|
|
36
|
+
"@prosopo/common": "3.1.64",
|
|
37
37
|
"@prosopo/logger": "2.1.3",
|
|
38
38
|
"@prosopo/redis-client": "1.0.40",
|
|
39
|
-
"@prosopo/types": "5.
|
|
39
|
+
"@prosopo/types": "5.15.0",
|
|
40
40
|
"@prosopo/util": "3.3.14",
|
|
41
41
|
"@redis/search": "6.2.1",
|
|
42
42
|
"cidr-calc": "1.0.4",
|