@nocobase/plugin-idp-oauth 2.3.0-beta.9 → 2.4.0-alpha.10

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 (602) hide show
  1. package/build.config.ts +1 -1
  2. package/dist/client/index.js +1 -1
  3. package/dist/client-v2/{711.89a4c42afec82a37.js → 711.b95ec5ff736ba34c.js} +1 -1
  4. package/dist/client-v2/index.js +1 -1
  5. package/dist/externalVersion.js +8 -8
  6. package/dist/node_modules/light-my-request/index.js +2 -2
  7. package/dist/node_modules/light-my-request/node_modules/cookie/dist/index.d.ts +148 -0
  8. package/dist/node_modules/light-my-request/node_modules/cookie/dist/index.js +350 -0
  9. package/dist/node_modules/light-my-request/node_modules/cookie/package.json +47 -0
  10. package/dist/node_modules/light-my-request/package.json +1 -1
  11. package/dist/node_modules/ms/package.json +1 -1
  12. package/dist/node_modules/oidc-provider/README.md +28 -25
  13. package/dist/node_modules/oidc-provider/THIRD-PARTY-NOTICES.md +184 -0
  14. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba.js +169 -0
  15. package/dist/node_modules/oidc-provider/lib/actions/authorization/claims.js +132 -0
  16. package/dist/node_modules/oidc-provider/lib/actions/authorization/client.js +50 -0
  17. package/dist/node_modules/oidc-provider/lib/actions/authorization/device.js +164 -0
  18. package/dist/node_modules/oidc-provider/lib/actions/authorization/index.js +112 -163
  19. package/dist/node_modules/oidc-provider/lib/actions/authorization/interactions.js +32 -13
  20. package/dist/node_modules/oidc-provider/lib/actions/authorization/process_request_object.js +47 -25
  21. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_requests.js +127 -0
  22. package/dist/node_modules/oidc-provider/lib/actions/authorization/request_parameters.js +188 -0
  23. package/dist/node_modules/oidc-provider/lib/actions/authorization/respond.js +15 -10
  24. package/dist/node_modules/oidc-provider/lib/actions/authorization/response_parameters.js +175 -0
  25. package/dist/node_modules/oidc-provider/lib/actions/authorization/resume.js +8 -4
  26. package/dist/node_modules/oidc-provider/lib/actions/authorization/scopes.js +109 -0
  27. package/dist/node_modules/oidc-provider/lib/actions/authorization/{check_pkce.js → sender_constraints.js} +31 -8
  28. package/dist/node_modules/oidc-provider/lib/actions/authorization/{load_grant.js → session.js} +21 -4
  29. package/dist/node_modules/oidc-provider/lib/actions/challenge.js +6 -1
  30. package/dist/node_modules/oidc-provider/lib/actions/code_verification.js +1 -3
  31. package/dist/node_modules/oidc-provider/lib/actions/credential.js +757 -0
  32. package/dist/node_modules/oidc-provider/lib/actions/discovery.js +11 -2
  33. package/dist/node_modules/oidc-provider/lib/actions/end_session.js +23 -15
  34. package/dist/node_modules/oidc-provider/lib/actions/grants/authorization_code.js +24 -94
  35. package/dist/node_modules/oidc-provider/lib/actions/grants/ciba.js +22 -86
  36. package/dist/node_modules/oidc-provider/lib/actions/grants/client_credentials.js +26 -45
  37. package/dist/node_modules/oidc-provider/lib/actions/grants/device_code.js +23 -83
  38. package/dist/node_modules/oidc-provider/lib/actions/grants/index.js +1 -2
  39. package/dist/node_modules/oidc-provider/lib/actions/grants/pre_authorized_code.js +70 -0
  40. package/dist/node_modules/oidc-provider/lib/actions/grants/refresh_token.js +46 -59
  41. package/dist/node_modules/oidc-provider/lib/actions/index.js +10 -6
  42. package/dist/node_modules/oidc-provider/lib/actions/interaction.js +124 -113
  43. package/dist/node_modules/oidc-provider/lib/actions/introspection.js +137 -141
  44. package/dist/node_modules/oidc-provider/lib/actions/openid_credential_issuer.js +17 -0
  45. package/dist/node_modules/oidc-provider/lib/actions/registration.js +30 -6
  46. package/dist/node_modules/oidc-provider/lib/actions/revocation.js +56 -61
  47. package/dist/node_modules/oidc-provider/lib/actions/token.js +98 -54
  48. package/dist/node_modules/oidc-provider/lib/actions/userinfo.js +24 -102
  49. package/dist/node_modules/oidc-provider/lib/adapters/memory_adapter.js +107 -23
  50. package/dist/node_modules/oidc-provider/lib/consts/client_attributes.js +5 -5
  51. package/dist/node_modules/oidc-provider/lib/consts/jwa.js +3 -3
  52. package/dist/node_modules/oidc-provider/lib/consts/param_list.js +1 -1
  53. package/dist/node_modules/oidc-provider/lib/helpers/_/defaults.js +0 -2
  54. package/dist/node_modules/oidc-provider/lib/helpers/_/is_json_object.js +1 -0
  55. package/dist/node_modules/oidc-provider/lib/helpers/_/merge.js +0 -2
  56. package/dist/node_modules/oidc-provider/lib/helpers/_/omit_by.js +0 -2
  57. package/dist/node_modules/oidc-provider/lib/helpers/_/pick.js +1 -1
  58. package/dist/node_modules/oidc-provider/lib/helpers/_/remove.js +1 -1
  59. package/dist/node_modules/oidc-provider/lib/helpers/add_client.js +0 -1
  60. package/dist/node_modules/oidc-provider/lib/helpers/assert_provider_context.js +5 -0
  61. package/dist/node_modules/oidc-provider/lib/helpers/attention.js +2 -2
  62. package/dist/node_modules/oidc-provider/lib/helpers/challenge.js +29 -42
  63. package/dist/node_modules/oidc-provider/lib/helpers/claims.js +2 -1
  64. package/dist/node_modules/oidc-provider/lib/helpers/client_id_metadata_document.js +131 -62
  65. package/dist/node_modules/oidc-provider/lib/helpers/client_schema.js +46 -24
  66. package/dist/node_modules/oidc-provider/lib/helpers/configuration.js +363 -29
  67. package/dist/node_modules/oidc-provider/lib/helpers/configuration_result.js +84 -0
  68. package/dist/node_modules/oidc-provider/lib/helpers/constant_equals.js +1 -1
  69. package/dist/node_modules/oidc-provider/lib/helpers/defaults.js +3166 -2757
  70. package/dist/node_modules/oidc-provider/lib/helpers/errors.js +52 -34
  71. package/dist/node_modules/oidc-provider/lib/helpers/features.js +6 -8
  72. package/dist/node_modules/oidc-provider/lib/helpers/fetch_request.js +136 -99
  73. package/dist/node_modules/oidc-provider/lib/helpers/filter_claims.js +0 -1
  74. package/dist/node_modules/oidc-provider/lib/helpers/grant_authorization.js +78 -0
  75. package/dist/node_modules/oidc-provider/lib/helpers/grant_common.js +77 -103
  76. package/dist/node_modules/oidc-provider/lib/helpers/grant_refresh_token.js +22 -0
  77. package/dist/node_modules/oidc-provider/lib/helpers/grant_response.js +58 -0
  78. package/dist/node_modules/oidc-provider/lib/helpers/grant_source.js +60 -0
  79. package/dist/node_modules/oidc-provider/lib/helpers/grants.js +33 -0
  80. package/dist/node_modules/oidc-provider/lib/helpers/initialize_adapter.js +4 -2
  81. package/dist/node_modules/oidc-provider/lib/helpers/initialize_app.js +114 -90
  82. package/dist/node_modules/oidc-provider/lib/helpers/initialize_keystore.js +61 -54
  83. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/check.js +0 -2
  84. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/index.js +3 -1
  85. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompt.js +3 -4
  86. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/consent.js +2 -5
  87. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/login.js +3 -6
  88. package/dist/node_modules/oidc-provider/lib/helpers/is_valid_scope.js +5 -0
  89. package/dist/node_modules/oidc-provider/lib/helpers/jwt.js +26 -11
  90. package/dist/node_modules/oidc-provider/lib/helpers/keystore.js +2 -4
  91. package/dist/node_modules/oidc-provider/lib/helpers/lru.js +111 -0
  92. package/dist/node_modules/oidc-provider/lib/helpers/nanoid.js +80 -3
  93. package/dist/node_modules/oidc-provider/lib/helpers/normalize_authorization_details.js +54 -0
  94. package/dist/node_modules/oidc-provider/lib/helpers/oidc_context.js +18 -33
  95. package/dist/node_modules/oidc-provider/lib/helpers/params.js +8 -19
  96. package/dist/node_modules/oidc-provider/lib/helpers/pkce.js +5 -5
  97. package/dist/node_modules/oidc-provider/lib/helpers/process_response_types.js +23 -14
  98. package/dist/node_modules/oidc-provider/lib/helpers/re_render_errors.js +4 -6
  99. package/dist/node_modules/oidc-provider/lib/helpers/resolve_resource.js +5 -2
  100. package/dist/node_modules/oidc-provider/lib/helpers/resource_server.js +0 -2
  101. package/dist/node_modules/oidc-provider/lib/helpers/revoke.js +9 -2
  102. package/dist/node_modules/oidc-provider/lib/helpers/router.js +221 -0
  103. package/dist/node_modules/oidc-provider/lib/helpers/sector_validate.js +19 -13
  104. package/dist/node_modules/oidc-provider/lib/helpers/sender_constraints.js +24 -0
  105. package/dist/node_modules/oidc-provider/lib/helpers/set_rt_bindings.js +0 -2
  106. package/dist/node_modules/oidc-provider/lib/helpers/token_find.js +36 -43
  107. package/dist/node_modules/oidc-provider/lib/helpers/user_codes.js +1 -1
  108. package/dist/node_modules/oidc-provider/lib/helpers/validate_dpop.js +40 -21
  109. package/dist/node_modules/oidc-provider/lib/helpers/weak_cache.js +4 -4
  110. package/dist/node_modules/oidc-provider/lib/index.js +1 -3
  111. package/dist/node_modules/oidc-provider/lib/models/access_token.js +42 -17
  112. package/dist/node_modules/oidc-provider/lib/models/authorization_code.js +39 -17
  113. package/dist/node_modules/oidc-provider/lib/models/backchannel_authentication_request.js +37 -15
  114. package/dist/node_modules/oidc-provider/lib/models/base_model.js +42 -21
  115. package/dist/node_modules/oidc-provider/lib/models/base_token.js +5 -3
  116. package/dist/node_modules/oidc-provider/lib/models/client.js +113 -67
  117. package/dist/node_modules/oidc-provider/lib/models/client_credentials.js +30 -9
  118. package/dist/node_modules/oidc-provider/lib/models/device_code.js +40 -17
  119. package/dist/node_modules/oidc-provider/lib/models/formats/index.js +20 -12
  120. package/dist/node_modules/oidc-provider/lib/models/formats/jwt.js +165 -166
  121. package/dist/node_modules/oidc-provider/lib/models/formats/opaque.js +57 -48
  122. package/dist/node_modules/oidc-provider/lib/models/grant.js +1 -9
  123. package/dist/node_modules/oidc-provider/lib/models/id_token.js +13 -14
  124. package/dist/node_modules/oidc-provider/lib/models/index.js +2 -0
  125. package/dist/node_modules/oidc-provider/lib/models/initial_access_token.js +14 -8
  126. package/dist/node_modules/oidc-provider/lib/models/interaction.js +2 -4
  127. package/dist/node_modules/oidc-provider/lib/models/payload.js +33 -0
  128. package/dist/node_modules/oidc-provider/lib/models/pre_authorized_code.js +28 -0
  129. package/dist/node_modules/oidc-provider/lib/models/pushed_authorization_request.js +17 -9
  130. package/dist/node_modules/oidc-provider/lib/models/refresh_token.js +57 -25
  131. package/dist/node_modules/oidc-provider/lib/models/registration_access_token.js +20 -7
  132. package/dist/node_modules/oidc-provider/lib/models/replay_detection.js +1 -3
  133. package/dist/node_modules/oidc-provider/lib/models/session.js +12 -16
  134. package/dist/node_modules/oidc-provider/lib/models/token_helpers.js +79 -0
  135. package/dist/node_modules/oidc-provider/lib/provider.js +50 -23
  136. package/dist/node_modules/oidc-provider/lib/response_modes/index.js +0 -2
  137. package/dist/node_modules/oidc-provider/lib/response_modes/jwt.js +0 -1
  138. package/dist/node_modules/oidc-provider/lib/response_modes/web_message.js +14 -4
  139. package/dist/node_modules/oidc-provider/lib/shared/access_token.js +85 -0
  140. package/dist/node_modules/oidc-provider/lib/shared/assemble_params.js +1 -1
  141. package/dist/node_modules/oidc-provider/lib/shared/attest_client_auth.js +39 -16
  142. package/dist/node_modules/oidc-provider/lib/shared/authorization_error_handler.js +79 -77
  143. package/dist/node_modules/oidc-provider/lib/shared/check_rar.js +13 -28
  144. package/dist/node_modules/oidc-provider/lib/shared/check_resource.js +20 -11
  145. package/dist/node_modules/oidc-provider/lib/shared/client_auth.js +265 -201
  146. package/dist/node_modules/oidc-provider/lib/shared/cors.js +48 -16
  147. package/dist/node_modules/oidc-provider/lib/shared/error_handler.js +13 -4
  148. package/dist/node_modules/oidc-provider/lib/shared/jwt_client_auth.js +9 -3
  149. package/dist/node_modules/oidc-provider/lib/shared/reject_dupes.js +12 -32
  150. package/dist/node_modules/oidc-provider/lib/shared/selective_body.js +54 -14
  151. package/dist/node_modules/oidc-provider/lib/shared/session.js +6 -6
  152. package/dist/node_modules/oidc-provider/lib/shared/set_www_authenticate_header.js +1 -2
  153. package/dist/node_modules/oidc-provider/lib/shared/validate_json_body.js +11 -0
  154. package/dist/node_modules/oidc-provider/lib/views/index.js +43 -14
  155. package/dist/node_modules/oidc-provider/lib/views/interaction.js +62 -144
  156. package/dist/node_modules/oidc-provider/lib/views/layout.js +29 -216
  157. package/dist/node_modules/oidc-provider/lib/views/login.js +14 -23
  158. package/dist/node_modules/{undici/lib/web/fetch/LICENSE → oidc-provider/node_modules/jose/LICENSE.md} +2 -2
  159. package/dist/node_modules/oidc-provider/node_modules/jose/README.md +150 -0
  160. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/index.d.ts +55 -0
  161. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +24 -0
  162. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +40 -0
  163. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +24 -0
  164. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +46 -0
  165. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +28 -0
  166. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +51 -0
  167. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwk/embedded.d.ts +10 -0
  168. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwk/thumbprint.d.ts +15 -0
  169. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwks/local.d.ts +17 -0
  170. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwks/remote.d.ts +94 -0
  171. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/compact/sign.d.ts +20 -0
  172. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/compact/verify.d.ts +25 -0
  173. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/flattened/sign.d.ts +22 -0
  174. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/flattened/verify.d.ts +25 -0
  175. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/general/sign.d.ts +38 -0
  176. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/general/verify.d.ts +29 -0
  177. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/decrypt.d.ts +34 -0
  178. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/encrypt.d.ts +57 -0
  179. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/sign.d.ts +21 -0
  180. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/unsecured.d.ts +19 -0
  181. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/verify.d.ts +35 -0
  182. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/export.d.ts +19 -0
  183. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/generate_key_pair.d.ts +33 -0
  184. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/generate_secret.d.ts +30 -0
  185. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/import.d.ts +67 -0
  186. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/types.d.ts +736 -0
  187. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/base64url.d.ts +16 -0
  188. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/decode_jwt.d.ts +8 -0
  189. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/decode_protected_header.d.ts +10 -0
  190. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/errors.d.ts +182 -0
  191. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/index.js +70 -0
  192. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +7 -0
  193. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +26 -0
  194. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +15 -0
  195. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +35 -0
  196. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/general/decrypt.js +40 -0
  197. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/general/encrypt.js +105 -0
  198. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwk/embedded.js +30 -0
  199. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwk/thumbprint.js +55 -0
  200. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwks/local.js +59 -0
  201. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwks/remote.js +101 -0
  202. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/compact/sign.js +20 -0
  203. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/compact/verify.js +8 -0
  204. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/flattened/sign.js +23 -0
  205. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/flattened/verify.js +12 -0
  206. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/general/sign.js +58 -0
  207. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/general/verify.js +48 -0
  208. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/decrypt.js +13 -0
  209. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/encrypt.js +45 -0
  210. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/sign.js +19 -0
  211. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/unsecured.js +34 -0
  212. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/verify.js +13 -0
  213. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/export.js +35 -0
  214. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/generate_key_pair.js +35 -0
  215. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/generate_secret.js +36 -0
  216. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/import.js +53 -0
  217. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/asn1.js +138 -0
  218. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/buffer_utils.js +75 -0
  219. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/content_encryption.js +90 -0
  220. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/deflate.js +40 -0
  221. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +116 -0
  222. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +187 -0
  223. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +75 -0
  224. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_algorithms.js +74 -0
  225. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_sign.js +46 -0
  226. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_verify.js +86 -0
  227. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +146 -0
  228. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key.js +155 -0
  229. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_algorithm.js +15 -0
  230. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_descriptor.js +9 -0
  231. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_management.js +196 -0
  232. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/validate.js +122 -0
  233. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/base64url.js +16 -0
  234. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/decode_jwt.js +33 -0
  235. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/decode_protected_header.js +19 -0
  236. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/errors.js +109 -0
  237. package/dist/node_modules/oidc-provider/node_modules/jose/package.json +134 -0
  238. package/dist/node_modules/oidc-provider/node_modules/{jsesc/LICENSE-MIT.txt → koa/LICENSE} +10 -8
  239. package/dist/node_modules/oidc-provider/node_modules/koa/Readme.md +279 -0
  240. package/dist/node_modules/oidc-provider/node_modules/koa/dist/koa.mjs +4 -0
  241. package/dist/node_modules/oidc-provider/node_modules/koa/lib/application.js +344 -0
  242. package/dist/node_modules/oidc-provider/node_modules/koa/lib/context.js +248 -0
  243. package/dist/node_modules/oidc-provider/node_modules/koa/lib/is-stream.js +20 -0
  244. package/dist/node_modules/oidc-provider/node_modules/koa/lib/only.js +9 -0
  245. package/dist/node_modules/oidc-provider/node_modules/koa/lib/request.js +748 -0
  246. package/dist/node_modules/oidc-provider/node_modules/koa/lib/response.js +660 -0
  247. package/dist/node_modules/oidc-provider/node_modules/koa/lib/search-params.js +33 -0
  248. package/dist/node_modules/oidc-provider/node_modules/koa/package.json +73 -0
  249. package/dist/node_modules/oidc-provider/node_modules/media-typer/HISTORY.md +50 -0
  250. package/dist/node_modules/oidc-provider/node_modules/media-typer/LICENSE +22 -0
  251. package/dist/node_modules/oidc-provider/node_modules/media-typer/README.md +93 -0
  252. package/dist/node_modules/oidc-provider/node_modules/media-typer/index.js +143 -0
  253. package/dist/node_modules/oidc-provider/node_modules/media-typer/package.json +33 -0
  254. package/dist/node_modules/oidc-provider/node_modules/mime-db/HISTORY.md +541 -0
  255. package/dist/node_modules/oidc-provider/node_modules/mime-db/LICENSE +23 -0
  256. package/dist/node_modules/oidc-provider/node_modules/mime-db/README.md +109 -0
  257. package/dist/node_modules/oidc-provider/node_modules/mime-db/db.json +9342 -0
  258. package/dist/node_modules/oidc-provider/node_modules/mime-db/index.js +12 -0
  259. package/dist/node_modules/oidc-provider/node_modules/mime-db/package.json +56 -0
  260. package/dist/node_modules/oidc-provider/node_modules/mime-types/HISTORY.md +421 -0
  261. package/dist/node_modules/oidc-provider/node_modules/mime-types/LICENSE +23 -0
  262. package/dist/node_modules/oidc-provider/node_modules/mime-types/README.md +126 -0
  263. package/dist/node_modules/oidc-provider/node_modules/mime-types/index.js +211 -0
  264. package/dist/node_modules/oidc-provider/node_modules/mime-types/mimeScore.js +52 -0
  265. package/dist/node_modules/oidc-provider/node_modules/mime-types/package.json +45 -0
  266. package/dist/node_modules/oidc-provider/node_modules/type-is/HISTORY.md +292 -0
  267. package/dist/node_modules/oidc-provider/node_modules/type-is/LICENSE +23 -0
  268. package/dist/node_modules/oidc-provider/node_modules/type-is/README.md +198 -0
  269. package/dist/node_modules/oidc-provider/node_modules/type-is/index.js +250 -0
  270. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/HISTORY.md +428 -0
  271. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/LICENSE +23 -0
  272. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/README.md +126 -0
  273. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/index.js +211 -0
  274. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/mimeScore.js +57 -0
  275. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/package.json +49 -0
  276. package/dist/node_modules/oidc-provider/node_modules/type-is/package.json +47 -0
  277. package/dist/node_modules/oidc-provider/package.json +5 -42
  278. package/dist/server/service.js +7 -2
  279. package/package.json +3 -3
  280. package/dist/node_modules/eta/LICENSE +0 -7
  281. package/dist/node_modules/eta/README.md +0 -185
  282. package/dist/node_modules/eta/dist/core.d.ts +0 -179
  283. package/dist/node_modules/eta/dist/core.d.ts.map +0 -1
  284. package/dist/node_modules/eta/dist/core.js +0 -42
  285. package/dist/node_modules/eta/dist/core.js.map +0 -1
  286. package/dist/node_modules/eta/dist/index.cjs +0 -542
  287. package/dist/node_modules/eta/dist/index.cjs.map +0 -1
  288. package/dist/node_modules/eta/dist/index.d.cts +0 -187
  289. package/dist/node_modules/eta/dist/index.d.cts.map +0 -1
  290. package/dist/node_modules/eta/dist/index.d.mts +0 -187
  291. package/dist/node_modules/eta/dist/index.d.mts.map +0 -1
  292. package/dist/node_modules/eta/dist/index.mjs +0 -512
  293. package/dist/node_modules/eta/dist/index.mjs.map +0 -1
  294. package/dist/node_modules/eta/package.json +0 -75
  295. package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_claims.js +0 -28
  296. package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_defaults.js +0 -17
  297. package/dist/node_modules/oidc-provider/lib/actions/authorization/authenticated_client_id.js +0 -6
  298. package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_remap_errors.js +0 -17
  299. package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_response.js +0 -41
  300. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_ciba_context.js +0 -12
  301. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_claims.js +0 -68
  302. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client.js +0 -21
  303. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client_grant_type.js +0 -21
  304. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_dpop_jkt.js +0 -35
  305. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_extra_params.js +0 -18
  306. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_id_token_hint.js +0 -23
  307. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_max_age.js +0 -25
  308. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_openid_scope.js +0 -47
  309. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_prompt.js +0 -25
  310. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_redirect_uri.js +0 -41
  311. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_requested_expiry.js +0 -16
  312. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_mode.js +0 -54
  313. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_type.js +0 -26
  314. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_scope.js +0 -53
  315. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_load_account.js +0 -58
  316. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_required.js +0 -13
  317. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_authorization_response.js +0 -31
  318. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow.js +0 -31
  319. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_errors.js +0 -37
  320. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_response.js +0 -55
  321. package/dist/node_modules/oidc-provider/lib/actions/authorization/interaction_emit.js +0 -9
  322. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_account.js +0 -15
  323. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_pushed_authorization_request.js +0 -36
  324. package/dist/node_modules/oidc-provider/lib/actions/authorization/oauth_required.js +0 -11
  325. package/dist/node_modules/oidc-provider/lib/actions/authorization/oidc_required.js +0 -27
  326. package/dist/node_modules/oidc-provider/lib/actions/authorization/one_redirect_uri_clients.js +0 -20
  327. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_remap_errors.js +0 -17
  328. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_response.js +0 -65
  329. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_registration.js +0 -12
  330. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_request_and_uri.js +0 -12
  331. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_unsupported.js +0 -33
  332. package/dist/node_modules/oidc-provider/lib/actions/authorization/strip_outside_jar_params.js +0 -19
  333. package/dist/node_modules/oidc-provider/lib/actions/authorization/unsupported_rar.js +0 -9
  334. package/dist/node_modules/oidc-provider/lib/helpers/_/pick_by.js +0 -10
  335. package/dist/node_modules/oidc-provider/lib/models/formats/dynamic.js +0 -21
  336. package/dist/node_modules/oidc-provider/lib/models/mixins/apply.js +0 -4
  337. package/dist/node_modules/oidc-provider/lib/models/mixins/consumable.js +0 -17
  338. package/dist/node_modules/oidc-provider/lib/models/mixins/has_format.js +0 -46
  339. package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_id.js +0 -12
  340. package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_type.js +0 -8
  341. package/dist/node_modules/oidc-provider/lib/models/mixins/has_policies.js +0 -38
  342. package/dist/node_modules/oidc-provider/lib/models/mixins/is_attestation_constrained.js +0 -15
  343. package/dist/node_modules/oidc-provider/lib/models/mixins/is_sender_constrained.js +0 -50
  344. package/dist/node_modules/oidc-provider/lib/models/mixins/is_session_bound.js +0 -38
  345. package/dist/node_modules/oidc-provider/lib/models/mixins/set_audience.js +0 -21
  346. package/dist/node_modules/oidc-provider/lib/models/mixins/stores_auth.js +0 -16
  347. package/dist/node_modules/oidc-provider/lib/models/mixins/stores_pkce.js +0 -9
  348. package/dist/node_modules/oidc-provider/lib/shared/conditional_body.js +0 -9
  349. package/dist/node_modules/oidc-provider/node_modules/@koa/router/LICENSE +0 -21
  350. package/dist/node_modules/oidc-provider/node_modules/@koa/router/README.md +0 -1370
  351. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.mts +0 -1003
  352. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.ts +0 -1003
  353. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.js +0 -1616
  354. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.mjs +0 -1573
  355. package/dist/node_modules/oidc-provider/node_modules/@koa/router/package.json +0 -122
  356. package/dist/node_modules/oidc-provider/node_modules/http-errors/HISTORY.md +0 -186
  357. package/dist/node_modules/oidc-provider/node_modules/http-errors/LICENSE +0 -23
  358. package/dist/node_modules/oidc-provider/node_modules/http-errors/README.md +0 -169
  359. package/dist/node_modules/oidc-provider/node_modules/http-errors/index.js +0 -290
  360. package/dist/node_modules/oidc-provider/node_modules/http-errors/package.json +0 -54
  361. package/dist/node_modules/oidc-provider/node_modules/jsesc/README.md +0 -422
  362. package/dist/node_modules/oidc-provider/node_modules/jsesc/bin/jsesc +0 -148
  363. package/dist/node_modules/oidc-provider/node_modules/jsesc/jsesc.js +0 -337
  364. package/dist/node_modules/oidc-provider/node_modules/jsesc/man/jsesc.1 +0 -94
  365. package/dist/node_modules/oidc-provider/node_modules/jsesc/package.json +0 -56
  366. package/dist/node_modules/oidc-provider/node_modules/nanoid/LICENSE +0 -20
  367. package/dist/node_modules/oidc-provider/node_modules/nanoid/README.md +0 -38
  368. package/dist/node_modules/oidc-provider/node_modules/nanoid/bin/nanoid.js +0 -55
  369. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.browser.js +0 -29
  370. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.d.ts +0 -106
  371. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.js +0 -47
  372. package/dist/node_modules/oidc-provider/node_modules/nanoid/nanoid.js +0 -1
  373. package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.d.ts +0 -48
  374. package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.js +0 -21
  375. package/dist/node_modules/oidc-provider/node_modules/nanoid/package.json +0 -46
  376. package/dist/node_modules/oidc-provider/node_modules/nanoid/url-alphabet/index.js +0 -2
  377. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/LICENSE +0 -21
  378. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/Readme.md +0 -224
  379. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.d.ts +0 -147
  380. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js +0 -431
  381. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js.map +0 -1
  382. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/package.json +0 -64
  383. package/dist/node_modules/quick-lru/index.d.ts +0 -178
  384. package/dist/node_modules/quick-lru/index.js +0 -329
  385. package/dist/node_modules/quick-lru/license +0 -9
  386. package/dist/node_modules/quick-lru/package.json +0 -54
  387. package/dist/node_modules/quick-lru/readme.md +0 -236
  388. package/dist/node_modules/statuses/HISTORY.md +0 -87
  389. package/dist/node_modules/statuses/LICENSE +0 -23
  390. package/dist/node_modules/statuses/README.md +0 -139
  391. package/dist/node_modules/statuses/codes.json +0 -65
  392. package/dist/node_modules/statuses/index.js +0 -146
  393. package/dist/node_modules/statuses/package.json +0 -49
  394. package/dist/node_modules/undici/LICENSE +0 -21
  395. package/dist/node_modules/undici/README.md +0 -741
  396. package/dist/node_modules/undici/docs/docs/api/Agent.md +0 -84
  397. package/dist/node_modules/undici/docs/docs/api/BalancedPool.md +0 -99
  398. package/dist/node_modules/undici/docs/docs/api/CacheStorage.md +0 -30
  399. package/dist/node_modules/undici/docs/docs/api/CacheStore.md +0 -164
  400. package/dist/node_modules/undici/docs/docs/api/Client.md +0 -285
  401. package/dist/node_modules/undici/docs/docs/api/ClientStats.md +0 -27
  402. package/dist/node_modules/undici/docs/docs/api/Connector.md +0 -115
  403. package/dist/node_modules/undici/docs/docs/api/ContentType.md +0 -57
  404. package/dist/node_modules/undici/docs/docs/api/Cookies.md +0 -101
  405. package/dist/node_modules/undici/docs/docs/api/Debug.md +0 -62
  406. package/dist/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +0 -315
  407. package/dist/node_modules/undici/docs/docs/api/Dispatcher.md +0 -1392
  408. package/dist/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +0 -159
  409. package/dist/node_modules/undici/docs/docs/api/Errors.md +0 -49
  410. package/dist/node_modules/undici/docs/docs/api/EventSource.md +0 -45
  411. package/dist/node_modules/undici/docs/docs/api/Fetch.md +0 -60
  412. package/dist/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -139
  413. package/dist/node_modules/undici/docs/docs/api/H2CClient.md +0 -263
  414. package/dist/node_modules/undici/docs/docs/api/MockAgent.md +0 -603
  415. package/dist/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -197
  416. package/dist/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -43
  417. package/dist/node_modules/undici/docs/docs/api/MockClient.md +0 -81
  418. package/dist/node_modules/undici/docs/docs/api/MockErrors.md +0 -12
  419. package/dist/node_modules/undici/docs/docs/api/MockPool.md +0 -555
  420. package/dist/node_modules/undici/docs/docs/api/Pool.md +0 -84
  421. package/dist/node_modules/undici/docs/docs/api/PoolStats.md +0 -35
  422. package/dist/node_modules/undici/docs/docs/api/ProxyAgent.md +0 -229
  423. package/dist/node_modules/undici/docs/docs/api/RedirectHandler.md +0 -93
  424. package/dist/node_modules/undici/docs/docs/api/RetryAgent.md +0 -50
  425. package/dist/node_modules/undici/docs/docs/api/RetryHandler.md +0 -118
  426. package/dist/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -145
  427. package/dist/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -616
  428. package/dist/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -274
  429. package/dist/node_modules/undici/docs/docs/api/Util.md +0 -25
  430. package/dist/node_modules/undici/docs/docs/api/WebSocket.md +0 -141
  431. package/dist/node_modules/undici/docs/docs/api/api-lifecycle.md +0 -91
  432. package/dist/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -64
  433. package/dist/node_modules/undici/docs/docs/best-practices/crawling.md +0 -58
  434. package/dist/node_modules/undici/docs/docs/best-practices/mocking-request.md +0 -190
  435. package/dist/node_modules/undici/docs/docs/best-practices/proxy.md +0 -127
  436. package/dist/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +0 -224
  437. package/dist/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -63
  438. package/dist/node_modules/undici/index-fetch.js +0 -65
  439. package/dist/node_modules/undici/index.d.ts +0 -3
  440. package/dist/node_modules/undici/index.js +0 -234
  441. package/dist/node_modules/undici/lib/api/abort-signal.js +0 -59
  442. package/dist/node_modules/undici/lib/api/api-connect.js +0 -110
  443. package/dist/node_modules/undici/lib/api/api-pipeline.js +0 -252
  444. package/dist/node_modules/undici/lib/api/api-request.js +0 -214
  445. package/dist/node_modules/undici/lib/api/api-stream.js +0 -209
  446. package/dist/node_modules/undici/lib/api/api-upgrade.js +0 -111
  447. package/dist/node_modules/undici/lib/api/index.js +0 -7
  448. package/dist/node_modules/undici/lib/api/readable.js +0 -580
  449. package/dist/node_modules/undici/lib/cache/memory-cache-store.js +0 -234
  450. package/dist/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -461
  451. package/dist/node_modules/undici/lib/core/connect.js +0 -137
  452. package/dist/node_modules/undici/lib/core/constants.js +0 -143
  453. package/dist/node_modules/undici/lib/core/diagnostics.js +0 -227
  454. package/dist/node_modules/undici/lib/core/errors.js +0 -477
  455. package/dist/node_modules/undici/lib/core/request.js +0 -438
  456. package/dist/node_modules/undici/lib/core/socks5-client.js +0 -407
  457. package/dist/node_modules/undici/lib/core/socks5-utils.js +0 -203
  458. package/dist/node_modules/undici/lib/core/symbols.js +0 -75
  459. package/dist/node_modules/undici/lib/core/tree.js +0 -160
  460. package/dist/node_modules/undici/lib/core/util.js +0 -992
  461. package/dist/node_modules/undici/lib/dispatcher/agent.js +0 -158
  462. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -219
  463. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +0 -1610
  464. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +0 -995
  465. package/dist/node_modules/undici/lib/dispatcher/client.js +0 -659
  466. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -165
  467. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
  468. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -146
  469. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -135
  470. package/dist/node_modules/undici/lib/dispatcher/h2c-client.js +0 -51
  471. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +0 -214
  472. package/dist/node_modules/undici/lib/dispatcher/pool.js +0 -118
  473. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -318
  474. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  475. package/dist/node_modules/undici/lib/dispatcher/round-robin-pool.js +0 -137
  476. package/dist/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +0 -249
  477. package/dist/node_modules/undici/lib/encoding/index.js +0 -33
  478. package/dist/node_modules/undici/lib/global.js +0 -50
  479. package/dist/node_modules/undici/lib/handler/cache-handler.js +0 -578
  480. package/dist/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
  481. package/dist/node_modules/undici/lib/handler/decorator-handler.js +0 -67
  482. package/dist/node_modules/undici/lib/handler/deduplication-handler.js +0 -460
  483. package/dist/node_modules/undici/lib/handler/redirect-handler.js +0 -238
  484. package/dist/node_modules/undici/lib/handler/retry-handler.js +0 -394
  485. package/dist/node_modules/undici/lib/handler/unwrap-handler.js +0 -100
  486. package/dist/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  487. package/dist/node_modules/undici/lib/interceptor/cache.js +0 -495
  488. package/dist/node_modules/undici/lib/interceptor/decompress.js +0 -259
  489. package/dist/node_modules/undici/lib/interceptor/deduplicate.js +0 -117
  490. package/dist/node_modules/undici/lib/interceptor/dns.js +0 -571
  491. package/dist/node_modules/undici/lib/interceptor/dump.js +0 -112
  492. package/dist/node_modules/undici/lib/interceptor/redirect.js +0 -21
  493. package/dist/node_modules/undici/lib/interceptor/response-error.js +0 -95
  494. package/dist/node_modules/undici/lib/interceptor/retry.js +0 -19
  495. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  496. package/dist/node_modules/undici/lib/llhttp/constants.d.ts +0 -195
  497. package/dist/node_modules/undici/lib/llhttp/constants.js +0 -531
  498. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
  499. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
  500. package/dist/node_modules/undici/lib/llhttp/utils.d.ts +0 -2
  501. package/dist/node_modules/undici/lib/llhttp/utils.js +0 -12
  502. package/dist/node_modules/undici/lib/mock/mock-agent.js +0 -232
  503. package/dist/node_modules/undici/lib/mock/mock-call-history.js +0 -248
  504. package/dist/node_modules/undici/lib/mock/mock-client.js +0 -68
  505. package/dist/node_modules/undici/lib/mock/mock-errors.js +0 -29
  506. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
  507. package/dist/node_modules/undici/lib/mock/mock-pool.js +0 -68
  508. package/dist/node_modules/undici/lib/mock/mock-symbols.js +0 -32
  509. package/dist/node_modules/undici/lib/mock/mock-utils.js +0 -486
  510. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  511. package/dist/node_modules/undici/lib/mock/snapshot-agent.js +0 -353
  512. package/dist/node_modules/undici/lib/mock/snapshot-recorder.js +0 -588
  513. package/dist/node_modules/undici/lib/mock/snapshot-utils.js +0 -158
  514. package/dist/node_modules/undici/lib/util/cache.js +0 -407
  515. package/dist/node_modules/undici/lib/util/date.js +0 -653
  516. package/dist/node_modules/undici/lib/util/promise.js +0 -28
  517. package/dist/node_modules/undici/lib/util/runtime-features.js +0 -124
  518. package/dist/node_modules/undici/lib/util/stats.js +0 -32
  519. package/dist/node_modules/undici/lib/util/timers.js +0 -425
  520. package/dist/node_modules/undici/lib/web/cache/cache.js +0 -864
  521. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  522. package/dist/node_modules/undici/lib/web/cache/util.js +0 -45
  523. package/dist/node_modules/undici/lib/web/cookies/constants.js +0 -12
  524. package/dist/node_modules/undici/lib/web/cookies/index.js +0 -199
  525. package/dist/node_modules/undici/lib/web/cookies/parse.js +0 -322
  526. package/dist/node_modules/undici/lib/web/cookies/util.js +0 -282
  527. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
  528. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +0 -501
  529. package/dist/node_modules/undici/lib/web/eventsource/util.js +0 -29
  530. package/dist/node_modules/undici/lib/web/fetch/body.js +0 -509
  531. package/dist/node_modules/undici/lib/web/fetch/constants.js +0 -131
  532. package/dist/node_modules/undici/lib/web/fetch/data-url.js +0 -596
  533. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -575
  534. package/dist/node_modules/undici/lib/web/fetch/formdata.js +0 -259
  535. package/dist/node_modules/undici/lib/web/fetch/global.js +0 -40
  536. package/dist/node_modules/undici/lib/web/fetch/headers.js +0 -719
  537. package/dist/node_modules/undici/lib/web/fetch/index.js +0 -2397
  538. package/dist/node_modules/undici/lib/web/fetch/request.js +0 -1115
  539. package/dist/node_modules/undici/lib/web/fetch/response.js +0 -641
  540. package/dist/node_modules/undici/lib/web/fetch/util.js +0 -1520
  541. package/dist/node_modules/undici/lib/web/infra/index.js +0 -229
  542. package/dist/node_modules/undici/lib/web/subresource-integrity/Readme.md +0 -9
  543. package/dist/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +0 -307
  544. package/dist/node_modules/undici/lib/web/webidl/index.js +0 -1006
  545. package/dist/node_modules/undici/lib/web/websocket/connection.js +0 -329
  546. package/dist/node_modules/undici/lib/web/websocket/constants.js +0 -126
  547. package/dist/node_modules/undici/lib/web/websocket/events.js +0 -331
  548. package/dist/node_modules/undici/lib/web/websocket/frame.js +0 -133
  549. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -118
  550. package/dist/node_modules/undici/lib/web/websocket/receiver.js +0 -450
  551. package/dist/node_modules/undici/lib/web/websocket/sender.js +0 -109
  552. package/dist/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -104
  553. package/dist/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -497
  554. package/dist/node_modules/undici/lib/web/websocket/util.js +0 -347
  555. package/dist/node_modules/undici/lib/web/websocket/websocket.js +0 -751
  556. package/dist/node_modules/undici/package.json +0 -152
  557. package/dist/node_modules/undici/scripts/strip-comments.js +0 -10
  558. package/dist/node_modules/undici/types/README.md +0 -6
  559. package/dist/node_modules/undici/types/agent.d.ts +0 -32
  560. package/dist/node_modules/undici/types/api.d.ts +0 -43
  561. package/dist/node_modules/undici/types/balanced-pool.d.ts +0 -30
  562. package/dist/node_modules/undici/types/cache-interceptor.d.ts +0 -179
  563. package/dist/node_modules/undici/types/cache.d.ts +0 -36
  564. package/dist/node_modules/undici/types/client-stats.d.ts +0 -15
  565. package/dist/node_modules/undici/types/client.d.ts +0 -123
  566. package/dist/node_modules/undici/types/connector.d.ts +0 -36
  567. package/dist/node_modules/undici/types/content-type.d.ts +0 -21
  568. package/dist/node_modules/undici/types/cookies.d.ts +0 -30
  569. package/dist/node_modules/undici/types/diagnostics-channel.d.ts +0 -74
  570. package/dist/node_modules/undici/types/dispatcher.d.ts +0 -273
  571. package/dist/node_modules/undici/types/env-http-proxy-agent.d.ts +0 -22
  572. package/dist/node_modules/undici/types/errors.d.ts +0 -177
  573. package/dist/node_modules/undici/types/eventsource.d.ts +0 -66
  574. package/dist/node_modules/undici/types/fetch.d.ts +0 -231
  575. package/dist/node_modules/undici/types/formdata.d.ts +0 -114
  576. package/dist/node_modules/undici/types/global-dispatcher.d.ts +0 -9
  577. package/dist/node_modules/undici/types/global-origin.d.ts +0 -7
  578. package/dist/node_modules/undici/types/h2c-client.d.ts +0 -73
  579. package/dist/node_modules/undici/types/handlers.d.ts +0 -14
  580. package/dist/node_modules/undici/types/header.d.ts +0 -160
  581. package/dist/node_modules/undici/types/index.d.ts +0 -91
  582. package/dist/node_modules/undici/types/interceptors.d.ts +0 -80
  583. package/dist/node_modules/undici/types/mock-agent.d.ts +0 -68
  584. package/dist/node_modules/undici/types/mock-call-history.d.ts +0 -111
  585. package/dist/node_modules/undici/types/mock-client.d.ts +0 -27
  586. package/dist/node_modules/undici/types/mock-errors.d.ts +0 -12
  587. package/dist/node_modules/undici/types/mock-interceptor.d.ts +0 -94
  588. package/dist/node_modules/undici/types/mock-pool.d.ts +0 -27
  589. package/dist/node_modules/undici/types/patch.d.ts +0 -29
  590. package/dist/node_modules/undici/types/pool-stats.d.ts +0 -19
  591. package/dist/node_modules/undici/types/pool.d.ts +0 -41
  592. package/dist/node_modules/undici/types/proxy-agent.d.ts +0 -29
  593. package/dist/node_modules/undici/types/readable.d.ts +0 -68
  594. package/dist/node_modules/undici/types/retry-agent.d.ts +0 -8
  595. package/dist/node_modules/undici/types/retry-handler.d.ts +0 -125
  596. package/dist/node_modules/undici/types/round-robin-pool.d.ts +0 -41
  597. package/dist/node_modules/undici/types/snapshot-agent.d.ts +0 -109
  598. package/dist/node_modules/undici/types/socks5-proxy-agent.d.ts +0 -25
  599. package/dist/node_modules/undici/types/util.d.ts +0 -18
  600. package/dist/node_modules/undici/types/utility.d.ts +0 -7
  601. package/dist/node_modules/undici/types/webidl.d.ts +0 -347
  602. package/dist/node_modules/undici/types/websocket.d.ts +0 -188
