@eudiplo/cli 9.1.0-main.7cfb7be → 9.1.0-main.84e784c

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 (68) hide show
  1. package/dist/commands/completion/action.js +3 -1
  2. package/dist/commands/completion/action.js.map +1 -1
  3. package/dist/commands/config/portability/migrations.spec.js +4 -2
  4. package/dist/commands/config/portability/migrations.spec.js.map +1 -1
  5. package/dist/commands/config/portability/upgrade.d.ts.map +1 -1
  6. package/dist/commands/config/portability/upgrade.js +2 -7
  7. package/dist/commands/config/portability/upgrade.js.map +1 -1
  8. package/dist/commands/config/validate/action.d.ts.map +1 -1
  9. package/dist/commands/config/validate/action.js +2 -1
  10. package/dist/commands/config/validate/action.js.map +1 -1
  11. package/dist/commands/config/validate/registry.json +21 -0
  12. package/dist/commands/init/action.d.ts.map +1 -1
  13. package/dist/commands/init/action.js +1 -11
  14. package/dist/commands/init/action.js.map +1 -1
  15. package/dist/commands/instance/action.d.ts +2 -0
  16. package/dist/commands/instance/action.d.ts.map +1 -1
  17. package/dist/commands/instance/action.js +68 -12
  18. package/dist/commands/instance/action.js.map +1 -1
  19. package/dist/commands/instance/index.d.ts.map +1 -1
  20. package/dist/commands/instance/index.js +21 -3
  21. package/dist/commands/instance/index.js.map +1 -1
  22. package/dist/commands/open/action.d.ts.map +1 -1
  23. package/dist/commands/open/action.js +13 -2
  24. package/dist/commands/open/action.js.map +1 -1
  25. package/dist/commands/status/action.d.ts.map +1 -1
  26. package/dist/commands/status/action.js +2 -1
  27. package/dist/commands/status/action.js.map +1 -1
  28. package/dist/index.js +17207 -5182
  29. package/dist/services/api-auth.d.ts.map +1 -1
  30. package/dist/services/api-auth.js +3 -2
  31. package/dist/services/api-auth.js.map +1 -1
  32. package/dist/services/browser.d.ts.map +1 -1
  33. package/dist/services/browser.js +3 -2
  34. package/dist/services/browser.js.map +1 -1
  35. package/dist/services/cli-config.d.ts +41 -1
  36. package/dist/services/cli-config.d.ts.map +1 -1
  37. package/dist/services/cli-config.js +217 -29
  38. package/dist/services/cli-config.js.map +1 -1
  39. package/dist/services/diagnostics.d.ts.map +1 -1
  40. package/dist/services/diagnostics.js +8 -7
  41. package/dist/services/diagnostics.js.map +1 -1
  42. package/dist/services/instance-selection.d.ts.map +1 -1
  43. package/dist/services/instance-selection.js +2 -5
  44. package/dist/services/instance-selection.js.map +1 -1
  45. package/dist/services/url.d.ts +21 -0
  46. package/dist/services/url.d.ts.map +1 -0
  47. package/dist/services/url.js +61 -0
  48. package/dist/services/url.js.map +1 -0
  49. package/package.json +6 -5
  50. package/templates/demo-config/key-chains/status-list.json +3 -3
  51. package/templates/docker-compose.yml +2 -2
  52. package/templates/schemas/CreateFederationTrustAnchorDto.schema.json +82 -0
  53. package/templates/schemas/CreateRegistrarConfigDto.schema.json +29 -0
  54. package/templates/schemas/CredentialConfigCreate.schema.json +236 -6
  55. package/templates/schemas/CredentialConfigFile.schema.json +797 -1
  56. package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -0
  57. package/templates/schemas/IssuanceConfig.schema.json +120 -2
  58. package/templates/schemas/IssuanceConfigFile.schema.json +1434 -1
  59. package/templates/schemas/KeyChainConfigFile.schema.json +370 -1
  60. package/templates/schemas/KeyChainCreateDto.schema.json +10 -0
  61. package/templates/schemas/KeyChainDefaultsConfigFile.schema.json +65 -0
  62. package/templates/schemas/KeyChainImportDto.schema.json +1 -0
  63. package/templates/schemas/KmsConfigDto.schema.json +186 -0
  64. package/templates/schemas/KmsConfigFile.schema.json +1026 -1
  65. package/templates/schemas/RegistrarConfigFile.schema.json +101 -1
  66. package/templates/schemas/TenantConfigFile.schema.json +395 -0
  67. package/templates/schemas/UpdateFederationTrustAnchorDto.schema.json +70 -0
  68. package/templates/schemas.manifest.json +4 -0
