@nocobase/plugin-idp-oauth 2.1.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/LICENSE.txt +107 -0
  2. package/README.md +14 -0
  3. package/build.config.ts +46 -0
  4. package/client.d.ts +2 -0
  5. package/client.js +1 -0
  6. package/dist/client/ErrorPage.d.ts +11 -0
  7. package/dist/client/InteractionPage.d.ts +11 -0
  8. package/dist/client/index.d.ts +9 -0
  9. package/dist/client/index.js +10 -0
  10. package/dist/client/locale.d.ts +10 -0
  11. package/dist/client/models/index.d.ts +11 -0
  12. package/dist/client/plugin.d.ts +13 -0
  13. package/dist/externalVersion.js +18 -0
  14. package/dist/index.d.ts +10 -0
  15. package/dist/index.js +48 -0
  16. package/dist/locale/en-US.json +1 -0
  17. package/dist/locale/zh-CN.json +1 -0
  18. package/dist/node_modules/eta/LICENSE +7 -0
  19. package/dist/node_modules/eta/README.md +185 -0
  20. package/dist/node_modules/eta/dist/core.d.ts +179 -0
  21. package/dist/node_modules/eta/dist/core.d.ts.map +1 -0
  22. package/dist/node_modules/eta/dist/core.js +42 -0
  23. package/dist/node_modules/eta/dist/core.js.map +1 -0
  24. package/dist/node_modules/eta/dist/index.cjs +542 -0
  25. package/dist/node_modules/eta/dist/index.cjs.map +1 -0
  26. package/dist/node_modules/eta/dist/index.d.cts +187 -0
  27. package/dist/node_modules/eta/dist/index.d.cts.map +1 -0
  28. package/dist/node_modules/eta/dist/index.d.mts +187 -0
  29. package/dist/node_modules/eta/dist/index.d.mts.map +1 -0
  30. package/dist/node_modules/eta/dist/index.mjs +512 -0
  31. package/dist/node_modules/eta/dist/index.mjs.map +1 -0
  32. package/dist/node_modules/eta/package.json +75 -0
  33. package/dist/node_modules/jose/LICENSE.md +21 -0
  34. package/dist/node_modules/jose/README.md +153 -0
  35. package/dist/node_modules/jose/dist/types/index.d.ts +55 -0
  36. package/dist/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +31 -0
  37. package/dist/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +65 -0
  38. package/dist/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +31 -0
  39. package/dist/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +83 -0
  40. package/dist/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +38 -0
  41. package/dist/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +74 -0
  42. package/dist/node_modules/jose/dist/types/jwk/embedded.d.ts +17 -0
  43. package/dist/node_modules/jose/dist/types/jwk/thumbprint.d.ts +32 -0
  44. package/dist/node_modules/jose/dist/types/jwks/local.d.ts +29 -0
  45. package/dist/node_modules/jose/dist/types/jwks/remote.d.ts +237 -0
  46. package/dist/node_modules/jose/dist/types/jws/compact/sign.d.ts +36 -0
  47. package/dist/node_modules/jose/dist/types/jws/compact/verify.d.ts +33 -0
  48. package/dist/node_modules/jose/dist/types/jws/flattened/sign.d.ts +42 -0
  49. package/dist/node_modules/jose/dist/types/jws/flattened/verify.d.ts +33 -0
  50. package/dist/node_modules/jose/dist/types/jws/general/sign.d.ts +53 -0
  51. package/dist/node_modules/jose/dist/types/jws/general/verify.d.ts +41 -0
  52. package/dist/node_modules/jose/dist/types/jwt/decrypt.d.ts +35 -0
  53. package/dist/node_modules/jose/dist/types/jwt/encrypt.d.ts +91 -0
  54. package/dist/node_modules/jose/dist/types/jwt/sign.d.ts +43 -0
  55. package/dist/node_modules/jose/dist/types/jwt/unsecured.d.ts +43 -0
  56. package/dist/node_modules/jose/dist/types/jwt/verify.d.ts +37 -0
  57. package/dist/node_modules/jose/dist/types/key/export.d.ts +33 -0
  58. package/dist/node_modules/jose/dist/types/key/generate_key_pair.d.ts +47 -0
  59. package/dist/node_modules/jose/dist/types/key/generate_secret.d.ts +35 -0
  60. package/dist/node_modules/jose/dist/types/key/import.d.ts +83 -0
  61. package/dist/node_modules/jose/dist/types/types.d.ts +852 -0
  62. package/dist/node_modules/jose/dist/types/util/base64url.d.ts +9 -0
  63. package/dist/node_modules/jose/dist/types/util/decode_jwt.d.ts +18 -0
  64. package/dist/node_modules/jose/dist/types/util/decode_protected_header.d.ts +17 -0
  65. package/dist/node_modules/jose/dist/types/util/errors.d.ts +213 -0
  66. package/dist/node_modules/jose/dist/webapi/index.js +32 -0
  67. package/dist/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +27 -0
  68. package/dist/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +27 -0
  69. package/dist/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +155 -0
  70. package/dist/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +165 -0
  71. package/dist/node_modules/jose/dist/webapi/jwe/general/decrypt.js +31 -0
  72. package/dist/node_modules/jose/dist/webapi/jwe/general/encrypt.js +182 -0
  73. package/dist/node_modules/jose/dist/webapi/jwk/embedded.js +17 -0
  74. package/dist/node_modules/jose/dist/webapi/jwk/thumbprint.js +68 -0
  75. package/dist/node_modules/jose/dist/webapi/jwks/local.js +119 -0
  76. package/dist/node_modules/jose/dist/webapi/jwks/remote.js +179 -0
  77. package/dist/node_modules/jose/dist/webapi/jws/compact/sign.js +18 -0
  78. package/dist/node_modules/jose/dist/webapi/jws/compact/verify.js +21 -0
  79. package/dist/node_modules/jose/dist/webapi/jws/flattened/sign.js +89 -0
  80. package/dist/node_modules/jose/dist/webapi/jws/flattened/verify.js +110 -0
  81. package/dist/node_modules/jose/dist/webapi/jws/general/sign.js +70 -0
  82. package/dist/node_modules/jose/dist/webapi/jws/general/verify.js +24 -0
  83. package/dist/node_modules/jose/dist/webapi/jwt/decrypt.js +23 -0
  84. package/dist/node_modules/jose/dist/webapi/jwt/encrypt.js +101 -0
  85. package/dist/node_modules/jose/dist/webapi/jwt/sign.js +52 -0
  86. package/dist/node_modules/jose/dist/webapi/jwt/unsecured.js +63 -0
  87. package/dist/node_modules/jose/dist/webapi/jwt/verify.js +15 -0
  88. package/dist/node_modules/jose/dist/webapi/key/export.js +11 -0
  89. package/dist/node_modules/jose/dist/webapi/key/generate_key_pair.js +97 -0
  90. package/dist/node_modules/jose/dist/webapi/key/generate_secret.js +40 -0
  91. package/dist/node_modules/jose/dist/webapi/key/import.js +57 -0
  92. package/dist/node_modules/jose/dist/webapi/lib/aesgcmkw.js +15 -0
  93. package/dist/node_modules/jose/dist/webapi/lib/aeskw.js +25 -0
  94. package/dist/node_modules/jose/dist/webapi/lib/asn1.js +243 -0
  95. package/dist/node_modules/jose/dist/webapi/lib/base64.js +22 -0
  96. package/dist/node_modules/jose/dist/webapi/lib/buffer_utils.js +43 -0
  97. package/dist/node_modules/jose/dist/webapi/lib/check_key_type.js +122 -0
  98. package/dist/node_modules/jose/dist/webapi/lib/content_encryption.js +217 -0
  99. package/dist/node_modules/jose/dist/webapi/lib/crypto_key.js +136 -0
  100. package/dist/node_modules/jose/dist/webapi/lib/deflate.js +44 -0
  101. package/dist/node_modules/jose/dist/webapi/lib/ecdhes.js +52 -0
  102. package/dist/node_modules/jose/dist/webapi/lib/helpers.js +19 -0
  103. package/dist/node_modules/jose/dist/webapi/lib/invalid_key_input.js +27 -0
  104. package/dist/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -0
  105. package/dist/node_modules/jose/dist/webapi/lib/jwk_to_key.js +107 -0
  106. package/dist/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +238 -0
  107. package/dist/node_modules/jose/dist/webapi/lib/key_management.js +186 -0
  108. package/dist/node_modules/jose/dist/webapi/lib/key_to_jwk.js +31 -0
  109. package/dist/node_modules/jose/dist/webapi/lib/normalize_key.js +166 -0
  110. package/dist/node_modules/jose/dist/webapi/lib/pbes2kw.js +39 -0
  111. package/dist/node_modules/jose/dist/webapi/lib/rsaes.js +24 -0
  112. package/dist/node_modules/jose/dist/webapi/lib/signing.js +68 -0
  113. package/dist/node_modules/jose/dist/webapi/lib/type_checks.js +40 -0
  114. package/dist/node_modules/jose/dist/webapi/lib/validate_algorithms.js +10 -0
  115. package/dist/node_modules/jose/dist/webapi/lib/validate_crit.js +33 -0
  116. package/dist/node_modules/jose/dist/webapi/util/base64url.js +30 -0
  117. package/dist/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -0
  118. package/dist/node_modules/jose/dist/webapi/util/decode_protected_header.js +34 -0
  119. package/dist/node_modules/jose/dist/webapi/util/errors.js +99 -0
  120. package/dist/node_modules/jose/package.json +200 -0
  121. package/dist/node_modules/light-my-request/.gitattributes +2 -0
  122. package/dist/node_modules/light-my-request/.github/dependabot.yml +13 -0
  123. package/dist/node_modules/light-my-request/.github/stale.yml +21 -0
  124. package/dist/node_modules/light-my-request/.github/workflows/benchmark.yml +30 -0
  125. package/dist/node_modules/light-my-request/.github/workflows/ci.yml +23 -0
  126. package/dist/node_modules/light-my-request/LICENSE +32 -0
  127. package/dist/node_modules/light-my-request/benchmark/benchmark.js +164 -0
  128. package/dist/node_modules/light-my-request/build/build-validation.js +100 -0
  129. package/dist/node_modules/light-my-request/eslint.config.js +9 -0
  130. package/dist/node_modules/light-my-request/index.js +2 -0
  131. package/dist/node_modules/light-my-request/lib/config-validator.js +919 -0
  132. package/dist/node_modules/light-my-request/lib/form-data.js +79 -0
  133. package/dist/node_modules/light-my-request/lib/parse-url.js +47 -0
  134. package/dist/node_modules/light-my-request/lib/request.js +290 -0
  135. package/dist/node_modules/light-my-request/lib/response.js +240 -0
  136. package/dist/node_modules/light-my-request/node_modules/process-warning/.gitattributes +2 -0
  137. package/dist/node_modules/light-my-request/node_modules/process-warning/.github/dependabot.yml +13 -0
  138. package/dist/node_modules/light-my-request/node_modules/process-warning/.github/workflows/ci.yml +24 -0
  139. package/dist/node_modules/light-my-request/node_modules/process-warning/.taprc +2 -0
  140. package/dist/node_modules/light-my-request/node_modules/process-warning/benchmarks/warn.js +25 -0
  141. package/dist/node_modules/light-my-request/node_modules/process-warning/eslint.config.js +6 -0
  142. package/dist/node_modules/light-my-request/node_modules/process-warning/examples/example.js +11 -0
  143. package/dist/node_modules/light-my-request/node_modules/process-warning/index.js +124 -0
  144. package/dist/node_modules/light-my-request/node_modules/process-warning/package.json +73 -0
  145. package/dist/node_modules/light-my-request/node_modules/process-warning/test/emit-interpolated-string.test.js +29 -0
  146. package/dist/node_modules/light-my-request/node_modules/process-warning/test/emit-once-only.test.js +28 -0
  147. package/dist/node_modules/light-my-request/node_modules/process-warning/test/emit-reset.test.js +36 -0
  148. package/dist/node_modules/light-my-request/node_modules/process-warning/test/emit-set.test.js +30 -0
  149. package/dist/node_modules/light-my-request/node_modules/process-warning/test/emit-unlimited.test.js +37 -0
  150. package/dist/node_modules/light-my-request/node_modules/process-warning/test/index.test.js +99 -0
  151. package/dist/node_modules/light-my-request/node_modules/process-warning/test/issue-88.test.js +33 -0
  152. package/dist/node_modules/light-my-request/node_modules/process-warning/test/jest.test.js +22 -0
  153. package/dist/node_modules/light-my-request/node_modules/process-warning/test/no-warnings.test.js +80 -0
  154. package/dist/node_modules/light-my-request/node_modules/process-warning/types/index.d.ts +37 -0
  155. package/dist/node_modules/light-my-request/node_modules/process-warning/types/index.test-d.ts +36 -0
  156. package/dist/node_modules/light-my-request/package.json +1 -0
  157. package/dist/node_modules/light-my-request/test/async-await.test.js +55 -0
  158. package/dist/node_modules/light-my-request/test/index.test.js +2316 -0
  159. package/dist/node_modules/light-my-request/test/request.test.js +16 -0
  160. package/dist/node_modules/light-my-request/test/response.test.js +19 -0
  161. package/dist/node_modules/light-my-request/test/stream.test.js +359 -0
  162. package/dist/node_modules/light-my-request/types/index.d.ts +128 -0
  163. package/dist/node_modules/light-my-request/types/index.test-d.ts +149 -0
  164. package/dist/node_modules/oidc-provider/LICENSE.md +21 -0
  165. package/dist/node_modules/oidc-provider/README.md +174 -0
  166. package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_claims.js +28 -0
  167. package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_defaults.js +17 -0
  168. package/dist/node_modules/oidc-provider/lib/actions/authorization/authenticated_client_id.js +6 -0
  169. package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_remap_errors.js +17 -0
  170. package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_response.js +41 -0
  171. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_ciba_context.js +12 -0
  172. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_claims.js +68 -0
  173. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client.js +21 -0
  174. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client_grant_type.js +21 -0
  175. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_dpop_jkt.js +35 -0
  176. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_extra_params.js +18 -0
  177. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_id_token_hint.js +23 -0
  178. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_max_age.js +25 -0
  179. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_openid_scope.js +47 -0
  180. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_pkce.js +41 -0
  181. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_prompt.js +25 -0
  182. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_redirect_uri.js +41 -0
  183. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_requested_expiry.js +16 -0
  184. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_mode.js +54 -0
  185. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_type.js +26 -0
  186. package/dist/node_modules/oidc-provider/lib/actions/authorization/check_scope.js +53 -0
  187. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_load_account.js +58 -0
  188. package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_required.js +13 -0
  189. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_authorization_response.js +31 -0
  190. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow.js +31 -0
  191. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_errors.js +37 -0
  192. package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_response.js +55 -0
  193. package/dist/node_modules/oidc-provider/lib/actions/authorization/index.js +200 -0
  194. package/dist/node_modules/oidc-provider/lib/actions/authorization/interaction_emit.js +9 -0
  195. package/dist/node_modules/oidc-provider/lib/actions/authorization/interactions.js +149 -0
  196. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_account.js +15 -0
  197. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_grant.js +29 -0
  198. package/dist/node_modules/oidc-provider/lib/actions/authorization/load_pushed_authorization_request.js +36 -0
  199. package/dist/node_modules/oidc-provider/lib/actions/authorization/oauth_required.js +11 -0
  200. package/dist/node_modules/oidc-provider/lib/actions/authorization/oidc_required.js +27 -0
  201. package/dist/node_modules/oidc-provider/lib/actions/authorization/one_redirect_uri_clients.js +20 -0
  202. package/dist/node_modules/oidc-provider/lib/actions/authorization/process_request_object.js +214 -0
  203. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_remap_errors.js +17 -0
  204. package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_response.js +65 -0
  205. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_registration.js +12 -0
  206. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_request_and_uri.js +12 -0
  207. package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_unsupported.js +33 -0
  208. package/dist/node_modules/oidc-provider/lib/actions/authorization/respond.js +46 -0
  209. package/dist/node_modules/oidc-provider/lib/actions/authorization/resume.js +111 -0
  210. package/dist/node_modules/oidc-provider/lib/actions/authorization/strip_outside_jar_params.js +19 -0
  211. package/dist/node_modules/oidc-provider/lib/actions/authorization/unsupported_rar.js +9 -0
  212. package/dist/node_modules/oidc-provider/lib/actions/challenge.js +22 -0
  213. package/dist/node_modules/oidc-provider/lib/actions/code_verification.js +122 -0
  214. package/dist/node_modules/oidc-provider/lib/actions/discovery.js +151 -0
  215. package/dist/node_modules/oidc-provider/lib/actions/end_session.js +222 -0
  216. package/dist/node_modules/oidc-provider/lib/actions/grants/authorization_code.js +144 -0
  217. package/dist/node_modules/oidc-provider/lib/actions/grants/ciba.js +127 -0
  218. package/dist/node_modules/oidc-provider/lib/actions/grants/client_credentials.js +79 -0
  219. package/dist/node_modules/oidc-provider/lib/actions/grants/device_code.js +125 -0
  220. package/dist/node_modules/oidc-provider/lib/actions/grants/index.js +7 -0
  221. package/dist/node_modules/oidc-provider/lib/actions/grants/refresh_token.js +229 -0
  222. package/dist/node_modules/oidc-provider/lib/actions/index.js +25 -0
  223. package/dist/node_modules/oidc-provider/lib/actions/interaction.js +150 -0
  224. package/dist/node_modules/oidc-provider/lib/actions/introspection.js +164 -0
  225. package/dist/node_modules/oidc-provider/lib/actions/jwks.js +7 -0
  226. package/dist/node_modules/oidc-provider/lib/actions/registration.js +274 -0
  227. package/dist/node_modules/oidc-provider/lib/actions/revocation.js +81 -0
  228. package/dist/node_modules/oidc-provider/lib/actions/token.js +74 -0
  229. package/dist/node_modules/oidc-provider/lib/actions/userinfo.js +183 -0
  230. package/dist/node_modules/oidc-provider/lib/adapters/memory_adapter.js +95 -0
  231. package/dist/node_modules/oidc-provider/lib/consts/client_attributes.js +211 -0
  232. package/dist/node_modules/oidc-provider/lib/consts/dev_keystore.js +18 -0
  233. package/dist/node_modules/oidc-provider/lib/consts/index.js +13 -0
  234. package/dist/node_modules/oidc-provider/lib/consts/jwa.js +47 -0
  235. package/dist/node_modules/oidc-provider/lib/consts/non_rejectable_claims.js +1 -0
  236. package/dist/node_modules/oidc-provider/lib/consts/param_list.js +23 -0
  237. package/dist/node_modules/oidc-provider/lib/helpers/_/camel_case.js +1 -0
  238. package/dist/node_modules/oidc-provider/lib/helpers/_/defaults.js +28 -0
  239. package/dist/node_modules/oidc-provider/lib/helpers/_/difference.js +1 -0
  240. package/dist/node_modules/oidc-provider/lib/helpers/_/is_plain_object.js +1 -0
  241. package/dist/node_modules/oidc-provider/lib/helpers/_/map_keys.js +9 -0
  242. package/dist/node_modules/oidc-provider/lib/helpers/_/merge.js +25 -0
  243. package/dist/node_modules/oidc-provider/lib/helpers/_/omit_by.js +11 -0
  244. package/dist/node_modules/oidc-provider/lib/helpers/_/pick.js +10 -0
  245. package/dist/node_modules/oidc-provider/lib/helpers/_/pick_by.js +10 -0
  246. package/dist/node_modules/oidc-provider/lib/helpers/_/remove.js +9 -0
  247. package/dist/node_modules/oidc-provider/lib/helpers/_/set.js +18 -0
  248. package/dist/node_modules/oidc-provider/lib/helpers/_/snake_case.js +1 -0
  249. package/dist/node_modules/oidc-provider/lib/helpers/_/upper_first.js +1 -0
  250. package/dist/node_modules/oidc-provider/lib/helpers/account_claims.js +6 -0
  251. package/dist/node_modules/oidc-provider/lib/helpers/add_client.js +14 -0
  252. package/dist/node_modules/oidc-provider/lib/helpers/als.js +3 -0
  253. package/dist/node_modules/oidc-provider/lib/helpers/append_www_authenticate.js +9 -0
  254. package/dist/node_modules/oidc-provider/lib/helpers/attention.js +23 -0
  255. package/dist/node_modules/oidc-provider/lib/helpers/base64url.js +11 -0
  256. package/dist/node_modules/oidc-provider/lib/helpers/certificate_thumbprint.js +15 -0
  257. package/dist/node_modules/oidc-provider/lib/helpers/challenge.js +111 -0
  258. package/dist/node_modules/oidc-provider/lib/helpers/check_attest_binding.js +10 -0
  259. package/dist/node_modules/oidc-provider/lib/helpers/claims.js +79 -0
  260. package/dist/node_modules/oidc-provider/lib/helpers/client_id_metadata_document.js +198 -0
  261. package/dist/node_modules/oidc-provider/lib/helpers/client_schema.js +700 -0
  262. package/dist/node_modules/oidc-provider/lib/helpers/combined_scope.js +17 -0
  263. package/dist/node_modules/oidc-provider/lib/helpers/configuration.js +544 -0
  264. package/dist/node_modules/oidc-provider/lib/helpers/constant_equals.js +20 -0
  265. package/dist/node_modules/oidc-provider/lib/helpers/defaults.js +3510 -0
  266. package/dist/node_modules/oidc-provider/lib/helpers/epoch_time.js +1 -0
  267. package/dist/node_modules/oidc-provider/lib/helpers/err_out.js +17 -0
  268. package/dist/node_modules/oidc-provider/lib/helpers/errors.js +161 -0
  269. package/dist/node_modules/oidc-provider/lib/helpers/features.js +51 -0
  270. package/dist/node_modules/oidc-provider/lib/helpers/fetch_body_check.js +25 -0
  271. package/dist/node_modules/oidc-provider/lib/helpers/fetch_request.js +221 -0
  272. package/dist/node_modules/oidc-provider/lib/helpers/filter_claims.js +16 -0
  273. package/dist/node_modules/oidc-provider/lib/helpers/formatters.js +24 -0
  274. package/dist/node_modules/oidc-provider/lib/helpers/grant_common.js +214 -0
  275. package/dist/node_modules/oidc-provider/lib/helpers/html_safe.js +19 -0
  276. package/dist/node_modules/oidc-provider/lib/helpers/initialize_adapter.js +24 -0
  277. package/dist/node_modules/oidc-provider/lib/helpers/initialize_app.js +243 -0
  278. package/dist/node_modules/oidc-provider/lib/helpers/initialize_clients.js +24 -0
  279. package/dist/node_modules/oidc-provider/lib/helpers/initialize_keystore.js +310 -0
  280. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/check.js +21 -0
  281. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/index.js +43 -0
  282. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompt.js +95 -0
  283. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/consent.js +105 -0
  284. package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/login.js +162 -0
  285. package/dist/node_modules/oidc-provider/lib/helpers/jwt.js +211 -0
  286. package/dist/node_modules/oidc-provider/lib/helpers/keystore.js +301 -0
  287. package/dist/node_modules/oidc-provider/lib/helpers/nanoid.js +5 -0
  288. package/dist/node_modules/oidc-provider/lib/helpers/oidc_context.js +284 -0
  289. package/dist/node_modules/oidc-provider/lib/helpers/params.js +27 -0
  290. package/dist/node_modules/oidc-provider/lib/helpers/pkce.js +30 -0
  291. package/dist/node_modules/oidc-provider/lib/helpers/pkce_format.js +17 -0
  292. package/dist/node_modules/oidc-provider/lib/helpers/process_response_types.js +202 -0
  293. package/dist/node_modules/oidc-provider/lib/helpers/re_render_errors.js +39 -0
  294. package/dist/node_modules/oidc-provider/lib/helpers/redirect_uri.js +16 -0
  295. package/dist/node_modules/oidc-provider/lib/helpers/resolve_resource.js +33 -0
  296. package/dist/node_modules/oidc-provider/lib/helpers/resolve_response_mode.js +7 -0
  297. package/dist/node_modules/oidc-provider/lib/helpers/resource_server.js +20 -0
  298. package/dist/node_modules/oidc-provider/lib/helpers/revoke.js +27 -0
  299. package/dist/node_modules/oidc-provider/lib/helpers/script_src_sha.js +21 -0
  300. package/dist/node_modules/oidc-provider/lib/helpers/sector_identifier.js +19 -0
  301. package/dist/node_modules/oidc-provider/lib/helpers/sector_validate.js +55 -0
  302. package/dist/node_modules/oidc-provider/lib/helpers/set_rt_bindings.js +21 -0
  303. package/dist/node_modules/oidc-provider/lib/helpers/token_find.js +51 -0
  304. package/dist/node_modules/oidc-provider/lib/helpers/type_validators.js +8 -0
  305. package/dist/node_modules/oidc-provider/lib/helpers/user_code_form.js +19 -0
  306. package/dist/node_modules/oidc-provider/lib/helpers/user_codes.js +38 -0
  307. package/dist/node_modules/oidc-provider/lib/helpers/valid_url.js +8 -0
  308. package/dist/node_modules/oidc-provider/lib/helpers/validate_dpop.js +129 -0
  309. package/dist/node_modules/oidc-provider/lib/helpers/validate_presence.js +17 -0
  310. package/dist/node_modules/oidc-provider/lib/helpers/weak_cache.js +11 -0
  311. package/dist/node_modules/oidc-provider/lib/index.js +21 -0
  312. package/dist/node_modules/oidc-provider/lib/models/access_token.js +31 -0
  313. package/dist/node_modules/oidc-provider/lib/models/authorization_code.js +27 -0
  314. package/dist/node_modules/oidc-provider/lib/models/backchannel_authentication_request.js +26 -0
  315. package/dist/node_modules/oidc-provider/lib/models/base_model.js +141 -0
  316. package/dist/node_modules/oidc-provider/lib/models/base_token.js +86 -0
  317. package/dist/node_modules/oidc-provider/lib/models/client.js +593 -0
  318. package/dist/node_modules/oidc-provider/lib/models/client_credentials.js +19 -0
  319. package/dist/node_modules/oidc-provider/lib/models/device_code.js +44 -0
  320. package/dist/node_modules/oidc-provider/lib/models/formats/dynamic.js +21 -0
  321. package/dist/node_modules/oidc-provider/lib/models/formats/index.js +14 -0
  322. package/dist/node_modules/oidc-provider/lib/models/formats/jwt.js +198 -0
  323. package/dist/node_modules/oidc-provider/lib/models/formats/opaque.js +58 -0
  324. package/dist/node_modules/oidc-provider/lib/models/grant.js +243 -0
  325. package/dist/node_modules/oidc-provider/lib/models/id_token.js +271 -0
  326. package/dist/node_modules/oidc-provider/lib/models/index.js +37 -0
  327. package/dist/node_modules/oidc-provider/lib/models/initial_access_token.js +12 -0
  328. package/dist/node_modules/oidc-provider/lib/models/interaction.js +73 -0
  329. package/dist/node_modules/oidc-provider/lib/models/mixins/apply.js +4 -0
  330. package/dist/node_modules/oidc-provider/lib/models/mixins/consumable.js +17 -0
  331. package/dist/node_modules/oidc-provider/lib/models/mixins/has_format.js +46 -0
  332. package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_id.js +12 -0
  333. package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_type.js +8 -0
  334. package/dist/node_modules/oidc-provider/lib/models/mixins/has_policies.js +38 -0
  335. package/dist/node_modules/oidc-provider/lib/models/mixins/is_attestation_constrained.js +15 -0
  336. package/dist/node_modules/oidc-provider/lib/models/mixins/is_sender_constrained.js +50 -0
  337. package/dist/node_modules/oidc-provider/lib/models/mixins/is_session_bound.js +38 -0
  338. package/dist/node_modules/oidc-provider/lib/models/mixins/set_audience.js +21 -0
  339. package/dist/node_modules/oidc-provider/lib/models/mixins/stores_auth.js +16 -0
  340. package/dist/node_modules/oidc-provider/lib/models/mixins/stores_pkce.js +9 -0
  341. package/dist/node_modules/oidc-provider/lib/models/pushed_authorization_request.js +21 -0
  342. package/dist/node_modules/oidc-provider/lib/models/refresh_token.js +47 -0
  343. package/dist/node_modules/oidc-provider/lib/models/registration_access_token.js +8 -0
  344. package/dist/node_modules/oidc-provider/lib/models/replay_detection.js +31 -0
  345. package/dist/node_modules/oidc-provider/lib/models/session.js +192 -0
  346. package/dist/node_modules/oidc-provider/lib/provider.js +453 -0
  347. package/dist/node_modules/oidc-provider/lib/response_modes/form_post.js +36 -0
  348. package/dist/node_modules/oidc-provider/lib/response_modes/fragment.js +7 -0
  349. package/dist/node_modules/oidc-provider/lib/response_modes/index.js +15 -0
  350. package/dist/node_modules/oidc-provider/lib/response_modes/jwt.js +43 -0
  351. package/dist/node_modules/oidc-provider/lib/response_modes/query.js +7 -0
  352. package/dist/node_modules/oidc-provider/lib/response_modes/web_message.js +55 -0
  353. package/dist/node_modules/oidc-provider/lib/shared/assemble_params.js +7 -0
  354. package/dist/node_modules/oidc-provider/lib/shared/attest_client_auth.js +111 -0
  355. package/dist/node_modules/oidc-provider/lib/shared/authorization_error_handler.js +104 -0
  356. package/dist/node_modules/oidc-provider/lib/shared/check_rar.js +75 -0
  357. package/dist/node_modules/oidc-provider/lib/shared/check_resource.js +77 -0
  358. package/dist/node_modules/oidc-provider/lib/shared/client_auth.js +263 -0
  359. package/dist/node_modules/oidc-provider/lib/shared/conditional_body.js +9 -0
  360. package/dist/node_modules/oidc-provider/lib/shared/cors.js +49 -0
  361. package/dist/node_modules/oidc-provider/lib/shared/error_handler.js +59 -0
  362. package/dist/node_modules/oidc-provider/lib/shared/jwt_client_auth.js +79 -0
  363. package/dist/node_modules/oidc-provider/lib/shared/no_cache.js +4 -0
  364. package/dist/node_modules/oidc-provider/lib/shared/reject_dupes.js +45 -0
  365. package/dist/node_modules/oidc-provider/lib/shared/reject_structured_tokens.js +18 -0
  366. package/dist/node_modules/oidc-provider/lib/shared/selective_body.js +60 -0
  367. package/dist/node_modules/oidc-provider/lib/shared/session.js +68 -0
  368. package/dist/node_modules/oidc-provider/lib/shared/set_www_authenticate_header.js +52 -0
  369. package/dist/node_modules/oidc-provider/lib/views/index.js +22 -0
  370. package/dist/node_modules/oidc-provider/lib/views/interaction.js +171 -0
  371. package/dist/node_modules/oidc-provider/lib/views/layout.js +237 -0
  372. package/dist/node_modules/oidc-provider/lib/views/login.js +43 -0
  373. package/dist/node_modules/oidc-provider/node_modules/@koa/router/LICENSE +21 -0
  374. package/dist/node_modules/oidc-provider/node_modules/@koa/router/README.md +1370 -0
  375. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.mts +1003 -0
  376. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.ts +1003 -0
  377. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.js +1616 -0
  378. package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.mjs +1573 -0
  379. package/dist/node_modules/oidc-provider/node_modules/@koa/router/package.json +122 -0
  380. package/dist/node_modules/oidc-provider/node_modules/debug/LICENSE +20 -0
  381. package/dist/node_modules/oidc-provider/node_modules/debug/README.md +481 -0
  382. package/dist/node_modules/oidc-provider/node_modules/debug/package.json +64 -0
  383. package/dist/node_modules/oidc-provider/node_modules/debug/src/browser.js +272 -0
  384. package/dist/node_modules/oidc-provider/node_modules/debug/src/common.js +292 -0
  385. package/dist/node_modules/oidc-provider/node_modules/debug/src/index.js +10 -0
  386. package/dist/node_modules/oidc-provider/node_modules/debug/src/node.js +263 -0
  387. package/dist/node_modules/oidc-provider/node_modules/http-errors/HISTORY.md +186 -0
  388. package/dist/node_modules/oidc-provider/node_modules/http-errors/LICENSE +23 -0
  389. package/dist/node_modules/oidc-provider/node_modules/http-errors/README.md +169 -0
  390. package/dist/node_modules/oidc-provider/node_modules/http-errors/index.js +290 -0
  391. package/dist/node_modules/oidc-provider/node_modules/http-errors/package.json +54 -0
  392. package/dist/node_modules/oidc-provider/node_modules/jsesc/LICENSE-MIT.txt +20 -0
  393. package/dist/node_modules/oidc-provider/node_modules/jsesc/README.md +422 -0
  394. package/dist/node_modules/oidc-provider/node_modules/jsesc/bin/jsesc +148 -0
  395. package/dist/node_modules/oidc-provider/node_modules/jsesc/jsesc.js +337 -0
  396. package/dist/node_modules/oidc-provider/node_modules/jsesc/man/jsesc.1 +94 -0
  397. package/dist/node_modules/oidc-provider/node_modules/jsesc/package.json +56 -0
  398. package/dist/node_modules/oidc-provider/node_modules/nanoid/LICENSE +20 -0
  399. package/dist/node_modules/oidc-provider/node_modules/nanoid/README.md +38 -0
  400. package/dist/node_modules/oidc-provider/node_modules/nanoid/bin/nanoid.js +55 -0
  401. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.browser.js +29 -0
  402. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.d.ts +106 -0
  403. package/dist/node_modules/oidc-provider/node_modules/nanoid/index.js +47 -0
  404. package/dist/node_modules/oidc-provider/node_modules/nanoid/nanoid.js +1 -0
  405. package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.d.ts +48 -0
  406. package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.js +21 -0
  407. package/dist/node_modules/oidc-provider/node_modules/nanoid/package.json +46 -0
  408. package/dist/node_modules/oidc-provider/node_modules/nanoid/url-alphabet/index.js +2 -0
  409. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/LICENSE +21 -0
  410. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/Readme.md +224 -0
  411. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.d.ts +144 -0
  412. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js +409 -0
  413. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js.map +1 -0
  414. package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/package.json +64 -0
  415. package/dist/node_modules/oidc-provider/node_modules/statuses/HISTORY.md +87 -0
  416. package/dist/node_modules/oidc-provider/node_modules/statuses/LICENSE +23 -0
  417. package/dist/node_modules/oidc-provider/node_modules/statuses/README.md +139 -0
  418. package/dist/node_modules/oidc-provider/node_modules/statuses/codes.json +65 -0
  419. package/dist/node_modules/oidc-provider/node_modules/statuses/index.js +146 -0
  420. package/dist/node_modules/oidc-provider/node_modules/statuses/package.json +49 -0
  421. package/dist/node_modules/oidc-provider/package.json +95 -0
  422. package/dist/node_modules/quick-lru/index.d.ts +178 -0
  423. package/dist/node_modules/quick-lru/index.js +329 -0
  424. package/dist/node_modules/quick-lru/license +9 -0
  425. package/dist/node_modules/quick-lru/package.json +54 -0
  426. package/dist/node_modules/quick-lru/readme.md +236 -0
  427. package/dist/node_modules/statuses/HISTORY.md +65 -0
  428. package/dist/node_modules/statuses/LICENSE +23 -0
  429. package/dist/node_modules/statuses/README.md +127 -0
  430. package/dist/node_modules/statuses/codes.json +66 -0
  431. package/dist/node_modules/statuses/index.js +113 -0
  432. package/dist/node_modules/statuses/package.json +48 -0
  433. package/dist/server/cache-adapter.d.ts +33 -0
  434. package/dist/server/cache-adapter.js +159 -0
  435. package/dist/server/index.d.ts +10 -0
  436. package/dist/server/index.js +48 -0
  437. package/dist/server/interaction.d.ts +26 -0
  438. package/dist/server/interaction.js +172 -0
  439. package/dist/server/paths.d.ts +19 -0
  440. package/dist/server/paths.js +64 -0
  441. package/dist/server/plugin.d.ts +16 -0
  442. package/dist/server/plugin.js +108 -0
  443. package/dist/server/provider-dispatch.d.ts +32 -0
  444. package/dist/server/provider-dispatch.js +252 -0
  445. package/dist/server/service.d.ts +63 -0
  446. package/dist/server/service.js +540 -0
  447. package/dist/server/utils.d.ts +12 -0
  448. package/dist/server/utils.js +58 -0
  449. package/package.json +24 -0
  450. package/server.d.ts +2 -0
  451. package/server.js +1 -0
