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

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