@doctorus/common 0.0.43 → 0.0.45
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/lib/operations/index.d.ts +2 -1
- package/lib/operations/index.js +4 -2
- package/lib/operations/operation.d.ts +11 -6
- package/lib/operations/operation.js +7 -1
- package/lib/operations/predefined.d.ts +108 -108
- package/lib/operations/resource-actions.d.ts +35 -0
- package/lib/operations/resource-actions.js +14 -7
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Resource, ResourceCategory, MEDICAL_RESOURCES, PUBLIC_RESOURCES, CORE_RESOURCES, MEMBERSHIP_RESOURCES, CLINICAL_RESOURCES, DOCUMENT_RESOURCES, SETTINGS_RESOURCES, INTEGRATION_RESOURCES, SCHEDULING_RESOURCES, EXTERNAL_RESOURCES, SYSTEM_RESOURCES, isMedicalResource, isPublicResource, getResourceCategories, getResourcesByCategory, getResourcesByCategories, } from './resources';
|
|
2
2
|
export { Action, ActionAccess, getActionAccess, isReadAction, isWriteAction, getActionsByAccess } from './actions';
|
|
3
3
|
export { Operation, OPERATION, getResourceFromOperation, getActionFromOperation } from './operation';
|
|
4
|
-
export { getResourceActions, getAllResourceActions, getResourceActionsByAccess, getAllResourceActionsByAccess, generateOperationsForResources, } from './resource-actions';
|
|
4
|
+
export { RESOURCE_ACTIONS, getResourceActions, getAllResourceActions, getResourceActionsByAccess, getAllResourceActionsByAccess, getResourceOperationsByAccess, generateOperationsForResources, } from './resource-actions';
|
|
5
|
+
export type { AllowedActionFor } from './resource-actions';
|
|
5
6
|
export * from './labels';
|
package/lib/operations/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.generateOperationsForResources = exports.getAllResourceActionsByAccess = exports.getResourceActionsByAccess = exports.getAllResourceActions = exports.getResourceActions = exports.getActionFromOperation = exports.getResourceFromOperation = exports.Operation = exports.getActionsByAccess = exports.isWriteAction = exports.isReadAction = exports.getActionAccess = exports.ActionAccess = exports.Action = exports.getResourcesByCategories = exports.getResourcesByCategory = exports.getResourceCategories = exports.isPublicResource = exports.isMedicalResource = exports.SYSTEM_RESOURCES = exports.EXTERNAL_RESOURCES = exports.SCHEDULING_RESOURCES = exports.INTEGRATION_RESOURCES = exports.SETTINGS_RESOURCES = exports.DOCUMENT_RESOURCES = exports.CLINICAL_RESOURCES = exports.MEMBERSHIP_RESOURCES = exports.CORE_RESOURCES = exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.ResourceCategory = exports.Resource = void 0;
|
|
17
|
+
exports.generateOperationsForResources = exports.getResourceOperationsByAccess = exports.getAllResourceActionsByAccess = exports.getResourceActionsByAccess = exports.getAllResourceActions = exports.getResourceActions = exports.RESOURCE_ACTIONS = exports.getActionFromOperation = exports.getResourceFromOperation = exports.Operation = exports.getActionsByAccess = exports.isWriteAction = exports.isReadAction = exports.getActionAccess = exports.ActionAccess = exports.Action = exports.getResourcesByCategories = exports.getResourcesByCategory = exports.getResourceCategories = exports.isPublicResource = exports.isMedicalResource = exports.SYSTEM_RESOURCES = exports.EXTERNAL_RESOURCES = exports.SCHEDULING_RESOURCES = exports.INTEGRATION_RESOURCES = exports.SETTINGS_RESOURCES = exports.DOCUMENT_RESOURCES = exports.CLINICAL_RESOURCES = exports.MEMBERSHIP_RESOURCES = exports.CORE_RESOURCES = exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.ResourceCategory = exports.Resource = void 0;
|
|
18
18
|
var resources_1 = require("./resources");
|
|
19
19
|
Object.defineProperty(exports, "Resource", { enumerable: true, get: function () { return resources_1.Resource; } });
|
|
20
20
|
Object.defineProperty(exports, "ResourceCategory", { enumerable: true, get: function () { return resources_1.ResourceCategory; } });
|
|
@@ -46,10 +46,12 @@ Object.defineProperty(exports, "Operation", { enumerable: true, get: function ()
|
|
|
46
46
|
Object.defineProperty(exports, "getResourceFromOperation", { enumerable: true, get: function () { return operation_1.getResourceFromOperation; } });
|
|
47
47
|
Object.defineProperty(exports, "getActionFromOperation", { enumerable: true, get: function () { return operation_1.getActionFromOperation; } });
|
|
48
48
|
var resource_actions_1 = require("./resource-actions");
|
|
49
|
+
Object.defineProperty(exports, "RESOURCE_ACTIONS", { enumerable: true, get: function () { return resource_actions_1.RESOURCE_ACTIONS; } });
|
|
49
50
|
Object.defineProperty(exports, "getResourceActions", { enumerable: true, get: function () { return resource_actions_1.getResourceActions; } });
|
|
50
51
|
Object.defineProperty(exports, "getAllResourceActions", { enumerable: true, get: function () { return resource_actions_1.getAllResourceActions; } });
|
|
51
52
|
Object.defineProperty(exports, "getResourceActionsByAccess", { enumerable: true, get: function () { return resource_actions_1.getResourceActionsByAccess; } });
|
|
52
53
|
Object.defineProperty(exports, "getAllResourceActionsByAccess", { enumerable: true, get: function () { return resource_actions_1.getAllResourceActionsByAccess; } });
|
|
54
|
+
Object.defineProperty(exports, "getResourceOperationsByAccess", { enumerable: true, get: function () { return resource_actions_1.getResourceOperationsByAccess; } });
|
|
53
55
|
Object.defineProperty(exports, "generateOperationsForResources", { enumerable: true, get: function () { return resource_actions_1.generateOperationsForResources; } });
|
|
54
56
|
__exportStar(require("./labels"), exports);
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlcmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQW1CcUI7QUFsQm5CLHFHQUFBLFFBQVEsT0FBQTtBQUNSLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDhHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDJHQUFBLGNBQWMsT0FBQTtBQUNkLGlIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLGtIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGlIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDhHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLGtIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLG1IQUFBLHNCQUFzQixPQUFBO0FBQ3RCLHFIQUFBLHdCQUF3QixPQUFBO0FBRTFCLHFDQUFtSDtBQUExRyxpR0FBQSxNQUFNLE9BQUE7QUFBRSx1R0FBQSxZQUFZLE9BQUE7QUFBRSwwR0FBQSxlQUFlLE9BQUE7QUFBRSx1R0FBQSxZQUFZLE9BQUE7QUFBRSx3R0FBQSxhQUFhLE9BQUE7QUFBRSw2R0FBQSxrQkFBa0IsT0FBQTtBQUMvRix5Q0FBcUc7QUFBNUYsc0dBQUEsU0FBUyxPQUFBO0FBQWEscUhBQUEsd0JBQXdCLE9BQUE7QUFBRSxtSEFBQSxzQkFBc0IsT0FBQTtBQUMvRSx1REFRNEI7QUFQMUIsb0hBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsc0hBQUEsa0JBQWtCLE9BQUE7QUFDbEIseUhBQUEscUJBQXFCLE9BQUE7QUFDckIsOEhBQUEsMEJBQTBCLE9BQUE7QUFDMUIsaUlBQUEsNkJBQTZCLE9BQUE7QUFDN0IsaUlBQUEsNkJBQTZCLE9BQUE7QUFDN0Isa0lBQUEsOEJBQThCLE9BQUE7QUFHaEMsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFJlc291cmNlQ2F0ZWdvcnksXG4gIE1FRElDQUxfUkVTT1VSQ0VTLFxuICBQVUJMSUNfUkVTT1VSQ0VTLFxuICBDT1JFX1JFU09VUkNFUyxcbiAgTUVNQkVSU0hJUF9SRVNPVVJDRVMsXG4gIENMSU5JQ0FMX1JFU09VUkNFUyxcbiAgRE9DVU1FTlRfUkVTT1VSQ0VTLFxuICBTRVRUSU5HU19SRVNPVVJDRVMsXG4gIElOVEVHUkFUSU9OX1JFU09VUkNFUyxcbiAgU0NIRURVTElOR19SRVNPVVJDRVMsXG4gIEVYVEVSTkFMX1JFU09VUkNFUyxcbiAgU1lTVEVNX1JFU09VUkNFUyxcbiAgaXNNZWRpY2FsUmVzb3VyY2UsXG4gIGlzUHVibGljUmVzb3VyY2UsXG4gIGdldFJlc291cmNlQ2F0ZWdvcmllcyxcbiAgZ2V0UmVzb3VyY2VzQnlDYXRlZ29yeSxcbiAgZ2V0UmVzb3VyY2VzQnlDYXRlZ29yaWVzLFxufSBmcm9tICcuL3Jlc291cmNlcyc7XG5leHBvcnQgeyBBY3Rpb24sIEFjdGlvbkFjY2VzcywgZ2V0QWN0aW9uQWNjZXNzLCBpc1JlYWRBY3Rpb24sIGlzV3JpdGVBY3Rpb24sIGdldEFjdGlvbnNCeUFjY2VzcyB9IGZyb20gJy4vYWN0aW9ucyc7XG5leHBvcnQgeyBPcGVyYXRpb24sIE9QRVJBVElPTiwgZ2V0UmVzb3VyY2VGcm9tT3BlcmF0aW9uLCBnZXRBY3Rpb25Gcm9tT3BlcmF0aW9uIH0gZnJvbSAnLi9vcGVyYXRpb24nO1xuZXhwb3J0IHtcbiAgUkVTT1VSQ0VfQUNUSU9OUyxcbiAgZ2V0UmVzb3VyY2VBY3Rpb25zLFxuICBnZXRBbGxSZXNvdXJjZUFjdGlvbnMsXG4gIGdldFJlc291cmNlQWN0aW9uc0J5QWNjZXNzLFxuICBnZXRBbGxSZXNvdXJjZUFjdGlvbnNCeUFjY2VzcyxcbiAgZ2V0UmVzb3VyY2VPcGVyYXRpb25zQnlBY2Nlc3MsXG4gIGdlbmVyYXRlT3BlcmF0aW9uc0ZvclJlc291cmNlcyxcbn0gZnJvbSAnLi9yZXNvdXJjZS1hY3Rpb25zJztcbmV4cG9ydCB0eXBlIHsgQWxsb3dlZEFjdGlvbkZvciB9IGZyb20gJy4vcmVzb3VyY2UtYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xhYmVscyc7XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Action } from './actions';
|
|
2
|
+
import type { AllowedActionFor } from './resource-actions';
|
|
2
3
|
import { Resource } from './resources';
|
|
3
4
|
/**
|
|
4
5
|
* Operation string type in RESOURCE:ACTION format
|
|
@@ -7,16 +8,20 @@ export type OPERATION = `${Resource}:${Action}`;
|
|
|
7
8
|
/**
|
|
8
9
|
* Operation in RESOURCE:ACTION format
|
|
9
10
|
*/
|
|
10
|
-
export declare class Operation {
|
|
11
|
-
readonly resource:
|
|
12
|
-
readonly action:
|
|
11
|
+
export declare class Operation<R extends Resource = Resource> {
|
|
12
|
+
readonly resource: R;
|
|
13
|
+
readonly action: AllowedActionFor<R>;
|
|
14
|
+
/**
|
|
15
|
+
* Create operation with compile-time action restriction based on resource.
|
|
16
|
+
*/
|
|
17
|
+
static create<R extends Resource>(resource: R, action: AllowedActionFor<R>): Operation<R>;
|
|
13
18
|
/**
|
|
14
19
|
* Create operation from string
|
|
15
20
|
* @param operationString - String in RESOURCE:ACTION format
|
|
16
21
|
* @returns Operation instance or null if invalid
|
|
17
22
|
*/
|
|
18
23
|
static fromString(operationString: string): Operation | null;
|
|
19
|
-
constructor(resource:
|
|
24
|
+
constructor(resource: R, action: AllowedActionFor<R>);
|
|
20
25
|
/**
|
|
21
26
|
* Get operation string in RESOURCE:ACTION format
|
|
22
27
|
*/
|
|
@@ -29,8 +34,8 @@ export declare class Operation {
|
|
|
29
34
|
* Convert to JSON representation
|
|
30
35
|
*/
|
|
31
36
|
toJSON(): {
|
|
32
|
-
resource:
|
|
33
|
-
action:
|
|
37
|
+
resource: R;
|
|
38
|
+
action: AllowedActionFor<R>;
|
|
34
39
|
operation: OPERATION;
|
|
35
40
|
};
|
|
36
41
|
}
|
|
@@ -9,6 +9,12 @@ const resources_1 = require("./resources");
|
|
|
9
9
|
* Operation in RESOURCE:ACTION format
|
|
10
10
|
*/
|
|
11
11
|
class Operation {
|
|
12
|
+
/**
|
|
13
|
+
* Create operation with compile-time action restriction based on resource.
|
|
14
|
+
*/
|
|
15
|
+
static create(resource, action) {
|
|
16
|
+
return new Operation(resource, action);
|
|
17
|
+
}
|
|
12
18
|
/**
|
|
13
19
|
* Create operation from string
|
|
14
20
|
* @param operationString - String in RESOURCE:ACTION format
|
|
@@ -104,4 +110,4 @@ function getActionFromOperation(operation) {
|
|
|
104
110
|
}
|
|
105
111
|
return null;
|
|
106
112
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdGQSw0REFjQztBQWFELHdEQWNDO0FBaklELHVDQUFtQztBQUVuQywyQ0FBdUM7QUFPdkM7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFDcEI7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFxQixRQUFXLEVBQUUsTUFBMkI7UUFDeEUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQXVCO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBRXZDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQXVCLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELGtCQUFrQjtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxTQUFTLENBQUMsV0FBdUIsRUFBRSxTQUF1QyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFlBQ2tCLFFBQVcsRUFDWCxNQUEyQjtRQUQzQixhQUFRLEdBQVIsUUFBUSxDQUFHO1FBQ1gsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7SUFDMUMsQ0FBQztJQUVKOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQWUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzFFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUMzQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBL0RELDhCQStEQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxTQUFpQjtJQUN4RCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBRTVCLG9CQUFvQjtJQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUF1QixDQUFDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLFdBQXVCLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxTQUFpQjtJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7SUFFNUIsa0JBQWtCO0lBQ2xCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQW1CLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sU0FBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB0eXBlIHsgQWxsb3dlZEFjdGlvbkZvciB9IGZyb20gJy4vcmVzb3VyY2UtYWN0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2VzJztcblxuLyoqXG4gKiBPcGVyYXRpb24gc3RyaW5nIHR5cGUgaW4gUkVTT1VSQ0U6QUNUSU9OIGZvcm1hdFxuICovXG5leHBvcnQgdHlwZSBPUEVSQVRJT04gPSBgJHtSZXNvdXJjZX06JHtBY3Rpb259YDtcblxuLyoqXG4gKiBPcGVyYXRpb24gaW4gUkVTT1VSQ0U6QUNUSU9OIGZvcm1hdFxuICovXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uPFIgZXh0ZW5kcyBSZXNvdXJjZSA9IFJlc291cmNlPiB7XG4gIC8qKlxuICAgKiBDcmVhdGUgb3BlcmF0aW9uIHdpdGggY29tcGlsZS10aW1lIGFjdGlvbiByZXN0cmljdGlvbiBiYXNlZCBvbiByZXNvdXJjZS5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGU8UiBleHRlbmRzIFJlc291cmNlPihyZXNvdXJjZTogUiwgYWN0aW9uOiBBbGxvd2VkQWN0aW9uRm9yPFI+KTogT3BlcmF0aW9uPFI+IHtcbiAgICByZXR1cm4gbmV3IE9wZXJhdGlvbihyZXNvdXJjZSwgYWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3BlcmF0aW9uIGZyb20gc3RyaW5nXG4gICAqIEBwYXJhbSBvcGVyYXRpb25TdHJpbmcgLSBTdHJpbmcgaW4gUkVTT1VSQ0U6QUNUSU9OIGZvcm1hdFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gaW5zdGFuY2Ugb3IgbnVsbCBpZiBpbnZhbGlkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZyhvcGVyYXRpb25TdHJpbmc6IHN0cmluZyk6IE9wZXJhdGlvbiB8IG51bGwge1xuICAgIGNvbnN0IHBhcnRzID0gb3BlcmF0aW9uU3RyaW5nLnNwbGl0KCc6Jyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgW3Jlc291cmNlU3RyLCBhY3Rpb25TdHJdID0gcGFydHM7XG5cbiAgICAvLyBWYWxpZGF0ZSByZXNvdXJjZVxuICAgIGlmICghT2JqZWN0LnZhbHVlcyhSZXNvdXJjZSkuaW5jbHVkZXMocmVzb3VyY2VTdHIgYXMgUmVzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBhY3Rpb25cbiAgICBpZiAoIU9iamVjdC52YWx1ZXMoQWN0aW9uKS5pbmNsdWRlcyhhY3Rpb25TdHIgYXMgQWN0aW9uKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPcGVyYXRpb24ocmVzb3VyY2VTdHIgYXMgUmVzb3VyY2UsIGFjdGlvblN0ciBhcyBBbGxvd2VkQWN0aW9uRm9yPFJlc291cmNlPik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IFIsXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGlvbjogQWxsb3dlZEFjdGlvbkZvcjxSPixcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBHZXQgb3BlcmF0aW9uIHN0cmluZyBpbiBSRVNPVVJDRTpBQ1RJT04gZm9ybWF0XG4gICAqL1xuICB0b1N0cmluZygpOiBPUEVSQVRJT04ge1xuICAgIHJldHVybiBgJHt0aGlzLnJlc291cmNlfToke3RoaXMuYWN0aW9ufWAgYXMgT1BFUkFUSU9OO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHR3byBvcGVyYXRpb25zIGFyZSBlcXVhbFxuICAgKi9cbiAgZXF1YWxzKG90aGVyOiBPcGVyYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZSA9PT0gb3RoZXIucmVzb3VyY2UgJiYgdGhpcy5hY3Rpb24gPT09IG90aGVyLmFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRvIEpTT04gcmVwcmVzZW50YXRpb25cbiAgICovXG4gIHRvSlNPTigpOiB7IHJlc291cmNlOiBSOyBhY3Rpb246IEFsbG93ZWRBY3Rpb25Gb3I8Uj47IG9wZXJhdGlvbjogT1BFUkFUSU9OIH0ge1xuICAgIHJldHVybiB7XG4gICAgICByZXNvdXJjZTogdGhpcy5yZXNvdXJjZSxcbiAgICAgIGFjdGlvbjogdGhpcy5hY3Rpb24sXG4gICAgICBvcGVyYXRpb246IHRoaXMudG9TdHJpbmcoKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdCBSZXNvdXJjZSBmcm9tIGFuIE9QRVJBVElPTiBzdHJpbmdcbiAqIEBwYXJhbSBvcGVyYXRpb24gLSBPcGVyYXRpb24gc3RyaW5nIGluIFJFU09VUkNFOkFDVElPTiBmb3JtYXRcbiAqIEByZXR1cm5zIFJlc291cmNlIG9yIG51bGwgaWYgaW52YWxpZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogZ2V0UmVzb3VyY2VGcm9tT3BlcmF0aW9uKFwiUEFUSUVOVDpSRVRSSUVWRVwiKSAvLyBSZXR1cm5zOiBSZXNvdXJjZS5QQVRJRU5UXG4gKiBnZXRSZXNvdXJjZUZyb21PcGVyYXRpb24oXCJJTlZBTElEOkFDVElPTlwiKSAvLyBSZXR1cm5zOiBudWxsXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlRnJvbU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZyk6IFJlc291cmNlIHwgbnVsbCB7XG4gIGNvbnN0IHBhcnRzID0gb3BlcmF0aW9uLnNwbGl0KCc6Jyk7XG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IFtyZXNvdXJjZVN0cl0gPSBwYXJ0cztcblxuICAvLyBWYWxpZGF0ZSByZXNvdXJjZVxuICBpZiAoT2JqZWN0LnZhbHVlcyhSZXNvdXJjZSkuaW5jbHVkZXMocmVzb3VyY2VTdHIgYXMgUmVzb3VyY2UpKSB7XG4gICAgcmV0dXJuIHJlc291cmNlU3RyIGFzIFJlc291cmNlO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogRXh0cmFjdCBBY3Rpb24gZnJvbSBhbiBPUEVSQVRJT04gc3RyaW5nXG4gKiBAcGFyYW0gb3BlcmF0aW9uIC0gT3BlcmF0aW9uIHN0cmluZyBpbiBSRVNPVVJDRTpBQ1RJT04gZm9ybWF0XG4gKiBAcmV0dXJucyBBY3Rpb24gb3IgbnVsbCBpZiBpbnZhbGlkXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBnZXRBY3Rpb25Gcm9tT3BlcmF0aW9uKFwiUEFUSUVOVDpSRVRSSUVWRVwiKSAvLyBSZXR1cm5zOiBBY3Rpb24uUkVUUklFVkVcbiAqIGdldEFjdGlvbkZyb21PcGVyYXRpb24oXCJQQVRJRU5UOklOVkFMSURcIikgLy8gUmV0dXJuczogbnVsbFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25Gcm9tT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nKTogQWN0aW9uIHwgbnVsbCB7XG4gIGNvbnN0IHBhcnRzID0gb3BlcmF0aW9uLnNwbGl0KCc6Jyk7XG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IFssIGFjdGlvblN0cl0gPSBwYXJ0cztcblxuICAvLyBWYWxpZGF0ZSBhY3Rpb25cbiAgaWYgKE9iamVjdC52YWx1ZXMoQWN0aW9uKS5pbmNsdWRlcyhhY3Rpb25TdHIgYXMgQWN0aW9uKSkge1xuICAgIHJldHVybiBhY3Rpb25TdHIgYXMgQWN0aW9uO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
|
|
@@ -5,114 +5,114 @@ import { Resource } from './resources';
|
|
|
5
5
|
* Predefined operations aligned with the permission catalog architecture.
|
|
6
6
|
*/
|
|
7
7
|
export declare const Operations: {
|
|
8
|
-
readonly ACCOUNT_VIEW: Operation
|
|
9
|
-
readonly ACCOUNT_UPDATE: Operation
|
|
10
|
-
readonly ACCOUNT_TRANSFER_OWNERSHIP: Operation
|
|
11
|
-
readonly USER_VIEW: Operation
|
|
12
|
-
readonly USER_UPDATE: Operation
|
|
13
|
-
readonly MEMBERSHIP_VIEW: Operation
|
|
14
|
-
readonly MEMBERSHIP_INVITE: Operation
|
|
15
|
-
readonly MEMBERSHIP_UPDATE: Operation
|
|
16
|
-
readonly MEMBERSHIP_REMOVE: Operation
|
|
17
|
-
readonly ROLE_VIEW: Operation
|
|
18
|
-
readonly ROLE_CREATE: Operation
|
|
19
|
-
readonly ROLE_UPDATE: Operation
|
|
20
|
-
readonly ROLE_DELETE: Operation
|
|
21
|
-
readonly PATIENT_VIEW: Operation
|
|
22
|
-
readonly PATIENT_CREATE: Operation
|
|
23
|
-
readonly PATIENT_UPDATE: Operation
|
|
24
|
-
readonly PATIENT_DELETE: Operation
|
|
25
|
-
readonly CONTACT_VIEW: Operation
|
|
26
|
-
readonly CONTACT_CREATE: Operation
|
|
27
|
-
readonly CONTACT_UPDATE: Operation
|
|
28
|
-
readonly CONTACT_DELETE: Operation
|
|
29
|
-
readonly PATIENT_PAYMENT_VIEW: Operation
|
|
30
|
-
readonly PATIENT_PAYMENT_CREATE: Operation
|
|
31
|
-
readonly PATIENT_PAYMENT_UPDATE: Operation
|
|
32
|
-
readonly PATIENT_PAYMENT_DELETE: Operation
|
|
33
|
-
readonly MEDICAL_SERVICE_VIEW: Operation
|
|
34
|
-
readonly MEDICAL_SERVICE_CREATE: Operation
|
|
35
|
-
readonly MEDICAL_SERVICE_UPDATE: Operation
|
|
36
|
-
readonly MEDICAL_SERVICE_DELETE: Operation
|
|
37
|
-
readonly MEDICAL_SERVICE_CHECK_IN: Operation
|
|
38
|
-
readonly MEDICAL_SERVICE_COMPLETE: Operation
|
|
39
|
-
readonly MEDICAL_SERVICE_CANCEL: Operation
|
|
40
|
-
readonly MEDICAL_SERVICE_ASSIGN: Operation
|
|
41
|
-
readonly MEDICAL_SERVICE_NOTE_VIEW: Operation
|
|
42
|
-
readonly MEDICAL_SERVICE_NOTE_CREATE: Operation
|
|
43
|
-
readonly MEDICAL_SERVICE_NOTE_UPDATE: Operation
|
|
44
|
-
readonly MEDICAL_SERVICE_NOTE_DELETE: Operation
|
|
45
|
-
readonly PATIENT_MEDICAL_NOTE_VIEW: Operation
|
|
46
|
-
readonly PATIENT_MEDICAL_NOTE_CREATE: Operation
|
|
47
|
-
readonly PATIENT_MEDICAL_NOTE_UPDATE: Operation
|
|
48
|
-
readonly PATIENT_MEDICAL_NOTE_DELETE: Operation
|
|
49
|
-
readonly MEDICAL_HISTORY_VIEW: Operation
|
|
50
|
-
readonly MEDICAL_HISTORY_CREATE: Operation
|
|
51
|
-
readonly MEDICAL_HISTORY_UPDATE: Operation
|
|
52
|
-
readonly MEDICAL_HISTORY_DELETE: Operation
|
|
53
|
-
readonly OBSERVATION_VIEW: Operation
|
|
54
|
-
readonly OBSERVATION_CREATE: Operation
|
|
55
|
-
readonly OBSERVATION_UPDATE: Operation
|
|
56
|
-
readonly OBSERVATION_DELETE: Operation
|
|
57
|
-
readonly PRESCRIPTION_VIEW: Operation
|
|
58
|
-
readonly PRESCRIPTION_CREATE: Operation
|
|
59
|
-
readonly PRESCRIPTION_UPDATE: Operation
|
|
60
|
-
readonly PRESCRIPTION_DELETE: Operation
|
|
61
|
-
readonly DOCUMENT_LAYOUT_VIEW: Operation
|
|
62
|
-
readonly DOCUMENT_LAYOUT_CREATE: Operation
|
|
63
|
-
readonly DOCUMENT_LAYOUT_UPDATE: Operation
|
|
64
|
-
readonly DOCUMENT_LAYOUT_DELETE: Operation
|
|
65
|
-
readonly DOCUMENT_MODEL_VIEW: Operation
|
|
66
|
-
readonly DOCUMENT_MODEL_CREATE: Operation
|
|
67
|
-
readonly DOCUMENT_MODEL_UPDATE: Operation
|
|
68
|
-
readonly DOCUMENT_MODEL_DELETE: Operation
|
|
69
|
-
readonly GENERATED_DOCUMENT_VIEW: Operation
|
|
70
|
-
readonly GENERATED_DOCUMENT_GENERATE: Operation
|
|
71
|
-
readonly GENERATED_DOCUMENT_DELETE: Operation
|
|
72
|
-
readonly UPLOAD_DOCUMENT_VIEW: Operation
|
|
73
|
-
readonly UPLOAD_DOCUMENT_CREATE: Operation
|
|
74
|
-
readonly UPLOAD_DOCUMENT_DELETE: Operation
|
|
75
|
-
readonly GENERAL_SETTINGS_VIEW: Operation
|
|
76
|
-
readonly GENERAL_SETTINGS_UPDATE: Operation
|
|
77
|
-
readonly PREFERENCES_VIEW: Operation
|
|
78
|
-
readonly PREFERENCES_UPDATE: Operation
|
|
79
|
-
readonly MEASURE_MODEL_VIEW: Operation
|
|
80
|
-
readonly MEASURE_MODEL_CREATE: Operation
|
|
81
|
-
readonly MEASURE_MODEL_UPDATE: Operation
|
|
82
|
-
readonly MEASURE_MODEL_DELETE: Operation
|
|
83
|
-
readonly CALCULATED_MEASURE_MODEL_VIEW: Operation
|
|
84
|
-
readonly CALCULATED_MEASURE_MODEL_CREATE: Operation
|
|
85
|
-
readonly CALCULATED_MEASURE_MODEL_UPDATE: Operation
|
|
86
|
-
readonly CALCULATED_MEASURE_MODEL_DELETE: Operation
|
|
87
|
-
readonly TASK_TYPE_VIEW: Operation
|
|
88
|
-
readonly TASK_TYPE_CREATE: Operation
|
|
89
|
-
readonly TASK_TYPE_UPDATE: Operation
|
|
90
|
-
readonly TASK_TYPE_DELETE: Operation
|
|
91
|
-
readonly LOCATION_VIEW: Operation
|
|
92
|
-
readonly LOCATION_CREATE: Operation
|
|
93
|
-
readonly LOCATION_UPDATE: Operation
|
|
94
|
-
readonly LOCATION_DELETE: Operation
|
|
95
|
-
readonly MEDICAL_HISTORY_MODEL_VIEW: Operation
|
|
96
|
-
readonly MEDICAL_HISTORY_MODEL_CREATE: Operation
|
|
97
|
-
readonly MEDICAL_HISTORY_MODEL_UPDATE: Operation
|
|
98
|
-
readonly MEDICAL_HISTORY_MODEL_DELETE: Operation
|
|
99
|
-
readonly PRESCRIPTION_MODEL_VIEW: Operation
|
|
100
|
-
readonly PRESCRIPTION_MODEL_CREATE: Operation
|
|
101
|
-
readonly PRESCRIPTION_MODEL_UPDATE: Operation
|
|
102
|
-
readonly PRESCRIPTION_MODEL_DELETE: Operation
|
|
103
|
-
readonly PATIENT_PROPERTY_MODEL_VIEW: Operation
|
|
104
|
-
readonly PATIENT_PROPERTY_MODEL_CREATE: Operation
|
|
105
|
-
readonly PATIENT_PROPERTY_MODEL_UPDATE: Operation
|
|
106
|
-
readonly PATIENT_PROPERTY_MODEL_DELETE: Operation
|
|
107
|
-
readonly CALENDAR_TOKEN_VIEW: Operation
|
|
108
|
-
readonly CALENDAR_TOKEN_ROTATE: Operation
|
|
109
|
-
readonly CALENDAR_SETTINGS_VIEW: Operation
|
|
110
|
-
readonly CALENDAR_SETTINGS_UPDATE: Operation
|
|
111
|
-
readonly CALENDAR_SYNC_ENABLE: Operation
|
|
112
|
-
readonly CALENDAR_SYNC_DISABLE: Operation
|
|
113
|
-
readonly CALENDAR_SYNC_VIEW: Operation
|
|
114
|
-
readonly AVAILABLE_SLOTS_VIEW: Operation
|
|
115
|
-
readonly MEDICATION_SEARCH_VIEW: Operation
|
|
8
|
+
readonly ACCOUNT_VIEW: Operation<Resource.ACCOUNT>;
|
|
9
|
+
readonly ACCOUNT_UPDATE: Operation<Resource.ACCOUNT>;
|
|
10
|
+
readonly ACCOUNT_TRANSFER_OWNERSHIP: Operation<Resource.ACCOUNT>;
|
|
11
|
+
readonly USER_VIEW: Operation<Resource.USER>;
|
|
12
|
+
readonly USER_UPDATE: Operation<Resource.USER>;
|
|
13
|
+
readonly MEMBERSHIP_VIEW: Operation<Resource.MEMBERSHIP>;
|
|
14
|
+
readonly MEMBERSHIP_INVITE: Operation<Resource.MEMBERSHIP>;
|
|
15
|
+
readonly MEMBERSHIP_UPDATE: Operation<Resource.MEMBERSHIP>;
|
|
16
|
+
readonly MEMBERSHIP_REMOVE: Operation<Resource.MEMBERSHIP>;
|
|
17
|
+
readonly ROLE_VIEW: Operation<Resource.ROLE>;
|
|
18
|
+
readonly ROLE_CREATE: Operation<Resource.ROLE>;
|
|
19
|
+
readonly ROLE_UPDATE: Operation<Resource.ROLE>;
|
|
20
|
+
readonly ROLE_DELETE: Operation<Resource.ROLE>;
|
|
21
|
+
readonly PATIENT_VIEW: Operation<Resource.PATIENT>;
|
|
22
|
+
readonly PATIENT_CREATE: Operation<Resource.PATIENT>;
|
|
23
|
+
readonly PATIENT_UPDATE: Operation<Resource.PATIENT>;
|
|
24
|
+
readonly PATIENT_DELETE: Operation<Resource.PATIENT>;
|
|
25
|
+
readonly CONTACT_VIEW: Operation<Resource.CONTACT>;
|
|
26
|
+
readonly CONTACT_CREATE: Operation<Resource.CONTACT>;
|
|
27
|
+
readonly CONTACT_UPDATE: Operation<Resource.CONTACT>;
|
|
28
|
+
readonly CONTACT_DELETE: Operation<Resource.CONTACT>;
|
|
29
|
+
readonly PATIENT_PAYMENT_VIEW: Operation<Resource.PATIENT_PAYMENT>;
|
|
30
|
+
readonly PATIENT_PAYMENT_CREATE: Operation<Resource.PATIENT_PAYMENT>;
|
|
31
|
+
readonly PATIENT_PAYMENT_UPDATE: Operation<Resource.PATIENT_PAYMENT>;
|
|
32
|
+
readonly PATIENT_PAYMENT_DELETE: Operation<Resource.PATIENT_PAYMENT>;
|
|
33
|
+
readonly MEDICAL_SERVICE_VIEW: Operation<Resource.MEDICAL_SERVICE>;
|
|
34
|
+
readonly MEDICAL_SERVICE_CREATE: Operation<Resource.MEDICAL_SERVICE>;
|
|
35
|
+
readonly MEDICAL_SERVICE_UPDATE: Operation<Resource.MEDICAL_SERVICE>;
|
|
36
|
+
readonly MEDICAL_SERVICE_DELETE: Operation<Resource.MEDICAL_SERVICE>;
|
|
37
|
+
readonly MEDICAL_SERVICE_CHECK_IN: Operation<Resource.MEDICAL_SERVICE>;
|
|
38
|
+
readonly MEDICAL_SERVICE_COMPLETE: Operation<Resource.MEDICAL_SERVICE>;
|
|
39
|
+
readonly MEDICAL_SERVICE_CANCEL: Operation<Resource.MEDICAL_SERVICE>;
|
|
40
|
+
readonly MEDICAL_SERVICE_ASSIGN: Operation<Resource.MEDICAL_SERVICE>;
|
|
41
|
+
readonly MEDICAL_SERVICE_NOTE_VIEW: Operation<Resource.MEDICAL_SERVICE_NOTE>;
|
|
42
|
+
readonly MEDICAL_SERVICE_NOTE_CREATE: Operation<Resource.MEDICAL_SERVICE_NOTE>;
|
|
43
|
+
readonly MEDICAL_SERVICE_NOTE_UPDATE: Operation<Resource.MEDICAL_SERVICE_NOTE>;
|
|
44
|
+
readonly MEDICAL_SERVICE_NOTE_DELETE: Operation<Resource.MEDICAL_SERVICE_NOTE>;
|
|
45
|
+
readonly PATIENT_MEDICAL_NOTE_VIEW: Operation<Resource.PATIENT_MEDICAL_NOTE>;
|
|
46
|
+
readonly PATIENT_MEDICAL_NOTE_CREATE: Operation<Resource.PATIENT_MEDICAL_NOTE>;
|
|
47
|
+
readonly PATIENT_MEDICAL_NOTE_UPDATE: Operation<Resource.PATIENT_MEDICAL_NOTE>;
|
|
48
|
+
readonly PATIENT_MEDICAL_NOTE_DELETE: Operation<Resource.PATIENT_MEDICAL_NOTE>;
|
|
49
|
+
readonly MEDICAL_HISTORY_VIEW: Operation<Resource.MEDICAL_HISTORY>;
|
|
50
|
+
readonly MEDICAL_HISTORY_CREATE: Operation<Resource.MEDICAL_HISTORY>;
|
|
51
|
+
readonly MEDICAL_HISTORY_UPDATE: Operation<Resource.MEDICAL_HISTORY>;
|
|
52
|
+
readonly MEDICAL_HISTORY_DELETE: Operation<Resource.MEDICAL_HISTORY>;
|
|
53
|
+
readonly OBSERVATION_VIEW: Operation<Resource.OBSERVATION>;
|
|
54
|
+
readonly OBSERVATION_CREATE: Operation<Resource.OBSERVATION>;
|
|
55
|
+
readonly OBSERVATION_UPDATE: Operation<Resource.OBSERVATION>;
|
|
56
|
+
readonly OBSERVATION_DELETE: Operation<Resource.OBSERVATION>;
|
|
57
|
+
readonly PRESCRIPTION_VIEW: Operation<Resource.PRESCRIPTION>;
|
|
58
|
+
readonly PRESCRIPTION_CREATE: Operation<Resource.PRESCRIPTION>;
|
|
59
|
+
readonly PRESCRIPTION_UPDATE: Operation<Resource.PRESCRIPTION>;
|
|
60
|
+
readonly PRESCRIPTION_DELETE: Operation<Resource.PRESCRIPTION>;
|
|
61
|
+
readonly DOCUMENT_LAYOUT_VIEW: Operation<Resource.DOCUMENT_LAYOUT>;
|
|
62
|
+
readonly DOCUMENT_LAYOUT_CREATE: Operation<Resource.DOCUMENT_LAYOUT>;
|
|
63
|
+
readonly DOCUMENT_LAYOUT_UPDATE: Operation<Resource.DOCUMENT_LAYOUT>;
|
|
64
|
+
readonly DOCUMENT_LAYOUT_DELETE: Operation<Resource.DOCUMENT_LAYOUT>;
|
|
65
|
+
readonly DOCUMENT_MODEL_VIEW: Operation<Resource.DOCUMENT_MODEL>;
|
|
66
|
+
readonly DOCUMENT_MODEL_CREATE: Operation<Resource.DOCUMENT_MODEL>;
|
|
67
|
+
readonly DOCUMENT_MODEL_UPDATE: Operation<Resource.DOCUMENT_MODEL>;
|
|
68
|
+
readonly DOCUMENT_MODEL_DELETE: Operation<Resource.DOCUMENT_MODEL>;
|
|
69
|
+
readonly GENERATED_DOCUMENT_VIEW: Operation<Resource.GENERATED_DOCUMENT>;
|
|
70
|
+
readonly GENERATED_DOCUMENT_GENERATE: Operation<Resource.GENERATED_DOCUMENT>;
|
|
71
|
+
readonly GENERATED_DOCUMENT_DELETE: Operation<Resource.GENERATED_DOCUMENT>;
|
|
72
|
+
readonly UPLOAD_DOCUMENT_VIEW: Operation<Resource.UPLOAD_DOCUMENT>;
|
|
73
|
+
readonly UPLOAD_DOCUMENT_CREATE: Operation<Resource.UPLOAD_DOCUMENT>;
|
|
74
|
+
readonly UPLOAD_DOCUMENT_DELETE: Operation<Resource.UPLOAD_DOCUMENT>;
|
|
75
|
+
readonly GENERAL_SETTINGS_VIEW: Operation<Resource.GENERAL_SETTINGS>;
|
|
76
|
+
readonly GENERAL_SETTINGS_UPDATE: Operation<Resource.GENERAL_SETTINGS>;
|
|
77
|
+
readonly PREFERENCES_VIEW: Operation<Resource.PREFERENCES>;
|
|
78
|
+
readonly PREFERENCES_UPDATE: Operation<Resource.PREFERENCES>;
|
|
79
|
+
readonly MEASURE_MODEL_VIEW: Operation<Resource.MEASURE_MODEL>;
|
|
80
|
+
readonly MEASURE_MODEL_CREATE: Operation<Resource.MEASURE_MODEL>;
|
|
81
|
+
readonly MEASURE_MODEL_UPDATE: Operation<Resource.MEASURE_MODEL>;
|
|
82
|
+
readonly MEASURE_MODEL_DELETE: Operation<Resource.MEASURE_MODEL>;
|
|
83
|
+
readonly CALCULATED_MEASURE_MODEL_VIEW: Operation<Resource.CALCULATED_MEASURE_MODEL>;
|
|
84
|
+
readonly CALCULATED_MEASURE_MODEL_CREATE: Operation<Resource.CALCULATED_MEASURE_MODEL>;
|
|
85
|
+
readonly CALCULATED_MEASURE_MODEL_UPDATE: Operation<Resource.CALCULATED_MEASURE_MODEL>;
|
|
86
|
+
readonly CALCULATED_MEASURE_MODEL_DELETE: Operation<Resource.CALCULATED_MEASURE_MODEL>;
|
|
87
|
+
readonly TASK_TYPE_VIEW: Operation<Resource.TASK_TYPE>;
|
|
88
|
+
readonly TASK_TYPE_CREATE: Operation<Resource.TASK_TYPE>;
|
|
89
|
+
readonly TASK_TYPE_UPDATE: Operation<Resource.TASK_TYPE>;
|
|
90
|
+
readonly TASK_TYPE_DELETE: Operation<Resource.TASK_TYPE>;
|
|
91
|
+
readonly LOCATION_VIEW: Operation<Resource.LOCATION>;
|
|
92
|
+
readonly LOCATION_CREATE: Operation<Resource.LOCATION>;
|
|
93
|
+
readonly LOCATION_UPDATE: Operation<Resource.LOCATION>;
|
|
94
|
+
readonly LOCATION_DELETE: Operation<Resource.LOCATION>;
|
|
95
|
+
readonly MEDICAL_HISTORY_MODEL_VIEW: Operation<Resource.MEDICAL_HISTORY_MODEL>;
|
|
96
|
+
readonly MEDICAL_HISTORY_MODEL_CREATE: Operation<Resource.MEDICAL_HISTORY_MODEL>;
|
|
97
|
+
readonly MEDICAL_HISTORY_MODEL_UPDATE: Operation<Resource.MEDICAL_HISTORY_MODEL>;
|
|
98
|
+
readonly MEDICAL_HISTORY_MODEL_DELETE: Operation<Resource.MEDICAL_HISTORY_MODEL>;
|
|
99
|
+
readonly PRESCRIPTION_MODEL_VIEW: Operation<Resource.PRESCRIPTION_MODEL>;
|
|
100
|
+
readonly PRESCRIPTION_MODEL_CREATE: Operation<Resource.PRESCRIPTION_MODEL>;
|
|
101
|
+
readonly PRESCRIPTION_MODEL_UPDATE: Operation<Resource.PRESCRIPTION_MODEL>;
|
|
102
|
+
readonly PRESCRIPTION_MODEL_DELETE: Operation<Resource.PRESCRIPTION_MODEL>;
|
|
103
|
+
readonly PATIENT_PROPERTY_MODEL_VIEW: Operation<Resource.PATIENT_PROPERTY_MODEL>;
|
|
104
|
+
readonly PATIENT_PROPERTY_MODEL_CREATE: Operation<Resource.PATIENT_PROPERTY_MODEL>;
|
|
105
|
+
readonly PATIENT_PROPERTY_MODEL_UPDATE: Operation<Resource.PATIENT_PROPERTY_MODEL>;
|
|
106
|
+
readonly PATIENT_PROPERTY_MODEL_DELETE: Operation<Resource.PATIENT_PROPERTY_MODEL>;
|
|
107
|
+
readonly CALENDAR_TOKEN_VIEW: Operation<Resource.CALENDAR_TOKEN>;
|
|
108
|
+
readonly CALENDAR_TOKEN_ROTATE: Operation<Resource.CALENDAR_TOKEN>;
|
|
109
|
+
readonly CALENDAR_SETTINGS_VIEW: Operation<Resource.CALENDAR_SETTINGS>;
|
|
110
|
+
readonly CALENDAR_SETTINGS_UPDATE: Operation<Resource.CALENDAR_SETTINGS>;
|
|
111
|
+
readonly CALENDAR_SYNC_ENABLE: Operation<Resource.CALENDAR_SYNC>;
|
|
112
|
+
readonly CALENDAR_SYNC_DISABLE: Operation<Resource.CALENDAR_SYNC>;
|
|
113
|
+
readonly CALENDAR_SYNC_VIEW: Operation<Resource.CALENDAR_SYNC>;
|
|
114
|
+
readonly AVAILABLE_SLOTS_VIEW: Operation<Resource.AVAILABLE_SLOTS>;
|
|
115
|
+
readonly MEDICATION_SEARCH_VIEW: Operation<Resource.MEDICATION_SEARCH>;
|
|
116
116
|
};
|
|
117
117
|
export declare function getAllOperations(): Operation[];
|
|
118
118
|
export declare function getOperationsByResource(resource: Resource): Operation[];
|
|
@@ -1,10 +1,45 @@
|
|
|
1
1
|
import { Action, ActionAccess } from './actions';
|
|
2
2
|
import { Operation } from './operation';
|
|
3
3
|
import { Resource } from './resources';
|
|
4
|
+
export declare const RESOURCE_ACTIONS: {
|
|
5
|
+
readonly ACCOUNT: readonly [Action.VIEW, Action.UPDATE, Action.TRANSFER_OWNERSHIP];
|
|
6
|
+
readonly CALCULATED_MEASURE_MODEL: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
7
|
+
readonly CALENDAR_SETTINGS: readonly [Action.VIEW, Action.UPDATE];
|
|
8
|
+
readonly CALENDAR_SYNC: readonly [Action.ENABLE, Action.DISABLE, Action.VIEW];
|
|
9
|
+
readonly CALENDAR_TOKEN: readonly [Action.VIEW, Action.ROTATE];
|
|
10
|
+
readonly CONTACT: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
11
|
+
readonly DOCUMENT_LAYOUT: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
12
|
+
readonly DOCUMENT_MODEL: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
13
|
+
readonly GENERAL_SETTINGS: readonly [Action.VIEW, Action.UPDATE];
|
|
14
|
+
readonly GENERATED_DOCUMENT: readonly [Action.VIEW, Action.GENERATE, Action.DELETE];
|
|
15
|
+
readonly LOCATION: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
16
|
+
readonly MEASURE_MODEL: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
17
|
+
readonly MEDICATION_SEARCH: readonly [Action.VIEW];
|
|
18
|
+
readonly MEDICAL_HISTORY: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
19
|
+
readonly MEDICAL_HISTORY_MODEL: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
20
|
+
readonly MEDICAL_SERVICE: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE, Action.CHECK_IN, Action.COMPLETE, Action.CANCEL, Action.ASSIGN];
|
|
21
|
+
readonly MEDICAL_SERVICE_NOTE: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
22
|
+
readonly MEMBERSHIP: readonly [Action.VIEW, Action.INVITE, Action.UPDATE, Action.REMOVE];
|
|
23
|
+
readonly OBSERVATION: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
24
|
+
readonly PATIENT: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
25
|
+
readonly PATIENT_MEDICAL_NOTE: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
26
|
+
readonly PATIENT_PAYMENT: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
27
|
+
readonly PATIENT_PROPERTY_MODEL: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
28
|
+
readonly PREFERENCES: readonly [Action.VIEW, Action.UPDATE];
|
|
29
|
+
readonly PRESCRIPTION: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
30
|
+
readonly PRESCRIPTION_MODEL: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
31
|
+
readonly ROLE: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
32
|
+
readonly TASK_TYPE: readonly [Action.VIEW, Action.CREATE, Action.UPDATE, Action.DELETE];
|
|
33
|
+
readonly UPLOAD_DOCUMENT: readonly [Action.VIEW, Action.CREATE, Action.DELETE];
|
|
34
|
+
readonly USER: readonly [Action.VIEW, Action.UPDATE];
|
|
35
|
+
readonly AVAILABLE_SLOTS: readonly [Action.VIEW];
|
|
36
|
+
};
|
|
37
|
+
export type AllowedActionFor<R extends Resource> = (typeof RESOURCE_ACTIONS)[R][number];
|
|
4
38
|
export declare function getResourceActions(resource: Resource): Action[];
|
|
5
39
|
export declare function getAllResourceActions(): Readonly<Record<Resource, Action[]>>;
|
|
6
40
|
export declare function getResourceActionsByAccess(resource: Resource, access: ActionAccess): Action[];
|
|
7
41
|
export declare function getAllResourceActionsByAccess(access: ActionAccess): Readonly<Record<Resource, Action[]>>;
|
|
42
|
+
export declare function getResourceOperationsByAccess(resource: Resource, access: ActionAccess): Operation[];
|
|
8
43
|
/**
|
|
9
44
|
* Generate valid operations for a list of resources based on a provided action list.
|
|
10
45
|
*
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RESOURCE_ACTIONS = void 0;
|
|
3
4
|
exports.getResourceActions = getResourceActions;
|
|
4
5
|
exports.getAllResourceActions = getAllResourceActions;
|
|
5
6
|
exports.getResourceActionsByAccess = getResourceActionsByAccess;
|
|
6
7
|
exports.getAllResourceActionsByAccess = getAllResourceActionsByAccess;
|
|
8
|
+
exports.getResourceOperationsByAccess = getResourceOperationsByAccess;
|
|
7
9
|
exports.generateOperationsForResources = generateOperationsForResources;
|
|
8
10
|
const actions_1 = require("./actions");
|
|
9
11
|
const operation_1 = require("./operation");
|
|
10
12
|
const resources_1 = require("./resources");
|
|
11
|
-
|
|
13
|
+
exports.RESOURCE_ACTIONS = {
|
|
12
14
|
[resources_1.Resource.ACCOUNT]: [actions_1.Action.VIEW, actions_1.Action.UPDATE, actions_1.Action.TRANSFER_OWNERSHIP],
|
|
13
15
|
[resources_1.Resource.CALCULATED_MEASURE_MODEL]: [actions_1.Action.VIEW, actions_1.Action.CREATE, actions_1.Action.UPDATE, actions_1.Action.DELETE],
|
|
14
16
|
[resources_1.Resource.CALENDAR_SETTINGS]: [actions_1.Action.VIEW, actions_1.Action.UPDATE],
|
|
@@ -51,21 +53,26 @@ const RESOURCE_ACTIONS = {
|
|
|
51
53
|
[resources_1.Resource.AVAILABLE_SLOTS]: [actions_1.Action.VIEW],
|
|
52
54
|
};
|
|
53
55
|
function getResourceActions(resource) {
|
|
54
|
-
return [...RESOURCE_ACTIONS[resource]];
|
|
56
|
+
return [...exports.RESOURCE_ACTIONS[resource]];
|
|
55
57
|
}
|
|
56
58
|
function getAllResourceActions() {
|
|
57
|
-
return RESOURCE_ACTIONS;
|
|
59
|
+
return exports.RESOURCE_ACTIONS;
|
|
58
60
|
}
|
|
59
61
|
function getResourceActionsByAccess(resource, access) {
|
|
60
|
-
return RESOURCE_ACTIONS[resource].filter((action) => (0, actions_1.getActionAccess)(action) === access);
|
|
62
|
+
return exports.RESOURCE_ACTIONS[resource].filter((action) => (0, actions_1.getActionAccess)(action) === access);
|
|
61
63
|
}
|
|
62
64
|
function getAllResourceActionsByAccess(access) {
|
|
63
65
|
const filtered = {};
|
|
64
66
|
Object.values(resources_1.Resource).forEach((resource) => {
|
|
65
|
-
filtered[resource] = RESOURCE_ACTIONS[resource].filter((action) => (0, actions_1.getActionAccess)(action) === access);
|
|
67
|
+
filtered[resource] = exports.RESOURCE_ACTIONS[resource].filter((action) => (0, actions_1.getActionAccess)(action) === access);
|
|
66
68
|
});
|
|
67
69
|
return filtered;
|
|
68
70
|
}
|
|
71
|
+
function getResourceOperationsByAccess(resource, access) {
|
|
72
|
+
return exports.RESOURCE_ACTIONS[resource]
|
|
73
|
+
.filter((action) => (0, actions_1.getActionAccess)(action) === access)
|
|
74
|
+
.map((action) => new operation_1.Operation(resource, action));
|
|
75
|
+
}
|
|
69
76
|
/**
|
|
70
77
|
* Generate valid operations for a list of resources based on a provided action list.
|
|
71
78
|
*
|
|
@@ -75,7 +82,7 @@ function generateOperationsForResources(resources, actions) {
|
|
|
75
82
|
const operations = [];
|
|
76
83
|
const seen = new Set();
|
|
77
84
|
resources.forEach((resource) => {
|
|
78
|
-
const allowedActions = RESOURCE_ACTIONS[resource];
|
|
85
|
+
const allowedActions = exports.RESOURCE_ACTIONS[resource];
|
|
79
86
|
actions.forEach((action) => {
|
|
80
87
|
if (!allowedActions.includes(action)) {
|
|
81
88
|
return;
|
|
@@ -90,4 +97,4 @@ function generateOperationsForResources(resources, actions) {
|
|
|
90
97
|
});
|
|
91
98
|
return operations;
|
|
92
99
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zL3Jlc291cmNlLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQ0EsZ0RBRUM7QUFFRCxzREFFQztBQUVELGdFQUVDO0FBRUQsc0VBUUM7QUFPRCx3RUF1QkM7QUFqR0QsdUNBQWtFO0FBQ2xFLDJDQUF3QztBQUN4QywyQ0FBdUM7QUFFdkMsTUFBTSxnQkFBZ0IsR0FBK0I7SUFDbkQsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUMzRSxDQUFDLG9CQUFRLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLGdCQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9GLENBQUMsb0JBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUQsQ0FBQyxvQkFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxJQUFJLENBQUM7SUFDdEUsQ0FBQyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkQsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUUs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O0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLFNBQXFCLEVBQUUsT0FBaUI7SUFDckYsTUFBTSxVQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRS9CLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3QixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDckMsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIEFjdGlvbkFjY2VzcywgZ2V0QWN0aW9uQWNjZXNzIH0gZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG5jb25zdCBSRVNPVVJDRV9BQ1RJT05TOiBSZWNvcmQ8UmVzb3VyY2UsIEFjdGlvbltdPiA9IHtcbiAgW1Jlc291cmNlLkFDQ09VTlRdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5UUkFOU0ZFUl9PV05FUlNISVBdLFxuICBbUmVzb3VyY2UuQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLkNBTEVOREFSX1NFVFRJTkdTXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uVVBEQVRFXSxcbiAgW1Jlc291cmNlLkNBTEVOREFSX1NZTkNdOiBbQWN0aW9uLkVOQUJMRSwgQWN0aW9uLkRJU0FCTEUsIEFjdGlvbi5WSUVXXSxcbiAgW1Jlc291cmNlLkNBTEVOREFSX1RPS0VOXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uUk9UQVRFXSxcbiAgW1Jlc291cmNlLkNPTlRBQ1RdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuRE9DVU1FTlRfTEFZT1VUXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLkRPQ1VNRU5UX01PREVMXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLkdFTkVSQUxfU0VUVElOR1NdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5VUERBVEVdLFxuICBbUmVzb3VyY2UuR0VORVJBVEVEX0RPQ1VNRU5UXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uR0VORVJBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuTE9DQVRJT05dOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuTUVBU1VSRV9NT0RFTF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5NRURJQ0FUSU9OX1NFQVJDSF06IFtBY3Rpb24uVklFV10sXG4gIFtSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlldOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZX01PREVMXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV06IFtcbiAgICBBY3Rpb24uVklFVyxcbiAgICBBY3Rpb24uQ1JFQVRFLFxuICAgIEFjdGlvbi5VUERBVEUsXG4gICAgQWN0aW9uLkRFTEVURSxcbiAgICBBY3Rpb24uQ0hFQ0tfSU4sXG4gICAgQWN0aW9uLkNPTVBMRVRFLFxuICAgIEFjdGlvbi5DQU5DRUwsXG4gICAgQWN0aW9uLkFTU0lHTixcbiAgXSxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9OT1RFXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLk1FTUJFUlNISVBdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5JTlZJVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5SRU1PVkVdLFxuICBbUmVzb3VyY2UuT0JTRVJWQVRJT05dOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuUEFUSUVOVF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfTk9URV06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5QQVRJRU5UX1BBWU1FTlRdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9QUk9QRVJUWV9NT0RFTF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5QUkVGRVJFTkNFU106IFtBY3Rpb24uVklFVywgQWN0aW9uLlVQREFURV0sXG4gIFtSZXNvdXJjZS5QUkVTQ1JJUFRJT05dOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuUFJFU0NSSVBUSU9OX01PREVMXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLlJPTEVdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuVEFTS19UWVBFXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLlVQTE9BRF9ET0NVTUVOVF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5VU0VSXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uVVBEQVRFXSxcbiAgW1Jlc291cmNlLkFWQUlMQUJMRV9TTE9UU106IFtBY3Rpb24uVklFV10sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VBY3Rpb25zKHJlc291cmNlOiBSZXNvdXJjZSk6IEFjdGlvbltdIHtcbiAgcmV0dXJuIFsuLi5SRVNPVVJDRV9BQ1RJT05TW3Jlc291cmNlXV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxSZXNvdXJjZUFjdGlvbnMoKTogUmVhZG9ubHk8UmVjb3JkPFJlc291cmNlLCBBY3Rpb25bXT4+IHtcbiAgcmV0dXJuIFJFU09VUkNFX0FDVElPTlM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUFjdGlvbnNCeUFjY2VzcyhyZXNvdXJjZTogUmVzb3VyY2UsIGFjY2VzczogQWN0aW9uQWNjZXNzKTogQWN0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VfQUNUSU9OU1tyZXNvdXJjZV0uZmlsdGVyKChhY3Rpb24pID0+IGdldEFjdGlvbkFjY2VzcyhhY3Rpb24pID09PSBhY2Nlc3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsUmVzb3VyY2VBY3Rpb25zQnlBY2Nlc3MoYWNjZXNzOiBBY3Rpb25BY2Nlc3MpOiBSZWFkb25seTxSZWNvcmQ8UmVzb3VyY2UsIEFjdGlvbltdPj4ge1xuICBjb25zdCBmaWx0ZXJlZCA9IHt9IGFzIFJlY29yZDxSZXNvdXJjZSwgQWN0aW9uW10+O1xuXG4gIChPYmplY3QudmFsdWVzKFJlc291cmNlKSBhcyBSZXNvdXJjZVtdKS5mb3JFYWNoKChyZXNvdXJjZSkgPT4ge1xuICAgIGZpbHRlcmVkW3Jlc291cmNlXSA9IFJFU09VUkNFX0FDVElPTlNbcmVzb3VyY2VdLmZpbHRlcigoYWN0aW9uKSA9PiBnZXRBY3Rpb25BY2Nlc3MoYWN0aW9uKSA9PT0gYWNjZXNzKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIHZhbGlkIG9wZXJhdGlvbnMgZm9yIGEgbGlzdCBvZiByZXNvdXJjZXMgYmFzZWQgb24gYSBwcm92aWRlZCBhY3Rpb24gbGlzdC5cbiAqXG4gKiBPbmx5IGFjdGlvbnMgYWxsb3dlZCBmb3IgZWFjaCByZXNvdXJjZSBhcmUga2VwdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlT3BlcmF0aW9uc0ZvclJlc291cmNlcyhyZXNvdXJjZXM6IFJlc291cmNlW10sIGFjdGlvbnM6IEFjdGlvbltdKTogT3BlcmF0aW9uW10ge1xuICBjb25zdCBvcGVyYXRpb25zOiBPcGVyYXRpb25bXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcmVzb3VyY2VzLmZvckVhY2goKHJlc291cmNlKSA9PiB7XG4gICAgY29uc3QgYWxsb3dlZEFjdGlvbnMgPSBSRVNPVVJDRV9BQ1RJT05TW3Jlc291cmNlXTtcblxuICAgIGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICBpZiAoIWFsbG93ZWRBY3Rpb25zLmluY2x1ZGVzKGFjdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXkgPSBgJHtyZXNvdXJjZX06JHthY3Rpb259YDtcbiAgICAgIGlmIChzZWVuLmhhcyhrZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Vlbi5hZGQoa2V5KTtcbiAgICAgIG9wZXJhdGlvbnMucHVzaChuZXcgT3BlcmF0aW9uKHJlc291cmNlLCBhY3Rpb24pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG9wZXJhdGlvbnM7XG59XG4iXX0=
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zL3Jlc291cmNlLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaURBLGdEQUVDO0FBRUQsc0RBRUM7QUFFRCxnRUFFQztBQUVELHNFQVFDO0FBRUQsc0VBSUM7QUFPRCx3RUF1QkM7QUF6R0QsdUNBQWtFO0FBQ2xFLDJDQUF3QztBQUN4QywyQ0FBdUM7QUFFMUIsUUFBQSxnQkFBZ0IsR0FBRztJQUM5QixDQUFDLG9CQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQzNFLENBQUMsb0JBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDL0YsQ0FBQyxvQkFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRCxDQUFDLG9CQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE9BQU8sRUFBRSxnQkFBTSxDQUFDLElBQUksQ0FBQztJQUN0RSxDQUFDLG9CQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUN2RCxDQUFDLG9CQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUM5RSxDQUFDLG9CQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0RixDQUFDLG9CQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUNyRixDQUFDLG9CQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGdCQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3pELENBQUMsb0JBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxRQUFRLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUUsQ0FBQyxvQkFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDL0UsQ0FBQyxvQkFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDcEYsQ0FBQyxvQkFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDLG9CQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0RixDQUFDLG9CQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLGdCQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVGLENBQUMsb0JBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUMxQixnQkFBTSxDQUFDLElBQUk7UUFDWCxnQkFBTSxDQUFDLE1BQU07UUFDYixnQkFBTSxDQUFDLE1BQU07UUFDYixnQkFBTSxDQUFDLE1BQU07UUFDYixnQkFBTSxDQUFDLFFBQVE7UUFDZixnQkFBTSxDQUFDLFFBQVE7UUFDZixnQkFBTSxDQUFDLE1BQU07UUFDYixnQkFBTSxDQUFDLE1BQU07S0FDZDtJQUNELENBQUMsb0JBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDM0YsQ0FBQyxvQkFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDakYsQ0FBQyxvQkFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDbEYsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUUsQ0FBQyxvQkFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzRixDQUFDLG9CQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLElBQUksRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0RixDQUFDLG9CQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQzdGLENBQUMsb0JBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGdCQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3BELENBQUMsb0JBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGdCQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25GLENBQUMsb0JBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDekYsQ0FBQyxvQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDM0UsQ0FBQyxvQkFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDaEYsQ0FBQyxvQkFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkUsQ0FBQyxvQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDN0MsQ0FBQyxvQkFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUM7Q0FDYSxDQUFDO0FBSXpELFNBQWdCLGtCQUFrQixDQUFDLFFBQWtCO0lBQ25ELE9BQU8sQ0FBQyxHQUFHLHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPLHdCQUFtRSxDQUFDO0FBQzdFLENBQUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxRQUFrQixFQUFFLE1BQW9CO0lBQ2pGLE9BQU8sd0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHlCQUFlLEVBQUMsTUFBTSxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELFNBQWdCLDZCQUE2QixDQUFDLE1BQW9CO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLEVBQWdDLENBQUM7SUFFakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBUSxDQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQzNELFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUEseUJBQWUsRUFBQyxNQUFNLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQztJQUN6RyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FBQyxRQUFrQixFQUFFLE1BQW9CO0lBQ3BGLE9BQU8sd0JBQWdCLENBQUMsUUFBUSxDQUFDO1NBQzlCLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBZSxFQUFDLE1BQU0sQ0FBQyxLQUFLLE1BQU0sQ0FBQztTQUN0RCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUkscUJBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLFNBQXFCLEVBQUUsT0FBaUI7SUFDckYsTUFBTSxVQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRS9CLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3QixNQUFNLGNBQWMsR0FBRyx3QkFBZ0IsQ0FBQyxRQUFRLENBQXNCLENBQUM7UUFFdkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQkFBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25BY2Nlc3MsIGdldEFjdGlvbkFjY2VzcyB9IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2VzJztcblxuZXhwb3J0IGNvbnN0IFJFU09VUkNFX0FDVElPTlMgPSB7XG4gIFtSZXNvdXJjZS5BQ0NPVU5UXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uVFJBTlNGRVJfT1dORVJTSElQXSxcbiAgW1Jlc291cmNlLkNBTENVTEFURURfTUVBU1VSRV9NT0RFTF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5DQUxFTkRBUl9TRVRUSU5HU106IFtBY3Rpb24uVklFVywgQWN0aW9uLlVQREFURV0sXG4gIFtSZXNvdXJjZS5DQUxFTkRBUl9TWU5DXTogW0FjdGlvbi5FTkFCTEUsIEFjdGlvbi5ESVNBQkxFLCBBY3Rpb24uVklFV10sXG4gIFtSZXNvdXJjZS5DQUxFTkRBUl9UT0tFTl06IFtBY3Rpb24uVklFVywgQWN0aW9uLlJPVEFURV0sXG4gIFtSZXNvdXJjZS5DT05UQUNUXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLkRPQ1VNRU5UX0xBWU9VVF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5ET0NVTUVOVF9NT0RFTF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5HRU5FUkFMX1NFVFRJTkdTXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uVVBEQVRFXSxcbiAgW1Jlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkdFTkVSQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLkxPQ0FUSU9OXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLk1FQVNVUkVfTU9ERUxdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuTUVESUNBVElPTl9TRUFSQ0hdOiBbQWN0aW9uLlZJRVddLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VdOiBbXG4gICAgQWN0aW9uLlZJRVcsXG4gICAgQWN0aW9uLkNSRUFURSxcbiAgICBBY3Rpb24uVVBEQVRFLFxuICAgIEFjdGlvbi5ERUxFVEUsXG4gICAgQWN0aW9uLkNIRUNLX0lOLFxuICAgIEFjdGlvbi5DT01QTEVURSxcbiAgICBBY3Rpb24uQ0FOQ0VMLFxuICAgIEFjdGlvbi5BU1NJR04sXG4gIF0sXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URV06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5NRU1CRVJTSElQXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uSU5WSVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uUkVNT1ZFXSxcbiAgW1Jlc291cmNlLk9CU0VSVkFUSU9OXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLlBBVElFTlRdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX05PVEVdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9QQVlNRU5UXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLlBBVElFTlRfUFJPUEVSVFlfTU9ERUxdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5VUERBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuUFJFRkVSRU5DRVNdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5VUERBVEVdLFxuICBbUmVzb3VyY2UuUFJFU0NSSVBUSU9OXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLlBSRVNDUklQVElPTl9NT0RFTF06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5ST0xFXTogW0FjdGlvbi5WSUVXLCBBY3Rpb24uQ1JFQVRFLCBBY3Rpb24uVVBEQVRFLCBBY3Rpb24uREVMRVRFXSxcbiAgW1Jlc291cmNlLlRBU0tfVFlQRV06IFtBY3Rpb24uVklFVywgQWN0aW9uLkNSRUFURSwgQWN0aW9uLlVQREFURSwgQWN0aW9uLkRFTEVURV0sXG4gIFtSZXNvdXJjZS5VUExPQURfRE9DVU1FTlRdOiBbQWN0aW9uLlZJRVcsIEFjdGlvbi5DUkVBVEUsIEFjdGlvbi5ERUxFVEVdLFxuICBbUmVzb3VyY2UuVVNFUl06IFtBY3Rpb24uVklFVywgQWN0aW9uLlVQREFURV0sXG4gIFtSZXNvdXJjZS5BVkFJTEFCTEVfU0xPVFNdOiBbQWN0aW9uLlZJRVddLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPFJlc291cmNlLCByZWFkb25seSBBY3Rpb25bXT47XG5cbmV4cG9ydCB0eXBlIEFsbG93ZWRBY3Rpb25Gb3I8UiBleHRlbmRzIFJlc291cmNlPiA9ICh0eXBlb2YgUkVTT1VSQ0VfQUNUSU9OUylbUl1bbnVtYmVyXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlQWN0aW9ucyhyZXNvdXJjZTogUmVzb3VyY2UpOiBBY3Rpb25bXSB7XG4gIHJldHVybiBbLi4uUkVTT1VSQ0VfQUNUSU9OU1tyZXNvdXJjZV1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsUmVzb3VyY2VBY3Rpb25zKCk6IFJlYWRvbmx5PFJlY29yZDxSZXNvdXJjZSwgQWN0aW9uW10+PiB7XG4gIHJldHVybiBSRVNPVVJDRV9BQ1RJT05TIGFzIHVua25vd24gYXMgUmVhZG9ubHk8UmVjb3JkPFJlc291cmNlLCBBY3Rpb25bXT4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VBY3Rpb25zQnlBY2Nlc3MocmVzb3VyY2U6IFJlc291cmNlLCBhY2Nlc3M6IEFjdGlvbkFjY2Vzcyk6IEFjdGlvbltdIHtcbiAgcmV0dXJuIFJFU09VUkNFX0FDVElPTlNbcmVzb3VyY2VdLmZpbHRlcigoYWN0aW9uKSA9PiBnZXRBY3Rpb25BY2Nlc3MoYWN0aW9uKSA9PT0gYWNjZXNzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFJlc291cmNlQWN0aW9uc0J5QWNjZXNzKGFjY2VzczogQWN0aW9uQWNjZXNzKTogUmVhZG9ubHk8UmVjb3JkPFJlc291cmNlLCBBY3Rpb25bXT4+IHtcbiAgY29uc3QgZmlsdGVyZWQgPSB7fSBhcyBSZWNvcmQ8UmVzb3VyY2UsIEFjdGlvbltdPjtcblxuICAoT2JqZWN0LnZhbHVlcyhSZXNvdXJjZSkgYXMgUmVzb3VyY2VbXSkuZm9yRWFjaCgocmVzb3VyY2UpID0+IHtcbiAgICBmaWx0ZXJlZFtyZXNvdXJjZV0gPSBSRVNPVVJDRV9BQ1RJT05TW3Jlc291cmNlXS5maWx0ZXIoKGFjdGlvbikgPT4gZ2V0QWN0aW9uQWNjZXNzKGFjdGlvbikgPT09IGFjY2Vzcyk7XG4gIH0pO1xuXG4gIHJldHVybiBmaWx0ZXJlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlT3BlcmF0aW9uc0J5QWNjZXNzKHJlc291cmNlOiBSZXNvdXJjZSwgYWNjZXNzOiBBY3Rpb25BY2Nlc3MpOiBPcGVyYXRpb25bXSB7XG4gIHJldHVybiBSRVNPVVJDRV9BQ1RJT05TW3Jlc291cmNlXVxuICAgIC5maWx0ZXIoKGFjdGlvbikgPT4gZ2V0QWN0aW9uQWNjZXNzKGFjdGlvbikgPT09IGFjY2VzcylcbiAgICAubWFwKChhY3Rpb24pID0+IG5ldyBPcGVyYXRpb24ocmVzb3VyY2UsIGFjdGlvbikpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIHZhbGlkIG9wZXJhdGlvbnMgZm9yIGEgbGlzdCBvZiByZXNvdXJjZXMgYmFzZWQgb24gYSBwcm92aWRlZCBhY3Rpb24gbGlzdC5cbiAqXG4gKiBPbmx5IGFjdGlvbnMgYWxsb3dlZCBmb3IgZWFjaCByZXNvdXJjZSBhcmUga2VwdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlT3BlcmF0aW9uc0ZvclJlc291cmNlcyhyZXNvdXJjZXM6IFJlc291cmNlW10sIGFjdGlvbnM6IEFjdGlvbltdKTogT3BlcmF0aW9uW10ge1xuICBjb25zdCBvcGVyYXRpb25zOiBPcGVyYXRpb25bXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcmVzb3VyY2VzLmZvckVhY2goKHJlc291cmNlKSA9PiB7XG4gICAgY29uc3QgYWxsb3dlZEFjdGlvbnMgPSBSRVNPVVJDRV9BQ1RJT05TW3Jlc291cmNlXSBhcyByZWFkb25seSBBY3Rpb25bXTtcblxuICAgIGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICBpZiAoIWFsbG93ZWRBY3Rpb25zLmluY2x1ZGVzKGFjdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXkgPSBgJHtyZXNvdXJjZX06JHthY3Rpb259YDtcbiAgICAgIGlmIChzZWVuLmhhcyhrZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Vlbi5hZGQoa2V5KTtcbiAgICAgIG9wZXJhdGlvbnMucHVzaChuZXcgT3BlcmF0aW9uKHJlc291cmNlLCBhY3Rpb24pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG9wZXJhdGlvbnM7XG59XG4iXX0=
|