@gomomento/sdk-core 1.36.0 → 1.38.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.
Files changed (56) hide show
  1. package/dist/src/auth/credential-provider.d.ts +16 -21
  2. package/dist/src/auth/credential-provider.js +52 -25
  3. package/dist/src/auth/tokens/disposable-token-scope.d.ts +24 -0
  4. package/dist/src/auth/tokens/disposable-token-scope.js +55 -0
  5. package/dist/src/auth/tokens/disposable-token-scopes.d.ts +3 -2
  6. package/dist/src/auth/tokens/disposable-token-scopes.js +9 -9
  7. package/dist/src/auth/tokens/{token-scope.d.ts → permission-scope.d.ts} +7 -26
  8. package/dist/src/auth/tokens/permission-scope.js +82 -0
  9. package/dist/src/auth/tokens/{token-scopes.d.ts → permission-scopes.d.ts} +7 -7
  10. package/dist/src/auth/tokens/permission-scopes.js +59 -0
  11. package/dist/src/clients/IAuthClient.d.ts +12 -4
  12. package/dist/src/clients/IAuthClient.js +1 -1
  13. package/dist/src/clients/IVectorIndexClient.d.ts +12 -0
  14. package/dist/src/clients/IVectorIndexClient.js +3 -0
  15. package/dist/src/index.d.ts +23 -5
  16. package/dist/src/index.js +27 -19
  17. package/dist/src/internal/clients/auth/AbstractAuthClient.d.ts +26 -18
  18. package/dist/src/internal/clients/auth/AbstractAuthClient.js +29 -17
  19. package/dist/src/internal/clients/vector/AbstractVectorIndexClient.d.ts +78 -0
  20. package/dist/src/internal/clients/vector/AbstractVectorIndexClient.js +91 -0
  21. package/dist/src/internal/clients/vector/{IVectorControlClient.d.ts → IVectorIndexControlClient.d.ts} +1 -1
  22. package/dist/src/internal/clients/vector/IVectorIndexControlClient.js +3 -0
  23. package/dist/src/internal/clients/vector/IVectorIndexDataClient.d.ts +8 -0
  24. package/dist/src/internal/clients/vector/IVectorIndexDataClient.js +3 -0
  25. package/dist/src/internal/clients/vector/index.d.ts +3 -3
  26. package/dist/src/internal/clients/vector/index.js +4 -4
  27. package/dist/src/internal/utils/auth.d.ts +9 -1
  28. package/dist/src/internal/utils/auth.js +17 -8
  29. package/dist/src/internal/utils/validators.d.ts +1 -0
  30. package/dist/src/internal/utils/validators.js +8 -2
  31. package/dist/src/messages/responses/{generate-auth-token.d.ts → generate-api-key.d.ts} +5 -1
  32. package/dist/src/messages/responses/generate-api-key.js +49 -0
  33. package/dist/src/messages/responses/{refresh-auth-token.d.ts → refresh-api-key.d.ts} +6 -1
  34. package/dist/src/messages/responses/refresh-api-key.js +50 -0
  35. package/dist/src/messages/responses/vector/create-vector-index.d.ts +4 -4
  36. package/dist/src/messages/responses/vector/create-vector-index.js +5 -5
  37. package/dist/src/messages/responses/vector/index.d.ts +3 -0
  38. package/dist/src/messages/responses/vector/index.js +5 -2
  39. package/dist/src/messages/responses/vector/vector-add-item-batch.d.ts +61 -0
  40. package/dist/src/messages/responses/vector/vector-add-item-batch.js +54 -0
  41. package/dist/src/messages/responses/vector/vector-delete-item-batch.d.ts +62 -0
  42. package/dist/src/messages/responses/vector/vector-delete-item-batch.js +55 -0
  43. package/dist/src/messages/responses/vector/vector-search.d.ts +70 -0
  44. package/dist/src/messages/responses/vector/vector-search.js +67 -0
  45. package/dist/src/messages/vector-index.d.ts +5 -0
  46. package/dist/src/messages/vector-index.js +3 -0
  47. package/package.json +1 -1
  48. package/dist/src/auth/tokens/token-scope.js +0 -132
  49. package/dist/src/auth/tokens/token-scopes.js +0 -59
  50. package/dist/src/clients/IVectorClient.d.ts +0 -3
  51. package/dist/src/clients/IVectorClient.js +0 -3
  52. package/dist/src/internal/clients/vector/AbstractVectorClient.d.ts +0 -35
  53. package/dist/src/internal/clients/vector/AbstractVectorClient.js +0 -44
  54. package/dist/src/internal/clients/vector/IVectorControlClient.js +0 -3
  55. package/dist/src/messages/responses/generate-auth-token.js +0 -43
  56. package/dist/src/messages/responses/refresh-auth-token.js +0 -43
@@ -1,15 +1,13 @@
1
+ import { AllEndpoints } from '../internal/utils';
2
+ export interface BaseEndpointOverride {
3
+ baseEndpoint: string;
4
+ }
5
+ export type EndpointOverrides = BaseEndpointOverride | AllEndpoints;
1
6
  /**
2
7
  * Encapsulates arguments for instantiating an EnvMomentoTokenProvider
3
8
  */
4
9
  interface CredentialProviderProps {
5
- /**
6
- * optionally overrides the default controlEndpoint
7
- */
8
- controlEndpoint?: string;
9
- /**
10
- * optionally overrides the default cacheEndpoint
11
- */
12
- cacheEndpoint?: string;
10
+ endpointOverrides?: EndpointOverrides;
13
11
  }
14
12
  /**
15
13
  * Provides information that the CacheClient needs in order to establish a connection to and authenticate with
@@ -35,13 +33,13 @@ export declare abstract class CredentialProvider {
35
33
  */
36
34
  abstract getTokenEndpoint(): string;
37
35
  /**
38
- * @returns {boolean} true if the cache endpoint was manually overridden at construction time; false otherwise
36
+ * @returns {string} The host which the Momento client will connect to for Momento vector index operations
39
37
  */
40
- abstract isCacheEndpointOverridden(): boolean;
38
+ abstract getVectorEndpoint(): string;
41
39
  /**
42
- * @returns {boolean} true if the control endpoint was manually overridden at construction time; false otherwise
40
+ * @returns {boolean} true if the endpoints were manually overridden at construction time; false otherwise
43
41
  */
44
- abstract isControlEndpointOverridden(): boolean;
42
+ abstract areEndpointsOverridden(): boolean;
45
43
  static fromEnvironmentVariable(props: EnvMomentoTokenProviderProps): CredentialProvider;
46
44
  static fromString(props: StringMomentoTokenProviderProps): CredentialProvider;
47
45
  }
@@ -50,8 +48,8 @@ declare abstract class CredentialProviderBase implements CredentialProvider {
50
48
  abstract getCacheEndpoint(): string;
51
49
  abstract getControlEndpoint(): string;
52
50
  abstract getTokenEndpoint(): string;
53
- abstract isCacheEndpointOverridden(): boolean;
54
- abstract isControlEndpointOverridden(): boolean;
51
+ abstract getVectorEndpoint(): string;
52
+ abstract areEndpointsOverridden(): boolean;
55
53
  valueOf(): object;
56
54
  }
