@atcute/oauth-types 0.1.0 → 1.0.0

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 (156) hide show
  1. package/README.md +6 -5
  2. package/dist/build-client-metadata.d.ts +18 -160
  3. package/dist/build-client-metadata.d.ts.map +1 -1
  4. package/dist/build-client-metadata.js +73 -3
  5. package/dist/build-client-metadata.js.map +1 -1
  6. package/dist/index.d.ts +31 -30
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +2 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/schemas/atcute-client-shared.d.ts +8 -0
  11. package/dist/schemas/atcute-client-shared.d.ts.map +1 -0
  12. package/dist/schemas/atcute-client-shared.js +15 -0
  13. package/dist/schemas/atcute-client-shared.js.map +1 -0
  14. package/dist/schemas/atcute-confidential-client-metadata.d.ts +228 -4
  15. package/dist/schemas/atcute-confidential-client-metadata.d.ts.map +1 -1
  16. package/dist/schemas/atcute-confidential-client-metadata.js +48 -88
  17. package/dist/schemas/atcute-confidential-client-metadata.js.map +1 -1
  18. package/dist/schemas/atcute-public-client-metadata.d.ts +95 -0
  19. package/dist/schemas/atcute-public-client-metadata.d.ts.map +1 -0
  20. package/dist/schemas/atcute-public-client-metadata.js +74 -0
  21. package/dist/schemas/atcute-public-client-metadata.js.map +1 -0
  22. package/dist/schemas/atproto-authorization-server-metadata.d.ts +786 -4
  23. package/dist/schemas/atproto-authorization-server-metadata.d.ts.map +1 -1
  24. package/dist/schemas/atproto-authorization-server-metadata.js +2 -18
  25. package/dist/schemas/atproto-authorization-server-metadata.js.map +1 -1
  26. package/dist/schemas/atproto-oauth-scope.d.ts +3 -3
  27. package/dist/schemas/atproto-oauth-scope.d.ts.map +1 -1
  28. package/dist/schemas/atproto-oauth-scope.js +2 -2
  29. package/dist/schemas/atproto-oauth-scope.js.map +1 -1
  30. package/dist/schemas/atproto-oauth-token-response.d.ts +17 -17
  31. package/dist/schemas/atproto-oauth-token-response.d.ts.map +1 -1
  32. package/dist/schemas/atproto-oauth-token-response.js +6 -6
  33. package/dist/schemas/atproto-oauth-token-response.js.map +1 -1
  34. package/dist/schemas/atproto-protected-resource-metadata.d.ts +100 -4
  35. package/dist/schemas/atproto-protected-resource-metadata.d.ts.map +1 -1
  36. package/dist/schemas/atproto-protected-resource-metadata.js +2 -11
  37. package/dist/schemas/atproto-protected-resource-metadata.js.map +1 -1
  38. package/dist/schemas/jwk.d.ts +4289 -42
  39. package/dist/schemas/jwk.d.ts.map +1 -1
  40. package/dist/schemas/jwk.js +58 -91
  41. package/dist/schemas/jwk.js.map +1 -1
  42. package/dist/schemas/jwks.d.ts +87 -42
  43. package/dist/schemas/jwks.d.ts.map +1 -1
  44. package/dist/schemas/jwks.js +13 -29
  45. package/dist/schemas/jwks.js.map +1 -1
  46. package/dist/schemas/oauth-authorization-details.d.ts +18 -18
  47. package/dist/schemas/oauth-authorization-details.d.ts.map +1 -1
  48. package/dist/schemas/oauth-authorization-details.js +7 -7
  49. package/dist/schemas/oauth-authorization-details.js.map +1 -1
  50. package/dist/schemas/oauth-authorization-server-metadata.d.ts +462 -48
  51. package/dist/schemas/oauth-authorization-server-metadata.d.ts.map +1 -1
  52. package/dist/schemas/oauth-authorization-server-metadata.js +46 -65
  53. package/dist/schemas/oauth-authorization-server-metadata.js.map +1 -1
  54. package/dist/schemas/oauth-client-id-discoverable.d.ts +2 -2
  55. package/dist/schemas/oauth-client-id-discoverable.d.ts.map +1 -1
  56. package/dist/schemas/oauth-client-id-discoverable.js +20 -22
  57. package/dist/schemas/oauth-client-id-discoverable.js.map +1 -1
  58. package/dist/schemas/oauth-client-id.d.ts +3 -3
  59. package/dist/schemas/oauth-client-id.d.ts.map +1 -1
  60. package/dist/schemas/oauth-client-id.js +2 -2
  61. package/dist/schemas/oauth-client-id.js.map +1 -1
  62. package/dist/schemas/oauth-client-metadata.d.ts +73 -51
  63. package/dist/schemas/oauth-client-metadata.d.ts.map +1 -1
  64. package/dist/schemas/oauth-client-metadata.js +33 -40
  65. package/dist/schemas/oauth-client-metadata.js.map +1 -1
  66. package/dist/schemas/oauth-code-challenge-method.d.ts +3 -3
  67. package/dist/schemas/oauth-code-challenge-method.d.ts.map +1 -1
  68. package/dist/schemas/oauth-code-challenge-method.js +2 -2
  69. package/dist/schemas/oauth-code-challenge-method.js.map +1 -1
  70. package/dist/schemas/oauth-endpoint-auth-method.d.ts +3 -3
  71. package/dist/schemas/oauth-endpoint-auth-method.d.ts.map +1 -1
  72. package/dist/schemas/oauth-endpoint-auth-method.js +10 -2
  73. package/dist/schemas/oauth-endpoint-auth-method.js.map +1 -1
  74. package/dist/schemas/oauth-grant-type.d.ts +3 -3
  75. package/dist/schemas/oauth-grant-type.d.ts.map +1 -1
  76. package/dist/schemas/oauth-grant-type.js +10 -3
  77. package/dist/schemas/oauth-grant-type.js.map +1 -1
  78. package/dist/schemas/oauth-issuer-identifier.d.ts +3 -3
  79. package/dist/schemas/oauth-issuer-identifier.d.ts.map +1 -1
  80. package/dist/schemas/oauth-issuer-identifier.js +16 -9
  81. package/dist/schemas/oauth-issuer-identifier.js.map +1 -1
  82. package/dist/schemas/oauth-par-response.d.ts +5 -5
  83. package/dist/schemas/oauth-par-response.d.ts.map +1 -1
  84. package/dist/schemas/oauth-par-response.js +3 -3
  85. package/dist/schemas/oauth-par-response.js.map +1 -1
  86. package/dist/schemas/oauth-prompt.d.ts +3 -3
  87. package/dist/schemas/oauth-prompt.d.ts.map +1 -1
  88. package/dist/schemas/oauth-prompt.js +2 -2
  89. package/dist/schemas/oauth-prompt.js.map +1 -1
  90. package/dist/schemas/oauth-protected-resource-metadata.d.ts +88 -16
  91. package/dist/schemas/oauth-protected-resource-metadata.d.ts.map +1 -1
  92. package/dist/schemas/oauth-protected-resource-metadata.js +14 -26
  93. package/dist/schemas/oauth-protected-resource-metadata.js.map +1 -1
  94. package/dist/schemas/oauth-redirect-uri.d.ts +5 -5
  95. package/dist/schemas/oauth-redirect-uri.d.ts.map +1 -1
  96. package/dist/schemas/oauth-redirect-uri.js +3 -16
  97. package/dist/schemas/oauth-redirect-uri.js.map +1 -1
  98. package/dist/schemas/oauth-response-mode.d.ts +3 -3
  99. package/dist/schemas/oauth-response-mode.d.ts.map +1 -1
  100. package/dist/schemas/oauth-response-mode.js +2 -2
  101. package/dist/schemas/oauth-response-mode.js.map +1 -1
  102. package/dist/schemas/oauth-response-type.d.ts +3 -3
  103. package/dist/schemas/oauth-response-type.d.ts.map +1 -1
  104. package/dist/schemas/oauth-response-type.js +13 -7
  105. package/dist/schemas/oauth-response-type.js.map +1 -1
  106. package/dist/schemas/oauth-scope.d.ts +3 -3
  107. package/dist/schemas/oauth-scope.d.ts.map +1 -1
  108. package/dist/schemas/oauth-scope.js +2 -2
  109. package/dist/schemas/oauth-scope.js.map +1 -1
  110. package/dist/schemas/oauth-token-response.d.ts +17 -17
  111. package/dist/schemas/oauth-token-response.d.ts.map +1 -1
  112. package/dist/schemas/oauth-token-response.js +7 -7
  113. package/dist/schemas/oauth-token-response.js.map +1 -1
  114. package/dist/schemas/oauth-token-type.d.ts +3 -3
  115. package/dist/schemas/oauth-token-type.d.ts.map +1 -1
  116. package/dist/schemas/oauth-token-type.js +8 -7
  117. package/dist/schemas/oauth-token-type.js.map +1 -1
  118. package/dist/schemas/uri.d.ts +7 -7
  119. package/dist/schemas/uri.d.ts.map +1 -1
  120. package/dist/schemas/uri.js +44 -44
  121. package/dist/schemas/uri.js.map +1 -1
  122. package/dist/schemas/utils.d.ts.map +1 -1
  123. package/dist/schemas/utils.js.map +1 -1
  124. package/dist/scope.d.ts.map +1 -1
  125. package/dist/scope.js.map +1 -1
  126. package/lib/build-client-metadata.ts +92 -6
  127. package/lib/index.ts +38 -30
  128. package/lib/schemas/atcute-client-shared.ts +25 -0
  129. package/lib/schemas/atcute-confidential-client-metadata.ts +81 -111
  130. package/lib/schemas/atcute-public-client-metadata.ts +101 -0
  131. package/lib/schemas/atproto-authorization-server-metadata.ts +22 -23
  132. package/lib/schemas/atproto-oauth-scope.ts +8 -5
  133. package/lib/schemas/atproto-oauth-token-response.ts +10 -9
  134. package/lib/schemas/atproto-protected-resource-metadata.ts +15 -15
  135. package/lib/schemas/jwk.ts +104 -120
  136. package/lib/schemas/jwks.ts +28 -40
  137. package/lib/schemas/oauth-authorization-details.ts +10 -10
  138. package/lib/schemas/oauth-authorization-server-metadata.ts +72 -74
  139. package/lib/schemas/oauth-client-id-discoverable.ts +43 -48
  140. package/lib/schemas/oauth-client-id.ts +3 -3
  141. package/lib/schemas/oauth-client-metadata.ts +45 -49
  142. package/lib/schemas/oauth-code-challenge-method.ts +3 -3
  143. package/lib/schemas/oauth-endpoint-auth-method.ts +11 -11
  144. package/lib/schemas/oauth-grant-type.ts +11 -11
  145. package/lib/schemas/oauth-issuer-identifier.ts +35 -27
  146. package/lib/schemas/oauth-par-response.ts +4 -4
  147. package/lib/schemas/oauth-prompt.ts +3 -9
  148. package/lib/schemas/oauth-protected-resource-metadata.ts +26 -35
  149. package/lib/schemas/oauth-redirect-uri.ts +15 -23
  150. package/lib/schemas/oauth-response-mode.ts +3 -7
  151. package/lib/schemas/oauth-response-type.ts +12 -12
  152. package/lib/schemas/oauth-scope.ts +3 -3
  153. package/lib/schemas/oauth-token-response.ts +10 -10
  154. package/lib/schemas/oauth-token-type.ts +16 -12
  155. package/lib/schemas/uri.ts +89 -76
  156. package/package.json +9 -8
