@openhi/types 0.0.60 → 0.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,243 @@
1
1
  import { z } from "zod";
2
+ export declare const CAPABILITY_KEY: {
3
+ readonly ADMIN_CONFIGURATION: "admin-configuration";
4
+ readonly BILLING_CLAIMS_INSURANCE: "billing-claims-insurance";
5
+ readonly CARE_PLANNING: "care-planning";
6
+ readonly CLINIC: "clinic";
7
+ readonly COMMUNICATIONS_CARE_COORDINATION: "communications-care-coordination";
8
+ readonly ENCOUNTER_CHARTING: "encounter-charting";
9
+ readonly MEDICATION_MANAGEMENT: "medication-management";
10
+ readonly MOBILE_FIELD_OPERATIONS: "mobile-field-operations";
11
+ readonly ORDERS_RESULTS: "orders-results";
12
+ readonly PATIENT_ENGAGEMENT: "patient-engagement";
13
+ readonly PATIENT_MANAGEMENT: "patient-management";
14
+ readonly PRIMARY_CARE: "primary-care";
15
+ readonly REPORTING_ANALYTICS: "reporting-analytics";
16
+ readonly SCHEDULING_INTAKE: "scheduling-intake";
17
+ readonly TRAVELING: "traveling";
18
+ readonly WOUND_ACTIVE_WOUNDS_CHART_SECTION: "wound-active-wounds-chart-section";
19
+ readonly WOUND_ADJACENT_SPECIALTY_CHARTING: "wound-adjacent-specialty-charting";
20
+ readonly WOUND_AI_PHOTO_MEASUREMENT: "wound-ai-photo-measurement";
21
+ readonly WOUND_ASSESSMENT_SECTION: "wound-assessment-section";
22
+ readonly WOUND_CARE: "wound-care";
23
+ readonly WOUND_DASHBOARD_HEALING_CARD: "wound-dashboard-healing-card";
24
+ readonly WOUND_HEALING_REPORTS: "wound-healing-reports";
25
+ readonly WOUND_HEALING_TRAJECTORY_ANALYTICS: "wound-healing-trajectory-analytics";
26
+ readonly WOUND_PHOTO_CAPTURE: "wound-photo-capture";
27
+ readonly WOUND_POPULATION_HEALTH: "wound-population-health";
28
+ readonly WOUND_STRUCTURED_FIELDS: "wound-structured-fields";
29
+ readonly WOUND_TREATMENT_PLAN: "wound-treatment-plan";
30
+ readonly WOUND_VISIT_ROSTER_COLUMNS: "wound-visit-roster-columns";
31
+ readonly WOUND_VISUAL_BODY_MAP: "wound-visual-body-map";
32
+ };
33
+ export type CapabilityKey = (typeof CAPABILITY_KEY)[keyof typeof CAPABILITY_KEY];
34
+ export declare const capabilityKeySchema: z.ZodEnum<["admin-configuration", "billing-claims-insurance", "care-planning", "clinic", "communications-care-coordination", "encounter-charting", "medication-management", "mobile-field-operations", "orders-results", "patient-engagement", "patient-management", "primary-care", "reporting-analytics", "scheduling-intake", "traveling", "wound-active-wounds-chart-section", "wound-adjacent-specialty-charting", "wound-ai-photo-measurement", "wound-assessment-section", "wound-care", "wound-dashboard-healing-card", "wound-healing-reports", "wound-healing-trajectory-analytics", "wound-photo-capture", "wound-population-health", "wound-structured-fields", "wound-treatment-plan", "wound-visit-roster-columns", "wound-visual-body-map"]>;
35
+ export declare const CAPABILITY_KEY_CONCEPTS: {
36
+ readonly ADMIN_CONFIGURATION: {
37
+ readonly code: "admin-configuration";
38
+ readonly display: "Admin & Configuration";
39
+ readonly tier: "B";
40
+ };
41
+ readonly BILLING_CLAIMS_INSURANCE: {
42
+ readonly code: "billing-claims-insurance";
43
+ readonly display: "Billing / Claims / Insurance";
44
+ readonly tier: "B";
45
+ };
46
+ readonly CARE_PLANNING: {
47
+ readonly code: "care-planning";
48
+ readonly display: "Care Planning";
49
+ readonly tier: "B";
50
+ };
51
+ readonly CLINIC: {
52
+ readonly code: "clinic";
53
+ readonly display: "Clinic";
54
+ readonly definition: "Facility-based, in-clinic patient flow — care delivered at a fixed clinic site.";
55
+ readonly tier: "A";
56
+ readonly packFamily: "care-setting";
57
+ };
58
+ readonly COMMUNICATIONS_CARE_COORDINATION: {
59
+ readonly code: "communications-care-coordination";
60
+ readonly display: "Communications & Care Coordination";
61
+ readonly tier: "B";
62
+ };
63
+ readonly ENCOUNTER_CHARTING: {
64
+ readonly code: "encounter-charting";
65
+ readonly display: "Encounter Charting — generic sections";
66
+ readonly tier: "B";
67
+ };
68
+ readonly MEDICATION_MANAGEMENT: {
69
+ readonly code: "medication-management";
70
+ readonly display: "Medication Management";
71
+ readonly tier: "B";
72
+ };
73
+ readonly MOBILE_FIELD_OPERATIONS: {
74
+ readonly code: "mobile-field-operations";
75
+ readonly display: "Mobile & Field Operations";
76
+ readonly tier: "B";
77
+ };
78
+ readonly ORDERS_RESULTS: {
79
+ readonly code: "orders-results";
80
+ readonly display: "Orders & Results";
81
+ readonly tier: "B";
82
+ };
83
+ readonly PATIENT_ENGAGEMENT: {
84
+ readonly code: "patient-engagement";
85
+ readonly display: "Patient Engagement";
86
+ readonly tier: "B";
87
+ };
88
+ readonly PATIENT_MANAGEMENT: {
89
+ readonly code: "patient-management";
90
+ readonly display: "Patient Management";
91
+ readonly tier: "B";
92
+ };
93
+ readonly PRIMARY_CARE: {
94
+ readonly code: "primary-care";
95
+ readonly display: "Primary Care";
96
+ readonly definition: "Primary-care clinical workflows — general E&M charting, different chart-template sets and order types; no wound surfaces.";
97
+ readonly tier: "A";
98
+ readonly packFamily: "specialty";
99
+ };
100
+ readonly REPORTING_ANALYTICS: {
101
+ readonly code: "reporting-analytics";
102
+ readonly display: "Reporting & Analytics — generic";
103
+ readonly tier: "B";
104
+ };
105
+ readonly SCHEDULING_INTAKE: {
106
+ readonly code: "scheduling-intake";
107
+ readonly display: "Scheduling & Intake";
108
+ readonly tier: "B";
109
+ };
110
+ readonly TRAVELING: {
111
+ readonly code: "traveling";
112
+ readonly display: "Traveling";
113
+ readonly definition: "Home-visit / traveling-provider workflows — care delivered at the patient's facility or home.";
114
+ readonly tier: "A";
115
+ readonly packFamily: "care-setting";
116
+ };
117
+ readonly WOUND_ACTIVE_WOUNDS_CHART_SECTION: {
118
+ readonly code: "wound-active-wounds-chart-section";
119
+ readonly display: "Chart-tab Active Wounds section";
120
+ readonly tier: "C";
121
+ };
122
+ readonly WOUND_ADJACENT_SPECIALTY_CHARTING: {
123
+ readonly code: "wound-adjacent-specialty-charting";
124
+ readonly display: "Adjacent specialty charting (HBOT / podiatry)";
125
+ readonly tier: "C";
126
+ };
127
+ readonly WOUND_AI_PHOTO_MEASUREMENT: {
128
+ readonly code: "wound-ai-photo-measurement";
129
+ readonly display: "AI computer-vision photo measurement";
130
+ readonly tier: "C";
131
+ };
132
+ readonly WOUND_ASSESSMENT_SECTION: {
133
+ readonly code: "wound-assessment-section";
134
+ readonly display: "Wound assessment section";
135
+ readonly tier: "C";
136
+ };
137
+ readonly WOUND_CARE: {
138
+ readonly code: "wound-care";
139
+ readonly display: "Wound Care";
140
+ readonly definition: "Wound clinical workflows — encounter documentation, wound staging/debridement, healing-trajectory analytics. The lead vertical and the only built-out specialty today.";
141
+ readonly tier: "A";
142
+ readonly packFamily: "specialty";
143
+ };
144
+ readonly WOUND_DASHBOARD_HEALING_CARD: {
145
+ readonly code: "wound-dashboard-healing-card";
146
+ readonly display: "Dashboard wound-healing card";
147
+ readonly tier: "C";
148
+ };
149
+ readonly WOUND_HEALING_REPORTS: {
150
+ readonly code: "wound-healing-reports";
151
+ readonly display: "Wound-healing reports";
152
+ readonly tier: "C";
153
+ };
154
+ readonly WOUND_HEALING_TRAJECTORY_ANALYTICS: {
155
+ readonly code: "wound-healing-trajectory-analytics";
156
+ readonly display: "Healing-trajectory analytics";
157
+ readonly tier: "C";
158
+ };
159
+ readonly WOUND_PHOTO_CAPTURE: {
160
+ readonly code: "wound-photo-capture";
161
+ readonly display: "Wound photo capture";
162
+ readonly tier: "C";
163
+ };
164
+ readonly WOUND_POPULATION_HEALTH: {
165
+ readonly code: "wound-population-health";
166
+ readonly display: "Wound population-health (time-to-heal / infection-rate)";
167
+ readonly tier: "C";
168
+ };
169
+ readonly WOUND_STRUCTURED_FIELDS: {
170
+ readonly code: "wound-structured-fields";
171
+ readonly display: "Structured wound fields (stage / tissue / exudate / periwound / odor)";
172
+ readonly tier: "C";
173
+ };
174
+ readonly WOUND_TREATMENT_PLAN: {
175
+ readonly code: "wound-treatment-plan";
176
+ readonly display: "Wound-scoped treatment plan + per-wound visit count";
177
+ readonly tier: "C";
178
+ };
179
+ readonly WOUND_VISIT_ROSTER_COLUMNS: {
180
+ readonly code: "wound-visit-roster-columns";
181
+ readonly display: "Visit-roster wound columns";
182
+ readonly tier: "C";
183
+ };
184
+ readonly WOUND_VISUAL_BODY_MAP: {
185
+ readonly code: "wound-visual-body-map";
186
+ readonly display: "Visual body map";
187
+ readonly tier: "C";
188
+ };
189
+ };
190
+ export type CapabilityKeyConcept = (typeof CAPABILITY_KEY_CONCEPTS)[keyof typeof CAPABILITY_KEY_CONCEPTS];
191
+ export declare const FEATURE_FLAG_PROVENANCE: {
192
+ readonly EXPLICIT: "explicit";
193
+ readonly PACK: "pack";
194
+ };
195
+ export type FeatureFlagProvenance = (typeof FEATURE_FLAG_PROVENANCE)[keyof typeof FEATURE_FLAG_PROVENANCE];
196
+ export declare const featureFlagProvenanceSchema: z.ZodEnum<["explicit", "pack"]>;
197
+ export declare const FEATURE_FLAG_PROVENANCE_CONCEPTS: {
198
+ readonly EXPLICIT: {
199
+ readonly code: "explicit";
200
+ readonly display: "Explicit";
201
+ readonly definition: "Set explicitly by an admin/operator; explicit beats pack at the same tier.";
202
+ };
203
+ readonly PACK: {
204
+ readonly code: "pack";
205
+ readonly display: "Pack";
206
+ readonly definition: "Defaulted from the Tier-A specialty pack at assignment (provenance = pack -> pack reference present).";
207
+ };
208
+ };
209
+ export type FeatureFlagProvenanceConcept = (typeof FEATURE_FLAG_PROVENANCE_CONCEPTS)[keyof typeof FEATURE_FLAG_PROVENANCE_CONCEPTS];
210
+ export declare const FEATURE_FLAG_SCOPE_TIER: {
211
+ readonly BASELINE: "baseline";
212
+ readonly TENANT: "tenant";
213
+ readonly USER: "user";
214
+ readonly WORKSPACE: "workspace";
215
+ };
216
+ export type FeatureFlagScopeTier = (typeof FEATURE_FLAG_SCOPE_TIER)[keyof typeof FEATURE_FLAG_SCOPE_TIER];
217
+ export declare const featureFlagScopeTierSchema: z.ZodEnum<["baseline", "tenant", "user", "workspace"]>;
218
+ export declare const FEATURE_FLAG_SCOPE_TIER_CONCEPTS: {
219
+ readonly BASELINE: {
220
+ readonly code: "baseline";
221
+ readonly display: "Baseline";
222
+ readonly definition: "Platform-wide default row; carries no real tenant/workspace/user scope.";
223
+ };
224
+ readonly TENANT: {
225
+ readonly code: "tenant";
226
+ readonly display: "Tenant";
227
+ readonly definition: "Tenant-scoped row; carries a tenant but no workspace/user.";
228
+ };
229
+ readonly USER: {
230
+ readonly code: "user";
231
+ readonly display: "User";
232
+ readonly definition: "User-scoped row; workspace-qualified (tenant + workspace + user all present).";
233
+ };
234
+ readonly WORKSPACE: {
235
+ readonly code: "workspace";
236
+ readonly display: "Workspace";
237
+ readonly definition: "Workspace-scoped row; carries tenant + workspace but no user.";
238
+ };
239
+ };
240
+ export type FeatureFlagScopeTierConcept = (typeof FEATURE_FLAG_SCOPE_TIER_CONCEPTS)[keyof typeof FEATURE_FLAG_SCOPE_TIER_CONCEPTS];
2
241
  export declare const PLATFORM_ROLE_CODE: {
3
242
  readonly SYSTEM_ADMIN: "system-admin";
4
243
  readonly SYSTEM_SUPPORT: "system-support";
@@ -2,8 +2,272 @@
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.PLATFORM_ROLE_IDS = exports.PLATFORM_ROLE_CONCEPTS = exports.platformRoleCodeSchema = exports.PLATFORM_ROLE_CODE = void 0;
5
+ exports.PLATFORM_ROLE_IDS = exports.PLATFORM_ROLE_CONCEPTS = exports.platformRoleCodeSchema = exports.PLATFORM_ROLE_CODE = exports.FEATURE_FLAG_SCOPE_TIER_CONCEPTS = exports.featureFlagScopeTierSchema = exports.FEATURE_FLAG_SCOPE_TIER = exports.FEATURE_FLAG_PROVENANCE_CONCEPTS = exports.featureFlagProvenanceSchema = exports.FEATURE_FLAG_PROVENANCE = exports.CAPABILITY_KEY_CONCEPTS = exports.capabilityKeySchema = exports.CAPABILITY_KEY = void 0;
6
6
  const zod_1 = require("zod");
7
+ exports.CAPABILITY_KEY = {
8
+ ADMIN_CONFIGURATION: "admin-configuration",
9
+ BILLING_CLAIMS_INSURANCE: "billing-claims-insurance",
10
+ CARE_PLANNING: "care-planning",
11
+ CLINIC: "clinic",
12
+ COMMUNICATIONS_CARE_COORDINATION: "communications-care-coordination",
13
+ ENCOUNTER_CHARTING: "encounter-charting",
14
+ MEDICATION_MANAGEMENT: "medication-management",
15
+ MOBILE_FIELD_OPERATIONS: "mobile-field-operations",
16
+ ORDERS_RESULTS: "orders-results",
17
+ PATIENT_ENGAGEMENT: "patient-engagement",
18
+ PATIENT_MANAGEMENT: "patient-management",
19
+ PRIMARY_CARE: "primary-care",
20
+ REPORTING_ANALYTICS: "reporting-analytics",
21
+ SCHEDULING_INTAKE: "scheduling-intake",
22
+ TRAVELING: "traveling",
23
+ WOUND_ACTIVE_WOUNDS_CHART_SECTION: "wound-active-wounds-chart-section",
24
+ WOUND_ADJACENT_SPECIALTY_CHARTING: "wound-adjacent-specialty-charting",
25
+ WOUND_AI_PHOTO_MEASUREMENT: "wound-ai-photo-measurement",
26
+ WOUND_ASSESSMENT_SECTION: "wound-assessment-section",
27
+ WOUND_CARE: "wound-care",
28
+ WOUND_DASHBOARD_HEALING_CARD: "wound-dashboard-healing-card",
29
+ WOUND_HEALING_REPORTS: "wound-healing-reports",
30
+ WOUND_HEALING_TRAJECTORY_ANALYTICS: "wound-healing-trajectory-analytics",
31
+ WOUND_PHOTO_CAPTURE: "wound-photo-capture",
32
+ WOUND_POPULATION_HEALTH: "wound-population-health",
33
+ WOUND_STRUCTURED_FIELDS: "wound-structured-fields",
34
+ WOUND_TREATMENT_PLAN: "wound-treatment-plan",
35
+ WOUND_VISIT_ROSTER_COLUMNS: "wound-visit-roster-columns",
36
+ WOUND_VISUAL_BODY_MAP: "wound-visual-body-map",
37
+ };
38
+ exports.capabilityKeySchema = zod_1.z.enum([
39
+ "admin-configuration",
40
+ "billing-claims-insurance",
41
+ "care-planning",
42
+ "clinic",
43
+ "communications-care-coordination",
44
+ "encounter-charting",
45
+ "medication-management",
46
+ "mobile-field-operations",
47
+ "orders-results",
48
+ "patient-engagement",
49
+ "patient-management",
50
+ "primary-care",
51
+ "reporting-analytics",
52
+ "scheduling-intake",
53
+ "traveling",
54
+ "wound-active-wounds-chart-section",
55
+ "wound-adjacent-specialty-charting",
56
+ "wound-ai-photo-measurement",
57
+ "wound-assessment-section",
58
+ "wound-care",
59
+ "wound-dashboard-healing-card",
60
+ "wound-healing-reports",
61
+ "wound-healing-trajectory-analytics",
62
+ "wound-photo-capture",
63
+ "wound-population-health",
64
+ "wound-structured-fields",
65
+ "wound-treatment-plan",
66
+ "wound-visit-roster-columns",
67
+ "wound-visual-body-map",
68
+ ]);
69
+ exports.CAPABILITY_KEY_CONCEPTS = {
70
+ ADMIN_CONFIGURATION: {
71
+ code: "admin-configuration",
72
+ display: "Admin & Configuration",
73
+ tier: "B",
74
+ },
75
+ BILLING_CLAIMS_INSURANCE: {
76
+ code: "billing-claims-insurance",
77
+ display: "Billing / Claims / Insurance",
78
+ tier: "B",
79
+ },
80
+ CARE_PLANNING: { code: "care-planning", display: "Care Planning", tier: "B" },
81
+ CLINIC: {
82
+ code: "clinic",
83
+ display: "Clinic",
84
+ definition: "Facility-based, in-clinic patient flow — care delivered at a fixed clinic site.",
85
+ tier: "A",
86
+ packFamily: "care-setting",
87
+ },
88
+ COMMUNICATIONS_CARE_COORDINATION: {
89
+ code: "communications-care-coordination",
90
+ display: "Communications & Care Coordination",
91
+ tier: "B",
92
+ },
93
+ ENCOUNTER_CHARTING: {
94
+ code: "encounter-charting",
95
+ display: "Encounter Charting — generic sections",
96
+ tier: "B",
97
+ },
98
+ MEDICATION_MANAGEMENT: {
99
+ code: "medication-management",
100
+ display: "Medication Management",
101
+ tier: "B",
102
+ },
103
+ MOBILE_FIELD_OPERATIONS: {
104
+ code: "mobile-field-operations",
105
+ display: "Mobile & Field Operations",
106
+ tier: "B",
107
+ },
108
+ ORDERS_RESULTS: {
109
+ code: "orders-results",
110
+ display: "Orders & Results",
111
+ tier: "B",
112
+ },
113
+ PATIENT_ENGAGEMENT: {
114
+ code: "patient-engagement",
115
+ display: "Patient Engagement",
116
+ tier: "B",
117
+ },
118
+ PATIENT_MANAGEMENT: {
119
+ code: "patient-management",
120
+ display: "Patient Management",
121
+ tier: "B",
122
+ },
123
+ PRIMARY_CARE: {
124
+ code: "primary-care",
125
+ display: "Primary Care",
126
+ definition: "Primary-care clinical workflows — general E&M charting, different chart-template sets and order types; no wound surfaces.",
127
+ tier: "A",
128
+ packFamily: "specialty",
129
+ },
130
+ REPORTING_ANALYTICS: {
131
+ code: "reporting-analytics",
132
+ display: "Reporting & Analytics — generic",
133
+ tier: "B",
134
+ },
135
+ SCHEDULING_INTAKE: {
136
+ code: "scheduling-intake",
137
+ display: "Scheduling & Intake",
138
+ tier: "B",
139
+ },
140
+ TRAVELING: {
141
+ code: "traveling",
142
+ display: "Traveling",
143
+ definition: "Home-visit / traveling-provider workflows — care delivered at the patient's facility or home.",
144
+ tier: "A",
145
+ packFamily: "care-setting",
146
+ },
147
+ WOUND_ACTIVE_WOUNDS_CHART_SECTION: {
148
+ code: "wound-active-wounds-chart-section",
149
+ display: "Chart-tab Active Wounds section",
150
+ tier: "C",
151
+ },
152
+ WOUND_ADJACENT_SPECIALTY_CHARTING: {
153
+ code: "wound-adjacent-specialty-charting",
154
+ display: "Adjacent specialty charting (HBOT / podiatry)",
155
+ tier: "C",
156
+ },
157
+ WOUND_AI_PHOTO_MEASUREMENT: {
158
+ code: "wound-ai-photo-measurement",
159
+ display: "AI computer-vision photo measurement",
160
+ tier: "C",
161
+ },
162
+ WOUND_ASSESSMENT_SECTION: {
163
+ code: "wound-assessment-section",
164
+ display: "Wound assessment section",
165
+ tier: "C",
166
+ },
167
+ WOUND_CARE: {
168
+ code: "wound-care",
169
+ display: "Wound Care",
170
+ definition: "Wound clinical workflows — encounter documentation, wound staging/debridement, healing-trajectory analytics. The lead vertical and the only built-out specialty today.",
171
+ tier: "A",
172
+ packFamily: "specialty",
173
+ },
174
+ WOUND_DASHBOARD_HEALING_CARD: {
175
+ code: "wound-dashboard-healing-card",
176
+ display: "Dashboard wound-healing card",
177
+ tier: "C",
178
+ },
179
+ WOUND_HEALING_REPORTS: {
180
+ code: "wound-healing-reports",
181
+ display: "Wound-healing reports",
182
+ tier: "C",
183
+ },
184
+ WOUND_HEALING_TRAJECTORY_ANALYTICS: {
185
+ code: "wound-healing-trajectory-analytics",
186
+ display: "Healing-trajectory analytics",
187
+ tier: "C",
188
+ },
189
+ WOUND_PHOTO_CAPTURE: {
190
+ code: "wound-photo-capture",
191
+ display: "Wound photo capture",
192
+ tier: "C",
193
+ },
194
+ WOUND_POPULATION_HEALTH: {
195
+ code: "wound-population-health",
196
+ display: "Wound population-health (time-to-heal / infection-rate)",
197
+ tier: "C",
198
+ },
199
+ WOUND_STRUCTURED_FIELDS: {
200
+ code: "wound-structured-fields",
201
+ display: "Structured wound fields (stage / tissue / exudate / periwound / odor)",
202
+ tier: "C",
203
+ },
204
+ WOUND_TREATMENT_PLAN: {
205
+ code: "wound-treatment-plan",
206
+ display: "Wound-scoped treatment plan + per-wound visit count",
207
+ tier: "C",
208
+ },
209
+ WOUND_VISIT_ROSTER_COLUMNS: {
210
+ code: "wound-visit-roster-columns",
211
+ display: "Visit-roster wound columns",
212
+ tier: "C",
213
+ },
214
+ WOUND_VISUAL_BODY_MAP: {
215
+ code: "wound-visual-body-map",
216
+ display: "Visual body map",
217
+ tier: "C",
218
+ },
219
+ };
220
+ exports.FEATURE_FLAG_PROVENANCE = {
221
+ EXPLICIT: "explicit",
222
+ PACK: "pack",
223
+ };
224
+ exports.featureFlagProvenanceSchema = zod_1.z.enum(["explicit", "pack"]);
225
+ exports.FEATURE_FLAG_PROVENANCE_CONCEPTS = {
226
+ EXPLICIT: {
227
+ code: "explicit",
228
+ display: "Explicit",
229
+ definition: "Set explicitly by an admin/operator; explicit beats pack at the same tier.",
230
+ },
231
+ PACK: {
232
+ code: "pack",
233
+ display: "Pack",
234
+ definition: "Defaulted from the Tier-A specialty pack at assignment (provenance = pack -> pack reference present).",
235
+ },
236
+ };
237
+ exports.FEATURE_FLAG_SCOPE_TIER = {
238
+ BASELINE: "baseline",
239
+ TENANT: "tenant",
240
+ USER: "user",
241
+ WORKSPACE: "workspace",
242
+ };
243
+ exports.featureFlagScopeTierSchema = zod_1.z.enum([
244
+ "baseline",
245
+ "tenant",
246
+ "user",
247
+ "workspace",
248
+ ]);
249
+ exports.FEATURE_FLAG_SCOPE_TIER_CONCEPTS = {
250
+ BASELINE: {
251
+ code: "baseline",
252
+ display: "Baseline",
253
+ definition: "Platform-wide default row; carries no real tenant/workspace/user scope.",
254
+ },
255
+ TENANT: {
256
+ code: "tenant",
257
+ display: "Tenant",
258
+ definition: "Tenant-scoped row; carries a tenant but no workspace/user.",
259
+ },
260
+ USER: {
261
+ code: "user",
262
+ display: "User",
263
+ definition: "User-scoped row; workspace-qualified (tenant + workspace + user all present).",
264
+ },
265
+ WORKSPACE: {
266
+ code: "workspace",
267
+ display: "Workspace",
268
+ definition: "Workspace-scoped row; carries tenant + workspace but no user.",
269
+ },
270
+ };
7
271
  exports.PLATFORM_ROLE_CODE = {
8
272
  SYSTEM_ADMIN: "system-admin",
9
273
  SYSTEM_SUPPORT: "system-support",
@@ -60,4 +324,4 @@ exports.PLATFORM_ROLE_IDS = {
60
324
  WORKSPACE_ADMIN: "role-workspace-admin",
61
325
  WORKSPACE_USER: "role-workspace-user",
62
326
  };
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2wvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxREFBcUQ7QUFDckQsa0VBQWtFOzs7QUFFbEUsNkJBQXdCO0FBRVgsUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxZQUFZLEVBQUUsY0FBYztJQUM1QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFlBQVksRUFBRSxjQUFjO0lBQzVCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsY0FBYyxFQUFFLGdCQUFnQjtDQUN4QixDQUFDO0FBR0UsUUFBQSxzQkFBc0IsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNDLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsZ0JBQWdCO0NBQ2pCLENBQUMsQ0FBQztBQUVVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLGNBQWM7UUFDdkIsVUFBVSxFQUNSLHFLQUFxSztLQUN4SztJQUNELGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQ1IsdUVBQXVFO0tBQzFFO0lBQ0QsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsVUFBVSxFQUNSLDRHQUE0RztLQUMvRztJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRSxNQUFNO1FBQ2YsVUFBVSxFQUNSLDJHQUEyRztLQUM5RztJQUNELGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFLE9BQU87UUFDaEIsVUFBVSxFQUNSLGlHQUFpRztLQUNwRztJQUNELGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFLE1BQU07UUFDZixVQUFVLEVBQ1IsZ0dBQWdHO0tBQ25HO0NBQ08sQ0FBQztBQUlFLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxjQUFjLEVBQUUscUJBQXFCO0lBQ3JDLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsV0FBVyxFQUFFLGtCQUFrQjtJQUMvQixlQUFlLEVBQUUsc0JBQXNCO0lBQ3ZDLGNBQWMsRUFBRSxxQkFBcUI7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRISVMgRklMRSBJUyBHRU5FUkFURUQgYnkgQG9wZW5oaS90eXBlcy1nZW5lcmF0b3IuXG4vLyBEbyBub3QgZWRpdC4gRWRpdCBzZHMvIG9yIGdlbmVyYXRvci1jb25maWcueWFtbCBhbmQgcmVnZW5lcmF0ZS5cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IFBMQVRGT1JNX1JPTEVfQ09ERSA9IHtcbiAgU1lTVEVNX0FETUlOOiBcInN5c3RlbS1hZG1pblwiLFxuICBTWVNURU1fU1VQUE9SVDogXCJzeXN0ZW0tc3VwcG9ydFwiLFxuICBURU5BTlRfQURNSU46IFwidGVuYW50LWFkbWluXCIsXG4gIFRFTkFOVF9VU0VSOiBcInRlbmFudC11c2VyXCIsXG4gIFdPUktTUEFDRV9BRE1JTjogXCJ3b3Jrc3BhY2UtYWRtaW5cIixcbiAgV09SS1NQQUNFX1VTRVI6IFwid29ya3NwYWNlLXVzZXJcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbGF0Zm9ybVJvbGVDb2RlID1cbiAgKHR5cGVvZiBQTEFURk9STV9ST0xFX0NPREUpW2tleW9mIHR5cGVvZiBQTEFURk9STV9ST0xFX0NPREVdO1xuZXhwb3J0IGNvbnN0IHBsYXRmb3JtUm9sZUNvZGVTY2hlbWEgPSB6LmVudW0oW1xuICBcInN5c3RlbS1hZG1pblwiLFxuICBcInN5c3RlbS1zdXBwb3J0XCIsXG4gIFwidGVuYW50LWFkbWluXCIsXG4gIFwidGVuYW50LXVzZXJcIixcbiAgXCJ3b3Jrc3BhY2UtYWRtaW5cIixcbiAgXCJ3b3Jrc3BhY2UtdXNlclwiLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBQTEFURk9STV9ST0xFX0NPTkNFUFRTID0ge1xuICBTWVNURU1fQURNSU46IHtcbiAgICBjb2RlOiBcInN5c3RlbS1hZG1pblwiLFxuICAgIGRpc3BsYXk6IFwiU3lzdGVtIEFkbWluXCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiQWRtaW5pc3RyYXRpdmUgZnVuY3Rpb25zIHdpdGhpbiBjb250cm9sIHBsYW5lIG9ubHk7IGNhbiBjaGFuZ2UgdGVuYW50L3dvcmtzcGFjZSByZWNvcmRzLCBhc3NpZ24gbWVtYmVyc2hpcHMgYW5kIHJvbGUgYXNzaWdubWVudHM7IENBTk5PVCB2aWV3IHRlbmFudC1pc29sYXRlZCBkYXRhLlwiLFxuICB9LFxuICBTWVNURU1fU1VQUE9SVDoge1xuICAgIGNvZGU6IFwic3lzdGVtLXN1cHBvcnRcIixcbiAgICBkaXNwbGF5OiBcIlN5c3RlbSBTdXBwb3J0XCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiUmVhZC1vbmx5IGNyb3NzLXRlbmFudCBzdXBwb3J0L2RlYnVnIGFjY2VzcyB0byB0ZW5hbnQvd29ya3NwYWNlIGRhdGEuXCIsXG4gIH0sXG4gIFRFTkFOVF9BRE1JTjoge1xuICAgIGNvZGU6IFwidGVuYW50LWFkbWluXCIsXG4gICAgZGlzcGxheTogXCJBZG1pblwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIkFkbWluIHNjb3BlZCB0byBhIHRlbmFudCAobm8gd29ya3NwYWNlKTsgMTAwJSB0ZW5hbnQtaXNvbGF0ZWQgYWNjZXNzIGFjcm9zcyBldmVyeSB3b3Jrc3BhY2UgaW4gdGhlIHRlbmFudC5cIixcbiAgfSxcbiAgVEVOQU5UX1VTRVI6IHtcbiAgICBjb2RlOiBcInRlbmFudC11c2VyXCIsXG4gICAgZGlzcGxheTogXCJVc2VyXCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiVXNlciBzY29wZWQgdG8gYSB0ZW5hbnQgKG5vIHdvcmtzcGFjZSk7IDEwMCUgdGVuYW50LWlzb2xhdGVkIGFjY2VzcyBhY3Jvc3MgZXZlcnkgd29ya3NwYWNlIGluIHRoZSB0ZW5hbnQuXCIsXG4gIH0sXG4gIFdPUktTUEFDRV9BRE1JTjoge1xuICAgIGNvZGU6IFwid29ya3NwYWNlLWFkbWluXCIsXG4gICAgZGlzcGxheTogXCJBZG1pblwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIkFkbWluIHNjb3BlZCB0byBhIHNpbmdsZSB3b3Jrc3BhY2U7IDEwMCUgdGVuYW50LWlzb2xhdGVkIGFjY2VzcyB3aXRoaW4gdGhhdCBvbmUgd29ya3NwYWNlIG9ubHkuXCIsXG4gIH0sXG4gIFdPUktTUEFDRV9VU0VSOiB7XG4gICAgY29kZTogXCJ3b3Jrc3BhY2UtdXNlclwiLFxuICAgIGRpc3BsYXk6IFwiVXNlclwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIlVzZXIgc2NvcGVkIHRvIGEgc2luZ2xlIHdvcmtzcGFjZTsgMTAwJSB0ZW5hbnQtaXNvbGF0ZWQgYWNjZXNzIHdpdGhpbiB0aGF0IG9uZSB3b3Jrc3BhY2Ugb25seS5cIixcbiAgfSxcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbGF0Zm9ybVJvbGVDb25jZXB0ID1cbiAgKHR5cGVvZiBQTEFURk9STV9ST0xFX0NPTkNFUFRTKVtrZXlvZiB0eXBlb2YgUExBVEZPUk1fUk9MRV9DT05DRVBUU107XG5cbmV4cG9ydCBjb25zdCBQTEFURk9STV9ST0xFX0lEUyA9IHtcbiAgU1lTVEVNX0FETUlOOiBcInJvbGUtc3lzdGVtLWFkbWluXCIsXG4gIFNZU1RFTV9TVVBQT1JUOiBcInJvbGUtc3lzdGVtLXN1cHBvcnRcIixcbiAgVEVOQU5UX0FETUlOOiBcInJvbGUtdGVuYW50LWFkbWluXCIsXG4gIFRFTkFOVF9VU0VSOiBcInJvbGUtdGVuYW50LXVzZXJcIixcbiAgV09SS1NQQUNFX0FETUlOOiBcInJvbGUtd29ya3NwYWNlLWFkbWluXCIsXG4gIFdPUktTUEFDRV9VU0VSOiBcInJvbGUtd29ya3NwYWNlLXVzZXJcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbGF0Zm9ybVJvbGVJZCA9XG4gICh0eXBlb2YgUExBVEZPUk1fUk9MRV9JRFMpW2tleW9mIHR5cGVvZiBQTEFURk9STV9ST0xFX0lEU107XG4iXX0=
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2wvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxREFBcUQ7QUFDckQsa0VBQWtFOzs7QUFFbEUsNkJBQXdCO0FBRVgsUUFBQSxjQUFjLEdBQUc7SUFDNUIsbUJBQW1CLEVBQUUscUJBQXFCO0lBQzFDLHdCQUF3QixFQUFFLDBCQUEwQjtJQUNwRCxhQUFhLEVBQUUsZUFBZTtJQUM5QixNQUFNLEVBQUUsUUFBUTtJQUNoQixnQ0FBZ0MsRUFBRSxrQ0FBa0M7SUFDcEUsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLHFCQUFxQixFQUFFLHVCQUF1QjtJQUM5Qyx1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLFlBQVksRUFBRSxjQUFjO0lBQzVCLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsU0FBUyxFQUFFLFdBQVc7SUFDdEIsaUNBQWlDLEVBQUUsbUNBQW1DO0lBQ3RFLGlDQUFpQyxFQUFFLG1DQUFtQztJQUN0RSwwQkFBMEIsRUFBRSw0QkFBNEI7SUFDeEQsd0JBQXdCLEVBQUUsMEJBQTBCO0lBQ3BELFVBQVUsRUFBRSxZQUFZO0lBQ3hCLDRCQUE0QixFQUFFLDhCQUE4QjtJQUM1RCxxQkFBcUIsRUFBRSx1QkFBdUI7SUFDOUMsa0NBQWtDLEVBQUUsb0NBQW9DO0lBQ3hFLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyx1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQsdUJBQXVCLEVBQUUseUJBQXlCO0lBQ2xELG9CQUFvQixFQUFFLHNCQUFzQjtJQUM1QywwQkFBMEIsRUFBRSw0QkFBNEI7SUFDeEQscUJBQXFCLEVBQUUsdUJBQXVCO0NBQ3RDLENBQUM7QUFHRSxR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SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsVUFBVSxFQUNSLHVFQUF1RTtLQUMxRTtJQUNELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFVBQVUsRUFDUiw0R0FBNEc7S0FDL0c7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsTUFBTTtRQUNmLFVBQVUsRUFDUiwyR0FBMkc7S0FDOUc7SUFDRCxlQUFlLEVBQUU7UUFDZixJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFVBQVUsRUFDUixpR0FBaUc7S0FDcEc7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsVUFBVSxFQUNSLGdHQUFnRztLQUNuRztDQUNPLENBQUM7QUFJRSxRQUFBLGlCQUFpQixHQUFHO0lBQy9CLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxZQUFZLEVBQUUsbUJBQW1CO0lBQ2pDLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsZUFBZSxFQUFFLHNCQUFzQjtJQUN2QyxjQUFjLEVBQUUscUJBQXFCO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUSElTIEZJTEUgSVMgR0VORVJBVEVEIGJ5IEBvcGVuaGkvdHlwZXMtZ2VuZXJhdG9yLlxuLy8gRG8gbm90IGVkaXQuIEVkaXQgc2RzLyBvciBnZW5lcmF0b3ItY29uZmlnLnlhbWwgYW5kIHJlZ2VuZXJhdGUuXG5cbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBDQVBBQklMSVRZX0tFWSA9IHtcbiAgQURNSU5fQ09ORklHVVJBVElPTjogXCJhZG1pbi1jb25maWd1cmF0aW9uXCIsXG4gIEJJTExJTkdfQ0xBSU1TX0lOU1VSQU5DRTogXCJiaWxsaW5nLWNsYWltcy1pbnN1cmFuY2VcIixcbiAgQ0FSRV9QTEFOTklORzogXCJjYXJlLXBsYW5uaW5nXCIsXG4gIENMSU5JQzogXCJjbGluaWNcIixcbiAgQ09NTVVOSUNBVElPTlNfQ0FSRV9DT09SRElOQVRJT046IFwiY29tbXVuaWNhdGlvbnMtY2FyZS1jb29yZGluYXRpb25cIixcbiAgRU5DT1VOVEVSX0NIQVJUSU5HOiBcImVuY291bnRlci1jaGFydGluZ1wiLFxuICBNRURJQ0FUSU9OX01BTkFHRU1FTlQ6IFwibWVkaWNhdGlvbi1tYW5hZ2VtZW50XCIsXG4gIE1PQklMRV9GSUVMRF9PUEVSQVRJT05TOiBcIm1vYmlsZS1maWVsZC1vcGVyYXRpb25zXCIsXG4gIE9SREVSU19SRVNVTFRTOiBcIm9yZGVycy1yZXN1bHRzXCIsXG4gIFBBVElFTlRfRU5HQUdFTUVOVDogXCJwYXRpZW50LWVuZ2FnZW1lbnRcIixcbiAgUEFUSUVOVF9NQU5BR0VNRU5UOiBcInBhdGllbnQtbWFuYWdlbWVudFwiLFxuICBQUklNQVJZX0NBUkU6IFwicHJpbWFyeS1jYXJlXCIsXG4gIFJFUE9SVElOR19BTkFMWVRJQ1M6IFwicmVwb3J0aW5nLWFuYWx5dGljc1wiLFxuICBTQ0hFRFVMSU5HX0lOVEFLRTogXCJzY2hlZHVsaW5nLWludGFrZVwiLFxuICBUUkFWRUxJTkc6IFwidHJhdmVsaW5nXCIsXG4gIFdPVU5EX0FDVElWRV9XT1VORFNfQ0hBUlRfU0VDVElPTjogXCJ3b3VuZC1hY3RpdmUtd291bmRzLWNoYXJ0LXNlY3Rpb25cIixcbiAgV09VTkRfQURKQUNFTlRfU1BFQ0lBTFRZX0NIQVJUSU5HOiBcIndvdW5kLWFkamFjZW50LXNwZWNpYWx0eS1jaGFydGluZ1wiLFxuICBXT1VORF9BSV9QSE9UT19NRUFTVVJFTUVOVDogXCJ3b3VuZC1haS1waG90by1tZWFzdXJlbWVudFwiLFxuICBXT1VORF9BU1NFU1NNRU5UX1NFQ1RJT046IFwid291bmQtYXNzZXNzbWVudC1zZWN0aW9uXCIsXG4gIFdPVU5EX0NBUkU6IFwid291bmQtY2FyZVwiLFxuICBXT1VORF9EQVNIQk9BUkRfSEVBTElOR19DQVJEOiBcIndvdW5kLWRhc2hib2FyZC1oZWFsaW5nLWNhcmRcIixcbiAgV09VTkRfSEVBTElOR19SRVBPUlRTOiBcIndvdW5kLWhlYWxpbmctcmVwb3J0c1wiLFxuICBXT1VORF9IRUFMSU5HX1RSQUpFQ1RPUllfQU5BTFlUSUNTOiBcIndvdW5kLWhlYWxpbmctdHJhamVjdG9yeS1hbmFseXRpY3NcIixcbiAgV09VTkRfUEhPVE9fQ0FQVFVSRTogXCJ3b3VuZC1waG90by1jYXB0dXJlXCIsXG4gIFdPVU5EX1BPUFVMQVRJT05fSEVBTFRIOiBcIndvdW5kLXBvcHVsYXRpb24taGVhbHRoXCIsXG4gIFdPVU5EX1NUUlVDVFVSRURfRklFTERTOiBcIndvdW5kLXN0cnVjdHVyZWQtZmllbGRzXCIsXG4gIFdPVU5EX1RSRUFUTUVOVF9QTEFOOiBcIndvdW5kLXRyZWF0bWVudC1wbGFuXCIsXG4gIFdPVU5EX1ZJU0lUX1JPU1RFUl9DT0xVTU5TOiBcIndvdW5kLXZpc2l0LXJvc3Rlci1jb2x1bW5zXCIsXG4gIFdPVU5EX1ZJU1VBTF9CT0RZX01BUDogXCJ3b3VuZC12aXN1YWwtYm9keS1tYXBcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDYXBhYmlsaXR5S2V5ID1cbiAgKHR5cGVvZiBDQVBBQklMSVRZX0tFWSlba2V5b2YgdHlwZW9mIENBUEFCSUxJVFlfS0VZXTtcbmV4cG9ydCBjb25zdCBjYXBhYmlsaXR5S2V5U2NoZW1hID0gei5lbnVtKFtcbiAgXCJhZG1pbi1jb25maWd1cmF0aW9uXCIsXG4gIFwiYmlsbGluZy1jbGFpbXMtaW5zdXJhbmNlXCIsXG4gIFwiY2FyZS1wbGFubmluZ1wiLFxuICBcImNsaW5pY1wiLFxuICBcImNvbW11bmljYXRpb25zLWNhcmUtY29vcmRpbmF0aW9uXCIsXG4gIFwiZW5jb3VudGVyLWNoYXJ0aW5nXCIsXG4gIFwibWVkaWNhdGlvbi1tYW5hZ2VtZW50XCIsXG4gIFwibW9iaWxlLWZpZWxkLW9wZXJhdGlvbnNcIixcbiAgXCJvcmRlcnMtcmVzdWx0c1wiLFxuICBcInBhdGllbnQtZW5nYWdlbWVudFwiLFxuICBcInBhdGllbnQtbWFuYWdlbWVudFwiLFxuICBcInByaW1hcnktY2FyZVwiLFxuICBcInJlcG9ydGluZy1hbmFseXRpY3NcIixcbiAgXCJzY2hlZHVsaW5nLWludGFrZVwiLFxuICBcInRyYXZlbGluZ1wiLFxuICBcIndvdW5kLWFjdGl2ZS13b3VuZHMtY2hhcnQtc2VjdGlvblwiLFxuICBcIndvdW5kLWFkamFjZW50LXNwZWNpYWx0eS1jaGFydGluZ1wiLFxuICBcIndvdW5kLWFpLXBob3RvLW1lYXN1cmVtZW50XCIsXG4gIFwid291bmQtYXNzZXNzbWVudC1zZWN0aW9uXCIsXG4gIFwid291bmQtY2FyZVwiLFxuICBcIndvdW5kLWRhc2hib2FyZC1oZWFsaW5nLWNhcmRcIixcbiAgXCJ3b3VuZC1oZWFsaW5nLXJlcG9ydHNcIixcbiAgXCJ3b3VuZC1oZWFsaW5nLXRyYWplY3RvcnktYW5hbHl0aWNzXCIsXG4gIFwid291bmQtcGhvdG8tY2FwdHVyZVwiLFxuICBcIndvdW5kLXBvcHVsYXRpb24taGVhbHRoXCIsXG4gIFwid291bmQtc3RydWN0dXJlZC1maWVsZHNcIixcbiAgXCJ3b3VuZC10cmVhdG1lbnQtcGxhblwiLFxuICBcIndvdW5kLXZpc2l0LXJvc3Rlci1jb2x1bW5zXCIsXG4gIFwid291bmQtdmlzdWFsLWJvZHktbWFwXCIsXG5dKTtcblxuZXhwb3J0IGNvbnN0IENBUEFCSUxJVFlfS0VZX0NPTkNFUFRTID0ge1xuICBBRE1JTl9DT05GSUdVUkFUSU9OOiB7XG4gICAgY29kZTogXCJhZG1pbi1jb25maWd1cmF0aW9uXCIsXG4gICAgZGlzcGxheTogXCJBZG1pbiAmIENvbmZpZ3VyYXRpb25cIixcbiAgICB0aWVyOiBcIkJcIixcbiAgfSxcbiAgQklMTElOR19DTEFJTVNfSU5TVVJBTkNFOiB7XG4gICAgY29kZTogXCJiaWxsaW5nLWNsYWltcy1pbnN1cmFuY2VcIixcbiAgICBkaXNwbGF5OiBcIkJpbGxpbmcgLyBDbGFpbXMgLyBJbnN1cmFuY2VcIixcbiAgICB0aWVyOiBcIkJcIixcbiAgfSxcbiAgQ0FSRV9QTEFOTklORzogeyBjb2RlOiBcImNhcmUtcGxhbm5pbmdcIiwgZGlzcGxheTogXCJDYXJlIFBsYW5uaW5nXCIsIHRpZXI6IFwiQlwiIH0sXG4gIENMSU5JQzoge1xuICAgIGNvZGU6IFwiY2xpbmljXCIsXG4gICAgZGlzcGxheTogXCJDbGluaWNcIixcbiAgICBkZWZpbml0aW9uOlxuICAgICAgXCJGYWNpbGl0eS1iYXNlZCwgaW4tY2xpbmljIHBhdGllbnQgZmxvdyDigJQgY2FyZSBkZWxpdmVyZWQgYXQgYSBmaXhlZCBjbGluaWMgc2l0ZS5cIixcbiAgICB0aWVyOiBcIkFcIixcbiAgICBwYWNrRmFtaWx5OiBcImNhcmUtc2V0dGluZ1wiLFxuICB9LFxuICBDT01NVU5JQ0FUSU9OU19DQVJFX0NPT1JESU5BVElPTjoge1xuICAgIGNvZGU6IFwiY29tbXVuaWNhdGlvbnMtY2FyZS1jb29yZGluYXRpb25cIixcbiAgICBkaXNwbGF5OiBcIkNvbW11bmljYXRpb25zICYgQ2FyZSBDb29yZGluYXRpb25cIixcbiAgICB0aWVyOiBcIkJcIixcbiAgfSxcbiAgRU5DT1VOVEVSX0NIQVJUSU5HOiB7XG4gICAgY29kZTogXCJlbmNvdW50ZXItY2hhcnRpbmdcIixcbiAgICBkaXNwbGF5OiBcIkVuY291bnRlciBDaGFydGluZyDigJQgZ2VuZXJpYyBzZWN0aW9uc1wiLFxuICAgIHRpZXI6IFwiQlwiLFxuICB9LFxuICBNRURJQ0FUSU9OX01BTkFHRU1FTlQ6IHtcbiAgICBjb2RlOiBcIm1lZGljYXRpb24tbWFuYWdlbWVudFwiLFxuICAgIGRpc3BsYXk6IFwiTWVkaWNhdGlvbiBNYW5hZ2VtZW50XCIsXG4gICAgdGllcjogXCJCXCIsXG4gIH0sXG4gIE1PQklMRV9GSUVMRF9PUEVSQVRJT05TOiB7XG4gICAgY29kZTogXCJtb2JpbGUtZmllbGQtb3BlcmF0aW9uc1wiLFxuICAgIGRpc3BsYXk6IFwiTW9iaWxlICYgRmllbGQgT3BlcmF0aW9uc1wiLFxuICAgIHRpZXI6IFwiQlwiLFxuICB9LFxuICBPUkRFUlNfUkVTVUxUUzoge1xuICAgIGNvZGU6IFwib3JkZXJzLXJlc3VsdHNcIixcbiAgICBkaXNwbGF5OiBcIk9yZGVycyAmIFJlc3VsdHNcIixcbiAgICB0aWVyOiBcIkJcIixcbiAgfSxcbiAgUEFUSUVOVF9FTkdBR0VNRU5UOiB7XG4gICAgY29kZTogXCJwYXRpZW50LWVuZ2FnZW1lbnRcIixcbiAgICBkaXNwbGF5OiBcIlBhdGllbnQgRW5nYWdlbWVudFwiLFxuICAgIHRpZXI6IFwiQlwiLFxuICB9LFxuICBQQVRJRU5UX01BTkFHRU1FTlQ6IHtcbiAgICBjb2RlOiBcInBhdGllbnQtbWFuYWdlbWVudFwiLFxuICAgIGRpc3BsYXk6IFwiUGF0aWVudCBNYW5hZ2VtZW50XCIsXG4gICAgdGllcjogXCJCXCIsXG4gIH0sXG4gIFBSSU1BUllfQ0FSRToge1xuICAgIGNvZGU6IFwicHJpbWFyeS1jYXJlXCIsXG4gICAgZGlzcGxheTogXCJQcmltYXJ5IENhcmVcIixcbiAgICBkZWZpbml0aW9uOlxuICAgICAgXCJQcmltYXJ5LWNhcmUgY2xpbmljYWwgd29ya2Zsb3dzIOKAlCBnZW5lcmFsIEUmTSBjaGFydGluZywgZGlmZmVyZW50IGNoYXJ0LXRlbXBsYXRlIHNldHMgYW5kIG9yZGVyIHR5cGVzOyBubyB3b3VuZCBzdXJmYWNlcy5cIixcbiAgICB0aWVyOiBcIkFcIixcbiAgICBwYWNrRmFtaWx5OiBcInNwZWNpYWx0eVwiLFxuICB9LFxuICBSRVBPUlRJTkdfQU5BTFlUSUNTOiB7XG4gICAgY29kZTogXCJyZXBvcnRpbmctYW5hbHl0aWNzXCIsXG4gICAgZGlzcGxheTogXCJSZXBvcnRpbmcgJiBBbmFseXRpY3Mg4oCUIGdlbmVyaWNcIixcbiAgICB0aWVyOiBcIkJcIixcbiAgfSxcbiAgU0NIRURVTElOR19JTlRBS0U6IHtcbiAgICBjb2RlOiBcInNjaGVkdWxpbmctaW50YWtlXCIsXG4gICAgZGlzcGxheTogXCJTY2hlZHVsaW5nICYgSW50YWtlXCIsXG4gICAgdGllcjogXCJCXCIsXG4gIH0sXG4gIFRSQVZFTElORzoge1xuICAgIGNvZGU6IFwidHJhdmVsaW5nXCIsXG4gICAgZGlzcGxheTogXCJUcmF2ZWxpbmdcIixcbiAgICBkZWZpbml0aW9uOlxuICAgICAgXCJIb21lLXZpc2l0IC8gdHJhdmVsaW5nLXByb3ZpZGVyIHdvcmtmbG93cyDigJQgY2FyZSBkZWxpdmVyZWQgYXQgdGhlIHBhdGllbnQncyBmYWNpbGl0eSBvciBob21lLlwiLFxuICAgIHRpZXI6IFwiQVwiLFxuICAgIHBhY2tGYW1pbHk6IFwiY2FyZS1zZXR0aW5nXCIsXG4gIH0sXG4gIFdPVU5EX0FDVElWRV9XT1VORFNfQ0hBUlRfU0VDVElPTjoge1xuICAgIGNvZGU6IFwid291bmQtYWN0aXZlLXdvdW5kcy1jaGFydC1zZWN0aW9uXCIsXG4gICAgZGlzcGxheTogXCJDaGFydC10YWIgQWN0aXZlIFdvdW5kcyBzZWN0aW9uXCIsXG4gICAgdGllcjogXCJDXCIsXG4gIH0sXG4gIFdPVU5EX0FESkFDRU5UX1NQRUNJQUxUWV9DSEFSVElORzoge1xuICAgIGNvZGU6IFwid291bmQtYWRqYWNlbnQtc3BlY2lhbHR5LWNoYXJ0aW5nXCIsXG4gICAgZGlzcGxheTogXCJBZGphY2VudCBzcGVjaWFsdHkgY2hhcnRpbmcgKEhCT1QgLyBwb2RpYXRyeSlcIixcbiAgICB0aWVyOiBcIkNcIixcbiAgfSxcbiAgV09VTkRfQUlfUEhPVE9fTUVBU1VSRU1FTlQ6IHtcbiAgICBjb2RlOiBcIndvdW5kLWFpLXBob3RvLW1lYXN1cmVtZW50XCIsXG4gICAgZGlzcGxheTogXCJBSSBjb21wdXRlci12aXNpb24gcGhvdG8gbWVhc3VyZW1lbnRcIixcbiAgICB0aWVyOiBcIkNcIixcbiAgfSxcbiAgV09VTkRfQVNTRVNTTUVOVF9TRUNUSU9OOiB7XG4gICAgY29kZTogXCJ3b3VuZC1hc3Nlc3NtZW50LXNlY3Rpb25cIixcbiAgICBkaXNwbGF5OiBcIldvdW5kIGFzc2Vzc21lbnQgc2VjdGlvblwiLFxuICAgIHRpZXI6IFwiQ1wiLFxuICB9LFxuICBXT1VORF9DQVJFOiB7XG4gICAgY29kZTogXCJ3b3VuZC1jYXJlXCIsXG4gICAgZGlzcGxheTogXCJXb3VuZCBDYXJlXCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiV291bmQgY2xpbmljYWwgd29ya2Zsb3dzIOKAlCBlbmNvdW50ZXIgZG9jdW1lbnRhdGlvbiwgd291bmQgc3RhZ2luZy9kZWJyaWRlbWVudCwgaGVhbGluZy10cmFqZWN0b3J5IGFuYWx5dGljcy4gVGhlIGxlYWQgdmVydGljYWwgYW5kIHRoZSBvbmx5IGJ1aWx0LW91dCBzcGVjaWFsdHkgdG9kYXkuXCIsXG4gICAgdGllcjogXCJBXCIsXG4gICAgcGFja0ZhbWlseTogXCJzcGVjaWFsdHlcIixcbiAgfSxcbiAgV09VTkRfREFTSEJPQVJEX0hFQUxJTkdfQ0FSRDoge1xuICAgIGNvZGU6IFwid291bmQtZGFzaGJvYXJkLWhlYWxpbmctY2FyZFwiLFxuICAgIGRpc3BsYXk6IFwiRGFzaGJvYXJkIHdvdW5kLWhlYWxpbmcgY2FyZFwiLFxuICAgIHRpZXI6IFwiQ1wiLFxuICB9LFxuICBXT1VORF9IRUFMSU5HX1JFUE9SVFM6IHtcbiAgICBjb2RlOiBcIndvdW5kLWhlYWxpbmctcmVwb3J0c1wiLFxuICAgIGRpc3BsYXk6IFwiV291bmQtaGVhbGluZyByZXBvcnRzXCIsXG4gICAgdGllcjogXCJDXCIsXG4gIH0sXG4gIFdPVU5EX0hFQUxJTkdfVFJBSkVDVE9SWV9BTkFMWVRJQ1M6IHtcbiAgICBjb2RlOiBcIndvdW5kLWhlYWxpbmctdHJhamVjdG9yeS1hbmFseXRpY3NcIixcbiAgICBkaXNwbGF5OiBcIkhlYWxpbmctdHJhamVjdG9yeSBhbmFseXRpY3NcIixcbiAgICB0aWVyOiBcIkNcIixcbiAgfSxcbiAgV09VTkRfUEhPVE9fQ0FQVFVSRToge1xuICAgIGNvZGU6IFwid291bmQtcGhvdG8tY2FwdHVyZVwiLFxuICAgIGRpc3BsYXk6IFwiV291bmQgcGhvdG8gY2FwdHVyZVwiLFxuICAgIHRpZXI6IFwiQ1wiLFxuICB9LFxuICBXT1VORF9QT1BVTEFUSU9OX0hFQUxUSDoge1xuICAgIGNvZGU6IFwid291bmQtcG9wdWxhdGlvbi1oZWFsdGhcIixcbiAgICBkaXNwbGF5OiBcIldvdW5kIHBvcHVsYXRpb24taGVhbHRoICh0aW1lLXRvLWhlYWwgLyBpbmZlY3Rpb24tcmF0ZSlcIixcbiAgICB0aWVyOiBcIkNcIixcbiAgfSxcbiAgV09VTkRfU1RSVUNUVVJFRF9GSUVMRFM6IHtcbiAgICBjb2RlOiBcIndvdW5kLXN0cnVjdHVyZWQtZmllbGRzXCIsXG4gICAgZGlzcGxheTpcbiAgICAgIFwiU3RydWN0dXJlZCB3b3VuZCBmaWVsZHMgKHN0YWdlIC8gdGlzc3VlIC8gZXh1ZGF0ZSAvIHBlcml3b3VuZCAvIG9kb3IpXCIsXG4gICAgdGllcjogXCJDXCIsXG4gIH0sXG4gIFdPVU5EX1RSRUFUTUVOVF9QTEFOOiB7XG4gICAgY29kZTogXCJ3b3VuZC10cmVhdG1lbnQtcGxhblwiLFxuICAgIGRpc3BsYXk6IFwiV291bmQtc2NvcGVkIHRyZWF0bWVudCBwbGFuICsgcGVyLXdvdW5kIHZpc2l0IGNvdW50XCIsXG4gICAgdGllcjogXCJDXCIsXG4gIH0sXG4gIFdPVU5EX1ZJU0lUX1JPU1RFUl9DT0xVTU5TOiB7XG4gICAgY29kZTogXCJ3b3VuZC12aXNpdC1yb3N0ZXItY29sdW1uc1wiLFxuICAgIGRpc3BsYXk6IFwiVmlzaXQtcm9zdGVyIHdvdW5kIGNvbHVtbnNcIixcbiAgICB0aWVyOiBcIkNcIixcbiAgfSxcbiAgV09VTkRfVklTVUFMX0JPRFlfTUFQOiB7XG4gICAgY29kZTogXCJ3b3VuZC12aXN1YWwtYm9keS1tYXBcIixcbiAgICBkaXNwbGF5OiBcIlZpc3VhbCBib2R5IG1hcFwiLFxuICAgIHRpZXI6IFwiQ1wiLFxuICB9LFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENhcGFiaWxpdHlLZXlDb25jZXB0ID1cbiAgKHR5cGVvZiBDQVBBQklMSVRZX0tFWV9DT05DRVBUUylba2V5b2YgdHlwZW9mIENBUEFCSUxJVFlfS0VZX0NPTkNFUFRTXTtcblxuZXhwb3J0IGNvbnN0IEZFQVRVUkVfRkxBR19QUk9WRU5BTkNFID0ge1xuICBFWFBMSUNJVDogXCJleHBsaWNpdFwiLFxuICBQQUNLOiBcInBhY2tcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBGZWF0dXJlRmxhZ1Byb3ZlbmFuY2UgPVxuICAodHlwZW9mIEZFQVRVUkVfRkxBR19QUk9WRU5BTkNFKVtrZXlvZiB0eXBlb2YgRkVBVFVSRV9GTEFHX1BST1ZFTkFOQ0VdO1xuZXhwb3J0IGNvbnN0IGZlYXR1cmVGbGFnUHJvdmVuYW5jZVNjaGVtYSA9IHouZW51bShbXCJleHBsaWNpdFwiLCBcInBhY2tcIl0pO1xuXG5leHBvcnQgY29uc3QgRkVBVFVSRV9GTEFHX1BST1ZFTkFOQ0VfQ09OQ0VQVFMgPSB7XG4gIEVYUExJQ0lUOiB7XG4gICAgY29kZTogXCJleHBsaWNpdFwiLFxuICAgIGRpc3BsYXk6IFwiRXhwbGljaXRcIixcbiAgICBkZWZpbml0aW9uOlxuICAgICAgXCJTZXQgZXhwbGljaXRseSBieSBhbiBhZG1pbi9vcGVyYXRvcjsgZXhwbGljaXQgYmVhdHMgcGFjayBhdCB0aGUgc2FtZSB0aWVyLlwiLFxuICB9LFxuICBQQUNLOiB7XG4gICAgY29kZTogXCJwYWNrXCIsXG4gICAgZGlzcGxheTogXCJQYWNrXCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiRGVmYXVsdGVkIGZyb20gdGhlIFRpZXItQSBzcGVjaWFsdHkgcGFjayBhdCBhc3NpZ25tZW50IChwcm92ZW5hbmNlID0gcGFjayAtPiBwYWNrIHJlZmVyZW5jZSBwcmVzZW50KS5cIixcbiAgfSxcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBGZWF0dXJlRmxhZ1Byb3ZlbmFuY2VDb25jZXB0ID1cbiAgKHR5cGVvZiBGRUFUVVJFX0ZMQUdfUFJPVkVOQU5DRV9DT05DRVBUUylba2V5b2YgdHlwZW9mIEZFQVRVUkVfRkxBR19QUk9WRU5BTkNFX0NPTkNFUFRTXTtcblxuZXhwb3J0IGNvbnN0IEZFQVRVUkVfRkxBR19TQ09QRV9USUVSID0ge1xuICBCQVNFTElORTogXCJiYXNlbGluZVwiLFxuICBURU5BTlQ6IFwidGVuYW50XCIsXG4gIFVTRVI6IFwidXNlclwiLFxuICBXT1JLU1BBQ0U6IFwid29ya3NwYWNlXCIsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRmVhdHVyZUZsYWdTY29wZVRpZXIgPVxuICAodHlwZW9mIEZFQVRVUkVfRkxBR19TQ09QRV9USUVSKVtrZXlvZiB0eXBlb2YgRkVBVFVSRV9GTEFHX1NDT1BFX1RJRVJdO1xuZXhwb3J0IGNvbnN0IGZlYXR1cmVGbGFnU2NvcGVUaWVyU2NoZW1hID0gei5lbnVtKFtcbiAgXCJiYXNlbGluZVwiLFxuICBcInRlbmFudFwiLFxuICBcInVzZXJcIixcbiAgXCJ3b3Jrc3BhY2VcIixcbl0pO1xuXG5leHBvcnQgY29uc3QgRkVBVFVSRV9GTEFHX1NDT1BFX1RJRVJfQ09OQ0VQVFMgPSB7XG4gIEJBU0VMSU5FOiB7XG4gICAgY29kZTogXCJiYXNlbGluZVwiLFxuICAgIGRpc3BsYXk6IFwiQmFzZWxpbmVcIixcbiAgICBkZWZpbml0aW9uOlxuICAgICAgXCJQbGF0Zm9ybS13aWRlIGRlZmF1bHQgcm93OyBjYXJyaWVzIG5vIHJlYWwgdGVuYW50L3dvcmtzcGFjZS91c2VyIHNjb3BlLlwiLFxuICB9LFxuICBURU5BTlQ6IHtcbiAgICBjb2RlOiBcInRlbmFudFwiLFxuICAgIGRpc3BsYXk6IFwiVGVuYW50XCIsXG4gICAgZGVmaW5pdGlvbjogXCJUZW5hbnQtc2NvcGVkIHJvdzsgY2FycmllcyBhIHRlbmFudCBidXQgbm8gd29ya3NwYWNlL3VzZXIuXCIsXG4gIH0sXG4gIFVTRVI6IHtcbiAgICBjb2RlOiBcInVzZXJcIixcbiAgICBkaXNwbGF5OiBcIlVzZXJcIixcbiAgICBkZWZpbml0aW9uOlxuICAgICAgXCJVc2VyLXNjb3BlZCByb3c7IHdvcmtzcGFjZS1xdWFsaWZpZWQgKHRlbmFudCArIHdvcmtzcGFjZSArIHVzZXIgYWxsIHByZXNlbnQpLlwiLFxuICB9LFxuICBXT1JLU1BBQ0U6IHtcbiAgICBjb2RlOiBcIndvcmtzcGFjZVwiLFxuICAgIGRpc3BsYXk6IFwiV29ya3NwYWNlXCIsXG4gICAgZGVmaW5pdGlvbjogXCJXb3Jrc3BhY2Utc2NvcGVkIHJvdzsgY2FycmllcyB0ZW5hbnQgKyB3b3Jrc3BhY2UgYnV0IG5vIHVzZXIuXCIsXG4gIH0sXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRmVhdHVyZUZsYWdTY29wZVRpZXJDb25jZXB0ID1cbiAgKHR5cGVvZiBGRUFUVVJFX0ZMQUdfU0NPUEVfVElFUl9DT05DRVBUUylba2V5b2YgdHlwZW9mIEZFQVRVUkVfRkxBR19TQ09QRV9USUVSX0NPTkNFUFRTXTtcblxuZXhwb3J0IGNvbnN0IFBMQVRGT1JNX1JPTEVfQ09ERSA9IHtcbiAgU1lTVEVNX0FETUlOOiBcInN5c3RlbS1hZG1pblwiLFxuICBTWVNURU1fU1VQUE9SVDogXCJzeXN0ZW0tc3VwcG9ydFwiLFxuICBURU5BTlRfQURNSU46IFwidGVuYW50LWFkbWluXCIsXG4gIFRFTkFOVF9VU0VSOiBcInRlbmFudC11c2VyXCIsXG4gIFdPUktTUEFDRV9BRE1JTjogXCJ3b3Jrc3BhY2UtYWRtaW5cIixcbiAgV09SS1NQQUNFX1VTRVI6IFwid29ya3NwYWNlLXVzZXJcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbGF0Zm9ybVJvbGVDb2RlID1cbiAgKHR5cGVvZiBQTEFURk9STV9ST0xFX0NPREUpW2tleW9mIHR5cGVvZiBQTEFURk9STV9ST0xFX0NPREVdO1xuZXhwb3J0IGNvbnN0IHBsYXRmb3JtUm9sZUNvZGVTY2hlbWEgPSB6LmVudW0oW1xuICBcInN5c3RlbS1hZG1pblwiLFxuICBcInN5c3RlbS1zdXBwb3J0XCIsXG4gIFwidGVuYW50LWFkbWluXCIsXG4gIFwidGVuYW50LXVzZXJcIixcbiAgXCJ3b3Jrc3BhY2UtYWRtaW5cIixcbiAgXCJ3b3Jrc3BhY2UtdXNlclwiLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBQTEFURk9STV9ST0xFX0NPTkNFUFRTID0ge1xuICBTWVNURU1fQURNSU46IHtcbiAgICBjb2RlOiBcInN5c3RlbS1hZG1pblwiLFxuICAgIGRpc3BsYXk6IFwiU3lzdGVtIEFkbWluXCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiQWRtaW5pc3RyYXRpdmUgZnVuY3Rpb25zIHdpdGhpbiBjb250cm9sIHBsYW5lIG9ubHk7IGNhbiBjaGFuZ2UgdGVuYW50L3dvcmtzcGFjZSByZWNvcmRzLCBhc3NpZ24gbWVtYmVyc2hpcHMgYW5kIHJvbGUgYXNzaWdubWVudHM7IENBTk5PVCB2aWV3IHRlbmFudC1pc29sYXRlZCBkYXRhLlwiLFxuICB9LFxuICBTWVNURU1fU1VQUE9SVDoge1xuICAgIGNvZGU6IFwic3lzdGVtLXN1cHBvcnRcIixcbiAgICBkaXNwbGF5OiBcIlN5c3RlbSBTdXBwb3J0XCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiUmVhZC1vbmx5IGNyb3NzLXRlbmFudCBzdXBwb3J0L2RlYnVnIGFjY2VzcyB0byB0ZW5hbnQvd29ya3NwYWNlIGRhdGEuXCIsXG4gIH0sXG4gIFRFTkFOVF9BRE1JTjoge1xuICAgIGNvZGU6IFwidGVuYW50LWFkbWluXCIsXG4gICAgZGlzcGxheTogXCJBZG1pblwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIkFkbWluIHNjb3BlZCB0byBhIHRlbmFudCAobm8gd29ya3NwYWNlKTsgMTAwJSB0ZW5hbnQtaXNvbGF0ZWQgYWNjZXNzIGFjcm9zcyBldmVyeSB3b3Jrc3BhY2UgaW4gdGhlIHRlbmFudC5cIixcbiAgfSxcbiAgVEVOQU5UX1VTRVI6IHtcbiAgICBjb2RlOiBcInRlbmFudC11c2VyXCIsXG4gICAgZGlzcGxheTogXCJVc2VyXCIsXG4gICAgZGVmaW5pdGlvbjpcbiAgICAgIFwiVXNlciBzY29wZWQgdG8gYSB0ZW5hbnQgKG5vIHdvcmtzcGFjZSk7IDEwMCUgdGVuYW50LWlzb2xhdGVkIGFjY2VzcyBhY3Jvc3MgZXZlcnkgd29ya3NwYWNlIGluIHRoZSB0ZW5hbnQuXCIsXG4gIH0sXG4gIFdPUktTUEFDRV9BRE1JTjoge1xuICAgIGNvZGU6IFwid29ya3NwYWNlLWFkbWluXCIsXG4gICAgZGlzcGxheTogXCJBZG1pblwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIkFkbWluIHNjb3BlZCB0byBhIHNpbmdsZSB3b3Jrc3BhY2U7IDEwMCUgdGVuYW50LWlzb2xhdGVkIGFjY2VzcyB3aXRoaW4gdGhhdCBvbmUgd29ya3NwYWNlIG9ubHkuXCIsXG4gIH0sXG4gIFdPUktTUEFDRV9VU0VSOiB7XG4gICAgY29kZTogXCJ3b3Jrc3BhY2UtdXNlclwiLFxuICAgIGRpc3BsYXk6IFwiVXNlclwiLFxuICAgIGRlZmluaXRpb246XG4gICAgICBcIlVzZXIgc2NvcGVkIHRvIGEgc2luZ2xlIHdvcmtzcGFjZTsgMTAwJSB0ZW5hbnQtaXNvbGF0ZWQgYWNjZXNzIHdpdGhpbiB0aGF0IG9uZSB3b3Jrc3BhY2Ugb25seS5cIixcbiAgfSxcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbGF0Zm9ybVJvbGVDb25jZXB0ID1cbiAgKHR5cGVvZiBQTEFURk9STV9ST0xFX0NPTkNFUFRTKVtrZXlvZiB0eXBlb2YgUExBVEZPUk1fUk9MRV9DT05DRVBUU107XG5cbmV4cG9ydCBjb25zdCBQTEFURk9STV9ST0xFX0lEUyA9IHtcbiAgU1lTVEVNX0FETUlOOiBcInJvbGUtc3lzdGVtLWFkbWluXCIsXG4gIFNZU1RFTV9TVVBQT1JUOiBcInJvbGUtc3lzdGVtLXN1cHBvcnRcIixcbiAgVEVOQU5UX0FETUlOOiBcInJvbGUtdGVuYW50LWFkbWluXCIsXG4gIFRFTkFOVF9VU0VSOiBcInJvbGUtdGVuYW50LXVzZXJcIixcbiAgV09SS1NQQUNFX0FETUlOOiBcInJvbGUtd29ya3NwYWNlLWFkbWluXCIsXG4gIFdPUktTUEFDRV9VU0VSOiBcInJvbGUtd29ya3NwYWNlLXVzZXJcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbGF0Zm9ybVJvbGVJZCA9XG4gICh0eXBlb2YgUExBVEZPUk1fUk9MRV9JRFMpW2tleW9mIHR5cGVvZiBQTEFURk9STV9ST0xFX0lEU107XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ import type { Coding } from "../data/coding";
3
+ import type { DomainResource } from "../data/domainresource";
4
+ import type { Period } from "../data/period";
5
+ import type { Reference } from "../data/reference";
6
+ import type { FeatureFlagProvenance } from "./constants";
7
+ import type { FeatureFlag_Scope } from "./featureflag_scope";
8
+ export interface FeatureFlag extends DomainResource {
9
+ resourceType: "FeatureFlag";
10
+ capabilityKey: Coding;
11
+ value: boolean;
12
+ scope: FeatureFlag_Scope;
13
+ provenance: FeatureFlagProvenance;
14
+ pack?: Reference;
15
+ active?: boolean;
16
+ period?: Period;
17
+ }
18
+ export declare const featureFlagSchema: z.ZodType<FeatureFlag>;
19
+ export interface FeatureFlagSummary {
20
+ resourceType: "FeatureFlag";
21
+ id?: string;
22
+ meta?: {
23
+ lastUpdated?: string;
24
+ versionId?: string;
25
+ };
26
+ displayLabel?: string;
27
+ capabilityKey: Coding;
28
+ value: boolean;
29
+ provenance: FeatureFlagProvenance;
30
+ active?: boolean;
31
+ implicitRules?: string;
32
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ // THIS FILE IS GENERATED by @openhi/types-generator.
3
+ // Do not edit. Edit sds/ or generator-config.yaml and regenerate.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.featureFlagSchema = void 0;
6
+ const zod_1 = require("zod");
7
+ const coding_1 = require("../data/coding");
8
+ const domainresource_1 = require("../data/domainresource");
9
+ const period_1 = require("../data/period");
10
+ const reference_1 = require("../data/reference");
11
+ const constants_1 = require("./constants");
12
+ const featureflag_scope_1 = require("./featureflag_scope");
13
+ exports.featureFlagSchema = domainresource_1.domainResourceSchema
14
+ .extend({
15
+ resourceType: zod_1.z.literal("FeatureFlag"),
16
+ capabilityKey: coding_1.codingSchema,
17
+ value: zod_1.z.boolean(),
18
+ scope: featureflag_scope_1.featureFlagScopeSchema,
19
+ provenance: constants_1.featureFlagProvenanceSchema,
20
+ pack: reference_1.referenceSchema.optional(),
21
+ active: zod_1.z.boolean().optional(),
22
+ period: period_1.periodSchema.optional(),
23
+ })
24
+ .passthrough();
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZWZsYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbC9mZWF0dXJlZmxhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEscURBQXFEO0FBQ3JELGtFQUFrRTs7O0FBRWxFLDZCQUF3QjtBQUV4QiwyQ0FBOEM7QUFFOUMsMkRBQThEO0FBRTlELDJDQUE4QztBQUU5QyxpREFBb0Q7QUFFcEQsMkNBQTBEO0FBRTFELDJEQUE2RDtBQWFoRCxRQUFBLGlCQUFpQixHQUEyQixxQ0FBb0I7S0FDMUUsTUFBTSxDQUFDO0lBQ04sWUFBWSxFQUFFLE9BQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3RDLGFBQWEsRUFBRSxxQkFBWTtJQUMzQixLQUFLLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNsQixLQUFLLEVBQUUsMENBQXNCO0lBQzdCLFVBQVUsRUFBRSx1Q0FBMkI7SUFDdkMsSUFBSSxFQUFFLDJCQUFlLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlCLE1BQU0sRUFBRSxxQkFBWSxDQUFDLFFBQVEsRUFBRTtDQUNoQyxDQUFDO0tBQ0QsV0FBVyxFQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVEhJUyBGSUxFIElTIEdFTkVSQVRFRCBieSBAb3BlbmhpL3R5cGVzLWdlbmVyYXRvci5cbi8vIERvIG5vdCBlZGl0LiBFZGl0IHNkcy8gb3IgZ2VuZXJhdG9yLWNvbmZpZy55YW1sIGFuZCByZWdlbmVyYXRlLlxuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHR5cGUgeyBDb2RpbmcgfSBmcm9tIFwiLi4vZGF0YS9jb2RpbmdcIjtcbmltcG9ydCB7IGNvZGluZ1NjaGVtYSB9IGZyb20gXCIuLi9kYXRhL2NvZGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBEb21haW5SZXNvdXJjZSB9IGZyb20gXCIuLi9kYXRhL2RvbWFpbnJlc291cmNlXCI7XG5pbXBvcnQgeyBkb21haW5SZXNvdXJjZVNjaGVtYSB9IGZyb20gXCIuLi9kYXRhL2RvbWFpbnJlc291cmNlXCI7XG5pbXBvcnQgdHlwZSB7IFBlcmlvZCB9IGZyb20gXCIuLi9kYXRhL3BlcmlvZFwiO1xuaW1wb3J0IHsgcGVyaW9kU2NoZW1hIH0gZnJvbSBcIi4uL2RhdGEvcGVyaW9kXCI7XG5pbXBvcnQgdHlwZSB7IFJlZmVyZW5jZSB9IGZyb20gXCIuLi9kYXRhL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgcmVmZXJlbmNlU2NoZW1hIH0gZnJvbSBcIi4uL2RhdGEvcmVmZXJlbmNlXCI7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnUHJvdmVuYW5jZSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZmVhdHVyZUZsYWdQcm92ZW5hbmNlU2NoZW1hIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnX1Njb3BlIH0gZnJvbSBcIi4vZmVhdHVyZWZsYWdfc2NvcGVcIjtcbmltcG9ydCB7IGZlYXR1cmVGbGFnU2NvcGVTY2hlbWEgfSBmcm9tIFwiLi9mZWF0dXJlZmxhZ19zY29wZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVGbGFnIGV4dGVuZHMgRG9tYWluUmVzb3VyY2Uge1xuICByZXNvdXJjZVR5cGU6IFwiRmVhdHVyZUZsYWdcIjtcbiAgY2FwYWJpbGl0eUtleTogQ29kaW5nO1xuICB2YWx1ZTogYm9vbGVhbjtcbiAgc2NvcGU6IEZlYXR1cmVGbGFnX1Njb3BlO1xuICBwcm92ZW5hbmNlOiBGZWF0dXJlRmxhZ1Byb3ZlbmFuY2U7XG4gIHBhY2s/OiBSZWZlcmVuY2U7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIHBlcmlvZD86IFBlcmlvZDtcbn1cblxuZXhwb3J0IGNvbnN0IGZlYXR1cmVGbGFnU2NoZW1hOiB6LlpvZFR5cGU8RmVhdHVyZUZsYWc+ID0gZG9tYWluUmVzb3VyY2VTY2hlbWFcbiAgLmV4dGVuZCh7XG4gICAgcmVzb3VyY2VUeXBlOiB6LmxpdGVyYWwoXCJGZWF0dXJlRmxhZ1wiKSxcbiAgICBjYXBhYmlsaXR5S2V5OiBjb2RpbmdTY2hlbWEsXG4gICAgdmFsdWU6IHouYm9vbGVhbigpLFxuICAgIHNjb3BlOiBmZWF0dXJlRmxhZ1Njb3BlU2NoZW1hLFxuICAgIHByb3ZlbmFuY2U6IGZlYXR1cmVGbGFnUHJvdmVuYW5jZVNjaGVtYSxcbiAgICBwYWNrOiByZWZlcmVuY2VTY2hlbWEub3B0aW9uYWwoKSxcbiAgICBhY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgcGVyaW9kOiBwZXJpb2RTY2hlbWEub3B0aW9uYWwoKSxcbiAgfSlcbiAgLnBhc3N0aHJvdWdoKCkgYXMgdW5rbm93biBhcyB6LlpvZFR5cGU8RmVhdHVyZUZsYWc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVGbGFnU3VtbWFyeSB7XG4gIHJlc291cmNlVHlwZTogXCJGZWF0dXJlRmxhZ1wiO1xuICBpZD86IHN0cmluZztcbiAgbWV0YT86IHsgbGFzdFVwZGF0ZWQ/OiBzdHJpbmc7IHZlcnNpb25JZD86IHN0cmluZyB9O1xuICBkaXNwbGF5TGFiZWw/OiBzdHJpbmc7XG4gIGNhcGFiaWxpdHlLZXk6IENvZGluZztcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHByb3ZlbmFuY2U6IEZlYXR1cmVGbGFnUHJvdmVuYW5jZTtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgaW1wbGljaXRSdWxlcz86IHN0cmluZztcbn1cbiJdfQ==