@metriport/fhir-sdk 1.2.5

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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +124 -0
  3. package/dist/__tests__/env-setup.d.ts +2 -0
  4. package/dist/__tests__/env-setup.d.ts.map +1 -0
  5. package/dist/__tests__/env-setup.js +37 -0
  6. package/dist/__tests__/env-setup.js.map +1 -0
  7. package/dist/__tests__/fhir-bundle-sdk-basic.test.d.ts +2 -0
  8. package/dist/__tests__/fhir-bundle-sdk-basic.test.d.ts.map +1 -0
  9. package/dist/__tests__/fhir-bundle-sdk-basic.test.js +19 -0
  10. package/dist/__tests__/fhir-bundle-sdk-basic.test.js.map +1 -0
  11. package/dist/__tests__/fhir-bundle-sdk.test.d.ts +2 -0
  12. package/dist/__tests__/fhir-bundle-sdk.test.d.ts.map +1 -0
  13. package/dist/__tests__/fhir-bundle-sdk.test.js +433 -0
  14. package/dist/__tests__/fhir-bundle-sdk.test.js.map +1 -0
  15. package/dist/__tests__/fixtures/fhir-bundles.d.ts +31 -0
  16. package/dist/__tests__/fixtures/fhir-bundles.d.ts.map +1 -0
  17. package/dist/__tests__/fixtures/fhir-bundles.js +369 -0
  18. package/dist/__tests__/fixtures/fhir-bundles.js.map +1 -0
  19. package/dist/__tests__/phase1-verification.test.d.ts +2 -0
  20. package/dist/__tests__/phase1-verification.test.d.ts.map +1 -0
  21. package/dist/__tests__/phase1-verification.test.js +141 -0
  22. package/dist/__tests__/phase1-verification.test.js.map +1 -0
  23. package/dist/__tests__/phase2-verification.test.d.ts +2 -0
  24. package/dist/__tests__/phase2-verification.test.d.ts.map +1 -0
  25. package/dist/__tests__/phase2-verification.test.js +234 -0
  26. package/dist/__tests__/phase2-verification.test.js.map +1 -0
  27. package/dist/__tests__/phase3-verification.test.d.ts +2 -0
  28. package/dist/__tests__/phase3-verification.test.d.ts.map +1 -0
  29. package/dist/__tests__/phase3-verification.test.js +121 -0
  30. package/dist/__tests__/phase3-verification.test.js.map +1 -0
  31. package/dist/__tests__/phase4-verification.test.d.ts +2 -0
  32. package/dist/__tests__/phase4-verification.test.d.ts.map +1 -0
  33. package/dist/__tests__/phase4-verification.test.js +168 -0
  34. package/dist/__tests__/phase4-verification.test.js.map +1 -0
  35. package/dist/__tests__/phase5-verification.test.d.ts +2 -0
  36. package/dist/__tests__/phase5-verification.test.d.ts.map +1 -0
  37. package/dist/__tests__/phase5-verification.test.js +200 -0
  38. package/dist/__tests__/phase5-verification.test.js.map +1 -0
  39. package/dist/index.d.ts +245 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +681 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/types/smart-resources.d.ts +219 -0
  44. package/dist/types/smart-resources.d.ts.map +1 -0
  45. package/dist/types/smart-resources.js +140 -0
  46. package/dist/types/smart-resources.js.map +1 -0
  47. package/package.json +69 -0
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.mixedResourceTypesBundle = exports.invalidBundleWrongType = exports.patientsOnlyBundle = exports.emptyBundle = exports.bundleWithFullUrlReferences = exports.bundleWithBrokenReferences = exports.validCompleteBundle = exports.CONSTANT_TIME_EXPECTED_THRESHOLD_MS = void 0;
7
+ const dayjs_1 = __importDefault(require("dayjs"));
8
+ const duration_1 = __importDefault(require("dayjs/plugin/duration"));
9
+ dayjs_1.default.extend(duration_1.default);
10
+ exports.CONSTANT_TIME_EXPECTED_THRESHOLD_MS = dayjs_1.default
11
+ .duration({ milliseconds: 12 })
12
+ .asMilliseconds();
13
+ /**
14
+ * Valid FHIR bundle with all resource types and proper references
15
+ */
16
+ exports.validCompleteBundle = {
17
+ resourceType: "Bundle",
18
+ id: "test-bundle-complete",
19
+ type: "collection",
20
+ total: 5,
21
+ entry: [
22
+ {
23
+ fullUrl: "urn:uuid:patient-123",
24
+ resource: {
25
+ resourceType: "Patient",
26
+ id: "patient-123",
27
+ name: [
28
+ {
29
+ family: "Doe",
30
+ given: ["Jane"],
31
+ },
32
+ ],
33
+ gender: "female",
34
+ birthDate: "1970-01-01",
35
+ address: [
36
+ {
37
+ line: ["123 Main St"],
38
+ city: "Wilmington",
39
+ state: "NC",
40
+ postalCode: "28401",
41
+ country: "USA",
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ {
47
+ fullUrl: "urn:uuid:practitioner-456",
48
+ resource: {
49
+ resourceType: "Practitioner",
50
+ id: "practitioner-456",
51
+ name: [
52
+ {
53
+ family: "Smith",
54
+ given: ["John"],
55
+ suffix: ["MD"],
56
+ },
57
+ ],
58
+ qualification: [
59
+ {
60
+ code: {
61
+ text: "Internal Medicine",
62
+ },
63
+ },
64
+ ],
65
+ },
66
+ },
67
+ {
68
+ fullUrl: "urn:uuid:encounter-789",
69
+ resource: {
70
+ resourceType: "Encounter",
71
+ id: "encounter-789",
72
+ status: "finished",
73
+ class: {
74
+ system: "http://terminology.hl7.org/CodeSystem/v3-ActCode",
75
+ code: "AMB",
76
+ display: "ambulatory",
77
+ },
78
+ subject: {
79
+ reference: "Patient/patient-123",
80
+ },
81
+ participant: [
82
+ {
83
+ individual: {
84
+ reference: "Practitioner/practitioner-456",
85
+ },
86
+ },
87
+ ],
88
+ period: {
89
+ start: "2023-09-29T14:00:00+00:00",
90
+ end: "2023-09-29T15:00:00+00:00",
91
+ },
92
+ },
93
+ },
94
+ {
95
+ fullUrl: "urn:uuid:observation-001",
96
+ resource: {
97
+ resourceType: "Observation",
98
+ id: "observation-001",
99
+ status: "final",
100
+ category: [
101
+ {
102
+ coding: [
103
+ {
104
+ system: "http://terminology.hl7.org/CodeSystem/observation-category",
105
+ code: "laboratory",
106
+ },
107
+ ],
108
+ },
109
+ ],
110
+ code: {
111
+ coding: [
112
+ {
113
+ system: "http://loinc.org",
114
+ code: "2345-7",
115
+ display: "Glucose SerPl-mCnc",
116
+ },
117
+ ],
118
+ text: "Glucose",
119
+ },
120
+ subject: {
121
+ reference: "Patient/patient-123",
122
+ },
123
+ encounter: {
124
+ reference: "Encounter/encounter-789",
125
+ },
126
+ performer: [
127
+ {
128
+ reference: "Practitioner/practitioner-456",
129
+ },
130
+ ],
131
+ valueQuantity: {
132
+ value: 139,
133
+ unit: "mg/dL",
134
+ system: "http://unitsofmeasure.org",
135
+ code: "mg/dL",
136
+ },
137
+ effectiveDateTime: "2023-09-29T14:26:24+00:00",
138
+ },
139
+ },
140
+ {
141
+ fullUrl: "urn:uuid:diagnostic-report-002",
142
+ resource: {
143
+ resourceType: "DiagnosticReport",
144
+ id: "diagnostic-report-002",
145
+ status: "final",
146
+ category: [
147
+ {
148
+ coding: [
149
+ {
150
+ system: "http://terminology.hl7.org/CodeSystem/v2-0074",
151
+ code: "LAB",
152
+ },
153
+ ],
154
+ },
155
+ ],
156
+ code: {
157
+ text: "Lab Results",
158
+ },
159
+ subject: {
160
+ reference: "Patient/patient-123",
161
+ },
162
+ encounter: {
163
+ reference: "Encounter/encounter-789",
164
+ },
165
+ performer: [
166
+ {
167
+ reference: "Practitioner/practitioner-456",
168
+ },
169
+ ],
170
+ result: [
171
+ {
172
+ reference: "Observation/observation-001",
173
+ },
174
+ ],
175
+ effectiveDateTime: "2023-09-29T14:26:24+00:00",
176
+ },
177
+ },
178
+ ],
179
+ };
180
+ /**
181
+ * Bundle with broken references for validation testing
182
+ */
183
+ exports.bundleWithBrokenReferences = {
184
+ resourceType: "Bundle",
185
+ id: "test-bundle-broken-refs",
186
+ type: "collection",
187
+ total: 2,
188
+ entry: [
189
+ {
190
+ fullUrl: "urn:uuid:patient-999",
191
+ resource: {
192
+ resourceType: "Patient",
193
+ id: "patient-999",
194
+ name: [{ family: "Test", given: ["Patient"] }],
195
+ },
196
+ },
197
+ {
198
+ fullUrl: "urn:uuid:observation-broken",
199
+ resource: {
200
+ resourceType: "Observation",
201
+ id: "observation-broken",
202
+ status: "final",
203
+ code: { text: "Test Observation" },
204
+ subject: {
205
+ reference: "Patient/nonexistent-patient", // Broken reference
206
+ },
207
+ encounter: {
208
+ reference: "Encounter/nonexistent-encounter", // Broken reference
209
+ },
210
+ performer: [
211
+ {
212
+ reference: "Practitioner/nonexistent-practitioner", // Broken reference
213
+ },
214
+ ],
215
+ },
216
+ },
217
+ ],
218
+ };
219
+ /**
220
+ * Bundle with fullUrl references for testing different reference styles
221
+ */
222
+ exports.bundleWithFullUrlReferences = {
223
+ resourceType: "Bundle",
224
+ id: "test-bundle-fullurl-refs",
225
+ type: "collection",
226
+ total: 2,
227
+ entry: [
228
+ {
229
+ fullUrl: "urn:uuid:patient-fullurl",
230
+ resource: {
231
+ resourceType: "Patient",
232
+ id: "patient-fullurl",
233
+ name: [{ family: "FullUrl", given: ["Patient"] }],
234
+ },
235
+ },
236
+ {
237
+ fullUrl: "urn:uuid:observation-fullurl",
238
+ resource: {
239
+ resourceType: "Observation",
240
+ id: "observation-fullurl",
241
+ status: "final",
242
+ code: { text: "Test Observation" },
243
+ subject: {
244
+ reference: "urn:uuid:patient-fullurl", // Reference by fullUrl
245
+ },
246
+ },
247
+ },
248
+ ],
249
+ };
250
+ /**
251
+ * Empty bundle for edge case testing
252
+ */
253
+ exports.emptyBundle = {
254
+ resourceType: "Bundle",
255
+ id: "test-bundle-empty",
256
+ type: "collection",
257
+ total: 0,
258
+ entry: [],
259
+ };
260
+ /**
261
+ * Bundle with only patients for type-specific getter testing
262
+ */
263
+ exports.patientsOnlyBundle = {
264
+ resourceType: "Bundle",
265
+ id: "test-bundle-patients-only",
266
+ type: "collection",
267
+ total: 3,
268
+ entry: [
269
+ {
270
+ fullUrl: "urn:uuid:patient-001",
271
+ resource: {
272
+ resourceType: "Patient",
273
+ id: "patient-001",
274
+ name: [{ family: "First", given: ["Patient"] }],
275
+ },
276
+ },
277
+ {
278
+ fullUrl: "urn:uuid:patient-002",
279
+ resource: {
280
+ resourceType: "Patient",
281
+ id: "patient-002",
282
+ name: [{ family: "Second", given: ["Patient"] }],
283
+ },
284
+ },
285
+ {
286
+ fullUrl: "urn:uuid:patient-003",
287
+ resource: {
288
+ resourceType: "Patient",
289
+ id: "patient-003",
290
+ name: [{ family: "Third", given: ["Patient"] }],
291
+ },
292
+ },
293
+ ],
294
+ };
295
+ /**
296
+ * Invalid bundle - wrong resourceType
297
+ */
298
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
+ exports.invalidBundleWrongType = {
300
+ resourceType: "Patient",
301
+ id: "invalid-bundle",
302
+ type: "collection",
303
+ };
304
+ /**
305
+ * Bundle for export testing with mixed resource types
306
+ */
307
+ exports.mixedResourceTypesBundle = {
308
+ resourceType: "Bundle",
309
+ id: "test-bundle-mixed",
310
+ type: "collection",
311
+ total: 6,
312
+ entry: [
313
+ {
314
+ fullUrl: "urn:uuid:patient-mix-1",
315
+ resource: {
316
+ resourceType: "Patient",
317
+ id: "patient-mix-1",
318
+ name: [{ family: "Mix", given: ["Patient", "One"] }],
319
+ },
320
+ },
321
+ {
322
+ fullUrl: "urn:uuid:patient-mix-2",
323
+ resource: {
324
+ resourceType: "Patient",
325
+ id: "patient-mix-2",
326
+ name: [{ family: "Mix", given: ["Patient", "Two"] }],
327
+ },
328
+ },
329
+ {
330
+ fullUrl: "urn:uuid:observation-mix-1",
331
+ resource: {
332
+ resourceType: "Observation",
333
+ id: "observation-mix-1",
334
+ status: "final",
335
+ code: { text: "Test Observation 1" },
336
+ subject: { reference: "Patient/patient-mix-1" },
337
+ },
338
+ },
339
+ {
340
+ fullUrl: "urn:uuid:observation-mix-2",
341
+ resource: {
342
+ resourceType: "Observation",
343
+ id: "observation-mix-2",
344
+ status: "final",
345
+ code: { text: "Test Observation 2" },
346
+ subject: { reference: "Patient/patient-mix-1" },
347
+ },
348
+ },
349
+ {
350
+ fullUrl: "urn:uuid:practitioner-mix",
351
+ resource: {
352
+ resourceType: "Practitioner",
353
+ id: "practitioner-mix",
354
+ name: [{ family: "Mix", given: ["Practitioner"] }],
355
+ },
356
+ },
357
+ {
358
+ fullUrl: "urn:uuid:encounter-mix",
359
+ resource: {
360
+ resourceType: "Encounter",
361
+ id: "encounter-mix",
362
+ status: "finished",
363
+ class: { code: "AMB" },
364
+ subject: { reference: "Patient/patient-mix-1" },
365
+ },
366
+ },
367
+ ],
368
+ };
369
+ //# sourceMappingURL=fhir-bundles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fhir-bundles.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/fhir-bundles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=phase1-verification.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase1-verification.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/phase1-verification.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("../index");
4
+ const fhir_bundles_1 = require("./fixtures/fhir-bundles");
5
+ describe("Phase 1 Verification - Bundle Initialization & Resource Retrieval", () => {
6
+ describe("Bundle Initialization", () => {
7
+ it("should initialize with valid bundle and build indexes", async () => {
8
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
9
+ expect(sdk).toBeDefined();
10
+ });
11
+ it("should handle empty bundle", async () => {
12
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.emptyBundle);
13
+ expect(sdk).toBeDefined();
14
+ });
15
+ });
16
+ describe("Resource Retrieval by ID - FR-3.1 to FR-3.5", () => {
17
+ let sdk;
18
+ beforeEach(async () => {
19
+ sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
20
+ });
21
+ describe("FR-3.1: getResourceById<T>(id: string): T | undefined returns resource matching the ID", () => {
22
+ it("should return resource by ID with proper typing", () => {
23
+ const patient = sdk.getResourceById("patient-123");
24
+ expect(patient).toBeDefined();
25
+ expect(patient?.id).toBe("patient-123");
26
+ expect(patient?.resourceType).toBe("Patient");
27
+ expect(patient?.name?.[0]?.family).toBe("Doe");
28
+ });
29
+ it("should return practitioner by ID", () => {
30
+ const practitioner = sdk.getResourceById("practitioner-456");
31
+ expect(practitioner).toBeDefined();
32
+ expect(practitioner?.id).toBe("practitioner-456");
33
+ expect(practitioner?.resourceType).toBe("Practitioner");
34
+ expect(practitioner?.name?.[0]?.family).toBe("Smith");
35
+ });
36
+ it("should return observation by ID", () => {
37
+ const observation = sdk.getResourceById("observation-001");
38
+ expect(observation).toBeDefined();
39
+ expect(observation?.id).toBe("observation-001");
40
+ expect(observation?.resourceType).toBe("Observation");
41
+ expect(observation?.code?.text).toBe("Glucose");
42
+ });
43
+ });
44
+ describe("FR-3.2: Method searches both resource.id and entry.fullUrl for matches", () => {
45
+ it("should find resource by resource.id", () => {
46
+ const patient = sdk.getResourceById("patient-123");
47
+ expect(patient?.id).toBe("patient-123");
48
+ });
49
+ it("should find resource by fullUrl", () => {
50
+ const patient = sdk.getResourceById("urn:uuid:patient-123");
51
+ expect(patient?.id).toBe("patient-123");
52
+ });
53
+ });
54
+ describe("FR-3.3: Method supports type parameter for proper TypeScript return typing", () => {
55
+ it("should return properly typed resource", () => {
56
+ const patient = sdk.getResourceById("patient-123");
57
+ // TypeScript should infer this as Patient | undefined
58
+ // These properties should be available without type errors
59
+ expect(patient?.name).toBeDefined();
60
+ expect(patient?.birthDate).toBeDefined();
61
+ expect(patient?.gender).toBe("female");
62
+ });
63
+ });
64
+ describe("FR-3.4: Method returns undefined if resource not found", () => {
65
+ it("should return undefined for nonexistent resource", () => {
66
+ const result = sdk.getResourceById("nonexistent-id");
67
+ expect(result).toBeUndefined();
68
+ });
69
+ it("should return undefined for empty string", () => {
70
+ const result = sdk.getResourceById("");
71
+ expect(result).toBeUndefined();
72
+ });
73
+ });
74
+ describe("FR-3.5: Lookup operates in O(1) time complexity", () => {
75
+ it("should perform lookup in O(1) time", () => {
76
+ const start = performance.now();
77
+ const patient = sdk.getResourceById("patient-123");
78
+ const end = performance.now();
79
+ expect(patient).toBeDefined();
80
+ // O(1) lookup should be very fast (under 1ms)
81
+ expect(end - start).toBeLessThan(fhir_bundles_1.CONSTANT_TIME_EXPECTED_THRESHOLD_MS);
82
+ });
83
+ it("should maintain O(1) performance for multiple lookups", () => {
84
+ const start = performance.now();
85
+ // Perform multiple lookups
86
+ sdk.getResourceById("patient-123");
87
+ sdk.getResourceById("practitioner-456");
88
+ sdk.getResourceById("observation-001");
89
+ sdk.getResourceById("nonexistent-id");
90
+ const end = performance.now();
91
+ // Multiple O(1) lookups should still be very fast
92
+ expect(end - start).toBeLessThan(fhir_bundles_1.CONSTANT_TIME_EXPECTED_THRESHOLD_MS);
93
+ });
94
+ });
95
+ });
96
+ describe("FullUrl Reference Handling", () => {
97
+ it("should handle fullUrl references correctly", async () => {
98
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.bundleWithFullUrlReferences);
99
+ // Should find by resource.id
100
+ const patient1 = sdk.getResourceById("patient-fullurl");
101
+ expect(patient1).toBeDefined();
102
+ expect(patient1?.id).toBe("patient-fullurl");
103
+ // Should find by fullUrl
104
+ const patient2 = sdk.getResourceById("urn:uuid:patient-fullurl");
105
+ expect(patient2).toBeDefined();
106
+ expect(patient2?.id).toBe("patient-fullurl");
107
+ // Should be the same object
108
+ expect(patient1).toBe(patient2);
109
+ });
110
+ });
111
+ describe("Edge Cases", () => {
112
+ it("should handle bundle with no entries", async () => {
113
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.emptyBundle);
114
+ const result = sdk.getResourceById("any-id");
115
+ expect(result).toBeUndefined();
116
+ });
117
+ it("should handle resources without IDs", async () => {
118
+ const bundleWithoutIds = {
119
+ resourceType: "Bundle",
120
+ type: "collection",
121
+ total: 1,
122
+ entry: [
123
+ {
124
+ fullUrl: "urn:uuid:no-id-resource",
125
+ resource: {
126
+ resourceType: "Patient",
127
+ // No id field
128
+ name: [{ family: "NoId", given: ["Patient"] }],
129
+ },
130
+ },
131
+ ],
132
+ };
133
+ const sdk = await index_1.FhirBundleSdk.create(bundleWithoutIds);
134
+ // Should find by fullUrl even without resource.id
135
+ const patient = sdk.getResourceById("urn:uuid:no-id-resource");
136
+ expect(patient).toBeDefined();
137
+ expect(patient?.name?.[0]?.family).toBe("NoId");
138
+ });
139
+ });
140
+ });
141
+ //# sourceMappingURL=phase1-verification.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase1-verification.test.js","sourceRoot":"","sources":["../../src/__tests__/phase1-verification.test.ts"],"names":[],"mappings":";;AAAA,oCAAyC;AACzC,0DAKiC;AAGjC,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;IACjF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,GAAG,GAAG,MAAM,qBAAa,CAAC,MAAM,CAAC,kCAAmB,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,GAAG,GAAG,MAAM,qBAAa,CAAC,MAAM,CAAC,0BAAW,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAC3D,IAAI,GAAkB,CAAC;QAEvB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,GAAG,GAAG,MAAM,qBAAa,CAAC,MAAM,CAAC,kCAAmB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wFAAwF,EAAE,GAAG,EAAE;YACtG,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBACzD,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAU,aAAa,CAAC,CAAC;gBAE5D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC1C,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAe,kBAAkB,CAAC,CAAC;gBAE3E,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAClD,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACxD,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzC,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,CAAc,iBAAiB,CAAC,CAAC;gBAExE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAChD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wEAAwE,EAAE,GAAG,EAAE;YACtF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAU,aAAa,CAAC,CAAC;gBAC5D,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzC,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAU,sBAAsB,CAAC,CAAC;gBACrE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,4EAA4E,EAAE,GAAG,EAAE;YAC1F,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAU,aAAa,CAAC,CAAC;gBAE5D,sDAAsD;gBACtD,2DAA2D;gBAC3D,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wDAAwD,EAAE,GAAG,EAAE;YACtE,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAU,gBAAgB,CAAC,CAAC;gBAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAClD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAU,EAAE,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC/D,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAU,aAAa,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAE9B,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9B,8CAA8C;gBAC9C,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,kDAAmC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;gBAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAEhC,2BAA2B;gBAC3B,GAAG,CAAC,eAAe,CAAU,aAAa,CAAC,CAAC;gBAC5C,GAAG,CAAC,eAAe,CAAe,kBAAkB,CAAC,CAAC;gBACtD,GAAG,CAAC,eAAe,CAAc,iBAAiB,CAAC,CAAC;gBACpD,GAAG,CAAC,eAAe,CAAU,gBAAgB,CAAC,CAAC;gBAE/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAE9B,kDAAkD;gBAClD,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,kDAAmC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,GAAG,GAAG,MAAM,qBAAa,CAAC,MAAM,CAAC,0CAA2B,CAAC,CAAC;YAEpE,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAU,iBAAiB,CAAC,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE7C,yBAAyB;YACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAU,0BAA0B,CAAC,CAAC;YAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE7C,4BAA4B;YAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,GAAG,GAAG,MAAM,qBAAa,CAAC,MAAM,CAAC,0BAAW,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAU,QAAQ,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,gBAAgB,GAAG;gBACvB,YAAY,EAAE,QAAiB;gBAC/B,IAAI,EAAE,YAAqB;gBAC3B,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,yBAAyB;wBAClC,QAAQ,EAAE;4BACR,YAAY,EAAE,SAAkB;4BAChC,cAAc;4BACd,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;yBAC/C;qBACF;iBACF;aACF,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,qBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAEzD,kDAAkD;YAClD,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAU,yBAAyB,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=phase2-verification.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase2-verification.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/phase2-verification.test.ts"],"names":[],"mappings":""}