@@ -0,0 +1 @@
1
+ export default (date = Date.now()) => Math.floor(date / 1000);
@@ -0,0 +1,17 @@
1
+ export default ({
2
+ expose, message, error_description: description, scope,
3
+ }, state) => {
4
+ if (expose) {
5
+ return {
6
+ error: message,
7
+ ...(description !== undefined ? { error_description: description } : undefined),
8
+ ...(scope !== undefined ? { scope } : undefined),
9
+ ...(state !== undefined ? { state } : undefined),
10
+ };
11
+ }
12
+ return {
13
+ error: 'server_error',
14
+ error_description: 'oops! something went wrong',
15
+ ...(state ? { state } : undefined),
16
+ };
17
+ };
@@ -0,0 +1,161 @@
1
+ /* eslint-disable camelcase */
2
+ /* eslint-disable max-classes-per-file */
3
+
4
+ import upperFirst from './_/upper_first.js';
5
+ import camelCase from './_/camel_case.js';
6
+
7
+ export class OIDCProviderError extends Error {
8
+ allow_redirect = true;
9
+
10
+ constructor(status, message) {
11
+ super(message);
12
+ this.name = this.constructor.name;
13
+ this.message = message;
14
+ this.error = message;
15
+ this.status = status;
16
+ this.statusCode = status;
17
+ this.expose = status < 500;
18
+ }
19
+ }
20
+
21
+ export class CustomOIDCProviderError extends OIDCProviderError {
22
+ constructor(message, description) {
23
+ super(400, message);
24
+ Error.captureStackTrace(this, this.constructor);
25
+ Object.assign(this, { error_description: description });
26
+ }
27
+ }
28
+
29
+ export class InvalidToken extends OIDCProviderError {
30
+ error_description = 'invalid token provided';
31
+
32
+ constructor(detail) {
33
+ super(401, 'invalid_token');
34
+ Error.captureStackTrace(this, this.constructor);
35
+ Object.assign(this, { error_detail: detail });
36
+ }
37
+ }
38
+
39
+ export class InvalidClientMetadata extends OIDCProviderError {
40
+ constructor(description, detail) {
41
+ const message = description.startsWith('redirect_uris')
42
+ ? 'invalid_redirect_uri' : 'invalid_client_metadata';
43
+ super(400, message);
44
+ Error.captureStackTrace(this, this.constructor);
45
+ Object.assign(this, { error_description: description, error_detail: detail });
46
+ }
47
+ }
48
+
49
+ export class InvalidScope extends OIDCProviderError {
50
+ constructor(description, scope, detail) {
51
+ super(400, 'invalid_scope');
52
+ Error.captureStackTrace(this, this.constructor);
53
+ Object.assign(this, { scope, error_description: description, error_detail: detail });
54
+ }
55
+ }
56
+
57
+ export class InsufficientScope extends OIDCProviderError {
58
+ constructor(description, scope, detail) {
59
+ super(403, 'insufficient_scope');
60
+ Error.captureStackTrace(this, this.constructor);
61
+ Object.assign(this, { scope, error_description: description, error_detail: detail });
62
+ }
63
+ }
64
+
65
+ export class InvalidRequest extends OIDCProviderError {
66
+ constructor(description, code, detail) {
67
+ super(code ?? 400, 'invalid_request');
68
+ Error.captureStackTrace(this, this.constructor);
69
+ Object.assign(this, { error_description: description || 'request is invalid', error_detail: detail, expose: true });
70
+ }
71
+ }
72
+
73
+ export class SessionNotFound extends InvalidRequest {}
74
+
75
+ export class InvalidClientAuth extends OIDCProviderError {
76
+ error_description = 'client authentication failed';
77
+
78
+ constructor(detail) {
79
+ super(401, 'invalid_client');
80
+ Error.captureStackTrace(this, this.constructor);
81
+ Object.assign(this, { error_detail: detail });
82
+ }
83
+ }
84
+
85
+ export class InvalidGrant extends OIDCProviderError {
86
+ error_description = 'grant request is invalid';
87
+
88
+ constructor(detail) {
89
+ super(400, 'invalid_grant');
90
+ Error.captureStackTrace(this, this.constructor);
91
+ Object.assign(this, { error_detail: detail });
92
+ }
93
+ }
94
+
95
+ export class InvalidRedirectUri extends OIDCProviderError {
96
+ error_description = 'redirect_uri did not match any of the client\'s registered redirect_uris';
97
+
98
+ allow_redirect = false;
99
+
100
+ constructor() {
101
+ super(400, 'invalid_redirect_uri');
102
+ Error.captureStackTrace(this, this.constructor);
103
+ }
104
+ }
105
+
106
+ function E(message, errorDescription) {
107
+ const klassName = upperFirst(camelCase(message));
108
+ const klass = class extends OIDCProviderError {
109
+ error_description = errorDescription;
110
+
111
+ constructor(description, detail) {
112
+ super(400, message);
113
+ Error.captureStackTrace(this, this.constructor);
114
+
115
+ if (description) {
116
+ this.error_description = description;
117
+ }
118
+
119
+ if (detail) {
120
+ this.error_detail = detail;
121
+ }
122
+ }
123
+ };
124
+ Object.defineProperty(klass, 'name', { value: klassName });
125
+ return klass;
126
+ }
127
+
128
+ export const AccessDenied = E('access_denied');
129
+ export const AuthorizationPending = E('authorization_pending', 'authorization request is still pending as the end-user hasn\'t yet completed the user interaction steps');
130
+ export const ConsentRequired = E('consent_required');
131
+ export const ExpiredLoginHintToken = E('expired_login_hint_token');
132
+ export const ExpiredToken = E('expired_token');
133
+ export const InteractionRequired = E('interaction_required');
134
+ export const InvalidBindingMessage = E('invalid_binding_message');
135
+ export const InvalidAuthorizationDetails = E('invalid_authorization_details');
136
+ export const InvalidClient = E('invalid_client');
137
+ export const InvalidDpopProof = E('invalid_dpop_proof');
138
+ export const InvalidRequestObject = E('invalid_request_object');
139
+ export const InvalidRequestUri = E('invalid_request_uri');
140
+ export const InvalidSoftwareStatement = E('invalid_software_statement');
141
+ export const InvalidTarget = E('invalid_target', 'resource indicator is missing, or unknown');
142
+ export const InvalidUserCode = E('invalid_user_code');
143
+ export const LoginRequired = E('login_required');
144
+ export const MissingUserCode = E('missing_user_code');
145
+ export const RegistrationNotSupported = E('registration_not_supported');
146
+ export const RequestNotSupported = E('request_not_supported');
147
+ export const RequestUriNotSupported = E('request_uri_not_supported');
148
+ export const SlowDown = E('slow_down', 'you are polling too quickly and should back off at a reasonable rate');
149
+ export const TemporarilyUnavailable = E('temporarily_unavailable');
150
+ export const TransactionFailed = E('transaction_failed');
151
+ export const UnapprovedSoftwareStatement = E('unapproved_software_statement');
152
+ export const UnauthorizedClient = E('unauthorized_client');
153
+ export const UnknownUserId = E('unknown_user_id');
154
+ export const UnmetAuthenticationRequirements = E('unmet_authentication_requirements');
155
+ export const UnsupportedGrantType = E('unsupported_grant_type', 'unsupported grant_type requested');
156
+ export const UnsupportedResponseMode = E('unsupported_response_mode', 'unsupported response_mode requested');
157
+ export const UnsupportedResponseType = E('unsupported_response_type', 'unsupported response_type requested');
158
+ export const UseDpopNonce = E('use_dpop_nonce');
159
+ export const UnsupportedTokenType = E('unsupported_token_type');
160
+ export const UseAttestationChallenge = E('use_attestation_challenge');
161
+ export const InvalidClientAttestation = E('invalid_client_attestation');
@@ -0,0 +1,51 @@
1
+ export const STABLE = new Set([
2
+ 'backchannelLogout',
3
+ 'ciba',
4
+ 'claimsParameter',
5
+ 'clientCredentials',
6
+ 'deviceFlow',
7
+ 'devInteractions',
8
+ 'dPoP',
9
+ 'encryption',
10
+ 'fapi',
11
+ 'introspection',
12
+ 'jwtResponseModes',
13
+ 'jwtIntrospection',
14
+ 'jwtUserinfo',
15
+ 'mTLS',
16
+ 'pushedAuthorizationRequests',
17
+ 'registration',
18
+ 'registrationManagement',
19
+ 'requestObjects',
20
+ 'resourceIndicators',
21
+ 'revocation',
22
+ 'rpInitiatedLogout',
23
+ 'userinfo',
24
+ ]);
25
+
26
+ export const EXPERIMENTS = new Map(Object.entries({
27
+ richAuthorizationRequests: {
28
+ name: 'OAuth 2.0 Rich Authorization Requests',
29
+ version: ['experimental-01'],
30
+ },
31
+ webMessageResponseMode: {
32
+ name: 'OAuth 2.0 Web Message Response Mode - draft 01',
33
+ version: ['individual-draft-01'],
34
+ },
35
+ externalSigningSupport: {
36
+ name: 'External Signing Key Support',
37
+ version: ['experimental-01'],
38
+ },
39
+ rpMetadataChoices: {
40
+ name: 'OpenID Connect Relying Party Metadata Choices',
41
+ version: ['draft-02'],
42
+ },
43
+ attestClientAuth: {
44
+ name: 'OAuth 2.0 Attestation-Based Client Authentication',
45
+ version: 'draft-06',
46
+ },
47
+ clientIdMetadataDocument: {
48
+ name: 'OAuth Client ID Metadata Document',
49
+ version: 'draft-01',
50
+ },
51
+ }));
@@ -0,0 +1,25 @@
1
+ import instance from './weak_cache.js';
2
+
3
+ export default async function fetchBodyCheck(provider, purpose, response) {
4
+ const limit = instance(provider).configuration.fetchResponseBodyLimits[purpose];
5
+
6
+ if (Number.isFinite(limit)) {
7
+ const contentLength = response.headers.get('content-length');
8
+ if (contentLength && parseInt(contentLength, 10) > limit) {
9
+ await response.body?.cancel();
10
+ throw new Error('response too large');
11
+ }
12
+ }
13
+
14
+ const chunks = [];
15
+ let received = 0;
16
+ for await (const chunk of response.body) {
17
+ received += chunk.length;
18
+ if (Number.isFinite(limit) && received > limit) {
19
+ await response.body?.cancel();
20
+ throw new Error('response too large');
21
+ }
22
+ chunks.push(chunk);
23
+ }
24
+ return Buffer.concat(chunks);
25
+ }
@@ -0,0 +1,221 @@
1
+ /* eslint-disable no-bitwise, no-plusplus */
2
+ import * as undici from 'undici';
3
+
4
+ import instance from './weak_cache.js';
5
+
6
+ // IANA IPv4 Special-Purpose Address Space
7
+ // https://www.iana.org/assignments/iana-ipv4-special-registry/
8
+ const SPECIAL_USE_IPV4 = [
9
+ { prefix: 0x00000000, mask: 0xff000000 }, // 0.0.0.0/8 "This network" [RFC791]
10
+ { prefix: 0x0a000000, mask: 0xff000000 }, // 10.0.0.0/8 Private-Use [RFC1918]
11
+ { prefix: 0x64400000, mask: 0xffc00000 }, // 100.64.0.0/10 Shared Address Space [RFC6598]
12
+ { prefix: 0x7f000000, mask: 0xff000000 }, // 127.0.0.0/8 Loopback [RFC1122]
13
+ { prefix: 0xa9fe0000, mask: 0xffff0000 }, // 169.254.0.0/16 Link Local [RFC3927]
14
+ { prefix: 0xac100000, mask: 0xfff00000 }, // 172.16.0.0/12 Private-Use [RFC1918]
15
+ { prefix: 0xc0000000, mask: 0xffffff00 }, // 192.0.0.0/24 IETF Protocol Assignments [RFC6890]
16
+ { prefix: 0xc0000200, mask: 0xffffff00 }, // 192.0.2.0/24 Documentation (TEST-NET-1) [RFC5737]
17
+ { prefix: 0xc01fc400, mask: 0xffffff00 }, // 192.31.196.0/24 AS112-v4 [RFC7535]
18
+ { prefix: 0xc034c100, mask: 0xffffff00 }, // 192.52.193.0/24 AMT [RFC7450]
19
+ { prefix: 0xc0586300, mask: 0xffffff00 }, // 192.88.99.0/24 Deprecated (6to4 Relay Anycast) [RFC7526]
20
+ { prefix: 0xc0a80000, mask: 0xffff0000 }, // 192.168.0.0/16 Private-Use [RFC1918]
21
+ { prefix: 0xc0af3000, mask: 0xffffff00 }, // 192.175.48.0/24 Direct Delegation AS112 Service [RFC7534]
22
+ { prefix: 0xc6120000, mask: 0xfffe0000 }, // 198.18.0.0/15 Benchmarking [RFC2544]
23
+ { prefix: 0xc6336400, mask: 0xffffff00 }, // 198.51.100.0/24 Documentation (TEST-NET-2) [RFC5737]
24
+ { prefix: 0xcb007100, mask: 0xffffff00 }, // 203.0.113.0/24 Documentation (TEST-NET-3) [RFC5737]
25
+ { prefix: 0xf0000000, mask: 0xf0000000 }, // 240.0.0.0/4 Reserved [RFC1112]
26
+
27
+ // TCP cannot connect to multicast
28
+ // { prefix: 0xe0000000, mask: 0xf0000000 }, // 224.0.0.0/4 Multicast [RFC1112]
29
+ // TCP cannot connect to broadcast
30
+ // { prefix: 0xffffffff, mask: 0xffffffff }, // 255.255.255.255/32 Limited Broadcast [RFC919][RFC8190]
31
+ ];
32
+
33
+ function ipv4ToInt(ip) {
34
+ // Parses an IPv4 dotted-decimal string into an unsigned 32-bit integer
35
+ // without allocating a split('.') array. Walks the string character by
36
+ // character, accumulating each decimal octet then shifting it into the
37
+ // result. The final >>> 0 ensures an unsigned value.
38
+ let result = 0;
39
+ let octet = 0;
40
+ for (let i = 0; i <= ip.length; i++) {
41
+ if (i === ip.length || ip.charCodeAt(i) === 46 /* '.' */) {
42
+ result = result * 256 + octet; // * 256 is equivalent to << 8
43
+ octet = 0;
44
+ } else {
45
+ octet = octet * 10 + ip.charCodeAt(i) - 48; // 48 is '0'.charCodeAt(0)
46
+ }
47
+ }
48
+ return result >>> 0;
49
+ }
50
+
51
+ function expandIPv6(address) {
52
+ // Expands a potentially shortened IPv6 address into a 32-char lowercase
53
+ // hex string (8 groups x 4 hex digits) for prefix matching via startsWith.
54
+ let parts;
55
+ const dcIndex = address.indexOf('::');
56
+ if (dcIndex !== -1) {
57
+ const left = address.substring(0, dcIndex);
58
+ const right = address.substring(dcIndex + 2);
59
+ const leftParts = left ? left.split(':') : [];
60
+ const rightParts = right ? right.split(':') : [];
61
+ const missing = 8 - leftParts.length - rightParts.length;
62
+ parts = leftParts;
63
+ for (let i = 0; i < missing; i++) parts.push('0000');
64
+ for (let i = 0; i < rightParts.length; i++) parts.push(rightParts[i]);
65
+ } else {
66
+ parts = address.split(':');
67
+ }
68
+ let result = '';
69
+ for (let i = 0; i < 8; i++) result += parts[i].padStart(4, '0');
70
+ return result;
71
+ }
72
+
73
+ // Group CIDR entries by first octet for fast rejection.
74
+ // For each of the 256 possible first-octet values, only the entries whose
75
+ // range can include that octet are stored, so non-special IPs skip most checks.
76
+ const V4_OCTET_BUCKETS = new Array(256);
77
+ for (let i = 0; i < 256; i++) V4_OCTET_BUCKETS[i] = [];
78
+ for (const entry of SPECIAL_USE_IPV4) {
79
+ const entryStart = (entry.prefix >>> 24) & 0xff;
80
+ const hostBits = (~entry.mask >>> 24) & 0xff;
81
+ for (let o = entryStart; o <= entryStart + hostBits && o < 256; o++) {
82
+ V4_OCTET_BUCKETS[o].push(entry);
83
+ }
84
+ }
85
+
86
+ function isSpecialUseIPv4(address) {
87
+ const addr = ipv4ToInt(address);
88
+ const bucket = V4_OCTET_BUCKETS[(addr >>> 24) & 0xff];
89
+ for (let i = 0; i < bucket.length; i++) {
90
+ if (((addr & bucket[i].mask) >>> 0) === bucket[i].prefix) return true;
91
+ }
92
+ return false;
93
+ }
94
+
95
+ // IANA IPv6 Special-Purpose Address Space
96
+ // https://www.iana.org/assignments/iana-ipv6-special-registry/
97
+ // Entries are expanded hex string prefixes matched via startsWith.
98
+ // Non-nibble-aligned CIDR ranges are split into nibble-aligned entries.
99
+ const SPECIAL_USE_IPV6 = [
100
+ '0064ff9b0000000000000000', // 64:ff9b::/96 IPv4-IPv6 Translat. [RFC6052]
101
+ '0064ff9b0001', // 64:ff9b:1::/48 IPv4-IPv6 Translat. [RFC8215]
102
+ '0100000000000000', // 100::/64 Discard-Only [RFC6666]
103
+ '0100000000000001', // 100:0:0:1::/64 Dummy IPv6 Prefix [RFC9780]
104
+ '200100', // 2001::/23 IETF Protocol Assignments [RFC2928] (1/2)
105
+ '200101', // 2001::/23 IETF Protocol Assignments [RFC2928] (2/2)
106
+ '20010db8', // 2001:db8::/32 Documentation [RFC3849]
107
+ '2002', // 2002::/16 6to4 [RFC3056]
108
+ '2620004f8000', // 2620:4f:8000::/48 Direct Delegation AS112 Service [RFC7534]
109
+ '3fff0', // 3fff::/20 Documentation [RFC9637]
110
+ '5f00', // 5f00::/16 Segment Routing (SRv6) SIDs [RFC9602]
111
+ 'fc', // fc00::/7 Unique-Local [RFC4193] (1/2)
112
+ 'fd', // fc00::/7 Unique-Local [RFC4193] (2/2)
113
+ 'fe8', // fe80::/10 Link-Local Unicast [RFC4291] (1/4)
114
+ 'fe9', // fe80::/10 Link-Local Unicast [RFC4291] (2/4)
115
+ 'fea', // fe80::/10 Link-Local Unicast [RFC4291] (3/4)
116
+ 'feb', // fe80::/10 Link-Local Unicast [RFC4291] (4/4)
117
+
118
+ // TCP cannot connect to multicast, also not in the IANA special-use registry
119
+ // 'ff', // ff00::/8 Multicast [RFC4291]
120
+
121
+ // Handled explicitly in isSpecialUseIPv6 — cannot use startsWith matching
122
+ // ::1/128 Loopback [RFC4291]
123
+ // ::/128 Unspecified [RFC4291]
124
+ // ::ffff:0:0/96 IPv4-mapped [RFC4291] — delegates to isSpecialUseIPv4
125
+ ];
126
+
127
+ // Character-level trie built from prefix strings. Walking the trie is
128
+ // 2-3x faster than Map-bucketed startsWith checks because it exits as
129
+ // soon as a terminal (matching) or dead-end (non-matching) node is reached.
130
+ function hexCharToTrieIndex(code) {
131
+ // '0'-'9' => 0-9, 'a'-'f' => 10-15
132
+ return code <= 57 /* '9' */ ? code - 48 /* '0' */ : code - 87;
133
+ }
134
+
135
+ const TRIE_CHILDREN = [];
136
+ const TRIE_TERMINAL = [];
137
+ function allocTrieNode() {
138
+ const id = TRIE_CHILDREN.length;
139
+ TRIE_CHILDREN.push(new Int8Array(16).fill(-1));
140
+ TRIE_TERMINAL.push(0);
141
+ return id;
142
+ }
143
+
144
+ const IPV6_TRIE_ROOT = allocTrieNode();
145
+ for (const prefix of SPECIAL_USE_IPV6) {
146
+ let node = IPV6_TRIE_ROOT;
147
+ for (let i = 0; i < prefix.length; i++) {
148
+ const ci = hexCharToTrieIndex(prefix.charCodeAt(i));
149
+ if (TRIE_CHILDREN[node][ci] === -1) {
150
+ TRIE_CHILDREN[node][ci] = allocTrieNode();
151
+ }
152
+ node = TRIE_CHILDREN[node][ci];
153
+ }
154
+ TRIE_TERMINAL[node] = 1;
155
+ }
156
+
157
+ function isSpecialUseIPv6(address) {
158
+ const lower = address.toLowerCase();
159
+ if (lower === '::' || lower === '::1') return true;
160
+ if (lower.startsWith('::ffff:')) {
161
+ const v4part = lower.substring(7);
162
+ if (v4part.includes('.')) return isSpecialUseIPv4(v4part);
163
+ }
164
+ const full = expandIPv6(lower);
165
+ let node = IPV6_TRIE_ROOT;
166
+ for (let i = 0; i < full.length; i++) {
167
+ if (TRIE_TERMINAL[node]) return true;
168
+ const next = TRIE_CHILDREN[node][hexCharToTrieIndex(full.charCodeAt(i))];
169
+ if (next === -1) return false;
170
+ node = next;
171
+ }
172
+ return !!TRIE_TERMINAL[node];
173
+ }
174
+
175
+ function isSpecialUseIP(address) {
176
+ // socket.remoteAddress is always a valid IP; colons only appear in IPv6
177
+ if (!address.includes(':')) return isSpecialUseIPv4(address);
178
+ return isSpecialUseIPv6(address);
179
+ }
180
+
181
+ let dispatcher;
182
+
183
+ export default async function fetchRequest(provider, url, options) {
184
+ /* eslint-disable no-param-reassign */
185
+ options.signal = AbortSignal.timeout(2500);
186
+ options.headers = new Headers(options.headers);
187
+ options.headers.set('user-agent', ''); // removes the default user-agent header
188
+
189
+ // SSRF protection: validate the connected socket's remote address rather than
190
+ // resolving DNS upfront via dns/promises. An upfront lookup is vulnerable to
191
+ // TOCTOU — the HTTP client resolves the hostname again independently, and the
192
+ // result can differ (DNS rebinding, round-robin, short TTL). Checking
193
+ // socket.remoteAddress in the connector inspects the actual IP the socket is
194
+ // bound to, which is the only reliable enforcement point.
195
+ dispatcher ??= new undici.Agent({
196
+ connect(opts, cb) {
197
+ undici.buildConnector({})(opts, (err, socket) => {
198
+ if (err) {
199
+ cb(err);
200
+ } else if (isSpecialUseIP(socket.remoteAddress)) {
201
+ socket.destroy();
202
+ cb(new Error('hostname resolves to a special-use IP address'));
203
+ } else {
204
+ cb(null, socket);
205
+ }
206
+ });
207
+ },
208
+ });
209
+ options.dispatcher = dispatcher;
210
+ /* eslint-enable no-param-reassign */
211
+
212
+ return instance(provider).configuration.fetch(url, options);
213
+ }
214
+
215
+ export {
216
+ ipv4ToInt,
217
+ expandIPv6,
218
+ isSpecialUseIPv4,
219
+ isSpecialUseIPv6,
220
+ isSpecialUseIP,
221
+ };
@@ -0,0 +1,16 @@
1
+ import { NON_REJECTABLE_CLAIMS } from '../consts/non_rejectable_claims.js';
2
+
3
+ export default (source, target, grant) => {
4
+ const claims = { ...(source?.[target]) };
5
+ const requested = Object.keys(claims);
6
+ const granted = new Set(grant.getOIDCClaimsFiltered(new Set(requested)));
7
+
8
+ for (const claim of requested) {
9
+ // eslint-disable-next-line no-continue
10
+ if (NON_REJECTABLE_CLAIMS.has(claim)) continue;
11
+ if (!granted.has(claim)) {
12
+ delete claims[claim];
13
+ }
14
+ }
15
+ return claims;
16
+ };
@@ -0,0 +1,24 @@
1
+ const conjunction = new Intl.ListFormat('en', { type: 'conjunction' });
2
+ const disjunction = new Intl.ListFormat('en', { type: 'disjunction' });
3
+
4
+ const formatter = {
5
+ format(iterable, { type }) {
6
+ if (type === 'conjunction') {
7
+ return conjunction.format(iterable);
8
+ }
9
+
10
+ return disjunction.format(iterable);
11
+ },
12
+ };
13
+
14
+ export function formatList(list, { type = 'conjunction' } = {}) {
15
+ return formatter.format(list.map((w) => `'${w}'`), { type });
16
+ }
17
+
18
+ export function pluralize(word, count) {
19
+ if (count === 1) {
20
+ return word;
21
+ }
22
+
23
+ return `${word}s`;
24
+ }