57
55
  export interface StringMomentoTokenProviderProps extends CredentialProviderProps {
@@ -67,11 +65,8 @@ export interface StringMomentoTokenProviderProps extends CredentialProviderProps
67
65
  */
68
66
  export declare class StringMomentoTokenProvider extends CredentialProviderBase {
69
67
  private readonly authToken;
70
- private readonly controlEndpoint;
71
- private readonly cacheEndpoint;
72
- private readonly tokenEndpoint;
73
- private readonly controlEndpointOverridden;
74
- private readonly cacheEndpointOverridden;
68
+ private readonly allEndpoints;
69
+ private readonly endpointsOverridden;
75
70
  /**
76
71
  * @param {StringMomentoTokenProviderProps} props configuration options for the token provider
77
72
  */
@@ -80,8 +75,8 @@ export declare class StringMomentoTokenProvider extends CredentialProviderBase {
80
75
  getCacheEndpoint(): string;
81
76
  getControlEndpoint(): string;
82
77
  getTokenEndpoint(): string;
83
- isControlEndpointOverridden(): boolean;
84
- isCacheEndpointOverridden(): boolean;
78
+ getVectorEndpoint(): string;
79
+ areEndpointsOverridden(): boolean;
85
80
  }
86
81
  export interface EnvMomentoTokenProviderProps extends CredentialProviderProps {
87
82
  /**
@@ -2,6 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EnvMomentoTokenProvider = exports.StringMomentoTokenProvider = exports.CredentialProvider = void 0;
4
4
  const utils_1 = require("../internal/utils");
5
+ function isBaseEndpointOverride(endpointOverrides) {
6
+ return endpointOverrides.baseEndpoint !== undefined;
7
+ }
8
+ function isAllEndpoints(endpointOverrides) {
9
+ const allEndpoints = endpointOverrides;
10
+ return (allEndpoints.cacheEndpoint !== undefined &&
11
+ allEndpoints.controlEndpoint !== undefined &&
12
+ allEndpoints.tokenEndpoint !== undefined &&
13
+ allEndpoints.vectorEndpoint !== undefined);
14
+ }
5
15
  /**
6
16
  * Provides information that the CacheClient needs in order to establish a connection to and authenticate with
7
17
  * the Momento service.
@@ -35,41 +45,61 @@ class StringMomentoTokenProvider extends CredentialProviderBase {
35
45
  * @param {StringMomentoTokenProviderProps} props configuration options for the token provider
36
46
  */
37
47
  constructor(props) {
38
- var _a, _b;
39
48
  super();
40
49
  const decodedToken = (0, utils_1.decodeAuthToken)(props.authToken);
41
50
  this.authToken = decodedToken.authToken;
42
- this.controlEndpointOverridden = props.controlEndpoint !== undefined;
43
- const controlEndpoint = (_a = props.controlEndpoint) !== null && _a !== void 0 ? _a : decodedToken.controlEndpoint;
44
- if (controlEndpoint === undefined) {
45
- throw new Error('Malformed token; unable to determine control endpoint. Depending on the type of token you are using, you may need to specify the controlEndpoint explicitly.');
51
+ if (props.endpointOverrides === undefined) {
52
+ this.endpointsOverridden = false;
53
+ if (decodedToken.controlEndpoint === undefined) {
54
+ throw new Error('Malformed token; unable to determine control endpoint. Depending on the type of token you are using, you may need to specify the controlEndpoint explicitly.');
55
+ }
56
+ if (decodedToken.cacheEndpoint === undefined) {
57
+ throw new Error('Malformed token; unable to determine cache endpoint. Depending on the type of token you are using, you may need to specify the cacheEndpoint explicitly.');
58
+ }
59
+ if (decodedToken.tokenEndpoint === undefined) {
60
+ throw new Error('Malformed token; unable to determine token endpoint. Depending on the type of token you are using, you may need to specify the tokenEndpoint explicitly.');
61
+ }
62
+ if (decodedToken.vectorEndpoint === undefined) {
63
+ throw new Error('Malformed token; unable to determine vector endpoint. Depending on the type of token you are using, you may need to specify the vectorEndpoint explicitly.');
64
+ }
65
+ this.allEndpoints = {
66
+ controlEndpoint: decodedToken.controlEndpoint,
67
+ cacheEndpoint: decodedToken.cacheEndpoint,
68
+ tokenEndpoint: decodedToken.tokenEndpoint,
69
+ vectorEndpoint: decodedToken.vectorEndpoint,
70
+ };
71
+ }
72
+ else if (isAllEndpoints(props.endpointOverrides)) {
73
+ this.endpointsOverridden = true;
74
+ this.allEndpoints = props.endpointOverrides;
75
+ }
76
+ else if (isBaseEndpointOverride(props.endpointOverrides)) {
77
+ this.endpointsOverridden = true;
78
+ this.allEndpoints = (0, utils_1.populateAllEndpointsFromBaseEndpoint)(props.endpointOverrides.baseEndpoint);
46
79
  }
47
- this.cacheEndpointOverridden = props.cacheEndpoint !== undefined;
48
- const cacheEndpoint = (_b = props.cacheEndpoint) !== null && _b !== void 0 ? _b : decodedToken.cacheEndpoint;
49
- if (cacheEndpoint === undefined) {
50
- throw new Error('Malformed token; unable to determine cache endpoint. Depending on the type of token you are using, you may need to specify the cacheEndpoint explicitly.');
80
+ else {
81
+ throw new Error(
82
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
83
+ `Unsupported endpointOverrides: ${props.endpointOverrides}`);
51
84
  }
52
- this.controlEndpoint = controlEndpoint;
53
- this.cacheEndpoint = cacheEndpoint;
54
- this.tokenEndpoint = decodedToken.tokenEndpoint || cacheEndpoint;
55
85
  }
56
86
  getAuthToken() {
57
87
  return this.authToken;
58
88
  }
59
89
  getCacheEndpoint() {
60
- return this.cacheEndpoint;
90
+ return this.allEndpoints.cacheEndpoint;
61
91
  }
62
92
  getControlEndpoint() {
63
- return this.controlEndpoint;
93
+ return this.allEndpoints.controlEndpoint;
64
94
  }
65
95
  getTokenEndpoint() {
66
- return this.tokenEndpoint;
96
+ return this.allEndpoints.tokenEndpoint;
67
97
  }
68
- isControlEndpointOverridden() {
69
- return this.controlEndpointOverridden;
98
+ getVectorEndpoint() {
99
+ return this.allEndpoints.vectorEndpoint;
70
100
  }
71
- isCacheEndpointOverridden() {
72
- return this.cacheEndpointOverridden;
101
+ areEndpointsOverridden() {
102
+ return this.endpointsOverridden;
73
103
  }
74
104
  }
75
105
  exports.StringMomentoTokenProvider = StringMomentoTokenProvider;
@@ -83,19 +113,16 @@ class EnvMomentoTokenProvider extends StringMomentoTokenProvider {
83
113
  * @param {EnvMomentoTokenProviderProps} props configuration options for the token provider
84
114
  */
85
115
  constructor(props) {
86
- var _a, _b;
87
116
  const authToken = process.env[props.environmentVariableName];
88
117
  if (!authToken) {
89
118
  throw new Error(`Missing required environment variable ${props.environmentVariableName}`);
90
119
  }
91
- const decodedToken = (0, utils_1.decodeAuthToken)(authToken);
92
120
  super({
93
- authToken: decodedToken.authToken,
94
- controlEndpoint: (_a = props.controlEndpoint) !== null && _a !== void 0 ? _a : decodedToken.controlEndpoint,
95
- cacheEndpoint: (_b = props.cacheEndpoint) !== null && _b !== void 0 ? _b : decodedToken.cacheEndpoint,
121
+ authToken: authToken,
122
+ endpointOverrides: props.endpointOverrides,
96
123
  });
97
124
  this.environmentVariableName = props.environmentVariableName;
98
125
  }
99
126
  }
100
127
  exports.EnvMomentoTokenProvider = EnvMomentoTokenProvider;
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2NyZWRlbnRpYWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQStEO0FBZ0IvRDs7Ozs7R0FLRztBQUNILE1BQXNCLGtCQUFrQjtJQStCdEMsTUFBTSxDQUFDLHVCQUF1QixDQUM1QixLQUFtQztRQUVuQyxPQUFPLElBQUksdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQ2YsS0FBc0M7UUFFdEMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQTFDRCxnREEwQ0M7QUFFRCxNQUFlLHNCQUFzQjtJQVluQyxPQUFPO1FBQ0wsNkRBQTZEO1FBQzdELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLElBQUEsbUJBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFVRDs7OztHQUlHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxzQkFBc0I7SUFRcEU7O09BRUc7SUFDSCxZQUFZLEtBQXNDOztRQUNoRCxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sWUFBWSxHQUFHLElBQUEsdUJBQWUsRUFBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQztRQUNyRSxNQUFNLGVBQWUsR0FDbkIsTUFBQSxLQUFLLENBQUMsZUFBZSxtQ0FBSSxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3hELElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUNiLCtKQUErSixDQUNoSyxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUM7UUFDakUsTUFBTSxhQUFhLEdBQUcsTUFBQSxLQUFLLENBQUMsYUFBYSxtQ0FBSSxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQ3hFLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUNiLDJKQUEySixDQUM1SixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDO0lBQ25FLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBM0RELGdFQTJEQztBQVNEOzs7O0dBSUc7QUFDSCxNQUFhLHVCQUF3QixTQUFRLDBCQUEwQjtJQUVyRTs7T0FFRztJQUNILFlBQVksS0FBbUM7O1FBQzdDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IseUNBQXlDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUN6RSxDQUFDO1NBQ0g7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFBLHVCQUFlLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLFlBQVksQ0FBQyxTQUFTO1lBQ2pDLGVBQWUsRUFBRSxNQUFBLEtBQUssQ0FBQyxlQUFlLG1DQUFJLFlBQVksQ0FBQyxlQUFlO1lBQ3RFLGFBQWEsRUFBRSxNQUFBLEtBQUssQ0FBQyxhQUFhLG1DQUFJLFlBQVksQ0FBQyxhQUFhO1NBQ2pFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQXVCLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBcEJELDBEQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVjb2RlQXV0aFRva2VuLCBmcm9tRW50cmllc30gZnJvbSAnLi4vaW50ZXJuYWwvdXRpbHMnO1xuXG4vKipcbiAqIEVuY2Fwc3VsYXRlcyBhcmd1bWVudHMgZm9yIGluc3RhbnRpYXRpbmcgYW4gRW52TW9tZW50b1Rva2VuUHJvdmlkZXJcbiAqL1xuaW50ZXJmYWNlIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIG9wdGlvbmFsbHkgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGNvbnRyb2xFbmRwb2ludFxuICAgKi9cbiAgY29udHJvbEVuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogb3B0aW9uYWxseSBvdmVycmlkZXMgdGhlIGRlZmF1bHQgY2FjaGVFbmRwb2ludFxuICAgKi9cbiAgY2FjaGVFbmRwb2ludD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiB0aGF0IHRoZSBDYWNoZUNsaWVudCBuZWVkcyBpbiBvcmRlciB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRvIGFuZCBhdXRoZW50aWNhdGUgd2l0aFxuICogdGhlIE1vbWVudG8gc2VydmljZS5cbiAqIEBleHBvcnRcbiAqIEBpbnRlcmZhY2UgQ3JlZGVudGlhbFByb3ZpZGVyXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcmVkZW50aWFsUHJvdmlkZXIge1xuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ30gQXV0aCB0b2tlbiBwcm92aWRlZCBieSB1c2VyLCByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgc2VydmljZVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0QXV0aFRva2VuKCk6IHN0cmluZztcblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGhvc3Qgd2hpY2ggdGhlIE1vbWVudG8gY2xpZW50IHdpbGwgY29ubmVjdCB0byBmb3IgTW9tZW50byBjb250cm9sIHBsYW5lIG9wZXJhdGlvbnNcbiAgICovXG4gIGFic3RyYWN0IGdldENvbnRyb2xFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gZGF0YSBwbGFuZSBvcGVyYXRpb25zXG4gICAqL1xuICBhYnN0cmFjdCBnZXRDYWNoZUVuZHBvaW50KCk6IHN0cmluZztcblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGhvc3Qgd2hpY2ggdGhlIE1vbWVudG8gY2xpZW50IHdpbGwgY29ubmVjdCB0byBmb3IgTW9tZW50byB0b2tlbiBvcGVyYXRpb25zXG4gICAqL1xuICBhYnN0cmFjdCBnZXRUb2tlbkVuZHBvaW50KCk6IHN0cmluZztcblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGNhY2hlIGVuZHBvaW50IHdhcyBtYW51YWxseSBvdmVycmlkZGVuIGF0IGNvbnN0cnVjdGlvbiB0aW1lOyBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IGlzQ2FjaGVFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGNvbnRyb2wgZW5kcG9pbnQgd2FzIG1hbnVhbGx5IG92ZXJyaWRkZW4gYXQgY29uc3RydWN0aW9uIHRpbWU7IGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNDb250cm9sRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW47XG5cbiAgc3RhdGljIGZyb21FbnZpcm9ubWVudFZhcmlhYmxlKFxuICAgIHByb3BzOiBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzXG4gICk6IENyZWRlbnRpYWxQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBFbnZNb21lbnRvVG9rZW5Qcm92aWRlcihwcm9wcyk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0cmluZyhcbiAgICBwcm9wczogU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wc1xuICApOiBDcmVkZW50aWFsUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXIocHJvcHMpO1xuICB9XG59XG5cbmFic3RyYWN0IGNsYXNzIENyZWRlbnRpYWxQcm92aWRlckJhc2UgaW1wbGVtZW50cyBDcmVkZW50aWFsUHJvdmlkZXIge1xuICBhYnN0cmFjdCBnZXRBdXRoVG9rZW4oKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGdldENhY2hlRW5kcG9pbnQoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGdldENvbnRyb2xFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgZ2V0VG9rZW5FbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgaXNDYWNoZUVuZHBvaW50T3ZlcnJpZGRlbigpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc0NvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbjtcblxuICB2YWx1ZU9mKCk6IG9iamVjdCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0aGlzKS5maWx0ZXIoKFtrXSkgPT4gayAhPT0gJ2F1dGhUb2tlbicpO1xuICAgIGNvbnN0IGNsb25lID0gZnJvbUVudHJpZXMoZW50cmllcyk7XG4gICAgcmV0dXJuIGNsb25lLnZhbHVlT2YoKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHNcbiAgZXh0ZW5kcyBDcmVkZW50aWFsUHJvdmlkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBhdXRoVG9rZW4gdGhlIG1vbWVudG8gYXV0aCB0b2tlblxuICAgKi9cbiAgYXV0aFRva2VuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIHBhcnNlcyBhIG1vbWVudG8gYXV0aCB0b2tlbiBzdG9yZWQgaW4gYSBTdHJpbmdcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXIgZXh0ZW5kcyBDcmVkZW50aWFsUHJvdmlkZXJCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoVG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sRW5kcG9pbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZUVuZHBvaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5FbmRwb2ludDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW46IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVFbmRwb2ludE92ZXJyaWRkZW46IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7U3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wc30gcHJvcHMgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdG9rZW4gcHJvdmlkZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBkZWNvZGVBdXRoVG9rZW4ocHJvcHMuYXV0aFRva2VuKTtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IGRlY29kZWRUb2tlbi5hdXRoVG9rZW47XG4gICAgdGhpcy5jb250cm9sRW5kcG9pbnRPdmVycmlkZGVuID0gcHJvcHMuY29udHJvbEVuZHBvaW50ICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgY29udHJvbEVuZHBvaW50ID1cbiAgICAgIHByb3BzLmNvbnRyb2xFbmRwb2ludCA/PyBkZWNvZGVkVG9rZW4uY29udHJvbEVuZHBvaW50O1xuICAgIGlmIChjb250cm9sRW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTWFsZm9ybWVkIHRva2VuOyB1bmFibGUgdG8gZGV0ZXJtaW5lIGNvbnRyb2wgZW5kcG9pbnQuICBEZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdG9rZW4geW91IGFyZSB1c2luZywgeW91IG1heSBuZWVkIHRvIHNwZWNpZnkgdGhlIGNvbnRyb2xFbmRwb2ludCBleHBsaWNpdGx5LidcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2FjaGVFbmRwb2ludE92ZXJyaWRkZW4gPSBwcm9wcy5jYWNoZUVuZHBvaW50ICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgY2FjaGVFbmRwb2ludCA9IHByb3BzLmNhY2hlRW5kcG9pbnQgPz8gZGVjb2RlZFRva2VuLmNhY2hlRW5kcG9pbnQ7XG4gICAgaWYgKGNhY2hlRW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTWFsZm9ybWVkIHRva2VuOyB1bmFibGUgdG8gZGV0ZXJtaW5lIGNhY2hlIGVuZHBvaW50LiAgRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRva2VuIHlvdSBhcmUgdXNpbmcsIHlvdSBtYXkgbmVlZCB0byBzcGVjaWZ5IHRoZSBjYWNoZUVuZHBvaW50IGV4cGxpY2l0bHkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2xFbmRwb2ludCA9IGNvbnRyb2xFbmRwb2ludDtcbiAgICB0aGlzLmNhY2hlRW5kcG9pbnQgPSBjYWNoZUVuZHBvaW50O1xuICAgIHRoaXMudG9rZW5FbmRwb2ludCA9IGRlY29kZWRUb2tlbi50b2tlbkVuZHBvaW50IHx8IGNhY2hlRW5kcG9pbnQ7XG4gIH1cblxuICBnZXRBdXRoVG9rZW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoVG9rZW47XG4gIH1cblxuICBnZXRDYWNoZUVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVFbmRwb2ludDtcbiAgfVxuXG4gIGdldENvbnRyb2xFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xFbmRwb2ludDtcbiAgfVxuXG4gIGdldFRva2VuRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkVuZHBvaW50O1xuICB9XG5cbiAgaXNDb250cm9sRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW47XG4gIH1cblxuICBpc0NhY2hlRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlRW5kcG9pbnRPdmVycmlkZGVuO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcyBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmcm9tIHdoaWNoIHRoZSBhdXRoIHRva2VuIHdpbGwgYmUgcmVhZFxuICAgKi9cbiAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGEgbW9tZW50byBhdXRoIHRva2VuIHN0b3JlZCBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgRW52TW9tZW50b1Rva2VuUHJvdmlkZXIgZXh0ZW5kcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlciB7XG4gIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vudk1vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHN9IHByb3BzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRva2VuIHByb3ZpZGVyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcykge1xuICAgIGNvbnN0IGF1dGhUb2tlbiA9IHByb2Nlc3MuZW52W3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lXTtcbiAgICBpZiAoIWF1dGhUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAke3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGRlY29kZUF1dGhUb2tlbihhdXRoVG9rZW4pO1xuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhUb2tlbjogZGVjb2RlZFRva2VuLmF1dGhUb2tlbixcbiAgICAgIGNvbnRyb2xFbmRwb2ludDogcHJvcHMuY29udHJvbEVuZHBvaW50ID8/IGRlY29kZWRUb2tlbi5jb250cm9sRW5kcG9pbnQsXG4gICAgICBjYWNoZUVuZHBvaW50OiBwcm9wcy5jYWNoZUVuZHBvaW50ID8/IGRlY29kZWRUb2tlbi5jYWNoZUVuZHBvaW50LFxuICAgIH0pO1xuICAgIHRoaXMuZW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlTmFtZTtcbiAgfVxufVxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2NyZWRlbnRpYWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSzJCO0FBUTNCLFNBQVMsc0JBQXNCLENBQzdCLGlCQUFvQztJQUVwQyxPQUFRLGlCQUEwQyxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUM7QUFDaEYsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixpQkFBb0M7SUFFcEMsTUFBTSxZQUFZLEdBQUcsaUJBQWlDLENBQUM7SUFDdkQsT0FBTyxDQUNMLFlBQVksQ0FBQyxhQUFhLEtBQUssU0FBUztRQUN4QyxZQUFZLENBQUMsZUFBZSxLQUFLLFNBQVM7UUFDMUMsWUFBWSxDQUFDLGFBQWEsS0FBSyxTQUFTO1FBQ3hDLFlBQVksQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUMxQyxDQUFDO0FBQ0osQ0FBQztBQVNEOzs7OztHQUtHO0FBQ0gsTUFBc0Isa0JBQWtCO0lBK0J0QyxNQUFNLENBQUMsdUJBQXVCLENBQzVCLEtBQW1DO1FBRW5DLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FDZixLQUFzQztRQUV0QyxPQUFPLElBQUksMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBMUNELGdEQTBDQztBQUVELE1BQWUsc0JBQXNCO0lBYW5DLE9BQU87UUFDTCw2REFBNkQ7UUFDN0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBQSxtQkFBVyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQVVEOzs7O0dBSUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLHNCQUFzQjtJQUtwRTs7T0FFRztJQUNILFlBQVksS0FBc0M7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLFlBQVksR0FBRyxJQUFBLHVCQUFlLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLFlBQVksQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFO2dCQUM5QyxNQUFNLElBQUksS0FBSyxDQUNiLCtKQUErSixDQUNoSyxDQUFDO2FBQ0g7WUFDRCxJQUFJLFlBQVksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO2dCQUM1QyxNQUFNLElBQUksS0FBSyxDQUNiLDJKQUEySixDQUM1SixDQUFDO2FBQ0g7WUFDRCxJQUFJLFlBQVksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO2dCQUM1QyxNQUFNLElBQUksS0FBSyxDQUNiLDJKQUEySixDQUM1SixDQUFDO2FBQ0g7WUFDRCxJQUFJLFlBQVksQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUNiLDZKQUE2SixDQUM5SixDQUFDO2FBQ0g7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNsQixlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWU7Z0JBQzdDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTtnQkFDekMsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhO2dCQUN6QyxjQUFjLEVBQUUsWUFBWSxDQUFDLGNBQWM7YUFDNUMsQ0FBQztTQUNIO2FBQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUM3QzthQUFNLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDMUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUEsNENBQW9DLEVBQ3RELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQ3JDLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUs7WUFDYiw0RUFBNEU7WUFDNUUsa0NBQWtDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUM1RCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7SUFDM0MsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7SUFDMUMsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUEvRUQsZ0VBK0VDO0FBU0Q7Ozs7R0FJRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsMEJBQTBCO0lBRXJFOztPQUVHO0lBQ0gsWUFBWSxLQUFtQztRQUM3QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLHlDQUF5QyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FDekUsQ0FBQztTQUNIO1FBQ0QsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLFNBQVM7WUFDcEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtTQUMzQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQWxCRCwwREFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbGxFbmRwb2ludHMsXG4gIGRlY29kZUF1dGhUb2tlbixcbiAgZnJvbUVudHJpZXMsXG4gIHBvcHVsYXRlQWxsRW5kcG9pbnRzRnJvbUJhc2VFbmRwb2ludCxcbn0gZnJvbSAnLi4vaW50ZXJuYWwvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VFbmRwb2ludE92ZXJyaWRlIHtcbiAgYmFzZUVuZHBvaW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEVuZHBvaW50T3ZlcnJpZGVzID0gQmFzZUVuZHBvaW50T3ZlcnJpZGUgfCBBbGxFbmRwb2ludHM7XG5cbmZ1bmN0aW9uIGlzQmFzZUVuZHBvaW50T3ZlcnJpZGUoXG4gIGVuZHBvaW50T3ZlcnJpZGVzOiBFbmRwb2ludE92ZXJyaWRlc1xuKTogZW5kcG9pbnRPdmVycmlkZXMgaXMgQmFzZUVuZHBvaW50T3ZlcnJpZGUge1xuICByZXR1cm4gKGVuZHBvaW50T3ZlcnJpZGVzIGFzIEJhc2VFbmRwb2ludE92ZXJyaWRlKS5iYXNlRW5kcG9pbnQgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaXNBbGxFbmRwb2ludHMoXG4gIGVuZHBvaW50T3ZlcnJpZGVzOiBFbmRwb2ludE92ZXJyaWRlc1xuKTogZW5kcG9pbnRPdmVycmlkZXMgaXMgQWxsRW5kcG9pbnRzIHtcbiAgY29uc3QgYWxsRW5kcG9pbnRzID0gZW5kcG9pbnRPdmVycmlkZXMgYXMgQWxsRW5kcG9pbnRzO1xuICByZXR1cm4gKFxuICAgIGFsbEVuZHBvaW50cy5jYWNoZUVuZHBvaW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICBhbGxFbmRwb2ludHMuY29udHJvbEVuZHBvaW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICBhbGxFbmRwb2ludHMudG9rZW5FbmRwb2ludCAhPT0gdW5kZWZpbmVkICYmXG4gICAgYWxsRW5kcG9pbnRzLnZlY3RvckVuZHBvaW50ICE9PSB1bmRlZmluZWRcbiAgKTtcbn1cblxuLyoqXG4gKiBFbmNhcHN1bGF0ZXMgYXJndW1lbnRzIGZvciBpbnN0YW50aWF0aW5nIGFuIEVudk1vbWVudG9Ub2tlblByb3ZpZGVyXG4gKi9cbmludGVyZmFjZSBDcmVkZW50aWFsUHJvdmlkZXJQcm9wcyB7XG4gIGVuZHBvaW50T3ZlcnJpZGVzPzogRW5kcG9pbnRPdmVycmlkZXM7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCB0aGUgQ2FjaGVDbGllbnQgbmVlZHMgaW4gb3JkZXIgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byBhbmQgYXV0aGVudGljYXRlIHdpdGhcbiAqIHRoZSBNb21lbnRvIHNlcnZpY2UuXG4gKiBAZXhwb3J0XG4gKiBAaW50ZXJmYWNlIENyZWRlbnRpYWxQcm92aWRlclxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEF1dGggdG9rZW4gcHJvdmlkZWQgYnkgdXNlciwgcmVxdWlyZWQgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIHNlcnZpY2VcbiAgICovXG4gIGFic3RyYWN0IGdldEF1dGhUb2tlbigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gY29udHJvbCBwbGFuZSBvcGVyYXRpb25zXG4gICAqL1xuICBhYnN0cmFjdCBnZXRDb250cm9sRW5kcG9pbnQoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgaG9zdCB3aGljaCB0aGUgTW9tZW50byBjbGllbnQgd2lsbCBjb25uZWN0IHRvIGZvciBNb21lbnRvIGRhdGEgcGxhbmUgb3BlcmF0aW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Q2FjaGVFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gdG9rZW4gb3BlcmF0aW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VG9rZW5FbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gdmVjdG9yIGluZGV4IG9wZXJhdGlvbnNcbiAgICovXG4gIGFic3RyYWN0IGdldFZlY3RvckVuZHBvaW50KCk6IHN0cmluZztcblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGVuZHBvaW50cyB3ZXJlIG1hbnVhbGx5IG92ZXJyaWRkZW4gYXQgY29uc3RydWN0aW9uIHRpbWU7IGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgYXJlRW5kcG9pbnRzT3ZlcnJpZGRlbigpOiBib29sZWFuO1xuXG4gIHN0YXRpYyBmcm9tRW52aXJvbm1lbnRWYXJpYWJsZShcbiAgICBwcm9wczogRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wc1xuICApOiBDcmVkZW50aWFsUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgRW52TW9tZW50b1Rva2VuUHJvdmlkZXIocHJvcHMpO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdHJpbmcoXG4gICAgcHJvcHM6IFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHNcbiAgKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyKHByb3BzKTtcbiAgfVxufVxuXG5hYnN0cmFjdCBjbGFzcyBDcmVkZW50aWFsUHJvdmlkZXJCYXNlIGltcGxlbWVudHMgQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgYWJzdHJhY3QgZ2V0QXV0aFRva2VuKCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBnZXRDYWNoZUVuZHBvaW50KCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBnZXRDb250cm9sRW5kcG9pbnQoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGdldFRva2VuRW5kcG9pbnQoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGdldFZlY3RvckVuZHBvaW50KCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBhcmVFbmRwb2ludHNPdmVycmlkZGVuKCk6IGJvb2xlYW47XG5cbiAgdmFsdWVPZigpOiBvYmplY3Qge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGhpcykuZmlsdGVyKChba10pID0+IGsgIT09ICdhdXRoVG9rZW4nKTtcbiAgICBjb25zdCBjbG9uZSA9IGZyb21FbnRyaWVzKGVudHJpZXMpO1xuICAgIHJldHVybiBjbG9uZS52YWx1ZU9mKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzXG4gIGV4dGVuZHMgQ3JlZGVudGlhbFByb3ZpZGVyUHJvcHMge1xuICAvKipcbiAgICogYXV0aFRva2VuIHRoZSBtb21lbnRvIGF1dGggdG9rZW5cbiAgICovXG4gIGF1dGhUb2tlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlYWRzIGFuZCBwYXJzZXMgYSBtb21lbnRvIGF1dGggdG9rZW4gc3RvcmVkIGluIGEgU3RyaW5nXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyIGV4dGVuZHMgQ3JlZGVudGlhbFByb3ZpZGVyQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFRva2VuOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsRW5kcG9pbnRzOiBBbGxFbmRwb2ludHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5kcG9pbnRzT3ZlcnJpZGRlbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHBhcmFtIHtTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzfSBwcm9wcyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB0b2tlbiBwcm92aWRlclxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM6IFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGRlY29kZUF1dGhUb2tlbihwcm9wcy5hdXRoVG9rZW4pO1xuICAgIHRoaXMuYXV0aFRva2VuID0gZGVjb2RlZFRva2VuLmF1dGhUb2tlbjtcbiAgICBpZiAocHJvcHMuZW5kcG9pbnRPdmVycmlkZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbmRwb2ludHNPdmVycmlkZGVuID0gZmFsc2U7XG4gICAgICBpZiAoZGVjb2RlZFRva2VuLmNvbnRyb2xFbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnTWFsZm9ybWVkIHRva2VuOyB1bmFibGUgdG8gZGV0ZXJtaW5lIGNvbnRyb2wgZW5kcG9pbnQuICBEZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdG9rZW4geW91IGFyZSB1c2luZywgeW91IG1heSBuZWVkIHRvIHNwZWNpZnkgdGhlIGNvbnRyb2xFbmRwb2ludCBleHBsaWNpdGx5LidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChkZWNvZGVkVG9rZW4uY2FjaGVFbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnTWFsZm9ybWVkIHRva2VuOyB1bmFibGUgdG8gZGV0ZXJtaW5lIGNhY2hlIGVuZHBvaW50LiAgRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRva2VuIHlvdSBhcmUgdXNpbmcsIHlvdSBtYXkgbmVlZCB0byBzcGVjaWZ5IHRoZSBjYWNoZUVuZHBvaW50IGV4cGxpY2l0bHkuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGRlY29kZWRUb2tlbi50b2tlbkVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdNYWxmb3JtZWQgdG9rZW47IHVuYWJsZSB0byBkZXRlcm1pbmUgdG9rZW4gZW5kcG9pbnQuICBEZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdG9rZW4geW91IGFyZSB1c2luZywgeW91IG1heSBuZWVkIHRvIHNwZWNpZnkgdGhlIHRva2VuRW5kcG9pbnQgZXhwbGljaXRseS4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoZGVjb2RlZFRva2VuLnZlY3RvckVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdNYWxmb3JtZWQgdG9rZW47IHVuYWJsZSB0byBkZXRlcm1pbmUgdmVjdG9yIGVuZHBvaW50LiAgRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRva2VuIHlvdSBhcmUgdXNpbmcsIHlvdSBtYXkgbmVlZCB0byBzcGVjaWZ5IHRoZSB2ZWN0b3JFbmRwb2ludCBleHBsaWNpdGx5LidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxsRW5kcG9pbnRzID0ge1xuICAgICAgICBjb250cm9sRW5kcG9pbnQ6IGRlY29kZWRUb2tlbi5jb250cm9sRW5kcG9pbnQsXG4gICAgICAgIGNhY2hlRW5kcG9pbnQ6IGRlY29kZWRUb2tlbi5jYWNoZUVuZHBvaW50LFxuICAgICAgICB0b2tlbkVuZHBvaW50OiBkZWNvZGVkVG9rZW4udG9rZW5FbmRwb2ludCxcbiAgICAgICAgdmVjdG9yRW5kcG9pbnQ6IGRlY29kZWRUb2tlbi52ZWN0b3JFbmRwb2ludCxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChpc0FsbEVuZHBvaW50cyhwcm9wcy5lbmRwb2ludE92ZXJyaWRlcykpIHtcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3ZlcnJpZGRlbiA9IHRydWU7XG4gICAgICB0aGlzLmFsbEVuZHBvaW50cyA9IHByb3BzLmVuZHBvaW50T3ZlcnJpZGVzO1xuICAgIH0gZWxzZSBpZiAoaXNCYXNlRW5kcG9pbnRPdmVycmlkZShwcm9wcy5lbmRwb2ludE92ZXJyaWRlcykpIHtcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3ZlcnJpZGRlbiA9IHRydWU7XG4gICAgICB0aGlzLmFsbEVuZHBvaW50cyA9IHBvcHVsYXRlQWxsRW5kcG9pbnRzRnJvbUJhc2VFbmRwb2ludChcbiAgICAgICAgcHJvcHMuZW5kcG9pbnRPdmVycmlkZXMuYmFzZUVuZHBvaW50XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgICAgICAgYFVuc3VwcG9ydGVkIGVuZHBvaW50T3ZlcnJpZGVzOiAke3Byb3BzLmVuZHBvaW50T3ZlcnJpZGVzfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QXV0aFRva2VuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFRva2VuO1xuICB9XG5cbiAgZ2V0Q2FjaGVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFsbEVuZHBvaW50cy5jYWNoZUVuZHBvaW50O1xuICB9XG5cbiAgZ2V0Q29udHJvbEVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWxsRW5kcG9pbnRzLmNvbnRyb2xFbmRwb2ludDtcbiAgfVxuXG4gIGdldFRva2VuRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hbGxFbmRwb2ludHMudG9rZW5FbmRwb2ludDtcbiAgfVxuXG4gIGdldFZlY3RvckVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWxsRW5kcG9pbnRzLnZlY3RvckVuZHBvaW50O1xuICB9XG5cbiAgYXJlRW5kcG9pbnRzT3ZlcnJpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludHNPdmVycmlkZGVuO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcyBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmcm9tIHdoaWNoIHRoZSBhdXRoIHRva2VuIHdpbGwgYmUgcmVhZFxuICAgKi9cbiAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGEgbW9tZW50byBhdXRoIHRva2VuIHN0b3JlZCBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgRW52TW9tZW50b1Rva2VuUHJvdmlkZXIgZXh0ZW5kcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlciB7XG4gIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vudk1vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHN9IHByb3BzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRva2VuIHByb3ZpZGVyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcykge1xuICAgIGNvbnN0IGF1dGhUb2tlbiA9IHByb2Nlc3MuZW52W3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lXTtcbiAgICBpZiAoIWF1dGhUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAke3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhUb2tlbjogYXV0aFRva2VuLFxuICAgICAgZW5kcG9pbnRPdmVycmlkZXM6IHByb3BzLmVuZHBvaW50T3ZlcnJpZGVzLFxuICAgIH0pO1xuICAgIHRoaXMuZW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlTmFtZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { AllCacheItems, CachePermission, Permission, Permissions, PredefinedScope } from './permission-scope';
2
+ export interface CacheItemKey {
3
+ key: string;
4
+ }
5
+ export interface CacheItemKeyPrefix {
6
+ keyPrefix: string;
7
+ }
8
+ export declare function isCacheItemKey(cacheItem: CacheItemSelector): cacheItem is CacheItemKey;
9
+ export declare function isCacheItemKeyPrefix(cacheItem: CacheItemSelector): cacheItem is CacheItemKeyPrefix;
10
+ export type CacheItemSelector = typeof AllCacheItems | CacheItemKey | CacheItemKeyPrefix | string;
11
+ export interface DisposableTokenCachePermission extends CachePermission {
12
+ /**
13
+ * Scope the token permissions to select cache items
14
+ */
15
+ item: CacheItemSelector;
16
+ }
17
+ export declare function isDisposableTokenCachePermission(p: Permission): boolean;
18
+ export declare function asDisposableTokenCachePermission(p: Permission): DisposableTokenCachePermission;
19
+ export interface DisposableTokenCachePermissions {
20
+ permissions: Array<DisposableTokenCachePermission>;
21
+ }
22
+ export type DisposableTokenScope = Permissions | PredefinedScope | DisposableTokenCachePermissions;
23
+ export declare function isDisposableTokenPermissionsObject(scope: DisposableTokenScope): boolean;
24
+ export declare function asDisposableTokenPermissionsObject(scope: DisposableTokenScope): DisposableTokenCachePermissions;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asDisposableTokenPermissionsObject = exports.isDisposableTokenPermissionsObject = exports.asDisposableTokenCachePermission = exports.isDisposableTokenCachePermission = exports.isCacheItemKeyPrefix = exports.isCacheItemKey = void 0;
4
+ const permission_scope_1 = require("./permission-scope");
5
+ function isCacheItemKey(cacheItem) {
6
+ if (cacheItem === permission_scope_1.AllCacheItems) {
7
+ return false;
8
+ }
9
+ if (typeof cacheItem === 'string') {
10
+ return true;
11
+ }
12
+ return 'key' in cacheItem;
13
+ }
14
+ exports.isCacheItemKey = isCacheItemKey;
15
+ function isCacheItemKeyPrefix(cacheItem) {
16
+ if (cacheItem === permission_scope_1.AllCacheItems) {
17
+ return false;
18
+ }
19
+ if (typeof cacheItem === 'string') {
20
+ return false;
21
+ }
22
+ return 'keyPrefix' in cacheItem;
23
+ }
24
+ exports.isCacheItemKeyPrefix = isCacheItemKeyPrefix;
25
+ function isDisposableTokenCachePermission(p) {
26
+ return 'role' in p && 'cache' in p && 'item' in p && !('topic' in p);
27
+ }
28
+ exports.isDisposableTokenCachePermission = isDisposableTokenCachePermission;
29
+ function asDisposableTokenCachePermission(p) {
30
+ if (!isDisposableTokenCachePermission(p)) {
31
+ throw new Error(`permission is not a DisposableTokenCachePermission object: ${JSON.stringify(p)}`);
32
+ }
33
+ return p;
34
+ }
35
+ exports.asDisposableTokenCachePermission = asDisposableTokenCachePermission;
36
+ function isDisposableTokenPermissionObject(p) {
37
+ return isDisposableTokenCachePermission(p);
38
+ }
39
+ function isDisposableTokenPermissionsObject(scope) {
40
+ if (!('permissions' in scope)) {
41
+ return false;
42
+ }
43
+ const permissions = scope.permissions;
44
+ return permissions.every(p => isDisposableTokenPermissionObject(p));
45
+ }
46
+ exports.isDisposableTokenPermissionsObject = isDisposableTokenPermissionsObject;
47
+ function asDisposableTokenPermissionsObject(scope) {
48
+ console.log(`AS_DISPOSABLE_TOKEN_PERMISSIONS_OBJECT: ${JSON.stringify(scope)}`);
49
+ if (!isDisposableTokenPermissionsObject(scope)) {
50
+ throw new Error(`Token scope is not a DisposableTokenCachePermissions object: ${JSON.stringify(scope)}`);
51
+ }
52
+ return scope;
53
+ }
54
+ exports.asDisposableTokenPermissionsObject = asDisposableTokenPermissionsObject;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS10b2tlbi1zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3Rva2Vucy9kaXNwb3NhYmxlLXRva2VuLXNjb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQU00QjtBQVU1QixTQUFnQixjQUFjLENBQzVCLFNBQTRCO0lBRTVCLElBQUksU0FBUyxLQUFLLGdDQUFhLEVBQUU7UUFDL0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxPQUFPLEtBQUssSUFBSSxTQUFTLENBQUM7QUFDNUIsQ0FBQztBQVZELHdDQVVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLFNBQTRCO0lBRTVCLElBQUksU0FBUyxLQUFLLGdDQUFhLEVBQUU7UUFDL0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLFdBQVcsSUFBSSxTQUFTLENBQUM7QUFDbEMsQ0FBQztBQVZELG9EQVVDO0FBZUQsU0FBZ0IsZ0NBQWdDLENBQUMsQ0FBYTtJQUM1RCxPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELDRFQUVDO0FBRUQsU0FBZ0IsZ0NBQWdDLENBQzlDLENBQWE7SUFFYixJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FDYiw4REFBOEQsSUFBSSxDQUFDLFNBQVMsQ0FDMUUsQ0FBQyxDQUNGLEVBQUUsQ0FDSixDQUFDO0tBQ0g7SUFDRCxPQUFPLENBQW1DLENBQUM7QUFDN0MsQ0FBQztBQVhELDRFQVdDO0FBV0QsU0FBUyxpQ0FBaUMsQ0FBQyxDQUFhO0lBQ3RELE9BQU8sZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQWdCLGtDQUFrQyxDQUNoRCxLQUEyQjtJQUUzQixJQUFJLENBQUMsQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDdEMsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBUkQsZ0ZBUUM7QUFFRCxTQUFnQixrQ0FBa0MsQ0FDaEQsS0FBMkI7SUFFM0IsT0FBTyxDQUFDLEdBQUcsQ0FDVCwyQ0FBMkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNuRSxDQUFDO0lBQ0YsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFLElBQUksQ0FBQyxTQUFTLENBQzVFLEtBQUssQ0FDTixFQUFFLENBQ0osQ0FBQztLQUNIO0lBQ0QsT0FBTyxLQUF3QyxDQUFDO0FBQ2xELENBQUM7QUFkRCxnRkFjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFsbENhY2hlSXRlbXMsXG4gIENhY2hlUGVybWlzc2lvbixcbiAgUGVybWlzc2lvbixcbiAgUGVybWlzc2lvbnMsXG4gIFByZWRlZmluZWRTY29wZSxcbn0gZnJvbSAnLi9wZXJtaXNzaW9uLXNjb3BlJztcblxuZXhwb3J0IGludGVyZmFjZSBDYWNoZUl0ZW1LZXkge1xuICBrZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYWNoZUl0ZW1LZXlQcmVmaXgge1xuICBrZXlQcmVmaXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FjaGVJdGVtS2V5KFxuICBjYWNoZUl0ZW06IENhY2hlSXRlbVNlbGVjdG9yXG4pOiBjYWNoZUl0ZW0gaXMgQ2FjaGVJdGVtS2V5IHtcbiAgaWYgKGNhY2hlSXRlbSA9PT0gQWxsQ2FjaGVJdGVtcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodHlwZW9mIGNhY2hlSXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gJ2tleScgaW4gY2FjaGVJdGVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDYWNoZUl0ZW1LZXlQcmVmaXgoXG4gIGNhY2hlSXRlbTogQ2FjaGVJdGVtU2VsZWN0b3Jcbik6IGNhY2hlSXRlbSBpcyBDYWNoZUl0ZW1LZXlQcmVmaXgge1xuICBpZiAoY2FjaGVJdGVtID09PSBBbGxDYWNoZUl0ZW1zKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0eXBlb2YgY2FjaGVJdGVtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gJ2tleVByZWZpeCcgaW4gY2FjaGVJdGVtO1xufVxuXG5leHBvcnQgdHlwZSBDYWNoZUl0ZW1TZWxlY3RvciA9XG4gIHwgdHlwZW9mIEFsbENhY2hlSXRlbXNcbiAgfCBDYWNoZUl0ZW1LZXlcbiAgfCBDYWNoZUl0ZW1LZXlQcmVmaXhcbiAgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcG9zYWJsZVRva2VuQ2FjaGVQZXJtaXNzaW9uIGV4dGVuZHMgQ2FjaGVQZXJtaXNzaW9uIHtcbiAgLyoqXG4gICAqIFNjb3BlIHRoZSB0b2tlbiBwZXJtaXNzaW9ucyB0byBzZWxlY3QgY2FjaGUgaXRlbXNcbiAgICovXG4gIGl0ZW06IENhY2hlSXRlbVNlbGVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24ocDogUGVybWlzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gJ3JvbGUnIGluIHAgJiYgJ2NhY2hlJyBpbiBwICYmICdpdGVtJyBpbiBwICYmICEoJ3RvcGljJyBpbiBwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzRGlzcG9zYWJsZVRva2VuQ2FjaGVQZXJtaXNzaW9uKFxuICBwOiBQZXJtaXNzaW9uXG4pOiBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24ge1xuICBpZiAoIWlzRGlzcG9zYWJsZVRva2VuQ2FjaGVQZXJtaXNzaW9uKHApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBlcm1pc3Npb24gaXMgbm90IGEgRGlzcG9zYWJsZVRva2VuQ2FjaGVQZXJtaXNzaW9uIG9iamVjdDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgcFxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcCBhcyBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcG9zYWJsZVRva2VuQ2FjaGVQZXJtaXNzaW9ucyB7XG4gIHBlcm1pc3Npb25zOiBBcnJheTxEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24+O1xufVxuXG5leHBvcnQgdHlwZSBEaXNwb3NhYmxlVG9rZW5TY29wZSA9XG4gIHwgUGVybWlzc2lvbnNcbiAgfCBQcmVkZWZpbmVkU2NvcGVcbiAgfCBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb25zO1xuXG5mdW5jdGlvbiBpc0Rpc3Bvc2FibGVUb2tlblBlcm1pc3Npb25PYmplY3QocDogUGVybWlzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24ocCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rpc3Bvc2FibGVUb2tlblBlcm1pc3Npb25zT2JqZWN0KFxuICBzY29wZTogRGlzcG9zYWJsZVRva2VuU2NvcGVcbik6IGJvb2xlYW4ge1xuICBpZiAoISgncGVybWlzc2lvbnMnIGluIHNjb3BlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBwZXJtaXNzaW9ucyA9IHNjb3BlLnBlcm1pc3Npb25zO1xuICByZXR1cm4gcGVybWlzc2lvbnMuZXZlcnkocCA9PiBpc0Rpc3Bvc2FibGVUb2tlblBlcm1pc3Npb25PYmplY3QocCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNEaXNwb3NhYmxlVG9rZW5QZXJtaXNzaW9uc09iamVjdChcbiAgc2NvcGU6IERpc3Bvc2FibGVUb2tlblNjb3BlXG4pOiBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb25zIHtcbiAgY29uc29sZS5sb2coXG4gICAgYEFTX0RJU1BPU0FCTEVfVE9LRU5fUEVSTUlTU0lPTlNfT0JKRUNUOiAke0pTT04uc3RyaW5naWZ5KHNjb3BlKX1gXG4gICk7XG4gIGlmICghaXNEaXNwb3NhYmxlVG9rZW5QZXJtaXNzaW9uc09iamVjdChzY29wZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVG9rZW4gc2NvcGUgaXMgbm90IGEgRGlzcG9zYWJsZVRva2VuQ2FjaGVQZXJtaXNzaW9ucyBvYmplY3Q6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHNjb3BlXG4gICAgICApfWBcbiAgICApO1xuICB9XG4gIHJldHVybiBzY29wZSBhcyBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb25zO1xufVxuIl19
@@ -1,5 +1,6 @@
1
- import { CacheSelector, DisposableTokenScope } from './token-scope';
2
- export * from './token-scopes';
1
+ import { CacheSelector } from './permission-scope';
2
+ import { DisposableTokenScope } from './disposable-token-scope';
3
+ export * from './permission-scopes';
3
4
  export declare function cacheKeyReadWrite(cacheSelector: CacheSelector, key: string): DisposableTokenScope;
4
5
  export declare function cacheKeyPrefixReadWrite(cacheSelector: CacheSelector, keyPrefix: string): DisposableTokenScope;
5
6
  export declare function cacheKeyReadOnly(cacheSelector: CacheSelector, key: string): DisposableTokenScope;
@@ -15,11 +15,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.cacheKeyPrefixWriteOnly = exports.cacheKeyWriteOnly = exports.cacheKeyPrefixReadOnly = exports.cacheKeyReadOnly = exports.cacheKeyPrefixReadWrite = exports.cacheKeyReadWrite = void 0;
18
- const token_scope_1 = require("./token-scope");
19
- __exportStar(require("./token-scopes"), exports);
18
+ const permission_scope_1 = require("./permission-scope");
19
+ __exportStar(require("./permission-scopes"), exports);
20
20
  function cacheKeyReadWrite(cacheSelector, key) {
21
21
  return {
22
- permissions: [{ role: token_scope_1.CacheRole.ReadWrite, cache: cacheSelector, item: key }],
22
+ permissions: [{ role: permission_scope_1.CacheRole.ReadWrite, cache: cacheSelector, item: key }],
23
23
  };
24
24
  }
25
25
  exports.cacheKeyReadWrite = cacheKeyReadWrite;
@@ -27,7 +27,7 @@ function cacheKeyPrefixReadWrite(cacheSelector, keyPrefix) {
27
27
  return {
28
28
  permissions: [
29
29
  {
30
- role: token_scope_1.CacheRole.ReadWrite,
30
+ role: permission_scope_1.CacheRole.ReadWrite,
31
31
  cache: cacheSelector,
32
32
  item: { keyPrefix: keyPrefix },
33
33
  },
@@ -37,7 +37,7 @@ function cacheKeyPrefixReadWrite(cacheSelector, keyPrefix) {
37
37
  exports.cacheKeyPrefixReadWrite = cacheKeyPrefixReadWrite;
38
38
  function cacheKeyReadOnly(cacheSelector, key) {
39
39
  return {
40
- permissions: [{ role: token_scope_1.CacheRole.ReadOnly, cache: cacheSelector, item: key }],
40
+ permissions: [{ role: permission_scope_1.CacheRole.ReadOnly, cache: cacheSelector, item: key }],
41
41
  };
42
42
  }
43
43
  exports.cacheKeyReadOnly = cacheKeyReadOnly;
@@ -45,7 +45,7 @@ function cacheKeyPrefixReadOnly(cacheSelector, keyPrefix) {
45
45
  return {
46
46
  permissions: [
47
47
  {
48
- role: token_scope_1.CacheRole.ReadOnly,
48
+ role: permission_scope_1.CacheRole.ReadOnly,
49
49
  cache: cacheSelector,
50
50
  item: { keyPrefix: keyPrefix },
51
51
  },
@@ -55,7 +55,7 @@ function cacheKeyPrefixReadOnly(cacheSelector, keyPrefix) {
55
55
  exports.cacheKeyPrefixReadOnly = cacheKeyPrefixReadOnly;
56
56
  function cacheKeyWriteOnly(cacheSelector, key) {
57
57
  return {
58
- permissions: [{ role: token_scope_1.CacheRole.WriteOnly, cache: cacheSelector, item: key }],
58
+ permissions: [{ role: permission_scope_1.CacheRole.WriteOnly, cache: cacheSelector, item: key }],
59
59
  };
60
60
  }
61
61
  exports.cacheKeyWriteOnly = cacheKeyWriteOnly;
@@ -63,7 +63,7 @@ function cacheKeyPrefixWriteOnly(cacheSelector, keyPrefix) {
63
63
  return {
64
64
  permissions: [
65
65
  {
66
- role: token_scope_1.CacheRole.WriteOnly,
66
+ role: permission_scope_1.CacheRole.WriteOnly,
67
67
  cache: cacheSelector,
68
68
  item: { keyPrefix: keyPrefix },
69
69
  },
@@ -71,4 +71,4 @@ function cacheKeyPrefixWriteOnly(cacheSelector, keyPrefix) {
71
71
  };
72
72
  }
73
73
  exports.cacheKeyPrefixWriteOnly = cacheKeyPrefixWriteOnly;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS10b2tlbi1zY29wZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0aC90b2tlbnMvZGlzcG9zYWJsZS10b2tlbi1zY29wZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkU7QUFFN0UsaURBQStCO0FBRS9CLFNBQWdCLGlCQUFpQixDQUMvQixhQUE0QixFQUM1QixHQUFXO0lBRVgsT0FBTztRQUNMLFdBQVcsRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFFLHVCQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDO0tBQzVFLENBQUM7QUFDSixDQUFDO0FBUEQsOENBT0M7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsYUFBNEIsRUFDNUIsU0FBaUI7SUFFakIsT0FBTztRQUNMLFdBQVcsRUFBRTtZQUNYO2dCQUNFLElBQUksRUFBRSx1QkFBUyxDQUFDLFNBQVM7Z0JBQ3pCLEtBQUssRUFBRSxhQUFhO2dCQUNwQixJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDO2FBQzdCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQWJELDBEQWFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLGFBQTRCLEVBQzVCLEdBQVc7SUFFWCxPQUFPO1FBQ0wsV0FBVyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsdUJBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLENBQUM7S0FDM0UsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxhQUE0QixFQUM1QixTQUFpQjtJQUVqQixPQUFPO1FBQ0wsV0FBVyxFQUFFO1lBQ1g7Z0JBQ0UsSUFBSSxFQUFFLHVCQUFTLENBQUMsUUFBUTtnQkFDeEIsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLElBQUksRUFBRSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUM7YUFDN0I7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBYkQsd0RBYUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsYUFBNEIsRUFDNUIsR0FBVztJQUVYLE9BQU87UUFDTCxXQUFXLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSx1QkFBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQztLQUM1RSxDQUFDO0FBQ0osQ0FBQztBQVBELDhDQU9DO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLGFBQTRCLEVBQzVCLFNBQWlCO0lBRWpCLE9BQU87UUFDTCxXQUFXLEVBQUU7WUFDWDtnQkFDRSxJQUFJLEVBQUUsdUJBQVMsQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQzthQUM3QjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFiRCwwREFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FjaGVSb2xlLCBDYWNoZVNlbGVjdG9yLCBEaXNwb3NhYmxlVG9rZW5TY29wZX0gZnJvbSAnLi90b2tlbi1zY29wZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4tc2NvcGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UmVhZFdyaXRlKFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXk6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbe3JvbGU6IENhY2hlUm9sZS5SZWFkV3JpdGUsIGNhY2hlOiBjYWNoZVNlbGVjdG9yLCBpdGVtOiBrZXl9XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UHJlZml4UmVhZFdyaXRlKFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXlQcmVmaXg6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICB7XG4gICAgICAgIHJvbGU6IENhY2hlUm9sZS5SZWFkV3JpdGUsXG4gICAgICAgIGNhY2hlOiBjYWNoZVNlbGVjdG9yLFxuICAgICAgICBpdGVtOiB7a2V5UHJlZml4OiBrZXlQcmVmaXh9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVLZXlSZWFkT25seShcbiAgY2FjaGVTZWxlY3RvcjogQ2FjaGVTZWxlY3RvcixcbiAga2V5OiBzdHJpbmdcbik6IERpc3Bvc2FibGVUb2tlblNjb3BlIHtcbiAgcmV0dXJuIHtcbiAgICBwZXJtaXNzaW9uczogW3tyb2xlOiBDYWNoZVJvbGUuUmVhZE9ubHksIGNhY2hlOiBjYWNoZVNlbGVjdG9yLCBpdGVtOiBrZXl9XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UHJlZml4UmVhZE9ubHkoXG4gIGNhY2hlU2VsZWN0b3I6IENhY2hlU2VsZWN0b3IsXG4gIGtleVByZWZpeDogc3RyaW5nXG4pOiBEaXNwb3NhYmxlVG9rZW5TY29wZSB7XG4gIHJldHVybiB7XG4gICAgcGVybWlzc2lvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgcm9sZTogQ2FjaGVSb2xlLlJlYWRPbmx5LFxuICAgICAgICBjYWNoZTogY2FjaGVTZWxlY3RvcixcbiAgICAgICAgaXRlbToge2tleVByZWZpeDoga2V5UHJlZml4fSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5V3JpdGVPbmx5KFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXk6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbe3JvbGU6IENhY2hlUm9sZS5Xcml0ZU9ubHksIGNhY2hlOiBjYWNoZVNlbGVjdG9yLCBpdGVtOiBrZXl9XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UHJlZml4V3JpdGVPbmx5KFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXlQcmVmaXg6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICB7XG4gICAgICAgIHJvbGU6IENhY2hlUm9sZS5Xcml0ZU9ubHksXG4gICAgICAgIGNhY2hlOiBjYWNoZVNlbGVjdG9yLFxuICAgICAgICBpdGVtOiB7a2V5UHJlZml4OiBrZXlQcmVmaXh9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS10b2tlbi1zY29wZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0aC90b2tlbnMvZGlzcG9zYWJsZS10b2tlbi1zY29wZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBNEQ7QUFHNUQsc0RBQW9DO0FBRXBDLFNBQWdCLGlCQUFpQixDQUMvQixhQUE0QixFQUM1QixHQUFXO0lBRVgsT0FBTztRQUNMLFdBQVcsRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFFLDRCQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDO0tBQzVFLENBQUM7QUFDSixDQUFDO0FBUEQsOENBT0M7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsYUFBNEIsRUFDNUIsU0FBaUI7SUFFakIsT0FBTztRQUNMLFdBQVcsRUFBRTtZQUNYO2dCQUNFLElBQUksRUFBRSw0QkFBUyxDQUFDLFNBQVM7Z0JBQ3pCLEtBQUssRUFBRSxhQUFhO2dCQUNwQixJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDO2FBQzdCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQWJELDBEQWFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLGFBQTRCLEVBQzVCLEdBQVc7SUFFWCxPQUFPO1FBQ0wsV0FBVyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsNEJBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLENBQUM7S0FDM0UsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxhQUE0QixFQUM1QixTQUFpQjtJQUVqQixPQUFPO1FBQ0wsV0FBVyxFQUFFO1lBQ1g7Z0JBQ0UsSUFBSSxFQUFFLDRCQUFTLENBQUMsUUFBUTtnQkFDeEIsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLElBQUksRUFBRSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUM7YUFDN0I7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBYkQsd0RBYUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsYUFBNEIsRUFDNUIsR0FBVztJQUVYLE9BQU87UUFDTCxXQUFXLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSw0QkFBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQztLQUM1RSxDQUFDO0FBQ0osQ0FBQztBQVBELDhDQU9DO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLGFBQTRCLEVBQzVCLFNBQWlCO0lBRWpCLE9BQU87UUFDTCxXQUFXLEVBQUU7WUFDWDtnQkFDRSxJQUFJLEVBQUUsNEJBQVMsQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQzthQUM3QjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFiRCwwREFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FjaGVSb2xlLCBDYWNoZVNlbGVjdG9yfSBmcm9tICcuL3Blcm1pc3Npb24tc2NvcGUnO1xuaW1wb3J0IHtEaXNwb3NhYmxlVG9rZW5TY29wZX0gZnJvbSAnLi9kaXNwb3NhYmxlLXRva2VuLXNjb3BlJztcblxuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLXNjb3Blcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUtleVJlYWRXcml0ZShcbiAgY2FjaGVTZWxlY3RvcjogQ2FjaGVTZWxlY3RvcixcbiAga2V5OiBzdHJpbmdcbik6IERpc3Bvc2FibGVUb2tlblNjb3BlIHtcbiAgcmV0dXJuIHtcbiAgICBwZXJtaXNzaW9uczogW3tyb2xlOiBDYWNoZVJvbGUuUmVhZFdyaXRlLCBjYWNoZTogY2FjaGVTZWxlY3RvciwgaXRlbToga2V5fV0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUtleVByZWZpeFJlYWRXcml0ZShcbiAgY2FjaGVTZWxlY3RvcjogQ2FjaGVTZWxlY3RvcixcbiAga2V5UHJlZml4OiBzdHJpbmdcbik6IERpc3Bvc2FibGVUb2tlblNjb3BlIHtcbiAgcmV0dXJuIHtcbiAgICBwZXJtaXNzaW9uczogW1xuICAgICAge1xuICAgICAgICByb2xlOiBDYWNoZVJvbGUuUmVhZFdyaXRlLFxuICAgICAgICBjYWNoZTogY2FjaGVTZWxlY3RvcixcbiAgICAgICAgaXRlbToge2tleVByZWZpeDoga2V5UHJlZml4fSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UmVhZE9ubHkoXG4gIGNhY2hlU2VsZWN0b3I6IENhY2hlU2VsZWN0b3IsXG4gIGtleTogc3RyaW5nXG4pOiBEaXNwb3NhYmxlVG9rZW5TY29wZSB7XG4gIHJldHVybiB7XG4gICAgcGVybWlzc2lvbnM6IFt7cm9sZTogQ2FjaGVSb2xlLlJlYWRPbmx5LCBjYWNoZTogY2FjaGVTZWxlY3RvciwgaXRlbToga2V5fV0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUtleVByZWZpeFJlYWRPbmx5KFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXlQcmVmaXg6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICB7XG4gICAgICAgIHJvbGU6IENhY2hlUm9sZS5SZWFkT25seSxcbiAgICAgICAgY2FjaGU6IGNhY2hlU2VsZWN0b3IsXG4gICAgICAgIGl0ZW06IHtrZXlQcmVmaXg6IGtleVByZWZpeH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUtleVdyaXRlT25seShcbiAgY2FjaGVTZWxlY3RvcjogQ2FjaGVTZWxlY3RvcixcbiAga2V5OiBzdHJpbmdcbik6IERpc3Bvc2FibGVUb2tlblNjb3BlIHtcbiAgcmV0dXJuIHtcbiAgICBwZXJtaXNzaW9uczogW3tyb2xlOiBDYWNoZVJvbGUuV3JpdGVPbmx5LCBjYWNoZTogY2FjaGVTZWxlY3RvciwgaXRlbToga2V5fV0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUtleVByZWZpeFdyaXRlT25seShcbiAgY2FjaGVTZWxlY3RvcjogQ2FjaGVTZWxlY3RvcixcbiAga2V5UHJlZml4OiBzdHJpbmdcbik6IERpc3Bvc2FibGVUb2tlblNjb3BlIHtcbiAgcmV0dXJuIHtcbiAgICBwZXJtaXNzaW9uczogW1xuICAgICAge1xuICAgICAgICByb2xlOiBDYWNoZVJvbGUuV3JpdGVPbmx5LFxuICAgICAgICBjYWNoZTogY2FjaGVTZWxlY3RvcixcbiAgICAgICAgaXRlbToge2tleVByZWZpeDoga2V5UHJlZml4fSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cbiJdfQ==
@@ -48,31 +48,12 @@ export interface Permissions {
48
48
  permissions: Array<Permission>;
49
49
  }
50
50
  export declare const AllDataReadWrite: Permissions;
51
- export declare function isPermissionsObject(scope: TokenScope): boolean;
52
- export declare function asPermissionsObject(scope: TokenScope): Permissions;
51
+ export declare function isPermissionsObject(scope: PermissionScope): boolean;
52
+ export declare function asPermissionsObject(scope: PermissionScope): Permissions;
53
53
  export declare abstract class PredefinedScope {
54
54
  }
55
- export type TokenScope = typeof AllDataReadWrite | Permissions | PredefinedScope;
56
- export interface CacheItemKey {
57
- key: string;
58
- }
59
- export interface CacheItemKeyPrefix {
60
- keyPrefix: string;
61
- }
62
- export declare function isCacheItemKey(cacheItem: CacheItemSelector): cacheItem is CacheItemKey;
63
- export declare function isCacheItemKeyPrefix(cacheItem: CacheItemSelector): cacheItem is CacheItemKeyPrefix;
64
- export type CacheItemSelector = typeof AllCacheItems | CacheItemKey | CacheItemKeyPrefix | string;
65
- export interface DisposableTokenCachePermission extends CachePermission {
66
- /**
67
- * Scope the token permissions to select cache items
68
- */
69
- item: CacheItemSelector;
70
- }
71
- export declare function isDisposableTokenCachePermission(p: Permission): boolean;
72
- export declare function asDisposableTokenCachePermission(p: Permission): DisposableTokenCachePermission;
73
- export interface DisposableTokenCachePermissions {
74
- permissions: Array<DisposableTokenCachePermission>;
75
- }
76
- export type DisposableTokenScope = Permissions | PredefinedScope | DisposableTokenCachePermissions;
77
- export declare function isDisposableTokenPermissionsObject(scope: DisposableTokenScope): boolean;
78
- export declare function asDisposableTokenPermissionsObject(scope: DisposableTokenScope): DisposableTokenCachePermissions;
55
+ export type PermissionScope = typeof AllDataReadWrite | Permissions | PredefinedScope;
56
+ /**
57
+ * @deprecated please use PermissionScope instead
58
+ */
59
+ export type TokenScope = PermissionScope;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PredefinedScope = exports.asPermissionsObject = exports.isPermissionsObject = exports.AllDataReadWrite = exports.asTopicPermission = exports.isTopicPermission = exports.isTopicName = exports.TopicRole = exports.asCachePermission = exports.isCachePermission = exports.isCacheName = exports.AllCacheItems = exports.AllTopics = exports.AllCaches = exports.CacheRole = void 0;
4
+ var CacheRole;
5
+ (function (CacheRole) {
6
+ CacheRole["ReadWrite"] = "readwrite";
7
+ CacheRole["ReadOnly"] = "readonly";
8
+ CacheRole["WriteOnly"] = "writeonly";
9
+ })(CacheRole = exports.CacheRole || (exports.CacheRole = {}));
10
+ exports.AllCaches = Symbol();
11
+ exports.AllTopics = Symbol();
12
+ exports.AllCacheItems = Symbol();
13
+ function isCacheName(cache) {
14
+ if (cache === exports.AllCaches) {
15
+ return false;
16
+ }
17
+ return 'name' in cache;
18
+ }
19
+ exports.isCacheName = isCacheName;
20
+ function isCachePermission(p) {
21
+ return 'role' in p && 'cache' in p && !('topic' in p);
22
+ }
23
+ exports.isCachePermission = isCachePermission;
24
+ function asCachePermission(p) {
25
+ if (!isCachePermission(p)) {
26
+ throw new Error(`permission is not a CachePermission object: ${JSON.stringify(p)}`);
27
+ }
28
+ return p;
29
+ }
30
+ exports.asCachePermission = asCachePermission;
31
+ var TopicRole;
32
+ (function (TopicRole) {
33
+ TopicRole["PublishSubscribe"] = "publishsubscribe";
34
+ TopicRole["SubscribeOnly"] = "subscribeonly";
35
+ TopicRole["PublishOnly"] = "publishonly";
36
+ })(TopicRole = exports.TopicRole || (exports.TopicRole = {}));
37
+ function isTopicName(topic) {
38
+ if (topic === exports.AllTopics) {
39
+ return false;
40
+ }
41
+ return 'name' in topic;
42
+ }
43
+ exports.isTopicName = isTopicName;
44
+ function isTopicPermission(p) {
45
+ return 'role' in p && 'cache' in p && 'topic' in p;
46
+ }
47
+ exports.isTopicPermission = isTopicPermission;
48
+ function asTopicPermission(p) {
49
+ if (!isTopicPermission(p)) {
50
+ throw new Error(`permission is not a TopicPermission object: ${JSON.stringify(p)}`);
51
+ }
52
+ return p;
53
+ }
54
+ exports.asTopicPermission = asTopicPermission;
55
+ exports.AllDataReadWrite = {
56
+ permissions: [
57
+ { role: CacheRole.ReadWrite, cache: exports.AllCaches },
58
+ { role: TopicRole.PublishSubscribe, cache: exports.AllCaches, topic: exports.AllTopics },
59
+ ],
60
+ };
61
+ function isPermissionObject(p) {
62
+ return isCachePermission(p) || isTopicPermission(p);
63
+ }
64
+ function isPermissionsObject(scope) {
65
+ if (!('permissions' in scope)) {
66
+ return false;
67
+ }
68
+ const permissions = scope.permissions;
69
+ return permissions.every(p => isPermissionObject(p));
70
+ }
71
+ exports.isPermissionsObject = isPermissionsObject;
72
+ function asPermissionsObject(scope) {
73
+ if (!isPermissionsObject(scope)) {
74
+ throw new Error(`Token scope is not a Permissions object: ${JSON.stringify(scope)}`);
75
+ }
76
+ return scope;
77
+ }
78
+ exports.asPermissionsObject = asPermissionsObject;
79
+ class PredefinedScope {
80
+ }
81
+ exports.PredefinedScope = PredefinedScope;
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3Rva2Vucy9wZXJtaXNzaW9uLXNjb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQixvQ0FBdUIsQ0FBQTtJQUN2QixrQ0FBcUIsQ0FBQTtJQUNyQixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7QUFFWSxRQUFBLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNyQixRQUFBLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNyQixRQUFBLGFBQWEsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUt0QyxTQUFnQixXQUFXLENBQ3pCLEtBQW1DO0lBRW5DLElBQUksS0FBSyxLQUFLLGlCQUFTLEVBQUU7UUFDdkIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sTUFBTSxJQUFJLEtBQUssQ0FBQztBQUN6QixDQUFDO0FBUEQsa0NBT0M7QUFXRCxTQUFnQixpQkFBaUIsQ0FBQyxDQUFhO0lBQzdDLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsQ0FBYTtJQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQ0FBK0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuRSxDQUFDO0tBQ0g7SUFDRCxPQUFPLENBQW9CLENBQUM7QUFDOUIsQ0FBQztBQVBELDhDQU9DO0FBRUQsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLGtEQUFxQyxDQUFBO0lBQ3JDLDRDQUErQixDQUFBO0lBQy9CLHdDQUEyQixDQUFBO0FBQzdCLENBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQUtELFNBQWdCLFdBQVcsQ0FDekIsS0FBbUM7SUFFbkMsSUFBSSxLQUFLLEtBQUssaUJBQVMsRUFBRTtRQUN2QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDO0FBQ3pCLENBQUM7QUFQRCxrQ0FPQztBQWVELFNBQWdCLGlCQUFpQixDQUFDLENBQWE7SUFDN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxDQUFhO0lBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUNiLCtDQUErQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ25FLENBQUM7S0FDSDtJQUNELE9BQU8sQ0FBb0IsQ0FBQztBQUM5QixDQUFDO0FBUEQsOENBT0M7QUFRWSxRQUFBLGdCQUFnQixHQUFnQjtJQUMzQyxXQUFXLEVBQUU7UUFDWCxFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBUyxFQUFDO1FBQzdDLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsaUJBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQVMsRUFBQztLQUN2RTtDQUNGLENBQUM7QUFFRixTQUFTLGtCQUFrQixDQUFDLENBQWE7SUFDdkMsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsS0FBc0I7SUFDeEQsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ3RDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQU5ELGtEQU1DO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsS0FBc0I7SUFDeEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2IsNENBQTRDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztLQUNIO0lBQ0QsT0FBTyxLQUFvQixDQUFDO0FBQzlCLENBQUM7QUFQRCxrREFPQztBQUVELE1BQXNCLGVBQWU7Q0FBRztBQUF4QywwQ0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDYWNoZVJvbGUge1xuICBSZWFkV3JpdGUgPSAncmVhZHdyaXRlJyxcbiAgUmVhZE9ubHkgPSAncmVhZG9ubHknLFxuICBXcml0ZU9ubHkgPSAnd3JpdGVvbmx5Jyxcbn1cblxuZXhwb3J0IGNvbnN0IEFsbENhY2hlcyA9IFN5bWJvbCgpO1xuZXhwb3J0IGNvbnN0IEFsbFRvcGljcyA9IFN5bWJvbCgpO1xuZXhwb3J0IGNvbnN0IEFsbENhY2hlSXRlbXMgPSBTeW1ib2woKTtcblxuZXhwb3J0IGludGVyZmFjZSBDYWNoZU5hbWUge1xuICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNDYWNoZU5hbWUoXG4gIGNhY2hlOiBDYWNoZU5hbWUgfCB0eXBlb2YgQWxsQ2FjaGVzXG4pOiBjYWNoZSBpcyBDYWNoZU5hbWUge1xuICBpZiAoY2FjaGUgPT09IEFsbENhY2hlcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gJ25hbWUnIGluIGNhY2hlO1xufVxuZXhwb3J0IHR5cGUgQ2FjaGVTZWxlY3RvciA9IHR5cGVvZiBBbGxDYWNoZXMgfCBDYWNoZU5hbWUgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVQZXJtaXNzaW9uIHtcbiAgcm9sZTogQ2FjaGVSb2xlO1xuICAvKipcbiAgICogU2NvcGUgdGhlIHRva2VuIHBlcm1pc3Npb25zIHRvIHNlbGVjdCBjYWNoZXNcbiAgICovXG4gIGNhY2hlOiBDYWNoZVNlbGVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDYWNoZVBlcm1pc3Npb24ocDogUGVybWlzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gJ3JvbGUnIGluIHAgJiYgJ2NhY2hlJyBpbiBwICYmICEoJ3RvcGljJyBpbiBwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzQ2FjaGVQZXJtaXNzaW9uKHA6IFBlcm1pc3Npb24pOiBDYWNoZVBlcm1pc3Npb24ge1xuICBpZiAoIWlzQ2FjaGVQZXJtaXNzaW9uKHApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBlcm1pc3Npb24gaXMgbm90IGEgQ2FjaGVQZXJtaXNzaW9uIG9iamVjdDogJHtKU09OLnN0cmluZ2lmeShwKX1gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcCBhcyBDYWNoZVBlcm1pc3Npb247XG59XG5cbmV4cG9ydCBlbnVtIFRvcGljUm9sZSB7XG4gIFB1Ymxpc2hTdWJzY3JpYmUgPSAncHVibGlzaHN1YnNjcmliZScsXG4gIFN1YnNjcmliZU9ubHkgPSAnc3Vic2NyaWJlb25seScsXG4gIFB1Ymxpc2hPbmx5ID0gJ3B1Ymxpc2hvbmx5Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb3BpY05hbWUge1xuICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNUb3BpY05hbWUoXG4gIHRvcGljOiBUb3BpY05hbWUgfCB0eXBlb2YgQWxsVG9waWNzXG4pOiB0b3BpYyBpcyBUb3BpY05hbWUge1xuICBpZiAodG9waWMgPT09IEFsbFRvcGljcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gJ25hbWUnIGluIHRvcGljO1xufVxuZXhwb3J0IHR5cGUgVG9waWNTZWxlY3RvciA9IHR5cGVvZiBBbGxUb3BpY3MgfCBUb3BpY05hbWUgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9waWNQZXJtaXNzaW9uIHtcbiAgcm9sZTogVG9waWNSb2xlO1xuICAvKipcbiAgICogU2NvcGUgdGhlIHRva2VuIHBlcm1pc3Npb25zIHRvIHNlbGVjdCBjYWNoZXNcbiAgICovXG4gIGNhY2hlOiBDYWNoZVNlbGVjdG9yO1xuICAvKipcbiAgICogU2NvcGUgdGhlIHRva2VuIHBlcm1pc3Npb25zIHRvIHNlbGVjdCB0b3BpY3NcbiAgICovXG4gIHRvcGljOiBUb3BpY1NlbGVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUb3BpY1Blcm1pc3Npb24ocDogUGVybWlzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gJ3JvbGUnIGluIHAgJiYgJ2NhY2hlJyBpbiBwICYmICd0b3BpYycgaW4gcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzVG9waWNQZXJtaXNzaW9uKHA6IFBlcm1pc3Npb24pOiBUb3BpY1Blcm1pc3Npb24ge1xuICBpZiAoIWlzVG9waWNQZXJtaXNzaW9uKHApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBlcm1pc3Npb24gaXMgbm90IGEgVG9waWNQZXJtaXNzaW9uIG9iamVjdDogJHtKU09OLnN0cmluZ2lmeShwKX1gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcCBhcyBUb3BpY1Blcm1pc3Npb247XG59XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb24gPSBDYWNoZVBlcm1pc3Npb24gfCBUb3BpY1Blcm1pc3Npb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbnMge1xuICBwZXJtaXNzaW9uczogQXJyYXk8UGVybWlzc2lvbj47XG59XG5cbmV4cG9ydCBjb25zdCBBbGxEYXRhUmVhZFdyaXRlOiBQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFtcbiAgICB7cm9sZTogQ2FjaGVSb2xlLlJlYWRXcml0ZSwgY2FjaGU6IEFsbENhY2hlc30sXG4gICAge3JvbGU6IFRvcGljUm9sZS5QdWJsaXNoU3Vic2NyaWJlLCBjYWNoZTogQWxsQ2FjaGVzLCB0b3BpYzogQWxsVG9waWNzfSxcbiAgXSxcbn07XG5cbmZ1bmN0aW9uIGlzUGVybWlzc2lvbk9iamVjdChwOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0NhY2hlUGVybWlzc2lvbihwKSB8fCBpc1RvcGljUGVybWlzc2lvbihwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGVybWlzc2lvbnNPYmplY3Qoc2NvcGU6IFBlcm1pc3Npb25TY29wZSk6IGJvb2xlYW4ge1xuICBpZiAoISgncGVybWlzc2lvbnMnIGluIHNjb3BlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBwZXJtaXNzaW9ucyA9IHNjb3BlLnBlcm1pc3Npb25zO1xuICByZXR1cm4gcGVybWlzc2lvbnMuZXZlcnkocCA9PiBpc1Blcm1pc3Npb25PYmplY3QocCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNQZXJtaXNzaW9uc09iamVjdChzY29wZTogUGVybWlzc2lvblNjb3BlKTogUGVybWlzc2lvbnMge1xuICBpZiAoIWlzUGVybWlzc2lvbnNPYmplY3Qoc2NvcGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRva2VuIHNjb3BlIGlzIG5vdCBhIFBlcm1pc3Npb25zIG9iamVjdDogJHtKU09OLnN0cmluZ2lmeShzY29wZSl9YFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHNjb3BlIGFzIFBlcm1pc3Npb25zO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJlZGVmaW5lZFNjb3BlIHt9XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb25TY29wZSA9XG4gIHwgdHlwZW9mIEFsbERhdGFSZWFkV3JpdGVcbiAgfCBQZXJtaXNzaW9uc1xuICB8IFByZWRlZmluZWRTY29wZTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIFBlcm1pc3Npb25TY29wZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIFRva2VuU2NvcGUgPSBQZXJtaXNzaW9uU2NvcGU7XG4iXX0=
@@ -1,7 +1,7 @@
1
- import { CacheSelector, TokenScope, TopicSelector } from './token-scope';
2
- export declare function cacheReadWrite(cacheSelector: CacheSelector): TokenScope;
3
- export declare function cacheReadOnly(cacheSelector: CacheSelector): TokenScope;
4
- export declare function cacheWriteOnly(cacheSelector: CacheSelector): TokenScope;
5
- export declare function topicSubscribeOnly(cacheSelector: CacheSelector, topicSelector: TopicSelector): TokenScope;
6
- export declare function topicPublishSubscribe(cacheSelector: CacheSelector, topicSelector: TopicSelector): TokenScope;
7
- export declare function topicPublishOnly(cacheSelector: CacheSelector, topicSelector: TopicSelector): TokenScope;
1
+ import { CacheSelector, PermissionScope, TopicSelector } from './permission-scope';
2
+ export declare function cacheReadWrite(cacheSelector: CacheSelector): PermissionScope;
3
+ export declare function cacheReadOnly(cacheSelector: CacheSelector): PermissionScope;
4
+ export declare function cacheWriteOnly(cacheSelector: CacheSelector): PermissionScope;
5
+ export declare function topicSubscribeOnly(cacheSelector: CacheSelector, topicSelector: TopicSelector): PermissionScope;
6
+ export declare function topicPublishSubscribe(cacheSelector: CacheSelector, topicSelector: TopicSelector): PermissionScope;
7
+ export declare function topicPublishOnly(cacheSelector: CacheSelector, topicSelector: TopicSelector): PermissionScope;