@@ -0,0 +1,21 @@
1
+ /** Throws unless `value` is an absolute HTTP(S) URL, as config loading requires. */
2
+ export declare function validateHttpUrl(value: string, label: string): void;
3
+ /** True when a URL carries user info such as `user:password@`. */
4
+ export declare function hasUserInfo(value: string): boolean;
5
+ /**
6
+ * Hides user info such as `user:password@` in a URL before it is printed.
7
+ * URLs without user info are returned exactly as configured. The masked form
8
+ * is built from the parsed URL, so spellings the URL parser accepts without
9
+ * `//`, such as `https:user:secret@host`, are masked too. A value that is not
10
+ * a URL is hidden entirely if it could contain user info.
11
+ */
12
+ export declare function redactUrl(value: string): string;
13
+ /** Returns the URL without user info, for handing it to another program. */
14
+ export declare function stripUserInfo(url: URL): URL;
15
+ /**
16
+ * Describes a failed request without the user info of its URL. Node's fetch
17
+ * repeats the full URL in some errors, for example "Request cannot be
18
+ * constructed from a URL that includes credentials: <url>".
19
+ */
20
+ export declare function describeRequestError(error: unknown, url: URL): string;
21
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/services/url.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASlE;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAa/C;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAK3C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAGrE"}
@@ -0,0 +1,61 @@
1
+ /** Throws unless `value` is an absolute HTTP(S) URL, as config loading requires. */
2
+ export function validateHttpUrl(value, label) {
3
+ try {
4
+ const url = new URL(value);
5
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
6
+ throw new Error("Unsupported URL protocol.");
7
+ }
8
+ }
9
+ catch {
10
+ throw new Error(`${label} must be an absolute HTTP(S) URL.`);
11
+ }
12
+ }
13
+ /** True when a URL carries user info such as `user:password@`. */
14
+ export function hasUserInfo(value) {
15
+ try {
16
+ const url = new URL(value);
17
+ return url.username !== "" || url.password !== "";
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ /**
24
+ * Hides user info such as `user:password@` in a URL before it is printed.
25
+ * URLs without user info are returned exactly as configured. The masked form
26
+ * is built from the parsed URL, so spellings the URL parser accepts without
27
+ * `//`, such as `https:user:secret@host`, are masked too. A value that is not
28
+ * a URL is hidden entirely if it could contain user info.
29
+ */
30
+ export function redactUrl(value) {
31
+ let url;
32
+ try {
33
+ url = new URL(value);
34
+ }
35
+ catch {
36
+ return value.includes("@") ? "***" : value;
37
+ }
38
+ if (url.username === "" && url.password === "") {
39
+ return value;
40
+ }
41
+ url.username = "***";
42
+ url.password = "";
43
+ return url.href;
44
+ }
45
+ /** Returns the URL without user info, for handing it to another program. */
46
+ export function stripUserInfo(url) {
47
+ const stripped = new URL(url.href);
48
+ stripped.username = "";
49
+ stripped.password = "";
50
+ return stripped;
51
+ }
52
+ /**
53
+ * Describes a failed request without the user info of its URL. Node's fetch
54
+ * repeats the full URL in some errors, for example "Request cannot be
55
+ * constructed from a URL that includes credentials: <url>".
56
+ */
57
+ export function describeRequestError(error, url) {
58
+ const message = error instanceof Error ? error.message : String(error);
59
+ return message.replaceAll(url.href, redactUrl(url.href));
60
+ }
61
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/services/url.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IACxD,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IACrB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,OAAO,GAAG,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,GAAQ;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,GAAQ;IACzD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eudiplo/cli",
3
- "version": "9.1.0-main.7cfb7be",
3
+ "version": "9.1.0-main.84e784c",
4
4
  "description": "Deployment-aware command line tools for EUDIPLO",
5
5
  "private": false,
6
6
  "type": "module",
@@ -15,11 +15,12 @@
15
15
  "scripts": {
16
16
  "assets:sync": "node scripts/sync-cli-assets.cjs",
17
17
  "assets:check": "node scripts/check-cli-assets.cjs",
18
+ "build:deps": "pnpm --silent --filter \"@eudiplo/cli^...\" build",
18
19
  "build": "pnpm assets:sync && pnpm assets:check && tsc -p tsconfig.json",
19
20
  "build:publish": "pnpm build && esbuild src/index.ts --bundle --platform=node --format=esm --target=node22.12 --alias:jsonc-parser=jsonc-parser/lib/esm/main.js --outfile=dist/index.js",
20
21
  "build:sea:bundle": "pnpm assets:sync && pnpm assets:check && esbuild src/index.ts --bundle --platform=node --format=esm --target=node22.12 --alias:jsonc-parser=jsonc-parser/lib/esm/main.js --outfile=dist-sea/index.js",
21
22
  "build:sea": "node scripts/build-cli-sea.mjs",
22
- "dev": "tsx src/index.ts",
23
+ "dev": "pnpm -s build:deps && tsx src/index.ts",
23
24
  "test": "vitest run --root ../.. --project cli",
24
25
  "lint": "biome lint .",
25
26
  "format": "biome format --write .",
@@ -59,11 +60,11 @@
59
60
  "jsonc-parser": "^3.3.1"
60
61
  },
61
62
  "devDependencies": {
62
- "@biomejs/biome": "2.5.15",
63
- "@types/node": "^26.6.4",
63
+ "@biomejs/biome": "2.6.3",
64
+ "@types/node": "^26.6.5",
64
65
  "esbuild": "^0.28.2",
65
66
  "tsx": "^4.23.15",
66
67
  "typescript": "^7.0.2",
67
- "vitest": "5.0.3"
68
+ "vitest": "5.0.5"
68
69
  }
69
70
  }
@@ -11,10 +11,10 @@
11
11
  "type": "private-jwk",
12
12
  "jwk": {
13
13
  "crv": "P-256",
14
- "d": "oXPLTk02Mq9n8GfOTQ8hdoe3ENkNoN_Y2ymLnUmnbV0",
14
+ "d": "iAUEObUwUI-QDXsFYH9SLm7D-yuEUsOD73YG_jBgLGk",
15
15
  "kty": "EC",
16
- "x": "HHkkbUgKSkkqXmL8utl-TLWIg8CYQS4WPJ8j_nO44Yw",
17
- "y": "1NJY0LT3mEuucLQCZJWNrA7fVW8ypR4Zf5cuu85NjSw",
16
+ "x": "sSdNHYiCOK0E8lNE9rUQLUN3MbVeDnxjRwVwRiI9BqY",
17
+ "y": "xRP83r38x_MYGsteGhUW25Q0XVXA-ZRXlP38a8URPDg",
18
18
  "alg": "ES256"
19
19
  }
20
20
  },
