@metriport/commonwell-sdk 0.30.0-alpha.1

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -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 +35 -0
  6. package/dist/__tests__/env-setup.js.map +1 -0
  7. package/dist/client/common.d.ts +39 -0
  8. package/dist/client/common.d.ts.map +1 -0
  9. package/dist/client/common.js +15 -0
  10. package/dist/client/common.js.map +1 -0
  11. package/dist/client/commonwell-api.d.ts +103 -0
  12. package/dist/client/commonwell-api.d.ts.map +1 -0
  13. package/dist/client/commonwell-api.js +3 -0
  14. package/dist/client/commonwell-api.js.map +1 -0
  15. package/dist/client/commonwell-base.d.ts +47 -0
  16. package/dist/client/commonwell-base.d.ts.map +1 -0
  17. package/dist/client/commonwell-base.js +105 -0
  18. package/dist/client/commonwell-base.js.map +1 -0
  19. package/dist/client/commonwell-member-api.d.ts +29 -0
  20. package/dist/client/commonwell-member-api.d.ts.map +1 -0
  21. package/dist/client/commonwell-member-api.js +3 -0
  22. package/dist/client/commonwell-member-api.js.map +1 -0
  23. package/dist/client/commonwell-member.d.ts +168 -0
  24. package/dist/client/commonwell-member.d.ts.map +1 -0
  25. package/dist/client/commonwell-member.js +349 -0
  26. package/dist/client/commonwell-member.js.map +1 -0
  27. package/dist/client/commonwell.d.ts +245 -0
  28. package/dist/client/commonwell.d.ts.map +1 -0
  29. package/dist/client/commonwell.js +502 -0
  30. package/dist/client/commonwell.js.map +1 -0
  31. package/dist/common/__tests__/util.test.d.ts +2 -0
  32. package/dist/common/__tests__/util.test.d.ts.map +1 -0
  33. package/dist/common/__tests__/util.test.js +51 -0
  34. package/dist/common/__tests__/util.test.js.map +1 -0
  35. package/dist/common/__tests__/validate-npi.test.d.ts +2 -0
  36. package/dist/common/__tests__/validate-npi.test.d.ts.map +1 -0
  37. package/dist/common/__tests__/validate-npi.test.js +44 -0
  38. package/dist/common/__tests__/validate-npi.test.js.map +1 -0
  39. package/dist/common/certificate.d.ts +3 -0
  40. package/dist/common/certificate.d.ts.map +1 -0
  41. package/dist/common/certificate.js +11 -0
  42. package/dist/common/certificate.js.map +1 -0
  43. package/dist/common/commonwell-error.d.ts +23 -0
  44. package/dist/common/commonwell-error.d.ts.map +1 -0
  45. package/dist/common/commonwell-error.js +33 -0
  46. package/dist/common/commonwell-error.js.map +1 -0
  47. package/dist/common/fileDownload.d.ts +37 -0
  48. package/dist/common/fileDownload.d.ts.map +1 -0
  49. package/dist/common/fileDownload.js +53 -0
  50. package/dist/common/fileDownload.js.map +1 -0
  51. package/dist/common/make-jwt.d.ts +60 -0
  52. package/dist/common/make-jwt.d.ts.map +1 -0
  53. package/dist/common/make-jwt.js +124 -0
  54. package/dist/common/make-jwt.js.map +1 -0
  55. package/dist/common/util.d.ts +78 -0
  56. package/dist/common/util.d.ts.map +1 -0
  57. package/dist/common/util.js +104 -0
  58. package/dist/common/util.js.map +1 -0
  59. package/dist/common/validate-npi.d.ts +2 -0
  60. package/dist/common/validate-npi.d.ts.map +1 -0
  61. package/dist/common/validate-npi.js +6 -0
  62. package/dist/common/validate-npi.js.map +1 -0
  63. package/dist/common/zod.d.ts +13 -0
  64. package/dist/common/zod.d.ts.map +1 -0
  65. package/dist/common/zod.js +38 -0
  66. package/dist/common/zod.js.map +1 -0
  67. package/dist/index.d.ts +20 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +45 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/models/__tests__/address.test.d.ts +2 -0
  72. package/dist/models/__tests__/address.test.d.ts.map +1 -0
  73. package/dist/models/__tests__/address.test.js +348 -0
  74. package/dist/models/__tests__/address.test.js.map +1 -0
  75. package/dist/models/__tests__/demographics.test.d.ts +2 -0
  76. package/dist/models/__tests__/demographics.test.d.ts.map +1 -0
  77. package/dist/models/__tests__/demographics.test.js +96 -0
  78. package/dist/models/__tests__/demographics.test.js.map +1 -0
  79. package/dist/models/address.d.ts +177 -0
  80. package/dist/models/address.d.ts.map +1 -0
  81. package/dist/models/address.js +94 -0
  82. package/dist/models/address.js.map +1 -0
  83. package/dist/models/certificates.d.ts +77 -0
  84. package/dist/models/certificates.d.ts.map +1 -0
  85. package/dist/models/certificates.js +27 -0
  86. package/dist/models/certificates.js.map +1 -0
  87. package/dist/models/contact.d.ts +47 -0
  88. package/dist/models/contact.d.ts.map +1 -0
  89. package/dist/models/contact.js +30 -0
  90. package/dist/models/contact.js.map +1 -0
  91. package/dist/models/date.d.ts +4 -0
  92. package/dist/models/date.d.ts.map +1 -0
  93. package/dist/models/date.js +10 -0
  94. package/dist/models/date.js.map +1 -0
  95. package/dist/models/demographics.d.ts +290 -0
  96. package/dist/models/demographics.d.ts.map +1 -0
  97. package/dist/models/demographics.js +57 -0
  98. package/dist/models/demographics.js.map +1 -0
  99. package/dist/models/document.d.ts +7823 -0
  100. package/dist/models/document.d.ts.map +1 -0
  101. package/dist/models/document.js +106 -0
  102. package/dist/models/document.js.map +1 -0
  103. package/dist/models/facility.d.ts +82 -0
  104. package/dist/models/facility.d.ts.map +1 -0
  105. package/dist/models/facility.js +11 -0
  106. package/dist/models/facility.js.map +1 -0
  107. package/dist/models/human-name.d.ts +56 -0
  108. package/dist/models/human-name.d.ts.map +1 -0
  109. package/dist/models/human-name.js +39 -0
  110. package/dist/models/human-name.js.map +1 -0
  111. package/dist/models/identifier.d.ts +110 -0
  112. package/dist/models/identifier.d.ts.map +1 -0
  113. package/dist/models/identifier.js +37 -0
  114. package/dist/models/identifier.js.map +1 -0
  115. package/dist/models/organization.d.ts +2390 -0
  116. package/dist/models/organization.d.ts.map +1 -0
  117. package/dist/models/organization.js +139 -0
  118. package/dist/models/organization.js.map +1 -0
  119. package/dist/models/patient-organization.d.ts +36 -0
  120. package/dist/models/patient-organization.d.ts.map +1 -0
  121. package/dist/models/patient-organization.js +10 -0
  122. package/dist/models/patient-organization.js.map +1 -0
  123. package/dist/models/patient.d.ts +5350 -0
  124. package/dist/models/patient.d.ts.map +1 -0
  125. package/dist/models/patient.js +94 -0
  126. package/dist/models/patient.js.map +1 -0
  127. package/dist/models/period.d.ts +13 -0
  128. package/dist/models/period.d.ts.map +1 -0
  129. package/dist/models/period.js +13 -0
  130. package/dist/models/period.js.map +1 -0
  131. package/dist/models/reference.d.ts +109 -0
  132. package/dist/models/reference.d.ts.map +1 -0
  133. package/dist/models/reference.js +12 -0
  134. package/dist/models/reference.js.map +1 -0
  135. package/package.json +82 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/common/zod.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,sGAAsG;AAEzF,QAAA,4BAA4B,GAAG,OAAC,CAAC,UAAU,CACtD,sBAAsB,EACtB,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CACrB,CAAC;AAEF;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,GAAY;IACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChG,OAAO,GAAG,IAAI,SAAS,CAAC;AAC1B,CAAC;AAHD,wDAGC;AAED,SAAgB,wBAAwB,CAAC,GAAY;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC7F,OAAO,GAAG,IAAI,SAAS,CAAC;AAC1B,CAAC;AAHD,4DAGC;AAED,SAAgB,UAAU,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,GAAG,CAAC;AACb,CAAC;AAHD,gCAGC;AAED,SAAgB,uBAAuB,CAAC,GAAY;IAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;KAC3C;IACD,OAAO,GAAG,IAAI,SAAS,CAAC;AAC1B,CAAC;AALD,0DAKC;AAEY,QAAA,gBAAgB,GAAG,OAAC,CAAC,UAAU,CAAC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxD,QAAA,6BAA6B,GAAG,OAAC,CAAC,UAAU,CACvD,uBAAuB,EACvB,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CACrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export { APIMode, CommonWellOptions } from "./client/common";
