@nocobase/plugin-idp-oauth 2.2.17 → 2.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build.config.ts +1 -1
- package/dist/externalVersion.js +8 -8
- package/dist/node_modules/light-my-request/index.js +2 -2
- package/dist/node_modules/light-my-request/node_modules/cookie/dist/index.d.ts +148 -0
- package/dist/node_modules/light-my-request/node_modules/cookie/dist/index.js +350 -0
- package/dist/node_modules/light-my-request/node_modules/cookie/package.json +47 -0
- package/dist/node_modules/light-my-request/package.json +1 -1
- package/dist/node_modules/ms/package.json +1 -1
- package/dist/node_modules/oidc-provider/README.md +28 -25
- package/dist/node_modules/oidc-provider/THIRD-PARTY-NOTICES.md +184 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba.js +169 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/claims.js +132 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/client.js +50 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/device.js +164 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/index.js +112 -163
- package/dist/node_modules/oidc-provider/lib/actions/authorization/interactions.js +32 -13
- package/dist/node_modules/oidc-provider/lib/actions/authorization/process_request_object.js +47 -25
- package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_requests.js +127 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/request_parameters.js +188 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/respond.js +15 -10
- package/dist/node_modules/oidc-provider/lib/actions/authorization/response_parameters.js +175 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/resume.js +8 -4
- package/dist/node_modules/oidc-provider/lib/actions/authorization/scopes.js +109 -0
- package/dist/node_modules/oidc-provider/lib/actions/authorization/{check_pkce.js → sender_constraints.js} +31 -8
- package/dist/node_modules/oidc-provider/lib/actions/authorization/{load_grant.js → session.js} +21 -4
- package/dist/node_modules/oidc-provider/lib/actions/challenge.js +6 -1
- package/dist/node_modules/oidc-provider/lib/actions/code_verification.js +1 -3
- package/dist/node_modules/oidc-provider/lib/actions/credential.js +757 -0
- package/dist/node_modules/oidc-provider/lib/actions/discovery.js +11 -2
- package/dist/node_modules/oidc-provider/lib/actions/end_session.js +23 -15
- package/dist/node_modules/oidc-provider/lib/actions/grants/authorization_code.js +24 -94
- package/dist/node_modules/oidc-provider/lib/actions/grants/ciba.js +22 -86
- package/dist/node_modules/oidc-provider/lib/actions/grants/client_credentials.js +26 -45
- package/dist/node_modules/oidc-provider/lib/actions/grants/device_code.js +23 -83
- package/dist/node_modules/oidc-provider/lib/actions/grants/index.js +1 -2
- package/dist/node_modules/oidc-provider/lib/actions/grants/pre_authorized_code.js +70 -0
- package/dist/node_modules/oidc-provider/lib/actions/grants/refresh_token.js +46 -59
- package/dist/node_modules/oidc-provider/lib/actions/index.js +10 -6
- package/dist/node_modules/oidc-provider/lib/actions/interaction.js +124 -113
- package/dist/node_modules/oidc-provider/lib/actions/introspection.js +137 -141
- package/dist/node_modules/oidc-provider/lib/actions/openid_credential_issuer.js +17 -0
- package/dist/node_modules/oidc-provider/lib/actions/registration.js +30 -6
- package/dist/node_modules/oidc-provider/lib/actions/revocation.js +56 -61
- package/dist/node_modules/oidc-provider/lib/actions/token.js +98 -54
- package/dist/node_modules/oidc-provider/lib/actions/userinfo.js +24 -102
- package/dist/node_modules/oidc-provider/lib/adapters/memory_adapter.js +107 -23
- package/dist/node_modules/oidc-provider/lib/consts/client_attributes.js +5 -5
- package/dist/node_modules/oidc-provider/lib/consts/jwa.js +3 -3
- package/dist/node_modules/oidc-provider/lib/consts/param_list.js +1 -1
- package/dist/node_modules/oidc-provider/lib/helpers/_/defaults.js +0 -2
- package/dist/node_modules/oidc-provider/lib/helpers/_/is_json_object.js +1 -0
- package/dist/node_modules/oidc-provider/lib/helpers/_/merge.js +0 -2
- package/dist/node_modules/oidc-provider/lib/helpers/_/omit_by.js +0 -2
- package/dist/node_modules/oidc-provider/lib/helpers/_/pick.js +1 -1
- package/dist/node_modules/oidc-provider/lib/helpers/_/remove.js +1 -1
- package/dist/node_modules/oidc-provider/lib/helpers/add_client.js +0 -1
- package/dist/node_modules/oidc-provider/lib/helpers/assert_provider_context.js +5 -0
- package/dist/node_modules/oidc-provider/lib/helpers/attention.js +2 -2
- package/dist/node_modules/oidc-provider/lib/helpers/challenge.js +29 -42
- package/dist/node_modules/oidc-provider/lib/helpers/claims.js +2 -1
- package/dist/node_modules/oidc-provider/lib/helpers/client_id_metadata_document.js +131 -62
- package/dist/node_modules/oidc-provider/lib/helpers/client_schema.js +46 -24
- package/dist/node_modules/oidc-provider/lib/helpers/configuration.js +363 -29
- package/dist/node_modules/oidc-provider/lib/helpers/configuration_result.js +84 -0
- package/dist/node_modules/oidc-provider/lib/helpers/constant_equals.js +1 -1
- package/dist/node_modules/oidc-provider/lib/helpers/defaults.js +3166 -2757
- package/dist/node_modules/oidc-provider/lib/helpers/errors.js +52 -34
- package/dist/node_modules/oidc-provider/lib/helpers/features.js +6 -8
- package/dist/node_modules/oidc-provider/lib/helpers/fetch_request.js +136 -99
- package/dist/node_modules/oidc-provider/lib/helpers/filter_claims.js +0 -1
- package/dist/node_modules/oidc-provider/lib/helpers/grant_authorization.js +78 -0
- package/dist/node_modules/oidc-provider/lib/helpers/grant_common.js +77 -103
- package/dist/node_modules/oidc-provider/lib/helpers/grant_refresh_token.js +22 -0
- package/dist/node_modules/oidc-provider/lib/helpers/grant_response.js +58 -0
- package/dist/node_modules/oidc-provider/lib/helpers/grant_source.js +60 -0
- package/dist/node_modules/oidc-provider/lib/helpers/grants.js +33 -0
- package/dist/node_modules/oidc-provider/lib/helpers/initialize_adapter.js +4 -2
- package/dist/node_modules/oidc-provider/lib/helpers/initialize_app.js +114 -90
- package/dist/node_modules/oidc-provider/lib/helpers/initialize_keystore.js +61 -54
- package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/check.js +0 -2
- package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/index.js +3 -1
- package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompt.js +3 -4
- package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/consent.js +2 -5
- package/dist/node_modules/oidc-provider/lib/helpers/interaction_policy/prompts/login.js +3 -6
- package/dist/node_modules/oidc-provider/lib/helpers/is_valid_scope.js +5 -0
- package/dist/node_modules/oidc-provider/lib/helpers/jwt.js +26 -11
- package/dist/node_modules/oidc-provider/lib/helpers/keystore.js +2 -4
- package/dist/node_modules/oidc-provider/lib/helpers/lru.js +111 -0
- package/dist/node_modules/oidc-provider/lib/helpers/nanoid.js +80 -3
- package/dist/node_modules/oidc-provider/lib/helpers/normalize_authorization_details.js +54 -0
- package/dist/node_modules/oidc-provider/lib/helpers/oidc_context.js +18 -33
- package/dist/node_modules/oidc-provider/lib/helpers/params.js +8 -19
- package/dist/node_modules/oidc-provider/lib/helpers/pkce.js +5 -5
- package/dist/node_modules/oidc-provider/lib/helpers/process_response_types.js +23 -14
- package/dist/node_modules/oidc-provider/lib/helpers/re_render_errors.js +4 -6
- package/dist/node_modules/oidc-provider/lib/helpers/resolve_resource.js +5 -2
- package/dist/node_modules/oidc-provider/lib/helpers/resource_server.js +0 -2
- package/dist/node_modules/oidc-provider/lib/helpers/revoke.js +9 -2
- package/dist/node_modules/oidc-provider/lib/helpers/router.js +221 -0
- package/dist/node_modules/oidc-provider/lib/helpers/sector_validate.js +19 -13
- package/dist/node_modules/oidc-provider/lib/helpers/sender_constraints.js +24 -0
- package/dist/node_modules/oidc-provider/lib/helpers/set_rt_bindings.js +0 -2
- package/dist/node_modules/oidc-provider/lib/helpers/token_find.js +36 -43
- package/dist/node_modules/oidc-provider/lib/helpers/user_codes.js +1 -1
- package/dist/node_modules/oidc-provider/lib/helpers/validate_dpop.js +40 -21
- package/dist/node_modules/oidc-provider/lib/helpers/weak_cache.js +4 -4
- package/dist/node_modules/oidc-provider/lib/index.js +1 -3
- package/dist/node_modules/oidc-provider/lib/models/access_token.js +42 -17
- package/dist/node_modules/oidc-provider/lib/models/authorization_code.js +39 -17
- package/dist/node_modules/oidc-provider/lib/models/backchannel_authentication_request.js +37 -15
- package/dist/node_modules/oidc-provider/lib/models/base_model.js +42 -21
- package/dist/node_modules/oidc-provider/lib/models/base_token.js +5 -3
- package/dist/node_modules/oidc-provider/lib/models/client.js +113 -67
- package/dist/node_modules/oidc-provider/lib/models/client_credentials.js +30 -9
- package/dist/node_modules/oidc-provider/lib/models/device_code.js +40 -17
- package/dist/node_modules/oidc-provider/lib/models/formats/index.js +20 -12
- package/dist/node_modules/oidc-provider/lib/models/formats/jwt.js +165 -166
- package/dist/node_modules/oidc-provider/lib/models/formats/opaque.js +57 -48
- package/dist/node_modules/oidc-provider/lib/models/grant.js +1 -9
- package/dist/node_modules/oidc-provider/lib/models/id_token.js +13 -14
- package/dist/node_modules/oidc-provider/lib/models/index.js +2 -0
- package/dist/node_modules/oidc-provider/lib/models/initial_access_token.js +14 -8
- package/dist/node_modules/oidc-provider/lib/models/interaction.js +2 -4
- package/dist/node_modules/oidc-provider/lib/models/payload.js +33 -0
- package/dist/node_modules/oidc-provider/lib/models/pre_authorized_code.js +28 -0
- package/dist/node_modules/oidc-provider/lib/models/pushed_authorization_request.js +17 -9
- package/dist/node_modules/oidc-provider/lib/models/refresh_token.js +57 -25
- package/dist/node_modules/oidc-provider/lib/models/registration_access_token.js +20 -7
- package/dist/node_modules/oidc-provider/lib/models/replay_detection.js +1 -3
- package/dist/node_modules/oidc-provider/lib/models/session.js +12 -16
- package/dist/node_modules/oidc-provider/lib/models/token_helpers.js +79 -0
- package/dist/node_modules/oidc-provider/lib/provider.js +50 -23
- package/dist/node_modules/oidc-provider/lib/response_modes/index.js +0 -2
- package/dist/node_modules/oidc-provider/lib/response_modes/jwt.js +0 -1
- package/dist/node_modules/oidc-provider/lib/response_modes/web_message.js +14 -4
- package/dist/node_modules/oidc-provider/lib/shared/access_token.js +85 -0
- package/dist/node_modules/oidc-provider/lib/shared/assemble_params.js +1 -1
- package/dist/node_modules/oidc-provider/lib/shared/attest_client_auth.js +39 -16
- package/dist/node_modules/oidc-provider/lib/shared/authorization_error_handler.js +79 -77
- package/dist/node_modules/oidc-provider/lib/shared/check_rar.js +13 -28
- package/dist/node_modules/oidc-provider/lib/shared/check_resource.js +20 -11
- package/dist/node_modules/oidc-provider/lib/shared/client_auth.js +265 -201
- package/dist/node_modules/oidc-provider/lib/shared/cors.js +48 -16
- package/dist/node_modules/oidc-provider/lib/shared/error_handler.js +13 -4
- package/dist/node_modules/oidc-provider/lib/shared/jwt_client_auth.js +9 -3
- package/dist/node_modules/oidc-provider/lib/shared/reject_dupes.js +12 -32
- package/dist/node_modules/oidc-provider/lib/shared/selective_body.js +54 -14
- package/dist/node_modules/oidc-provider/lib/shared/session.js +6 -6
- package/dist/node_modules/oidc-provider/lib/shared/set_www_authenticate_header.js +1 -2
- package/dist/node_modules/oidc-provider/lib/shared/validate_json_body.js +11 -0
- package/dist/node_modules/oidc-provider/lib/views/index.js +43 -14
- package/dist/node_modules/oidc-provider/lib/views/interaction.js +62 -144
- package/dist/node_modules/oidc-provider/lib/views/layout.js +29 -216
- package/dist/node_modules/oidc-provider/lib/views/login.js +14 -23
- package/dist/node_modules/{undici/lib/web/fetch/LICENSE → oidc-provider/node_modules/jose/LICENSE.md} +2 -2
- package/dist/node_modules/oidc-provider/node_modules/jose/README.md +150 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/index.d.ts +55 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +24 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +40 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +24 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +46 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +28 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +51 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwk/embedded.d.ts +10 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwk/thumbprint.d.ts +15 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwks/local.d.ts +17 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwks/remote.d.ts +94 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/compact/sign.d.ts +20 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/compact/verify.d.ts +25 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/flattened/sign.d.ts +22 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/flattened/verify.d.ts +25 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/general/sign.d.ts +38 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jws/general/verify.d.ts +29 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/decrypt.d.ts +34 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/encrypt.d.ts +57 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/sign.d.ts +21 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/unsecured.d.ts +19 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/jwt/verify.d.ts +35 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/export.d.ts +19 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/generate_key_pair.d.ts +33 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/generate_secret.d.ts +30 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/key/import.d.ts +67 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/types.d.ts +736 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/base64url.d.ts +16 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/decode_jwt.d.ts +8 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/decode_protected_header.d.ts +10 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/types/util/errors.d.ts +182 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/index.js +70 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +7 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +26 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +15 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +35 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/general/decrypt.js +40 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwe/general/encrypt.js +105 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwk/embedded.js +30 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwk/thumbprint.js +55 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwks/local.js +59 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwks/remote.js +101 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/compact/sign.js +20 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/compact/verify.js +8 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/flattened/sign.js +23 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/flattened/verify.js +12 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/general/sign.js +58 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jws/general/verify.js +48 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/decrypt.js +13 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/encrypt.js +45 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/sign.js +19 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/unsecured.js +34 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/jwt/verify.js +13 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/export.js +35 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/generate_key_pair.js +35 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/generate_secret.js +36 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/key/import.js +53 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/asn1.js +138 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/buffer_utils.js +75 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/content_encryption.js +90 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/deflate.js +40 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +116 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +187 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +75 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_algorithms.js +74 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_sign.js +46 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jws_verify.js +86 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +146 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key.js +155 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_algorithm.js +15 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_descriptor.js +9 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/key_management.js +196 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/lib/validate.js +122 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/base64url.js +16 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/decode_jwt.js +33 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/decode_protected_header.js +19 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/dist/webapi/util/errors.js +109 -0
- package/dist/node_modules/oidc-provider/node_modules/jose/package.json +134 -0
- package/dist/node_modules/oidc-provider/node_modules/{jsesc/LICENSE-MIT.txt → koa/LICENSE} +10 -8
- package/dist/node_modules/oidc-provider/node_modules/koa/Readme.md +279 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/dist/koa.mjs +4 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/application.js +344 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/context.js +248 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/is-stream.js +20 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/only.js +9 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/request.js +748 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/response.js +660 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/lib/search-params.js +33 -0
- package/dist/node_modules/oidc-provider/node_modules/koa/package.json +73 -0
- package/dist/node_modules/oidc-provider/node_modules/media-typer/HISTORY.md +50 -0
- package/dist/node_modules/oidc-provider/node_modules/media-typer/LICENSE +22 -0
- package/dist/node_modules/oidc-provider/node_modules/media-typer/README.md +93 -0
- package/dist/node_modules/oidc-provider/node_modules/media-typer/index.js +143 -0
- package/dist/node_modules/oidc-provider/node_modules/media-typer/package.json +33 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-db/HISTORY.md +541 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-db/LICENSE +23 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-db/README.md +109 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-db/db.json +9342 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-db/index.js +12 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-db/package.json +56 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-types/HISTORY.md +421 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-types/LICENSE +23 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-types/README.md +126 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-types/index.js +211 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-types/mimeScore.js +52 -0
- package/dist/node_modules/oidc-provider/node_modules/mime-types/package.json +45 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/HISTORY.md +292 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/LICENSE +23 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/README.md +198 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/index.js +250 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/HISTORY.md +428 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/LICENSE +23 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/README.md +126 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/index.js +211 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/mimeScore.js +57 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/node_modules/mime-types/package.json +49 -0
- package/dist/node_modules/oidc-provider/node_modules/type-is/package.json +47 -0
- package/dist/node_modules/oidc-provider/package.json +5 -42
- package/package.json +3 -3
- package/dist/node_modules/eta/LICENSE +0 -7
- package/dist/node_modules/eta/README.md +0 -185
- package/dist/node_modules/eta/dist/core.d.ts +0 -179
- package/dist/node_modules/eta/dist/core.d.ts.map +0 -1
- package/dist/node_modules/eta/dist/core.js +0 -42
- package/dist/node_modules/eta/dist/core.js.map +0 -1
- package/dist/node_modules/eta/dist/index.cjs +0 -542
- package/dist/node_modules/eta/dist/index.cjs.map +0 -1
- package/dist/node_modules/eta/dist/index.d.cts +0 -187
- package/dist/node_modules/eta/dist/index.d.cts.map +0 -1
- package/dist/node_modules/eta/dist/index.d.mts +0 -187
- package/dist/node_modules/eta/dist/index.d.mts.map +0 -1
- package/dist/node_modules/eta/dist/index.mjs +0 -512
- package/dist/node_modules/eta/dist/index.mjs.map +0 -1
- package/dist/node_modules/eta/package.json +0 -75
- package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_claims.js +0 -28
- package/dist/node_modules/oidc-provider/lib/actions/authorization/assign_defaults.js +0 -17
- package/dist/node_modules/oidc-provider/lib/actions/authorization/authenticated_client_id.js +0 -6
- package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_remap_errors.js +0 -17
- package/dist/node_modules/oidc-provider/lib/actions/authorization/backchannel_request_response.js +0 -41
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_ciba_context.js +0 -12
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_claims.js +0 -68
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client.js +0 -21
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_client_grant_type.js +0 -21
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_dpop_jkt.js +0 -35
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_extra_params.js +0 -18
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_id_token_hint.js +0 -23
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_max_age.js +0 -25
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_openid_scope.js +0 -47
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_prompt.js +0 -25
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_redirect_uri.js +0 -41
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_requested_expiry.js +0 -16
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_mode.js +0 -54
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_response_type.js +0 -26
- package/dist/node_modules/oidc-provider/lib/actions/authorization/check_scope.js +0 -53
- package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_load_account.js +0 -58
- package/dist/node_modules/oidc-provider/lib/actions/authorization/ciba_required.js +0 -13
- package/dist/node_modules/oidc-provider/lib/actions/authorization/device_authorization_response.js +0 -31
- package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow.js +0 -31
- package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_errors.js +0 -37
- package/dist/node_modules/oidc-provider/lib/actions/authorization/device_user_flow_response.js +0 -55
- package/dist/node_modules/oidc-provider/lib/actions/authorization/interaction_emit.js +0 -9
- package/dist/node_modules/oidc-provider/lib/actions/authorization/load_account.js +0 -15
- package/dist/node_modules/oidc-provider/lib/actions/authorization/load_pushed_authorization_request.js +0 -36
- package/dist/node_modules/oidc-provider/lib/actions/authorization/oauth_required.js +0 -11
- package/dist/node_modules/oidc-provider/lib/actions/authorization/oidc_required.js +0 -27
- package/dist/node_modules/oidc-provider/lib/actions/authorization/one_redirect_uri_clients.js +0 -20
- package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_remap_errors.js +0 -17
- package/dist/node_modules/oidc-provider/lib/actions/authorization/pushed_authorization_request_response.js +0 -65
- package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_registration.js +0 -12
- package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_request_and_uri.js +0 -12
- package/dist/node_modules/oidc-provider/lib/actions/authorization/reject_unsupported.js +0 -33
- package/dist/node_modules/oidc-provider/lib/actions/authorization/strip_outside_jar_params.js +0 -19
- package/dist/node_modules/oidc-provider/lib/actions/authorization/unsupported_rar.js +0 -9
- package/dist/node_modules/oidc-provider/lib/helpers/_/pick_by.js +0 -10
- package/dist/node_modules/oidc-provider/lib/models/formats/dynamic.js +0 -21
- package/dist/node_modules/oidc-provider/lib/models/mixins/apply.js +0 -4
- package/dist/node_modules/oidc-provider/lib/models/mixins/consumable.js +0 -17
- package/dist/node_modules/oidc-provider/lib/models/mixins/has_format.js +0 -46
- package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_id.js +0 -12
- package/dist/node_modules/oidc-provider/lib/models/mixins/has_grant_type.js +0 -8
- package/dist/node_modules/oidc-provider/lib/models/mixins/has_policies.js +0 -38
- package/dist/node_modules/oidc-provider/lib/models/mixins/is_attestation_constrained.js +0 -15
- package/dist/node_modules/oidc-provider/lib/models/mixins/is_sender_constrained.js +0 -50
- package/dist/node_modules/oidc-provider/lib/models/mixins/is_session_bound.js +0 -38
- package/dist/node_modules/oidc-provider/lib/models/mixins/set_audience.js +0 -21
- package/dist/node_modules/oidc-provider/lib/models/mixins/stores_auth.js +0 -16
- package/dist/node_modules/oidc-provider/lib/models/mixins/stores_pkce.js +0 -9
- package/dist/node_modules/oidc-provider/lib/shared/conditional_body.js +0 -9
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/LICENSE +0 -21
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/README.md +0 -1370
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.mts +0 -1003
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.d.ts +0 -1003
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.js +0 -1616
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/dist/index.mjs +0 -1573
- package/dist/node_modules/oidc-provider/node_modules/@koa/router/package.json +0 -122
- package/dist/node_modules/oidc-provider/node_modules/http-errors/HISTORY.md +0 -186
- package/dist/node_modules/oidc-provider/node_modules/http-errors/LICENSE +0 -23
- package/dist/node_modules/oidc-provider/node_modules/http-errors/README.md +0 -169
- package/dist/node_modules/oidc-provider/node_modules/http-errors/index.js +0 -290
- package/dist/node_modules/oidc-provider/node_modules/http-errors/package.json +0 -54
- package/dist/node_modules/oidc-provider/node_modules/jsesc/README.md +0 -422
- package/dist/node_modules/oidc-provider/node_modules/jsesc/bin/jsesc +0 -148
- package/dist/node_modules/oidc-provider/node_modules/jsesc/jsesc.js +0 -337
- package/dist/node_modules/oidc-provider/node_modules/jsesc/man/jsesc.1 +0 -94
- package/dist/node_modules/oidc-provider/node_modules/jsesc/package.json +0 -56
- package/dist/node_modules/oidc-provider/node_modules/nanoid/LICENSE +0 -20
- package/dist/node_modules/oidc-provider/node_modules/nanoid/README.md +0 -38
- package/dist/node_modules/oidc-provider/node_modules/nanoid/bin/nanoid.js +0 -55
- package/dist/node_modules/oidc-provider/node_modules/nanoid/index.browser.js +0 -29
- package/dist/node_modules/oidc-provider/node_modules/nanoid/index.d.ts +0 -106
- package/dist/node_modules/oidc-provider/node_modules/nanoid/index.js +0 -47
- package/dist/node_modules/oidc-provider/node_modules/nanoid/nanoid.js +0 -1
- package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.d.ts +0 -48
- package/dist/node_modules/oidc-provider/node_modules/nanoid/non-secure/index.js +0 -21
- package/dist/node_modules/oidc-provider/node_modules/nanoid/package.json +0 -46
- package/dist/node_modules/oidc-provider/node_modules/nanoid/url-alphabet/index.js +0 -2
- package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/LICENSE +0 -21
- package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/Readme.md +0 -224
- package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.d.ts +0 -147
- package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js +0 -431
- package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/dist/index.js.map +0 -1
- package/dist/node_modules/oidc-provider/node_modules/path-to-regexp/package.json +0 -64
- package/dist/node_modules/quick-lru/index.d.ts +0 -178
- package/dist/node_modules/quick-lru/index.js +0 -329
- package/dist/node_modules/quick-lru/license +0 -9
- package/dist/node_modules/quick-lru/package.json +0 -54
- package/dist/node_modules/quick-lru/readme.md +0 -236
- package/dist/node_modules/statuses/HISTORY.md +0 -87
- package/dist/node_modules/statuses/LICENSE +0 -23
- package/dist/node_modules/statuses/README.md +0 -139
- package/dist/node_modules/statuses/codes.json +0 -65
- package/dist/node_modules/statuses/index.js +0 -146
- package/dist/node_modules/statuses/package.json +0 -49
- package/dist/node_modules/undici/LICENSE +0 -21
- package/dist/node_modules/undici/README.md +0 -741
- package/dist/node_modules/undici/docs/docs/api/Agent.md +0 -84
- package/dist/node_modules/undici/docs/docs/api/BalancedPool.md +0 -99
- package/dist/node_modules/undici/docs/docs/api/CacheStorage.md +0 -30
- package/dist/node_modules/undici/docs/docs/api/CacheStore.md +0 -164
- package/dist/node_modules/undici/docs/docs/api/Client.md +0 -285
- package/dist/node_modules/undici/docs/docs/api/ClientStats.md +0 -27
- package/dist/node_modules/undici/docs/docs/api/Connector.md +0 -115
- package/dist/node_modules/undici/docs/docs/api/ContentType.md +0 -57
- package/dist/node_modules/undici/docs/docs/api/Cookies.md +0 -101
- package/dist/node_modules/undici/docs/docs/api/Debug.md +0 -62
- package/dist/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +0 -315
- package/dist/node_modules/undici/docs/docs/api/Dispatcher.md +0 -1392
- package/dist/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +0 -159
- package/dist/node_modules/undici/docs/docs/api/Errors.md +0 -49
- package/dist/node_modules/undici/docs/docs/api/EventSource.md +0 -45
- package/dist/node_modules/undici/docs/docs/api/Fetch.md +0 -60
- package/dist/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -139
- package/dist/node_modules/undici/docs/docs/api/H2CClient.md +0 -263
- package/dist/node_modules/undici/docs/docs/api/MockAgent.md +0 -603
- package/dist/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -197
- package/dist/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -43
- package/dist/node_modules/undici/docs/docs/api/MockClient.md +0 -81
- package/dist/node_modules/undici/docs/docs/api/MockErrors.md +0 -12
- package/dist/node_modules/undici/docs/docs/api/MockPool.md +0 -555
- package/dist/node_modules/undici/docs/docs/api/Pool.md +0 -84
- package/dist/node_modules/undici/docs/docs/api/PoolStats.md +0 -35
- package/dist/node_modules/undici/docs/docs/api/ProxyAgent.md +0 -229
- package/dist/node_modules/undici/docs/docs/api/RedirectHandler.md +0 -93
- package/dist/node_modules/undici/docs/docs/api/RetryAgent.md +0 -50
- package/dist/node_modules/undici/docs/docs/api/RetryHandler.md +0 -118
- package/dist/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -145
- package/dist/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -616
- package/dist/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -274
- package/dist/node_modules/undici/docs/docs/api/Util.md +0 -25
- package/dist/node_modules/undici/docs/docs/api/WebSocket.md +0 -141
- package/dist/node_modules/undici/docs/docs/api/api-lifecycle.md +0 -91
- package/dist/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -64
- package/dist/node_modules/undici/docs/docs/best-practices/crawling.md +0 -58
- package/dist/node_modules/undici/docs/docs/best-practices/mocking-request.md +0 -190
- package/dist/node_modules/undici/docs/docs/best-practices/proxy.md +0 -127
- package/dist/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +0 -224
- package/dist/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -63
- package/dist/node_modules/undici/index-fetch.js +0 -65
- package/dist/node_modules/undici/index.d.ts +0 -3
- package/dist/node_modules/undici/index.js +0 -234
- package/dist/node_modules/undici/lib/api/abort-signal.js +0 -59
- package/dist/node_modules/undici/lib/api/api-connect.js +0 -110
- package/dist/node_modules/undici/lib/api/api-pipeline.js +0 -252
- package/dist/node_modules/undici/lib/api/api-request.js +0 -214
- package/dist/node_modules/undici/lib/api/api-stream.js +0 -209
- package/dist/node_modules/undici/lib/api/api-upgrade.js +0 -111
- package/dist/node_modules/undici/lib/api/index.js +0 -7
- package/dist/node_modules/undici/lib/api/readable.js +0 -580
- package/dist/node_modules/undici/lib/cache/memory-cache-store.js +0 -234
- package/dist/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -461
- package/dist/node_modules/undici/lib/core/connect.js +0 -137
- package/dist/node_modules/undici/lib/core/constants.js +0 -143
- package/dist/node_modules/undici/lib/core/diagnostics.js +0 -227
- package/dist/node_modules/undici/lib/core/errors.js +0 -477
- package/dist/node_modules/undici/lib/core/request.js +0 -438
- package/dist/node_modules/undici/lib/core/socks5-client.js +0 -407
- package/dist/node_modules/undici/lib/core/socks5-utils.js +0 -203
- package/dist/node_modules/undici/lib/core/symbols.js +0 -75
- package/dist/node_modules/undici/lib/core/tree.js +0 -160
- package/dist/node_modules/undici/lib/core/util.js +0 -992
- package/dist/node_modules/undici/lib/dispatcher/agent.js +0 -158
- package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -219
- package/dist/node_modules/undici/lib/dispatcher/client-h1.js +0 -1610
- package/dist/node_modules/undici/lib/dispatcher/client-h2.js +0 -995
- package/dist/node_modules/undici/lib/dispatcher/client.js +0 -659
- package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -165
- package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
- package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -146
- package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -135
- package/dist/node_modules/undici/lib/dispatcher/h2c-client.js +0 -51
- package/dist/node_modules/undici/lib/dispatcher/pool-base.js +0 -214
- package/dist/node_modules/undici/lib/dispatcher/pool.js +0 -118
- package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -318
- package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
- package/dist/node_modules/undici/lib/dispatcher/round-robin-pool.js +0 -137
- package/dist/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +0 -249
- package/dist/node_modules/undici/lib/encoding/index.js +0 -33
- package/dist/node_modules/undici/lib/global.js +0 -50
- package/dist/node_modules/undici/lib/handler/cache-handler.js +0 -578
- package/dist/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
- package/dist/node_modules/undici/lib/handler/decorator-handler.js +0 -67
- package/dist/node_modules/undici/lib/handler/deduplication-handler.js +0 -460
- package/dist/node_modules/undici/lib/handler/redirect-handler.js +0 -238
- package/dist/node_modules/undici/lib/handler/retry-handler.js +0 -394
- package/dist/node_modules/undici/lib/handler/unwrap-handler.js +0 -100
- package/dist/node_modules/undici/lib/handler/wrap-handler.js +0 -105
- package/dist/node_modules/undici/lib/interceptor/cache.js +0 -495
- package/dist/node_modules/undici/lib/interceptor/decompress.js +0 -259
- package/dist/node_modules/undici/lib/interceptor/deduplicate.js +0 -117
- package/dist/node_modules/undici/lib/interceptor/dns.js +0 -571
- package/dist/node_modules/undici/lib/interceptor/dump.js +0 -112
- package/dist/node_modules/undici/lib/interceptor/redirect.js +0 -21
- package/dist/node_modules/undici/lib/interceptor/response-error.js +0 -95
- package/dist/node_modules/undici/lib/interceptor/retry.js +0 -19
- package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/dist/node_modules/undici/lib/llhttp/constants.d.ts +0 -195
- package/dist/node_modules/undici/lib/llhttp/constants.js +0 -531
- package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
- package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
- package/dist/node_modules/undici/lib/llhttp/utils.d.ts +0 -2
- package/dist/node_modules/undici/lib/llhttp/utils.js +0 -12
- package/dist/node_modules/undici/lib/mock/mock-agent.js +0 -232
- package/dist/node_modules/undici/lib/mock/mock-call-history.js +0 -248
- package/dist/node_modules/undici/lib/mock/mock-client.js +0 -68
- package/dist/node_modules/undici/lib/mock/mock-errors.js +0 -29
- package/dist/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
- package/dist/node_modules/undici/lib/mock/mock-pool.js +0 -68
- package/dist/node_modules/undici/lib/mock/mock-symbols.js +0 -32
- package/dist/node_modules/undici/lib/mock/mock-utils.js +0 -486
- package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
- package/dist/node_modules/undici/lib/mock/snapshot-agent.js +0 -353
- package/dist/node_modules/undici/lib/mock/snapshot-recorder.js +0 -588
- package/dist/node_modules/undici/lib/mock/snapshot-utils.js +0 -158
- package/dist/node_modules/undici/lib/util/cache.js +0 -407
- package/dist/node_modules/undici/lib/util/date.js +0 -653
- package/dist/node_modules/undici/lib/util/promise.js +0 -28
- package/dist/node_modules/undici/lib/util/runtime-features.js +0 -124
- package/dist/node_modules/undici/lib/util/stats.js +0 -32
- package/dist/node_modules/undici/lib/util/timers.js +0 -425
- package/dist/node_modules/undici/lib/web/cache/cache.js +0 -864
- package/dist/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
- package/dist/node_modules/undici/lib/web/cache/util.js +0 -45
- package/dist/node_modules/undici/lib/web/cookies/constants.js +0 -12
- package/dist/node_modules/undici/lib/web/cookies/index.js +0 -199
- package/dist/node_modules/undici/lib/web/cookies/parse.js +0 -322
- package/dist/node_modules/undici/lib/web/cookies/util.js +0 -282
- package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
- package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +0 -501
- package/dist/node_modules/undici/lib/web/eventsource/util.js +0 -29
- package/dist/node_modules/undici/lib/web/fetch/body.js +0 -509
- package/dist/node_modules/undici/lib/web/fetch/constants.js +0 -131
- package/dist/node_modules/undici/lib/web/fetch/data-url.js +0 -596
- package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -575
- package/dist/node_modules/undici/lib/web/fetch/formdata.js +0 -259
- package/dist/node_modules/undici/lib/web/fetch/global.js +0 -40
- package/dist/node_modules/undici/lib/web/fetch/headers.js +0 -719
- package/dist/node_modules/undici/lib/web/fetch/index.js +0 -2397
- package/dist/node_modules/undici/lib/web/fetch/request.js +0 -1115
- package/dist/node_modules/undici/lib/web/fetch/response.js +0 -641
- package/dist/node_modules/undici/lib/web/fetch/util.js +0 -1520
- package/dist/node_modules/undici/lib/web/infra/index.js +0 -229
- package/dist/node_modules/undici/lib/web/subresource-integrity/Readme.md +0 -9
- package/dist/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +0 -307
- package/dist/node_modules/undici/lib/web/webidl/index.js +0 -1006
- package/dist/node_modules/undici/lib/web/websocket/connection.js +0 -329
- package/dist/node_modules/undici/lib/web/websocket/constants.js +0 -126
- package/dist/node_modules/undici/lib/web/websocket/events.js +0 -331
- package/dist/node_modules/undici/lib/web/websocket/frame.js +0 -133
- package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -118
- package/dist/node_modules/undici/lib/web/websocket/receiver.js +0 -450
- package/dist/node_modules/undici/lib/web/websocket/sender.js +0 -109
- package/dist/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -104
- package/dist/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -497
- package/dist/node_modules/undici/lib/web/websocket/util.js +0 -347
- package/dist/node_modules/undici/lib/web/websocket/websocket.js +0 -751
- package/dist/node_modules/undici/package.json +0 -152
- package/dist/node_modules/undici/scripts/strip-comments.js +0 -10
- package/dist/node_modules/undici/types/README.md +0 -6
- package/dist/node_modules/undici/types/agent.d.ts +0 -32
- package/dist/node_modules/undici/types/api.d.ts +0 -43
- package/dist/node_modules/undici/types/balanced-pool.d.ts +0 -30
- package/dist/node_modules/undici/types/cache-interceptor.d.ts +0 -179
- package/dist/node_modules/undici/types/cache.d.ts +0 -36
- package/dist/node_modules/undici/types/client-stats.d.ts +0 -15
- package/dist/node_modules/undici/types/client.d.ts +0 -123
- package/dist/node_modules/undici/types/connector.d.ts +0 -36
- package/dist/node_modules/undici/types/content-type.d.ts +0 -21
- package/dist/node_modules/undici/types/cookies.d.ts +0 -30
- package/dist/node_modules/undici/types/diagnostics-channel.d.ts +0 -74
- package/dist/node_modules/undici/types/dispatcher.d.ts +0 -273
- package/dist/node_modules/undici/types/env-http-proxy-agent.d.ts +0 -22
- package/dist/node_modules/undici/types/errors.d.ts +0 -177
- package/dist/node_modules/undici/types/eventsource.d.ts +0 -66
- package/dist/node_modules/undici/types/fetch.d.ts +0 -231
- package/dist/node_modules/undici/types/formdata.d.ts +0 -114
- package/dist/node_modules/undici/types/global-dispatcher.d.ts +0 -9
- package/dist/node_modules/undici/types/global-origin.d.ts +0 -7
- package/dist/node_modules/undici/types/h2c-client.d.ts +0 -73
- package/dist/node_modules/undici/types/handlers.d.ts +0 -14
- package/dist/node_modules/undici/types/header.d.ts +0 -160
- package/dist/node_modules/undici/types/index.d.ts +0 -91
- package/dist/node_modules/undici/types/interceptors.d.ts +0 -80
- package/dist/node_modules/undici/types/mock-agent.d.ts +0 -68
- package/dist/node_modules/undici/types/mock-call-history.d.ts +0 -111
- package/dist/node_modules/undici/types/mock-client.d.ts +0 -27
- package/dist/node_modules/undici/types/mock-errors.d.ts +0 -12
- package/dist/node_modules/undici/types/mock-interceptor.d.ts +0 -94
- package/dist/node_modules/undici/types/mock-pool.d.ts +0 -27
- package/dist/node_modules/undici/types/patch.d.ts +0 -29
- package/dist/node_modules/undici/types/pool-stats.d.ts +0 -19
- package/dist/node_modules/undici/types/pool.d.ts +0 -41
- package/dist/node_modules/undici/types/proxy-agent.d.ts +0 -29
- package/dist/node_modules/undici/types/readable.d.ts +0 -68
- package/dist/node_modules/undici/types/retry-agent.d.ts +0 -8
- package/dist/node_modules/undici/types/retry-handler.d.ts +0 -125
- package/dist/node_modules/undici/types/round-robin-pool.d.ts +0 -41
- package/dist/node_modules/undici/types/snapshot-agent.d.ts +0 -109
- package/dist/node_modules/undici/types/socks5-proxy-agent.d.ts +0 -25
- package/dist/node_modules/undici/types/util.d.ts +0 -18
- package/dist/node_modules/undici/types/utility.d.ts +0 -7
- package/dist/node_modules/undici/types/webidl.d.ts +0 -347
- package/dist/node_modules/undici/types/websocket.d.ts +0 -188
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { encode as b64u } from "../util/base64url.js";
|
|
2
|
+
import { encrypt } from "./content_encryption.js";
|
|
3
|
+
import { encryptKeyManagement } from "./key_management.js";
|
|
4
|
+
import { JWEInvalid } from "../util/errors.js";
|
|
5
|
+
import { assertUint8Array, isDisjoint, isObject, serializeJoseHeader, validateCrit, validateCritDuplicates, JWE_RECOGNIZED } from "./validate.js";
|
|
6
|
+
import { encode } from "./buffer_utils.js";
|
|
7
|
+
import { prepareKey } from "./key.js";
|
|
8
|
+
import { JWE, jweAlgorithm, jweEncryption } from "./jwe_algorithms.js";
|
|
9
|
+
import { compress, validateZip } from "./deflate.js";
|
|
10
|
+
function checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader) {
|
|
11
|
+
if (!isDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader))
|
|
12
|
+
throw new JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
|
|
13
|
+
}
|
|
14
|
+
function checkEncryptHeaders(input, options, sharedHeadersNormalized = !1) {
|
|
15
|
+
if (!input[1] && !input[2] && !input[3])
|
|
16
|
+
throw new JWEInvalid("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
|
|
17
|
+
options !== void 0 && (input[8] = options?.crit);
|
|
18
|
+
let [, protectedHeader, unprotectedHeader, sharedUnprotectedHeader, aad, cek, iv, keyManagementParameters, crit] = input;
|
|
19
|
+
if (aad !== void 0 && assertUint8Array(aad, "JWE Additional Authenticated Data"), cek !== void 0 && assertUint8Array(cek, "JWE Content Encryption Key"), iv !== void 0 && assertUint8Array(iv, "JWE Initialization Vector"), !sharedHeadersNormalized && protectedHeader !== void 0 && (protectedHeader = serializeJoseHeader(JWEInvalid, protectedHeader)[0], input[1] = protectedHeader), unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWEInvalid, unprotectedHeader)[0], input[2] = unprotectedHeader), !sharedHeadersNormalized && sharedUnprotectedHeader !== void 0 && (sharedUnprotectedHeader = serializeJoseHeader(JWEInvalid, sharedUnprotectedHeader)[0], input[3] = sharedUnprotectedHeader), keyManagementParameters !== void 0 && !isObject(keyManagementParameters))
|
|
20
|
+
throw new TypeError("JWE Key Management Parameters must be an object");
|
|
21
|
+
checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader);
|
|
22
|
+
const joseHeader = {
|
|
23
|
+
...protectedHeader,
|
|
24
|
+
...unprotectedHeader,
|
|
25
|
+
...sharedUnprotectedHeader
|
|
26
|
+
};
|
|
27
|
+
validateCritDuplicates(JWEInvalid, protectedHeader), validateCrit(JWEInvalid, JWE_RECOGNIZED, crit, protectedHeader, joseHeader), validateZip(joseHeader, protectedHeader);
|
|
28
|
+
const { alg, enc } = joseHeader;
|
|
29
|
+
if (typeof alg != "string" || !alg)
|
|
30
|
+
throw new JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
|
|
31
|
+
const algEntry = JWE[alg];
|
|
32
|
+
if (algEntry?.mode === "integrated-encryption") {
|
|
33
|
+
if (enc !== void 0)
|
|
34
|
+
throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');
|
|
35
|
+
if (cek !== void 0)
|
|
36
|
+
throw new TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${alg}`);
|
|
37
|
+
if (iv !== void 0)
|
|
38
|
+
throw new TypeError(`setInitializationVector cannot be called with JWE "alg" (Algorithm) Header ${alg}`);
|
|
39
|
+
return [joseHeader, void 0, algEntry];
|
|
40
|
+
}
|
|
41
|
+
if (typeof enc != "string" || !enc)
|
|
42
|
+
throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
|
|
43
|
+
return [joseHeader, jweEncryption(enc), algEntry];
|
|
44
|
+
}
|
|
45
|
+
async function encryptJWE(input, checked, key) {
|
|
46
|
+
const [joseHeader, encEntry, selected] = checked, [inputPlaintext, inputProtectedHeader, inputUnprotectedHeader, sharedUnprotectedHeader, aad, providedCek, inputIv, keyManagementParameters, , unprotectedParameters] = input;
|
|
47
|
+
let protectedHeader = inputProtectedHeader, unprotectedHeader = inputUnprotectedHeader;
|
|
48
|
+
const algEntry = selected ?? jweAlgorithm(joseHeader.alg);
|
|
49
|
+
let encryptedKey, parameters, cek;
|
|
50
|
+
algEntry.mode === "integrated-encryption" ? cek = await prepareKey(algEntry, key, "encrypt") : [cek, encryptedKey, parameters] = await encryptKeyManagement(algEntry, encEntry, key, joseHeader, providedCek, keyManagementParameters), parameters && (unprotectedParameters ? unprotectedHeader = unprotectedHeader ? { ...unprotectedHeader, ...parameters } : parameters : protectedHeader = protectedHeader ? { ...protectedHeader, ...parameters } : parameters, checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader));
|
|
51
|
+
const protectedHeaderS = protectedHeader ? b64u(JSON.stringify(protectedHeader)) : "", aadMember = aad?.byteLength ? b64u(aad) : void 0, additionalData = encode(aadMember ? `${protectedHeaderS}.${aadMember}` : protectedHeaderS);
|
|
52
|
+
let plaintext = inputPlaintext;
|
|
53
|
+
joseHeader.zip === "DEF" && (plaintext = await compress(plaintext).catch((cause) => {
|
|
54
|
+
throw new JWEInvalid("Failed to compress plaintext", { cause });
|
|
55
|
+
}));
|
|
56
|
+
let ciphertext, tag, iv;
|
|
57
|
+
algEntry.mode === "integrated-encryption" ? [encryptedKey, ciphertext] = await algEntry.encrypt(cek, plaintext, additionalData, protectedHeader, joseHeader, keyManagementParameters) : { ciphertext, tag, iv } = await encrypt(encEntry, plaintext, cek, inputIv, additionalData);
|
|
58
|
+
const jwe = {
|
|
59
|
+
ciphertext: b64u(ciphertext)
|
|
60
|
+
};
|
|
61
|
+
return iv && (jwe.iv = b64u(iv)), tag && (jwe.tag = b64u(tag)), encryptedKey?.byteLength && (jwe.encrypted_key = b64u(encryptedKey)), aadMember && (jwe.aad = aadMember), protectedHeader && (jwe.protected = protectedHeaderS), sharedUnprotectedHeader && (jwe.unprotected = sharedUnprotectedHeader), unprotectedHeader && (jwe.header = unprotectedHeader), jwe;
|
|
62
|
+
}
|
|
63
|
+
async function createJWE(input, key, options) {
|
|
64
|
+
return encryptJWE(input, checkEncryptHeaders(input, options), key);
|
|
65
|
+
}
|
|
66
|
+
function compactJWE(jwe) {
|
|
67
|
+
return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join(".");
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
checkDisjoint,
|
|
71
|
+
checkEncryptHeaders,
|
|
72
|
+
compactJWE,
|
|
73
|
+
createJWE,
|
|
74
|
+
encryptJWE
|
|
75
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { JOSENotSupported } from "../util/errors.js";
|
|
2
|
+
import { table } from "./key_descriptor.js";
|
|
3
|
+
const sig = [["verify"], ["sign"]];
|
|
4
|
+
function hmac(bits) {
|
|
5
|
+
const subtle = { name: "HMAC", hash: `SHA-${bits}` };
|
|
6
|
+
return { kty: ["oct"], secret: !0, subtle, signing: subtle, usages: sig };
|
|
7
|
+
}
|
|
8
|
+
function rsa(bits, saltLength) {
|
|
9
|
+
const subtle = { name: saltLength ? "RSA-PSS" : "RSASSA-PKCS1-v1_5", hash: `SHA-${bits}` };
|
|
10
|
+
return {
|
|
11
|
+
kty: ["RSA"],
|
|
12
|
+
subtle,
|
|
13
|
+
signing: saltLength ? { ...subtle, saltLength } : subtle,
|
|
14
|
+
usages: sig,
|
|
15
|
+
minRsaBits: 2048
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function ecdsa(crv, bits) {
|
|
19
|
+
return {
|
|
20
|
+
kty: ["EC"],
|
|
21
|
+
crv,
|
|
22
|
+
subtle: { name: "ECDSA", namedCurve: crv },
|
|
23
|
+
signing: { name: "ECDSA", hash: `SHA-${bits}` },
|
|
24
|
+
usages: sig
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function eddsa() {
|
|
28
|
+
const subtle = { name: "Ed25519" };
|
|
29
|
+
return {
|
|
30
|
+
kty: ["OKP"],
|
|
31
|
+
crv: "Ed25519",
|
|
32
|
+
subtle,
|
|
33
|
+
signing: subtle,
|
|
34
|
+
usages: sig
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function mldsa(bits) {
|
|
38
|
+
const subtle = { name: `ML-DSA-${bits}` };
|
|
39
|
+
return {
|
|
40
|
+
kty: ["AKP"],
|
|
41
|
+
subtle,
|
|
42
|
+
signing: subtle,
|
|
43
|
+
usages: sig
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const JWS = table({
|
|
47
|
+
HS256: hmac(256),
|
|
48
|
+
HS384: hmac(384),
|
|
49
|
+
HS512: hmac(512),
|
|
50
|
+
RS256: rsa(256),
|
|
51
|
+
RS384: rsa(384),
|
|
52
|
+
RS512: rsa(512),
|
|
53
|
+
PS256: rsa(256, 32),
|
|
54
|
+
PS384: rsa(384, 48),
|
|
55
|
+
PS512: rsa(512, 64),
|
|
56
|
+
ES256: ecdsa("P-256", 256),
|
|
57
|
+
ES384: ecdsa("P-384", 384),
|
|
58
|
+
ES512: ecdsa("P-521", 512),
|
|
59
|
+
EdDSA: eddsa(),
|
|
60
|
+
Ed25519: eddsa(),
|
|
61
|
+
"ML-DSA-44": mldsa(44),
|
|
62
|
+
"ML-DSA-65": mldsa(65),
|
|
63
|
+
"ML-DSA-87": mldsa(87)
|
|
64
|
+
});
|
|
65
|
+
function jwsAlgorithm(alg) {
|
|
66
|
+
const entry = typeof alg == "string" ? JWS[alg] : void 0;
|
|
67
|
+
if (!entry)
|
|
68
|
+
throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
|
|
69
|
+
return entry;
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
JWS,
|
|
73
|
+
jwsAlgorithm
|
|
74
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { encode as b64u } from "../util/base64url.js";
|
|
2
|
+
import { jwsAlgorithm } from "./jws_algorithms.js";
|
|
3
|
+
import { isDisjoint, serializeJoseHeader, validateB64, validateCrit, validateCritDuplicates, JWS_RECOGNIZED } from "./validate.js";
|
|
4
|
+
import { JWSInvalid } from "../util/errors.js";
|
|
5
|
+
import { concat, encode, encoder } from "./buffer_utils.js";
|
|
6
|
+
import { prepareKey, rawKey, checkModulusLength } from "./key.js";
|
|
7
|
+
async function createSignature(input, key, rejectUnencoded) {
|
|
8
|
+
let [payload, protectedHeader, unprotectedHeader, crit] = input, protectedHeaderString = "";
|
|
9
|
+
if (protectedHeader !== void 0) {
|
|
10
|
+
const normalized = serializeJoseHeader(JWSInvalid, protectedHeader);
|
|
11
|
+
protectedHeader = normalized[0], protectedHeaderString = b64u(normalized[1]);
|
|
12
|
+
}
|
|
13
|
+
if (unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWSInvalid, unprotectedHeader)[0]), !protectedHeader && !unprotectedHeader)
|
|
14
|
+
throw new JWSInvalid("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
|
|
15
|
+
if (!isDisjoint(protectedHeader, unprotectedHeader))
|
|
16
|
+
throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
|
|
17
|
+
const joseHeader = { ...protectedHeader, ...unprotectedHeader };
|
|
18
|
+
validateCritDuplicates(JWSInvalid, protectedHeader);
|
|
19
|
+
const b64 = validateB64(protectedHeader, validateCrit(JWSInvalid, JWS_RECOGNIZED, crit, protectedHeader, joseHeader));
|
|
20
|
+
b64 || rejectUnencoded?.();
|
|
21
|
+
const { alg } = joseHeader;
|
|
22
|
+
if (typeof alg != "string" || !alg)
|
|
23
|
+
throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
|
|
24
|
+
const entry = jwsAlgorithm(alg);
|
|
25
|
+
let payloadS = "", payloadB = payload, data;
|
|
26
|
+
if (b64) {
|
|
27
|
+
const encoded = input[4];
|
|
28
|
+
encoded ? (payloadS = encoded[0] ??= b64u(payload), payloadB = encoded[1] ??= encode(payloadS)) : (payloadS = b64u(payload), data = encoder.encode(`${protectedHeaderString}.${payloadS}`));
|
|
29
|
+
}
|
|
30
|
+
data ??= concat(encode(protectedHeaderString), encode("."), payloadB);
|
|
31
|
+
const k = await rawKey(await prepareKey(entry, key, "sign"), entry.subtle, "sign");
|
|
32
|
+
entry.minRsaBits && checkModulusLength(entry.alg, k);
|
|
33
|
+
const jws = {
|
|
34
|
+
signature: b64u(new Uint8Array(await crypto.subtle.sign(entry.signing, k, data))),
|
|
35
|
+
payload: payloadS
|
|
36
|
+
};
|
|
37
|
+
return protectedHeader && (jws.protected = protectedHeaderString), unprotectedHeader && (jws.header = unprotectedHeader), [jws, b64];
|
|
38
|
+
}
|
|
39
|
+
async function createCompactSignature(payload, protectedHeader, crit, key, rejectUnencoded) {
|
|
40
|
+
const [jws] = await createSignature([payload, protectedHeader, void 0, crit], key, rejectUnencoded);
|
|
41
|
+
return `${jws.protected}.${jws.payload}.${jws.signature}`;
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
createCompactSignature,
|
|
45
|
+
createSignature
|
|
46
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jwsAlgorithm } from "./jws_algorithms.js";
|
|
2
|
+
import { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from "../util/errors.js";
|
|
3
|
+
import { concat, decoder, encoder, encode } from "./buffer_utils.js";
|
|
4
|
+
import { decodeBase64url, encodeBase64url, parseJoseHeader, isDisjoint, isObject, validateB64, validateCrit, validateAlgorithms, JWS_RECOGNIZED } from "./validate.js";
|
|
5
|
+
import { prepareKey, rawKey, checkModulusLength } from "./key.js";
|
|
6
|
+
function snapshotJws(jws, sharedPayload) {
|
|
7
|
+
const encodedProtected = jws.protected, inputHeader = jws.header, header = isObject(inputHeader) ? { ...inputHeader } : inputHeader;
|
|
8
|
+
let payload = sharedPayload ? sharedPayload[0] : jws.payload;
|
|
9
|
+
!sharedPayload && payload instanceof Uint8Array && (payload = new Uint8Array(payload));
|
|
10
|
+
const signature = jws.signature, snapshot = { payload, signature };
|
|
11
|
+
if (encodedProtected !== void 0 && (snapshot.protected = encodedProtected), inputHeader !== void 0 && (snapshot.header = header), encodedProtected === void 0 && header === void 0)
|
|
12
|
+
throw new JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
|
|
13
|
+
if (encodedProtected !== void 0 && typeof encodedProtected != "string")
|
|
14
|
+
throw new JWSInvalid("JWS Protected Header incorrect type");
|
|
15
|
+
if (payload === void 0)
|
|
16
|
+
throw new JWSInvalid("JWS Payload missing");
|
|
17
|
+
if (typeof signature != "string")
|
|
18
|
+
throw new JWSInvalid("JWS Signature missing or incorrect type");
|
|
19
|
+
if (header !== void 0 && !isObject(header))
|
|
20
|
+
throw new JWSInvalid("JWS Unprotected Header incorrect type");
|
|
21
|
+
return snapshot;
|
|
22
|
+
}
|
|
23
|
+
function prepareVerify(options) {
|
|
24
|
+
return [options && validateAlgorithms("algorithms", options.algorithms), options?.crit];
|
|
25
|
+
}
|
|
26
|
+
function parseProtectedHeader(encodedProtected) {
|
|
27
|
+
return encodedProtected === void 0 ? {} : parseJoseHeader(encodedProtected, JWSInvalid, "JWS Protected Header is invalid");
|
|
28
|
+
}
|
|
29
|
+
function encodeJsonUnencodedPayload(payload) {
|
|
30
|
+
const invalid = /[\p{Cs}\p{Cn}]/u.exec(payload)?.[0];
|
|
31
|
+
if (invalid !== void 0)
|
|
32
|
+
throw new JWSInvalid(/\p{Cs}/u.test(invalid) ? "JWS Payload must be a well-formed Unicode string" : "JWS Payload must not contain unassigned Unicode code points");
|
|
33
|
+
return encoder.encode(payload);
|
|
34
|
+
}
|
|
35
|
+
function encodeCompactUnencodedPayload(payload) {
|
|
36
|
+
try {
|
|
37
|
+
return encode(payload);
|
|
38
|
+
} catch {
|
|
39
|
+
throw new JWSInvalid("JWS Compact Serialization payload must use only ASCII characters");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async function verifySignature(jws, shared, key, encodeUnencodedPayload, parsedProtected) {
|
|
43
|
+
const { protected: encodedProtected, header, payload: inputPayload } = jws, parsedProt = parsedProtected ?? parseProtectedHeader(encodedProtected);
|
|
44
|
+
if (!isDisjoint(parsedProt, header))
|
|
45
|
+
throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
|
|
46
|
+
const joseHeader = { ...parsedProt, ...header }, b64 = validateB64(parsedProt, validateCrit(JWSInvalid, JWS_RECOGNIZED, shared[1], parsedProt, joseHeader)), { alg } = joseHeader;
|
|
47
|
+
if (typeof alg != "string" || !alg)
|
|
48
|
+
throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
|
|
49
|
+
if (shared[0] && !shared[0].has(alg))
|
|
50
|
+
throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
|
|
51
|
+
if (b64) {
|
|
52
|
+
if (typeof inputPayload != "string")
|
|
53
|
+
throw new JWSInvalid("JWS Payload must be a string");
|
|
54
|
+
} else if (typeof inputPayload != "string" && !(inputPayload instanceof Uint8Array))
|
|
55
|
+
throw new JWSInvalid("JWS Payload must be a string or an Uint8Array instance");
|
|
56
|
+
const signingPayload = b64 || typeof inputPayload != "string" ? inputPayload : encodeUnencodedPayload(inputPayload);
|
|
57
|
+
let resolvedKey = !1;
|
|
58
|
+
typeof key == "function" && (key = await key(parsedProt, jws), resolvedKey = !0);
|
|
59
|
+
const entry = jwsAlgorithm(alg), data = concat(encodedProtected !== void 0 ? encode(encodedProtected) : new Uint8Array(), encode("."), typeof signingPayload == "string" ? shared[2] ??= encodeBase64url(signingPayload, "payload", JWSInvalid) : signingPayload), signature = decodeBase64url(jws.signature, "signature", JWSInvalid), k = await prepareKey(entry, key, "verify"), cryptoKey = await rawKey(k, entry.subtle, "verify");
|
|
60
|
+
entry.minRsaBits && checkModulusLength(entry.alg, cryptoKey);
|
|
61
|
+
let verified = !1;
|
|
62
|
+
try {
|
|
63
|
+
verified = await crypto.subtle.verify(entry.signing, cryptoKey, signature, data);
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
if (!verified)
|
|
67
|
+
throw new JWSSignatureVerificationFailed();
|
|
68
|
+
const result = { payload: typeof signingPayload == "string" ? decodeBase64url(signingPayload, "payload", JWSInvalid) : signingPayload };
|
|
69
|
+
return encodedProtected !== void 0 && (result.protectedHeader = parsedProt), header !== void 0 && (result.unprotectedHeader = header), resolvedKey ? [{ ...result, key: k }, b64] : [result, b64];
|
|
70
|
+
}
|
|
71
|
+
async function verifyCompact(jws, shared, key) {
|
|
72
|
+
if (jws instanceof Uint8Array && (jws = decoder.decode(jws)), typeof jws != "string")
|
|
73
|
+
throw new JWSInvalid("Compact JWS must be a string or Uint8Array");
|
|
74
|
+
const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split(".");
|
|
75
|
+
if (length !== 3)
|
|
76
|
+
throw new JWSInvalid("Invalid Compact JWS");
|
|
77
|
+
return verifySignature({ payload, protected: protectedHeader, signature }, shared, key, encodeCompactUnencodedPayload);
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
encodeJsonUnencodedPayload,
|
|
81
|
+
parseProtectedHeader,
|
|
82
|
+
prepareVerify,
|
|
83
|
+
snapshotJws,
|
|
84
|
+
verifyCompact,
|
|
85
|
+
verifySignature
|
|
86
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from "../util/errors.js";
|
|
2
|
+
import { encoder, strictDecoder } from "./buffer_utils.js";
|
|
3
|
+
import { isObject } from "./validate.js";
|
|
4
|
+
const epoch = (date) => Math.floor(date.getTime() / 1e3), multipliers = {
|
|
5
|
+
s: 1,
|
|
6
|
+
m: 60,
|
|
7
|
+
h: 3600,
|
|
8
|
+
d: 86400,
|
|
9
|
+
w: 604800,
|
|
10
|
+
y: 31557600
|
|
11
|
+
}, REGEX = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, checkFailed = "check_failed";
|
|
12
|
+
function invalidDuration() {
|
|
13
|
+
throw new TypeError("Invalid time period format");
|
|
14
|
+
}
|
|
15
|
+
function secs(str) {
|
|
16
|
+
typeof str != "string" && invalidDuration();
|
|
17
|
+
const matched = REGEX.exec(str);
|
|
18
|
+
(!matched || matched[4] && matched[1]) && invalidDuration();
|
|
19
|
+
const value = parseFloat(matched[2]), numericDate2 = Math.round(value * multipliers[matched[3][0].toLowerCase()]);
|
|
20
|
+
return Number.isFinite(numericDate2) || invalidDuration(), matched[1] === "-" || matched[4] === "ago" ? -numericDate2 : numericDate2;
|
|
21
|
+
}
|
|
22
|
+
function validateInput(label, input) {
|
|
23
|
+
if (!Number.isFinite(input))
|
|
24
|
+
throw new TypeError(`Invalid ${label} input`);
|
|
25
|
+
return input;
|
|
26
|
+
}
|
|
27
|
+
function validateStringClaim(claim, value) {
|
|
28
|
+
if (typeof value != "string")
|
|
29
|
+
throw new TypeError(`"${claim}" claim must be a string`);
|
|
30
|
+
}
|
|
31
|
+
function validateAudienceClaim(value) {
|
|
32
|
+
if (typeof value != "string" && (!Array.isArray(value) || Array.from(value).some((member) => typeof member != "string")))
|
|
33
|
+
throw new TypeError('"aud" claim must be a string or an array of strings');
|
|
34
|
+
}
|
|
35
|
+
function numericDate(value, label) {
|
|
36
|
+
return typeof value == "number" ? validateInput(label, value) : value instanceof Date ? validateInput(label, epoch(value)) : epoch(/* @__PURE__ */ new Date()) + secs(value);
|
|
37
|
+
}
|
|
38
|
+
const normalizeTyp = (value) => {
|
|
39
|
+
const normalized = value.toLowerCase();
|
|
40
|
+
return value.includes("/") ? normalized : `application/${normalized}`;
|
|
41
|
+
}, checkAudiencePresence = (audPayload, audOption) => typeof audPayload == "string" ? audOption.includes(audPayload) : Array.isArray(audPayload) ? audOption.some((aud) => audPayload.includes(aud)) : !1;
|
|
42
|
+
function validateNumericDate(payload, claim, required = !1) {
|
|
43
|
+
const value = payload[claim];
|
|
44
|
+
if (!(value === void 0 && !required)) {
|
|
45
|
+
if (typeof value != "number")
|
|
46
|
+
throw new JWTClaimValidationFailed(`"${claim}" claim must be a number`, payload, claim, "invalid");
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function unexpectedClaim(payload, claim) {
|
|
51
|
+
throw new JWTClaimValidationFailed(`unexpected "${claim}" claim value`, payload, claim, checkFailed);
|
|
52
|
+
}
|
|
53
|
+
function validateClaimsSet(protectedHeader, encodedPayload, options = {}) {
|
|
54
|
+
let payload;
|
|
55
|
+
try {
|
|
56
|
+
payload = JSON.parse(strictDecoder.decode(encodedPayload));
|
|
57
|
+
} catch {
|
|
58
|
+
}
|
|
59
|
+
if (!isObject(payload))
|
|
60
|
+
throw new JWTInvalid("JWT Claims Set must be a top-level JSON object");
|
|
61
|
+
const { typ } = options;
|
|
62
|
+
if (typ !== void 0 && (typeof protectedHeader.typ != "string" || normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ)))
|
|
63
|
+
throw new JWTClaimValidationFailed('unexpected "typ" JWT header value', payload, "typ", checkFailed);
|
|
64
|
+
const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options, presenceCheck = [...requiredClaims];
|
|
65
|
+
maxTokenAge !== void 0 && presenceCheck.push("iat"), audience !== void 0 && presenceCheck.push("aud"), subject !== void 0 && presenceCheck.push("sub"), issuer !== void 0 && presenceCheck.push("iss");
|
|
66
|
+
for (const claim of new Set(presenceCheck.reverse()))
|
|
67
|
+
if (!Object.hasOwn(payload, claim))
|
|
68
|
+
throw new JWTClaimValidationFailed(`missing required "${claim}" claim`, payload, claim, "missing");
|
|
69
|
+
issuer !== void 0 && !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss) && unexpectedClaim(payload, "iss"), subject !== void 0 && payload.sub !== subject && unexpectedClaim(payload, "sub"), audience !== void 0 && !checkAudiencePresence(payload.aud, typeof audience == "string" ? [audience] : audience) && unexpectedClaim(payload, "aud");
|
|
70
|
+
const { clockTolerance } = options;
|
|
71
|
+
let tolerance = 0;
|
|
72
|
+
if (typeof clockTolerance == "string")
|
|
73
|
+
tolerance = secs(clockTolerance);
|
|
74
|
+
else if (clockTolerance !== void 0) {
|
|
75
|
+
if (typeof clockTolerance != "number")
|
|
76
|
+
throw new TypeError("Invalid clockTolerance option type");
|
|
77
|
+
tolerance = clockTolerance;
|
|
78
|
+
}
|
|
79
|
+
validateInput("clockTolerance option", tolerance);
|
|
80
|
+
const { currentDate } = options, now = validateInput("currentDate option", epoch(currentDate === void 0 ? /* @__PURE__ */ new Date() : currentDate)), iat = validateNumericDate(payload, "iat", maxTokenAge !== void 0), nbf = validateNumericDate(payload, "nbf");
|
|
81
|
+
if (nbf !== void 0 && nbf > now + tolerance)
|
|
82
|
+
throw new JWTClaimValidationFailed('"nbf" claim timestamp check failed', payload, "nbf", checkFailed);
|
|
83
|
+
const exp = validateNumericDate(payload, "exp");
|
|
84
|
+
if (exp !== void 0 && exp <= now - tolerance)
|
|
85
|
+
throw new JWTExpired('"exp" claim timestamp check failed', payload, "exp", checkFailed);
|
|
86
|
+
if (maxTokenAge !== void 0) {
|
|
87
|
+
const age = now - iat, max = validateInput("maxTokenAge option", typeof maxTokenAge == "number" ? maxTokenAge : secs(maxTokenAge));
|
|
88
|
+
if (age - tolerance > max)
|
|
89
|
+
throw new JWTExpired('"iat" claim timestamp check failed (too far in the past)', payload, "iat", checkFailed);
|
|
90
|
+
if (age < -tolerance)
|
|
91
|
+
throw new JWTClaimValidationFailed('"iat" claim timestamp check failed (it should be in the past)', payload, "iat", checkFailed);
|
|
92
|
+
}
|
|
93
|
+
return payload;
|
|
94
|
+
}
|
|
95
|
+
let producerPayloads;
|
|
96
|
+
function producerPayload(producer) {
|
|
97
|
+
return producerPayloads.get(producer);
|
|
98
|
+
}
|
|
99
|
+
function jwtData(producer) {
|
|
100
|
+
const payload = producerPayload(producer);
|
|
101
|
+
for (const claim of ["iat", "nbf", "exp"]) {
|
|
102
|
+
const value = payload[claim];
|
|
103
|
+
if (typeof value == "number" && !Number.isFinite(value))
|
|
104
|
+
throw new TypeError(`"${claim}" claim must be a finite number`);
|
|
105
|
+
}
|
|
106
|
+
return encoder.encode(JSON.stringify(payload));
|
|
107
|
+
}
|
|
108
|
+
function jwtClaim(producer, claim) {
|
|
109
|
+
return producerPayload(producer)[claim];
|
|
110
|
+
}
|
|
111
|
+
class JWTClaimsBuilder {
|
|
112
|
+
constructor(payload = {}) {
|
|
113
|
+
if (!isObject(payload))
|
|
114
|
+
throw new TypeError("JWT Claims Set MUST be an object");
|
|
115
|
+
(producerPayloads ||= /* @__PURE__ */ new WeakMap()).set(this, structuredClone(payload));
|
|
116
|
+
}
|
|
117
|
+
setIssuer(value) {
|
|
118
|
+
return validateStringClaim("iss", value), producerPayload(this).iss = value, this;
|
|
119
|
+
}
|
|
120
|
+
setSubject(value) {
|
|
121
|
+
return validateStringClaim("sub", value), producerPayload(this).sub = value, this;
|
|
122
|
+
}
|
|
123
|
+
setAudience(value) {
|
|
124
|
+
return validateAudienceClaim(value), producerPayload(this).aud = value, this;
|
|
125
|
+
}
|
|
126
|
+
setJti(value) {
|
|
127
|
+
return validateStringClaim("jti", value), producerPayload(this).jti = value, this;
|
|
128
|
+
}
|
|
129
|
+
setNotBefore(value) {
|
|
130
|
+
return producerPayload(this).nbf = numericDate(value, "setNotBefore"), this;
|
|
131
|
+
}
|
|
132
|
+
setExpirationTime(value) {
|
|
133
|
+
return producerPayload(this).exp = numericDate(value, "setExpirationTime"), this;
|
|
134
|
+
}
|
|
135
|
+
setIssuedAt(value) {
|
|
136
|
+
const payload = producerPayload(this);
|
|
137
|
+
return value === void 0 ? payload.iat = epoch(/* @__PURE__ */ new Date()) : typeof value == "string" ? payload.iat = validateInput("setIssuedAt", epoch(/* @__PURE__ */ new Date()) + secs(value)) : payload.iat = numericDate(value, "setIssuedAt"), this;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export {
|
|
141
|
+
JWTClaimsBuilder,
|
|
142
|
+
jwtClaim,
|
|
143
|
+
jwtData,
|
|
144
|
+
secs,
|
|
145
|
+
validateClaimsSet
|
|
146
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { isObject } from "./validate.js";
|
|
2
|
+
import { decode } from "../util/base64url.js";
|
|
3
|
+
import { JOSENotSupported } from "../util/errors.js";
|
|
4
|
+
const tag = (key) => key[Symbol.toStringTag], jwkMatchesOp = (entry, key, usage) => {
|
|
5
|
+
const { alg } = entry;
|
|
6
|
+
if (key.use !== void 0) {
|
|
7
|
+
const expected = usage === "sign" || usage === "verify" ? "sig" : "enc";
|
|
8
|
+
if (key.use !== expected)
|
|
9
|
+
throw new TypeError(`Invalid key for this operation, its "use" must be "${expected}" when present`);
|
|
10
|
+
}
|
|
11
|
+
if (key.alg !== void 0 && key.alg !== alg)
|
|
12
|
+
throw new TypeError(`Invalid key for this operation, its "alg" must be "${alg}" when present`);
|
|
13
|
+
if (Array.isArray(key.key_ops)) {
|
|
14
|
+
const expectedKeyOp = usage === "encrypt" || usage === "decrypt" ? entry.ops?.[usage === "encrypt" ? 0 : 1] : usage;
|
|
15
|
+
if (expectedKeyOp && !key.key_ops.includes(expectedKeyOp))
|
|
16
|
+
throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${expectedKeyOp}" when present`);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
async function prepareKey(entry, key, usage) {
|
|
20
|
+
const { alg, secret } = entry, privateKey = usage === "decrypt" || usage === "sign";
|
|
21
|
+
if (secret && key instanceof Uint8Array)
|
|
22
|
+
return key;
|
|
23
|
+
let normalized, keyObject;
|
|
24
|
+
if (isObject(key)) {
|
|
25
|
+
if (normalized = normalizeJwk(key), typeof normalized.kty != "string")
|
|
26
|
+
throw invalidKeyType(alg, key, secret);
|
|
27
|
+
if (!(secret ? normalized.kty === "oct" && typeof normalized.k == "string" : normalized.kty !== "oct" && (privateKey ? normalized.kty === "AKP" && typeof normalized.priv == "string" || typeof normalized.d == "string" : normalized.d === void 0 && normalized.priv === void 0)))
|
|
28
|
+
throw new TypeError(secret ? 'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present' : `JSON Web Key for this operation must be a ${privateKey ? "private" : "public"} JWK`);
|
|
29
|
+
if (jwkMatchesOp(entry, normalized, usage), normalized.kty === "oct")
|
|
30
|
+
return decode(normalized.k);
|
|
31
|
+
if (!Object.isFrozen(key)) {
|
|
32
|
+
const { key_ops } = key;
|
|
33
|
+
Array.isArray(key_ops) && Object.freeze(key_ops), Object.freeze(key);
|
|
34
|
+
}
|
|
35
|
+
} else {
|
|
36
|
+
if (!isKeyLike(key))
|
|
37
|
+
throw invalidKeyType(alg, key, secret);
|
|
38
|
+
const expectedType = secret ? "secret" : privateKey ? "private" : "public";
|
|
39
|
+
if (key.type !== expectedType && (secret || ["secret", "public", "private"].includes(key.type)))
|
|
40
|
+
throw new TypeError(`${tag(key)} instances must be of type "${expectedType}" for the ${alg} algorithm`);
|
|
41
|
+
if (isCryptoKey(key))
|
|
42
|
+
return key;
|
|
43
|
+
if (keyObject = key, keyObject.type === "secret")
|
|
44
|
+
return keyObject.export();
|
|
45
|
+
}
|
|
46
|
+
cache ||= /* @__PURE__ */ new WeakMap();
|
|
47
|
+
const cacheKey = key;
|
|
48
|
+
let cached = cache.get(cacheKey);
|
|
49
|
+
if (cached?.[alg])
|
|
50
|
+
return cached[alg];
|
|
51
|
+
if (cached || cache.set(cacheKey, cached = {}), keyObject && typeof keyObject.toCryptoKey == "function") {
|
|
52
|
+
const isPublic = keyObject.type === "public", crv = nist[keyObject.asymmetricKeyDetails?.namedCurve], params = entry.resolve?.({ crv, asymmetricKeyType: keyObject.asymmetricKeyType }) ?? entry.subtle;
|
|
53
|
+
return cached[alg] = keyObject.toCryptoKey(params, isPublic, entry.usages[isPublic ? 0 : 1]);
|
|
54
|
+
}
|
|
55
|
+
return normalized ??= keyObject.export({ format: "jwk" }), normalized.alg = alg, cached[alg] = await jwkToKey(entry, normalized);
|
|
56
|
+
}
|
|
57
|
+
let cache;
|
|
58
|
+
const nist = {
|
|
59
|
+
__proto__: null,
|
|
60
|
+
prime256v1: "P-256",
|
|
61
|
+
secp384r1: "P-384",
|
|
62
|
+
secp521r1: "P-521"
|
|
63
|
+
};
|
|
64
|
+
function assertCryptoKey(key) {
|
|
65
|
+
if (!isCryptoKey(key))
|
|
66
|
+
throw new Error("CryptoKey instance expected");
|
|
67
|
+
}
|
|
68
|
+
const isCryptoKey = (key) => {
|
|
69
|
+
if (key?.[Symbol.toStringTag] === "CryptoKey")
|
|
70
|
+
return !0;
|
|
71
|
+
try {
|
|
72
|
+
return key instanceof CryptoKey;
|
|
73
|
+
} catch {
|
|
74
|
+
return !1;
|
|
75
|
+
}
|
|
76
|
+
}, isKeyObject = (key) => key?.[Symbol.toStringTag] === "KeyObject", isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);
|
|
77
|
+
function message(msg, actual, ...types) {
|
|
78
|
+
if (types.length > 2) {
|
|
79
|
+
const last = types.pop();
|
|
80
|
+
msg += `one of type ${types.join(", ")}, or ${last}.`;
|
|
81
|
+
} else types.length === 2 ? msg += `one of type ${types[0]} or ${types[1]}.` : msg += `of type ${types[0]}.`;
|
|
82
|
+
return actual == null ? msg += ` Received ${actual}` : typeof actual == "function" && actual.name ? msg += ` Received function ${actual.name}` : typeof actual == "object" && actual != null && actual.constructor?.name && (msg += ` Received an instance of ${actual.constructor.name}`), msg;
|
|
83
|
+
}
|
|
84
|
+
const invalidKeyInput = (actual, ...types) => message("Key must be ", actual, ...types);
|
|
85
|
+
function invalidKeyType(alg, actual, secret) {
|
|
86
|
+
const types = ["CryptoKey", "KeyObject", "JSON Web Key"];
|
|
87
|
+
return secret && types.push("Uint8Array"), new TypeError(message(`Key for the ${alg} algorithm must be `, actual, ...types));
|
|
88
|
+
}
|
|
89
|
+
const unusable = (name, prop = "algorithm.name") => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
|
|
90
|
+
function checkUsage(key, usage) {
|
|
91
|
+
if (usage && !key.usages.includes(usage))
|
|
92
|
+
throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);
|
|
93
|
+
}
|
|
94
|
+
function checkModulusLength(alg, key) {
|
|
95
|
+
const { modulusLength } = key.algorithm;
|
|
96
|
+
if (typeof modulusLength != "number" || modulusLength < 2048)
|
|
97
|
+
throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
|
|
98
|
+
}
|
|
99
|
+
function checkCryptoKey(key, expected, usage) {
|
|
100
|
+
const algorithm = key.algorithm;
|
|
101
|
+
if (algorithm.name !== expected.name)
|
|
102
|
+
throw unusable(expected.name);
|
|
103
|
+
if (expected.hash && algorithm.hash?.name !== expected.hash)
|
|
104
|
+
throw unusable(expected.hash, "algorithm.hash");
|
|
105
|
+
if (expected.namedCurve && algorithm.namedCurve !== expected.namedCurve)
|
|
106
|
+
throw unusable(expected.namedCurve, "algorithm.namedCurve");
|
|
107
|
+
if (expected.length !== void 0 && algorithm.length !== expected.length)
|
|
108
|
+
throw unusable(expected.length, "algorithm.length");
|
|
109
|
+
checkUsage(key, usage);
|
|
110
|
+
}
|
|
111
|
+
function snapshotJwk(jwk) {
|
|
112
|
+
return { __proto__: null, ...jwk };
|
|
113
|
+
}
|
|
114
|
+
function normalizeJwk(jwk) {
|
|
115
|
+
const normalized = snapshotJwk(jwk);
|
|
116
|
+
if (normalized.ext !== void 0 && typeof normalized.ext != "boolean")
|
|
117
|
+
throw new TypeError('"ext" (Extractable) Parameter must be a boolean');
|
|
118
|
+
if (normalized.key_ops !== void 0) {
|
|
119
|
+
const value = normalized.key_ops, keyOps = Array.isArray(value) ? [...value] : void 0;
|
|
120
|
+
if (!keyOps || keyOps.some((operation) => typeof operation != "string") || new Set(keyOps).size !== keyOps.length)
|
|
121
|
+
throw new TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');
|
|
122
|
+
normalized.key_ops = keyOps;
|
|
123
|
+
}
|
|
124
|
+
return normalized;
|
|
125
|
+
}
|
|
126
|
+
function validateExtractableOption(extractable) {
|
|
127
|
+
if (extractable !== void 0 && typeof extractable != "boolean")
|
|
128
|
+
throw new TypeError('"extractable" option must be a boolean');
|
|
129
|
+
return extractable;
|
|
130
|
+
}
|
|
131
|
+
async function jwkToKey(entry, jwk, extractable) {
|
|
132
|
+
if (!entry.kty.includes(jwk.kty))
|
|
133
|
+
throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
134
|
+
const algorithm = entry.resolve?.({ kty: jwk.kty, crv: jwk.crv }) ?? entry.subtle, isPrivate = !!(jwk.d || jwk.priv), keyData = { ...jwk, ext: extractable ?? jwk.ext };
|
|
135
|
+
return keyData.kty !== "AKP" && delete keyData.alg, delete keyData.use, crypto.subtle.importKey("jwk", keyData, algorithm, keyData.ext ?? !isPrivate, jwk.key_ops ?? entry.usages[isPrivate ? 1 : 0]);
|
|
136
|
+
}
|
|
137
|
+
async function rawKey(key, expected, usage, extractable = !1) {
|
|
138
|
+
return key instanceof Uint8Array && (key = await crypto.subtle.importKey("raw", key, expected, extractable, [usage])), checkCryptoKey(key, expected, usage), key;
|
|
139
|
+
}
|
|
140
|
+
export {
|
|
141
|
+
assertCryptoKey,
|
|
142
|
+
checkCryptoKey,
|
|
143
|
+
checkModulusLength,
|
|
144
|
+
checkUsage,
|
|
145
|
+
invalidKeyInput,
|
|
146
|
+
isCryptoKey,
|
|
147
|
+
isKeyLike,
|
|
148
|
+
isKeyObject,
|
|
149
|
+
jwkToKey,
|
|
150
|
+
normalizeJwk,
|
|
151
|
+
prepareKey,
|
|
152
|
+
rawKey,
|
|
153
|
+
snapshotJwk,
|
|
154
|
+
validateExtractableOption
|
|
155
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { JOSENotSupported } from "../util/errors.js";
|
|
2
|
+
import { JWS } from "./jws_algorithms.js";
|
|
3
|
+
import { JWE } from "./jwe_algorithms.js";
|
|
4
|
+
const algArgument = '"alg" (Algorithm)';
|
|
5
|
+
function unsupportedAlg(source = 'JWK "alg" (Algorithm) Parameter') {
|
|
6
|
+
throw new JOSENotSupported(`Invalid or unsupported ${source} value`);
|
|
7
|
+
}
|
|
8
|
+
function keyAlgorithm(alg, source) {
|
|
9
|
+
return (typeof alg == "string" ? JWS[alg] ?? JWE[alg] : void 0) ?? unsupportedAlg(source);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
algArgument,
|
|
13
|
+
keyAlgorithm,
|
|
14
|
+
unsupportedAlg
|
|
15
|
+
};
|