@@ -1,4 +1,4 @@
1
- import * as v from '@badrap/valita';
1
+ import * as v from 'valibot';
2
2
  import { oauthCodeChallengeMethodSchema } from './oauth-code-challenge-method.js';
3
3
  import { oauthIssuerIdentifierSchema } from './oauth-issuer-identifier.js';
4
4
  import { oauthPromptSchema } from './oauth-prompt.js';
@@ -6,76 +6,57 @@ import { webUriSchema } from './uri.js';
6
6
  /**
7
7
  * @see {@link https://datatracker.ietf.org/doc/html/rfc8414}
8
8
  */
9
- export const oauthAuthorizationServerMetadataSchema = v.object({
9
+ export const oauthAuthorizationServerMetadataSchema = v.looseObject({
10
10
  issuer: oauthIssuerIdentifierSchema,
11
- claims_supported: v.array(v.string()).optional(),
12
- claims_locales_supported: v.array(v.string()).optional(),
13
- claims_parameter_supported: v.boolean().optional(),
14
- request_parameter_supported: v.boolean().optional(),
15
- request_uri_parameter_supported: v.boolean().optional(),
16
- require_request_uri_registration: v.boolean().optional(),
17
- scopes_supported: v.array(v.string()).optional(),
18
- subject_types_supported: v.array(v.string()).optional(),
19
- response_types_supported: v.array(v.string()).optional(),
20
- response_modes_supported: v.array(v.string()).optional(),
21
- grant_types_supported: v.array(v.string()).optional(),
22
- code_challenge_methods_supported: v.array(oauthCodeChallengeMethodSchema).optional(),
23
- ui_locales_supported: v.array(v.string()).optional(),
24
- id_token_signing_alg_values_supported: v.array(v.string()).optional(),
25
- display_values_supported: v.array(v.string()).optional(),
26
- prompt_values_supported: v.array(oauthPromptSchema).optional(),
27
- request_object_signing_alg_values_supported: v.array(v.string()).optional(),
28
- authorization_response_iss_parameter_supported: v.boolean().optional(),
29
- authorization_details_types_supported: v.array(v.string()).optional(),
30
- request_object_encryption_alg_values_supported: v.array(v.string()).optional(),
31
- request_object_encryption_enc_values_supported: v.array(v.string()).optional(),
32
- jwks_uri: webUriSchema.optional(),
11
+ claims_supported: v.optional(v.array(v.string())),
12
+ claims_locales_supported: v.optional(v.array(v.string())),
13
+ claims_parameter_supported: v.optional(v.boolean()),
14
+ request_parameter_supported: v.optional(v.boolean()),
15
+ request_uri_parameter_supported: v.optional(v.boolean()),
16
+ require_request_uri_registration: v.optional(v.boolean()),
17
+ scopes_supported: v.optional(v.array(v.string())),
18
+ subject_types_supported: v.optional(v.array(v.string())),
19
+ response_types_supported: v.optional(v.array(v.string())),
20
+ response_modes_supported: v.optional(v.array(v.string())),
21
+ grant_types_supported: v.optional(v.array(v.string())),
22
+ code_challenge_methods_supported: v.optional(v.array(oauthCodeChallengeMethodSchema)),
23
+ ui_locales_supported: v.optional(v.array(v.string())),
24
+ id_token_signing_alg_values_supported: v.optional(v.array(v.string())),
25
+ display_values_supported: v.optional(v.array(v.string())),
26
+ prompt_values_supported: v.optional(v.array(oauthPromptSchema)),
27
+ request_object_signing_alg_values_supported: v.optional(v.array(v.string())),
28
+ authorization_response_iss_parameter_supported: v.optional(v.boolean()),
29
+ authorization_details_types_supported: v.optional(v.array(v.string())),
30
+ request_object_encryption_alg_values_supported: v.optional(v.array(v.string())),
31
+ request_object_encryption_enc_values_supported: v.optional(v.array(v.string())),
32
+ jwks_uri: v.optional(webUriSchema),
33
33
  authorization_endpoint: webUriSchema,
34
34
  token_endpoint: webUriSchema,
35
35
  // https://www.rfc-editor.org/rfc/rfc8414.html#section-2
36
- token_endpoint_auth_methods_supported: v.array(v.string()).optional(),
37
- token_endpoint_auth_signing_alg_values_supported: v.array(v.string()).optional(),
38
- revocation_endpoint: webUriSchema.optional(),
39
- revocation_endpoint_auth_methods_supported: v.array(v.string()).optional(),
40
- revocation_endpoint_auth_signing_alg_values_supported: v.array(v.string()).optional(),
41
- introspection_endpoint: webUriSchema.optional(),
42
- introspection_endpoint_auth_methods_supported: v.array(v.string()).optional(),
43
- introspection_endpoint_auth_signing_alg_values_supported: v.array(v.string()).optional(),
44
- pushed_authorization_request_endpoint: webUriSchema.optional(),
45
- pushed_authorization_request_endpoint_auth_methods_supported: v.array(v.string()).optional(),
46
- pushed_authorization_request_endpoint_auth_signing_alg_values_supported: v.array(v.string()).optional(),
47
- require_pushed_authorization_requests: v.boolean().optional(),
48
- userinfo_endpoint: webUriSchema.optional(),
49
- end_session_endpoint: webUriSchema.optional(),
50
- registration_endpoint: webUriSchema.optional(),
36
+ token_endpoint_auth_methods_supported: v.optional(v.array(v.string())),
37
+ token_endpoint_auth_signing_alg_values_supported: v.optional(v.array(v.string())),
38
+ revocation_endpoint: v.optional(webUriSchema),
39
+ revocation_endpoint_auth_methods_supported: v.optional(v.array(v.string())),
40
+ revocation_endpoint_auth_signing_alg_values_supported: v.optional(v.array(v.string())),
41
+ introspection_endpoint: v.optional(webUriSchema),
42
+ introspection_endpoint_auth_methods_supported: v.optional(v.array(v.string())),
43
+ introspection_endpoint_auth_signing_alg_values_supported: v.optional(v.array(v.string())),
44
+ pushed_authorization_request_endpoint: v.optional(webUriSchema),
45
+ pushed_authorization_request_endpoint_auth_methods_supported: v.optional(v.array(v.string())),
46
+ pushed_authorization_request_endpoint_auth_signing_alg_values_supported: v.optional(v.array(v.string())),
47
+ require_pushed_authorization_requests: v.optional(v.boolean()),
48
+ userinfo_endpoint: v.optional(webUriSchema),
49
+ end_session_endpoint: v.optional(webUriSchema),
50
+ registration_endpoint: v.optional(webUriSchema),
51
51
  // https://datatracker.ietf.org/doc/html/rfc9449#section-5.1
52
- dpop_signing_alg_values_supported: v.array(v.string()).optional(),
52
+ dpop_signing_alg_values_supported: v.optional(v.array(v.string())),
53
53
  // https://www.rfc-editor.org/rfc/rfc9728.html#section-4
54
- protected_resources: v.array(webUriSchema).optional(),
54
+ protected_resources: v.optional(v.array(webUriSchema)),
55
55
  // https://www.ietf.org/archive/id/draft-ietf-oauth-client-id-metadata-document-00.html
56
- client_id_metadata_document_supported: v.boolean().optional(),
57
- });
58
- export const oauthAuthorizationServerMetadataValidator = oauthAuthorizationServerMetadataSchema.chain((data) => {
59
- if (data.require_pushed_authorization_requests && !data.pushed_authorization_request_endpoint) {
60
- return v.err({
61
- message: `"pushed_authorization_request_endpoint" required when "require_pushed_authorization_requests" is true`,
62
- path: ['pushed_authorization_request_endpoint'],
63
- });
64
- }
65
- if (data.response_types_supported && !data.response_types_supported.includes('code')) {
66
- return v.err({
67
- message: `response type "code" is required`,
68
- path: ['response_types_supported'],
69
- });
70
- }
71
- if (data.token_endpoint_auth_signing_alg_values_supported?.includes('none')) {
72
- // https://openid.net/specs/openid-connect-discovery-1_0.html#rfc.section.3
73
- // > The value `none` MUST NOT be used.
74
- return v.err({
75
- message: `client authentication method "none" is not allowed`,
76
- path: ['token_endpoint_auth_signing_alg_values_supported'],
77
- });
78
- }
79
- return v.ok(data);
56
+ client_id_metadata_document_supported: v.optional(v.boolean()),
80
57
  });
58
+ export const oauthAuthorizationServerMetadataValidator = v.pipe(oauthAuthorizationServerMetadataSchema, v.forward(v.check((data) => !data.require_pushed_authorization_requests || !!data.pushed_authorization_request_endpoint, `"pushed_authorization_request_endpoint" required when "require_pushed_authorization_requests" is true`), ['pushed_authorization_request_endpoint']), v.forward(v.check((data) => !data.response_types_supported || data.response_types_supported.includes('code'), `response type "code" is required`), ['response_types_supported']), v.forward(v.check((data) => !data.token_endpoint_auth_signing_alg_values_supported?.includes('none'),
59
+ // https://openid.net/specs/openid-connect-discovery-1_0.html#rfc.section.3
60
+ // > The value `none` MUST NOT be used.
61
+ `client authentication method "none" is not allowed`), ['token_endpoint_auth_signing_alg_values_supported']));
81
62
  //# sourceMappingURL=oauth-authorization-server-metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-authorization-server-metadata.js","sourceRoot":"","sources":["../../lib/schemas/oauth-authorization-server-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,2BAA2B;IAEnC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClD,2BAA2B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnD,+BAA+B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvD,gCAAgC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,gCAAgC,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;IACpF,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpD,qCAAqC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrE,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IAC9D,2CAA2C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,8CAA8C,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtE,qCAAqC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrE,8CAA8C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,8CAA8C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE9E,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;IAEjC,sBAAsB,EAAE,YAAY;IAEpC,cAAc,EAAE,YAAY;IAC5B,wDAAwD;IACxD,qCAAqC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrE,gDAAgD,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEhF,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC5C,0CAA0C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1E,qDAAqD,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAErF,sBAAsB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/C,6CAA6C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7E,wDAAwD,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAExF,qCAAqC,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC9D,4DAA4D,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5F,uEAAuE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvG,qCAAqC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAE7D,iBAAiB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC1C,oBAAoB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7C,qBAAqB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAE9C,4DAA4D;IAC5D,iCAAiC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEjE,wDAAwD;IACxD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAErD,uFAAuF;IACvF,qCAAqC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,yCAAyC,GAAG,sCAAsC,CAAC,KAAK,CACpG,CAAC,IAAI,EAAE,EAAE,CAAC;IACT,IAAI,IAAI,CAAC,qCAAqC,IAAI,CAAC,IAAI,CAAC,qCAAqC,EAAE,CAAC;QAC/F,OAAO,CAAC,CAAC,GAAG,CAAC;YACZ,OAAO,EAAE,uGAAuG;YAChH,IAAI,EAAE,CAAC,uCAAuC,CAAC;SAC/C,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,CAAC,GAAG,CAAC;YACZ,OAAO,EAAE,kCAAkC;YAC3C,IAAI,EAAE,CAAC,0BAA0B,CAAC;SAClC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,gDAAgD,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,2EAA2E;QAC3E,uCAAuC;QACvC,OAAO,CAAC,CAAC,GAAG,CAAC;YACZ,OAAO,EAAE,oDAAoD;YAC7D,IAAI,EAAE,CAAC,kDAAkD,CAAC;SAC1D,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAAA,CAClB,CACD,CAAC"}
1
+ {"version":3,"file":"oauth-authorization-server-metadata.js","sourceRoot":"","sources":["../../lib/schemas/oauth-authorization-server-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import * as v from '@badrap/valita';
1
+ import * as v from 'valibot';
2
2
  /**
3
3
  * @see {@link https://www.ietf.org/archive/id/draft-ietf-oauth-client-id-metadata-document-00.html}
4
4
  */
5
- export declare const oauthClientIdDiscoverableSchema: v.Type<string>;
5
+ export declare const oauthClientIdDiscoverableSchema: v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, "must not be empty">]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.RawCheckAction<string>]>;
6
6
  //# sourceMappingURL=oauth-client-id-discoverable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-id-discoverable.d.ts","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id-discoverable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAMpC;;GAEG;AACH,eAAO,MAAM,+BAA+B,gBA2C1C,CAAC"}
1
+ {"version":3,"file":"oauth-client-id-discoverable.d.ts","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id-discoverable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAM7B;;GAEG;AACH,eAAO,MAAM,+BAA+B,2TAsC3C,CAAC"}
@@ -1,43 +1,41 @@
1
- import * as v from '@badrap/valita';
1
+ import * as v from 'valibot';
2
2
  import { oauthClientIdSchema } from './oauth-client-id.js';
3
3
  import { httpsUriSchema } from './uri.js';
4
4
  import { extractUrlPath, isHostnameIP } from './utils.js';
5
5
  /**
6
6
  * @see {@link https://www.ietf.org/archive/id/draft-ietf-oauth-client-id-metadata-document-00.html}
7
7
  */
8
- export const oauthClientIdDiscoverableSchema = v.string().chain((input, options) => {
9
- // first validate as base client ID
10
- const clientIdResult = oauthClientIdSchema.try(input, options);
11
- if (!clientIdResult.ok) {
12
- return clientIdResult;
13
- }
14
- // then validate as https URI
15
- const httpsResult = httpsUriSchema.try(input, options);
16
- if (!httpsResult.ok) {
17
- return httpsResult;
8
+ export const oauthClientIdDiscoverableSchema = v.pipe(oauthClientIdSchema, httpsUriSchema, v.rawCheck(({ dataset, addIssue }) => {
9
+ if (!dataset.typed) {
10
+ return;
18
11
  }
12
+ const input = dataset.value;
19
13
  const url = new URL(input);
20
14
  if (url.username || url.password) {
21
- return v.err(`client ID must not contain credentials`);
15
+ addIssue({ message: `client ID must not contain credentials` });
16
+ return;
22
17
  }
23
18
  if (url.hash) {
24
- return v.err(`client ID must not contain a fragment`);
19
+ addIssue({ message: `client ID must not contain a fragment` });
20
+ return;
25
21
  }
26
22
  if (url.pathname === '/') {
27
- return v.err(`client ID must contain a path component (e.g. "/client-metadata.json")`);
23
+ addIssue({ message: `client ID must contain a path component (e.g. "/client-metadata.json")` });
24
+ return;
28
25
  }
29
26
  if (url.pathname.endsWith('/')) {
30
- return v.err(`client ID path must not end with a trailing slash`);
27
+ addIssue({ message: `client ID path must not end with a trailing slash` });
28
+ return;
31
29
  }
32
30
  if (isHostnameIP(url.hostname)) {
33
- return v.err(`client ID hostname must not be an IP address`);
31
+ addIssue({ message: `client ID hostname must not be an IP address` });
32
+ return;
34
33
  }
35
- // URL constructor normalizes the URL, so we extract the path manually to
36
- // avoid normalization, then compare it to the normalized path to ensure
37
- // that the URL does not contain path traversal or other unexpected characters
34
+ // URL constructor normalizes the URL, so we extract the path manually to avoid
35
+ // normalization, then compare it to the normalized path to ensure that the URL does not
36
+ // contain path traversal or other unexpected characters
38
37
  if (extractUrlPath(input) !== url.pathname) {
39
- return v.err(`client ID must be in canonical form ("${url.href}", got "${input}")`);
38
+ addIssue({ message: `client ID must be in canonical form ("${url.href}", got "${input}")` });
40
39
  }
41
- return v.ok(input);
42
- });
40
+ }));
43
41
  //# sourceMappingURL=oauth-client-id-discoverable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-id-discoverable.js","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id-discoverable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACnF,mCAAmC;IACnC,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,8EAA8E;IAC9E,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC,GAAG,CAAC,yCAAyC,GAAG,CAAC,IAAI,WAAW,KAAK,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAAA,CACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"oauth-client-id-discoverable.js","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id-discoverable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,IAAI,CACpD,mBAAmB,EACnB,cAAc,EACd,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO;IACR,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,QAAQ,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;QAChE,OAAO;IACR,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAAC;QAC/D,OAAO;IACR,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,wEAAwE,EAAE,CAAC,CAAC;QAChG,OAAO;IACR,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC,CAAC;QAC3E,OAAO;IACR,CAAC;IACD,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QACtE,OAAO;IACR,CAAC;IAED,+EAA+E;IAC/E,wFAAwF;IACxF,wDAAwD;IACxD,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5C,QAAQ,CAAC,EAAE,OAAO,EAAE,yCAAyC,GAAG,CAAC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;AACF,CAAC,CAAC,CACF,CAAC"}
@@ -1,5 +1,5 @@
1
- import * as v from '@badrap/valita';
1
+ import * as v from 'valibot';
2
2
  /** base OAuth client ID (any non-empty string) */
3
- export declare const oauthClientIdSchema: v.Type<string>;
4
- export type OAuthClientId = v.Infer<typeof oauthClientIdSchema>;
3
+ export declare const oauthClientIdSchema: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, "must not be empty">]>;
4
+ export type OAuthClientId = v.InferOutput<typeof oauthClientIdSchema>;
5
5
  //# sourceMappingURL=oauth-client-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-id.d.ts","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,gBAAsE,CAAC;AAEvG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"oauth-client-id.d.ts","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,uGAAsD,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import * as v from '@badrap/valita';
1
+ import * as v from 'valibot';
2
2
  /** base OAuth client ID (any non-empty string) */
3
- export const oauthClientIdSchema = v.string().assert((input) => input.length > 0, `must not be empty`);
3
+ export const oauthClientIdSchema = v.pipe(v.string(), v.nonEmpty(`must not be empty`));
4
4
  //# sourceMappingURL=oauth-client-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-id.js","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"oauth-client-id.js","sourceRoot":"","sources":["../../lib/schemas/oauth-client-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC"}
@@ -1,22 +1,22 @@
1
- import * as v from '@badrap/valita';
1
+ import * as v from 'valibot';
2
2
  /**
3
3
  * base OAuth client metadata schema.
4
4
  *
5
5
  * @see {@link https://openid.net/specs/openid-connect-registration-1_0.html}
6
6
  * @see {@link https://datatracker.ietf.org/doc/html/rfc7591}
7
7
  */
8
- export declare const oauthClientMetadataSchema: v.ObjectType<{
9
- redirect_uris: v.Type<string[]>;
10
- response_types: v.Optional<("code" | "code id_token" | "code id_token token" | "code token" | "id_token" | "id_token token" | "none" | "token")[]>;
11
- grant_types: v.Optional<("authorization_code" | "client_credentials" | "implicit" | "password" | "refresh_token" | "urn:ietf:params:oauth:grant-type:jwt-bearer" | "urn:ietf:params:oauth:grant-type:saml2-bearer")[]>;
12
- scope: v.Optional<string>;
13
- token_endpoint_auth_method: v.Optional<"client_secret_basic" | "client_secret_jwt" | "client_secret_post" | "none" | "private_key_jwt" | "self_signed_tls_client_auth" | "tls_client_auth">;
14
- token_endpoint_auth_signing_alg: v.Optional<string>;
15
- userinfo_signed_response_alg: v.Optional<string>;
16
- userinfo_encrypted_response_alg: v.Optional<string>;
17
- jwks_uri: v.Optional<string>;
18
- jwks: v.Optional<{
19
- keys: ({
8
+ export declare const oauthClientMetadataSchema: v.LooseObjectSchema<{
9
+ readonly redirect_uris: v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.CheckAction<string, "use of \"localhost\" hostname is not allowed (RFC 8252), use a loopback IP such as \"127.0.0.1\" instead">]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>], "url must use http: loopback, https:, or a private-use scheme">, undefined>, v.MinLengthAction<string[], 1, "must have at least one redirect URI">]>;
10
+ readonly response_types: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["code", "token", "none", "code id_token token", "code id_token", "code token", "id_token token", "id_token"], undefined>, undefined>, undefined>;
11
+ readonly grant_types: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["authorization_code", "implicit", "refresh_token", "password", "client_credentials", "urn:ietf:params:oauth:grant-type:jwt-bearer", "urn:ietf:params:oauth:grant-type:saml2-bearer"], undefined>, undefined>, undefined>;
12
+ readonly scope: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "invalid OAuth scope">]>, undefined>;
13
+ readonly token_endpoint_auth_method: v.OptionalSchema<v.PicklistSchema<["client_secret_basic", "client_secret_jwt", "client_secret_post", "none", "private_key_jwt", "self_signed_tls_client_auth", "tls_client_auth"], undefined>, undefined>;
14
+ readonly token_endpoint_auth_signing_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
15
+ readonly userinfo_signed_response_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
16
+ readonly userinfo_encrypted_response_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
17
+ readonly jwks_uri: v.OptionalSchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>], "url must use http: or https: protocol">, undefined>;
18
+ readonly jwks: v.OptionalSchema<v.LooseObjectSchema<{
19
+ readonly keys: v.SchemaWithPipe<readonly [v.ArraySchema<v.UnknownSchema, undefined>, v.TransformAction<unknown[], (({
20
20
  kid?: string | undefined;
21
21
  use?: "enc" | "sig" | undefined;
22
22
  key_ops?: ("decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey")[] | undefined;
@@ -28,10 +28,12 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
28
28
  iat?: number | undefined;
29
29
  exp?: number | undefined;
30
30
  nbf?: number | undefined;
31
- revoked?: {
31
+ revoked?: ({
32
32
  revoked_at: number;
33
33
  reason?: string | undefined;
34
- } | undefined;
34
+ } & {
35
+ [key: string]: unknown;
36
+ }) | undefined;
35
37
  kty: "RSA";
36
38
  alg?: "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512" | undefined;
37
39
  n: string;
@@ -42,12 +44,16 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
42
44
  dp?: string | undefined;
43
45
  dq?: string | undefined;
44
46
  qi?: string | undefined;
45
- oth?: {
47
+ oth?: ({
46
48
  r?: string | undefined;
47
49
  d?: string | undefined;
48
50
  t?: string | undefined;
49
- }[] | undefined;
50
- } | {
51
+ } & {
52
+ [key: string]: unknown;
53
+ })[] | undefined;
54
+ } & {
55
+ [key: string]: unknown;
56
+ }) | ({
51
57
  kid?: string | undefined;
52
58
  use?: "enc" | "sig" | undefined;
53
59
  key_ops?: ("decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey")[] | undefined;
@@ -59,17 +65,21 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
59
65
  iat?: number | undefined;
60
66
  exp?: number | undefined;
61
67
  nbf?: number | undefined;
62
- revoked?: {
68
+ revoked?: ({
63
69
  revoked_at: number;
64
70
  reason?: string | undefined;
65
- } | undefined;
71
+ } & {
72
+ [key: string]: unknown;
73
+ }) | undefined;
66
74
  kty: "EC";
67
75
  alg?: "ES256" | "ES384" | "ES512" | undefined;
68
76
  crv: "P-256" | "P-384" | "P-521";
69
77
  x: string;
70
78
  y: string;
71
79
  d?: string | undefined;
72
- } | {
80
+ } & {
81
+ [key: string]: unknown;
82
+ }) | ({
73
83
  kid?: string | undefined;
74
84
  use?: "enc" | "sig" | undefined;
75
85
  key_ops?: ("decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey")[] | undefined;
@@ -81,17 +91,21 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
81
91
  iat?: number | undefined;
82
92
  exp?: number | undefined;
83
93
  nbf?: number | undefined;
84
- revoked?: {
94
+ revoked?: ({
85
95
  revoked_at: number;
86
96
  reason?: string | undefined;
87
- } | undefined;
97
+ } & {
98
+ [key: string]: unknown;
99
+ }) | undefined;
88
100
  kty: "EC";
89
101
  alg?: "ES256K" | undefined;
90
102
  crv: "secp256k1";
91
103
  x: string;
92
104
  y: string;
93
105
  d?: string | undefined;
94
- } | {
106
+ } & {
107
+ [key: string]: unknown;
108
+ }) | ({
95
109
  kid?: string | undefined;
96
110
  use?: "enc" | "sig" | undefined;
97
111
  key_ops?: ("decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey")[] | undefined;
@@ -103,16 +117,20 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
103
117
  iat?: number | undefined;
104
118
  exp?: number | undefined;
105
119
  nbf?: number | undefined;
106
- revoked?: {
120
+ revoked?: ({
107
121
  revoked_at: number;
108
122
  reason?: string | undefined;
109
- } | undefined;
123
+ } & {
124
+ [key: string]: unknown;
125
+ }) | undefined;
110
126
  kty: "OKP";
111
127
  alg?: "EdDSA" | undefined;
112
128
  crv: "Ed25519" | "Ed448";
113
129
  x: string;
114
130
  d?: string | undefined;
115
- } | {
131
+ } & {
132
+ [key: string]: unknown;
133
+ }) | ({
116
134
  kid?: string | undefined;
117
135
  use?: "enc" | "sig" | undefined;
118
136
  key_ops?: ("decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey")[] | undefined;
@@ -124,28 +142,32 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
124
142
  iat?: number | undefined;
125
143
  exp?: number | undefined;
126
144
  nbf?: number | undefined;
127
- revoked?: {
145
+ revoked?: ({
128
146
  revoked_at: number;
129
147
  reason?: string | undefined;
130
- } | undefined;
148
+ } & {
149
+ [key: string]: unknown;
150
+ }) | undefined;
131
151
  kty: "oct";
132
152
  alg?: "HS256" | "HS384" | "HS512" | undefined;
133
153
  k: string;
134
- })[];
135
- }>;
136
- application_type: v.Optional<"native" | "web">;
137
- subject_type: v.Optional<"pairwise" | "public">;
138
- request_object_signing_alg: v.Optional<string>;
139
- id_token_signed_response_alg: v.Optional<string>;
140
- authorization_signed_response_alg: v.Optional<string>;
141
- authorization_encrypted_response_enc: v.Optional<"A128CBC-HS256">;
142
- authorization_encrypted_response_alg: v.Optional<string>;
143
- client_id: v.Optional<string>;
144
- client_name: v.Optional<string>;
145
- client_uri: v.Optional<string>;
146
- policy_uri: v.Optional<string>;
147
- tos_uri: v.Optional<string>;
148
- logo_uri: v.Optional<string>;
154
+ } & {
155
+ [key: string]: unknown;
156
+ }))[]>]>;
157
+ }, undefined>, undefined>;
158
+ readonly application_type: v.OptionalSchema<v.PicklistSchema<["web", "native"], undefined>, undefined>;
159
+ readonly subject_type: v.OptionalSchema<v.PicklistSchema<["public", "pairwise"], undefined>, undefined>;
160
+ readonly request_object_signing_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
161
+ readonly id_token_signed_response_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
162
+ readonly authorization_signed_response_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
163
+ readonly authorization_encrypted_response_enc: v.OptionalSchema<v.LiteralSchema<"A128CBC-HS256", undefined>, undefined>;
164
+ readonly authorization_encrypted_response_alg: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
165
+ readonly client_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, "must not be empty">]>, undefined>;
166
+ readonly client_name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
167
+ readonly client_uri: v.OptionalSchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>], "url must use http: or https: protocol">, undefined>;
168
+ readonly policy_uri: v.OptionalSchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>], "url must use http: or https: protocol">, undefined>;
169
+ readonly tos_uri: v.OptionalSchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>], "url must use http: or https: protocol">, undefined>;
170
+ readonly logo_uri: v.OptionalSchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>, v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "must be a valid url">]>, v.RawCheckAction<string>]>], "url must use http: or https: protocol">, undefined>;
149
171
  /**
150
172
  * default Maximum Authentication Age. specifies that the End-User MUST be
151
173
  * actively authenticated if the End-User was authenticated longer ago than
@@ -153,12 +175,12 @@ export declare const oauthClientMetadataSchema: v.ObjectType<{
153
175
  * this default value. if omitted, no default Maximum Authentication Age is
154
176
  * specified.
155
177
  */
