@nocobase/plugin-idp-oauth 2.2.16 → 2.2.18

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 (598) hide show
  1. package/build.config.ts +1 -1
  2. package/dist/externalVersion.js +8 -8
  3. package/dist/node_modules/light-my-request/index.js +2 -2
  4. package/dist/node_modules/light-my-request/node_modules/cookie/dist/index.d.ts +148 -0
  5. package/dist/node_modules/light-my-request/node_modules/cookie/dist/index.js +350 -0
  6. package/dist/node_modules/light-my-request/node_modules/cookie/package.json +47 -0
  7. package/dist/node_modules/light-my-request/package.json +1 -1
  8. package/dist/node_modules/ms/package.json +1 -1
  9. package/dist/node_modules/oidc-provider/README.md +28 -25
  10. package/dist/node_modules/oidc-provider/THIRD-PARTY-NOTICES.md +184 -0
  11. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba.js +169 -0
  12. package/dist/node_modules/oidc-provider/lib/actions/authorization/claims.js +132 -0
  13. package/dist/node_modules/oidc-provider/lib/actions/authorization/client.js +50 -0
  14. package/dist/node_modules/oidc-provider/lib/actions/authorization/device.js +164 -0
  15. package/dist/node_modules/oidc-provider/lib/actions/authorization/index.js +112 -163
  16. package/dist/node_modules/oidc-provider/lib/actions/authorization/interactions.js +32 -13
  17. package/dist/node_modules/oidc-provider/lib/actions/authorization/process_request_object.js +47 -25
  18. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_requests.js +127 -0
  19. package/dist/node_modules/oidc-provider/lib/actions/authorization/request_parameters.js +188 -0
  20. package/dist/node_modules/oidc-provider/lib/actions/authorization/respond.js +15 -10
  21. package/dist/node_modules/oidc-provider/lib/actions/authorization/response_parameters.js +175 -0
  22. package/dist/node_modules/oidc-provider/lib/actions/authorization/resume.js +8 -4
  23. package/dist/node_modules/oidc-provider/lib/actions/authorization/scopes.js +109 -0
  24. package/dist/node_modules/oidc-provider/lib/actions/authorization/{check_pkce.js → sender_constraints.js} +31 -8
  25. package/dist/node_modules/oidc-provider/lib/actions/authorization/{load_grant.js → session.js} +21 -4
  26. package/dist/node_modules/oidc-provider/lib/actions/challenge.js +6 -1
  27. package/dist/node_modules/oidc-provider/lib/actions/code_verification.js +1 -3
  28. package/dist/node_modules/oidc-provider/lib/actions/credential.js +757 -0
  29. package/dist/node_modules/oidc-provider/lib/actions/discovery.js +11 -2
  30. package/dist/node_modules/oidc-provider/lib/actions/end_session.js +23 -15
  31. package/dist/node_modules/oidc-provider/lib/actions/grants/authorization_code.js +24 -94
  32. package/dist/node_modules/oidc-provider/lib/actions/grants/ciba.js +22 -86
  33. package/dist/node_modules/oidc-provider/lib/actions/grants/client_credentials.js +26 -45
  34. package/dist/node_modules/oidc-provider/lib/actions/grants/device_code.js +23 -83
  35. package/dist/node_modules/oidc-provider/lib/actions/grants/index.js +1 -2
  36. package/dist/node_modules/oidc-provider/lib/actions/grants/pre_authorized_code.js +70 -0
  37. package/dist/node_modules/oidc-provider/lib/actions/grants/refresh_token.js +46 -59
  38. package/dist/node_modules/oidc-provider/lib/actions/index.js +10 -6
  39. package/dist/node_modules/oidc-provider/lib/actions/interaction.js +124 -113
  40. package/dist/node_modules/oidc-provider/lib/actions/introspection.js +137 -141
  41. package/dist/node_modules/oidc-provider/lib/actions/openid_credential_issuer.js +17 -0
  42. package/dist/node_modules/oidc-provider/lib/actions/registration.js +30 -6
  43. package/dist/node_modules/oidc-provider/lib/actions/revocation.js +56 -61
  44. package/dist/node_modules/oidc-provider/lib/actions/token.js +98 -54
  45. package/dist/node_modules/oidc-provider/lib/actions/userinfo.js +24 -102
  46. package/dist/node_modules/oidc-provider/lib/adapters/memory_adapter.js +107 -23
  47. package/dist/node_modules/oidc-provider/lib/consts/client_attributes.js +5 -5
  48. package/dist/node_modules/oidc-provider/lib/consts/jwa.js +3 -3
  49. package/dist/node_modules/oidc-provider/lib/consts/param_list.js +1 -1
  50. package/dist/node_modules/oidc-provider/lib/helpers/_/defaults.js +0 -2
  51. package/dist/node_modules/oidc-provider/lib/helpers/_/is_json_object.js +1 -0
  52. package/dist/node_modules/oidc-provider/lib/helpers/_/merge.js +0 -2
  53. package/dist/node_modules/oidc-provider/lib/helpers/_/omit_by.js +0 -2
  54. package/dist/node_modules/oidc-provider/lib/helpers/_/pick.js +1 -1
  55. package/dist/node_modules/oidc-provider/lib/helpers/_/remove.js +1 -1
  56. package/dist/node_modules/oidc-provider/lib/helpers/add_client.js +0 -1
  57. package/dist/node_modules/oidc-provider/lib/helpers/assert_provider_context.js +5 -0
  58. package/dist/node_modules/oidc-provider/lib/helpers/attention.js +2 -2
  59. package/dist/node_modules/oidc-provider/lib/helpers/challenge.js +29 -42
  60. package/dist/node_modules/oidc-provider/lib/helpers/claims.js +2 -1
  61. package/dist/node_modules/oidc-provider/lib/helpers/client_id_metadata_document.js +131 -62
  62. package/dist/node_modules/oidc-provider/lib/helpers/client_schema.js +46 -24
  63. package/dist/node_modules/oidc-provider/lib/helpers/configuration.js +363 -29
  64. package/dist/node_modules/oidc-provider/lib/helpers/configuration_result.js +84 -0
  65. package/dist/node_modules/oidc-provider/lib/helpers/constant_equals.js +1 -1
  66. package/dist/node_modules/oidc-provider/lib/helpers/defaults.js +3166 -2757
  67. package/dist/node_modules/oidc-provider/lib/helpers/errors.js +52 -34
  68. package/dist/node_modules/oidc-provider/lib/helpers/features.js +6 -8
  69. package/dist/node_modules/oidc-provider/lib/helpers/fetch_request.js +136 -99
  70. package/dist/node_modules/oidc-provider/lib/helpers/filter_claims.js +0 -1
  71. package/dist/node_modules/oidc-provider/lib/helpers/grant_authorization.js +78 -0
  72. package/dist/node_modules/oidc-provider/lib/helpers/grant_common.js +77 -103
  73. package/dist/node_modules/oidc-provider/lib/helpers/grant_refresh_token.js +22 -0
  74. package/dist/node_modules/oidc-provider/lib/helpers/grant_response.js +58 -0
  75. package/dist/node_modules/oidc-provider/lib/helpers/grant_source.js +60 -0
  76. package/dist/node_modules/oidc-provider/lib/helpers/grants.js +33 -0
  77. package/dist/node_modules/oidc-provider/lib/helpers/initialize_adapter.js +4 -2
  78. package/dist/node_modules/oidc-provider/lib/helpers/initialize_app.js +114 -90
  79. package/dist/node_modules/oidc-provider/lib/helpers/initialize_keystore.js +61 -54
  80. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/check.js +0 -2
  81. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/index.js +3 -1
  82. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompt.js +3 -4
  83. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/consent.js +2 -5
  84. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/login.js +3 -6
  85. package/dist/node_modules/oidc-provider/lib/helpers/is_valid_scope.js +5 -0
  86. package/dist/node_modules/oidc-provider/lib/helpers/jwt.js +26 -11
  87. package/dist/node_modules/oidc-provider/lib/helpers/keystore.js +2 -4
  88. package/dist/node_modules/oidc-provider/lib/helpers/lru.js +111 -0
  89. package/dist/node_modules/oidc-provider/lib/helpers/nanoid.js +80 -3
  90. package/dist/node_modules/oidc-provider/lib/helpers/normalize_authorization_details.js +54 -0
  91. package/dist/node_modules/oidc-provider/lib/helpers/oidc_context.js +18 -33
  92. package/dist/node_modules/oidc-provider/lib/helpers/params.js +8 -19
  93. package/dist/node_modules/oidc-provider/lib/helpers/pkce.js +5 -5
  94. package/dist/node_modules/oidc-provider/lib/helpers/process_response_types.js +23 -14
  95. package/dist/node_modules/oidc-provider/lib/helpers/re_render_errors.js +4 -6
  96. package/dist/node_modules/oidc-provider/lib/helpers/resolve_resource.js +5 -2
  97. package/dist/node_modules/oidc-provider/lib/helpers/resource_server.js +0 -2
  98. package/dist/node_modules/oidc-provider/lib/helpers/revoke.js +9 -2
  99. package/dist/node_modules/oidc-provider/lib/helpers/router.js +221 -0
  100. package/dist/node_modules/oidc-provider/lib/helpers/sector_validate.js +19 -13
  101. package/dist/node_modules/oidc-provider/lib/helpers/sender_constraints.js +24 -0
  102. package/dist/node_modules/oidc-provider/lib/helpers/set_rt_bindings.js +0 -2
  103. package/dist/node_modules/oidc-provider/lib/helpers/token_find.js +36 -43
  104. package/dist/node_modules/oidc-provider/lib/helpers/user_codes.js +1 -1
  105. package/dist/node_modules/oidc-provider/lib/helpers/validate_dpop.js +40 -21
  106. package/dist/node_modules/oidc-provider/lib/helpers/weak_cache.js +4 -4
  107. package/dist/node_modules/oidc-provider/lib/index.js +1 -3
  108. package/dist/node_modules/oidc-provider/lib/models/access_token.js +42 -17
  109. package/dist/node_modules/oidc-provider/lib/models/authorization_code.js +39 -17
  110. package/dist/node_modules/oidc-provider/lib/models/backchannel_authentication_request.js +37 -15
  111. package/dist/node_modules/oidc-provider/lib/models/base_model.js +42 -21
  112. package/dist/node_modules/oidc-provider/lib/models/base_token.js +5 -3
  113. package/dist/node_modules/oidc-provider/lib/models/client.js +113 -67
  114. package/dist/node_modules/oidc-provider/lib/models/client_credentials.js +30 -9
  115. package/dist/node_modules/oidc-provider/lib/models/device_code.js +40 -17
  116. package/dist/node_modules/oidc-provider/lib/models/formats/index.js +20 -12
  117. package/dist/node_modules/oidc-provider/lib/models/formats/jwt.js +165 -166
  118. package/dist/node_modules/oidc-provider/lib/models/formats/opaque.js +57 -48
  119. package/dist/node_modules/oidc-provider/lib/models/grant.js +1 -9
  120. package/dist/node_modules/oidc-provider/lib/models/id_token.js +13 -14
  121. package/dist/node_modules/oidc-provider/lib/models/index.js +2 -0
  122. package/dist/node_modules/oidc-provider/lib/models/initial_access_token.js +14 -8
  123. package/dist/node_modules/oidc-provider/lib/models/interaction.js +2 -4
  124. package/dist/node_modules/oidc-provider/lib/models/payload.js +33 -0
  125. package/dist/node_modules/oidc-provider/lib/models/pre_authorized_code.js +28 -0
  126. package/dist/node_modules/oidc-provider/lib/models/pushed_authorization_request.js +17 -9
  127. package/dist/node_modules/oidc-provider/lib/models/refresh_token.js +57 -25
  128. package/dist/node_modules/oidc-provider/lib/models/registration_access_token.js +20 -7
  129. package/dist/node_modules/oidc-provider/lib/models/replay_detection.js +1 -3
  130. package/dist/node_modules/oidc-provider/lib/models/session.js +12 -16
  131. package/dist/node_modules/oidc-provider/lib/models/token_helpers.js +79 -0
  132. package/dist/node_modules/oidc-provider/lib/provider.js +50 -23
  133. package/dist/node_modules/oidc-provider/lib/response_modes/index.js +0 -2
  134. package/dist/node_modules/oidc-provider/lib/response_modes/jwt.js +0 -1
  135. package/dist/node_modules/oidc-provider/lib/response_modes/web_message.js +14 -4
  136. package/dist/node_modules/oidc-provider/lib/shared/access_token.js +85 -0
  137. package/dist/node_modules/oidc-provider/lib/shared/assemble_params.js +1 -1
  138. package/dist/node_modules/oidc-provider/lib/shared/attest_client_auth.js +39 -16
  139. package/dist/node_modules/oidc-provider/lib/shared/authorization_error_handler.js +79 -77
  140. package/dist/node_modules/oidc-provider/lib/shared/check_rar.js +13 -28
  141. package/dist/node_modules/oidc-provider/lib/shared/check_resource.js +20 -11
  142. package/dist/node_modules/oidc-provider/lib/shared/client_auth.js +265 -201
  143. package/dist/node_modules/oidc-provider/lib/shared/cors.js +48 -16
  144. package/dist/node_modules/oidc-provider/lib/shared/error_handler.js +13 -4
  145. package/dist/node_modules/oidc-provider/lib/shared/jwt_client_auth.js +9 -3
  146. package/dist/node_modules/oidc-provider/lib/shared/reject_dupes.js +12 -32
  147. package/dist/node_modules/oidc-provider/lib/shared/selective_body.js +54 -14
  148. package/dist/node_modules/oidc-provider/lib/shared/session.js +6 -6
  149. package/dist/node_modules/oidc-provider/lib/shared/set_www_authenticate_header.js +1 -2
  150. package/dist/node_modules/oidc-provider/lib/shared/validate_json_body.js +11 -0
  151. package/dist/node_modules/oidc-provider/lib/views/index.js +43 -14
  152. package/dist/node_modules/oidc-provider/lib/views/interaction.js +62 -144
  153. package/dist/node_modules/oidc-provider/lib/views/layout.js +29 -216
  154. package/dist/node_modules/oidc-provider/lib/views/login.js +14 -23
  155. package/dist/node_modules/{undici/lib/web/fetch/LICENSE → oidc-provider/node_modules/jose/LICENSE.md} +2 -2
  156. package/dist/node_modules/oidc-provider/node_modules/jose/README.md +150 -0
  157. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/index.d.ts +55 -0
  158. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +24 -0
  159. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +40 -0
  160. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +24 -0
  161. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +46 -0
  162. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +28 -0
  163. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +51 -0
  164. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwk/embedded.d.ts +10 -0
  165. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwk/thumbprint.d.ts +15 -0
  166. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwks/local.d.ts +17 -0
  167. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwks/remote.d.ts +94 -0
  168. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/compact/sign.d.ts +20 -0
  169. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/compact/verify.d.ts +25 -0
  170. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/flattened/sign.d.ts +22 -0
  171. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/flattened/verify.d.ts +25 -0
  172. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/general/sign.d.ts +38 -0
  173. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/general/verify.d.ts +29 -0
  174. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/decrypt.d.ts +34 -0
  175. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/encrypt.d.ts +57 -0
  176. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/sign.d.ts +21 -0
  177. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/unsecured.d.ts +19 -0
  178. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/verify.d.ts +35 -0
  179. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/export.d.ts +19 -0
  180. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/generate_key_pair.d.ts +33 -0
  181. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/generate_secret.d.ts +30 -0
  182. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/import.d.ts +67 -0
  183. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/types.d.ts +736 -0
  184. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/base64url.d.ts +16 -0
  185. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/decode_jwt.d.ts +8 -0
  186. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/decode_protected_header.d.ts +10 -0
  187. package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/errors.d.ts +182 -0
  188. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/index.js +70 -0
  189. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +7 -0
  190. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +26 -0
  191. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +15 -0
  192. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +35 -0
  193. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/general/decrypt.js +40 -0
  194. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/general/encrypt.js +105 -0
  195. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwk/embedded.js +30 -0
  196. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwk/thumbprint.js +55 -0
  197. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwks/local.js +59 -0
  198. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwks/remote.js +101 -0
  199. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/compact/sign.js +20 -0
  200. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/compact/verify.js +8 -0
  201. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/flattened/sign.js +23 -0
  202. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/flattened/verify.js +12 -0
  203. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/general/sign.js +58 -0
  204. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/general/verify.js +48 -0
  205. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/decrypt.js +13 -0
  206. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/encrypt.js +45 -0
  207. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/sign.js +19 -0
  208. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/unsecured.js +34 -0
  209. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/verify.js +13 -0
  210. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/export.js +35 -0
  211. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/generate_key_pair.js +35 -0
  212. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/generate_secret.js +36 -0
  213. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/import.js +53 -0
  214. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/asn1.js +138 -0
  215. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/buffer_utils.js +75 -0
  216. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/content_encryption.js +90 -0
  217. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/deflate.js +40 -0
  218. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +116 -0
  219. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +187 -0
  220. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +75 -0
  221. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_algorithms.js +74 -0
  222. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_sign.js +46 -0
  223. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_verify.js +86 -0
  224. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +146 -0
  225. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key.js +155 -0
  226. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_algorithm.js +15 -0
  227. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_descriptor.js +9 -0
  228. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_management.js +196 -0
  229. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/validate.js +122 -0
  230. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/base64url.js +16 -0
  231. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/decode_jwt.js +33 -0
  232. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/decode_protected_header.js +19 -0
  233. package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/errors.js +109 -0
  234. package/dist/node_modules/oidc-provider/node_modules/jose/package.json +134 -0
  235. package/dist/node_modules/oidc-provider/node_modules/{jsesc/LICENSE-MIT.txt → koa/LICENSE} +10 -8
  236. package/dist/node_modules/oidc-provider/node_modules/koa/Readme.md +279 -0
  237. package/dist/node_modules/oidc-provider/node_modules/koa/dist/koa.mjs +4 -0
  238. package/dist/node_modules/oidc-provider/node_modules/koa/lib/application.js +344 -0
  239. package/dist/node_modules/oidc-provider/node_modules/koa/lib/context.js +248 -0
  240. package/dist/node_modules/oidc-provider/node_modules/koa/lib/is-stream.js +20 -0
  241. package/dist/node_modules/oidc-provider/node_modules/koa/lib/only.js +9 -0
  242. package/dist/node_modules/oidc-provider/node_modules/koa/lib/request.js +748 -0
  243. package/dist/node_modules/oidc-provider/node_modules/koa/lib/response.js +660 -0
  244. package/dist/node_modules/oidc-provider/node_modules/koa/lib/search-params.js +33 -0
  245. package/dist/node_modules/oidc-provider/node_modules/koa/package.json +73 -0
  246. package/dist/node_modules/oidc-provider/node_modules/media-typer/HISTORY.md +50 -0
  247. package/dist/node_modules/oidc-provider/node_modules/media-typer/LICENSE +22 -0
  248. package/dist/node_modules/oidc-provider/node_modules/media-typer/README.md +93 -0
  249. package/dist/node_modules/oidc-provider/node_modules/media-typer/index.js +143 -0
  250. package/dist/node_modules/oidc-provider/node_modules/media-typer/package.json +33 -0
  251. package/dist/node_modules/oidc-provider/node_modules/mime-db/HISTORY.md +541 -0
  252. package/dist/node_modules/oidc-provider/node_modules/mime-db/LICENSE +23 -0
  253. package/dist/node_modules/oidc-provider/node_modules/mime-db/README.md +109 -0
  254. package/dist/node_modules/oidc-provider/node_modules/mime-db/db.json +9342 -0
  255. package/dist/node_modules/oidc-provider/node_modules/mime-db/index.js +12 -0
  256. package/dist/node_modules/oidc-provider/node_modules/mime-db/package.json +56 -0
  257. package/dist/node_modules/oidc-provider/node_modules/mime-types/HISTORY.md +421 -0
  258. package/dist/node_modules/oidc-provider/node_modules/mime-types/LICENSE +23 -0
  259. package/dist/node_modules/oidc-provider/node_modules/mime-types/README.md +126 -0
  260. package/dist/node_modules/oidc-provider/node_modules/mime-types/index.js +211 -0
  261. package/dist/node_modules/oidc-provider/node_modules/mime-types/mimeScore.js +52 -0
  262. package/dist/node_modules/oidc-provider/node_modules/mime-types/package.json +45 -0
  263. package/dist/node_modules/oidc-provider/node_modules/type-is/HISTORY.md +292 -0
  264. package/dist/node_modules/oidc-provider/node_modules/type-is/LICENSE +23 -0
  265. package/dist/node_modules/oidc-provider/node_modules/type-is/README.md +198 -0
  266. package/dist/node_modules/oidc-provider/node_modules/type-is/index.js +250 -0
  267. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/HISTORY.md +428 -0
  268. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/LICENSE +23 -0
  269. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/README.md +126 -0
  270. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/index.js +211 -0
  271. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/mimeScore.js +57 -0
  272. package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/package.json +49 -0
  273. package/dist/node_modules/oidc-provider/node_modules/type-is/package.json +47 -0
  274. package/dist/node_modules/oidc-provider/package.json +5 -42
  275. package/package.json +3 -3
  276. package/dist/node_modules/eta/LICENSE +0 -7
  277. package/dist/node_modules/eta/README.md +0 -185
  278. package/dist/node_modules/eta/dist/core.d.ts +0 -179
  279. package/dist/node_modules/eta/dist/core.d.ts.map +0 -1
  280. package/dist/node_modules/eta/dist/core.js +0 -42
  281. package/dist/node_modules/eta/dist/core.js.map +0 -1
  282. package/dist/node_modules/eta/dist/index.cjs +0 -542
  283. package/dist/node_modules/eta/dist/index.cjs.map +0 -1
  284. package/dist/node_modules/eta/dist/index.d.cts +0 -187
  285. package/dist/node_modules/eta/dist/index.d.cts.map +0 -1
  286. package/dist/node_modules/eta/dist/index.d.mts +0 -187
  287. package/dist/node_modules/eta/dist/index.d.mts.map +0 -1
  288. package/dist/node_modules/eta/dist/index.mjs +0 -512
  289. package/dist/node_modules/eta/dist/index.mjs.map +0 -1
  290. package/dist/node_modules/eta/package.json +0 -75
  291. package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_claims.js +0 -28
  292. package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_defaults.js +0 -17
  293. package/dist/node_modules/oidc-provider/lib/actions/authorization/authenticated_client_id.js +0 -6
  294. package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_remap_errors.js +0 -17
  295. package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_response.js +0 -41
  296. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_ciba_context.js +0 -12
  297. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_claims.js +0 -68
  298. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client.js +0 -21
  299. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client_grant_type.js +0 -21
  300. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_dpop_jkt.js +0 -35
  301. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_extra_params.js +0 -18
  302. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_id_token_hint.js +0 -23
  303. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_max_age.js +0 -25
  304. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_openid_scope.js +0 -47
  305. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_prompt.js +0 -25
  306. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_redirect_uri.js +0 -41
  307. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_requested_expiry.js +0 -16
  308. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_mode.js +0 -54
  309. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_type.js +0 -26
  310. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_scope.js +0 -53
  311. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_load_account.js +0 -58
  312. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_required.js +0 -13
  313. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_authorization_response.js +0 -31
  314. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow.js +0 -31
  315. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_errors.js +0 -37
  316. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_response.js +0 -55
  317. package/dist/node_modules/oidc-provider/lib/actions/authorization/interaction_emit.js +0 -9
  318. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_account.js +0 -15
  319. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_pushed_authorization_request.js +0 -36
  320. package/dist/node_modules/oidc-provider/lib/actions/authorization/oauth_required.js +0 -11
  321. package/dist/node_modules/oidc-provider/lib/actions/authorization/oidc_required.js +0 -27
  322. package/dist/node_modules/oidc-provider/lib/actions/authorization/one_redirect_uri_clients.js +0 -20
  323. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_remap_errors.js +0 -17
  324. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_response.js +0 -65
  325. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_registration.js +0 -12
  326. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_request_and_uri.js +0 -12
  327. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_unsupported.js +0 -33
  328. package/dist/node_modules/oidc-provider/lib/actions/authorization/strip_outside_jar_params.js +0 -19
  329. package/dist/node_modules/oidc-provider/lib/actions/authorization/unsupported_rar.js +0 -9
  330. package/dist/node_modules/oidc-provider/lib/helpers/_/pick_by.js +0 -10
  331. package/dist/node_modules/oidc-provider/lib/models/formats/dynamic.js +0 -21
  332. package/dist/node_modules/oidc-provider/lib/models/mixins/apply.js +0 -4
  333. package/dist/node_modules/oidc-provider/lib/models/mixins/consumable.js +0 -17
  334. package/dist/node_modules/oidc-provider/lib/models/mixins/has_format.js +0 -46
  335. package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_id.js +0 -12
  336. package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_type.js +0 -8
  337. package/dist/node_modules/oidc-provider/lib/models/mixins/has_policies.js +0 -38
  338. package/dist/node_modules/oidc-provider/lib/models/mixins/is_attestation_constrained.js +0 -15
  339. package/dist/node_modules/oidc-provider/lib/models/mixins/is_sender_constrained.js +0 -50
  340. package/dist/node_modules/oidc-provider/lib/models/mixins/is_session_bound.js +0 -38
  341. package/dist/node_modules/oidc-provider/lib/models/mixins/set_audience.js +0 -21
  342. package/dist/node_modules/oidc-provider/lib/models/mixins/stores_auth.js +0 -16
  343. package/dist/node_modules/oidc-provider/lib/models/mixins/stores_pkce.js +0 -9
  344. package/dist/node_modules/oidc-provider/lib/shared/conditional_body.js +0 -9
  345. package/dist/node_modules/oidc-provider/node_modules/@koa/router/LICENSE +0 -21
  346. package/dist/node_modules/oidc-provider/node_modules/@koa/router/README.md +0 -1370
  347. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.mts +0 -1003
  348. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.ts +0 -1003
  349. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.js +0 -1616
  350. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.mjs +0 -1573
  351. package/dist/node_modules/oidc-provider/node_modules/@koa/router/package.json +0 -122
  352. package/dist/node_modules/oidc-provider/node_modules/http-errors/HISTORY.md +0 -186
  353. package/dist/node_modules/oidc-provider/node_modules/http-errors/LICENSE +0 -23
  354. package/dist/node_modules/oidc-provider/node_modules/http-errors/README.md +0 -169
  355. package/dist/node_modules/oidc-provider/node_modules/http-errors/index.js +0 -290
  356. package/dist/node_modules/oidc-provider/node_modules/http-errors/package.json +0 -54
  357. package/dist/node_modules/oidc-provider/node_modules/jsesc/README.md +0 -422
  358. package/dist/node_modules/oidc-provider/node_modules/jsesc/bin/jsesc +0 -148
  359. package/dist/node_modules/oidc-provider/node_modules/jsesc/jsesc.js +0 -337
  360. package/dist/node_modules/oidc-provider/node_modules/jsesc/man/jsesc.1 +0 -94
  361. package/dist/node_modules/oidc-provider/node_modules/jsesc/package.json +0 -56
  362. package/dist/node_modules/oidc-provider/node_modules/nanoid/LICENSE +0 -20
  363. package/dist/node_modules/oidc-provider/node_modules/nanoid/README.md +0 -38
  364. package/dist/node_modules/oidc-provider/node_modules/nanoid/bin/nanoid.js +0 -55
  365. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.browser.js +0 -29
  366. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.d.ts +0 -106
  367. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.js +0 -47
  368. package/dist/node_modules/oidc-provider/node_modules/nanoid/nanoid.js +0 -1
  369. package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.d.ts +0 -48
  370. package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.js +0 -21
  371. package/dist/node_modules/oidc-provider/node_modules/nanoid/package.json +0 -46
  372. package/dist/node_modules/oidc-provider/node_modules/nanoid/url-alphabet/index.js +0 -2
  373. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/LICENSE +0 -21
  374. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/Readme.md +0 -224
  375. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.d.ts +0 -147
  376. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js +0 -431
  377. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js.map +0 -1
  378. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/package.json +0 -64
  379. package/dist/node_modules/quick-lru/index.d.ts +0 -178
  380. package/dist/node_modules/quick-lru/index.js +0 -329
  381. package/dist/node_modules/quick-lru/license +0 -9
  382. package/dist/node_modules/quick-lru/package.json +0 -54
  383. package/dist/node_modules/quick-lru/readme.md +0 -236
  384. package/dist/node_modules/statuses/HISTORY.md +0 -87
  385. package/dist/node_modules/statuses/LICENSE +0 -23
  386. package/dist/node_modules/statuses/README.md +0 -139
  387. package/dist/node_modules/statuses/codes.json +0 -65
  388. package/dist/node_modules/statuses/index.js +0 -146
  389. package/dist/node_modules/statuses/package.json +0 -49
  390. package/dist/node_modules/undici/LICENSE +0 -21
  391. package/dist/node_modules/undici/README.md +0 -741
  392. package/dist/node_modules/undici/docs/docs/api/Agent.md +0 -84
  393. package/dist/node_modules/undici/docs/docs/api/BalancedPool.md +0 -99
  394. package/dist/node_modules/undici/docs/docs/api/CacheStorage.md +0 -30
  395. package/dist/node_modules/undici/docs/docs/api/CacheStore.md +0 -164
  396. package/dist/node_modules/undici/docs/docs/api/Client.md +0 -285
  397. package/dist/node_modules/undici/docs/docs/api/ClientStats.md +0 -27
  398. package/dist/node_modules/undici/docs/docs/api/Connector.md +0 -115
  399. package/dist/node_modules/undici/docs/docs/api/ContentType.md +0 -57
  400. package/dist/node_modules/undici/docs/docs/api/Cookies.md +0 -101
  401. package/dist/node_modules/undici/docs/docs/api/Debug.md +0 -62
  402. package/dist/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +0 -315
  403. package/dist/node_modules/undici/docs/docs/api/Dispatcher.md +0 -1392
  404. package/dist/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +0 -159
  405. package/dist/node_modules/undici/docs/docs/api/Errors.md +0 -49
  406. package/dist/node_modules/undici/docs/docs/api/EventSource.md +0 -45
  407. package/dist/node_modules/undici/docs/docs/api/Fetch.md +0 -60
  408. package/dist/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -139
  409. package/dist/node_modules/undici/docs/docs/api/H2CClient.md +0 -263
  410. package/dist/node_modules/undici/docs/docs/api/MockAgent.md +0 -603
  411. package/dist/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -197
  412. package/dist/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -43
  413. package/dist/node_modules/undici/docs/docs/api/MockClient.md +0 -81
  414. package/dist/node_modules/undici/docs/docs/api/MockErrors.md +0 -12
  415. package/dist/node_modules/undici/docs/docs/api/MockPool.md +0 -555
  416. package/dist/node_modules/undici/docs/docs/api/Pool.md +0 -84
  417. package/dist/node_modules/undici/docs/docs/api/PoolStats.md +0 -35
  418. package/dist/node_modules/undici/docs/docs/api/ProxyAgent.md +0 -229
  419. package/dist/node_modules/undici/docs/docs/api/RedirectHandler.md +0 -93
  420. package/dist/node_modules/undici/docs/docs/api/RetryAgent.md +0 -50
  421. package/dist/node_modules/undici/docs/docs/api/RetryHandler.md +0 -118
  422. package/dist/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -145
  423. package/dist/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -616
  424. package/dist/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -274
  425. package/dist/node_modules/undici/docs/docs/api/Util.md +0 -25
  426. package/dist/node_modules/undici/docs/docs/api/WebSocket.md +0 -141
  427. package/dist/node_modules/undici/docs/docs/api/api-lifecycle.md +0 -91
  428. package/dist/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -64
  429. package/dist/node_modules/undici/docs/docs/best-practices/crawling.md +0 -58
  430. package/dist/node_modules/undici/docs/docs/best-practices/mocking-request.md +0 -190
  431. package/dist/node_modules/undici/docs/docs/best-practices/proxy.md +0 -127
  432. package/dist/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +0 -224
  433. package/dist/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -63
  434. package/dist/node_modules/undici/index-fetch.js +0 -65
  435. package/dist/node_modules/undici/index.d.ts +0 -3
  436. package/dist/node_modules/undici/index.js +0 -234
  437. package/dist/node_modules/undici/lib/api/abort-signal.js +0 -59
  438. package/dist/node_modules/undici/lib/api/api-connect.js +0 -110
  439. package/dist/node_modules/undici/lib/api/api-pipeline.js +0 -252
  440. package/dist/node_modules/undici/lib/api/api-request.js +0 -214
  441. package/dist/node_modules/undici/lib/api/api-stream.js +0 -209
  442. package/dist/node_modules/undici/lib/api/api-upgrade.js +0 -111
  443. package/dist/node_modules/undici/lib/api/index.js +0 -7
  444. package/dist/node_modules/undici/lib/api/readable.js +0 -580
  445. package/dist/node_modules/undici/lib/cache/memory-cache-store.js +0 -234
  446. package/dist/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -461
  447. package/dist/node_modules/undici/lib/core/connect.js +0 -137
  448. package/dist/node_modules/undici/lib/core/constants.js +0 -143
  449. package/dist/node_modules/undici/lib/core/diagnostics.js +0 -227
  450. package/dist/node_modules/undici/lib/core/errors.js +0 -477
  451. package/dist/node_modules/undici/lib/core/request.js +0 -438
  452. package/dist/node_modules/undici/lib/core/socks5-client.js +0 -407
  453. package/dist/node_modules/undici/lib/core/socks5-utils.js +0 -203
  454. package/dist/node_modules/undici/lib/core/symbols.js +0 -75
  455. package/dist/node_modules/undici/lib/core/tree.js +0 -160
  456. package/dist/node_modules/undici/lib/core/util.js +0 -992
  457. package/dist/node_modules/undici/lib/dispatcher/agent.js +0 -158
  458. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -219
  459. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +0 -1610
  460. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +0 -995
  461. package/dist/node_modules/undici/lib/dispatcher/client.js +0 -659
  462. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -165
  463. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
  464. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -146
  465. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -135
  466. package/dist/node_modules/undici/lib/dispatcher/h2c-client.js +0 -51
  467. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +0 -214
  468. package/dist/node_modules/undici/lib/dispatcher/pool.js +0 -118
  469. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -318
  470. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  471. package/dist/node_modules/undici/lib/dispatcher/round-robin-pool.js +0 -137
  472. package/dist/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +0 -249
  473. package/dist/node_modules/undici/lib/encoding/index.js +0 -33
  474. package/dist/node_modules/undici/lib/global.js +0 -50
  475. package/dist/node_modules/undici/lib/handler/cache-handler.js +0 -578
  476. package/dist/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
  477. package/dist/node_modules/undici/lib/handler/decorator-handler.js +0 -67
  478. package/dist/node_modules/undici/lib/handler/deduplication-handler.js +0 -460
  479. package/dist/node_modules/undici/lib/handler/redirect-handler.js +0 -238
  480. package/dist/node_modules/undici/lib/handler/retry-handler.js +0 -394
  481. package/dist/node_modules/undici/lib/handler/unwrap-handler.js +0 -100
  482. package/dist/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  483. package/dist/node_modules/undici/lib/interceptor/cache.js +0 -495
  484. package/dist/node_modules/undici/lib/interceptor/decompress.js +0 -259
  485. package/dist/node_modules/undici/lib/interceptor/deduplicate.js +0 -117
  486. package/dist/node_modules/undici/lib/interceptor/dns.js +0 -571
  487. package/dist/node_modules/undici/lib/interceptor/dump.js +0 -112
  488. package/dist/node_modules/undici/lib/interceptor/redirect.js +0 -21
  489. package/dist/node_modules/undici/lib/interceptor/response-error.js +0 -95
  490. package/dist/node_modules/undici/lib/interceptor/retry.js +0 -19
  491. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  492. package/dist/node_modules/undici/lib/llhttp/constants.d.ts +0 -195
  493. package/dist/node_modules/undici/lib/llhttp/constants.js +0 -531
  494. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
  495. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
  496. package/dist/node_modules/undici/lib/llhttp/utils.d.ts +0 -2
  497. package/dist/node_modules/undici/lib/llhttp/utils.js +0 -12
  498. package/dist/node_modules/undici/lib/mock/mock-agent.js +0 -232
  499. package/dist/node_modules/undici/lib/mock/mock-call-history.js +0 -248
  500. package/dist/node_modules/undici/lib/mock/mock-client.js +0 -68
  501. package/dist/node_modules/undici/lib/mock/mock-errors.js +0 -29
  502. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
  503. package/dist/node_modules/undici/lib/mock/mock-pool.js +0 -68
  504. package/dist/node_modules/undici/lib/mock/mock-symbols.js +0 -32
  505. package/dist/node_modules/undici/lib/mock/mock-utils.js +0 -486
  506. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  507. package/dist/node_modules/undici/lib/mock/snapshot-agent.js +0 -353
  508. package/dist/node_modules/undici/lib/mock/snapshot-recorder.js +0 -588
  509. package/dist/node_modules/undici/lib/mock/snapshot-utils.js +0 -158
  510. package/dist/node_modules/undici/lib/util/cache.js +0 -407
  511. package/dist/node_modules/undici/lib/util/date.js +0 -653
  512. package/dist/node_modules/undici/lib/util/promise.js +0 -28
  513. package/dist/node_modules/undici/lib/util/runtime-features.js +0 -124
  514. package/dist/node_modules/undici/lib/util/stats.js +0 -32
  515. package/dist/node_modules/undici/lib/util/timers.js +0 -425
  516. package/dist/node_modules/undici/lib/web/cache/cache.js +0 -864
  517. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  518. package/dist/node_modules/undici/lib/web/cache/util.js +0 -45
  519. package/dist/node_modules/undici/lib/web/cookies/constants.js +0 -12
  520. package/dist/node_modules/undici/lib/web/cookies/index.js +0 -199
  521. package/dist/node_modules/undici/lib/web/cookies/parse.js +0 -322
  522. package/dist/node_modules/undici/lib/web/cookies/util.js +0 -282
  523. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
  524. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +0 -501
  525. package/dist/node_modules/undici/lib/web/eventsource/util.js +0 -29
  526. package/dist/node_modules/undici/lib/web/fetch/body.js +0 -509
  527. package/dist/node_modules/undici/lib/web/fetch/constants.js +0 -131
  528. package/dist/node_modules/undici/lib/web/fetch/data-url.js +0 -596
  529. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -575
  530. package/dist/node_modules/undici/lib/web/fetch/formdata.js +0 -259
  531. package/dist/node_modules/undici/lib/web/fetch/global.js +0 -40
  532. package/dist/node_modules/undici/lib/web/fetch/headers.js +0 -719
  533. package/dist/node_modules/undici/lib/web/fetch/index.js +0 -2397
  534. package/dist/node_modules/undici/lib/web/fetch/request.js +0 -1115
  535. package/dist/node_modules/undici/lib/web/fetch/response.js +0 -641
  536. package/dist/node_modules/undici/lib/web/fetch/util.js +0 -1520
  537. package/dist/node_modules/undici/lib/web/infra/index.js +0 -229
  538. package/dist/node_modules/undici/lib/web/subresource-integrity/Readme.md +0 -9
  539. package/dist/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +0 -307
  540. package/dist/node_modules/undici/lib/web/webidl/index.js +0 -1006
  541. package/dist/node_modules/undici/lib/web/websocket/connection.js +0 -329
  542. package/dist/node_modules/undici/lib/web/websocket/constants.js +0 -126
  543. package/dist/node_modules/undici/lib/web/websocket/events.js +0 -331
  544. package/dist/node_modules/undici/lib/web/websocket/frame.js +0 -133
  545. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -118
  546. package/dist/node_modules/undici/lib/web/websocket/receiver.js +0 -450
  547. package/dist/node_modules/undici/lib/web/websocket/sender.js +0 -109
  548. package/dist/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -104
  549. package/dist/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -497
  550. package/dist/node_modules/undici/lib/web/websocket/util.js +0 -347
  551. package/dist/node_modules/undici/lib/web/websocket/websocket.js +0 -751
  552. package/dist/node_modules/undici/package.json +0 -152
  553. package/dist/node_modules/undici/scripts/strip-comments.js +0 -10
  554. package/dist/node_modules/undici/types/README.md +0 -6
  555. package/dist/node_modules/undici/types/agent.d.ts +0 -32
  556. package/dist/node_modules/undici/types/api.d.ts +0 -43
  557. package/dist/node_modules/undici/types/balanced-pool.d.ts +0 -30
  558. package/dist/node_modules/undici/types/cache-interceptor.d.ts +0 -179
  559. package/dist/node_modules/undici/types/cache.d.ts +0 -36
  560. package/dist/node_modules/undici/types/client-stats.d.ts +0 -15
  561. package/dist/node_modules/undici/types/client.d.ts +0 -123
  562. package/dist/node_modules/undici/types/connector.d.ts +0 -36
  563. package/dist/node_modules/undici/types/content-type.d.ts +0 -21
  564. package/dist/node_modules/undici/types/cookies.d.ts +0 -30
  565. package/dist/node_modules/undici/types/diagnostics-channel.d.ts +0 -74
  566. package/dist/node_modules/undici/types/dispatcher.d.ts +0 -273
  567. package/dist/node_modules/undici/types/env-http-proxy-agent.d.ts +0 -22
  568. package/dist/node_modules/undici/types/errors.d.ts +0 -177
  569. package/dist/node_modules/undici/types/eventsource.d.ts +0 -66
  570. package/dist/node_modules/undici/types/fetch.d.ts +0 -231
  571. package/dist/node_modules/undici/types/formdata.d.ts +0 -114
  572. package/dist/node_modules/undici/types/global-dispatcher.d.ts +0 -9
  573. package/dist/node_modules/undici/types/global-origin.d.ts +0 -7
  574. package/dist/node_modules/undici/types/h2c-client.d.ts +0 -73
  575. package/dist/node_modules/undici/types/handlers.d.ts +0 -14
  576. package/dist/node_modules/undici/types/header.d.ts +0 -160
  577. package/dist/node_modules/undici/types/index.d.ts +0 -91
  578. package/dist/node_modules/undici/types/interceptors.d.ts +0 -80
  579. package/dist/node_modules/undici/types/mock-agent.d.ts +0 -68
  580. package/dist/node_modules/undici/types/mock-call-history.d.ts +0 -111
  581. package/dist/node_modules/undici/types/mock-client.d.ts +0 -27
  582. package/dist/node_modules/undici/types/mock-errors.d.ts +0 -12
  583. package/dist/node_modules/undici/types/mock-interceptor.d.ts +0 -94
  584. package/dist/node_modules/undici/types/mock-pool.d.ts +0 -27
  585. package/dist/node_modules/undici/types/patch.d.ts +0 -29
  586. package/dist/node_modules/undici/types/pool-stats.d.ts +0 -19
  587. package/dist/node_modules/undici/types/pool.d.ts +0 -41
  588. package/dist/node_modules/undici/types/proxy-agent.d.ts +0 -29
  589. package/dist/node_modules/undici/types/readable.d.ts +0 -68
  590. package/dist/node_modules/undici/types/retry-agent.d.ts +0 -8
  591. package/dist/node_modules/undici/types/retry-handler.d.ts +0 -125
  592. package/dist/node_modules/undici/types/round-robin-pool.d.ts +0 -41
  593. package/dist/node_modules/undici/types/snapshot-agent.d.ts +0 -109
  594. package/dist/node_modules/undici/types/socks5-proxy-agent.d.ts +0 -25
  595. package/dist/node_modules/undici/types/util.d.ts +0 -18
  596. package/dist/node_modules/undici/types/utility.d.ts +0 -7
  597. package/dist/node_modules/undici/types/webidl.d.ts +0 -347
  598. 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
+ ];