@openhi/types 0.0.30 → 0.0.32
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.
|
@@ -6,3 +6,27 @@ export declare const CONTROL_PLANE_ROLE_CODE: {
|
|
|
6
6
|
};
|
|
7
7
|
export type ControlPlaneRoleCode = (typeof CONTROL_PLANE_ROLE_CODE)[keyof typeof CONTROL_PLANE_ROLE_CODE];
|
|
8
8
|
export declare const controlPlaneRoleCodeSchema: z.ZodEnum<["system-admin", "tenant-admin", "tenant-user"]>;
|
|
9
|
+
export declare const CONTROL_PLANE_ROLE_CONCEPTS: {
|
|
10
|
+
readonly SYSTEM_ADMIN: {
|
|
11
|
+
readonly code: "system-admin";
|
|
12
|
+
readonly display: "System Admin";
|
|
13
|
+
readonly definition: "Administrative functions within control plane only; can change tenant/workspace records, assign memberships and role assignments; CANNOT view tenant-isolated data.";
|
|
14
|
+
};
|
|
15
|
+
readonly TENANT_ADMIN: {
|
|
16
|
+
readonly code: "tenant-admin";
|
|
17
|
+
readonly display: "Tenant Admin";
|
|
18
|
+
readonly definition: "Admin within a given tenant and optionally workspace; 100% tenant-isolated access.";
|
|
19
|
+
};
|
|
20
|
+
readonly TENANT_USER: {
|
|
21
|
+
readonly code: "tenant-user";
|
|
22
|
+
readonly display: "Tenant User";
|
|
23
|
+
readonly definition: "User within a given tenant and optionally workspace; 100% tenant-isolated access.";
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export type ControlPlaneRoleConcept = (typeof CONTROL_PLANE_ROLE_CONCEPTS)[keyof typeof CONTROL_PLANE_ROLE_CONCEPTS];
|
|
27
|
+
export declare const CONTROL_PLANE_ROLE_IDS: {
|
|
28
|
+
readonly SYSTEM_ADMIN: "role-system-admin";
|
|
29
|
+
readonly TENANT_ADMIN: "role-tenant-admin";
|
|
30
|
+
readonly TENANT_USER: "role-tenant-user";
|
|
31
|
+
};
|
|
32
|
+
export type ControlPlaneRoleId = (typeof CONTROL_PLANE_ROLE_IDS)[keyof typeof CONTROL_PLANE_ROLE_IDS];
|
package/lib/control/constants.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// THIS FILE IS GENERATED by @openhi/types-generator.
|
|
3
3
|
// Do not edit. Edit sds/ or generator-config.yaml and regenerate.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.controlPlaneRoleCodeSchema = exports.CONTROL_PLANE_ROLE_CODE = void 0;
|
|
5
|
+
exports.CONTROL_PLANE_ROLE_IDS = exports.CONTROL_PLANE_ROLE_CONCEPTS = exports.controlPlaneRoleCodeSchema = exports.CONTROL_PLANE_ROLE_CODE = void 0;
|
|
6
6
|
const zod_1 = require("zod");
|
|
7
7
|
exports.CONTROL_PLANE_ROLE_CODE = {
|
|
8
8
|
SYSTEM_ADMIN: "system-admin",
|
|
@@ -14,4 +14,26 @@ exports.controlPlaneRoleCodeSchema = zod_1.z.enum([
|
|
|
14
14
|
"tenant-admin",
|
|
15
15
|
"tenant-user",
|
|
16
16
|
]);
|
|
17
|
-
|
|
17
|
+
exports.CONTROL_PLANE_ROLE_CONCEPTS = {
|
|
18
|
+
SYSTEM_ADMIN: {
|
|
19
|
+
code: "system-admin",
|
|
20
|
+
display: "System Admin",
|
|
21
|
+
definition: "Administrative functions within control plane only; can change tenant/workspace records, assign memberships and role assignments; CANNOT view tenant-isolated data.",
|
|
22
|
+
},
|
|
23
|
+
TENANT_ADMIN: {
|
|
24
|
+
code: "tenant-admin",
|
|
25
|
+
display: "Tenant Admin",
|
|
26
|
+
definition: "Admin within a given tenant and optionally workspace; 100% tenant-isolated access.",
|
|
27
|
+
},
|
|
28
|
+
TENANT_USER: {
|
|
29
|
+
code: "tenant-user",
|
|
30
|
+
display: "Tenant User",
|
|
31
|
+
definition: "User within a given tenant and optionally workspace; 100% tenant-isolated access.",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
exports.CONTROL_PLANE_ROLE_IDS = {
|
|
35
|
+
SYSTEM_ADMIN: "role-system-admin",
|
|
36
|
+
TENANT_ADMIN: "role-tenant-admin",
|
|
37
|
+
TENANT_USER: "role-tenant-user",
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2wvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxREFBcUQ7QUFDckQsa0VBQWtFOzs7QUFFbEUsNkJBQXdCO0FBRVgsUUFBQSx1QkFBdUIsR0FBRztJQUNyQyxZQUFZLEVBQUUsY0FBYztJQUM1QixZQUFZLEVBQUUsY0FBYztJQUM1QixXQUFXLEVBQUUsYUFBYTtDQUNsQixDQUFDO0FBR0UsUUFBQSwwQkFBMEIsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9DLGNBQWM7SUFDZCxjQUFjO0lBQ2QsYUFBYTtDQUNkLENBQUMsQ0FBQztBQUVVLFFBQUEsMkJBQTJCLEdBQUc7SUFDekMsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLGNBQWM7UUFDdkIsVUFBVSxFQUNSLHFLQUFxSztLQUN4SztJQUNELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFVBQVUsRUFDUixvRkFBb0Y7S0FDdkY7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsYUFBYTtRQUN0QixVQUFVLEVBQ1IsbUZBQW1GO0tBQ3RGO0NBQ08sQ0FBQztBQUlFLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxZQUFZLEVBQUUsbUJBQW1CO0lBQ2pDLFdBQVcsRUFBRSxrQkFBa0I7Q0FDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRISVMgRklMRSBJUyBHRU5FUkFURUQgYnkgQG9wZW5oaS90eXBlcy1nZW5lcmF0b3IuXG4vLyBEbyBub3QgZWRpdC4gRWRpdCBzZHMvIG9yIGdlbmVyYXRvci1jb25maWcueWFtbCBhbmQgcmVnZW5lcmF0ZS5cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IENPTlRST0xfUExBTkVfUk9MRV9DT0RFID0ge1xuICBTWVNURU1fQURNSU46IFwic3lzdGVtLWFkbWluXCIsXG4gIFRFTkFOVF9BRE1JTjogXCJ0ZW5hbnQtYWRtaW5cIixcbiAgVEVOQU5UX1VTRVI6IFwidGVuYW50LXVzZXJcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDb250cm9sUGxhbmVSb2xlQ29kZSA9XG4gICh0eXBlb2YgQ09OVFJPTF9QTEFORV9ST0xFX0NPREUpW2tleW9mIHR5cGVvZiBDT05UUk9MX1BMQU5FX1JPTEVfQ09ERV07XG5leHBvcnQgY29uc3QgY29udHJvbFBsYW5lUm9sZUNvZGVTY2hlbWEgPSB6LmVudW0oW1xuICBcInN5c3RlbS1hZG1pblwiLFxuICBcInRlbmFudC1hZG1pblwiLFxuICBcInRlbmFudC11c2VyXCIsXG5dKTtcblxuZXhwb3J0IGNvbnN0IENPTlRST0xfUExBTkVfUk9MRV9DT05DRVBUUyA9IHtcbiAgU1lTVEVNX0FETUlOOiB7XG4gICAgY29kZTogXCJzeXN0ZW0tYWRtaW5cIixcbiAgICBkaXNwbGF5OiBcIlN5c3RlbSBBZG1pblwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIkFkbWluaXN0cmF0aXZlIGZ1bmN0aW9ucyB3aXRoaW4gY29udHJvbCBwbGFuZSBvbmx5OyBjYW4gY2hhbmdlIHRlbmFudC93b3Jrc3BhY2UgcmVjb3JkcywgYXNzaWduIG1lbWJlcnNoaXBzIGFuZCByb2xlIGFzc2lnbm1lbnRzOyBDQU5OT1QgdmlldyB0ZW5hbnQtaXNvbGF0ZWQgZGF0YS5cIixcbiAgfSxcbiAgVEVOQU5UX0FETUlOOiB7XG4gICAgY29kZTogXCJ0ZW5hbnQtYWRtaW5cIixcbiAgICBkaXNwbGF5OiBcIlRlbmFudCBBZG1pblwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIkFkbWluIHdpdGhpbiBhIGdpdmVuIHRlbmFudCBhbmQgb3B0aW9uYWxseSB3b3Jrc3BhY2U7IDEwMCUgdGVuYW50LWlzb2xhdGVkIGFjY2Vzcy5cIixcbiAgfSxcbiAgVEVOQU5UX1VTRVI6IHtcbiAgICBjb2RlOiBcInRlbmFudC11c2VyXCIsXG4gICAgZGlzcGxheTogXCJUZW5hbnQgVXNlclwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIlVzZXIgd2l0aGluIGEgZ2l2ZW4gdGVuYW50IGFuZCBvcHRpb25hbGx5IHdvcmtzcGFjZTsgMTAwJSB0ZW5hbnQtaXNvbGF0ZWQgYWNjZXNzLlwiLFxuICB9LFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENvbnRyb2xQbGFuZVJvbGVDb25jZXB0ID1cbiAgKHR5cGVvZiBDT05UUk9MX1BMQU5FX1JPTEVfQ09OQ0VQVFMpW2tleW9mIHR5cGVvZiBDT05UUk9MX1BMQU5FX1JPTEVfQ09OQ0VQVFNdO1xuXG5leHBvcnQgY29uc3QgQ09OVFJPTF9QTEFORV9ST0xFX0lEUyA9IHtcbiAgU1lTVEVNX0FETUlOOiBcInJvbGUtc3lzdGVtLWFkbWluXCIsXG4gIFRFTkFOVF9BRE1JTjogXCJyb2xlLXRlbmFudC1hZG1pblwiLFxuICBURU5BTlRfVVNFUjogXCJyb2xlLXRlbmFudC11c2VyXCIsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQ29udHJvbFBsYW5lUm9sZUlkID1cbiAgKHR5cGVvZiBDT05UUk9MX1BMQU5FX1JPTEVfSURTKVtrZXlvZiB0eXBlb2YgQ09OVFJPTF9QTEFORV9ST0xFX0lEU107XG4iXX0=
|
|
@@ -29,6 +29,18 @@ import type { FhirResourceLike } from "../summary/extract-summary";
|
|
|
29
29
|
* 3. Unlabeled fallback — `<ISO-8601 lastUpdated>#<id>`.
|
|
30
30
|
*/
|
|
31
31
|
export declare function extractSortKey(resource: FhirResourceLike): string;
|
|
32
|
+
/**
|
|
33
|
+
* Returns the normalized natural label for `resource`, or `undefined` when
|
|
34
|
+
* no label can be extracted. Used directly by control-plane writers that
|
|
35
|
+
* compose their own `<label>#<id>` vs `<entity.lastUpdated>#<id>` fallback,
|
|
36
|
+
* and indirectly by `extractSortKey` for the data plane.
|
|
37
|
+
*
|
|
38
|
+
* Resolution order matches `extractSortKey`:
|
|
39
|
+
* 1. `LABEL_PATHS[resourceType]` — curated, type-aware extraction.
|
|
40
|
+
* 2. Introspection fallback — `resource.name` (string), then `resource.title`.
|
|
41
|
+
* 3. Returns `undefined` so the caller can decide on its own fallback.
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractLabel(resource: FhirResourceLike): string | undefined;
|
|
32
44
|
/**
|
|
33
45
|
* Normalize a natural-language label per DR-004:
|
|
34
46
|
* 1. ASCII-fold common Latin diacritics (ñ→n, é→e, ø→o, …).
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.extractSortKey = extractSortKey;
|
|
17
|
+
exports.extractLabel = extractLabel;
|
|
17
18
|
exports.normalizeLabel = normalizeLabel;
|
|
18
19
|
const label_paths_1 = require("./label-paths");
|
|
19
20
|
/**
|
|
@@ -34,23 +35,39 @@ const label_paths_1 = require("./label-paths");
|
|
|
34
35
|
*/
|
|
35
36
|
function extractSortKey(resource) {
|
|
36
37
|
const id = typeof resource.id === "string" ? resource.id : "";
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
if (label.length > 0) {
|
|
41
|
-
return `${normalizeLabel(label)}#${id}`;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
const introspected = introspectStringField(resource, "name") ??
|
|
45
|
-
introspectStringField(resource, "title");
|
|
46
|
-
if (introspected !== undefined) {
|
|
47
|
-
return `${normalizeLabel(introspected)}#${id}`;
|
|
38
|
+
const label = extractLabel(resource);
|
|
39
|
+
if (label !== undefined) {
|
|
40
|
+
return `${label}#${id}`;
|
|
48
41
|
}
|
|
49
42
|
const lastUpdated = typeof resource.meta?.lastUpdated === "string"
|
|
50
43
|
? resource.meta.lastUpdated
|
|
51
44
|
: "";
|
|
52
45
|
return `${lastUpdated}#${id}`;
|
|
53
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns the normalized natural label for `resource`, or `undefined` when
|
|
49
|
+
* no label can be extracted. Used directly by control-plane writers that
|
|
50
|
+
* compose their own `<label>#<id>` vs `<entity.lastUpdated>#<id>` fallback,
|
|
51
|
+
* and indirectly by `extractSortKey` for the data plane.
|
|
52
|
+
*
|
|
53
|
+
* Resolution order matches `extractSortKey`:
|
|
54
|
+
* 1. `LABEL_PATHS[resourceType]` — curated, type-aware extraction.
|
|
55
|
+
* 2. Introspection fallback — `resource.name` (string), then `resource.title`.
|
|
56
|
+
* 3. Returns `undefined` so the caller can decide on its own fallback.
|
|
57
|
+
*/
|
|
58
|
+
function extractLabel(resource) {
|
|
59
|
+
const source = label_paths_1.LABEL_PATHS[resource.resourceType];
|
|
60
|
+
if (source) {
|
|
61
|
+
const raw = extractLabelBySource(resource, source);
|
|
62
|
+
if (raw.length > 0)
|
|
63
|
+
return normalizeLabel(raw);
|
|
64
|
+
}
|
|
65
|
+
const introspected = introspectStringField(resource, "name") ??
|
|
66
|
+
introspectStringField(resource, "title");
|
|
67
|
+
if (introspected !== undefined)
|
|
68
|
+
return normalizeLabel(introspected);
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
54
71
|
/**
|
|
55
72
|
* Returns the value of `field` on `resource` only if it's a non-empty string.
|
|
56
73
|
* Guards against HumanName arrays (Patient.name) and other non-string shapes
|
|
@@ -63,7 +80,7 @@ function introspectStringField(resource, field) {
|
|
|
63
80
|
return value;
|
|
64
81
|
return undefined;
|
|
65
82
|
}
|
|
66
|
-
function
|
|
83
|
+
function extractLabelBySource(resource, source) {
|
|
67
84
|
if (source.kind === "humanName") {
|
|
68
85
|
const names = resource[source.path];
|
|
69
86
|
if (!Array.isArray(names))
|
|
@@ -99,6 +116,29 @@ function extractLabel(resource, source) {
|
|
|
99
116
|
}
|
|
100
117
|
return typeof cc.text === "string" ? cc.text : "";
|
|
101
118
|
}
|
|
119
|
+
if (source.kind === "identifier") {
|
|
120
|
+
return extractIdentifierValue(resource[source.path]);
|
|
121
|
+
}
|
|
122
|
+
return "";
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Reads `Identifier.value` from a FHIR `Identifier` or `Identifier[]` field.
|
|
126
|
+
* Most FHIR R4 resources expose `identifier` as an array; a few (Bundle,
|
|
127
|
+
* QuestionnaireResponse) use a singular `Identifier`. Returns empty when no
|
|
128
|
+
* usable value is present so the caller's empty-label fallthrough kicks in.
|
|
129
|
+
*/
|
|
130
|
+
function extractIdentifierValue(field) {
|
|
131
|
+
if (Array.isArray(field)) {
|
|
132
|
+
const first = field[0];
|
|
133
|
+
if (!first || typeof first !== "object")
|
|
134
|
+
return "";
|
|
135
|
+
const value = first.value;
|
|
136
|
+
return typeof value === "string" ? value : "";
|
|
137
|
+
}
|
|
138
|
+
if (field && typeof field === "object") {
|
|
139
|
+
const value = field.value;
|
|
140
|
+
return typeof value === "string" ? value : "";
|
|
141
|
+
}
|
|
102
142
|
return "";
|
|
103
143
|
}
|
|
104
144
|
/**
|
|
@@ -127,4 +167,4 @@ function asciiFold(input) {
|
|
|
127
167
|
// diacritics (é, ñ, ü, …). Non-Latin scripts are unaffected.
|
|
128
168
|
return input.normalize("NFKD").replace(/\p{M}+/gu, "");
|
|
129
169
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1zb3J0LWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb3J0LWtleS9leHRyYWN0LXNvcnQta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7O0FBcUJILHdDQXVCQztBQXNFRCx3Q0FRQztBQXhIRCwrQ0FBOEQ7QUFHOUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFFBQTBCO0lBQ3ZELE1BQU0sRUFBRSxHQUFHLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUU5RCxNQUFNLE1BQU0sR0FBRyx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUNoQixxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBQ3ZDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMvQixPQUFPLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLFdBQVcsR0FDZixPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxLQUFLLFFBQVE7UUFDNUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJ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QyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEtBQWE7SUFDMUMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO1NBQ3BCLFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUM7U0FDbEMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7U0FDcEIsSUFBSSxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsS0FBYTtJQUM5Qix1RUFBdUU7SUFDdkUsNkRBQTZEO0lBQzdELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1cmUgcHJvamVjdGlvbiBvZiBhIEZISVIgUjQgcmVzb3VyY2UgaW50byBpdHMgR1NJMSBzb3J0IGtleSBwZXIgRFItMDA0LlxuICpcbiAqIC0gTGFiZWxlZCB0eXBlcyAoZW50cmllcyBpbiBgTEFCRUxfUEFUSFNgKTogYDxub3JtYWxpemVkTGFiZWw+IzxpZD5gXG4gKiAgIHNvIGxpc3QgZW5kcG9pbnRzIHNvcnQgYWxwaGFiZXRpY2FsbHkgYW5kIGBCRUdJTlNfV0lUSGAgc2VydmVzXG4gKiAgIHByZWZpeCBxdWVyaWVzIGxpa2UgYD9uYW1lPVNtYC5cbiAqIC0gVW5sYWJlbGVkIHR5cGVzOiBgPElTTy04NjAxIGxhc3RVcGRhdGVkPiM8aWQ+YCBzbyBsaXN0IGVuZHBvaW50c1xuICogICBzZXJ2ZSByZXZlcnNlLWNocm9ub2xvZ2ljYWwgd2l0aCBgU2NhbkluZGV4Rm9yd2FyZD1mYWxzZWAuXG4gKlxuICogUHVyZTogbm8gSS9PLCBubyBEeW5hbW9EQiBhY2Nlc3MsIGRldGVybWluaXN0aWMgb3ZlciB0aGUgcmVzb3VyY2UgYW5kXG4gKiB0aGUgY29tbWl0dGVkIGBMQUJFTF9QQVRIU2AgdGFibGUuIENvbnN1bWVkIGJ5IHRoZSBkYXRhLXBsYW5lIHdyaXRlclxuICogYmVmb3JlIGVhY2ggYFB1dEl0ZW1gIC8gYFVwZGF0ZUl0ZW1gLlxuICovXG5cbmltcG9ydCB7IExBQkVMX1BBVEhTLCB0eXBlIExhYmVsU291cmNlIH0gZnJvbSBcIi4vbGFiZWwtcGF0aHNcIjtcbmltcG9ydCB0eXBlIHsgRmhpclJlc291cmNlTGlrZSB9IGZyb20gXCIuLi9zdW1tYXJ5L2V4dHJhY3Qtc3VtbWFyeVwiO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIEdTSTEgc29ydC1rZXkgdmFsdWUgZm9yIGByZXNvdXJjZWAuIFRoZSBpZCBpcyB0aGVcbiAqIHRpZS1icmVha2VyIHN1ZmZpeDsgY2FsbGVycyBtdXN0IHBhc3MgYSByZXNvdXJjZSB0aGF0IGNhcnJpZXMgYW4gYGlkYFxuICogZm9yIGFuIGA8aWQ+YCBzZWdtZW50IHRvIGJlIHByZXNlbnQsIGJ1dCBgZXh0cmFjdFNvcnRLZXlgIHJldHVybnNcbiAqIGA8bGFiZWw+I2AgKG9yIGA8bGFzdFVwZGF0ZWQ+I2ApIHdpdGggYW4gZW1wdHkgdHJhaWxpbmcgc2VnbWVudCB3aGVuIGlkXG4gKiBpcyBtaXNzaW5nIHJhdGhlciB0aGFuIHRocm93aW5nIOKAlCB0aGUgY2FsbGVyIHZhbGlkYXRlcyBpZCBhdCB0aGVcbiAqIHdyaXRlLXBhdGggZW50cnkuXG4gKlxuICogUmVzb2x1dGlvbiBvcmRlcjpcbiAqIDEuIGBMQUJFTF9QQVRIU1tyZXNvdXJjZVR5cGVdYCDigJQgdGhlIGN1cmF0ZWQsIHR5cGUtYXdhcmUgZXh0cmFjdGlvbi5cbiAqIDIuIEludHJvc3BlY3Rpb24gZmFsbGJhY2sgcGVyIEFEUi0wMTEgLyBEUi0wMDQ6IHRyeSBgcmVzb3VyY2UubmFtZWBcbiAqICAgICh3aGVuIGl0J3MgYSBub24tZW1wdHkgc3RyaW5nKSwgdGhlbiBgcmVzb3VyY2UudGl0bGVgIChzYW1lKSwgc29cbiAqICAgIHNwZWMgdHlwZXMgd2l0aCBhIHN0cmluZyBgbmFtZWAvYHRpdGxlYCBwYXJ0aWNpcGF0ZSBpbiBhbHBoYWJldGljYWxcbiAqICAgIHNvcnQgYW5kIGBCRUdJTlNfV0lUSGAgZXZlbiBpZiB0aGV5IGFyZW4ndCBpbiBgTEFCRUxfUEFUSFNgIHlldC5cbiAqIDMuIFVubGFiZWxlZCBmYWxsYmFjayDigJQgYDxJU08tODYwMSBsYXN0VXBkYXRlZD4jPGlkPmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U29ydEtleShyZXNvdXJjZTogRmhpclJlc291cmNlTGlrZSk6IHN0cmluZyB7XG4gIGNvbnN0IGlkID0gdHlwZW9mIHJlc291cmNlLmlkID09PSBcInN0cmluZ1wiID8gcmVzb3VyY2UuaWQgOiBcIlwiO1xuXG4gIGNvbnN0IHNvdXJjZSA9IExBQkVMX1BBVEhTW3Jlc291cmNlLnJlc291cmNlVHlwZV07XG4gIGlmIChzb3VyY2UpIHtcbiAgICBjb25zdCBsYWJlbCA9IGV4dHJhY3RMYWJlbChyZXNvdXJjZSwgc291cmNlKTtcbiAgICBpZiAobGFiZWwubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGAke25vcm1hbGl6ZUxhYmVsKGxhYmVsKX0jJHtpZH1gO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGludHJvc3BlY3RlZCA9XG4gICAgaW50cm9zcGVjdFN0cmluZ0ZpZWxkKHJlc291cmNlLCBcIm5hbWVcIikgPz9cbiAgICBpbnRyb3NwZWN0U3RyaW5nRmllbGQocmVzb3VyY2UsIFwidGl0bGVcIik7XG4gIGlmIChpbnRyb3NwZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgJHtub3JtYWxpemVMYWJlbChpbnRyb3NwZWN0ZWQpfSMke2lkfWA7XG4gIH1cblxuICBjb25zdCBsYXN0VXBkYXRlZCA9XG4gICAgdHlwZW9mIHJlc291cmNlLm1ldGE/Lmxhc3RVcGRhdGVkID09PSBcInN0cmluZ1wiXG4gICAgICA/IHJlc291cmNlLm1ldGEubGFzdFVwZGF0ZWRcbiAgICAgIDogXCJcIjtcbiAgcmV0dXJuIGAke2xhc3RVcGRhdGVkfSMke2lkfWA7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdmFsdWUgb2YgYGZpZWxkYCBvbiBgcmVzb3VyY2VgIG9ubHkgaWYgaXQncyBhIG5vbi1lbXB0eSBzdHJpbmcuXG4gKiBHdWFyZHMgYWdhaW5zdCBIdW1hbk5hbWUgYXJyYXlzIChQYXRpZW50Lm5hbWUpIGFuZCBvdGhlciBub24tc3RyaW5nIHNoYXBlc1xuICogc28gdGhlIGludHJvc3BlY3Rpb24gZmFsbGJhY2sgbmV2ZXIgcHJvZHVjZXMgYSBrZXkgZnJvbSBhIHR5cGVkIGZpZWxkIGl0XG4gKiBkb2Vzbid0IHVuZGVyc3RhbmQg4oCUIHRoYXQgY2FzZSBzdGF5cyBvbiB0aGUgbGFzdFVwZGF0ZWQgZmFsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGludHJvc3BlY3RTdHJpbmdGaWVsZChcbiAgcmVzb3VyY2U6IEZoaXJSZXNvdXJjZUxpa2UsXG4gIGZpZWxkOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB2YWx1ZSA9IHJlc291cmNlW2ZpZWxkXTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5sZW5ndGggPiAwKSByZXR1cm4gdmFsdWU7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RMYWJlbChyZXNvdXJjZTogRmhpclJlc291cmNlTGlrZSwgc291cmNlOiBMYWJlbFNvdXJjZSk6IHN0cmluZyB7XG4gIGlmIChzb3VyY2Uua2luZCA9PT0gXCJodW1hbk5hbWVcIikge1xuICAgIGNvbnN0IG5hbWVzID0gcmVzb3VyY2Vbc291cmNlLnBhdGhdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShuYW1lcykpIHJldHVybiBcIlwiO1xuICAgIGNvbnN0IGZpcnN0ID0gbmFtZXNbMF07XG4gICAgaWYgKCFmaXJzdCB8fCB0eXBlb2YgZmlyc3QgIT09IFwib2JqZWN0XCIpIHJldHVybiBcIlwiO1xuICAgIGNvbnN0IG5hbWUgPSBmaXJzdCBhcyB7IGZhbWlseT86IHVua25vd247IGdpdmVuPzogdW5rbm93biB9O1xuICAgIGNvbnN0IGZhbWlseSA9IHR5cGVvZiBuYW1lLmZhbWlseSA9PT0gXCJzdHJpbmdcIiA/IG5hbWUuZmFtaWx5IDogXCJcIjtcbiAgICBjb25zdCBnaXZlbiA9XG4gICAgICBBcnJheS5pc0FycmF5KG5hbWUuZ2l2ZW4pICYmIHR5cGVvZiBuYW1lLmdpdmVuWzBdID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gbmFtZS5naXZlblswXVxuICAgICAgICA6IFwiXCI7XG4gICAgaWYgKGZhbWlseS5sZW5ndGggPT09IDAgJiYgZ2l2ZW4ubGVuZ3RoID09PSAwKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gYCR7ZmFtaWx5fSwke2dpdmVufWA7XG4gIH1cblxuICBpZiAoc291cmNlLmtpbmQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlc291cmNlW3NvdXJjZS5wYXRoXTtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiBcIlwiO1xuICB9XG5cbiAgaWYgKHNvdXJjZS5raW5kID09PSBcImNvZGVEaXNwbGF5XCIpIHtcbiAgICBjb25zdCBjb2RlID0gcmVzb3VyY2Vbc291cmNlLnBhdGhdO1xuICAgIGlmICghY29kZSB8fCB0eXBlb2YgY29kZSAhPT0gXCJvYmplY3RcIikgcmV0dXJuIFwiXCI7XG4gICAgY29uc3QgY2MgPSBjb2RlIGFzIHtcbiAgICAgIGNvZGluZz86IHVua25vd247XG4gICAgICB0ZXh0PzogdW5rbm93bjtcbiAgICB9O1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNjLmNvZGluZykpIHtcbiAgICAgIGNvbnN0IGZpcnN0ID0gY2MuY29kaW5nWzBdO1xuICAgICAgaWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBkaXNwbGF5ID0gKGZpcnN0IGFzIHsgZGlzcGxheT86IHVua25vd24gfSkuZGlzcGxheTtcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwbGF5ID09PSBcInN0cmluZ1wiICYmIGRpc3BsYXkubGVuZ3RoID4gMCkgcmV0dXJuIGRpc3BsYXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgY2MudGV4dCA9PT0gXCJzdHJpbmdcIiA/IGNjLnRleHQgOiBcIlwiO1xuICB9XG5cbiAgcmV0dXJuIFwiXCI7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgbmF0dXJhbC1sYW5ndWFnZSBsYWJlbCBwZXIgRFItMDA0OlxuICogMS4gQVNDSUktZm9sZCBjb21tb24gTGF0aW4gZGlhY3JpdGljcyAow7HihpJuLCDDqeKGkmUsIMO44oaSbywg4oCmKS5cbiAqIDIuIExvd2VyY2FzZSAoRHluYW1vREIgYnl0ZS1vcmRlciBzb3J0KS5cbiAqIDMuIFN0cmlwIGFwb3N0cm9waGVzIGFuZCBwZXJpb2RzIChzbyBgTydDb25ub3JgIOKGkiBgb2Nvbm5vcmApLlxuICogNC4gUmVwbGFjZSBoeXBoZW5zIHdpdGggc3BhY2VzIChzbyBgR2FyY8OtYS1Mw7NwZXpgIOKGkiBgZ2FyY2lhIGxvcGV6YCkuXG4gKiA1LiBTdHJpcCBvdGhlciBwdW5jdHVhdGlvbiwgY29sbGFwc2UgcnVucyBvZiB3aGl0ZXNwYWNlLCB0cmltLlxuICpcbiAqIE5vbi1MYXRpbiBzY3JpcHRzIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQgYWZ0ZXIgQVNDSUktZm9sZCBzbyBzYW1lLXNjcmlwdFxuICogaXRlbXMgc29ydCB0b2dldGhlci4gTG9jYWxlLWF3YXJlIGNvbGxhdGlvbiBpcyBhIGRvd25zdHJlYW0gY2xpZW50XG4gKiBjb25jZXJuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTGFiZWwoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBhc2NpaUZvbGQoaW5wdXQpXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvWyfigJkuXS9nLCBcIlwiKVxuICAgIC5yZXBsYWNlKC8tL2csIFwiIFwiKVxuICAgIC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfSxcXHNdL2d1LCBcIiBcIilcbiAgICAucmVwbGFjZSgvXFxzKy9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBhc2NpaUZvbGQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIERlY29tcG9zZSBhY2NlbnRzIGFuZCBzdHJpcCBjb21iaW5pbmcgbWFya3M7IGNvdmVycyB0aGUgY29tbW9uIExhdGluXG4gIC8vIGRpYWNyaXRpY3MgKMOpLCDDsSwgw7wsIOKApikuIE5vbi1MYXRpbiBzY3JpcHRzIGFyZSB1bmFmZmVjdGVkLlxuICByZXR1cm4gaW5wdXQubm9ybWFsaXplKFwiTkZLRFwiKS5yZXBsYWNlKC9cXHB7TX0rL2d1LCBcIlwiKTtcbn1cbiJdfQ==
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1zb3J0LWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb3J0LWtleS9leHRyYWN0LXNvcnQta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7O0FBcUJILHdDQWFDO0FBYUQsb0NBYUM7QUFpR0Qsd0NBUUM7QUFuS0QsK0NBQThEO0FBRzlEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxRQUEwQjtJQUN2RCxNQUFNLEVBQUUsR0FBRyxPQUFPLFFBQVEsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFOUQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUNmLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLEtBQUssUUFBUTtRQUM1QyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXO1FBQzNCLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVCxPQUFPLEdBQUcsV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLFFBQTBCO0lBQ3JELE1BQU0sTUFBTSxHQUFHLHlCQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7WUFB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QUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYTtJQUMxQyxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDcEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7U0FDbEIsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQztTQUNsQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztTQUNwQixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUFhO0lBQzlCLHVFQUF1RTtJQUN2RSw2REFBNkQ7SUFDN0QsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVyZSBwcm9qZWN0aW9uIG9mIGEgRkhJUiBSNCByZXNvdXJjZSBpbnRvIGl0cyBHU0kxIHNvcnQga2V5IHBlciBEUi0wMDQuXG4gKlxuICogLSBMYWJlbGVkIHR5cGVzIChlbnRyaWVzIGluIGBMQUJFTF9QQVRIU2ApOiBgPG5vcm1hbGl6ZWRMYWJlbD4jPGlkPmBcbiAqICAgc28gbGlzdCBlbmRwb2ludHMgc29ydCBhbHBoYWJldGljYWxseSBhbmQgYEJFR0lOU19XSVRIYCBzZXJ2ZXNcbiAqICAgcHJlZml4IHF1ZXJpZXMgbGlrZSBgP25hbWU9U21gLlxuICogLSBVbmxhYmVsZWQgdHlwZXM6IGA8SVNPLTg2MDEgbGFzdFVwZGF0ZWQ+IzxpZD5gIHNvIGxpc3QgZW5kcG9pbnRzXG4gKiAgIHNlcnZlIHJldmVyc2UtY2hyb25vbG9naWNhbCB3aXRoIGBTY2FuSW5kZXhGb3J3YXJkPWZhbHNlYC5cbiAqXG4gKiBQdXJlOiBubyBJL08sIG5vIER5bmFtb0RCIGFjY2VzcywgZGV0ZXJtaW5pc3RpYyBvdmVyIHRoZSByZXNvdXJjZSBhbmRcbiAqIHRoZSBjb21taXR0ZWQgYExBQkVMX1BBVEhTYCB0YWJsZS4gQ29uc3VtZWQgYnkgdGhlIGRhdGEtcGxhbmUgd3JpdGVyXG4gKiBiZWZvcmUgZWFjaCBgUHV0SXRlbWAgLyBgVXBkYXRlSXRlbWAuXG4gKi9cblxuaW1wb3J0IHsgTEFCRUxfUEFUSFMsIHR5cGUgTGFiZWxTb3VyY2UgfSBmcm9tIFwiLi9sYWJlbC1wYXRoc1wiO1xuaW1wb3J0IHR5cGUgeyBGaGlyUmVzb3VyY2VMaWtlIH0gZnJvbSBcIi4uL3N1bW1hcnkvZXh0cmFjdC1zdW1tYXJ5XCI7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgR1NJMSBzb3J0LWtleSB2YWx1ZSBmb3IgYHJlc291cmNlYC4gVGhlIGlkIGlzIHRoZVxuICogdGllLWJyZWFrZXIgc3VmZml4OyBjYWxsZXJzIG11c3QgcGFzcyBhIHJlc291cmNlIHRoYXQgY2FycmllcyBhbiBgaWRgXG4gKiBmb3IgYW4gYDxpZD5gIHNlZ21lbnQgdG8gYmUgcHJlc2VudCwgYnV0IGBleHRyYWN0U29ydEtleWAgcmV0dXJuc1xuICogYDxsYWJlbD4jYCAob3IgYDxsYXN0VXBkYXRlZD4jYCkgd2l0aCBhbiBlbXB0eSB0cmFpbGluZyBzZWdtZW50IHdoZW4gaWRcbiAqIGlzIG1pc3NpbmcgcmF0aGVyIHRoYW4gdGhyb3dpbmcg4oCUIHRoZSBjYWxsZXIgdmFsaWRhdGVzIGlkIGF0IHRoZVxuICogd3JpdGUtcGF0aCBlbnRyeS5cbiAqXG4gKiBSZXNvbHV0aW9uIG9yZGVyOlxuICogMS4gYExBQkVMX1BBVEhTW3Jlc291cmNlVHlwZV1gIOKAlCB0aGUgY3VyYXRlZCwgdHlwZS1hd2FyZSBleHRyYWN0aW9uLlxuICogMi4gSW50cm9zcGVjdGlvbiBmYWxsYmFjayBwZXIgQURSLTAxMSAvIERSLTAwNDogdHJ5IGByZXNvdXJjZS5uYW1lYFxuICogICAgKHdoZW4gaXQncyBhIG5vbi1lbXB0eSBzdHJpbmcpLCB0aGVuIGByZXNvdXJjZS50aXRsZWAgKHNhbWUpLCBzb1xuICogICAgc3BlYyB0eXBlcyB3aXRoIGEgc3RyaW5nIGBuYW1lYC9gdGl0bGVgIHBhcnRpY2lwYXRlIGluIGFscGhhYmV0aWNhbFxuICogICAgc29ydCBhbmQgYEJFR0lOU19XSVRIYCBldmVuIGlmIHRoZXkgYXJlbid0IGluIGBMQUJFTF9QQVRIU2AgeWV0LlxuICogMy4gVW5sYWJlbGVkIGZhbGxiYWNrIOKAlCBgPElTTy04NjAxIGxhc3RVcGRhdGVkPiM8aWQ+YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTb3J0S2V5KHJlc291cmNlOiBGaGlyUmVzb3VyY2VMaWtlKTogc3RyaW5nIHtcbiAgY29uc3QgaWQgPSB0eXBlb2YgcmVzb3VyY2UuaWQgPT09IFwic3RyaW5nXCIgPyByZXNvdXJjZS5pZCA6IFwiXCI7XG5cbiAgY29uc3QgbGFiZWwgPSBleHRyYWN0TGFiZWwocmVzb3VyY2UpO1xuICBpZiAobGFiZWwgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgJHtsYWJlbH0jJHtpZH1gO1xuICB9XG5cbiAgY29uc3QgbGFzdFVwZGF0ZWQgPVxuICAgIHR5cGVvZiByZXNvdXJjZS5tZXRhPy5sYXN0VXBkYXRlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyByZXNvdXJjZS5tZXRhLmxhc3RVcGRhdGVkXG4gICAgICA6IFwiXCI7XG4gIHJldHVybiBgJHtsYXN0VXBkYXRlZH0jJHtpZH1gO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgbmF0dXJhbCBsYWJlbCBmb3IgYHJlc291cmNlYCwgb3IgYHVuZGVmaW5lZGAgd2hlblxuICogbm8gbGFiZWwgY2FuIGJlIGV4dHJhY3RlZC4gVXNlZCBkaXJlY3RseSBieSBjb250cm9sLXBsYW5lIHdyaXRlcnMgdGhhdFxuICogY29tcG9zZSB0aGVpciBvd24gYDxsYWJlbD4jPGlkPmAgdnMgYDxlbnRpdHkubGFzdFVwZGF0ZWQ+IzxpZD5gIGZhbGxiYWNrLFxuICogYW5kIGluZGlyZWN0bHkgYnkgYGV4dHJhY3RTb3J0S2V5YCBmb3IgdGhlIGRhdGEgcGxhbmUuXG4gKlxuICogUmVzb2x1dGlvbiBvcmRlciBtYXRjaGVzIGBleHRyYWN0U29ydEtleWA6XG4gKiAxLiBgTEFCRUxfUEFUSFNbcmVzb3VyY2VUeXBlXWAg4oCUIGN1cmF0ZWQsIHR5cGUtYXdhcmUgZXh0cmFjdGlvbi5cbiAqIDIuIEludHJvc3BlY3Rpb24gZmFsbGJhY2sg4oCUIGByZXNvdXJjZS5uYW1lYCAoc3RyaW5nKSwgdGhlbiBgcmVzb3VyY2UudGl0bGVgLlxuICogMy4gUmV0dXJucyBgdW5kZWZpbmVkYCBzbyB0aGUgY2FsbGVyIGNhbiBkZWNpZGUgb24gaXRzIG93biBmYWxsYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMYWJlbChyZXNvdXJjZTogRmhpclJlc291cmNlTGlrZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNvdXJjZSA9IExBQkVMX1BBVEhTW3Jlc291cmNlLnJlc291cmNlVHlwZV07XG4gIGlmIChzb3VyY2UpIHtcbiAgICBjb25zdCByYXcgPSBleHRyYWN0TGFiZWxCeVNvdXJjZShyZXNvdXJjZSwgc291cmNlKTtcbiAgICBpZiAocmF3Lmxlbmd0aCA+IDApIHJldHVybiBub3JtYWxpemVMYWJlbChyYXcpO1xuICB9XG5cbiAgY29uc3QgaW50cm9zcGVjdGVkID1cbiAgICBpbnRyb3NwZWN0U3RyaW5nRmllbGQocmVzb3VyY2UsIFwibmFtZVwiKSA/P1xuICAgIGludHJvc3BlY3RTdHJpbmdGaWVsZChyZXNvdXJjZSwgXCJ0aXRsZVwiKTtcbiAgaWYgKGludHJvc3BlY3RlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gbm9ybWFsaXplTGFiZWwoaW50cm9zcGVjdGVkKTtcblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGBmaWVsZGAgb24gYHJlc291cmNlYCBvbmx5IGlmIGl0J3MgYSBub24tZW1wdHkgc3RyaW5nLlxuICogR3VhcmRzIGFnYWluc3QgSHVtYW5OYW1lIGFycmF5cyAoUGF0aWVudC5uYW1lKSBhbmQgb3RoZXIgbm9uLXN0cmluZyBzaGFwZXNcbiAqIHNvIHRoZSBpbnRyb3NwZWN0aW9uIGZhbGxiYWNrIG5ldmVyIHByb2R1Y2VzIGEga2V5IGZyb20gYSB0eXBlZCBmaWVsZCBpdFxuICogZG9lc24ndCB1bmRlcnN0YW5kIOKAlCB0aGF0IGNhc2Ugc3RheXMgb24gdGhlIGxhc3RVcGRhdGVkIGZhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBpbnRyb3NwZWN0U3RyaW5nRmllbGQoXG4gIHJlc291cmNlOiBGaGlyUmVzb3VyY2VMaWtlLFxuICBmaWVsZDogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdmFsdWUgPSByZXNvdXJjZVtmaWVsZF07XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUubGVuZ3RoID4gMCkgcmV0dXJuIHZhbHVlO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0TGFiZWxCeVNvdXJjZShcbiAgcmVzb3VyY2U6IEZoaXJSZXNvdXJjZUxpa2UsXG4gIHNvdXJjZTogTGFiZWxTb3VyY2UsXG4pOiBzdHJpbmcge1xuICBpZiAoc291cmNlLmtpbmQgPT09IFwiaHVtYW5OYW1lXCIpIHtcbiAgICBjb25zdCBuYW1lcyA9IHJlc291cmNlW3NvdXJjZS5wYXRoXTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobmFtZXMpKSByZXR1cm4gXCJcIjtcbiAgICBjb25zdCBmaXJzdCA9IG5hbWVzWzBdO1xuICAgIGlmICghZmlyc3QgfHwgdHlwZW9mIGZpcnN0ICE9PSBcIm9iamVjdFwiKSByZXR1cm4gXCJcIjtcbiAgICBjb25zdCBuYW1lID0gZmlyc3QgYXMgeyBmYW1pbHk/OiB1bmtub3duOyBnaXZlbj86IHVua25vd24gfTtcbiAgICBjb25zdCBmYW1pbHkgPSB0eXBlb2YgbmFtZS5mYW1pbHkgPT09IFwic3RyaW5nXCIgPyBuYW1lLmZhbWlseSA6IFwiXCI7XG4gICAgY29uc3QgZ2l2ZW4gPVxuICAgICAgQXJyYXkuaXNBcnJheShuYW1lLmdpdmVuKSAmJiB0eXBlb2YgbmFtZS5naXZlblswXSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IG5hbWUuZ2l2ZW5bMF1cbiAgICAgICAgOiBcIlwiO1xuICAgIGlmIChmYW1pbHkubGVuZ3RoID09PSAwICYmIGdpdmVuLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIGAke2ZhbWlseX0sJHtnaXZlbn1gO1xuICB9XG5cbiAgaWYgKHNvdXJjZS5raW5kID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgdmFsdWUgPSByZXNvdXJjZVtzb3VyY2UucGF0aF07XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogXCJcIjtcbiAgfVxuXG4gIGlmIChzb3VyY2Uua2luZCA9PT0gXCJjb2RlRGlzcGxheVwiKSB7XG4gICAgY29uc3QgY29kZSA9IHJlc291cmNlW3NvdXJjZS5wYXRoXTtcbiAgICBpZiAoIWNvZGUgfHwgdHlwZW9mIGNvZGUgIT09IFwib2JqZWN0XCIpIHJldHVybiBcIlwiO1xuICAgIGNvbnN0IGNjID0gY29kZSBhcyB7XG4gICAgICBjb2Rpbmc/OiB1bmtub3duO1xuICAgICAgdGV4dD86IHVua25vd247XG4gICAgfTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjYy5jb2RpbmcpKSB7XG4gICAgICBjb25zdCBmaXJzdCA9IGNjLmNvZGluZ1swXTtcbiAgICAgIGlmIChmaXJzdCAmJiB0eXBlb2YgZmlyc3QgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgY29uc3QgZGlzcGxheSA9IChmaXJzdCBhcyB7IGRpc3BsYXk/OiB1bmtub3duIH0pLmRpc3BsYXk7XG4gICAgICAgIGlmICh0eXBlb2YgZGlzcGxheSA9PT0gXCJzdHJpbmdcIiAmJiBkaXNwbGF5Lmxlbmd0aCA+IDApIHJldHVybiBkaXNwbGF5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGNjLnRleHQgPT09IFwic3RyaW5nXCIgPyBjYy50ZXh0IDogXCJcIjtcbiAgfVxuXG4gIGlmIChzb3VyY2Uua2luZCA9PT0gXCJpZGVudGlmaWVyXCIpIHtcbiAgICByZXR1cm4gZXh0cmFjdElkZW50aWZpZXJWYWx1ZShyZXNvdXJjZVtzb3VyY2UucGF0aF0pO1xuICB9XG5cbiAgcmV0dXJuIFwiXCI7XG59XG5cbi8qKlxuICogUmVhZHMgYElkZW50aWZpZXIudmFsdWVgIGZyb20gYSBGSElSIGBJZGVudGlmaWVyYCBvciBgSWRlbnRpZmllcltdYCBmaWVsZC5cbiAqIE1vc3QgRkhJUiBSNCByZXNvdXJjZXMgZXhwb3NlIGBpZGVudGlmaWVyYCBhcyBhbiBhcnJheTsgYSBmZXcgKEJ1bmRsZSxcbiAqIFF1ZXN0aW9ubmFpcmVSZXNwb25zZSkgdXNlIGEgc2luZ3VsYXIgYElkZW50aWZpZXJgLiBSZXR1cm5zIGVtcHR5IHdoZW4gbm9cbiAqIHVzYWJsZSB2YWx1ZSBpcyBwcmVzZW50IHNvIHRoZSBjYWxsZXIncyBlbXB0eS1sYWJlbCBmYWxsdGhyb3VnaCBraWNrcyBpbi5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdElkZW50aWZpZXJWYWx1ZShmaWVsZDogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkKSkge1xuICAgIGNvbnN0IGZpcnN0ID0gZmllbGRbMF07XG4gICAgaWYgKCFmaXJzdCB8fCB0eXBlb2YgZmlyc3QgIT09IFwib2JqZWN0XCIpIHJldHVybiBcIlwiO1xuICAgIGNvbnN0IHZhbHVlID0gKGZpcnN0IGFzIHsgdmFsdWU/OiB1bmtub3duIH0pLnZhbHVlO1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IFwiXCI7XG4gIH1cbiAgaWYgKGZpZWxkICYmIHR5cGVvZiBmaWVsZCA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHZhbHVlID0gKGZpZWxkIGFzIHsgdmFsdWU/OiB1bmtub3duIH0pLnZhbHVlO1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IFwiXCI7XG4gIH1cbiAgcmV0dXJuIFwiXCI7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgbmF0dXJhbC1sYW5ndWFnZSBsYWJlbCBwZXIgRFItMDA0OlxuICogMS4gQVNDSUktZm9sZCBjb21tb24gTGF0aW4gZGlhY3JpdGljcyAow7HihpJuLCDDqeKGkmUsIMO44oaSbywg4oCmKS5cbiAqIDIuIExvd2VyY2FzZSAoRHluYW1vREIgYnl0ZS1vcmRlciBzb3J0KS5cbiAqIDMuIFN0cmlwIGFwb3N0cm9waGVzIGFuZCBwZXJpb2RzIChzbyBgTydDb25ub3JgIOKGkiBgb2Nvbm5vcmApLlxuICogNC4gUmVwbGFjZSBoeXBoZW5zIHdpdGggc3BhY2VzIChzbyBgR2FyY8OtYS1Mw7NwZXpgIOKGkiBgZ2FyY2lhIGxvcGV6YCkuXG4gKiA1LiBTdHJpcCBvdGhlciBwdW5jdHVhdGlvbiwgY29sbGFwc2UgcnVucyBvZiB3aGl0ZXNwYWNlLCB0cmltLlxuICpcbiAqIE5vbi1MYXRpbiBzY3JpcHRzIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQgYWZ0ZXIgQVNDSUktZm9sZCBzbyBzYW1lLXNjcmlwdFxuICogaXRlbXMgc29ydCB0b2dldGhlci4gTG9jYWxlLWF3YXJlIGNvbGxhdGlvbiBpcyBhIGRvd25zdHJlYW0gY2xpZW50XG4gKiBjb25jZXJuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTGFiZWwoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBhc2NpaUZvbGQoaW5wdXQpXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvWyfigJkuXS9nLCBcIlwiKVxuICAgIC5yZXBsYWNlKC8tL2csIFwiIFwiKVxuICAgIC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfSxcXHNdL2d1LCBcIiBcIilcbiAgICAucmVwbGFjZSgvXFxzKy9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBhc2NpaUZvbGQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIERlY29tcG9zZSBhY2NlbnRzIGFuZCBzdHJpcCBjb21iaW5pbmcgbWFya3M7IGNvdmVycyB0aGUgY29tbW9uIExhdGluXG4gIC8vIGRpYWNyaXRpY3MgKMOpLCDDsSwgw7wsIOKApikuIE5vbi1MYXRpbiBzY3JpcHRzIGFyZSB1bmFmZmVjdGVkLlxuICByZXR1cm4gaW5wdXQubm9ybWFsaXplKFwiTkZLRFwiKS5yZXBsYWNlKC9cXHB7TX0rL2d1LCBcIlwiKTtcbn1cbiJdfQ==
|
|
@@ -1,29 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `LABEL_PATHS` — per-resource-type label-extraction rule for `extractSortKey`.
|
|
3
|
-
* Hand-curated
|
|
3
|
+
* Hand-curated table per DR-004.
|
|
4
4
|
*
|
|
5
5
|
* Resource types listed here emit GSI1 sort keys of the form
|
|
6
6
|
* `<normalizedLabel>#<id>` so list endpoints return alphabetically sorted by
|
|
7
7
|
* natural label and `BEGINS_WITH` queries serve prefix searches like
|
|
8
|
-
* `?name=Sm`. Resource types absent from this map
|
|
9
|
-
* `<ISO-8601 lastUpdated>#<id>`.
|
|
8
|
+
* `?name=Sm` or `?identifier=INV-2024`. Resource types absent from this map
|
|
9
|
+
* fall back to `<ISO-8601 lastUpdated>#<id>`.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Five buckets cover the FHIR R4 surface:
|
|
12
|
+
*
|
|
13
|
+
* - **humanName** — `name: HumanName[]` (Patient, Practitioner, Person,
|
|
14
|
+
* RelatedPerson). Label is `family,given`.
|
|
15
|
+
* - **string** with `path: "name"` — plain string `name` fields on
|
|
16
|
+
* directory-style resources (Organization, Location, Account, …) and
|
|
17
|
+
* on conformance resources (StructureDefinition, ValueSet, …).
|
|
18
|
+
* - **string** with `path: "title"` — title-keyed resources where the
|
|
19
|
+
* business label is `title` rather than `name` (CarePlan, Composition,
|
|
20
|
+
* Contract, List, ResearchStudy, …).
|
|
21
|
+
* - **codeDisplay** — primary CodeableConcept on the resource
|
|
22
|
+
* (Condition.code, Observation.code, Immunization.vaccineCode,
|
|
23
|
+
* BodyStructure.morphology, …). Label is `coding[0].display` with
|
|
24
|
+
* `text` fallback.
|
|
25
|
+
* - **identifier** — business identifier on transactional / financial /
|
|
26
|
+
* scheduling resources (Claim.identifier, Invoice.identifier,
|
|
27
|
+
* Encounter.identifier, …). Label is `identifier[0].value`.
|
|
28
|
+
*
|
|
29
|
+
* Resource types not in this table fall through to `<lastUpdated>#<id>` —
|
|
30
|
+
* intentional for event-log and metadata resources (AuditEvent, Bundle,
|
|
31
|
+
* Provenance, Linkage, MessageHeader, VerificationResult) and for the
|
|
32
|
+
* substance / medicinal-product detail families (SubstanceNucleicAcid,
|
|
33
|
+
* MedicinalProductIngredient, …) that are not list-by-name resources.
|
|
14
34
|
*
|
|
15
35
|
* @see openhi-planning DR-004 — FHIR Summary-Attribute and Sort-Key Projection Strategy
|
|
16
36
|
*/
|
|
17
37
|
/** Source of the natural label for a labeled resource type. */
|
|
18
38
|
export type LabelSource = {
|
|
19
39
|
kind: "humanName";
|
|
20
|
-
path:
|
|
40
|
+
path: string;
|
|
21
41
|
} | {
|
|
22
42
|
kind: "string";
|
|
23
|
-
path:
|
|
43
|
+
path: string;
|
|
24
44
|
} | {
|
|
25
45
|
kind: "codeDisplay";
|
|
26
|
-
path:
|
|
46
|
+
path: string;
|
|
47
|
+
} | {
|
|
48
|
+
kind: "identifier";
|
|
49
|
+
path: string;
|
|
27
50
|
};
|
|
28
|
-
/** Resource types with curated natural labels
|
|
51
|
+
/** Resource types with curated natural labels. */
|
|
29
52
|
export declare const LABEL_PATHS: Record<string, LabelSource>;
|
|
@@ -1,28 +1,169 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* `LABEL_PATHS` — per-resource-type label-extraction rule for `extractSortKey`.
|
|
4
|
-
* Hand-curated
|
|
4
|
+
* Hand-curated table per DR-004.
|
|
5
5
|
*
|
|
6
6
|
* Resource types listed here emit GSI1 sort keys of the form
|
|
7
7
|
* `<normalizedLabel>#<id>` so list endpoints return alphabetically sorted by
|
|
8
8
|
* natural label and `BEGINS_WITH` queries serve prefix searches like
|
|
9
|
-
* `?name=Sm`. Resource types absent from this map
|
|
10
|
-
* `<ISO-8601 lastUpdated>#<id>`.
|
|
9
|
+
* `?name=Sm` or `?identifier=INV-2024`. Resource types absent from this map
|
|
10
|
+
* fall back to `<ISO-8601 lastUpdated>#<id>`.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Five buckets cover the FHIR R4 surface:
|
|
13
|
+
*
|
|
14
|
+
* - **humanName** — `name: HumanName[]` (Patient, Practitioner, Person,
|
|
15
|
+
* RelatedPerson). Label is `family,given`.
|
|
16
|
+
* - **string** with `path: "name"` — plain string `name` fields on
|
|
17
|
+
* directory-style resources (Organization, Location, Account, …) and
|
|
18
|
+
* on conformance resources (StructureDefinition, ValueSet, …).
|
|
19
|
+
* - **string** with `path: "title"` — title-keyed resources where the
|
|
20
|
+
* business label is `title` rather than `name` (CarePlan, Composition,
|
|
21
|
+
* Contract, List, ResearchStudy, …).
|
|
22
|
+
* - **codeDisplay** — primary CodeableConcept on the resource
|
|
23
|
+
* (Condition.code, Observation.code, Immunization.vaccineCode,
|
|
24
|
+
* BodyStructure.morphology, …). Label is `coding[0].display` with
|
|
25
|
+
* `text` fallback.
|
|
26
|
+
* - **identifier** — business identifier on transactional / financial /
|
|
27
|
+
* scheduling resources (Claim.identifier, Invoice.identifier,
|
|
28
|
+
* Encounter.identifier, …). Label is `identifier[0].value`.
|
|
29
|
+
*
|
|
30
|
+
* Resource types not in this table fall through to `<lastUpdated>#<id>` —
|
|
31
|
+
* intentional for event-log and metadata resources (AuditEvent, Bundle,
|
|
32
|
+
* Provenance, Linkage, MessageHeader, VerificationResult) and for the
|
|
33
|
+
* substance / medicinal-product detail families (SubstanceNucleicAcid,
|
|
34
|
+
* MedicinalProductIngredient, …) that are not list-by-name resources.
|
|
15
35
|
*
|
|
16
36
|
* @see openhi-planning DR-004 — FHIR Summary-Attribute and Sort-Key Projection Strategy
|
|
17
37
|
*/
|
|
18
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
39
|
exports.LABEL_PATHS = void 0;
|
|
20
|
-
/** Resource types with curated natural labels
|
|
40
|
+
/** Resource types with curated natural labels. */
|
|
21
41
|
exports.LABEL_PATHS = {
|
|
42
|
+
// HumanName arrays
|
|
22
43
|
Patient: { kind: "humanName", path: "name" },
|
|
44
|
+
Person: { kind: "humanName", path: "name" },
|
|
23
45
|
Practitioner: { kind: "humanName", path: "name" },
|
|
24
|
-
|
|
46
|
+
RelatedPerson: { kind: "humanName", path: "name" },
|
|
47
|
+
// Plain string `name` (directory-style resources)
|
|
48
|
+
Account: { kind: "string", path: "name" },
|
|
49
|
+
CareTeam: { kind: "string", path: "name" },
|
|
50
|
+
Endpoint: { kind: "string", path: "name" },
|
|
51
|
+
Group: { kind: "string", path: "name" },
|
|
52
|
+
HealthcareService: { kind: "string", path: "name" },
|
|
53
|
+
InsurancePlan: { kind: "string", path: "name" },
|
|
25
54
|
Location: { kind: "string", path: "name" },
|
|
55
|
+
Organization: { kind: "string", path: "name" },
|
|
56
|
+
// Control-plane FHIR types (ADR-2026-03-13-01 — Tenant/Workspace as FHIR types)
|
|
57
|
+
Tenant: { kind: "string", path: "name" },
|
|
58
|
+
Workspace: { kind: "string", path: "name" },
|
|
59
|
+
// `title`-keyed (title is the only or primary human label)
|
|
60
|
+
CarePlan: { kind: "string", path: "title" },
|
|
61
|
+
ChargeItemDefinition: { kind: "string", path: "title" },
|
|
62
|
+
Composition: { kind: "string", path: "title" },
|
|
63
|
+
Contract: { kind: "string", path: "title" },
|
|
64
|
+
List: { kind: "string", path: "title" },
|
|
65
|
+
ResearchStudy: { kind: "string", path: "title" },
|
|
66
|
+
// Conformance resources (string `name` is required; `title` is optional)
|
|
67
|
+
ActivityDefinition: { kind: "string", path: "name" },
|
|
68
|
+
CapabilityStatement: { kind: "string", path: "name" },
|
|
69
|
+
CodeSystem: { kind: "string", path: "name" },
|
|
70
|
+
CompartmentDefinition: { kind: "string", path: "name" },
|
|
71
|
+
ConceptMap: { kind: "string", path: "name" },
|
|
72
|
+
EffectEvidenceSynthesis: { kind: "string", path: "name" },
|
|
73
|
+
EventDefinition: { kind: "string", path: "name" },
|
|
74
|
+
Evidence: { kind: "string", path: "name" },
|
|
75
|
+
EvidenceVariable: { kind: "string", path: "name" },
|
|
76
|
+
ExampleScenario: { kind: "string", path: "name" },
|
|
77
|
+
GraphDefinition: { kind: "string", path: "name" },
|
|
78
|
+
ImplementationGuide: { kind: "string", path: "name" },
|
|
79
|
+
Library: { kind: "string", path: "name" },
|
|
80
|
+
Measure: { kind: "string", path: "name" },
|
|
81
|
+
MessageDefinition: { kind: "string", path: "name" },
|
|
82
|
+
NamingSystem: { kind: "string", path: "name" },
|
|
83
|
+
OperationDefinition: { kind: "string", path: "name" },
|
|
84
|
+
PlanDefinition: { kind: "string", path: "name" },
|
|
85
|
+
Questionnaire: { kind: "string", path: "name" },
|
|
86
|
+
ResearchDefinition: { kind: "string", path: "name" },
|
|
87
|
+
ResearchElementDefinition: { kind: "string", path: "name" },
|
|
88
|
+
RiskEvidenceSynthesis: { kind: "string", path: "name" },
|
|
89
|
+
SearchParameter: { kind: "string", path: "name" },
|
|
90
|
+
StructureDefinition: { kind: "string", path: "name" },
|
|
91
|
+
StructureMap: { kind: "string", path: "name" },
|
|
92
|
+
TerminologyCapabilities: { kind: "string", path: "name" },
|
|
93
|
+
TestReport: { kind: "string", path: "name" },
|
|
94
|
+
TestScript: { kind: "string", path: "name" },
|
|
95
|
+
ValueSet: { kind: "string", path: "name" },
|
|
96
|
+
// Primary CodeableConcept (codeDisplay reads `coding[0].display` with `text` fallback)
|
|
97
|
+
AdverseEvent: { kind: "codeDisplay", path: "event" },
|
|
98
|
+
AllergyIntolerance: { kind: "codeDisplay", path: "code" },
|
|
99
|
+
Basic: { kind: "codeDisplay", path: "code" },
|
|
100
|
+
BodyStructure: { kind: "codeDisplay", path: "morphology" },
|
|
101
|
+
ChargeItem: { kind: "codeDisplay", path: "code" },
|
|
102
|
+
Communication: { kind: "codeDisplay", path: "topic" },
|
|
103
|
+
Condition: { kind: "codeDisplay", path: "code" },
|
|
104
|
+
DetectedIssue: { kind: "codeDisplay", path: "code" },
|
|
105
|
+
DeviceMetric: { kind: "codeDisplay", path: "type" },
|
|
106
|
+
DiagnosticReport: { kind: "codeDisplay", path: "code" },
|
|
107
|
+
DocumentManifest: { kind: "codeDisplay", path: "type" },
|
|
108
|
+
DocumentReference: { kind: "codeDisplay", path: "type" },
|
|
109
|
+
FamilyMemberHistory: { kind: "codeDisplay", path: "relationship" },
|
|
110
|
+
Flag: { kind: "codeDisplay", path: "code" },
|
|
111
|
+
Goal: { kind: "codeDisplay", path: "description" },
|
|
112
|
+
Immunization: { kind: "codeDisplay", path: "vaccineCode" },
|
|
113
|
+
ImmunizationEvaluation: { kind: "codeDisplay", path: "vaccineCode" },
|
|
26
114
|
Medication: { kind: "codeDisplay", path: "code" },
|
|
115
|
+
MedicationKnowledge: { kind: "codeDisplay", path: "code" },
|
|
116
|
+
Observation: { kind: "codeDisplay", path: "code" },
|
|
117
|
+
ObservationDefinition: { kind: "codeDisplay", path: "code" },
|
|
118
|
+
Procedure: { kind: "codeDisplay", path: "code" },
|
|
119
|
+
ServiceRequest: { kind: "codeDisplay", path: "code" },
|
|
120
|
+
Specimen: { kind: "codeDisplay", path: "type" },
|
|
121
|
+
SpecimenDefinition: { kind: "codeDisplay", path: "typeCollected" },
|
|
122
|
+
Substance: { kind: "codeDisplay", path: "code" },
|
|
123
|
+
Task: { kind: "codeDisplay", path: "code" },
|
|
124
|
+
// Business identifier — `identifier[0].value` (singular `Identifier` also supported)
|
|
125
|
+
Appointment: { kind: "identifier", path: "identifier" },
|
|
126
|
+
AppointmentResponse: { kind: "identifier", path: "identifier" },
|
|
127
|
+
CatalogEntry: { kind: "identifier", path: "identifier" },
|
|
128
|
+
Claim: { kind: "identifier", path: "identifier" },
|
|
129
|
+
ClaimResponse: { kind: "identifier", path: "identifier" },
|
|
130
|
+
ClinicalImpression: { kind: "identifier", path: "identifier" },
|
|
131
|
+
CommunicationRequest: { kind: "identifier", path: "identifier" },
|
|
132
|
+
Consent: { kind: "identifier", path: "identifier" },
|
|
133
|
+
Coverage: { kind: "identifier", path: "identifier" },
|
|
134
|
+
CoverageEligibilityRequest: { kind: "identifier", path: "identifier" },
|
|
135
|
+
CoverageEligibilityResponse: { kind: "identifier", path: "identifier" },
|
|
136
|
+
DeviceRequest: { kind: "identifier", path: "identifier" },
|
|
137
|
+
DeviceUseStatement: { kind: "identifier", path: "identifier" },
|
|
138
|
+
Encounter: { kind: "identifier", path: "identifier" },
|
|
139
|
+
EnrollmentRequest: { kind: "identifier", path: "identifier" },
|
|
140
|
+
EnrollmentResponse: { kind: "identifier", path: "identifier" },
|
|
141
|
+
EpisodeOfCare: { kind: "identifier", path: "identifier" },
|
|
142
|
+
ExplanationOfBenefit: { kind: "identifier", path: "identifier" },
|
|
143
|
+
GuidanceResponse: { kind: "identifier", path: "identifier" },
|
|
144
|
+
ImagingStudy: { kind: "identifier", path: "identifier" },
|
|
145
|
+
ImmunizationRecommendation: { kind: "identifier", path: "identifier" },
|
|
146
|
+
Invoice: { kind: "identifier", path: "identifier" },
|
|
147
|
+
MeasureReport: { kind: "identifier", path: "identifier" },
|
|
148
|
+
Media: { kind: "identifier", path: "identifier" },
|
|
149
|
+
MedicationAdministration: { kind: "identifier", path: "identifier" },
|
|
150
|
+
MedicationDispense: { kind: "identifier", path: "identifier" },
|
|
151
|
+
MedicationRequest: { kind: "identifier", path: "identifier" },
|
|
152
|
+
MedicationStatement: { kind: "identifier", path: "identifier" },
|
|
153
|
+
MolecularSequence: { kind: "identifier", path: "identifier" },
|
|
154
|
+
NutritionOrder: { kind: "identifier", path: "identifier" },
|
|
155
|
+
OrganizationAffiliation: { kind: "identifier", path: "identifier" },
|
|
156
|
+
PaymentNotice: { kind: "identifier", path: "identifier" },
|
|
157
|
+
PaymentReconciliation: { kind: "identifier", path: "identifier" },
|
|
158
|
+
PractitionerRole: { kind: "identifier", path: "identifier" },
|
|
159
|
+
QuestionnaireResponse: { kind: "identifier", path: "identifier" },
|
|
160
|
+
RequestGroup: { kind: "identifier", path: "identifier" },
|
|
161
|
+
ResearchSubject: { kind: "identifier", path: "identifier" },
|
|
162
|
+
RiskAssessment: { kind: "identifier", path: "identifier" },
|
|
163
|
+
Schedule: { kind: "identifier", path: "identifier" },
|
|
164
|
+
Slot: { kind: "identifier", path: "identifier" },
|
|
165
|
+
SupplyDelivery: { kind: "identifier", path: "identifier" },
|
|
166
|
+
SupplyRequest: { kind: "identifier", path: "identifier" },
|
|
167
|
+
VisionPrescription: { kind: "identifier", path: "identifier" },
|
|
27
168
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtcGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc29ydC1rZXkvbGFiZWwtcGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBUUgsa0VBQWtFO0FBQ3JELFFBQUEsV0FBVyxHQUFnQztJQUN0RCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDNUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQ2pELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtJQUM5QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDMUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0NBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBMQUJFTF9QQVRIU2Ag4oCUIHBlci1yZXNvdXJjZS10eXBlIGxhYmVsLWV4dHJhY3Rpb24gcnVsZSBmb3IgYGV4dHJhY3RTb3J0S2V5YC5cbiAqIEhhbmQtY3VyYXRlZCBwbGF0Zm9ybS10aWVyIHRhYmxlIHBlciBEUi0wMDQuXG4gKlxuICogUmVzb3VyY2UgdHlwZXMgbGlzdGVkIGhlcmUgZW1pdCBHU0kxIHNvcnQga2V5cyBvZiB0aGUgZm9ybVxuICogYDxub3JtYWxpemVkTGFiZWw+IzxpZD5gIHNvIGxpc3QgZW5kcG9pbnRzIHJldHVybiBhbHBoYWJldGljYWxseSBzb3J0ZWQgYnlcbiAqIG5hdHVyYWwgbGFiZWwgYW5kIGBCRUdJTlNfV0lUSGAgcXVlcmllcyBzZXJ2ZSBwcmVmaXggc2VhcmNoZXMgbGlrZVxuICogYD9uYW1lPVNtYC4gUmVzb3VyY2UgdHlwZXMgYWJzZW50IGZyb20gdGhpcyBtYXAgZmFsbCBiYWNrIHRvXG4gKiBgPElTTy04NjAxIGxhc3RVcGRhdGVkPiM8aWQ+YC5cbiAqXG4gKiBUaGUgbWluaW11bSBwbGF0Zm9ybS1jdXJhdGVkIHNldCBwZXIgRFItMDA0IGlzIFBhdGllbnQsIFByYWN0aXRpb25lcixcbiAqIE9yZ2FuaXphdGlvbiwgTG9jYXRpb24sIE1lZGljYXRpb24uIE5ldyBlbnRyaWVzIGhlcmUgYXJlIG9uZS1saW5lIGFkZGl0aW9uc1xuICogcmV2aWV3ZWQgYXQgUFIgdGltZSDigJQgbm8gZW5naW5lIGNoYW5nZSByZXF1aXJlZC5cbiAqXG4gKiBAc2VlIG9wZW5oaS1wbGFubmluZyBEUi0wMDQg4oCUIEZISVIgU3VtbWFyeS1BdHRyaWJ1dGUgYW5kIFNvcnQtS2V5IFByb2plY3Rpb24gU3RyYXRlZ3lcbiAqL1xuXG4vKiogU291cmNlIG9mIHRoZSBuYXR1cmFsIGxhYmVsIGZvciBhIGxhYmVsZWQgcmVzb3VyY2UgdHlwZS4gKi9cbmV4cG9ydCB0eXBlIExhYmVsU291cmNlID1cbiAgfCB7IGtpbmQ6IFwiaHVtYW5OYW1lXCI7IHBhdGg6IFwibmFtZVwiIH1cbiAgfCB7IGtpbmQ6IFwic3RyaW5nXCI7IHBhdGg6IFwibmFtZVwiIH1cbiAgfCB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIjsgcGF0aDogXCJjb2RlXCIgfTtcblxuLyoqIFJlc291cmNlIHR5cGVzIHdpdGggY3VyYXRlZCBuYXR1cmFsIGxhYmVscyAoRFItMDA0IFRpZXIgMSkuICovXG5leHBvcnQgY29uc3QgTEFCRUxfUEFUSFM6IFJlY29yZDxzdHJpbmcsIExhYmVsU291cmNlPiA9IHtcbiAgUGF0aWVudDogeyBraW5kOiBcImh1bWFuTmFtZVwiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBQcmFjdGl0aW9uZXI6IHsga2luZDogXCJodW1hbk5hbWVcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgT3JnYW5pemF0aW9uOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIExvY2F0aW9uOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIE1lZGljYXRpb246IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcImNvZGVcIiB9LFxufTtcbiJdfQ==
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtcGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc29ydC1rZXkvbGFiZWwtcGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRzs7O0FBU0gsa0RBQWtEO0FBQ3JDLFFBQUEsV0FBVyxHQUFnQztJQUN0RCxtQkFBbUI7SUFDbkIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQzVDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtJQUMzQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDakQsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBRWxELGtEQUFrRDtJQUNsRCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDekMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQzFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtJQUMxQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDdkMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDbkQsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQy9DLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0s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SSxFQUFFLFlBQVksRUFBRTtJQUN4RCxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7SUFDM0QsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO0lBQzFELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtJQUNwRCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7SUFDaEQsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO0lBQzFELGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtJQUN6RCxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtDQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBgTEFCRUxfUEFUSFNgIOKAlCBwZXItcmVzb3VyY2UtdHlwZSBsYWJlbC1leHRyYWN0aW9uIHJ1bGUgZm9yIGBleHRyYWN0U29ydEtleWAuXG4gKiBIYW5kLWN1cmF0ZWQgdGFibGUgcGVyIERSLTAwNC5cbiAqXG4gKiBSZXNvdXJjZSB0eXBlcyBsaXN0ZWQgaGVyZSBlbWl0IEdTSTEgc29ydCBrZXlzIG9mIHRoZSBmb3JtXG4gKiBgPG5vcm1hbGl6ZWRMYWJlbD4jPGlkPmAgc28gbGlzdCBlbmRwb2ludHMgcmV0dXJuIGFscGhhYmV0aWNhbGx5IHNvcnRlZCBieVxuICogbmF0dXJhbCBsYWJlbCBhbmQgYEJFR0lOU19XSVRIYCBxdWVyaWVzIHNlcnZlIHByZWZpeCBzZWFyY2hlcyBsaWtlXG4gKiBgP25hbWU9U21gIG9yIGA/aWRlbnRpZmllcj1JTlYtMjAyNGAuIFJlc291cmNlIHR5cGVzIGFic2VudCBmcm9tIHRoaXMgbWFwXG4gKiBmYWxsIGJhY2sgdG8gYDxJU08tODYwMSBsYXN0VXBkYXRlZD4jPGlkPmAuXG4gKlxuICogRml2ZSBidWNrZXRzIGNvdmVyIHRoZSBGSElSIFI0IHN1cmZhY2U6XG4gKlxuICogLSAqKmh1bWFuTmFtZSoqIOKAlCBgbmFtZTogSHVtYW5OYW1lW11gIChQYXRpZW50LCBQcmFjdGl0aW9uZXIsIFBlcnNvbixcbiAqICAgUmVsYXRlZFBlcnNvbikuIExhYmVsIGlzIGBmYW1pbHksZ2l2ZW5gLlxuICogLSAqKnN0cmluZyoqIHdpdGggYHBhdGg6IFwibmFtZVwiYCDigJQgcGxhaW4gc3RyaW5nIGBuYW1lYCBmaWVsZHMgb25cbiAqICAgZGlyZWN0b3J5LXN0eWxlIHJlc291cmNlcyAoT3JnYW5pemF0aW9uLCBMb2NhdGlvbiwgQWNjb3VudCwg4oCmKSBhbmRcbiAqICAgb24gY29uZm9ybWFuY2UgcmVzb3VyY2VzIChTdHJ1Y3R1cmVEZWZpbml0aW9uLCBWYWx1ZVNldCwg4oCmKS5cbiAqIC0gKipzdHJpbmcqKiB3aXRoIGBwYXRoOiBcInRpdGxlXCJgIOKAlCB0aXRsZS1rZXllZCByZXNvdXJjZXMgd2hlcmUgdGhlXG4gKiAgIGJ1c2luZXNzIGxhYmVsIGlzIGB0aXRsZWAgcmF0aGVyIHRoYW4gYG5hbWVgIChDYXJlUGxhbiwgQ29tcG9zaXRpb24sXG4gKiAgIENvbnRyYWN0LCBMaXN0LCBSZXNlYXJjaFN0dWR5LCDigKYpLlxuICogLSAqKmNvZGVEaXNwbGF5Kiog4oCUIHByaW1hcnkgQ29kZWFibGVDb25jZXB0IG9uIHRoZSByZXNvdXJjZVxuICogICAoQ29uZGl0aW9uLmNvZGUsIE9ic2VydmF0aW9uLmNvZGUsIEltbXVuaXphdGlvbi52YWNjaW5lQ29kZSxcbiAqICAgQm9keVN0cnVjdHVyZS5tb3JwaG9sb2d5LCDigKYpLiBMYWJlbCBpcyBgY29kaW5nWzBdLmRpc3BsYXlgIHdpdGhcbiAqICAgYHRleHRgIGZhbGxiYWNrLlxuICogLSAqKmlkZW50aWZpZXIqKiDigJQgYnVzaW5lc3MgaWRlbnRpZmllciBvbiB0cmFuc2FjdGlvbmFsIC8gZmluYW5jaWFsIC9cbiAqICAgc2NoZWR1bGluZyByZXNvdXJjZXMgKENsYWltLmlkZW50aWZpZXIsIEludm9pY2UuaWRlbnRpZmllcixcbiAqICAgRW5jb3VudGVyLmlkZW50aWZpZXIsIOKApikuIExhYmVsIGlzIGBpZGVudGlmaWVyWzBdLnZhbHVlYC5cbiAqXG4gKiBSZXNvdXJjZSB0eXBlcyBub3QgaW4gdGhpcyB0YWJsZSBmYWxsIHRocm91Z2ggdG8gYDxsYXN0VXBkYXRlZD4jPGlkPmAg4oCUXG4gKiBpbnRlbnRpb25hbCBmb3IgZXZlbnQtbG9nIGFuZCBtZXRhZGF0YSByZXNvdXJjZXMgKEF1ZGl0RXZlbnQsIEJ1bmRsZSxcbiAqIFByb3ZlbmFuY2UsIExpbmthZ2UsIE1lc3NhZ2VIZWFkZXIsIFZlcmlmaWNhdGlvblJlc3VsdCkgYW5kIGZvciB0aGVcbiAqIHN1YnN0YW5jZSAvIG1lZGljaW5hbC1wcm9kdWN0IGRldGFpbCBmYW1pbGllcyAoU3Vic3RhbmNlTnVjbGVpY0FjaWQsXG4gKiBNZWRpY2luYWxQcm9kdWN0SW5ncmVkaWVudCwg4oCmKSB0aGF0IGFyZSBub3QgbGlzdC1ieS1uYW1lIHJlc291cmNlcy5cbiAqXG4gKiBAc2VlIG9wZW5oaS1wbGFubmluZyBEUi0wMDQg4oCUIEZISVIgU3VtbWFyeS1BdHRyaWJ1dGUgYW5kIFNvcnQtS2V5IFByb2plY3Rpb24gU3RyYXRlZ3lcbiAqL1xuXG4vKiogU291cmNlIG9mIHRoZSBuYXR1cmFsIGxhYmVsIGZvciBhIGxhYmVsZWQgcmVzb3VyY2UgdHlwZS4gKi9cbmV4cG9ydCB0eXBlIExhYmVsU291cmNlID1cbiAgfCB7IGtpbmQ6IFwiaHVtYW5OYW1lXCI7IHBhdGg6IHN0cmluZyB9XG4gIHwgeyBraW5kOiBcInN0cmluZ1wiOyBwYXRoOiBzdHJpbmcgfVxuICB8IHsga2luZDogXCJjb2RlRGlzcGxheVwiOyBwYXRoOiBzdHJpbmcgfVxuICB8IHsga2luZDogXCJpZGVudGlmaWVyXCI7IHBhdGg6IHN0cmluZyB9O1xuXG4vKiogUmVzb3VyY2UgdHlwZXMgd2l0aCBjdXJhdGVkIG5hdHVyYWwgbGFiZWxzLiAqL1xuZXhwb3J0IGNvbnN0IExBQkVMX1BBVEhTOiBSZWNvcmQ8c3RyaW5nLCBMYWJlbFNvdXJjZT4gPSB7XG4gIC8vIEh1bWFuTmFtZSBhcnJheXNcbiAgUGF0aWVudDogeyBraW5kOiBcImh1bWFuTmFtZVwiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBQZXJzb246IHsga2luZDogXCJodW1hbk5hbWVcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgUHJhY3RpdGlvbmVyOiB7IGtpbmQ6IFwiaHVtYW5OYW1lXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIFJlbGF0ZWRQZXJzb246IHsga2luZDogXCJodW1hbk5hbWVcIiwgcGF0aDogXCJuYW1lXCIgfSxcblxuICAvLyBQbGFpbiBzdHJpbmcgYG5hbWVgIChkaXJlY3Rvcnktc3R5bGUgcmVzb3VyY2VzKVxuICBBY2NvdW50OiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIENhcmVUZWFtOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEVuZHBvaW50OiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEdyb3VwOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEhlYWx0aGNhcmVTZXJ2aWNlOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEluc3VyYW5jZVBsYW46IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgTG9jYXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgT3JnYW5pemF0aW9uOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG5cbiAgLy8gQ29udHJvbC1wbGFuZSBGSElSIHR5cGVzIChBRFItMjAyNi0wMy0xMy0wMSDigJQgVGVuYW50L1dvcmtzcGFjZSBhcyBGSElSIHR5cGVzKVxuICBUZW5hbnQ6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgV29ya3NwYWNlOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG5cbiAgLy8gYHRpdGxlYC1rZXllZCAodGl0bGUgaXMgdGhlIG9ubHkgb3IgcHJpbWFyeSBodW1hbiBsYWJlbClcbiAgQ2FyZVBsYW46IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJ0aXRsZVwiIH0sXG4gIENoYXJnZUl0ZW1EZWZpbml0aW9uOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwidGl0bGVcIiB9LFxuICBDb21wb3NpdGlvbjogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcInRpdGxlXCIgfSxcbiAgQ29udHJhY3Q6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJ0aXRsZVwiIH0sXG4gIExpc3Q6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJ0aXRsZVwiIH0sXG4gIFJlc2VhcmNoU3R1ZHk6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJ0aXRsZVwiIH0sXG5cbiAgLy8gQ29uZm9ybWFuY2UgcmVzb3VyY2VzIChzdHJpbmcgYG5hbWVgIGlzIHJlcXVpcmVkOyBgdGl0bGVgIGlzIG9wdGlvbmFsKVxuICBBY3Rpdml0eURlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgQ2FwYWJpbGl0eVN0YXRlbWVudDogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBDb2RlU3lzdGVtOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIENvbXBhcnRtZW50RGVmaW5pdGlvbjogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBDb25jZXB0TWFwOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEVmZmVjdEV2aWRlbmNlU3ludGhlc2lzOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEV2ZW50RGVmaW5pdGlvbjogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBFdmlkZW5jZTogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBFdmlkZW5jZVZhcmlhYmxlOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIEV4YW1wbGVTY2VuYXJpbzogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBHcmFwaERlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgSW1wbGVtZW50YXRpb25HdWlkZTogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBMaWJyYXJ5OiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIE1lYXN1cmU6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgTWVzc2FnZURlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgTmFtaW5nU3lzdGVtOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIE9wZXJhdGlvbkRlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgUGxhbkRlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgUXVlc3Rpb25uYWlyZTogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBSZXNlYXJjaERlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgUmVzZWFyY2hFbGVtZW50RGVmaW5pdGlvbjogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBSaXNrRXZpZGVuY2VTeW50aGVzaXM6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgU2VhcmNoUGFyYW1ldGVyOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIFN0cnVjdHVyZURlZmluaXRpb246IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgU3RydWN0dXJlTWFwOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIFRlcm1pbm9sb2d5Q2FwYWJpbGl0aWVzOiB7IGtpbmQ6IFwic3RyaW5nXCIsIHBhdGg6IFwibmFtZVwiIH0sXG4gIFRlc3RSZXBvcnQ6IHsga2luZDogXCJzdHJpbmdcIiwgcGF0aDogXCJuYW1lXCIgfSxcbiAgVGVzdFNjcmlwdDogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuICBWYWx1ZVNldDogeyBraW5kOiBcInN0cmluZ1wiLCBwYXRoOiBcIm5hbWVcIiB9LFxuXG4gIC8vIFByaW1hcnkgQ29kZWFibGVDb25jZXB0IChjb2RlRGlzcGxheSByZWFkcyBgY29kaW5nWzBdLmRpc3BsYXlgIHdpdGggYHRleHRgIGZhbGxiYWNrKVxuICBBZHZlcnNlRXZlbnQ6IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcImV2ZW50XCIgfSxcbiAgQWxsZXJneUludG9sZXJhbmNlOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgQmFzaWM6IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcImNvZGVcIiB9LFxuICBCb2R5U3RydWN0dXJlOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJtb3JwaG9sb2d5XCIgfSxcbiAgQ2hhcmdlSXRlbTogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwiY29kZVwiIH0sXG4gIENvbW11bmljYXRpb246IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcInRvcGljXCIgfSxcbiAgQ29uZGl0aW9uOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgRGV0ZWN0ZWRJc3N1ZTogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwiY29kZVwiIH0sXG4gIERldmljZU1ldHJpYzogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwidHlwZVwiIH0sXG4gIERpYWdub3N0aWNSZXBvcnQ6IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcImNvZGVcIiB9LFxuICBEb2N1bWVudE1hbmlmZXN0OiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJ0eXBlXCIgfSxcbiAgRG9jdW1lbnRSZWZlcmVuY2U6IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcInR5cGVcIiB9LFxuICBGYW1pbHlNZW1iZXJIaXN0b3J5OiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJyZWxhdGlvbnNoaXBcIiB9LFxuICBGbGFnOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgR29hbDogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwiZGVzY3JpcHRpb25cIiB9LFxuICBJbW11bml6YXRpb246IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcInZhY2NpbmVDb2RlXCIgfSxcbiAgSW1tdW5pemF0aW9uRXZhbHVhdGlvbjogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwidmFjY2luZUNvZGVcIiB9LFxuICBNZWRpY2F0aW9uOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgTWVkaWNhdGlvbktub3dsZWRnZTogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwiY29kZVwiIH0sXG4gIE9ic2VydmF0aW9uOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgT2JzZXJ2YXRpb25EZWZpbml0aW9uOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgUHJvY2VkdXJlOiB7IGtpbmQ6IFwiY29kZURpc3BsYXlcIiwgcGF0aDogXCJjb2RlXCIgfSxcbiAgU2VydmljZVJlcXVlc3Q6IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcImNvZGVcIiB9LFxuICBTcGVjaW1lbjogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwidHlwZVwiIH0sXG4gIFNwZWNpbWVuRGVmaW5pdGlvbjogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwidHlwZUNvbGxlY3RlZFwiIH0sXG4gIFN1YnN0YW5jZTogeyBraW5kOiBcImNvZGVEaXNwbGF5XCIsIHBhdGg6IFwiY29kZVwiIH0sXG4gIFRhc2s6IHsga2luZDogXCJjb2RlRGlzcGxheVwiLCBwYXRoOiBcImNvZGVcIiB9LFxuXG4gIC8vIEJ1c2luZXNzIGlkZW50aWZpZXIg4oCUIGBpZGVudGlmaWVyWzBdLnZhbHVlYCAoc2luZ3VsYXIgYElkZW50aWZpZXJgIGFsc28gc3VwcG9ydGVkKVxuICBBcHBvaW50bWVudDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgQXBwb2ludG1lbnRSZXNwb25zZTogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgQ2F0YWxvZ0VudHJ5OiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBDbGFpbTogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgQ2xhaW1SZXNwb25zZTogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgQ2xpbmljYWxJbXByZXNzaW9uOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBDb21tdW5pY2F0aW9uUmVxdWVzdDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgQ29uc2VudDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgQ292ZXJhZ2U6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIENvdmVyYWdlRWxpZ2liaWxpdHlSZXF1ZXN0OiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBDb3ZlcmFnZUVsaWdpYmlsaXR5UmVzcG9uc2U6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIERldmljZVJlcXVlc3Q6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIERldmljZVVzZVN0YXRlbWVudDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgRW5jb3VudGVyOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBFbnJvbGxtZW50UmVxdWVzdDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgRW5yb2xsbWVudFJlc3BvbnNlOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBFcGlzb2RlT2ZDYXJlOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBFeHBsYW5hdGlvbk9mQmVuZWZpdDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgR3VpZGFuY2VSZXNwb25zZTogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgSW1hZ2luZ1N0dWR5OiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBJbW11bml6YXRpb25SZWNvbW1lbmRhdGlvbjogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgSW52b2ljZTogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgTWVhc3VyZVJlcG9ydDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgTWVkaWE6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIE1lZGljYXRpb25BZG1pbmlzdHJhdGlvbjogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgTWVkaWNhdGlvbkRpc3BlbnNlOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBNZWRpY2F0aW9uUmVxdWVzdDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgTWVkaWNhdGlvblN0YXRlbWVudDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgTW9sZWN1bGFyU2VxdWVuY2U6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIE51dHJpdGlvbk9yZGVyOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBPcmdhbml6YXRpb25BZmZpbGlhdGlvbjogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgUGF5bWVudE5vdGljZTogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgUGF5bWVudFJlY29uY2lsaWF0aW9uOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBQcmFjdGl0aW9uZXJSb2xlOiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBRdWVzdGlvbm5haXJlUmVzcG9uc2U6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIFJlcXVlc3RHcm91cDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgUmVzZWFyY2hTdWJqZWN0OiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBSaXNrQXNzZXNzbWVudDogeyBraW5kOiBcImlkZW50aWZpZXJcIiwgcGF0aDogXCJpZGVudGlmaWVyXCIgfSxcbiAgU2NoZWR1bGU6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIFNsb3Q6IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG4gIFN1cHBseURlbGl2ZXJ5OiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBTdXBwbHlSZXF1ZXN0OiB7IGtpbmQ6IFwiaWRlbnRpZmllclwiLCBwYXRoOiBcImlkZW50aWZpZXJcIiB9LFxuICBWaXNpb25QcmVzY3JpcHRpb246IHsga2luZDogXCJpZGVudGlmaWVyXCIsIHBhdGg6IFwiaWRlbnRpZmllclwiIH0sXG59O1xuIl19
|
package/package.json
CHANGED