@@ -89,7 +89,7 @@ services:
89
89
  - eudiplo-network
90
90
 
91
91
  rustfs:
92
- image: rustfs/rustfs:1.0.0
92
+ image: rustfs/rustfs:1.0.1
93
93
  restart: always
94
94
  profiles: ['s3', 'standard', 'full']
95
95
  ports:
@@ -114,7 +114,7 @@ services:
114
114
 
115
115
  # S3 bucket initialization using the AWS CLI
116
116
  rustfs-init:
117
- image: amazon/aws-cli:2.37.4
117
+ image: amazon/aws-cli:2.37.10
118
118
  profiles: ['s3', 'standard', 'full']
119
119
  depends_on:
120
120
  rustfs:
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "maxLength": 255,
9
+ "pattern": "^[A-Za-z0-9._-]+$",
10
+ "description": "Unique identifier of the trust anchor in the tenant."
11
+ },
12
+ "entityId": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "maxLength": 2048,
16
+ "description": "Entity identifier of the trust anchor, exactly as configured in `federation.trustAnchors` and DCQL `openid_federation` values."
17
+ },
18
+ "description": {
19
+ "anyOf": [
20
+ {
21
+ "type": "string",
22
+ "minLength": 1,
23
+ "maxLength": 1000
24
+ },
25
+ {
26
+ "type": "null"
27
+ }
28
+ ],
29
+ "description": "Optional description of the trust anchor."
30
+ },
31
+ "jwks": {
32
+ "type": "object",
33
+ "properties": {
34
+ "keys": {
35
+ "minItems": 1,
36
+ "maxItems": 20,
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "properties": {
41
+ "kty": {
42
+ "type": "string",
43
+ "enum": [
44
+ "EC",
45
+ "RSA",
46
+ "OKP"
47
+ ],
48
+ "description": "Key type of the public federation key."
49
+ },
50
+ "kid": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "maxLength": 256,
54
+ "description": "Key ID. Federation statements name their signing key with `kid`."
55
+ }
56
+ },
57
+ "required": [
58
+ "kty",
59
+ "kid"
60
+ ],
61
+ "additionalProperties": {},
62
+ "description": "Public federation key of the trust anchor as a JWK."
63
+ },
64
+ "description": "The trust anchor's federation keys."
65
+ }
66
+ },
67
+ "required": [
68
+ "keys"
69
+ ],
70
+ "additionalProperties": false,
71
+ "description": "JWK set with the federation keys of the trust anchor, obtained out of band (OpenID Federation 1.0 Section 10.2)."
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "entityId",
77
+ "jwks"
78
+ ],
79
+ "additionalProperties": false,
80
+ "$id": "./CreateFederationTrustAnchorDto.schema.json",
81
+ "title": "CreateFederationTrustAnchorDto"
82
+ }
@@ -46,6 +46,35 @@
46
46
  "type": "null"