@@ -0,0 +1,757 @@
1
+ import {
2
+ calculateJwkThumbprint,
3
+ decodeJwt,
4
+ decodeProtectedHeader,
5
+ EmbeddedJWK,
6
+ jwtVerify,
7
+ } from 'jose';
8
+ import { boolean } from '../helpers/configuration_result.js';
9
+ import {
10
+ CredentialRequestDenied,
11
+ InvalidCredentialRequest,
12
+ InvalidNonce,
13
+ InvalidProof,
14
+ InvalidToken,
15
+ UnknownCredentialConfiguration,
16
+ UnknownCredentialIdentifier,
17
+ } from '../helpers/errors.js';
18
+ import instance from '../helpers/weak_cache.js';
19
+ import {
20
+ getValidateAccessToken,
21
+ loadAccessTokenAccount,
22
+ loadAccessTokenClient,
23
+ loadAccessTokenGrant,
24
+ } from '../shared/access_token.js';
25
+ import paramsMiddleware from '../shared/assemble_params.js';
26
+ import noCache from '../shared/no_cache.js';
27
+ import rejectDupes from '../shared/reject_dupes.js';
28
+ import { json as parseBody } from '../shared/selective_body.js';
29
+ import getSetWWWAuthenticateHeader from '../shared/set_www_authenticate_header.js';
30
+ import getValidateJsonBody from '../shared/validate_json_body.js';
31
+
32
+ const PARAM_LIST = new Set([
33
+ 'credential_identifier',
34
+ 'credential_configuration_id',
35
+ 'proof',
36
+ 'proofs',
37
+ ]);
38
+
39
+ const JWK_REQUIREMENTS = new Map([
40
+ ['RSA', { public: ['n', 'e'], private: ['d', 'p', 'q', 'dp', 'dq', 'qi', 'oth'] }],
41
+ ['EC', { public: ['crv', 'x', 'y'], private: ['d'] }],
42
+ ['OKP', { public: ['crv', 'x'], private: ['d'] }],
43
+ ['AKP', { public: ['alg', 'pub'], private: ['priv'] }],
44
+ ]);
45
+
46
+ function assertSingleProofType(proofs) {
47
+
48
+
49
+ const types = Object.keys(proofs);
50
+ if (types.length !== 1) {
51
+ throw new InvalidProof('exactly one proof type must be provided in proofs');
52
+ }
53
+
54
+ const [type] = types;
55
+ const values = proofs[type];
56
+ if (!Array.isArray(values) || values.length === 0) {
57
+ throw new InvalidProof(`proofs.${type} must be a non-empty array`);
58
+ }
59
+
60
+ return { type, values };
61
+ }
62
+
63
+ async function verifyKeyAttestation(
64
+ attestationJwt,
65
+ openid4vci,
66
+ {
67
+ errorPrefix, supportedAlgs, requiredClaims, keyAttestationsRequired,
68
+ },
69
+ ctx,
70
+ ) {
71
+
72
+
73
+
74
+ let header;
75
+ let claims;
76
+ try {
77
+ header = decodeProtectedHeader(attestationJwt);
78
+ claims = decodeJwt(attestationJwt);
79
+ } catch (cause) {
80
+ throw new InvalidProof(`${errorPrefix} must be a valid JWT`, { cause });
81
+ }
82
+
83
+ if (typeof claims.iss !== 'string' || !claims.iss.length) {
84
+ throw new InvalidProof(`${errorPrefix} iss must be a non-empty string`);
85
+ }
86
+
87
+ let key;
88
+ try {
89
+ key = await openid4vci.getKeyAttestationSignaturePublicKey(
90
+ ctx,
91
+ claims.iss,
92
+ header,
93
+ ctx.oidc.client,
94
+ );
95
+ } catch (cause) {
96
+ throw new InvalidProof(`${errorPrefix} signature verification failed`, { cause });
97
+ }
98
+
99
+ let payload;
100
+ try {
101
+ ({ payload } = await jwtVerify(attestationJwt, key, {
102
+ algorithms: supportedAlgs,
103
+ typ: 'key-attestation+jwt',
104
+ requiredClaims,
105
+ }));
106
+ } catch (cause) {
107
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'typ') {
108
+ throw new InvalidProof(`${errorPrefix} typ must be key-attestation+jwt`, { cause });
109
+ }
110
+
111
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'iat') {
112
+ throw new InvalidProof(`${errorPrefix} iat must be present`, { cause });
113
+ }
114
+
115
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'exp') {
116
+ throw new InvalidProof(`${errorPrefix} exp must be present`, { cause });
117
+ }
118
+
119
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'attested_keys') {
120
+ throw new InvalidProof(`${errorPrefix} attested_keys must be present`, { cause });
121
+ }
122
+
123
+ if (cause?.code === 'ERR_JWT_EXPIRED') {
124
+ throw new InvalidProof(`${errorPrefix} has expired`, { cause });
125
+ }
126
+
127
+ if (supportedAlgs && cause?.code === 'ERR_JOSE_ALG_NOT_ALLOWED') {
128
+ throw new InvalidProof(
129
+ `${errorPrefix} alg is not supported for this credential configuration`,
130
+ { cause },
131
+ );
132
+ }
133
+
134
+ throw new InvalidProof(`${errorPrefix} signature verification failed`, { cause });
135
+ }
136
+
137
+ if (!Array.isArray(payload.attested_keys) || payload.attested_keys.length === 0) {
138
+ throw new InvalidProof(`${errorPrefix} attested_keys must be a non-empty array`);
139
+ }
140
+
141
+ for (const jwk of payload.attested_keys) {
142
+ if (jwk === null || typeof jwk !== 'object' || Array.isArray(jwk)) {
143
+ throw new InvalidProof(`${errorPrefix} attested_keys entries must be JWK objects`);
144
+ }
145
+
146
+ try {
147
+ const requirements = JWK_REQUIREMENTS.get(jwk.kty);
148
+ if (!requirements) {
149
+ if (typeof jwk.kty === 'string' && jwk.kty && jwk.kty !== 'oct') {
150
+ continue;
151
+ }
152
+ throw new TypeError('JWK does not identify a public asymmetric key type');
153
+ }
154
+ if (requirements.private.some((member) => Object.hasOwn(jwk, member))) {
155
+ throw new TypeError('JWK is not a public asymmetric key');
156
+ }
157
+ if (!requirements.public.every((member) => (
158
+ typeof jwk[member] === 'string'
159
+ && jwk[member].length !== 0
160
+ ))) {
161
+ throw new TypeError('JWK public key members must be non-empty strings');
162
+ }
163
+ } catch (cause) {
164
+ throw new InvalidProof(
165
+ `${errorPrefix} attested_keys entries must be public asymmetric JWKs`,
166
+ { cause },
167
+ );
168
+ }
169
+ }
170
+
171
+
172
+ if (payload.key_storage !== undefined) {
173
+ if (
174
+ !Array.isArray(payload.key_storage)
175
+ || payload.key_storage.length === 0
176
+ || !payload.key_storage.every((v) => typeof v === 'string' && v.length > 0)
177
+ ) {
178
+ throw new InvalidProof(`${errorPrefix} key_storage must be a non-empty array of non-empty strings`);
179
+ }
180
+ }
181
+
182
+ if (payload.user_authentication !== undefined) {
183
+ if (
184
+ !Array.isArray(payload.user_authentication)
185
+ || payload.user_authentication.length === 0
186
+ || !payload.user_authentication.every((v) => typeof v === 'string' && v.length > 0)
187
+ ) {
188
+ throw new InvalidProof(`${errorPrefix} user_authentication must be a non-empty array of non-empty strings`);
189
+ }
190
+ }
191
+
192
+ if (payload.certification !== undefined) {
193
+ if (typeof payload.certification !== 'string' || payload.certification.length === 0) {
194
+ throw new InvalidProof(`${errorPrefix} certification must be a non-empty string`);
195
+ }
196
+ if (!URL.canParse(payload.certification)) {
197
+ throw new InvalidProof(`${errorPrefix} certification must be a URL`);
198
+ }
199
+ }
200
+
201
+
202
+ if (keyAttestationsRequired) {
203
+ if (Array.isArray(keyAttestationsRequired.key_storage)) {
204
+ if (
205
+ !Array.isArray(payload.key_storage)
206
+ || !payload.key_storage.some((v) => keyAttestationsRequired.key_storage.includes(v))
207
+ ) {
208
+ throw new InvalidProof(`${errorPrefix} key_storage does not meet the credential configuration requirements`);
209
+ }
210
+ }
211
+
212
+ if (Array.isArray(keyAttestationsRequired.user_authentication)) {
213
+ if (
214
+ !Array.isArray(payload.user_authentication)
215
+ || !payload.user_authentication.some(
216
+ (v) => keyAttestationsRequired.user_authentication.includes(v),
217
+ )
218
+ ) {
219
+ throw new InvalidProof(`${errorPrefix} user_authentication does not meet the credential configuration requirements`);
220
+ }
221
+ }
222
+ }
223
+
224
+ return {
225
+ jwt: attestationJwt,
226
+ attestedKeys: payload.attested_keys,
227
+ payload,
228
+ };
229
+ }
230
+
231
+ function keyAttestationParams(proofType, credentialConfiguration) {
232
+ const config = credentialConfiguration.proof_types_supported?.[proofType];
233
+ const configuredAlgs = config?.proof_signing_alg_values_supported;
234
+
235
+ return {
236
+ supportedAlgs: Array.isArray(configuredAlgs) && configuredAlgs.length
237
+ ? [...configuredAlgs]
238
+ : undefined,
239
+ keyAttestationsRequired: config?.key_attestations_required,
240
+ };
241
+ }
242
+
243
+ async function verifyKeyAttestationHeader(
244
+ attestationJwt,
245
+ proofJwk,
246
+ openid4vci,
247
+ credentialConfiguration,
248
+ ctx,
249
+ ) {
250
+
251
+
252
+
253
+ const result = await verifyKeyAttestation(
254
+ attestationJwt,
255
+ openid4vci,
256
+ {
257
+ errorPrefix: 'jwt proof key_attestation',
258
+ requiredClaims: ['iat', 'exp', 'attested_keys'],
259
+ ...keyAttestationParams('jwt', credentialConfiguration),
260
+ },
261
+ ctx,
262
+ );
263
+
264
+
265
+ const proofThumbprint = await calculateJwkThumbprint(proofJwk);
266
+ const attestedThumbprints = await Promise.all(
267
+ result.attestedKeys
268
+ .filter((jwk) => JWK_REQUIREMENTS.has(jwk.kty))
269
+ .map((jwk) => calculateJwkThumbprint(jwk)),
270
+ );
271
+
272
+ if (!attestedThumbprints.includes(proofThumbprint)) {
273
+ throw new InvalidProof(
274
+ 'jwt proof jwk is not among the attested keys in key_attestation',
275
+ );
276
+ }
277
+
278
+ return result;
279
+ }
280
+
281
+ async function embeddedProofJwk(protectedHeader, token) {
282
+ const keyReferences = ['kid', 'jwk', 'x5c']
283
+ .filter((parameter) => Object.hasOwn(protectedHeader, parameter));
284
+
285
+ if (keyReferences.length !== 1) {
286
+ throw new InvalidProof('jwt proof must use exactly one of kid, jwk, or x5c');
287
+ }
288
+
289
+ return EmbeddedJWK(protectedHeader, token);
290
+ }
291
+
292
+ async function verifyJwtProof(proof, issuer, clientId, supportedAlgs, cNonceChallenges) {
293
+
294
+
295
+
296
+
297
+ let payload;
298
+ try {
299
+ ({ payload } = await jwtVerify(proof, embeddedProofJwk, {
300
+ algorithms: supportedAlgs ? [...supportedAlgs] : undefined,
301
+ audience: issuer,
302
+ typ: 'openid4vci-proof+jwt',
303
+ requiredClaims: ['iat', 'nonce'],
304
+ }));
305
+ } catch (cause) {
306
+ if (cause?.code === 'ERR_JWS_INVALID') {
307
+ throw new InvalidProof('jwt proof must be a compact JWS', { cause });
308
+ }
309
+
310
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'typ') {
311
+ throw new InvalidProof('jwt proof typ must be openid4vci-proof+jwt', { cause });
312
+ }
313
+
314
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'aud') {
315
+ throw new InvalidProof('jwt proof aud must equal credential issuer identifier', { cause });
316
+ }
317
+
318
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'iat') {
319
+ throw new InvalidProof('jwt proof iat must be present', { cause });
320
+ }
321
+
322
+ if (cause?.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED' && cause?.claim === 'nonce') {
323
+ throw new InvalidProof('jwt proof nonce must be present', { cause });
324
+ }
325
+
326
+ if (supportedAlgs && cause?.code === 'ERR_JOSE_ALG_NOT_ALLOWED') {
327
+ throw new InvalidProof(
328
+ 'jwt proof alg is not supported for this credential configuration',
329
+ { cause },
330
+ );
331
+ }
332
+
333
+ if (cause instanceof InvalidProof) {
334
+ throw cause;
335
+ }
336
+
337
+ throw new InvalidProof('jwt proof signature verification failed', { cause });
338
+ }
339
+
340
+ if (typeof payload.aud !== 'string') {
341
+ throw new InvalidProof('jwt proof aud must be a string');
342
+ }
343
+
344
+ if (payload.iss !== undefined && payload.iss !== clientId) {
345
+ throw new InvalidProof('jwt proof iss must equal client_id');
346
+ }
347
+
348
+ if (typeof payload.nonce !== 'string' || !payload.nonce.length) {
349
+ throw new InvalidProof('jwt proof nonce must be a non-empty string');
350
+ }
351
+
352
+ if (!cNonceChallenges.checkChallenge(payload.nonce)) {
353
+
354
+
355
+ throw new InvalidNonce('jwt proof nonce is invalid, retrieve a new c_nonce from the nonce endpoint');
356
+ }
357
+
358
+
359
+ return decodeProtectedHeader(proof);
360
+ }
361
+
362
+ async function verifyAttestationProof(
363
+ attestationJwt,
364
+ openid4vci,
365
+ credentialConfiguration,
366
+ cNonceChallenges,
367
+ ctx,
368
+ ) {
369
+
370
+
371
+ const result = await verifyKeyAttestation(
372
+ attestationJwt,
373
+ openid4vci,
374
+ {
375
+ errorPrefix: 'attestation proof',
376
+ requiredClaims: ['iat', 'attested_keys'],
377
+ ...keyAttestationParams('attestation', credentialConfiguration),
378
+ },
379
+ ctx,
380
+ );
381
+
382
+ if (typeof result.payload.nonce !== 'string' || !result.payload.nonce.length) {
383
+ throw new InvalidProof(
384
+ 'attestation proof nonce must be present',
385
+ );
386
+ }
387
+
388
+ if (!cNonceChallenges.checkChallenge(result.payload.nonce)) {
389
+ throw new InvalidNonce(
390
+ 'attestation proof nonce is invalid, retrieve a new c_nonce from the nonce endpoint',
391
+ );
392
+ }
393
+
394
+ return result;
395
+ }
396
+
397
+ function normalizeProofs(body) {
398
+
399
+
400
+ const hasProof = body.proof !== undefined;
401
+ const hasProofs = body.proofs !== undefined;
402
+
403
+ if (hasProof && hasProofs) {
404
+ throw new InvalidCredentialRequest('proof and proofs cannot be used together');
405
+ }
406
+
407
+ if (!hasProof) {
408
+ return body.proofs;
409
+ }
410
+
411
+ const { proof } = body;
412
+
413
+ if (proof === null || typeof proof !== 'object' || Array.isArray(proof)) {
414
+ throw new InvalidProof('proof must be a JSON object');
415
+ }
416
+
417
+ if (typeof proof.proof_type !== 'string' || !proof.proof_type.length) {
418
+ throw new InvalidProof('proof.proof_type must be a non-empty string');
419
+ }
420
+
421
+ if (proof.proof_type === 'jwt') {
422
+ if (typeof proof.jwt !== 'string' || !proof.jwt.length) {
423
+ throw new InvalidProof('proof.jwt must be a non-empty string when proof_type is jwt');
424
+ }
425
+
426
+ return {
427
+ jwt: [proof.jwt],
428
+ };
429
+ }
430
+
431
+ if (proof.proof_type === 'attestation') {
432
+ if (typeof proof.attestation !== 'string' || !proof.attestation.length) {
433
+ throw new InvalidProof(
434
+ 'proof.attestation must be a non-empty string when proof_type is attestation',
435
+ );
436
+ }
437
+
438
+ return {
439
+ attestation: [proof.attestation],
440
+ };
441
+ }
442
+
443
+ throw new InvalidProof(`proof type '${proof.proof_type}' is not supported by this deployment`);
444
+ }
445
+
446
+ function assertProofs(proofs, credentialConfiguration) {
447
+
448
+
449
+ if (credentialConfiguration.proof_types_supported !== undefined && proofs === undefined) {
450
+ throw new InvalidProof('proofs are required for this credential configuration');
451
+ }
452
+
453
+ if (proofs !== undefined && (proofs === null || typeof proofs !== 'object' || Array.isArray(proofs))) {
454
+ throw new InvalidProof('proofs must be a JSON object');
455
+ }
456
+ }
457
+
458
+ function batchSize(openid4vci) {
459
+ const configured = openid4vci?.metadata?.batch_credential_issuance?.batch_size;
460
+
461
+ if (!Number.isSafeInteger(configured) || configured < 2) {
462
+ return undefined;
463
+ }
464
+
465
+ return configured;
466
+ }
467
+
468
+ const validateAccessToken = getValidateAccessToken();
469
+ const validateBody = getValidateJsonBody(
470
+ InvalidCredentialRequest,
471
+ 'credential request body must be a JSON object',
472
+ );
473
+
474
+ export default [
475
+ noCache,
476
+ getSetWWWAuthenticateHeader({ includeScope: false }),
477
+
478
+ parseBody,
479
+ validateBody,
480
+ paramsMiddleware.bind(undefined, PARAM_LIST),
481
+ rejectDupes.bind(undefined, {}),
482
+
483
+ validateAccessToken,
484
+
485
+ async function validateAudience(ctx, next) {
486
+ const { openid4vci } = instance(ctx.oidc.provider).configuration.features;
487
+ const expected = await openid4vci.credentialEndpointExpectedAudience(ctx);
488
+
489
+ if (typeof expected !== 'string' || !expected) {
490
+ throw new Error('features.openid4vci.credentialEndpointExpectedAudience must return a string');
491
+ }
492
+
493
+ if (ctx.oidc.accessToken.aud !== expected) {
494
+ throw new InvalidToken('token audience prevents accessing the credential endpoint');
495
+ }
496
+
497
+ return next();
498
+ },
499
+
500
+ loadAccessTokenClient,
501
+ loadAccessTokenAccount,
502
+ loadAccessTokenGrant,
503
+
504
+ async function issueCredential(ctx) {
505
+ const { openid4vci } = instance(ctx.oidc.provider).configuration.features;
506
+ const { CNonceChallenges } = instance(ctx.oidc.provider);
507
+ const { body } = ctx.oidc;
508
+
509
+ const hasCredentialIdentifier = body.credential_identifier !== undefined;
510
+ const hasCredentialConfigurationId = body.credential_configuration_id !== undefined;
511
+
512
+ if (hasCredentialIdentifier === hasCredentialConfigurationId) {
513
+ throw new InvalidCredentialRequest(
514
+ 'exactly one of credential_identifier or credential_configuration_id must be provided',
515
+ );
516
+ }
517
+
518
+ const { credentialConfigurationsSupported } = openid4vci;
519
+
520
+ let credentialConfigurationId;
521
+ let credentialConfiguration;
522
+ let credentialIdentifier;
523
+
524
+ if (hasCredentialIdentifier) {
525
+
526
+
527
+ credentialIdentifier = body.credential_identifier;
528
+ if (typeof credentialIdentifier !== 'string' || !credentialIdentifier.length) {
529
+ throw new InvalidCredentialRequest('credential_identifier must be a non-empty string');
530
+ }
531
+
532
+ let matchingDetail;
533
+ if (Array.isArray(ctx.oidc.accessToken.rar)) {
534
+ matchingDetail = ctx.oidc.accessToken.rar.find((detail) => (
535
+ detail?.type === 'openid_credential'
536
+ && Array.isArray(detail?.credential_identifiers)
537
+ && detail.credential_identifiers.includes(credentialIdentifier)
538
+ ));
539
+ }
540
+
541
+ if (!matchingDetail) {
542
+ throw new UnknownCredentialIdentifier('credential_identifier not found in the access token authorization details');
543
+ }
544
+
545
+ credentialConfigurationId = matchingDetail.credential_configuration_id;
546
+ if (!Object.hasOwn(credentialConfigurationsSupported, credentialConfigurationId)) {
547
+ throw new UnknownCredentialConfiguration('credential configuration referenced by credential_identifier is unknown');
548
+ }
549
+ credentialConfiguration = credentialConfigurationsSupported[credentialConfigurationId];
550
+ } else {
551
+ credentialConfigurationId = body.credential_configuration_id;
552
+ if (typeof credentialConfigurationId !== 'string' || !credentialConfigurationId.length) {
553
+ throw new InvalidCredentialRequest('credential_configuration_id must be a non-empty string');
554
+ }
555
+
556
+ if (!Object.hasOwn(credentialConfigurationsSupported, credentialConfigurationId)) {
557
+ throw new UnknownCredentialConfiguration('requested credential_configuration_id is unknown');
558
+ }
559
+ credentialConfiguration = credentialConfigurationsSupported[credentialConfigurationId];
560
+ }
561
+
562
+ const policyAllowed = boolean(
563
+ await openid4vci.credentialConfigurationPolicy(ctx, {
564
+ credentialConfigurationId,
565
+ credentialConfiguration,
566
+ credentialIdentifier,
567
+ client: ctx.oidc.client,
568
+ account: ctx.oidc.account,
569
+ grant: ctx.oidc.grant,
570
+ accessToken: ctx.oidc.accessToken,
571
+ }),
572
+ 'features.openid4vci.credentialConfigurationPolicy',
573
+ );
574
+
575
+ if (!policyAllowed) {
576
+ throw new CredentialRequestDenied(
577
+ 'access token does not authorize issuance for requested credential configuration',
578
+ );
579
+ }
580
+
581
+ const proofs = normalizeProofs(body);
582
+
583
+ assertProofs(proofs, credentialConfiguration);
584
+
585
+
586
+
587
+
588
+
589
+ if (!hasCredentialIdentifier) {
590
+ if (
591
+ credentialConfiguration.scope
592
+ && !ctx.oidc.accessToken.scopes.has(credentialConfiguration.scope)
593
+ ) {
594
+ throw new CredentialRequestDenied(
595
+ 'access token does not authorize issuance for requested credential configuration',
596
+ );
597
+ }
598
+
599
+ if (!credentialConfiguration.scope) {
600
+
601
+
602
+
603
+
604
+
605
+ const authorized = (
606
+ Array.isArray(ctx.oidc.accessToken.rar)
607
+ && ctx.oidc.accessToken.rar.some((detail) => (
608
+ detail?.type === 'openid_credential'
609
+ && detail?.credential_configuration_id === credentialConfigurationId
610
+ ))
611
+ );
612
+
613
+ if (!authorized) {
614
+ throw new CredentialRequestDenied(
615
+ 'access token does not authorize issuance for requested credential configuration',
616
+ );
617
+ }
618
+ }
619
+ }
620
+
621
+ if (proofs !== undefined) {
622
+ const { type, values } = assertSingleProofType(proofs);
623
+
624
+ if (
625
+ credentialConfiguration.proof_types_supported !== undefined
626
+ && !Object.hasOwn(credentialConfiguration.proof_types_supported, type)
627
+ ) {
628
+ throw new InvalidProof(
629
+ `proof type '${type}' is not supported for this credential configuration`,
630
+ );
631
+ }
632
+
633
+ if (type === 'jwt') {
634
+ const maxBatchSize = batchSize(openid4vci);
635
+
636
+ if (values.length > 1) {
637
+ if (!maxBatchSize) {
638
+ throw new InvalidProof('multiple jwt proofs are not supported when batch issuance is disabled');
639
+ }
640
+
641
+ if (values.length > maxBatchSize) {
642
+ throw new InvalidProof(`jwt proof batch exceeds configured batch_size (${maxBatchSize})`);
643
+ }
644
+ }
645
+
646
+ const configuredAlgs = (
647
+ credentialConfiguration.proof_types_supported?.jwt?.proof_signing_alg_values_supported
648
+ );
649
+ const supportedAlgs = Array.isArray(configuredAlgs) && configuredAlgs.length
650
+ ? new Set(configuredAlgs)
651
+ : undefined;
652
+
653
+ let keyAttestationResult;
654
+ for (const proof of values) {
655
+ const header = await verifyJwtProof(
656
+ proof,
657
+ ctx.oidc.issuer,
658
+ ctx.oidc.client.clientId,
659
+ supportedAlgs,
660
+ CNonceChallenges,
661
+ );
662
+
663
+
664
+ if (header.key_attestation !== undefined) {
665
+ if (typeof header.key_attestation !== 'string' || !header.key_attestation.length) {
666
+ throw new InvalidProof('jwt proof key_attestation header must be a non-empty string');
667
+ }
668
+
669
+ const result = await verifyKeyAttestationHeader(
670
+ header.key_attestation,
671
+ header.jwk,
672
+ openid4vci,
673
+ credentialConfiguration,
674
+ ctx,
675
+ );
676
+
677
+ if (keyAttestationResult) {
678
+
679
+ if (keyAttestationResult.jwt !== result.jwt) {
680
+ throw new InvalidProof('all jwt proofs in a batch must reference the same key_attestation');
681
+ }
682
+ } else {
683
+ keyAttestationResult = result;
684
+ }
685
+ }
686
+ }
687
+
688
+
689
+ const jwtKeyAttestationsRequired = (
690
+ credentialConfiguration.proof_types_supported?.jwt?.key_attestations_required
691
+ );
692
+ if (jwtKeyAttestationsRequired && !keyAttestationResult) {
693
+ throw new InvalidProof(
694
+ 'jwt proof must include a key_attestation header when key attestations are required',
695
+ );
696
+ }
697
+
698
+ if (keyAttestationResult) {
699
+ proofs.key_attestation = keyAttestationResult;
700
+ }
701
+ } else if (type === 'attestation') {
702
+
703
+
704
+ if (values.length !== 1) {
705
+ throw new InvalidProof(
706
+ 'proofs.attestation must contain exactly one key attestation JWT',
707
+ );
708
+ }
709
+
710
+ const [attestationJwt] = values;
711
+ if (typeof attestationJwt !== 'string' || !attestationJwt.length) {
712
+ throw new InvalidProof(
713
+ 'attestation proof must be a non-empty string',
714
+ );
715
+ }
716
+
717
+ const result = await verifyAttestationProof(
718
+ attestationJwt,
719
+ openid4vci,
720
+ credentialConfiguration,
721
+ CNonceChallenges,
722
+ ctx,
723
+ );
724
+
725
+
726
+ proofs.attestation = result;
727
+ } else {
728
+ throw new InvalidProof(`proof type '${type}' is not supported by this deployment`);
729
+ }
730
+ }
731
+
732
+ const out = await openid4vci.issueCredential(ctx, {
733
+ credentialConfigurationId,
734
+ credentialConfiguration,
735
+ credentialIdentifier,
736
+ body,
737
+ proofs,
738
+ client: ctx.oidc.client,
739
+ account: ctx.oidc.account,
740
+ grant: ctx.oidc.grant,
741
+ accessToken: ctx.oidc.accessToken,
742
+ });
743
+
744
+ if (!out || typeof out !== 'object' || Array.isArray(out)) {
745
+ throw new Error('features.openid4vci.issueCredential must return an object');
746
+ }
747
+
748
+ if (!Array.isArray(out.credentials) || !out.credentials.length) {
749
+ throw new Error('features.openid4vci.issueCredential must return a non-empty credentials array');
750
+ }
751
+
752
+ ctx.body = {
753
+ credentials: out.credentials,
754
+ notification_id: out.notification_id,
755
+ };
756
+ },
757
+ ];