@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
@@ -1,6 +1,6 @@
1
1
  import { InvalidAuthorizationDetails, InvalidRequest } from '../helpers/errors.js';
2
2
  import instance from '../helpers/weak_cache.js';
3
- import isPlainObject from '../helpers/_/is_plain_object.js';
3
+ import normalizeAuthorizationDetails from '../helpers/normalize_authorization_details.js';
4
4
 
5
5
  export default async function checkRar(ctx, next) {
6
6
  const { params, client } = ctx.oidc;
@@ -21,51 +21,36 @@ export default async function checkRar(ctx, next) {
21
21
 
22
22
  try {
23
23
  details = JSON.parse(params.authorization_details);
24
- } catch (err) {
25
- throw new InvalidRequest('could not parse the authorization_details parameter JSON');
24
+ } catch (cause) {
25
+ throw new InvalidAuthorizationDetails(
26
+ 'could not parse the authorization_details parameter JSON',
27
+ { cause },
28
+ );
26
29
  }
27
30
 
28
- if (!Array.isArray(details)) {
29
- throw new InvalidRequest('authorization_details parameter should be a JSON array');
30
- }
31
+ details = normalizeAuthorizationDetails(details, {
32
+ ErrorConstructor: InvalidAuthorizationDetails,
33
+ label: 'authorization_details parameter',
34
+ });
31
35
 
32
- if (!details.length) {
36
+ if (details === undefined) {
33
37
  params.authorization_details = undefined;
34
38
  return next();
35
39
  }
36
40
 
37
41
  let i = 0;
38
42
  for (const detail of details) {
39
- if (!isPlainObject(detail)) {
40
- throw new InvalidRequest('authorization_details parameter members should be a JSON object');
41
- }
42
-
43
- if (typeof detail.type !== 'string' || !detail.type.length) {
44
- throw new InvalidAuthorizationDetails(`authorization_details parameter members' type attribute must be a non-empty string (authorization details index ${i})`);
45
- }
46
-
47
- const config = richAuthorizationRequests.types[detail.type];
48
- if (!config) {
43
+ if (!Object.hasOwn(richAuthorizationRequests.types, detail.type)) {
49
44
  throw new InvalidAuthorizationDetails(`unsupported authorization details type value (authorization details index ${i})`);
50
45
  }
46
+ const config = richAuthorizationRequests.types[detail.type];
51
47
 
52
48
  if (client.authorizationDetailsTypes?.includes(detail.type) === false) {
53
49
  throw new InvalidAuthorizationDetails(`authorization details type '${detail.type}' is not allowed for this client`);
54
50
  }
55
51
 
56
- // check common data fields
57
- for (const field of ['locations', 'actions', 'datatypes', 'privileges']) {
58
- if (field in detail && (!Array.isArray(detail[field]) || detail[field].some((value) => typeof value !== 'string' || !value.length))) {
59
- throw new InvalidAuthorizationDetails(`'${field}' must be an array of non-empty strings (authorization details index ${i})`);
60
- }
61
- }
62
- if ('identifier' in detail && (typeof detail.identifier !== 'string' || !detail.identifier.length)) {
63
- throw new InvalidAuthorizationDetails(`'identifier' must be a non-empty string (authorization details index ${i})`);
64
- }
65
-
66
52
  await config.validate(ctx, detail, client);
67
53
 
68
- // eslint-disable-next-line no-plusplus
69
54
  i++;
70
55
  }
71
56
  }
@@ -1,6 +1,7 @@
1
- /* eslint-disable no-underscore-dangle */
2
- import instance from '../helpers/weak_cache.js';
1
+ import assertProviderContext from '../helpers/assert_provider_context.js';
2
+ import { resourceServer as validateResourceServer } from '../helpers/configuration_result.js';
3
3
  import { InvalidTarget } from '../helpers/errors.js';
4
+ import instance from '../helpers/weak_cache.js';
4
5
 
5
6
  const filterStatics = (ctx) => {
6
7
  if (ctx.oidc.params.scope && !ctx.oidc.params.resource) {
@@ -12,11 +13,12 @@ function emptyResource(params) {
12
13
  return !params.resource || (Array.isArray(params.resource) && !params.resource.length);
13
14
  }
14
15
 
15
- export default async function checkResource(ctx, next) {
16
+ export async function resolveRequestedResources(provider, ctx) {
17
+ assertProviderContext(provider, ctx);
18
+
16
19
  const {
17
20
  oidc: {
18
21
  params,
19
- provider,
20
22
  client,
21
23
  resourceServers,
22
24
  },
@@ -30,7 +32,7 @@ export default async function checkResource(ctx, next) {
30
32
 
31
33
  if (!enabled) {
32
34
  filterStatics(ctx);
33
- return next();
35
+ return Object.values(resourceServers);
34
36
  }
35
37
 
36
38
  if (params.resource === undefined) {
@@ -43,13 +45,13 @@ export default async function checkResource(ctx, next) {
43
45
 
44
46
  if (params.scope && emptyResource(params)) {
45
47
  filterStatics(ctx);
46
- return next();
48
+ return Object.values(resourceServers);
47
49
  }
48
50
 
49
51
  let { resource } = params;
50
52
 
51
53
  if (params.resource === undefined) {
52
- return next();
54
+ return Object.values(resourceServers);
53
55
  }
54
56
 
55
57
  if (!Array.isArray(params.resource)) {
@@ -63,15 +65,22 @@ export default async function checkResource(ctx, next) {
63
65
  throw new InvalidTarget('resource indicator must be an absolute URI');
64
66
  }
65
67
 
66
- // NOTE: we don't check for new URL() => search of hash because of an edge case
67
- // new URL('https://example.com?#') => search and hash are empty, seems like an inconsistent validation
68
+
69
+
68
70
  if (href.includes('#')) {
69
71
  throw new InvalidTarget('resource indicator must not contain a fragment component');
70
72
  }
71
73
 
72
- const resourceServer = await getResourceServerInfo(ctx, identifier, client);
73
- resourceServers[identifier] = new ctx.oidc.provider.ResourceServer(identifier, resourceServer);
74
+ const resourceServer = validateResourceServer(
75
+ await getResourceServerInfo(ctx, identifier, client),
76
+ );
77
+ resourceServers[identifier] = new provider.ResourceServer(identifier, resourceServer);
74
78
  }
75
79
 
80
+ return Object.values(resourceServers);
81
+ }
82
+
83
+ export default async function checkResource(ctx, next) {
84
+ await resolveRequestedResources(ctx.oidc.provider, ctx);
76
85
  return next();
77
86
  }
@@ -1,17 +1,32 @@
1
- import { InvalidRequest, InvalidClientAuth } from '../helpers/errors.js';
1
+ import { noVSCHAR } from '../consts/client_attributes.js';
2
2
  import appendWWWAuthenticate from '../helpers/append_www_authenticate.js';
3
+ import certificateThumbprint from '../helpers/certificate_thumbprint.js';
4
+ import { boolean } from '../helpers/configuration_result.js';
5
+ import { InvalidClientAuth, InvalidRequest } from '../helpers/errors.js';
3
6
  import * as JWT from '../helpers/jwt.js';
4
7
  import instance from '../helpers/weak_cache.js';
5
- import certificateThumbprint from '../helpers/certificate_thumbprint.js';
6
- import { noVSCHAR } from '../consts/client_attributes.js';
7
-
8
- import rejectDupes from './reject_dupes.js';
8
+ import attestClientAuth, { validateClientAttestationJwtAndPop } from './attest_client_auth.js';
9
9
  import jwtClientAuth from './jwt_client_auth.js';
10
- import attestClientAuth from './attest_client_auth.js';
10
+ import rejectDupes from './reject_dupes.js';
11
11
 
12
12
  const assertionType = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer';
13
13
 
14
- // see https://tools.ietf.org/html/rfc6749#appendix-B
14
+ function isValidBase64(input) {
15
+ const match = /^([A-Za-z0-9+/]*)(={0,2})$/u.exec(input);
16
+ if (!match?.[1]) {
17
+ return false;
18
+ }
19
+
20
+ const remainder = match[1].length % 4;
21
+ if (!match[2]) {
22
+ return remainder !== 1;
23
+ }
24
+
25
+ return (match[1].length + match[2].length) % 4 === 0
26
+ && match[2].length === 4 - remainder;
27
+ }
28
+
29
+
15
30
  function decodeAuthToken(token) {
16
31
  const authToken = decodeURIComponent(token.replace(/\+/g, '%20'));
17
32
  if (noVSCHAR.test(authToken)) {
@@ -20,11 +35,11 @@ function decodeAuthToken(token) {
20
35
  return authToken;
21
36
  }
22
37
 
23
- export default function clientAuthentication(provider) {
38
+ export function getClientAuthParams(ctx) {
24
39
  const authParams = new Set(['client_id']);
25
- const { configuration, features } = instance(provider);
40
+ const { clientAuthMethods } = instance(ctx.oidc.provider).configuration;
26
41
 
27
- configuration.clientAuthMethods.forEach((method) => {
42
+ clientAuthMethods.forEach((method) => {
28
43
  switch (method) {
29
44
  case 'client_secret_post':
30
45
  authParams.add('client_secret');
@@ -38,226 +53,275 @@ export default function clientAuthentication(provider) {
38
53
  }
39
54
  });
40
55
 
41
- authParams.forEach(Set.prototype.add.bind(instance(provider).grantTypeParams.get(undefined)));
42
-
43
- return {
44
- params: authParams,
45
- middleware: [
46
- rejectDupes.bind(undefined, { only: authParams }),
47
- async function setWWWAuthenticateHeader(ctx, next) {
48
- try {
49
- await next();
50
- } catch (err) {
51
- if (err.statusCode === 401 && ctx.headers.authorization !== undefined) {
52
- appendWWWAuthenticate(ctx, 'Basic', {
53
- realm: provider.issuer,
54
- error: err.message,
55
- error_description: err.error_description,
56
- });
57
- }
58
- throw err;
59
- }
60
- },
61
- async function authenticateClient(ctx, next) {
62
- let methods;
63
- let clientId;
64
- let clientSecret;
65
-
66
- const setClientId = (value) => {
67
- if (clientId !== undefined && value !== clientId) {
68
- throw new InvalidRequest('client_id mismatch');
69
- }
70
- clientId = value;
71
- };
72
-
73
- const { length } = [
74
- ctx.headers.authorization,
75
- ctx.headers['oauth-client-attestation'],
76
- ctx.oidc.params.client_assertion,
77
- ctx.oidc.params.client_secret,
78
- ].filter(Boolean);
79
-
80
- if (length > 1) {
81
- throw new InvalidRequest('client authentication must only be provided using one mechanism');
82
- }
56
+ return authParams;
57
+ }
83
58
 
84
- if (ctx.oidc.params.client_id !== undefined) {
85
- setClientId(ctx.oidc.params.client_id);
86
- }
59
+ function rejectClientAuthDupes(ctx, next) {
60
+ return rejectDupes({ only: getClientAuthParams(ctx) }, ctx, next);
61
+ }
87
62
 
88
- if (ctx.oidc.params.client_secret) {
89
- clientSecret = ctx.oidc.params.client_secret;
90
- methods = ['client_secret_basic', 'client_secret_post'];
91
- } else if (ctx.headers.authorization !== undefined) {
92
- const parts = ctx.headers.authorization.split(' ');
93
- if (parts.length !== 2 || parts[0].toLowerCase() !== 'basic') {
94
- throw new InvalidRequest('invalid authorization header value format');
95
- }
63
+ async function setWWWAuthenticateHeader(ctx, next) {
64
+ try {
65
+ await next();
66
+ } catch (err) {
67
+ if (err.statusCode === 401 && ctx.headers.authorization !== undefined) {
68
+ appendWWWAuthenticate(ctx, 'Basic', {
69
+ realm: ctx.oidc.provider.issuer,
70
+ error: err.message,
71
+ error_description: err.error_description,
72
+ });
73
+ }
74
+ throw err;
75
+ }
76
+ }
96
77
 
97
- const basic = Buffer.from(parts[1], 'base64').toString('utf8');
98
- const i = basic.indexOf(':');
78
+ async function authenticateClient(ctx, next) {
79
+ const { provider } = ctx.oidc;
80
+ const { features } = instance(provider);
81
+ let methods;
82
+ let clientId;
83
+ let clientSecret;
99
84
 
100
- if (i === -1) {
101
- throw new InvalidRequest('invalid authorization header value format');
102
- }
85
+ const setClientId = (value) => {
86
+ if (clientId !== undefined && value !== clientId) {
87
+ throw new InvalidRequest('client_id mismatch');
88
+ }
89
+ clientId = value;
90
+ };
103
91
 
104
- let basicClientId;
105
- try {
106
- basicClientId = decodeAuthToken(basic.slice(0, i));
107
- clientSecret = decodeAuthToken(basic.slice(i + 1));
108
- } catch (err) {
109
- throw new InvalidRequest('client_id and client_secret in the authorization header are not properly encoded');
110
- }
92
+ const hasAttestation = ctx.headers['oauth-client-attestation'] !== undefined;
93
+ const hasAttestationPop = ctx.headers['oauth-client-attestation-pop'] !== undefined;
94
+ const { additionalSecuritySignal } = features.attestClientAuth;
95
+ const { length } = [
96
+ ctx.headers.authorization,
97
+ ctx.oidc.params.client_assertion,
98
+ ctx.oidc.params.client_secret,
99
+ ].filter(Boolean);
100
+
101
+ if (length > 1) {
102
+ throw new InvalidRequest('client authentication must only be provided using one mechanism');
103
+ }
111
104
 
112
- setClientId(basicClientId);
105
+ if (length && (hasAttestation || hasAttestationPop) && !additionalSecuritySignal) {
106
+ throw new InvalidRequest('client authentication must only be provided using one mechanism');
107
+ }
113
108
 
114
- if (!clientSecret) {
115
- throw new InvalidRequest('client_secret must be provided in the Authorization header');
116
- }
109
+ if (ctx.oidc.params.client_id !== undefined) {
110
+ setClientId(ctx.oidc.params.client_id);
111
+ }
117
112
 
118
- methods = ['client_secret_basic', 'client_secret_post'];
119
- } else if (ctx.headers['oauth-client-attestation'] !== undefined) {
120
- let sub;
121
- try {
122
- ({ payload: { sub } } = JWT.decode(ctx.headers['oauth-client-attestation']));
123
- } catch (err) {
124
- throw new InvalidRequest('invalid OAuth-Client-Attestation format');
125
- }
113
+ if (ctx.oidc.params.client_secret) {
114
+ clientSecret = ctx.oidc.params.client_secret;
115
+ methods = ['client_secret_basic', 'client_secret_post'];
116
+ } else if (ctx.headers.authorization !== undefined) {
117
+ const parts = ctx.headers.authorization.split(' ');
118
+ if (parts.length !== 2 || parts[0].toLowerCase() !== 'basic') {
119
+ throw new InvalidRequest('invalid authorization header value format');
120
+ }
126
121
 
127
- if (!sub) {
128
- throw new InvalidClientAuth('sub (JWT subject) must be provided in the OAuth-Client-Attestation JWT');
129
- }
122
+ if (!isValidBase64(parts[1])) {
123
+ throw new InvalidRequest('invalid authorization header value format');
124
+ }
130
125
 
131
- setClientId(sub);
132
- methods = ['attest_jwt_client_auth'];
133
- } else if (ctx.oidc.params.client_assertion !== undefined) {
134
- let sub;
135
- try {
136
- ({ payload: { sub } } = JWT.decode(ctx.oidc.params.client_assertion));
137
- } catch (err) {
138
- throw new InvalidRequest('invalid client_assertion format');
139
- }
126
+ const basic = Buffer.from(parts[1], 'base64').toString('utf8');
127
+ const i = basic.indexOf(':');
140
128
 
141
- if (!sub) {
142
- throw new InvalidClientAuth('sub (JWT subject) must be provided in the client_assertion JWT');
143
- }
129
+ if (i === -1) {
130
+ throw new InvalidRequest('invalid authorization header value format');
131
+ }
144
132
 
145
- if (ctx.oidc.params.client_assertion_type === undefined) {
146
- throw new InvalidRequest('client_assertion_type must be provided');
147
- }
133
+ let basicClientId;
134
+ try {
135
+ basicClientId = decodeAuthToken(basic.slice(0, i));
136
+ clientSecret = decodeAuthToken(basic.slice(i + 1));
137
+ } catch (cause) {
138
+ throw new InvalidRequest(
139
+ 'client_id and client_secret in the authorization header are not properly encoded',
140
+ undefined,
141
+ { cause },
142
+ );
143
+ }
148
144
 
149
- if (ctx.oidc.params.client_assertion_type !== assertionType) {
150
- throw new InvalidRequest(`client_assertion_type must have value ${assertionType}`);
151
- }
145
+ setClientId(basicClientId);
152
146
 
153
- setClientId(sub);
154
- methods = ['client_secret_jwt', 'private_key_jwt'];
155
- } else {
156
- methods = ['none', 'tls_client_auth', 'self_signed_tls_client_auth'];
157
- }
147
+ if (!clientSecret) {
148
+ throw new InvalidRequest('client_secret must be provided in the Authorization header');
149
+ }
158
150
 
159
- if (!clientId) {
160
- throw new InvalidRequest('no client authentication mechanism provided');
161
- }
151
+ methods = ['client_secret_basic', 'client_secret_post'];
152
+ } else if (hasAttestation && (!clientId || !additionalSecuritySignal)) {
153
+ let sub;
154
+ try {
155
+ ({ sub } = JWT.payload(ctx.headers['oauth-client-attestation']));
156
+ } catch (cause) {
157
+ throw new InvalidRequest(
158
+ 'invalid OAuth-Client-Attestation format',
159
+ undefined,
160
+ { cause },
161
+ );
162
+ }
162
163
 
163
- const client = await provider.Client.find(clientId);
164
+ if (!sub) {
165
+ throw new InvalidClientAuth('sub (JWT subject) must be provided in the OAuth-Client-Attestation JWT');
166
+ }
164
167
 
165
- if (!client) {
166
- throw new InvalidClientAuth('client not found');
167
- }
168
+ setClientId(sub);
169
+ methods = ['attest_jwt_client_auth'];
170
+ } else if (ctx.oidc.params.client_assertion !== undefined) {
171
+ let sub;
172
+ try {
173
+ ({ sub } = JWT.payload(ctx.oidc.params.client_assertion));
174
+ } catch (cause) {
175
+ throw new InvalidRequest('invalid client_assertion format', undefined, { cause });
176
+ }
177
+
178
+ if (!sub) {
179
+ throw new InvalidClientAuth('sub (JWT subject) must be provided in the client_assertion JWT');
180
+ }
168
181
 
169
- ctx.oidc.entity('Client', client);
182
+ if (ctx.oidc.params.client_assertion_type === undefined) {
183
+ throw new InvalidRequest('client_assertion_type must be provided');
184
+ }
170
185
 
171
- if (methods?.includes(ctx.oidc.client.clientAuthMethod) !== true) {
172
- throw new InvalidClientAuth('the provided authentication mechanism does not match the registered client authentication method');
173
- }
186
+ if (ctx.oidc.params.client_assertion_type !== assertionType) {
187
+ throw new InvalidRequest(`client_assertion_type must have value ${assertionType}`);
188
+ }
174
189
 
175
- switch (ctx.oidc.client.clientAuthMethod) { // eslint-disable-line default-case
176
- case 'none':
177
- break;
190
+ setClientId(sub);
191
+ methods = ['client_secret_jwt', 'private_key_jwt'];
192
+ } else {
193
+ methods = ['none', 'tls_client_auth', 'self_signed_tls_client_auth'];
194
+ if (hasAttestation && additionalSecuritySignal) {
195
+ methods.push('attest_jwt_client_auth');
196
+ }
197
+ }
178
198
 
179
- case 'client_secret_basic':
180
- case 'client_secret_post': {
181
- ctx.oidc.client.checkClientSecretExpiration('could not authenticate the client - its client secret is expired');
182
- const matches = await ctx.oidc.client.compareClientSecret(clientSecret);
183
- if (!matches) {
184
- throw new InvalidClientAuth('invalid secret provided');
185
- }
199
+ if (!clientId) {
200
+ throw new InvalidRequest('no client authentication mechanism provided');
201
+ }
186
202
 
187
- break;
188
- }
203
+ const client = await provider.Client.find(clientId);
189
204
 
190
- case 'client_secret_jwt':
191
- ctx.oidc.client.checkClientSecretExpiration('could not authenticate the client - its client secret used for the client_assertion is expired');
192
- await jwtClientAuth(ctx, ctx.oidc.client.symmetricKeyStore, (alg) => alg.startsWith('HS'));
193
-
194
- break;
195
-
196
- case 'private_key_jwt':
197
- await jwtClientAuth(ctx, ctx.oidc.client.asymmetricKeyStore, (alg) => !alg.startsWith('HS'));
198
-
199
- break;
200
-
201
- case 'tls_client_auth': {
202
- const {
203
- getCertificate, certificateAuthorized, certificateSubjectMatches,
204
- } = features.mTLS;
205
-
206
- const cert = getCertificate(ctx);
207
-
208
- if (!cert) {
209
- throw new InvalidClientAuth('client certificate was not provided');
210
- }
211
-
212
- if (!certificateAuthorized(ctx)) {
213
- throw new InvalidClientAuth('client certificate was not verified');
214
- }
215
-
216
- for (const [prop, key] of Object.entries({
217
- tlsClientAuthSubjectDn: 'tls_client_auth_subject_dn',
218
- tlsClientAuthSanDns: 'tls_client_auth_san_dns',
219
- tlsClientAuthSanIp: 'tls_client_auth_san_ip',
220
- tlsClientAuthSanEmail: 'tls_client_auth_san_email',
221
- tlsClientAuthSanUri: 'tls_client_auth_san_uri',
222
- })) {
223
- const value = ctx.oidc.client[prop];
224
- if (value) {
225
- if (!certificateSubjectMatches(ctx, key, value)) {
226
- throw new InvalidClientAuth('certificate subject value does not match the registered one');
227
- }
228
- break;
229
- }
230
- }
231
-
232
- break;
233
- }
234
- case 'self_signed_tls_client_auth': {
235
- const { getCertificate } = features.mTLS;
236
- const cert = getCertificate(ctx);
205
+ if (!client) {
206
+ throw new InvalidClientAuth('client not found');
207
+ }
237
208
 
238
- if (!cert) {
239
- throw new InvalidClientAuth('client certificate was not provided');
240
- }
209
+ ctx.oidc.entity('Client', client);
241
210
 
242
- await ctx.oidc.client.asymmetricKeyStore.refresh();
243
- const expected = certificateThumbprint(cert);
244
- const match = [...ctx.oidc.client.asymmetricKeyStore].find(({ 'x5t#S256': actual }) => actual === expected);
211
+ if (
212
+ (hasAttestation || hasAttestationPop)
213
+ && !additionalSecuritySignal
214
+ && ctx.oidc.params.client_id !== undefined
215
+ && ctx.oidc.client.clientAuthMethod !== 'attest_jwt_client_auth'
216
+ ) {
217
+ throw new InvalidRequest('client authentication must only be provided using one mechanism');
218
+ }
245
219
 
246
- if (!match) {
247
- throw new InvalidClientAuth('unregistered client certificate provided');
248
- }
220
+ if (methods?.includes(ctx.oidc.client.clientAuthMethod) !== true) {
221
+ throw new InvalidClientAuth('the provided authentication mechanism does not match the registered client authentication method');
222
+ }
249
223
 
250
- break;
251
- }
252
- case 'attest_jwt_client_auth': {
253
- await attestClientAuth(ctx);
224
+ switch (ctx.oidc.client.clientAuthMethod) {
225
+ case 'none':
226
+ break;
227
+
228
+ case 'client_secret_basic':
229
+ case 'client_secret_post': {
230
+ ctx.oidc.client.checkClientSecretExpiration('could not authenticate the client - its client secret is expired');
231
+ const matches = await ctx.oidc.client.compareClientSecret(clientSecret);
232
+ if (!matches) {
233
+ throw new InvalidClientAuth('invalid secret provided');
234
+ }
235
+
236
+ break;
237
+ }
254
238
 
255
- break;
239
+ case 'client_secret_jwt':
240
+ ctx.oidc.client.checkClientSecretExpiration('could not authenticate the client - its client secret used for the client_assertion is expired');
241
+ await jwtClientAuth(ctx, ctx.oidc.client.symmetricKeyStore, (alg) => alg.startsWith('HS'));
242
+
243
+ break;
244
+
245
+ case 'private_key_jwt':
246
+ await jwtClientAuth(ctx, ctx.oidc.client.asymmetricKeyStore, (alg) => !alg.startsWith('HS'));
247
+
248
+ break;
249
+
250
+ case 'tls_client_auth': {
251
+ const {
252
+ getCertificate, certificateAuthorized, certificateSubjectMatches,
253
+ } = features.mTLS;
254
+
255
+ const cert = getCertificate(ctx);
256
+
257
+ if (!cert) {
258
+ throw new InvalidClientAuth('client certificate was not provided');
259
+ }
260
+
261
+ if (!boolean(
262
+ certificateAuthorized(ctx),
263
+ 'features.mTLS.certificateAuthorized',
264
+ )) {
265
+ throw new InvalidClientAuth('client certificate was not verified');
266
+ }
267
+
268
+ for (const [prop, key] of Object.entries({
269
+ tlsClientAuthSubjectDn: 'tls_client_auth_subject_dn',
270
+ tlsClientAuthSanDns: 'tls_client_auth_san_dns',
271
+ tlsClientAuthSanIp: 'tls_client_auth_san_ip',
272
+ tlsClientAuthSanEmail: 'tls_client_auth_san_email',
273
+ tlsClientAuthSanUri: 'tls_client_auth_san_uri',
274
+ })) {
275
+ const value = ctx.oidc.client[prop];
276
+ if (value) {
277
+ if (!boolean(
278
+ certificateSubjectMatches(ctx, key, value),
279
+ 'features.mTLS.certificateSubjectMatches',
280
+ )) {
281
+ throw new InvalidClientAuth('certificate subject value does not match the registered one');
256
282
  }
283
+ break;
257
284
  }
285
+ }
258
286
 
259
- await next();
260
- },
261
- ],
262
- };
287
+ break;
288
+ }
289
+ case 'self_signed_tls_client_auth': {
290
+ const { getCertificate } = features.mTLS;
291
+ const cert = getCertificate(ctx);
292
+
293
+ if (!cert) {
294
+ throw new InvalidClientAuth('client certificate was not provided');
295
+ }
296
+
297
+ await ctx.oidc.client.asymmetricKeyStore.refresh();
298
+ const expected = certificateThumbprint(cert);
299
+ const match = [...ctx.oidc.client.asymmetricKeyStore].find(({ 'x5t#S256': actual }) => actual === expected);
300
+
301
+ if (!match) {
302
+ throw new InvalidClientAuth('unregistered client certificate provided');
303
+ }
304
+
305
+ break;
306
+ }
307
+ case 'attest_jwt_client_auth': {
308
+ await attestClientAuth(ctx);
309
+
310
+ break;
311
+ }
312
+ }
313
+
314
+ if (
315
+ ctx.oidc.client.clientAuthMethod !== 'attest_jwt_client_auth'
316
+ && (
317
+ additionalSecuritySignal === 'required'
318
+ || (additionalSecuritySignal === 'optional' && (hasAttestation || hasAttestationPop))
319
+ )
320
+ ) {
321
+ await validateClientAttestationJwtAndPop(ctx, { signal: true });
322
+ }
323
+
324
+ await next();
263
325
  }
326
+
327
+ export default [rejectClientAuthDupes, setWWWAuthenticateHeader, authenticateClient];