@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 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../../src/core/storage/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,MAAa,aAAa;IAA1B;QACE,iCAA0C,EAAE,EAAC;IAqB/C,CAAC;IAnBC,GAAG,CAAC,GAAW;QACb,OAAO,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,8BAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,0BAAY,EAAE,MAAA,CAAC;IACrB,CAAC;CACF;AAtBD,sCAsBC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Environment, Service } from './global.js';
|
|
2
|
+
import type { GCSConfiguration } from '../services/globus-connect-server/index.js';
|
|
3
|
+
import { SDKOptions } from '../services/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* An extremely simplified parameter serializer based on our current needs.
|
|
6
|
+
*
|
|
7
|
+
* **This is intended for internal @globus/sdk use only.**
|
|
8
|
+
*
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
export declare function stringifyParameters(parameters: {
|
|
12
|
+
[key: string]: string | number | boolean | Array<string | number | null | undefined> | null | undefined;
|
|
13
|
+
}): string;
|
|
14
|
+
/**
|
|
15
|
+
* Return the base URL for a service (based on the environment).
|
|
16
|
+
* @param service The service to build the URL for.
|
|
17
|
+
* @param path The path to the resource.
|
|
18
|
+
* @param environment The environment to use.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getServiceURL(service: Service, path?: string, environment?: Environment): URL;
|
|
21
|
+
/**
|
|
22
|
+
* Build a URL for a service or GCSConfiguration.
|
|
23
|
+
*
|
|
24
|
+
* @param service The service identifier or GCSConfiguration object to build the URL for.
|
|
25
|
+
* @param path The path to the resource.
|
|
26
|
+
* @param options Additional options for the URL.
|
|
27
|
+
*/
|
|
28
|
+
export declare function build(serviceOrConfiguration: Service | GCSConfiguration, path: string, options?: {
|
|
29
|
+
search?: Parameters<typeof stringifyParameters>[0];
|
|
30
|
+
}, sdkOptions?: SDKOptions): string;
|
|
31
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/core/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE;IAC9C,CAAC,GAAG,EAAE,MAAM,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GACzC,IAAI,GACJ,SAAS,CAAC;CACf,UAeA;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,IAAI,SAAK,EACT,WAAW,GAAE,WAA8B,GAC1C,GAAG,CAGL;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CACnB,sBAAsB,EAAE,OAAO,GAAG,gBAAgB,EAClD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CACpD,EACD,UAAU,CAAC,EAAE,UAAU,UAYxB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringifyParameters = stringifyParameters;
|
|
4
|
+
exports.getServiceURL = getServiceURL;
|
|
5
|
+
exports.build = build;
|
|
6
|
+
const global_js_1 = require("./global.js");
|
|
7
|
+
/**
|
|
8
|
+
* An extremely simplified parameter serializer based on our current needs.
|
|
9
|
+
*
|
|
10
|
+
* **This is intended for internal @globus/sdk use only.**
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
function stringifyParameters(parameters) {
|
|
15
|
+
const search = new URLSearchParams();
|
|
16
|
+
Array.from(Object.entries(parameters)).forEach(([key, value]) => {
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
/**
|
|
19
|
+
* Arrays are converted to comma-separated strings.
|
|
20
|
+
*/
|
|
21
|
+
search.set(key, value.join(','));
|
|
22
|
+
}
|
|
23
|
+
else if (value !== undefined) {
|
|
24
|
+
search.set(key, String(value));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return search.toString();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Return the base URL for a service (based on the environment).
|
|
31
|
+
* @param service The service to build the URL for.
|
|
32
|
+
* @param path The path to the resource.
|
|
33
|
+
* @param environment The environment to use.
|
|
34
|
+
*/
|
|
35
|
+
function getServiceURL(service, path = '', environment = (0, global_js_1.getEnvironment)()) {
|
|
36
|
+
const base = (0, global_js_1.getServiceBaseUrl)(service, environment);
|
|
37
|
+
return new URL(path, base);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build a URL for a service or GCSConfiguration.
|
|
41
|
+
*
|
|
42
|
+
* @param service The service identifier or GCSConfiguration object to build the URL for.
|
|
43
|
+
* @param path The path to the resource.
|
|
44
|
+
* @param options Additional options for the URL.
|
|
45
|
+
*/
|
|
46
|
+
function build(serviceOrConfiguration, path, options, sdkOptions) {
|
|
47
|
+
let url;
|
|
48
|
+
if (typeof serviceOrConfiguration === 'object') {
|
|
49
|
+
url = new URL(path, serviceOrConfiguration.host);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
url = getServiceURL(serviceOrConfiguration, path, sdkOptions === null || sdkOptions === void 0 ? void 0 : sdkOptions.environment);
|
|
53
|
+
}
|
|
54
|
+
if (options && options.search) {
|
|
55
|
+
url.search = stringifyParameters(options.search);
|
|
56
|
+
}
|
|
57
|
+
return url.toString();
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/core/url.ts"],"names":[],"mappings":";;AAWA,kDAuBC;AAQD,sCAOC;AASD,sBAkBC;AA5ED,2CAAsF;AAItF;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,UAQnC;IACC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB;;eAEG;YACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,OAAgB,EAChB,IAAI,GAAG,EAAE,EACT,cAA2B,IAAA,0BAAc,GAAE;IAE3C,MAAM,IAAI,GAAG,IAAA,6BAAiB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,KAAK,CACnB,sBAAkD,EAClD,IAAY,EACZ,OAEC,EACD,UAAuB;IAEvB,IAAI,GAAG,CAAC;IACR,IAAI,OAAO,sBAAsB,KAAK,QAAQ,EAAE,CAAC;QAC/C,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,aAAa,CAAC,sBAAsB,EAAE,IAAI,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module @globus/sdk
|
|
3
|
+
* @description `@globus/sdk` provides modules for interacting with the various APIs that make up the Globus platform.
|
|
4
|
+
*
|
|
5
|
+
* ### Key Concepts
|
|
6
|
+
* - All service methods return a `Promise` that resolves to a [Fetch API Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response).
|
|
7
|
+
* - Under the hood, we are returning the result of a composed [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch).
|
|
8
|
+
* - All service methods accept a `ServiceMethodOptions` object to pass query parameters, a payload, and headers.
|
|
9
|
+
* - All service methods support a tail argument to pass options to the SDK, including the composed `fetch` call.
|
|
10
|
+
*
|
|
11
|
+
* #### Service Method Names
|
|
12
|
+
*
|
|
13
|
+
* Basic CRUD operations provided by services are exposed as the following:
|
|
14
|
+
*
|
|
15
|
+
* | Service Method Name | HTTP Method | Description | Example |
|
|
16
|
+
* | --------------------| ----------- | ---------------------------- | ------- |
|
|
17
|
+
* | `get` | `GET` | Fetch a single resource. | `transfer.endpoint.get()` |
|
|
18
|
+
* | `getAll` | `GET` | Fetch a list of resources. | `flows.flows.getAll()` |
|
|
19
|
+
* | `create` | `POST` | Create a new resource. | `gcs.roles.create()` |
|
|
20
|
+
* | `update` | `PUT` | Update an existing resource. | `gcs.endpoint.update()` |
|
|
21
|
+
* | `patch` | `PATCH` | Update an existing resource. | `gcs.endpoint.patch()` |
|
|
22
|
+
* | `remove` | `DELETE` | Delete an existing resource. | `gcs.collections.remove()`|
|
|
23
|
+
*
|
|
24
|
+
* Methods that do not map to obvious CRUD operations are named according to the resource. i.e., `groups.groups.getMyGroups()`, `transfer.endpointSearch()`, `search.query.post()`
|
|
25
|
+
*
|
|
26
|
+
* @example <caption>Using the SDK to search for endpoints via Transfer API.</caption>
|
|
27
|
+
* import { transfer } from "@globus/sdk";
|
|
28
|
+
*
|
|
29
|
+
* const result = await (
|
|
30
|
+
* await globus.transfer.endpointSearch(
|
|
31
|
+
* {
|
|
32
|
+
* query: { filter_fulltext: "Globus Tutorial" }
|
|
33
|
+
* headers: {
|
|
34
|
+
* Authorization: "Bearer MY_ACCESS_TOKEN",
|
|
35
|
+
* },
|
|
36
|
+
* },
|
|
37
|
+
* {
|
|
38
|
+
* fetch: {
|
|
39
|
+
* // Provide parameters to the underlying `fetch` call.
|
|
40
|
+
* // https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters
|
|
41
|
+
* options: {
|
|
42
|
+
* priority: "high"
|
|
43
|
+
* },
|
|
44
|
+
* },
|
|
45
|
+
* }
|
|
46
|
+
* )
|
|
47
|
+
* ).json();
|
|
48
|
+
*
|
|
49
|
+
* @example <caption>Using the SDK to fetch a single flow from the Flows API.</caption>
|
|
50
|
+
* import { flows } from "@globus/sdk";
|
|
51
|
+
*
|
|
52
|
+
* const result = await (await flows.flows.get("452bbea3-5e3b-45a5-af08-50179839a4e8")).json();
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* Core
|
|
56
|
+
*/
|
|
57
|
+
export * as info from './core/info/index.js';
|
|
58
|
+
export * as logger from './core/logger.js';
|
|
59
|
+
export * as authorization from './core/authorization/index.js';
|
|
60
|
+
export * as errors from './core/errors.js';
|
|
61
|
+
/**
|
|
62
|
+
* Services
|
|
63
|
+
*/
|
|
64
|
+
export * as auth from './services/auth/index.js';
|
|
65
|
+
export * as transfer from './services/transfer/index.js';
|
|
66
|
+
export * as search from './services/search/index.js';
|
|
67
|
+
export * as groups from './services/groups/index.js';
|
|
68
|
+
export * as flows from './services/flows/index.js';
|
|
69
|
+
export * as gcs from './services/globus-connect-server/index.js';
|
|
70
|
+
export * as timer from './services/timer/index.js';
|
|
71
|
+
export * as compute from './services/compute/index.js';
|
|
72
|
+
/**
|
|
73
|
+
* Applications
|
|
74
|
+
*/
|
|
75
|
+
export * as webapp from './apps/web.js';
|
|
76
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAOH;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,aAAa,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAC;AACnD,OAAO,KAAK,GAAG,MAAM,2CAA2C,CAAC;AACjE,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AAEvD;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -483,11 +483,11 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
483
483
|
...injectedFetchOptions.headers
|
|
484
484
|
};
|
|
485
485
|
const manager = sdkOptions?.manager;
|
|
486
|
-
let
|
|
486
|
+
let token2;
|
|
487
487
|
if (config.resource_server && manager) {
|
|
488
|
-
|
|
489
|
-
if (
|
|
490
|
-
headers["Authorization"] = `Bearer ${
|
|
488
|
+
token2 = manager.tokens.getByResourceServer(config.resource_server);
|
|
489
|
+
if (token2) {
|
|
490
|
+
headers["Authorization"] = `Bearer ${token2.access_token}`;
|
|
491
491
|
}
|
|
492
492
|
}
|
|
493
493
|
if (config.scope && manager) {
|
|
@@ -495,9 +495,9 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
495
495
|
// For `GCSConfiguration` objects, the `endpoint_id` is the resource server.
|
|
496
496
|
config.service.endpoint_id
|
|
497
497
|
);
|
|
498
|
-
|
|
499
|
-
if (
|
|
500
|
-
headers["Authorization"] = `Bearer ${
|
|
498
|
+
token2 = manager.tokens.getByResourceServer(resourceServer);
|
|
499
|
+
if (token2) {
|
|
500
|
+
headers["Authorization"] = `Bearer ${token2.access_token}`;
|
|
501
501
|
}
|
|
502
502
|
}
|
|
503
503
|
let body = options?.body;
|
|
@@ -529,7 +529,7 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
529
529
|
handler = injectedFetchOptions.__callable.bind(this);
|
|
530
530
|
delete init.__callable;
|
|
531
531
|
}
|
|
532
|
-
if (config.preventRetry || !manager || !
|
|
532
|
+
if (config.preventRetry || !manager || !token2 || !isRefreshToken(token2)) {
|
|
533
533
|
return handler(url2, init);
|
|
534
534
|
}
|
|
535
535
|
const initialResponse = await handler(url2, init);
|
|
@@ -551,7 +551,7 @@ async function serviceRequest(config, options, passedSdkOptions) {
|
|
|
551
551
|
}
|
|
552
552
|
const shouldAttemptTokenRefresh = initialResponse.status === 401 && !hasAuthorizationRequirements;
|
|
553
553
|
if (shouldAttemptTokenRefresh) {
|
|
554
|
-
const newToken = await manager.refreshToken(
|
|
554
|
+
const newToken = await manager.refreshToken(token2);
|
|
555
555
|
if (!newToken) {
|
|
556
556
|
return initialResponse;
|
|
557
557
|
}
|
|
@@ -600,9 +600,11 @@ __export(oauth2_exports, {
|
|
|
600
600
|
// src/services/auth/service/oauth2/token.ts
|
|
601
601
|
var token_exports = {};
|
|
602
602
|
__export(token_exports, {
|
|
603
|
+
exchange: () => exchange,
|
|
603
604
|
introspect: () => introspect,
|
|
604
605
|
refresh: () => refresh,
|
|
605
606
|
revoke: () => revoke,
|
|
607
|
+
token: () => token,
|
|
606
608
|
validate: () => validate
|
|
607
609
|
});
|
|
608
610
|
function serialize(payload) {
|
|
@@ -615,9 +617,10 @@ function injectServiceOptions(options) {
|
|
|
615
617
|
* The `token` service methods always expect a form-encoded body. We still allow
|
|
616
618
|
* end-consumers to pass a raw body, but if `payload` is provided it is serialized.
|
|
617
619
|
*/
|
|
618
|
-
body: serialize(options.payload),
|
|
620
|
+
body: options.payload ? serialize(options.payload) : void 0,
|
|
619
621
|
headers: {
|
|
620
622
|
...options?.headers || {},
|
|
623
|
+
Accept: "application/json",
|
|
621
624
|
/**
|
|
622
625
|
* Force the `Content-Type` header to be `application/x-www-form-urlencoded` and `charset=UTF-8`.
|
|
623
626
|
*/
|
|
@@ -625,6 +628,20 @@ function injectServiceOptions(options) {
|
|
|
625
628
|
}
|
|
626
629
|
};
|
|
627
630
|
}
|
|
631
|
+
var token = function(options = {}, sdkOptions) {
|
|
632
|
+
return serviceRequest(
|
|
633
|
+
{
|
|
634
|
+
service: ID7,
|
|
635
|
+
scope: void 0,
|
|
636
|
+
path: `/v2/oauth2/token`,
|
|
637
|
+
method: "POST" /* POST */,
|
|
638
|
+
preventRetry: true
|
|
639
|
+
},
|
|
640
|
+
injectServiceOptions(options),
|
|
641
|
+
sdkOptions
|
|
642
|
+
);
|
|
643
|
+
};
|
|
644
|
+
var exchange = token;
|
|
628
645
|
var introspect = function(options, sdkOptions) {
|
|
629
646
|
if (!options?.payload) {
|
|
630
647
|
throw new Error(`'payload' is required for introspect`);
|
|
@@ -801,27 +818,71 @@ var Event = class {
|
|
|
801
818
|
}
|
|
802
819
|
};
|
|
803
820
|
|
|
821
|
+
// src/core/authorization/pkce.ts
|
|
822
|
+
function isSupported() {
|
|
823
|
+
return "crypto" in globalThis;
|
|
824
|
+
}
|
|
825
|
+
function getCrypto() {
|
|
826
|
+
return "webcrypto" in globalThis.crypto ? globalThis.crypto.webcrypto : globalThis.crypto;
|
|
827
|
+
}
|
|
828
|
+
var encode = (value) => btoa(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
829
|
+
async function sha256(input) {
|
|
830
|
+
const hashBuffer = await getCrypto().subtle.digest("SHA-256", new TextEncoder().encode(input));
|
|
831
|
+
return String.fromCharCode(...new Uint8Array(hashBuffer));
|
|
832
|
+
}
|
|
833
|
+
var CHARSET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
834
|
+
var PKCE_SAFE_CHARSET = `${CHARSET}-._~`;
|
|
835
|
+
function generateCodeVerifier() {
|
|
836
|
+
return Array.from(getCrypto().getRandomValues(new Uint8Array(43))).map((v) => PKCE_SAFE_CHARSET[v % PKCE_SAFE_CHARSET.length]).join("");
|
|
837
|
+
}
|
|
838
|
+
async function generateCodeChallenge(verifier) {
|
|
839
|
+
const hashed = await sha256(verifier);
|
|
840
|
+
return encode(hashed);
|
|
841
|
+
}
|
|
842
|
+
function generateState() {
|
|
843
|
+
return Array.from(getCrypto().getRandomValues(new Uint8Array(16))).map((v) => CHARSET[v % CHARSET.length]).join("");
|
|
844
|
+
}
|
|
845
|
+
|
|
804
846
|
// src/core/authorization/RedirectTransport.ts
|
|
805
|
-
var
|
|
847
|
+
var KEYS = {
|
|
848
|
+
PKCE_STATE: "pkce_state",
|
|
849
|
+
PKCE_CODE_VERIFIER: "pkce_code_verifier"
|
|
850
|
+
};
|
|
806
851
|
function resetPKCE() {
|
|
807
|
-
sessionStorage.removeItem(
|
|
808
|
-
sessionStorage.removeItem(
|
|
852
|
+
sessionStorage.removeItem(KEYS.PKCE_STATE);
|
|
853
|
+
sessionStorage.removeItem(KEYS.PKCE_CODE_VERIFIER);
|
|
809
854
|
}
|
|
810
|
-
var RedirectTransport = class {
|
|
811
|
-
#
|
|
812
|
-
#params = {};
|
|
855
|
+
var RedirectTransport = class _RedirectTransport {
|
|
856
|
+
#options;
|
|
813
857
|
constructor(options) {
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
}
|
|
818
|
-
this.#params = {
|
|
819
|
-
...params
|
|
820
|
-
};
|
|
858
|
+
this.#options = options;
|
|
859
|
+
if (_RedirectTransport.supported === false) {
|
|
860
|
+
throw new Error("RedirectTransport is not supported in this environment.");
|
|
861
|
+
}
|
|
821
862
|
}
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
863
|
+
static supported = isSupported();
|
|
864
|
+
/**
|
|
865
|
+
* For the redirect transport, sending the request will redirect the user to the authorization endpoint, initiating the OAuth flow.
|
|
866
|
+
*/
|
|
867
|
+
async send() {
|
|
868
|
+
const verifier = generateCodeVerifier();
|
|
869
|
+
const challenge = await generateCodeChallenge(verifier);
|
|
870
|
+
const state = generateState();
|
|
871
|
+
sessionStorage.setItem(KEYS.PKCE_CODE_VERIFIER, verifier);
|
|
872
|
+
sessionStorage.setItem(KEYS.PKCE_STATE, state);
|
|
873
|
+
const params = {
|
|
874
|
+
response_type: "code",
|
|
875
|
+
client_id: this.#options.client,
|
|
876
|
+
scope: this.#options.scopes || "",
|
|
877
|
+
redirect_uri: this.#options.redirect,
|
|
878
|
+
state,
|
|
879
|
+
code_challenge: challenge,
|
|
880
|
+
code_challenge_method: "S256",
|
|
881
|
+
...this.#options.params || {}
|
|
882
|
+
};
|
|
883
|
+
const url2 = new URL(getAuthorizationEndpoint());
|
|
884
|
+
url2.search = new URLSearchParams(params).toString();
|
|
885
|
+
window.location.assign(url2.toString());
|
|
825
886
|
}
|
|
826
887
|
/**
|
|
827
888
|
* Parse the current URL for the authorization code (`?code=...`) and exchange it for an access token when available.
|
|
@@ -830,9 +891,35 @@ var RedirectTransport = class {
|
|
|
830
891
|
async getToken(options = { shouldReplace: true }) {
|
|
831
892
|
const url2 = new URL(window.location.href);
|
|
832
893
|
const params = new URLSearchParams(url2.search);
|
|
833
|
-
if (
|
|
834
|
-
|
|
894
|
+
if (params.get("error")) {
|
|
895
|
+
throw new Error(
|
|
896
|
+
params.get("error_description") || "An error occurred during the authorization process."
|
|
897
|
+
);
|
|
898
|
+
}
|
|
899
|
+
const code = params.get("code");
|
|
900
|
+
if (!code) return void 0;
|
|
901
|
+
const state = sessionStorage.getItem(KEYS.PKCE_STATE);
|
|
902
|
+
const verifier = sessionStorage.getItem(KEYS.PKCE_CODE_VERIFIER);
|
|
835
903
|
resetPKCE();
|
|
904
|
+
if (params.get("state") !== state) {
|
|
905
|
+
throw new Error("Invalid State");
|
|
906
|
+
}
|
|
907
|
+
if (!verifier) {
|
|
908
|
+
throw new Error("Invalid Code Verifier");
|
|
909
|
+
}
|
|
910
|
+
const payload = {
|
|
911
|
+
code,
|
|
912
|
+
client_id: this.#options.client,
|
|
913
|
+
/**
|
|
914
|
+
* Retrieve the code verifier from session storage.
|
|
915
|
+
*/
|
|
916
|
+
code_verifier: verifier,
|
|
917
|
+
redirect_uri: this.#options.redirect,
|
|
918
|
+
grant_type: "authorization_code"
|
|
919
|
+
};
|
|
920
|
+
const response = await (await oauth2_exports.token.exchange({
|
|
921
|
+
payload
|
|
922
|
+
})).json();
|
|
836
923
|
if (options.shouldReplace) {
|
|
837
924
|
params.delete("code");
|
|
838
925
|
params.delete("state");
|
|
@@ -846,15 +933,15 @@ var RedirectTransport = class {
|
|
|
846
933
|
// src/core/authorization/TokenLookup.ts
|
|
847
934
|
function getTokenFromStorage(key) {
|
|
848
935
|
const raw = getStorage().get(key) || "null";
|
|
849
|
-
let
|
|
936
|
+
let token2 = null;
|
|
850
937
|
try {
|
|
851
938
|
const parsed = JSON.parse(raw);
|
|
852
939
|
if (isToken(parsed)) {
|
|
853
|
-
|
|
940
|
+
token2 = parsed;
|
|
854
941
|
}
|
|
855
942
|
} catch (e) {
|
|
856
943
|
}
|
|
857
|
-
return
|
|
944
|
+
return token2;
|
|
858
945
|
}
|
|
859
946
|
var TokenLookup = class {
|
|
860
947
|
#manager;
|
|
@@ -989,8 +1076,8 @@ var AuthorizationManager = class {
|
|
|
989
1076
|
* @see {@link https://docs.globus.org/api/auth/reference/#oidc_userinfo_endpoint}
|
|
990
1077
|
*/
|
|
991
1078
|
get user() {
|
|
992
|
-
const
|
|
993
|
-
return
|
|
1079
|
+
const token2 = this.getGlobusAuthToken();
|
|
1080
|
+
return token2 && token2.id_token ? (0, import_jwt_decode.jwtDecode)(token2.id_token) : null;
|
|
994
1081
|
}
|
|
995
1082
|
/**
|
|
996
1083
|
* Attempt to refresh all of the tokens managed by the instance.
|
|
@@ -999,9 +1086,9 @@ var AuthorizationManager = class {
|
|
|
999
1086
|
async refreshTokens() {
|
|
1000
1087
|
log("debug", "AuthorizationManager.refreshTokens");
|
|
1001
1088
|
const tokens = await Promise.allSettled(
|
|
1002
|
-
this.tokens.getAll().map((
|
|
1003
|
-
if (isRefreshToken(
|
|
1004
|
-
return this.refreshToken(
|
|
1089
|
+
this.tokens.getAll().map((token2) => {
|
|
1090
|
+
if (isRefreshToken(token2)) {
|
|
1091
|
+
return this.refreshToken(token2);
|
|
1005
1092
|
}
|
|
1006
1093
|
return Promise.resolve(null);
|
|
1007
1094
|
})
|
|
@@ -1013,13 +1100,13 @@ var AuthorizationManager = class {
|
|
|
1013
1100
|
* Use the `refresh_token` attribute of a token to obtain a new access token.
|
|
1014
1101
|
* @param token The well-formed token with a `refresh_token` attribute.
|
|
1015
1102
|
*/
|
|
1016
|
-
async refreshToken(
|
|
1017
|
-
log("debug", `AuthorizationManager.refreshToken | resource_server=${
|
|
1103
|
+
async refreshToken(token2) {
|
|
1104
|
+
log("debug", `AuthorizationManager.refreshToken | resource_server=${token2.resource_server}`);
|
|
1018
1105
|
try {
|
|
1019
1106
|
const response = await (await oauth2_exports.token.refresh({
|
|
1020
1107
|
payload: {
|
|
1021
1108
|
client_id: this.configuration.client,
|
|
1022
|
-
refresh_token:
|
|
1109
|
+
refresh_token: token2.refresh_token,
|
|
1023
1110
|
grant_type: "refresh_token"
|
|
1024
1111
|
}
|
|
1025
1112
|
})).json();
|
|
@@ -1028,7 +1115,7 @@ var AuthorizationManager = class {
|
|
|
1028
1115
|
return response;
|
|
1029
1116
|
}
|
|
1030
1117
|
} catch (error) {
|
|
1031
|
-
log("error", `AuthorizationManager.refreshToken | resource_server=${
|
|
1118
|
+
log("error", `AuthorizationManager.refreshToken | resource_server=${token2.resource_server}`);
|
|
1032
1119
|
}
|
|
1033
1120
|
return null;
|
|
1034
1121
|
}
|
|
@@ -1053,10 +1140,10 @@ var AuthorizationManager = class {
|
|
|
1053
1140
|
}
|
|
1054
1141
|
async #emitAuthenticatedState() {
|
|
1055
1142
|
const isAuthenticated = this.authenticated;
|
|
1056
|
-
const
|
|
1143
|
+
const token2 = this.getGlobusAuthToken() ?? void 0;
|
|
1057
1144
|
await this.events.authenticated.dispatch({
|
|
1058
1145
|
isAuthenticated,
|
|
1059
|
-
token
|
|
1146
|
+
token: token2
|
|
1060
1147
|
});
|
|
1061
1148
|
}
|
|
1062
1149
|
/**
|
|
@@ -1079,31 +1166,27 @@ var AuthorizationManager = class {
|
|
|
1079
1166
|
return `${scopes}${this.configuration.useRefreshTokens ? " offline_access" : ""}`;
|
|
1080
1167
|
}
|
|
1081
1168
|
#buildTransport(overrides) {
|
|
1082
|
-
const scopes = this.#withOfflineAccess(
|
|
1083
|
-
overrides?.requested_scopes ?? (this.configuration.scopes || "")
|
|
1084
|
-
);
|
|
1169
|
+
const scopes = this.#withOfflineAccess(overrides?.scopes ?? (this.configuration.scopes || ""));
|
|
1085
1170
|
return new RedirectTransport({
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
requested_scopes: scopes,
|
|
1091
|
-
...overrides
|
|
1171
|
+
client: this.configuration.client,
|
|
1172
|
+
redirect: this.configuration.redirect,
|
|
1173
|
+
scopes,
|
|
1174
|
+
...overrides,
|
|
1092
1175
|
// @todo Decide if we want to include the `include_consented_scopes` parameter by default.
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1176
|
+
params: {
|
|
1177
|
+
// include_consented_scopes: true,
|
|
1178
|
+
...overrides?.params
|
|
1179
|
+
}
|
|
1097
1180
|
});
|
|
1098
1181
|
}
|
|
1099
1182
|
/**
|
|
1100
1183
|
* Initiate the login process by redirecting to the Globus Auth login page.
|
|
1101
1184
|
*/
|
|
1102
|
-
login(options = { additionalParams: {} }) {
|
|
1185
|
+
async login(options = { additionalParams: {} }) {
|
|
1103
1186
|
log("debug", "AuthorizationManager.login");
|
|
1104
1187
|
this.reset();
|
|
1105
1188
|
const transport = this.#buildTransport({ params: options?.additionalParams });
|
|
1106
|
-
transport.send();
|
|
1189
|
+
await transport.send();
|
|
1107
1190
|
}
|
|
1108
1191
|
/**
|
|
1109
1192
|
* This method will attempt to complete the PKCE protocol flow.
|
|
@@ -1121,7 +1204,7 @@ var AuthorizationManager = class {
|
|
|
1121
1204
|
this.addTokenResponse(response);
|
|
1122
1205
|
}
|
|
1123
1206
|
}
|
|
1124
|
-
handleErrorResponse(response, options) {
|
|
1207
|
+
async handleErrorResponse(response, options) {
|
|
1125
1208
|
const opts = typeof options === "boolean" ? {
|
|
1126
1209
|
...DEFAULT_HANDLE_ERROR_OPTIONS,
|
|
1127
1210
|
execute: options
|
|
@@ -1133,32 +1216,41 @@ var AuthorizationManager = class {
|
|
|
1133
1216
|
"debug",
|
|
1134
1217
|
`AuthorizationManager.handleErrorResponse | response=${JSON.stringify(response)} execute=${opts.execute}`
|
|
1135
1218
|
);
|
|
1136
|
-
let handler = () => {
|
|
1219
|
+
let handler = async () => {
|
|
1137
1220
|
};
|
|
1138
1221
|
if (isAuthorizationRequirementsError(response)) {
|
|
1139
1222
|
log(
|
|
1140
1223
|
"debug",
|
|
1141
1224
|
"AuthorizationManager.handleErrorResponse | error=AuthorizationRequirementsError"
|
|
1142
1225
|
);
|
|
1143
|
-
handler = () =>
|
|
1144
|
-
|
|
1145
|
-
|
|
1226
|
+
handler = async () => {
|
|
1227
|
+
await this.handleAuthorizationRequirementsError(response, {
|
|
1228
|
+
additionalParams: opts.additionalParams
|
|
1229
|
+
});
|
|
1230
|
+
};
|
|
1146
1231
|
}
|
|
1147
1232
|
if (isConsentRequiredError(response)) {
|
|
1148
1233
|
log("debug", "AuthorizationManager.handleErrorResponse | error=ConsentRequiredError");
|
|
1149
|
-
handler = () =>
|
|
1234
|
+
handler = async () => {
|
|
1235
|
+
await this.handleConsentRequiredError(response, {
|
|
1236
|
+
additionalParams: opts.additionalParams
|
|
1237
|
+
});
|
|
1238
|
+
};
|
|
1150
1239
|
}
|
|
1151
1240
|
if ("code" in response && response["code"] === "AuthenticationFailed") {
|
|
1152
1241
|
log("debug", "AuthorizationManager.handleErrorResponse | error=AuthenticationFailed");
|
|
1153
|
-
handler = () =>
|
|
1242
|
+
handler = async () => {
|
|
1243
|
+
await this.revoke();
|
|
1244
|
+
};
|
|
1154
1245
|
}
|
|
1155
|
-
|
|
1246
|
+
const returnValue = opts.execute === true ? await handler() : handler;
|
|
1247
|
+
return returnValue;
|
|
1156
1248
|
}
|
|
1157
1249
|
/**
|
|
1158
1250
|
* Process a well-formed Authorization Requirements error response from a Globus service
|
|
1159
1251
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
1160
1252
|
*/
|
|
1161
|
-
handleAuthorizationRequirementsError(response, options) {
|
|
1253
|
+
async handleAuthorizationRequirementsError(response, options) {
|
|
1162
1254
|
this.#transport = this.#buildTransport({
|
|
1163
1255
|
params: {
|
|
1164
1256
|
prompt: "login",
|
|
@@ -1166,30 +1258,30 @@ var AuthorizationManager = class {
|
|
|
1166
1258
|
...options?.additionalParams
|
|
1167
1259
|
}
|
|
1168
1260
|
});
|
|
1169
|
-
this.#transport.send();
|
|
1261
|
+
await this.#transport.send();
|
|
1170
1262
|
}
|
|
1171
1263
|
/**
|
|
1172
1264
|
* Process a well-formed `ConsentRequired` error response from a Globus service
|
|
1173
1265
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
1174
1266
|
*/
|
|
1175
|
-
handleConsentRequiredError(response, options) {
|
|
1267
|
+
async handleConsentRequiredError(response, options) {
|
|
1176
1268
|
this.#transport = this.#buildTransport({
|
|
1177
|
-
|
|
1269
|
+
scopes: this.#withOfflineAccess(response.required_scopes.join(" ")),
|
|
1178
1270
|
params: {
|
|
1179
1271
|
...options?.additionalParams
|
|
1180
1272
|
}
|
|
1181
1273
|
});
|
|
1182
|
-
this.#transport.send();
|
|
1274
|
+
await this.#transport.send();
|
|
1183
1275
|
}
|
|
1184
1276
|
/**
|
|
1185
1277
|
* Add a Globus Auth token response to storage, if `other_tokens` are present they are also added.
|
|
1186
1278
|
* This method is mostly used internally by the `AuthorizationManager`, but can be used by downstream
|
|
1187
1279
|
* consumers to add tokens to storage if necessary.
|
|
1188
1280
|
*/
|
|
1189
|
-
addTokenResponse = (
|
|
1190
|
-
getStorage().set(`${this.configuration.client}:${
|
|
1191
|
-
if ("other_tokens" in
|
|
1192
|
-
|
|
1281
|
+
addTokenResponse = (token2) => {
|
|
1282
|
+
getStorage().set(`${this.configuration.client}:${token2.resource_server}`, token2);
|
|
1283
|
+
if ("other_tokens" in token2) {
|
|
1284
|
+
token2.other_tokens?.forEach(this.addTokenResponse);
|
|
1193
1285
|
}
|
|
1194
1286
|
this.#checkAuthorizationState();
|
|
1195
1287
|
};
|
|
@@ -1208,12 +1300,12 @@ var AuthorizationManager = class {
|
|
|
1208
1300
|
/**
|
|
1209
1301
|
* Revoke a token from a resource server.
|
|
1210
1302
|
*/
|
|
1211
|
-
#revokeToken(
|
|
1212
|
-
log("debug", `AuthorizationManager.revokeToken | resource_server=${
|
|
1303
|
+
#revokeToken(token2) {
|
|
1304
|
+
log("debug", `AuthorizationManager.revokeToken | resource_server=${token2.resource_server}`);
|
|
1213
1305
|
return oauth2_exports.token.revoke({
|
|
1214
1306
|
payload: {
|
|
1215
1307
|
client_id: this.configuration.client,
|
|
1216
|
-
token:
|
|
1308
|
+
token: token2.access_token
|
|
1217
1309
|
}
|
|
1218
1310
|
});
|
|
1219
1311
|
}
|