@globus/sdk 3.1.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -14
- package/cjs/constants.js +24 -2
- package/cjs/constants.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +36 -13
- package/cjs/index.js.map +1 -1
- package/cjs/lib/core/authorization/AuthorizationManager.d.ts +2 -1
- package/cjs/lib/core/authorization/AuthorizationManager.d.ts.map +1 -1
- package/cjs/lib/core/authorization/AuthorizationManager.js +53 -25
- package/cjs/lib/core/authorization/AuthorizationManager.js.map +1 -1
- package/cjs/lib/core/authorization/Event.js +25 -6
- package/cjs/lib/core/authorization/Event.js.map +1 -1
- package/cjs/lib/core/authorization/RedirectTransport.js +41 -8
- package/cjs/lib/core/authorization/RedirectTransport.js.map +1 -1
- package/cjs/lib/core/authorization/TokenLookup.d.ts +2 -0
- package/cjs/lib/core/authorization/TokenLookup.d.ts.map +1 -1
- package/cjs/lib/core/authorization/TokenLookup.js +53 -33
- package/cjs/lib/core/authorization/TokenLookup.js.map +1 -1
- package/cjs/lib/core/authorization/index.js +25 -3
- package/cjs/lib/core/authorization/index.js.map +1 -1
- package/cjs/lib/core/global.js +31 -9
- package/cjs/lib/core/global.js.map +1 -1
- package/cjs/lib/core/storage/local-storage.js +10 -6
- package/cjs/lib/core/storage/local-storage.js.map +1 -1
- package/cjs/lib/core/storage/memory.js +16 -6
- package/cjs/lib/core/storage/memory.js.map +1 -1
- package/cjs/lib/services/auth/index.js +26 -4
- package/cjs/lib/services/auth/index.js.map +1 -1
- package/cjs/lib/services/auth/service/oauth2/index.js +24 -2
- package/cjs/lib/services/auth/service/oauth2/index.js.map +1 -1
- package/cjs/lib/services/compute/index.js +25 -3
- package/cjs/lib/services/compute/index.js.map +1 -1
- package/cjs/lib/services/flows/index.js +26 -4
- package/cjs/lib/services/flows/index.js.map +1 -1
- package/cjs/lib/services/globus-connect-server/client.js +29 -7
- package/cjs/lib/services/globus-connect-server/client.js.map +1 -1
- package/cjs/lib/services/globus-connect-server/index.js +29 -7
- package/cjs/lib/services/globus-connect-server/index.js.map +1 -1
- package/cjs/lib/services/groups/index.js +27 -5
- package/cjs/lib/services/groups/index.js.map +1 -1
- package/cjs/lib/services/search/index.js +27 -5
- package/cjs/lib/services/search/index.js.map +1 -1
- package/cjs/lib/services/shared.js +4 -2
- package/cjs/lib/services/shared.js.map +1 -1
- package/cjs/lib/services/timer/index.js +24 -2
- package/cjs/lib/services/timer/index.js.map +1 -1
- package/cjs/lib/services/transfer/index.js +31 -9
- package/cjs/lib/services/transfer/index.js.map +1 -1
- package/cjs/lib/services/transfer/service/endpoint-manager/index.js +26 -4
- package/cjs/lib/services/transfer/service/endpoint-manager/index.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/lib/core/authorization/AuthorizationManager.d.ts +2 -1
- package/esm/lib/core/authorization/AuthorizationManager.d.ts.map +1 -1
- package/esm/lib/core/authorization/AuthorizationManager.js +33 -5
- package/esm/lib/core/authorization/AuthorizationManager.js.map +1 -1
- package/esm/lib/core/authorization/Event.js +20 -1
- package/esm/lib/core/authorization/Event.js.map +1 -1
- package/esm/lib/core/authorization/RedirectTransport.js +31 -1
- package/esm/lib/core/authorization/RedirectTransport.js.map +1 -1
- package/esm/lib/core/authorization/TokenLookup.d.ts +2 -0
- package/esm/lib/core/authorization/TokenLookup.d.ts.map +1 -1
- package/esm/lib/core/authorization/TokenLookup.js +45 -25
- package/esm/lib/core/authorization/TokenLookup.js.map +1 -1
- package/esm/lib/core/global.js +1 -1
- package/esm/lib/core/storage/local-storage.js +5 -1
- package/esm/lib/core/storage/local-storage.js.map +1 -1
- package/esm/lib/core/storage/memory.js +11 -1
- package/esm/lib/core/storage/memory.js.map +1 -1
- package/package.json +2 -2
- package/umd/globus.production.js +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
[](https://www.npmjs.com/package/@globus/sdk) [](https://app.codecov.io/gh/globus/globus-sdk-javascript)
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
The Globus SDK for JavaScript provides first class TypeScript support and makes it easy to call Globus services using idiomatic JavaScript APIs to build Node.js and web applications.
|
|
5
4
|
|
|
6
5
|
- [@globus/sdk API Documentation](https://globus.github.io/globus-sdk-javascript/)
|
|
6
|
+
- [Examples](./examples/README.md)
|
|
7
7
|
|
|
8
8
|
## Installation
|
|
9
9
|
|
|
@@ -27,24 +27,22 @@ npm install @globus/sdk @globus/types
|
|
|
27
27
|
|
|
28
28
|
We aim to support all Active LTS [Node.js releases](https://nodejs.org/en/about/previous-releases). We intend to support all Maintenance LTS versions until their official end-of-life.
|
|
29
29
|
|
|
30
|
-
| Version |
|
|
31
|
-
| ---------- |
|
|
32
|
-
| Node.js 18 | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/ci.yml) |
|
|
33
|
-
| Node.js 20 | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/ci.yml) |
|
|
34
|
-
| Node.js 22 |
|
|
35
|
-
|
|
36
|
-
[^1]: Not covered by automated test suite(s).
|
|
30
|
+
| Version | |
|
|
31
|
+
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| Node.js 18 | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/ci.yml) |
|
|
33
|
+
| Node.js 20 | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/ci.yml) |
|
|
34
|
+
| Node.js 22 | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/ci.yml) |
|
|
37
35
|
|
|
38
36
|
### Browser Support
|
|
39
37
|
|
|
40
38
|
Officially, the SDK supports widely adopted evergreen browsers: Edge, Chrome, Safari, and Firefox. Our bundled browser distributions target ECMAScript 2015 (ES6), which has [broader browser support](https://caniuse.com/es6) but may not be explicitly evaluated.
|
|
41
39
|
|
|
42
|
-
| Browser |
|
|
43
|
-
| --------------- |
|
|
44
|
-
| Google Chrome |
|
|
45
|
-
| Mozilla Firefox |
|
|
46
|
-
| Microsoft Edge |
|
|
47
|
-
| Apple Safari |
|
|
40
|
+
| Browser | |
|
|
41
|
+
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| Google Chrome | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/playwright.yml) |
|
|
43
|
+
| Mozilla Firefox | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/playwright.yml) |
|
|
44
|
+
| Microsoft Edge | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/playwright.yml) |
|
|
45
|
+
| Apple Safari | [](https://github.com/globus/globus-sdk-javascript/actions/workflows/playwright.yml) |
|
|
48
46
|
|
|
49
47
|
### ESM, CommonJS, and UMD
|
|
50
48
|
|
package/cjs/constants.js
CHANGED
|
@@ -13,8 +13,30 @@
|
|
|
13
13
|
* import GCS from "@globus/sdk/service/globus-connect-server/constants";
|
|
14
14
|
* console.log(GCS.CONNECTORS.POSIX);
|
|
15
15
|
*/
|
|
16
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(o, k2, desc);
|
|
23
|
+
}) : (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
o[k2] = m[k];
|
|
26
|
+
}));
|
|
27
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
+
}) : function(o, v) {
|
|
30
|
+
o["default"] = v;
|
|
31
|
+
});
|
|
32
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
16
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
40
|
exports.GCS = void 0;
|
|
18
|
-
|
|
19
|
-
exports.GCS = tslib_1.__importStar(require("./lib/services/globus-connect-server/constants.js"));
|
|
41
|
+
exports.GCS = __importStar(require("./lib/services/globus-connect-server/constants.js"));
|
|
20
42
|
//# sourceMappingURL=constants.js.map
|
package/cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yFAAyE"}
|
package/cjs/index.d.ts
CHANGED
package/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAOH;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAOH;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAE/C;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,GAAG,MAAM,+CAA+C,CAAC;AACrE,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAE3D;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC"}
|
package/cjs/index.js
CHANGED
|
@@ -52,9 +52,31 @@
|
|
|
52
52
|
*
|
|
53
53
|
* const result = await (await flows.flows.get("452bbea3-5e3b-45a5-af08-50179839a4e8")).json();
|
|
54
54
|
*/
|
|
55
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
56
|
+
if (k2 === undefined) k2 = k;
|
|
57
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
58
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
59
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
60
|
+
}
|
|
61
|
+
Object.defineProperty(o, k2, desc);
|
|
62
|
+
}) : (function(o, m, k, k2) {
|
|
63
|
+
if (k2 === undefined) k2 = k;
|
|
64
|
+
o[k2] = m[k];
|
|
65
|
+
}));
|
|
66
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
67
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
68
|
+
}) : function(o, v) {
|
|
69
|
+
o["default"] = v;
|
|
70
|
+
});
|
|
71
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
72
|
+
if (mod && mod.__esModule) return mod;
|
|
73
|
+
var result = {};
|
|
74
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
75
|
+
__setModuleDefault(result, mod);
|
|
76
|
+
return result;
|
|
77
|
+
};
|
|
55
78
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
-
exports.webapp = exports.compute = exports.timer = exports.gcs = exports.flows = exports.groups = exports.search = exports.transfer = exports.auth = exports.authorization = exports.logger = void 0;
|
|
57
|
-
const tslib_1 = require("tslib");
|
|
79
|
+
exports.webapp = exports.compute = exports.timer = exports.gcs = exports.flows = exports.groups = exports.search = exports.transfer = exports.auth = exports.errors = exports.authorization = exports.logger = void 0;
|
|
58
80
|
/// <reference types="@globus/types" />
|
|
59
81
|
/// <reference types="@globus/types/auth" />
|
|
60
82
|
/// <reference types="@globus/types/transfer" />
|
|
@@ -62,21 +84,22 @@ const tslib_1 = require("tslib");
|
|
|
62
84
|
/**
|
|
63
85
|
* Core
|
|
64
86
|
*/
|
|
65
|
-
exports.logger =
|
|
66
|
-
exports.authorization =
|
|
87
|
+
exports.logger = __importStar(require("./lib/core/logger.js"));
|
|
88
|
+
exports.authorization = __importStar(require("./lib/core/authorization/index.js"));
|
|
89
|
+
exports.errors = __importStar(require("./lib/core/errors.js"));
|
|
67
90
|
/**
|
|
68
91
|
* Services
|
|
69
92
|
*/
|
|
70
|
-
exports.auth =
|
|
71
|
-
exports.transfer =
|
|
72
|
-
exports.search =
|
|
73
|
-
exports.groups =
|
|
74
|
-
exports.flows =
|
|
75
|
-
exports.gcs =
|
|
76
|
-
exports.timer =
|
|
77
|
-
exports.compute =
|
|
93
|
+
exports.auth = __importStar(require("./lib/services/auth/index.js"));
|
|
94
|
+
exports.transfer = __importStar(require("./lib/services/transfer/index.js"));
|
|
95
|
+
exports.search = __importStar(require("./lib/services/search/index.js"));
|
|
96
|
+
exports.groups = __importStar(require("./lib/services/groups/index.js"));
|
|
97
|
+
exports.flows = __importStar(require("./lib/services/flows/index.js"));
|
|
98
|
+
exports.gcs = __importStar(require("./lib/services/globus-connect-server/index.js"));
|
|
99
|
+
exports.timer = __importStar(require("./lib/services/timer/index.js"));
|
|
100
|
+
exports.compute = __importStar(require("./lib/services/compute/index.js"));
|
|
78
101
|
/**
|
|
79
102
|
* Applications
|
|
80
103
|
*/
|
|
81
|
-
exports.webapp =
|
|
104
|
+
exports.webapp = __importStar(require("./lib/apps/web.js"));
|
|
82
105
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAuC;AACvC,4CAA4C;AAC5C,gDAAgD;AAChD,8CAA8C;AAE9C;;GAEG;AAEH,+DAA+C;AAC/C,mFAAmE;AACnE,+DAA+C;AAE/C;;GAEG;AAEH,qEAAqD;AACrD,6EAA6D;AAC7D,yEAAyD;AACzD,yEAAyD;AACzD,uEAAuD;AACvD,qFAAqE;AACrE,uEAAuD;AACvD,2EAA2D;AAE3D;;GAEG;AAEH,4DAA4C"}
|
|
@@ -6,7 +6,7 @@ import { AuthorizationRequirementsError, ConsentRequiredError } from '../errors.
|
|
|
6
6
|
import type { JwtUserInfo, Token, TokenResponse, TokenWithRefresh } from '../../services/auth/types.js';
|
|
7
7
|
export type AuthorizationManagerConfiguration = {
|
|
8
8
|
client: IConfig['client_id'];
|
|
9
|
-
scopes
|
|
9
|
+
scopes?: IConfig['requested_scopes'];
|
|
10
10
|
redirect: IConfig['redirect_uri'];
|
|
11
11
|
/**
|
|
12
12
|
* @private
|
|
@@ -58,6 +58,7 @@ export declare class AuthorizationManager {
|
|
|
58
58
|
revoke: Event<"revoke", unknown>;
|
|
59
59
|
};
|
|
60
60
|
constructor(configuration: AuthorizationManagerConfiguration);
|
|
61
|
+
get storageKeyPrefix(): string;
|
|
61
62
|
/**
|
|
62
63
|
* The user information decoded from the `id_token` (JWT) of the current Globus Auth token.
|
|
63
64
|
* This method can be used instead of `auth.oauth2.userinfo` to get the user information without an additional request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAahD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAqB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC,CAAC;AAOF;;GAEG;AACH,qBAAa,oBAAoB;;IAG/B,aAAa,EAAE,iCAAiC,CAAC;IAIjD;;;OAGG;IACH,IAAI,aAAa,IAOQ,OAAO,CAL/B;IAED;;OAEG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED,MAAM,EAAE,WAAW,CAAC;IAEpB,MAAM;QACJ;;;;;;WAMG;;YAIC;;;eAGG;6BACc,OAAO;;;QAI5B;;;WAGG;;MAEH;gBAEU,aAAa,EAAE,iCAAiC;IA+B5D,IAAI,gBAAgB,WAEnB;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI,uBAGP;IAED;;;OAGG;IACH,kBAAkB;IAsBlB;;;OAGG;IACG,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAoB1C,kBAAkB;IAIlB,kBAAkB;IA0BlB;;;OAGG;IACH,KAAK;IAuCL;;OAEG;IACH,KAAK;IAUC,kBAAkB,CACtB,OAAO,GAAE;QACP,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;KACvB;IAe7B;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI;IAC5E,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,IAAI;IAyBnF;;;OAGG;IACH,oCAAoC,CAAC,QAAQ,EAAE,8BAA8B;IAe7E;;;OAGG;IACH,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB;IAOzD;;;;OAIG;IACH,gBAAgB,UAAW,KAAK,GAAG,aAAa,UAM9C;IAEF;;;;OAIG;IACG,MAAM;CAoBb"}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
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");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
17
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
19
|
+
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");
|
|
20
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
21
|
+
};
|
|
2
22
|
var _AuthorizationManager_instances, _AuthorizationManager_transport, _AuthorizationManager_authenticated, _AuthorizationManager_silentRefreshTokens, _AuthorizationManager_checkAuthorizationState, _AuthorizationManager_bootstrapFromStorageState, _AuthorizationManager_emitAuthenticatedState, _AuthorizationManager_withOfflineAccess, _AuthorizationManager_buildTransport, _AuthorizationManager_revokeToken;
|
|
3
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
24
|
exports.AuthorizationManager = void 0;
|
|
5
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @module Authorization
|
|
27
|
+
* @group Core
|
|
28
|
+
*/
|
|
6
29
|
const jwt_decode_1 = require("jwt-decode");
|
|
7
30
|
const index_js_1 = require("../../services/auth/index.js");
|
|
8
31
|
const index_js_2 = require("../storage/index.js");
|
|
@@ -24,14 +47,14 @@ class AuthorizationManager {
|
|
|
24
47
|
* It does not necessarily mean that it has a valid token for a specific resource server.
|
|
25
48
|
*/
|
|
26
49
|
get authenticated() {
|
|
27
|
-
return
|
|
50
|
+
return __classPrivateFieldGet(this, _AuthorizationManager_authenticated, "f");
|
|
28
51
|
}
|
|
29
52
|
/**
|
|
30
53
|
* Set the authenticated state and emit the `authenticated` event.
|
|
31
54
|
*/
|
|
32
55
|
set authenticated(value) {
|
|
33
|
-
|
|
34
|
-
|
|
56
|
+
__classPrivateFieldSet(this, _AuthorizationManager_authenticated, value, "f");
|
|
57
|
+
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_emitAuthenticatedState).call(this);
|
|
35
58
|
}
|
|
36
59
|
constructor(configuration) {
|
|
37
60
|
var _a;
|
|
@@ -64,7 +87,7 @@ class AuthorizationManager {
|
|
|
64
87
|
if ('other_tokens' in token) {
|
|
65
88
|
(_a = token.other_tokens) === null || _a === void 0 ? void 0 : _a.forEach(this.addTokenResponse);
|
|
66
89
|
}
|
|
67
|
-
|
|
90
|
+
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_checkAuthorizationState).call(this);
|
|
68
91
|
};
|
|
69
92
|
/**
|
|
70
93
|
* @todo Add support for passing in an alternative storage mechanism.
|
|
@@ -80,13 +103,18 @@ class AuthorizationManager {
|
|
|
80
103
|
const scopes = configuration.defaultScopes === false
|
|
81
104
|
? ''
|
|
82
105
|
: (_a = configuration.defaultScopes) !== null && _a !== void 0 ? _a : DEFAULT_CONFIGURATION.defaultScopes;
|
|
83
|
-
this.configuration = Object.assign(Object.assign({}, configuration), { scopes:
|
|
106
|
+
this.configuration = Object.assign(Object.assign({}, configuration), { scopes: [configuration.scopes ? configuration.scopes : '', scopes]
|
|
107
|
+
.filter((s) => s.length)
|
|
108
|
+
.join(' ') });
|
|
84
109
|
this.tokens = new TokenLookup_js_1.TokenLookup({
|
|
85
110
|
manager: this,
|
|
86
111
|
});
|
|
87
|
-
|
|
112
|
+
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_bootstrapFromStorageState).call(this);
|
|
88
113
|
this.startSilentRefresh();
|
|
89
114
|
}
|
|
115
|
+
get storageKeyPrefix() {
|
|
116
|
+
return `${this.configuration.client}:`;
|
|
117
|
+
}
|
|
90
118
|
/**
|
|
91
119
|
* The user information decoded from the `id_token` (JWT) of the current Globus Auth token.
|
|
92
120
|
* This method can be used instead of `auth.oauth2.userinfo` to get the user information without an additional request.
|
|
@@ -111,7 +139,7 @@ class AuthorizationManager {
|
|
|
111
139
|
* Silent refresh is only supported when using refresh tokens.
|
|
112
140
|
*/
|
|
113
141
|
if (this.configuration.useRefreshTokens) {
|
|
114
|
-
|
|
142
|
+
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_silentRefreshTokens).call(this);
|
|
115
143
|
}
|
|
116
144
|
}
|
|
117
145
|
/**
|
|
@@ -119,7 +147,7 @@ class AuthorizationManager {
|
|
|
119
147
|
* @param token The well-formed token with a `refresh_token` attribute.
|
|
120
148
|
*/
|
|
121
149
|
refreshToken(token) {
|
|
122
|
-
return
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
123
151
|
(0, logger_js_1.log)('debug', `AuthorizationManager.refreshToken | resource_server=${token.resource_server}`);
|
|
124
152
|
try {
|
|
125
153
|
const response = yield (yield index_js_1.oauth2.token.refresh({
|
|
@@ -142,7 +170,7 @@ class AuthorizationManager {
|
|
|
142
170
|
return this.getGlobusAuthToken() !== null;
|
|
143
171
|
}
|
|
144
172
|
getGlobusAuthToken() {
|
|
145
|
-
const entry = (0, index_js_2.getStorage)().get(`${this.
|
|
173
|
+
const entry = (0, index_js_2.getStorage)().get(`${this.storageKeyPrefix}auth.globus.org`);
|
|
146
174
|
return entry ? JSON.parse(entry) : null;
|
|
147
175
|
}
|
|
148
176
|
/**
|
|
@@ -153,7 +181,7 @@ class AuthorizationManager {
|
|
|
153
181
|
(0, index_js_2.getStorage)()
|
|
154
182
|
.keys()
|
|
155
183
|
.forEach((key) => {
|
|
156
|
-
if (key.startsWith(
|
|
184
|
+
if (key.startsWith(this.storageKeyPrefix)) {
|
|
157
185
|
(0, index_js_2.getStorage)().remove(key);
|
|
158
186
|
}
|
|
159
187
|
});
|
|
@@ -168,13 +196,13 @@ class AuthorizationManager {
|
|
|
168
196
|
/**
|
|
169
197
|
* In the future, it's possible that we may want to support different types of transports.
|
|
170
198
|
*/
|
|
171
|
-
const transport =
|
|
199
|
+
const transport = __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_buildTransport).call(this);
|
|
172
200
|
transport.send();
|
|
173
201
|
}
|
|
174
202
|
handleCodeRedirect() {
|
|
175
|
-
return
|
|
203
|
+
return __awaiter(this, arguments, void 0, function* (options = { shouldReplace: true }) {
|
|
176
204
|
(0, logger_js_1.log)('debug', 'AuthorizationManager.handleCodeRedirect');
|
|
177
|
-
const response = yield
|
|
205
|
+
const response = yield __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_buildTransport).call(this).getToken({
|
|
178
206
|
shouldReplace: options === null || options === void 0 ? void 0 : options.shouldReplace,
|
|
179
207
|
});
|
|
180
208
|
if ((0, index_js_1.isGlobusAuthTokenResponse)(response)) {
|
|
@@ -205,7 +233,7 @@ class AuthorizationManager {
|
|
|
205
233
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
206
234
|
*/
|
|
207
235
|
handleAuthorizationRequirementsError(response) {
|
|
208
|
-
|
|
236
|
+
__classPrivateFieldSet(this, _AuthorizationManager_transport, __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_buildTransport).call(this, {
|
|
209
237
|
params: {
|
|
210
238
|
session_message: response.authorization_parameters.session_message,
|
|
211
239
|
session_required_identities: response.authorization_parameters.session_required_identities.join(','),
|
|
@@ -214,17 +242,17 @@ class AuthorizationManager {
|
|
|
214
242
|
prompt: 'login',
|
|
215
243
|
},
|
|
216
244
|
}), "f");
|
|
217
|
-
|
|
245
|
+
__classPrivateFieldGet(this, _AuthorizationManager_transport, "f").send();
|
|
218
246
|
}
|
|
219
247
|
/**
|
|
220
248
|
* Process a well-formed `ConsentRequired` error response from a Globus service
|
|
221
249
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
222
250
|
*/
|
|
223
251
|
handleConsentRequiredError(response) {
|
|
224
|
-
|
|
225
|
-
requested_scopes:
|
|
252
|
+
__classPrivateFieldSet(this, _AuthorizationManager_transport, __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_buildTransport).call(this, {
|
|
253
|
+
requested_scopes: __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_withOfflineAccess).call(this, response.required_scopes.join(' ')),
|
|
226
254
|
}), "f");
|
|
227
|
-
|
|
255
|
+
__classPrivateFieldGet(this, _AuthorizationManager_transport, "f").send();
|
|
228
256
|
}
|
|
229
257
|
/**
|
|
230
258
|
* Call `AuthroizationManager.reset`, revoke all of the available tokns, and emit the `revoke` event.
|
|
@@ -232,9 +260,9 @@ class AuthorizationManager {
|
|
|
232
260
|
* @see AuthorizationManager.reset
|
|
233
261
|
*/
|
|
234
262
|
revoke() {
|
|
235
|
-
return
|
|
263
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
236
264
|
(0, logger_js_1.log)('debug', 'AuthorizationManager.revoke');
|
|
237
|
-
const revocation = Promise.all(this.tokens.getAll().map(
|
|
265
|
+
const revocation = Promise.all(this.tokens.getAll().map(__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_revokeToken).bind(this)));
|
|
238
266
|
this.reset();
|
|
239
267
|
yield revocation;
|
|
240
268
|
yield this.events.revoke.dispatch();
|
|
@@ -255,12 +283,12 @@ _AuthorizationManager_transport = new WeakMap(), _AuthorizationManager_authentic
|
|
|
255
283
|
this.authenticated = true;
|
|
256
284
|
}
|
|
257
285
|
}, _AuthorizationManager_bootstrapFromStorageState = function _AuthorizationManager_bootstrapFromStorageState() {
|
|
258
|
-
return
|
|
286
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
259
287
|
(0, logger_js_1.log)('debug', 'AuthorizationManager.bootstrapFromStorageState');
|
|
260
|
-
|
|
288
|
+
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_checkAuthorizationState).call(this);
|
|
261
289
|
});
|
|
262
290
|
}, _AuthorizationManager_emitAuthenticatedState = function _AuthorizationManager_emitAuthenticatedState() {
|
|
263
|
-
return
|
|
291
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
264
292
|
var _a;
|
|
265
293
|
const isAuthenticated = this.authenticated;
|
|
266
294
|
const token = (_a = this.getGlobusAuthToken()) !== null && _a !== void 0 ? _a : undefined;
|
|
@@ -273,7 +301,7 @@ _AuthorizationManager_transport = new WeakMap(), _AuthorizationManager_authentic
|
|
|
273
301
|
return `${scopes}${this.configuration.useRefreshTokens ? ' offline_access' : ''}`;
|
|
274
302
|
}, _AuthorizationManager_buildTransport = function _AuthorizationManager_buildTransport(overrides) {
|
|
275
303
|
var _a;
|
|
276
|
-
const scopes =
|
|
304
|
+
const scopes = __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_withOfflineAccess).call(this, (_a = overrides === null || overrides === void 0 ? void 0 : overrides.requested_scopes) !== null && _a !== void 0 ? _a : (this.configuration.scopes || ''));
|
|
277
305
|
return new RedirectTransport_js_1.RedirectTransport(Object.assign({ client_id: this.configuration.client, authorization_endpoint: (0, index_js_1.getAuthorizationEndpoint)(), token_endpoint: (0, index_js_1.getTokenEndpoint)(), redirect_uri: this.configuration.redirect, requested_scopes: scopes }, overrides));
|
|
278
306
|
}, _AuthorizationManager_revokeToken = function _AuthorizationManager_revokeToken(token) {
|
|
279
307
|
(0, logger_js_1.log)('debug', `AuthorizationManager.revokeToken | resource_server=${token.resource_server}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
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");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
17
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
19
|
+
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");
|
|
20
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
21
|
+
};
|
|
2
22
|
var _Event_callbacks;
|
|
3
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
24
|
exports.Event = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
25
|
class Event {
|
|
7
26
|
constructor(name) {
|
|
8
27
|
this.name = name;
|
|
9
28
|
_Event_callbacks.set(this, []);
|
|
10
29
|
}
|
|
11
30
|
addListener(callback) {
|
|
12
|
-
|
|
31
|
+
__classPrivateFieldGet(this, _Event_callbacks, "f").push(callback);
|
|
13
32
|
return () => this.removeListener(callback);
|
|
14
33
|
}
|
|
15
34
|
removeListener(callback) {
|
|
16
|
-
|
|
35
|
+
__classPrivateFieldSet(this, _Event_callbacks, __classPrivateFieldGet(this, _Event_callbacks, "f").filter((cb) => cb !== callback), "f");
|
|
17
36
|
}
|
|
18
37
|
clearListeners() {
|
|
19
|
-
|
|
38
|
+
__classPrivateFieldSet(this, _Event_callbacks, [], "f");
|
|
20
39
|
}
|
|
21
40
|
dispatch(payload) {
|
|
22
|
-
return
|
|
23
|
-
yield Promise.all(
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
yield Promise.all(__classPrivateFieldGet(this, _Event_callbacks, "f").map((callback) => callback(payload)));
|
|
24
43
|
});
|
|
25
44
|
}
|
|
26
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/Event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/Event.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAa,KAAK;IAGhB,YAAqB,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;QAFpC,2BAA0C,EAAE,EAAC;IAEN,CAAC;IAExC,WAAW,CAAC,QAAmC;QAC7C,uBAAA,IAAI,wBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,QAAmC;QAChD,uBAAA,IAAI,oBAAc,uBAAA,IAAI,wBAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAA,CAAC;IACpE,CAAC;IAED,cAAc;QACZ,uBAAA,IAAI,oBAAc,EAAE,MAAA,CAAC;IACvB,CAAC;IAEK,QAAQ,CAAC,OAAiB;;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,uBAAA,IAAI,wBAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;KAAA;CACF;AArBD,sBAqBC"}
|
|
@@ -1,26 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
12
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
13
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
14
|
+
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");
|
|
15
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
+
};
|
|
17
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
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");
|
|
20
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
|
+
};
|
|
22
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
23
|
+
var t = {};
|
|
24
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
25
|
+
t[p] = s[p];
|
|
26
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
27
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
28
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
29
|
+
t[p[i]] = s[p[i]];
|
|
30
|
+
}
|
|
31
|
+
return t;
|
|
32
|
+
};
|
|
33
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
34
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
35
|
+
};
|
|
2
36
|
var _RedirectTransport_pkce, _RedirectTransport_params;
|
|
3
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
38
|
exports.RedirectTransport = void 0;
|
|
5
|
-
const
|
|
6
|
-
const js_pkce_1 = tslib_1.__importDefault(require("js-pkce"));
|
|
39
|
+
const js_pkce_1 = __importDefault(require("js-pkce"));
|
|
7
40
|
class RedirectTransport {
|
|
8
41
|
constructor(options) {
|
|
9
42
|
_RedirectTransport_pkce.set(this, void 0);
|
|
10
43
|
_RedirectTransport_params.set(this, {});
|
|
11
|
-
const { params } = options, config =
|
|
12
|
-
|
|
13
|
-
|
|
44
|
+
const { params } = options, config = __rest(options, ["params"]);
|
|
45
|
+
__classPrivateFieldSet(this, _RedirectTransport_pkce, new js_pkce_1.default(Object.assign({}, config)), "f");
|
|
46
|
+
__classPrivateFieldSet(this, _RedirectTransport_params, Object.assign({}, params), "f");
|
|
14
47
|
}
|
|
15
48
|
send() {
|
|
16
|
-
window.location.replace(
|
|
49
|
+
window.location.replace(__classPrivateFieldGet(this, _RedirectTransport_pkce, "f").authorizeUrl(__classPrivateFieldGet(this, _RedirectTransport_params, "f")));
|
|
17
50
|
}
|
|
18
51
|
/**
|
|
19
52
|
* Parse the current URL for the authorization code (`?code=...`) and exchange it for an access token when available.
|
|
20
53
|
* - When the URL is processed and exchanged for an access token, the page is redirected to the current URL without the `?code=...&state=...` parameters.
|
|
21
54
|
*/
|
|
22
55
|
getToken() {
|
|
23
|
-
return
|
|
56
|
+
return __awaiter(this, arguments, void 0, function* (options = { shouldReplace: true }) {
|
|
24
57
|
const url = new URL(window.location.href);
|
|
25
58
|
const params = new URLSearchParams(url.search);
|
|
26
59
|
/**
|
|
@@ -28,7 +61,7 @@ class RedirectTransport {
|
|
|
28
61
|
*/
|
|
29
62
|
if (!params.get('code'))
|
|
30
63
|
return undefined;
|
|
31
|
-
const response = yield
|
|
64
|
+
const response = yield __classPrivateFieldGet(this, _RedirectTransport_pkce, "f").exchangeForAccessToken(url.toString());
|
|
32
65
|
/**
|
|
33
66
|
* Resets js-pkce state
|
|
34
67
|
* @see https://github.com/bpedroza/js-pkce/blob/master/src/PKCE.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectTransport.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/RedirectTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RedirectTransport.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/RedirectTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA2B;AAY3B,MAAa,iBAAiB;IAK5B,YACE,OAKC;QAVH,0CAAY;QAEZ,oCAAmB,EAAE,EAAC;QAUpB,MAAM,EAAE,MAAM,KAAgB,OAAO,EAAlB,MAAM,UAAK,OAAO,EAA/B,UAAqB,CAAU,CAAC;QACtC,uBAAA,IAAI,2BAAS,IAAI,iBAAI,mBAChB,MAAM,EACT,MAAA,CAAC;QACH,uBAAA,IAAI,+CACC,MAAM,OACV,CAAC;IACJ,CAAC;IAED,IAAI;QACF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAA,IAAI,+BAAM,CAAC,YAAY,CAAC,uBAAA,IAAI,iCAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACG,QAAQ;6DAAC,UAA2B,EAAE,aAAa,EAAE,IAAI,EAAE;YAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C;;eAEG;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,uBAAA,IAAI,+BAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE;;;eAGG;YACH,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACxC,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B;;mBAEG;gBACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvB;;mBAEG;gBACH,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC/B;;mBAEG;gBACH,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF;AA7DD,8CA6DC"}
|
|
@@ -12,6 +12,8 @@ export declare class TokenLookup {
|
|
|
12
12
|
get search(): Token | null;
|
|
13
13
|
get timer(): Token | null;
|
|
14
14
|
get compute(): Token | null;
|
|
15
|
+
gcs(endpoint: string): Token | null;
|
|
16
|
+
getByResourceServer(resourceServer: string): Token | null;
|
|
15
17
|
getAll(): Token[];
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=TokenLookup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenLookup.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/TokenLookup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenLookup.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/TokenLookup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAgB1D,qBAAa,WAAW;;gBAGV,OAAO,EAAE;QAAE,OAAO,EAAE,oBAAoB,CAAA;KAAE;IAatD,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAEvB;IAED,IAAI,QAAQ,IAAI,KAAK,GAAG,IAAI,CAE3B;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAExB;IAED,IAAI,MAAM,IAAI,KAAK,GAAG,IAAI,CAEzB;IAED,IAAI,MAAM,IAAI,KAAK,GAAG,IAAI,CAEzB;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAExB;IAED,IAAI,OAAO,IAAI,KAAK,GAAG,IAAI,CAE1B;IAED,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAInC,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIzD,MAAM,IAAI,KAAK,EAAE;CAWlB"}
|