@globus/sdk 4.0.0-rc.1 → 4.0.0-rc.2
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/dist/cjs/apps/web.d.ts +29 -0
- package/dist/cjs/apps/web.d.ts.map +1 -0
- package/dist/cjs/apps/web.js +51 -0
- package/dist/cjs/apps/web.js.map +1 -0
- package/dist/cjs/constants.d.ts +16 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/core/authorization/AuthorizationManager.d.ts +189 -0
- package/dist/cjs/core/authorization/AuthorizationManager.d.ts.map +1 -0
- package/dist/cjs/core/authorization/AuthorizationManager.js +361 -0
- package/dist/cjs/core/authorization/AuthorizationManager.js.map +1 -0
- package/dist/cjs/core/authorization/Event.d.ts +16 -0
- package/dist/cjs/core/authorization/Event.d.ts.map +1 -0
- package/dist/cjs/core/authorization/Event.js +48 -0
- package/dist/cjs/core/authorization/Event.js.map +1 -0
- package/dist/cjs/core/authorization/RedirectTransport.d.ts +26 -0
- package/dist/cjs/core/authorization/RedirectTransport.d.ts.map +1 -0
- package/dist/cjs/core/authorization/RedirectTransport.js +100 -0
- package/dist/cjs/core/authorization/RedirectTransport.js.map +1 -0
- package/dist/cjs/core/authorization/TokenLookup.d.ts +19 -0
- package/dist/cjs/core/authorization/TokenLookup.d.ts.map +1 -0
- package/dist/cjs/core/authorization/TokenLookup.js +86 -0
- package/dist/cjs/core/authorization/TokenLookup.js.map +1 -0
- package/dist/cjs/core/authorization/index.d.ts +14 -0
- package/dist/cjs/core/authorization/index.d.ts.map +1 -0
- package/dist/cjs/core/authorization/index.js +169 -80
- package/dist/cjs/core/authorization/index.js.map +4 -4
- package/dist/cjs/core/errors.d.ts +55 -0
- package/dist/cjs/core/errors.d.ts.map +1 -0
- package/dist/cjs/core/errors.js +65 -0
- package/dist/cjs/core/errors.js.map +1 -0
- package/dist/cjs/core/global.d.ts +72 -0
- package/dist/cjs/core/global.d.ts.map +1 -0
- package/dist/cjs/core/global.js +149 -0
- package/dist/cjs/core/global.js.map +1 -0
- package/dist/cjs/core/info/index.d.ts +23 -0
- package/dist/cjs/core/info/index.d.ts.map +1 -0
- package/dist/cjs/core/info/private.d.ts +26 -0
- package/dist/cjs/core/info/private.d.ts.map +1 -0
- package/dist/cjs/core/info/private.js +48 -0
- package/dist/cjs/core/info/private.js.map +1 -0
- package/dist/cjs/core/info/version.d.ts +2 -0
- package/dist/cjs/core/info/version.d.ts.map +1 -0
- package/dist/cjs/core/info/version.js +7 -0
- package/dist/cjs/core/info/version.js.map +1 -0
- package/dist/cjs/core/logger.d.ts +31 -0
- package/dist/cjs/core/logger.d.ts.map +1 -0
- package/dist/cjs/core/logger.js +53 -0
- package/dist/cjs/core/logger.js.map +1 -0
- package/dist/cjs/core/storage/index.d.ts +29 -0
- package/dist/cjs/core/storage/index.d.ts.map +1 -0
- package/dist/cjs/core/storage/index.js +42 -0
- package/dist/cjs/core/storage/index.js.map +1 -0
- package/dist/cjs/core/storage/local-storage.d.ts +10 -0
- package/dist/cjs/core/storage/local-storage.d.ts.map +1 -0
- package/dist/cjs/core/storage/local-storage.js +32 -0
- package/dist/cjs/core/storage/local-storage.js.map +1 -0
- package/dist/cjs/core/storage/memory.d.ts +10 -0
- package/dist/cjs/core/storage/memory.d.ts.map +1 -0
- package/dist/cjs/core/storage/memory.js +38 -0
- package/dist/cjs/core/storage/memory.js.map +1 -0
- package/dist/cjs/core/url.d.ts +31 -0
- package/dist/cjs/core/url.d.ts.map +1 -0
- package/dist/cjs/core/url.js +59 -0
- package/dist/cjs/core/url.js.map +1 -0
- package/dist/cjs/index.d.ts +76 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +169 -77
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/services/auth/config.d.ts +16 -0
- package/dist/cjs/services/auth/config.d.ts.map +1 -0
- package/dist/cjs/services/auth/config.js +31 -0
- package/dist/cjs/services/auth/config.js.map +1 -0
- package/dist/cjs/services/auth/index.d.ts +28 -0
- package/dist/cjs/services/auth/index.d.ts.map +1 -0
- package/dist/cjs/services/auth/index.js +65 -0
- package/dist/cjs/services/auth/index.js.map +1 -0
- package/dist/cjs/services/auth/service/identities.d.ts +21 -0
- package/dist/cjs/services/auth/service/identities.d.ts.map +1 -0
- package/dist/cjs/services/auth/service/identities.js +28 -0
- package/dist/cjs/services/auth/service/identities.js.map +1 -0
- package/dist/cjs/services/auth/service/oauth2/index.d.ts +5 -0
- package/dist/cjs/services/auth/service/oauth2/index.d.ts.map +1 -0
- package/dist/cjs/services/auth/service/oauth2/index.js +38 -0
- package/dist/cjs/services/auth/service/oauth2/index.js.map +1 -0
- package/dist/cjs/services/auth/service/oauth2/token.d.ts +53 -0
- package/dist/cjs/services/auth/service/oauth2/token.d.ts.map +1 -0
- package/dist/cjs/services/auth/service/oauth2/token.js +88 -0
- package/dist/cjs/services/auth/service/oauth2/token.js.map +1 -0
- package/dist/cjs/services/auth/types.d.ts +43 -0
- package/dist/cjs/services/auth/types.d.ts.map +1 -0
- package/dist/cjs/services/auth/types.js +3 -0
- package/dist/cjs/services/auth/types.js.map +1 -0
- package/dist/cjs/services/compute/config.d.ts +7 -0
- package/dist/cjs/services/compute/config.d.ts.map +1 -0
- package/dist/cjs/services/compute/config.js +16 -0
- package/dist/cjs/services/compute/config.js.map +1 -0
- package/dist/cjs/services/compute/index.d.ts +14 -0
- package/dist/cjs/services/compute/index.d.ts.map +1 -0
- package/dist/cjs/services/compute/index.js +40 -0
- package/dist/cjs/services/compute/index.js.map +1 -0
- package/dist/cjs/services/compute/service/endpoints.d.ts +20 -0
- package/dist/cjs/services/compute/service/endpoints.d.ts.map +1 -0
- package/dist/cjs/services/compute/service/endpoints.js +29 -0
- package/dist/cjs/services/compute/service/endpoints.js.map +1 -0
- package/dist/cjs/services/flows/config.d.ts +14 -0
- package/dist/cjs/services/flows/config.d.ts.map +1 -0
- package/dist/cjs/services/flows/config.js +23 -0
- package/dist/cjs/services/flows/config.js.map +1 -0
- package/dist/cjs/services/flows/index.d.ts +15 -0
- package/dist/cjs/services/flows/index.d.ts.map +1 -0
- package/dist/cjs/services/flows/index.js +41 -0
- package/dist/cjs/services/flows/index.js.map +1 -0
- package/dist/cjs/services/flows/service/flows.d.ts +40 -0
- package/dist/cjs/services/flows/service/flows.d.ts.map +1 -0
- package/dist/cjs/services/flows/service/flows.js +49 -0
- package/dist/cjs/services/flows/service/flows.js.map +1 -0
- package/dist/cjs/services/flows/service/runs.d.ts +31 -0
- package/dist/cjs/services/flows/service/runs.d.ts.map +1 -0
- package/dist/cjs/services/flows/service/runs.js +39 -0
- package/dist/cjs/services/flows/service/runs.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/client.d.ts +1451 -0
- package/dist/cjs/services/globus-connect-server/client.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/client.js.map +2 -2
- package/dist/cjs/services/globus-connect-server/constants.d.ts +22 -0
- package/dist/cjs/services/globus-connect-server/constants.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/constants.js +84 -0
- package/dist/cjs/services/globus-connect-server/constants.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/index.d.ts +49 -0
- package/dist/cjs/services/globus-connect-server/index.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/index.js +45 -0
- package/dist/cjs/services/globus-connect-server/index.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/collections.d.ts +74 -0
- package/dist/cjs/services/globus-connect-server/service/collections.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/collections.js +92 -0
- package/dist/cjs/services/globus-connect-server/service/collections.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/endpoint.d.ts +71 -0
- package/dist/cjs/services/globus-connect-server/service/endpoint.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/endpoint.js +82 -0
- package/dist/cjs/services/globus-connect-server/service/endpoint.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/https.d.ts +35 -0
- package/dist/cjs/services/globus-connect-server/service/https.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/https.js +38 -0
- package/dist/cjs/services/globus-connect-server/service/https.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/roles.d.ts +41 -0
- package/dist/cjs/services/globus-connect-server/service/roles.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/roles.js +48 -0
- package/dist/cjs/services/globus-connect-server/service/roles.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/storage-gateways.d.ts +58 -0
- package/dist/cjs/services/globus-connect-server/service/storage-gateways.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/storage-gateways.js +70 -0
- package/dist/cjs/services/globus-connect-server/service/storage-gateways.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/user-credentials.d.ts +59 -0
- package/dist/cjs/services/globus-connect-server/service/user-credentials.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/user-credentials.js +70 -0
- package/dist/cjs/services/globus-connect-server/service/user-credentials.js.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/versioning.d.ts +14 -0
- package/dist/cjs/services/globus-connect-server/service/versioning.d.ts.map +1 -0
- package/dist/cjs/services/globus-connect-server/service/versioning.js +17 -0
- package/dist/cjs/services/globus-connect-server/service/versioning.js.map +1 -0
- package/dist/cjs/services/groups/config.d.ts +11 -0
- package/dist/cjs/services/groups/config.d.ts.map +1 -0
- package/dist/cjs/services/groups/config.js +20 -0
- package/dist/cjs/services/groups/config.js.map +1 -0
- package/dist/cjs/services/groups/index.d.ts +19 -0
- package/dist/cjs/services/groups/index.d.ts.map +1 -0
- package/dist/cjs/services/groups/index.js +45 -0
- package/dist/cjs/services/groups/index.js.map +1 -0
- package/dist/cjs/services/groups/service/groups.d.ts +23 -0
- package/dist/cjs/services/groups/service/groups.d.ts.map +1 -0
- package/dist/cjs/services/groups/service/groups.js +26 -0
- package/dist/cjs/services/groups/service/groups.js.map +1 -0
- package/dist/cjs/services/groups/service/membership.d.ts +13 -0
- package/dist/cjs/services/groups/service/membership.d.ts.map +1 -0
- package/dist/cjs/services/groups/service/membership.js +20 -0
- package/dist/cjs/services/groups/service/membership.js.map +1 -0
- package/dist/cjs/services/groups/service/policies.d.ts +13 -0
- package/dist/cjs/services/groups/service/policies.d.ts.map +1 -0
- package/dist/cjs/services/groups/service/policies.js +16 -0
- package/dist/cjs/services/groups/service/policies.js.map +1 -0
- package/dist/cjs/services/search/config.d.ts +12 -0
- package/dist/cjs/services/search/config.d.ts.map +1 -0
- package/dist/cjs/services/search/config.js +21 -0
- package/dist/cjs/services/search/config.js.map +1 -0
- package/dist/cjs/services/search/index.d.ts +17 -0
- package/dist/cjs/services/search/index.d.ts.map +1 -0
- package/dist/cjs/services/search/index.js +43 -0
- package/dist/cjs/services/search/index.js.map +1 -0
- package/dist/cjs/services/search/service/entry.d.ts +22 -0
- package/dist/cjs/services/search/service/entry.d.ts.map +1 -0
- package/dist/cjs/services/search/service/entry.js +19 -0
- package/dist/cjs/services/search/service/entry.js.map +1 -0
- package/dist/cjs/services/search/service/query.d.ts +158 -0
- package/dist/cjs/services/search/service/query.d.ts.map +1 -0
- package/dist/cjs/services/search/service/query.js +31 -0
- package/dist/cjs/services/search/service/query.js.map +1 -0
- package/dist/cjs/services/search/service/search-index.d.ts +131 -0
- package/dist/cjs/services/search/service/search-index.d.ts.map +1 -0
- package/dist/cjs/services/search/service/search-index.js +67 -0
- package/dist/cjs/services/search/service/search-index.js.map +1 -0
- package/dist/cjs/services/search/service/subject.d.ts +21 -0
- package/dist/cjs/services/search/service/subject.d.ts.map +1 -0
- package/dist/cjs/services/search/service/subject.js +19 -0
- package/dist/cjs/services/search/service/subject.js.map +1 -0
- package/dist/cjs/services/search/types.d.ts +12 -0
- package/dist/cjs/services/search/types.d.ts.map +1 -0
- package/dist/cjs/services/search/types.js +3 -0
- package/dist/cjs/services/search/types.js.map +1 -0
- package/dist/cjs/services/shared.d.ts +71 -0
- package/dist/cjs/services/shared.d.ts.map +1 -0
- package/dist/cjs/services/shared.js +183 -0
- package/dist/cjs/services/shared.js.map +1 -0
- package/dist/cjs/services/timer/config.d.ts +4 -0
- package/dist/cjs/services/timer/config.d.ts.map +1 -0
- package/dist/cjs/services/timer/config.js +13 -0
- package/dist/cjs/services/timer/config.js.map +1 -0
- package/dist/cjs/services/timer/index.d.ts +15 -0
- package/dist/cjs/services/timer/index.d.ts.map +1 -0
- package/dist/cjs/services/timer/index.js +41 -0
- package/dist/cjs/services/timer/index.js.map +1 -0
- package/dist/cjs/services/timer/service/timer.d.ts +6 -0
- package/dist/cjs/services/timer/service/timer.d.ts.map +1 -0
- package/dist/cjs/services/timer/service/timer.js +14 -0
- package/dist/cjs/services/timer/service/timer.js.map +1 -0
- package/dist/cjs/services/transfer/config.d.ts +7 -0
- package/dist/cjs/services/transfer/config.d.ts.map +1 -0
- package/dist/cjs/services/transfer/config.js +16 -0
- package/dist/cjs/services/transfer/config.js.map +1 -0
- package/dist/cjs/services/transfer/index.d.ts +23 -0
- package/dist/cjs/services/transfer/index.d.ts.map +1 -0
- package/dist/cjs/services/transfer/index.js +49 -0
- package/dist/cjs/services/transfer/index.js.map +1 -0
- package/dist/cjs/services/transfer/service/access.d.ts +73 -0
- package/dist/cjs/services/transfer/service/access.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/access.js +59 -0
- package/dist/cjs/services/transfer/service/access.js.map +1 -0
- package/dist/cjs/services/transfer/service/collection-bookmarks.d.ts +53 -0
- package/dist/cjs/services/transfer/service/collection-bookmarks.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/collection-bookmarks.js +59 -0
- package/dist/cjs/services/transfer/service/collection-bookmarks.js.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/endpoint.d.ts +43 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/endpoint.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/endpoint.js +47 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/endpoint.js.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/index.d.ts +4 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/index.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/index.js +30 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/index.js.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/pause-rule.d.ts +59 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/pause-rule.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/pause-rule.js +61 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/pause-rule.js.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/task.d.ts +96 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/task.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/task.js +110 -0
- package/dist/cjs/services/transfer/service/endpoint-manager/task.js.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-search.d.ts +15 -0
- package/dist/cjs/services/transfer/service/endpoint-search.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint-search.js +29 -0
- package/dist/cjs/services/transfer/service/endpoint-search.js.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint.d.ts +61 -0
- package/dist/cjs/services/transfer/service/endpoint.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/endpoint.js +71 -0
- package/dist/cjs/services/transfer/service/endpoint.js.map +1 -0
- package/dist/cjs/services/transfer/service/file-operations.d.ts +114 -0
- package/dist/cjs/services/transfer/service/file-operations.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/file-operations.js +88 -0
- package/dist/cjs/services/transfer/service/file-operations.js.map +1 -0
- package/dist/cjs/services/transfer/service/task-submission.d.ts +85 -0
- package/dist/cjs/services/transfer/service/task-submission.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/task-submission.js +53 -0
- package/dist/cjs/services/transfer/service/task-submission.js.map +1 -0
- package/dist/cjs/services/transfer/service/task.d.ts +106 -0
- package/dist/cjs/services/transfer/service/task.d.ts.map +1 -0
- package/dist/cjs/services/transfer/service/task.js +101 -0
- package/dist/cjs/services/transfer/service/task.js.map +1 -0
- package/dist/cjs/services/transfer/shared.d.ts +3 -0
- package/dist/cjs/services/transfer/shared.d.ts.map +1 -0
- package/dist/cjs/services/transfer/shared.js +13 -0
- package/dist/cjs/services/transfer/shared.js.map +1 -0
- package/dist/cjs/services/transfer/types.d.ts +364 -0
- package/dist/cjs/services/transfer/types.d.ts.map +1 -0
- package/dist/cjs/services/transfer/types.js +3 -0
- package/dist/cjs/services/transfer/types.js.map +1 -0
- package/dist/cjs/services/transfer/utils.d.ts +28 -0
- package/dist/cjs/services/transfer/utils.d.ts.map +1 -0
- package/dist/cjs/services/transfer/utils.js +98 -0
- package/dist/cjs/services/transfer/utils.js.map +1 -0
- package/dist/cjs/services/types.d.ts +84 -0
- package/dist/cjs/services/types.d.ts.map +1 -0
- package/dist/cjs/services/types.js +3 -0
- package/dist/cjs/services/types.js.map +1 -0
- package/dist/esm/core/authorization/AuthorizationManager.d.ts +8 -9
- package/dist/esm/core/authorization/AuthorizationManager.d.ts.map +1 -1
- package/dist/esm/core/authorization/AuthorizationManager.js +58 -39
- package/dist/esm/core/authorization/AuthorizationManager.js.map +1 -1
- package/dist/esm/core/authorization/RedirectTransport.d.ts +22 -7
- package/dist/esm/core/authorization/RedirectTransport.d.ts.map +1 -1
- package/dist/esm/core/authorization/RedirectTransport.js +84 -31
- package/dist/esm/core/authorization/RedirectTransport.js.map +1 -1
- package/dist/esm/core/authorization/pkce.d.ts +36 -0
- package/dist/esm/core/authorization/pkce.d.ts.map +1 -0
- package/dist/esm/core/authorization/pkce.js +65 -0
- package/dist/esm/core/authorization/pkce.js.map +1 -0
- package/dist/esm/core/global.d.ts.map +1 -1
- package/dist/esm/core/url.d.ts.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/services/auth/service/oauth2/token.d.ts +19 -0
- package/dist/esm/services/auth/service/oauth2/token.d.ts.map +1 -1
- package/dist/esm/services/auth/service/oauth2/token.js +17 -1
- package/dist/esm/services/auth/service/oauth2/token.js.map +1 -1
- package/dist/umd/globus.production.js +2 -2
- package/dist/umd/globus.production.js.map +4 -4
- package/package.json +2 -3
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _TokenLookup_instances, _TokenLookup_manager, _TokenLookup_getClientStorageEntry, _TokenLookup_getTokenForService;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TokenLookup = void 0;
|
|
16
|
+
const index_js_1 = require("../storage/index.js");
|
|
17
|
+
const index_js_2 = require("../../services/auth/index.js");
|
|
18
|
+
const global_js_1 = require("../global.js");
|
|
19
|
+
function getTokenFromStorage(key) {
|
|
20
|
+
const raw = (0, index_js_1.getStorage)().get(key) || 'null';
|
|
21
|
+
let token = null;
|
|
22
|
+
try {
|
|
23
|
+
const parsed = JSON.parse(raw);
|
|
24
|
+
if ((0, index_js_2.isToken)(parsed)) {
|
|
25
|
+
token = parsed;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
// no-op
|
|
30
|
+
}
|
|
31
|
+
return token;
|
|
32
|
+
}
|
|
33
|
+
class TokenLookup {
|
|
34
|
+
constructor(options) {
|
|
35
|
+
_TokenLookup_instances.add(this);
|
|
36
|
+
_TokenLookup_manager.set(this, void 0);
|
|
37
|
+
__classPrivateFieldSet(this, _TokenLookup_manager, options.manager, "f");
|
|
38
|
+
}
|
|
39
|
+
get auth() {
|
|
40
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.AUTH);
|
|
41
|
+
}
|
|
42
|
+
get transfer() {
|
|
43
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.TRANSFER);
|
|
44
|
+
}
|
|
45
|
+
get flows() {
|
|
46
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.FLOWS);
|
|
47
|
+
}
|
|
48
|
+
get groups() {
|
|
49
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.GROUPS);
|
|
50
|
+
}
|
|
51
|
+
get search() {
|
|
52
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.SEARCH);
|
|
53
|
+
}
|
|
54
|
+
get timer() {
|
|
55
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.TIMER);
|
|
56
|
+
}
|
|
57
|
+
get compute() {
|
|
58
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getTokenForService).call(this, global_js_1.SERVICES.COMPUTE);
|
|
59
|
+
}
|
|
60
|
+
gcs(endpoint) {
|
|
61
|
+
return this.getByResourceServer(endpoint);
|
|
62
|
+
}
|
|
63
|
+
getByResourceServer(resourceServer) {
|
|
64
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getClientStorageEntry).call(this, resourceServer);
|
|
65
|
+
}
|
|
66
|
+
getAll() {
|
|
67
|
+
const entries = (0, index_js_1.getStorage)()
|
|
68
|
+
.keys()
|
|
69
|
+
.reduce((acc, key) => {
|
|
70
|
+
if (key.startsWith(__classPrivateFieldGet(this, _TokenLookup_manager, "f").storageKeyPrefix)) {
|
|
71
|
+
acc.push(getTokenFromStorage(key));
|
|
72
|
+
}
|
|
73
|
+
return acc;
|
|
74
|
+
}, []);
|
|
75
|
+
return entries.filter(index_js_2.isToken);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.TokenLookup = TokenLookup;
|
|
79
|
+
_TokenLookup_manager = new WeakMap(), _TokenLookup_instances = new WeakSet(), _TokenLookup_getClientStorageEntry = function _TokenLookup_getClientStorageEntry(identifier) {
|
|
80
|
+
return getTokenFromStorage(`${__classPrivateFieldGet(this, _TokenLookup_manager, "f").storageKeyPrefix}${identifier}`);
|
|
81
|
+
}, _TokenLookup_getTokenForService = function _TokenLookup_getTokenForService(service) {
|
|
82
|
+
var _a;
|
|
83
|
+
const resourceServer = (_a = index_js_2.CONFIG.RESOURCE_SERVERS) === null || _a === void 0 ? void 0 : _a[service];
|
|
84
|
+
return __classPrivateFieldGet(this, _TokenLookup_instances, "m", _TokenLookup_getClientStorageEntry).call(this, resourceServer);
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=TokenLookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenLookup.js","sourceRoot":"","sources":["../../../../src/core/authorization/TokenLookup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAiD;AACjD,2DAA+D;AAE/D,4CAAsD;AAKtD,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,GAAG,GAAG,IAAA,qBAAU,GAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC;IAC5C,IAAI,KAAK,GAAiB,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAA,kBAAO,EAAC,MAAM,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ;IACV,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAa,WAAW;IAGtB,YAAY,OAA0C;;QAFtD,uCAA+B;QAG7B,uBAAA,IAAI,wBAAY,OAAO,CAAC,OAAO,MAAA,CAAC;IAClC,CAAC;IAWD,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,uBAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,mBAAmB,CAAC,cAAsB;QACxC,OAAO,uBAAA,IAAI,kEAAuB,MAA3B,IAAI,EAAwB,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAA,qBAAU,GAAE;aACzB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,GAAqB,EAAE,GAAG,EAAE,EAAE;YACrC,IAAI,GAAG,CAAC,UAAU,CAAC,uBAAA,IAAI,4BAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,OAAO,OAAO,CAAC,MAAM,CAAC,kBAAO,CAAC,CAAC;IACjC,CAAC;CACF;AA/DD,kCA+DC;+JAxDwB,UAAkB;IACvC,OAAO,mBAAmB,CAAC,GAAG,uBAAA,IAAI,4BAAS,CAAC,gBAAgB,GAAG,UAAU,EAAE,CAAC,CAAC;AAC/E,CAAC,6EAEmB,OAAgB;;IAClC,MAAM,cAAc,GAAG,MAAA,iBAAM,CAAC,gBAAgB,0CAAG,OAAO,CAAC,CAAC;IAC1D,OAAO,uBAAA,IAAI,kEAAuB,MAA3B,IAAI,EAAwB,cAAc,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Authorization
|
|
3
|
+
* @description Provides modules for interacting with Globus-related authorization contexts in your application.
|
|
4
|
+
* @example
|
|
5
|
+
* import { authorization } from "globus/sdk";
|
|
6
|
+
* const manager = authorization.create(...);
|
|
7
|
+
*/
|
|
8
|
+
import { AuthorizationManager, type AuthorizationManagerConfiguration } from './AuthorizationManager.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create an instance of the {@link AuthorizationManager}.
|
|
11
|
+
*/
|
|
12
|
+
export declare function create(configuration: AuthorizationManagerConfiguration): AuthorizationManager;
|
|
13
|
+
export { AuthorizationManager, AuthorizationManagerConfiguration };
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,oBAAoB,EACpB,KAAK,iCAAiC,EACvC,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,wBAAgB,MAAM,CAAC,aAAa,EAAE,iCAAiC,wBAEtE;AAED,OAAO,EAAE,oBAAoB,EAAE,iCAAiC,EAAE,CAAC"}
|
|
@@ -357,11 +357,11 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
357
357
|
...injectedFetchOptions.headers
|
|
358
358
|
};
|
|
359
359
|
const manager = sdkOptions?.manager;
|
|
360
|
-
let
|
|
360
|
+
let token2;
|
|
361
361
|
if (config.resource_server && manager) {
|
|
362
|
-
|
|
363
|
-
if (
|
|
364
|
-
headers["Authorization"] = `Bearer ${
|
|
362
|
+
token2 = manager.tokens.getByResourceServer(config.resource_server);
|
|
363
|
+
if (token2) {
|
|
364
|
+
headers["Authorization"] = `Bearer ${token2.access_token}`;
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
if (config.scope && manager) {
|
|
@@ -369,9 +369,9 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
369
369
|
// For `GCSConfiguration` objects, the `endpoint_id` is the resource server.
|
|
370
370
|
config.service.endpoint_id
|
|
371
371
|
);
|
|
372
|
-
|
|
373
|
-
if (
|
|
374
|
-
headers["Authorization"] = `Bearer ${
|
|
372
|
+
token2 = manager.tokens.getByResourceServer(resourceServer);
|
|
373
|
+
if (token2) {
|
|
374
|
+
headers["Authorization"] = `Bearer ${token2.access_token}`;
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
let body = options?.body;
|
|
@@ -403,7 +403,7 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
403
403
|
handler = injectedFetchOptions.__callable.bind(this);
|
|
404
404
|
delete init.__callable;
|
|
405
405
|
}
|
|
406
|
-
if (config.preventRetry || !manager || !
|
|
406
|
+
if (config.preventRetry || !manager || !token2 || !isRefreshToken(token2)) {
|
|
407
407
|
return handler(url, init);
|
|
408
408
|
}
|
|
409
409
|
const initialResponse = await handler(url, init);
|
|
@@ -425,7 +425,7 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
425
425
|
}
|
|
426
426
|
const shouldAttemptTokenRefresh = initialResponse.status === 401 && !hasAuthorizationRequirements;
|
|
427
427
|
if (shouldAttemptTokenRefresh) {
|
|
428
|
-
const newToken = await manager.refreshToken(
|
|
428
|
+
const newToken = await manager.refreshToken(token2);
|
|
429
429
|
if (!newToken) {
|
|
430
430
|
return initialResponse;
|
|
431
431
|
}
|
|
@@ -450,9 +450,11 @@ __export(oauth2_exports, {
|
|
|
450
450
|
// src/services/auth/service/oauth2/token.ts
|
|
451
451
|
var token_exports = {};
|
|
452
452
|
__export(token_exports, {
|
|
453
|
+
exchange: () => exchange,
|
|
453
454
|
introspect: () => introspect,
|
|
454
455
|
refresh: () => refresh,
|
|
455
456
|
revoke: () => revoke,
|
|
457
|
+
token: () => token,
|
|
456
458
|
validate: () => validate
|
|
457
459
|
});
|
|
458
460
|
function serialize(payload) {
|
|
@@ -465,9 +467,10 @@ function injectServiceOptions(options) {
|
|
|
465
467
|
* The `token` service methods always expect a form-encoded body. We still allow
|
|
466
468
|
* end-consumers to pass a raw body, but if `payload` is provided it is serialized.
|
|
467
469
|
*/
|
|
468
|
-
body: serialize(options.payload),
|
|
470
|
+
body: options.payload ? serialize(options.payload) : void 0,
|
|
469
471
|
headers: {
|
|
470
472
|
...options?.headers || {},
|
|
473
|
+
Accept: "application/json",
|
|
471
474
|
/**
|
|
472
475
|
* Force the `Content-Type` header to be `application/x-www-form-urlencoded` and `charset=UTF-8`.
|
|
473
476
|
*/
|
|
@@ -475,6 +478,20 @@ function injectServiceOptions(options) {
|
|
|
475
478
|
}
|
|
476
479
|
};
|
|
477
480
|
}
|
|
481
|
+
var token = function(options = {}, sdkOptions) {
|
|
482
|
+
return serviceRequest(
|
|
483
|
+
{
|
|
484
|
+
service: ID7,
|
|
485
|
+
scope: void 0,
|
|
486
|
+
path: `/v2/oauth2/token`,
|
|
487
|
+
method: "POST" /* POST */,
|
|
488
|
+
preventRetry: true
|
|
489
|
+
},
|
|
490
|
+
injectServiceOptions(options),
|
|
491
|
+
sdkOptions
|
|
492
|
+
);
|
|
493
|
+
};
|
|
494
|
+
var exchange = token;
|
|
478
495
|
var introspect = function(options, sdkOptions) {
|
|
479
496
|
if (!options?.payload) {
|
|
480
497
|
throw new Error(`'payload' is required for introspect`);
|
|
@@ -559,9 +576,6 @@ var CONFIG = config_exports;
|
|
|
559
576
|
function getAuthorizationEndpoint() {
|
|
560
577
|
return build(ID7, "/v2/oauth2/authorize");
|
|
561
578
|
}
|
|
562
|
-
function getTokenEndpoint() {
|
|
563
|
-
return build(ID7, "/v2/oauth2/token");
|
|
564
|
-
}
|
|
565
579
|
function isToken(check) {
|
|
566
580
|
return typeof check === "object" && check !== null && "access_token" in check;
|
|
567
581
|
}
|
|
@@ -651,27 +665,71 @@ var Event = class {
|
|
|
651
665
|
}
|
|
652
666
|
};
|
|
653
667
|
|
|
668
|
+
// src/core/authorization/pkce.ts
|
|
669
|
+
function isSupported() {
|
|
670
|
+
return "crypto" in globalThis;
|
|
671
|
+
}
|
|
672
|
+
function getCrypto() {
|
|
673
|
+
return "webcrypto" in globalThis.crypto ? globalThis.crypto.webcrypto : globalThis.crypto;
|
|
674
|
+
}
|
|
675
|
+
var encode = (value) => btoa(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
676
|
+
async function sha256(input) {
|
|
677
|
+
const hashBuffer = await getCrypto().subtle.digest("SHA-256", new TextEncoder().encode(input));
|
|
678
|
+
return String.fromCharCode(...new Uint8Array(hashBuffer));
|
|
679
|
+
}
|
|
680
|
+
var CHARSET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
681
|
+
var PKCE_SAFE_CHARSET = `${CHARSET}-._~`;
|
|
682
|
+
function generateCodeVerifier() {
|
|
683
|
+
return Array.from(getCrypto().getRandomValues(new Uint8Array(43))).map((v) => PKCE_SAFE_CHARSET[v % PKCE_SAFE_CHARSET.length]).join("");
|
|
684
|
+
}
|
|
685
|
+
async function generateCodeChallenge(verifier) {
|
|
686
|
+
const hashed = await sha256(verifier);
|
|
687
|
+
return encode(hashed);
|
|
688
|
+
}
|
|
689
|
+
function generateState() {
|
|
690
|
+
return Array.from(getCrypto().getRandomValues(new Uint8Array(16))).map((v) => CHARSET[v % CHARSET.length]).join("");
|
|
691
|
+
}
|
|
692
|
+
|
|
654
693
|
// src/core/authorization/RedirectTransport.ts
|
|
655
|
-
var
|
|
694
|
+
var KEYS = {
|
|
695
|
+
PKCE_STATE: "pkce_state",
|
|
696
|
+
PKCE_CODE_VERIFIER: "pkce_code_verifier"
|
|
697
|
+
};
|
|
656
698
|
function resetPKCE() {
|
|
657
|
-
sessionStorage.removeItem(
|
|
658
|
-
sessionStorage.removeItem(
|
|
699
|
+
sessionStorage.removeItem(KEYS.PKCE_STATE);
|
|
700
|
+
sessionStorage.removeItem(KEYS.PKCE_CODE_VERIFIER);
|
|
659
701
|
}
|
|
660
|
-
var RedirectTransport = class {
|
|
661
|
-
#
|
|
662
|
-
#params = {};
|
|
702
|
+
var RedirectTransport = class _RedirectTransport {
|
|
703
|
+
#options;
|
|
663
704
|
constructor(options) {
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
}
|
|
668
|
-
this.#params = {
|
|
669
|
-
...params
|
|
670
|
-
};
|
|
705
|
+
this.#options = options;
|
|
706
|
+
if (_RedirectTransport.supported === false) {
|
|
707
|
+
throw new Error("RedirectTransport is not supported in this environment.");
|
|
708
|
+
}
|
|
671
709
|
}
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
710
|
+
static supported = isSupported();
|
|
711
|
+
/**
|
|
712
|
+
* For the redirect transport, sending the request will redirect the user to the authorization endpoint, initiating the OAuth flow.
|
|
713
|
+
*/
|
|
714
|
+
async send() {
|
|
715
|
+
const verifier = generateCodeVerifier();
|
|
716
|
+
const challenge = await generateCodeChallenge(verifier);
|
|
717
|
+
const state = generateState();
|
|
718
|
+
sessionStorage.setItem(KEYS.PKCE_CODE_VERIFIER, verifier);
|
|
719
|
+
sessionStorage.setItem(KEYS.PKCE_STATE, state);
|
|
720
|
+
const params = {
|
|
721
|
+
response_type: "code",
|
|
722
|
+
client_id: this.#options.client,
|
|
723
|
+
scope: this.#options.scopes || "",
|
|
724
|
+
redirect_uri: this.#options.redirect,
|
|
725
|
+
state,
|
|
726
|
+
code_challenge: challenge,
|
|
727
|
+
code_challenge_method: "S256",
|
|
728
|
+
...this.#options.params || {}
|
|
729
|
+
};
|
|
730
|
+
const url = new URL(getAuthorizationEndpoint());
|
|
731
|
+
url.search = new URLSearchParams(params).toString();
|
|
732
|
+
window.location.assign(url.toString());
|
|
675
733
|
}
|
|
676
734
|
/**
|
|
677
735
|
* Parse the current URL for the authorization code (`?code=...`) and exchange it for an access token when available.
|
|
@@ -680,9 +738,35 @@ var RedirectTransport = class {
|
|
|
680
738
|
async getToken(options = { shouldReplace: true }) {
|
|
681
739
|
const url = new URL(window.location.href);
|
|
682
740
|
const params = new URLSearchParams(url.search);
|
|
683
|
-
if (
|
|
684
|
-
|
|
741
|
+
if (params.get("error")) {
|
|
742
|
+
throw new Error(
|
|
743
|
+
params.get("error_description") || "An error occurred during the authorization process."
|
|
744
|
+
);
|
|
745
|
+
}
|
|
746
|
+
const code = params.get("code");
|
|
747
|
+
if (!code) return void 0;
|
|
748
|
+
const state = sessionStorage.getItem(KEYS.PKCE_STATE);
|
|
749
|
+
const verifier = sessionStorage.getItem(KEYS.PKCE_CODE_VERIFIER);
|
|
685
750
|
resetPKCE();
|
|
751
|
+
if (params.get("state") !== state) {
|
|
752
|
+
throw new Error("Invalid State");
|
|
753
|
+
}
|
|
754
|
+
if (!verifier) {
|
|
755
|
+
throw new Error("Invalid Code Verifier");
|
|
756
|
+
}
|
|
757
|
+
const payload = {
|
|
758
|
+
code,
|
|
759
|
+
client_id: this.#options.client,
|
|
760
|
+
/**
|
|
761
|
+
* Retrieve the code verifier from session storage.
|
|
762
|
+
*/
|
|
763
|
+
code_verifier: verifier,
|
|
764
|
+
redirect_uri: this.#options.redirect,
|
|
765
|
+
grant_type: "authorization_code"
|
|
766
|
+
};
|
|
767
|
+
const response = await (await oauth2_exports.token.exchange({
|
|
768
|
+
payload
|
|
769
|
+
})).json();
|
|
686
770
|
if (options.shouldReplace) {
|
|
687
771
|
params.delete("code");
|
|
688
772
|
params.delete("state");
|
|
@@ -696,15 +780,15 @@ var RedirectTransport = class {
|
|
|
696
780
|
// src/core/authorization/TokenLookup.ts
|
|
697
781
|
function getTokenFromStorage(key) {
|
|
698
782
|
const raw = getStorage().get(key) || "null";
|
|
699
|
-
let
|
|
783
|
+
let token2 = null;
|
|
700
784
|
try {
|
|
701
785
|
const parsed = JSON.parse(raw);
|
|
702
786
|
if (isToken(parsed)) {
|
|
703
|
-
|
|
787
|
+
token2 = parsed;
|
|
704
788
|
}
|
|
705
789
|
} catch (e) {
|
|
706
790
|
}
|
|
707
|
-
return
|
|
791
|
+
return token2;
|
|
708
792
|
}
|
|
709
793
|
var TokenLookup = class {
|
|
710
794
|
#manager;
|
|
@@ -839,8 +923,8 @@ var AuthorizationManager = class {
|
|
|
839
923
|
* @see {@link https://docs.globus.org/api/auth/reference/#oidc_userinfo_endpoint}
|
|
840
924
|
*/
|
|
841
925
|
get user() {
|
|
842
|
-
const
|
|
843
|
-
return
|
|
926
|
+
const token2 = this.getGlobusAuthToken();
|
|
927
|
+
return token2 && token2.id_token ? (0, import_jwt_decode.jwtDecode)(token2.id_token) : null;
|
|
844
928
|
}
|
|
845
929
|
/**
|
|
846
930
|
* Attempt to refresh all of the tokens managed by the instance.
|
|
@@ -849,9 +933,9 @@ var AuthorizationManager = class {
|
|
|
849
933
|
async refreshTokens() {
|
|
850
934
|
log("debug", "AuthorizationManager.refreshTokens");
|
|
851
935
|
const tokens = await Promise.allSettled(
|
|
852
|
-
this.tokens.getAll().map((
|
|
853
|
-
if (isRefreshToken(
|
|
854
|
-
return this.refreshToken(
|
|
936
|
+
this.tokens.getAll().map((token2) => {
|
|
937
|
+
if (isRefreshToken(token2)) {
|
|
938
|
+
return this.refreshToken(token2);
|
|
855
939
|
}
|
|
856
940
|
return Promise.resolve(null);
|
|
857
941
|
})
|
|
@@ -863,13 +947,13 @@ var AuthorizationManager = class {
|
|
|
863
947
|
* Use the `refresh_token` attribute of a token to obtain a new access token.
|
|
864
948
|
* @param token The well-formed token with a `refresh_token` attribute.
|
|
865
949
|
*/
|
|
866
|
-
async refreshToken(
|
|
867
|
-
log("debug", `AuthorizationManager.refreshToken | resource_server=${
|
|
950
|
+
async refreshToken(token2) {
|
|
951
|
+
log("debug", `AuthorizationManager.refreshToken | resource_server=${token2.resource_server}`);
|
|
868
952
|
try {
|
|
869
953
|
const response = await (await oauth2_exports.token.refresh({
|
|
870
954
|
payload: {
|
|
871
955
|
client_id: this.configuration.client,
|
|
872
|
-
refresh_token:
|
|
956
|
+
refresh_token: token2.refresh_token,
|
|
873
957
|
grant_type: "refresh_token"
|
|
874
958
|
}
|
|
875
959
|
})).json();
|
|
@@ -878,7 +962,7 @@ var AuthorizationManager = class {
|
|
|
878
962
|
return response;
|
|
879
963
|
}
|
|
880
964
|
} catch (error) {
|
|
881
|
-
log("error", `AuthorizationManager.refreshToken | resource_server=${
|
|
965
|
+
log("error", `AuthorizationManager.refreshToken | resource_server=${token2.resource_server}`);
|
|
882
966
|
}
|
|
883
967
|
return null;
|
|
884
968
|
}
|
|
@@ -903,10 +987,10 @@ var AuthorizationManager = class {
|
|
|
903
987
|
}
|
|
904
988
|
async #emitAuthenticatedState() {
|
|
905
989
|
const isAuthenticated = this.authenticated;
|
|
906
|
-
const
|
|
990
|
+
const token2 = this.getGlobusAuthToken() ?? void 0;
|
|
907
991
|
await this.events.authenticated.dispatch({
|
|
908
992
|
isAuthenticated,
|
|
909
|
-
token
|
|
993
|
+
token: token2
|
|
910
994
|
});
|
|
911
995
|
}
|
|
912
996
|
/**
|
|
@@ -929,31 +1013,27 @@ var AuthorizationManager = class {
|
|
|
929
1013
|
return `${scopes}${this.configuration.useRefreshTokens ? " offline_access" : ""}`;
|
|
930
1014
|
}
|
|
931
1015
|
#buildTransport(overrides) {
|
|
932
|
-
const scopes = this.#withOfflineAccess(
|
|
933
|
-
overrides?.requested_scopes ?? (this.configuration.scopes || "")
|
|
934
|
-
);
|
|
1016
|
+
const scopes = this.#withOfflineAccess(overrides?.scopes ?? (this.configuration.scopes || ""));
|
|
935
1017
|
return new RedirectTransport({
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
requested_scopes: scopes,
|
|
941
|
-
...overrides
|
|
1018
|
+
client: this.configuration.client,
|
|
1019
|
+
redirect: this.configuration.redirect,
|
|
1020
|
+
scopes,
|
|
1021
|
+
...overrides,
|
|
942
1022
|
// @todo Decide if we want to include the `include_consented_scopes` parameter by default.
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
1023
|
+
params: {
|
|
1024
|
+
// include_consented_scopes: true,
|
|
1025
|
+
...overrides?.params
|
|
1026
|
+
}
|
|
947
1027
|
});
|
|
948
1028
|
}
|
|
949
1029
|
/**
|
|
950
1030
|
* Initiate the login process by redirecting to the Globus Auth login page.
|
|
951
1031
|
*/
|
|
952
|
-
login(options = { additionalParams: {} }) {
|
|
1032
|
+
async login(options = { additionalParams: {} }) {
|
|
953
1033
|
log("debug", "AuthorizationManager.login");
|
|
954
1034
|
this.reset();
|
|
955
1035
|
const transport = this.#buildTransport({ params: options?.additionalParams });
|
|
956
|
-
transport.send();
|
|
1036
|
+
await transport.send();
|
|
957
1037
|
}
|
|
958
1038
|
/**
|
|
959
1039
|
* This method will attempt to complete the PKCE protocol flow.
|
|
@@ -971,7 +1051,7 @@ var AuthorizationManager = class {
|
|
|
971
1051
|
this.addTokenResponse(response);
|
|
972
1052
|
}
|
|
973
1053
|
}
|
|
974
|
-
handleErrorResponse(response, options) {
|
|
1054
|
+
async handleErrorResponse(response, options) {
|
|
975
1055
|
const opts = typeof options === "boolean" ? {
|
|
976
1056
|
...DEFAULT_HANDLE_ERROR_OPTIONS,
|
|
977
1057
|
execute: options
|
|
@@ -983,32 +1063,41 @@ var AuthorizationManager = class {
|
|
|
983
1063
|
"debug",
|
|
984
1064
|
`AuthorizationManager.handleErrorResponse | response=${JSON.stringify(response)} execute=${opts.execute}`
|
|
985
1065
|
);
|
|
986
|
-
let handler = () => {
|
|
1066
|
+
let handler = async () => {
|
|
987
1067
|
};
|
|
988
1068
|
if (isAuthorizationRequirementsError(response)) {
|
|
989
1069
|
log(
|
|
990
1070
|
"debug",
|
|
991
1071
|
"AuthorizationManager.handleErrorResponse | error=AuthorizationRequirementsError"
|
|
992
1072
|
);
|
|
993
|
-
handler = () =>
|
|
994
|
-
|
|
995
|
-
|
|
1073
|
+
handler = async () => {
|
|
1074
|
+
await this.handleAuthorizationRequirementsError(response, {
|
|
1075
|
+
additionalParams: opts.additionalParams
|
|
1076
|
+
});
|
|
1077
|
+
};
|
|
996
1078
|
}
|
|
997
1079
|
if (isConsentRequiredError(response)) {
|
|
998
1080
|
log("debug", "AuthorizationManager.handleErrorResponse | error=ConsentRequiredError");
|
|
999
|
-
handler = () =>
|
|
1081
|
+
handler = async () => {
|
|
1082
|
+
await this.handleConsentRequiredError(response, {
|
|
1083
|
+
additionalParams: opts.additionalParams
|
|
1084
|
+
});
|
|
1085
|
+
};
|
|
1000
1086
|
}
|
|
1001
1087
|
if ("code" in response && response["code"] === "AuthenticationFailed") {
|
|
1002
1088
|
log("debug", "AuthorizationManager.handleErrorResponse | error=AuthenticationFailed");
|
|
1003
|
-
handler = () =>
|
|
1089
|
+
handler = async () => {
|
|
1090
|
+
await this.revoke();
|
|
1091
|
+
};
|
|
1004
1092
|
}
|
|
1005
|
-
|
|
1093
|
+
const returnValue = opts.execute === true ? await handler() : handler;
|
|
1094
|
+
return returnValue;
|
|
1006
1095
|
}
|
|
1007
1096
|
/**
|
|
1008
1097
|
* Process a well-formed Authorization Requirements error response from a Globus service
|
|
1009
1098
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
1010
1099
|
*/
|
|
1011
|
-
handleAuthorizationRequirementsError(response, options) {
|
|
1100
|
+
async handleAuthorizationRequirementsError(response, options) {
|
|
1012
1101
|
this.#transport = this.#buildTransport({
|
|
1013
1102
|
params: {
|
|
1014
1103
|
prompt: "login",
|
|
@@ -1016,30 +1105,30 @@ var AuthorizationManager = class {
|
|
|
1016
1105
|
...options?.additionalParams
|
|
1017
1106
|
}
|
|
1018
1107
|
});
|
|
1019
|
-
this.#transport.send();
|
|
1108
|
+
await this.#transport.send();
|
|
1020
1109
|
}
|
|
1021
1110
|
/**
|
|
1022
1111
|
* Process a well-formed `ConsentRequired` error response from a Globus service
|
|
1023
1112
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
1024
1113
|
*/
|
|
1025
|
-
handleConsentRequiredError(response, options) {
|
|
1114
|
+
async handleConsentRequiredError(response, options) {
|
|
1026
1115
|
this.#transport = this.#buildTransport({
|
|
1027
|
-
|
|
1116
|
+
scopes: this.#withOfflineAccess(response.required_scopes.join(" ")),
|
|
1028
1117
|
params: {
|
|
1029
1118
|
...options?.additionalParams
|
|
1030
1119
|
}
|
|
1031
1120
|
});
|
|
1032
|
-
this.#transport.send();
|
|
1121
|
+
await this.#transport.send();
|
|
1033
1122
|
}
|
|
1034
1123
|
/**
|
|
1035
1124
|
* Add a Globus Auth token response to storage, if `other_tokens` are present they are also added.
|
|
1036
1125
|
* This method is mostly used internally by the `AuthorizationManager`, but can be used by downstream
|
|
1037
1126
|
* consumers to add tokens to storage if necessary.
|
|
1038
1127
|
*/
|
|
1039
|
-
addTokenResponse = (
|
|
1040
|
-
getStorage().set(`${this.configuration.client}:${
|
|
1041
|
-
if ("other_tokens" in
|
|
1042
|
-
|
|
1128
|
+
addTokenResponse = (token2) => {
|
|
1129
|
+
getStorage().set(`${this.configuration.client}:${token2.resource_server}`, token2);
|
|
1130
|
+
if ("other_tokens" in token2) {
|
|
1131
|
+
token2.other_tokens?.forEach(this.addTokenResponse);
|
|
1043
1132
|
}
|
|
1044
1133
|
this.#checkAuthorizationState();
|
|
1045
1134
|
};
|
|
@@ -1058,12 +1147,12 @@ var AuthorizationManager = class {
|
|
|
1058
1147
|
/**
|
|
1059
1148
|
* Revoke a token from a resource server.
|
|
1060
1149
|
*/
|
|
1061
|
-
#revokeToken(
|
|
1062
|
-
log("debug", `AuthorizationManager.revokeToken | resource_server=${
|
|
1150
|
+
#revokeToken(token2) {
|
|
1151
|
+
log("debug", `AuthorizationManager.revokeToken | resource_server=${token2.resource_server}`);
|
|
1063
1152
|
return oauth2_exports.token.revoke({
|
|
1064
1153
|
payload: {
|
|
1065
1154
|
client_id: this.configuration.client,
|
|
1066
|
-
token:
|
|
1155
|
+
token: token2.access_token
|
|
1067
1156
|
}
|
|
1068
1157
|
});
|
|
1069
1158
|
}
|