@doctorus/common 0.0.9 → 0.0.11

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.
@@ -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';
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlcmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBaUg7QUFBeEcscUdBQUEsUUFBUSxPQUFBO0FBQUUsOEdBQUEsaUJBQWlCLE9BQUE7QUFBRSw2R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLDhHQUFBLGlCQUFpQixPQUFBO0FBQUUsNkdBQUEsZ0JBQWdCLE9BQUE7QUFDM0YscUNBQW1DO0FBQTFCLGlHQUFBLE1BQU0sT0FBQTtBQUNmLHlDQUFxRztBQUE1RixzR0FBQSxTQUFTLE9BQUE7QUFBYSxxSEFBQSx3QkFBd0IsT0FBQTtBQUFFLG1IQUFBLHNCQUFzQixPQUFBO0FBQy9FLDJDQUE0RztBQUFuRyx3R0FBQSxVQUFVLE9BQUE7QUFBRSw4R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLHFIQUFBLHVCQUF1QixPQUFBO0FBQUUsbUhBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXNvdXJjZSwgTUVESUNBTF9SRVNPVVJDRVMsIFBVQkxJQ19SRVNPVVJDRVMsIGlzTWVkaWNhbFJlc291cmNlLCBpc1B1YmxpY1Jlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuZXhwb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7IE9wZXJhdGlvbiwgT1BFUkFUSU9OLCBnZXRSZXNvdXJjZUZyb21PcGVyYXRpb24sIGdldEFjdGlvbkZyb21PcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5leHBvcnQgeyBPcGVyYXRpb25zLCBnZXRBbGxPcGVyYXRpb25zLCBnZXRPcGVyYXRpb25zQnlSZXNvdXJjZSwgZ2V0T3BlcmF0aW9uc0J5QWN0aW9uIH0gZnJvbSAnLi9wcmVkZWZpbmVkJztcbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlcmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUFpSDtBQUF4RyxxR0FBQSxRQUFRLE9BQUE7QUFBRSw4R0FBQSxpQkFBaUIsT0FBQTtBQUFFLDZHQUFBLGdCQUFnQixPQUFBO0FBQUUsOEdBQUEsaUJBQWlCLE9BQUE7QUFBRSw2R0FBQSxnQkFBZ0IsT0FBQTtBQUMzRixxQ0FBbUM7QUFBMUIsaUdBQUEsTUFBTSxPQUFBO0FBQ2YseUNBQXFHO0FBQTVGLHNHQUFBLFNBQVMsT0FBQTtBQUFhLHFIQUFBLHdCQUF3QixPQUFBO0FBQUUsbUhBQUEsc0JBQXNCLE9BQUE7QUFDL0UsMkNBQXlCO0FBQ3pCLDJDQUE0RztBQUFuRyx3R0FBQSxVQUFVLE9BQUE7QUFBRSw4R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLHFIQUFBLHVCQUF1QixPQUFBO0FBQUUsbUhBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXNvdXJjZSwgTUVESUNBTF9SRVNPVVJDRVMsIFBVQkxJQ19SRVNPVVJDRVMsIGlzTWVkaWNhbFJlc291cmNlLCBpc1B1YmxpY1Jlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuZXhwb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7IE9wZXJhdGlvbiwgT1BFUkFUSU9OLCBnZXRSZXNvdXJjZUZyb21PcGVyYXRpb24sIGdldEFjdGlvbkZyb21PcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xhYmVscyc7XG5leHBvcnQgeyBPcGVyYXRpb25zLCBnZXRBbGxPcGVyYXRpb25zLCBnZXRPcGVyYXRpb25zQnlSZXNvdXJjZSwgZ2V0T3BlcmF0aW9uc0J5QWN0aW9uIH0gZnJvbSAnLi9wcmVkZWZpbmVkJztcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { Action } from './actions';
2
+ import { Operation } from './operation';
3
+ import { Resource } from './resources';
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
+ order?: 'action-resource' | 'resource-action';
9
+ separator?: string;
10
+ }): string;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActionLabel = getActionLabel;
4
+ exports.getResourceLabel = getResourceLabel;
5
+ exports.getOperationLabel = getOperationLabel;
6
+ const actions_1 = require("./actions");
7
+ const operation_1 = require("./operation");
8
+ const resources_1 = require("./resources");
9
+ const enAction = {
10
+ [actions_1.Action.CREATE]: 'Create',
11
+ [actions_1.Action.READ]: 'Read',
12
+ [actions_1.Action.UPDATE]: 'Update',
13
+ [actions_1.Action.DELETE]: 'Delete',
14
+ [actions_1.Action.PUT]: 'Put',
15
+ [actions_1.Action.LIST]: 'List',
16
+ [actions_1.Action.MANAGE]: 'Manage',
17
+ [actions_1.Action.VIEW]: 'View',
18
+ [actions_1.Action.SEARCH]: 'Search',
19
+ [actions_1.Action.GRANT]: 'Grant',
20
+ [actions_1.Action.REVOKE]: 'Revoke',
21
+ [actions_1.Action.PRESCRIBE]: 'Prescribe',
22
+ [actions_1.Action.DIAGNOSE]: 'Diagnose',
23
+ [actions_1.Action.SCHEDULE]: 'Schedule',
24
+ [actions_1.Action.CANCEL]: 'Cancel',
25
+ [actions_1.Action.APPROVE]: 'Approve',
26
+ [actions_1.Action.REJECT]: 'Reject',
27
+ [actions_1.Action.SIGN]: 'Sign',
28
+ [actions_1.Action.VERIFY]: 'Verify',
29
+ [actions_1.Action.SET_MEDICAL_SERVICE_STATUS]: 'Set medical service status',
30
+ [actions_1.Action.SET_MEDICAL_SERVICE_FEES]: 'Set medical service fees',
31
+ [actions_1.Action.UPDATE_STATUS]: 'Update status',
32
+ [actions_1.Action.VIEW_PATIENTS]: 'View patients',
33
+ [actions_1.Action.PUT_PATIENT_PAYMENT]: 'Put patient payment',
34
+ [actions_1.Action.DELETE_PATIENT_PAYMENT]: 'Delete patient payment',
35
+ [actions_1.Action.EXPORT]: 'Export',
36
+ [actions_1.Action.IMPORT]: 'Import',
37
+ [actions_1.Action.ARCHIVE]: 'Archive',
38
+ [actions_1.Action.RESTORE]: 'Restore',
39
+ [actions_1.Action.SHARE]: 'Share',
40
+ [actions_1.Action.DOWNLOAD]: 'Download',
41
+ [actions_1.Action.UPLOAD]: 'Upload',
42
+ [actions_1.Action.LOGIN]: 'Login',
43
+ [actions_1.Action.LOGOUT]: 'Logout',
44
+ [actions_1.Action.CONFIGURE]: 'Configure',
45
+ [actions_1.Action.AUDIT]: 'Audit',
46
+ };
47
+ const frAction = {
48
+ [actions_1.Action.CREATE]: 'Créer',
49
+ [actions_1.Action.READ]: 'Lire',
50
+ [actions_1.Action.UPDATE]: 'Mettre à jour',
51
+ [actions_1.Action.DELETE]: 'Supprimer',
52
+ [actions_1.Action.PUT]: 'Mettre',
53
+ [actions_1.Action.LIST]: 'Lister',
54
+ [actions_1.Action.MANAGE]: 'Gérer',
55
+ [actions_1.Action.VIEW]: 'Voir',
56
+ [actions_1.Action.SEARCH]: 'Rechercher',
57
+ [actions_1.Action.GRANT]: 'Accorder',
58
+ [actions_1.Action.REVOKE]: 'Révoquer',
59
+ [actions_1.Action.PRESCRIBE]: 'Prescrire',
60
+ [actions_1.Action.DIAGNOSE]: 'Diagnostiquer',
61
+ [actions_1.Action.SCHEDULE]: 'Planifier',
62
+ [actions_1.Action.CANCEL]: 'Annuler',
63
+ [actions_1.Action.APPROVE]: 'Approuver',
64
+ [actions_1.Action.REJECT]: 'Rejeter',
65
+ [actions_1.Action.SIGN]: 'Signer',
66
+ [actions_1.Action.VERIFY]: 'Vérifier',
67
+ [actions_1.Action.SET_MEDICAL_SERVICE_STATUS]: 'Définir le statut du service médical',
68
+ [actions_1.Action.SET_MEDICAL_SERVICE_FEES]: 'Définir les frais du service médical',
69
+ [actions_1.Action.UPDATE_STATUS]: 'Mettre à jour le statut',
70
+ [actions_1.Action.VIEW_PATIENTS]: 'Voir les patients',
71
+ [actions_1.Action.PUT_PATIENT_PAYMENT]: 'Enregistrer le paiement patient',
72
+ [actions_1.Action.DELETE_PATIENT_PAYMENT]: 'Supprimer le paiement patient',
73
+ [actions_1.Action.EXPORT]: 'Exporter',
74
+ [actions_1.Action.IMPORT]: 'Importer',
75
+ [actions_1.Action.ARCHIVE]: 'Archiver',
76
+ [actions_1.Action.RESTORE]: 'Restaurer',
77
+ [actions_1.Action.SHARE]: 'Partager',
78
+ [actions_1.Action.DOWNLOAD]: 'Télécharger',
79
+ [actions_1.Action.UPLOAD]: 'Téléverser',
80
+ [actions_1.Action.LOGIN]: 'Connexion',
81
+ [actions_1.Action.LOGOUT]: 'Déconnexion',
82
+ [actions_1.Action.CONFIGURE]: 'Configurer',
83
+ [actions_1.Action.AUDIT]: 'Auditer',
84
+ };
85
+ // For resources we provide a few explicit French overrides and default to humanized names
86
+ const frResourceOverrides = {
87
+ [resources_1.Resource.ACCOUNT]: 'Compte',
88
+ [resources_1.Resource.ACCOUNT_OWNERSHIP]: 'Propriété du compte',
89
+ [resources_1.Resource.ACCOUNT_PREFERENCES]: 'Préférences du compte',
90
+ [resources_1.Resource.USER]: 'Utilisateur',
91
+ [resources_1.Resource.CONTACT]: 'Contact',
92
+ [resources_1.Resource.PATIENT]: 'Patient',
93
+ [resources_1.Resource.PATIENT_MEDICAL_NOTES]: 'Notes médicales du patient',
94
+ [resources_1.Resource.PATIENT_MEDICAL_PROPERTIES]: 'Propriétés médicales du patient',
95
+ [resources_1.Resource.PATIENT_PUBLIC_PROPERTIES]: 'Propriétés publiques du patient',
96
+ [resources_1.Resource.PATIENT_PAYMENT]: 'Paiement du patient',
97
+ [resources_1.Resource.MEDICAL_SERVICE]: 'Service médical',
98
+ [resources_1.Resource.MEDICAL_SERVICE_NOTE]: 'Note du service médical',
99
+ [resources_1.Resource.MEDICAL_SERVICE_SCHEDULE]: 'Planification du service médical',
100
+ [resources_1.Resource.MEDICAL_SERVICE_FEES]: 'Frais du service médical',
101
+ [resources_1.Resource.MEDICAL_SERVICE_STATUS]: 'Statut du service médical',
102
+ [resources_1.Resource.MEDICAL_NOTE]: 'Note médicale',
103
+ [resources_1.Resource.MEDICAL_RECORD]: 'Dossier médical',
104
+ [resources_1.Resource.MEDICAL_HISTORY]: 'Antécédents médicaux',
105
+ [resources_1.Resource.MEDICAL_HISTORY_MODEL]: "Modèle d'antécédents médicaux",
106
+ [resources_1.Resource.PRESCRIPTION]: 'Ordonnance',
107
+ [resources_1.Resource.DIAGNOSIS]: 'Diagnostic',
108
+ [resources_1.Resource.OBSERVATION]: 'Observation',
109
+ [resources_1.Resource.MEDICATION]: 'Médication',
110
+ [resources_1.Resource.ALLERGY]: 'Allergie',
111
+ [resources_1.Resource.IMMUNIZATION]: 'Vaccination',
112
+ [resources_1.Resource.PROCEDURE]: 'Procédure',
113
+ [resources_1.Resource.CLINICAL_NOTE]: 'Note clinique',
114
+ [resources_1.Resource.VITAL_SIGNS]: 'Signes vitaux',
115
+ [resources_1.Resource.MEASURE_MODEL]: 'Modèle de mesure',
116
+ [resources_1.Resource.CALCULATED_MEASURE_MODEL]: 'Modèle de mesure calculée',
117
+ [resources_1.Resource.UPLOADED_DOCUMENT]: 'Document téléversé',
118
+ [resources_1.Resource.DOCUMENT_LAYOUT]: 'Mise en page du document',
119
+ [resources_1.Resource.GENERATED_DOCUMENT]: 'Document généré',
120
+ [resources_1.Resource.DOCUMENT_MODEL]: 'Modèle de document',
121
+ [resources_1.Resource.SNIPPET]: 'Extrait',
122
+ [resources_1.Resource.LOCATION]: 'Lieu',
123
+ [resources_1.Resource.TASK_TYPE]: 'Type de tâche',
124
+ [resources_1.Resource.LAB_RESULT]: 'Résultat de laboratoire',
125
+ [resources_1.Resource.IMAGING]: 'Imagerie',
126
+ [resources_1.Resource.MEMBERSHIP]: 'Adhésion',
127
+ [resources_1.Resource.SETTINGS]: 'Paramètres',
128
+ [resources_1.Resource.NOTIFICATION]: 'Notification',
129
+ [resources_1.Resource.REPORT]: 'Rapport',
130
+ [resources_1.Resource.AUDIT_LOG]: "Journal d'audit",
131
+ [resources_1.Resource.SYSTEM]: 'Système',
132
+ [resources_1.Resource.PUBLIC_RESOURCE]: 'Ressource publique',
133
+ [resources_1.Resource.MEDICAL_RESOURCE]: 'Ressource médicale',
134
+ };
135
+ function humanizeKey(key) {
136
+ return key
137
+ .toLowerCase()
138
+ .split('_')
139
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
140
+ .join(' ');
141
+ }
142
+ function getActionLabel(action, locale = 'us-EN') {
143
+ if (locale === 'fr-FR')
144
+ return frAction[action] ?? humanizeKey(action);
145
+ return enAction[action] ?? humanizeKey(action);
146
+ }
147
+ function getResourceLabel(resource, locale = 'us-EN') {
148
+ if (locale === 'fr-FR')
149
+ return frResourceOverrides[resource] ?? humanizeKey(resource);
150
+ return humanizeKey(resource);
151
+ }
152
+ function getOperationLabel(operation, locale = 'us-EN', opts) {
153
+ const order = opts?.order ?? 'action-resource';
154
+ const sep = opts?.separator ?? ' ';
155
+ const op = typeof operation === 'string' ? operation_1.Operation.fromString(operation) : operation;
156
+ if (!op)
157
+ return '';
158
+ const a = getActionLabel(op.action, locale);
159
+ const r = getResourceLabel(op.resource, locale);
160
+ return order === 'resource-action' ? `${r}${sep}${a}` : `${a}${sep}${r}`;
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0pBLHdDQUdDO0FBRUQsNENBR0M7QUFFRCw4Q0FhQztBQXZLRCx1Q0FBbUM7QUFDbkMsMkNBQXdDO0FBQ3hDLDJDQUF1QztBQUt2QyxNQUFNLFFBQVEsR0FBb0M7SUFDaEQsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7SUFDbkIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU87SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVM7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsNEJBQTRCO0lBQ2pFLENBQUMsZ0JBQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLDBCQUEwQjtJQUM3RCxDQUFDLGdCQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsZUFBZTtJQUN2QyxDQUFDLGdCQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsZUFBZTtJQUN2QyxDQUFDLGdCQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxxQkFBcUI7SUFDbkQsQ0FBQyxnQkFBTSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsd0JBQXdCO0lBQ3pELENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTO0lBQzNCLENBQUMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTO0lBQzNCLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0lBQ3ZCLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVO0lBQzdCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0lBQ3ZCLENBQUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRO0lBQ3pCLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXO0lBQy9CLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0NBQ3hCLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBb0M7SUFDaEQsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU87SUFDeEIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWU7SUFDaEMsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVc7SUFDNUIsQ0FBQyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVE7SUFDdEIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVE7SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU87SUFDeEIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVk7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVU7SUFDMUIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGVBQWU7SUFDbEMsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVc7SUFDOUIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7SUFDMUIsQ0FBQyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVc7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7SUFDMUIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVE7SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7SUFDM0IsQ0FBQyxnQkFBTSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsc0NBQXNDO0lBQzNFLENBQUMsZ0JBQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLHNDQUFzQztJQUN6RSxDQUFDLGdCQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUseUJBQXlCO0lBQ2pELENBQUMsZ0JBQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxtQkFBbUI7SUFDM0MsQ0FBQyxnQkFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsaUNBQWlDO0lBQy9ELENBQUMsZ0JBQU0sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLCtCQUErQjtJQUNoRSxDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsVUFBVTtJQUMzQixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsVUFBVTtJQUMzQixDQUFDLGdCQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVTtJQUM1QixDQUFDLGdCQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVztJQUM3QixDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVTtJQUMxQixDQUFDLGdCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYTtJQUNoQyxDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWTtJQUM3QixDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUMzQixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYTtJQUM5QixDQUFDLGdCQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWTtJQUNoQyxDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUztDQUMxQixDQUFDO0FBRUYsMEZBQTBGO0FBQzFGLE1BQU0sbUJBQW1CLEdBQXNDO0lBQzdELENBQUMsb0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRO0lBQzVCLENBQUMsb0JBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLHFCQUFxQjtJQUNuRCxDQUFDLG9CQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSx1QkFBdUI7SUFDdkQsQ0FBQyxvQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWE7SUFDOUIsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVM7SUFDN0IsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVM7SUFDN0IsQ0FBQyxvQkFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsNEJBQTRCO0lBQzlELENBQUMsb0JBQVEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLGlDQUFpQztJQUN4RSxDQUFDLG9CQUFRLENBQUMseUJBQXlCLENBQUMsRUFBRSxpQ0FBaUM7SUFDdkUsQ0FBQyxvQkFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLHFCQUFxQjtJQUNqRCxDQUFDLG9CQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsaUJBQWlCO0lBQzdDLENBQUMsb0JBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLHlCQUF5QjtJQUMxRCxDQUFDLG9CQUFRLENBQUMsd0JBQXdCLENBQUMsRUFBRSxrQ0FBa0M7SUFDdkUsQ0FBQyxvQkFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsMEJBQTBCO0lBQzNELENBQUMsb0JBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLDJCQUEyQjtJQUM5RCxDQUFDLG9CQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsZUFBZTtJQUN4QyxDQUFDLG9CQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsaUJBQWlCO0lBQzVDLENBQUMsb0JBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxzQkFBc0I7SUFDbEQsQ0FBQyxvQkFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsK0JBQStCO0lBQ2pFLENBQUMsb0JBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZO0lBQ3JDLENBQUMsb0JBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZO0lBQ2xDLENBQUMsb0JBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxhQUFhO0lBQ3JDLENBQUMsb0JBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxZQUFZO0lBQ25DLENBQUMsb0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxVQUFVO0lBQzlCLENBQUMsb0JBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxhQUFhO0lBQ3RDLENBQUMsb0JBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXO0lBQ2pDLENBQUMsb0JBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxlQUFlO0lBQ3pDLENBQUMsb0JBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxlQUFlO0lBQ3ZDLENBQUMsb0JBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxrQkFBa0I7SUFDNUMsQ0FBQyxvQkFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsMkJBQTJCO0lBQ2hFLENBQUMsb0JBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLG9CQUFvQjtJQUNsRCxDQUFDLG9CQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsMEJBQTBCO0lBQ3RELENBQUMsb0JBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLGlCQUFpQjtJQUNoRCxDQUFDLG9CQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsb0JBQW9CO0lBQy9DLENBQUMsb0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTO0lBQzdCLENBQUMsb0JBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNO0lBQzNCLENBQUMsb0JBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlO0lBQ3JDLENBQUMsb0JBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSx5QkFBeUI7SUFDaEQsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVU7SUFDOUIsQ0FBQyxvQkFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVU7SUFDakMsQ0FBQyxvQkFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVk7SUFDakMsQ0FBQyxvQkFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLGNBQWM7SUFDdkMsQ0FBQyxvQkFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7SUFDNUIsQ0FBQyxvQkFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGlCQUFpQjtJQUN2QyxDQUFDLG9CQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUztJQUM1QixDQUFDLG9CQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsb0JBQW9CO0lBQ2hELENBQUMsb0JBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLG9CQUFvQjtDQUNsRCxDQUFDO0FBRUYsU0FBUyxXQUFXLENBQUMsR0FBVztJQUM5QixPQUFPLEdBQUc7U0FDUCxXQUFXLEVBQUU7U0FDYixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxNQUFjLEVBQUUsU0FBaUIsT0FBTztJQUNyRSxJQUFJLE1BQU0sS0FBSyxPQUFPO1FBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxTQUFpQixPQUFPO0lBQzNFLElBQUksTUFBTSxLQUFLLE9BQU87UUFBRSxPQUFPLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RixPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLFNBQTZCLEVBQzdCLFNBQWlCLE9BQU8sRUFDeEIsSUFBNEU7SUFFNUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssSUFBSSxpQkFBaUIsQ0FBQztJQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEVBQUUsU0FBUyxJQUFJLEdBQUcsQ0FBQztJQUVuQyxNQUFNLEVBQUUsR0FBRyxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkYsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuQixNQUFNLENBQUMsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELE9BQU8sS0FBSyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG4vLyBDb3JlIGkxOG4gbG9jYWxlIHR5cGUgKG9ubHkgc3VwcG9ydCB0aGVzZSBleHBsaWNpdCBjb2RlcylcbmV4cG9ydCB0eXBlIExvY2FsZSA9ICdmci1GUicgfCAndXMtRU4nO1xuXG5jb25zdCBlbkFjdGlvbjogUGFydGlhbDxSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+PiA9IHtcbiAgW0FjdGlvbi5DUkVBVEVdOiAnQ3JlYXRlJyxcbiAgW0FjdGlvbi5SRUFEXTogJ1JlYWQnLFxuICBbQWN0aW9uLlVQREFURV06ICdVcGRhdGUnLFxuICBbQWN0aW9uLkRFTEVURV06ICdEZWxldGUnLFxuICBbQWN0aW9uLlBVVF06ICdQdXQnLFxuICBbQWN0aW9uLkxJU1RdOiAnTGlzdCcsXG4gIFtBY3Rpb24uTUFOQUdFXTogJ01hbmFnZScsXG4gIFtBY3Rpb24uVklFV106ICdWaWV3JyxcbiAgW0FjdGlvbi5TRUFSQ0hdOiAnU2VhcmNoJyxcbiAgW0FjdGlvbi5HUkFOVF06ICdHcmFudCcsXG4gIFtBY3Rpb24uUkVWT0tFXTogJ1Jldm9rZScsXG4gIFtBY3Rpb24uUFJFU0NSSUJFXTogJ1ByZXNjcmliZScsXG4gIFtBY3Rpb24uRElBR05PU0VdOiAnRGlhZ25vc2UnLFxuICBbQWN0aW9uLlNDSEVEVUxFXTogJ1NjaGVkdWxlJyxcbiAgW0FjdGlvbi5DQU5DRUxdOiAnQ2FuY2VsJyxcbiAgW0FjdGlvbi5BUFBST1ZFXTogJ0FwcHJvdmUnLFxuICBbQWN0aW9uLlJFSkVDVF06ICdSZWplY3QnLFxuICBbQWN0aW9uLlNJR05dOiAnU2lnbicsXG4gIFtBY3Rpb24uVkVSSUZZXTogJ1ZlcmlmeScsXG4gIFtBY3Rpb24uU0VUX01FRElDQUxfU0VSVklDRV9TVEFUVVNdOiAnU2V0IG1lZGljYWwgc2VydmljZSBzdGF0dXMnLFxuICBbQWN0aW9uLlNFVF9NRURJQ0FMX1NFUlZJQ0VfRkVFU106ICdTZXQgbWVkaWNhbCBzZXJ2aWNlIGZlZXMnLFxuICBbQWN0aW9uLlVQREFURV9TVEFUVVNdOiAnVXBkYXRlIHN0YXR1cycsXG4gIFtBY3Rpb24uVklFV19QQVRJRU5UU106ICdWaWV3IHBhdGllbnRzJyxcbiAgW0FjdGlvbi5QVVRfUEFUSUVOVF9QQVlNRU5UXTogJ1B1dCBwYXRpZW50IHBheW1lbnQnLFxuICBbQWN0aW9uLkRFTEVURV9QQVRJRU5UX1BBWU1FTlRdOiAnRGVsZXRlIHBhdGllbnQgcGF5bWVudCcsXG4gIFtBY3Rpb24uRVhQT1JUXTogJ0V4cG9ydCcsXG4gIFtBY3Rpb24uSU1QT1JUXTogJ0ltcG9ydCcsXG4gIFtBY3Rpb24uQVJDSElWRV06ICdBcmNoaXZlJyxcbiAgW0FjdGlvbi5SRVNUT1JFXTogJ1Jlc3RvcmUnLFxuICBbQWN0aW9uLlNIQVJFXTogJ1NoYXJlJyxcbiAgW0FjdGlvbi5ET1dOTE9BRF06ICdEb3dubG9hZCcsXG4gIFtBY3Rpb24uVVBMT0FEXTogJ1VwbG9hZCcsXG4gIFtBY3Rpb24uTE9HSU5dOiAnTG9naW4nLFxuICBbQWN0aW9uLkxPR09VVF06ICdMb2dvdXQnLFxuICBbQWN0aW9uLkNPTkZJR1VSRV06ICdDb25maWd1cmUnLFxuICBbQWN0aW9uLkFVRElUXTogJ0F1ZGl0Jyxcbn07XG5cbmNvbnN0IGZyQWN0aW9uOiBQYXJ0aWFsPFJlY29yZDxBY3Rpb24sIHN0cmluZz4+ID0ge1xuICBbQWN0aW9uLkNSRUFURV06ICdDcsOpZXInLFxuICBbQWN0aW9uLlJFQURdOiAnTGlyZScsXG4gIFtBY3Rpb24uVVBEQVRFXTogJ01ldHRyZSDDoCBqb3VyJyxcbiAgW0FjdGlvbi5ERUxFVEVdOiAnU3VwcHJpbWVyJyxcbiAgW0FjdGlvbi5QVVRdOiAnTWV0dHJlJyxcbiAgW0FjdGlvbi5MSVNUXTogJ0xpc3RlcicsXG4gIFtBY3Rpb24uTUFOQUdFXTogJ0fDqXJlcicsXG4gIFtBY3Rpb24uVklFV106ICdWb2lyJyxcbiAgW0FjdGlvbi5TRUFSQ0hdOiAnUmVjaGVyY2hlcicsXG4gIFtBY3Rpb24uR1JBTlRdOiAnQWNjb3JkZXInLFxuICBbQWN0aW9uLlJFVk9LRV06ICdSw6l2b3F1ZXInLFxuICBbQWN0aW9uLlBSRVNDUklCRV06ICdQcmVzY3JpcmUnLFxuICBbQWN0aW9uLkRJQUdOT1NFXTogJ0RpYWdub3N0aXF1ZXInLFxuICBbQWN0aW9uLlNDSEVEVUxFXTogJ1BsYW5pZmllcicsXG4gIFtBY3Rpb24uQ0FOQ0VMXTogJ0FubnVsZXInLFxuICBbQWN0aW9uLkFQUFJPVkVdOiAnQXBwcm91dmVyJyxcbiAgW0FjdGlvbi5SRUpFQ1RdOiAnUmVqZXRlcicsXG4gIFtBY3Rpb24uU0lHTl06ICdTaWduZXInLFxuICBbQWN0aW9uLlZFUklGWV06ICdWw6lyaWZpZXInLFxuICBbQWN0aW9uLlNFVF9NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTXTogJ0TDqWZpbmlyIGxlIHN0YXR1dCBkdSBzZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW0FjdGlvbi5TRVRfTUVESUNBTF9TRVJWSUNFX0ZFRVNdOiAnRMOpZmluaXIgbGVzIGZyYWlzIGR1IHNlcnZpY2UgbcOpZGljYWwnLFxuICBbQWN0aW9uLlVQREFURV9TVEFUVVNdOiAnTWV0dHJlIMOgIGpvdXIgbGUgc3RhdHV0JyxcbiAgW0FjdGlvbi5WSUVXX1BBVElFTlRTXTogJ1ZvaXIgbGVzIHBhdGllbnRzJyxcbiAgW0FjdGlvbi5QVVRfUEFUSUVOVF9QQVlNRU5UXTogJ0VucmVnaXN0cmVyIGxlIHBhaWVtZW50IHBhdGllbnQnLFxuICBbQWN0aW9uLkRFTEVURV9QQVRJRU5UX1BBWU1FTlRdOiAnU3VwcHJpbWVyIGxlIHBhaWVtZW50IHBhdGllbnQnLFxuICBbQWN0aW9uLkVYUE9SVF06ICdFeHBvcnRlcicsXG4gIFtBY3Rpb24uSU1QT1JUXTogJ0ltcG9ydGVyJyxcbiAgW0FjdGlvbi5BUkNISVZFXTogJ0FyY2hpdmVyJyxcbiAgW0FjdGlvbi5SRVNUT1JFXTogJ1Jlc3RhdXJlcicsXG4gIFtBY3Rpb24uU0hBUkVdOiAnUGFydGFnZXInLFxuICBbQWN0aW9uLkRPV05MT0FEXTogJ1TDqWzDqWNoYXJnZXInLFxuICBbQWN0aW9uLlVQTE9BRF06ICdUw6lsw6l2ZXJzZXInLFxuICBbQWN0aW9uLkxPR0lOXTogJ0Nvbm5leGlvbicsXG4gIFtBY3Rpb24uTE9HT1VUXTogJ0TDqWNvbm5leGlvbicsXG4gIFtBY3Rpb24uQ09ORklHVVJFXTogJ0NvbmZpZ3VyZXInLFxuICBbQWN0aW9uLkFVRElUXTogJ0F1ZGl0ZXInLFxufTtcblxuLy8gRm9yIHJlc291cmNlcyB3ZSBwcm92aWRlIGEgZmV3IGV4cGxpY2l0IEZyZW5jaCBvdmVycmlkZXMgYW5kIGRlZmF1bHQgdG8gaHVtYW5pemVkIG5hbWVzXG5jb25zdCBmclJlc291cmNlT3ZlcnJpZGVzOiBQYXJ0aWFsPFJlY29yZDxSZXNvdXJjZSwgc3RyaW5nPj4gPSB7XG4gIFtSZXNvdXJjZS5BQ0NPVU5UXTogJ0NvbXB0ZScsXG4gIFtSZXNvdXJjZS5BQ0NPVU5UX09XTkVSU0hJUF06ICdQcm9wcmnDqXTDqSBkdSBjb21wdGUnLFxuICBbUmVzb3VyY2UuQUNDT1VOVF9QUkVGRVJFTkNFU106ICdQcsOpZsOpcmVuY2VzIGR1IGNvbXB0ZScsXG4gIFtSZXNvdXJjZS5VU0VSXTogJ1V0aWxpc2F0ZXVyJyxcbiAgW1Jlc291cmNlLkNPTlRBQ1RdOiAnQ29udGFjdCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UXTogJ1BhdGllbnQnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX05PVEVTXTogJ05vdGVzIG3DqWRpY2FsZXMgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfUFJPUEVSVElFU106ICdQcm9wcmnDqXTDqXMgbcOpZGljYWxlcyBkdSBwYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfUFVCTElDX1BST1BFUlRJRVNdOiAnUHJvcHJpw6l0w6lzIHB1YmxpcXVlcyBkdSBwYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfUEFZTUVOVF06ICdQYWllbWVudCBkdSBwYXRpZW50JyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV06ICdTZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9OT1RFXTogJ05vdGUgZHUgc2VydmljZSBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfU0NIRURVTEVdOiAnUGxhbmlmaWNhdGlvbiBkdSBzZXJ2aWNlIG3DqWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9GRUVTXTogJ0ZyYWlzIGR1IHNlcnZpY2UgbcOpZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX1NUQVRVU106ICdTdGF0dXQgZHUgc2VydmljZSBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX05PVEVdOiAnTm90ZSBtw6lkaWNhbGUnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9SRUNPUkRdOiAnRG9zc2llciBtw6lkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlldOiAnQW50w6ljw6lkZW50cyBtw6lkaWNhdXgnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZX01PREVMXTogXCJNb2TDqGxlIGQnYW50w6ljw6lkZW50cyBtw6lkaWNhdXhcIixcbiAgW1Jlc291cmNlLlBSRVNDUklQVElPTl06ICdPcmRvbm5hbmNlJyxcbiAgW1Jlc291cmNlLkRJQUdOT1NJU106ICdEaWFnbm9zdGljJyxcbiAgW1Jlc291cmNlLk9CU0VSVkFUSU9OXTogJ09ic2VydmF0aW9uJyxcbiAgW1Jlc291cmNlLk1FRElDQVRJT05dOiAnTcOpZGljYXRpb24nLFxuICBbUmVzb3VyY2UuQUxMRVJHWV06ICdBbGxlcmdpZScsXG4gIFtSZXNvdXJjZS5JTU1VTklaQVRJT05dOiAnVmFjY2luYXRpb24nLFxuICBbUmVzb3VyY2UuUFJPQ0VEVVJFXTogJ1Byb2PDqWR1cmUnLFxuICBbUmVzb3VyY2UuQ0xJTklDQUxfTk9URV06ICdOb3RlIGNsaW5pcXVlJyxcbiAgW1Jlc291cmNlLlZJVEFMX1NJR05TXTogJ1NpZ25lcyB2aXRhdXgnLFxuICBbUmVzb3VyY2UuTUVBU1VSRV9NT0RFTF06ICdNb2TDqGxlIGRlIG1lc3VyZScsXG4gIFtSZXNvdXJjZS5DQUxDVUxBVEVEX01FQVNVUkVfTU9ERUxdOiAnTW9kw6hsZSBkZSBtZXN1cmUgY2FsY3Vsw6llJyxcbiAgW1Jlc291cmNlLlVQTE9BREVEX0RPQ1VNRU5UXTogJ0RvY3VtZW50IHTDqWzDqXZlcnPDqScsXG4gIFtSZXNvdXJjZS5ET0NVTUVOVF9MQVlPVVRdOiAnTWlzZSBlbiBwYWdlIGR1IGRvY3VtZW50JyxcbiAgW1Jlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVF06ICdEb2N1bWVudCBnw6luw6lyw6knLFxuICBbUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUxdOiAnTW9kw6hsZSBkZSBkb2N1bWVudCcsXG4gIFtSZXNvdXJjZS5TTklQUEVUXTogJ0V4dHJhaXQnLFxuICBbUmVzb3VyY2UuTE9DQVRJT05dOiAnTGlldScsXG4gIFtSZXNvdXJjZS5UQVNLX1RZUEVdOiAnVHlwZSBkZSB0w6JjaGUnLFxuICBbUmVzb3VyY2UuTEFCX1JFU1VMVF06ICdSw6lzdWx0YXQgZGUgbGFib3JhdG9pcmUnLFxuICBbUmVzb3VyY2UuSU1BR0lOR106ICdJbWFnZXJpZScsXG4gIFtSZXNvdXJjZS5NRU1CRVJTSElQXTogJ0FkaMOpc2lvbicsXG4gIFtSZXNvdXJjZS5TRVRUSU5HU106ICdQYXJhbcOodHJlcycsXG4gIFtSZXNvdXJjZS5OT1RJRklDQVRJT05dOiAnTm90aWZpY2F0aW9uJyxcbiAgW1Jlc291cmNlLlJFUE9SVF06ICdSYXBwb3J0JyxcbiAgW1Jlc291cmNlLkFVRElUX0xPR106IFwiSm91cm5hbCBkJ2F1ZGl0XCIsXG4gIFtSZXNvdXJjZS5TWVNURU1dOiAnU3lzdMOobWUnLFxuICBbUmVzb3VyY2UuUFVCTElDX1JFU09VUkNFXTogJ1Jlc3NvdXJjZSBwdWJsaXF1ZScsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1JFU09VUkNFXTogJ1Jlc3NvdXJjZSBtw6lkaWNhbGUnLFxufTtcblxuZnVuY3Rpb24gaHVtYW5pemVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4ga2V5XG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAuc3BsaXQoJ18nKVxuICAgIC5tYXAoKHcpID0+IHcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3LnNsaWNlKDEpKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25MYWJlbChhY3Rpb246IEFjdGlvbiwgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nKTogc3RyaW5nIHtcbiAgaWYgKGxvY2FsZSA9PT0gJ2ZyLUZSJykgcmV0dXJuIGZyQWN0aW9uW2FjdGlvbl0gPz8gaHVtYW5pemVLZXkoYWN0aW9uKTtcbiAgcmV0dXJuIGVuQWN0aW9uW2FjdGlvbl0gPz8gaHVtYW5pemVLZXkoYWN0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGFiZWwocmVzb3VyY2U6IFJlc291cmNlLCBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicpOiBzdHJpbmcge1xuICBpZiAobG9jYWxlID09PSAnZnItRlInKSByZXR1cm4gZnJSZXNvdXJjZU92ZXJyaWRlc1tyZXNvdXJjZV0gPz8gaHVtYW5pemVLZXkocmVzb3VyY2UpO1xuICByZXR1cm4gaHVtYW5pemVLZXkocmVzb3VyY2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3BlcmF0aW9uTGFiZWwoXG4gIG9wZXJhdGlvbjogT3BlcmF0aW9uIHwgc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4gIG9wdHM/OiB7IG9yZGVyPzogJ2FjdGlvbi1yZXNvdXJjZScgfCAncmVzb3VyY2UtYWN0aW9uJzsgc2VwYXJhdG9yPzogc3RyaW5nIH0sXG4pOiBzdHJpbmcge1xuICBjb25zdCBvcmRlciA9IG9wdHM/Lm9yZGVyID8/ICdhY3Rpb24tcmVzb3VyY2UnO1xuICBjb25zdCBzZXAgPSBvcHRzPy5zZXBhcmF0b3IgPz8gJyAnO1xuXG4gIGNvbnN0IG9wID0gdHlwZW9mIG9wZXJhdGlvbiA9PT0gJ3N0cmluZycgPyBPcGVyYXRpb24uZnJvbVN0cmluZyhvcGVyYXRpb24pIDogb3BlcmF0aW9uO1xuICBpZiAoIW9wKSByZXR1cm4gJyc7XG4gIGNvbnN0IGEgPSBnZXRBY3Rpb25MYWJlbChvcC5hY3Rpb24sIGxvY2FsZSk7XG4gIGNvbnN0IHIgPSBnZXRSZXNvdXJjZUxhYmVsKG9wLnJlc291cmNlLCBsb2NhbGUpO1xuICByZXR1cm4gb3JkZXIgPT09ICdyZXNvdXJjZS1hY3Rpb24nID8gYCR7cn0ke3NlcH0ke2F9YCA6IGAke2F9JHtzZXB9JHtyfWA7XG59XG4iXX0=
@@ -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
- exports.MEDICAL_RESOURCES = [
75
- Resource.PATIENT,
76
- Resource.PATIENT_MEDICAL_NOTES,
77
- Resource.PATIENT_MEDICAL_PROPERTIES,
78
- Resource.PATIENT_PAYMENT,
79
- Resource.MEDICAL_SERVICE,
80
- Resource.MEDICAL_SERVICE_NOTE,
81
- Resource.MEDICAL_SERVICE_SCHEDULE,
82
- Resource.MEDICAL_SERVICE_FEES,
83
- Resource.MEDICAL_SERVICE_STATUS,
84
- Resource.MEDICAL_NOTE,
85
- Resource.MEDICAL_RECORD,
86
- Resource.MEDICAL_HISTORY,
87
- Resource.MEDICAL_HISTORY_MODEL,
88
- Resource.PRESCRIPTION,
89
- Resource.DIAGNOSIS,
90
- Resource.OBSERVATION,
91
- Resource.MEDICATION,
92
- Resource.ALLERGY,
93
- Resource.IMMUNIZATION,
94
- Resource.PROCEDURE,
95
- Resource.CLINICAL_NOTE,
96
- Resource.VITAL_SIGNS,
97
- Resource.MEASURE_MODEL,
98
- Resource.CALCULATED_MEASURE_MODEL,
99
- Resource.LAB_RESULT,
100
- Resource.IMAGING,
101
- Resource.MEDICAL_RESOURCE,
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 exports.MEDICAL_RESOURCES.includes(resource);
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 exports.PUBLIC_RESOURCES.includes(resource);
134
+ return RESOURCE_CATEGORIES.public.indexOf(resource) !== -1;
139
135
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBJQSw4Q0FFQztBQUtELDRDQUVDO0FBbkpEOztHQUVHO0FBQ0gsSUFBWSxRQXVFWDtBQXZFRCxXQUFZLFFBQVE7SUFDbEIsc0JBQXNCO0lBQ3RCLCtCQUFtQixDQUFBO0lBQ25CLG1EQUF1QyxDQUFBO0lBQ3ZDLHVEQUEyQyxDQUFBO0lBRTNDLGlCQUFpQjtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsK0JBQW1CLENBQUE7SUFFbkIsb0JBQW9CO0lBQ3BCLCtCQUFtQixDQUFBO0lBQ25CLDJEQUErQyxDQUFBO0lBQy9DLHFFQUF5RCxDQUFBO0lBQ3pELG1FQUF1RCxDQUFBO0lBQ3ZELCtDQUFtQyxDQUFBO0lBRW5DLGtCQUFrQjtJQUNsQiwrQ0FBbUMsQ0FBQTtJQUNuQyx5REFBNkMsQ0FBQTtJQUM3QyxpRUFBcUQsQ0FBQTtJQUNyRCx5REFBNkMsQ0FBQTtJQUM3Qyw2REFBaUQsQ0FBQTtJQUVqRCxvQkFBb0I7SUFDcEIseUNBQTZCLENBQUE7SUFDN0IsNkNBQWlDLENBQUE7SUFDakMsK0NBQW1DLENBQUE7SUFDbkMsMkRBQStDLENBQUE7SUFDL0MseUNBQTZCLENBQUE7SUFDN0IsbUNBQXVCLENBQUE7SUFDdkIsdUNBQTJCLENBQUE7SUFDM0IscUNBQXlCLENBQUE7SUFDekIsK0JBQW1CLENBQUE7SUFDbkIseUNBQTZCLENBQUE7SUFDN0IsbUNBQXVCLENBQUE7SUFFdkIsMEJBQTBCO0lBQzFCLDJDQUErQixDQUFBO0lBQy9CLHVDQUEyQixDQUFBO0lBQzNCLDJDQUErQixDQUFBO0lBQy9CLGlFQUFxRCxDQUFBO0lBRXJELFlBQVk7SUFDWixtREFBdUMsQ0FBQTtJQUN2QywrQ0FBbUMsQ0FBQTtJQUNuQyxxREFBeUMsQ0FBQTtJQUN6Qyw2Q0FBaUMsQ0FBQTtJQUNqQywrQkFBbUIsQ0FBQTtJQUVuQix3QkFBd0I7SUFDeEIsaUNBQXFCLENBQUE7SUFDckIsbUNBQXVCLENBQUE7SUFFdkIsYUFBYTtJQUNiLHFDQUF5QixDQUFBO0lBQ3pCLCtCQUFtQixDQUFBO0lBRW5CLHdCQUF3QjtJQUN4QixxQ0FBeUIsQ0FBQTtJQUN6QixpQ0FBcUIsQ0FBQTtJQUVyQixTQUFTO0lBQ1QseUNBQTZCLENBQUE7SUFDN0IsNkJBQWlCLENBQUE7SUFDakIsbUNBQXVCLENBQUE7SUFDdkIsNkJBQWlCLENBQUE7SUFFakIsb0JBQW9CO0lBQ3BCLCtDQUFtQyxDQUFBO0lBQ25DLGlEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUF2RVcsUUFBUSx3QkFBUixRQUFRLFFBdUVuQjtBQUVEOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBZTtJQUMzQyxRQUFRLENBQUMsT0FBTztJQUNoQixRQUFRLENBQUMscUJBQXFCO0lBQzlCLFFBQVEsQ0FBQywwQkFBMEI7SUFDbkMsUUFBUSxDQUFDLGVBQWU7SUFDeEIsUUFBUSxDQUFDLGVBQWU7SUFDeEIsUUFBUSxDQUFDLG9CQUFvQjtJQUM3QixRQUFRLENBQUMsd0JBQXdCO0lBQ2pDLFFBQVEsQ0FBQyxvQkFBb0I7SUFDN0IsUUFBUSxDQUFDLHNCQUFzQjtJQUMvQixRQUFRLENBQUMsWUFBWTtJQUNyQixRQUFRLENBQUMsY0FBYztJQUN2QixRQUFRLENBQUMsZUFBZTtJQUN4QixRQUFRLENBQUMscUJBQXFCO0lBQzlCLFFBQVEsQ0FBQyxZQUFZO0lBQ3JCLFFBQVEsQ0FBQyxTQUFTO0lBQ2xCLFFBQVEsQ0FBQyxXQUFXO0lBQ3BCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxZQUFZO0lBQ3JCLFFBQVEsQ0FBQyxTQUFTO0lBQ2xCLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxXQUFXO0lBQ3BCLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyx3QkFBd0I7SUFDakMsUUFBUSxDQUFDLFVBQVU7SUFDbkIsUUFBUSxDQUFDLE9BQU87SUFDaEIsUUFBUSxDQUFDLGdCQUFnQjtDQUMxQixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFlO0lBQzFDLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxpQkFBaUI7SUFDMUIsUUFBUSxDQUFDLG1CQUFtQjtJQUM1QixRQUFRLENBQUMsSUFBSTtJQUNiLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyx5QkFBeUI7SUFDbEMsUUFBUSxDQUFDLGlCQUFpQjtJQUMxQixRQUFRLENBQUMsZUFBZTtJQUN4QixRQUFRLENBQUMsa0JBQWtCO0lBQzNCLFFBQVEsQ0FBQyxjQUFjO0lBQ3ZCLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxRQUFRO0lBQ2pCLFFBQVEsQ0FBQyxTQUFTO0lBQ2xCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxRQUFRO0lBQ2pCLFFBQVEsQ0FBQyxZQUFZO0lBQ3JCLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLFNBQVM7SUFDbEIsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsZUFBZTtDQUN6QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxRQUFrQjtJQUNsRCxPQUFPLHlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFrQjtJQUNqRCxPQUFPLHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSB0eXBlcyBmb3Igb3BlcmF0aW9uc1xuICovXG5leHBvcnQgZW51bSBSZXNvdXJjZSB7XG4gIC8vIEFjY291bnQgJiBPd25lcnNoaXBcbiAgQUNDT1VOVCA9ICdBQ0NPVU5UJyxcbiAgQUNDT1VOVF9PV05FUlNISVAgPSAnQUNDT1VOVF9PV05FUlNISVAnLFxuICBBQ0NPVU5UX1BSRUZFUkVOQ0VTID0gJ0FDQ09VTlRfUFJFRkVSRU5DRVMnLFxuXG4gIC8vIFVzZXIgJiBDb250YWN0XG4gIFVTRVIgPSAnVVNFUicsXG4gIENPTlRBQ1QgPSAnQ09OVEFDVCcsXG5cbiAgLy8gUGF0aWVudCByZXNvdXJjZXNcbiAgUEFUSUVOVCA9ICdQQVRJRU5UJyxcbiAgUEFUSUVOVF9NRURJQ0FMX05PVEVTID0gJ1BBVElFTlRfTUVESUNBTF9OT1RFUycsXG4gIFBBVElFTlRfTUVESUNBTF9QUk9QRVJUSUVTID0gJ1BBVElFTlRfTUVESUNBTF9QUk9QRVJUSUVTJyxcbiAgUEFUSUVOVF9QVUJMSUNfUFJPUEVSVElFUyA9ICdQQVRJRU5UX1BVQkxJQ19QUk9QRVJUSUVTJyxcbiAgUEFUSUVOVF9QQVlNRU5UID0gJ1BBVElFTlRfUEFZTUVOVCcsXG5cbiAgLy8gTWVkaWNhbCBTZXJ2aWNlXG4gIE1FRElDQUxfU0VSVklDRSA9ICdNRURJQ0FMX1NFUlZJQ0UnLFxuICBNRURJQ0FMX1NFUlZJQ0VfTk9URSA9ICdNRURJQ0FMX1NFUlZJQ0VfTk9URScsXG4gIE1FRElDQUxfU0VSVklDRV9TQ0hFRFVMRSA9ICdNRURJQ0FMX1NFUlZJQ0VfU0NIRURVTEUnLFxuICBNRURJQ0FMX1NFUlZJQ0VfRkVFUyA9ICdNRURJQ0FMX1NFUlZJQ0VfRkVFUycsXG4gIE1FRElDQUxfU0VSVklDRV9TVEFUVVMgPSAnTUVESUNBTF9TRVJWSUNFX1NUQVRVUycsXG5cbiAgLy8gTWVkaWNhbCByZXNvdXJjZXNcbiAgTUVESUNBTF9OT1RFID0gJ01FRElDQUxfTk9URScsXG4gIE1FRElDQUxfUkVDT1JEID0gJ01FRElDQUxfUkVDT1JEJyxcbiAgTUVESUNBTF9ISVNUT1JZID0gJ01FRElDQUxfSElTVE9SWScsXG4gIE1FRElDQUxfSElTVE9SWV9NT0RFTCA9ICdNRURJQ0FMX0hJU1RPUllfTU9ERUwnLFxuICBQUkVTQ1JJUFRJT04gPSAnUFJFU0NSSVBUSU9OJyxcbiAgRElBR05PU0lTID0gJ0RJQUdOT1NJUycsXG4gIE9CU0VSVkFUSU9OID0gJ09CU0VSVkFUSU9OJyxcbiAgTUVESUNBVElPTiA9ICdNRURJQ0FUSU9OJyxcbiAgQUxMRVJHWSA9ICdBTExFUkdZJyxcbiAgSU1NVU5JWkFUSU9OID0gJ0lNTVVOSVpBVElPTicsXG4gIFBST0NFRFVSRSA9ICdQUk9DRURVUkUnLFxuXG4gIC8vIENsaW5pY2FsICYgTWVhc3VyZW1lbnRzXG4gIENMSU5JQ0FMX05PVEUgPSAnQ0xJTklDQUxfTk9URScsXG4gIFZJVEFMX1NJR05TID0gJ1ZJVEFMX1NJR05TJyxcbiAgTUVBU1VSRV9NT0RFTCA9ICdNRUFTVVJFX01PREVMJyxcbiAgQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMID0gJ0NBTENVTEFURURfTUVBU1VSRV9NT0RFTCcsXG5cbiAgLy8gRG9jdW1lbnRzXG4gIFVQTE9BREVEX0RPQ1VNRU5UID0gJ1VQTE9BREVEX0RPQ1VNRU5UJyxcbiAgRE9DVU1FTlRfTEFZT1VUID0gJ0RPQ1VNRU5UX0xBWU9VVCcsXG4gIEdFTkVSQVRFRF9ET0NVTUVOVCA9ICdHRU5FUkFURURfRE9DVU1FTlQnLFxuICBET0NVTUVOVF9NT0RFTCA9ICdET0NVTUVOVF9NT0RFTCcsXG4gIFNOSVBQRVQgPSAnU05JUFBFVCcsXG5cbiAgLy8gU2NoZWR1bGluZyAmIExvY2F0aW9uXG4gIExPQ0FUSU9OID0gJ0xPQ0FUSU9OJyxcbiAgVEFTS19UWVBFID0gJ1RBU0tfVFlQRScsXG5cbiAgLy8gRGlhZ25vc3RpY1xuICBMQUJfUkVTVUxUID0gJ0xBQl9SRVNVTFQnLFxuICBJTUFHSU5HID0gJ0lNQUdJTkcnLFxuXG4gIC8vIE1lbWJlcnNoaXAgJiBTZXR0aW5nc1xuICBNRU1CRVJTSElQID0gJ01FTUJFUlNISVAnLFxuICBTRVRUSU5HUyA9ICdTRVRUSU5HUycsXG5cbiAgLy8gU3lzdGVtXG4gIE5PVElGSUNBVElPTiA9ICdOT1RJRklDQVRJT04nLFxuICBSRVBPUlQgPSAnUkVQT1JUJyxcbiAgQVVESVRfTE9HID0gJ0FVRElUX0xPRycsXG4gIFNZU1RFTSA9ICdTWVNURU0nLFxuXG4gIC8vIEdlbmVyaWMgcmVzb3VyY2VzXG4gIFBVQkxJQ19SRVNPVVJDRSA9ICdQVUJMSUNfUkVTT1VSQ0UnLFxuICBNRURJQ0FMX1JFU09VUkNFID0gJ01FRElDQUxfUkVTT1VSQ0UnLFxufVxuXG4vKipcbiAqIE1lZGljYWwgcmVzb3VyY2VzIC0gcmVxdWlyZSBzcGVjaWFsIGFjY2VzcyBjb250cm9sXG4gKi9cbmV4cG9ydCBjb25zdCBNRURJQ0FMX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFtcbiAgUmVzb3VyY2UuUEFUSUVOVCxcbiAgUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX05PVEVTLFxuICBSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfUFJPUEVSVElFUyxcbiAgUmVzb3VyY2UuUEFUSUVOVF9QQVlNRU5ULFxuICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsXG4gIFJlc291cmNlLk1FRElDQUxfU0VSVklDRV9OT1RFLFxuICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfU0NIRURVTEUsXG4gIFJlc291cmNlLk1FRElDQUxfU0VSVklDRV9GRUVTLFxuICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTLFxuICBSZXNvdXJjZS5NRURJQ0FMX05PVEUsXG4gIFJlc291cmNlLk1FRElDQUxfUkVDT1JELFxuICBSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlksXG4gIFJlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTCxcbiAgUmVzb3VyY2UuUFJFU0NSSVBUSU9OLFxuICBSZXNvdXJjZS5ESUFHTk9TSVMsXG4gIFJlc291cmNlLk9CU0VSVkFUSU9OLFxuICBSZXNvdXJjZS5NRURJQ0FUSU9OLFxuICBSZXNvdXJjZS5BTExFUkdZLFxuICBSZXNvdXJjZS5JTU1VTklaQVRJT04sXG4gIFJlc291cmNlLlBST0NFRFVSRSxcbiAgUmVzb3VyY2UuQ0xJTklDQUxfTk9URSxcbiAgUmVzb3VyY2UuVklUQUxfU0lHTlMsXG4gIFJlc291cmNlLk1FQVNVUkVfTU9ERUwsXG4gIFJlc291cmNlLkNBTENVTEFURURfTUVBU1VSRV9NT0RFTCxcbiAgUmVzb3VyY2UuTEFCX1JFU1VMVCxcbiAgUmVzb3VyY2UuSU1BR0lORyxcbiAgUmVzb3VyY2UuTUVESUNBTF9SRVNPVVJDRSxcbl07XG5cbi8qKlxuICogUHVibGljIHJlc291cmNlcyAtIHN0YW5kYXJkIGFjY2VzcyBjb250cm9sXG4gKi9cbmV4cG9ydCBjb25zdCBQVUJMSUNfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gW1xuICBSZXNvdXJjZS5BQ0NPVU5ULFxuICBSZXNvdXJjZS5BQ0NPVU5UX09XTkVSU0hJUCxcbiAgUmVzb3VyY2UuQUNDT1VOVF9QUkVGRVJFTkNFUyxcbiAgUmVzb3VyY2UuVVNFUixcbiAgUmVzb3VyY2UuQ09OVEFDVCxcbiAgUmVzb3VyY2UuUEFUSUVOVF9QVUJMSUNfUFJPUEVSVElFUyxcbiAgUmVzb3VyY2UuVVBMT0FERURfRE9DVU1FTlQsXG4gIFJlc291cmNlLkRPQ1VNRU5UX0xBWU9VVCxcbiAgUmVzb3VyY2UuR0VORVJBVEVEX0RPQ1VNRU5ULFxuICBSZXNvdXJjZS5ET0NVTUVOVF9NT0RFTCxcbiAgUmVzb3VyY2UuU05JUFBFVCxcbiAgUmVzb3VyY2UuTE9DQVRJT04sXG4gIFJlc291cmNlLlRBU0tfVFlQRSxcbiAgUmVzb3VyY2UuTUVNQkVSU0hJUCxcbiAgUmVzb3VyY2UuU0VUVElOR1MsXG4gIFJlc291cmNlLk5PVElGSUNBVElPTixcbiAgUmVzb3VyY2UuUkVQT1JULFxuICBSZXNvdXJjZS5BVURJVF9MT0csXG4gIFJlc291cmNlLlNZU1RFTSxcbiAgUmVzb3VyY2UuUFVCTElDX1JFU09VUkNFLFxuXTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIHJlc291cmNlIGlzIG1lZGljYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWVkaWNhbFJlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gTUVESUNBTF9SRVNPVVJDRVMuaW5jbHVkZXMocmVzb3VyY2UpO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgcmVzb3VyY2UgaXMgcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1B1YmxpY1Jlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gUFVCTElDX1JFU09VUkNFUy5pbmNsdWRlcyhyZXNvdXJjZSk7XG59XG4iXX0=
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
package/package.json CHANGED
@@ -32,7 +32,7 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "version": "0.0.9",
35
+ "version": "0.0.11",
36
36
  "jest": {
37
37
  "coverageProvider": "v8",
38
38
  "testMatch": [