@metriport/shared 0.32.2 → 0.32.4

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 (48) hide show
  1. package/dist/common/__tests__/string.test.js +63 -0
  2. package/dist/common/__tests__/string.test.js.map +1 -1
  3. package/dist/common/demographics.d.ts +1 -1
  4. package/dist/common/merge-settings.js.map +1 -1
  5. package/dist/common/string.d.ts +6 -0
  6. package/dist/common/string.d.ts.map +1 -1
  7. package/dist/common/string.js +22 -1
  8. package/dist/common/string.js.map +1 -1
  9. package/dist/domain/tcm-encounter.d.ts +2 -2
  10. package/dist/error/__tests__/shared.test.js +458 -0
  11. package/dist/error/__tests__/shared.test.js.map +1 -1
  12. package/dist/error/shared.d.ts +1 -0
  13. package/dist/error/shared.d.ts.map +1 -1
  14. package/dist/error/shared.js +44 -1
  15. package/dist/error/shared.js.map +1 -1
  16. package/dist/external/hl7v2/constants.d.ts +31 -9
  17. package/dist/external/hl7v2/constants.d.ts.map +1 -1
  18. package/dist/external/hl7v2/constants.js +33 -10
  19. package/dist/external/hl7v2/constants.js.map +1 -1
  20. package/dist/interface/external/ehr/salesforce/patient.d.ts +232 -88
  21. package/dist/interface/external/ehr/salesforce/patient.d.ts.map +1 -1
  22. package/dist/interface/external/ehr/salesforce/patient.js +43 -5
  23. package/dist/interface/external/ehr/salesforce/patient.js.map +1 -1
  24. package/dist/medical/fhir/specialty-codes.d.ts +79 -0
  25. package/dist/medical/fhir/specialty-codes.d.ts.map +1 -0
  26. package/dist/medical/fhir/specialty-codes.js +1722 -0
  27. package/dist/medical/fhir/specialty-codes.js.map +1 -0
  28. package/dist/util/__tests__/concurrency.test.d.ts +2 -0
  29. package/dist/util/__tests__/concurrency.test.d.ts.map +1 -0
  30. package/dist/util/__tests__/concurrency.test.js +162 -0
  31. package/dist/util/__tests__/concurrency.test.js.map +1 -0
  32. package/dist/util/__tests__/null-to-undefined.test.d.ts +2 -0
  33. package/dist/util/__tests__/null-to-undefined.test.d.ts.map +1 -0
  34. package/dist/util/__tests__/null-to-undefined.test.js +60 -0
  35. package/dist/util/__tests__/null-to-undefined.test.js.map +1 -0
  36. package/dist/util/concurrency.d.ts +72 -0
  37. package/dist/util/concurrency.d.ts.map +1 -0
  38. package/dist/util/concurrency.js +87 -0
  39. package/dist/util/concurrency.js.map +1 -0
  40. package/dist/util/index.d.ts +2 -0
  41. package/dist/util/index.d.ts.map +1 -1
  42. package/dist/util/index.js +2 -0
  43. package/dist/util/index.js.map +1 -1
  44. package/dist/util/null-to-undefined.d.ts +2 -0
  45. package/dist/util/null-to-undefined.d.ts.map +1 -0
  46. package/dist/util/null-to-undefined.js +31 -0
  47. package/dist/util/null-to-undefined.js.map +1 -0
  48. package/package.json +5 -2
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const faker_1 = require("@faker-js/faker");
4
+ const axios_1 = require("axios");
5
+ const bad_request_1 = require("../bad-request");
4
6
  const metriport_error_1 = require("../metriport-error");
7
+ const not_found_1 = require("../not-found");
5
8
  const shared_1 = require("../shared");