2
+ export { CommonWell } from "./client/commonwell";
3
+ export { CommonWellAPI, OrganizationRequestMetadata } from "./client/commonwell-api";
4
+ export { CommonWellMember } from "./client/commonwell-member";
5
+ export { CommonWellMemberAPI, MemberRequestMetadata } from "./client/commonwell-member-api";
6
+ export { CommonwellError } from "./common/commonwell-error";
7
+ export { makeJwt } from "./common/make-jwt";
8
+ export { buildBaseQueryMeta, decodeCwPatientIdV2, encodeCwPatientId, encodePatientIdForDocumentExchange, getCwPatientIdFromLinks, } from "./common/util";
9
+ export { validateNPI } from "./common/validate-npi";
10
+ export { GetDirectoryParams } from "./client/commonwell-member-api";
11
+ export * from "./models/address";
12
+ export * from "./models/certificates";
13
+ export * from "./models/contact";
14
+ export * from "./models/demographics";
15
+ export * from "./models/document";
16
+ export * from "./models/human-name";
17
+ export * from "./models/identifier";
18
+ export * from "./models/organization";
19
+ export * from "./models/patient";
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kCAAkC,EAClC,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.validateNPI = exports.getCwPatientIdFromLinks = exports.encodePatientIdForDocumentExchange = exports.encodeCwPatientId = exports.decodeCwPatientIdV2 = exports.buildBaseQueryMeta = exports.makeJwt = exports.CommonwellError = exports.CommonWellMember = exports.CommonWell = exports.APIMode = void 0;
18
+ var common_1 = require("./client/common");
19
+ Object.defineProperty(exports, "APIMode", { enumerable: true, get: function () { return common_1.APIMode; } });
20
+ var commonwell_1 = require("./client/commonwell");
21
+ Object.defineProperty(exports, "CommonWell", { enumerable: true, get: function () { return commonwell_1.CommonWell; } });
22
+ var commonwell_member_1 = require("./client/commonwell-member");
23
+ Object.defineProperty(exports, "CommonWellMember", { enumerable: true, get: function () { return commonwell_member_1.CommonWellMember; } });
24
+ var commonwell_error_1 = require("./common/commonwell-error");
25
+ Object.defineProperty(exports, "CommonwellError", { enumerable: true, get: function () { return commonwell_error_1.CommonwellError; } });
26
+ var make_jwt_1 = require("./common/make-jwt");
27
+ Object.defineProperty(exports, "makeJwt", { enumerable: true, get: function () { return make_jwt_1.makeJwt; } });
28
+ var util_1 = require("./common/util");
29
+ Object.defineProperty(exports, "buildBaseQueryMeta", { enumerable: true, get: function () { return util_1.buildBaseQueryMeta; } });
30
+ Object.defineProperty(exports, "decodeCwPatientIdV2", { enumerable: true, get: function () { return util_1.decodeCwPatientIdV2; } });
31
+ Object.defineProperty(exports, "encodeCwPatientId", { enumerable: true, get: function () { return util_1.encodeCwPatientId; } });
32
+ Object.defineProperty(exports, "encodePatientIdForDocumentExchange", { enumerable: true, get: function () { return util_1.encodePatientIdForDocumentExchange; } });
33
+ Object.defineProperty(exports, "getCwPatientIdFromLinks", { enumerable: true, get: function () { return util_1.getCwPatientIdFromLinks; } });
34
+ var validate_npi_1 = require("./common/validate-npi");
35
+ Object.defineProperty(exports, "validateNPI", { enumerable: true, get: function () { return validate_npi_1.validateNPI; } });
36
+ __exportStar(require("./models/address"), exports);
37
+ __exportStar(require("./models/certificates"), exports);
38
+ __exportStar(require("./models/contact"), exports);
39
+ __exportStar(require("./models/demographics"), exports);
40
+ __exportStar(require("./models/document"), exports);
41
+ __exportStar(require("./models/human-name"), exports);
42
+ __exportStar(require("./models/identifier"), exports);
43
+ __exportStar(require("./models/organization"), exports);
44
+ __exportStar(require("./models/patient"), exports);
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAA6D;AAApD,iGAAA,OAAO,OAAA;AAChB,kDAAiD;AAAxC,wGAAA,UAAU,OAAA;AAEnB,gEAA8D;AAArD,qHAAA,gBAAgB,OAAA;AAEzB,8DAA4D;AAAnD,mHAAA,eAAe,OAAA;AACxB,8CAA4C;AAAnC,mGAAA,OAAO,OAAA;AAChB,sCAMuB;AALrB,0GAAA,kBAAkB,OAAA;AAClB,2GAAA,mBAAmB,OAAA;AACnB,yGAAA,iBAAiB,OAAA;AACjB,0HAAA,kCAAkC,OAAA;AAClC,+GAAA,uBAAuB,OAAA;AAEzB,sDAAoD;AAA3C,2GAAA,WAAW,OAAA;AAEpB,mDAAiC;AACjC,wDAAsC;AACtC,mDAAiC;AACjC,wDAAsC;AACtC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,wDAAsC;AACtC,mDAAiC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=address.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.test.d.ts","sourceRoot":"","sources":["../../../src/models/__tests__/address.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable @typescript-eslint/no-empty-function */
4
+ const address_1 = require("../address");
5
+ describe("address validation", () => {
6
+ describe("addressArraySchemaSafe - filtering invalid addresses", () => {
7
+ it("keeps valid addresses and removes invalid ones", async () => {
8
+ const addresses = [
9
+ {
10
+ line: ["123 Main St"],
11
+ city: "New York",
12
+ state: "NY",
13
+ },
14
+ {
15
+ line: ["456 Oak Ave"],
16
+ city: "Los Angeles",
17
+ state: "invalid state", // Invalid - should be filtered out
18
+ },
19
+ {
20
+ line: ["789 Pine St"],
21
+ city: "Chicago",
22
+ state: "IL",
23
+ },
24
+ {
25
+ line: ["101 Elm St"],
26
+ city: "Boston",
27
+ state: "MA",
28
+ },
29
+ ];
30
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
31
+ expect(result).toHaveLength(3);
32
+ expect(result[0]?.city).toBe("New York");
33
+ expect(result[1]?.city).toBe("Chicago");
34
+ expect(result[2]?.city).toBe("Boston");
35
+ });
36
+ it("filters out addresses with invalid state codes", async () => {
37
+ const addresses = [
38
+ {
39
+ line: ["123 Main St"],
40
+ city: "New York",
41
+ state: "NY", // Valid
42
+ },
43
+ {
44
+ line: ["456 Oak Ave"],
45
+ city: "Los Angeles",
46
+ state: "XYZ", // Invalid state
47
+ },
48
+ {
49
+ line: ["789 Pine St"],
50
+ city: "Chicago",
51
+ state: "invalid", // Invalid state
52
+ },
53
+ {
54
+ line: ["101 Elm St"],
55
+ city: "Boston",
56
+ state: "MA", // Valid
57
+ },
58
+ ];
59
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
60
+ expect(result).toHaveLength(2);
61
+ expect(result[0]?.city).toBe("New York");
62
+ expect(result[1]?.city).toBe("Boston");
63
+ });
64
+ it("filters out addresses with missing or invalid city", async () => {
65
+ const addresses = [
66
+ {
67
+ line: ["123 Main St"],
68
+ city: "New York",
69
+ state: "NY",
70
+ },
71
+ {
72
+ line: ["456 Oak Ave"],
73
+ city: "",
74
+ state: "CA",
75
+ },
76
+ {
77
+ line: ["789 Pine St"],
78
+ city: "AB",
79
+ state: "IL",
80
+ },
81
+ {
82
+ line: ["101 Elm St"],
83
+ city: "Boston",
84
+ state: "MA",
85
+ },
86
+ ];
87
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
88
+ expect(result).toHaveLength(2);
89
+ expect(result[0]?.city).toBe("New York");
90
+ expect(result[1]?.city).toBe("Boston");
91
+ });
92
+ it("filters out addresses with missing or invalid address lines", async () => {
93
+ const addresses = [
94
+ {
95
+ line: [],
96
+ city: "Los Angeles",
97
+ state: "CA",
98
+ },
99
+ {
100
+ line: ["12"],
101
+ city: "Boston",
102
+ state: "MA",
103
+ },
104
+ {
105
+ line: ["123 Main St"],
106
+ city: "New York",
107
+ state: "NY",
108
+ },
109
+ ];
110
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
111
+ expect(result).toHaveLength(1);
112
+ expect(result[0]?.city).toBe("New York");
113
+ });
114
+ it("filters out addresses with missing or invalid state", async () => {
115
+ const addresses = [
116
+ {
117
+ line: ["123 Main St"],
118
+ city: "New York",
119
+ state: "NY",
120
+ },
121
+ {
122
+ line: ["456 Oak Ave"],
123
+ city: "Los Angeles",
124
+ state: "", // Empty state - invalid
125
+ },
126
+ {
127
+ line: ["789 Pine St"],
128
+ city: "Chicago",
129
+ state: null, // Null state - invalid
130
+ },
131
+ {
132
+ line: ["101 Elm St"],
133
+ city: "Boston",
134
+ state: "XX", // Invalid state code
135
+ },
136
+ {
137
+ line: ["555 Oak St"],
138
+ city: "Miami",
139
+ state: "invalid state name", // Invalid state name
140
+ },
141
+ ];
142
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
143
+ expect(result).toHaveLength(1);
144
+ expect(result[0]?.city).toBe("New York");
145
+ });
146
+ it("filters out addresses with non-string state values", async () => {
147
+ const addresses = [
148
+ {
149
+ line: ["123 Main St"],
150
+ city: "New York",
151
+ state: "NY", // Valid string state
152
+ },
153
+ {
154
+ line: ["456 Oak Ave"],
155
+ city: "Los Angeles",
156
+ state: 123, // Number state - invalid
157
+ },
158
+ {
159
+ line: ["789 Pine St"],
160
+ city: "Chicago",
161
+ state: true, // Boolean state - invalid
162
+ },
163
+ {
164
+ line: ["101 Elm St"],
165
+ city: "Boston",
166
+ state: false, // Boolean state - invalid
167
+ },
168
+ {
169
+ line: ["555 Oak St"],
170
+ city: "Miami",
171
+ state: {}, // Object state - invalid
172
+ },
173
+ {
174
+ line: ["777 Pine St"],
175
+ city: "Seattle",
176
+ state: "WA", // Valid string state
177
+ },
178
+ ];
179
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
180
+ expect(result).toHaveLength(2);
181
+ expect(result[0]?.city).toBe("New York");
182
+ expect(result[1]?.city).toBe("Seattle");
183
+ });
184
+ it("returns empty array when all addresses are invalid", async () => {
185
+ const invalidAddresses = [
186
+ {
187
+ line: ["123 Main St"],
188
+ city: "New York",
189
+ state: "invalid state",
190
+ },
191
+ {
192
+ line: [],
193
+ city: "Chicago",
194
+ state: "IL",
195
+ },
196
+ {
197
+ line: ["AB"],
198
+ city: "Boston",
199
+ state: "MA",
200
+ },
201
+ ];
202
+ const result = address_1.addressArraySchemaSafe.parse(invalidAddresses);
203
+ expect(result).toHaveLength(0);
204
+ });
205
+ it("returns all addresses when all are valid", async () => {
206
+ const validAddresses = [
207
+ {
208
+ line: ["123 Main St"],
209
+ city: "New York",
210
+ state: "NY",
211
+ },
212
+ {
213
+ line: ["456 Oak Ave"],
214
+ city: "Los Angeles",
215
+ state: "CA",
216
+ },
217
+ ];
218
+ const result = address_1.addressArraySchemaSafe.parse(validAddresses);
219
+ expect(result).toHaveLength(2);
220
+ expect(result[0]?.city).toBe("New York");
221
+ expect(result[1]?.city).toBe("Los Angeles");
222
+ });
223
+ it("handles empty array", async () => {
224
+ const result = address_1.addressArraySchemaSafe.parse([]);
225
+ expect(result).toHaveLength(0);
226
+ });
227
+ it("handles addresses with multiple valid lines", async () => {
228
+ const addresses = [
229
+ {
230
+ line: ["123 Main St", "Suite 200", "Building A"],
231
+ city: "New York",
232
+ state: "NY",
233
+ },
234
+ {
235
+ line: ["456 Oak Ave"],
236
+ city: "Los Angeles",
237
+ state: "CA",
238
+ },
239
+ ];
240
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
241
+ expect(result).toHaveLength(2);
242
+ expect(result[0]?.line).toEqual(["123 Main St", "Suite 200", "Building A"]);
243
+ expect(result[1]?.city).toBe("Los Angeles");
244
+ });
245
+ it("handles addresses with mixed valid and invalid lines", async () => {
246
+ const addresses = [
247
+ {
248
+ line: ["123 Main St", "AB", "Suite 200"],
249
+ city: "New York",
250
+ state: "NY",
251
+ },
252
+ {
253
+ line: ["AB", "CD"],
254
+ city: "Los Angeles",
255
+ state: "CA",
256
+ },
257
+ ];
258
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
259
+ expect(result).toHaveLength(1);
260
+ expect(result[0]?.city).toBe("New York");
261
+ });
262
+ it("handles addresses with whitespace in city names", async () => {
263
+ const addresses = [
264
+ {
265
+ line: ["123 Main St"],
266
+ city: " New York ",
267
+ state: "NY",
268
+ },
269
+ {
270
+ line: ["456 Oak Ave"],
271
+ city: " AB ",
272
+ state: "CA",
273
+ },
274
+ ];
275
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
276
+ expect(result).toHaveLength(1);
277
+ expect(result[0]?.city).toBe("New York"); // Should be trimmed
278
+ });
279
+ it("handles addresses with whitespace in address lines", async () => {
280
+ const addresses = [
281
+ {
282
+ line: [" 123 Main St ", " Suite 200 "],
283
+ city: "New York",
284
+ state: "NY",
285
+ },
286
+ {
287
+ line: [" 456 Oak Ave "],
288
+ city: "Los Angeles",
289
+ state: "CA",
290
+ },
291
+ ];
292
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
293
+ expect(result).toHaveLength(2);
294
+ expect(result[0]?.line).toEqual(["123 Main St", "Suite 200"]); // Should be trimmed
295
+ expect(result[1]?.line).toEqual(["456 Oak Ave"]); // Should be trimmed
296
+ });
297
+ it("handles addresses with additional optional fields", async () => {
298
+ const addresses = [
299
+ {
300
+ line: ["123 Main St"],
301
+ city: "New York",
302
+ state: "NY",
303
+ country: "US",
304
+ postalCode: "10001",
305
+ use: "home",
306
+ type: "physical",
307
+ },
308
+ {
309
+ line: ["456 Oak Ave"],
310
+ city: "Los Angeles",
311
+ state: "invalid state",
312
+ country: "US",
313
+ postalCode: "90210",
314
+ },
315
+ {
316
+ line: ["789 Pine St"],
317
+ city: "Chicago",
318
+ state: "IL",
319
+ country: "US",
320
+ },
321
+ ];
322
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
323
+ expect(result).toHaveLength(2);
324
+ expect(result[0]?.city).toBe("New York");
325
+ expect(result[0]?.country).toBe("US");
326
+ expect(result[0]?.postalCode).toBe("10001");
327
+ expect(result[1]?.city).toBe("Chicago");
328
+ });
329
+ it("handles edge case with very short valid city names", async () => {
330
+ const addresses = [
331
+ {
332
+ line: ["123 Main St"],
333
+ city: "NY",
334
+ state: "NY",
335
+ },
336
+ {
337
+ line: ["789 Pine St"],
338
+ city: "OKC",
339
+ state: "OK",
340
+ },
341
+ ];
342
+ const result = address_1.addressArraySchemaSafe.parse(addresses);
343
+ expect(result).toHaveLength(1);
344
+ expect(result[0]?.city).toBe("OKC");
345
+ });
346
+ });
347
+ });
348
+ //# sourceMappingURL=address.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.test.js","sourceRoot":"","sources":["../../../src/models/__tests__/address.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=demographics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demographics.test.d.ts","sourceRoot":"","sources":["../../../src/models/__tests__/demographics.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable @typescript-eslint/no-empty-function */
4
+ const demographics_1 = require("../demographics");
5
+ describe("demographics", () => {
6
+ describe("coerceGender", () => {
7
+ it("returns M when it gets capital M", async () => {
8
+ expect((0, demographics_1.coerceGender)("M")).toBe(demographics_1.GenderCodes.M);
9
+ });
10
+ it("returns M when it gets lowercase m", async () => {
11
+ expect((0, demographics_1.coerceGender)("m")).toBe(demographics_1.GenderCodes.M);
12
+ });
13
+ it("returns M when it gets male", async () => {
14
+ expect((0, demographics_1.coerceGender)("male")).toBe(demographics_1.GenderCodes.M);
15
+ expect((0, demographics_1.coerceGender)("Male")).toBe(demographics_1.GenderCodes.M);
16
+ expect((0, demographics_1.coerceGender)("MALE")).toBe(demographics_1.GenderCodes.M);
17
+ });
18
+ it("returns F when it gets capital F", async () => {
19
+ expect((0, demographics_1.coerceGender)("F")).toBe(demographics_1.GenderCodes.F);
20
+ });
21
+ it("returns F when it gets lowercase f", async () => {
22
+ expect((0, demographics_1.coerceGender)("f")).toBe(demographics_1.GenderCodes.F);
23
+ });
24
+ it("returns F when it gets female", async () => {
25
+ expect((0, demographics_1.coerceGender)("female")).toBe(demographics_1.GenderCodes.F);
26
+ expect((0, demographics_1.coerceGender)("Female")).toBe(demographics_1.GenderCodes.F);
27
+ expect((0, demographics_1.coerceGender)("FEMALE")).toBe(demographics_1.GenderCodes.F);
28
+ });
29
+ it("returns O when it gets capital O", async () => {
30
+ expect((0, demographics_1.coerceGender)("O")).toBe(demographics_1.GenderCodes.O);
31
+ });
32
+ it("returns O when it gets lowercase o", async () => {
33
+ expect((0, demographics_1.coerceGender)("o")).toBe(demographics_1.GenderCodes.O);
34
+ });
35
+ it("returns O when it gets other", async () => {
36
+ expect((0, demographics_1.coerceGender)("other")).toBe(demographics_1.GenderCodes.O);
37
+ expect((0, demographics_1.coerceGender)("Other")).toBe(demographics_1.GenderCodes.O);
38
+ expect((0, demographics_1.coerceGender)("OTHER")).toBe(demographics_1.GenderCodes.O);
39
+ });
40
+ it("returns O when it gets capital UN", async () => {
41
+ expect((0, demographics_1.coerceGender)("UN")).toBe(demographics_1.GenderCodes.O);
42
+ });
43
+ it("returns O when it gets lowercase un", async () => {
44
+ expect((0, demographics_1.coerceGender)("un")).toBe(demographics_1.GenderCodes.O);
45
+ });
46
+ it("returns O when it gets undifferentiated", async () => {
47
+ expect((0, demographics_1.coerceGender)("undifferentiated")).toBe(demographics_1.GenderCodes.O);
48
+ expect((0, demographics_1.coerceGender)("Undifferentiated")).toBe(demographics_1.GenderCodes.O);
49
+ expect((0, demographics_1.coerceGender)("UNDIFFERENTIATED")).toBe(demographics_1.GenderCodes.O);
50
+ });
51
+ it("does not match undifferentiated pattern for other 'un' prefixed strings", async () => {
52
+ expect(() => (0, demographics_1.coerceGender)("unrelated")).toThrow("Invalid gender");
53
+ expect(() => (0, demographics_1.coerceGender)("university")).toThrow("Invalid gender");
54
+ expect(() => (0, demographics_1.coerceGender)("unx")).toThrow("Invalid gender");
55
+ });
56
+ it("returns U when it gets capital U", async () => {
57
+ expect((0, demographics_1.coerceGender)("U")).toBe(demographics_1.GenderCodes.U);
58
+ });
59
+ it("returns U when it gets lowercase u", async () => {
60
+ expect((0, demographics_1.coerceGender)("u")).toBe(demographics_1.GenderCodes.U);
61
+ });
62
+ it("returns U when it gets capital UNK", async () => {
63
+ expect((0, demographics_1.coerceGender)("UNK")).toBe(demographics_1.GenderCodes.U);
64
+ });
65
+ it("returns U when it gets lowercase unk", async () => {
66
+ expect((0, demographics_1.coerceGender)("unk")).toBe(demographics_1.GenderCodes.U);
67
+ });
68
+ it("returns U when it gets unknown", async () => {
69
+ expect((0, demographics_1.coerceGender)("unknown")).toBe(demographics_1.GenderCodes.U);
70
+ expect((0, demographics_1.coerceGender)("Unknown")).toBe(demographics_1.GenderCodes.U);
71
+ expect((0, demographics_1.coerceGender)("UNKNOWN")).toBe(demographics_1.GenderCodes.U);
72
+ });
73
+ it("throws error for non-string input", async () => {
74
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
+ expect(() => (0, demographics_1.coerceGender)(null)).toThrow("Invalid gender");
76
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
+ expect(() => (0, demographics_1.coerceGender)(undefined)).toThrow("Invalid gender");
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ expect(() => (0, demographics_1.coerceGender)(123)).toThrow("Invalid gender");
80
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+ expect(() => (0, demographics_1.coerceGender)({})).toThrow("Invalid gender");
82
+ });
83
+ it("throws error for empty string", async () => {
84
+ expect(() => (0, demographics_1.coerceGender)("")).toThrow("Invalid gender");
85
+ });
86
+ it("throws error for invalid gender values", async () => {
87
+ expect(() => (0, demographics_1.coerceGender)("invalid")).toThrow("Invalid gender");
88
+ expect(() => (0, demographics_1.coerceGender)("x")).toThrow("Invalid gender");
89
+ expect(() => (0, demographics_1.coerceGender)("z")).toThrow("Invalid gender");
90
+ expect(() => (0, demographics_1.coerceGender)("123")).toThrow("Invalid gender");
91
+ expect(() => (0, demographics_1.coerceGender)("malee")).toThrow("Invalid gender");
92
+ expect(() => (0, demographics_1.coerceGender)("femalex")).toThrow("Invalid gender");
93
+ });
94
+ });
95
+ });
96
+ //# sourceMappingURL=demographics.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demographics.test.js","sourceRoot":"","sources":["../../../src/models/__tests__/demographics.test.ts"],"names":[],"mappings":"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"}