@lindorm/aegis 0.8.1 → 0.10.0
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/README.md +84 -5
- package/dist/classes/Aegis.d.ts +20 -5
- package/dist/classes/Aegis.d.ts.map +1 -1
- package/dist/classes/Aegis.js +259 -45
- package/dist/classes/Aegis.js.map +1 -1
- package/dist/classes/CoseKit.d.ts +31 -0
- package/dist/classes/CoseKit.d.ts.map +1 -0
- package/dist/classes/CoseKit.js +64 -0
- package/dist/classes/CoseKit.js.map +1 -0
- package/dist/classes/CweKit.d.ts +24 -0
- package/dist/classes/CweKit.d.ts.map +1 -0
- package/dist/classes/CweKit.js +73 -0
- package/dist/classes/CweKit.js.map +1 -0
- package/dist/classes/CwmKit.d.ts +22 -0
- package/dist/classes/CwmKit.d.ts.map +1 -0
- package/dist/classes/CwmKit.js +54 -0
- package/dist/classes/CwmKit.js.map +1 -0
- package/dist/classes/CwsKit.d.ts +24 -0
- package/dist/classes/CwsKit.d.ts.map +1 -0
- package/dist/classes/CwsKit.js +60 -0
- package/dist/classes/CwsKit.js.map +1 -0
- package/dist/classes/CwtKit.d.ts +31 -0
- package/dist/classes/CwtKit.d.ts.map +1 -0
- package/dist/classes/CwtKit.js +65 -0
- package/dist/classes/CwtKit.js.map +1 -0
- package/dist/classes/JoseKit.d.ts +32 -0
- package/dist/classes/JoseKit.d.ts.map +1 -0
- package/dist/classes/JoseKit.js +66 -0
- package/dist/classes/JoseKit.js.map +1 -0
- package/dist/classes/JweKit.d.ts.map +1 -1
- package/dist/classes/JweKit.js +31 -3
- package/dist/classes/JweKit.js.map +1 -1
- package/dist/classes/JwsKit.d.ts.map +1 -1
- package/dist/classes/JwsKit.js +19 -3
- package/dist/classes/JwsKit.js.map +1 -1
- package/dist/classes/JwtKit.d.ts +4 -1
- package/dist/classes/JwtKit.d.ts.map +1 -1
- package/dist/classes/JwtKit.js +100 -20
- package/dist/classes/JwtKit.js.map +1 -1
- package/dist/classes/SignatureKit.d.ts.map +1 -1
- package/dist/classes/SignatureKit.js +5 -1
- package/dist/classes/SignatureKit.js.map +1 -1
- package/dist/constants/token-type.d.ts +1 -1
- package/dist/constants/token-type.d.ts.map +1 -1
- package/dist/constants/token-type.js +2 -0
- package/dist/constants/token-type.js.map +1 -1
- package/dist/errors/AegisError.d.ts +1 -0
- package/dist/errors/AegisError.d.ts.map +1 -1
- package/dist/errors/AegisError.js +1 -0
- package/dist/errors/AegisError.js.map +1 -1
- package/dist/errors/JweError.d.ts +1 -0
- package/dist/errors/JweError.d.ts.map +1 -1
- package/dist/errors/JweError.js +1 -0
- package/dist/errors/JweError.js.map +1 -1
- package/dist/errors/JwsError.d.ts +1 -0
- package/dist/errors/JwsError.d.ts.map +1 -1
- package/dist/errors/JwsError.js +1 -0
- package/dist/errors/JwsError.js.map +1 -1
- package/dist/errors/JwtError.d.ts +1 -0
- package/dist/errors/JwtError.d.ts.map +1 -1
- package/dist/errors/JwtError.js +1 -0
- package/dist/errors/JwtError.js.map +1 -1
- package/dist/interfaces/Aegis.d.ts +6 -1
- package/dist/interfaces/Aegis.d.ts.map +1 -1
- package/dist/internal/claims/events.d.ts +5 -0
- package/dist/internal/claims/events.d.ts.map +1 -0
- package/dist/internal/claims/events.js +3 -0
- package/dist/internal/claims/events.js.map +1 -0
- package/dist/internal/claims/registry.d.ts +13 -0
- package/dist/internal/claims/registry.d.ts.map +1 -0
- package/dist/internal/claims/registry.js +58 -0
- package/dist/internal/claims/registry.js.map +1 -0
- package/dist/internal/claims/sub-id.d.ts +7 -0
- package/dist/internal/claims/sub-id.d.ts.map +1 -0
- package/dist/internal/claims/sub-id.js +11 -0
- package/dist/internal/claims/sub-id.js.map +1 -0
- package/dist/internal/cose/act-claim.d.ts +4 -0
- package/dist/internal/cose/act-claim.d.ts.map +1 -0
- package/dist/internal/cose/act-claim.js +8 -0
- package/dist/internal/cose/act-claim.js.map +1 -0
- package/dist/internal/cose/alg-labels.d.ts +4 -0
- package/dist/internal/cose/alg-labels.d.ts.map +1 -0
- package/dist/internal/cose/alg-labels.js +42 -0
- package/dist/internal/cose/alg-labels.js.map +1 -0
- package/dist/internal/cose/cbor.d.ts +11 -0
- package/dist/internal/cose/cbor.d.ts.map +1 -0
- package/dist/internal/cose/cbor.js +37 -0
- package/dist/internal/cose/cbor.js.map +1 -0
- package/dist/internal/cose/compact-map.d.ts +11 -0
- package/dist/internal/cose/compact-map.d.ts.map +1 -0
- package/dist/internal/cose/compact-map.js +43 -0
- package/dist/internal/cose/compact-map.js.map +1 -0
- package/dist/internal/cose/cose-key-thumbprint.d.ts +5 -0
- package/dist/internal/cose/cose-key-thumbprint.d.ts.map +1 -0
- package/dist/internal/cose/cose-key-thumbprint.js +60 -0
- package/dist/internal/cose/cose-key-thumbprint.js.map +1 -0
- package/dist/internal/cose/cose-key.d.ts +8 -0
- package/dist/internal/cose/cose-key.d.ts.map +1 -0
- package/dist/internal/cose/cose-key.js +98 -0
- package/dist/internal/cose/cose-key.js.map +1 -0
- package/dist/internal/cose/cose-typ.d.ts +2 -0
- package/dist/internal/cose/cose-typ.d.ts.map +1 -0
- package/dist/internal/cose/cose-typ.js +8 -0
- package/dist/internal/cose/cose-typ.js.map +1 -0
- package/dist/internal/cose/cwt-claims.d.ts +7 -0
- package/dist/internal/cose/cwt-claims.d.ts.map +1 -0
- package/dist/internal/cose/cwt-claims.js +94 -0
- package/dist/internal/cose/cwt-claims.js.map +1 -0
- package/dist/internal/cose/enc-labels.d.ts +5 -0
- package/dist/internal/cose/enc-labels.d.ts.map +1 -0
- package/dist/internal/cose/enc-labels.js +47 -0
- package/dist/internal/cose/enc-labels.js.map +1 -0
- package/dist/internal/cose/structures.d.ts +20 -0
- package/dist/internal/cose/structures.d.ts.map +1 -0
- package/dist/internal/cose/structures.js +22 -0
- package/dist/internal/cose/structures.js.map +1 -0
- package/dist/internal/cose/sub-id-claim.d.ts +4 -0
- package/dist/internal/cose/sub-id-claim.d.ts.map +1 -0
- package/dist/internal/cose/sub-id-claim.js +18 -0
- package/dist/internal/cose/sub-id-claim.js.map +1 -0
- package/dist/internal/profiles/definitions/access-token.d.ts +3 -0
- package/dist/internal/profiles/definitions/access-token.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/access-token.js +31 -0
- package/dist/internal/profiles/definitions/access-token.js.map +1 -0
- package/dist/internal/profiles/definitions/client-assertion.d.ts +3 -0
- package/dist/internal/profiles/definitions/client-assertion.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/client-assertion.js +18 -0
- package/dist/internal/profiles/definitions/client-assertion.js.map +1 -0
- package/dist/internal/profiles/definitions/default.d.ts +3 -0
- package/dist/internal/profiles/definitions/default.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/default.js +14 -0
- package/dist/internal/profiles/definitions/default.js.map +1 -0
- package/dist/internal/profiles/definitions/delegation.d.ts +3 -0
- package/dist/internal/profiles/definitions/delegation.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/delegation.js +19 -0
- package/dist/internal/profiles/definitions/delegation.js.map +1 -0
- package/dist/internal/profiles/definitions/erasure-token.d.ts +3 -0
- package/dist/internal/profiles/definitions/erasure-token.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/erasure-token.js +28 -0
- package/dist/internal/profiles/definitions/erasure-token.js.map +1 -0
- package/dist/internal/profiles/definitions/id-token.d.ts +3 -0
- package/dist/internal/profiles/definitions/id-token.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/id-token.js +26 -0
- package/dist/internal/profiles/definitions/id-token.js.map +1 -0
- package/dist/internal/profiles/definitions/introspection.d.ts +3 -0
- package/dist/internal/profiles/definitions/introspection.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/introspection.js +18 -0
- package/dist/internal/profiles/definitions/introspection.js.map +1 -0
- package/dist/internal/profiles/definitions/jarm.d.ts +3 -0
- package/dist/internal/profiles/definitions/jarm.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/jarm.js +19 -0
- package/dist/internal/profiles/definitions/jarm.js.map +1 -0
- package/dist/internal/profiles/definitions/logout-token.d.ts +3 -0
- package/dist/internal/profiles/definitions/logout-token.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/logout-token.js +20 -0
- package/dist/internal/profiles/definitions/logout-token.js.map +1 -0
- package/dist/internal/profiles/definitions/security-event.d.ts +3 -0
- package/dist/internal/profiles/definitions/security-event.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/security-event.js +20 -0
- package/dist/internal/profiles/definitions/security-event.js.map +1 -0
- package/dist/internal/profiles/definitions/userinfo.d.ts +3 -0
- package/dist/internal/profiles/definitions/userinfo.d.ts.map +1 -0
- package/dist/internal/profiles/definitions/userinfo.js +18 -0
- package/dist/internal/profiles/definitions/userinfo.js.map +1 -0
- package/dist/internal/profiles/registry.d.ts +4 -0
- package/dist/internal/profiles/registry.d.ts.map +1 -0
- package/dist/internal/profiles/registry.js +41 -0
- package/dist/internal/profiles/registry.js.map +1 -0
- package/dist/internal/utils/assemble-common-claims.d.ts +12 -0
- package/dist/internal/utils/assemble-common-claims.d.ts.map +1 -0
- package/dist/internal/utils/assemble-common-claims.js +66 -0
- package/dist/internal/utils/assemble-common-claims.js.map +1 -0
- package/dist/internal/utils/build-profile-claims.d.ts +14 -0
- package/dist/internal/utils/build-profile-claims.d.ts.map +1 -0
- package/dist/internal/utils/build-profile-claims.js +75 -0
- package/dist/internal/utils/build-profile-claims.js.map +1 -0
- package/dist/internal/utils/compute-jwk-thumbprint.js +8 -1
- package/dist/internal/utils/compute-jwk-thumbprint.js.map +1 -1
- package/dist/internal/utils/compute-typ-header.d.ts.map +1 -1
- package/dist/internal/utils/compute-typ-header.js +20 -5
- package/dist/internal/utils/compute-typ-header.js.map +1 -1
- package/dist/internal/utils/create-hash.d.ts.map +1 -1
- package/dist/internal/utils/create-hash.js +7 -7
- package/dist/internal/utils/create-hash.js.map +1 -1
- package/dist/internal/utils/enforce-verify-floor.d.ts +12 -0
- package/dist/internal/utils/enforce-verify-floor.d.ts.map +1 -0
- package/dist/internal/utils/enforce-verify-floor.js +43 -0
- package/dist/internal/utils/enforce-verify-floor.js.map +1 -0
- package/dist/internal/utils/extract-claims.d.ts +2 -1
- package/dist/internal/utils/extract-claims.d.ts.map +1 -1
- package/dist/internal/utils/extract-claims.js +25 -4
- package/dist/internal/utils/extract-claims.js.map +1 -1
- package/dist/internal/utils/jose-header.d.ts.map +1 -1
- package/dist/internal/utils/jose-header.js +38 -7
- package/dist/internal/utils/jose-header.js.map +1 -1
- package/dist/internal/utils/jwt-payload.d.ts +8 -6
- package/dist/internal/utils/jwt-payload.d.ts.map +1 -1
- package/dist/internal/utils/jwt-payload.js +32 -96
- package/dist/internal/utils/jwt-payload.js.map +1 -1
- package/dist/internal/utils/jwt-validate.d.ts.map +1 -1
- package/dist/internal/utils/jwt-validate.js +7 -1
- package/dist/internal/utils/jwt-validate.js.map +1 -1
- package/dist/internal/utils/jwt-verify.d.ts.map +1 -1
- package/dist/internal/utils/jwt-verify.js +17 -4
- package/dist/internal/utils/jwt-verify.js.map +1 -1
- package/dist/internal/utils/map-content-to-claims.d.ts +8 -0
- package/dist/internal/utils/map-content-to-claims.d.ts.map +1 -0
- package/dist/internal/utils/map-content-to-claims.js +98 -0
- package/dist/internal/utils/map-content-to-claims.js.map +1 -0
- package/dist/internal/utils/parse-introspection.d.ts.map +1 -1
- package/dist/internal/utils/parse-introspection.js +5 -1
- package/dist/internal/utils/parse-introspection.js.map +1 -1
- package/dist/internal/utils/parse-userinfo.d.ts.map +1 -1
- package/dist/internal/utils/parse-userinfo.js +5 -1
- package/dist/internal/utils/parse-userinfo.js.map +1 -1
- package/dist/internal/utils/resolve-cert-binding.d.ts.map +1 -1
- package/dist/internal/utils/resolve-cert-binding.js +3 -0
- package/dist/internal/utils/resolve-cert-binding.js.map +1 -1
- package/dist/internal/utils/rules/act-chain-shape.d.ts +4 -0
- package/dist/internal/utils/rules/act-chain-shape.d.ts.map +1 -0
- package/dist/internal/utils/rules/act-chain-shape.js +52 -0
- package/dist/internal/utils/rules/act-chain-shape.js.map +1 -0
- package/dist/internal/utils/rules/alg-permitted.d.ts +6 -0
- package/dist/internal/utils/rules/alg-permitted.d.ts.map +1 -0
- package/dist/internal/utils/rules/alg-permitted.js +35 -0
- package/dist/internal/utils/rules/alg-permitted.js.map +1 -0
- package/dist/internal/utils/rules/at-least-one-of.d.ts +4 -0
- package/dist/internal/utils/rules/at-least-one-of.d.ts.map +1 -0
- package/dist/internal/utils/rules/at-least-one-of.js +13 -0
- package/dist/internal/utils/rules/at-least-one-of.js.map +1 -0
- package/dist/internal/utils/rules/aud-single-resource.d.ts +4 -0
- package/dist/internal/utils/rules/aud-single-resource.d.ts.map +1 -0
- package/dist/internal/utils/rules/aud-single-resource.js +18 -0
- package/dist/internal/utils/rules/aud-single-resource.js.map +1 -0
- package/dist/internal/utils/rules/cnf-shape.d.ts +4 -0
- package/dist/internal/utils/rules/cnf-shape.d.ts.map +1 -0
- package/dist/internal/utils/rules/cnf-shape.js +55 -0
- package/dist/internal/utils/rules/cnf-shape.js.map +1 -0
- package/dist/internal/utils/rules/cross-field.d.ts +4 -0
- package/dist/internal/utils/rules/cross-field.d.ts.map +1 -0
- package/dist/internal/utils/rules/cross-field.js +21 -0
- package/dist/internal/utils/rules/cross-field.js.map +1 -0
- package/dist/internal/utils/rules/events-shape.d.ts +4 -0
- package/dist/internal/utils/rules/events-shape.d.ts.map +1 -0
- package/dist/internal/utils/rules/events-shape.js +33 -0
- package/dist/internal/utils/rules/events-shape.js.map +1 -0
- package/dist/internal/utils/rules/every-element-has-key.d.ts +4 -0
- package/dist/internal/utils/rules/every-element-has-key.d.ts.map +1 -0
- package/dist/internal/utils/rules/every-element-has-key.js +20 -0
- package/dist/internal/utils/rules/every-element-has-key.js.map +1 -0
- package/dist/internal/utils/rules/forbid-present.d.ts +4 -0
- package/dist/internal/utils/rules/forbid-present.d.ts.map +1 -0
- package/dist/internal/utils/rules/forbid-present.js +10 -0
- package/dist/internal/utils/rules/forbid-present.js.map +1 -0
- package/dist/internal/utils/rules/index.d.ts +14 -0
- package/dist/internal/utils/rules/index.d.ts.map +1 -0
- package/dist/internal/utils/rules/index.js +14 -0
- package/dist/internal/utils/rules/index.js.map +1 -0
- package/dist/internal/utils/rules/iss-uri.d.ts +4 -0
- package/dist/internal/utils/rules/iss-uri.d.ts.map +1 -0
- package/dist/internal/utils/rules/iss-uri.js +11 -0
- package/dist/internal/utils/rules/iss-uri.js.map +1 -0
- package/dist/internal/utils/rules/require-present.d.ts +4 -0
- package/dist/internal/utils/rules/require-present.d.ts.map +1 -0
- package/dist/internal/utils/rules/require-present.js +10 -0
- package/dist/internal/utils/rules/require-present.js.map +1 -0
- package/dist/internal/utils/rules/required-when.d.ts +8 -0
- package/dist/internal/utils/rules/required-when.d.ts.map +1 -0
- package/dist/internal/utils/rules/required-when.js +13 -0
- package/dist/internal/utils/rules/required-when.js.map +1 -0
- package/dist/internal/utils/rules/sub-id-shape.d.ts +4 -0
- package/dist/internal/utils/rules/sub-id-shape.d.ts.map +1 -0
- package/dist/internal/utils/rules/sub-id-shape.js +26 -0
- package/dist/internal/utils/rules/sub-id-shape.js.map +1 -0
- package/dist/internal/utils/select-encoder.d.ts +6 -0
- package/dist/internal/utils/select-encoder.d.ts.map +1 -0
- package/dist/internal/utils/select-encoder.js +4 -0
- package/dist/internal/utils/select-encoder.js.map +1 -0
- package/dist/internal/utils/validate-actor.d.ts +8 -1
- package/dist/internal/utils/validate-actor.d.ts.map +1 -1
- package/dist/internal/utils/validate-actor.js +9 -7
- package/dist/internal/utils/validate-actor.js.map +1 -1
- package/dist/internal/utils/validate-profile-claims.d.ts +8 -0
- package/dist/internal/utils/validate-profile-claims.d.ts.map +1 -0
- package/dist/internal/utils/validate-profile-claims.js +45 -0
- package/dist/internal/utils/validate-profile-claims.js.map +1 -0
- package/dist/internal/utils/validate.d.ts.map +1 -1
- package/dist/internal/utils/validate.js +8 -1
- package/dist/internal/utils/validate.js.map +1 -1
- package/dist/internal/utils/verify-cert-binding.d.ts.map +1 -1
- package/dist/internal/utils/verify-cert-binding.js +9 -1
- package/dist/internal/utils/verify-cert-binding.js.map +1 -1
- package/dist/internal/utils/verify-dpop-proof.d.ts.map +1 -1
- package/dist/internal/utils/verify-dpop-proof.js +41 -7
- package/dist/internal/utils/verify-dpop-proof.js.map +1 -1
- package/dist/types/claims/aegis-introspection.d.ts +2 -1
- package/dist/types/claims/aegis-introspection.d.ts.map +1 -1
- package/dist/types/claims/index.d.ts +2 -0
- package/dist/types/claims/index.d.ts.map +1 -1
- package/dist/types/claims/index.js +2 -0
- package/dist/types/claims/index.js.map +1 -1
- package/dist/types/claims/jwt/index.d.ts +2 -0
- package/dist/types/claims/jwt/index.d.ts.map +1 -1
- package/dist/types/claims/jwt/index.js +2 -0
- package/dist/types/claims/jwt/index.js.map +1 -1
- package/dist/types/claims/jwt/jwt-claims.d.ts +3 -1
- package/dist/types/claims/jwt/jwt-claims.d.ts.map +1 -1
- package/dist/types/claims/jwt/lindorm-claims-wire.d.ts +4 -2
- package/dist/types/claims/jwt/lindorm-claims-wire.d.ts.map +1 -1
- package/dist/types/claims/jwt/oidc-claims-wire.d.ts +2 -0
- package/dist/types/claims/jwt/oidc-claims-wire.d.ts.map +1 -1
- package/dist/types/claims/jwt/rar-claims-wire.d.ts +5 -0
- package/dist/types/claims/jwt/rar-claims-wire.d.ts.map +1 -0
- package/dist/types/claims/jwt/rar-claims-wire.js +2 -0
- package/dist/types/claims/jwt/rar-claims-wire.js.map +1 -0
- package/dist/types/claims/jwt/set-claims-wire.d.ts +9 -0
- package/dist/types/claims/jwt/set-claims-wire.d.ts.map +1 -0
- package/dist/types/claims/jwt/set-claims-wire.js +2 -0
- package/dist/types/claims/jwt/set-claims-wire.js.map +1 -0
- package/dist/types/claims/lindorm-claims.d.ts +4 -2
- package/dist/types/claims/lindorm-claims.d.ts.map +1 -1
- package/dist/types/claims/oidc-claims.d.ts +2 -0
- package/dist/types/claims/oidc-claims.d.ts.map +1 -1
- package/dist/types/claims/rar-claims.d.ts +5 -0
- package/dist/types/claims/rar-claims.d.ts.map +1 -0
- package/dist/types/claims/rar-claims.js +2 -0
- package/dist/types/claims/rar-claims.js.map +1 -0
- package/dist/types/claims/set-claims.d.ts +8 -0
- package/dist/types/claims/set-claims.d.ts.map +1 -0
- package/dist/types/claims/set-claims.js +2 -0
- package/dist/types/claims/set-claims.js.map +1 -0
- package/dist/types/jwt/index.d.ts +1 -0
- package/dist/types/jwt/index.d.ts.map +1 -1
- package/dist/types/jwt/index.js +1 -0
- package/dist/types/jwt/index.js.map +1 -1
- package/dist/types/jwt/jwt-claim-matchers.d.ts +2 -1
- package/dist/types/jwt/jwt-claim-matchers.d.ts.map +1 -1
- package/dist/types/jwt/jwt-parse.d.ts +2 -2
- package/dist/types/jwt/jwt-parse.d.ts.map +1 -1
- package/dist/types/jwt/jwt-sign.d.ts +8 -6
- package/dist/types/jwt/jwt-sign.d.ts.map +1 -1
- package/dist/types/jwt/profile.d.ts +99 -0
- package/dist/types/jwt/profile.d.ts.map +1 -0
- package/dist/types/jwt/profile.js +2 -0
- package/dist/types/jwt/profile.js.map +1 -0
- package/dist/types/level-of-assurance.d.ts +4 -2
- package/dist/types/level-of-assurance.d.ts.map +1 -1
- package/package.json +19 -18
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { JweKit } from "./JweKit.js";
|
|
2
|
+
import { JwsKit } from "./JwsKit.js";
|
|
3
|
+
import { JwtKit } from "./JwtKit.js";
|
|
4
|
+
export class JoseKit {
|
|
5
|
+
certBindingMode;
|
|
6
|
+
clockTolerance;
|
|
7
|
+
dpopMaxSkew;
|
|
8
|
+
encryption;
|
|
9
|
+
issuer;
|
|
10
|
+
logger;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.certBindingMode = options.certBindingMode;
|
|
13
|
+
this.clockTolerance = options.clockTolerance;
|
|
14
|
+
this.dpopMaxSkew = options.dpopMaxSkew;
|
|
15
|
+
this.encryption = options.encryption;
|
|
16
|
+
this.issuer = options.issuer;
|
|
17
|
+
this.logger = options.logger;
|
|
18
|
+
}
|
|
19
|
+
signJws(kryptos, data, options = {}) {
|
|
20
|
+
return this.jws(kryptos).sign(data, options);
|
|
21
|
+
}
|
|
22
|
+
verifyJws(kryptos, jws) {
|
|
23
|
+
return this.jws(kryptos).verify(jws);
|
|
24
|
+
}
|
|
25
|
+
encryptJwe(kryptos, data, options = {}) {
|
|
26
|
+
return this.jwe(kryptos).encrypt(data, options);
|
|
27
|
+
}
|
|
28
|
+
decryptJwe(kryptos, jwe) {
|
|
29
|
+
return this.jwe(kryptos).decrypt(jwe);
|
|
30
|
+
}
|
|
31
|
+
signJwt(kryptos, content, options = {}) {
|
|
32
|
+
return this.jwt(kryptos).sign(content, options);
|
|
33
|
+
}
|
|
34
|
+
verifyJwt(kryptos, jwt, options = {}) {
|
|
35
|
+
return this.jwt(kryptos).verify(jwt, options);
|
|
36
|
+
}
|
|
37
|
+
signClaims(kryptos, claims, content, options = {}) {
|
|
38
|
+
return this.jwt(kryptos).signClaims(claims, content, options);
|
|
39
|
+
}
|
|
40
|
+
jws(kryptos) {
|
|
41
|
+
return new JwsKit({
|
|
42
|
+
certBindingMode: this.certBindingMode,
|
|
43
|
+
kryptos,
|
|
44
|
+
logger: this.logger,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
jwe(kryptos) {
|
|
48
|
+
return new JweKit({
|
|
49
|
+
certBindingMode: this.certBindingMode,
|
|
50
|
+
encryption: this.encryption,
|
|
51
|
+
kryptos,
|
|
52
|
+
logger: this.logger,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
jwt(kryptos) {
|
|
56
|
+
return new JwtKit({
|
|
57
|
+
certBindingMode: this.certBindingMode,
|
|
58
|
+
clockTolerance: this.clockTolerance,
|
|
59
|
+
dpopMaxSkew: this.dpopMaxSkew,
|
|
60
|
+
issuer: this.issuer,
|
|
61
|
+
kryptos,
|
|
62
|
+
logger: this.logger,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=JoseKit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JoseKit.js","sourceRoot":"","sources":["../../src/classes/JoseKit.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkBrC,MAAM,OAAO,OAAO;IACD,eAAe,CAAkB;IACjC,cAAc,CAAS;IACvB,WAAW,CAAqB;IAChC,UAAU,CAAoB;IAC9B,MAAM,CAAqB;IAC3B,MAAM,CAAU;IAEjC,YAAmB,OAAuB;QACxC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEM,OAAO,CACZ,OAAiB,EACjB,IAAO,EACP,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAuB,OAAiB,EAAE,GAAW;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAEM,UAAU,CACf,OAAiB,EACjB,IAAY,EACZ,UAA6B,EAAE;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEM,UAAU,CAAC,OAAiB,EAAE,GAAW;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,OAAO,CACZ,OAAiB,EACjB,OAA0B,EAC1B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEM,SAAS,CACd,OAAiB,EACjB,GAAW,EACX,UAA4B,EAAE;QAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEM,UAAU,CACf,OAAiB,EACjB,MAAY,EACZ,OAA0B,EAC1B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAIO,GAAG,CAAC,OAAiB;QAC3B,OAAO,IAAI,MAAM,CAAC;YAChB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAEO,GAAG,CAAC,OAAiB;QAC3B,OAAO,IAAI,MAAM,CAAC;YAChB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAEO,GAAG,CAAC,OAAiB;QAC3B,OAAO,IAAI,MAAM,CAAC;YAChB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JweKit.d.ts","sourceRoot":"","sources":["../../src/classes/JweKit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAa3B,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAEd,OAAO,EAAE,aAAa;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY;
|
|
1
|
+
{"version":3,"file":"JweKit.d.ts","sourceRoot":"","sources":["../../src/classes/JweKit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAa3B,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAEd,OAAO,EAAE,aAAa;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY;IAoEpE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;WA0I7B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAc3B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAwB7C,OAAO,CAAC,WAAW;CAuBpB"}
|
package/dist/classes/JweKit.js
CHANGED
|
@@ -49,7 +49,11 @@ export class JweKit {
|
|
|
49
49
|
const aad = Buffer.from(header, "ascii");
|
|
50
50
|
const { authTag, content, initialisationVector } = prepared.encrypt(data, { aad });
|
|
51
51
|
if (!authTag) {
|
|
52
|
-
throw new JweError("Missing auth tag"
|
|
52
|
+
throw new JweError("Missing auth tag", {
|
|
53
|
+
code: "jwe_missing_auth_tag",
|
|
54
|
+
title: "JWE Missing Auth Tag",
|
|
55
|
+
details: "AES-GCM content encryption did not return an authentication tag, so the JWE cannot be assembled.",
|
|
56
|
+
});
|
|
53
57
|
}
|
|
54
58
|
const token = [
|
|
55
59
|
header,
|
|
@@ -68,36 +72,56 @@ export class JweKit {
|
|
|
68
72
|
const typ = decoded.header.typ;
|
|
69
73
|
if (typ !== "JWE" && !(typeof typ === "string" && typ.endsWith("+jwe"))) {
|
|
70
74
|
throw new JweError("Invalid token", {
|
|
75
|
+
code: "jwe_invalid_typ",
|
|
71
76
|
data: { typ },
|
|
77
|
+
title: "JWE Invalid Typ",
|
|
78
|
+
details: "Header typ must be JWE or a <type>+jwe media type to decrypt as a JWE.",
|
|
72
79
|
});
|
|
73
80
|
}
|
|
74
81
|
if (decoded.header.zip !== undefined) {
|
|
75
82
|
throw new JweError("Compressed JWE payloads are not supported", {
|
|
83
|
+
code: "jwe_compression_unsupported",
|
|
76
84
|
data: { zip: decoded.header.zip },
|
|
85
|
+
title: "JWE Compression Unsupported",
|
|
86
|
+
details: "The header carries a zip parameter, but Aegis rejects compressed JWE payloads to avoid compression-oracle attacks.",
|
|
77
87
|
});
|
|
78
88
|
}
|
|
79
89
|
const critError = validateCrit(decoded.header);
|
|
80
90
|
if (critError) {
|
|
81
91
|
throw new JweError(`Invalid crit header: ${critError}`, {
|
|
92
|
+
code: "jwe_invalid_crit",
|
|
82
93
|
data: { crit: decoded.header.crit },
|
|
94
|
+
title: "JWE Invalid Crit",
|
|
95
|
+
details: "The crit header is malformed; it must be a non-empty array of strings naming extension parameters present in the header.",
|
|
83
96
|
});
|
|
84
97
|
}
|
|
85
98
|
if (this.kryptos.algorithm !== decoded.header.alg) {
|
|
86
99
|
throw new JweError("Invalid token", {
|
|
100
|
+
code: "jwe_algorithm_mismatch",
|
|
87
101
|
data: { alg: decoded.header.alg },
|
|
88
102
|
debug: { expected: this.kryptos.algorithm },
|
|
103
|
+
title: "JWE Algorithm Mismatch",
|
|
104
|
+
details: "The header alg does not match the key-management algorithm of the configured kryptos key.",
|
|
89
105
|
});
|
|
90
106
|
}
|
|
91
107
|
const header = parseTokenHeader(decoded.header);
|
|
92
108
|
header.tokenType = decodeTokenTypeFromTyp(typ, "jwe");
|
|
93
109
|
if (header.encryption !== this.encryption) {
|
|
94
110
|
throw new JweError("Unexpected encryption", {
|
|
111
|
+
code: "jwe_encryption_mismatch",
|
|
95
112
|
debug: { actual: header.encryption, encryption: this.encryption },
|
|
113
|
+
title: "JWE Encryption Mismatch",
|
|
114
|
+
details: "The header enc does not match the content-encryption algorithm this kit is configured to accept.",
|
|
96
115
|
});
|
|
97
116
|
}
|
|
98
117
|
if (header.critical?.length) {
|
|
99
118
|
for (const param of header.critical) {
|
|
100
|
-
throw new JweError(`Unsupported critical header parameter: ${param}
|
|
119
|
+
throw new JweError(`Unsupported critical header parameter: ${param}`, {
|
|
120
|
+
code: "jwe_unsupported_crit_param",
|
|
121
|
+
data: { param },
|
|
122
|
+
title: "JWE Unsupported Crit Param",
|
|
123
|
+
details: "The crit header marks an extension parameter as critical that Aegis does not understand, so the JWE must be rejected.",
|
|
124
|
+
});
|
|
101
125
|
}
|
|
102
126
|
}
|
|
103
127
|
const [headerB64] = token.split(".");
|
|
@@ -164,7 +188,11 @@ export class JweKit {
|
|
|
164
188
|
static decode(jwe) {
|
|
165
189
|
const parts = jwe.split(".");
|
|
166
190
|
if (parts.length !== 5) {
|
|
167
|
-
throw new JweError("Invalid JWE format: expected 5 parts"
|
|
191
|
+
throw new JweError("Invalid JWE format: expected 5 parts", {
|
|
192
|
+
code: "jwe_invalid_format",
|
|
193
|
+
title: "JWE Invalid Format",
|
|
194
|
+
details: "A compact JWE must have exactly five dot-separated segments (header, encrypted key, iv, ciphertext, tag).",
|
|
195
|
+
});
|
|
168
196
|
}
|
|
169
197
|
const [header, publicEncryptionKey, initialisationVector, content, authTag] = parts;
|
|
170
198
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JweKit.js","sourceRoot":"","sources":["../../src/classes/JweKit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JweKit.js","sourceRoot":"","sources":["../../src/classes/JweKit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwsKit.d.ts","sourceRoot":"","sources":["../../src/classes/JwsKit.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,SAAS,EAET,cAAc,EACd,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAe3B,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEhB,OAAO,EAAE,aAAa;IAMlC,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACnC,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,cAAmB,GAC3B,SAAS;IAsCL,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"JwsKit.d.ts","sourceRoot":"","sources":["../../src/classes/JwsKit.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,SAAS,EAET,cAAc,EACd,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAe3B,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEhB,OAAO,EAAE,aAAa;IAMlC,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACnC,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,cAAmB,GAC3B,SAAS;IAsCL,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;WA6DvD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAkB3B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;WAc/B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CAwC5E"}
|
package/dist/classes/JwsKit.js
CHANGED
|
@@ -51,19 +51,30 @@ export class JwsKit {
|
|
|
51
51
|
const parsed = JwsKit.parse(token);
|
|
52
52
|
if (parsed.header.critical?.length) {
|
|
53
53
|
for (const param of parsed.header.critical) {
|
|
54
|
-
throw new JwsError(`Unsupported critical header parameter: ${param}
|
|
54
|
+
throw new JwsError(`Unsupported critical header parameter: ${param}`, {
|
|
55
|
+
code: "jws_unsupported_crit_param",
|
|
56
|
+
data: { param },
|
|
57
|
+
title: "JWS Unsupported Crit Param",
|
|
58
|
+
details: "The crit header marks an extension parameter as critical that Aegis does not understand, so the JWS must be rejected.",
|
|
59
|
+
});
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
if (this.kryptos.algorithm !== parsed.header.algorithm) {
|
|
58
63
|
throw new JwsError("Invalid token", {
|
|
64
|
+
code: "jws_algorithm_mismatch",
|
|
59
65
|
data: { algorithm: parsed.header.algorithm },
|
|
60
66
|
debug: { expected: this.kryptos.algorithm },
|
|
67
|
+
title: "JWS Algorithm Mismatch",
|
|
68
|
+
details: "The header alg does not match the signing algorithm of the configured kryptos key.",
|
|
61
69
|
});
|
|
62
70
|
}
|
|
63
71
|
const verified = verifyJoseSignature(this.kryptos, token);
|
|
64
72
|
if (!verified) {
|
|
65
73
|
throw new JwsError("Invalid token", {
|
|
66
|
-
|
|
74
|
+
code: "jws_signature_invalid",
|
|
75
|
+
debug: { token },
|
|
76
|
+
title: "JWS Signature Invalid",
|
|
77
|
+
details: "The signature did not verify against the configured kryptos key, indicating the JWS was tampered with or signed by another key.",
|
|
67
78
|
});
|
|
68
79
|
}
|
|
69
80
|
verifyCertBinding({
|
|
@@ -115,14 +126,19 @@ export class JwsKit {
|
|
|
115
126
|
typ !== "JOSE" &&
|
|
116
127
|
!(typeof typ === "string" && typ.endsWith("+jws"))) {
|
|
117
128
|
throw new JwsError("Invalid token", {
|
|
129
|
+
code: "jws_invalid_typ",
|
|
118
130
|
data: { typ },
|
|
119
|
-
|
|
131
|
+
title: "JWS Invalid Typ",
|
|
132
|
+
details: "Header typ must be JWS, JOSE, a <type>+jws media type, or undefined.",
|
|
120
133
|
});
|
|
121
134
|
}
|
|
122
135
|
const critError = validateCrit(decoded.header);
|
|
123
136
|
if (critError) {
|
|
124
137
|
throw new JwsError(`Invalid crit header: ${critError}`, {
|
|
138
|
+
code: "jws_invalid_crit",
|
|
125
139
|
data: { crit: decoded.header.crit },
|
|
140
|
+
title: "JWS Invalid Crit",
|
|
141
|
+
details: "The crit header is malformed; it must be a non-empty array of strings naming extension parameters present in the header.",
|
|
126
142
|
});
|
|
127
143
|
}
|
|
128
144
|
const header = parseTokenHeader(decoded.header);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwsKit.js","sourceRoot":"","sources":["../../src/classes/JwsKit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JwsKit.js","sourceRoot":"","sources":["../../src/classes/JwsKit.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/JwtKit.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IKryptos } from "@lindorm/kryptos";
|
|
1
2
|
import type { Dict } from "@lindorm/types";
|
|
2
3
|
import type { IJwtKit } from "../interfaces/index.js";
|
|
3
4
|
import type { DecodedJwt, JwtKitOptions, ParsedJwt, ParsedJwtPayload, SignJwtContent, SignJwtOptions, SignedJwt, ValidateJwtOptions, VerifyJwtOptions } from "../types/index.js";
|
|
@@ -5,11 +6,13 @@ export declare class JwtKit implements IJwtKit {
|
|
|
5
6
|
private readonly certBindingMode;
|
|
6
7
|
private readonly clockTolerance;
|
|
7
8
|
private readonly dpopMaxSkew;
|
|
8
|
-
private readonly issuer;
|
|
9
9
|
private readonly logger;
|
|
10
10
|
private readonly kryptos;
|
|
11
11
|
constructor(options: JwtKitOptions);
|
|
12
|
+
get algorithm(): IKryptos["algorithm"];
|
|
12
13
|
sign<C extends Dict = Dict>(content: SignJwtContent<C>, options?: SignJwtOptions): SignedJwt;
|
|
14
|
+
signClaims<C extends Dict = Dict>(claims: Dict, content: SignJwtContent<C>, options?: SignJwtOptions): SignedJwt;
|
|
15
|
+
private signEncodedPayload;
|
|
13
16
|
verify<C extends Dict = Dict>(token: string, verify?: VerifyJwtOptions): ParsedJwt<C>;
|
|
14
17
|
static isJwt(jwt: string): boolean;
|
|
15
18
|
static decode<C extends Dict = Dict>(jwt: string): DecodedJwt<C>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtKit.d.ts","sourceRoot":"","sources":["../../src/classes/JwtKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAU3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,SAAS,EAET,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,SAAS,EAET,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"JwtKit.d.ts","sourceRoot":"","sources":["../../src/classes/JwtKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAU3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,SAAS,EAET,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,SAAS,EAET,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAqB3B,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEhB,OAAO,EAAE,aAAa;IASzC,IAAW,SAAS,IAAI,QAAQ,CAAC,WAAW,CAAC,CAE5C;IAQM,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAC/B,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,cAAmB,GAC3B,SAAS;IA2BL,UAAU,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EACrC,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,cAAmB,GAC3B,SAAS;IAuBZ,OAAO,CAAC,kBAAkB;IAyDnB,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EACjC,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,gBAAqB,GAC5B,SAAS,CAAC,CAAC,CAAC;WAmJD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAc3B,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;WAUzD,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;WA4CzD,QAAQ,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAC1C,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,OAAO,EAAE,kBAAkB,GAC1B,IAAI;CAKR"}
|
package/dist/classes/JwtKit.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { expires } from "@lindorm/date";
|
|
2
|
+
import { isFinite } from "@lindorm/is";
|
|
1
3
|
import { JwtError } from "../errors/index.js";
|
|
2
4
|
import { computeTypHeader, decodeTokenTypeFromTyp, } from "../internal/utils/compute-typ-header.js";
|
|
3
5
|
import { extractTokenDelegation } from "../internal/utils/extract-token-delegation.js";
|
|
@@ -7,7 +9,7 @@ import { verifyDpopProof } from "../internal/utils/verify-dpop-proof.js";
|
|
|
7
9
|
import { decodeJoseHeader, encodeJoseHeader } from "../internal/utils/jose-header.js";
|
|
8
10
|
import { createJoseSignature, verifyJoseSignature, } from "../internal/utils/jose-signature.js";
|
|
9
11
|
import { createJwtValidate } from "../internal/utils/jwt-validate.js";
|
|
10
|
-
import { decodeJwtPayload, encodeJwtPayload, parseTokenPayload, } from "../internal/utils/jwt-payload.js";
|
|
12
|
+
import { decodeJwtPayload, encodeClaimsPayload, encodeJwtPayload, parseTokenPayload, } from "../internal/utils/jwt-payload.js";
|
|
11
13
|
import { createJwtVerify } from "../internal/utils/jwt-verify.js";
|
|
12
14
|
import { parseTokenHeader } from "../internal/utils/token-header.js";
|
|
13
15
|
import { resolveCertBinding } from "../internal/utils/resolve-cert-binding.js";
|
|
@@ -18,35 +20,67 @@ export class JwtKit {
|
|
|
18
20
|
certBindingMode;
|
|
19
21
|
clockTolerance;
|
|
20
22
|
dpopMaxSkew;
|
|
21
|
-
issuer;
|
|
22
23
|
logger;
|
|
23
24
|
kryptos;
|
|
24
25
|
constructor(options) {
|
|
25
26
|
this.logger = options.logger.child(["JwtKit"]);
|
|
26
27
|
this.kryptos = options.kryptos;
|
|
27
|
-
this.issuer = options.issuer ?? null;
|
|
28
28
|
this.certBindingMode = options.certBindingMode ?? "strict";
|
|
29
29
|
this.clockTolerance = options.clockTolerance ?? 0;
|
|
30
30
|
this.dpopMaxSkew = options.dpopMaxSkew ?? DEFAULT_DPOP_MAX_SKEW;
|
|
31
31
|
}
|
|
32
|
+
get algorithm() {
|
|
33
|
+
return this.kryptos.algorithm;
|
|
34
|
+
}
|
|
32
35
|
sign(content, options = {}) {
|
|
33
36
|
this.logger.debug("Signing token", { content, options });
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
const { expiresAt, expiresIn, expiresOn, payload, tokenId } = encodeJwtPayload({ algorithm: this.kryptos.algorithm }, content, options);
|
|
38
|
+
return this.signEncodedPayload(payload, {
|
|
39
|
+
bindCertificate: options.bindCertificate,
|
|
40
|
+
expiresAt,
|
|
41
|
+
expiresIn,
|
|
42
|
+
expiresOn,
|
|
43
|
+
header: options.header,
|
|
44
|
+
objectId: options.objectId,
|
|
45
|
+
tokenId,
|
|
46
|
+
tokenType: content.tokenType,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
signClaims(claims, content, options = {}) {
|
|
50
|
+
this.logger.debug("Signing claims", { claims, options });
|
|
51
|
+
const { payload, tokenId } = encodeClaimsPayload(claims, content);
|
|
52
|
+
const expiry = isFinite(claims.exp) && content.expires
|
|
53
|
+
? expires(content.expires)
|
|
54
|
+
: undefined;
|
|
55
|
+
return this.signEncodedPayload(payload, {
|
|
56
|
+
bindCertificate: options.bindCertificate,
|
|
57
|
+
expiresAt: expiry?.expiresAt,
|
|
58
|
+
expiresIn: expiry?.expiresIn,
|
|
59
|
+
expiresOn: isFinite(claims.exp) ? claims.exp : undefined,
|
|
60
|
+
header: options.header,
|
|
61
|
+
objectId: options.objectId,
|
|
62
|
+
tokenId,
|
|
63
|
+
tokenType: content.tokenType,
|
|
64
|
+
typ: options.typ,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
signEncodedPayload(payload, meta) {
|
|
68
|
+
const headerType = meta.typ === null
|
|
69
|
+
? undefined
|
|
70
|
+
: meta.typ !== undefined
|
|
71
|
+
? meta.typ
|
|
72
|
+
: computeTypHeader(meta.tokenType, "jwt");
|
|
38
73
|
const headerOptions = {
|
|
39
|
-
...(
|
|
74
|
+
...(meta.header ?? {}),
|
|
40
75
|
algorithm: this.kryptos.algorithm,
|
|
41
76
|
contentType: "application/json",
|
|
42
|
-
headerType
|
|
77
|
+
headerType,
|
|
43
78
|
jwksUri: this.kryptos.jwksUri ?? undefined,
|
|
44
79
|
keyId: this.kryptos.id,
|
|
45
|
-
objectId,
|
|
80
|
+
objectId: meta.objectId,
|
|
46
81
|
};
|
|
47
|
-
const cert = resolveCertBinding(this.kryptos,
|
|
82
|
+
const cert = resolveCertBinding(this.kryptos, meta.bindCertificate);
|
|
48
83
|
const header = encodeJoseHeader(headerOptions, cert);
|
|
49
|
-
const { expiresAt, expiresIn, expiresOn, payload, tokenId } = encodeJwtPayload({ algorithm: this.kryptos.algorithm, issuer: this.issuer }, content, options);
|
|
50
84
|
const signature = createJoseSignature({
|
|
51
85
|
header,
|
|
52
86
|
payload,
|
|
@@ -54,35 +88,56 @@ export class JwtKit {
|
|
|
54
88
|
});
|
|
55
89
|
const token = `${header}.${payload}.${signature}`;
|
|
56
90
|
this.logger.debug("Token signed", { token });
|
|
57
|
-
return {
|
|
91
|
+
return {
|
|
92
|
+
expiresAt: meta.expiresAt,
|
|
93
|
+
expiresIn: meta.expiresIn,
|
|
94
|
+
expiresOn: meta.expiresOn,
|
|
95
|
+
objectId: meta.objectId,
|
|
96
|
+
token,
|
|
97
|
+
tokenId: meta.tokenId,
|
|
98
|
+
};
|
|
58
99
|
}
|
|
59
100
|
verify(token, verify = {}) {
|
|
60
101
|
this.logger.debug("Verifying token", { token, verify });
|
|
61
102
|
const parsed = JwtKit.parse(token);
|
|
62
103
|
if (parsed.header.critical?.length) {
|
|
63
104
|
for (const param of parsed.header.critical) {
|
|
64
|
-
throw new JwtError(`Unsupported critical header parameter: ${param}
|
|
105
|
+
throw new JwtError(`Unsupported critical header parameter: ${param}`, {
|
|
106
|
+
code: "jwt_unsupported_crit_param",
|
|
107
|
+
data: { param },
|
|
108
|
+
title: "JWT Unsupported Crit Param",
|
|
109
|
+
details: "The crit header marks an extension parameter as critical that Aegis does not understand, so the JWT must be rejected.",
|
|
110
|
+
});
|
|
65
111
|
}
|
|
66
112
|
}
|
|
67
113
|
if (this.kryptos.algorithm !== parsed.header.algorithm) {
|
|
68
114
|
throw new JwtError("Invalid token", {
|
|
115
|
+
code: "jwt_algorithm_mismatch",
|
|
69
116
|
data: { algorithm: parsed.header.algorithm },
|
|
70
117
|
debug: { expected: this.kryptos.algorithm },
|
|
118
|
+
title: "JWT Algorithm Mismatch",
|
|
119
|
+
details: "The header alg does not match the signing algorithm of the configured kryptos key.",
|
|
71
120
|
});
|
|
72
121
|
}
|
|
73
122
|
if (verify.tokenType !== undefined) {
|
|
74
123
|
const expectedTyp = computeTypHeader(verify.tokenType, "jwt");
|
|
75
124
|
if (parsed.decoded.header.typ !== expectedTyp) {
|
|
76
125
|
throw new JwtError("Invalid token", {
|
|
126
|
+
code: "jwt_typ_mismatch",
|
|
77
127
|
data: { typ: parsed.decoded.header.typ },
|
|
78
128
|
debug: { expected: expectedTyp },
|
|
129
|
+
title: "JWT Typ Mismatch",
|
|
130
|
+
details: "The header typ does not match the typ expected for the requested tokenType during verification.",
|
|
79
131
|
});
|
|
80
132
|
}
|
|
81
133
|
}
|
|
82
134
|
const verified = verifyJoseSignature(this.kryptos, token);
|
|
83
135
|
if (!verified) {
|
|
84
136
|
throw new JwtError("Invalid token", {
|
|
85
|
-
|
|
137
|
+
code: "jwt_signature_invalid",
|
|
138
|
+
debug: { token },
|
|
139
|
+
title: "JWT Signature Invalid",
|
|
140
|
+
details: "The signature did not verify against the configured kryptos key, indicating the JWT was tampered with or signed by another key.",
|
|
86
141
|
});
|
|
87
142
|
}
|
|
88
143
|
verifyCertBinding({
|
|
@@ -106,17 +161,31 @@ export class JwtKit {
|
|
|
106
161
|
validate(withDates, predicate);
|
|
107
162
|
}
|
|
108
163
|
catch (err) {
|
|
109
|
-
throw new JwtError("Invalid token", {
|
|
164
|
+
throw new JwtError("Invalid token", {
|
|
165
|
+
code: "jwt_claims_invalid",
|
|
166
|
+
data: { invalid: err.data?.invalid },
|
|
167
|
+
debug: { invalid: err.debug?.invalid },
|
|
168
|
+
title: "JWT Claims Invalid",
|
|
169
|
+
details: "One or more claims (such as exp, nbf, iat, or a verifier-supplied claim) failed the validation predicate.",
|
|
170
|
+
});
|
|
110
171
|
}
|
|
111
172
|
const actorError = validateActor(parsed.delegation, verify.actor);
|
|
112
173
|
if (actorError) {
|
|
113
|
-
throw new JwtError(actorError
|
|
174
|
+
throw new JwtError(actorError.message, {
|
|
175
|
+
code: "jwt_actor_not_allowed",
|
|
176
|
+
debug: actorError.debug,
|
|
177
|
+
title: "JWT Actor Not Allowed",
|
|
178
|
+
details: "The token's act delegation chain does not satisfy the expected actor supplied to verify.",
|
|
179
|
+
});
|
|
114
180
|
}
|
|
115
181
|
const boundThumbprint = parsed.payload.confirmation?.thumbprint;
|
|
116
182
|
if (verify.dpopProof !== undefined) {
|
|
117
183
|
if (!boundThumbprint) {
|
|
118
184
|
throw new JwtError("Invalid token: DPoP proof provided but token is not bound", {
|
|
185
|
+
code: "jwt_dpop_token_not_bound",
|
|
119
186
|
debug: { confirmation: parsed.payload.confirmation },
|
|
187
|
+
title: "JWT DPoP Token Not Bound",
|
|
188
|
+
details: "A DPoP proof was supplied but the token carries no cnf.jkt thumbprint, so it cannot be DPoP-bound.",
|
|
120
189
|
});
|
|
121
190
|
}
|
|
122
191
|
parsed.dpop = verifyDpopProof({
|
|
@@ -127,7 +196,11 @@ export class JwtKit {
|
|
|
127
196
|
});
|
|
128
197
|
}
|
|
129
198
|
else if (boundThumbprint && !verify.trustBoundThumbprint) {
|
|
130
|
-
throw new JwtError("Invalid token: token is DPoP-bound but no DPoP proof was provided"
|
|
199
|
+
throw new JwtError("Invalid token: token is DPoP-bound but no DPoP proof was provided", {
|
|
200
|
+
code: "jwt_dpop_proof_required",
|
|
201
|
+
title: "JWT DPoP Proof Required",
|
|
202
|
+
details: "The token carries a cnf.jkt thumbprint, so a matching DPoP proof must be supplied unless trustBoundThumbprint is set.",
|
|
203
|
+
});
|
|
131
204
|
}
|
|
132
205
|
this.logger.debug("Token verified");
|
|
133
206
|
return parsed;
|
|
@@ -162,20 +235,27 @@ export class JwtKit {
|
|
|
162
235
|
const typ = decoded.header.typ;
|
|
163
236
|
if (typ !== "JWT" && !(typeof typ === "string" && typ.endsWith("+jwt"))) {
|
|
164
237
|
throw new JwtError("Invalid token", {
|
|
238
|
+
code: "jwt_invalid_typ",
|
|
165
239
|
data: { typ },
|
|
166
|
-
|
|
240
|
+
title: "JWT Invalid Typ",
|
|
241
|
+
details: "Header typ must be JWT or a <type>+jwt media type to parse as a JWT.",
|
|
167
242
|
});
|
|
168
243
|
}
|
|
169
244
|
const critError = validateCrit(decoded.header);
|
|
170
245
|
if (critError) {
|
|
171
246
|
throw new JwtError(`Invalid crit header: ${critError}`, {
|
|
247
|
+
code: "jwt_invalid_crit",
|
|
172
248
|
data: { crit: decoded.header.crit },
|
|
249
|
+
title: "JWT Invalid Crit",
|
|
250
|
+
details: "The crit header is malformed; it must be a non-empty array of strings naming extension parameters present in the header.",
|
|
173
251
|
});
|
|
174
252
|
}
|
|
175
253
|
if (!decoded.payload.iss) {
|
|
176
254
|
throw new JwtError("Invalid token", {
|
|
255
|
+
code: "jwt_issuer_missing",
|
|
177
256
|
data: { iss: decoded.payload.iss },
|
|
178
|
-
|
|
257
|
+
title: "JWT Issuer Missing",
|
|
258
|
+
details: "The payload has no iss claim, which is required to parse a JWT.",
|
|
179
259
|
});
|
|
180
260
|
}
|
|
181
261
|
const header = parseTokenHeader(decoded.header);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtKit.js","sourceRoot":"","sources":["../../src/classes/JwtKit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JwtKit.js","sourceRoot":"","sources":["../../src/classes/JwtKit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureKit.d.ts","sourceRoot":"","sources":["../../src/classes/SignatureKit.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;gBAEX,OAAO,EAAE,gBAAgB;IAMrC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAI3B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO;IAIlD,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAI/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMnC,OAAO,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"SignatureKit.d.ts","sourceRoot":"","sources":["../../src/classes/SignatureKit.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;gBAEX,OAAO,EAAE,gBAAgB;IAMrC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAI3B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO;IAIlD,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAI/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMnC,OAAO,CAAC,MAAM;CA0Bf"}
|
|
@@ -34,7 +34,11 @@ export class SignatureKit {
|
|
|
34
34
|
case "oct":
|
|
35
35
|
return new OctKit(options);
|
|
36
36
|
default:
|
|
37
|
-
throw new AegisError("Unsupported kryptos type"
|
|
37
|
+
throw new AegisError("Unsupported kryptos type", {
|
|
38
|
+
code: "unsupported_kryptos_type",
|
|
39
|
+
title: "Unsupported Kryptos Type",
|
|
40
|
+
details: "The kryptos key type is not one of AKP, EC, RSA, OKP, or oct, so no signature kit can be selected.",
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureKit.js","sourceRoot":"","sources":["../../src/classes/SignatureKit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,OAAO,YAAY;IACN,GAAG,CAAU;IAE9B,YAAmB,OAAyB;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAIM,IAAI,CAAC,IAAa;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,IAAa,EAAE,SAAkB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,IAAa,EAAE,SAAkB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAIO,MAAM,CAAC,OAAyB;QACtC,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B,KAAK,IAAI;gBACP,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAE5B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B;gBACE,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SignatureKit.js","sourceRoot":"","sources":["../../src/classes/SignatureKit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,OAAO,YAAY;IACN,GAAG,CAAU;IAE9B,YAAmB,OAAyB;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAIM,IAAI,CAAC,IAAa;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,IAAa,EAAE,SAAkB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,IAAa,EAAE,SAAkB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAIO,MAAM,CAAC,OAAyB;QACtC,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B,KAAK,IAAI;gBACP,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAE5B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B,KAAK,KAAK;gBACR,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7B;gBACE,MAAM,IAAI,UAAU,CAAC,0BAA0B,EAAE;oBAC/C,IAAI,EAAE,0BAA0B;oBAChC,KAAK,EAAE,0BAA0B;oBACjC,OAAO,EACL,oGAAoG;iBACvG,CAAC,CAAC;QACP,CAAC;IACH,CAAC;CACF"}
|