6
9
  beforeEach(() => {
7
10
  jest.restoreAllMocks();
@@ -77,5 +80,460 @@ describe("errorToString", () => {
77
80
  const res = (0, shared_1.errorToString)(error, { detailed: true });
78
81
  expect(res).toEqual(expectedMessage);
79
82
  });
83
+ it("does not expose PHI from AxiosError response.data or config.data", () => {
84
+ const axiosError = {
85
+ message: "Request failed with status code 400",
86
+ code: "ERR_BAD_REQUEST",
87
+ isAxiosError: true,
88
+ config: {
89
+ method: "post",
90
+ url: "http://example.com/api/convert",
91
+ data: "<ClinicalDocument>SUPER SECRET PHI</ClinicalDocument>",
92
+ headers: {
93
+ Authorization: "Bearer secret-token",
94
+ },
95
+ },
96
+ response: {
97
+ status: 400,
98
+ statusText: "Bad Request",
99
+ data: { patientName: "John Doe", ssn: "123-45-6789" },
100
+ },
101
+ };
102
+ const result = (0, shared_1.errorToString)(axiosError);
103
+ // Should only contain safe fields
104
+ expect(result).toContain("Request failed with status code 400");
105
+ expect(result).toContain("ERR_BAD_REQUEST");
106
+ expect(result).toContain("400");
107
+ // Should NOT contain PHI
108
+ expect(result).not.toContain("SUPER SECRET PHI");
109
+ expect(result).not.toContain("John Doe");
110
+ expect(result).not.toContain("123-45-6789");
111
+ expect(result).not.toContain("secret-token");
112
+ });
113
+ });
114
+ describe("sanitizeError", () => {
115
+ it("strips config.data and config.headers from AxiosError", () => {
116
+ const axiosError = {
117
+ message: "Request failed with status code 400",
118
+ name: "AxiosError",
119
+ code: "ERR_BAD_REQUEST",
120
+ isAxiosError: true,
121
+ stack: "ORIGINAL_STACK",
122
+ config: {
123
+ method: "post",
124
+ url: "http://example.com/api/convert",
125
+ data: "<ClinicalDocument>SUPER SECRET PHI</ClinicalDocument>",
126
+ headers: {
127
+ Authorization: "Bearer secret-token",
128
+ "Content-Type": "text/plain",
129
+ },
130
+ },
131
+ response: {
132
+ status: 400,
133
+ statusText: "Bad Request",
134
+ data: { error: "Invalid input" },
135
+ },
136
+ };
137
+ const result = (0, shared_1.sanitizeError)(axiosError);
138
+ expect(result).toBeInstanceOf(Error);
139
+ expect(result.message).toBe("Request failed with status code 400");
140
+ expect(result.name).toBe("AxiosError");
141
+ expect(result.code).toBe("ERR_BAD_REQUEST");
142
+ expect(result.status).toBe(400);
143
+ expect(result.statusText).toBe("Bad Request");
144
+ expect(result.method).toBe("POST");
145
+ expect(result.url).toBe("http://example.com/api/convert");
146
+ expect(result.config).toBeUndefined();
147
+ expect(result.data).toBeUndefined();
148
+ expect(result.headers).toBeUndefined();
149
+ expect(result.stack).toBe("ORIGINAL_STACK");
150
+ });
151
+ it("returns non-AxiosError unchanged", () => {
152
+ const regularError = new Error("something broke");
153
+ const result = (0, shared_1.sanitizeError)(regularError);
154
+ expect(result).toBe(regularError);
155
+ });
156
+ it("returns primitive values unchanged", () => {
157
+ expect((0, shared_1.sanitizeError)(null)).toBeNull();
158
+ expect((0, shared_1.sanitizeError)(undefined)).toBeUndefined();
159
+ expect((0, shared_1.sanitizeError)("string error")).toBe("string error");
160
+ });
161
+ it("works with real AxiosError from axios library", () => {
162
+ const headers = new axios_1.AxiosHeaders({
163
+ Authorization: "Bearer token123",
164
+ });
165
+ const config = {
166
+ method: "post",
167
+ url: "http://example.com/convert",
168
+ data: "<xml>PHI HERE</xml>",
169
+ headers: headers,
170
+ };
171
+ const axiosError = new axios_1.AxiosError("Request failed", "ERR_BAD_REQUEST", config, undefined, {
172
+ status: 400,
173
+ statusText: "Bad Request",
174
+ data: {},
175
+ headers: {},
176
+ config: config,
177
+ });
178
+ const result = (0, shared_1.sanitizeError)(axiosError);
179
+ expect(result).toBeInstanceOf(Error);
180
+ expect(result.message).toBe("Request failed");
181
+ expect(result.name).toBe("AxiosError");
182
+ expect(result.code).toBe("ERR_BAD_REQUEST");
183
+ expect(result.status).toBe(400);
184
+ expect(result.method).toBe("POST");
185
+ expect(result.url).toBe("http://example.com/convert");
186
+ // Verify PHI is stripped
187
+ expect(JSON.stringify(result)).not.toContain("PHI HERE");
188
+ expect(JSON.stringify(result)).not.toContain("Bearer token123");
189
+ });
190
+ it("sanitizes AxiosError when it's the cause of MetriportError", () => {
191
+ const axiosError = {
192
+ message: "Request failed with status code 400",
193
+ code: "ERR_BAD_REQUEST",
194
+ isAxiosError: true,
195
+ config: {
196
+ method: "post",
197
+ url: "http://example.com/api/convert",
198
+ data: "<ClinicalDocument>SUPER SECRET PHI</ClinicalDocument>",
199
+ headers: {
200
+ Authorization: "Bearer secret-token",
201
+ },
202
+ },
203
+ response: {
204
+ status: 400,
205
+ statusText: "Bad Request",
206
+ data: { patientName: "John Doe", ssn: "123-45-6789" },
207
+ },
208
+ };
209
+ const metriportError = new metriport_error_1.MetriportError("Conversion failed", axiosError);
210
+ const result = (0, shared_1.sanitizeError)(metriportError);
211
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
212
+ expect(result.message).toBe("Conversion failed");
213
+ expect(result.cause).toBeInstanceOf(Error);
214
+ expect(result.cause.message).toBe("Request failed with status code 400");
215
+ expect(result.cause.name).toBe("AxiosError");
216
+ expect(result.cause.code).toBe("ERR_BAD_REQUEST");
217
+ expect(result.cause.status).toBe(400);
218
+ expect(result.cause.statusText).toBe("Bad Request");
219
+ expect(result.cause.method).toBe("POST");
220
+ expect(result.cause.url).toBe("http://example.com/api/convert");
221
+ // Verify PHI is stripped from cause
222
+ expect(JSON.stringify(result.cause)).not.toContain("SUPER SECRET PHI");
223
+ expect(JSON.stringify(result.cause)).not.toContain("John Doe");
224
+ expect(JSON.stringify(result.cause)).not.toContain("123-45-6789");
225
+ expect(JSON.stringify(result.cause)).not.toContain("secret-token");
226
+ });
227
+ it("recursively sanitizes nested MetriportError chains with AxiosError", () => {
228
+ const axiosError = {
229
+ message: "Network error",
230
+ code: "ECONNREFUSED",
231
+ isAxiosError: true,
232
+ config: {
233
+ method: "get",
234
+ url: "http://example.com/data",
235
+ data: "<PHI>Secret Data</PHI>",
236
+ },
237
+ response: {
238
+ status: 500,
239
+ statusText: "Internal Server Error",
240
+ data: { error: "Server error" },
241
+ },
242
+ };
243
+ const innerError = new metriport_error_1.MetriportError("Inner error", axiosError);
244
+ const outerError = new metriport_error_1.MetriportError("Outer error", innerError);
245
+ const result = (0, shared_1.sanitizeError)(outerError);
246
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
247
+ expect(result.message).toBe("Outer error");
248
+ expect(result.cause).toBeInstanceOf(metriport_error_1.MetriportError);
249
+ expect(result.cause.message).toBe("Inner error");
250
+ expect(result.cause.cause).toBeInstanceOf(Error);
251
+ expect(result.cause.cause.message).toBe("Network error");
252
+ expect(result.cause.cause.name).toBe("AxiosError");
253
+ expect(result.cause.cause.code).toBe("ECONNREFUSED");
254
+ expect(result.cause.cause.status).toBe(500);
255
+ expect(result.cause.cause.statusText).toBe("Internal Server Error");
256
+ expect(result.cause.cause.method).toBe("GET");
257
+ expect(result.cause.cause.url).toBe("http://example.com/data");
258
+ // Verify PHI is stripped
259
+ expect(JSON.stringify(result)).not.toContain("Secret Data");
260
+ });
261
+ it("leaves MetriportError unchanged if cause is not AxiosError (same instance)", () => {
262
+ const regularError = new Error("Regular error");
263
+ const metriportError = new metriport_error_1.MetriportError("Wrapper error", regularError);
264
+ const result = (0, shared_1.sanitizeError)(metriportError);
265
+ expect(result).toBe(metriportError);
266
+ expect(result.cause).toBe(regularError);
267
+ });
268
+ it("leaves MetriportError unchanged if it has no cause", () => {
269
+ const metriportError = new metriport_error_1.MetriportError("Simple error");
270
+ const result = (0, shared_1.sanitizeError)(metriportError);
271
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
272
+ expect(result.message).toBe("Simple error");
273
+ expect(result.cause).toBeUndefined();
274
+ });
275
+ it("returns the same MetriportError instance when cause is unchanged (preserves stack)", () => {
276
+ const regularError = new Error("Regular error");
277
+ const metriportError = new metriport_error_1.MetriportError("Wrapper error", regularError);
278
+ metriportError.stack = "ORIGINAL_STACK";
279
+ const result = (0, shared_1.sanitizeError)(metriportError);
280
+ expect(result).toBe(metriportError);
281
+ expect(result.cause).toBe(regularError);
282
+ expect(result.stack).toBe("ORIGINAL_STACK");
283
+ });
284
+ it("preserves BadRequestError subclass type when sanitizing AxiosError cause", () => {
285
+ const axiosError = {
286
+ message: "Request failed with status code 400",
287
+ code: "ERR_BAD_REQUEST",
288
+ isAxiosError: true,
289
+ config: {
290
+ method: "post",
291
+ url: "http://example.com/api/resource",
292
+ data: "<PHI>Secret Patient Data</PHI>",
293
+ headers: { Authorization: "Bearer secret-token" },
294
+ },
295
+ response: {
296
+ status: 400,
297
+ statusText: "Bad Request",
298
+ data: { patientName: "John Doe" },
299
+ },
300
+ };
301
+ const error = new bad_request_1.BadRequestError("Invalid input", axiosError, { field: "name" });
302
+ const result = (0, shared_1.sanitizeError)(error);
303
+ expect(result).toBeInstanceOf(bad_request_1.BadRequestError);
304
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
305
+ expect(result.status).toBe(400);
306
+ expect(result.name).toBe("BadRequestError");
307
+ expect(result.message).toBe("Invalid input");
308
+ expect(result.additionalInfo).toEqual({ field: "name" });
309
+ expect(JSON.stringify(result.cause)).not.toContain("Secret Patient Data");
310
+ expect(JSON.stringify(result.cause)).not.toContain("secret-token");
311
+ });
312
+ it("preserves NotFoundError subclass type when sanitizing AxiosError cause", () => {
313
+ const axiosError = {
314
+ message: "Request failed with status code 404",
315
+ code: "ERR_BAD_REQUEST",
316
+ isAxiosError: true,
317
+ config: {
318
+ method: "get",
319
+ url: "http://example.com/api/patient/123",
320
+ data: "<PHI>Secret Patient Data</PHI>",
321
+ },
322
+ response: {
323
+ status: 404,
324
+ statusText: "Not Found",
325
+ data: { detail: "Patient not found" },
326
+ },
327
+ };
328
+ const error = new not_found_1.NotFoundError("Resource not found", axiosError);
329
+ const result = (0, shared_1.sanitizeError)(error);
330
+ expect(result).toBeInstanceOf(not_found_1.NotFoundError);
331
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
332
+ expect(result.status).toBe(404);
333
+ expect(result.name).toBe("NotFoundError");
334
+ expect(result.message).toBe("Resource not found");
335
+ expect(JSON.stringify(result.cause)).not.toContain("Secret Patient Data");
336
+ });
337
+ it("preserves subclass type in nested chain with AxiosError at the bottom", () => {
338
+ const axiosError = {
339
+ message: "Network error",
340
+ code: "ECONNREFUSED",
341
+ isAxiosError: true,
342
+ config: {
343
+ method: "get",
344
+ url: "http://example.com/data",
345
+ data: "<PHI>Secret Data</PHI>",
346
+ },
347
+ response: {
348
+ status: 500,
349
+ statusText: "Internal Server Error",
350
+ data: { error: "Server error" },
351
+ },
352
+ };
353
+ const innerError = new bad_request_1.BadRequestError("Bad input", axiosError, { key: "val" });
354
+ const outerError = new not_found_1.NotFoundError("Wrapper not found", innerError);
355
+ const result = (0, shared_1.sanitizeError)(outerError);
356
+ expect(result).toBeInstanceOf(not_found_1.NotFoundError);
357
+ expect(result.status).toBe(404);
358
+ expect(result.name).toBe("NotFoundError");
359
+ expect(result.cause).toBeInstanceOf(bad_request_1.BadRequestError);
360
+ expect(result.cause.status).toBe(400);
361
+ expect(result.cause.name).toBe("BadRequestError");
362
+ expect(JSON.stringify(result)).not.toContain("Secret Data");
363
+ });
364
+ it("preserves subclass type when cause is a non-AxiosError", () => {
365
+ const regularError = new Error("Something broke");
366
+ const error = new bad_request_1.BadRequestError("Bad request", regularError);
367
+ const result = (0, shared_1.sanitizeError)(error);
368
+ expect(result).toBeInstanceOf(bad_request_1.BadRequestError);
369
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
370
+ expect(result.status).toBe(400);
371
+ expect(result.name).toBe("BadRequestError");
372
+ expect(result.cause).toBe(regularError);
373
+ });
374
+ it("preserves all properties including future ones when sanitizing MetriportError with AxiosError cause", () => {
375
+ const axiosError = {
376
+ message: "Request failed with status code 400",
377
+ code: "ERR_BAD_REQUEST",
378
+ isAxiosError: true,
379
+ config: {
380
+ method: "post",
381
+ url: "http://example.com/api/resource",
382
+ data: "<PHI>Secret Patient Data</PHI>",
383
+ headers: { Authorization: "Bearer secret-token" },
384
+ },
385
+ response: {
386
+ status: 400,
387
+ statusText: "Bad Request",
388
+ data: { patientName: "John Doe", ssn: "123-45-6789" },
389
+ },
390
+ };
391
+ const error = new bad_request_1.BadRequestError("Invalid input", axiosError, { field: "name" });
392
+ // Simulate future properties that might be added to MetriportError or its subclasses
393
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
394
+ error.customProperty = "custom-value";
395
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
396
+ error.metadata = { requestId: "req-123", timestamp: 1234567890 };
397
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
398
+ error.retryCount = 3;
399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
400
+ error.context = { userId: "user-456", operation: "validate" };
401
+ const result = (0, shared_1.sanitizeError)(error);
402
+ // Verify subclass type is preserved
403
+ expect(result).toBeInstanceOf(bad_request_1.BadRequestError);
404
+ expect(result).toBeInstanceOf(metriport_error_1.MetriportError);
405
+ expect(result.status).toBe(400);
406
+ expect(result.name).toBe("BadRequestError");
407
+ expect(result.message).toBe("Invalid input");
408
+ expect(result.additionalInfo).toEqual({ field: "name" });
409
+ // Verify all future properties are preserved (proves maintenance-free approach)
410
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
411
+ expect(result.customProperty).toBe("custom-value");
412
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
413
+ expect(result.metadata).toEqual({ requestId: "req-123", timestamp: 1234567890 });
414
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
415
+ expect(result.retryCount).toBe(3);
416
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
417
+ expect(result.context).toEqual({ userId: "user-456", operation: "validate" });
418
+ expect(JSON.stringify(result.cause)).not.toContain("Secret Patient Data");
419
+ expect(JSON.stringify(result.cause)).not.toContain("secret-token");
420
+ expect(JSON.stringify(result.cause)).not.toContain("John Doe");
421
+ expect(JSON.stringify(result.cause)).not.toContain("123-45-6789");
422
+ expect(JSON.stringify(result)).not.toContain("Secret Patient Data");
423
+ expect(JSON.stringify(result)).not.toContain("secret-token");
424
+ expect(JSON.stringify(result)).not.toContain("John Doe");
425
+ expect(JSON.stringify(result)).not.toContain("123-45-6789");
426
+ });
427
+ it("rebuilds MetriportError when cause is sanitized (and preserves wrapper stack)", () => {
428
+ const axiosError = {
429
+ message: "Request failed",
430
+ name: "AxiosError",
431
+ code: "ERR_BAD_REQUEST",
432
+ isAxiosError: true,
433
+ config: {
434
+ method: "post",
435
+ url: "http://example.com/api",
436
+ data: "<PHI>Secret</PHI>",
437
+ headers: { Authorization: "Bearer token" },
438
+ },
439
+ response: { status: 400, statusText: "Bad Request", data: { patient: "John Doe" } },
440
+ };
441
+ const metriportError = new metriport_error_1.MetriportError("Wrapper error", axiosError);
442
+ metriportError.stack = "ORIGINAL_WRAPPER_STACK";
443
+ const result = (0, shared_1.sanitizeError)(metriportError);
444
+ // Should rebuild because cause was sanitized (new Error object)
445
+ expect(result).not.toBe(metriportError);
446
+ // But wrapper stack should be preserved (your code copies it)
447
+ expect(result.stack).toBe("ORIGINAL_WRAPPER_STACK");
448
+ // And PHI should not appear on the cause
449
+ expect(JSON.stringify(result.cause)).not.toContain("Secret");
450
+ expect(JSON.stringify(result.cause)).not.toContain("Bearer token");
451
+ expect(JSON.stringify(result.cause)).not.toContain("John Doe");
452
+ });
453
+ it("preserves all properties in nested MetriportError chain with future properties", () => {
454
+ const axiosError = {
455
+ message: "Network error",
456
+ code: "ECONNREFUSED",
457
+ isAxiosError: true,
458
+ config: {
459
+ method: "get",
460
+ url: "http://example.com/data",
461
+ data: "<PHI>Secret Data</PHI>",
462
+ headers: { Authorization: "Bearer token-xyz" },
463
+ },
464
+ response: {
465
+ status: 500,
466
+ statusText: "Internal Server Error",
467
+ data: { error: "Server error", patientId: "patient-789" },
468
+ },
469
+ };
470
+ const innerError = new bad_request_1.BadRequestError("Bad input", axiosError, { key: "val" });
471
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
472
+ innerError.innerCustomProp = "inner-value";
473
+ const outerError = new not_found_1.NotFoundError("Wrapper not found", innerError);
474
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
475
+ outerError.outerCustomProp = "outer-value";
476
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
477
+ outerError.traceId = "trace-abc";
478
+ const result = (0, shared_1.sanitizeError)(outerError);
479
+ // Verify outer error type and properties
480
+ expect(result).toBeInstanceOf(not_found_1.NotFoundError);
481
+ expect(result.status).toBe(404);
482
+ expect(result.name).toBe("NotFoundError");
483
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
484
+ expect(result.outerCustomProp).toBe("outer-value");
485
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
486
+ expect(result.traceId).toBe("trace-abc");
487
+ // Verify inner error type and properties
488
+ expect(result.cause).toBeInstanceOf(bad_request_1.BadRequestError);
489
+ expect(result.cause.status).toBe(400);
490
+ expect(result.cause.name).toBe("BadRequestError");
491
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
492
+ expect(result.cause.innerCustomProp).toBe("inner-value");
493
+ // Verify PHI is stripped from entire chain
494
+ expect(JSON.stringify(result)).not.toContain("Secret Data");
495
+ expect(JSON.stringify(result)).not.toContain("token-xyz");
496
+ expect(JSON.stringify(result)).not.toContain("patient-789");
497
+ });
498
+ it("strips PHI from deeply nested error chains", () => {
499
+ const axiosError = {
500
+ message: "Request failed",
501
+ code: "ERR_BAD_REQUEST",
502
+ isAxiosError: true,
503
+ config: {
504
+ method: "post",
505
+ url: "http://example.com/api",
506
+ data: "<ClinicalDocument><Patient><Name>Jane Doe</Name><SSN>987-65-4321</SSN></Patient></ClinicalDocument>",
507
+ headers: { Authorization: "Bearer sensitive-token-123" },
508
+ },
509
+ response: {
510
+ status: 400,
511
+ statusText: "Bad Request",
512
+ data: { error: "Validation failed", patientData: { name: "Jane Doe", dob: "1990-01-01" } },
513
+ },
514
+ };
515
+ const level3 = new metriport_error_1.MetriportError("Level 3 error", axiosError);
516
+ const level2 = new bad_request_1.BadRequestError("Level 2 error", level3, { level: 2 });
517
+ const level1 = new not_found_1.NotFoundError("Level 1 error", level2);
518
+ const result = (0, shared_1.sanitizeError)(level1);
519
+ // Verify all error types are preserved
520
+ expect(result).toBeInstanceOf(not_found_1.NotFoundError);
521
+ expect(result.cause).toBeInstanceOf(bad_request_1.BadRequestError);
522
+ expect(result.cause.cause).toBeInstanceOf(metriport_error_1.MetriportError);
523
+ expect(result.cause.cause.cause).toBeInstanceOf(Error);
524
+ // Verify PHI is completely stripped from entire chain
525
+ const resultString = JSON.stringify(result);
526
+ expect(resultString).not.toContain("Jane Doe");
527
+ expect(resultString).not.toContain("987-65-4321");
528
+ expect(resultString).not.toContain("sensitive-token-123");
529
+ expect(resultString).not.toContain("1990-01-01");
530
+ expect(resultString).not.toContain("ClinicalDocument");
531
+ expect(resultString).not.toContain("Patient");
532
+ // Verify safe information is preserved
533
+ expect(result.message).toBe("Level 1 error");
534
+ expect(result.cause.message).toBe("Level 2 error");
535
+ expect(result.cause.cause.message).toBe("Level 3 error");
536
+ expect(result.cause.additionalInfo).toEqual({ level: 2 });
537
+ });
80
538
  });
