@doctorus/common 0.0.47 → 0.0.48

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/package.json CHANGED
@@ -32,7 +32,7 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "version": "0.0.47",
35
+ "version": "0.0.48",
36
36
  "jest": {
37
37
  "coverageProvider": "v8",
38
38
  "testMatch": [
@@ -1,119 +0,0 @@
1
- import { Action } from './actions';
2
- import { Operation } from './operation';
3
- import { Resource } from './resources';
4
- /**
5
- * Predefined operations aligned with the permission catalog architecture.
6
- */
7
- export declare const Operations: {
8
- readonly ACCOUNT_VIEW: Operation<Resource.ACCOUNT>;
9
- readonly ACCOUNT_UPDATE: Operation<Resource.ACCOUNT>;
10
- readonly ACCOUNT_TRANSFER_OWNERSHIP: Operation<Resource.ACCOUNT>;
11
- readonly USER_VIEW: Operation<Resource.USER>;
12
- readonly USER_UPDATE: Operation<Resource.USER>;
13
- readonly MEMBERSHIP_VIEW: Operation<Resource.MEMBERSHIP>;
14
- readonly MEMBERSHIP_INVITE: Operation<Resource.MEMBERSHIP>;
15
- readonly MEMBERSHIP_UPDATE: Operation<Resource.MEMBERSHIP>;
16
- readonly MEMBERSHIP_DELETE: Operation<Resource.MEMBERSHIP>;
17
- readonly ROLE_VIEW: Operation<Resource.ROLE>;
18
- readonly ROLE_CREATE: Operation<Resource.ROLE>;
19
- readonly ROLE_UPDATE: Operation<Resource.ROLE>;
20
- readonly ROLE_DELETE: Operation<Resource.ROLE>;
21
- readonly PATIENT_VIEW: Operation<Resource.PATIENT>;
22
- readonly PATIENT_CREATE: Operation<Resource.PATIENT>;
23
- readonly PATIENT_UPDATE: Operation<Resource.PATIENT>;
24
- readonly PATIENT_DELETE: Operation<Resource.PATIENT>;
25
- readonly CONTACT_VIEW: Operation<Resource.CONTACT>;
26
- readonly CONTACT_CREATE: Operation<Resource.CONTACT>;
27
- readonly CONTACT_UPDATE: Operation<Resource.CONTACT>;
28
- readonly CONTACT_DELETE: Operation<Resource.CONTACT>;
29
- readonly PATIENT_PAYMENT_VIEW: Operation<Resource.PATIENT_PAYMENT>;
30
- readonly PATIENT_PAYMENT_CREATE: Operation<Resource.PATIENT_PAYMENT>;
31
- readonly PATIENT_PAYMENT_UPDATE: Operation<Resource.PATIENT_PAYMENT>;
32
- readonly PATIENT_PAYMENT_DELETE: Operation<Resource.PATIENT_PAYMENT>;
33
- readonly MEDICAL_SERVICE_VIEW: Operation<Resource.MEDICAL_SERVICE>;
34
- readonly MEDICAL_SERVICE_CREATE: Operation<Resource.MEDICAL_SERVICE>;
35
- readonly MEDICAL_SERVICE_UPDATE: Operation<Resource.MEDICAL_SERVICE>;
36
- readonly MEDICAL_SERVICE_DELETE: Operation<Resource.MEDICAL_SERVICE>;
37
- readonly MEDICAL_SERVICE_CHECK_IN: Operation<Resource.MEDICAL_SERVICE>;
38
- readonly MEDICAL_SERVICE_COMPLETE: Operation<Resource.MEDICAL_SERVICE>;
39
- readonly MEDICAL_SERVICE_CANCEL: Operation<Resource.MEDICAL_SERVICE>;
40
- readonly MEDICAL_SERVICE_ASSIGN: Operation<Resource.MEDICAL_SERVICE>;
41
- readonly MEDICAL_SERVICE_NOTE_VIEW: Operation<Resource.MEDICAL_SERVICE_NOTE>;
42
- readonly MEDICAL_SERVICE_NOTE_CREATE: Operation<Resource.MEDICAL_SERVICE_NOTE>;
43
- readonly MEDICAL_SERVICE_NOTE_UPDATE: Operation<Resource.MEDICAL_SERVICE_NOTE>;
44
- readonly MEDICAL_SERVICE_NOTE_DELETE: Operation<Resource.MEDICAL_SERVICE_NOTE>;
45
- readonly PATIENT_MEDICAL_NOTE_VIEW: Operation<Resource.PATIENT_MEDICAL_NOTE>;
46
- readonly PATIENT_MEDICAL_NOTE_CREATE: Operation<Resource.PATIENT_MEDICAL_NOTE>;
47
- readonly PATIENT_MEDICAL_NOTE_UPDATE: Operation<Resource.PATIENT_MEDICAL_NOTE>;
48
- readonly PATIENT_MEDICAL_NOTE_DELETE: Operation<Resource.PATIENT_MEDICAL_NOTE>;
49
- readonly MEDICAL_HISTORY_VIEW: Operation<Resource.MEDICAL_HISTORY>;
50
- readonly MEDICAL_HISTORY_CREATE: Operation<Resource.MEDICAL_HISTORY>;
51
- readonly MEDICAL_HISTORY_UPDATE: Operation<Resource.MEDICAL_HISTORY>;
52
- readonly MEDICAL_HISTORY_DELETE: Operation<Resource.MEDICAL_HISTORY>;
53
- readonly OBSERVATION_VIEW: Operation<Resource.OBSERVATION>;
54
- readonly OBSERVATION_CREATE: Operation<Resource.OBSERVATION>;
55
- readonly OBSERVATION_UPDATE: Operation<Resource.OBSERVATION>;
56
- readonly OBSERVATION_DELETE: Operation<Resource.OBSERVATION>;
57
- readonly PRESCRIPTION_VIEW: Operation<Resource.PRESCRIPTION>;
58
- readonly PRESCRIPTION_CREATE: Operation<Resource.PRESCRIPTION>;
59
- readonly PRESCRIPTION_UPDATE: Operation<Resource.PRESCRIPTION>;
60
- readonly PRESCRIPTION_DELETE: Operation<Resource.PRESCRIPTION>;
61
- readonly DOCUMENT_LAYOUT_VIEW: Operation<Resource.DOCUMENT_LAYOUT>;
62
- readonly DOCUMENT_LAYOUT_CREATE: Operation<Resource.DOCUMENT_LAYOUT>;
63
- readonly DOCUMENT_LAYOUT_UPDATE: Operation<Resource.DOCUMENT_LAYOUT>;
64
- readonly DOCUMENT_LAYOUT_DELETE: Operation<Resource.DOCUMENT_LAYOUT>;
65
- readonly DOCUMENT_MODEL_VIEW: Operation<Resource.DOCUMENT_MODEL>;
66
- readonly DOCUMENT_MODEL_CREATE: Operation<Resource.DOCUMENT_MODEL>;
67
- readonly DOCUMENT_MODEL_UPDATE: Operation<Resource.DOCUMENT_MODEL>;
68
- readonly DOCUMENT_MODEL_DELETE: Operation<Resource.DOCUMENT_MODEL>;
69
- readonly GENERATED_DOCUMENT_VIEW: Operation<Resource.GENERATED_DOCUMENT>;
70
- readonly GENERATED_DOCUMENT_GENERATE: Operation<Resource.GENERATED_DOCUMENT>;
71
- readonly GENERATED_DOCUMENT_DELETE: Operation<Resource.GENERATED_DOCUMENT>;
72
- readonly UPLOAD_DOCUMENT_VIEW: Operation<Resource.UPLOAD_DOCUMENT>;
73
- readonly UPLOAD_DOCUMENT_CREATE: Operation<Resource.UPLOAD_DOCUMENT>;
74
- readonly UPLOAD_DOCUMENT_DELETE: Operation<Resource.UPLOAD_DOCUMENT>;
75
- readonly GENERAL_SETTINGS_VIEW: Operation<Resource.GENERAL_SETTINGS>;
76
- readonly GENERAL_SETTINGS_UPDATE: Operation<Resource.GENERAL_SETTINGS>;
77
- readonly PREFERENCES_VIEW: Operation<Resource.PREFERENCES>;
78
- readonly PREFERENCES_UPDATE: Operation<Resource.PREFERENCES>;
79
- readonly MEASURE_MODEL_VIEW: Operation<Resource.MEASURE_MODEL>;
80
- readonly MEASURE_MODEL_CREATE: Operation<Resource.MEASURE_MODEL>;
81
- readonly MEASURE_MODEL_UPDATE: Operation<Resource.MEASURE_MODEL>;
82
- readonly MEASURE_MODEL_DELETE: Operation<Resource.MEASURE_MODEL>;
83
- readonly CALCULATED_MEASURE_MODEL_VIEW: Operation<Resource.CALCULATED_MEASURE_MODEL>;
84
- readonly CALCULATED_MEASURE_MODEL_CREATE: Operation<Resource.CALCULATED_MEASURE_MODEL>;
85
- readonly CALCULATED_MEASURE_MODEL_UPDATE: Operation<Resource.CALCULATED_MEASURE_MODEL>;
86
- readonly CALCULATED_MEASURE_MODEL_DELETE: Operation<Resource.CALCULATED_MEASURE_MODEL>;
87
- readonly TASK_TYPE_VIEW: Operation<Resource.TASK_TYPE>;
88
- readonly TASK_TYPE_CREATE: Operation<Resource.TASK_TYPE>;
89
- readonly TASK_TYPE_UPDATE: Operation<Resource.TASK_TYPE>;
90
- readonly TASK_TYPE_DELETE: Operation<Resource.TASK_TYPE>;
91
- readonly LOCATION_VIEW: Operation<Resource.LOCATION>;
92
- readonly LOCATION_CREATE: Operation<Resource.LOCATION>;
93
- readonly LOCATION_UPDATE: Operation<Resource.LOCATION>;
94
- readonly LOCATION_DELETE: Operation<Resource.LOCATION>;
95
- readonly MEDICAL_HISTORY_MODEL_VIEW: Operation<Resource.MEDICAL_HISTORY_MODEL>;
96
- readonly MEDICAL_HISTORY_MODEL_CREATE: Operation<Resource.MEDICAL_HISTORY_MODEL>;
97
- readonly MEDICAL_HISTORY_MODEL_UPDATE: Operation<Resource.MEDICAL_HISTORY_MODEL>;
98
- readonly MEDICAL_HISTORY_MODEL_DELETE: Operation<Resource.MEDICAL_HISTORY_MODEL>;
99
- readonly PRESCRIPTION_MODEL_VIEW: Operation<Resource.PRESCRIPTION_MODEL>;
100
- readonly PRESCRIPTION_MODEL_CREATE: Operation<Resource.PRESCRIPTION_MODEL>;
101
- readonly PRESCRIPTION_MODEL_UPDATE: Operation<Resource.PRESCRIPTION_MODEL>;
102
- readonly PRESCRIPTION_MODEL_DELETE: Operation<Resource.PRESCRIPTION_MODEL>;
103
- readonly PATIENT_PROPERTY_MODEL_VIEW: Operation<Resource.PATIENT_PROPERTY_MODEL>;
104
- readonly PATIENT_PROPERTY_MODEL_CREATE: Operation<Resource.PATIENT_PROPERTY_MODEL>;
105
- readonly PATIENT_PROPERTY_MODEL_UPDATE: Operation<Resource.PATIENT_PROPERTY_MODEL>;
106
- readonly PATIENT_PROPERTY_MODEL_DELETE: Operation<Resource.PATIENT_PROPERTY_MODEL>;
107
- readonly CALENDAR_TOKEN_VIEW: Operation<Resource.CALENDAR_TOKEN>;
108
- readonly CALENDAR_TOKEN_ROTATE: Operation<Resource.CALENDAR_TOKEN>;
109
- readonly CALENDAR_SETTINGS_VIEW: Operation<Resource.CALENDAR_SETTINGS>;
110
- readonly CALENDAR_SETTINGS_UPDATE: Operation<Resource.CALENDAR_SETTINGS>;
111
- readonly CALENDAR_SYNC_ENABLE: Operation<Resource.CALENDAR_SYNC>;
112
- readonly CALENDAR_SYNC_DISABLE: Operation<Resource.CALENDAR_SYNC>;
113
- readonly CALENDAR_SYNC_VIEW: Operation<Resource.CALENDAR_SYNC>;
114
- readonly AVAILABLE_SLOTS_VIEW: Operation<Resource.AVAILABLE_SLOTS>;
115
- readonly MEDICATION_SEARCH_VIEW: Operation<Resource.MEDICATION_SEARCH>;
116
- };
117
- export declare function getAllOperations(): Operation[];
118
- export declare function getOperationsByResource(resource: Resource): Operation[];
119
- export declare function getOperationsByAction(action: Action): Operation[];
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Operations = void 0;
4
- exports.getAllOperations = getAllOperations;
5
- exports.getOperationsByResource = getOperationsByResource;
6
- exports.getOperationsByAction = getOperationsByAction;
7
- const actions_1 = require("./actions");
8
- const operation_1 = require("./operation");
9
- const resources_1 = require("./resources");
10
- /**
11
- * Predefined operations aligned with the permission catalog architecture.
12
- */
13
- exports.Operations = {
14
- ACCOUNT_VIEW: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.VIEW),
15
- ACCOUNT_UPDATE: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.UPDATE),
16
- ACCOUNT_TRANSFER_OWNERSHIP: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.TRANSFER_OWNERSHIP),
17
- USER_VIEW: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.VIEW),
18
- USER_UPDATE: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.UPDATE),
19
- MEMBERSHIP_VIEW: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.VIEW),
20
- MEMBERSHIP_INVITE: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.INVITE),
21
- MEMBERSHIP_UPDATE: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.UPDATE),
22
- MEMBERSHIP_DELETE: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.DELETE),
23
- ROLE_VIEW: new operation_1.Operation(resources_1.Resource.ROLE, actions_1.Action.VIEW),
24
- ROLE_CREATE: new operation_1.Operation(resources_1.Resource.ROLE, actions_1.Action.CREATE),
25
- ROLE_UPDATE: new operation_1.Operation(resources_1.Resource.ROLE, actions_1.Action.UPDATE),
26
- ROLE_DELETE: new operation_1.Operation(resources_1.Resource.ROLE, actions_1.Action.DELETE),
27
- PATIENT_VIEW: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.VIEW),
28
- PATIENT_CREATE: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.CREATE),
29
- PATIENT_UPDATE: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.UPDATE),
30
- PATIENT_DELETE: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.DELETE),
31
- CONTACT_VIEW: new operation_1.Operation(resources_1.Resource.CONTACT, actions_1.Action.VIEW),
32
- CONTACT_CREATE: new operation_1.Operation(resources_1.Resource.CONTACT, actions_1.Action.CREATE),
33
- CONTACT_UPDATE: new operation_1.Operation(resources_1.Resource.CONTACT, actions_1.Action.UPDATE),
34
- CONTACT_DELETE: new operation_1.Operation(resources_1.Resource.CONTACT, actions_1.Action.DELETE),
35
- PATIENT_PAYMENT_VIEW: new operation_1.Operation(resources_1.Resource.PATIENT_PAYMENT, actions_1.Action.VIEW),
36
- PATIENT_PAYMENT_CREATE: new operation_1.Operation(resources_1.Resource.PATIENT_PAYMENT, actions_1.Action.CREATE),
37
- PATIENT_PAYMENT_UPDATE: new operation_1.Operation(resources_1.Resource.PATIENT_PAYMENT, actions_1.Action.UPDATE),
38
- PATIENT_PAYMENT_DELETE: new operation_1.Operation(resources_1.Resource.PATIENT_PAYMENT, actions_1.Action.DELETE),
39
- MEDICAL_SERVICE_VIEW: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.VIEW),
40
- MEDICAL_SERVICE_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.CREATE),
41
- MEDICAL_SERVICE_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.UPDATE),
42
- MEDICAL_SERVICE_DELETE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.DELETE),
43
- MEDICAL_SERVICE_CHECK_IN: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.CHECK_IN),
44
- MEDICAL_SERVICE_COMPLETE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.COMPLETE),
45
- MEDICAL_SERVICE_CANCEL: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.CANCEL),
46
- MEDICAL_SERVICE_ASSIGN: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.ASSIGN),
47
- MEDICAL_SERVICE_NOTE_VIEW: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE_NOTE, actions_1.Action.VIEW),
48
- MEDICAL_SERVICE_NOTE_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE_NOTE, actions_1.Action.CREATE),
49
- MEDICAL_SERVICE_NOTE_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE_NOTE, actions_1.Action.UPDATE),
50
- MEDICAL_SERVICE_NOTE_DELETE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE_NOTE, actions_1.Action.DELETE),
51
- PATIENT_MEDICAL_NOTE_VIEW: new operation_1.Operation(resources_1.Resource.PATIENT_MEDICAL_NOTE, actions_1.Action.VIEW),
52
- PATIENT_MEDICAL_NOTE_CREATE: new operation_1.Operation(resources_1.Resource.PATIENT_MEDICAL_NOTE, actions_1.Action.CREATE),
53
- PATIENT_MEDICAL_NOTE_UPDATE: new operation_1.Operation(resources_1.Resource.PATIENT_MEDICAL_NOTE, actions_1.Action.UPDATE),
54
- PATIENT_MEDICAL_NOTE_DELETE: new operation_1.Operation(resources_1.Resource.PATIENT_MEDICAL_NOTE, actions_1.Action.DELETE),
55
- MEDICAL_HISTORY_VIEW: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.VIEW),
56
- MEDICAL_HISTORY_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.CREATE),
57
- MEDICAL_HISTORY_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.UPDATE),
58
- MEDICAL_HISTORY_DELETE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.DELETE),
59
- OBSERVATION_VIEW: new operation_1.Operation(resources_1.Resource.OBSERVATION, actions_1.Action.VIEW),
60
- OBSERVATION_CREATE: new operation_1.Operation(resources_1.Resource.OBSERVATION, actions_1.Action.CREATE),
61
- OBSERVATION_UPDATE: new operation_1.Operation(resources_1.Resource.OBSERVATION, actions_1.Action.UPDATE),
62
- OBSERVATION_DELETE: new operation_1.Operation(resources_1.Resource.OBSERVATION, actions_1.Action.DELETE),
63
- PRESCRIPTION_VIEW: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.VIEW),
64
- PRESCRIPTION_CREATE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.CREATE),
65
- PRESCRIPTION_UPDATE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.UPDATE),
66
- PRESCRIPTION_DELETE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.DELETE),
67
- DOCUMENT_LAYOUT_VIEW: new operation_1.Operation(resources_1.Resource.DOCUMENT_LAYOUT, actions_1.Action.VIEW),
68
- DOCUMENT_LAYOUT_CREATE: new operation_1.Operation(resources_1.Resource.DOCUMENT_LAYOUT, actions_1.Action.CREATE),
69
- DOCUMENT_LAYOUT_UPDATE: new operation_1.Operation(resources_1.Resource.DOCUMENT_LAYOUT, actions_1.Action.UPDATE),
70
- DOCUMENT_LAYOUT_DELETE: new operation_1.Operation(resources_1.Resource.DOCUMENT_LAYOUT, actions_1.Action.DELETE),
71
- DOCUMENT_MODEL_VIEW: new operation_1.Operation(resources_1.Resource.DOCUMENT_MODEL, actions_1.Action.VIEW),
72
- DOCUMENT_MODEL_CREATE: new operation_1.Operation(resources_1.Resource.DOCUMENT_MODEL, actions_1.Action.CREATE),
73
- DOCUMENT_MODEL_UPDATE: new operation_1.Operation(resources_1.Resource.DOCUMENT_MODEL, actions_1.Action.UPDATE),
74
- DOCUMENT_MODEL_DELETE: new operation_1.Operation(resources_1.Resource.DOCUMENT_MODEL, actions_1.Action.DELETE),
75
- GENERATED_DOCUMENT_VIEW: new operation_1.Operation(resources_1.Resource.GENERATED_DOCUMENT, actions_1.Action.VIEW),
76
- GENERATED_DOCUMENT_GENERATE: new operation_1.Operation(resources_1.Resource.GENERATED_DOCUMENT, actions_1.Action.GENERATE),
77
- GENERATED_DOCUMENT_DELETE: new operation_1.Operation(resources_1.Resource.GENERATED_DOCUMENT, actions_1.Action.DELETE),
78
- UPLOAD_DOCUMENT_VIEW: new operation_1.Operation(resources_1.Resource.UPLOAD_DOCUMENT, actions_1.Action.VIEW),
79
- UPLOAD_DOCUMENT_CREATE: new operation_1.Operation(resources_1.Resource.UPLOAD_DOCUMENT, actions_1.Action.CREATE),
80
- UPLOAD_DOCUMENT_DELETE: new operation_1.Operation(resources_1.Resource.UPLOAD_DOCUMENT, actions_1.Action.DELETE),
81
- GENERAL_SETTINGS_VIEW: new operation_1.Operation(resources_1.Resource.GENERAL_SETTINGS, actions_1.Action.VIEW),
82
- GENERAL_SETTINGS_UPDATE: new operation_1.Operation(resources_1.Resource.GENERAL_SETTINGS, actions_1.Action.UPDATE),
83
- PREFERENCES_VIEW: new operation_1.Operation(resources_1.Resource.PREFERENCES, actions_1.Action.VIEW),
84
- PREFERENCES_UPDATE: new operation_1.Operation(resources_1.Resource.PREFERENCES, actions_1.Action.UPDATE),
85
- MEASURE_MODEL_VIEW: new operation_1.Operation(resources_1.Resource.MEASURE_MODEL, actions_1.Action.VIEW),
86
- MEASURE_MODEL_CREATE: new operation_1.Operation(resources_1.Resource.MEASURE_MODEL, actions_1.Action.CREATE),
87
- MEASURE_MODEL_UPDATE: new operation_1.Operation(resources_1.Resource.MEASURE_MODEL, actions_1.Action.UPDATE),
88
- MEASURE_MODEL_DELETE: new operation_1.Operation(resources_1.Resource.MEASURE_MODEL, actions_1.Action.DELETE),
89
- CALCULATED_MEASURE_MODEL_VIEW: new operation_1.Operation(resources_1.Resource.CALCULATED_MEASURE_MODEL, actions_1.Action.VIEW),
90
- CALCULATED_MEASURE_MODEL_CREATE: new operation_1.Operation(resources_1.Resource.CALCULATED_MEASURE_MODEL, actions_1.Action.CREATE),
91
- CALCULATED_MEASURE_MODEL_UPDATE: new operation_1.Operation(resources_1.Resource.CALCULATED_MEASURE_MODEL, actions_1.Action.UPDATE),
92
- CALCULATED_MEASURE_MODEL_DELETE: new operation_1.Operation(resources_1.Resource.CALCULATED_MEASURE_MODEL, actions_1.Action.DELETE),
93
- TASK_TYPE_VIEW: new operation_1.Operation(resources_1.Resource.TASK_TYPE, actions_1.Action.VIEW),
94
- TASK_TYPE_CREATE: new operation_1.Operation(resources_1.Resource.TASK_TYPE, actions_1.Action.CREATE),
95
- TASK_TYPE_UPDATE: new operation_1.Operation(resources_1.Resource.TASK_TYPE, actions_1.Action.UPDATE),
96
- TASK_TYPE_DELETE: new operation_1.Operation(resources_1.Resource.TASK_TYPE, actions_1.Action.DELETE),
97
- LOCATION_VIEW: new operation_1.Operation(resources_1.Resource.LOCATION, actions_1.Action.VIEW),
98
- LOCATION_CREATE: new operation_1.Operation(resources_1.Resource.LOCATION, actions_1.Action.CREATE),
99
- LOCATION_UPDATE: new operation_1.Operation(resources_1.Resource.LOCATION, actions_1.Action.UPDATE),
100
- LOCATION_DELETE: new operation_1.Operation(resources_1.Resource.LOCATION, actions_1.Action.DELETE),
101
- MEDICAL_HISTORY_MODEL_VIEW: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY_MODEL, actions_1.Action.VIEW),
102
- MEDICAL_HISTORY_MODEL_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY_MODEL, actions_1.Action.CREATE),
103
- MEDICAL_HISTORY_MODEL_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY_MODEL, actions_1.Action.UPDATE),
104
- MEDICAL_HISTORY_MODEL_DELETE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY_MODEL, actions_1.Action.DELETE),
105
- PRESCRIPTION_MODEL_VIEW: new operation_1.Operation(resources_1.Resource.PRESCRIPTION_MODEL, actions_1.Action.VIEW),
106
- PRESCRIPTION_MODEL_CREATE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION_MODEL, actions_1.Action.CREATE),
107
- PRESCRIPTION_MODEL_UPDATE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION_MODEL, actions_1.Action.UPDATE),
108
- PRESCRIPTION_MODEL_DELETE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION_MODEL, actions_1.Action.DELETE),
109
- PATIENT_PROPERTY_MODEL_VIEW: new operation_1.Operation(resources_1.Resource.PATIENT_PROPERTY_MODEL, actions_1.Action.VIEW),
110
- PATIENT_PROPERTY_MODEL_CREATE: new operation_1.Operation(resources_1.Resource.PATIENT_PROPERTY_MODEL, actions_1.Action.CREATE),
111
- PATIENT_PROPERTY_MODEL_UPDATE: new operation_1.Operation(resources_1.Resource.PATIENT_PROPERTY_MODEL, actions_1.Action.UPDATE),
112
- PATIENT_PROPERTY_MODEL_DELETE: new operation_1.Operation(resources_1.Resource.PATIENT_PROPERTY_MODEL, actions_1.Action.DELETE),
113
- CALENDAR_TOKEN_VIEW: new operation_1.Operation(resources_1.Resource.CALENDAR_TOKEN, actions_1.Action.VIEW),
114
- CALENDAR_TOKEN_ROTATE: new operation_1.Operation(resources_1.Resource.CALENDAR_TOKEN, actions_1.Action.ROTATE),
115
- CALENDAR_SETTINGS_VIEW: new operation_1.Operation(resources_1.Resource.CALENDAR_SETTINGS, actions_1.Action.VIEW),
116
- CALENDAR_SETTINGS_UPDATE: new operation_1.Operation(resources_1.Resource.CALENDAR_SETTINGS, actions_1.Action.UPDATE),
117
- CALENDAR_SYNC_ENABLE: new operation_1.Operation(resources_1.Resource.CALENDAR_SYNC, actions_1.Action.ENABLE),
118
- CALENDAR_SYNC_DISABLE: new operation_1.Operation(resources_1.Resource.CALENDAR_SYNC, actions_1.Action.DISABLE),
119
- CALENDAR_SYNC_VIEW: new operation_1.Operation(resources_1.Resource.CALENDAR_SYNC, actions_1.Action.VIEW),
120
- AVAILABLE_SLOTS_VIEW: new operation_1.Operation(resources_1.Resource.AVAILABLE_SLOTS, actions_1.Action.VIEW),
121
- MEDICATION_SEARCH_VIEW: new operation_1.Operation(resources_1.Resource.MEDICATION_SEARCH, actions_1.Action.VIEW),
122
- };
123
- function getAllOperations() {
124
- return Object.values(exports.Operations);
125
- }
126
- function getOperationsByResource(resource) {
127
- return getAllOperations().filter((op) => op.resource === resource);
128
- }
129
- function getOperationsByAction(action) {
130
- return getAllOperations().filter((op) => op.action === action);
131
- }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zL3ByZWRlZmluZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUpBLDRDQUVDO0FBRUQsMERBRUM7QUFFRCxzREFFQztBQTNKRCx1Q0FBbUM7QUFDbkMsMkNBQXdDO0FBQ3hDLDJDQUF1QztBQUV2Qzs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLFlBQVksRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUQsY0FBYyxFQUFFLElBQUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUM5RCwwQkFBMEIsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUV0RixTQUFTLEVBQUUsSUFBSSxxQkFBUyxDQUFDLG9CQUFRLENBQUMsSUFBSSxFQUFFLGdCQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3BELFdBQVcsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxJQUFJLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFFeEQsZUFBZSxFQUFFLElBQUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBTSxDQUFDLElBQUksQ0FBQztJQUNoRSxpQkFBaUIsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxVQUFVLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDcEUsaUJBQWlCLEVBQUUsSUFBSSxxQkFBUyxDQUFDLG9CQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3BFLGlCQUFpQixFQUFFLElBQUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBTSxDQUFDLE1B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QUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLGFBQWEsRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRSxxQkFBcUIsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxhQUFhLEVBQUUsZ0JBQU0sQ0FBQyxPQUFPLENBQUM7SUFDNUUsa0JBQWtCLEVBQUUsSUFBSSxxQkFBUyxDQUFDLG9CQUFRLENBQUMsYUFBYSxFQUFFLGdCQUFNLENBQUMsSUFBSSxDQUFDO0lBRXRFLG9CQUFvQixFQUFFLElBQUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLGVBQWUsRUFBRSxnQkFBTSxDQUFDLElBQUksQ0FBQztJQUMxRSxzQkFBc0IsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBTSxDQUFDLElBQUksQ0FBQztDQUN0RSxDQUFDO0FBRVgsU0FBZ0IsZ0JBQWdCO0lBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLFFBQWtCO0lBQ3hELE9BQU8sZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLE1BQWM7SUFDbEQsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG4vKipcbiAqIFByZWRlZmluZWQgb3BlcmF0aW9ucyBhbGlnbmVkIHdpdGggdGhlIHBlcm1pc3Npb24gY2F0YWxvZyBhcmNoaXRlY3R1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBPcGVyYXRpb25zID0ge1xuICBBQ0NPVU5UX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQUNDT1VOVCwgQWN0aW9uLlZJRVcpLFxuICBBQ0NPVU5UX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5BQ0NPVU5ULCBBY3Rpb24uVVBEQVRFKSxcbiAgQUNDT1VOVF9UUkFOU0ZFUl9PV05FUlNISVA6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQUNDT1VOVCwgQWN0aW9uLlRSQU5TRkVSX09XTkVSU0hJUCksXG5cbiAgVVNFUl9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlVTRVIsIEFjdGlvbi5WSUVXKSxcbiAgVVNFUl9VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVNFUiwgQWN0aW9uLlVQREFURSksXG5cbiAgTUVNQkVSU0hJUF9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FTUJFUlNISVAsIEFjdGlvbi5WSUVXKSxcbiAgTUVNQkVSU0hJUF9JTlZJVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVNQkVSU0hJUCwgQWN0aW9uLklOVklURSksXG4gIE1FTUJFUlNISVBfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FTUJFUlNISVAsIEFjdGlvbi5VUERBVEUpLFxuICBNRU1CRVJTSElQX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRU1CRVJTSElQLCBBY3Rpb24uREVMRVRFKSxcblxuICBST0xFX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUk9MRSwgQWN0aW9uLlZJRVcpLFxuICBST0xFX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5ST0xFLCBBY3Rpb24uQ1JFQVRFKSxcbiAgUk9MRV9VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUk9MRSwgQWN0aW9uLlVQREFURSksXG4gIFJPTEVfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlJPTEUsIEFjdGlvbi5ERUxFVEUpLFxuXG4gIFBBVElFTlRfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QQVRJRU5ULCBBY3Rpb24uVklFVyksXG4gIFBBVElFTlRfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlQsIEFjdGlvbi5DUkVBVEUpLFxuICBQQVRJRU5UX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QQVRJRU5ULCBBY3Rpb24uVVBEQVRFKSxcbiAgUEFUSUVOVF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVCwgQWN0aW9uLkRFTEVURSksXG5cbiAgQ09OVEFDVF9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNPTlRBQ1QsIEFjdGlvbi5WSUVXKSxcbiAgQ09OVEFDVF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQ09OVEFDVCwgQWN0aW9uLkNSRUFURSksXG4gIENPTlRBQ1RfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNPTlRBQ1QsIEFjdGlvbi5VUERBVEUpLFxuICBDT05UQUNUX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5DT05UQUNULCBBY3Rpb24uREVMRVRFKSxcblxuICBQQVRJRU5UX1BBWU1FTlRfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QQVRJRU5UX1BBWU1FTlQsIEFjdGlvbi5WSUVXKSxcbiAgUEFUSUVOVF9QQVlNRU5UX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QQVRJRU5UX1BBWU1FTlQsIEFjdGlvbi5DUkVBVEUpLFxuICBQQVRJRU5UX1BBWU1FTlRfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlRfUEFZTUVOVCwgQWN0aW9uLlVQREFURSksXG4gIFBBVElFTlRfUEFZTUVOVF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVF9QQVlNRU5ULCBBY3Rpb24uREVMRVRFKSxcblxuICBNRURJQ0FMX1NFUlZJQ0VfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsIEFjdGlvbi5WSUVXKSxcbiAgTUVESUNBTF9TRVJWSUNFX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsIEFjdGlvbi5DUkVBVEUpLFxuICBNRURJQ0FMX1NFUlZJQ0VfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfU0VSVklDRSwgQWN0aW9uLlVQREFURSksXG4gIE1FRElDQUxfU0VSVklDRV9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFLCBBY3Rpb24uREVMRVRFKSxcbiAgTUVESUNBTF9TRVJWSUNFX0NIRUNLX0lOOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfU0VSVklDRSwgQWN0aW9uLkNIRUNLX0lOKSxcbiAgTUVESUNBTF9TRVJWSUNFX0NPTVBMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfU0VSVklDRSwgQWN0aW9uLkNPTVBMRVRFKSxcbiAgTUVESUNBTF9TRVJWSUNFX0NBTkNFTDogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsIEFjdGlvbi5DQU5DRUwpLFxuICBNRURJQ0FMX1NFUlZJQ0VfQVNTSUdOOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfU0VSVklDRSwgQWN0aW9uLkFTU0lHTiksXG5cbiAgTUVESUNBTF9TRVJWSUNFX05PVEVfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URSwgQWN0aW9uLlZJRVcpLFxuICBNRURJQ0FMX1NFUlZJQ0VfTk9URV9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX05PVEUsIEFjdGlvbi5DUkVBVEUpLFxuICBNRURJQ0FMX1NFUlZJQ0VfTk9URV9VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX05PVEUsIEFjdGlvbi5VUERBVEUpLFxuICBNRURJQ0FMX1NFUlZJQ0VfTk9URV9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX05PVEUsIEFjdGlvbi5ERUxFVEUpLFxuXG4gIFBBVElFTlRfTUVESUNBTF9OT1RFX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX05PVEUsIEFjdGlvbi5WSUVXKSxcbiAgUEFUSUVOVF9NRURJQ0FMX05PVEVfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFLCBBY3Rpb24uQ1JFQVRFKSxcbiAgUEFUSUVOVF9NRURJQ0FMX05PVEVfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFLCBBY3Rpb24uVVBEQVRFKSxcbiAgUEFUSUVOVF9NRURJQ0FMX05PVEVfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFLCBBY3Rpb24uREVMRVRFKSxcblxuICBNRURJQ0FMX0hJU1RPUllfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlksIEFjdGlvbi5WSUVXKSxcbiAgTUVESUNBTF9ISVNUT1JZX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlksIEFjdGlvbi5DUkVBVEUpLFxuICBNRURJQ0FMX0hJU1RPUllfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfSElTVE9SWSwgQWN0aW9uLlVQREFURSksXG4gIE1FRElDQUxfSElTVE9SWV9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZLCBBY3Rpb24uREVMRVRFKSxcblxuICBPQlNFUlZBVElPTl9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk9CU0VSVkFUSU9OLCBBY3Rpb24uVklFVyksXG4gIE9CU0VSVkFUSU9OX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5PQlNFUlZBVElPTiwgQWN0aW9uLkNSRUFURSksXG4gIE9CU0VSVkFUSU9OX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5PQlNFUlZBVElPTiwgQWN0aW9uLlVQREFURSksXG4gIE9CU0VSVkFUSU9OX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5PQlNFUlZBVElPTiwgQWN0aW9uLkRFTEVURSksXG5cbiAgUFJFU0NSSVBUSU9OX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUFJFU0NSSVBUSU9OLCBBY3Rpb24uVklFVyksXG4gIFBSRVNDUklQVElPTl9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUFJFU0NSSVBUSU9OLCBBY3Rpb24uQ1JFQVRFKSxcbiAgUFJFU0NSSVBUSU9OX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QUkVTQ1JJUFRJT04sIEFjdGlvbi5VUERBVEUpLFxuICBQUkVTQ1JJUFRJT05fREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRVNDUklQVElPTiwgQWN0aW9uLkRFTEVURSksXG5cbiAgRE9DVU1FTlRfTEFZT1VUX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRE9DVU1FTlRfTEFZT1VULCBBY3Rpb24uVklFVyksXG4gIERPQ1VNRU5UX0xBWU9VVF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRE9DVU1FTlRfTEFZT1VULCBBY3Rpb24uQ1JFQVRFKSxcbiAgRE9DVU1FTlRfTEFZT1VUX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5ET0NVTUVOVF9MQVlPVVQsIEFjdGlvbi5VUERBVEUpLFxuICBET0NVTUVOVF9MQVlPVVRfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkRPQ1VNRU5UX0xBWU9VVCwgQWN0aW9uLkRFTEVURSksXG5cbiAgRE9DVU1FTlRfTU9ERUxfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5ET0NVTUVOVF9NT0RFTCwgQWN0aW9uLlZJRVcpLFxuICBET0NVTUVOVF9NT0RFTF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUwsIEFjdGlvbi5DUkVBVEUpLFxuICBET0NVTUVOVF9NT0RFTF9VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUwsIEFjdGlvbi5VUERBVEUpLFxuICBET0NVTUVOVF9NT0RFTF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUwsIEFjdGlvbi5ERUxFVEUpLFxuXG4gIEdFTkVSQVRFRF9ET0NVTUVOVF9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVCwgQWN0aW9uLlZJRVcpLFxuICBHRU5FUkFURURfRE9DVU1FTlRfR0VORVJBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuR0VORVJBVEVEX0RPQ1VNRU5ULCBBY3Rpb24uR0VORVJBVEUpLFxuICBHRU5FUkFURURfRE9DVU1FTlRfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVCwgQWN0aW9uLkRFTEVURSksXG5cbiAgVVBMT0FEX0RPQ1VNRU5UX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVBMT0FEX0RPQ1VNRU5ULCBBY3Rpb24uVklFVyksXG4gIFVQTE9BRF9ET0NVTUVOVF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVBMT0FEX0RPQ1VNRU5ULCBBY3Rpb24uQ1JFQVRFKSxcbiAgVVBMT0FEX0RPQ1VNRU5UX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5VUExPQURfRE9DVU1FTlQsIEFjdGlvbi5ERUxFVEUpLFxuXG4gIEdFTkVSQUxfU0VUVElOR1NfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5HRU5FUkFMX1NFVFRJTkdTLCBBY3Rpb24uVklFVyksXG4gIEdFTkVSQUxfU0VUVElOR1NfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkdFTkVSQUxfU0VUVElOR1MsIEFjdGlvbi5VUERBVEUpLFxuICBQUkVGRVJFTkNFU19WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRUZFUkVOQ0VTLCBBY3Rpb24uVklFVyksXG4gIFBSRUZFUkVOQ0VTX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QUkVGRVJFTkNFUywgQWN0aW9uLlVQREFURSksXG5cbiAgTUVBU1VSRV9NT0RFTF9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FQVNVUkVfTU9ERUwsIEFjdGlvbi5WSUVXKSxcbiAgTUVBU1VSRV9NT0RFTF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVBU1VSRV9NT0RFTCwgQWN0aW9uLkNSRUFURSksXG4gIE1FQVNVUkVfTU9ERUxfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FQVNVUkVfTU9ERUwsIEFjdGlvbi5VUERBVEUpLFxuICBNRUFTVVJFX01PREVMX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRUFTVVJFX01PREVMLCBBY3Rpb24uREVMRVRFKSxcblxuICBDQUxDVUxBVEVEX01FQVNVUkVfTU9ERUxfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5DQUxDVUxBVEVEX01FQVNVUkVfTU9ERUwsIEFjdGlvbi5WSUVXKSxcbiAgQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5DQUxDVUxBVEVEX01FQVNVUkVfTU9ERUwsIEFjdGlvbi5DUkVBVEUpLFxuICBDQUxDVUxBVEVEX01FQVNVUkVfTU9ERUxfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNBTENVTEFURURfTUVBU1VSRV9NT0RFTCwgQWN0aW9uLlVQREFURSksXG4gIENBTENVTEFURURfTUVBU1VSRV9NT0RFTF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMLCBBY3Rpb24uREVMRVRFKSxcblxuICBUQVNLX1RZUEVfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5UQVNLX1RZUEUsIEFjdGlvbi5WSUVXKSxcbiAgVEFTS19UWVBFX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5UQVNLX1RZUEUsIEFjdGlvbi5DUkVBVEUpLFxuICBUQVNLX1RZUEVfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlRBU0tfVFlQRSwgQWN0aW9uLlVQREFURSksXG4gIFRBU0tfVFlQRV9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVEFTS19UWVBFLCBBY3Rpb24uREVMRVRFKSxcblxuICBMT0NBVElPTl9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkxPQ0FUSU9OLCBBY3Rpb24uVklFVyksXG4gIExPQ0FUSU9OX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5MT0NBVElPTiwgQWN0aW9uLkNSRUFURSksXG4gIExPQ0FUSU9OX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5MT0NBVElPTiwgQWN0aW9uLlVQREFURSksXG4gIExPQ0FUSU9OX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5MT0NBVElPTiwgQWN0aW9uLkRFTEVURSksXG5cbiAgTUVESUNBTF9ISVNUT1JZX01PREVMX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZX01PREVMLCBBY3Rpb24uVklFVyksXG4gIE1FRElDQUxfSElTVE9SWV9NT0RFTF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZX01PREVMLCBBY3Rpb24uQ1JFQVRFKSxcbiAgTUVESUNBTF9ISVNUT1JZX01PREVMX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUllfTU9ERUwsIEFjdGlvbi5VUERBVEUpLFxuICBNRURJQ0FMX0hJU1RPUllfTU9ERUxfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTCwgQWN0aW9uLkRFTEVURSksXG5cbiAgUFJFU0NSSVBUSU9OX01PREVMX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUFJFU0NSSVBUSU9OX01PREVMLCBBY3Rpb24uVklFVyksXG4gIFBSRVNDUklQVElPTl9NT0RFTF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUFJFU0NSSVBUSU9OX01PREVMLCBBY3Rpb24uQ1JFQVRFKSxcbiAgUFJFU0NSSVBUSU9OX01PREVMX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QUkVTQ1JJUFRJT05fTU9ERUwsIEFjdGlvbi5VUERBVEUpLFxuICBQUkVTQ1JJUFRJT05fTU9ERUxfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRVNDUklQVElPTl9NT0RFTCwgQWN0aW9uLkRFTEVURSksXG5cbiAgUEFUSUVOVF9QUk9QRVJUWV9NT0RFTF9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlRfUFJPUEVSVFlfTU9ERUwsIEFjdGlvbi5WSUVXKSxcbiAgUEFUSUVOVF9QUk9QRVJUWV9NT0RFTF9DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVF9QUk9QRVJUWV9NT0RFTCwgQWN0aW9uLkNSRUFURSksXG4gIFBBVElFTlRfUFJPUEVSVFlfTU9ERUxfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlRfUFJPUEVSVFlfTU9ERUwsIEFjdGlvbi5VUERBVEUpLFxuICBQQVRJRU5UX1BST1BFUlRZX01PREVMX0RFTEVURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QQVRJRU5UX1BST1BFUlRZX01PREVMLCBBY3Rpb24uREVMRVRFKSxcblxuICBDQUxFTkRBUl9UT0tFTl9WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNBTEVOREFSX1RPS0VOLCBBY3Rpb24uVklFVyksXG4gIENBTEVOREFSX1RPS0VOX1JPVEFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5DQUxFTkRBUl9UT0tFTiwgQWN0aW9uLlJPVEFURSksXG4gIENBTEVOREFSX1NFVFRJTkdTX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQ0FMRU5EQVJfU0VUVElOR1MsIEFjdGlvbi5WSUVXKSxcbiAgQ0FMRU5EQVJfU0VUVElOR1NfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNBTEVOREFSX1NFVFRJTkdTLCBBY3Rpb24uVVBEQVRFKSxcblxuICBDQUxFTkRBUl9TWU5DX0VOQUJMRTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5DQUxFTkRBUl9TWU5DLCBBY3Rpb24uRU5BQkxFKSxcbiAgQ0FMRU5EQVJfU1lOQ19ESVNBQkxFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNBTEVOREFSX1NZTkMsIEFjdGlvbi5ESVNBQkxFKSxcbiAgQ0FMRU5EQVJfU1lOQ19WSUVXOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkNBTEVOREFSX1NZTkMsIEFjdGlvbi5WSUVXKSxcblxuICBBVkFJTEFCTEVfU0xPVFNfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5BVkFJTEFCTEVfU0xPVFMsIEFjdGlvbi5WSUVXKSxcbiAgTUVESUNBVElPTl9TRUFSQ0hfVklFVzogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FUSU9OX1NFQVJDSCwgQWN0aW9uLlZJRVcpLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbE9wZXJhdGlvbnMoKTogT3BlcmF0aW9uW10ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhPcGVyYXRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9wZXJhdGlvbnNCeVJlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZSk6IE9wZXJhdGlvbltdIHtcbiAgcmV0dXJuIGdldEFsbE9wZXJhdGlvbnMoKS5maWx0ZXIoKG9wKSA9PiBvcC5yZXNvdXJjZSA9PT0gcmVzb3VyY2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3BlcmF0aW9uc0J5QWN0aW9uKGFjdGlvbjogQWN0aW9uKTogT3BlcmF0aW9uW10ge1xuICByZXR1cm4gZ2V0QWxsT3BlcmF0aW9ucygpLmZpbHRlcigob3ApID0+IG9wLmFjdGlvbiA9PT0gYWN0aW9uKTtcbn1cbiJdfQ==