@nocobase/plugin-idp-oauth 2.2.17 → 2.2.19

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,1573 +0,0 @@
1
- // src/utils/router-events.ts
2
- import compose from "koa-compose";
3
- var RouterEvents = {
4
- /**
5
- * Fires when no route matched the request path + HTTP method.
6
- */
7
- NotFound: "not-found"
8
- // /**
9
- // * Fires when the request path matched a registered route but the HTTP
10
- // * method did not match any of its allowed methods.
11
- // *
12
- // * @planned Not yet active — handlers are stored but not called.
13
- // */
14
- // MethodNotAllowed: 'method-not-allowed',
15
- // /**
16
- // * Fires after a route is matched and before its handlers run.
17
- // * Useful for tracing and logging the matched route.
18
- // *
19
- // * @planned Not yet active — handlers are stored but not called.
20
- // */
21
- // Match: 'match',
22
- // /**
23
- // * Fires on every request that enters the router, before route matching.
24
- // * Useful for per-router metrics and request logging.
25
- // *
26
- // * @planned Not yet active — handlers are stored but not called.
27
- // */
28
- // Dispatch: 'dispatch'
29
- };
30
- function resolveEvent(selector) {
31
- return typeof selector === "function" ? selector(RouterEvents) : selector;
32
- }
33
- var RouterEventEmitter = class {
34
- _handlers = /* @__PURE__ */ new Map();
35
- /**
36
- * Register a handler for the given event.
37
- * Multiple handlers for the same event are composed in registration order.
38
- */
39
- register(event, handler) {
40
- const existing = this._handlers.get(event) ?? [];
41
- existing.push(handler);
42
- this._handlers.set(event, existing);
43
- }
44
- /**
45
- * Emit an event by composing and running all registered handlers.
46
- * If no handlers are registered for the event, calls `next()` directly.
47
- *
48
- * @param event - The event to emit
49
- * @param context - The router context
50
- * @param next - The downstream next function
51
- */
52
- emit(event, context, next) {
53
- const handlers = this._handlers.get(event);
54
- if (handlers && handlers.length > 0) {
55
- return compose(handlers)(context, next);
56
- }
57
- return next();
58
- }
59
- };
60
-
61
- // src/utils/parameter-match.ts
62
- import createHttpError from "http-errors";
63
- function createParameterValidationMiddleware(parameterName, pattern, options = {}) {
64
- if (!(pattern instanceof RegExp)) {
65
- throw new TypeError("pattern must be a RegExp instance");
66
- }
67
- const matcher = new RegExp(pattern.source, pattern.flags);
68
- const createDefaultHttpError = (message) => {
69
- const httpError = createHttpError(options.status ?? 400, message);
70
- if (options.expose !== void 0) {
71
- httpError.expose = options.expose;
72
- }
73
- return httpError;
74
- };
75
- const validateValue = (value) => {
76
- if (matcher.global || matcher.sticky) {
77
- matcher.lastIndex = 0;
78
- }
79
- if (matcher.test(value)) {
80
- return;
81
- }
82
- if (options.createError) {
83
- throw options.createError(parameterName, value);
84
- }
85
- throw createDefaultHttpError(
86
- options.message ?? `Invalid value for parameter "${parameterName}": "${value}"`
87
- );
88
- };
89
- const middleware = async (argument1, argument2, argument3) => {
90
- if (typeof argument1 !== "string") {
91
- const context = argument1;
92
- const next2 = argument2;
93
- const parameterValue = context.params && parameterName in context.params ? context.params[parameterName] : void 0;
94
- if (typeof parameterValue !== "string") {
95
- throw createDefaultHttpError(
96
- options.message ?? `Missing required parameter "${parameterName}" in route params`
97
- );
98
- }
99
- validateValue(parameterValue);
100
- return next2();
101
- }
102
- const value = argument1;
103
- const next = argument3;
104
- validateValue(value);
105
- return next();
106
- };
107
- return middleware;
108
- }
109
-
110
- // src/router.ts
111
- import compose2 from "koa-compose";
112
- import HttpError from "http-errors";
113
-
114
- // src/layer.ts
115
- import { parse as parseUrl, format as formatUrl } from "url";
116
-
117
- // src/utils/path-to-regexp-wrapper.ts
118
- import { pathToRegexp, compile, parse } from "path-to-regexp";
119
- function compilePathToRegexp(path, options = {}) {
120
- const normalizedOptions = { ...options };
121
- if ("strict" in normalizedOptions && !("trailing" in normalizedOptions)) {
122
- normalizedOptions.trailing = normalizedOptions.strict !== true;
123
- delete normalizedOptions.strict;
124
- }
125
- delete normalizedOptions.pathAsRegExp;
126
- delete normalizedOptions.ignoreCaptures;
127
- delete normalizedOptions.prefix;
128
- const { regexp, keys } = pathToRegexp(path, normalizedOptions);
129
- return { regexp, keys };
130
- }
131
- function compilePath(path, options = {}) {
132
- return compile(path, options);
133
- }
134
- function parsePath(path, options) {
135
- return parse(path, options);
136
- }
137
- function normalizeLayerOptionsToPathToRegexp(options = {}) {
138
- const normalized = {
139
- sensitive: options.sensitive,
140
- end: options.end,
141
- strict: options.strict,
142
- trailing: options.trailing
143
- };
144
- if ("strict" in normalized && !("trailing" in normalized)) {
145
- normalized.trailing = normalized.strict !== true;
146
- delete normalized.strict;
147
- }
148
- for (const key of Object.keys(normalized)) {
149
- if (normalized[key] === void 0) {
150
- delete normalized[key];
151
- }
152
- }
153
- return normalized;
154
- }
155
-
156
- // src/utils/safe-decode-uri-components.ts
157
- function safeDecodeURIComponent(text) {
158
- try {
159
- return decodeURIComponent(text);
160
- } catch {
161
- return text;
162
- }
163
- }
164
-
165
- // src/layer.ts
166
- var Layer = class {
167
- opts;
168
- name;
169
- methods;
170
- paramNames;
171
- stack;
172
- path;
173
- regexp;
174
- /**
175
- * Initialize a new routing Layer with given `method`, `path`, and `middleware`.
176
- *
177
- * @param path - Path string or regular expression
178
- * @param methods - Array of HTTP verbs
179
- * @param middleware - Layer callback/middleware or series of
180
- * @param opts - Layer options
181
- * @private
182
- */
183
- constructor(path, methods, middleware, options = {}) {
184
- this.opts = options;
185
- this.name = this.opts.name || void 0;
186
- this.methods = this._normalizeHttpMethods(methods);
187
- this.stack = this._normalizeAndValidateMiddleware(
188
- middleware,
189
- methods,
190
- path
191
- );
192
- this.path = path;
193
- this.paramNames = [];
194
- this._configurePathMatching();
195
- }
196
- /**
197
- * Normalize HTTP methods and add automatic HEAD support for GET
198
- * @private
199
- */
200
- _normalizeHttpMethods(methods) {
201
- const normalizedMethods = [];
202
- for (const method of methods) {
203
- const upperMethod = method.toUpperCase();
204
- normalizedMethods.push(upperMethod);
205
- if (upperMethod === "GET") {
206
- normalizedMethods.unshift("HEAD");
207
- }
208
- }
209
- return normalizedMethods;
210
- }
211
- /**
212
- * Normalize middleware to array and validate all are functions
213
- * @private
214
- */
215
- _normalizeAndValidateMiddleware(middleware, methods, path) {
216
- const middlewareArray = Array.isArray(middleware) ? middleware : [middleware];
217
- for (const middlewareFunction of middlewareArray) {
218
- const middlewareType = typeof middlewareFunction;
219
- if (middlewareType !== "function") {
220
- const routeIdentifier = this.opts.name || path;
221
- throw new Error(
222
- `${methods.toString()} \`${routeIdentifier}\`: \`middleware\` must be a function, not \`${middlewareType}\``
223
- );
224
- }
225
- }
226
- return middlewareArray;
227
- }
228
- /**
229
- * Configure path matching regexp and parameters
230
- * @private
231
- */
232
- _configurePathMatching() {
233
- if (this.opts.pathAsRegExp === true) {
234
- this.regexp = this.path instanceof RegExp ? this.path : new RegExp(this.path);
235
- } else if (this.path) {
236
- this._configurePathToRegexp();
237
- }
238
- }
239
- /**
240
- * Configure path-to-regexp for string paths
241
- * @private
242
- */
243
- _configurePathToRegexp() {
244
- const options = normalizeLayerOptionsToPathToRegexp(this.opts);
245
- const { regexp, keys } = compilePathToRegexp(this.path, options);
246
- this.regexp = regexp;
247
- this.paramNames = keys;
248
- }
249
- /**
250
- * Returns whether request `path` matches route.
251
- *
252
- * @param path - Request path
253
- * @returns Whether path matches
254
- * @private
255
- */
256
- match(path) {
257
- return this.regexp.test(path);
258
- }
259
- /**
260
- * Returns map of URL parameters for given `path` and `paramNames`.
261
- *
262
- * @param _path - Request path (not used, kept for API compatibility)
263
- * @param captures - Captured values from regexp
264
- * @param existingParams - Existing params to merge with
265
- * @returns Parameter map
266
- * @private
267
- */
268
- params(_path, captures, existingParameters = {}) {
269
- const parameterValues = { ...existingParameters };
270
- for (const [captureIndex, capturedValue] of captures.entries()) {
271
- const parameterDefinition = this.paramNames[captureIndex];
272
- if (parameterDefinition && capturedValue && capturedValue.length > 0) {
273
- const parameterName = parameterDefinition.name;
274
- parameterValues[parameterName] = safeDecodeURIComponent(capturedValue);
275
- }
276
- }
277
- return parameterValues;
278
- }
279
- /**
280
- * Returns array of regexp url path captures.
281
- *
282
- * @param path - Request path
283
- * @returns Array of captured values
284
- * @private
285
- */
286
- captures(path) {
287
- if (this.opts.ignoreCaptures) {
288
- return [];
289
- }
290
- const match = path.match(this.regexp);
291
- return match ? match.slice(1) : [];
292
- }
293
- /**
294
- * Generate URL for route using given `params`.
295
- *
296
- * @example
297
- *
298
- * ```javascript
299
- * const route = new Layer('/users/:id', ['GET'], fn);
300
- *
301
- * route.url({ id: 123 }); // => "/users/123"
302
- * ```
303
- *
304
- * @param args - URL parameters (various formats supported)
305
- * @returns Generated URL
306
- * @throws Error if route path is a RegExp (cannot generate URL from RegExp)
307
- * @private
308
- */
309
- url(...arguments_) {
310
- if (this.path instanceof RegExp) {
311
- throw new TypeError(
312
- "Cannot generate URL for routes defined with RegExp paths. Use string paths with named parameters instead."
313
- );
314
- }
315
- const { params, options } = this._parseUrlArguments(arguments_);
316
- const cleanPath = this.path.replaceAll("(.*)", "");
317
- const pathCompiler = compilePath(cleanPath, {
318
- encode: encodeURIComponent,
319
- ...options
320
- });
321
- const parameterReplacements = this._buildParamReplacements(
322
- params,
323
- cleanPath
324
- );
325
- const generatedUrl = pathCompiler(parameterReplacements);
326
- if (options && options.query) {
327
- return this._addQueryString(generatedUrl, options.query);
328
- }
329
- return generatedUrl;
330
- }
331
- /**
332
- * Parse url() arguments into params and options
333
- * Supports multiple call signatures:
334
- * - url({ id: 1 })
335
- * - url(1, 2, 3)
336
- * - url({ query: {...} })
337
- * - url({ id: 1 }, { query: {...} })
338
- * @private
339
- */
340
- _parseUrlArguments(allArguments) {
341
- let parameters = allArguments[0] ?? {};
342
- let options = allArguments[1];
343
- if (typeof parameters !== "object" || parameters === null) {
344
- const argumentsList = [...allArguments];
345
- const lastArgument = argumentsList.at(-1);
346
- if (typeof lastArgument === "object" && lastArgument !== null) {
347
- options = lastArgument;
348
- parameters = argumentsList.slice(0, -1);
349
- } else {
350
- parameters = argumentsList;
351
- }
352
- } else if (parameters && !options) {
353
- const parameterKeys = Object.keys(parameters);
354
- const isOnlyOptions = parameterKeys.length === 1 && parameterKeys[0] === "query";
355
- if (isOnlyOptions) {
356
- options = parameters;
357
- parameters = {};
358
- } else if ("query" in parameters && parameters.query) {
359
- const { query, ...restParameters } = parameters;
360
- options = { query };
361
- parameters = restParameters;
362
- }
363
- }
364
- return { params: parameters, options };
365
- }
366
- /**
367
- * Build parameter replacements for URL generation
368
- * @private
369
- */
370
- _buildParamReplacements(parameters, cleanPath) {
371
- const { tokens } = parsePath(cleanPath);
372
- const hasNamedParameters = tokens.some(
373
- (token) => "name" in token && token.name
374
- );
375
- const parameterReplacements = {};
376
- if (Array.isArray(parameters)) {
377
- let parameterIndex = 0;
378
- for (const token of tokens) {
379
- if ("name" in token && token.name) {
380
- parameterReplacements[token.name] = String(
381
- parameters[parameterIndex++]
382
- );
383
- }
384
- }
385
- } else if (hasNamedParameters && typeof parameters === "object" && !("query" in parameters)) {
386
- for (const [parameterName, parameterValue] of Object.entries(
387
- parameters
388
- )) {
389
- parameterReplacements[parameterName] = String(parameterValue);
390
- }
391
- }
392
- return parameterReplacements;
393
- }
394
- /**
395
- * Add query string to URL
396
- * @private
397
- */
398
- _addQueryString(baseUrl, query) {
399
- const parsed = parseUrl(baseUrl);
400
- const urlObject = {
401
- ...parsed,
402
- query: parsed.query ?? void 0
403
- };
404
- if (typeof query === "string") {
405
- urlObject.search = query;
406
- urlObject.query = void 0;
407
- } else {
408
- urlObject.search = void 0;
409
- urlObject.query = query;
410
- }
411
- return formatUrl(urlObject);
412
- }
413
- /**
414
- * Run validations on route named parameters.
415
- *
416
- * @example
417
- *
418
- * ```javascript
419
- * router
420
- * .param('user', function (id, ctx, next) {
421
- * ctx.user = users[id];
422
- * if (!ctx.user) return ctx.status = 404;
423
- * next();
424
- * })
425
- * .get('/users/:user', function (ctx, next) {
426
- * ctx.body = ctx.user;
427
- * });
428
- * ```
429
- *
430
- * @param paramName - Parameter name
431
- * @param paramHandler - Middleware function
432
- * @returns This layer instance
433
- * @private
434
- */
435
- param(parameterName, parameterHandler) {
436
- const middlewareStack = this.stack;
437
- const routeParameterNames = this.paramNames;
438
- const parameterMiddleware = this._createParamMiddleware(
439
- parameterName,
440
- parameterHandler
441
- );
442
- const parameterNamesList = routeParameterNames.map(
443
- (parameterDefinition) => parameterDefinition.name
444
- );
445
- const parameterPosition = parameterNamesList.indexOf(parameterName);
446
- if (parameterPosition !== -1) {
447
- this._insertParamMiddleware(
448
- middlewareStack,
449
- parameterMiddleware,
450
- parameterNamesList,
451
- parameterPosition
452
- );
453
- }
454
- return this;
455
- }
456
- /**
457
- * Create param middleware with deduplication tracking
458
- * @private
459
- */
460
- _createParamMiddleware(parameterName, parameterHandler) {
461
- const middleware = ((context, next) => {
462
- if (!context._matchedParams) {
463
- context._matchedParams = /* @__PURE__ */ new WeakMap();
464
- }
465
- if (context._matchedParams.has(parameterHandler)) {
466
- return next();
467
- }
468
- context._matchedParams.set(parameterHandler, true);
469
- return parameterHandler(context.params[parameterName], context, next);
470
- });
471
- middleware.param = parameterName;
472
- middleware._originalFn = parameterHandler;
473
- return middleware;
474
- }
475
- /**
476
- * Insert param middleware at the correct position in the stack
477
- * @private
478
- */
479
- _insertParamMiddleware(middlewareStack, parameterMiddleware, parameterNamesList, currentParameterPosition) {
480
- let inserted = false;
481
- for (let stackIndex = 0; stackIndex < middlewareStack.length; stackIndex++) {
482
- const existingMiddleware = middlewareStack[stackIndex];
483
- if (!existingMiddleware.param) {
484
- middlewareStack.splice(stackIndex, 0, parameterMiddleware);
485
- inserted = true;
486
- break;
487
- }
488
- const existingParameterPosition = parameterNamesList.indexOf(
489
- existingMiddleware.param
490
- );
491
- if (existingParameterPosition > currentParameterPosition) {
492
- middlewareStack.splice(stackIndex, 0, parameterMiddleware);
493
- inserted = true;
494
- break;
495
- }
496
- }
497
- if (!inserted) {
498
- middlewareStack.push(parameterMiddleware);
499
- }
500
- }
501
- /**
502
- * Prefix route path.
503
- *
504
- * @param prefixPath - Prefix to prepend
505
- * @returns This layer instance
506
- * @private
507
- */
508
- setPrefix(prefixPath) {
509
- if (!this.path) {
510
- return this;
511
- }
512
- if (this.path instanceof RegExp) {
513
- return this;
514
- }
515
- this.path = this._applyPrefix(prefixPath);
516
- this._reconfigurePathMatching(prefixPath);
517
- return this;
518
- }
519
- /**
520
- * Apply prefix to the current path
521
- * @private
522
- */
523
- _applyPrefix(prefixPath) {
524
- const isRootPath = this.path === "/";
525
- const isStrictMode = this.opts.strict === true;
526
- const prefixHasParameters = prefixPath.includes(":");
527
- const pathIsRawRegex = this.opts.pathAsRegExp === true && typeof this.path === "string";
528
- if (prefixHasParameters && pathIsRawRegex) {
529
- const currentPath = this.path;
530
- if (currentPath === String.raw`(?:\/|$)` || currentPath === String.raw`(?:\\\/|$)`) {
531
- this.path = "{/*rest}";
532
- this.opts.pathAsRegExp = false;
533
- }
534
- }
535
- if (isRootPath && !isStrictMode) {
536
- return prefixPath;
537
- }
538
- return `${prefixPath}${this.path}`;
539
- }
540
- /**
541
- * Reconfigure path matching after prefix is applied
542
- * @private
543
- */
544
- _reconfigurePathMatching(prefixPath) {
545
- const treatAsRegExp = this.opts.pathAsRegExp === true;
546
- const prefixHasParameters = prefixPath && prefixPath.includes(":");
547
- if (prefixHasParameters && treatAsRegExp) {
548
- const options = normalizeLayerOptionsToPathToRegexp(this.opts);
549
- const { regexp, keys } = compilePathToRegexp(
550
- this.path,
551
- options
552
- );
553
- this.regexp = regexp;
554
- this.paramNames = keys;
555
- this.opts.pathAsRegExp = false;
556
- } else if (treatAsRegExp) {
557
- const pathString = this.path;
558
- const anchoredPattern = pathString.startsWith("^") ? pathString : `^${pathString}`;
559
- this.regexp = this.path instanceof RegExp ? this.path : new RegExp(anchoredPattern);
560
- } else {
561
- const options = normalizeLayerOptionsToPathToRegexp(this.opts);
562
- const { regexp, keys } = compilePathToRegexp(
563
- this.path,
564
- options
565
- );
566
- this.regexp = regexp;
567
- this.paramNames = keys;
568
- }
569
- }
570
- };
571
-
572
- // src/utils/http-methods.ts
573
- import http from "http";
574
- function getAllHttpMethods() {
575
- return http.METHODS.map((method) => method.toLowerCase());
576
- }
577
- var COMMON_HTTP_METHODS = [
578
- "get",
579
- "post",
580
- "put",
581
- "patch",
582
- "delete",
583
- "del",
584
- "head",
585
- "options"
586
- ];
587
-
588
- // src/utils/parameter-helpers.ts
589
- function normalizeParameterMiddleware(parameterMiddleware) {
590
- if (!parameterMiddleware) {
591
- return [];
592
- }
593
- if (Array.isArray(parameterMiddleware)) {
594
- return parameterMiddleware;
595
- }
596
- return [parameterMiddleware];
597
- }
598
- function applyParameterMiddlewareToRoute(route, parameterName, parameterMiddleware) {
599
- const middlewareList = normalizeParameterMiddleware(
600
- parameterMiddleware
601
- );
602
- for (const middleware of middlewareList) {
603
- route.param(parameterName, middleware);
604
- }
605
- }
606
- function applyAllParameterMiddleware(route, parametersObject) {
607
- const parameterNames = Object.keys(parametersObject);
608
- for (const parameterName of parameterNames) {
609
- const parameterMiddleware = parametersObject[parameterName];
610
- applyParameterMiddlewareToRoute(
611
- route,
612
- parameterName,
613
- parameterMiddleware
614
- );
615
- }
616
- }
617
-
618
- // src/utils/path-helpers.ts
619
- function hasPathParameters(path, options = {}) {
620
- if (!path) {
621
- return false;
622
- }
623
- const { keys } = compilePathToRegexp(path, options);
624
- return keys.length > 0;
625
- }
626
- function determineMiddlewarePath(explicitPath, hasPrefixParameters) {
627
- if (explicitPath !== void 0) {
628
- if (typeof explicitPath === "string") {
629
- if (explicitPath === "") {
630
- return {
631
- path: "{/*rest}",
632
- pathAsRegExp: false
633
- };
634
- }
635
- if (explicitPath === "/") {
636
- return {
637
- path: "/",
638
- pathAsRegExp: false
639
- };
640
- }
641
- return {
642
- path: explicitPath,
643
- pathAsRegExp: false
644
- };
645
- }
646
- return {
647
- path: explicitPath,
648
- pathAsRegExp: true
649
- };
650
- }
651
- if (hasPrefixParameters) {
652
- return {
653
- path: "{/*rest}",
654
- pathAsRegExp: false
655
- };
656
- }
657
- return {
658
- path: String.raw`(?:\/|$)`,
659
- pathAsRegExp: true
660
- };
661
- }
662
-
663
- // src/utils/debug.ts
664
- import debugModule from "debug";
665
- var debug = debugModule("koa-router");
666
-
667
- // src/router.ts
668
- var httpMethods = getAllHttpMethods();
669
- var RouterImplementation = class {
670
- opts;
671
- methods;
672
- exclusive;
673
- params;
674
- stack;
675
- host;
676
- /**
677
- * Event emitter for router lifecycle events (experimental)
678
- * @internal
679
- */
680
- _events = new RouterEventEmitter();
681
- /**
682
- * Create a new router.
683
- *
684
- * @example
685
- *
686
- * Basic usage:
687
- *
688
- * ```javascript
689
- * const Koa = require('koa');
690
- * const Router = require('@koa/router');
691
- *
692
- * const app = new Koa();
693
- * const router = new Router();
694
- *
695
- * router.get('/', (ctx, next) => {
696
- * // ctx.router available
697
- * });
698
- *
699
- * app
700
- * .use(router.routes())
701
- * .use(router.allowedMethods());
702
- * ```
703
- *
704
- * @alias module:koa-router
705
- * @param opts - Router options
706
- * @constructor
707
- */
708
- constructor(options = {}) {
709
- this.opts = options;
710
- this.methods = this.opts.methods || [
711
- "HEAD",
712
- "OPTIONS",
713
- "GET",
714
- "PUT",
715
- "PATCH",
716
- "POST",
717
- "DELETE"
718
- ];
719
- this.exclusive = Boolean(this.opts.exclusive);
720
- this.params = {};
721
- this.stack = [];
722
- this.host = this.opts.host;
723
- }
724
- /**
725
- * Generate URL from url pattern and given `params`.
726
- *
727
- * @example
728
- *
729
- * ```javascript
730
- * const url = Router.url('/users/:id', {id: 1});
731
- * // => "/users/1"
732
- * ```
733
- *
734
- * @param path - URL pattern
735
- * @param args - URL parameters
736
- * @returns Generated URL
737
- */
738
- static url(path, ...arguments_) {
739
- const temporaryLayer = new Layer(path, [], () => {
740
- });
741
- return temporaryLayer.url(...arguments_);
742
- }
743
- use(...middleware) {
744
- let explicitPath;
745
- if (this._isPathArray(middleware[0])) {
746
- return this._useWithPathArray(middleware);
747
- }
748
- const hasExplicitPath = this._hasExplicitPath(middleware[0]);
749
- if (hasExplicitPath) {
750
- explicitPath = middleware.shift();
751
- }
752
- if (middleware.length === 0) {
753
- throw new Error(
754
- "You must provide at least one middleware function to router.use()"
755
- );
756
- }
757
- for (const currentMiddleware of middleware) {
758
- if (this._isNestedRouter(currentMiddleware)) {
759
- this._mountNestedRouter(
760
- currentMiddleware,
761
- explicitPath
762
- );
763
- } else {
764
- this._registerMiddleware(
765
- currentMiddleware,
766
- explicitPath,
767
- hasExplicitPath
768
- );
769
- }
770
- }
771
- return this;
772
- }
773
- /**
774
- * Check if first argument is an array of paths (all elements must be strings)
775
- * @private
776
- */
777
- _isPathArray(firstArgument) {
778
- return Array.isArray(firstArgument) && firstArgument.length > 0 && firstArgument.every((item) => typeof item === "string");
779
- }
780
- /**
781
- * Check if first argument is an explicit path (string or RegExp)
782
- * Empty string counts as explicit path to enable param capture
783
- * @private
784
- */
785
- _hasExplicitPath(firstArgument) {
786
- return typeof firstArgument === "string" || firstArgument instanceof RegExp;
787
- }
788
- /**
789
- * Check if middleware contains a nested router
790
- * @private
791
- */
792
- _isNestedRouter(middleware) {
793
- return typeof middleware === "function" && "router" in middleware && middleware.router !== void 0;
794
- }
795
- /**
796
- * Apply middleware to multiple paths
797
- * @private
798
- */
799
- _useWithPathArray(middleware) {
800
- const pathArray = middleware[0];
801
- const remainingMiddleware = middleware.slice(1);
802
- for (const singlePath of pathArray) {
803
- Reflect.apply(this.use, this, [singlePath, ...remainingMiddleware]);
804
- }
805
- return this;
806
- }
807
- /**
808
- * Mount a nested router
809
- * @private
810
- */
811
- _mountNestedRouter(middlewareWithRouter, mountPath) {
812
- const nestedRouter = middlewareWithRouter.router;
813
- const clonedRouter = this._cloneRouter(nestedRouter);
814
- const mountPathHasParameters = mountPath && typeof mountPath === "string" && hasPathParameters(mountPath, this.opts);
815
- for (let routeIndex = 0; routeIndex < clonedRouter.stack.length; routeIndex++) {
816
- const nestedLayer = clonedRouter.stack[routeIndex];
817
- const clonedLayer = this._cloneLayer(nestedLayer);
818
- if (mountPath && typeof mountPath === "string") {
819
- clonedLayer.setPrefix(mountPath);
820
- }
821
- if (this.opts.prefix) {
822
- clonedLayer.setPrefix(this.opts.prefix);
823
- }
824
- if (clonedLayer.methods.length === 0 && mountPathHasParameters) {
825
- clonedLayer.opts.ignoreCaptures = false;
826
- }
827
- this.stack.push(clonedLayer);
828
- clonedRouter.stack[routeIndex] = clonedLayer;
829
- }
830
- if (this.params) {
831
- this._applyParamMiddlewareToRouter(clonedRouter);
832
- }
833
- }
834
- /**
835
- * Clone a router instance
836
- * @private
837
- */
838
- _cloneRouter(sourceRouter) {
839
- return Object.assign(
840
- Object.create(Object.getPrototypeOf(sourceRouter)),
841
- sourceRouter,
842
- {
843
- stack: [...sourceRouter.stack]
844
- }
845
- );
846
- }
847
- /**
848
- * Clone a layer instance (deep clone to avoid shared references)
849
- * @private
850
- */
851
- _cloneLayer(sourceLayer) {
852
- const cloned = Object.assign(
853
- Object.create(Object.getPrototypeOf(sourceLayer)),
854
- sourceLayer,
855
- {
856
- // Deep clone arrays and objects to avoid shared references
857
- stack: [...sourceLayer.stack],
858
- methods: [...sourceLayer.methods],
859
- paramNames: [...sourceLayer.paramNames],
860
- opts: { ...sourceLayer.opts }
861
- }
862
- );
863
- return cloned;
864
- }
865
- /**
866
- * Apply this router's param middleware to a nested router
867
- * @private
868
- */
869
- _applyParamMiddlewareToRouter(targetRouter) {
870
- const parameterNames = Object.keys(this.params);
871
- for (const parameterName of parameterNames) {
872
- const parameterMiddleware = this.params[parameterName];
873
- applyParameterMiddlewareToRoute(
874
- targetRouter,
875
- parameterName,
876
- parameterMiddleware
877
- );
878
- }
879
- }
880
- /**
881
- * Register regular middleware (not nested router)
882
- * @private
883
- */
884
- _registerMiddleware(middleware, explicitPath, hasExplicitPath) {
885
- const prefixHasParameters = hasPathParameters(
886
- this.opts.prefix || "",
887
- this.opts
888
- );
889
- const effectiveExplicitPath = (() => {
890
- if (explicitPath !== void 0) return explicitPath;
891
- if (prefixHasParameters) return "";
892
- return;
893
- })();
894
- const effectiveHasExplicitPath = hasExplicitPath || explicitPath === void 0 && prefixHasParameters;
895
- const { path: middlewarePath, pathAsRegExp } = determineMiddlewarePath(
896
- effectiveExplicitPath,
897
- prefixHasParameters
898
- );
899
- let finalPath = middlewarePath;
900
- let usePathToRegexp = pathAsRegExp;
901
- const isRootPath = effectiveHasExplicitPath && middlewarePath === "/";
902
- if (effectiveHasExplicitPath && typeof middlewarePath === "string") {
903
- finalPath = middlewarePath;
904
- usePathToRegexp = false;
905
- }
906
- this.register(finalPath, [], middleware, {
907
- end: isRootPath,
908
- ignoreCaptures: !effectiveHasExplicitPath && !prefixHasParameters,
909
- pathAsRegExp: usePathToRegexp
910
- });
911
- }
912
- /**
913
- * Set the path prefix for a Router instance that was already initialized.
914
- * Note: Calling this method multiple times will replace the prefix, not stack them.
915
- *
916
- * @example
917
- *
918
- * ```javascript
919
- * router.prefix('/things/:thing_id')
920
- * ```
921
- *
922
- * @param prefixPath - Prefix string
923
- * @returns This router instance
924
- */
925
- prefix(prefixPath) {
926
- const normalizedPrefix = prefixPath.replace(/\/$/, "");
927
- const previousPrefix = this.opts.prefix || "";
928
- this.opts.prefix = normalizedPrefix;
929
- for (const route of this.stack) {
930
- if (previousPrefix && typeof route.path === "string" && route.path.startsWith(previousPrefix)) {
931
- route.path = route.path.slice(previousPrefix.length) || "/";
932
- }
933
- route.setPrefix(normalizedPrefix);
934
- }
935
- return this;
936
- }
937
- /**
938
- * Returns router middleware which dispatches a route matching the request.
939
- *
940
- * @returns Router middleware
941
- */
942
- middleware() {
943
- const dispatchMiddleware = function(context, next) {
944
- debug("%s %s", context.method, context.path);
945
- if (!this.matchHost(context.host)) {
946
- return next();
947
- }
948
- const requestPath = this._getRequestPath(context);
949
- const matchResult = this.match(requestPath, context.method);
950
- this._storeMatchedRoutes(context, matchResult);
951
- context.router = this;
952
- context.routeMatched = matchResult.route;
953
- if (!matchResult.route) {
954
- return this._events.emit(
955
- RouterEvents.NotFound,
956
- context,
957
- next
958
- );
959
- }
960
- const matchedLayers = matchResult.pathAndMethod;
961
- this._setMatchedRouteInfo(context, matchedLayers);
962
- const middlewareChain = this._buildMiddlewareChain(
963
- matchedLayers,
964
- requestPath
965
- );
966
- return compose2(middlewareChain)(
967
- context,
968
- next
969
- );
970
- }.bind(this);
971
- dispatchMiddleware.router = this;
972
- return dispatchMiddleware;
973
- }
974
- /**
975
- * Get the request path to use for routing
976
- * @private
977
- */
978
- _getRequestPath(context) {
979
- const context_ = context;
980
- return this.opts.routerPath || context_.newRouterPath || context_.path || context_.routerPath || "";
981
- }
982
- /**
983
- * Store matched routes on context
984
- * @private
985
- */
986
- _storeMatchedRoutes(context, matchResult) {
987
- const context_ = context;
988
- if (context_.matched) {
989
- context_.matched.push(...matchResult.path);
990
- } else {
991
- context_.matched = matchResult.path;
992
- }
993
- }
994
- /**
995
- * Set matched route information on context
996
- * @private
997
- */
998
- _setMatchedRouteInfo(context, matchedLayers) {
999
- const context_ = context;
1000
- const routeLayer = matchedLayers.toReversed().find((layer) => layer.methods.length > 0);
1001
- if (routeLayer) {
1002
- context_._matchedRoute = routeLayer.path;
1003
- if (routeLayer.name) {
1004
- context_._matchedRouteName = routeLayer.name;
1005
- }
1006
- }
1007
- }
1008
- /**
1009
- * Build middleware chain from matched layers
1010
- * @private
1011
- */
1012
- _buildMiddlewareChain(matchedLayers, requestPath) {
1013
- const layersToExecute = this.opts.exclusive ? [matchedLayers.at(-1)].filter(
1014
- (layer) => layer !== void 0
1015
- ) : matchedLayers;
1016
- const middlewareChain = [];
1017
- for (const layer of layersToExecute) {
1018
- middlewareChain.push(
1019
- (context, next) => {
1020
- const routerContext = context;
1021
- routerContext.captures = layer.captures(requestPath);
1022
- routerContext.request.params = layer.params(
1023
- requestPath,
1024
- routerContext.captures || [],
1025
- routerContext.params
1026
- );
1027
- routerContext.params = routerContext.request.params;
1028
- routerContext.routerPath = layer.path;
1029
- routerContext.routerName = layer.name || void 0;
1030
- routerContext._matchedRoute = layer.path;
1031
- if (layer.name) {
1032
- routerContext._matchedRouteName = layer.name;
1033
- }
1034
- return next();
1035
- },
1036
- ...layer.stack
1037
- );
1038
- }
1039
- return middlewareChain;
1040
- }
1041
- routes() {
1042
- return this.middleware();
1043
- }
1044
- /**
1045
- * Register an event handler on the router.
1046
- *
1047
- * @experimental This API is experimental and may change in future versions.
1048
- *
1049
- * **Active events:**
1050
- * - `'not-found'` — fires when no route matched path + method. Handlers are
1051
- * composed and called instead of `next()`, so they are responsible for
1052
- * calling `next()` themselves if they want to pass control downstream.
1053
- *
1054
- * @example
1055
- *
1056
- * All three forms are equivalent:
1057
- *
1058
- * ```javascript
1059
- * import { RouterEvents } from '@koa/router';
1060
- *
1061
- * // Named constant (recommended — autocomplete + refactor safe)
1062
- * router.on(RouterEvents.NotFound, handler);
1063
- *
1064
- * // Selector function (fluent style)
1065
- * router.on((events) => events.NotFound, handler);
1066
- *
1067
- * // Raw string (still accepted)
1068
- * router.on('not-found', handler);
1069
- * ```
1070
- *
1071
- * Multiple handlers compose in registration order:
1072
- *
1073
- * ```javascript
1074
- * router.on(RouterEvents.NotFound, async (ctx, next) => {
1075
- * console.log('no route matched', ctx.path);
1076
- * await next();
1077
- * });
1078
- * router.on(RouterEvents.NotFound, (ctx) => {
1079
- * ctx.status = 404;
1080
- * ctx.body = { error: 'Not Found' };
1081
- * });
1082
- * ```
1083
- *
1084
- * @param event - Event name string, `RouterEvents` constant, or selector
1085
- * function `(events) => events.NotFound` (see `RouterEventSelector`)
1086
- * @param handler - Middleware to run when the event fires
1087
- * @returns This router instance for chaining
1088
- */
1089
- on(event, handler) {
1090
- this._events.register(resolveEvent(event), handler);
1091
- return this;
1092
- }
1093
- /**
1094
- * Returns separate middleware for responding to `OPTIONS` requests with
1095
- * an `Allow` header containing the allowed methods, as well as responding
1096
- * with `405 Method Not Allowed` and `501 Not Implemented` as appropriate.
1097
- *
1098
- * @example
1099
- *
1100
- * ```javascript
1101
- * const Koa = require('koa');
1102
- * const Router = require('@koa/router');
1103
- *
1104
- * const app = new Koa();
1105
- * const router = new Router();
1106
- *
1107
- * app.use(router.routes());
1108
- * app.use(router.allowedMethods());
1109
- * ```
1110
- *
1111
- * **Example with [Boom](https://github.com/hapijs/boom)**
1112
- *
1113
- * ```javascript
1114
- * const Koa = require('koa');
1115
- * const Router = require('@koa/router');
1116
- * const Boom = require('boom');
1117
- *
1118
- * const app = new Koa();
1119
- * const router = new Router();
1120
- *
1121
- * app.use(router.routes());
1122
- * app.use(router.allowedMethods({
1123
- * throw: true,
1124
- * notImplemented: () => new Boom.notImplemented(),
1125
- * methodNotAllowed: () => new Boom.methodNotAllowed()
1126
- * }));
1127
- * ```
1128
- *
1129
- * @param options - Options object
1130
- * @returns Middleware function
1131
- */
1132
- allowedMethods(options = {}) {
1133
- const implementedMethods = this.methods;
1134
- return (context, next) => {
1135
- const routerContext = context;
1136
- return next().then(() => {
1137
- if (!this._shouldProcessAllowedMethods(routerContext)) {
1138
- return;
1139
- }
1140
- const matchedRoutes = routerContext.matched || [];
1141
- const allowedMethods = this._collectAllowedMethods(matchedRoutes);
1142
- const allowedMethodsList = Object.keys(allowedMethods);
1143
- const requestMethod = context.method.toUpperCase();
1144
- if (!implementedMethods.includes(requestMethod)) {
1145
- this._handleNotImplemented(
1146
- routerContext,
1147
- allowedMethodsList,
1148
- options
1149
- );
1150
- return;
1151
- }
1152
- if (requestMethod === "OPTIONS" && allowedMethodsList.length > 0) {
1153
- this._handleOptionsRequest(routerContext, allowedMethodsList);
1154
- return;
1155
- }
1156
- if (allowedMethodsList.length > 0 && !allowedMethods[requestMethod]) {
1157
- this._handleMethodNotAllowed(
1158
- routerContext,
1159
- allowedMethodsList,
1160
- options
1161
- );
1162
- }
1163
- });
1164
- };
1165
- }
1166
- /**
1167
- * Check if we should process allowed methods
1168
- * @private
1169
- */
1170
- _shouldProcessAllowedMethods(context) {
1171
- return !!(context.matched && (!context.status || context.status === 404));
1172
- }
1173
- /**
1174
- * Collect all allowed methods from matched routes
1175
- * @private
1176
- */
1177
- _collectAllowedMethods(matchedRoutes) {
1178
- const allowedMethods = {};
1179
- for (const route of matchedRoutes) {
1180
- for (const method of route.methods) {
1181
- allowedMethods[method] = method;
1182
- }
1183
- }
1184
- return allowedMethods;
1185
- }
1186
- /**
1187
- * Handle 501 Not Implemented response
1188
- * @private
1189
- */
1190
- _handleNotImplemented(context, allowedMethodsList, options) {
1191
- if (options.throw) {
1192
- const error = typeof options.notImplemented === "function" ? options.notImplemented() : new HttpError.NotImplemented();
1193
- throw error;
1194
- }
1195
- context.status = 501;
1196
- context.set("Allow", allowedMethodsList.join(", "));
1197
- }
1198
- /**
1199
- * Handle OPTIONS request
1200
- * @private
1201
- */
1202
- _handleOptionsRequest(context, allowedMethodsList) {
1203
- context.status = 200;
1204
- context.body = "";
1205
- context.set("Allow", allowedMethodsList.join(", "));
1206
- }
1207
- /**
1208
- * Handle 405 Method Not Allowed response
1209
- * @private
1210
- */
1211
- _handleMethodNotAllowed(context, allowedMethodsList, options) {
1212
- if (options.throw) {
1213
- const error = typeof options.methodNotAllowed === "function" ? options.methodNotAllowed() : new HttpError.MethodNotAllowed();
1214
- throw error;
1215
- }
1216
- context.status = 405;
1217
- context.set("Allow", allowedMethodsList.join(", "));
1218
- }
1219
- all(...arguments_) {
1220
- let name;
1221
- let path;
1222
- let middleware;
1223
- if (arguments_.length >= 2 && (typeof arguments_[1] === "string" || arguments_[1] instanceof RegExp)) {
1224
- name = arguments_[0];
1225
- path = arguments_[1];
1226
- middleware = arguments_.slice(2);
1227
- } else {
1228
- name = void 0;
1229
- path = arguments_[0];
1230
- middleware = arguments_.slice(1);
1231
- }
1232
- if (typeof path !== "string" && !(path instanceof RegExp) && (!Array.isArray(path) || path.length === 0))
1233
- throw new Error("You have to provide a path when adding an all handler");
1234
- const routeOptions = {
1235
- name,
1236
- pathAsRegExp: path instanceof RegExp
1237
- };
1238
- this.register(path, httpMethods, middleware, {
1239
- ...this.opts,
1240
- ...routeOptions
1241
- });
1242
- return this;
1243
- }
1244
- /**
1245
- * Redirect `source` to `destination` URL with optional 30x status `code`.
1246
- *
1247
- * Both `source` and `destination` can be route names.
1248
- *
1249
- * ```javascript
1250
- * router.redirect('/login', 'sign-in');
1251
- * ```
1252
- *
1253
- * This is equivalent to:
1254
- *
1255
- * ```javascript
1256
- * router.all('/login', ctx => {
1257
- * ctx.redirect('/sign-in');
1258
- * ctx.status = 301;
1259
- * });
1260
- * ```
1261
- *
1262
- * @param source - URL or route name
1263
- * @param destination - URL or route name
1264
- * @param code - HTTP status code (default: 301)
1265
- * @returns This router instance
1266
- */
1267
- redirect(source, destination, code) {
1268
- let resolvedSource = source;
1269
- let resolvedDestination = destination;
1270
- if (typeof source === "symbol" || typeof source === "string" && source[0] !== "/") {
1271
- const sourceUrl = this.url(source);
1272
- if (sourceUrl instanceof Error) throw sourceUrl;
1273
- resolvedSource = sourceUrl;
1274
- }
1275
- if (typeof destination === "symbol" || typeof destination === "string" && destination[0] !== "/" && !destination.includes("://")) {
1276
- const destinationUrl = this.url(destination);
1277
- if (destinationUrl instanceof Error) throw destinationUrl;
1278
- resolvedDestination = destinationUrl;
1279
- }
1280
- const result = this.all(
1281
- resolvedSource,
1282
- (context) => {
1283
- context.redirect(resolvedDestination);
1284
- context.status = code || 301;
1285
- }
1286
- );
1287
- return result;
1288
- }
1289
- /**
1290
- * Create and register a route.
1291
- *
1292
- * @param path - Path string
1293
- * @param methods - Array of HTTP verbs
1294
- * @param middleware - Middleware functions
1295
- * @param additionalOptions - Additional options
1296
- * @returns Created layer
1297
- * @private
1298
- */
1299
- register(path, methods, middleware, additionalOptions = {}) {
1300
- const mergedOptions = { ...this.opts, ...additionalOptions };
1301
- if (Array.isArray(path)) {
1302
- return this._registerMultiplePaths(
1303
- path,
1304
- methods,
1305
- middleware,
1306
- mergedOptions
1307
- );
1308
- }
1309
- const routeLayer = this._createRouteLayer(
1310
- path,
1311
- methods,
1312
- middleware,
1313
- mergedOptions
1314
- );
1315
- if (this.opts.prefix) {
1316
- routeLayer.setPrefix(this.opts.prefix);
1317
- }
1318
- applyAllParameterMiddleware(routeLayer, this.params);
1319
- this.stack.push(routeLayer);
1320
- debug("defined route %s %s", routeLayer.methods, routeLayer.path);
1321
- return routeLayer;
1322
- }
1323
- /**
1324
- * Register multiple paths with the same configuration
1325
- * @private
1326
- */
1327
- _registerMultiplePaths(pathArray, methods, middleware, options) {
1328
- for (const singlePath of pathArray) {
1329
- this.register.call(this, singlePath, methods, middleware, options);
1330
- }
1331
- return this;
1332
- }
1333
- /**
1334
- * Create a route layer with given configuration
1335
- * @private
1336
- */
1337
- _createRouteLayer(path, methods, middleware, options) {
1338
- return new Layer(path, methods, middleware, {
1339
- end: options.end === false ? options.end : true,
1340
- name: options.name,
1341
- sensitive: options.sensitive || false,
1342
- strict: options.strict || false,
1343
- prefix: options.prefix || "",
1344
- ignoreCaptures: options.ignoreCaptures,
1345
- pathAsRegExp: options.pathAsRegExp
1346
- });
1347
- }
1348
- /**
1349
- * Lookup route with given `name`.
1350
- *
1351
- * @param name - Route name
1352
- * @returns Matched layer or false
1353
- */
1354
- route(name) {
1355
- const matchingRoute = this.stack.find((route) => route.name === name);
1356
- return matchingRoute || false;
1357
- }
1358
- /**
1359
- * Generate URL for route. Takes a route name and map of named `params`.
1360
- *
1361
- * @example
1362
- *
1363
- * ```javascript
1364
- * router.get('user', '/users/:id', (ctx, next) => {
1365
- * // ...
1366
- * });
1367
- *
1368
- * router.url('user', 3);
1369
- * // => "/users/3"
1370
- *
1371
- * router.url('user', { id: 3 });
1372
- * // => "/users/3"
1373
- *
1374
- * router.use((ctx, next) => {
1375
- * // redirect to named route
1376
- * ctx.redirect(ctx.router.url('sign-in'));
1377
- * })
1378
- *
1379
- * router.url('user', { id: 3 }, { query: { limit: 1 } });
1380
- * // => "/users/3?limit=1"
1381
- *
1382
- * router.url('user', { id: 3 }, { query: "limit=1" });
1383
- * // => "/users/3?limit=1"
1384
- * ```
1385
- *
1386
- * @param name - Route name
1387
- * @param args - URL parameters
1388
- * @returns Generated URL or Error
1389
- */
1390
- url(name, ...arguments_) {
1391
- const route = this.route(name);
1392
- if (route) return route.url(...arguments_);
1393
- return new Error(`No route found for name: ${String(name)}`);
1394
- }
1395
- /**
1396
- * Match given `path` and return corresponding routes.
1397
- *
1398
- * @param path - Request path
1399
- * @param method - HTTP method
1400
- * @returns Match result with matched layers
1401
- * @private
1402
- */
1403
- match(path, method) {
1404
- const matchResult = {
1405
- path: [],
1406
- pathAndMethod: [],
1407
- route: false
1408
- };
1409
- const normalizedMethod = method.toUpperCase();
1410
- for (const layer of this.stack) {
1411
- debug("test %s %s", layer.path, layer.regexp);
1412
- if (layer.match(path)) {
1413
- matchResult.path.push(layer);
1414
- const isMiddleware = layer.methods.length === 0;
1415
- const matchesMethod = layer.methods.includes(normalizedMethod);
1416
- if (isMiddleware || matchesMethod) {
1417
- matchResult.pathAndMethod.push(layer);
1418
- if (layer.methods.length > 0) {
1419
- matchResult.route = true;
1420
- }
1421
- }
1422
- }
1423
- }
1424
- return matchResult;
1425
- }
1426
- /**
1427
- * Match given `input` to allowed host
1428
- * @param input - Host to check
1429
- * @returns Whether host matches
1430
- */
1431
- matchHost(input) {
1432
- const { host } = this;
1433
- if (!host) {
1434
- return true;
1435
- }
1436
- if (!input) {
1437
- return false;
1438
- }
1439
- if (typeof host === "string") {
1440
- return input === host;
1441
- }
1442
- if (Array.isArray(host)) {
1443
- return host.includes(input);
1444
- }
1445
- if (host instanceof RegExp) {
1446
- return host.test(input);
1447
- }
1448
- return false;
1449
- }
1450
- /**
1451
- * Run middleware for named route parameters. Useful for auto-loading or
1452
- * validation.
1453
- *
1454
- * @example
1455
- *
1456
- * ```javascript
1457
- * router
1458
- * .param('user', (id, ctx, next) => {
1459
- * ctx.user = users[id];
1460
- * if (!ctx.user) return ctx.status = 404;
1461
- * return next();
1462
- * })
1463
- * .get('/users/:user', ctx => {
1464
- * ctx.body = ctx.user;
1465
- * })
1466
- * .get('/users/:user/friends', ctx => {
1467
- * return ctx.user.getFriends().then(function(friends) {
1468
- * ctx.body = friends;
1469
- * });
1470
- * })
1471
- * // /users/3 => {"id": 3, "name": "Alex"}
1472
- * // /users/3/friends => [{"id": 4, "name": "TJ"}]
1473
- * ```
1474
- *
1475
- * @param param - Parameter name
1476
- * @param middleware - Parameter middleware
1477
- * @returns This router instance
1478
- */
1479
- param(parameter, middleware) {
1480
- if (!this.params[parameter]) {
1481
- this.params[parameter] = [];
1482
- }
1483
- if (!Array.isArray(this.params[parameter])) {
1484
- this.params[parameter] = [
1485
- this.params[parameter]
1486
- ];
1487
- }
1488
- this.params[parameter].push(middleware);
1489
- for (const route of this.stack) {
1490
- route.param(parameter, middleware);
1491
- }
1492
- return this;
1493
- }
1494
- /**
1495
- * Helper method for registering HTTP verb routes
1496
- * @internal - Used by dynamically added HTTP methods
1497
- */
1498
- _registerMethod(method, ...arguments_) {
1499
- let name;
1500
- let path;
1501
- let middleware;
1502
- if (arguments_.length >= 2 && (typeof arguments_[1] === "string" || arguments_[1] instanceof RegExp)) {
1503
- name = arguments_[0];
1504
- path = arguments_[1];
1505
- middleware = arguments_.slice(2);
1506
- } else {
1507
- name = void 0;
1508
- path = arguments_[0];
1509
- middleware = arguments_.slice(1);
1510
- }
1511
- if (typeof path !== "string" && !(path instanceof RegExp) && (!Array.isArray(path) || path.length === 0))
1512
- throw new Error(
1513
- `You have to provide a path when adding a ${method} handler`
1514
- );
1515
- const options = {
1516
- name,
1517
- pathAsRegExp: path instanceof RegExp
1518
- };
1519
- this.register(path, [method], middleware, {
1520
- ...this.opts,
1521
- ...options
1522
- });
1523
- return this;
1524
- }
1525
- get(...arguments_) {
1526
- return this._registerMethod("get", ...arguments_);
1527
- }
1528
- post(...arguments_) {
1529
- return this._registerMethod("post", ...arguments_);
1530
- }
1531
- put(...arguments_) {
1532
- return this._registerMethod("put", ...arguments_);
1533
- }
1534
- patch(...arguments_) {
1535
- return this._registerMethod("patch", ...arguments_);
1536
- }
1537
- delete(...arguments_) {
1538
- return this._registerMethod("delete", ...arguments_);
1539
- }
1540
- del(...arguments_) {
1541
- return this.delete.apply(
1542
- this,
1543
- arguments_
1544
- );
1545
- }
1546
- head(...arguments_) {
1547
- return this._registerMethod("head", ...arguments_);
1548
- }
1549
- options(...arguments_) {
1550
- return this._registerMethod("options", ...arguments_);
1551
- }
1552
- };
1553
- var Router = RouterImplementation;
1554
- var router_default = Router;
1555
- for (const httpMethod of httpMethods) {
1556
- const isAlreadyDefined = COMMON_HTTP_METHODS.includes(httpMethod) || httpMethod in RouterImplementation.prototype;
1557
- if (!isAlreadyDefined) {
1558
- Object.defineProperty(RouterImplementation.prototype, httpMethod, {
1559
- value: function(...arguments_) {
1560
- return this._registerMethod(httpMethod, ...arguments_);
1561
- },
1562
- writable: true,
1563
- configurable: true,
1564
- enumerable: false
1565
- });
1566
- }
1567
- }
1568
- export {
1569
- Router,
1570
- RouterEvents,
1571
- createParameterValidationMiddleware,
1572
- router_default as default
1573
- };