@doctorus/common 0.0.41 → 0.0.43
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/README.md +2 -2
- package/lib/operations/actions.d.ts +25 -53
- package/lib/operations/actions.js +57 -55
- package/lib/operations/index.d.ts +3 -3
- package/lib/operations/index.js +26 -7
- package/lib/operations/labels.d.ts +2 -1
- package/lib/operations/labels.js +58 -118
- package/lib/operations/predefined.d.ts +92 -87
- package/lib/operations/predefined.js +99 -94
- package/lib/operations/resource-actions.d.ts +13 -0
- package/lib/operations/resource-actions.js +93 -0
- package/lib/operations/resources.d.ts +41 -24
- package/lib/operations/resources.js +87 -50
- package/package.json +1 -1
|
@@ -1,120 +1,157 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.Resource = void 0;
|
|
3
|
+
exports.SYSTEM_RESOURCES = exports.EXTERNAL_RESOURCES = exports.SCHEDULING_RESOURCES = exports.INTEGRATION_RESOURCES = exports.SETTINGS_RESOURCES = exports.DOCUMENT_RESOURCES = exports.CLINICAL_RESOURCES = exports.MEMBERSHIP_RESOURCES = exports.CORE_RESOURCES = exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.ResourceCategory = exports.Resource = void 0;
|
|
4
4
|
exports.isMedicalResource = isMedicalResource;
|
|
5
5
|
exports.isPublicResource = isPublicResource;
|
|
6
6
|
exports.getAllResources = getAllResources;
|
|
7
7
|
exports.getResourceCategories = getResourceCategories;
|
|
8
|
+
exports.getResourcesByCategory = getResourcesByCategory;
|
|
9
|
+
exports.getResourcesByCategories = getResourcesByCategories;
|
|
8
10
|
/**
|
|
9
|
-
* Resource types aligned with the
|
|
11
|
+
* Resource types aligned with the provided schema taxonomy.
|
|
10
12
|
*/
|
|
11
13
|
var Resource;
|
|
12
14
|
(function (Resource) {
|
|
13
15
|
Resource["ACCOUNT"] = "ACCOUNT";
|
|
14
|
-
Resource["ACCOUNT_GENERAL_SETTINGS"] = "ACCOUNT_GENERAL_SETTINGS";
|
|
15
|
-
Resource["ACCOUNT_LOCATION"] = "ACCOUNT_LOCATION";
|
|
16
|
-
Resource["ACCOUNT_PREFERENCES"] = "ACCOUNT_PREFERENCES";
|
|
17
|
-
Resource["ACCOUNT_SUMMARY"] = "ACCOUNT_SUMMARY";
|
|
18
|
-
Resource["AVAILABLE_SLOT"] = "AVAILABLE_SLOT";
|
|
19
16
|
Resource["CALCULATED_MEASURE_MODEL"] = "CALCULATED_MEASURE_MODEL";
|
|
17
|
+
Resource["CALENDAR_SETTINGS"] = "CALENDAR_SETTINGS";
|
|
20
18
|
Resource["CALENDAR_SYNC"] = "CALENDAR_SYNC";
|
|
21
19
|
Resource["CALENDAR_TOKEN"] = "CALENDAR_TOKEN";
|
|
22
20
|
Resource["CONTACT"] = "CONTACT";
|
|
23
21
|
Resource["DOCUMENT_LAYOUT"] = "DOCUMENT_LAYOUT";
|
|
24
22
|
Resource["DOCUMENT_MODEL"] = "DOCUMENT_MODEL";
|
|
23
|
+
Resource["GENERAL_SETTINGS"] = "GENERAL_SETTINGS";
|
|
25
24
|
Resource["GENERATED_DOCUMENT"] = "GENERATED_DOCUMENT";
|
|
26
|
-
Resource["
|
|
25
|
+
Resource["LOCATION"] = "LOCATION";
|
|
27
26
|
Resource["MEASURE_MODEL"] = "MEASURE_MODEL";
|
|
27
|
+
Resource["MEDICATION_SEARCH"] = "MEDICATION_SEARCH";
|
|
28
28
|
Resource["MEDICAL_HISTORY"] = "MEDICAL_HISTORY";
|
|
29
29
|
Resource["MEDICAL_HISTORY_MODEL"] = "MEDICAL_HISTORY_MODEL";
|
|
30
30
|
Resource["MEDICAL_SERVICE"] = "MEDICAL_SERVICE";
|
|
31
|
-
Resource["MEDICAL_SERVICE_ASSIGNEES"] = "MEDICAL_SERVICE_ASSIGNEES";
|
|
32
|
-
Resource["MEDICAL_SERVICE_DESCRIPTION"] = "MEDICAL_SERVICE_DESCRIPTION";
|
|
33
|
-
Resource["MEDICAL_SERVICE_FEES"] = "MEDICAL_SERVICE_FEES";
|
|
34
|
-
Resource["MEDICAL_SERVICE_LOCATION"] = "MEDICAL_SERVICE_LOCATION";
|
|
35
31
|
Resource["MEDICAL_SERVICE_NOTE"] = "MEDICAL_SERVICE_NOTE";
|
|
36
|
-
Resource["MEDICAL_SERVICE_SCHEDULE"] = "MEDICAL_SERVICE_SCHEDULE";
|
|
37
|
-
Resource["MEDICAL_SERVICE_STATUS"] = "MEDICAL_SERVICE_STATUS";
|
|
38
|
-
Resource["MEDICAL_SERVICE_TIMESTAMPS"] = "MEDICAL_SERVICE_TIMESTAMPS";
|
|
39
32
|
Resource["MEMBERSHIP"] = "MEMBERSHIP";
|
|
40
|
-
Resource["MEDICATION"] = "MEDICATION";
|
|
41
33
|
Resource["OBSERVATION"] = "OBSERVATION";
|
|
42
34
|
Resource["PATIENT"] = "PATIENT";
|
|
43
|
-
Resource["
|
|
44
|
-
Resource["PATIENT_MEDICAL_PROPERTIES"] = "PATIENT_MEDICAL_PROPERTIES";
|
|
35
|
+
Resource["PATIENT_MEDICAL_NOTE"] = "PATIENT_MEDICAL_NOTE";
|
|
45
36
|
Resource["PATIENT_PAYMENT"] = "PATIENT_PAYMENT";
|
|
46
|
-
Resource["
|
|
47
|
-
Resource["
|
|
48
|
-
Resource["PATIENT_STATUS"] = "PATIENT_STATUS";
|
|
37
|
+
Resource["PATIENT_PROPERTY_MODEL"] = "PATIENT_PROPERTY_MODEL";
|
|
38
|
+
Resource["PREFERENCES"] = "PREFERENCES";
|
|
49
39
|
Resource["PRESCRIPTION"] = "PRESCRIPTION";
|
|
50
40
|
Resource["PRESCRIPTION_MODEL"] = "PRESCRIPTION_MODEL";
|
|
41
|
+
Resource["ROLE"] = "ROLE";
|
|
51
42
|
Resource["TASK_TYPE"] = "TASK_TYPE";
|
|
52
43
|
Resource["UPLOAD_DOCUMENT"] = "UPLOAD_DOCUMENT";
|
|
53
44
|
Resource["USER"] = "USER";
|
|
54
|
-
Resource["
|
|
55
|
-
Resource["USER_PREFERENCES"] = "USER_PREFERENCES";
|
|
45
|
+
Resource["AVAILABLE_SLOTS"] = "AVAILABLE_SLOTS";
|
|
56
46
|
})(Resource || (exports.Resource = Resource = {}));
|
|
47
|
+
var ResourceCategory;
|
|
48
|
+
(function (ResourceCategory) {
|
|
49
|
+
ResourceCategory["CORE"] = "core";
|
|
50
|
+
ResourceCategory["MEMBERSHIP"] = "membership";
|
|
51
|
+
ResourceCategory["CLINICAL"] = "clinical";
|
|
52
|
+
ResourceCategory["DOCUMENTS"] = "documents";
|
|
53
|
+
ResourceCategory["SETTINGS"] = "settings";
|
|
54
|
+
ResourceCategory["INTEGRATION"] = "integration";
|
|
55
|
+
ResourceCategory["SCHEDULING"] = "scheduling";
|
|
56
|
+
ResourceCategory["EXTERNAL"] = "external";
|
|
57
|
+
ResourceCategory["SYSTEM"] = "system";
|
|
58
|
+
})(ResourceCategory || (exports.ResourceCategory = ResourceCategory = {}));
|
|
57
59
|
const RESOURCE_CATEGORIES = {
|
|
60
|
+
core: [Resource.ACCOUNT],
|
|
61
|
+
membership: [Resource.USER, Resource.MEMBERSHIP],
|
|
62
|
+
clinical: [
|
|
63
|
+
Resource.PATIENT,
|
|
64
|
+
Resource.CONTACT,
|
|
65
|
+
Resource.MEDICAL_SERVICE,
|
|
66
|
+
Resource.MEDICAL_SERVICE_NOTE,
|
|
67
|
+
Resource.PATIENT_MEDICAL_NOTE,
|
|
68
|
+
Resource.MEDICAL_HISTORY,
|
|
69
|
+
Resource.OBSERVATION,
|
|
70
|
+
Resource.PRESCRIPTION,
|
|
71
|
+
Resource.PATIENT_PAYMENT,
|
|
72
|
+
],
|
|
73
|
+
documents: [Resource.DOCUMENT_LAYOUT, Resource.DOCUMENT_MODEL, Resource.GENERATED_DOCUMENT, Resource.UPLOAD_DOCUMENT],
|
|
74
|
+
settings: [
|
|
75
|
+
Resource.GENERAL_SETTINGS,
|
|
76
|
+
Resource.PREFERENCES,
|
|
77
|
+
Resource.MEASURE_MODEL,
|
|
78
|
+
Resource.CALCULATED_MEASURE_MODEL,
|
|
79
|
+
Resource.TASK_TYPE,
|
|
80
|
+
Resource.LOCATION,
|
|
81
|
+
Resource.MEDICAL_HISTORY_MODEL,
|
|
82
|
+
Resource.PRESCRIPTION_MODEL,
|
|
83
|
+
Resource.PATIENT_PROPERTY_MODEL,
|
|
84
|
+
],
|
|
85
|
+
integration: [Resource.CALENDAR_TOKEN, Resource.CALENDAR_SETTINGS, Resource.CALENDAR_SYNC],
|
|
86
|
+
scheduling: [Resource.AVAILABLE_SLOTS],
|
|
87
|
+
external: [Resource.MEDICATION_SEARCH],
|
|
88
|
+
system: [],
|
|
89
|
+
};
|
|
90
|
+
const LEGACY_RESOURCE_CATEGORIES = {
|
|
58
91
|
medical: [
|
|
59
|
-
Resource.
|
|
92
|
+
Resource.AVAILABLE_SLOTS,
|
|
60
93
|
Resource.CALCULATED_MEASURE_MODEL,
|
|
61
94
|
Resource.CONTACT,
|
|
62
95
|
Resource.GENERATED_DOCUMENT,
|
|
63
96
|
Resource.MEASURE_MODEL,
|
|
97
|
+
Resource.MEDICATION_SEARCH,
|
|
64
98
|
Resource.MEDICAL_HISTORY,
|
|
65
99
|
Resource.MEDICAL_HISTORY_MODEL,
|
|
66
100
|
Resource.MEDICAL_SERVICE,
|
|
67
|
-
Resource.MEDICAL_SERVICE_ASSIGNEES,
|
|
68
|
-
Resource.MEDICAL_SERVICE_DESCRIPTION,
|
|
69
|
-
Resource.MEDICAL_SERVICE_FEES,
|
|
70
|
-
Resource.MEDICAL_SERVICE_LOCATION,
|
|
71
101
|
Resource.MEDICAL_SERVICE_NOTE,
|
|
72
|
-
Resource.MEDICAL_SERVICE_SCHEDULE,
|
|
73
|
-
Resource.MEDICAL_SERVICE_STATUS,
|
|
74
|
-
Resource.MEDICAL_SERVICE_TIMESTAMPS,
|
|
75
|
-
Resource.MEDICATION,
|
|
76
102
|
Resource.OBSERVATION,
|
|
77
103
|
Resource.PATIENT,
|
|
78
|
-
Resource.
|
|
79
|
-
Resource.PATIENT_MEDICAL_PROPERTIES,
|
|
104
|
+
Resource.PATIENT_MEDICAL_NOTE,
|
|
80
105
|
Resource.PATIENT_PAYMENT,
|
|
81
|
-
Resource.
|
|
82
|
-
Resource.PATIENT_PUBLIC_PROPERTIES,
|
|
83
|
-
Resource.PATIENT_STATUS,
|
|
106
|
+
Resource.PATIENT_PROPERTY_MODEL,
|
|
84
107
|
Resource.PRESCRIPTION,
|
|
85
108
|
Resource.PRESCRIPTION_MODEL,
|
|
86
109
|
Resource.UPLOAD_DOCUMENT,
|
|
87
110
|
],
|
|
88
111
|
public: [
|
|
89
112
|
Resource.ACCOUNT,
|
|
90
|
-
Resource.
|
|
91
|
-
Resource.ACCOUNT_LOCATION,
|
|
92
|
-
Resource.ACCOUNT_PREFERENCES,
|
|
93
|
-
Resource.ACCOUNT_SUMMARY,
|
|
113
|
+
Resource.CALENDAR_SETTINGS,
|
|
94
114
|
Resource.CALENDAR_SYNC,
|
|
95
115
|
Resource.CALENDAR_TOKEN,
|
|
96
116
|
Resource.DOCUMENT_LAYOUT,
|
|
97
117
|
Resource.DOCUMENT_MODEL,
|
|
98
|
-
Resource.
|
|
118
|
+
Resource.GENERAL_SETTINGS,
|
|
119
|
+
Resource.LOCATION,
|
|
99
120
|
Resource.MEMBERSHIP,
|
|
121
|
+
Resource.PREFERENCES,
|
|
122
|
+
Resource.ROLE,
|
|
100
123
|
Resource.TASK_TYPE,
|
|
101
124
|
Resource.USER,
|
|
102
|
-
Resource.USER_CALENDAR_PREFERENCES,
|
|
103
|
-
Resource.USER_PREFERENCES,
|
|
104
125
|
],
|
|
105
126
|
};
|
|
106
|
-
exports.MEDICAL_RESOURCES = [...
|
|
107
|
-
exports.PUBLIC_RESOURCES = [...
|
|
127
|
+
exports.MEDICAL_RESOURCES = [...LEGACY_RESOURCE_CATEGORIES.medical];
|
|
128
|
+
exports.PUBLIC_RESOURCES = [...LEGACY_RESOURCE_CATEGORIES.public];
|
|
129
|
+
exports.CORE_RESOURCES = [...RESOURCE_CATEGORIES.core];
|
|
130
|
+
exports.MEMBERSHIP_RESOURCES = [...RESOURCE_CATEGORIES.membership];
|
|
131
|
+
exports.CLINICAL_RESOURCES = [...RESOURCE_CATEGORIES.clinical];
|
|
132
|
+
exports.DOCUMENT_RESOURCES = [...RESOURCE_CATEGORIES.documents];
|
|
133
|
+
exports.SETTINGS_RESOURCES = [...RESOURCE_CATEGORIES.settings];
|
|
134
|
+
exports.INTEGRATION_RESOURCES = [...RESOURCE_CATEGORIES.integration];
|
|
135
|
+
exports.SCHEDULING_RESOURCES = [...RESOURCE_CATEGORIES.scheduling];
|
|
136
|
+
exports.EXTERNAL_RESOURCES = [...RESOURCE_CATEGORIES.external];
|
|
137
|
+
exports.SYSTEM_RESOURCES = [...RESOURCE_CATEGORIES.system];
|
|
108
138
|
function isMedicalResource(resource) {
|
|
109
|
-
return
|
|
139
|
+
return LEGACY_RESOURCE_CATEGORIES.medical.indexOf(resource) !== -1;
|
|
110
140
|
}
|
|
111
141
|
function isPublicResource(resource) {
|
|
112
|
-
return
|
|
142
|
+
return LEGACY_RESOURCE_CATEGORIES.public.indexOf(resource) !== -1;
|
|
113
143
|
}
|
|
114
144
|
function getAllResources() {
|
|
115
|
-
return [...
|
|
145
|
+
return [...LEGACY_RESOURCE_CATEGORIES.medical, ...LEGACY_RESOURCE_CATEGORIES.public];
|
|
116
146
|
}
|
|
117
147
|
function getResourceCategories() {
|
|
118
148
|
return RESOURCE_CATEGORIES;
|
|
119
149
|
}
|
|
120
|
-
|
|
150
|
+
function getResourcesByCategory(category) {
|
|
151
|
+
return [...RESOURCE_CATEGORIES[category]];
|
|
152
|
+
}
|
|
153
|
+
function getResourcesByCategories(categories) {
|
|
154
|
+
const resources = categories.flatMap((category) => RESOURCE_CATEGORIES[category]);
|
|
155
|
+
return Array.from(new Set(resources));
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWtKQSw4Q0FFQztBQUVELDRDQUVDO0FBRUQsMENBRUM7QUFFRCxzREFFQztBQUVELHdEQUVDO0FBRUQsNERBR0M7QUF6S0Q7O0dBRUc7QUFDSCxJQUFZLFFBZ0NYO0FBaENELFdBQVksUUFBUTtJQUNsQiwrQkFBbUIsQ0FBQTtJQUNuQixpRUFBcUQsQ0FBQTtJQUNyRCxtREFBdUMsQ0FBQTtJQUN2QywyQ0FBK0IsQ0FBQTtJQUMvQiw2Q0FBaUMsQ0FBQTtJQUNqQywrQkFBbUIsQ0FBQTtJQUNuQiwrQ0FBbUMsQ0FBQTtJQUNuQyw2Q0FBaUMsQ0FBQTtJQUNqQyxpREFBcUMsQ0FBQTtJQUNyQyxxREFBeUMsQ0FBQTtJQUN6QyxpQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBK0IsQ0FBQTtJQUMvQixtREFBdUMsQ0FBQTtJQUN2QywrQ0FBbUMsQ0FBQTtJQUNuQywyREFBK0MsQ0FBQTtJQUMvQywrQ0FBbUMsQ0FBQTtJQUNuQyx5REFBNkMsQ0FBQTtJQUM3QyxxQ0FBeUIsQ0FBQTtJQUN6Qix1Q0FBMkIsQ0FBQTtJQUMzQiwrQkFBbUIsQ0FBQTtJQUNuQix5REFBNkMsQ0FBQTtJQUM3QywrQ0FBbUMsQ0FBQTtJQUNuQyw2REFBaUQsQ0FBQTtJQUNqRCx1Q0FBMkIsQ0FBQTtJQUMzQix5Q0FBNkIsQ0FBQTtJQUM3QixxREFBeUMsQ0FBQTtJQUN6Qyx5QkFBYSxDQUFBO0lBQ2IsbUNBQXVCLENBQUE7SUFDdkIsK0NBQW1DLENBQUE7SUFDbkMseUJBQWEsQ0FBQTtJQUNiLCtDQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFoQ1csUUFBUSx3QkFBUixRQUFRLFFBZ0NuQjtBQUVELElBQVksZ0JBVVg7QUFWRCxXQUFZLGdCQUFnQjtJQUMxQixpQ0FBYSxDQUFBO0lBQ2IsNkNBQXlCLENBQUE7SUFD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QU8sRUFBRSxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsUUFBMEI7SUFDL0QsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsVUFBOEI7SUFDckUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSB0eXBlcyBhbGlnbmVkIHdpdGggdGhlIHByb3ZpZGVkIHNjaGVtYSB0YXhvbm9teS5cbiAqL1xuZXhwb3J0IGVudW0gUmVzb3VyY2Uge1xuICBBQ0NPVU5UID0gJ0FDQ09VTlQnLFxuICBDQUxDVUxBVEVEX01FQVNVUkVfTU9ERUwgPSAnQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMJyxcbiAgQ0FMRU5EQVJfU0VUVElOR1MgPSAnQ0FMRU5EQVJfU0VUVElOR1MnLFxuICBDQUxFTkRBUl9TWU5DID0gJ0NBTEVOREFSX1NZTkMnLFxuICBDQUxFTkRBUl9UT0tFTiA9ICdDQUxFTkRBUl9UT0tFTicsXG4gIENPTlRBQ1QgPSAnQ09OVEFDVCcsXG4gIERPQ1VNRU5UX0xBWU9VVCA9ICdET0NVTUVOVF9MQVlPVVQnLFxuICBET0NVTUVOVF9NT0RFTCA9ICdET0NVTUVOVF9NT0RFTCcsXG4gIEdFTkVSQUxfU0VUVElOR1MgPSAnR0VORVJBTF9TRVRUSU5HUycsXG4gIEdFTkVSQVRFRF9ET0NVTUVOVCA9ICdHRU5FUkFURURfRE9DVU1FTlQnLFxuICBMT0NBVElPTiA9ICdMT0NBVElPTicsXG4gIE1FQVNVUkVfTU9ERUwgPSAnTUVBU1VSRV9NT0RFTCcsXG4gIE1FRElDQVRJT05fU0VBUkNIID0gJ01FRElDQVRJT05fU0VBUkNIJyxcbiAgTUVESUNBTF9ISVNUT1JZID0gJ01FRElDQUxfSElTVE9SWScsXG4gIE1FRElDQUxfSElTVE9SWV9NT0RFTCA9ICdNRURJQ0FMX0hJU1RPUllfTU9ERUwnLFxuICBNRURJQ0FMX1NFUlZJQ0UgPSAnTUVESUNBTF9TRVJWSUNFJyxcbiAgTUVESUNBTF9TRVJWSUNFX05PVEUgPSAnTUVESUNBTF9TRVJWSUNFX05PVEUnLFxuICBNRU1CRVJTSElQID0gJ01FTUJFUlNISVAnLFxuICBPQlNFUlZBVElPTiA9ICdPQlNFUlZBVElPTicsXG4gIFBBVElFTlQgPSAnUEFUSUVOVCcsXG4gIFBBVElFTlRfTUVESUNBTF9OT1RFID0gJ1BBVElFTlRfTUVESUNBTF9OT1RFJyxcbiAgUEFUSUVOVF9QQVlNRU5UID0gJ1BBVElFTlRfUEFZTUVOVCcsXG4gIFBBVElFTlRfUFJPUEVSVFlfTU9ERUwgPSAnUEFUSUVOVF9QUk9QRVJUWV9NT0RFTCcsXG4gIFBSRUZFUkVOQ0VTID0gJ1BSRUZFUkVOQ0VTJyxcbiAgUFJFU0NSSVBUSU9OID0gJ1BSRVNDUklQVElPTicsXG4gIFBSRVNDUklQVElPTl9NT0RFTCA9ICdQUkVTQ1JJUFRJT05fTU9ERUwnLFxuICBST0xFID0gJ1JPTEUnLFxuICBUQVNLX1RZUEUgPSAnVEFTS19UWVBFJyxcbiAgVVBMT0FEX0RPQ1VNRU5UID0gJ1VQTE9BRF9ET0NVTUVOVCcsXG4gIFVTRVIgPSAnVVNFUicsXG4gIEFWQUlMQUJMRV9TTE9UUyA9ICdBVkFJTEFCTEVfU0xPVFMnLFxufVxuXG5leHBvcnQgZW51bSBSZXNvdXJjZUNhdGVnb3J5IHtcbiAgQ09SRSA9ICdjb3JlJyxcbiAgTUVNQkVSU0hJUCA9ICdtZW1iZXJzaGlwJyxcbiAgQ0xJTklDQUwgPSAnY2xpbmljYWwnLFxuICBET0NVTUVOVFMgPSAnZG9jdW1lbnRzJyxcbiAgU0VUVElOR1MgPSAnc2V0dGluZ3MnLFxuICBJTlRFR1JBVElPTiA9ICdpbnRlZ3JhdGlvbicsXG4gIFNDSEVEVUxJTkcgPSAnc2NoZWR1bGluZycsXG4gIEVYVEVSTkFMID0gJ2V4dGVybmFsJyxcbiAgU1lTVEVNID0gJ3N5c3RlbScsXG59XG5cbmNvbnN0IFJFU09VUkNFX0NBVEVHT1JJRVM6IHtcbiAgY29yZTogUmVzb3VyY2VbXTtcbiAgbWVtYmVyc2hpcDogUmVzb3VyY2VbXTtcbiAgY2xpbmljYWw6IFJlc291cmNlW107XG4gIGRvY3VtZW50czogUmVzb3VyY2VbXTtcbiAgc2V0dGluZ3M6IFJlc291cmNlW107XG4gIGludGVncmF0aW9uOiBSZXNvdXJjZVtdO1xuICBzY2hlZHVsaW5nOiBSZXNvdXJjZVtdO1xuICBleHRlcm5hbDogUmVzb3VyY2VbXTtcbiAgc3lzdGVtOiBSZXNvdXJjZVtdO1xufSA9IHtcbiAgY29yZTogW1Jlc291cmNlLkFDQ09VTlRdLFxuICBtZW1iZXJzaGlwOiBbUmVzb3VyY2UuVVNFUiwgUmVzb3VyY2UuTUVNQkVSU0hJUF0sXG4gIGNsaW5pY2FsOiBbXG4gICAgUmVzb3VyY2UuUEFUSUVOVCxcbiAgICBSZXNvdXJjZS5DT05UQUNULFxuICAgIFJlc291cmNlLk1FRElDQUxfU0VSVklDRSxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URSxcbiAgICBSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfTk9URSxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlksXG4gICAgUmVzb3VyY2UuT0JTRVJWQVRJT04sXG4gICAgUmVzb3VyY2UuUFJFU0NSSVBUSU9OLFxuICAgIFJlc291cmNlLlBBVElFTlRfUEFZTUVOVCxcbiAgXSxcbiAgZG9jdW1lbnRzOiBbUmVzb3VyY2UuRE9DVU1FTlRfTEFZT1VULCBSZXNvdXJjZS5ET0NVTUVOVF9NT0RFTCwgUmVzb3VyY2UuR0VORVJBVEVEX0RPQ1VNRU5ULCBSZXNvdXJjZS5VUExPQURfRE9DVU1FTlRdLFxuICBzZXR0aW5nczogW1xuICAgIFJlc291cmNlLkdFTkVSQUxfU0VUVElOR1MsXG4gICAgUmVzb3VyY2UuUFJFRkVSRU5DRVMsXG4gICAgUmVzb3VyY2UuTUVBU1VSRV9NT0RFTCxcbiAgICBSZXNvdXJjZS5DQUxDVUxBVEVEX01FQVNVUkVfTU9ERUwsXG4gICAgUmVzb3VyY2UuVEFTS19UWVBFLFxuICAgIFJlc291cmNlLkxPQ0FUSU9OLFxuICAgIFJlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTCxcbiAgICBSZXNvdXJjZS5QUkVTQ1JJUFRJT05fTU9ERUwsXG4gICAgUmVzb3VyY2UuUEFUSUVOVF9QUk9QRVJUWV9NT0RFTCxcbiAgXSxcbiAgaW50ZWdyYXRpb246IFtSZXNvdXJjZS5DQUxFTkRBUl9UT0tFTiwgUmVzb3VyY2UuQ0FMRU5EQVJfU0VUVElOR1MsIFJlc291cmNlLkNBTEVOREFSX1NZTkNdLFxuICBzY2hlZHVsaW5nOiBbUmVzb3VyY2UuQVZBSUxBQkxFX1NMT1RTXSxcbiAgZXh0ZXJuYWw6IFtSZXNvdXJjZS5NRURJQ0FUSU9OX1NFQVJDSF0sXG4gIHN5c3RlbTogW10sXG59IGFzIGNvbnN0O1xuXG5jb25zdCBMRUdBQ1lfUkVTT1VSQ0VfQ0FURUdPUklFUzoge1xuICBtZWRpY2FsOiBSZXNvdXJjZVtdO1xuICBwdWJsaWM6IFJlc291cmNlW107XG59ID0ge1xuICBtZWRpY2FsOiBbXG4gICAgUmVzb3VyY2UuQVZBSUxBQkxFX1NMT1RTLFxuICAgIFJlc291cmNlLkNBTENVTEFURURfTUVBU1VSRV9NT0RFTCxcbiAgICBSZXNvdXJjZS5DT05UQUNULFxuICAgIFJlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVCxcbiAgICBSZXNvdXJjZS5NRUFTVVJFX01PREVMLFxuICAgIFJlc291cmNlLk1FRElDQVRJT05fU0VBUkNILFxuICAgIFJlc291cmNlLk1FRElDQUxfSElTVE9SWSxcbiAgICBSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUllfTU9ERUwsXG4gICAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFLFxuICAgIFJlc291cmNlLk1FRElDQUxfU0VSVklDRV9OT1RFLFxuICAgIFJlc291cmNlLk9CU0VSVkFUSU9OLFxuICAgIFJlc291cmNlLlBBVElFTlQsXG4gICAgUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX05PVEUsXG4gICAgUmVzb3VyY2UuUEFUSUVOVF9QQVlNRU5ULFxuICAgIFJlc291cmNlLlBBVElFTlRfUFJPUEVSVFlfTU9ERUwsXG4gICAgUmVzb3VyY2UuUFJFU0NSSVBUSU9OLFxuICAgIFJlc291cmNlLlBSRVNDUklQVElPTl9NT0RFTCxcbiAgICBSZXNvdXJjZS5VUExPQURfRE9DVU1FTlQsXG4gIF0sXG4gIHB1YmxpYzogW1xuICAgIFJlc291cmNlLkFDQ09VTlQsXG4gICAgUmVzb3VyY2UuQ0FMRU5EQVJfU0VUVElOR1MsXG4gICAgUmVzb3VyY2UuQ0FMRU5EQVJfU1lOQyxcbiAgICBSZXNvdXJjZS5DQUxFTkRBUl9UT0tFTixcbiAgICBSZXNvdXJjZS5ET0NVTUVOVF9MQVlPVVQsXG4gICAgUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUwsXG4gICAgUmVzb3VyY2UuR0VORVJBTF9TRVRUSU5HUyxcbiAgICBSZXNvdXJjZS5MT0NBVElPTixcbiAgICBSZXNvdXJjZS5NRU1CRVJTSElQLFxuICAgIFJlc291cmNlLlBSRUZFUkVOQ0VTLFxuICAgIFJlc291cmNlLlJPTEUsXG4gICAgUmVzb3VyY2UuVEFTS19UWVBFLFxuICAgIFJlc291cmNlLlVTRVIsXG4gIF0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgTUVESUNBTF9SRVNPVVJDRVM6IFJlc291cmNlW10gPSBbLi4uTEVHQUNZX1JFU09VUkNFX0NBVEVHT1JJRVMubWVkaWNhbF07XG5cbmV4cG9ydCBjb25zdCBQVUJMSUNfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLkxFR0FDWV9SRVNPVVJDRV9DQVRFR09SSUVTLnB1YmxpY107XG5cbmV4cG9ydCBjb25zdCBDT1JFX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFsuLi5SRVNPVVJDRV9DQVRFR09SSUVTLmNvcmVdO1xuZXhwb3J0IGNvbnN0IE1FTUJFUlNISVBfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVMubWVtYmVyc2hpcF07XG5leHBvcnQgY29uc3QgQ0xJTklDQUxfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVMuY2xpbmljYWxdO1xuZXhwb3J0IGNvbnN0IERPQ1VNRU5UX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFsuLi5SRVNPVVJDRV9DQVRFR09SSUVTLmRvY3VtZW50c107XG5leHBvcnQgY29uc3QgU0VUVElOR1NfUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVMuc2V0dGluZ3NdO1xuZXhwb3J0IGNvbnN0IElOVEVHUkFUSU9OX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFsuLi5SRVNPVVJDRV9DQVRFR09SSUVTLmludGVncmF0aW9uXTtcbmV4cG9ydCBjb25zdCBTQ0hFRFVMSU5HX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFsuLi5SRVNPVVJDRV9DQVRFR09SSUVTLnNjaGVkdWxpbmddO1xuZXhwb3J0IGNvbnN0IEVYVEVSTkFMX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFsuLi5SRVNPVVJDRV9DQVRFR09SSUVTLmV4dGVybmFsXTtcbmV4cG9ydCBjb25zdCBTWVNURU1fUkVTT1VSQ0VTOiBSZXNvdXJjZVtdID0gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVMuc3lzdGVtXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWVkaWNhbFJlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gTEVHQUNZX1JFU09VUkNFX0NBVEVHT1JJRVMubWVkaWNhbC5pbmRleE9mKHJlc291cmNlKSAhPT0gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1B1YmxpY1Jlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gTEVHQUNZX1JFU09VUkNFX0NBVEVHT1JJRVMucHVibGljLmluZGV4T2YocmVzb3VyY2UpICE9PSAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFJlc291cmNlcygpOiBSZXNvdXJjZVtdIHtcbiAgcmV0dXJuIFsuLi5MRUdBQ1lfUkVTT1VSQ0VfQ0FURUdPUklFUy5tZWRpY2FsLCAuLi5MRUdBQ1lfUkVTT1VSQ0VfQ0FURUdPUklFUy5wdWJsaWNdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VDYXRlZ29yaWVzKCk6IFJlYWRvbmx5PHR5cGVvZiBSRVNPVVJDRV9DQVRFR09SSUVTPiB7XG4gIHJldHVybiBSRVNPVVJDRV9DQVRFR09SSUVTO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VzQnlDYXRlZ29yeShjYXRlZ29yeTogUmVzb3VyY2VDYXRlZ29yeSk6IFJlc291cmNlW10ge1xuICByZXR1cm4gWy4uLlJFU09VUkNFX0NBVEVHT1JJRVNbY2F0ZWdvcnldXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlc0J5Q2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBSZXNvdXJjZUNhdGVnb3J5W10pOiBSZXNvdXJjZVtdIHtcbiAgY29uc3QgcmVzb3VyY2VzID0gY2F0ZWdvcmllcy5mbGF0TWFwKChjYXRlZ29yeSkgPT4gUkVTT1VSQ0VfQ0FURUdPUklFU1tjYXRlZ29yeV0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KHJlc291cmNlcykpO1xufVxuIl19
|