156
- default_max_age: v.Optional<number>;
157
- require_auth_time: v.Optional<boolean>;
158
- contacts: v.Optional<string[]>;
159
- tls_client_certificate_bound_access_tokens: v.Optional<boolean>;
160
- dpop_bound_access_tokens: v.Optional<boolean>;
161
- authorization_details_types: v.Optional<string[]>;
178
+ readonly default_max_age: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
179
+ readonly require_auth_time: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
180
+ readonly contacts: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must be a valid email">]>, undefined>, undefined>;
181
+ readonly tls_client_certificate_bound_access_tokens: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
182
+ readonly dpop_bound_access_tokens: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
183
+ readonly authorization_details_types: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
162
184
  }, undefined>;
163
- export type OAuthClientMetadata = v.Infer<typeof oauthClientMetadataSchema>;
185
+ export type OAuthClientMetadata = v.InferOutput<typeof oauthClientMetadataSchema>;
164
186
  //# sourceMappingURL=oauth-client-metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client-metadata.d.ts","sourceRoot":"","sources":["../../lib/schemas/oauth-client-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAkBpC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCrC;;;;;;OAMG;;;;;;;aAWF,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"oauth-client-metadata.d.ts","sourceRoot":"","sources":["../../lib/schemas/oauth-client-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAkB7B;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmCrC;;;;;;OAMG;;;;;;;aAWF,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC"}