47
47
  }
48
48
  ]
49
+ },
50
+ "relyingPartyContact": {
51
+ "description": "Contact of the relying party, sent when EUDIPLO registers the relying party at the registrar. The registrar needs at least one contact value to issue access certificates. A relying party that is already registered keeps its contact.",
52
+ "anyOf": [
53
+ {
54
+ "type": "object",
55
+ "properties": {
56
+ "supportUri": {
57
+ "description": "https URL where the relying party can be contacted.",
58
+ "type": "string",
59
+ "format": "uri"
60
+ },
61
+ "email": {
62
+ "description": "Email address of the relying party.",
63
+ "type": "string",
64
+ "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
65
+ },
66
+ "phone": {
67
+ "description": "Phone number of the relying party.",
68
+ "type": "string",
69
+ "pattern": "^[+0-9()\\-\\s]{5,40}$"
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ]
49
78
  }
50
79
  },
51
80
  "required": [
@@ -714,12 +714,8 @@
714
714
  }
715
715
  },
716
716
  "constraints": {
717
- "description": "Optional validation constraints for the claim value.",
718
- "type": "object",
719
- "propertyNames": {
720
- "type": "string"
721
- },
722
- "additionalProperties": {}
717
+ "description": "Optional JSON Schema 2020-12 validation keywords for the claim value. Only the JSON Schema keywords listed under Constraints in the claims documentation are accepted (validation keywords such as pattern, minLength or enum, subschemas such as items or properties, and annotations); other keys, such as format or $ref, are refused.",
718
+ "$ref": "#/$defs/ClaimConstraints"
723
719
  },
724
720
  "children": {
725
721
  "description": "Nested child claim definitions for object or array fields.",
@@ -734,6 +730,240 @@
734
730
  "type"
735
731
  ],
736
732
  "additionalProperties": false
733
+ },
734
+ "ClaimConstraints": {
735
+ "type": "object",
736
+ "properties": {
737
+ "type": {},
738
+ "enum": {},
739
+ "const": {},
740
+ "multipleOf": {},
741
+ "maximum": {},
742
+ "exclusiveMaximum": {},
743
+ "minimum": {},
744
+ "exclusiveMinimum": {},
745
+ "maxLength": {},
746
+ "minLength": {},
747
+ "pattern": {},
748
+ "maxItems": {},
749
+ "minItems": {},
750
+ "uniqueItems": {},
751
+ "maxContains": {},
752
+ "minContains": {},
753
+ "maxProperties": {},
754
+ "minProperties": {},
755
+ "required": {},
756
+ "dependentRequired": {},
757
+ "title": {},
758
+ "description": {},
759
+ "default": {},
760
+ "examples": {},
761
+ "deprecated": {},
762
+ "readOnly": {},
763
+ "writeOnly": {},
764
+ "$comment": {},
765
+ "items": {
766
+ "anyOf": [
767
+ {
768
+ "type": "boolean"
769
+ },
770
+ {
771
+ "$ref": "#/$defs/ClaimConstraints"
772
+ }
773
+ ]
774
+ },
775
+ "contains": {
776
+ "anyOf": [
777
+ {
778
+ "type": "boolean"
779
+ },
780
+ {
781
+ "$ref": "#/$defs/ClaimConstraints"
782
+ }
783
+ ]
784
+ },
785
+ "additionalProperties": {
786
+ "anyOf": [
787
+ {
788
+ "type": "boolean"
789
+ },
790
+ {
791
+ "$ref": "#/$defs/ClaimConstraints"
792
+ }
793
+ ]
794
+ },
795
+ "propertyNames": {
796
+ "anyOf": [
797
+ {
798
+ "type": "boolean"
799
+ },
800
+ {
801
+ "$ref": "#/$defs/ClaimConstraints"
802
+ }
803
+ ]
804
+ },
805
+ "not": {
806
+ "anyOf": [
807
+ {
808
+ "type": "boolean"
809
+ },
810
+ {
811
+ "$ref": "#/$defs/ClaimConstraints"
812
+ }
813
+ ]
814
+ },
815
+ "if": {
816
+ "anyOf": [
817
+ {
818
+ "type": "boolean"
819
+ },
820
+ {
821
+ "$ref": "#/$defs/ClaimConstraints"
822
+ }
823
+ ]
824
+ },
825
+ "then": {
826
+ "anyOf": [
827
+ {
828
+ "type": "boolean"
829
+ },
830
+ {
831
+ "$ref": "#/$defs/ClaimConstraints"
832
+ }
833
+ ]
834
+ },
835
+ "else": {
836
+ "anyOf": [
837
+ {
838
+ "type": "boolean"
839
+ },
840
+ {
841
+ "$ref": "#/$defs/ClaimConstraints"
842
+ }
843
+ ]
844
+ },
845
+ "unevaluatedItems": {
846
+ "anyOf": [
847
+ {
848
+ "type": "boolean"
849
+ },
850
+ {
851
+ "$ref": "#/$defs/ClaimConstraints"
852
+ }
853
+ ]
854
+ },
855
+ "unevaluatedProperties": {
856
+ "anyOf": [
857
+ {
858
+ "type": "boolean"
859
+ },
860
+ {
861
+ "$ref": "#/$defs/ClaimConstraints"
862
+ }
863
+ ]
864
+ },
865
+ "prefixItems": {
866
+ "type": "array",
867
+ "items": {
868
+ "anyOf": [
869
+ {
870
+ "type": "boolean"
871
+ },
872
+ {
873
+ "$ref": "#/$defs/ClaimConstraints"
874
+ }
875
+ ]
876
+ }
877
+ },
878
+ "allOf": {
879
+ "type": "array",
880
+ "items": {
881
+ "anyOf": [
882
+ {
883
+ "type": "boolean"
884
+ },
885
+ {
886
+ "$ref": "#/$defs/ClaimConstraints"
887
+ }
888
+ ]
889
+ }
890
+ },
891
+ "anyOf": {
892
+ "type": "array",
893
+ "items": {
894
+ "anyOf": [
895
+ {
896
+ "type": "boolean"
897
+ },
898
+ {
899
+ "$ref": "#/$defs/ClaimConstraints"
900
+ }
901
+ ]
902
+ }
903
+ },
904
+ "oneOf": {
905
+ "type": "array",
906
+ "items": {
907
+ "anyOf": [
908
+ {
909
+ "type": "boolean"
910
+ },
911
+ {
912
+ "$ref": "#/$defs/ClaimConstraints"
913
+ }
914
+ ]
915
+ }
916
+ },
917
+ "properties": {
918
+ "type": "object",
919
+ "propertyNames": {
920
+ "type": "string"
921
+ },
922
+ "additionalProperties": {
923
+ "anyOf": [
924
+ {
925
+ "type": "boolean"
926
+ },
927
+ {
928
+ "$ref": "#/$defs/ClaimConstraints"
929
+ }
930
+ ]
931
+ }
932
+ },
933
+ "patternProperties": {
934
+ "type": "object",
935
+ "propertyNames": {
936
+ "type": "string"
937
+ },
938
+ "additionalProperties": {
939
+ "anyOf": [
940
+ {
941
+ "type": "boolean"
942
+ },
943
+ {
944
+ "$ref": "#/$defs/ClaimConstraints"
945
+ }
946
+ ]
947
+ }
948
+ },
949
+ "dependentSchemas": {
950
+ "type": "object",
951
+ "propertyNames": {
952
+ "type": "string"
953
+ },
954
+ "additionalProperties": {
955
+ "anyOf": [
956
+ {
957
+ "type": "boolean"
958
+ },
959
+ {
960
+ "$ref": "#/$defs/ClaimConstraints"
961
+ }
962
+ ]
963
+ }
964
+ }
965
+ },
966
+ "additionalProperties": false
737
967
  }
738
968
  },
739
969
  "$id": "./CredentialConfigCreate.schema.json",