@doctorus/common 0.0.10 → 0.0.12
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/actions.d.ts +2 -0
- package/lib/operations/actions.js +4 -1
- package/lib/operations/index.d.ts +1 -0
- package/lib/operations/index.js +16 -1
- package/lib/operations/labels.d.ts +4 -4
- package/lib/operations/labels.js +12 -19
- package/lib/operations/resources.d.ts +13 -0
- package/lib/operations/resources.js +74 -66
- package/package.json +1 -1
|
@@ -21,6 +21,8 @@ export declare enum Action {
|
|
|
21
21
|
REJECT = "REJECT",
|
|
22
22
|
SIGN = "SIGN",
|
|
23
23
|
VERIFY = "VERIFY",
|
|
24
|
+
RECOVER = "RECOVER",
|
|
25
|
+
DISABLE = "DISABLE",
|
|
24
26
|
SET_MEDICAL_SERVICE_STATUS = "SET_MEDICAL_SERVICE_STATUS",
|
|
25
27
|
SET_MEDICAL_SERVICE_FEES = "SET_MEDICAL_SERVICE_FEES",
|
|
26
28
|
UPDATE_STATUS = "UPDATE_STATUS",
|
|
@@ -29,6 +29,9 @@ var Action;
|
|
|
29
29
|
Action["REJECT"] = "REJECT";
|
|
30
30
|
Action["SIGN"] = "SIGN";
|
|
31
31
|
Action["VERIFY"] = "VERIFY";
|
|
32
|
+
// Medical Account specific
|
|
33
|
+
Action["RECOVER"] = "RECOVER";
|
|
34
|
+
Action["DISABLE"] = "DISABLE";
|
|
32
35
|
// Medical service specific
|
|
33
36
|
Action["SET_MEDICAL_SERVICE_STATUS"] = "SET_MEDICAL_SERVICE_STATUS";
|
|
34
37
|
Action["SET_MEDICAL_SERVICE_FEES"] = "SET_MEDICAL_SERVICE_FEES";
|
|
@@ -51,4 +54,4 @@ var Action;
|
|
|
51
54
|
Action["CONFIGURE"] = "CONFIGURE";
|
|
52
55
|
Action["AUDIT"] = "AUDIT";
|
|
53
56
|
})(Action || (exports.Action = Action = {}));
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLE1Bd0RYO0FBeERELFdBQVksTUFBTTtJQUNoQixrQkFBa0I7SUFDbEIsMkJBQWlCLENBQUE7SUFDakIsdUJBQWEsQ0FBQTtJQUNiLDJCQUFpQixDQUFBO0lBQ2pCLDJCQUFpQixDQUFBO0lBQ2pCLHFCQUFXLENBQUE7SUFDWCx1QkFBYSxDQUFBO0lBRWIsa0JBQWtCO0lBQ2xCLDJCQUFpQixDQUFBO0lBQ2pCLHVCQUFhLENBQUE7SUFDYiwyQkFBaUIsQ0FBQTtJQUVqQixpQkFBaUI7SUFDakIseUJBQWUsQ0FBQTtJQUNmLDJCQUFpQixDQUFBO0lBRWpCLG1CQUFtQjtJQUNuQixpQ0FBdUIsQ0FBQTtJQUN2QiwrQkFBcUIsQ0FBQTtJQUNyQiwrQkFBcUIsQ0FBQTtJQUNyQiwyQkFBaUIsQ0FBQTtJQUNqQiw2QkFBbUIsQ0FBQTtJQUNuQiwyQkFBaUIsQ0FBQTtJQUNqQix1QkFBYSxDQUFBO0lBQ2IsMkJBQWlCLENBQUE7SUFFakIsMkJBQTJCO0lBQzNCLDZCQUFtQixDQUFBO0lBQ25CLDZCQUFtQixDQUFBO0lBRW5CLDJCQUEyQjtJQUMzQixtRUFBeUQsQ0FBQTtJQUN6RCwrREFBcUQsQ0FBQTtJQUVyRCxtQkFBbUI7SUFDbkIseUNBQStCLENBQUE7SUFDL0IseUNBQStCLENBQUE7SUFDL0IscURBQTJDLENBQUE7SUFDM0MsMkRBQWlELENBQUE7SUFFakQsa0JBQWtCO0lBQ2xCLDJCQUFpQixDQUFBO0lBQ2pCLDJCQUFpQixDQUFBO0lBQ2pCLDZCQUFtQixDQUFBO0lBQ25CLDZCQUFtQixDQUFBO0lBQ25CLHlCQUFlLENBQUE7SUFDZiwrQkFBcUIsQ0FBQTtJQUNyQiwyQkFBaUIsQ0FBQTtJQUVqQixvQkFBb0I7SUFDcEIseUJBQWUsQ0FBQTtJQUNmLDJCQUFpQixDQUFBO0lBQ2pCLGlDQUF1QixDQUFBO0lBQ3ZCLHlCQUFlLENBQUE7QUFDakIsQ0FBQyxFQXhEVyxNQUFNLHNCQUFOLE1BQU0sUUF3RGpCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBY3Rpb24gdHlwZXMgZm9yIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGVudW0gQWN0aW9uIHtcbiAgLy8gQ1JVRCBvcGVyYXRpb25zXG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIFBVVCA9ICdQVVQnLFxuICBMSVNUID0gJ0xJU1QnLFxuXG4gIC8vIEdlbmVyYWwgYWN0aW9uc1xuICBNQU5BR0UgPSAnTUFOQUdFJyxcbiAgVklFVyA9ICdWSUVXJyxcbiAgU0VBUkNIID0gJ1NFQVJDSCcsXG5cbiAgLy8gQWNjZXNzIGNvbnRyb2xcbiAgR1JBTlQgPSAnR1JBTlQnLFxuICBSRVZPS0UgPSAnUkVWT0tFJyxcblxuICAvLyBNZWRpY2FsIHNwZWNpZmljXG4gIFBSRVNDUklCRSA9ICdQUkVTQ1JJQkUnLFxuICBESUFHTk9TRSA9ICdESUFHTk9TRScsXG4gIFNDSEVEVUxFID0gJ1NDSEVEVUxFJyxcbiAgQ0FOQ0VMID0gJ0NBTkNFTCcsXG4gIEFQUFJPVkUgPSAnQVBQUk9WRScsXG4gIFJFSkVDVCA9ICdSRUpFQ1QnLFxuICBTSUdOID0gJ1NJR04nLFxuICBWRVJJRlkgPSAnVkVSSUZZJyxcblxuICAvLyBNZWRpY2FsIEFjY291bnQgc3BlY2lmaWNcbiAgUkVDT1ZFUiA9ICdSRUNPVkVSJyxcbiAgRElTQUJMRSA9ICdESVNBQkxFJyxcblxuICAvLyBNZWRpY2FsIHNlcnZpY2Ugc3BlY2lmaWNcbiAgU0VUX01FRElDQUxfU0VSVklDRV9TVEFUVVMgPSAnU0VUX01FRElDQUxfU0VSVklDRV9TVEFUVVMnLFxuICBTRVRfTUVESUNBTF9TRVJWSUNFX0ZFRVMgPSAnU0VUX01FRElDQUxfU0VSVklDRV9GRUVTJyxcblxuICAvLyBQYXRpZW50IHNwZWNpZmljXG4gIFVQREFURV9TVEFUVVMgPSAnVVBEQVRFX1NUQVRVUycsXG4gIFZJRVdfUEFUSUVOVFMgPSAnVklFV19QQVRJRU5UUycsXG4gIFBVVF9QQVRJRU5UX1BBWU1FTlQgPSAnUFVUX1BBVElFTlRfUEFZTUVOVCcsXG4gIERFTEVURV9QQVRJRU5UX1BBWU1FTlQgPSAnREVMRVRFX1BBVElFTlRfUEFZTUVOVCcsXG5cbiAgLy8gRGF0YSBvcGVyYXRpb25zXG4gIEVYUE9SVCA9ICdFWFBPUlQnLFxuICBJTVBPUlQgPSAnSU1QT1JUJyxcbiAgQVJDSElWRSA9ICdBUkNISVZFJyxcbiAgUkVTVE9SRSA9ICdSRVNUT1JFJyxcbiAgU0hBUkUgPSAnU0hBUkUnLFxuICBET1dOTE9BRCA9ICdET1dOTE9BRCcsXG4gIFVQTE9BRCA9ICdVUExPQUQnLFxuXG4gIC8vIFN5c3RlbSBvcGVyYXRpb25zXG4gIExPR0lOID0gJ0xPR0lOJyxcbiAgTE9HT1VUID0gJ0xPR09VVCcsXG4gIENPTkZJR1VSRSA9ICdDT05GSUdVUkUnLFxuICBBVURJVCA9ICdBVURJVCcsXG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Resource, MEDICAL_RESOURCES, PUBLIC_RESOURCES, isMedicalResource, isPublicResource } from './resources';
|
|
2
2
|
export { Action } from './actions';
|
|
3
3
|
export { Operation, OPERATION, getResourceFromOperation, getActionFromOperation } from './operation';
|
|
4
|
+
export * from './labels';
|
|
4
5
|
export { Operations, getAllOperations, getOperationsByResource, getOperationsByAction } from './predefined';
|
package/lib/operations/index.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
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
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
17
|
exports.getOperationsByAction = exports.getOperationsByResource = exports.getAllOperations = exports.Operations = exports.getActionFromOperation = exports.getResourceFromOperation = exports.Operation = exports.Action = exports.isPublicResource = exports.isMedicalResource = exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.Resource = void 0;
|
|
4
18
|
var resources_1 = require("./resources");
|
|
@@ -13,9 +27,10 @@ var operation_1 = require("./operation");
|
|
|
13
27
|
Object.defineProperty(exports, "Operation", { enumerable: true, get: function () { return operation_1.Operation; } });
|
|
14
28
|
Object.defineProperty(exports, "getResourceFromOperation", { enumerable: true, get: function () { return operation_1.getResourceFromOperation; } });
|
|
15
29
|
Object.defineProperty(exports, "getActionFromOperation", { enumerable: true, get: function () { return operation_1.getActionFromOperation; } });
|
|
30
|
+
__exportStar(require("./labels"), exports);
|
|
16
31
|
var predefined_1 = require("./predefined");
|
|
17
32
|
Object.defineProperty(exports, "Operations", { enumerable: true, get: function () { return predefined_1.Operations; } });
|
|
18
33
|
Object.defineProperty(exports, "getAllOperations", { enumerable: true, get: function () { return predefined_1.getAllOperations; } });
|
|
19
34
|
Object.defineProperty(exports, "getOperationsByResource", { enumerable: true, get: function () { return predefined_1.getOperationsByResource; } });
|
|
20
35
|
Object.defineProperty(exports, "getOperationsByAction", { enumerable: true, get: function () { return predefined_1.getOperationsByAction; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlcmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUFpSDtBQUF4RyxxR0FBQSxRQUFRLE9BQUE7QUFBRSw4R0FBQSxpQkFBaUIsT0FBQTtBQUFFLDZHQUFBLGdCQUFnQixPQUFBO0FBQUUsOEdBQUEsaUJBQWlCLE9BQUE7QUFBRSw2R0FBQSxnQkFBZ0IsT0FBQTtBQUMzRixxQ0FBbUM7QUFBMUIsaUdBQUEsTUFBTSxPQUFBO0FBQ2YseUNBQXFHO0FBQTVGLHNHQUFBLFNBQVMsT0FBQTtBQUFhLHFIQUFBLHdCQUF3QixPQUFBO0FBQUUsbUhBQUEsc0JBQXNCLE9BQUE7QUFDL0UsMkNBQXlCO0FBQ3pCLDJDQUE0RztBQUFuRyx3R0FBQSxVQUFVLE9BQUE7QUFBRSw4R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLHFIQUFBLHVCQUF1QixPQUFBO0FBQUUsbUhBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXNvdXJjZSwgTUVESUNBTF9SRVNPVVJDRVMsIFBVQkxJQ19SRVNPVVJDRVMsIGlzTWVkaWNhbFJlc291cmNlLCBpc1B1YmxpY1Jlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuZXhwb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7IE9wZXJhdGlvbiwgT1BFUkFUSU9OLCBnZXRSZXNvdXJjZUZyb21PcGVyYXRpb24sIGdldEFjdGlvbkZyb21PcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xhYmVscyc7XG5leHBvcnQgeyBPcGVyYXRpb25zLCBnZXRBbGxPcGVyYXRpb25zLCBnZXRPcGVyYXRpb25zQnlSZXNvdXJjZSwgZ2V0T3BlcmF0aW9uc0J5QWN0aW9uIH0gZnJvbSAnLi9wcmVkZWZpbmVkJztcbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Action } from './actions';
|
|
2
2
|
import { Operation } from './operation';
|
|
3
3
|
import { Resource } from './resources';
|
|
4
|
-
export type
|
|
5
|
-
export declare function getActionLabel(action: Action, locale?:
|
|
6
|
-
export declare function getResourceLabel(resource: Resource, locale?:
|
|
7
|
-
export declare function getOperationLabel(operation: Operation | string, locale?:
|
|
4
|
+
export type Locale = 'fr-FR' | 'us-EN';
|
|
5
|
+
export declare function getActionLabel(action: Action, locale?: Locale): string;
|
|
6
|
+
export declare function getResourceLabel(resource: Resource, locale?: Locale): string;
|
|
7
|
+
export declare function getOperationLabel(operation: Operation | string, locale?: Locale, opts?: {
|
|
8
8
|
order?: 'action-resource' | 'resource-action';
|
|
9
9
|
separator?: string;
|
|
10
10
|
}): string;
|
package/lib/operations/labels.js
CHANGED
|
@@ -6,14 +6,6 @@ exports.getOperationLabel = getOperationLabel;
|
|
|
6
6
|
const actions_1 = require("./actions");
|
|
7
7
|
const operation_1 = require("./operation");
|
|
8
8
|
const resources_1 = require("./resources");
|
|
9
|
-
function normalizeLocale(locale) {
|
|
10
|
-
if (!locale)
|
|
11
|
-
return 'en';
|
|
12
|
-
const lower = locale.toLowerCase();
|
|
13
|
-
if (lower.startsWith('fr'))
|
|
14
|
-
return 'fr';
|
|
15
|
-
return 'en';
|
|
16
|
-
}
|
|
17
9
|
const enAction = {
|
|
18
10
|
[actions_1.Action.CREATE]: 'Create',
|
|
19
11
|
[actions_1.Action.READ]: 'Read',
|
|
@@ -34,6 +26,8 @@ const enAction = {
|
|
|
34
26
|
[actions_1.Action.REJECT]: 'Reject',
|
|
35
27
|
[actions_1.Action.SIGN]: 'Sign',
|
|
36
28
|
[actions_1.Action.VERIFY]: 'Verify',
|
|
29
|
+
[actions_1.Action.RECOVER]: 'Recover',
|
|
30
|
+
[actions_1.Action.DISABLE]: 'Disable',
|
|
37
31
|
[actions_1.Action.SET_MEDICAL_SERVICE_STATUS]: 'Set medical service status',
|
|
38
32
|
[actions_1.Action.SET_MEDICAL_SERVICE_FEES]: 'Set medical service fees',
|
|
39
33
|
[actions_1.Action.UPDATE_STATUS]: 'Update status',
|
|
@@ -72,6 +66,8 @@ const frAction = {
|
|
|
72
66
|
[actions_1.Action.REJECT]: 'Rejeter',
|
|
73
67
|
[actions_1.Action.SIGN]: 'Signer',
|
|
74
68
|
[actions_1.Action.VERIFY]: 'Vérifier',
|
|
69
|
+
[actions_1.Action.RECOVER]: 'Récupérer',
|
|
70
|
+
[actions_1.Action.DISABLE]: 'Désactiver',
|
|
75
71
|
[actions_1.Action.SET_MEDICAL_SERVICE_STATUS]: 'Définir le statut du service médical',
|
|
76
72
|
[actions_1.Action.SET_MEDICAL_SERVICE_FEES]: 'Définir les frais du service médical',
|
|
77
73
|
[actions_1.Action.UPDATE_STATUS]: 'Mettre à jour le statut',
|
|
@@ -147,27 +143,24 @@ function humanizeKey(key) {
|
|
|
147
143
|
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
148
144
|
.join(' ');
|
|
149
145
|
}
|
|
150
|
-
function getActionLabel(action, locale = '
|
|
151
|
-
|
|
152
|
-
if (norm === 'fr')
|
|
146
|
+
function getActionLabel(action, locale = 'us-EN') {
|
|
147
|
+
if (locale === 'fr-FR')
|
|
153
148
|
return frAction[action] ?? humanizeKey(action);
|
|
154
149
|
return enAction[action] ?? humanizeKey(action);
|
|
155
150
|
}
|
|
156
|
-
function getResourceLabel(resource, locale = '
|
|
157
|
-
|
|
158
|
-
if (norm === 'fr')
|
|
151
|
+
function getResourceLabel(resource, locale = 'us-EN') {
|
|
152
|
+
if (locale === 'fr-FR')
|
|
159
153
|
return frResourceOverrides[resource] ?? humanizeKey(resource);
|
|
160
154
|
return humanizeKey(resource);
|
|
161
155
|
}
|
|
162
|
-
function getOperationLabel(operation, locale = '
|
|
163
|
-
const norm = normalizeLocale(locale);
|
|
156
|
+
function getOperationLabel(operation, locale = 'us-EN', opts) {
|
|
164
157
|
const order = opts?.order ?? 'action-resource';
|
|
165
158
|
const sep = opts?.separator ?? ' ';
|
|
166
159
|
const op = typeof operation === 'string' ? operation_1.Operation.fromString(operation) : operation;
|
|
167
160
|
if (!op)
|
|
168
161
|
return '';
|
|
169
|
-
const a = getActionLabel(op.action,
|
|
170
|
-
const r = getResourceLabel(op.resource,
|
|
162
|
+
const a = getActionLabel(op.action, locale);
|
|
163
|
+
const r = getResourceLabel(op.resource, locale);
|
|
171
164
|
return order === 'resource-action' ? `${r}${sep}${a}` : `${a}${sep}${r}`;
|
|
172
165
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdUpBLHdDQUlDO0FBRUQsNENBSUM7QUFFRCw4Q0FjQztBQWpMRCx1Q0FBbUM7QUFDbkMsMkNBQXdDO0FBQ3hDLDJDQUF1QztBQUt2QyxTQUFTLGVBQWUsQ0FBQyxNQUFvQjtJQUMzQyxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDeEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQW9DO0lBQ2hELENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLO0lBQ25CLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0lBQ3ZCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXO0lBQy9CLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVO0lBQzdCLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVO0lBQzdCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTO0lBQzNCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLDRCQUE0QjtJQUNqRSxDQUFDLGdCQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBRSwwQkFBMEI7SUFDN0QsQ0FBQyxnQkFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWU7SUFDdkMsQ0FBQyxnQkFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWU7SUFDdkMsQ0FBQyxnQkFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUscUJBQXFCO0lBQ25ELENBQUMsZ0JBQU0sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLHdCQUF3QjtJQUN6RCxDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUztJQUMzQixDQUFDLGdCQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUztJQUMzQixDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTztJQUN2QixDQUFDLGdCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtJQUM3QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTztJQUN2QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVztJQUMvQixDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTztDQUN4QixDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQW9DO0lBQ2hELENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPO0lBQ3hCLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxlQUFlO0lBQ2hDLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXO0lBQzVCLENBQUMsZ0JBQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRO0lBQ3RCLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRO0lBQ3ZCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPO0lBQ3hCLENBQUMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZO0lBQzdCLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVO0lBQzFCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVO0lBQzNCLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXO0lBQy9CLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxlQUFlO0lBQ2xDLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXO0lBQzlCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTO0lBQzFCLENBQUMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXO0lBQzdCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTO0lBQzFCLENB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LFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLFNBQTZCLEVBQzdCLFNBQXNCLElBQUksRUFDMUIsSUFBNEU7SUFFNUUsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksaUJBQWlCLENBQUM7SUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7SUFFbkMsTUFBTSxFQUFFLEdBQUcsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZGLElBQUksQ0FBQyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxPQUFPLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2VzJztcblxuLy8gQWNjZXB0IGZ1bGwgQkNQLTQ3IGxvY2FsZSBjb2RlcyBsaWtlIGVuLVVTLCBmci1GUiBidXQgaW50ZXJuYWxseSBub3JtYWxpemUgdG8gYmFzZSBsYW5ndWFnZVxuZXhwb3J0IHR5cGUgTG9jYWxlSW5wdXQgPSBzdHJpbmc7IC8vIGUuZy4gJ2VuJywgJ2VuLVVTJywgJ2ZyJywgJ2ZyLUZSJ1xuXG5mdW5jdGlvbiBub3JtYWxpemVMb2NhbGUobG9jYWxlPzogTG9jYWxlSW5wdXQpOiAnZW4nIHwgJ2ZyJyB7XG4gIGlmICghbG9jYWxlKSByZXR1cm4gJ2VuJztcbiAgY29uc3QgbG93ZXIgPSBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoJ2ZyJykpIHJldHVybiAnZnInO1xuICByZXR1cm4gJ2VuJztcbn1cblxuY29uc3QgZW5BY3Rpb246IFBhcnRpYWw8UmVjb3JkPEFjdGlvbiwgc3RyaW5nPj4gPSB7XG4gIFtBY3Rpb24uQ1JFQVRFXTogJ0NyZWF0ZScsXG4gIFtBY3Rpb24uUkVBRF06ICdSZWFkJyxcbiAgW0FjdGlvbi5VUERBVEVdOiAnVXBkYXRlJyxcbiAgW0FjdGlvbi5ERUxFVEVdOiAnRGVsZXRlJyxcbiAgW0FjdGlvbi5QVVRdOiAnUHV0JyxcbiAgW0FjdGlvbi5MSVNUXTogJ0xpc3QnLFxuICBbQWN0aW9uLk1BTkFHRV06ICdNYW5hZ2UnLFxuICBbQWN0aW9uLlZJRVddOiAnVmlldycsXG4gIFtBY3Rpb24uU0VBUkNIXTogJ1NlYXJjaCcsXG4gIFtBY3Rpb24uR1JBTlRdOiAnR3JhbnQnLFxuICBbQWN0aW9uLlJFVk9LRV06ICdSZXZva2UnLFxuICBbQWN0aW9uLlBSRVNDUklCRV06ICdQcmVzY3JpYmUnLFxuICBbQWN0aW9uLkRJQUdOT1NFXTogJ0RpYWdub3NlJyxcbiAgW0FjdGlvbi5TQ0hFRFVMRV06ICdTY2hlZHVsZScsXG4gIFtBY3Rpb24uQ0FOQ0VMXTogJ0NhbmNlbCcsXG4gIFtBY3Rpb24uQVBQUk9WRV06ICdBcHByb3ZlJyxcbiAgW0FjdGlvbi5SRUpFQ1RdOiAnUmVqZWN0JyxcbiAgW0FjdGlvbi5TSUdOXTogJ1NpZ24nLFxuICBbQWN0aW9uLlZFUklGWV06ICdWZXJpZnknLFxuICBbQWN0aW9uLlNFVF9NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTXTogJ1NldCBtZWRpY2FsIHNlcnZpY2Ugc3RhdHVzJyxcbiAgW0FjdGlvbi5TRVRfTUVESUNBTF9TRVJWSUNFX0ZFRVNdOiAnU2V0IG1lZGljYWwgc2VydmljZSBmZWVzJyxcbiAgW0FjdGlvbi5VUERBVEVfU1RBVFVTXTogJ1VwZGF0ZSBzdGF0dXMnLFxuICBbQWN0aW9uLlZJRVdfUEFUSUVOVFNdOiAnVmlldyBwYXRpZW50cycsXG4gIFtBY3Rpb24uUFVUX1BBVElFTlRfUEFZTUVOVF06ICdQdXQgcGF0aWVudCBwYXltZW50JyxcbiAgW0FjdGlvbi5ERUxFVEVfUEFUSUVOVF9QQVlNRU5UXTogJ0RlbGV0ZSBwYXRpZW50IHBheW1lbnQnLFxuICBbQWN0aW9uLkVYUE9SVF06ICdFeHBvcnQnLFxuICBbQWN0aW9uLklNUE9SVF06ICdJbXBvcnQnLFxuICBbQWN0aW9uLkFSQ0hJVkVdOiAnQXJjaGl2ZScsXG4gIFtBY3Rpb24uUkVTVE9SRV06ICdSZXN0b3JlJyxcbiAgW0FjdGlvbi5TSEFSRV06ICdTaGFyZScsXG4gIFtBY3Rpb24uRE9XTkxPQURdOiAnRG93bmxvYWQnLFxuICBbQWN0aW9uLlVQTE9BRF06ICdVcGxvYWQnLFxuICBbQWN0aW9uLkxPR0lOXTogJ0xvZ2luJyxcbiAgW0FjdGlvbi5MT0dPVVRdOiAnTG9nb3V0JyxcbiAgW0FjdGlvbi5DT05GSUdVUkVdOiAnQ29uZmlndXJlJyxcbiAgW0FjdGlvbi5BVURJVF06ICdBdWRpdCcsXG59O1xuXG5jb25zdCBmckFjdGlvbjogUGFydGlhbDxSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+PiA9IHtcbiAgW0FjdGlvbi5DUkVBVEVdOiAnQ3LDqWVyJyxcbiAgW0FjdGlvbi5SRUFEXTogJ0xpcmUnLFxuICBbQWN0aW9uLlVQREFURV06ICdNZXR0cmUgw6Agam91cicsXG4gIFtBY3Rpb24uREVMRVRFXTogJ1N1cHByaW1lcicsXG4gIFtBY3Rpb24uUFVUXTogJ01ldHRyZScsXG4gIFtBY3Rpb24uTElTVF06ICdMaXN0ZXInLFxuICBbQWN0aW9uLk1BTkFHRV06ICdHw6lyZXInLFxuICBbQWN0aW9uLlZJRVddOiAnVm9pcicsXG4gIFtBY3Rpb24uU0VBUkNIXTogJ1JlY2hlcmNoZXInLFxuICBbQWN0aW9uLkdSQU5UXTogJ0FjY29yZGVyJyxcbiAgW0FjdGlvbi5SRVZPS0VdOiAnUsOpdm9xdWVyJyxcbiAgW0FjdGlvbi5QUkVTQ1JJQkVdOiAnUHJlc2NyaXJlJyxcbiAgW0FjdGlvbi5ESUFHTk9TRV06ICdEaWFnbm9zdGlxdWVyJyxcbiAgW0FjdGlvbi5TQ0hFRFVMRV06ICdQbGFuaWZpZXInLFxuICBbQWN0aW9uLkNBTkNFTF06ICdBbm51bGVyJyxcbiAgW0FjdGlvbi5BUFBST1ZFXTogJ0FwcHJvdXZlcicsXG4gIFtBY3Rpb24uUkVKRUNUXTogJ1JlamV0ZXInLFxuICBbQWN0aW9uLlNJR05dOiAnU2lnbmVyJyxcbiAgW0FjdGlvbi5WRVJJRlldOiAnVsOpcmlmaWVyJyxcbiAgW0FjdGlvbi5TRVRfTUVESUNBTF9TRVJWSUNFX1NUQVRVU106ICdEw6lmaW5pciBsZSBzdGF0dXQgZHUgc2VydmljZSBtw6lkaWNhbCcsXG4gIFtBY3Rpb24uU0VUX01FRElDQUxfU0VSVklDRV9GRUVTXTogJ0TDqWZpbmlyIGxlcyBmcmFpcyBkdSBzZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW0FjdGlvbi5VUERBVEVfU1RBVFVTXTogJ01ldHRyZSDDoCBqb3VyIGxlIHN0YXR1dCcsXG4gIFtBY3Rpb24uVklFV19QQVRJRU5UU106ICdWb2lyIGxlcyBwYXRpZW50cycsXG4gIFtBY3Rpb24uUFVUX1BBVElFTlRfUEFZTUVOVF06ICdFbnJlZ2lzdHJlciBsZSBwYWllbWVudCBwYXRpZW50JyxcbiAgW0FjdGlvbi5ERUxFVEVfUEFUSUVOVF9QQVlNRU5UXTogJ1N1cHByaW1lciBsZSBwYWllbWVudCBwYXRpZW50JyxcbiAgW0FjdGlvbi5FWFBPUlRdOiAnRXhwb3J0ZXInLFxuICBbQWN0aW9uLklNUE9SVF06ICdJbXBvcnRlcicsXG4gIFtBY3Rpb24uQVJDSElWRV06ICdBcmNoaXZlcicsXG4gIFtBY3Rpb24uUkVTVE9SRV06ICdSZXN0YXVyZXInLFxuICBbQWN0aW9uLlNIQVJFXTogJ1BhcnRhZ2VyJyxcbiAgW0FjdGlvbi5ET1dOTE9BRF06ICdUw6lsw6ljaGFyZ2VyJyxcbiAgW0FjdGlvbi5VUExPQURdOiAnVMOpbMOpdmVyc2VyJyxcbiAgW0FjdGlvbi5MT0dJTl06ICdDb25uZXhpb24nLFxuICBbQWN0aW9uLkxPR09VVF06ICdEw6ljb25uZXhpb24nLFxuICBbQWN0aW9uLkNPTkZJR1VSRV06ICdDb25maWd1cmVyJyxcbiAgW0FjdGlvbi5BVURJVF06ICdBdWRpdGVyJyxcbn07XG5cbi8vIEZvciByZXNvdXJjZXMgd2UgcHJvdmlkZSBhIGZldyBleHBsaWNpdCBGcmVuY2ggb3ZlcnJpZGVzIGFuZCBkZWZhdWx0IHRvIGh1bWFuaXplZCBuYW1lc1xuY29uc3QgZnJSZXNvdXJjZU92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8UmVzb3VyY2UsIHN0cmluZz4+ID0ge1xuICBbUmVzb3VyY2UuQUNDT1VOVF06ICdDb21wdGUnLFxuICBbUmVzb3VyY2UuQUNDT1VOVF9PV05FUlNISVBdOiAnUHJvcHJpw6l0w6kgZHUgY29tcHRlJyxcbiAgW1Jlc291cmNlLkFDQ09VTlRfUFJFRkVSRU5DRVNdOiAnUHLDqWbDqXJlbmNlcyBkdSBjb21wdGUnLFxuICBbUmVzb3VyY2UuVVNFUl06ICdVdGlsaXNhdGV1cicsXG4gIFtSZXNvdXJjZS5DT05UQUNUXTogJ0NvbnRhY3QnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF06ICdQYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFU106ICdOb3RlcyBtw6lkaWNhbGVzIGR1IHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX1BST1BFUlRJRVNdOiAnUHJvcHJpw6l0w6lzIG3DqWRpY2FsZXMgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX1BVQkxJQ19QUk9QRVJUSUVTXTogJ1Byb3ByacOpdMOpcyBwdWJsaXF1ZXMgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX1BBWU1FTlRdOiAnUGFpZW1lbnQgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VdOiAnU2VydmljZSBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URV06ICdOb3RlIGR1IHNlcnZpY2UgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX1NDSEVEVUxFXTogJ1BsYW5pZmljYXRpb24gZHUgc2VydmljZSBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfRkVFU106ICdGcmFpcyBkdSBzZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9TVEFUVVNdOiAnU3RhdHV0IGR1IHNlcnZpY2UgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9OT1RFXTogJ05vdGUgbcOpZGljYWxlJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfUkVDT1JEXTogJ0Rvc3NpZXIgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZXTogJ0FudMOpY8OpZGVudHMgbcOpZGljYXV4JyxcbiAgW1Jlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTF06IFwiTW9kw6hsZSBkJ2FudMOpY8OpZGVudHMgbcOpZGljYXV4XCIsXG4gIFtSZXNvdXJjZS5QUkVTQ1JJUFRJT05dOiAnT3Jkb25uYW5jZScsXG4gIFtSZXNvdXJjZS5ESUFHTk9TSVNdOiAnRGlhZ25vc3RpYycsXG4gIFtSZXNvdXJjZS5PQlNFUlZBVElPTl06ICdPYnNlcnZhdGlvbicsXG4gIFtSZXNvdXJjZS5NRURJQ0FUSU9OXTogJ03DqWRpY2F0aW9uJyxcbiAgW1Jlc291cmNlLkFMTEVSR1ldOiAnQWxsZXJnaWUnLFxuICBbUmVzb3VyY2UuSU1NVU5JWkFUSU9OXTogJ1ZhY2NpbmF0aW9uJyxcbiAgW1Jlc291cmNlLlBST0NFRFVSRV06ICdQcm9jw6lkdXJlJyxcbiAgW1Jlc291cmNlLkNMSU5JQ0FMX05PVEVdOiAnTm90ZSBjbGluaXF1ZScsXG4gIFtSZXNvdXJjZS5WSVRBTF9TSUdOU106ICdTaWduZXMgdml0YXV4JyxcbiAgW1Jlc291cmNlLk1FQVNVUkVfTU9ERUxdOiAnTW9kw6hsZSBkZSBtZXN1cmUnLFxuICBbUmVzb3VyY2UuQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMXTogJ01vZMOobGUgZGUgbWVzdXJlIGNhbGN1bMOpZScsXG4gIFtSZXNvdXJjZS5VUExPQURFRF9ET0NVTUVOVF06ICdEb2N1bWVudCB0w6lsw6l2ZXJzw6knLFxuICBbUmVzb3VyY2UuRE9DVU1FTlRfTEFZT1VUXTogJ01pc2UgZW4gcGFnZSBkdSBkb2N1bWVudCcsXG4gIFtSZXNvdXJjZS5HRU5FUkFURURfRE9DVU1FTlRdOiAnRG9jdW1lbnQgZ8OpbsOpcsOpJyxcbiAgW1Jlc291cmNlLkRPQ1VNRU5UX01PREVMXTogJ01vZMOobGUgZGUgZG9jdW1lbnQnLFxuICBbUmVzb3VyY2UuU05JUFBFVF06ICdFeHRyYWl0JyxcbiAgW1Jlc291cmNlLkxPQ0FUSU9OXTogJ0xpZXUnLFxuICBbUmVzb3VyY2UuVEFTS19UWVBFXTogJ1R5cGUgZGUgdMOiY2hlJyxcbiAgW1Jlc291cmNlLkxBQl9SRVNVTFRdOiAnUsOpc3VsdGF0IGRlIGxhYm9yYXRvaXJlJyxcbiAgW1Jlc291cmNlLklNQUdJTkddOiAnSW1hZ2VyaWUnLFxuICBbUmVzb3VyY2UuTUVNQkVSU0hJUF06ICdBZGjDqXNpb24nLFxuICBbUmVzb3VyY2UuU0VUVElOR1NdOiAnUGFyYW3DqHRyZXMnLFxuICBbUmVzb3VyY2UuTk9USUZJQ0FUSU9OXTogJ05vdGlmaWNhdGlvbicsXG4gIFtSZXNvdXJjZS5SRVBPUlRdOiAnUmFwcG9ydCcsXG4gIFtSZXNvdXJjZS5BVURJVF9MT0ddOiBcIkpvdXJuYWwgZCdhdWRpdFwiLFxuICBbUmVzb3VyY2UuU1lTVEVNXTogJ1N5c3TDqG1lJyxcbiAgW1Jlc291cmNlLlBVQkxJQ19SRVNPVVJDRV06ICdSZXNzb3VyY2UgcHVibGlxdWUnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9SRVNPVVJDRV06ICdSZXNzb3VyY2UgbcOpZGljYWxlJyxcbn07XG5cbmZ1bmN0aW9uIGh1bWFuaXplS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGtleVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnNwbGl0KCdfJylcbiAgICAubWFwKCh3KSA9PiB3LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKSlcbiAgICAuam9pbignICcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwoYWN0aW9uOiBBY3Rpb24sIGxvY2FsZTogTG9jYWxlSW5wdXQgPSAnZW4nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybSA9IG5vcm1hbGl6ZUxvY2FsZShsb2NhbGUpO1xuICBpZiAobm9ybSA9PT0gJ2ZyJykgcmV0dXJuIGZyQWN0aW9uW2FjdGlvbl0gPz8gaHVtYW5pemVLZXkoYWN0aW9uKTtcbiAgcmV0dXJuIGVuQWN0aW9uW2FjdGlvbl0gPz8gaHVtYW5pemVLZXkoYWN0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGFiZWwocmVzb3VyY2U6IFJlc291cmNlLCBsb2NhbGU6IExvY2FsZUlucHV0ID0gJ2VuJyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm0gPSBub3JtYWxpemVMb2NhbGUobG9jYWxlKTtcbiAgaWYgKG5vcm0gPT09ICdmcicpIHJldHVybiBmclJlc291cmNlT3ZlcnJpZGVzW3Jlc291cmNlXSA/PyBodW1hbml6ZUtleShyZXNvdXJjZSk7XG4gIHJldHVybiBodW1hbml6ZUtleShyZXNvdXJjZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcGVyYXRpb25MYWJlbChcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb24gfCBzdHJpbmcsXG4gIGxvY2FsZTogTG9jYWxlSW5wdXQgPSAnZW4nLFxuICBvcHRzPzogeyBvcmRlcj86ICdhY3Rpb24tcmVzb3VyY2UnIHwgJ3Jlc291cmNlLWFjdGlvbic7IHNlcGFyYXRvcj86IHN0cmluZyB9LFxuKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybSA9IG5vcm1hbGl6ZUxvY2FsZShsb2NhbGUpO1xuICBjb25zdCBvcmRlciA9IG9wdHM/Lm9yZGVyID8/ICdhY3Rpb24tcmVzb3VyY2UnO1xuICBjb25zdCBzZXAgPSBvcHRzPy5zZXBhcmF0b3IgPz8gJyAnO1xuXG4gIGNvbnN0IG9wID0gdHlwZW9mIG9wZXJhdGlvbiA9PT0gJ3N0cmluZycgPyBPcGVyYXRpb24uZnJvbVN0cmluZyhvcGVyYXRpb24pIDogb3BlcmF0aW9uO1xuICBpZiAoIW9wKSByZXR1cm4gJyc7XG4gIGNvbnN0IGEgPSBnZXRBY3Rpb25MYWJlbChvcC5hY3Rpb24sIG5vcm0pO1xuICBjb25zdCByID0gZ2V0UmVzb3VyY2VMYWJlbChvcC5yZXNvdXJjZSwgbm9ybSk7XG4gIHJldHVybiBvcmRlciA9PT0gJ3Jlc291cmNlLWFjdGlvbicgPyBgJHtyfSR7c2VwfSR7YX1gIDogYCR7YX0ke3NlcH0ke3J9YDtcbn1cbiJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0pBLHdDQUdDO0FBRUQsNENBR0M7QUFFRCw4Q0FhQztBQTNLRCx1Q0FBbUM7QUFDbkMsMkNBQXdDO0FBQ3hDLDJDQUF1QztBQUt2QyxNQUFNLFFBQVEsR0FBb0M7SUFDaEQsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7SUFDbkIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU87SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVM7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVM7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVM7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsNEJBQTRCO0lBQ2pFLENBQUMsZ0JBQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLDBCQUEwQjtJQUM3RCxDQUFDLGdCQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsZUFBZTtJQUN2QyxDQUFDLGdCQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsZUFBZTtJQUN2QyxDQUFDLGdCQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxxQkFBcUI7SUFDbkQsQ0FBQyxnQkFBTSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsd0JBQXdCO0lBQ3pELENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTO0lBQzNCLENBQUMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTO0lBQzNCLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0lBQ3ZCLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVO0lBQzdCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0lBQ3ZCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXO0lBQy9CLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0NBQ3hCLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBb0M7SUFDaEQsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU87SUFDeEIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWU7SUFDaEMsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVc7SUFDNUIsQ0FBQyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVE7SUFDdEIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVE7SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU87SUFDeEIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVk7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVU7SUFDMUIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGVBQWU7SUFDbEMsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVc7SUFDOUIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7SUFDMUIsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVc7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7SUFDMUIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVE7SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVc7SUFD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QUssSUFBSSxpQkFBaUIsQ0FBQztJQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEVBQUUsU0FBUyxJQUFJLEdBQUcsQ0FBQztJQUVuQyxNQUFNLEVBQUUsR0FBRyxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkYsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuQixNQUFNLENBQUMsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELE9BQU8sS0FBSyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG4vLyBDb3JlIGkxOG4gbG9jYWxlIHR5cGUgKG9ubHkgc3VwcG9ydCB0aGVzZSBleHBsaWNpdCBjb2RlcylcbmV4cG9ydCB0eXBlIExvY2FsZSA9ICdmci1GUicgfCAndXMtRU4nO1xuXG5jb25zdCBlbkFjdGlvbjogUGFydGlhbDxSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+PiA9IHtcbiAgW0FjdGlvbi5DUkVBVEVdOiAnQ3JlYXRlJyxcbiAgW0FjdGlvbi5SRUFEXTogJ1JlYWQnLFxuICBbQWN0aW9uLlVQREFURV06ICdVcGRhdGUnLFxuICBbQWN0aW9uLkRFTEVURV06ICdEZWxldGUnLFxuICBbQWN0aW9uLlBVVF06ICdQdXQnLFxuICBbQWN0aW9uLkxJU1RdOiAnTGlzdCcsXG4gIFtBY3Rpb24uTUFOQUdFXTogJ01hbmFnZScsXG4gIFtBY3Rpb24uVklFV106ICdWaWV3JyxcbiAgW0FjdGlvbi5TRUFSQ0hdOiAnU2VhcmNoJyxcbiAgW0FjdGlvbi5HUkFOVF06ICdHcmFudCcsXG4gIFtBY3Rpb24uUkVWT0tFXTogJ1Jldm9rZScsXG4gIFtBY3Rpb24uUFJFU0NSSUJFXTogJ1ByZXNjcmliZScsXG4gIFtBY3Rpb24uRElBR05PU0VdOiAnRGlhZ25vc2UnLFxuICBbQWN0aW9uLlNDSEVEVUxFXTogJ1NjaGVkdWxlJyxcbiAgW0FjdGlvbi5DQU5DRUxdOiAnQ2FuY2VsJyxcbiAgW0FjdGlvbi5BUFBST1ZFXTogJ0FwcHJvdmUnLFxuICBbQWN0aW9uLlJFSkVDVF06ICdSZWplY3QnLFxuICBbQWN0aW9uLlNJR05dOiAnU2lnbicsXG4gIFtBY3Rpb24uVkVSSUZZXTogJ1ZlcmlmeScsXG4gIFtBY3Rpb24uUkVDT1ZFUl06ICdSZWNvdmVyJyxcbiAgW0FjdGlvbi5ESVNBQkxFXTogJ0Rpc2FibGUnLFxuICBbQWN0aW9uLlNFVF9NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTXTogJ1NldCBtZWRpY2FsIHNlcnZpY2Ugc3RhdHVzJyxcbiAgW0FjdGlvbi5TRVRfTUVESUNBTF9TRVJWSUNFX0ZFRVNdOiAnU2V0IG1lZGljYWwgc2VydmljZSBmZWVzJyxcbiAgW0FjdGlvbi5VUERBVEVfU1RBVFVTXTogJ1VwZGF0ZSBzdGF0dXMnLFxuICBbQWN0aW9uLlZJRVdfUEFUSUVOVFNdOiAnVmlldyBwYXRpZW50cycsXG4gIFtBY3Rpb24uUFVUX1BBVElFTlRfUEFZTUVOVF06ICdQdXQgcGF0aWVudCBwYXltZW50JyxcbiAgW0FjdGlvbi5ERUxFVEVfUEFUSUVOVF9QQVlNRU5UXTogJ0RlbGV0ZSBwYXRpZW50IHBheW1lbnQnLFxuICBbQWN0aW9uLkVYUE9SVF06ICdFeHBvcnQnLFxuICBbQWN0aW9uLklNUE9SVF06ICdJbXBvcnQnLFxuICBbQWN0aW9uLkFSQ0hJVkVdOiAnQXJjaGl2ZScsXG4gIFtBY3Rpb24uUkVTVE9SRV06ICdSZXN0b3JlJyxcbiAgW0FjdGlvbi5TSEFSRV06ICdTaGFyZScsXG4gIFtBY3Rpb24uRE9XTkxPQURdOiAnRG93bmxvYWQnLFxuICBbQWN0aW9uLlVQTE9BRF06ICdVcGxvYWQnLFxuICBbQWN0aW9uLkxPR0lOXTogJ0xvZ2luJyxcbiAgW0FjdGlvbi5MT0dPVVRdOiAnTG9nb3V0JyxcbiAgW0FjdGlvbi5DT05GSUdVUkVdOiAnQ29uZmlndXJlJyxcbiAgW0FjdGlvbi5BVURJVF06ICdBdWRpdCcsXG59O1xuXG5jb25zdCBmckFjdGlvbjogUGFydGlhbDxSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+PiA9IHtcbiAgW0FjdGlvbi5DUkVBVEVdOiAnQ3LDqWVyJyxcbiAgW0FjdGlvbi5SRUFEXTogJ0xpcmUnLFxuICBbQWN0aW9uLlVQREFURV06ICdNZXR0cmUgw6Agam91cicsXG4gIFtBY3Rpb24uREVMRVRFXTogJ1N1cHByaW1lcicsXG4gIFtBY3Rpb24uUFVUXTogJ01ldHRyZScsXG4gIFtBY3Rpb24uTElTVF06ICdMaXN0ZXInLFxuICBbQWN0aW9uLk1BTkFHRV06ICdHw6lyZXInLFxuICBbQWN0aW9uLlZJRVddOiAnVm9pcicsXG4gIFtBY3Rpb24uU0VBUkNIXTogJ1JlY2hlcmNoZXInLFxuICBbQWN0aW9uLkdSQU5UXTogJ0FjY29yZGVyJyxcbiAgW0FjdGlvbi5SRVZPS0VdOiAnUsOpdm9xdWVyJyxcbiAgW0FjdGlvbi5QUkVTQ1JJQkVdOiAnUHJlc2NyaXJlJyxcbiAgW0FjdGlvbi5ESUFHTk9TRV06ICdEaWFnbm9zdGlxdWVyJyxcbiAgW0FjdGlvbi5TQ0hFRFVMRV06ICdQbGFuaWZpZXInLFxuICBbQWN0aW9uLkNBTkNFTF06ICdBbm51bGVyJyxcbiAgW0FjdGlvbi5BUFBST1ZFXTogJ0FwcHJvdXZlcicsXG4gIFtBY3Rpb24uUkVKRUNUXTogJ1JlamV0ZXInLFxuICBbQWN0aW9uLlNJR05dOiAnU2lnbmVyJyxcbiAgW0FjdGlvbi5WRVJJRlldOiAnVsOpcmlmaWVyJyxcbiAgW0FjdGlvbi5SRUNPVkVSXTogJ1LDqWN1cMOpcmVyJyxcbiAgW0FjdGlvbi5ESVNBQkxFXTogJ0TDqXNhY3RpdmVyJyxcbiAgW0FjdGlvbi5TRVRfTUVESUNBTF9TRVJWSUNFX1NUQVRVU106ICdEw6lmaW5pciBsZSBzdGF0dXQgZHUgc2VydmljZSBtw6lkaWNhbCcsXG4gIFtBY3Rpb24uU0VUX01FRElDQUxfU0VSVklDRV9GRUVTXTogJ0TDqWZpbmlyIGxlcyBmcmFpcyBkdSBzZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW0FjdGlvbi5VUERBVEVfU1RBVFVTXTogJ01ldHRyZSDDoCBqb3VyIGxlIHN0YXR1dCcsXG4gIFtBY3Rpb24uVklFV19QQVRJRU5UU106ICdWb2lyIGxlcyBwYXRpZW50cycsXG4gIFtBY3Rpb24uUFVUX1BBVElFTlRfUEFZTUVOVF06ICdFbnJlZ2lzdHJlciBsZSBwYWllbWVudCBwYXRpZW50JyxcbiAgW0FjdGlvbi5ERUxFVEVfUEFUSUVOVF9QQVlNRU5UXTogJ1N1cHByaW1lciBsZSBwYWllbWVudCBwYXRpZW50JyxcbiAgW0FjdGlvbi5FWFBPUlRdOiAnRXhwb3J0ZXInLFxuICBbQWN0aW9uLklNUE9SVF06ICdJbXBvcnRlcicsXG4gIFtBY3Rpb24uQVJDSElWRV06ICdBcmNoaXZlcicsXG4gIFtBY3Rpb24uUkVTVE9SRV06ICdSZXN0YXVyZXInLFxuICBbQWN0aW9uLlNIQVJFXTogJ1BhcnRhZ2VyJyxcbiAgW0FjdGlvbi5ET1dOTE9BRF06ICdUw6lsw6ljaGFyZ2VyJyxcbiAgW0FjdGlvbi5VUExPQURdOiAnVMOpbMOpdmVyc2VyJyxcbiAgW0FjdGlvbi5MT0dJTl06ICdDb25uZXhpb24nLFxuICBbQWN0aW9uLkxPR09VVF06ICdEw6ljb25uZXhpb24nLFxuICBbQWN0aW9uLkNPTkZJR1VSRV06ICdDb25maWd1cmVyJyxcbiAgW0FjdGlvbi5BVURJVF06ICdBdWRpdGVyJyxcbn07XG5cbi8vIEZvciByZXNvdXJjZXMgd2UgcHJvdmlkZSBhIGZldyBleHBsaWNpdCBGcmVuY2ggb3ZlcnJpZGVzIGFuZCBkZWZhdWx0IHRvIGh1bWFuaXplZCBuYW1lc1xuY29uc3QgZnJSZXNvdXJjZU92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8UmVzb3VyY2UsIHN0cmluZz4+ID0ge1xuICBbUmVzb3VyY2UuQUNDT1VOVF06ICdDb21wdGUnLFxuICBbUmVzb3VyY2UuQUNDT1VOVF9PV05FUlNISVBdOiAnUHJvcHJpw6l0w6kgZHUgY29tcHRlJyxcbiAgW1Jlc291cmNlLkFDQ09VTlRfUFJFRkVSRU5DRVNdOiAnUHLDqWbDqXJlbmNlcyBkdSBjb21wdGUnLFxuICBbUmVzb3VyY2UuVVNFUl06ICdVdGlsaXNhdGV1cicsXG4gIFtSZXNvdXJjZS5DT05UQUNUXTogJ0NvbnRhY3QnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF06ICdQYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFU106ICdOb3RlcyBtw6lkaWNhbGVzIGR1IHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX1BST1BFUlRJRVNdOiAnUHJvcHJpw6l0w6lzIG3DqWRpY2FsZXMgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX1BVQkxJQ19QUk9QRVJUSUVTXTogJ1Byb3ByacOpdMOpcyBwdWJsaXF1ZXMgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX1BBWU1FTlRdOiAnUGFpZW1lbnQgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VdOiAnU2VydmljZSBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URV06ICdOb3RlIGR1IHNlcnZpY2UgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX1NDSEVEVUxFXTogJ1BsYW5pZmljYXRpb24gZHUgc2VydmljZSBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfRkVFU106ICdGcmFpcyBkdSBzZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9TVEFUVVNdOiAnU3RhdHV0IGR1IHNlcnZpY2UgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9OT1RFXTogJ05vdGUgbcOpZGljYWxlJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfUkVDT1JEXTogJ0Rvc3NpZXIgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZXTogJ0FudMOpY8OpZGVudHMgbcOpZGljYXV4JyxcbiAgW1Jlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTF06IFwiTW9kw6hsZSBkJ2FudMOpY8OpZGVudHMgbcOpZGljYXV4XCIsXG4gIFtSZXNvdXJjZS5QUkVTQ1JJUFRJT05dOiAnT3Jkb25uYW5jZScsXG4gIFtSZXNvdXJjZS5ESUFHTk9TSVNdOiAnRGlhZ25vc3RpYycsXG4gIFtSZXNvdXJjZS5PQlNFUlZBVElPTl06ICdPYnNlcnZhdGlvbicsXG4gIFtSZXNvdXJjZS5NRURJQ0FUSU9OXTogJ03DqWRpY2F0aW9uJyxcbiAgW1Jlc291cmNlLkFMTEVSR1ldOiAnQWxsZXJnaWUnLFxuICBbUmVzb3VyY2UuSU1NVU5JWkFUSU9OXTogJ1ZhY2NpbmF0aW9uJyxcbiAgW1Jlc291cmNlLlBST0NFRFVSRV06ICdQcm9jw6lkdXJlJyxcbiAgW1Jlc291cmNlLkNMSU5JQ0FMX05PVEVdOiAnTm90ZSBjbGluaXF1ZScsXG4gIFtSZXNvdXJjZS5WSVRBTF9TSUdOU106ICdTaWduZXMgdml0YXV4JyxcbiAgW1Jlc291cmNlLk1FQVNVUkVfTU9ERUxdOiAnTW9kw6hsZSBkZSBtZXN1cmUnLFxuICBbUmVzb3VyY2UuQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMXTogJ01vZMOobGUgZGUgbWVzdXJlIGNhbGN1bMOpZScsXG4gIFtSZXNvdXJjZS5VUExPQURFRF9ET0NVTUVOVF06ICdEb2N1bWVudCB0w6lsw6l2ZXJzw6knLFxuICBbUmVzb3VyY2UuRE9DVU1FTlRfTEFZT1VUXTogJ01pc2UgZW4gcGFnZSBkdSBkb2N1bWVudCcsXG4gIFtSZXNvdXJjZS5HRU5FUkFURURfRE9DVU1FTlRdOiAnRG9jdW1lbnQgZ8OpbsOpcsOpJyxcbiAgW1Jlc291cmNlLkRPQ1VNRU5UX01PREVMXTogJ01vZMOobGUgZGUgZG9jdW1lbnQnLFxuICBbUmVzb3VyY2UuU05JUFBFVF06ICdFeHRyYWl0JyxcbiAgW1Jlc291cmNlLkxPQ0FUSU9OXTogJ0xpZXUnLFxuICBbUmVzb3VyY2UuVEFTS19UWVBFXTogJ1R5cGUgZGUgdMOiY2hlJyxcbiAgW1Jlc291cmNlLkxBQl9SRVNVTFRdOiAnUsOpc3VsdGF0IGRlIGxhYm9yYXRvaXJlJyxcbiAgW1Jlc291cmNlLklNQUdJTkddOiAnSW1hZ2VyaWUnLFxuICBbUmVzb3VyY2UuTUVNQkVSU0hJUF06ICdBZGjDqXNpb24nLFxuICBbUmVzb3VyY2UuU0VUVElOR1NdOiAnUGFyYW3DqHRyZXMnLFxuICBbUmVzb3VyY2UuTk9USUZJQ0FUSU9OXTogJ05vdGlmaWNhdGlvbicsXG4gIFtSZXNvdXJjZS5SRVBPUlRdOiAnUmFwcG9ydCcsXG4gIFtSZXNvdXJjZS5BVURJVF9MT0ddOiBcIkpvdXJuYWwgZCdhdWRpdFwiLFxuICBbUmVzb3VyY2UuU1lTVEVNXTogJ1N5c3TDqG1lJyxcbiAgW1Jlc291cmNlLlBVQkxJQ19SRVNPVVJDRV06ICdSZXNzb3VyY2UgcHVibGlxdWUnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9SRVNPVVJDRV06ICdSZXNzb3VyY2UgbcOpZGljYWxlJyxcbn07XG5cbmZ1bmN0aW9uIGh1bWFuaXplS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGtleVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnNwbGl0KCdfJylcbiAgICAubWFwKCh3KSA9PiB3LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKSlcbiAgICAuam9pbignICcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwoYWN0aW9uOiBBY3Rpb24sIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyk6IHN0cmluZyB7XG4gIGlmIChsb2NhbGUgPT09ICdmci1GUicpIHJldHVybiBmckFjdGlvblthY3Rpb25dID8/IGh1bWFuaXplS2V5KGFjdGlvbik7XG4gIHJldHVybiBlbkFjdGlvblthY3Rpb25dID8/IGh1bWFuaXplS2V5KGFjdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxhYmVsKHJlc291cmNlOiBSZXNvdXJjZSwgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nKTogc3RyaW5nIHtcbiAgaWYgKGxvY2FsZSA9PT0gJ2ZyLUZSJykgcmV0dXJuIGZyUmVzb3VyY2VPdmVycmlkZXNbcmVzb3VyY2VdID8/IGh1bWFuaXplS2V5KHJlc291cmNlKTtcbiAgcmV0dXJuIGh1bWFuaXplS2V5KHJlc291cmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9wZXJhdGlvbkxhYmVsKFxuICBvcGVyYXRpb246IE9wZXJhdGlvbiB8IHN0cmluZyxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuICBvcHRzPzogeyBvcmRlcj86ICdhY3Rpb24tcmVzb3VyY2UnIHwgJ3Jlc291cmNlLWFjdGlvbic7IHNlcGFyYXRvcj86IHN0cmluZyB9LFxuKTogc3RyaW5nIHtcbiAgY29uc3Qgb3JkZXIgPSBvcHRzPy5vcmRlciA/PyAnYWN0aW9uLXJlc291cmNlJztcbiAgY29uc3Qgc2VwID0gb3B0cz8uc2VwYXJhdG9yID8/ICcgJztcblxuICBjb25zdCBvcCA9IHR5cGVvZiBvcGVyYXRpb24gPT09ICdzdHJpbmcnID8gT3BlcmF0aW9uLmZyb21TdHJpbmcob3BlcmF0aW9uKSA6IG9wZXJhdGlvbjtcbiAgaWYgKCFvcCkgcmV0dXJuICcnO1xuICBjb25zdCBhID0gZ2V0QWN0aW9uTGFiZWwob3AuYWN0aW9uLCBsb2NhbGUpO1xuICBjb25zdCByID0gZ2V0UmVzb3VyY2VMYWJlbChvcC5yZXNvdXJjZSwgbG9jYWxlKTtcbiAgcmV0dXJuIG9yZGVyID09PSAncmVzb3VyY2UtYWN0aW9uJyA/IGAke3J9JHtzZXB9JHthfWAgOiBgJHthfSR7c2VwfSR7cn1gO1xufVxuIl19
|
|
@@ -53,6 +53,10 @@ export declare enum Resource {
|
|
|
53
53
|
/**
|
|
54
54
|
* Medical resources - require special access control
|
|
55
55
|
*/
|
|
56
|
+
declare const RESOURCE_CATEGORIES: {
|
|
57
|
+
medical: Resource[];
|
|
58
|
+
public: Resource[];
|
|
59
|
+
};
|
|
56
60
|
export declare const MEDICAL_RESOURCES: Resource[];
|
|
57
61
|
/**
|
|
58
62
|
* Public resources - standard access control
|
|
@@ -66,3 +70,12 @@ export declare function isMedicalResource(resource: Resource): boolean;
|
|
|
66
70
|
* Check if a resource is public
|
|
67
71
|
*/
|
|
68
72
|
export declare function isPublicResource(resource: Resource): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get all resources across categories (medical + public)
|
|
75
|
+
*/
|
|
76
|
+
export declare function getAllResources(): Resource[];
|
|
77
|
+
/**
|
|
78
|
+
* Return the underlying category buckets (read-only)
|
|
79
|
+
*/
|
|
80
|
+
export declare function getResourceCategories(): Readonly<typeof RESOURCE_CATEGORIES>;
|
|
81
|
+
export {};
|
|
@@ -3,31 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.Resource = void 0;
|
|
4
4
|
exports.isMedicalResource = isMedicalResource;
|
|
5
5
|
exports.isPublicResource = isPublicResource;
|
|
6
|
+
exports.getAllResources = getAllResources;
|
|
7
|
+
exports.getResourceCategories = getResourceCategories;
|
|
6
8
|
/**
|
|
7
9
|
* Resource types for operations
|
|
8
10
|
*/
|
|
9
11
|
var Resource;
|
|
10
12
|
(function (Resource) {
|
|
11
|
-
// Account & Ownership
|
|
12
13
|
Resource["ACCOUNT"] = "ACCOUNT";
|
|
13
14
|
Resource["ACCOUNT_OWNERSHIP"] = "ACCOUNT_OWNERSHIP";
|
|
14
15
|
Resource["ACCOUNT_PREFERENCES"] = "ACCOUNT_PREFERENCES";
|
|
15
|
-
// User & Contact
|
|
16
16
|
Resource["USER"] = "USER";
|
|
17
17
|
Resource["CONTACT"] = "CONTACT";
|
|
18
|
-
// Patient resources
|
|
19
18
|
Resource["PATIENT"] = "PATIENT";
|
|
20
19
|
Resource["PATIENT_MEDICAL_NOTES"] = "PATIENT_MEDICAL_NOTES";
|
|
21
20
|
Resource["PATIENT_MEDICAL_PROPERTIES"] = "PATIENT_MEDICAL_PROPERTIES";
|
|
22
21
|
Resource["PATIENT_PUBLIC_PROPERTIES"] = "PATIENT_PUBLIC_PROPERTIES";
|
|
23
22
|
Resource["PATIENT_PAYMENT"] = "PATIENT_PAYMENT";
|
|
24
|
-
// Medical Service
|
|
25
23
|
Resource["MEDICAL_SERVICE"] = "MEDICAL_SERVICE";
|
|
26
24
|
Resource["MEDICAL_SERVICE_NOTE"] = "MEDICAL_SERVICE_NOTE";
|
|
27
25
|
Resource["MEDICAL_SERVICE_SCHEDULE"] = "MEDICAL_SERVICE_SCHEDULE";
|
|
28
26
|
Resource["MEDICAL_SERVICE_FEES"] = "MEDICAL_SERVICE_FEES";
|
|
29
27
|
Resource["MEDICAL_SERVICE_STATUS"] = "MEDICAL_SERVICE_STATUS";
|
|
30
|
-
// Medical resources
|
|
31
28
|
Resource["MEDICAL_NOTE"] = "MEDICAL_NOTE";
|
|
32
29
|
Resource["MEDICAL_RECORD"] = "MEDICAL_RECORD";
|
|
33
30
|
Resource["MEDICAL_HISTORY"] = "MEDICAL_HISTORY";
|
|
@@ -39,102 +36,113 @@ var Resource;
|
|
|
39
36
|
Resource["ALLERGY"] = "ALLERGY";
|
|
40
37
|
Resource["IMMUNIZATION"] = "IMMUNIZATION";
|
|
41
38
|
Resource["PROCEDURE"] = "PROCEDURE";
|
|
42
|
-
// Clinical & Measurements
|
|
43
39
|
Resource["CLINICAL_NOTE"] = "CLINICAL_NOTE";
|
|
44
40
|
Resource["VITAL_SIGNS"] = "VITAL_SIGNS";
|
|
45
41
|
Resource["MEASURE_MODEL"] = "MEASURE_MODEL";
|
|
46
42
|
Resource["CALCULATED_MEASURE_MODEL"] = "CALCULATED_MEASURE_MODEL";
|
|
47
|
-
// Documents
|
|
48
43
|
Resource["UPLOADED_DOCUMENT"] = "UPLOADED_DOCUMENT";
|
|
49
44
|
Resource["DOCUMENT_LAYOUT"] = "DOCUMENT_LAYOUT";
|
|
50
45
|
Resource["GENERATED_DOCUMENT"] = "GENERATED_DOCUMENT";
|
|
51
46
|
Resource["DOCUMENT_MODEL"] = "DOCUMENT_MODEL";
|
|
52
47
|
Resource["SNIPPET"] = "SNIPPET";
|
|
53
|
-
// Scheduling & Location
|
|
54
48
|
Resource["LOCATION"] = "LOCATION";
|
|
55
49
|
Resource["TASK_TYPE"] = "TASK_TYPE";
|
|
56
|
-
// Diagnostic
|
|
57
50
|
Resource["LAB_RESULT"] = "LAB_RESULT";
|
|
58
51
|
Resource["IMAGING"] = "IMAGING";
|
|
59
|
-
// Membership & Settings
|
|
60
52
|
Resource["MEMBERSHIP"] = "MEMBERSHIP";
|
|
61
53
|
Resource["SETTINGS"] = "SETTINGS";
|
|
62
|
-
// System
|
|
63
54
|
Resource["NOTIFICATION"] = "NOTIFICATION";
|
|
64
55
|
Resource["REPORT"] = "REPORT";
|
|
65
56
|
Resource["AUDIT_LOG"] = "AUDIT_LOG";
|
|
66
57
|
Resource["SYSTEM"] = "SYSTEM";
|
|
67
|
-
// Generic resources
|
|
68
58
|
Resource["PUBLIC_RESOURCE"] = "PUBLIC_RESOURCE";
|
|
69
59
|
Resource["MEDICAL_RESOURCE"] = "MEDICAL_RESOURCE";
|
|
70
60
|
})(Resource || (exports.Resource = Resource = {}));
|
|
71
61
|
/**
|
|
72
62
|
* Medical resources - require special access control
|
|
73
63
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
64
|
+
// Central definition of resource categories for easier maintenance
|
|
65
|
+
// Explicitly widen tuple arrays to Resource[] to avoid overly narrow union inference
|
|
66
|
+
const RESOURCE_CATEGORIES = {
|
|
67
|
+
medical: [
|
|
68
|
+
Resource.PATIENT,
|
|
69
|
+
Resource.PATIENT_MEDICAL_NOTES,
|
|
70
|
+
Resource.PATIENT_MEDICAL_PROPERTIES,
|
|
71
|
+
Resource.PATIENT_PAYMENT,
|
|
72
|
+
Resource.MEDICAL_SERVICE,
|
|
73
|
+
Resource.MEDICAL_SERVICE_NOTE,
|
|
74
|
+
Resource.MEDICAL_SERVICE_SCHEDULE,
|
|
75
|
+
Resource.MEDICAL_SERVICE_FEES,
|
|
76
|
+
Resource.MEDICAL_SERVICE_STATUS,
|
|
77
|
+
Resource.MEDICAL_NOTE,
|
|
78
|
+
Resource.MEDICAL_RECORD,
|
|
79
|
+
Resource.MEDICAL_HISTORY,
|
|
80
|
+
Resource.MEDICAL_HISTORY_MODEL,
|
|
81
|
+
Resource.PRESCRIPTION,
|
|
82
|
+
Resource.DIAGNOSIS,
|
|
83
|
+
Resource.OBSERVATION,
|
|
84
|
+
Resource.MEDICATION,
|
|
85
|
+
Resource.ALLERGY,
|
|
86
|
+
Resource.IMMUNIZATION,
|
|
87
|
+
Resource.PROCEDURE,
|
|
88
|
+
Resource.CLINICAL_NOTE,
|
|
89
|
+
Resource.VITAL_SIGNS,
|
|
90
|
+
Resource.MEASURE_MODEL,
|
|
91
|
+
Resource.CALCULATED_MEASURE_MODEL,
|
|
92
|
+
Resource.LAB_RESULT,
|
|
93
|
+
Resource.IMAGING,
|
|
94
|
+
Resource.MEDICAL_RESOURCE,
|
|
95
|
+
],
|
|
96
|
+
public: [
|
|
97
|
+
Resource.ACCOUNT,
|
|
98
|
+
Resource.ACCOUNT_OWNERSHIP,
|
|
99
|
+
Resource.ACCOUNT_PREFERENCES,
|
|
100
|
+
Resource.USER,
|
|
101
|
+
Resource.CONTACT,
|
|
102
|
+
Resource.PATIENT_PUBLIC_PROPERTIES,
|
|
103
|
+
Resource.UPLOADED_DOCUMENT,
|
|
104
|
+
Resource.DOCUMENT_LAYOUT,
|
|
105
|
+
Resource.GENERATED_DOCUMENT,
|
|
106
|
+
Resource.DOCUMENT_MODEL,
|
|
107
|
+
Resource.SNIPPET,
|
|
108
|
+
Resource.LOCATION,
|
|
109
|
+
Resource.TASK_TYPE,
|
|
110
|
+
Resource.MEMBERSHIP,
|
|
111
|
+
Resource.SETTINGS,
|
|
112
|
+
Resource.NOTIFICATION,
|
|
113
|
+
Resource.REPORT,
|
|
114
|
+
Resource.AUDIT_LOG,
|
|
115
|
+
Resource.SYSTEM,
|
|
116
|
+
Resource.PUBLIC_RESOURCE,
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
exports.MEDICAL_RESOURCES = [...RESOURCE_CATEGORIES.medical];
|
|
103
120
|
/**
|
|
104
121
|
* Public resources - standard access control
|
|
105
122
|
*/
|
|
106
|
-
exports.PUBLIC_RESOURCES = [
|
|
107
|
-
Resource.ACCOUNT,
|
|
108
|
-
Resource.ACCOUNT_OWNERSHIP,
|
|
109
|
-
Resource.ACCOUNT_PREFERENCES,
|
|
110
|
-
Resource.USER,
|
|
111
|
-
Resource.CONTACT,
|
|
112
|
-
Resource.PATIENT_PUBLIC_PROPERTIES,
|
|
113
|
-
Resource.UPLOADED_DOCUMENT,
|
|
114
|
-
Resource.DOCUMENT_LAYOUT,
|
|
115
|
-
Resource.GENERATED_DOCUMENT,
|
|
116
|
-
Resource.DOCUMENT_MODEL,
|
|
117
|
-
Resource.SNIPPET,
|
|
118
|
-
Resource.LOCATION,
|
|
119
|
-
Resource.TASK_TYPE,
|
|
120
|
-
Resource.MEMBERSHIP,
|
|
121
|
-
Resource.SETTINGS,
|
|
122
|
-
Resource.NOTIFICATION,
|
|
123
|
-
Resource.REPORT,
|
|
124
|
-
Resource.AUDIT_LOG,
|
|
125
|
-
Resource.SYSTEM,
|
|
126
|
-
Resource.PUBLIC_RESOURCE,
|
|
127
|
-
];
|
|
123
|
+
exports.PUBLIC_RESOURCES = [...RESOURCE_CATEGORIES.public];
|
|
128
124
|
/**
|
|
129
125
|
* Check if a resource is medical
|
|
130
126
|
*/
|
|
131
127
|
function isMedicalResource(resource) {
|
|
132
|
-
return
|
|
128
|
+
return RESOURCE_CATEGORIES.medical.indexOf(resource) !== -1;
|
|
133
129
|
}
|
|
134
130
|
/**
|
|
135
131
|
* Check if a resource is public
|
|
136
132
|
*/
|
|
137
133
|
function isPublicResource(resource) {
|
|
138
|
-
return
|
|
134
|
+
return RESOURCE_CATEGORIES.public.indexOf(resource) !== -1;
|
|
139
135
|
}
|
|
140
|
-
|
|
136
|
+
/**
|
|
137
|
+
* Get all resources across categories (medical + public)
|
|
138
|
+
*/
|
|
139
|
+
function getAllResources() {
|
|
140
|
+
return [...RESOURCE_CATEGORIES.medical, ...RESOURCE_CATEGORIES.public];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Return the underlying category buckets (read-only)
|
|
144
|
+
*/
|
|
145
|
+
function getResourceCategories() {
|
|
146
|
+
return RESOURCE_CATEGORIES;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTZIQSw4Q0FFQztBQUtELDRDQUVDO0FBS0QsMENBRUM7QUFLRCxzREFFQztBQXBKRDs7R0FFRztBQUNILElBQVksUUFnRFg7QUFoREQsV0FBWSxRQUFRO0lBQ2xCLCtCQUFtQixDQUFBO0lBQ25CLG1EQUF1QyxDQUFBO0lBQ3ZDLHVEQUEyQyxDQUFBO0lBQzNDLHlCQUFhLENBQUE7SUFDYiwrQkFBbUIsQ0FBQTtJQUNuQiwrQkFBbUIsQ0FBQTtJQUNuQiwyREFBK0MsQ0FBQTtJQUMvQyxxRUFBeUQsQ0FBQTtJQUN6RCxtRUFBdUQsQ0FBQTtJQUN2RCwrQ0FBbUMsQ0FBQTtJQUNuQywrQ0FBbUMsQ0FBQTtJQUNuQyx5REFBNkMsQ0FBQTtJQUM3QyxpRUFBcUQsQ0FBQTtJQUNyRCx5REFBNkMsQ0FBQTtJQUM3Qyw2REFBaUQsQ0FBQTtJQUNqRCx5Q0FBNkIsQ0FBQTtJQUM3Qiw2Q0FBaUMsQ0FBQTtJQUNqQywrQ0FBbUMsQ0FBQTtJQUNuQywyREFBK0MsQ0FBQTtJQUMvQyx5Q0FBNkIsQ0FBQTtJQUM3QixtQ0FBdUIsQ0FBQTtJQUN2Qix1Q0FBMkIsQ0FBQTtJQUMzQixxQ0FBeUIsQ0FBQTtJQUN6QiwrQkFBbUIsQ0FBQTtJQUNuQix5Q0FBNkIsQ0FBQTtJQUM3QixtQ0FBdUIsQ0FBQTtJQUN2QiwyQ0FBK0IsQ0FBQTtJQUMvQix1Q0FBMkIsQ0FBQTtJQUMzQiwyQ0FBK0IsQ0FBQTtJQUMvQixpRUFBcUQsQ0FBQTtJQUNyRCxtREFBdUMsQ0FBQTtJQUN2QywrQ0FBbUMsQ0FBQTtJQUNuQyxxREFBeUMsQ0FBQTtJQUN6Qyw2Q0FBaUMsQ0FBQTtJQUNqQywrQkFBbUIsQ0FBQTtJQUNuQixpQ0FBcUIsQ0FBQTtJQUNyQixtQ0FBdUIsQ0FBQTtJQUN2QixxQ0FBeUIsQ0FBQTtJQUN6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O0FBQ3pFLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIHR5cGVzIGZvciBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBlbnVtIFJlc291cmNlIHtcbiAgQUNDT1VOVCA9ICdBQ0NPVU5UJyxcbiAgQUNDT1VOVF9PV05FUlNISVAgPSAnQUNDT1VOVF9PV05FUlNISVAnLFxuICBBQ0NPVU5UX1BSRUZFUkVOQ0VTID0gJ0FDQ09VTlRfUFJFRkVSRU5DRVMnLFxuICBVU0VSID0gJ1VTRVInLFxuICBDT05UQUNUID0gJ0NPTlRBQ1QnLFxuICBQQVRJRU5UID0gJ1BBVElFTlQnLFxuICBQQVRJRU5UX01FRElDQUxfTk9URVMgPSAnUEFUSUVOVF9NRURJQ0FMX05PVEVTJyxcbiAgUEFUSUVOVF9NRURJQ0FMX1BST1BFUlRJRVMgPSAnUEFUSUVOVF9NRURJQ0FMX1BST1BFUlRJRVMnLFxuICBQQVRJRU5UX1BVQkxJQ19QUk9QRVJUSUVTID0gJ1BBVElFTlRfUFVCTElDX1BST1BFUlRJRVMnLFxuICBQQVRJRU5UX1BBWU1FTlQgPSAnUEFUSUVOVF9QQVlNRU5UJyxcbiAgTUVESUNBTF9TRVJWSUNFID0gJ01FRElDQUxfU0VSVklDRScsXG4gIE1FRElDQUxfU0VSVklDRV9OT1RFID0gJ01FRElDQUxfU0VSVklDRV9OT1RFJyxcbiAgTUVESUNBTF9TRVJWSUNFX1NDSEVEVUxFID0gJ01FRElDQUxfU0VSVklDRV9TQ0hFRFVMRScsXG4gIE1FRElDQUxfU0VSVklDRV9GRUVTID0gJ01FRElDQUxfU0VSVklDRV9GRUVTJyxcbiAgTUVESUNBTF9TRVJWSUNFX1NUQVRVUyA9ICdNRURJQ0FMX1NFUlZJQ0VfU1RBVFVTJyxcbiAgTUVESUNBTF9OT1RFID0gJ01FRElDQUxfTk9URScsXG4gIE1FRElDQUxfUkVDT1JEID0gJ01FRElDQUxfUkVDT1JEJyxcbiAgTUVESUNBTF9ISVNUT1JZID0gJ01FRElDQUxfSElTVE9SWScsXG4gIE1FRElDQUxfSElTVE9SWV9NT0RFTCA9ICdNRURJQ0FMX0hJU1RPUllfTU9ERUwnLFxuICBQUkVTQ1JJUFRJT04gPSAnUFJFU0NSSVBUSU9OJyxcbiAgRElBR05PU0lTID0gJ0RJQUdOT1NJUycsXG4gIE9CU0VSVkFUSU9OID0gJ09CU0VSVkFUSU9OJyxcbiAgTUVESUNBVElPTiA9ICdNRURJQ0FUSU9OJyxcbiAgQUxMRVJHWSA9ICdBTExFUkdZJyxcbiAgSU1NVU5JWkFUSU9OID0gJ0lNTVVOSVpBVElPTicsXG4gIFBST0NFRFVSRSA9ICdQUk9DRURVUkUnLFxuICBDTElOSUNBTF9OT1RFID0gJ0NMSU5JQ0FMX05PVEUnLFxuICBWSVRBTF9TSUdOUyA9ICdWSVRBTF9TSUdOUycsXG4gIE1FQVNVUkVfTU9ERUwgPSAnTUVBU1VSRV9NT0RFTCcsXG4gIENBTENVTEFURURfTUVBU1VSRV9NT0RFTCA9ICdDQUxDVUxBVEVEX01FQVNVUkVfTU9ERUwnLFxuICBVUExPQURFRF9ET0NVTUVOVCA9ICdVUExPQURFRF9ET0NVTUVOVCcsXG4gIERPQ1VNRU5UX0xBWU9VVCA9ICdET0NVTUVOVF9MQVlPVVQnLFxuICBHRU5FUkFURURfRE9DVU1FTlQgPSAnR0VORVJBVEVEX0RPQ1VNRU5UJyxcbiAgRE9DVU1FTlRfTU9ERUwgPSAnRE9DVU1FTlRfTU9ERUwnLFxuICBTTklQUEVUID0gJ1NOSVBQRVQnLFxuICBMT0NBVElPTiA9ICdMT0NBVElPTicsXG4gIFRBU0tfVFlQRSA9ICdUQVNLX1RZUEUnLFxuICBMQUJfUkVTVUxUID0gJ0xBQl9SRVNVTFQnLFxuICBJTUFHSU5HID0gJ0lNQUdJTkcnLFxuICBNRU1CRVJTSElQID0gJ01FTUJFUlNISVAnLFxuICBTRVRUSU5HUyA9ICdTRVRUSU5HUycsXG4gIE5PVElGSUNBVElPTiA9ICdOT1RJRklDQVRJT04nLFxuICBSRVBPUlQgPSAnUkVQT1JUJyxcbiAgQVVESVRfTE9HID0gJ0FVRElUX0xPRycsXG4gIFNZU1RFTSA9ICdTWVNURU0nLFxuICBQVUJMSUNfUkVTT1VSQ0UgPSAnUFVCTElDX1JFU09VUkNFJyxcbiAgTUVESUNBTF9SRVNPVVJDRSA9ICdNRURJQ0FMX1JFU09VUkNFJyxcbn1cblxuLyoqXG4gKiBNZWRpY2FsIHJlc291cmNlcyAtIHJlcXVpcmUgc3BlY2lhbCBhY2Nlc3MgY29udHJvbFxuICovXG4vLyBDZW50cmFsIGRlZmluaXRpb24gb2YgcmVzb3VyY2UgY2F0ZWdvcmllcyBmb3IgZWFzaWVyIG1haW50ZW5hbmNlXG4vLyBFeHBsaWNpdGx5IHdpZGVuIHR1cGxlIGFycmF5cyB0byBSZXNvdXJjZVtdIHRvIGF2b2lkIG92ZXJseSBuYXJyb3cgdW5pb24gaW5mZXJlbmNlXG5jb25zdCBSRVNPVVJDRV9DQVRFR09SSUVTOiB7XG4gIG1lZGljYWw6IFJlc291cmNlW107XG4gIHB1YmxpYzogUmVzb3VyY2VbXTtcbn0gPSB7XG4gIG1lZGljYWw6IFtcbiAgICBSZXNvdXJjZS5QQVRJRU5ULFxuICAgIFJlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFUyxcbiAgICBSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfUFJPUEVSVElFUyxcbiAgICBSZXNvdXJjZS5QQVRJRU5UX1BBWU1FTlQsXG4gICAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFLFxuICAgIFJlc291cmNlLk1FRElDQUxfU0VSVklDRV9OT1RFLFxuICAgIFJlc291cmNlLk1FRElDQUxfU0VSVklDRV9TQ0hFRFVMRSxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfRkVFUyxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTLFxuICAgIFJlc291cmNlLk1FRElDQUxfTk9URSxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1JFQ09SRCxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlksXG4gICAgUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZX01PREVMLFxuICAgIFJlc291cmNlLlBSRVNDUklQVElPTixcbiAgICBSZXNvdXJjZS5ESUFHTk9TSVMsXG4gICAgUmVzb3VyY2UuT0JTRVJWQVRJT04sXG4gICAgUmVzb3VyY2UuTUVESUNBVElPTixcbiAgICBSZXNvdXJjZS5BTExFUkdZLFxuICAgIFJlc291cmNlLklNTVVOSVpBVElPTixcbiAgICBSZXNvdXJjZS5QUk9DRURVUkUsXG4gICAgUmVzb3VyY2UuQ0xJTklDQUxfTk9URSxcbiAgICBSZXNvdXJjZS5WSVRBTF9TSUdOUyxcbiAgICBSZXNvdXJjZS5NRUFTVVJFX01PREVMLFxuICAgIFJlc291cmNlLkNBTENVTEFURURfTUVBU1VSRV9NT0RFTCxcbiAgICBSZXNvdXJjZS5MQUJfUkVTVUxULFxuICAgIFJlc291cmNlLklNQUdJTkcsXG4gICAgUmVzb3VyY2UuTUVESUNBTF9SRVNPVVJDRSxcbiAgXSxcbiAgcHVibGljOiBbXG4gICAgUmVzb3VyY2UuQUNDT1VOVCxcbiAgICBSZXNvdXJjZS5BQ0NPVU5UX09XTkVSU0hJUCxcbiAgICBSZXNvdXJjZS5BQ0NPVU5UX1BSRUZFUkVOQ0VTLFxuICAgIFJlc291cmNlLlVTRVIsXG4gICAgUmVzb3VyY2UuQ09OVEFDVCxcbiAgICBSZXNvdXJjZS5QQVRJRU5UX1BVQkxJQ19QUk9QRVJUSUVTLFxuICAgIFJlc291cmNlLlVQTE9BREVEX0RPQ1VNRU5ULFxuICAgIFJlc291cmNlLkRPQ1VNRU5UX0xBWU9VVCxcbiAgICBSZXNvdXJjZS5HRU5FUkFURURfRE9DVU1FTlQsXG4gICAgUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUwsXG4gICAgUmVzb3VyY2UuU05JUFBFVCxcbiAgICBSZXNvdXJjZS5MT0NBVElPTixcbiAgICBSZXNvdXJjZS5UQVNLX1RZUEUsXG4gICAgUmVzb3VyY2UuTUVNQkVSU0hJUCxcbiAgICBSZXNvdXJjZS5TRVRUSU5HUyxcbiAgICBSZXNvdXJjZS5OT1RJRklDQVRJT04sXG4gICAgUmVzb3VyY2UuUkVQT1JULFxuICAgIFJlc291cmNlLkFVRElUX0xPRyxcbiAgICBSZXNvdXJjZS5TWVNURU0sXG4gICAgUmVzb3VyY2UuUFVCTElDX1JFU09VUkNFLFxuICBdLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IE1FRElDQUxfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVMubWVkaWNhbF07XG5cbi8qKlxuICogUHVibGljIHJlc291cmNlcyAtIHN0YW5kYXJkIGFjY2VzcyBjb250cm9sXG4gKi9cbmV4cG9ydCBjb25zdCBQVUJMSUNfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVMucHVibGljXTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIHJlc291cmNlIGlzIG1lZGljYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWVkaWNhbFJlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gUkVTT1VSQ0VfQ0FURUdPUklFUy5tZWRpY2FsLmluZGV4T2YocmVzb3VyY2UpICE9PSAtMTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHJlc291cmNlIGlzIHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQdWJsaWNSZXNvdXJjZShyZXNvdXJjZTogUmVzb3VyY2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIFJFU09VUkNFX0NBVEVHT1JJRVMucHVibGljLmluZGV4T2YocmVzb3VyY2UpICE9PSAtMTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHJlc291cmNlcyBhY3Jvc3MgY2F0ZWdvcmllcyAobWVkaWNhbCArIHB1YmxpYylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFJlc291cmNlcygpOiBSZXNvdXJjZVtdIHtcbiAgcmV0dXJuIFsuLi5SRVNPVVJDRV9DQVRFR09SSUVTLm1lZGljYWwsIC4uLlJFU09VUkNFX0NBVEVHT1JJRVMucHVibGljXTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHVuZGVybHlpbmcgY2F0ZWdvcnkgYnVja2V0cyAocmVhZC1vbmx5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VDYXRlZ29yaWVzKCk6IFJlYWRvbmx5PHR5cGVvZiBSRVNPVVJDRV9DQVRFR09SSUVTPiB7XG4gIHJldHVybiBSRVNPVVJDRV9DQVRFR09SSUVTO1xufVxuIl19
|