81
539
  //# sourceMappingURL=shared.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.test.js","sourceRoot":"","sources":["../../../src/error/__tests__/shared.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.test.js","sourceRoot":"","sources":["../../../src/error/__tests__/shared.test.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export declare function errorToString(err: unknown, options?: ErrorToStringOptio
6
6
  export declare function genericErrorToString(err: any): string;
7
7
  export declare function detailedErrorToString(err: any, includeStackTrace?: boolean): string;
8
8
  export declare function getErrorMessage(error: unknown): string;
9
+ export declare function sanitizeError(error: any, depth?: number): any;
9
10
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/error/shared.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtF,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,oBAAmE,GAC3E,MAAM,CAKR;AAGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQrD;AAGD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAUnF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,UAE7C"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/error/shared.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtF,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,oBAAmE,GAC3E,MAAM,CAKR;AAGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQrD;AAGD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAUnF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,UAE7C;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,SAAI,GAAG,GAAG,CAgDxD"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getErrorMessage = exports.detailedErrorToString = exports.genericErrorToString = exports.errorToString = void 0;
3
+ exports.sanitizeError = exports.getErrorMessage = exports.detailedErrorToString = exports.genericErrorToString = exports.errorToString = void 0;
4
+ const metriport_error_1 = require("./metriport-error");
5
+ const MAX_SANITIZE_DEPTH = 10;
4
6
  function errorToString(err, options = { detailed: true, includeStackTrace: false }) {
5
7
  if (options.detailed) {
6
8
  return detailedErrorToString(err, options.includeStackTrace);
@@ -34,4 +36,45 @@ function getErrorMessage(error) {
34
36
  return errorToString(error);
35
37
  }
36
38
  exports.getErrorMessage = getErrorMessage;
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ function sanitizeError(error, depth = 0) {
41
+ if (!error || typeof error !== "object")
42
+ return error;
43
+ if (depth >= MAX_SANITIZE_DEPTH) {
44
+ return error;
45
+ }
46
+ if (error.isAxiosError) {
47
+ const sanitized = new Error(error.message);
48
+ sanitized.name = error.name ?? "AxiosError";
49
+ Object.assign(sanitized, {
50
+ code: error.code,
51
+ status: error.response?.status,
52
+ statusText: error.response?.statusText,
53
+ method: error.config?.method?.toUpperCase(),
54
+ url: error.config?.url,
55
+ });
56
+ if (error.stack) {
57
+ sanitized.stack = error.stack;
58
+ }
59
+ return sanitized;
60
+ }
61
+ if (error instanceof metriport_error_1.MetriportError && error.cause) {
62
+ const sanitizedCause = sanitizeError(error.cause, depth + 1);
63
+ if (sanitizedCause === error.cause) {
64
+ return error;
65
+ }
66
+ const ErrorClass = error.constructor;
67
+ const sanitized = new ErrorClass(error.message, sanitizedCause, // Recursive sanitation with depth tracking
68
+ error.additionalInfo);
69
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
+ const { cause, ...otherProps } = error;
71
+ Object.assign(sanitized, otherProps);
72
+ if (error.stack) {
73
+ sanitized.stack = error.stack;
74
+ }
75
+ return sanitized;
76
+ }
77
+ return error;
78
+ }
79
+ exports.sanitizeError = sanitizeError;
37
80
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/error/shared.ts"],"names":[],"mappings":";;;AAEA,SAAgB,aAAa,CAC3B,GAAY,EACZ,UAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAE5E,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,OAAO,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;KAC9D;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AARD,sCAQC;AAED,8DAA8D;AAC9D,SAAgB,oBAAoB,CAAC,GAAQ;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,MAAM,MAAM,GAAG,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,MAAM,GACV,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO,GAAG,GAAG,MAAM,CAAC;AACtB,CAAC;AARD,oDAQC;AAED,8DAA8D;AAC9D,SAAgB,qBAAqB,CAAC,GAAQ,EAAE,iBAA2B;IACzE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,OAAO,CACL,GAAG,gBAAgB,EAAE;QACrB,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjD,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACtD,GAAG,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5D,CAAC;AACJ,CAAC;AAVD,sDAUC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAFD,0CAEC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/error/shared.ts"],"names":[],"mappings":"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"}