@dbmx/confy 0.0.72 → 0.0.76
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/esm/_virtual/index10.js +2 -2
- package/esm/_virtual/index11.js +2 -2
- package/esm/_virtual/index12.js +2 -2
- package/esm/_virtual/index13.js +2 -2
- package/esm/_virtual/index14.js +2 -2
- package/esm/_virtual/index8.js +2 -2
- package/esm/_virtual/index9.js +2 -2
- package/esm/components/SelectMemberMenu/index.js +1 -1
- package/esm/ducks/utils.js +1 -1
- package/esm/forms/utils.js +2 -2
- package/esm/hooks/roles.js +1 -1
- package/esm/lib/api/apiKeys.js +51 -0
- package/esm/lib/api/apiKeys.js.map +1 -0
- package/esm/lib/api/auth.js +1 -2
- package/esm/lib/api/auth.js.map +1 -1
- package/esm/lib/api/config.js +1 -2
- package/esm/lib/api/config.js.map +1 -1
- package/esm/lib/api/dataBuckets.js +18 -0
- package/esm/lib/api/dataBuckets.js.map +1 -0
- package/esm/lib/api/index.js +1 -2
- package/esm/lib/api/index.js.map +1 -1
- package/esm/lib/api/jobs.js +56 -0
- package/esm/lib/api/jobs.js.map +1 -0
- package/esm/lib/api/members.js +33 -0
- package/esm/lib/api/members.js.map +1 -0
- package/esm/lib/api/people.js +50 -0
- package/esm/lib/api/people.js.map +1 -0
- package/esm/lib/api/roles.js +17 -0
- package/esm/lib/api/roles.js.map +1 -0
- package/esm/lib/api/routes.js +43 -0
- package/esm/lib/api/routes.js.map +1 -0
- package/esm/lib/api/servicesMap.js +17 -0
- package/esm/lib/api/servicesMap.js.map +1 -0
- package/esm/lib/api/spaces.js +32 -0
- package/esm/lib/api/spaces.js.map +1 -0
- package/esm/lib/api/storage.js +94 -0
- package/esm/lib/api/storage.js.map +1 -0
- package/esm/node_modules/@dbmx/auth/dist/index.js +638 -0
- package/esm/node_modules/@dbmx/auth/dist/index.js.map +1 -0
- package/esm/node_modules/@dbmx/auth/dist/oidc-client.js +107 -0
- package/esm/node_modules/@dbmx/auth/dist/oidc-client.js.map +1 -0
- package/esm/node_modules/@dbmx/semver/dist/index.esm.js +958 -0
- package/esm/node_modules/@dbmx/semver/dist/index.esm.js.map +1 -0
- package/esm/node_modules/@dbmx/semver/node_modules/lru-cache/index.js +340 -0
- package/esm/node_modules/@dbmx/semver/node_modules/lru-cache/index.js.map +1 -0
- package/esm/node_modules/@dbmx/semver/node_modules/yallist/iterator.js +18 -0
- package/esm/node_modules/@dbmx/semver/node_modules/yallist/iterator.js.map +1 -0
- package/esm/node_modules/@dbmx/semver/node_modules/yallist/yallist.js +430 -0
- package/esm/node_modules/@dbmx/semver/node_modules/yallist/yallist.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/index.js +251 -0
- package/esm/node_modules/@dbmx/users/esm/index.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/ap.js +44 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/ap.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/bind.js +36 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/bind.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/curry.js +53 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/curry.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/curryN.js +60 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/curryN.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/difference.js +50 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/difference.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/either.js +46 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/either.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/equals.js +37 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/equals.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/flip.js +37 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/flip.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/identity.js +29 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/identity.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/includes.js +32 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/includes.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_Set.js +201 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_Set.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_arity.js +65 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_arity.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_arrayFromIterator.js +13 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_arrayFromIterator.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_concat.js +37 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_concat.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curry1.js +23 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curry1.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curry2.js +35 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curry2.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curry3.js +53 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curry3.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curryN.js +46 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_curryN.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_dispatchable.js +50 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_dispatchable.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_equals.js +170 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_equals.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_filter.js +18 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_filter.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_functionName.js +8 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_functionName.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_has.js +6 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_has.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_identity.js +6 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_identity.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_includes.js +8 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_includes.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_includesWith.js +17 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_includesWith.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_indexOf.js +71 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_indexOf.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isArguments.js +16 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isArguments.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isArray.js +18 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isArray.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isArrayLike.js +58 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isArrayLike.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isFunction.js +7 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isFunction.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isInteger.js +14 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isInteger.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isPlaceholder.js +6 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isPlaceholder.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isString.js +6 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isString.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isTransformer.js +6 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_isTransformer.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_map.js +15 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_map.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_objectIs.js +17 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_objectIs.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_reduce.js +74 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_reduce.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_xfBase.js +11 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_xfBase.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_xmap.js +29 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_xmap.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_xwrap.js +28 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/internal/_xwrap.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/intersection.js +42 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/intersection.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/is.js +34 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/is.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/keys.js +92 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/keys.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/lift.js +34 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/lift.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/liftN.js +35 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/liftN.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/map.js +68 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/map.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/nth.js +39 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/nth.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/or.js +31 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/or.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/path.js +32 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/path.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/paths.js +47 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/paths.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/prop.js +33 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/prop.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/propEq.js +37 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/propEq.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/type.js +36 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/type.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/uniq.js +27 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/uniq.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/uniqBy.js +46 -0
- package/esm/node_modules/@dbmx/users/esm/node_modules/ramda/es/uniqBy.js.map +1 -0
- package/esm/node_modules/@dbmx/users/esm/roles.js +127 -0
- package/esm/node_modules/@dbmx/users/esm/roles.js.map +1 -0
- package/esm/node_modules/@testing-library/dom/node_modules/ansi-styles/index.js +1 -1
- package/esm/node_modules/@testing-library/dom/node_modules/react-is/index.js +1 -1
- package/esm/node_modules/aria-query/lib/index.js +1 -1
- package/esm/node_modules/call-bind/index.js +1 -1
- package/esm/node_modules/call-bind-apply-helpers/actualApply.js +2 -2
- package/esm/node_modules/call-bind-apply-helpers/actualApply.js.map +1 -1
- package/esm/node_modules/call-bind-apply-helpers/applyBind.js +2 -2
- package/esm/node_modules/call-bind-apply-helpers/applyBind.js.map +1 -1
- package/esm/node_modules/call-bind-apply-helpers/index.js +4 -4
- package/esm/node_modules/call-bind-apply-helpers/index.js.map +1 -1
- package/esm/node_modules/define-data-property/index.js +2 -2
- package/esm/node_modules/define-data-property/index.js.map +1 -1
- package/esm/node_modules/es-errors/type.js +3 -12
- package/esm/node_modules/es-errors/type.js.map +1 -1
- package/esm/node_modules/function-bind/implementation.js +93 -84
- package/esm/node_modules/function-bind/implementation.js.map +1 -1
- package/esm/node_modules/function-bind/index.js +13 -4
- package/esm/node_modules/function-bind/index.js.map +1 -1
- package/esm/node_modules/get-intrinsic/index.js +4 -4
- package/esm/node_modules/get-intrinsic/index.js.map +1 -1
- package/esm/node_modules/has-symbols/index.js +2 -2
- package/esm/node_modules/has-symbols/index.js.map +1 -1
- package/esm/node_modules/has-symbols/shams.js +34 -43
- package/esm/node_modules/has-symbols/shams.js.map +1 -1
- package/esm/node_modules/has-tostringtag/shams.js +7 -16
- package/esm/node_modules/has-tostringtag/shams.js.map +1 -1
- package/esm/node_modules/hasown/index.js +2 -2
- package/esm/node_modules/hasown/index.js.map +1 -1
- package/esm/node_modules/is-arguments/index.js +2 -2
- package/esm/node_modules/is-arguments/index.js.map +1 -1
- package/esm/node_modules/is-bigint/index.js +1 -1
- package/esm/node_modules/is-boolean-object/index.js +2 -2
- package/esm/node_modules/is-boolean-object/index.js.map +1 -1
- package/esm/node_modules/is-date-object/index.js +2 -2
- package/esm/node_modules/is-date-object/index.js.map +1 -1
- package/esm/node_modules/is-number-object/index.js +2 -2
- package/esm/node_modules/is-number-object/index.js.map +1 -1
- package/esm/node_modules/is-regex/index.js +2 -2
- package/esm/node_modules/is-regex/index.js.map +1 -1
- package/esm/node_modules/is-string/index.js +2 -2
- package/esm/node_modules/is-string/index.js.map +1 -1
- package/esm/node_modules/is-symbol/index.js +1 -1
- package/esm/node_modules/is-weakset/index.js +1 -1
- package/esm/node_modules/jsrsasign/lib/jsrsasign.js +248 -0
- package/esm/node_modules/jsrsasign/lib/jsrsasign.js.map +1 -0
- package/esm/node_modules/jwt-decode/build/esm/index.js +60 -0
- package/esm/node_modules/jwt-decode/build/esm/index.js.map +1 -0
- package/esm/node_modules/object-inspect/util.inspect.js +2 -2
- package/esm/node_modules/object-inspect/util.inspect.js.map +1 -1
- package/esm/node_modules/object.assign/implementation.js +2 -2
- package/esm/node_modules/object.assign/implementation.js.map +1 -1
- package/esm/node_modules/oidc-client-ts/dist/esm/oidc-client-ts.js +3591 -0
- package/esm/node_modules/oidc-client-ts/dist/esm/oidc-client-ts.js.map +1 -0
- package/esm/node_modules/ramda/es/internal/_objectAssign.js +32 -0
- package/esm/node_modules/ramda/es/internal/_objectAssign.js.map +1 -0
- package/esm/node_modules/ramda/es/merge.js +36 -0
- package/esm/node_modules/ramda/es/merge.js.map +1 -0
- package/esm/node_modules/regexp.prototype.flags/implementation.js +2 -2
- package/esm/node_modules/regexp.prototype.flags/implementation.js.map +1 -1
- package/esm/node_modules/safe-regex-test/index.js +2 -2
- package/esm/node_modules/safe-regex-test/index.js.map +1 -1
- package/esm/node_modules/set-function-length/index.js +2 -2
- package/esm/node_modules/set-function-length/index.js.map +1 -1
- package/esm/node_modules/set-function-name/index.js +2 -2
- package/esm/node_modules/set-function-name/index.js.map +1 -1
- package/esm/node_modules/side-channel/index.js +2 -2
- package/esm/node_modules/side-channel/index.js.map +1 -1
- package/esm/node_modules/side-channel-list/index.js +2 -2
- package/esm/node_modules/side-channel-list/index.js.map +1 -1
- package/esm/node_modules/side-channel-map/index.js +2 -2
- package/esm/node_modules/side-channel-map/index.js.map +1 -1
- package/esm/node_modules/side-channel-weakmap/index.js +2 -2
- package/esm/node_modules/side-channel-weakmap/index.js.map +1 -1
- package/esm/node_modules/which-typed-array/index.js +2 -2
- package/esm/node_modules/which-typed-array/index.js.map +1 -1
- package/esm/store/index.js +6 -5
- package/esm/store/index.js.map +1 -1
- package/esm/utils/authorizations.js +1 -1
- package/esm/utils/confy.js +1 -1
- package/package.json +6 -5
- package/esm/_virtual/browser.js +0 -4
- package/esm/_virtual/browser.js.map +0 -1
- package/esm/_virtual/index15.js +0 -4
- package/esm/_virtual/index15.js.map +0 -1
- package/esm/_virtual/index16.js +0 -4
- package/esm/_virtual/index16.js.map +0 -1
- package/esm/_virtual/index17.js +0 -4
- package/esm/_virtual/index17.js.map +0 -1
- package/esm/_virtual/index18.js +0 -4
- package/esm/_virtual/index18.js.map +0 -1
- package/esm/_virtual/node.js +0 -4
- package/esm/_virtual/node.js.map +0 -1
- package/esm/_virtual/serialOrdered.js +0 -4
- package/esm/_virtual/serialOrdered.js.map +0 -1
- package/esm/node_modules/asynckit/index.js +0 -13
- package/esm/node_modules/asynckit/index.js.map +0 -1
- package/esm/node_modules/asynckit/lib/abort.js +0 -32
- package/esm/node_modules/asynckit/lib/abort.js.map +0 -1
- package/esm/node_modules/asynckit/lib/async.js +0 -39
- package/esm/node_modules/asynckit/lib/async.js.map +0 -1
- package/esm/node_modules/asynckit/lib/defer.js +0 -29
- package/esm/node_modules/asynckit/lib/defer.js.map +0 -1
- package/esm/node_modules/asynckit/lib/iterate.js +0 -81
- package/esm/node_modules/asynckit/lib/iterate.js.map +0 -1
- package/esm/node_modules/asynckit/lib/state.js +0 -40
- package/esm/node_modules/asynckit/lib/state.js.map +0 -1
- package/esm/node_modules/asynckit/lib/terminator.js +0 -35
- package/esm/node_modules/asynckit/lib/terminator.js.map +0 -1
- package/esm/node_modules/asynckit/parallel.js +0 -50
- package/esm/node_modules/asynckit/parallel.js.map +0 -1
- package/esm/node_modules/asynckit/serial.js +0 -22
- package/esm/node_modules/asynckit/serial.js.map +0 -1
- package/esm/node_modules/asynckit/serialOrdered.js +0 -85
- package/esm/node_modules/asynckit/serialOrdered.js.map +0 -1
- package/esm/node_modules/axios/index.js +0 -26
- package/esm/node_modules/axios/index.js.map +0 -1
- package/esm/node_modules/axios/lib/adapters/adapters.js +0 -133
- package/esm/node_modules/axios/lib/adapters/adapters.js.map +0 -1
- package/esm/node_modules/axios/lib/adapters/fetch.js +0 -331
- package/esm/node_modules/axios/lib/adapters/fetch.js.map +0 -1
- package/esm/node_modules/axios/lib/adapters/http.js +0 -945
- package/esm/node_modules/axios/lib/adapters/http.js.map +0 -1
- package/esm/node_modules/axios/lib/adapters/xhr.js +0 -225
- package/esm/node_modules/axios/lib/adapters/xhr.js.map +0 -1
- package/esm/node_modules/axios/lib/axios.js +0 -87
- package/esm/node_modules/axios/lib/axios.js.map +0 -1
- package/esm/node_modules/axios/lib/cancel/CancelToken.js +0 -134
- package/esm/node_modules/axios/lib/cancel/CancelToken.js.map +0 -1
- package/esm/node_modules/axios/lib/cancel/CanceledError.js +0 -21
- package/esm/node_modules/axios/lib/cancel/CanceledError.js.map +0 -1
- package/esm/node_modules/axios/lib/cancel/isCancel.js +0 -6
- package/esm/node_modules/axios/lib/cancel/isCancel.js.map +0 -1
- package/esm/node_modules/axios/lib/core/Axios.js +0 -260
- package/esm/node_modules/axios/lib/core/Axios.js.map +0 -1
- package/esm/node_modules/axios/lib/core/AxiosError.js +0 -89
- package/esm/node_modules/axios/lib/core/AxiosError.js.map +0 -1
- package/esm/node_modules/axios/lib/core/AxiosHeaders.js +0 -343
- package/esm/node_modules/axios/lib/core/AxiosHeaders.js.map +0 -1
- package/esm/node_modules/axios/lib/core/InterceptorManager.js +0 -71
- package/esm/node_modules/axios/lib/core/InterceptorManager.js.map +0 -1
- package/esm/node_modules/axios/lib/core/buildFullPath.js +0 -23
- package/esm/node_modules/axios/lib/core/buildFullPath.js.map +0 -1
- package/esm/node_modules/axios/lib/core/dispatchRequest.js +0 -78
- package/esm/node_modules/axios/lib/core/dispatchRequest.js.map +0 -1
- package/esm/node_modules/axios/lib/core/mergeConfig.js +0 -108
- package/esm/node_modules/axios/lib/core/mergeConfig.js.map +0 -1
- package/esm/node_modules/axios/lib/core/settle.js +0 -32
- package/esm/node_modules/axios/lib/core/settle.js.map +0 -1
- package/esm/node_modules/axios/lib/core/transformData.js +0 -29
- package/esm/node_modules/axios/lib/core/transformData.js.map +0 -1
- package/esm/node_modules/axios/lib/defaults/index.js +0 -171
- package/esm/node_modules/axios/lib/defaults/index.js.map +0 -1
- package/esm/node_modules/axios/lib/defaults/transitional.js +0 -9
- package/esm/node_modules/axios/lib/defaults/transitional.js.map +0 -1
- package/esm/node_modules/axios/lib/env/data.js +0 -4
- package/esm/node_modules/axios/lib/env/data.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/AxiosTransformStream.js +0 -155
- package/esm/node_modules/axios/lib/helpers/AxiosTransformStream.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +0 -61
- package/esm/node_modules/axios/lib/helpers/AxiosURLSearchParams.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/HttpStatusCode.js +0 -78
- package/esm/node_modules/axios/lib/helpers/HttpStatusCode.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +0 -28
- package/esm/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/bind.js +0 -15
- package/esm/node_modules/axios/lib/helpers/bind.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/buildURL.js +0 -67
- package/esm/node_modules/axios/lib/helpers/buildURL.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/callbackify.js +0 -19
- package/esm/node_modules/axios/lib/helpers/callbackify.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/combineURLs.js +0 -16
- package/esm/node_modules/axios/lib/helpers/combineURLs.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/composeSignals.js +0 -57
- package/esm/node_modules/axios/lib/helpers/composeSignals.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/cookies.js +0 -51
- package/esm/node_modules/axios/lib/helpers/cookies.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +0 -76
- package/esm/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/formDataToJSON.js +0 -94
- package/esm/node_modules/axios/lib/helpers/formDataToJSON.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/formDataToStream.js +0 -119
- package/esm/node_modules/axios/lib/helpers/formDataToStream.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/fromDataURI.js +0 -54
- package/esm/node_modules/axios/lib/helpers/fromDataURI.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -20
- package/esm/node_modules/axios/lib/helpers/isAbsoluteURL.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/isAxiosError.js +0 -15
- package/esm/node_modules/axios/lib/helpers/isAxiosError.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -19
- package/esm/node_modules/axios/lib/helpers/isURLSameOrigin.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/parseHeaders.js +0 -70
- package/esm/node_modules/axios/lib/helpers/parseHeaders.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/parseProtocol.js +0 -7
- package/esm/node_modules/axios/lib/helpers/parseProtocol.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/progressEventReducer.js +0 -54
- package/esm/node_modules/axios/lib/helpers/progressEventReducer.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/readBlob.js +0 -16
- package/esm/node_modules/axios/lib/helpers/readBlob.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/resolveConfig.js +0 -73
- package/esm/node_modules/axios/lib/helpers/resolveConfig.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/speedometer.js +0 -54
- package/esm/node_modules/axios/lib/helpers/speedometer.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/spread.js +0 -29
- package/esm/node_modules/axios/lib/helpers/spread.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/throttle.js +0 -45
- package/esm/node_modules/axios/lib/helpers/throttle.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/toFormData.js +0 -239
- package/esm/node_modules/axios/lib/helpers/toFormData.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/toURLEncodedForm.js +0 -20
- package/esm/node_modules/axios/lib/helpers/toURLEncodedForm.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/trackStream.js +0 -92
- package/esm/node_modules/axios/lib/helpers/trackStream.js.map +0 -1
- package/esm/node_modules/axios/lib/helpers/validator.js +0 -111
- package/esm/node_modules/axios/lib/helpers/validator.js.map +0 -1
- package/esm/node_modules/axios/lib/platform/common/utils.js +0 -47
- package/esm/node_modules/axios/lib/platform/common/utils.js.map +0 -1
- package/esm/node_modules/axios/lib/platform/index.js +0 -10
- package/esm/node_modules/axios/lib/platform/index.js.map +0 -1
- package/esm/node_modules/axios/lib/platform/node/classes/FormData.js +0 -6
- package/esm/node_modules/axios/lib/platform/node/classes/FormData.js.map +0 -1
- package/esm/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +0 -6
- package/esm/node_modules/axios/lib/platform/node/classes/URLSearchParams.js.map +0 -1
- package/esm/node_modules/axios/lib/platform/node/index.js +0 -40
- package/esm/node_modules/axios/lib/platform/node/index.js.map +0 -1
- package/esm/node_modules/axios/lib/utils.js +0 -920
- package/esm/node_modules/axios/lib/utils.js.map +0 -1
- package/esm/node_modules/call-bind-apply-helpers/node_modules/function-bind/implementation.js +0 -66
- package/esm/node_modules/call-bind-apply-helpers/node_modules/function-bind/implementation.js.map +0 -1
- package/esm/node_modules/call-bind-apply-helpers/node_modules/function-bind/index.js +0 -7
- package/esm/node_modules/call-bind-apply-helpers/node_modules/function-bind/index.js.map +0 -1
- package/esm/node_modules/combined-stream/lib/combined_stream.js +0 -215
- package/esm/node_modules/combined-stream/lib/combined_stream.js.map +0 -1
- package/esm/node_modules/debug/src/browser.js +0 -287
- package/esm/node_modules/debug/src/browser.js.map +0 -1
- package/esm/node_modules/debug/src/common.js +0 -304
- package/esm/node_modules/debug/src/common.js.map +0 -1
- package/esm/node_modules/debug/src/index.js +0 -24
- package/esm/node_modules/debug/src/index.js.map +0 -1
- package/esm/node_modules/debug/src/node.js +0 -281
- package/esm/node_modules/debug/src/node.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/has-symbols/index.js +0 -22
- package/esm/node_modules/deep-equal/node_modules/has-symbols/index.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/has-symbols/shams.js +0 -58
- package/esm/node_modules/deep-equal/node_modules/has-symbols/shams.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/has-tostringtag/shams.js +0 -9
- package/esm/node_modules/deep-equal/node_modules/has-tostringtag/shams.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/is-regex/index.js +0 -53
- package/esm/node_modules/deep-equal/node_modules/is-regex/index.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/is-regex/node_modules/call-bind/callBound.js +0 -16
- package/esm/node_modules/deep-equal/node_modules/is-regex/node_modules/call-bind/callBound.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/is-regex/node_modules/call-bind/index.js +0 -53
- package/esm/node_modules/deep-equal/node_modules/is-regex/node_modules/call-bind/index.js.map +0 -1
- package/esm/node_modules/deep-equal/node_modules/is-regex/node_modules/get-intrinsic/index.js +0 -307
- package/esm/node_modules/deep-equal/node_modules/is-regex/node_modules/get-intrinsic/index.js.map +0 -1
- package/esm/node_modules/delayed-stream/lib/delayed_stream.js +0 -113
- package/esm/node_modules/delayed-stream/lib/delayed_stream.js.map +0 -1
- package/esm/node_modules/es-set-tostringtag/index.js +0 -41
- package/esm/node_modules/es-set-tostringtag/index.js.map +0 -1
- package/esm/node_modules/follow-redirects/debug.js +0 -20
- package/esm/node_modules/follow-redirects/debug.js.map +0 -1
- package/esm/node_modules/follow-redirects/index.js +0 -701
- package/esm/node_modules/follow-redirects/index.js.map +0 -1
- package/esm/node_modules/form-data/lib/form_data.js +0 -514
- package/esm/node_modules/form-data/lib/form_data.js.map +0 -1
- package/esm/node_modules/form-data/lib/populate.js +0 -11
- package/esm/node_modules/form-data/lib/populate.js.map +0 -1
- package/esm/node_modules/get-intrinsic/node_modules/function-bind/implementation.js +0 -75
- package/esm/node_modules/get-intrinsic/node_modules/function-bind/implementation.js.map +0 -1
- package/esm/node_modules/get-intrinsic/node_modules/function-bind/index.js +0 -16
- package/esm/node_modules/get-intrinsic/node_modules/function-bind/index.js.map +0 -1
- package/esm/node_modules/has/src/index.js +0 -7
- package/esm/node_modules/has/src/index.js.map +0 -1
- package/esm/node_modules/has-flag/index.js +0 -18
- package/esm/node_modules/has-flag/index.js.map +0 -1
- package/esm/node_modules/hasown/node_modules/function-bind/implementation.js +0 -75
- package/esm/node_modules/hasown/node_modules/function-bind/implementation.js.map +0 -1
- package/esm/node_modules/hasown/node_modules/function-bind/index.js +0 -16
- package/esm/node_modules/hasown/node_modules/function-bind/index.js.map +0 -1
- package/esm/node_modules/is-boolean-object/node_modules/call-bind/callBound.js +0 -16
- package/esm/node_modules/is-boolean-object/node_modules/call-bind/callBound.js.map +0 -1
- package/esm/node_modules/is-boolean-object/node_modules/call-bind/index.js +0 -53
- package/esm/node_modules/is-boolean-object/node_modules/call-bind/index.js.map +0 -1
- package/esm/node_modules/is-boolean-object/node_modules/get-intrinsic/index.js +0 -307
- package/esm/node_modules/is-boolean-object/node_modules/get-intrinsic/index.js.map +0 -1
- package/esm/node_modules/is-boolean-object/node_modules/has-symbols/index.js +0 -22
- package/esm/node_modules/is-boolean-object/node_modules/has-symbols/index.js.map +0 -1
- package/esm/node_modules/is-boolean-object/node_modules/has-symbols/shams.js +0 -67
- package/esm/node_modules/is-boolean-object/node_modules/has-symbols/shams.js.map +0 -1
- package/esm/node_modules/is-boolean-object/node_modules/has-tostringtag/shams.js +0 -18
- package/esm/node_modules/is-boolean-object/node_modules/has-tostringtag/shams.js.map +0 -1
- package/esm/node_modules/is-number-object/node_modules/has-symbols/shams.js +0 -58
- package/esm/node_modules/is-number-object/node_modules/has-symbols/shams.js.map +0 -1
- package/esm/node_modules/is-number-object/node_modules/has-tostringtag/shams.js +0 -9
- package/esm/node_modules/is-number-object/node_modules/has-tostringtag/shams.js.map +0 -1
- package/esm/node_modules/is-string/node_modules/has-symbols/shams.js +0 -58
- package/esm/node_modules/is-string/node_modules/has-symbols/shams.js.map +0 -1
- package/esm/node_modules/is-string/node_modules/has-tostringtag/shams.js +0 -9
- package/esm/node_modules/is-string/node_modules/has-tostringtag/shams.js.map +0 -1
- package/esm/node_modules/is-symbol/node_modules/has-symbols/index.js +0 -22
- package/esm/node_modules/is-symbol/node_modules/has-symbols/index.js.map +0 -1
- package/esm/node_modules/is-symbol/node_modules/has-symbols/shams.js +0 -58
- package/esm/node_modules/is-symbol/node_modules/has-symbols/shams.js.map +0 -1
- package/esm/node_modules/mime-db/db.json.js +0 -10705
- package/esm/node_modules/mime-db/db.json.js.map +0 -1
- package/esm/node_modules/mime-db/index.js +0 -17
- package/esm/node_modules/mime-db/index.js.map +0 -1
- package/esm/node_modules/mime-types/index.js +0 -194
- package/esm/node_modules/mime-types/index.js.map +0 -1
- package/esm/node_modules/ms/index.js +0 -173
- package/esm/node_modules/ms/index.js.map +0 -1
- package/esm/node_modules/proxy-from-env/index.js +0 -112
- package/esm/node_modules/proxy-from-env/index.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/call-bind/callBound.js +0 -16
- package/esm/node_modules/side-channel/node_modules/call-bind/callBound.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/call-bind/index.js +0 -53
- package/esm/node_modules/side-channel/node_modules/call-bind/index.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/get-intrinsic/index.js +0 -307
- package/esm/node_modules/side-channel/node_modules/get-intrinsic/index.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/has-symbols/index.js +0 -22
- package/esm/node_modules/side-channel/node_modules/has-symbols/index.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/has-symbols/shams.js +0 -58
- package/esm/node_modules/side-channel/node_modules/has-symbols/shams.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/object-inspect/index.js +0 -469
- package/esm/node_modules/side-channel/node_modules/object-inspect/index.js.map +0 -1
- package/esm/node_modules/side-channel/node_modules/object-inspect/util.inspect.js +0 -6
- package/esm/node_modules/side-channel/node_modules/object-inspect/util.inspect.js.map +0 -1
- package/esm/node_modules/supports-color/index.js +0 -149
- package/esm/node_modules/supports-color/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc-client-ts.js","sources":["../../../../../node_modules/oidc-client-ts/dist/esm/oidc-client-ts.js"],"sourcesContent":["// src/utils/Logger.ts\nvar nopLogger = {\n debug: () => void 0,\n info: () => void 0,\n warn: () => void 0,\n error: () => void 0\n};\nvar level;\nvar logger;\nvar Log = /* @__PURE__ */ ((Log2) => {\n Log2[Log2[\"NONE\"] = 0] = \"NONE\";\n Log2[Log2[\"ERROR\"] = 1] = \"ERROR\";\n Log2[Log2[\"WARN\"] = 2] = \"WARN\";\n Log2[Log2[\"INFO\"] = 3] = \"INFO\";\n Log2[Log2[\"DEBUG\"] = 4] = \"DEBUG\";\n return Log2;\n})(Log || {});\n((Log2) => {\n function reset() {\n level = 3 /* INFO */;\n logger = nopLogger;\n }\n Log2.reset = reset;\n function setLevel(value) {\n if (!(0 /* NONE */ <= value && value <= 4 /* DEBUG */)) {\n throw new Error(\"Invalid log level\");\n }\n level = value;\n }\n Log2.setLevel = setLevel;\n function setLogger(value) {\n logger = value;\n }\n Log2.setLogger = setLogger;\n})(Log || (Log = {}));\nvar Logger = class _Logger {\n constructor(_name) {\n this._name = _name;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n debug(...args) {\n if (level >= 4 /* DEBUG */) {\n logger.debug(_Logger._format(this._name, this._method), ...args);\n }\n }\n info(...args) {\n if (level >= 3 /* INFO */) {\n logger.info(_Logger._format(this._name, this._method), ...args);\n }\n }\n warn(...args) {\n if (level >= 2 /* WARN */) {\n logger.warn(_Logger._format(this._name, this._method), ...args);\n }\n }\n error(...args) {\n if (level >= 1 /* ERROR */) {\n logger.error(_Logger._format(this._name, this._method), ...args);\n }\n }\n /* eslint-enable @typescript-eslint/no-unsafe-enum-comparison */\n throw(err) {\n this.error(err);\n throw err;\n }\n create(method) {\n const methodLogger = Object.create(this);\n methodLogger._method = method;\n methodLogger.debug(\"begin\");\n return methodLogger;\n }\n static createStatic(name, staticMethod) {\n const staticLogger = new _Logger(`${name}.${staticMethod}`);\n staticLogger.debug(\"begin\");\n return staticLogger;\n }\n static _format(name, method) {\n const prefix = `[${name}]`;\n return method ? `${prefix} ${method}:` : prefix;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n // helpers for static class methods\n static debug(name, ...args) {\n if (level >= 4 /* DEBUG */) {\n logger.debug(_Logger._format(name), ...args);\n }\n }\n static info(name, ...args) {\n if (level >= 3 /* INFO */) {\n logger.info(_Logger._format(name), ...args);\n }\n }\n static warn(name, ...args) {\n if (level >= 2 /* WARN */) {\n logger.warn(_Logger._format(name), ...args);\n }\n }\n static error(name, ...args) {\n if (level >= 1 /* ERROR */) {\n logger.error(_Logger._format(name), ...args);\n }\n }\n /* eslint-enable @typescript-eslint/no-unsafe-enum-comparison */\n};\nLog.reset();\n\n// src/utils/JwtUtils.ts\nimport { jwtDecode } from \"jwt-decode\";\nvar JwtUtils = class {\n // IMPORTANT: doesn't validate the token\n static decode(token) {\n try {\n return jwtDecode(token);\n } catch (err) {\n Logger.error(\"JwtUtils.decode\", err);\n throw err;\n }\n }\n static async generateSignedJwt(header, payload, privateKey) {\n const encodedHeader = CryptoUtils.encodeBase64Url(new TextEncoder().encode(JSON.stringify(header)));\n const encodedPayload = CryptoUtils.encodeBase64Url(new TextEncoder().encode(JSON.stringify(payload)));\n const encodedToken = `${encodedHeader}.${encodedPayload}`;\n const signature = await window.crypto.subtle.sign(\n {\n name: \"ECDSA\",\n hash: { name: \"SHA-256\" }\n },\n privateKey,\n new TextEncoder().encode(encodedToken)\n );\n const encodedSignature = CryptoUtils.encodeBase64Url(new Uint8Array(signature));\n return `${encodedToken}.${encodedSignature}`;\n }\n static async generateSignedJwtWithHmac(header, payload, secretKey) {\n const encodedHeader = CryptoUtils.encodeBase64Url(new TextEncoder().encode(JSON.stringify(header)));\n const encodedPayload = CryptoUtils.encodeBase64Url(new TextEncoder().encode(JSON.stringify(payload)));\n const encodedToken = `${encodedHeader}.${encodedPayload}`;\n const signature = await window.crypto.subtle.sign(\n \"HMAC\",\n secretKey,\n new TextEncoder().encode(encodedToken)\n );\n const encodedSignature = CryptoUtils.encodeBase64Url(new Uint8Array(signature));\n return `${encodedToken}.${encodedSignature}`;\n }\n};\n\n// src/utils/CryptoUtils.ts\nvar UUID_V4_TEMPLATE = \"10000000-1000-4000-8000-100000000000\";\nvar toBase64 = (val) => btoa([...new Uint8Array(val)].map((chr) => String.fromCharCode(chr)).join(\"\"));\nvar _CryptoUtils = class _CryptoUtils {\n static _randomWord() {\n const arr = new Uint32Array(1);\n crypto.getRandomValues(arr);\n return arr[0];\n }\n /**\n * Generates RFC4122 version 4 guid\n */\n static generateUUIDv4() {\n const uuid = UUID_V4_TEMPLATE.replace(\n /[018]/g,\n (c) => (+c ^ _CryptoUtils._randomWord() & 15 >> +c / 4).toString(16)\n );\n return uuid.replace(/-/g, \"\");\n }\n /**\n * PKCE: Generate a code verifier\n */\n static generateCodeVerifier() {\n return _CryptoUtils.generateUUIDv4() + _CryptoUtils.generateUUIDv4() + _CryptoUtils.generateUUIDv4();\n }\n /**\n * PKCE: Generate a code challenge\n */\n static async generateCodeChallenge(code_verifier) {\n if (!crypto.subtle) {\n throw new Error(\"Crypto.subtle is available only in secure contexts (HTTPS).\");\n }\n try {\n const encoder = new TextEncoder();\n const data = encoder.encode(code_verifier);\n const hashed = await crypto.subtle.digest(\"SHA-256\", data);\n return toBase64(hashed).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n } catch (err) {\n Logger.error(\"CryptoUtils.generateCodeChallenge\", err);\n throw err;\n }\n }\n /**\n * Generates a base64-encoded string for a basic auth header\n */\n static generateBasicAuth(client_id, client_secret) {\n const encoder = new TextEncoder();\n const data = encoder.encode([client_id, client_secret].join(\":\"));\n return toBase64(data);\n }\n /**\n * Generates a hash of a string using a given algorithm\n * @param alg\n * @param message\n */\n static async hash(alg, message) {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest(alg, msgUint8);\n return new Uint8Array(hashBuffer);\n }\n /**\n * Generates a rfc7638 compliant jwk thumbprint\n * @param jwk\n */\n static async customCalculateJwkThumbprint(jwk) {\n let jsonObject;\n switch (jwk.kty) {\n case \"RSA\":\n jsonObject = {\n \"e\": jwk.e,\n \"kty\": jwk.kty,\n \"n\": jwk.n\n };\n break;\n case \"EC\":\n jsonObject = {\n \"crv\": jwk.crv,\n \"kty\": jwk.kty,\n \"x\": jwk.x,\n \"y\": jwk.y\n };\n break;\n case \"OKP\":\n jsonObject = {\n \"crv\": jwk.crv,\n \"kty\": jwk.kty,\n \"x\": jwk.x\n };\n break;\n case \"oct\":\n jsonObject = {\n \"crv\": jwk.k,\n \"kty\": jwk.kty\n };\n break;\n default:\n throw new Error(\"Unknown jwk type\");\n }\n const utf8encodedAndHashed = await _CryptoUtils.hash(\"SHA-256\", JSON.stringify(jsonObject));\n return _CryptoUtils.encodeBase64Url(utf8encodedAndHashed);\n }\n static async generateDPoPProof({\n url,\n accessToken,\n httpMethod,\n keyPair,\n nonce\n }) {\n let hashedToken;\n let encodedHash;\n const payload = {\n \"jti\": window.crypto.randomUUID(),\n \"htm\": httpMethod != null ? httpMethod : \"GET\",\n \"htu\": url,\n \"iat\": Math.floor(Date.now() / 1e3)\n };\n if (accessToken) {\n hashedToken = await _CryptoUtils.hash(\"SHA-256\", accessToken);\n encodedHash = _CryptoUtils.encodeBase64Url(hashedToken);\n payload.ath = encodedHash;\n }\n if (nonce) {\n payload.nonce = nonce;\n }\n try {\n const publicJwk = await crypto.subtle.exportKey(\"jwk\", keyPair.publicKey);\n const header = {\n \"alg\": \"ES256\",\n \"typ\": \"dpop+jwt\",\n \"jwk\": {\n \"crv\": publicJwk.crv,\n \"kty\": publicJwk.kty,\n \"x\": publicJwk.x,\n \"y\": publicJwk.y\n }\n };\n return await JwtUtils.generateSignedJwt(header, payload, keyPair.privateKey);\n } catch (err) {\n if (err instanceof TypeError) {\n throw new Error(`Error exporting dpop public key: ${err.message}`);\n } else {\n throw err;\n }\n }\n }\n static async generateDPoPJkt(keyPair) {\n try {\n const publicJwk = await crypto.subtle.exportKey(\"jwk\", keyPair.publicKey);\n return await _CryptoUtils.customCalculateJwkThumbprint(publicJwk);\n } catch (err) {\n if (err instanceof TypeError) {\n throw new Error(`Could not retrieve dpop keys from storage: ${err.message}`);\n } else {\n throw err;\n }\n }\n }\n static async generateDPoPKeys() {\n return await window.crypto.subtle.generateKey(\n {\n name: \"ECDSA\",\n namedCurve: \"P-256\"\n },\n false,\n [\"sign\", \"verify\"]\n );\n }\n /**\n * Generates a client assertion JWT for client_secret_jwt authentication\n * @param client_id The client identifier\n * @param client_secret The client secret\n * @param audience The token endpoint URL (audience)\n * @param algorithm The HMAC algorithm to use (HS256, HS384, HS512). Defaults to HS256\n */\n static async generateClientAssertionJwt(client_id, client_secret, audience, algorithm = \"HS256\") {\n const now = Math.floor(Date.now() / 1e3);\n const header = {\n \"alg\": algorithm,\n \"typ\": \"JWT\"\n };\n const payload = {\n \"iss\": client_id,\n \"sub\": client_id,\n \"aud\": audience,\n \"jti\": _CryptoUtils.generateUUIDv4(),\n \"exp\": now + 300,\n // 5 minutes\n \"iat\": now\n };\n const hashMap = {\n \"HS256\": \"SHA-256\",\n \"HS384\": \"SHA-384\",\n \"HS512\": \"SHA-512\"\n };\n const hashFunction = hashMap[algorithm];\n if (!hashFunction) {\n throw new Error(`Unsupported algorithm: ${algorithm}. Supported algorithms are: HS256, HS384, HS512`);\n }\n const encoder = new TextEncoder();\n const secretKey = await crypto.subtle.importKey(\n \"raw\",\n encoder.encode(client_secret),\n { name: \"HMAC\", hash: hashFunction },\n false,\n [\"sign\"]\n );\n return await JwtUtils.generateSignedJwtWithHmac(header, payload, secretKey);\n }\n};\n/**\n * Generates a base64url encoded string\n */\n_CryptoUtils.encodeBase64Url = (input) => {\n return toBase64(input).replace(/=/g, \"\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n};\nvar CryptoUtils = _CryptoUtils;\n\n// src/utils/Event.ts\nvar Event = class {\n constructor(_name) {\n this._name = _name;\n this._callbacks = [];\n this._logger = new Logger(`Event('${this._name}')`);\n }\n addHandler(cb) {\n this._callbacks.push(cb);\n return () => this.removeHandler(cb);\n }\n removeHandler(cb) {\n const idx = this._callbacks.lastIndexOf(cb);\n if (idx >= 0) {\n this._callbacks.splice(idx, 1);\n }\n }\n async raise(...ev) {\n this._logger.debug(\"raise:\", ...ev);\n for (const cb of this._callbacks) {\n await cb(...ev);\n }\n }\n};\n\n// src/utils/PopupUtils.ts\nvar PopupUtils = class {\n /**\n * Populates a map of window features with a placement centered in front of\n * the current window. If no explicit width is given, a default value is\n * binned into [800, 720, 600, 480, 360] based on the current window's width.\n */\n static center({ ...features }) {\n var _a, _b, _c;\n if (features.width == null)\n features.width = (_a = [800, 720, 600, 480].find((width) => width <= window.outerWidth / 1.618)) != null ? _a : 360;\n (_b = features.left) != null ? _b : features.left = Math.max(0, Math.round(window.screenX + (window.outerWidth - features.width) / 2));\n if (features.height != null)\n (_c = features.top) != null ? _c : features.top = Math.max(0, Math.round(window.screenY + (window.outerHeight - features.height) / 2));\n return features;\n }\n static serialize(features) {\n return Object.entries(features).filter(([, value]) => value != null).map(([key, value]) => `${key}=${typeof value !== \"boolean\" ? value : value ? \"yes\" : \"no\"}`).join(\",\");\n }\n};\n\n// src/utils/Timer.ts\nvar Timer = class _Timer extends Event {\n constructor() {\n super(...arguments);\n this._logger = new Logger(`Timer('${this._name}')`);\n this._timerHandle = null;\n this._expiration = 0;\n this._callback = () => {\n const diff = this._expiration - _Timer.getEpochTime();\n this._logger.debug(\"timer completes in\", diff);\n if (this._expiration <= _Timer.getEpochTime()) {\n this.cancel();\n void super.raise();\n }\n };\n }\n // get the time\n static getEpochTime() {\n return Math.floor(Date.now() / 1e3);\n }\n init(durationInSeconds) {\n const logger2 = this._logger.create(\"init\");\n durationInSeconds = Math.max(Math.floor(durationInSeconds), 1);\n const expiration = _Timer.getEpochTime() + durationInSeconds;\n if (this.expiration === expiration && this._timerHandle) {\n logger2.debug(\"skipping since already initialized for expiration at\", this.expiration);\n return;\n }\n this.cancel();\n logger2.debug(\"using duration\", durationInSeconds);\n this._expiration = expiration;\n const timerDurationInSeconds = Math.min(durationInSeconds, 5);\n this._timerHandle = setInterval(this._callback, timerDurationInSeconds * 1e3);\n }\n get expiration() {\n return this._expiration;\n }\n cancel() {\n this._logger.create(\"cancel\");\n if (this._timerHandle) {\n clearInterval(this._timerHandle);\n this._timerHandle = null;\n }\n }\n};\n\n// src/utils/UrlUtils.ts\nvar UrlUtils = class {\n static readParams(url, responseMode = \"query\") {\n if (!url) throw new TypeError(\"Invalid URL\");\n const parsedUrl = new URL(url, \"http://127.0.0.1\");\n const params = parsedUrl[responseMode === \"fragment\" ? \"hash\" : \"search\"];\n return new URLSearchParams(params.slice(1));\n }\n};\nvar URL_STATE_DELIMITER = \";\";\n\n// src/errors/ErrorResponse.ts\nvar ErrorResponse = class extends Error {\n constructor(args, form) {\n var _a, _b, _c;\n super(args.error_description || args.error || \"\");\n this.form = form;\n /** Marker to detect class: \"ErrorResponse\" */\n this.name = \"ErrorResponse\";\n if (!args.error) {\n Logger.error(\"ErrorResponse\", \"No error passed\");\n throw new Error(\"No error passed\");\n }\n this.error = args.error;\n this.error_description = (_a = args.error_description) != null ? _a : null;\n this.error_uri = (_b = args.error_uri) != null ? _b : null;\n this.state = args.userState;\n this.session_state = (_c = args.session_state) != null ? _c : null;\n this.url_state = args.url_state;\n }\n};\n\n// src/errors/ErrorTimeout.ts\nvar ErrorTimeout = class extends Error {\n constructor(message) {\n super(message);\n /** Marker to detect class: \"ErrorTimeout\" */\n this.name = \"ErrorTimeout\";\n }\n};\n\n// src/AccessTokenEvents.ts\nvar AccessTokenEvents = class {\n constructor(args) {\n this._logger = new Logger(\"AccessTokenEvents\");\n this._expiringTimer = new Timer(\"Access token expiring\");\n this._expiredTimer = new Timer(\"Access token expired\");\n this._expiringNotificationTimeInSeconds = args.expiringNotificationTimeInSeconds;\n }\n async load(container) {\n const logger2 = this._logger.create(\"load\");\n if (container.access_token && container.expires_in !== void 0) {\n const duration = container.expires_in;\n logger2.debug(\"access token present, remaining duration:\", duration);\n if (duration > 0) {\n let expiring = duration - this._expiringNotificationTimeInSeconds;\n if (expiring <= 0) {\n expiring = 1;\n }\n logger2.debug(\"registering expiring timer, raising in\", expiring, \"seconds\");\n this._expiringTimer.init(expiring);\n } else {\n logger2.debug(\"canceling existing expiring timer because we're past expiration.\");\n this._expiringTimer.cancel();\n }\n const expired = duration + 1;\n logger2.debug(\"registering expired timer, raising in\", expired, \"seconds\");\n this._expiredTimer.init(expired);\n } else {\n this._expiringTimer.cancel();\n this._expiredTimer.cancel();\n }\n }\n async unload() {\n this._logger.debug(\"unload: canceling existing access token timers\");\n this._expiringTimer.cancel();\n this._expiredTimer.cancel();\n }\n /**\n * Add callback: Raised prior to the access token expiring.\n */\n addAccessTokenExpiring(cb) {\n return this._expiringTimer.addHandler(cb);\n }\n /**\n * Remove callback: Raised prior to the access token expiring.\n */\n removeAccessTokenExpiring(cb) {\n this._expiringTimer.removeHandler(cb);\n }\n /**\n * Add callback: Raised after the access token has expired.\n */\n addAccessTokenExpired(cb) {\n return this._expiredTimer.addHandler(cb);\n }\n /**\n * Remove callback: Raised after the access token has expired.\n */\n removeAccessTokenExpired(cb) {\n this._expiredTimer.removeHandler(cb);\n }\n};\n\n// src/CheckSessionIFrame.ts\nvar CheckSessionIFrame = class {\n constructor(_callback, _client_id, url, _intervalInSeconds, _stopOnError) {\n this._callback = _callback;\n this._client_id = _client_id;\n this._intervalInSeconds = _intervalInSeconds;\n this._stopOnError = _stopOnError;\n this._logger = new Logger(\"CheckSessionIFrame\");\n this._timer = null;\n this._session_state = null;\n this._message = (e) => {\n if (e.origin === this._frame_origin && e.source === this._frame.contentWindow) {\n if (e.data === \"error\") {\n this._logger.error(\"error message from check session op iframe\");\n if (this._stopOnError) {\n this.stop();\n }\n } else if (e.data === \"changed\") {\n this._logger.debug(\"changed message from check session op iframe\");\n this.stop();\n void this._callback();\n } else {\n this._logger.debug(e.data + \" message from check session op iframe\");\n }\n }\n };\n const parsedUrl = new URL(url);\n this._frame_origin = parsedUrl.origin;\n this._frame = window.document.createElement(\"iframe\");\n this._frame.style.visibility = \"hidden\";\n this._frame.style.position = \"fixed\";\n this._frame.style.left = \"-1000px\";\n this._frame.style.top = \"0\";\n this._frame.width = \"0\";\n this._frame.height = \"0\";\n this._frame.src = parsedUrl.href;\n }\n load() {\n return new Promise((resolve) => {\n this._frame.onload = () => {\n resolve();\n };\n window.document.body.appendChild(this._frame);\n window.addEventListener(\"message\", this._message, false);\n });\n }\n start(session_state) {\n if (this._session_state === session_state) {\n return;\n }\n this._logger.create(\"start\");\n this.stop();\n this._session_state = session_state;\n const send = () => {\n if (!this._frame.contentWindow || !this._session_state) {\n return;\n }\n this._frame.contentWindow.postMessage(this._client_id + \" \" + this._session_state, this._frame_origin);\n };\n send();\n this._timer = setInterval(send, this._intervalInSeconds * 1e3);\n }\n stop() {\n this._logger.create(\"stop\");\n this._session_state = null;\n if (this._timer) {\n clearInterval(this._timer);\n this._timer = null;\n }\n }\n};\n\n// src/InMemoryWebStorage.ts\nvar InMemoryWebStorage = class {\n constructor() {\n this._logger = new Logger(\"InMemoryWebStorage\");\n this._data = {};\n }\n clear() {\n this._logger.create(\"clear\");\n this._data = {};\n }\n getItem(key) {\n this._logger.create(`getItem('${key}')`);\n return this._data[key];\n }\n setItem(key, value) {\n this._logger.create(`setItem('${key}')`);\n this._data[key] = value;\n }\n removeItem(key) {\n this._logger.create(`removeItem('${key}')`);\n delete this._data[key];\n }\n get length() {\n return Object.getOwnPropertyNames(this._data).length;\n }\n key(index) {\n return Object.getOwnPropertyNames(this._data)[index];\n }\n};\n\n// src/errors/ErrorDPoPNonce.ts\nvar ErrorDPoPNonce = class extends Error {\n constructor(nonce, message) {\n super(message);\n /** Marker to detect class: \"ErrorDPoPNonce\" */\n this.name = \"ErrorDPoPNonce\";\n this.nonce = nonce;\n }\n};\n\n// src/JsonService.ts\nvar JsonService = class {\n constructor(additionalContentTypes = [], _jwtHandler = null, _extraHeaders = {}) {\n this._jwtHandler = _jwtHandler;\n this._extraHeaders = _extraHeaders;\n this._logger = new Logger(\"JsonService\");\n this._contentTypes = [];\n this._contentTypes.push(...additionalContentTypes, \"application/json\");\n if (_jwtHandler) {\n this._contentTypes.push(\"application/jwt\");\n }\n }\n async fetchWithTimeout(input, init = {}) {\n const { timeoutInSeconds, ...initFetch } = init;\n if (!timeoutInSeconds) {\n return await fetch(input, initFetch);\n }\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutInSeconds * 1e3);\n try {\n const response = await fetch(input, {\n ...init,\n signal: controller.signal\n });\n return response;\n } catch (err) {\n if (err instanceof DOMException && err.name === \"AbortError\") {\n throw new ErrorTimeout(\"Network timed out\");\n }\n throw err;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n async getJson(url, {\n token,\n credentials,\n timeoutInSeconds\n } = {}) {\n const logger2 = this._logger.create(\"getJson\");\n const headers = {\n \"Accept\": this._contentTypes.join(\", \")\n };\n if (token) {\n logger2.debug(\"token passed, setting Authorization header\");\n headers[\"Authorization\"] = \"Bearer \" + token;\n }\n this._appendExtraHeaders(headers);\n let response;\n try {\n logger2.debug(\"url:\", url);\n response = await this.fetchWithTimeout(url, { method: \"GET\", headers, timeoutInSeconds, credentials });\n } catch (err) {\n logger2.error(\"Network Error\");\n throw err;\n }\n logger2.debug(\"HTTP response received, status\", response.status);\n const contentType = response.headers.get(\"Content-Type\");\n if (contentType && !this._contentTypes.find((item) => contentType.startsWith(item))) {\n logger2.throw(new Error(`Invalid response Content-Type: ${contentType != null ? contentType : \"undefined\"}, from URL: ${url}`));\n }\n if (response.ok && this._jwtHandler && (contentType == null ? void 0 : contentType.startsWith(\"application/jwt\"))) {\n return await this._jwtHandler(await response.text());\n }\n let json;\n try {\n json = await response.json();\n } catch (err) {\n logger2.error(\"Error parsing JSON response\", err);\n if (response.ok) throw err;\n throw new Error(`${response.statusText} (${response.status})`);\n }\n if (!response.ok) {\n logger2.error(\"Error from server:\", json);\n if (json.error) {\n throw new ErrorResponse(json);\n }\n throw new Error(`${response.statusText} (${response.status}): ${JSON.stringify(json)}`);\n }\n return json;\n }\n async postForm(url, {\n body,\n basicAuth,\n timeoutInSeconds,\n initCredentials,\n extraHeaders\n }) {\n const logger2 = this._logger.create(\"postForm\");\n const headers = {\n \"Accept\": this._contentTypes.join(\", \"),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n ...extraHeaders\n };\n if (basicAuth !== void 0) {\n headers[\"Authorization\"] = \"Basic \" + basicAuth;\n }\n this._appendExtraHeaders(headers);\n let response;\n try {\n logger2.debug(\"url:\", url);\n response = await this.fetchWithTimeout(url, { method: \"POST\", headers, body, timeoutInSeconds, credentials: initCredentials });\n } catch (err) {\n logger2.error(\"Network error\");\n throw err;\n }\n logger2.debug(\"HTTP response received, status\", response.status);\n const contentType = response.headers.get(\"Content-Type\");\n if (contentType && !this._contentTypes.find((item) => contentType.startsWith(item))) {\n throw new Error(`Invalid response Content-Type: ${contentType != null ? contentType : \"undefined\"}, from URL: ${url}`);\n }\n const responseText = await response.text();\n let json = {};\n if (responseText) {\n try {\n json = JSON.parse(responseText);\n } catch (err) {\n logger2.error(\"Error parsing JSON response\", err);\n if (response.ok) throw err;\n throw new Error(`${response.statusText} (${response.status})`);\n }\n }\n if (!response.ok) {\n logger2.error(\"Error from server:\", json);\n if (response.headers.has(\"dpop-nonce\")) {\n const nonce = response.headers.get(\"dpop-nonce\");\n throw new ErrorDPoPNonce(nonce, `${JSON.stringify(json)}`);\n }\n if (json.error) {\n throw new ErrorResponse(json, body);\n }\n throw new Error(`${response.statusText} (${response.status}): ${JSON.stringify(json)}`);\n }\n return json;\n }\n _appendExtraHeaders(headers) {\n const logger2 = this._logger.create(\"appendExtraHeaders\");\n const customKeys = Object.keys(this._extraHeaders);\n const protectedHeaders = [\n \"accept\",\n \"content-type\"\n ];\n const preventOverride = [\n \"authorization\"\n ];\n if (customKeys.length === 0) {\n return;\n }\n customKeys.forEach((headerName) => {\n if (protectedHeaders.includes(headerName.toLocaleLowerCase())) {\n logger2.warn(\"Protected header could not be set\", headerName, protectedHeaders);\n return;\n }\n if (preventOverride.includes(headerName.toLocaleLowerCase()) && Object.keys(headers).includes(headerName)) {\n logger2.warn(\"Header could not be overridden\", headerName, preventOverride);\n return;\n }\n const content = typeof this._extraHeaders[headerName] === \"function\" ? this._extraHeaders[headerName]() : this._extraHeaders[headerName];\n if (content && content !== \"\") {\n headers[headerName] = content;\n }\n });\n }\n};\n\n// src/MetadataService.ts\nvar MetadataService = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"MetadataService\");\n this._signingKeys = null;\n this._metadata = null;\n this._metadataUrl = this._settings.metadataUrl;\n this._jsonService = new JsonService(\n [\"application/jwk-set+json\"],\n null,\n this._settings.extraHeaders\n );\n if (this._settings.signingKeys) {\n this._logger.debug(\"using signingKeys from settings\");\n this._signingKeys = this._settings.signingKeys;\n }\n if (this._settings.metadata) {\n this._logger.debug(\"using metadata from settings\");\n this._metadata = this._settings.metadata;\n }\n if (this._settings.fetchRequestCredentials) {\n this._logger.debug(\"using fetchRequestCredentials from settings\");\n this._fetchRequestCredentials = this._settings.fetchRequestCredentials;\n }\n }\n resetSigningKeys() {\n this._signingKeys = null;\n }\n async getMetadata() {\n const logger2 = this._logger.create(\"getMetadata\");\n if (this._metadata) {\n logger2.debug(\"using cached values\");\n return this._metadata;\n }\n if (!this._metadataUrl) {\n logger2.throw(new Error(\"No authority or metadataUrl configured on settings\"));\n throw null;\n }\n logger2.debug(\"getting metadata from\", this._metadataUrl);\n const metadata = await this._jsonService.getJson(this._metadataUrl, { credentials: this._fetchRequestCredentials, timeoutInSeconds: this._settings.requestTimeoutInSeconds });\n logger2.debug(\"merging remote JSON with seed metadata\");\n this._metadata = Object.assign({}, metadata, this._settings.metadataSeed);\n return this._metadata;\n }\n getIssuer() {\n return this._getMetadataProperty(\"issuer\");\n }\n getAuthorizationEndpoint() {\n return this._getMetadataProperty(\"authorization_endpoint\");\n }\n getUserInfoEndpoint() {\n return this._getMetadataProperty(\"userinfo_endpoint\");\n }\n getTokenEndpoint(optional = true) {\n return this._getMetadataProperty(\"token_endpoint\", optional);\n }\n getCheckSessionIframe() {\n return this._getMetadataProperty(\"check_session_iframe\", true);\n }\n getEndSessionEndpoint() {\n return this._getMetadataProperty(\"end_session_endpoint\", true);\n }\n getRevocationEndpoint(optional = true) {\n return this._getMetadataProperty(\"revocation_endpoint\", optional);\n }\n getKeysEndpoint(optional = true) {\n return this._getMetadataProperty(\"jwks_uri\", optional);\n }\n async _getMetadataProperty(name, optional = false) {\n const logger2 = this._logger.create(`_getMetadataProperty('${name}')`);\n const metadata = await this.getMetadata();\n logger2.debug(\"resolved\");\n if (metadata[name] === void 0) {\n if (optional === true) {\n logger2.warn(\"Metadata does not contain optional property\");\n return void 0;\n }\n logger2.throw(new Error(\"Metadata does not contain property \" + name));\n }\n return metadata[name];\n }\n async getSigningKeys() {\n const logger2 = this._logger.create(\"getSigningKeys\");\n if (this._signingKeys) {\n logger2.debug(\"returning signingKeys from cache\");\n return this._signingKeys;\n }\n const jwks_uri = await this.getKeysEndpoint(false);\n logger2.debug(\"got jwks_uri\", jwks_uri);\n const keySet = await this._jsonService.getJson(jwks_uri, { timeoutInSeconds: this._settings.requestTimeoutInSeconds });\n logger2.debug(\"got key set\", keySet);\n if (!Array.isArray(keySet.keys)) {\n logger2.throw(new Error(\"Missing keys on keyset\"));\n throw null;\n }\n this._signingKeys = keySet.keys;\n return this._signingKeys;\n }\n};\n\n// src/WebStorageStateStore.ts\nvar WebStorageStateStore = class {\n constructor({\n prefix = \"oidc.\",\n store = localStorage\n } = {}) {\n this._logger = new Logger(\"WebStorageStateStore\");\n this._store = store;\n this._prefix = prefix;\n }\n async set(key, value) {\n this._logger.create(`set('${key}')`);\n key = this._prefix + key;\n await this._store.setItem(key, value);\n }\n async get(key) {\n this._logger.create(`get('${key}')`);\n key = this._prefix + key;\n const item = await this._store.getItem(key);\n return item;\n }\n async remove(key) {\n this._logger.create(`remove('${key}')`);\n key = this._prefix + key;\n const item = await this._store.getItem(key);\n await this._store.removeItem(key);\n return item;\n }\n async getAllKeys() {\n this._logger.create(\"getAllKeys\");\n const len = await this._store.length;\n const keys = [];\n for (let index = 0; index < len; index++) {\n const key = await this._store.key(index);\n if (key && key.indexOf(this._prefix) === 0) {\n keys.push(key.substr(this._prefix.length));\n }\n }\n return keys;\n }\n};\n\n// src/OidcClientSettings.ts\nvar DefaultResponseType = \"code\";\nvar DefaultScope = \"openid\";\nvar DefaultClientAuthentication = \"client_secret_post\";\nvar DefaultStaleStateAgeInSeconds = 60 * 15;\nvar OidcClientSettingsStore = class {\n constructor({\n // metadata related\n authority,\n metadataUrl,\n metadata,\n signingKeys,\n metadataSeed,\n // client related\n client_id,\n client_secret,\n response_type = DefaultResponseType,\n scope = DefaultScope,\n redirect_uri,\n post_logout_redirect_uri,\n client_authentication = DefaultClientAuthentication,\n token_endpoint_auth_signing_alg = \"HS256\",\n // optional protocol\n prompt,\n display,\n max_age,\n ui_locales,\n acr_values,\n resource,\n response_mode,\n // behavior flags\n filterProtocolClaims = true,\n loadUserInfo = false,\n requestTimeoutInSeconds,\n staleStateAgeInSeconds = DefaultStaleStateAgeInSeconds,\n mergeClaimsStrategy = { array: \"replace\" },\n disablePKCE = false,\n // other behavior\n stateStore,\n revokeTokenAdditionalContentTypes,\n fetchRequestCredentials,\n refreshTokenAllowedScope,\n // extra\n extraQueryParams = {},\n extraTokenParams = {},\n extraHeaders = {},\n dpop,\n omitScopeWhenRequesting = false\n }) {\n var _a;\n this.authority = authority;\n if (metadataUrl) {\n this.metadataUrl = metadataUrl;\n } else {\n this.metadataUrl = authority;\n if (authority) {\n if (!this.metadataUrl.endsWith(\"/\")) {\n this.metadataUrl += \"/\";\n }\n this.metadataUrl += \".well-known/openid-configuration\";\n }\n }\n this.metadata = metadata;\n this.metadataSeed = metadataSeed;\n this.signingKeys = signingKeys;\n this.client_id = client_id;\n this.client_secret = client_secret;\n this.response_type = response_type;\n this.scope = scope;\n this.redirect_uri = redirect_uri;\n this.post_logout_redirect_uri = post_logout_redirect_uri;\n this.client_authentication = client_authentication;\n this.token_endpoint_auth_signing_alg = token_endpoint_auth_signing_alg;\n this.prompt = prompt;\n this.display = display;\n this.max_age = max_age;\n this.ui_locales = ui_locales;\n this.acr_values = acr_values;\n this.resource = resource;\n this.response_mode = response_mode;\n this.filterProtocolClaims = filterProtocolClaims != null ? filterProtocolClaims : true;\n this.loadUserInfo = !!loadUserInfo;\n this.staleStateAgeInSeconds = staleStateAgeInSeconds;\n this.mergeClaimsStrategy = mergeClaimsStrategy;\n this.omitScopeWhenRequesting = omitScopeWhenRequesting;\n this.disablePKCE = !!disablePKCE;\n this.revokeTokenAdditionalContentTypes = revokeTokenAdditionalContentTypes;\n this.fetchRequestCredentials = fetchRequestCredentials ? fetchRequestCredentials : \"same-origin\";\n this.requestTimeoutInSeconds = requestTimeoutInSeconds;\n if (stateStore) {\n this.stateStore = stateStore;\n } else {\n const store = typeof window !== \"undefined\" ? window.localStorage : new InMemoryWebStorage();\n this.stateStore = new WebStorageStateStore({ store });\n }\n this.refreshTokenAllowedScope = refreshTokenAllowedScope;\n this.extraQueryParams = extraQueryParams;\n this.extraTokenParams = extraTokenParams;\n this.extraHeaders = extraHeaders;\n this.dpop = dpop;\n if (this.dpop && !((_a = this.dpop) == null ? void 0 : _a.store)) {\n throw new Error(\"A DPoPStore is required when dpop is enabled\");\n }\n }\n};\n\n// src/UserInfoService.ts\nvar UserInfoService = class {\n constructor(_settings, _metadataService) {\n this._settings = _settings;\n this._metadataService = _metadataService;\n this._logger = new Logger(\"UserInfoService\");\n this._getClaimsFromJwt = async (responseText) => {\n const logger2 = this._logger.create(\"_getClaimsFromJwt\");\n try {\n const payload = JwtUtils.decode(responseText);\n logger2.debug(\"JWT decoding successful\");\n return payload;\n } catch (err) {\n logger2.error(\"Error parsing JWT response\");\n throw err;\n }\n };\n this._jsonService = new JsonService(\n void 0,\n this._getClaimsFromJwt,\n this._settings.extraHeaders\n );\n }\n async getClaims(token) {\n const logger2 = this._logger.create(\"getClaims\");\n if (!token) {\n this._logger.throw(new Error(\"No token passed\"));\n }\n const url = await this._metadataService.getUserInfoEndpoint();\n logger2.debug(\"got userinfo url\", url);\n const claims = await this._jsonService.getJson(url, {\n token,\n credentials: this._settings.fetchRequestCredentials,\n timeoutInSeconds: this._settings.requestTimeoutInSeconds\n });\n logger2.debug(\"got claims\", claims);\n return claims;\n }\n};\n\n// src/TokenClient.ts\nvar TokenClient = class {\n constructor(_settings, _metadataService) {\n this._settings = _settings;\n this._metadataService = _metadataService;\n this._logger = new Logger(\"TokenClient\");\n this._jsonService = new JsonService(\n this._settings.revokeTokenAdditionalContentTypes,\n null,\n this._settings.extraHeaders\n );\n }\n /**\n * Exchange code.\n *\n * @see https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3\n */\n async exchangeCode({\n grant_type = \"authorization_code\",\n redirect_uri = this._settings.redirect_uri,\n client_id = this._settings.client_id,\n client_secret = this._settings.client_secret,\n extraHeaders,\n ...args\n }) {\n const logger2 = this._logger.create(\"exchangeCode\");\n if (!client_id) {\n logger2.throw(new Error(\"A client_id is required\"));\n }\n if (!redirect_uri) {\n logger2.throw(new Error(\"A redirect_uri is required\"));\n }\n if (!args.code) {\n logger2.throw(new Error(\"A code is required\"));\n }\n const params = new URLSearchParams({ grant_type, redirect_uri });\n for (const [key, value] of Object.entries(args)) {\n if (value != null) {\n params.set(key, value);\n }\n }\n if ((this._settings.client_authentication === \"client_secret_basic\" || this._settings.client_authentication === \"client_secret_jwt\") && (client_secret === void 0 || client_secret === null)) {\n logger2.throw(new Error(\"A client_secret is required\"));\n throw null;\n }\n let basicAuth;\n const url = await this._metadataService.getTokenEndpoint(false);\n switch (this._settings.client_authentication) {\n case \"client_secret_basic\":\n basicAuth = CryptoUtils.generateBasicAuth(client_id, client_secret);\n break;\n case \"client_secret_post\":\n params.append(\"client_id\", client_id);\n if (client_secret) {\n params.append(\"client_secret\", client_secret);\n }\n break;\n case \"client_secret_jwt\": {\n const clientAssertion = await CryptoUtils.generateClientAssertionJwt(client_id, client_secret, url, this._settings.token_endpoint_auth_signing_alg);\n params.append(\"client_id\", client_id);\n params.append(\"client_assertion_type\", \"urn:ietf:params:oauth:client-assertion-type:jwt-bearer\");\n params.append(\"client_assertion\", clientAssertion);\n break;\n }\n }\n logger2.debug(\"got token endpoint\");\n const response = await this._jsonService.postForm(url, {\n body: params,\n basicAuth,\n timeoutInSeconds: this._settings.requestTimeoutInSeconds,\n initCredentials: this._settings.fetchRequestCredentials,\n extraHeaders\n });\n logger2.debug(\"got response\");\n return response;\n }\n /**\n * Exchange credentials.\n *\n * @see https://www.rfc-editor.org/rfc/rfc6749#section-4.3.2\n */\n async exchangeCredentials({\n grant_type = \"password\",\n client_id = this._settings.client_id,\n client_secret = this._settings.client_secret,\n scope = this._settings.scope,\n ...args\n }) {\n const logger2 = this._logger.create(\"exchangeCredentials\");\n if (!client_id) {\n logger2.throw(new Error(\"A client_id is required\"));\n }\n const params = new URLSearchParams({ grant_type });\n if (!this._settings.omitScopeWhenRequesting) {\n params.set(\"scope\", scope);\n }\n for (const [key, value] of Object.entries(args)) {\n if (value != null) {\n params.set(key, value);\n }\n }\n if ((this._settings.client_authentication === \"client_secret_basic\" || this._settings.client_authentication === \"client_secret_jwt\") && (client_secret === void 0 || client_secret === null)) {\n logger2.throw(new Error(\"A client_secret is required\"));\n throw null;\n }\n let basicAuth;\n const url = await this._metadataService.getTokenEndpoint(false);\n switch (this._settings.client_authentication) {\n case \"client_secret_basic\":\n basicAuth = CryptoUtils.generateBasicAuth(client_id, client_secret);\n break;\n case \"client_secret_post\":\n params.append(\"client_id\", client_id);\n if (client_secret) {\n params.append(\"client_secret\", client_secret);\n }\n break;\n case \"client_secret_jwt\": {\n const clientAssertion = await CryptoUtils.generateClientAssertionJwt(client_id, client_secret, url, this._settings.token_endpoint_auth_signing_alg);\n params.append(\"client_id\", client_id);\n params.append(\"client_assertion_type\", \"urn:ietf:params:oauth:client-assertion-type:jwt-bearer\");\n params.append(\"client_assertion\", clientAssertion);\n break;\n }\n }\n logger2.debug(\"got token endpoint\");\n const response = await this._jsonService.postForm(url, { body: params, basicAuth, timeoutInSeconds: this._settings.requestTimeoutInSeconds, initCredentials: this._settings.fetchRequestCredentials });\n logger2.debug(\"got response\");\n return response;\n }\n /**\n * Exchange a refresh token.\n *\n * @see https://www.rfc-editor.org/rfc/rfc6749#section-6\n */\n async exchangeRefreshToken({\n grant_type = \"refresh_token\",\n client_id = this._settings.client_id,\n client_secret = this._settings.client_secret,\n timeoutInSeconds,\n extraHeaders,\n ...args\n }) {\n const logger2 = this._logger.create(\"exchangeRefreshToken\");\n if (!client_id) {\n logger2.throw(new Error(\"A client_id is required\"));\n }\n if (!args.refresh_token) {\n logger2.throw(new Error(\"A refresh_token is required\"));\n }\n const params = new URLSearchParams({ grant_type });\n for (const [key, value] of Object.entries(args)) {\n if (Array.isArray(value)) {\n value.forEach((param) => params.append(key, param));\n } else if (value != null) {\n params.set(key, value);\n }\n }\n if ((this._settings.client_authentication === \"client_secret_basic\" || this._settings.client_authentication === \"client_secret_jwt\") && (client_secret === void 0 || client_secret === null)) {\n logger2.throw(new Error(\"A client_secret is required\"));\n throw null;\n }\n let basicAuth;\n const url = await this._metadataService.getTokenEndpoint(false);\n switch (this._settings.client_authentication) {\n case \"client_secret_basic\":\n basicAuth = CryptoUtils.generateBasicAuth(client_id, client_secret);\n break;\n case \"client_secret_post\":\n params.append(\"client_id\", client_id);\n if (client_secret) {\n params.append(\"client_secret\", client_secret);\n }\n break;\n case \"client_secret_jwt\": {\n const clientAssertion = await CryptoUtils.generateClientAssertionJwt(client_id, client_secret, url, this._settings.token_endpoint_auth_signing_alg);\n params.append(\"client_id\", client_id);\n params.append(\"client_assertion_type\", \"urn:ietf:params:oauth:client-assertion-type:jwt-bearer\");\n params.append(\"client_assertion\", clientAssertion);\n break;\n }\n }\n logger2.debug(\"got token endpoint\");\n const response = await this._jsonService.postForm(url, { body: params, basicAuth, timeoutInSeconds, initCredentials: this._settings.fetchRequestCredentials, extraHeaders });\n logger2.debug(\"got response\");\n return response;\n }\n /**\n * Revoke an access or refresh token.\n *\n * @see https://datatracker.ietf.org/doc/html/rfc7009#section-2.1\n */\n async revoke(args) {\n var _a;\n const logger2 = this._logger.create(\"revoke\");\n if (!args.token) {\n logger2.throw(new Error(\"A token is required\"));\n }\n const url = await this._metadataService.getRevocationEndpoint(false);\n logger2.debug(`got revocation endpoint, revoking ${(_a = args.token_type_hint) != null ? _a : \"default token type\"}`);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(args)) {\n if (value != null) {\n params.set(key, value);\n }\n }\n params.set(\"client_id\", this._settings.client_id);\n if (this._settings.client_secret) {\n params.set(\"client_secret\", this._settings.client_secret);\n }\n await this._jsonService.postForm(url, { body: params, timeoutInSeconds: this._settings.requestTimeoutInSeconds });\n logger2.debug(\"got response\");\n }\n};\n\n// src/ResponseValidator.ts\nvar ResponseValidator = class {\n constructor(_settings, _metadataService, _claimsService) {\n this._settings = _settings;\n this._metadataService = _metadataService;\n this._claimsService = _claimsService;\n this._logger = new Logger(\"ResponseValidator\");\n this._userInfoService = new UserInfoService(this._settings, this._metadataService);\n this._tokenClient = new TokenClient(this._settings, this._metadataService);\n }\n async validateSigninResponse(response, state, extraHeaders) {\n const logger2 = this._logger.create(\"validateSigninResponse\");\n this._processSigninState(response, state);\n logger2.debug(\"state processed\");\n await this._processCode(response, state, extraHeaders);\n logger2.debug(\"code processed\");\n if (response.isOpenId) {\n this._validateIdTokenAttributes(response, \"\", state.nonce);\n }\n logger2.debug(\"tokens validated\");\n await this._processClaims(response, state == null ? void 0 : state.skipUserInfo, response.isOpenId);\n logger2.debug(\"claims processed\");\n }\n async validateCredentialsResponse(response, skipUserInfo) {\n const logger2 = this._logger.create(\"validateCredentialsResponse\");\n const shouldValidateSubClaim = response.isOpenId && !!response.id_token;\n if (shouldValidateSubClaim) {\n this._validateIdTokenAttributes(response);\n }\n logger2.debug(\"tokens validated\");\n await this._processClaims(response, skipUserInfo, shouldValidateSubClaim);\n logger2.debug(\"claims processed\");\n }\n async validateRefreshResponse(response, state) {\n var _a, _b;\n const logger2 = this._logger.create(\"validateRefreshResponse\");\n response.userState = state.data;\n (_a = response.session_state) != null ? _a : response.session_state = state.session_state;\n (_b = response.scope) != null ? _b : response.scope = state.scope;\n if (response.isOpenId && !!response.id_token) {\n this._validateIdTokenAttributes(response, state.id_token);\n logger2.debug(\"ID Token validated\");\n }\n if (!response.id_token) {\n response.id_token = state.id_token;\n response.profile = state.profile;\n }\n const hasIdToken = response.isOpenId && !!response.id_token;\n await this._processClaims(response, false, hasIdToken);\n logger2.debug(\"claims processed\");\n }\n validateSignoutResponse(response, state) {\n const logger2 = this._logger.create(\"validateSignoutResponse\");\n if (state.id !== response.state) {\n logger2.throw(new Error(\"State does not match\"));\n }\n logger2.debug(\"state validated\");\n response.userState = state.data;\n if (response.error) {\n logger2.warn(\"Response was error\", response.error);\n throw new ErrorResponse(response);\n }\n }\n _processSigninState(response, state) {\n var _a;\n const logger2 = this._logger.create(\"_processSigninState\");\n if (state.id !== response.state) {\n logger2.throw(new Error(\"State does not match\"));\n }\n if (!state.client_id) {\n logger2.throw(new Error(\"No client_id on state\"));\n }\n if (!state.authority) {\n logger2.throw(new Error(\"No authority on state\"));\n }\n if (this._settings.authority !== state.authority) {\n logger2.throw(new Error(\"authority mismatch on settings vs. signin state\"));\n }\n if (this._settings.client_id && this._settings.client_id !== state.client_id) {\n logger2.throw(new Error(\"client_id mismatch on settings vs. signin state\"));\n }\n logger2.debug(\"state validated\");\n response.userState = state.data;\n response.url_state = state.url_state;\n (_a = response.scope) != null ? _a : response.scope = state.scope;\n if (response.error) {\n logger2.warn(\"Response was error\", response.error);\n throw new ErrorResponse(response);\n }\n if (state.code_verifier && !response.code) {\n logger2.throw(new Error(\"Expected code in response\"));\n }\n }\n async _processClaims(response, skipUserInfo = false, validateSub = true) {\n const logger2 = this._logger.create(\"_processClaims\");\n response.profile = this._claimsService.filterProtocolClaims(response.profile);\n if (skipUserInfo || !this._settings.loadUserInfo || !response.access_token) {\n logger2.debug(\"not loading user info\");\n return;\n }\n logger2.debug(\"loading user info\");\n const claims = await this._userInfoService.getClaims(response.access_token);\n logger2.debug(\"user info claims received from user info endpoint\");\n if (validateSub && claims.sub !== response.profile.sub) {\n logger2.throw(new Error(\"subject from UserInfo response does not match subject in ID Token\"));\n }\n response.profile = this._claimsService.mergeClaims(response.profile, this._claimsService.filterProtocolClaims(claims));\n logger2.debug(\"user info claims received, updated profile:\", response.profile);\n }\n async _processCode(response, state, extraHeaders) {\n const logger2 = this._logger.create(\"_processCode\");\n if (response.code) {\n logger2.debug(\"Validating code\");\n const tokenResponse = await this._tokenClient.exchangeCode({\n client_id: state.client_id,\n client_secret: state.client_secret,\n code: response.code,\n redirect_uri: state.redirect_uri,\n code_verifier: state.code_verifier,\n extraHeaders,\n ...state.extraTokenParams\n });\n Object.assign(response, tokenResponse);\n } else {\n logger2.debug(\"No code to process\");\n }\n }\n _validateIdTokenAttributes(response, existingToken, nonce) {\n var _a;\n const logger2 = this._logger.create(\"_validateIdTokenAttributes\");\n logger2.debug(\"decoding ID Token JWT\");\n const incoming = JwtUtils.decode((_a = response.id_token) != null ? _a : \"\");\n if (!incoming.sub) {\n logger2.throw(new Error(\"ID Token is missing a subject claim\"));\n }\n if (nonce && incoming.nonce !== nonce) {\n logger2.throw(new Error(\"nonce in id_token does not match nonce in client storage\"));\n }\n if (existingToken) {\n const existing = JwtUtils.decode(existingToken);\n if (incoming.sub !== existing.sub) {\n logger2.throw(new Error(\"sub in id_token does not match current sub\"));\n }\n if (incoming.auth_time && incoming.auth_time !== existing.auth_time) {\n logger2.throw(new Error(\"auth_time in id_token does not match original auth_time\"));\n }\n if (incoming.azp && incoming.azp !== existing.azp) {\n logger2.throw(new Error(\"azp in id_token does not match original azp\"));\n }\n if (!incoming.azp && existing.azp) {\n logger2.throw(new Error(\"azp not in id_token, but present in original id_token\"));\n }\n }\n response.profile = incoming;\n }\n};\n\n// src/State.ts\nvar State = class _State {\n constructor(args) {\n this.id = args.id || CryptoUtils.generateUUIDv4();\n this.data = args.data;\n if (args.created && args.created > 0) {\n this.created = args.created;\n } else {\n this.created = Timer.getEpochTime();\n }\n this.request_type = args.request_type;\n this.url_state = args.url_state;\n }\n toStorageString() {\n new Logger(\"State\").create(\"toStorageString\");\n return JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type,\n url_state: this.url_state\n });\n }\n static fromStorageString(storageString) {\n Logger.createStatic(\"State\", \"fromStorageString\");\n return Promise.resolve(new _State(JSON.parse(storageString)));\n }\n static async clearStaleState(storage, age) {\n const logger2 = Logger.createStatic(\"State\", \"clearStaleState\");\n const cutoff = Timer.getEpochTime() - age;\n const keys = await storage.getAllKeys();\n logger2.debug(\"got keys\", keys);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const item = await storage.get(key);\n let remove = false;\n if (item) {\n try {\n const state = await _State.fromStorageString(item);\n logger2.debug(\"got item from key:\", key, state.created);\n if (state.created <= cutoff) {\n remove = true;\n }\n } catch (err) {\n logger2.error(\"Error parsing state for key:\", key, err);\n remove = true;\n }\n } else {\n logger2.debug(\"no item in storage for key:\", key);\n remove = true;\n }\n if (remove) {\n logger2.debug(\"removed item for key:\", key);\n void storage.remove(key);\n }\n }\n }\n};\n\n// src/SigninState.ts\nvar SigninState = class _SigninState extends State {\n constructor(args) {\n super(args);\n this.code_verifier = args.code_verifier;\n this.code_challenge = args.code_challenge;\n this.authority = args.authority;\n this.client_id = args.client_id;\n this.redirect_uri = args.redirect_uri;\n this.scope = args.scope;\n this.client_secret = args.client_secret;\n this.extraTokenParams = args.extraTokenParams;\n this.response_mode = args.response_mode;\n this.skipUserInfo = args.skipUserInfo;\n this.nonce = args.nonce;\n }\n static async create(args) {\n const code_verifier = args.code_verifier === true ? CryptoUtils.generateCodeVerifier() : args.code_verifier || void 0;\n const code_challenge = code_verifier ? await CryptoUtils.generateCodeChallenge(code_verifier) : void 0;\n return new _SigninState({\n ...args,\n code_verifier,\n code_challenge\n });\n }\n toStorageString() {\n new Logger(\"SigninState\").create(\"toStorageString\");\n return JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type,\n url_state: this.url_state,\n code_verifier: this.code_verifier,\n authority: this.authority,\n client_id: this.client_id,\n redirect_uri: this.redirect_uri,\n scope: this.scope,\n client_secret: this.client_secret,\n extraTokenParams: this.extraTokenParams,\n response_mode: this.response_mode,\n skipUserInfo: this.skipUserInfo,\n nonce: this.nonce\n });\n }\n static fromStorageString(storageString) {\n Logger.createStatic(\"SigninState\", \"fromStorageString\");\n const data = JSON.parse(storageString);\n return _SigninState.create(data);\n }\n};\n\n// src/SigninRequest.ts\nvar _SigninRequest = class _SigninRequest {\n constructor(args) {\n this.url = args.url;\n this.state = args.state;\n }\n static async create({\n // mandatory\n url,\n authority,\n client_id,\n redirect_uri,\n response_type,\n scope,\n // optional\n state_data,\n response_mode,\n request_type,\n client_secret,\n nonce,\n url_state,\n resource,\n skipUserInfo,\n extraQueryParams,\n extraTokenParams,\n disablePKCE,\n dpopJkt,\n omitScopeWhenRequesting,\n ...optionalParams\n }) {\n if (!url) {\n this._logger.error(\"create: No url passed\");\n throw new Error(\"url\");\n }\n if (!client_id) {\n this._logger.error(\"create: No client_id passed\");\n throw new Error(\"client_id\");\n }\n if (!redirect_uri) {\n this._logger.error(\"create: No redirect_uri passed\");\n throw new Error(\"redirect_uri\");\n }\n if (!response_type) {\n this._logger.error(\"create: No response_type passed\");\n throw new Error(\"response_type\");\n }\n if (!scope) {\n this._logger.error(\"create: No scope passed\");\n throw new Error(\"scope\");\n }\n if (!authority) {\n this._logger.error(\"create: No authority passed\");\n throw new Error(\"authority\");\n }\n const state = await SigninState.create({\n data: state_data,\n request_type,\n url_state,\n code_verifier: !disablePKCE,\n client_id,\n authority,\n redirect_uri,\n response_mode,\n client_secret,\n scope,\n extraTokenParams,\n skipUserInfo,\n nonce\n });\n const parsedUrl = new URL(url);\n parsedUrl.searchParams.append(\"client_id\", client_id);\n parsedUrl.searchParams.append(\"redirect_uri\", redirect_uri);\n parsedUrl.searchParams.append(\"response_type\", response_type);\n if (!omitScopeWhenRequesting) {\n parsedUrl.searchParams.append(\"scope\", scope);\n }\n if (nonce) {\n parsedUrl.searchParams.append(\"nonce\", nonce);\n }\n if (dpopJkt) {\n parsedUrl.searchParams.append(\"dpop_jkt\", dpopJkt);\n }\n let stateParam = state.id;\n if (url_state) {\n stateParam = `${stateParam}${URL_STATE_DELIMITER}${url_state}`;\n }\n parsedUrl.searchParams.append(\"state\", stateParam);\n if (state.code_challenge) {\n parsedUrl.searchParams.append(\"code_challenge\", state.code_challenge);\n parsedUrl.searchParams.append(\"code_challenge_method\", \"S256\");\n }\n if (resource) {\n const resources = Array.isArray(resource) ? resource : [resource];\n resources.forEach((r) => parsedUrl.searchParams.append(\"resource\", r));\n }\n for (const [key, value] of Object.entries({ response_mode, ...optionalParams, ...extraQueryParams })) {\n if (value != null) {\n parsedUrl.searchParams.append(key, value.toString());\n }\n }\n return new _SigninRequest({\n url: parsedUrl.href,\n state\n });\n }\n};\n_SigninRequest._logger = new Logger(\"SigninRequest\");\nvar SigninRequest = _SigninRequest;\n\n// src/SigninResponse.ts\nvar OidcScope = \"openid\";\nvar SigninResponse = class {\n constructor(params) {\n /** @see {@link User.access_token} */\n this.access_token = \"\";\n /** @see {@link User.token_type} */\n this.token_type = \"\";\n /** @see {@link User.profile} */\n this.profile = {};\n this.state = params.get(\"state\");\n this.session_state = params.get(\"session_state\");\n if (this.state) {\n const splitState = decodeURIComponent(this.state).split(URL_STATE_DELIMITER);\n this.state = splitState[0];\n if (splitState.length > 1) {\n this.url_state = splitState.slice(1).join(URL_STATE_DELIMITER);\n }\n }\n this.error = params.get(\"error\");\n this.error_description = params.get(\"error_description\");\n this.error_uri = params.get(\"error_uri\");\n this.code = params.get(\"code\");\n }\n get expires_in() {\n if (this.expires_at === void 0) {\n return void 0;\n }\n return this.expires_at - Timer.getEpochTime();\n }\n set expires_in(value) {\n if (typeof value === \"string\") value = Number(value);\n if (value !== void 0 && value >= 0) {\n this.expires_at = Math.floor(value) + Timer.getEpochTime();\n }\n }\n get isOpenId() {\n var _a;\n return ((_a = this.scope) == null ? void 0 : _a.split(\" \").includes(OidcScope)) || !!this.id_token;\n }\n};\n\n// src/SignoutRequest.ts\nvar SignoutRequest = class {\n constructor({\n url,\n state_data,\n id_token_hint,\n post_logout_redirect_uri,\n extraQueryParams,\n request_type,\n client_id,\n url_state\n }) {\n this._logger = new Logger(\"SignoutRequest\");\n if (!url) {\n this._logger.error(\"ctor: No url passed\");\n throw new Error(\"url\");\n }\n const parsedUrl = new URL(url);\n if (id_token_hint) {\n parsedUrl.searchParams.append(\"id_token_hint\", id_token_hint);\n }\n if (client_id) {\n parsedUrl.searchParams.append(\"client_id\", client_id);\n }\n if (post_logout_redirect_uri) {\n parsedUrl.searchParams.append(\"post_logout_redirect_uri\", post_logout_redirect_uri);\n if (state_data || url_state) {\n this.state = new State({ data: state_data, request_type, url_state });\n let stateParam = this.state.id;\n if (url_state) {\n stateParam = `${stateParam}${URL_STATE_DELIMITER}${url_state}`;\n }\n parsedUrl.searchParams.append(\"state\", stateParam);\n }\n }\n for (const [key, value] of Object.entries({ ...extraQueryParams })) {\n if (value != null) {\n parsedUrl.searchParams.append(key, value.toString());\n }\n }\n this.url = parsedUrl.href;\n }\n};\n\n// src/SignoutResponse.ts\nvar SignoutResponse = class {\n constructor(params) {\n this.state = params.get(\"state\");\n if (this.state) {\n const splitState = decodeURIComponent(this.state).split(URL_STATE_DELIMITER);\n this.state = splitState[0];\n if (splitState.length > 1) {\n this.url_state = splitState.slice(1).join(URL_STATE_DELIMITER);\n }\n }\n this.error = params.get(\"error\");\n this.error_description = params.get(\"error_description\");\n this.error_uri = params.get(\"error_uri\");\n }\n};\n\n// src/ClaimsService.ts\nvar DefaultProtocolClaims = [\n \"nbf\",\n \"jti\",\n \"auth_time\",\n \"nonce\",\n \"acr\",\n \"amr\",\n \"azp\",\n \"at_hash\"\n // https://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken\n];\nvar InternalRequiredProtocolClaims = [\"sub\", \"iss\", \"aud\", \"exp\", \"iat\"];\nvar ClaimsService = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"ClaimsService\");\n }\n filterProtocolClaims(claims) {\n const result = { ...claims };\n if (this._settings.filterProtocolClaims) {\n let protocolClaims;\n if (Array.isArray(this._settings.filterProtocolClaims)) {\n protocolClaims = this._settings.filterProtocolClaims;\n } else {\n protocolClaims = DefaultProtocolClaims;\n }\n for (const claim of protocolClaims) {\n if (!InternalRequiredProtocolClaims.includes(claim)) {\n delete result[claim];\n }\n }\n }\n return result;\n }\n mergeClaims(claims1, claims2) {\n const result = { ...claims1 };\n for (const [claim, values] of Object.entries(claims2)) {\n if (result[claim] !== values) {\n if (Array.isArray(result[claim]) || Array.isArray(values)) {\n if (this._settings.mergeClaimsStrategy.array == \"replace\") {\n result[claim] = values;\n } else {\n const mergedValues = Array.isArray(result[claim]) ? result[claim] : [result[claim]];\n for (const value of Array.isArray(values) ? values : [values]) {\n if (!mergedValues.includes(value)) {\n mergedValues.push(value);\n }\n }\n result[claim] = mergedValues;\n }\n } else if (typeof result[claim] === \"object\" && typeof values === \"object\") {\n result[claim] = this.mergeClaims(result[claim], values);\n } else {\n result[claim] = values;\n }\n }\n }\n return result;\n }\n};\n\n// src/DPoPStore.ts\nvar DPoPState = class {\n constructor(keys, nonce) {\n this.keys = keys;\n this.nonce = nonce;\n }\n};\n\n// src/OidcClient.ts\nvar OidcClient = class {\n constructor(settings, metadataService) {\n this._logger = new Logger(\"OidcClient\");\n this.settings = settings instanceof OidcClientSettingsStore ? settings : new OidcClientSettingsStore(settings);\n this.metadataService = metadataService != null ? metadataService : new MetadataService(this.settings);\n this._claimsService = new ClaimsService(this.settings);\n this._validator = new ResponseValidator(this.settings, this.metadataService, this._claimsService);\n this._tokenClient = new TokenClient(this.settings, this.metadataService);\n }\n async createSigninRequest({\n state,\n request,\n request_uri,\n request_type,\n id_token_hint,\n login_hint,\n skipUserInfo,\n nonce,\n url_state,\n response_type = this.settings.response_type,\n scope = this.settings.scope,\n redirect_uri = this.settings.redirect_uri,\n prompt = this.settings.prompt,\n display = this.settings.display,\n max_age = this.settings.max_age,\n ui_locales = this.settings.ui_locales,\n acr_values = this.settings.acr_values,\n resource = this.settings.resource,\n response_mode = this.settings.response_mode,\n extraQueryParams = this.settings.extraQueryParams,\n extraTokenParams = this.settings.extraTokenParams,\n dpopJkt,\n omitScopeWhenRequesting = this.settings.omitScopeWhenRequesting\n }) {\n const logger2 = this._logger.create(\"createSigninRequest\");\n if (response_type !== \"code\") {\n throw new Error(\"Only the Authorization Code flow (with PKCE) is supported\");\n }\n const url = await this.metadataService.getAuthorizationEndpoint();\n logger2.debug(\"Received authorization endpoint\", url);\n const signinRequest = await SigninRequest.create({\n url,\n authority: this.settings.authority,\n client_id: this.settings.client_id,\n redirect_uri,\n response_type,\n scope,\n state_data: state,\n url_state,\n prompt,\n display,\n max_age,\n ui_locales,\n id_token_hint,\n login_hint,\n acr_values,\n dpopJkt,\n resource,\n request,\n request_uri,\n extraQueryParams,\n extraTokenParams,\n request_type,\n response_mode,\n client_secret: this.settings.client_secret,\n skipUserInfo,\n nonce,\n disablePKCE: this.settings.disablePKCE,\n omitScopeWhenRequesting\n });\n await this.clearStaleState();\n const signinState = signinRequest.state;\n await this.settings.stateStore.set(signinState.id, signinState.toStorageString());\n return signinRequest;\n }\n async readSigninResponseState(url, removeState = false) {\n const logger2 = this._logger.create(\"readSigninResponseState\");\n const response = new SigninResponse(UrlUtils.readParams(url, this.settings.response_mode));\n if (!response.state) {\n logger2.throw(new Error(\"No state in response\"));\n throw null;\n }\n const storedStateString = await this.settings.stateStore[removeState ? \"remove\" : \"get\"](response.state);\n if (!storedStateString) {\n logger2.throw(new Error(\"No matching state found in storage\"));\n throw null;\n }\n const state = await SigninState.fromStorageString(storedStateString);\n return { state, response };\n }\n async processSigninResponse(url, extraHeaders, removeState = true) {\n const logger2 = this._logger.create(\"processSigninResponse\");\n const { state, response } = await this.readSigninResponseState(url, removeState);\n logger2.debug(\"received state from storage; validating response\");\n if (this.settings.dpop && this.settings.dpop.store) {\n const dpopProof = await this.getDpopProof(this.settings.dpop.store);\n extraHeaders = { ...extraHeaders, \"DPoP\": dpopProof };\n }\n try {\n await this._validator.validateSigninResponse(response, state, extraHeaders);\n } catch (err) {\n if (err instanceof ErrorDPoPNonce && this.settings.dpop) {\n const dpopProof = await this.getDpopProof(this.settings.dpop.store, err.nonce);\n extraHeaders[\"DPoP\"] = dpopProof;\n await this._validator.validateSigninResponse(response, state, extraHeaders);\n } else {\n throw err;\n }\n }\n return response;\n }\n async getDpopProof(dpopStore, nonce) {\n let keyPair;\n let dpopState;\n if (!(await dpopStore.getAllKeys()).includes(this.settings.client_id)) {\n keyPair = await CryptoUtils.generateDPoPKeys();\n dpopState = new DPoPState(keyPair, nonce);\n await dpopStore.set(this.settings.client_id, dpopState);\n } else {\n dpopState = await dpopStore.get(this.settings.client_id);\n if (dpopState.nonce !== nonce && nonce) {\n dpopState.nonce = nonce;\n await dpopStore.set(this.settings.client_id, dpopState);\n }\n }\n return await CryptoUtils.generateDPoPProof({\n url: await this.metadataService.getTokenEndpoint(false),\n httpMethod: \"POST\",\n keyPair: dpopState.keys,\n nonce: dpopState.nonce\n });\n }\n async processResourceOwnerPasswordCredentials({\n username,\n password,\n skipUserInfo = false,\n extraTokenParams = {}\n }) {\n const tokenResponse = await this._tokenClient.exchangeCredentials({ username, password, ...extraTokenParams });\n const signinResponse = new SigninResponse(new URLSearchParams());\n Object.assign(signinResponse, tokenResponse);\n await this._validator.validateCredentialsResponse(signinResponse, skipUserInfo);\n return signinResponse;\n }\n async useRefreshToken({\n state,\n redirect_uri,\n resource,\n timeoutInSeconds,\n extraHeaders,\n extraTokenParams\n }) {\n var _a;\n const logger2 = this._logger.create(\"useRefreshToken\");\n let scope;\n if (this.settings.refreshTokenAllowedScope === void 0) {\n scope = state.scope;\n } else {\n const allowableScopes = this.settings.refreshTokenAllowedScope.split(\" \");\n const providedScopes = ((_a = state.scope) == null ? void 0 : _a.split(\" \")) || [];\n scope = providedScopes.filter((s) => allowableScopes.includes(s)).join(\" \");\n }\n if (this.settings.dpop && this.settings.dpop.store) {\n const dpopProof = await this.getDpopProof(this.settings.dpop.store);\n extraHeaders = { ...extraHeaders, \"DPoP\": dpopProof };\n }\n let result;\n try {\n result = await this._tokenClient.exchangeRefreshToken({\n refresh_token: state.refresh_token,\n // provide the (possible filtered) scope list\n scope,\n redirect_uri,\n resource,\n timeoutInSeconds,\n extraHeaders,\n ...extraTokenParams\n });\n } catch (err) {\n if (err instanceof ErrorDPoPNonce && this.settings.dpop) {\n extraHeaders[\"DPoP\"] = await this.getDpopProof(this.settings.dpop.store, err.nonce);\n result = await this._tokenClient.exchangeRefreshToken({\n refresh_token: state.refresh_token,\n // provide the (possible filtered) scope list\n scope,\n redirect_uri,\n resource,\n timeoutInSeconds,\n extraHeaders,\n ...extraTokenParams\n });\n } else {\n throw err;\n }\n }\n const response = new SigninResponse(new URLSearchParams());\n Object.assign(response, result);\n logger2.debug(\"validating response\", response);\n await this._validator.validateRefreshResponse(response, {\n ...state,\n // override the scope in the state handed over to the validator\n // so it can set the granted scope to the requested scope in case none is included in the response\n scope\n });\n return response;\n }\n async createSignoutRequest({\n state,\n id_token_hint,\n client_id,\n request_type,\n url_state,\n post_logout_redirect_uri = this.settings.post_logout_redirect_uri,\n extraQueryParams = this.settings.extraQueryParams\n } = {}) {\n const logger2 = this._logger.create(\"createSignoutRequest\");\n const url = await this.metadataService.getEndSessionEndpoint();\n if (!url) {\n logger2.throw(new Error(\"No end session endpoint\"));\n throw null;\n }\n logger2.debug(\"Received end session endpoint\", url);\n if (!client_id && post_logout_redirect_uri && !id_token_hint) {\n client_id = this.settings.client_id;\n }\n const request = new SignoutRequest({\n url,\n id_token_hint,\n client_id,\n post_logout_redirect_uri,\n state_data: state,\n extraQueryParams,\n request_type,\n url_state\n });\n await this.clearStaleState();\n const signoutState = request.state;\n if (signoutState) {\n logger2.debug(\"Signout request has state to persist\");\n await this.settings.stateStore.set(signoutState.id, signoutState.toStorageString());\n }\n return request;\n }\n async readSignoutResponseState(url, removeState = false) {\n const logger2 = this._logger.create(\"readSignoutResponseState\");\n const response = new SignoutResponse(UrlUtils.readParams(url, this.settings.response_mode));\n if (!response.state) {\n logger2.debug(\"No state in response\");\n if (response.error) {\n logger2.warn(\"Response was error:\", response.error);\n throw new ErrorResponse(response);\n }\n return { state: void 0, response };\n }\n const storedStateString = await this.settings.stateStore[removeState ? \"remove\" : \"get\"](response.state);\n if (!storedStateString) {\n logger2.throw(new Error(\"No matching state found in storage\"));\n throw null;\n }\n const state = await State.fromStorageString(storedStateString);\n return { state, response };\n }\n async processSignoutResponse(url) {\n const logger2 = this._logger.create(\"processSignoutResponse\");\n const { state, response } = await this.readSignoutResponseState(url, true);\n if (state) {\n logger2.debug(\"Received state from storage; validating response\");\n this._validator.validateSignoutResponse(response, state);\n } else {\n logger2.debug(\"No state from storage; skipping response validation\");\n }\n return response;\n }\n clearStaleState() {\n this._logger.create(\"clearStaleState\");\n return State.clearStaleState(this.settings.stateStore, this.settings.staleStateAgeInSeconds);\n }\n async revokeToken(token, type) {\n this._logger.create(\"revokeToken\");\n return await this._tokenClient.revoke({\n token,\n token_type_hint: type\n });\n }\n};\n\n// src/SessionMonitor.ts\nvar SessionMonitor = class {\n constructor(_userManager) {\n this._userManager = _userManager;\n this._logger = new Logger(\"SessionMonitor\");\n this._start = async (user) => {\n const session_state = user.session_state;\n if (!session_state) {\n return;\n }\n const logger2 = this._logger.create(\"_start\");\n if (user.profile) {\n this._sub = user.profile.sub;\n logger2.debug(\"session_state\", session_state, \", sub\", this._sub);\n } else {\n this._sub = void 0;\n logger2.debug(\"session_state\", session_state, \", anonymous user\");\n }\n if (this._checkSessionIFrame) {\n this._checkSessionIFrame.start(session_state);\n return;\n }\n try {\n const url = await this._userManager.metadataService.getCheckSessionIframe();\n if (url) {\n logger2.debug(\"initializing check session iframe\");\n const client_id = this._userManager.settings.client_id;\n const intervalInSeconds = this._userManager.settings.checkSessionIntervalInSeconds;\n const stopOnError = this._userManager.settings.stopCheckSessionOnError;\n const checkSessionIFrame = new CheckSessionIFrame(this._callback, client_id, url, intervalInSeconds, stopOnError);\n await checkSessionIFrame.load();\n this._checkSessionIFrame = checkSessionIFrame;\n checkSessionIFrame.start(session_state);\n } else {\n logger2.warn(\"no check session iframe found in the metadata\");\n }\n } catch (err) {\n logger2.error(\"Error from getCheckSessionIframe:\", err instanceof Error ? err.message : err);\n }\n };\n this._stop = () => {\n const logger2 = this._logger.create(\"_stop\");\n this._sub = void 0;\n if (this._checkSessionIFrame) {\n this._checkSessionIFrame.stop();\n }\n if (this._userManager.settings.monitorAnonymousSession) {\n const timerHandle = setInterval(async () => {\n clearInterval(timerHandle);\n try {\n const session = await this._userManager.querySessionStatus();\n if (session) {\n const tmpUser = {\n session_state: session.session_state,\n profile: session.sub ? {\n sub: session.sub\n } : null\n };\n void this._start(tmpUser);\n }\n } catch (err) {\n logger2.error(\"error from querySessionStatus\", err instanceof Error ? err.message : err);\n }\n }, 1e3);\n }\n };\n this._callback = async () => {\n const logger2 = this._logger.create(\"_callback\");\n try {\n const session = await this._userManager.querySessionStatus();\n let raiseEvent = true;\n if (session && this._checkSessionIFrame) {\n if (session.sub === this._sub) {\n raiseEvent = false;\n this._checkSessionIFrame.start(session.session_state);\n logger2.debug(\"same sub still logged in at OP, session state has changed, restarting check session iframe; session_state\", session.session_state);\n await this._userManager.events._raiseUserSessionChanged();\n } else {\n logger2.debug(\"different subject signed into OP\", session.sub);\n }\n } else {\n logger2.debug(\"subject no longer signed into OP\");\n }\n if (raiseEvent) {\n if (this._sub) {\n await this._userManager.events._raiseUserSignedOut();\n } else {\n await this._userManager.events._raiseUserSignedIn();\n }\n } else {\n logger2.debug(\"no change in session detected, no event to raise\");\n }\n } catch (err) {\n if (this._sub) {\n logger2.debug(\"Error calling queryCurrentSigninSession; raising signed out event\", err);\n await this._userManager.events._raiseUserSignedOut();\n }\n }\n };\n if (!_userManager) {\n this._logger.throw(new Error(\"No user manager passed\"));\n }\n this._userManager.events.addUserLoaded(this._start);\n this._userManager.events.addUserUnloaded(this._stop);\n this._init().catch((err) => {\n this._logger.error(err);\n });\n }\n async _init() {\n this._logger.create(\"_init\");\n const user = await this._userManager.getUser();\n if (user) {\n void this._start(user);\n } else if (this._userManager.settings.monitorAnonymousSession) {\n const session = await this._userManager.querySessionStatus();\n if (session) {\n const tmpUser = {\n session_state: session.session_state,\n profile: session.sub ? {\n sub: session.sub\n } : null\n };\n void this._start(tmpUser);\n }\n }\n }\n};\n\n// src/User.ts\nvar User = class _User {\n constructor(args) {\n var _a;\n this.id_token = args.id_token;\n this.session_state = (_a = args.session_state) != null ? _a : null;\n this.access_token = args.access_token;\n this.refresh_token = args.refresh_token;\n this.token_type = args.token_type;\n this.scope = args.scope;\n this.profile = args.profile;\n this.expires_at = args.expires_at;\n this.state = args.userState;\n this.url_state = args.url_state;\n }\n /** Computed number of seconds the access token has remaining. */\n get expires_in() {\n if (this.expires_at === void 0) {\n return void 0;\n }\n return this.expires_at - Timer.getEpochTime();\n }\n set expires_in(value) {\n if (value !== void 0) {\n this.expires_at = Math.floor(value) + Timer.getEpochTime();\n }\n }\n /** Computed value indicating if the access token is expired. */\n get expired() {\n const expires_in = this.expires_in;\n if (expires_in === void 0) {\n return void 0;\n }\n return expires_in <= 0;\n }\n /** Array representing the parsed values from the `scope`. */\n get scopes() {\n var _a, _b;\n return (_b = (_a = this.scope) == null ? void 0 : _a.split(\" \")) != null ? _b : [];\n }\n toStorageString() {\n new Logger(\"User\").create(\"toStorageString\");\n return JSON.stringify({\n id_token: this.id_token,\n session_state: this.session_state,\n access_token: this.access_token,\n refresh_token: this.refresh_token,\n token_type: this.token_type,\n scope: this.scope,\n profile: this.profile,\n expires_at: this.expires_at\n });\n }\n static fromStorageString(storageString) {\n Logger.createStatic(\"User\", \"fromStorageString\");\n return new _User(JSON.parse(storageString));\n }\n};\n\n// src/navigators/AbstractChildWindow.ts\nvar messageSource = \"oidc-client\";\nvar AbstractChildWindow = class {\n constructor() {\n this._abort = new Event(\"Window navigation aborted\");\n this._disposeHandlers = /* @__PURE__ */ new Set();\n this._window = null;\n }\n async navigate(params) {\n const logger2 = this._logger.create(\"navigate\");\n if (!this._window) {\n throw new Error(\"Attempted to navigate on a disposed window\");\n }\n logger2.debug(\"setting URL in window\");\n this._window.location.replace(params.url);\n const { url, keepOpen } = await new Promise((resolve, reject) => {\n const listener = (e) => {\n var _a;\n const data = e.data;\n const origin = (_a = params.scriptOrigin) != null ? _a : window.location.origin;\n if (e.origin !== origin || (data == null ? void 0 : data.source) !== messageSource) {\n return;\n }\n try {\n const state = UrlUtils.readParams(data.url, params.response_mode).get(\"state\");\n if (!state) {\n logger2.warn(\"no state found in response url\");\n }\n if (e.source !== this._window && state !== params.state) {\n return;\n }\n } catch {\n this._dispose();\n reject(new Error(\"Invalid response from window\"));\n }\n resolve(data);\n };\n window.addEventListener(\"message\", listener, false);\n this._disposeHandlers.add(() => window.removeEventListener(\"message\", listener, false));\n const channel = new BroadcastChannel(`oidc-client-popup-${params.state}`);\n channel.addEventListener(\"message\", listener, false);\n this._disposeHandlers.add(() => channel.close());\n this._disposeHandlers.add(this._abort.addHandler((reason) => {\n this._dispose();\n reject(reason);\n }));\n });\n logger2.debug(\"got response from window\");\n this._dispose();\n if (!keepOpen) {\n this.close();\n }\n return { url };\n }\n _dispose() {\n this._logger.create(\"_dispose\");\n for (const dispose of this._disposeHandlers) {\n dispose();\n }\n this._disposeHandlers.clear();\n }\n static _notifyParent(parent, url, keepOpen = false, targetOrigin = window.location.origin) {\n const msgData = {\n source: messageSource,\n url,\n keepOpen\n };\n const logger2 = new Logger(\"_notifyParent\");\n if (parent) {\n logger2.debug(\"With parent. Using parent.postMessage.\");\n parent.postMessage(msgData, targetOrigin);\n } else {\n logger2.debug(\"No parent. Using BroadcastChannel.\");\n const state = new URL(url).searchParams.get(\"state\");\n if (!state) {\n throw new Error(\"No parent and no state in URL. Can't complete notification.\");\n }\n const channel = new BroadcastChannel(`oidc-client-popup-${state}`);\n channel.postMessage(msgData);\n channel.close();\n }\n }\n};\n\n// src/UserManagerSettings.ts\nvar DefaultPopupWindowFeatures = {\n location: false,\n toolbar: false,\n height: 640,\n closePopupWindowAfterInSeconds: -1\n};\nvar DefaultPopupTarget = \"_blank\";\nvar DefaultAccessTokenExpiringNotificationTimeInSeconds = 60;\nvar DefaultCheckSessionIntervalInSeconds = 2;\nvar DefaultSilentRequestTimeoutInSeconds = 10;\nvar UserManagerSettingsStore = class extends OidcClientSettingsStore {\n constructor(args) {\n const {\n popup_redirect_uri = args.redirect_uri,\n popup_post_logout_redirect_uri = args.post_logout_redirect_uri,\n popupWindowFeatures = DefaultPopupWindowFeatures,\n popupWindowTarget = DefaultPopupTarget,\n redirectMethod = \"assign\",\n redirectTarget = \"self\",\n iframeNotifyParentOrigin = args.iframeNotifyParentOrigin,\n iframeScriptOrigin = args.iframeScriptOrigin,\n requestTimeoutInSeconds,\n silent_redirect_uri = args.redirect_uri,\n silentRequestTimeoutInSeconds,\n automaticSilentRenew = true,\n validateSubOnSilentRenew = true,\n includeIdTokenInSilentRenew = false,\n monitorSession = false,\n monitorAnonymousSession = false,\n checkSessionIntervalInSeconds = DefaultCheckSessionIntervalInSeconds,\n query_status_response_type = \"code\",\n stopCheckSessionOnError = true,\n revokeTokenTypes = [\"access_token\", \"refresh_token\"],\n revokeTokensOnSignout = false,\n includeIdTokenInSilentSignout = false,\n accessTokenExpiringNotificationTimeInSeconds = DefaultAccessTokenExpiringNotificationTimeInSeconds,\n maxSilentRenewTimeoutRetries,\n userStore\n } = args;\n super(args);\n this.popup_redirect_uri = popup_redirect_uri;\n this.popup_post_logout_redirect_uri = popup_post_logout_redirect_uri;\n this.popupWindowFeatures = popupWindowFeatures;\n this.popupWindowTarget = popupWindowTarget;\n this.redirectMethod = redirectMethod;\n this.redirectTarget = redirectTarget;\n this.iframeNotifyParentOrigin = iframeNotifyParentOrigin;\n this.iframeScriptOrigin = iframeScriptOrigin;\n this.silent_redirect_uri = silent_redirect_uri;\n this.silentRequestTimeoutInSeconds = silentRequestTimeoutInSeconds || requestTimeoutInSeconds || DefaultSilentRequestTimeoutInSeconds;\n this.automaticSilentRenew = automaticSilentRenew;\n this.validateSubOnSilentRenew = validateSubOnSilentRenew;\n this.includeIdTokenInSilentRenew = includeIdTokenInSilentRenew;\n this.monitorSession = monitorSession;\n this.monitorAnonymousSession = monitorAnonymousSession;\n this.checkSessionIntervalInSeconds = checkSessionIntervalInSeconds;\n this.stopCheckSessionOnError = stopCheckSessionOnError;\n this.query_status_response_type = query_status_response_type;\n this.revokeTokenTypes = revokeTokenTypes;\n this.revokeTokensOnSignout = revokeTokensOnSignout;\n this.includeIdTokenInSilentSignout = includeIdTokenInSilentSignout;\n this.accessTokenExpiringNotificationTimeInSeconds = accessTokenExpiringNotificationTimeInSeconds;\n this.maxSilentRenewTimeoutRetries = maxSilentRenewTimeoutRetries;\n if (userStore) {\n this.userStore = userStore;\n } else {\n const store = typeof window !== \"undefined\" ? window.sessionStorage : new InMemoryWebStorage();\n this.userStore = new WebStorageStateStore({ store });\n }\n }\n};\n\n// src/navigators/IFrameWindow.ts\nvar IFrameWindow = class _IFrameWindow extends AbstractChildWindow {\n constructor({\n silentRequestTimeoutInSeconds = DefaultSilentRequestTimeoutInSeconds\n }) {\n super();\n this._logger = new Logger(\"IFrameWindow\");\n this._timeoutInSeconds = silentRequestTimeoutInSeconds;\n this._frame = _IFrameWindow.createHiddenIframe();\n this._window = this._frame.contentWindow;\n }\n static createHiddenIframe() {\n const iframe = window.document.createElement(\"iframe\");\n iframe.style.visibility = \"hidden\";\n iframe.style.position = \"fixed\";\n iframe.style.left = \"-1000px\";\n iframe.style.top = \"0\";\n iframe.width = \"0\";\n iframe.height = \"0\";\n window.document.body.appendChild(iframe);\n return iframe;\n }\n async navigate(params) {\n this._logger.debug(\"navigate: Using timeout of:\", this._timeoutInSeconds);\n const timer = setTimeout(() => void this._abort.raise(new ErrorTimeout(\"IFrame timed out without a response\")), this._timeoutInSeconds * 1e3);\n this._disposeHandlers.add(() => clearTimeout(timer));\n return await super.navigate(params);\n }\n close() {\n var _a;\n if (this._frame) {\n if (this._frame.parentNode) {\n this._frame.addEventListener(\"load\", (ev) => {\n var _a2;\n const frame = ev.target;\n (_a2 = frame.parentNode) == null ? void 0 : _a2.removeChild(frame);\n void this._abort.raise(new Error(\"IFrame removed from DOM\"));\n }, true);\n (_a = this._frame.contentWindow) == null ? void 0 : _a.location.replace(\"about:blank\");\n }\n this._frame = null;\n }\n this._window = null;\n }\n static notifyParent(url, targetOrigin) {\n return super._notifyParent(window.parent, url, false, targetOrigin);\n }\n};\n\n// src/navigators/IFrameNavigator.ts\nvar IFrameNavigator = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"IFrameNavigator\");\n }\n async prepare({\n silentRequestTimeoutInSeconds = this._settings.silentRequestTimeoutInSeconds\n }) {\n return new IFrameWindow({ silentRequestTimeoutInSeconds });\n }\n async callback(url) {\n this._logger.create(\"callback\");\n IFrameWindow.notifyParent(url, this._settings.iframeNotifyParentOrigin);\n }\n};\n\n// src/navigators/PopupWindow.ts\nvar checkForPopupClosedInterval = 500;\nvar second = 1e3;\nvar PopupWindow = class extends AbstractChildWindow {\n constructor({\n popupWindowTarget = DefaultPopupTarget,\n popupWindowFeatures = {},\n popupSignal,\n popupAbortOnClose\n }) {\n super();\n this._logger = new Logger(\"PopupWindow\");\n const centeredPopup = PopupUtils.center({ ...DefaultPopupWindowFeatures, ...popupWindowFeatures });\n this._window = window.open(void 0, popupWindowTarget, PopupUtils.serialize(centeredPopup));\n this.abortOnClose = Boolean(popupAbortOnClose);\n if (popupSignal) {\n popupSignal.addEventListener(\"abort\", () => {\n var _a;\n void this._abort.raise(new Error((_a = popupSignal.reason) != null ? _a : \"Popup aborted\"));\n });\n }\n if (popupWindowFeatures.closePopupWindowAfterInSeconds && popupWindowFeatures.closePopupWindowAfterInSeconds > 0) {\n setTimeout(() => {\n if (!this._window || typeof this._window.closed !== \"boolean\" || this._window.closed) {\n void this._abort.raise(new Error(\"Popup blocked by user\"));\n return;\n }\n this.close();\n }, popupWindowFeatures.closePopupWindowAfterInSeconds * second);\n }\n }\n async navigate(params) {\n var _a;\n (_a = this._window) == null ? void 0 : _a.focus();\n const popupClosedInterval = setInterval(() => {\n if (!this._window || this._window.closed) {\n this._logger.debug(\"Popup closed by user or isolated by redirect\");\n clearPopupClosedInterval();\n this._disposeHandlers.delete(clearPopupClosedInterval);\n if (this.abortOnClose) {\n void this._abort.raise(new Error(\"Popup closed by user\"));\n }\n }\n }, checkForPopupClosedInterval);\n const clearPopupClosedInterval = () => clearInterval(popupClosedInterval);\n this._disposeHandlers.add(clearPopupClosedInterval);\n return await super.navigate(params);\n }\n close() {\n if (this._window) {\n if (!this._window.closed) {\n this._window.close();\n void this._abort.raise(new Error(\"Popup closed\"));\n }\n }\n this._window = null;\n }\n static notifyOpener(url, keepOpen) {\n super._notifyParent(window.opener, url, keepOpen);\n if (!keepOpen && !window.opener) {\n window.close();\n }\n }\n};\n\n// src/navigators/PopupNavigator.ts\nvar PopupNavigator = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"PopupNavigator\");\n }\n async prepare({\n popupWindowFeatures = this._settings.popupWindowFeatures,\n popupWindowTarget = this._settings.popupWindowTarget,\n popupSignal,\n popupAbortOnClose\n }) {\n return new PopupWindow({\n popupWindowFeatures,\n popupWindowTarget,\n popupSignal,\n popupAbortOnClose\n });\n }\n async callback(url, { keepOpen = false }) {\n this._logger.create(\"callback\");\n PopupWindow.notifyOpener(url, keepOpen);\n }\n};\n\n// src/navigators/RedirectNavigator.ts\nvar RedirectNavigator = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"RedirectNavigator\");\n }\n async prepare({\n redirectMethod = this._settings.redirectMethod,\n redirectTarget = this._settings.redirectTarget\n }) {\n var _a;\n this._logger.create(\"prepare\");\n let targetWindow = window.self;\n if (redirectTarget === \"top\") {\n targetWindow = (_a = window.top) != null ? _a : window.self;\n }\n const redirect = targetWindow.location[redirectMethod].bind(targetWindow.location);\n let abort;\n return {\n navigate: async (params) => {\n this._logger.create(\"navigate\");\n const promise = new Promise((resolve, reject) => {\n abort = reject;\n window.addEventListener(\"pageshow\", () => resolve(window.location.href));\n redirect(params.url);\n });\n return await promise;\n },\n close: () => {\n this._logger.create(\"close\");\n abort == null ? void 0 : abort(new Error(\"Redirect aborted\"));\n targetWindow.stop();\n }\n };\n }\n async callback() {\n return;\n }\n};\n\n// src/UserManagerEvents.ts\nvar UserManagerEvents = class extends AccessTokenEvents {\n constructor(settings) {\n super({ expiringNotificationTimeInSeconds: settings.accessTokenExpiringNotificationTimeInSeconds });\n this._logger = new Logger(\"UserManagerEvents\");\n this._userLoaded = new Event(\"User loaded\");\n this._userUnloaded = new Event(\"User unloaded\");\n this._silentRenewError = new Event(\"Silent renew error\");\n this._userSignedIn = new Event(\"User signed in\");\n this._userSignedOut = new Event(\"User signed out\");\n this._userSessionChanged = new Event(\"User session changed\");\n }\n async load(user, raiseEvent = true) {\n await super.load(user);\n if (raiseEvent) {\n await this._userLoaded.raise(user);\n }\n }\n async unload() {\n await super.unload();\n await this._userUnloaded.raise();\n }\n /**\n * Add callback: Raised when a user session has been established (or re-established).\n */\n addUserLoaded(cb) {\n return this._userLoaded.addHandler(cb);\n }\n /**\n * Remove callback: Raised when a user session has been established (or re-established).\n */\n removeUserLoaded(cb) {\n return this._userLoaded.removeHandler(cb);\n }\n /**\n * Add callback: Raised when a user session has been terminated.\n */\n addUserUnloaded(cb) {\n return this._userUnloaded.addHandler(cb);\n }\n /**\n * Remove callback: Raised when a user session has been terminated.\n */\n removeUserUnloaded(cb) {\n return this._userUnloaded.removeHandler(cb);\n }\n /**\n * Add callback: Raised when the automatic silent renew has failed.\n */\n addSilentRenewError(cb) {\n return this._silentRenewError.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the automatic silent renew has failed.\n */\n removeSilentRenewError(cb) {\n return this._silentRenewError.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseSilentRenewError(e) {\n await this._silentRenewError.raise(e);\n }\n /**\n * Add callback: Raised when the user is signed in (when `monitorSession` is set).\n * @see {@link UserManagerSettings.monitorSession}\n */\n addUserSignedIn(cb) {\n return this._userSignedIn.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the user is signed in (when `monitorSession` is set).\n */\n removeUserSignedIn(cb) {\n this._userSignedIn.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseUserSignedIn() {\n await this._userSignedIn.raise();\n }\n /**\n * Add callback: Raised when the user's sign-in status at the OP has changed (when `monitorSession` is set).\n * @see {@link UserManagerSettings.monitorSession}\n */\n addUserSignedOut(cb) {\n return this._userSignedOut.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the user's sign-in status at the OP has changed (when `monitorSession` is set).\n */\n removeUserSignedOut(cb) {\n this._userSignedOut.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseUserSignedOut() {\n await this._userSignedOut.raise();\n }\n /**\n * Add callback: Raised when the user session changed (when `monitorSession` is set).\n * @see {@link UserManagerSettings.monitorSession}\n */\n addUserSessionChanged(cb) {\n return this._userSessionChanged.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the user session changed (when `monitorSession` is set).\n */\n removeUserSessionChanged(cb) {\n this._userSessionChanged.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseUserSessionChanged() {\n await this._userSessionChanged.raise();\n }\n};\n\n// src/SilentRenewService.ts\nvar SilentRenewService = class {\n constructor(_userManager) {\n this._userManager = _userManager;\n this._logger = new Logger(\"SilentRenewService\");\n this._isStarted = false;\n this._retryTimer = new Timer(\"Retry Silent Renew\");\n this._timeoutRetryCount = 0;\n this._tokenExpiring = async () => {\n const logger2 = this._logger.create(\"_tokenExpiring\");\n try {\n await this._userManager.signinSilent();\n this._timeoutRetryCount = 0;\n logger2.debug(\"silent token renewal successful\");\n } catch (err) {\n if (err instanceof ErrorTimeout) {\n this._timeoutRetryCount++;\n const maxRetries = this._userManager.settings.maxSilentRenewTimeoutRetries;\n const hasReachedLimit = maxRetries !== void 0 && this._timeoutRetryCount > maxRetries;\n if (hasReachedLimit) {\n logger2.error(\n `Timeout retry limit reached (${this._timeoutRetryCount} > ${maxRetries}), raising silentRenewError:`,\n err\n );\n this._timeoutRetryCount = 0;\n await this._userManager.events._raiseSilentRenewError(err);\n return;\n }\n logger2.warn(\n `ErrorTimeout from signinSilent (attempt ${this._timeoutRetryCount}), retry in 5s:`,\n err\n );\n this._retryTimer.init(5);\n return;\n }\n logger2.error(\"Error from signinSilent:\", err);\n this._timeoutRetryCount = 0;\n await this._userManager.events._raiseSilentRenewError(err);\n }\n };\n }\n async start() {\n const logger2 = this._logger.create(\"start\");\n if (!this._isStarted) {\n this._isStarted = true;\n this._userManager.events.addAccessTokenExpiring(this._tokenExpiring);\n this._retryTimer.addHandler(this._tokenExpiring);\n try {\n await this._userManager.getUser();\n } catch (err) {\n logger2.error(\"getUser error\", err);\n }\n }\n }\n stop() {\n if (this._isStarted) {\n this._retryTimer.cancel();\n this._retryTimer.removeHandler(this._tokenExpiring);\n this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring);\n this._isStarted = false;\n }\n }\n};\n\n// src/RefreshState.ts\nvar RefreshState = class {\n constructor(args) {\n this.refresh_token = args.refresh_token;\n this.id_token = args.id_token;\n this.session_state = args.session_state;\n this.scope = args.scope;\n this.profile = args.profile;\n this.data = args.state;\n }\n};\n\n// src/UserManager.ts\nvar UserManager = class {\n constructor(settings, redirectNavigator, popupNavigator, iframeNavigator) {\n this._logger = new Logger(\"UserManager\");\n this.settings = new UserManagerSettingsStore(settings);\n this._client = new OidcClient(settings);\n this._redirectNavigator = redirectNavigator != null ? redirectNavigator : new RedirectNavigator(this.settings);\n this._popupNavigator = popupNavigator != null ? popupNavigator : new PopupNavigator(this.settings);\n this._iframeNavigator = iframeNavigator != null ? iframeNavigator : new IFrameNavigator(this.settings);\n this._events = new UserManagerEvents(this.settings);\n this._silentRenewService = new SilentRenewService(this);\n if (this.settings.automaticSilentRenew) {\n this.startSilentRenew();\n }\n this._sessionMonitor = null;\n if (this.settings.monitorSession) {\n this._sessionMonitor = new SessionMonitor(this);\n }\n }\n /**\n * Get object used to register for events raised by the `UserManager`.\n */\n get events() {\n return this._events;\n }\n /**\n * Get object used to access the metadata configuration of the identity provider.\n */\n get metadataService() {\n return this._client.metadataService;\n }\n /**\n * Load the `User` object for the currently authenticated user.\n *\n * @param raiseEvent - If `true`, the `UserLoaded` event will be raised. Defaults to false.\n * @returns A promise\n */\n async getUser(raiseEvent = false) {\n const logger2 = this._logger.create(\"getUser\");\n const user = await this._loadUser();\n if (user) {\n logger2.info(\"user loaded\");\n await this._events.load(user, raiseEvent);\n return user;\n }\n logger2.info(\"user not found in storage\");\n return null;\n }\n /**\n * Remove from any storage the currently authenticated user.\n *\n * @returns A promise\n */\n async removeUser() {\n const logger2 = this._logger.create(\"removeUser\");\n await this.storeUser(null);\n logger2.info(\"user removed from storage\");\n await this._events.unload();\n }\n /**\n * Trigger a redirect of the current window to the authorization endpoint.\n *\n * @returns A promise\n *\n * @throws `Error` In cases of wrong authentication.\n */\n async signinRedirect(args = {}) {\n var _a;\n this._logger.create(\"signinRedirect\");\n const {\n redirectMethod,\n ...requestArgs\n } = args;\n let dpopJkt;\n if ((_a = this.settings.dpop) == null ? void 0 : _a.bind_authorization_code) {\n dpopJkt = await this.generateDPoPJkt(this.settings.dpop);\n }\n const handle = await this._redirectNavigator.prepare({ redirectMethod });\n await this._signinStart({\n request_type: \"si:r\",\n dpopJkt,\n ...requestArgs\n }, handle);\n }\n /**\n * Process the response (callback) from the authorization endpoint.\n * It is recommended to use {@link UserManager.signinCallback} instead.\n *\n * @returns A promise containing the authenticated `User`.\n *\n * @see {@link UserManager.signinCallback}\n */\n async signinRedirectCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signinRedirectCallback\");\n const user = await this._signinEnd(url);\n if (user.profile && user.profile.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n return user;\n }\n /**\n * Trigger the signin with user/password.\n *\n * @returns A promise containing the authenticated `User`.\n * @throws {@link ErrorResponse} In cases of wrong authentication.\n */\n async signinResourceOwnerCredentials({\n username,\n password,\n skipUserInfo = false\n }) {\n const logger2 = this._logger.create(\"signinResourceOwnerCredential\");\n const signinResponse = await this._client.processResourceOwnerPasswordCredentials({\n username,\n password,\n skipUserInfo,\n extraTokenParams: this.settings.extraTokenParams\n });\n logger2.debug(\"got signin response\");\n const user = await this._buildUser(signinResponse);\n if (user.profile && user.profile.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n return user;\n }\n /**\n * Trigger a request (via a popup window) to the authorization endpoint.\n *\n * @returns A promise containing the authenticated `User`.\n * @throws `Error` In cases of wrong authentication.\n */\n async signinPopup(args = {}) {\n var _a;\n const logger2 = this._logger.create(\"signinPopup\");\n let dpopJkt;\n if ((_a = this.settings.dpop) == null ? void 0 : _a.bind_authorization_code) {\n dpopJkt = await this.generateDPoPJkt(this.settings.dpop);\n }\n const {\n popupWindowFeatures,\n popupWindowTarget,\n popupSignal,\n popupAbortOnClose,\n ...requestArgs\n } = args;\n const url = this.settings.popup_redirect_uri;\n if (!url) {\n logger2.throw(new Error(\"No popup_redirect_uri configured\"));\n }\n const handle = await this._popupNavigator.prepare({ popupWindowFeatures, popupWindowTarget, popupSignal, popupAbortOnClose });\n const user = await this._signin({\n request_type: \"si:p\",\n redirect_uri: url,\n display: \"popup\",\n dpopJkt,\n ...requestArgs\n }, handle);\n if (user) {\n if (user.profile && user.profile.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n }\n return user;\n }\n /**\n * Notify the opening window of response (callback) from the authorization endpoint.\n * It is recommended to use {@link UserManager.signinCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signinCallback}\n */\n async signinPopupCallback(url = window.location.href, keepOpen = false) {\n const logger2 = this._logger.create(\"signinPopupCallback\");\n await this._popupNavigator.callback(url, { keepOpen });\n logger2.info(\"success\");\n }\n /**\n * Trigger a silent request (via refresh token or an iframe) to the authorization endpoint.\n *\n * @returns A promise that contains the authenticated `User`.\n */\n async signinSilent(args = {}) {\n var _a, _b;\n const logger2 = this._logger.create(\"signinSilent\");\n const {\n silentRequestTimeoutInSeconds,\n ...requestArgs\n } = args;\n let user = await this._loadUser();\n if (!args.forceIframeAuth && (user == null ? void 0 : user.refresh_token)) {\n logger2.debug(\"using refresh token\");\n const state = new RefreshState(user);\n return await this._useRefreshToken({\n state,\n redirect_uri: requestArgs.redirect_uri,\n resource: requestArgs.resource,\n extraTokenParams: requestArgs.extraTokenParams,\n timeoutInSeconds: silentRequestTimeoutInSeconds\n });\n }\n let dpopJkt;\n if ((_a = this.settings.dpop) == null ? void 0 : _a.bind_authorization_code) {\n dpopJkt = await this.generateDPoPJkt(this.settings.dpop);\n }\n const url = this.settings.silent_redirect_uri;\n if (!url) {\n logger2.throw(new Error(\"No silent_redirect_uri configured\"));\n }\n let verifySub;\n if (user && this.settings.validateSubOnSilentRenew) {\n logger2.debug(\"subject prior to silent renew:\", user.profile.sub);\n verifySub = user.profile.sub;\n }\n const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds });\n user = await this._signin({\n request_type: \"si:s\",\n redirect_uri: url,\n prompt: \"none\",\n id_token_hint: this.settings.includeIdTokenInSilentRenew ? user == null ? void 0 : user.id_token : void 0,\n dpopJkt,\n ...requestArgs\n }, handle, verifySub);\n if (user) {\n if ((_b = user.profile) == null ? void 0 : _b.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n }\n return user;\n }\n async _useRefreshToken(args) {\n const response = await this._client.useRefreshToken({\n timeoutInSeconds: this.settings.silentRequestTimeoutInSeconds,\n ...args\n });\n const user = new User({ ...args.state, ...response });\n await this.storeUser(user);\n await this._events.load(user);\n return user;\n }\n /**\n *\n * Notify the parent window of response (callback) from the authorization endpoint.\n * It is recommended to use {@link UserManager.signinCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signinCallback}\n */\n async signinSilentCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signinSilentCallback\");\n await this._iframeNavigator.callback(url);\n logger2.info(\"success\");\n }\n /**\n * Process any response (callback) from the authorization endpoint, by dispatching the request_type\n * and executing one of the following functions:\n * - {@link UserManager.signinRedirectCallback}\n * - {@link UserManager.signinPopupCallback}\n * - {@link UserManager.signinSilentCallback}\n *\n * @throws `Error` If request_type is unknown or signin cannot be processed.\n */\n async signinCallback(url = window.location.href) {\n const { state } = await this._client.readSigninResponseState(url);\n switch (state.request_type) {\n case \"si:r\":\n return await this.signinRedirectCallback(url);\n case \"si:p\":\n await this.signinPopupCallback(url);\n break;\n case \"si:s\":\n await this.signinSilentCallback(url);\n break;\n default:\n throw new Error(\"invalid request_type in state\");\n }\n return void 0;\n }\n /**\n * Process any response (callback) from the end session endpoint, by dispatching the request_type\n * and executing one of the following functions:\n * - {@link UserManager.signoutRedirectCallback}\n * - {@link UserManager.signoutPopupCallback}\n * - {@link UserManager.signoutSilentCallback}\n *\n * @throws `Error` If request_type is unknown or signout cannot be processed.\n */\n async signoutCallback(url = window.location.href, keepOpen = false) {\n const { state } = await this._client.readSignoutResponseState(url);\n if (!state) {\n return void 0;\n }\n switch (state.request_type) {\n case \"so:r\":\n return await this.signoutRedirectCallback(url);\n case \"so:p\":\n await this.signoutPopupCallback(url, keepOpen);\n break;\n case \"so:s\":\n await this.signoutSilentCallback(url);\n break;\n default:\n throw new Error(\"invalid request_type in state\");\n }\n return void 0;\n }\n /**\n * Query OP for user's current signin status.\n *\n * @returns A promise object with session_state and subject identifier.\n */\n async querySessionStatus(args = {}) {\n const logger2 = this._logger.create(\"querySessionStatus\");\n const {\n silentRequestTimeoutInSeconds,\n ...requestArgs\n } = args;\n const url = this.settings.silent_redirect_uri;\n if (!url) {\n logger2.throw(new Error(\"No silent_redirect_uri configured\"));\n }\n const user = await this._loadUser();\n const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds });\n const navResponse = await this._signinStart({\n request_type: \"si:s\",\n // this acts like a signin silent\n redirect_uri: url,\n prompt: \"none\",\n id_token_hint: this.settings.includeIdTokenInSilentRenew ? user == null ? void 0 : user.id_token : void 0,\n response_type: this.settings.query_status_response_type,\n scope: \"openid\",\n skipUserInfo: true,\n ...requestArgs\n }, handle);\n try {\n const extraHeaders = {};\n const signinResponse = await this._client.processSigninResponse(navResponse.url, extraHeaders);\n logger2.debug(\"got signin response\");\n if (signinResponse.session_state && signinResponse.profile.sub) {\n logger2.info(\"success for subject\", signinResponse.profile.sub);\n return {\n session_state: signinResponse.session_state,\n sub: signinResponse.profile.sub\n };\n }\n logger2.info(\"success, user not authenticated\");\n return null;\n } catch (err) {\n if (this.settings.monitorAnonymousSession && err instanceof ErrorResponse) {\n switch (err.error) {\n case \"login_required\":\n case \"consent_required\":\n case \"interaction_required\":\n case \"account_selection_required\":\n logger2.info(\"success for anonymous user\");\n return {\n session_state: err.session_state\n };\n }\n }\n throw err;\n }\n }\n async _signin(args, handle, verifySub) {\n const navResponse = await this._signinStart(args, handle);\n return await this._signinEnd(navResponse.url, verifySub);\n }\n async _signinStart(args, handle) {\n const logger2 = this._logger.create(\"_signinStart\");\n try {\n const signinRequest = await this._client.createSigninRequest(args);\n logger2.debug(\"got signin request\");\n return await handle.navigate({\n url: signinRequest.url,\n state: signinRequest.state.id,\n response_mode: signinRequest.state.response_mode,\n scriptOrigin: this.settings.iframeScriptOrigin\n });\n } catch (err) {\n logger2.debug(\"error after preparing navigator, closing navigator window\");\n handle.close();\n throw err;\n }\n }\n async _signinEnd(url, verifySub) {\n const logger2 = this._logger.create(\"_signinEnd\");\n const extraHeaders = {};\n const signinResponse = await this._client.processSigninResponse(url, extraHeaders);\n logger2.debug(\"got signin response\");\n const user = await this._buildUser(signinResponse, verifySub);\n return user;\n }\n async _buildUser(signinResponse, verifySub) {\n const logger2 = this._logger.create(\"_buildUser\");\n const user = new User(signinResponse);\n if (verifySub) {\n if (verifySub !== user.profile.sub) {\n logger2.debug(\"current user does not match user returned from signin. sub from signin:\", user.profile.sub);\n throw new ErrorResponse({ ...signinResponse, error: \"login_required\" });\n }\n logger2.debug(\"current user matches user returned from signin\");\n }\n await this.storeUser(user);\n logger2.debug(\"user stored\");\n await this._events.load(user);\n return user;\n }\n /**\n * Trigger a redirect of the current window to the end session endpoint.\n *\n * @returns A promise\n */\n async signoutRedirect(args = {}) {\n const logger2 = this._logger.create(\"signoutRedirect\");\n const {\n redirectMethod,\n ...requestArgs\n } = args;\n const handle = await this._redirectNavigator.prepare({ redirectMethod });\n await this._signoutStart({\n request_type: \"so:r\",\n post_logout_redirect_uri: this.settings.post_logout_redirect_uri,\n ...requestArgs\n }, handle);\n logger2.info(\"success\");\n }\n /**\n * Process response (callback) from the end session endpoint.\n * It is recommended to use {@link UserManager.signoutCallback} instead.\n *\n * @returns A promise containing signout response\n *\n * @see {@link UserManager.signoutCallback}\n */\n async signoutRedirectCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signoutRedirectCallback\");\n const response = await this._signoutEnd(url);\n logger2.info(\"success\");\n return response;\n }\n /**\n * Trigger a redirect of a popup window to the end session endpoint.\n *\n * @returns A promise\n */\n async signoutPopup(args = {}) {\n const logger2 = this._logger.create(\"signoutPopup\");\n const {\n popupWindowFeatures,\n popupWindowTarget,\n popupSignal,\n ...requestArgs\n } = args;\n const url = this.settings.popup_post_logout_redirect_uri;\n const handle = await this._popupNavigator.prepare({ popupWindowFeatures, popupWindowTarget, popupSignal });\n await this._signout({\n request_type: \"so:p\",\n post_logout_redirect_uri: url,\n // we're putting a dummy entry in here because we\n // need a unique id from the state for notification\n // to the parent window, which is necessary if we\n // plan to return back to the client after signout\n // and so we can close the popup after signout\n state: url == null ? void 0 : {},\n ...requestArgs\n }, handle);\n logger2.info(\"success\");\n }\n /**\n * Process response (callback) from the end session endpoint from a popup window.\n * It is recommended to use {@link UserManager.signoutCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signoutCallback}\n */\n async signoutPopupCallback(url = window.location.href, keepOpen = false) {\n const logger2 = this._logger.create(\"signoutPopupCallback\");\n await this._popupNavigator.callback(url, { keepOpen });\n logger2.info(\"success\");\n }\n async _signout(args, handle) {\n const navResponse = await this._signoutStart(args, handle);\n return await this._signoutEnd(navResponse.url);\n }\n async _signoutStart(args = {}, handle) {\n var _a;\n const logger2 = this._logger.create(\"_signoutStart\");\n try {\n const user = await this._loadUser();\n logger2.debug(\"loaded current user from storage\");\n if (this.settings.revokeTokensOnSignout) {\n await this._revokeInternal(user);\n }\n const id_token = args.id_token_hint || user && user.id_token;\n if (id_token) {\n logger2.debug(\"setting id_token_hint in signout request\");\n args.id_token_hint = id_token;\n }\n await this.removeUser();\n logger2.debug(\"user removed, creating signout request\");\n const signoutRequest = await this._client.createSignoutRequest(args);\n logger2.debug(\"got signout request\");\n return await handle.navigate({\n url: signoutRequest.url,\n state: (_a = signoutRequest.state) == null ? void 0 : _a.id,\n scriptOrigin: this.settings.iframeScriptOrigin\n });\n } catch (err) {\n logger2.debug(\"error after preparing navigator, closing navigator window\");\n handle.close();\n throw err;\n }\n }\n async _signoutEnd(url) {\n const logger2 = this._logger.create(\"_signoutEnd\");\n const signoutResponse = await this._client.processSignoutResponse(url);\n logger2.debug(\"got signout response\");\n return signoutResponse;\n }\n /**\n * Trigger a silent request (via an iframe) to the end session endpoint.\n *\n * @returns A promise\n */\n async signoutSilent(args = {}) {\n var _a;\n const logger2 = this._logger.create(\"signoutSilent\");\n const {\n silentRequestTimeoutInSeconds,\n ...requestArgs\n } = args;\n const id_token_hint = this.settings.includeIdTokenInSilentSignout ? (_a = await this._loadUser()) == null ? void 0 : _a.id_token : void 0;\n const url = this.settings.popup_post_logout_redirect_uri;\n const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds });\n await this._signout({\n request_type: \"so:s\",\n post_logout_redirect_uri: url,\n id_token_hint,\n ...requestArgs\n }, handle);\n logger2.info(\"success\");\n }\n /**\n * Notify the parent window of response (callback) from the end session endpoint.\n * It is recommended to use {@link UserManager.signoutCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signoutCallback}\n */\n async signoutSilentCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signoutSilentCallback\");\n await this._iframeNavigator.callback(url);\n logger2.info(\"success\");\n }\n async revokeTokens(types) {\n const user = await this._loadUser();\n await this._revokeInternal(user, types);\n }\n async _revokeInternal(user, types = this.settings.revokeTokenTypes) {\n const logger2 = this._logger.create(\"_revokeInternal\");\n if (!user) return;\n const typesPresent = types.filter((type) => typeof user[type] === \"string\");\n if (!typesPresent.length) {\n logger2.debug(\"no need to revoke due to no token(s)\");\n return;\n }\n for (const type of typesPresent) {\n await this._client.revokeToken(\n user[type],\n type\n );\n logger2.info(`${type} revoked successfully`);\n if (type !== \"access_token\") {\n user[type] = null;\n }\n }\n await this.storeUser(user);\n logger2.debug(\"user stored\");\n await this._events.load(user);\n }\n /**\n * Enables silent renew for the `UserManager`.\n */\n startSilentRenew() {\n this._logger.create(\"startSilentRenew\");\n void this._silentRenewService.start();\n }\n /**\n * Disables silent renew for the `UserManager`.\n */\n stopSilentRenew() {\n this._silentRenewService.stop();\n }\n get _userStoreKey() {\n return `user:${this.settings.authority}:${this.settings.client_id}`;\n }\n async _loadUser() {\n const logger2 = this._logger.create(\"_loadUser\");\n const storageString = await this.settings.userStore.get(this._userStoreKey);\n if (storageString) {\n logger2.debug(\"user storageString loaded\");\n return User.fromStorageString(storageString);\n }\n logger2.debug(\"no user storageString\");\n return null;\n }\n async storeUser(user) {\n const logger2 = this._logger.create(\"storeUser\");\n if (user) {\n logger2.debug(\"storing user\");\n const storageString = user.toStorageString();\n await this.settings.userStore.set(this._userStoreKey, storageString);\n } else {\n this._logger.debug(\"removing user\");\n await this.settings.userStore.remove(this._userStoreKey);\n if (this.settings.dpop) {\n await this.settings.dpop.store.remove(this.settings.client_id);\n }\n }\n }\n /**\n * Removes stale state entries in storage for incomplete authorize requests.\n */\n async clearStaleState() {\n await this._client.clearStaleState();\n }\n /**\n * Dynamically generates a DPoP proof for a given user, URL and optional Http method.\n * This method is useful when you need to make a request to a resource server\n * with fetch or similar, and you need to include a DPoP proof in a DPoP header.\n * @param url - The URL to generate the DPoP proof for\n * @param user - The user to generate the DPoP proof for\n * @param httpMethod - Optional, defaults to \"GET\"\n * @param nonce - Optional nonce provided by the resource server\n *\n * @returns A promise containing the DPoP proof or undefined if DPoP is not enabled/no user is found.\n */\n async dpopProof(url, user, httpMethod, nonce) {\n var _a, _b;\n const dpopState = await ((_b = (_a = this.settings.dpop) == null ? void 0 : _a.store) == null ? void 0 : _b.get(this.settings.client_id));\n if (dpopState) {\n return await CryptoUtils.generateDPoPProof({\n url,\n accessToken: user == null ? void 0 : user.access_token,\n httpMethod,\n keyPair: dpopState.keys,\n nonce\n });\n }\n return void 0;\n }\n async generateDPoPJkt(dpopSettings) {\n let dpopState = await dpopSettings.store.get(this.settings.client_id);\n if (!dpopState) {\n const dpopKeys = await CryptoUtils.generateDPoPKeys();\n dpopState = new DPoPState(dpopKeys);\n await dpopSettings.store.set(this.settings.client_id, dpopState);\n }\n return await CryptoUtils.generateDPoPJkt(dpopState.keys);\n }\n};\n\n// package.json\nvar version = \"3.5.0\";\n\n// src/Version.ts\nvar Version = version;\n\n// src/IndexedDbDPoPStore.ts\nvar IndexedDbDPoPStore = class {\n constructor() {\n this._dbName = \"oidc\";\n this._storeName = \"dpop\";\n }\n async set(key, value) {\n const store = await this.createStore(this._dbName, this._storeName);\n await store(\"readwrite\", (str) => {\n str.put(value, key);\n return this.promisifyRequest(str.transaction);\n });\n }\n async get(key) {\n const store = await this.createStore(this._dbName, this._storeName);\n return await store(\"readonly\", (str) => {\n return this.promisifyRequest(str.get(key));\n });\n }\n async remove(key) {\n const item = await this.get(key);\n const store = await this.createStore(this._dbName, this._storeName);\n await store(\"readwrite\", (str) => {\n return this.promisifyRequest(str.delete(key));\n });\n return item;\n }\n async getAllKeys() {\n const store = await this.createStore(this._dbName, this._storeName);\n return await store(\"readonly\", (str) => {\n return this.promisifyRequest(str.getAllKeys());\n });\n }\n promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n request.onabort = request.onerror = () => reject(request.error);\n });\n }\n async createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const db = await this.promisifyRequest(request);\n return async (txMode, callback) => {\n const tx = db.transaction(storeName, txMode);\n const store = tx.objectStore(storeName);\n return await callback(store);\n };\n }\n};\nexport {\n AccessTokenEvents,\n CheckSessionIFrame,\n DPoPState,\n ErrorResponse,\n ErrorTimeout,\n InMemoryWebStorage,\n IndexedDbDPoPStore,\n Log,\n Logger,\n MetadataService,\n OidcClient,\n OidcClientSettingsStore,\n SessionMonitor,\n SigninResponse,\n SigninState,\n SignoutResponse,\n State,\n User,\n UserManager,\n UserManagerSettingsStore,\n Version,\n WebStorageStateStore\n};\n//# sourceMappingURL=oidc-client-ts.js.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|