@gomomento/sdk-core 1.35.0 → 1.37.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/dist/src/auth/credential-provider.d.ts +36 -0
- package/dist/src/auth/credential-provider.js +31 -7
- package/dist/src/auth/tokens/disposable-token-scopes.d.ts +8 -0
- package/dist/src/auth/tokens/disposable-token-scopes.js +74 -0
- package/dist/src/auth/tokens/token-scope.d.ts +30 -9
- package/dist/src/auth/tokens/token-scope.js +61 -6
- package/dist/src/clients/IAuthClient.d.ts +3 -2
- package/dist/src/clients/IAuthClient.js +1 -1
- package/dist/src/clients/IVectorIndexClient.d.ts +12 -0
- package/dist/src/clients/IVectorIndexClient.js +3 -0
- package/dist/src/index.d.ts +8 -3
- package/dist/src/index.js +30 -7
- package/dist/src/internal/clients/auth/AbstractAuthClient.d.ts +12 -2
- package/dist/src/internal/clients/auth/AbstractAuthClient.js +13 -1
- package/dist/src/internal/clients/index.d.ts +1 -0
- package/dist/src/internal/clients/index.js +2 -1
- package/dist/src/internal/clients/vector/AbstractVectorIndexClient.d.ts +78 -0
- package/dist/src/internal/clients/vector/AbstractVectorIndexClient.js +91 -0
- package/dist/src/internal/clients/vector/IVectorIndexControlClient.d.ts +6 -0
- package/dist/src/internal/clients/vector/IVectorIndexControlClient.js +3 -0
- package/dist/src/internal/clients/vector/IVectorIndexDataClient.d.ts +8 -0
- package/dist/src/internal/clients/vector/IVectorIndexDataClient.js +3 -0
- package/dist/src/internal/clients/vector/index.d.ts +3 -0
- package/dist/src/internal/clients/vector/index.js +20 -0
- package/dist/src/internal/utils/auth.d.ts +2 -0
- package/dist/src/internal/utils/auth.js +7 -2
- package/dist/src/internal/utils/validators.d.ts +6 -0
- package/dist/src/internal/utils/validators.js +39 -2
- package/dist/src/messages/responses/generate-disposable-token.d.ts +47 -0
- package/dist/src/messages/responses/generate-disposable-token.js +42 -0
- package/dist/src/messages/responses/vector/create-vector-index.d.ts +67 -0
- package/dist/src/messages/responses/vector/create-vector-index.js +61 -0
- package/dist/src/messages/responses/vector/delete-vector-index.d.ts +61 -0
- package/dist/src/messages/responses/vector/delete-vector-index.js +54 -0
- package/dist/src/messages/responses/vector/index.d.ts +6 -0
- package/dist/src/messages/responses/vector/index.js +10 -0
- package/dist/src/messages/responses/vector/list-vector-indexes.d.ts +69 -0
- package/dist/src/messages/responses/vector/list-vector-indexes.js +68 -0
- package/dist/src/messages/responses/vector/vector-add-item-batch.d.ts +61 -0
- package/dist/src/messages/responses/vector/vector-add-item-batch.js +54 -0
- package/dist/src/messages/responses/vector/vector-delete-item-batch.d.ts +62 -0
- package/dist/src/messages/responses/vector/vector-delete-item-batch.js +55 -0
- package/dist/src/messages/responses/vector/vector-search.d.ts +70 -0
- package/dist/src/messages/responses/vector/vector-search.js +67 -0
- package/dist/src/messages/vector-index.d.ts +5 -0
- package/dist/src/messages/vector-index.js +3 -0
- package/package.json +1 -1
@@ -10,6 +10,14 @@ interface CredentialProviderProps {
|
|
10
10
|
* optionally overrides the default cacheEndpoint
|
11
11
|
*/
|
12
12
|
cacheEndpoint?: string;
|
13
|
+
/**
|
14
|
+
* optionally overrides the default vectorEndpoint
|
15
|
+
*/
|
16
|
+
tokenEndpoint?: string;
|
17
|
+
/**
|
18
|
+
* optionally overrides the default vectorEndpoint
|
19
|
+
*/
|
20
|
+
vectorEndpoint?: string;
|
13
21
|
}
|
14
22
|
/**
|
15
23
|
* Provides information that the CacheClient needs in order to establish a connection to and authenticate with
|
@@ -30,6 +38,14 @@ export declare abstract class CredentialProvider {
|
|
30
38
|
* @returns {string} The host which the Momento client will connect to for Momento data plane operations
|
31
39
|
*/
|
32
40
|
abstract getCacheEndpoint(): string;
|
41
|
+
/**
|
42
|
+
* @returns {string} The host which the Momento client will connect to for Momento token operations
|
43
|
+
*/
|
44
|
+
abstract getTokenEndpoint(): string;
|
45
|
+
/**
|
46
|
+
* @returns {string} The host which the Momento client will connect to for Momento vector index operations
|
47
|
+
*/
|
48
|
+
abstract getVectorEndpoint(): string;
|
33
49
|
/**
|
34
50
|
* @returns {boolean} true if the cache endpoint was manually overridden at construction time; false otherwise
|
35
51
|
*/
|
@@ -38,6 +54,14 @@ export declare abstract class CredentialProvider {
|
|
38
54
|
* @returns {boolean} true if the control endpoint was manually overridden at construction time; false otherwise
|
39
55
|
*/
|
40
56
|
abstract isControlEndpointOverridden(): boolean;
|
57
|
+
/**
|
58
|
+
* @returns {boolean} true if the token endpoint was manually overridden at construction time; false otherwise
|
59
|
+
*/
|
60
|
+
abstract isTokenEndpointOverridden(): boolean;
|
61
|
+
/**
|
62
|
+
* @returns {boolean} true if the vector endpoint was manually overridden at construction time; false otherwise
|
63
|
+
*/
|
64
|
+
abstract isVectorEndpointOverridden(): boolean;
|
41
65
|
static fromEnvironmentVariable(props: EnvMomentoTokenProviderProps): CredentialProvider;
|
42
66
|
static fromString(props: StringMomentoTokenProviderProps): CredentialProvider;
|
43
67
|
}
|
@@ -45,8 +69,12 @@ declare abstract class CredentialProviderBase implements CredentialProvider {
|
|
45
69
|
abstract getAuthToken(): string;
|
46
70
|
abstract getCacheEndpoint(): string;
|
47
71
|
abstract getControlEndpoint(): string;
|
72
|
+
abstract getTokenEndpoint(): string;
|
73
|
+
abstract getVectorEndpoint(): string;
|
48
74
|
abstract isCacheEndpointOverridden(): boolean;
|
49
75
|
abstract isControlEndpointOverridden(): boolean;
|
76
|
+
abstract isTokenEndpointOverridden(): boolean;
|
77
|
+
abstract isVectorEndpointOverridden(): boolean;
|
50
78
|
valueOf(): object;
|
51
79
|
}
|
52
80
|
export interface StringMomentoTokenProviderProps extends CredentialProviderProps {
|
@@ -64,8 +92,12 @@ export declare class StringMomentoTokenProvider extends CredentialProviderBase {
|
|
64
92
|
private readonly authToken;
|
65
93
|
private readonly controlEndpoint;
|
66
94
|
private readonly cacheEndpoint;
|
95
|
+
private readonly tokenEndpoint;
|
96
|
+
private readonly vectorEndpoint;
|
67
97
|
private readonly controlEndpointOverridden;
|
68
98
|
private readonly cacheEndpointOverridden;
|
99
|
+
private readonly tokenEndpointOverridden;
|
100
|
+
private readonly vectorEndpointOverridden;
|
69
101
|
/**
|
70
102
|
* @param {StringMomentoTokenProviderProps} props configuration options for the token provider
|
71
103
|
*/
|
@@ -73,8 +105,12 @@ export declare class StringMomentoTokenProvider extends CredentialProviderBase {
|
|
73
105
|
getAuthToken(): string;
|
74
106
|
getCacheEndpoint(): string;
|
75
107
|
getControlEndpoint(): string;
|
108
|
+
getTokenEndpoint(): string;
|
109
|
+
getVectorEndpoint(): string;
|
76
110
|
isControlEndpointOverridden(): boolean;
|
77
111
|
isCacheEndpointOverridden(): boolean;
|
112
|
+
isTokenEndpointOverridden(): boolean;
|
113
|
+
isVectorEndpointOverridden(): boolean;
|
78
114
|
}
|
79
115
|
export interface EnvMomentoTokenProviderProps extends CredentialProviderProps {
|
80
116
|
/**
|
@@ -35,7 +35,7 @@ class StringMomentoTokenProvider extends CredentialProviderBase {
|
|
35
35
|
* @param {StringMomentoTokenProviderProps} props configuration options for the token provider
|
36
36
|
*/
|
37
37
|
constructor(props) {
|
38
|
-
var _a, _b;
|
38
|
+
var _a, _b, _c, _d;
|
39
39
|
super();
|
40
40
|
const decodedToken = (0, utils_1.decodeAuthToken)(props.authToken);
|
41
41
|
this.authToken = decodedToken.authToken;
|
@@ -49,8 +49,20 @@ class StringMomentoTokenProvider extends CredentialProviderBase {
|
|
49
49
|
if (cacheEndpoint === undefined) {
|
50
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.');
|
51
51
|
}
|
52
|
+
this.tokenEndpointOverridden = props.tokenEndpoint !== undefined;
|
53
|
+
const tokenEndpoint = (_c = props.tokenEndpoint) !== null && _c !== void 0 ? _c : decodedToken.tokenEndpoint;
|
54
|
+
if (tokenEndpoint === undefined) {
|
55
|
+
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.');
|
56
|
+
}
|
57
|
+
this.vectorEndpointOverridden = props.vectorEndpoint !== undefined;
|
58
|
+
const vectorEndpoint = (_d = props.vectorEndpoint) !== null && _d !== void 0 ? _d : decodedToken.vectorEndpoint;
|
59
|
+
if (vectorEndpoint === undefined) {
|
60
|
+
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.');
|
61
|
+
}
|
52
62
|
this.controlEndpoint = controlEndpoint;
|
53
63
|
this.cacheEndpoint = cacheEndpoint;
|
64
|
+
this.tokenEndpoint = decodedToken.tokenEndpoint || cacheEndpoint;
|
65
|
+
this.vectorEndpoint = vectorEndpoint;
|
54
66
|
}
|
55
67
|
getAuthToken() {
|
56
68
|
return this.authToken;
|
@@ -61,12 +73,24 @@ class StringMomentoTokenProvider extends CredentialProviderBase {
|
|
61
73
|
getControlEndpoint() {
|
62
74
|
return this.controlEndpoint;
|
63
75
|
}
|
76
|
+
getTokenEndpoint() {
|
77
|
+
return this.tokenEndpoint;
|
78
|
+
}
|
79
|
+
getVectorEndpoint() {
|
80
|
+
return this.vectorEndpoint;
|
81
|
+
}
|
64
82
|
isControlEndpointOverridden() {
|
65
83
|
return this.controlEndpointOverridden;
|
66
84
|
}
|
67
85
|
isCacheEndpointOverridden() {
|
68
86
|
return this.cacheEndpointOverridden;
|
69
87
|
}
|
88
|
+
isTokenEndpointOverridden() {
|
89
|
+
return this.tokenEndpointOverridden;
|
90
|
+
}
|
91
|
+
isVectorEndpointOverridden() {
|
92
|
+
return this.vectorEndpointOverridden;
|
93
|
+
}
|
70
94
|
}
|
71
95
|
exports.StringMomentoTokenProvider = StringMomentoTokenProvider;
|
72
96
|
/**
|
@@ -79,19 +103,19 @@ class EnvMomentoTokenProvider extends StringMomentoTokenProvider {
|
|
79
103
|
* @param {EnvMomentoTokenProviderProps} props configuration options for the token provider
|
80
104
|
*/
|
81
105
|
constructor(props) {
|
82
|
-
var _a, _b;
|
83
106
|
const authToken = process.env[props.environmentVariableName];
|
84
107
|
if (!authToken) {
|
85
108
|
throw new Error(`Missing required environment variable ${props.environmentVariableName}`);
|
86
109
|
}
|
87
|
-
const decodedToken = (0, utils_1.decodeAuthToken)(authToken);
|
88
110
|
super({
|
89
|
-
authToken:
|
90
|
-
controlEndpoint:
|
91
|
-
cacheEndpoint:
|
111
|
+
authToken: authToken,
|
112
|
+
controlEndpoint: props.controlEndpoint,
|
113
|
+
cacheEndpoint: props.cacheEndpoint,
|
114
|
+
tokenEndpoint: props.tokenEndpoint,
|
115
|
+
vectorEndpoint: props.vectorEndpoint,
|
92
116
|
});
|
93
117
|
this.environmentVariableName = props.environmentVariableName;
|
94
118
|
}
|
95
119
|
}
|
96
120
|
exports.EnvMomentoTokenProvider = EnvMomentoTokenProvider;
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2NyZWRlbnRpYWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQStEO0FBZ0IvRDs7Ozs7R0FLRztBQUNILE1BQXNCLGtCQUFrQjtJQTBCdEMsTUFBTSxDQUFDLHVCQUF1QixDQUM1QixLQUFtQztRQUVuQyxPQUFPLElBQUksdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQ2YsS0FBc0M7UUFFdEMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQXJDRCxnREFxQ0M7QUFFRCxNQUFlLHNCQUFzQjtJQVVuQyxPQUFPO1FBQ0wsNkRBQTZEO1FBQzdELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLElBQUEsbUJBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFVRDs7OztHQUlHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxzQkFBc0I7SUFPcEU7O09BRUc7SUFDSCxZQUFZLEtBQXNDOztRQUNoRCxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sWUFBWSxHQUFHLElBQUEsdUJBQWUsRUFBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQztRQUNyRSxNQUFNLGVBQWUsR0FDbkIsTUFBQSxLQUFLLENBQUMsZUFBZSxtQ0FBSSxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3hELElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUNiLCtKQUErSixDQUNoSyxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUM7UUFDakUsTUFBTSxhQUFhLEdBQUcsTUFBQSxLQUFLLENBQUMsYUFBYSxtQ0FBSSxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQ3hFLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUNiLDJKQUEySixDQUM1SixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztJQUVELHlCQUF5QjtRQUN2QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFyREQsZ0VBcURDO0FBU0Q7Ozs7R0FJRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsMEJBQTBCO0lBRXJFOztPQUVHO0lBQ0gsWUFBWSxLQUFtQzs7UUFDN0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYix5Q0FBeUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQ3pFLENBQUM7U0FDSDtRQUNELE1BQU0sWUFBWSxHQUFHLElBQUEsdUJBQWUsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7WUFDakMsZUFBZSxFQUFFLE1BQUEsS0FBSyxDQUFDLGVBQWUsbUNBQUksWUFBWSxDQUFDLGVBQWU7WUFDdEUsYUFBYSxFQUFFLE1BQUEsS0FBSyxDQUFDLGFBQWEsbUNBQUksWUFBWSxDQUFDLGFBQWE7U0FDakUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFwQkQsMERBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWNvZGVBdXRoVG9rZW4sIGZyb21FbnRyaWVzfSBmcm9tICcuLi9pbnRlcm5hbC91dGlscyc7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIGFyZ3VtZW50cyBmb3IgaW5zdGFudGlhdGluZyBhbiBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5pbnRlcmZhY2UgQ3JlZGVudGlhbFByb3ZpZGVyUHJvcHMge1xuICAvKipcbiAgICogb3B0aW9uYWxseSBvdmVycmlkZXMgdGhlIGRlZmF1bHQgY29udHJvbEVuZHBvaW50XG4gICAqL1xuICBjb250cm9sRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvcHRpb25hbGx5IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBjYWNoZUVuZHBvaW50XG4gICAqL1xuICBjYWNoZUVuZHBvaW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIHRoYXQgdGhlIENhY2hlQ2xpZW50IG5lZWRzIGluIG9yZGVyIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gdG8gYW5kIGF1dGhlbnRpY2F0ZSB3aXRoXG4gKiB0aGUgTW9tZW50byBzZXJ2aWNlLlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBDcmVkZW50aWFsUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENyZWRlbnRpYWxQcm92aWRlciB7XG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBBdXRoIHRva2VuIHByb3ZpZGVkIGJ5IHVzZXIsIHJlcXVpcmVkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSBzZXJ2aWNlXG4gICAqL1xuICBhYnN0cmFjdCBnZXRBdXRoVG9rZW4oKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgaG9zdCB3aGljaCB0aGUgTW9tZW50byBjbGllbnQgd2lsbCBjb25uZWN0IHRvIGZvciBNb21lbnRvIGNvbnRyb2wgcGxhbmUgb3BlcmF0aW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Q29udHJvbEVuZHBvaW50KCk6IHN0cmluZztcblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGhvc3Qgd2hpY2ggdGhlIE1vbWVudG8gY2xpZW50IHdpbGwgY29ubmVjdCB0byBmb3IgTW9tZW50byBkYXRhIHBsYW5lIG9wZXJhdGlvbnNcbiAgICovXG4gIGFic3RyYWN0IGdldENhY2hlRW5kcG9pbnQoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgY2FjaGUgZW5kcG9pbnQgd2FzIG1hbnVhbGx5IG92ZXJyaWRkZW4gYXQgY29uc3RydWN0aW9uIHRpbWU7IGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNDYWNoZUVuZHBvaW50T3ZlcnJpZGRlbigpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgY29udHJvbCBlbmRwb2ludCB3YXMgbWFudWFsbHkgb3ZlcnJpZGRlbiBhdCBjb25zdHJ1Y3Rpb24gdGltZTsgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBhYnN0cmFjdCBpc0NvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbjtcblxuICBzdGF0aWMgZnJvbUVudmlyb25tZW50VmFyaWFibGUoXG4gICAgcHJvcHM6IEVudk1vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHNcbiAgKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IEVudk1vbWVudG9Ub2tlblByb3ZpZGVyKHByb3BzKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RyaW5nKFxuICAgIHByb3BzOiBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzXG4gICk6IENyZWRlbnRpYWxQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlcihwcm9wcyk7XG4gIH1cbn1cblxuYWJzdHJhY3QgY2xhc3MgQ3JlZGVudGlhbFByb3ZpZGVyQmFzZSBpbXBsZW1lbnRzIENyZWRlbnRpYWxQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldEF1dGhUb2tlbigpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgZ2V0Q2FjaGVFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgZ2V0Q29udHJvbEVuZHBvaW50KCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBpc0NhY2hlRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGlzQ29udHJvbEVuZHBvaW50T3ZlcnJpZGRlbigpOiBib29sZWFuO1xuXG4gIHZhbHVlT2YoKTogb2JqZWN0IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMpLmZpbHRlcigoW2tdKSA9PiBrICE9PSAnYXV0aFRva2VuJyk7XG4gICAgY29uc3QgY2xvbmUgPSBmcm9tRW50cmllcyhlbnRyaWVzKTtcbiAgICByZXR1cm4gY2xvbmUudmFsdWVPZigpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wc1xuICBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIGF1dGhUb2tlbiB0aGUgbW9tZW50byBhdXRoIHRva2VuXG4gICAqL1xuICBhdXRoVG9rZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGEgbW9tZW50byBhdXRoIHRva2VuIHN0b3JlZCBpbiBhIFN0cmluZ1xuICogQGV4cG9ydFxuICogQGNsYXNzIFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlciBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlckJhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xFbmRwb2ludDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRW5kcG9pbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sRW5kcG9pbnRPdmVycmlkZGVuOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRW5kcG9pbnRPdmVycmlkZGVuOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1N0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHN9IHByb3BzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRva2VuIHByb3ZpZGVyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcykge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgZGVjb2RlZFRva2VuID0gZGVjb2RlQXV0aFRva2VuKHByb3BzLmF1dGhUb2tlbik7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSBkZWNvZGVkVG9rZW4uYXV0aFRva2VuO1xuICAgIHRoaXMuY29udHJvbEVuZHBvaW50T3ZlcnJpZGRlbiA9IHByb3BzLmNvbnRyb2xFbmRwb2ludCAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGNvbnRyb2xFbmRwb2ludCA9XG4gICAgICBwcm9wcy5jb250cm9sRW5kcG9pbnQgPz8gZGVjb2RlZFRva2VuLmNvbnRyb2xFbmRwb2ludDtcbiAgICBpZiAoY29udHJvbEVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ01hbGZvcm1lZCB0b2tlbjsgdW5hYmxlIHRvIGRldGVybWluZSBjb250cm9sIGVuZHBvaW50LiAgRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRva2VuIHlvdSBhcmUgdXNpbmcsIHlvdSBtYXkgbmVlZCB0byBzcGVjaWZ5IHRoZSBjb250cm9sRW5kcG9pbnQgZXhwbGljaXRseS4nXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlRW5kcG9pbnRPdmVycmlkZGVuID0gcHJvcHMuY2FjaGVFbmRwb2ludCAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGNhY2hlRW5kcG9pbnQgPSBwcm9wcy5jYWNoZUVuZHBvaW50ID8/IGRlY29kZWRUb2tlbi5jYWNoZUVuZHBvaW50O1xuICAgIGlmIChjYWNoZUVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ01hbGZvcm1lZCB0b2tlbjsgdW5hYmxlIHRvIGRldGVybWluZSBjYWNoZSBlbmRwb2ludC4gIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0b2tlbiB5b3UgYXJlIHVzaW5nLCB5b3UgbWF5IG5lZWQgdG8gc3BlY2lmeSB0aGUgY2FjaGVFbmRwb2ludCBleHBsaWNpdGx5LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sRW5kcG9pbnQgPSBjb250cm9sRW5kcG9pbnQ7XG4gICAgdGhpcy5jYWNoZUVuZHBvaW50ID0gY2FjaGVFbmRwb2ludDtcbiAgfVxuXG4gIGdldEF1dGhUb2tlbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF1dGhUb2tlbjtcbiAgfVxuXG4gIGdldENhY2hlRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUVuZHBvaW50O1xuICB9XG5cbiAgZ2V0Q29udHJvbEVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbEVuZHBvaW50O1xuICB9XG5cbiAgaXNDb250cm9sRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW47XG4gIH1cblxuICBpc0NhY2hlRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlRW5kcG9pbnRPdmVycmlkZGVuO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcyBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmcm9tIHdoaWNoIHRoZSBhdXRoIHRva2VuIHdpbGwgYmUgcmVhZFxuICAgKi9cbiAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGEgbW9tZW50byBhdXRoIHRva2VuIHN0b3JlZCBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgRW52TW9tZW50b1Rva2VuUHJvdmlkZXIgZXh0ZW5kcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlciB7XG4gIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vudk1vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHN9IHByb3BzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRva2VuIHByb3ZpZGVyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcykge1xuICAgIGNvbnN0IGF1dGhUb2tlbiA9IHByb2Nlc3MuZW52W3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lXTtcbiAgICBpZiAoIWF1dGhUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAke3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGRlY29kZUF1dGhUb2tlbihhdXRoVG9rZW4pO1xuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhUb2tlbjogZGVjb2RlZFRva2VuLmF1dGhUb2tlbixcbiAgICAgIGNvbnRyb2xFbmRwb2ludDogcHJvcHMuY29udHJvbEVuZHBvaW50ID8/IGRlY29kZWRUb2tlbi5jb250cm9sRW5kcG9pbnQsXG4gICAgICBjYWNoZUVuZHBvaW50OiBwcm9wcy5jYWNoZUVuZHBvaW50ID8/IGRlY29kZWRUb2tlbi5jYWNoZUVuZHBvaW50LFxuICAgIH0pO1xuICAgIHRoaXMuZW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlTmFtZTtcbiAgfVxufVxuIl19
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2NyZWRlbnRpYWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQStEO0FBd0IvRDs7Ozs7R0FLRztBQUNILE1BQXNCLGtCQUFrQjtJQThDdEMsTUFBTSxDQUFDLHVCQUF1QixDQUM1QixLQUFtQztRQUVuQyxPQUFPLElBQUksdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQ2YsS0FBc0M7UUFFdEMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQXpERCxnREF5REM7QUFFRCxNQUFlLHNCQUFzQjtJQWdCbkMsT0FBTztRQUNMLDZEQUE2RDtRQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQztRQUN4RSxNQUFNLEtBQUssR0FBRyxJQUFBLG1CQUFXLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBVUQ7Ozs7R0FJRztBQUNILE1BQWEsMEJBQTJCLFNBQVEsc0JBQXNCO0lBV3BFOztPQUVHO0lBQ0gsWUFBWSxLQUFzQzs7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLFlBQVksR0FBRyxJQUFBLHVCQUFlLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLGVBQWUsS0FBSyxT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LENBQUMsYUFBYTtZQUNsQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFyQkQsMERBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWNvZGVBdXRoVG9rZW4sIGZyb21FbnRyaWVzfSBmcm9tICcuLi9pbnRlcm5hbC91dGlscyc7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIGFyZ3VtZW50cyBmb3IgaW5zdGFudGlhdGluZyBhbiBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5pbnRlcmZhY2UgQ3JlZGVudGlhbFByb3ZpZGVyUHJvcHMge1xuICAvKipcbiAgICogb3B0aW9uYWxseSBvdmVycmlkZXMgdGhlIGRlZmF1bHQgY29udHJvbEVuZHBvaW50XG4gICAqL1xuICBjb250cm9sRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvcHRpb25hbGx5IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBjYWNoZUVuZHBvaW50XG4gICAqL1xuICBjYWNoZUVuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogb3B0aW9uYWxseSBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdmVjdG9yRW5kcG9pbnRcbiAgICovXG4gIHRva2VuRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvcHRpb25hbGx5IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB2ZWN0b3JFbmRwb2ludFxuICAgKi9cbiAgdmVjdG9yRW5kcG9pbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gdGhhdCB0aGUgQ2FjaGVDbGllbnQgbmVlZHMgaW4gb3JkZXIgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byBhbmQgYXV0aGVudGljYXRlIHdpdGhcbiAqIHRoZSBNb21lbnRvIHNlcnZpY2UuXG4gKiBAZXhwb3J0XG4gKiBAaW50ZXJmYWNlIENyZWRlbnRpYWxQcm92aWRlclxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEF1dGggdG9rZW4gcHJvdmlkZWQgYnkgdXNlciwgcmVxdWlyZWQgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIHNlcnZpY2VcbiAgICovXG4gIGFic3RyYWN0IGdldEF1dGhUb2tlbigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gY29udHJvbCBwbGFuZSBvcGVyYXRpb25zXG4gICAqL1xuICBhYnN0cmFjdCBnZXRDb250cm9sRW5kcG9pbnQoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgaG9zdCB3aGljaCB0aGUgTW9tZW50byBjbGllbnQgd2lsbCBjb25uZWN0IHRvIGZvciBNb21lbnRvIGRhdGEgcGxhbmUgb3BlcmF0aW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Q2FjaGVFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gdG9rZW4gb3BlcmF0aW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VG9rZW5FbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBob3N0IHdoaWNoIHRoZSBNb21lbnRvIGNsaWVudCB3aWxsIGNvbm5lY3QgdG8gZm9yIE1vbWVudG8gdmVjdG9yIGluZGV4IG9wZXJhdGlvbnNcbiAgICovXG4gIGFic3RyYWN0IGdldFZlY3RvckVuZHBvaW50KCk6IHN0cmluZztcblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGNhY2hlIGVuZHBvaW50IHdhcyBtYW51YWxseSBvdmVycmlkZGVuIGF0IGNvbnN0cnVjdGlvbiB0aW1lOyBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IGlzQ2FjaGVFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGNvbnRyb2wgZW5kcG9pbnQgd2FzIG1hbnVhbGx5IG92ZXJyaWRkZW4gYXQgY29uc3RydWN0aW9uIHRpbWU7IGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNDb250cm9sRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSB0b2tlbiBlbmRwb2ludCB3YXMgbWFudWFsbHkgb3ZlcnJpZGRlbiBhdCBjb25zdHJ1Y3Rpb24gdGltZTsgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBhYnN0cmFjdCBpc1Rva2VuRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSB2ZWN0b3IgZW5kcG9pbnQgd2FzIG1hbnVhbGx5IG92ZXJyaWRkZW4gYXQgY29uc3RydWN0aW9uIHRpbWU7IGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNWZWN0b3JFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbjtcblxuICBzdGF0aWMgZnJvbUVudmlyb25tZW50VmFyaWFibGUoXG4gICAgcHJvcHM6IEVudk1vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHNcbiAgKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IEVudk1vbWVudG9Ub2tlblByb3ZpZGVyKHByb3BzKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RyaW5nKFxuICAgIHByb3BzOiBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzXG4gICk6IENyZWRlbnRpYWxQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlcihwcm9wcyk7XG4gIH1cbn1cblxuYWJzdHJhY3QgY2xhc3MgQ3JlZGVudGlhbFByb3ZpZGVyQmFzZSBpbXBsZW1lbnRzIENyZWRlbnRpYWxQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldEF1dGhUb2tlbigpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgZ2V0Q2FjaGVFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgZ2V0Q29udHJvbEVuZHBvaW50KCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBnZXRUb2tlbkVuZHBvaW50KCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBnZXRWZWN0b3JFbmRwb2ludCgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgaXNDYWNoZUVuZHBvaW50T3ZlcnJpZGRlbigpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc0NvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbjtcbiAgYWJzdHJhY3QgaXNUb2tlbkVuZHBvaW50T3ZlcnJpZGRlbigpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc1ZlY3RvckVuZHBvaW50T3ZlcnJpZGRlbigpOiBib29sZWFuO1xuXG4gIHZhbHVlT2YoKTogb2JqZWN0IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMpLmZpbHRlcigoW2tdKSA9PiBrICE9PSAnYXV0aFRva2VuJyk7XG4gICAgY29uc3QgY2xvbmUgPSBmcm9tRW50cmllcyhlbnRyaWVzKTtcbiAgICByZXR1cm4gY2xvbmUudmFsdWVPZigpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wc1xuICBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIGF1dGhUb2tlbiB0aGUgbW9tZW50byBhdXRoIHRva2VuXG4gICAqL1xuICBhdXRoVG9rZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGEgbW9tZW50byBhdXRoIHRva2VuIHN0b3JlZCBpbiBhIFN0cmluZ1xuICogQGV4cG9ydFxuICogQGNsYXNzIFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlciBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlckJhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xFbmRwb2ludDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRW5kcG9pbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbkVuZHBvaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmVjdG9yRW5kcG9pbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sRW5kcG9pbnRPdmVycmlkZGVuOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRW5kcG9pbnRPdmVycmlkZGVuOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuRW5kcG9pbnRPdmVycmlkZGVuOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlY3RvckVuZHBvaW50T3ZlcnJpZGRlbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHBhcmFtIHtTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlclByb3BzfSBwcm9wcyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB0b2tlbiBwcm92aWRlclxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM6IFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGRlY29kZUF1dGhUb2tlbihwcm9wcy5hdXRoVG9rZW4pO1xuICAgIHRoaXMuYXV0aFRva2VuID0gZGVjb2RlZFRva2VuLmF1dGhUb2tlbjtcbiAgICB0aGlzLmNvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW4gPSBwcm9wcy5jb250cm9sRW5kcG9pbnQgIT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjb250cm9sRW5kcG9pbnQgPVxuICAgICAgcHJvcHMuY29udHJvbEVuZHBvaW50ID8/IGRlY29kZWRUb2tlbi5jb250cm9sRW5kcG9pbnQ7XG4gICAgaWYgKGNvbnRyb2xFbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdNYWxmb3JtZWQgdG9rZW47IHVuYWJsZSB0byBkZXRlcm1pbmUgY29udHJvbCBlbmRwb2ludC4gIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0b2tlbiB5b3UgYXJlIHVzaW5nLCB5b3UgbWF5IG5lZWQgdG8gc3BlY2lmeSB0aGUgY29udHJvbEVuZHBvaW50IGV4cGxpY2l0bHkuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jYWNoZUVuZHBvaW50T3ZlcnJpZGRlbiA9IHByb3BzLmNhY2hlRW5kcG9pbnQgIT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjYWNoZUVuZHBvaW50ID0gcHJvcHMuY2FjaGVFbmRwb2ludCA/PyBkZWNvZGVkVG9rZW4uY2FjaGVFbmRwb2ludDtcbiAgICBpZiAoY2FjaGVFbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdNYWxmb3JtZWQgdG9rZW47IHVuYWJsZSB0byBkZXRlcm1pbmUgY2FjaGUgZW5kcG9pbnQuICBEZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdG9rZW4geW91IGFyZSB1c2luZywgeW91IG1heSBuZWVkIHRvIHNwZWNpZnkgdGhlIGNhY2hlRW5kcG9pbnQgZXhwbGljaXRseS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudG9rZW5FbmRwb2ludE92ZXJyaWRkZW4gPSBwcm9wcy50b2tlbkVuZHBvaW50ICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgdG9rZW5FbmRwb2ludCA9IHByb3BzLnRva2VuRW5kcG9pbnQgPz8gZGVjb2RlZFRva2VuLnRva2VuRW5kcG9pbnQ7XG4gICAgaWYgKHRva2VuRW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTWFsZm9ybWVkIHRva2VuOyB1bmFibGUgdG8gZGV0ZXJtaW5lIHRva2VuIGVuZHBvaW50LiAgRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRva2VuIHlvdSBhcmUgdXNpbmcsIHlvdSBtYXkgbmVlZCB0byBzcGVjaWZ5IHRoZSB0b2tlbkVuZHBvaW50IGV4cGxpY2l0bHkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnZlY3RvckVuZHBvaW50T3ZlcnJpZGRlbiA9IHByb3BzLnZlY3RvckVuZHBvaW50ICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgdmVjdG9yRW5kcG9pbnQgPSBwcm9wcy52ZWN0b3JFbmRwb2ludCA/PyBkZWNvZGVkVG9rZW4udmVjdG9yRW5kcG9pbnQ7XG4gICAgaWYgKHZlY3RvckVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ01hbGZvcm1lZCB0b2tlbjsgdW5hYmxlIHRvIGRldGVybWluZSB2ZWN0b3IgZW5kcG9pbnQuICBEZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdG9rZW4geW91IGFyZSB1c2luZywgeW91IG1heSBuZWVkIHRvIHNwZWNpZnkgdGhlIHZlY3RvckVuZHBvaW50IGV4cGxpY2l0bHkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2xFbmRwb2ludCA9IGNvbnRyb2xFbmRwb2ludDtcbiAgICB0aGlzLmNhY2hlRW5kcG9pbnQgPSBjYWNoZUVuZHBvaW50O1xuICAgIHRoaXMudG9rZW5FbmRwb2ludCA9IGRlY29kZWRUb2tlbi50b2tlbkVuZHBvaW50IHx8IGNhY2hlRW5kcG9pbnQ7XG4gICAgdGhpcy52ZWN0b3JFbmRwb2ludCA9IHZlY3RvckVuZHBvaW50O1xuICB9XG5cbiAgZ2V0QXV0aFRva2VuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFRva2VuO1xuICB9XG5cbiAgZ2V0Q2FjaGVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNhY2hlRW5kcG9pbnQ7XG4gIH1cblxuICBnZXRDb250cm9sRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sRW5kcG9pbnQ7XG4gIH1cblxuICBnZXRUb2tlbkVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5FbmRwb2ludDtcbiAgfVxuXG4gIGdldFZlY3RvckVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmVjdG9yRW5kcG9pbnQ7XG4gIH1cblxuICBpc0NvbnRyb2xFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbEVuZHBvaW50T3ZlcnJpZGRlbjtcbiAgfVxuXG4gIGlzQ2FjaGVFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVFbmRwb2ludE92ZXJyaWRkZW47XG4gIH1cblxuICBpc1Rva2VuRW5kcG9pbnRPdmVycmlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRva2VuRW5kcG9pbnRPdmVycmlkZGVuO1xuICB9XG5cbiAgaXNWZWN0b3JFbmRwb2ludE92ZXJyaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmVjdG9yRW5kcG9pbnRPdmVycmlkZGVuO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcyBleHRlbmRzIENyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmcm9tIHdoaWNoIHRoZSBhdXRoIHRva2VuIHdpbGwgYmUgcmVhZFxuICAgKi9cbiAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGEgbW9tZW50byBhdXRoIHRva2VuIHN0b3JlZCBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBFbnZNb21lbnRvVG9rZW5Qcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgRW52TW9tZW50b1Rva2VuUHJvdmlkZXIgZXh0ZW5kcyBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlciB7XG4gIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vudk1vbWVudG9Ub2tlblByb3ZpZGVyUHJvcHN9IHByb3BzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRva2VuIHByb3ZpZGVyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogRW52TW9tZW50b1Rva2VuUHJvdmlkZXJQcm9wcykge1xuICAgIGNvbnN0IGF1dGhUb2tlbiA9IHByb2Nlc3MuZW52W3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lXTtcbiAgICBpZiAoIWF1dGhUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAke3Byb3BzLmVudmlyb25tZW50VmFyaWFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhUb2tlbjogYXV0aFRva2VuLFxuICAgICAgY29udHJvbEVuZHBvaW50OiBwcm9wcy5jb250cm9sRW5kcG9pbnQsXG4gICAgICBjYWNoZUVuZHBvaW50OiBwcm9wcy5jYWNoZUVuZHBvaW50LFxuICAgICAgdG9rZW5FbmRwb2ludDogcHJvcHMudG9rZW5FbmRwb2ludCxcbiAgICAgIHZlY3RvckVuZHBvaW50OiBwcm9wcy52ZWN0b3JFbmRwb2ludCxcbiAgICB9KTtcbiAgICB0aGlzLmVudmlyb25tZW50VmFyaWFibGVOYW1lID0gcHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { CacheSelector, DisposableTokenScope } from './token-scope';
|
2
|
+
export * from './token-scopes';
|
3
|
+
export declare function cacheKeyReadWrite(cacheSelector: CacheSelector, key: string): DisposableTokenScope;
|
4
|
+
export declare function cacheKeyPrefixReadWrite(cacheSelector: CacheSelector, keyPrefix: string): DisposableTokenScope;
|
5
|
+
export declare function cacheKeyReadOnly(cacheSelector: CacheSelector, key: string): DisposableTokenScope;
|
6
|
+
export declare function cacheKeyPrefixReadOnly(cacheSelector: CacheSelector, keyPrefix: string): DisposableTokenScope;
|
7
|
+
export declare function cacheKeyWriteOnly(cacheSelector: CacheSelector, key: string): DisposableTokenScope;
|
8
|
+
export declare function cacheKeyPrefixWriteOnly(cacheSelector: CacheSelector, keyPrefix: string): DisposableTokenScope;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
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);
|
20
|
+
function cacheKeyReadWrite(cacheSelector, key) {
|
21
|
+
return {
|
22
|
+
permissions: [{ role: token_scope_1.CacheRole.ReadWrite, cache: cacheSelector, item: key }],
|
23
|
+
};
|
24
|
+
}
|
25
|
+
exports.cacheKeyReadWrite = cacheKeyReadWrite;
|
26
|
+
function cacheKeyPrefixReadWrite(cacheSelector, keyPrefix) {
|
27
|
+
return {
|
28
|
+
permissions: [
|
29
|
+
{
|
30
|
+
role: token_scope_1.CacheRole.ReadWrite,
|
31
|
+
cache: cacheSelector,
|
32
|
+
item: { keyPrefix: keyPrefix },
|
33
|
+
},
|
34
|
+
],
|
35
|
+
};
|
36
|
+
}
|
37
|
+
exports.cacheKeyPrefixReadWrite = cacheKeyPrefixReadWrite;
|
38
|
+
function cacheKeyReadOnly(cacheSelector, key) {
|
39
|
+
return {
|
40
|
+
permissions: [{ role: token_scope_1.CacheRole.ReadOnly, cache: cacheSelector, item: key }],
|
41
|
+
};
|
42
|
+
}
|
43
|
+
exports.cacheKeyReadOnly = cacheKeyReadOnly;
|
44
|
+
function cacheKeyPrefixReadOnly(cacheSelector, keyPrefix) {
|
45
|
+
return {
|
46
|
+
permissions: [
|
47
|
+
{
|
48
|
+
role: token_scope_1.CacheRole.ReadOnly,
|
49
|
+
cache: cacheSelector,
|
50
|
+
item: { keyPrefix: keyPrefix },
|
51
|
+
},
|
52
|
+
],
|
53
|
+
};
|
54
|
+
}
|
55
|
+
exports.cacheKeyPrefixReadOnly = cacheKeyPrefixReadOnly;
|
56
|
+
function cacheKeyWriteOnly(cacheSelector, key) {
|
57
|
+
return {
|
58
|
+
permissions: [{ role: token_scope_1.CacheRole.WriteOnly, cache: cacheSelector, item: key }],
|
59
|
+
};
|
60
|
+
}
|
61
|
+
exports.cacheKeyWriteOnly = cacheKeyWriteOnly;
|
62
|
+
function cacheKeyPrefixWriteOnly(cacheSelector, keyPrefix) {
|
63
|
+
return {
|
64
|
+
permissions: [
|
65
|
+
{
|
66
|
+
role: token_scope_1.CacheRole.WriteOnly,
|
67
|
+
cache: cacheSelector,
|
68
|
+
item: { keyPrefix: keyPrefix },
|
69
|
+
},
|
70
|
+
],
|
71
|
+
};
|
72
|
+
}
|
73
|
+
exports.cacheKeyPrefixWriteOnly = cacheKeyPrefixWriteOnly;
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS10b2tlbi1zY29wZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0aC90b2tlbnMvZGlzcG9zYWJsZS10b2tlbi1zY29wZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkU7QUFFN0UsaURBQStCO0FBRS9CLFNBQWdCLGlCQUFpQixDQUMvQixhQUE0QixFQUM1QixHQUFXO0lBRVgsT0FBTztRQUNMLFdBQVcsRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFFLHVCQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDO0tBQzVFLENBQUM7QUFDSixDQUFDO0FBUEQsOENBT0M7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsYUFBNEIsRUFDNUIsU0FBaUI7SUFFakIsT0FBTztRQUNMLFdBQVcsRUFBRTtZQUNYO2dCQUNFLElBQUksRUFBRSx1QkFBUyxDQUFDLFNBQVM7Z0JBQ3pCLEtBQUssRUFBRSxhQUFhO2dCQUNwQixJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDO2FBQzdCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQWJELDBEQWFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLGFBQTRCLEVBQzVCLEdBQVc7SUFFWCxPQUFPO1FBQ0wsV0FBVyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsdUJBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLENBQUM7S0FDM0UsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxhQUE0QixFQUM1QixTQUFpQjtJQUVqQixPQUFPO1FBQ0wsV0FBVyxFQUFFO1lBQ1g7Z0JBQ0UsSUFBSSxFQUFFLHVCQUFTLENBQUMsUUFBUTtnQkFDeEIsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLElBQUksRUFBRSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUM7YUFDN0I7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBYkQsd0RBYUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsYUFBNEIsRUFDNUIsR0FBVztJQUVYLE9BQU87UUFDTCxXQUFXLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSx1QkFBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQztLQUM1RSxDQUFDO0FBQ0osQ0FBQztBQVBELDhDQU9DO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLGFBQTRCLEVBQzVCLFNBQWlCO0lBRWpCLE9BQU87UUFDTCxXQUFXLEVBQUU7WUFDWDtnQkFDRSxJQUFJLEVBQUUsdUJBQVMsQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQzthQUM3QjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFiRCwwREFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FjaGVSb2xlLCBDYWNoZVNlbGVjdG9yLCBEaXNwb3NhYmxlVG9rZW5TY29wZX0gZnJvbSAnLi90b2tlbi1zY29wZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4tc2NvcGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UmVhZFdyaXRlKFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXk6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbe3JvbGU6IENhY2hlUm9sZS5SZWFkV3JpdGUsIGNhY2hlOiBjYWNoZVNlbGVjdG9yLCBpdGVtOiBrZXl9XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UHJlZml4UmVhZFdyaXRlKFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXlQcmVmaXg6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICB7XG4gICAgICAgIHJvbGU6IENhY2hlUm9sZS5SZWFkV3JpdGUsXG4gICAgICAgIGNhY2hlOiBjYWNoZVNlbGVjdG9yLFxuICAgICAgICBpdGVtOiB7a2V5UHJlZml4OiBrZXlQcmVmaXh9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVLZXlSZWFkT25seShcbiAgY2FjaGVTZWxlY3RvcjogQ2FjaGVTZWxlY3RvcixcbiAga2V5OiBzdHJpbmdcbik6IERpc3Bvc2FibGVUb2tlblNjb3BlIHtcbiAgcmV0dXJuIHtcbiAgICBwZXJtaXNzaW9uczogW3tyb2xlOiBDYWNoZVJvbGUuUmVhZE9ubHksIGNhY2hlOiBjYWNoZVNlbGVjdG9yLCBpdGVtOiBrZXl9XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UHJlZml4UmVhZE9ubHkoXG4gIGNhY2hlU2VsZWN0b3I6IENhY2hlU2VsZWN0b3IsXG4gIGtleVByZWZpeDogc3RyaW5nXG4pOiBEaXNwb3NhYmxlVG9rZW5TY29wZSB7XG4gIHJldHVybiB7XG4gICAgcGVybWlzc2lvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgcm9sZTogQ2FjaGVSb2xlLlJlYWRPbmx5LFxuICAgICAgICBjYWNoZTogY2FjaGVTZWxlY3RvcixcbiAgICAgICAgaXRlbToge2tleVByZWZpeDoga2V5UHJlZml4fSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5V3JpdGVPbmx5KFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXk6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbe3JvbGU6IENhY2hlUm9sZS5Xcml0ZU9ubHksIGNhY2hlOiBjYWNoZVNlbGVjdG9yLCBpdGVtOiBrZXl9XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlS2V5UHJlZml4V3JpdGVPbmx5KFxuICBjYWNoZVNlbGVjdG9yOiBDYWNoZVNlbGVjdG9yLFxuICBrZXlQcmVmaXg6IHN0cmluZ1xuKTogRGlzcG9zYWJsZVRva2VuU2NvcGUge1xuICByZXR1cm4ge1xuICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICB7XG4gICAgICAgIHJvbGU6IENhY2hlUm9sZS5Xcml0ZU9ubHksXG4gICAgICAgIGNhY2hlOiBjYWNoZVNlbGVjdG9yLFxuICAgICAgICBpdGVtOiB7a2V5UHJlZml4OiBrZXlQcmVmaXh9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuIl19
|
@@ -3,15 +3,14 @@ export declare enum CacheRole {
|
|
3
3
|
ReadOnly = "readonly",
|
4
4
|
WriteOnly = "writeonly"
|
5
5
|
}
|
6
|
-
declare
|
7
|
-
|
8
|
-
export declare const
|
9
|
-
export declare const AllTopics: All;
|
6
|
+
export declare const AllCaches: unique symbol;
|
7
|
+
export declare const AllTopics: unique symbol;
|
8
|
+
export declare const AllCacheItems: unique symbol;
|
10
9
|
export interface CacheName {
|
11
10
|
name: string;
|
12
11
|
}
|
13
|
-
export declare function isCacheName(cache: CacheName |
|
14
|
-
export type CacheSelector =
|
12
|
+
export declare function isCacheName(cache: CacheName | typeof AllCaches): cache is CacheName;
|
13
|
+
export type CacheSelector = typeof AllCaches | CacheName | string;
|
15
14
|
export interface CachePermission {
|
16
15
|
role: CacheRole;
|
17
16
|
/**
|
@@ -29,8 +28,8 @@ export declare enum TopicRole {
|
|
29
28
|
export interface TopicName {
|
30
29
|
name: string;
|
31
30
|
}
|
32
|
-
export declare function isTopicName(topic: TopicName |
|
33
|
-
export type TopicSelector =
|
31
|
+
export declare function isTopicName(topic: TopicName | typeof AllTopics): topic is TopicName;
|
32
|
+
export type TopicSelector = typeof AllTopics | TopicName | string;
|
34
33
|
export interface TopicPermission {
|
35
34
|
role: TopicRole;
|
36
35
|
/**
|
@@ -54,4 +53,26 @@ export declare function asPermissionsObject(scope: TokenScope): Permissions;
|
|
54
53
|
export declare abstract class PredefinedScope {
|
55
54
|
}
|
56
55
|
export type TokenScope = typeof AllDataReadWrite | Permissions | PredefinedScope;
|
57
|
-
export {
|
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;
|
@@ -1,17 +1,19 @@
|
|
1
1
|
"use strict";
|
2
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.AllTopics = exports.AllCaches = exports.CacheRole = void 0;
|
3
|
+
exports.asDisposableTokenPermissionsObject = exports.isDisposableTokenPermissionsObject = exports.asDisposableTokenCachePermission = exports.isDisposableTokenCachePermission = exports.isCacheItemKeyPrefix = exports.isCacheItemKey = 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
4
|
var CacheRole;
|
5
5
|
(function (CacheRole) {
|
6
6
|
CacheRole["ReadWrite"] = "readwrite";
|
7
7
|
CacheRole["ReadOnly"] = "readonly";
|
8
8
|
CacheRole["WriteOnly"] = "writeonly";
|
9
9
|
})(CacheRole = exports.CacheRole || (exports.CacheRole = {}));
|
10
|
-
|
11
|
-
|
12
|
-
exports.
|
13
|
-
exports.AllTopics = new All();
|
10
|
+
exports.AllCaches = Symbol();
|
11
|
+
exports.AllTopics = Symbol();
|
12
|
+
exports.AllCacheItems = Symbol();
|
14
13
|
function isCacheName(cache) {
|
14
|
+
if (cache === exports.AllCaches) {
|
15
|
+
return false;
|
16
|
+
}
|
15
17
|
return 'name' in cache;
|
16
18
|
}
|
17
19
|
exports.isCacheName = isCacheName;
|
@@ -33,6 +35,9 @@ var TopicRole;
|
|
33
35
|
TopicRole["PublishOnly"] = "publishonly";
|
34
36
|
})(TopicRole = exports.TopicRole || (exports.TopicRole = {}));
|
35
37
|
function isTopicName(topic) {
|
38
|
+
if (topic === exports.AllTopics) {
|
39
|
+
return false;
|
40
|
+
}
|
36
41
|
return 'name' in topic;
|
37
42
|
}
|
38
43
|
exports.isTopicName = isTopicName;
|
@@ -74,4 +79,54 @@ exports.asPermissionsObject = asPermissionsObject;
|
|
74
79
|
class PredefinedScope {
|
75
80
|
}
|
76
81
|
exports.PredefinedScope = PredefinedScope;
|
77
|
-
|
82
|
+
function isCacheItemKey(cacheItem) {
|
83
|
+
if (cacheItem === exports.AllCacheItems) {
|
84
|
+
return false;
|
85
|
+
}
|
86
|
+
if (typeof cacheItem === 'string') {
|
87
|
+
return true;
|
88
|
+
}
|
89
|
+
return 'key' in cacheItem;
|
90
|
+
}
|
91
|
+
exports.isCacheItemKey = isCacheItemKey;
|
92
|
+
function isCacheItemKeyPrefix(cacheItem) {
|
93
|
+
if (cacheItem === exports.AllCacheItems) {
|
94
|
+
return false;
|
95
|
+
}
|
96
|
+
if (typeof cacheItem === 'string') {
|
97
|
+
return false;
|
98
|
+
}
|
99
|
+
return 'keyPrefix' in cacheItem;
|
100
|
+
}
|
101
|
+
exports.isCacheItemKeyPrefix = isCacheItemKeyPrefix;
|
102
|
+
function isDisposableTokenCachePermission(p) {
|
103
|
+
return 'role' in p && 'cache' in p && 'item' in p && !('topic' in p);
|
104
|
+
}
|
105
|
+
exports.isDisposableTokenCachePermission = isDisposableTokenCachePermission;
|
106
|
+
function asDisposableTokenCachePermission(p) {
|
107
|
+
if (!isDisposableTokenCachePermission(p)) {
|
108
|
+
throw new Error(`permission is not a DisposableTokenCachePermission object: ${JSON.stringify(p)}`);
|
109
|
+
}
|
110
|
+
return p;
|
111
|
+
}
|
112
|
+
exports.asDisposableTokenCachePermission = asDisposableTokenCachePermission;
|
113
|
+
function isDisposableTokenPermissionObject(p) {
|
114
|
+
return isDisposableTokenCachePermission(p);
|
115
|
+
}
|
116
|
+
function isDisposableTokenPermissionsObject(scope) {
|
117
|
+
if (!('permissions' in scope)) {
|
118
|
+
return false;
|
119
|
+
}
|
120
|
+
const permissions = scope.permissions;
|
121
|
+
return permissions.every(p => isDisposableTokenPermissionObject(p));
|
122
|
+
}
|
123
|
+
exports.isDisposableTokenPermissionsObject = isDisposableTokenPermissionsObject;
|
124
|
+
function asDisposableTokenPermissionsObject(scope) {
|
125
|
+
console.log(`AS_DISPOSABLE_TOKEN_PERMISSIONS_OBJECT: ${JSON.stringify(scope)}`);
|
126
|
+
if (!isDisposableTokenPermissionsObject(scope)) {
|
127
|
+
throw new Error(`Token scope is not a DisposableTokenCachePermissions object: ${JSON.stringify(scope)}`);
|
128
|
+
}
|
129
|
+
return scope;
|
130
|
+
}
|
131
|
+
exports.asDisposableTokenPermissionsObject = asDisposableTokenPermissionsObject;
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0aC90b2tlbnMvdG9rZW4tc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLG9DQUF1QixDQUFBO0lBQ3ZCLGtDQUFxQixDQUFBO0lBQ3JCLG9DQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQUVZLFFBQUEsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3JCLFFBQUEsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3JCLFFBQUEsYUFBYSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBS3RDLFNBQWdCLFdBQVcsQ0FDekIsS0FBbUM7SUFFbkMsSUFBSSxLQUFLLEtBQUssaUJBQVMsRUFBRTtRQUN2QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDO0FBQ3pCLENBQUM7QUFQRCxrQ0FPQztBQVdELFNBQWdCLGlCQUFpQixDQUFDLENBQWE7SUFDN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxDQUFhO0lBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUNiLCtDQUErQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ25FLENBQUM7S0FDSDtJQUNELE9BQU8sQ0FBb0IsQ0FBQztBQUM5QixDQUFDO0FBUEQsOENBT0M7QUFFRCxJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsa0RBQXFDLENBQUE7SUFD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cG9ydCBlbnVtIENhY2hlUm9sZSB7XG4gIFJlYWRXcml0ZSA9ICdyZWFkd3JpdGUnLFxuICBSZWFkT25seSA9ICdyZWFkb25seScsXG4gIFdyaXRlT25seSA9ICd3cml0ZW9ubHknLFxufVxuXG5leHBvcnQgY29uc3QgQWxsQ2FjaGVzID0gU3ltYm9sKCk7XG5leHBvcnQgY29uc3QgQWxsVG9waWNzID0gU3ltYm9sKCk7XG5leHBvcnQgY29uc3QgQWxsQ2FjaGVJdGVtcyA9IFN5bWJvbCgpO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlTmFtZSB7XG4gIG5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0NhY2hlTmFtZShcbiAgY2FjaGU6IENhY2hlTmFtZSB8IHR5cGVvZiBBbGxDYWNoZXNcbik6IGNhY2hlIGlzIENhY2hlTmFtZSB7XG4gIGlmIChjYWNoZSA9PT0gQWxsQ2FjaGVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAnbmFtZScgaW4gY2FjaGU7XG59XG5leHBvcnQgdHlwZSBDYWNoZVNlbGVjdG9yID0gdHlwZW9mIEFsbENhY2hlcyB8IENhY2hlTmFtZSB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBDYWNoZVBlcm1pc3Npb24ge1xuICByb2xlOiBDYWNoZVJvbGU7XG4gIC8qKlxuICAgKiBTY29wZSB0aGUgdG9rZW4gcGVybWlzc2lvbnMgdG8gc2VsZWN0IGNhY2hlc1xuICAgKi9cbiAgY2FjaGU6IENhY2hlU2VsZWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhY2hlUGVybWlzc2lvbihwOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiAncm9sZScgaW4gcCAmJiAnY2FjaGUnIGluIHAgJiYgISgndG9waWMnIGluIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNDYWNoZVBlcm1pc3Npb24ocDogUGVybWlzc2lvbik6IENhY2hlUGVybWlzc2lvbiB7XG4gIGlmICghaXNDYWNoZVBlcm1pc3Npb24ocCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGVybWlzc2lvbiBpcyBub3QgYSBDYWNoZVBlcm1pc3Npb24gb2JqZWN0OiAke0pTT04uc3RyaW5naWZ5KHApfWBcbiAgICApO1xuICB9XG4gIHJldHVybiBwIGFzIENhY2hlUGVybWlzc2lvbjtcbn1cblxuZXhwb3J0IGVudW0gVG9waWNSb2xlIHtcbiAgUHVibGlzaFN1YnNjcmliZSA9ICdwdWJsaXNoc3Vic2NyaWJlJyxcbiAgU3Vic2NyaWJlT25seSA9ICdzdWJzY3JpYmVvbmx5JyxcbiAgUHVibGlzaE9ubHkgPSAncHVibGlzaG9ubHknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljTmFtZSB7XG4gIG5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1RvcGljTmFtZShcbiAgdG9waWM6IFRvcGljTmFtZSB8IHR5cGVvZiBBbGxUb3BpY3Ncbik6IHRvcGljIGlzIFRvcGljTmFtZSB7XG4gIGlmICh0b3BpYyA9PT0gQWxsVG9waWNzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAnbmFtZScgaW4gdG9waWM7XG59XG5leHBvcnQgdHlwZSBUb3BpY1NlbGVjdG9yID0gdHlwZW9mIEFsbFRvcGljcyB8IFRvcGljTmFtZSB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBUb3BpY1Blcm1pc3Npb24ge1xuICByb2xlOiBUb3BpY1JvbGU7XG4gIC8qKlxuICAgKiBTY29wZSB0aGUgdG9rZW4gcGVybWlzc2lvbnMgdG8gc2VsZWN0IGNhY2hlc1xuICAgKi9cbiAgY2FjaGU6IENhY2hlU2VsZWN0b3I7XG4gIC8qKlxuICAgKiBTY29wZSB0aGUgdG9rZW4gcGVybWlzc2lvbnMgdG8gc2VsZWN0IHRvcGljc1xuICAgKi9cbiAgdG9waWM6IFRvcGljU2VsZWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RvcGljUGVybWlzc2lvbihwOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiAncm9sZScgaW4gcCAmJiAnY2FjaGUnIGluIHAgJiYgJ3RvcGljJyBpbiBwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNUb3BpY1Blcm1pc3Npb24ocDogUGVybWlzc2lvbik6IFRvcGljUGVybWlzc2lvbiB7XG4gIGlmICghaXNUb3BpY1Blcm1pc3Npb24ocCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGVybWlzc2lvbiBpcyBub3QgYSBUb3BpY1Blcm1pc3Npb24gb2JqZWN0OiAke0pTT04uc3RyaW5naWZ5KHApfWBcbiAgICApO1xuICB9XG4gIHJldHVybiBwIGFzIFRvcGljUGVybWlzc2lvbjtcbn1cblxuZXhwb3J0IHR5cGUgUGVybWlzc2lvbiA9IENhY2hlUGVybWlzc2lvbiB8IFRvcGljUGVybWlzc2lvbjtcblxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9ucyB7XG4gIHBlcm1pc3Npb25zOiBBcnJheTxQZXJtaXNzaW9uPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFsbERhdGFSZWFkV3JpdGU6IFBlcm1pc3Npb25zID0ge1xuICBwZXJtaXNzaW9uczogW1xuICAgIHtyb2xlOiBDYWNoZVJvbGUuUmVhZFdyaXRlLCBjYWNoZTogQWxsQ2FjaGVzfSxcbiAgICB7cm9sZTogVG9waWNSb2xlLlB1Ymxpc2hTdWJzY3JpYmUsIGNhY2hlOiBBbGxDYWNoZXMsIHRvcGljOiBBbGxUb3BpY3N9LFxuICBdLFxufTtcblxuZnVuY3Rpb24gaXNQZXJtaXNzaW9uT2JqZWN0KHA6IFBlcm1pc3Npb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzQ2FjaGVQZXJtaXNzaW9uKHApIHx8IGlzVG9waWNQZXJtaXNzaW9uKHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQZXJtaXNzaW9uc09iamVjdChzY29wZTogVG9rZW5TY29wZSk6IGJvb2xlYW4ge1xuICBpZiAoISgncGVybWlzc2lvbnMnIGluIHNjb3BlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBwZXJtaXNzaW9ucyA9IHNjb3BlLnBlcm1pc3Npb25zO1xuICByZXR1cm4gcGVybWlzc2lvbnMuZXZlcnkocCA9PiBpc1Blcm1pc3Npb25PYmplY3QocCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNQZXJtaXNzaW9uc09iamVjdChzY29wZTogVG9rZW5TY29wZSk6IFBlcm1pc3Npb25zIHtcbiAgaWYgKCFpc1Blcm1pc3Npb25zT2JqZWN0KHNjb3BlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUb2tlbiBzY29wZSBpcyBub3QgYSBQZXJtaXNzaW9ucyBvYmplY3Q6ICR7SlNPTi5zdHJpbmdpZnkoc2NvcGUpfWBcbiAgICApO1xuICB9XG4gIHJldHVybiBzY29wZSBhcyBQZXJtaXNzaW9ucztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByZWRlZmluZWRTY29wZSB7fVxuXG5leHBvcnQgdHlwZSBUb2tlblNjb3BlID1cbiAgfCB0eXBlb2YgQWxsRGF0YVJlYWRXcml0ZVxuICB8IFBlcm1pc3Npb25zXG4gIHwgUHJlZGVmaW5lZFNjb3BlO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlSXRlbUtleSB7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlSXRlbUtleVByZWZpeCB7XG4gIGtleVByZWZpeDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDYWNoZUl0ZW1LZXkoXG4gIGNhY2hlSXRlbTogQ2FjaGVJdGVtU2VsZWN0b3Jcbik6IGNhY2hlSXRlbSBpcyBDYWNoZUl0ZW1LZXkge1xuICBpZiAoY2FjaGVJdGVtID09PSBBbGxDYWNoZUl0ZW1zKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0eXBlb2YgY2FjaGVJdGVtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiAna2V5JyBpbiBjYWNoZUl0ZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhY2hlSXRlbUtleVByZWZpeChcbiAgY2FjaGVJdGVtOiBDYWNoZUl0ZW1TZWxlY3RvclxuKTogY2FjaGVJdGVtIGlzIENhY2hlSXRlbUtleVByZWZpeCB7XG4gIGlmIChjYWNoZUl0ZW0gPT09IEFsbENhY2hlSXRlbXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHR5cGVvZiBjYWNoZUl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAna2V5UHJlZml4JyBpbiBjYWNoZUl0ZW07XG59XG5cbmV4cG9ydCB0eXBlIENhY2hlSXRlbVNlbGVjdG9yID1cbiAgfCB0eXBlb2YgQWxsQ2FjaGVJdGVtc1xuICB8IENhY2hlSXRlbUtleVxuICB8IENhY2hlSXRlbUtleVByZWZpeFxuICB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24gZXh0ZW5kcyBDYWNoZVBlcm1pc3Npb24ge1xuICAvKipcbiAgICogU2NvcGUgdGhlIHRva2VuIHBlcm1pc3Npb25zIHRvIHNlbGVjdCBjYWNoZSBpdGVtc1xuICAgKi9cbiAgaXRlbTogQ2FjaGVJdGVtU2VsZWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbihwOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiAncm9sZScgaW4gcCAmJiAnY2FjaGUnIGluIHAgJiYgJ2l0ZW0nIGluIHAgJiYgISgndG9waWMnIGluIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24oXG4gIHA6IFBlcm1pc3Npb25cbik6IERpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbiB7XG4gIGlmICghaXNEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24ocCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGVybWlzc2lvbiBpcyBub3QgYSBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb24gb2JqZWN0OiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBwXG4gICAgICApfWBcbiAgICApO1xuICB9XG4gIHJldHVybiBwIGFzIERpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb25zIHtcbiAgcGVybWlzc2lvbnM6IEFycmF5PERpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbj47XG59XG5cbmV4cG9ydCB0eXBlIERpc3Bvc2FibGVUb2tlblNjb3BlID1cbiAgfCBQZXJtaXNzaW9uc1xuICB8IFByZWRlZmluZWRTY29wZVxuICB8IERpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbnM7XG5cbmZ1bmN0aW9uIGlzRGlzcG9zYWJsZVRva2VuUGVybWlzc2lvbk9iamVjdChwOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Rpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbihwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGlzcG9zYWJsZVRva2VuUGVybWlzc2lvbnNPYmplY3QoXG4gIHNjb3BlOiBEaXNwb3NhYmxlVG9rZW5TY29wZVxuKTogYm9vbGVhbiB7XG4gIGlmICghKCdwZXJtaXNzaW9ucycgaW4gc2NvcGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHBlcm1pc3Npb25zID0gc2NvcGUucGVybWlzc2lvbnM7XG4gIHJldHVybiBwZXJtaXNzaW9ucy5ldmVyeShwID0+IGlzRGlzcG9zYWJsZVRva2VuUGVybWlzc2lvbk9iamVjdChwKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc0Rpc3Bvc2FibGVUb2tlblBlcm1pc3Npb25zT2JqZWN0KFxuICBzY29wZTogRGlzcG9zYWJsZVRva2VuU2NvcGVcbik6IERpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbnMge1xuICBjb25zb2xlLmxvZyhcbiAgICBgQVNfRElTUE9TQUJMRV9UT0tFTl9QRVJNSVNTSU9OU19PQkpFQ1Q6ICR7SlNPTi5zdHJpbmdpZnkoc2NvcGUpfWBcbiAgKTtcbiAgaWYgKCFpc0Rpc3Bvc2FibGVUb2tlblBlcm1pc3Npb25zT2JqZWN0KHNjb3BlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUb2tlbiBzY29wZSBpcyBub3QgYSBEaXNwb3NhYmxlVG9rZW5DYWNoZVBlcm1pc3Npb25zIG9iamVjdDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgc2NvcGVcbiAgICAgICl9YFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHNjb3BlIGFzIERpc3Bvc2FibGVUb2tlbkNhY2hlUGVybWlzc2lvbnM7XG59XG4iXX0=
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import { ExpiresIn, GenerateAuthToken, RefreshAuthToken } from '../index';
|
2
|
-
import { TokenScope } from '../auth/tokens/token-scope';
|
1
|
+
import { ExpiresIn, GenerateAuthToken, GenerateDisposableToken, RefreshAuthToken } from '../index';
|
2
|
+
import { DisposableTokenScope, TokenScope } from '../auth/tokens/token-scope';
|
3
3
|
export interface IAuthClient {
|
4
4
|
generateAuthToken(scope: TokenScope, expiresIn: ExpiresIn): Promise<GenerateAuthToken.Response>;
|
5
5
|
refreshAuthToken(refreshToken: string): Promise<RefreshAuthToken.Response>;
|
6
|
+
generateDisposableToken(scope: DisposableTokenScope, expiresIn: ExpiresIn): Promise<GenerateDisposableToken.Response>;
|
6
7
|
}
|
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUF1dGhDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50cy9JQXV0aENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwaXJlc0luLFxuICBHZW5lcmF0ZUF1dGhUb2tlbixcbiAgR2VuZXJhdGVEaXNwb3NhYmxlVG9rZW4sXG4gIFJlZnJlc2hBdXRoVG9rZW4sXG59IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7RGlzcG9zYWJsZVRva2VuU2NvcGUsIFRva2VuU2NvcGV9IGZyb20gJy4uL2F1dGgvdG9rZW5zL3Rva2VuLXNjb3BlJztcblxuZXhwb3J0IGludGVyZmFjZSBJQXV0aENsaWVudCB7XG4gIGdlbmVyYXRlQXV0aFRva2VuKFxuICAgIHNjb3BlOiBUb2tlblNjb3BlLFxuICAgIGV4cGlyZXNJbjogRXhwaXJlc0luXG4gICk6IFByb21pc2U8R2VuZXJhdGVBdXRoVG9rZW4uUmVzcG9uc2U+O1xuXG4gIHJlZnJlc2hBdXRoVG9rZW4ocmVmcmVzaFRva2VuOiBzdHJpbmcpOiBQcm9taXNlPFJlZnJlc2hBdXRoVG9rZW4uUmVzcG9uc2U+O1xuXG4gIGdlbmVyYXRlRGlzcG9zYWJsZVRva2VuKFxuICAgIHNjb3BlOiBEaXNwb3NhYmxlVG9rZW5TY29wZSxcbiAgICBleHBpcmVzSW46IEV4cGlyZXNJblxuICApOiBQcm9taXNlPEdlbmVyYXRlRGlzcG9zYWJsZVRva2VuLlJlc3BvbnNlPjtcbn1cbiJdfQ==
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { IVectorIndexControlClient } from '../internal/clients';
|
2
|
+
import { VectorAddItemBatch, VectorDeleteItemBatch, VectorSearch } from '../messages/responses/vector';
|
3
|
+
import { VectorIndexItem } from '../messages/vector-index';
|
4
|
+
export interface SearchOptions {
|
5
|
+
topK?: number;
|
6
|
+
metadataFields?: Array<string>;
|
7
|
+
}
|
8
|
+
export interface IVectorIndexClient extends IVectorIndexControlClient {
|
9
|
+
addItemBatch(indexName: string, items: Array<VectorIndexItem>): Promise<VectorAddItemBatch.Response>;
|
10
|
+
search(indexName: string, queryVector: Array<number>, options?: SearchOptions): Promise<VectorSearch.Response>;
|
11
|
+
deleteItemBatch(indexName: string, ids: Array<string>): Promise<VectorDeleteItemBatch.Response>;
|
12
|
+
}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVZlY3RvckluZGV4Q2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvSVZlY3RvckluZGV4Q2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lWZWN0b3JJbmRleENvbnRyb2xDbGllbnR9IGZyb20gJy4uL2ludGVybmFsL2NsaWVudHMnO1xuaW1wb3J0IHtcbiAgVmVjdG9yQWRkSXRlbUJhdGNoLFxuICBWZWN0b3JEZWxldGVJdGVtQmF0Y2gsXG4gIFZlY3RvclNlYXJjaCxcbn0gZnJvbSAnLi4vbWVzc2FnZXMvcmVzcG9uc2VzL3ZlY3Rvcic7XG5pbXBvcnQge1ZlY3RvckluZGV4SXRlbX0gZnJvbSAnLi4vbWVzc2FnZXMvdmVjdG9yLWluZGV4JztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hPcHRpb25zIHtcbiAgdG9wSz86IG51bWJlcjtcbiAgbWV0YWRhdGFGaWVsZHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3JJbmRleENsaWVudCBleHRlbmRzIElWZWN0b3JJbmRleENvbnRyb2xDbGllbnQge1xuICBhZGRJdGVtQmF0Y2goXG4gICAgaW5kZXhOYW1lOiBzdHJpbmcsXG4gICAgaXRlbXM6IEFycmF5PFZlY3RvckluZGV4SXRlbT5cbiAgKTogUHJvbWlzZTxWZWN0b3JBZGRJdGVtQmF0Y2guUmVzcG9uc2U+O1xuXG4gIHNlYXJjaChcbiAgICBpbmRleE5hbWU6IHN0cmluZyxcbiAgICBxdWVyeVZlY3RvcjogQXJyYXk8bnVtYmVyPixcbiAgICBvcHRpb25zPzogU2VhcmNoT3B0aW9uc1xuICApOiBQcm9taXNlPFZlY3RvclNlYXJjaC5SZXNwb25zZT47XG5cbiAgZGVsZXRlSXRlbUJhdGNoKFxuICAgIGluZGV4TmFtZTogc3RyaW5nLFxuICAgIGlkczogQXJyYXk8c3RyaW5nPlxuICApOiBQcm9taXNlPFZlY3RvckRlbGV0ZUl0ZW1CYXRjaC5SZXNwb25zZT47XG59XG4iXX0=
|
package/dist/src/index.d.ts
CHANGED
@@ -57,13 +57,18 @@ import * as TopicSubscribe from './messages/responses/topic-subscribe';
|
|
57
57
|
import { TopicItem } from './messages/responses/topic-item';
|
58
58
|
import * as GenerateAuthToken from './messages/responses/generate-auth-token';
|
59
59
|
import * as RefreshAuthToken from './messages/responses/refresh-auth-token';
|
60
|
+
import * as GenerateDisposableToken from './messages/responses/generate-disposable-token';
|
61
|
+
export * as vector from './messages/responses/vector';
|
62
|
+
export * from './messages/responses/vector';
|
60
63
|
import { CacheInfo } from './messages/cache-info';
|
61
64
|
import { SubscribeCallOptions, CollectionTtl, SortedSetOrder, ExpiresIn, ExpiresAt, ItemType } from './utils';
|
62
|
-
import { CredentialProvider, StringMomentoTokenProvider, EnvMomentoTokenProvider } from './auth
|
65
|
+
import { CredentialProvider, StringMomentoTokenProvider, EnvMomentoTokenProvider } from './auth';
|
63
66
|
import { MomentoErrorCode, SdkError, AlreadyExistsError, AuthenticationError, CancelledError, FailedPreconditionError, LimitExceededError, InternalServerError, InvalidArgumentError, UnknownServiceError, ServerUnavailableError, TimeoutError, BadRequestError, PermissionError, NotFoundError, UnknownError } from './errors';
|
64
67
|
export { MomentoLogger, MomentoLoggerFactory, } from './config/logging/momento-logger';
|
65
68
|
export { NoopMomentoLogger, NoopMomentoLoggerFactory, } from './config/logging/noop-momento-logger';
|
66
69
|
export { ICacheClient, SetOptions, SetIfNotExistsOptions, IncrementOptions, } from './clients/ICacheClient';
|
67
|
-
export {
|
70
|
+
export { IVectorIndexClient, SearchOptions } from './clients/IVectorIndexClient';
|
71
|
+
export { CacheRole, CachePermission, TopicRole, TopicPermission, Permission, Permissions, AllDataReadWrite, TokenScope, DisposableTokenScope, CacheName, isCacheName, TopicName, isTopicName, CacheSelector, TopicSelector, CacheItemSelector, AllCaches, AllTopics, AllCacheItems, CacheItemKey, CacheItemKeyPrefix, isCacheItemKey, isCacheItemKeyPrefix, } from './auth/tokens/token-scope';
|
68
72
|
export * as TokenScopes from './auth/tokens/token-scopes';
|
69
|
-
export
|
73
|
+
export * as DisposableTokenScopes from './auth/tokens/disposable-token-scopes';
|
74
|
+
export { ExpiresIn, ExpiresAt, CollectionTtl, ItemType, SortedSetOrder, CredentialProvider, StringMomentoTokenProvider, EnvMomentoTokenProvider, CacheGet, CacheListConcatenateBack, CacheListConcatenateFront, CacheListFetch, CacheListLength, CacheListPopBack, CacheListPopFront, CacheListPushBack, CacheListPushFront, CacheListRemoveValue, CacheListRetain, CacheSet, CacheSetIfNotExists, CacheDelete, CacheFlush, CreateCache, DeleteCache, ListCaches, CacheIncrement, CreateSigningKey, ListSigningKeys, RevokeSigningKey, CacheSetFetch, CacheDictionaryFetch, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryGetFields, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheDictionaryIncrement, CacheDictionaryLength, CacheSetAddElements, CacheSetAddElement, CacheSetRemoveElements, CacheSetRemoveElement, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetFetch, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetRemoveElements, CacheSortedSetLength, CacheSortedSetLengthByScore, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, CacheInfo, TopicPublish, TopicSubscribe, TopicItem, SubscribeCallOptions, GenerateAuthToken, RefreshAuthToken, GenerateDisposableToken, MomentoErrorCode, SdkError, AlreadyExistsError, AuthenticationError, CancelledError, FailedPreconditionError, LimitExceededError, InternalServerError, InvalidArgumentError, UnknownServiceError, ServerUnavailableError, TimeoutError, BadRequestError, PermissionError, NotFoundError, UnknownError, };
|