@glion/config 0.15.3 → 0.16.0
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.
- package/README.md +2 -28
- package/dist/define.d.ts +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/json-schema2.js +26 -0
- package/dist/json-schema2.js.map +1 -1
- package/dist/loader.d.ts +2 -4
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +2 -4
- package/dist/loader.js.map +1 -1
- package/dist/schema.d.ts +0 -58
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +61 -5
- package/dist/schema.js.map +1 -1
- package/package.json +11 -12
- package/schema.json +0 -18
package/README.md
CHANGED
|
@@ -28,9 +28,6 @@ Create a `.hl7v2rc.json` file in your project:
|
|
|
28
28
|
"repetition": "~",
|
|
29
29
|
"escape": "\\",
|
|
30
30
|
"segment": "\r"
|
|
31
|
-
},
|
|
32
|
-
"experimental": {
|
|
33
|
-
"emptyMode": "empty"
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
33
|
}
|
|
@@ -43,7 +40,6 @@ import { loadConfig } from "@glion/config";
|
|
|
43
40
|
|
|
44
41
|
const { settings } = loadConfig();
|
|
45
42
|
console.log(settings.delimiters.field); // "|"
|
|
46
|
-
console.log(settings.experimental.emptyMode); // "empty"
|
|
47
43
|
```
|
|
48
44
|
|
|
49
45
|
## API
|
|
@@ -96,7 +92,6 @@ export default defineConfig({
|
|
|
96
92
|
plugins: ["preset-lint-recommended"],
|
|
97
93
|
settings: {
|
|
98
94
|
delimiters: { field: "|", component: "^" },
|
|
99
|
-
experimental: { emptyMode: "empty" },
|
|
100
95
|
},
|
|
101
96
|
});
|
|
102
97
|
```
|
|
@@ -123,9 +118,6 @@ type HL7v2Settings = {
|
|
|
123
118
|
escape?: string; // default: "\\"
|
|
124
119
|
segment?: string; // default: "\r"
|
|
125
120
|
};
|
|
126
|
-
experimental?: {
|
|
127
|
-
emptyMode?: "legacy" | "empty"; // default: "legacy"
|
|
128
|
-
};
|
|
129
121
|
};
|
|
130
122
|
```
|
|
131
123
|
|
|
@@ -157,17 +149,6 @@ Example — using custom delimiters for a non-standard system:
|
|
|
157
149
|
}
|
|
158
150
|
```
|
|
159
151
|
|
|
160
|
-
### `settings.experimental.emptyMode`
|
|
161
|
-
|
|
162
|
-
Controls how empty fields and components are represented in the AST.
|
|
163
|
-
|
|
164
|
-
| Value | Description |
|
|
165
|
-
| -------------------- | ------------------------------------------------------------------------------- |
|
|
166
|
-
| `"legacy"` (default) | Empty fields create full structure (Field → Rep → Comp → Sub with `value: ""`). |
|
|
167
|
-
| `"empty"` | Empty fields have no children (Field with `children: []`). |
|
|
168
|
-
|
|
169
|
-
Experimental — will become the default in v0.6.0.
|
|
170
|
-
|
|
171
152
|
### `plugins`
|
|
172
153
|
|
|
173
154
|
Handled by unified-args; follows the standard unified plugin configuration format:
|
|
@@ -215,9 +196,7 @@ The loader searches for configuration in the following locations, in order:
|
|
|
215
196
|
["lint-max-message-size", ["error", { "maxBytes": 5000000 }]]
|
|
216
197
|
],
|
|
217
198
|
"settings": {
|
|
218
|
-
"
|
|
219
|
-
"emptyMode": "empty"
|
|
220
|
-
}
|
|
199
|
+
"delimiters": { "field": "|" }
|
|
221
200
|
}
|
|
222
201
|
}
|
|
223
202
|
```
|
|
@@ -232,7 +211,6 @@ export default defineConfig({
|
|
|
232
211
|
plugins: ["preset-lint-recommended"],
|
|
233
212
|
settings: {
|
|
234
213
|
delimiters: { field: "|", component: "^" },
|
|
235
|
-
experimental: { emptyMode: "empty" },
|
|
236
214
|
},
|
|
237
215
|
});
|
|
238
216
|
```
|
|
@@ -253,9 +231,6 @@ export default {
|
|
|
253
231
|
delimiters: {
|
|
254
232
|
segment: process.env.HL7_SEGMENT_TERMINATOR || "\r",
|
|
255
233
|
},
|
|
256
|
-
experimental: {
|
|
257
|
-
emptyMode: process.env.HL7_EMPTY_MODE || "legacy",
|
|
258
|
-
},
|
|
259
234
|
},
|
|
260
235
|
};
|
|
261
236
|
```
|
|
@@ -269,7 +244,7 @@ export default {
|
|
|
269
244
|
"hl7v2": {
|
|
270
245
|
"plugins": ["preset-lint-recommended"],
|
|
271
246
|
"settings": {
|
|
272
|
-
"
|
|
247
|
+
"delimiters": { "field": "|" }
|
|
273
248
|
}
|
|
274
249
|
}
|
|
275
250
|
}
|
|
@@ -287,7 +262,6 @@ const processor = unified()
|
|
|
287
262
|
.use(parseHL7v2)
|
|
288
263
|
.data("settings", {
|
|
289
264
|
delimiters: { field: "|", component: "^" },
|
|
290
|
-
experimental: { emptyMode: "empty" },
|
|
291
265
|
});
|
|
292
266
|
|
|
293
267
|
const tree = processor.parse("MSH|^~\\&|...");
|
package/dist/define.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -13,12 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* // Load full configuration
|
|
15
15
|
* const config = loadConfig();
|
|
16
|
-
* console.log(config.settings.
|
|
16
|
+
* console.log(config.settings.delimiters); // Custom delimiter overrides
|
|
17
17
|
* console.log(config.plugins); // Array of plugin configurations
|
|
18
18
|
*
|
|
19
19
|
* // Or destructure to get only settings
|
|
20
20
|
* const { settings } = loadConfig();
|
|
21
|
-
* console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
|
|
22
21
|
* ```
|
|
23
22
|
*
|
|
24
23
|
* ### Load configuration asynchronously
|
|
@@ -41,9 +40,7 @@
|
|
|
41
40
|
* "preset-lint-recommended"
|
|
42
41
|
* ],
|
|
43
42
|
* "settings": {
|
|
44
|
-
* "
|
|
45
|
-
* "emptyMode": "empty"
|
|
46
|
-
* }
|
|
43
|
+
* "delimiters": { "field": "|" }
|
|
47
44
|
* }
|
|
48
45
|
* }
|
|
49
46
|
* ```
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAS,SAAQ,aAAa;KAAG;CAC5C"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import { ConfigurationError, clearCaches, loadConfig, loadConfigAsync } from "./
|
|
|
14
14
|
* export default defineConfig({
|
|
15
15
|
* plugins: ["preset-lint-recommended"],
|
|
16
16
|
* settings: {
|
|
17
|
-
*
|
|
17
|
+
* delimiters: { field: "|" },
|
|
18
18
|
* },
|
|
19
19
|
* });
|
|
20
20
|
* ```;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/define.ts"],"sourcesContent":["import type { HL7v2ConfigInput } from \"./schema\";\n\n/**\n * Helper for type-safe configuration authoring.\n *\n * Use in your `hl7v2.config.ts` file for IDE autocomplete:\n *\n * @example\n * ```typescript\n * import { defineConfig } from \"@glion/config\";\n *\n * export default defineConfig({\n * plugins: [\"preset-lint-recommended\"],\n * settings: {\n *
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/define.ts"],"sourcesContent":["import type { HL7v2ConfigInput } from \"./schema\";\n\n/**\n * Helper for type-safe configuration authoring.\n *\n * Use in your `hl7v2.config.ts` file for IDE autocomplete:\n *\n * @example\n * ```typescript\n * import { defineConfig } from \"@glion/config\";\n *\n * export default defineConfig({\n * plugins: [\"preset-lint-recommended\"],\n * settings: {\n * delimiters: { field: \"|\" },\n * },\n * });\n * ```;\n */\nexport function defineConfig(config: HL7v2ConfigInput): HL7v2ConfigInput {\n return config;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,aAAa,QAA4C;AACvE,QAAO"}
|
package/dist/json-schema2.js
CHANGED
|
@@ -273,17 +273,43 @@ let emojiRegex = void 0;
|
|
|
273
273
|
* Expressions with /i flag have been changed accordingly.
|
|
274
274
|
*/
|
|
275
275
|
const zodPatterns = {
|
|
276
|
+
/**
|
|
277
|
+
* `c` was changed to `[cC]` to replicate /i flag
|
|
278
|
+
*/
|
|
276
279
|
cuid: /^[cC][^\s-]{8,}$/,
|
|
277
280
|
cuid2: /^[0-9a-z]+$/,
|
|
278
281
|
ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,
|
|
282
|
+
/**
|
|
283
|
+
* `a-z` was added to replicate /i flag
|
|
284
|
+
*/
|
|
279
285
|
email: /^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,
|
|
286
|
+
/**
|
|
287
|
+
* Constructed a valid Unicode RegExp
|
|
288
|
+
*
|
|
289
|
+
* Lazily instantiate since this type of regex isn't supported
|
|
290
|
+
* in all envs (e.g. React Native).
|
|
291
|
+
*
|
|
292
|
+
* See:
|
|
293
|
+
* https://github.com/colinhacks/zod/issues/2433
|
|
294
|
+
* Fix in Zod:
|
|
295
|
+
* https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b
|
|
296
|
+
*/
|
|
280
297
|
emoji: () => {
|
|
281
298
|
if (emojiRegex === void 0) emojiRegex = RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$", "u");
|
|
282
299
|
return emojiRegex;
|
|
283
300
|
},
|
|
301
|
+
/**
|
|
302
|
+
* Unused
|
|
303
|
+
*/
|
|
284
304
|
uuid: /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,
|
|
305
|
+
/**
|
|
306
|
+
* Unused
|
|
307
|
+
*/
|
|
285
308
|
ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,
|
|
286
309
|
ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,
|
|
310
|
+
/**
|
|
311
|
+
* Unused
|
|
312
|
+
*/
|
|
287
313
|
ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,
|
|
288
314
|
ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,
|
|
289
315
|
base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,
|
package/dist/json-schema2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema2.js","names":[],"sources":["../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js","../src/json-schema.ts"],"sourcesContent":["export const ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nexport const jsonDescription = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n }\n catch { }\n }\n return jsonSchema;\n};\nexport const defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\",\n openAiAnyTypeName: \"OpenAiAnyType\"\n};\nexport const getDefaultOptions = (options) => (typeof options === \"string\"\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n });\n","import { getDefaultOptions } from \"./Options.js\";\nexport const getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n flags: { hasReferencedOpenAiAnyType: false },\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ])),\n };\n};\n","export function addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage,\n };\n }\n}\nexport function setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n","export const getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\n","import { getRelativePath } from \"../getRelativePath.js\";\nexport function parseAnyDef(refs) {\n if (refs.target !== \"openAi\") {\n return {};\n }\n const anyDefinitionPath = [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ];\n refs.flags.hasReferencedOpenAiAnyType = true;\n return {\n $ref: refs.$refStrategy === \"relative\"\n ? getRelativePath(anyDefinitionPath, refs.currentPath)\n : anyDefinitionPath.join(\"/\"),\n };\n}\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseArrayDef(def, refs) {\n const res = {\n type: \"array\",\n };\n if (def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","export function parseBooleanDef() {\n return {\n type: \"boolean\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nconst integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\",\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n }\n }\n return res;\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\"\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef(refs);\n}\n","export function parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nconst isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nexport function parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"],\n }),\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\"\n ? { unevaluatedProperties: false }\n : undefined;\n const mergedAllOf = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n // If one of the schemas has no unevaluatedProperties set,\n // the merged schema should also have no unevaluatedProperties set\n unevaluatedProperties = undefined;\n }\n }\n else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema &&\n schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n else {\n // As soon as one of the schemas has additionalProperties set not to false, we allow unevaluatedProperties\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length\n ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties,\n }\n : undefined;\n}\n","export function parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" &&\n parsedType !== \"number\" &&\n parsedType !== \"boolean\" &&\n parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\",\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value],\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value,\n };\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n","import { ZodFirstPartyTypeKind, } from \"zod/v3\";\nimport { parseDef } from \"../parseDef.js\";\nimport { parseStringDef } from \"./string.js\";\nimport { parseBrandedDef } from \"./branded.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" &&\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key],\n }) ?? parseAnyDef(refs),\n }), {}),\n additionalProperties: refs.rejectedAdditionalProperties,\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? refs.allowedAdditionalProperties,\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseRecordDef } from \"./record.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"],\n }) || parseAnyDef(refs);\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"],\n }) || parseAnyDef(refs);\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n","export function parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseNeverDef(refs) {\n return refs.target === \"openAi\"\n ? undefined\n : {\n not: parseAnyDef({\n ...refs,\n currentPath: [...refs.currentPath, \"not\"],\n }),\n };\n}\n","export function parseNullDef(refs) {\n return refs.target === \"openApi3\"\n ? {\n enum: [\"null\"],\n nullable: true,\n }\n : {\n type: \"null\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\",\n};\nexport function parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (options.every((x) => x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length))) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n const types = options.reduce((types, x) => {\n const type = primitiveMappings[x._def.typeName]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n return {\n type: types.length > 1 ? types : types[0],\n };\n }\n else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n // all options literals\n const types = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, []),\n };\n }\n }\n else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x) => !acc.includes(x)),\n ], []),\n };\n }\n return asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options)\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`],\n }))\n .filter((x) => !!x &&\n (!refs.strictUnions ||\n (typeof x === \"object\" && Object.keys(x).length > 0)));\n return anyOf.length ? { anyOf } : undefined;\n};\n","import { parseDef } from \"../parseDef.js\";\nimport { primitiveMappings } from \"./union.js\";\nexport function parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true,\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\",\n ],\n };\n }\n if (refs.target === \"openApi3\") {\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath],\n });\n if (base && \"$ref\" in base)\n return { allOf: [base], nullable: true };\n return base && { ...base, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"],\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n","import { addErrorMessage, setResponseValueAndErrors, } from \"../errorMessages.js\";\nexport function parseNumberDef(def, refs) {\n const res = {\n type: \"number\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n properties: {},\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n let propOptional = safeIsOptional(propDef);\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef._def.typeName === \"ZodOptional\") {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName],\n });\n if (parsedDef === undefined) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n });\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\"\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n }\n catch {\n return true;\n }\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport const parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"],\n });\n return innerSchema\n ? {\n anyOf: [\n {\n not: parseAnyDef(refs),\n },\n innerSchema,\n ],\n }\n : parseAnyDef(refs);\n};\n","import { parseDef } from \"../parseDef.js\";\nexport const parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n }\n else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"],\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined),\n };\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items,\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"],\n }),\n };\n }\n else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n };\n }\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUndefinedDef(refs) {\n return {\n not: parseAnyDef(refs),\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUnknownDef(refs) {\n return parseAnyDef(refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nimport { parseArrayDef } from \"./parsers/array.js\";\nimport { parseBigintDef } from \"./parsers/bigint.js\";\nimport { parseBooleanDef } from \"./parsers/boolean.js\";\nimport { parseBrandedDef } from \"./parsers/branded.js\";\nimport { parseCatchDef } from \"./parsers/catch.js\";\nimport { parseDateDef } from \"./parsers/date.js\";\nimport { parseDefaultDef } from \"./parsers/default.js\";\nimport { parseEffectsDef } from \"./parsers/effects.js\";\nimport { parseEnumDef } from \"./parsers/enum.js\";\nimport { parseIntersectionDef } from \"./parsers/intersection.js\";\nimport { parseLiteralDef } from \"./parsers/literal.js\";\nimport { parseMapDef } from \"./parsers/map.js\";\nimport { parseNativeEnumDef } from \"./parsers/nativeEnum.js\";\nimport { parseNeverDef } from \"./parsers/never.js\";\nimport { parseNullDef } from \"./parsers/null.js\";\nimport { parseNullableDef } from \"./parsers/nullable.js\";\nimport { parseNumberDef } from \"./parsers/number.js\";\nimport { parseObjectDef } from \"./parsers/object.js\";\nimport { parseOptionalDef } from \"./parsers/optional.js\";\nimport { parsePipelineDef } from \"./parsers/pipeline.js\";\nimport { parsePromiseDef } from \"./parsers/promise.js\";\nimport { parseRecordDef } from \"./parsers/record.js\";\nimport { parseSetDef } from \"./parsers/set.js\";\nimport { parseStringDef } from \"./parsers/string.js\";\nimport { parseTupleDef } from \"./parsers/tuple.js\";\nimport { parseUndefinedDef } from \"./parsers/undefined.js\";\nimport { parseUnionDef } from \"./parsers/union.js\";\nimport { parseUnknownDef } from \"./parsers/unknown.js\";\nimport { parseReadonlyDef } from \"./parsers/readonly.js\";\nexport const selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef(refs);\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef(refs);\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef(refs);\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef(refs);\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n return ((_) => undefined)(typeName);\n }\n};\n","import { ignoreOverride } from \"./Options.js\";\nimport { selectParser } from \"./selectParser.js\";\nimport { getRelativePath } from \"./getRelativePath.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nexport function parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\"\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nconst get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return parseAnyDef(refs);\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef(refs) : undefined;\n }\n }\n};\nconst addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n","import { parseDef } from \"./parseDef.js\";\nimport { getRefs } from \"./Refs.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nconst zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions\n ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({\n ...acc,\n [name]: parseDef(schema._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, true) ?? parseAnyDef(refs),\n }), {})\n : undefined;\n const name = typeof options === \"string\"\n ? options\n : options?.nameStrategy === \"title\"\n ? undefined\n : options?.name;\n const main = parseDef(schema._def, name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, false) ?? parseAnyDef(refs);\n const title = typeof options === \"object\" &&\n options.name !== undefined &&\n options.nameStrategy === \"title\"\n ? options.name\n : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n if (refs.flags.hasReferencedOpenAiAnyType) {\n if (!definitions) {\n definitions = {};\n }\n if (!definitions[refs.openAiAnyTypeName]) {\n definitions[refs.openAiAnyTypeName] = {\n // Skipping \"object\" as no properties can be defined and additionalProperties must be \"false\"\n type: [\"string\", \"number\", \"integer\", \"boolean\", \"array\", \"null\"],\n items: {\n $ref: refs.$refStrategy === \"relative\"\n ? \"1\"\n : [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ].join(\"/\"),\n },\n };\n }\n }\n const combined = name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === \"relative\" ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" &&\n (\"anyOf\" in combined ||\n \"oneOf\" in combined ||\n \"allOf\" in combined ||\n (\"type\" in combined && Array.isArray(combined.type)))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\nexport { zodToJsonSchema };\n","import { zodToJsonSchema } from \"zod-to-json-schema\";\n\nimport { HL7v2ConfigSchema } from \"./schema\";\n\n/**\n * JSON Schema for hl7v2 configuration.\n *\n * This schema can be used for IDE autocomplete by adding:\n *\n * ```json\n * {\n * \"$schema\": \"https://raw.githubusercontent.com/rethinkhealth/hl7v2/main/packages/hl7v2-config/schema.json\"\n * }\n * ```\n */\nexport const jsonSchema = zodToJsonSchema(HL7v2ConfigSchema, {\n $refStrategy: \"none\",\n name: \"HL7v2Config\",\n target: \"jsonSchema7\",\n});\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json-schema2.js","names":[],"sources":["../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js","../src/json-schema.ts"],"sourcesContent":["export const ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nexport const jsonDescription = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n }\n catch { }\n }\n return jsonSchema;\n};\nexport const defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\",\n openAiAnyTypeName: \"OpenAiAnyType\"\n};\nexport const getDefaultOptions = (options) => (typeof options === \"string\"\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n });\n","import { getDefaultOptions } from \"./Options.js\";\nexport const getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n flags: { hasReferencedOpenAiAnyType: false },\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ])),\n };\n};\n","export function addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage,\n };\n }\n}\nexport function setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n","export const getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\n","import { getRelativePath } from \"../getRelativePath.js\";\nexport function parseAnyDef(refs) {\n if (refs.target !== \"openAi\") {\n return {};\n }\n const anyDefinitionPath = [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ];\n refs.flags.hasReferencedOpenAiAnyType = true;\n return {\n $ref: refs.$refStrategy === \"relative\"\n ? getRelativePath(anyDefinitionPath, refs.currentPath)\n : anyDefinitionPath.join(\"/\"),\n };\n}\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseArrayDef(def, refs) {\n const res = {\n type: \"array\",\n };\n if (def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","export function parseBooleanDef() {\n return {\n type: \"boolean\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nconst integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\",\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n }\n }\n return res;\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\"\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef(refs);\n}\n","export function parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nconst isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nexport function parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"],\n }),\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\"\n ? { unevaluatedProperties: false }\n : undefined;\n const mergedAllOf = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n // If one of the schemas has no unevaluatedProperties set,\n // the merged schema should also have no unevaluatedProperties set\n unevaluatedProperties = undefined;\n }\n }\n else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema &&\n schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n else {\n // As soon as one of the schemas has additionalProperties set not to false, we allow unevaluatedProperties\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length\n ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties,\n }\n : undefined;\n}\n","export function parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" &&\n parsedType !== \"number\" &&\n parsedType !== \"boolean\" &&\n parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\",\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value],\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value,\n };\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n","import { ZodFirstPartyTypeKind, } from \"zod/v3\";\nimport { parseDef } from \"../parseDef.js\";\nimport { parseStringDef } from \"./string.js\";\nimport { parseBrandedDef } from \"./branded.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" &&\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key],\n }) ?? parseAnyDef(refs),\n }), {}),\n additionalProperties: refs.rejectedAdditionalProperties,\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? refs.allowedAdditionalProperties,\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseRecordDef } from \"./record.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"],\n }) || parseAnyDef(refs);\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"],\n }) || parseAnyDef(refs);\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n","export function parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseNeverDef(refs) {\n return refs.target === \"openAi\"\n ? undefined\n : {\n not: parseAnyDef({\n ...refs,\n currentPath: [...refs.currentPath, \"not\"],\n }),\n };\n}\n","export function parseNullDef(refs) {\n return refs.target === \"openApi3\"\n ? {\n enum: [\"null\"],\n nullable: true,\n }\n : {\n type: \"null\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\",\n};\nexport function parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (options.every((x) => x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length))) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n const types = options.reduce((types, x) => {\n const type = primitiveMappings[x._def.typeName]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n return {\n type: types.length > 1 ? types : types[0],\n };\n }\n else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n // all options literals\n const types = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, []),\n };\n }\n }\n else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x) => !acc.includes(x)),\n ], []),\n };\n }\n return asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options)\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`],\n }))\n .filter((x) => !!x &&\n (!refs.strictUnions ||\n (typeof x === \"object\" && Object.keys(x).length > 0)));\n return anyOf.length ? { anyOf } : undefined;\n};\n","import { parseDef } from \"../parseDef.js\";\nimport { primitiveMappings } from \"./union.js\";\nexport function parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true,\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\",\n ],\n };\n }\n if (refs.target === \"openApi3\") {\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath],\n });\n if (base && \"$ref\" in base)\n return { allOf: [base], nullable: true };\n return base && { ...base, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"],\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n","import { addErrorMessage, setResponseValueAndErrors, } from \"../errorMessages.js\";\nexport function parseNumberDef(def, refs) {\n const res = {\n type: \"number\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n properties: {},\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n let propOptional = safeIsOptional(propDef);\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef._def.typeName === \"ZodOptional\") {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName],\n });\n if (parsedDef === undefined) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n });\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\"\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n }\n catch {\n return true;\n }\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport const parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"],\n });\n return innerSchema\n ? {\n anyOf: [\n {\n not: parseAnyDef(refs),\n },\n innerSchema,\n ],\n }\n : parseAnyDef(refs);\n};\n","import { parseDef } from \"../parseDef.js\";\nexport const parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n }\n else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"],\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined),\n };\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items,\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"],\n }),\n };\n }\n else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n };\n }\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUndefinedDef(refs) {\n return {\n not: parseAnyDef(refs),\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUnknownDef(refs) {\n return parseAnyDef(refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nimport { parseArrayDef } from \"./parsers/array.js\";\nimport { parseBigintDef } from \"./parsers/bigint.js\";\nimport { parseBooleanDef } from \"./parsers/boolean.js\";\nimport { parseBrandedDef } from \"./parsers/branded.js\";\nimport { parseCatchDef } from \"./parsers/catch.js\";\nimport { parseDateDef } from \"./parsers/date.js\";\nimport { parseDefaultDef } from \"./parsers/default.js\";\nimport { parseEffectsDef } from \"./parsers/effects.js\";\nimport { parseEnumDef } from \"./parsers/enum.js\";\nimport { parseIntersectionDef } from \"./parsers/intersection.js\";\nimport { parseLiteralDef } from \"./parsers/literal.js\";\nimport { parseMapDef } from \"./parsers/map.js\";\nimport { parseNativeEnumDef } from \"./parsers/nativeEnum.js\";\nimport { parseNeverDef } from \"./parsers/never.js\";\nimport { parseNullDef } from \"./parsers/null.js\";\nimport { parseNullableDef } from \"./parsers/nullable.js\";\nimport { parseNumberDef } from \"./parsers/number.js\";\nimport { parseObjectDef } from \"./parsers/object.js\";\nimport { parseOptionalDef } from \"./parsers/optional.js\";\nimport { parsePipelineDef } from \"./parsers/pipeline.js\";\nimport { parsePromiseDef } from \"./parsers/promise.js\";\nimport { parseRecordDef } from \"./parsers/record.js\";\nimport { parseSetDef } from \"./parsers/set.js\";\nimport { parseStringDef } from \"./parsers/string.js\";\nimport { parseTupleDef } from \"./parsers/tuple.js\";\nimport { parseUndefinedDef } from \"./parsers/undefined.js\";\nimport { parseUnionDef } from \"./parsers/union.js\";\nimport { parseUnknownDef } from \"./parsers/unknown.js\";\nimport { parseReadonlyDef } from \"./parsers/readonly.js\";\nexport const selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef(refs);\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef(refs);\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef(refs);\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef(refs);\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n return ((_) => undefined)(typeName);\n }\n};\n","import { ignoreOverride } from \"./Options.js\";\nimport { selectParser } from \"./selectParser.js\";\nimport { getRelativePath } from \"./getRelativePath.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nexport function parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\"\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nconst get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return parseAnyDef(refs);\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef(refs) : undefined;\n }\n }\n};\nconst addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n","import { parseDef } from \"./parseDef.js\";\nimport { getRefs } from \"./Refs.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nconst zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions\n ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({\n ...acc,\n [name]: parseDef(schema._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, true) ?? parseAnyDef(refs),\n }), {})\n : undefined;\n const name = typeof options === \"string\"\n ? options\n : options?.nameStrategy === \"title\"\n ? undefined\n : options?.name;\n const main = parseDef(schema._def, name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, false) ?? parseAnyDef(refs);\n const title = typeof options === \"object\" &&\n options.name !== undefined &&\n options.nameStrategy === \"title\"\n ? options.name\n : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n if (refs.flags.hasReferencedOpenAiAnyType) {\n if (!definitions) {\n definitions = {};\n }\n if (!definitions[refs.openAiAnyTypeName]) {\n definitions[refs.openAiAnyTypeName] = {\n // Skipping \"object\" as no properties can be defined and additionalProperties must be \"false\"\n type: [\"string\", \"number\", \"integer\", \"boolean\", \"array\", \"null\"],\n items: {\n $ref: refs.$refStrategy === \"relative\"\n ? \"1\"\n : [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ].join(\"/\"),\n },\n };\n }\n }\n const combined = name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === \"relative\" ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" &&\n (\"anyOf\" in combined ||\n \"oneOf\" in combined ||\n \"allOf\" in combined ||\n (\"type\" in combined && Array.isArray(combined.type)))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\nexport { zodToJsonSchema };\n","import { zodToJsonSchema } from \"zod-to-json-schema\";\n\nimport { HL7v2ConfigSchema } from \"./schema\";\n\n/**\n * JSON Schema for hl7v2 configuration.\n *\n * This schema can be used for IDE autocomplete by adding:\n *\n * ```json\n * {\n * \"$schema\": \"https://raw.githubusercontent.com/rethinkhealth/hl7v2/main/packages/hl7v2-config/schema.json\"\n * }\n * ```\n */\nexport const jsonSchema = zodToJsonSchema(HL7v2ConfigSchema, {\n $refStrategy: \"none\",\n name: \"HL7v2Config\",\n target: \"jsonSchema7\",\n});\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"mappings":"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"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -14,14 +14,13 @@ export declare class ConfigurationError extends Error {
|
|
|
14
14
|
* ```typescript
|
|
15
15
|
* const config = loadConfig();
|
|
16
16
|
* console.log(config.plugins); // Array of plugin configurations
|
|
17
|
-
* console.log(config.settings.
|
|
17
|
+
* console.log(config.settings.delimiters); // Delimiter overrides
|
|
18
18
|
* ```
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* Load only settings:
|
|
22
22
|
* ```typescript
|
|
23
23
|
* const { settings } = loadConfig();
|
|
24
|
-
* console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
|
|
25
24
|
* ```
|
|
26
25
|
*
|
|
27
26
|
* @param searchFrom - Optional directory to start searching from (defaults to
|
|
@@ -43,14 +42,13 @@ export declare function loadConfig(searchFrom?: string): HL7v2Config;
|
|
|
43
42
|
* ```typescript
|
|
44
43
|
* const config = await loadConfigAsync();
|
|
45
44
|
* console.log(config.plugins); // Array of plugin configurations
|
|
46
|
-
* console.log(config.settings.
|
|
45
|
+
* console.log(config.settings.delimiters); // Delimiter overrides
|
|
47
46
|
* ```
|
|
48
47
|
*
|
|
49
48
|
* @example
|
|
50
49
|
* Load only settings:
|
|
51
50
|
* ```typescript
|
|
52
51
|
* const { settings } = await loadConfigAsync();
|
|
53
|
-
* console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
|
|
54
52
|
* ```
|
|
55
53
|
*
|
|
56
54
|
* @param searchFrom - Optional directory to start searching from (defaults to
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AA0CD
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AA0CD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAc3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,eAAe,CACnC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CActB;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|
package/dist/loader.js
CHANGED
|
@@ -45,14 +45,13 @@ function validateConfig(rawConfig) {
|
|
|
45
45
|
* ```typescript
|
|
46
46
|
* const config = loadConfig();
|
|
47
47
|
* console.log(config.plugins); // Array of plugin configurations
|
|
48
|
-
* console.log(config.settings.
|
|
48
|
+
* console.log(config.settings.delimiters); // Delimiter overrides
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
51
|
* @example
|
|
52
52
|
* Load only settings:
|
|
53
53
|
* ```typescript
|
|
54
54
|
* const { settings } = loadConfig();
|
|
55
|
-
* console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
|
|
56
55
|
* ```
|
|
57
56
|
*
|
|
58
57
|
* @param searchFrom - Optional directory to start searching from (defaults to
|
|
@@ -81,14 +80,13 @@ function loadConfig(searchFrom) {
|
|
|
81
80
|
* ```typescript
|
|
82
81
|
* const config = await loadConfigAsync();
|
|
83
82
|
* console.log(config.plugins); // Array of plugin configurations
|
|
84
|
-
* console.log(config.settings.
|
|
83
|
+
* console.log(config.settings.delimiters); // Delimiter overrides
|
|
85
84
|
* ```
|
|
86
85
|
*
|
|
87
86
|
* @example
|
|
88
87
|
* Load only settings:
|
|
89
88
|
* ```typescript
|
|
90
89
|
* const { settings } = await loadConfigAsync();
|
|
91
|
-
* console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
|
|
92
90
|
* ```
|
|
93
91
|
*
|
|
94
92
|
* @param searchFrom - Optional directory to start searching from (defaults to
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","names":[],"sources":["../src/loader.ts"],"sourcesContent":["import { cosmiconfig, cosmiconfigSync } from \"cosmiconfig\";\n\nimport type { HL7v2Config } from \"./schema\";\nimport { HL7v2ConfigSchema } from \"./schema\";\n\n/**\n * Error thrown when configuration validation fails.\n */\nexport class ConfigurationError extends Error {\n override cause?: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = \"ConfigurationError\";\n this.cause = cause;\n }\n}\n\nconst searchPlaces = [\n \"package.json\",\n \".hl7v2rc\",\n \".hl7v2rc.json\",\n \".hl7v2rc.yaml\",\n \".hl7v2rc.yml\",\n \".hl7v2rc.js\",\n \".hl7v2rc.cjs\",\n \"hl7v2.config.js\",\n \"hl7v2.config.cjs\",\n];\n\nconst explorerSync = cosmiconfigSync(\"hl7v2\", {\n searchPlaces,\n});\n\nconst explorerAsync = cosmiconfig(\"hl7v2\", {\n searchPlaces: [...searchPlaces, \".hl7v2rc.mjs\", \"hl7v2.config.mjs\"],\n});\n\n/**\n * Validate configuration using Zod schema.\n */\nfunction validateConfig(rawConfig: unknown): HL7v2Config {\n const parsed = HL7v2ConfigSchema.safeParse(rawConfig);\n\n if (!parsed.success) {\n const errorMessage = parsed.error.errors\n .map((err) => ` - ${err.path.join(\".\")}: ${err.message}`)\n .join(\"\\n\");\n\n throw new ConfigurationError(\n `Invalid hl7v2 configuration:\\n${errorMessage}`,\n parsed.error\n );\n }\n\n return parsed.data;\n}\n\n/**\n * Load and validate hl7v2 configuration from configuration files (synchronous).\n *\n * @example\n * Load full configuration:\n * ```typescript\n * const config = loadConfig();\n * console.log(config.plugins); // Array of plugin configurations\n * console.log(config.settings.
|
|
1
|
+
{"version":3,"file":"loader.js","names":[],"sources":["../src/loader.ts"],"sourcesContent":["import { cosmiconfig, cosmiconfigSync } from \"cosmiconfig\";\n\nimport type { HL7v2Config } from \"./schema\";\nimport { HL7v2ConfigSchema } from \"./schema\";\n\n/**\n * Error thrown when configuration validation fails.\n */\nexport class ConfigurationError extends Error {\n override cause?: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = \"ConfigurationError\";\n this.cause = cause;\n }\n}\n\nconst searchPlaces = [\n \"package.json\",\n \".hl7v2rc\",\n \".hl7v2rc.json\",\n \".hl7v2rc.yaml\",\n \".hl7v2rc.yml\",\n \".hl7v2rc.js\",\n \".hl7v2rc.cjs\",\n \"hl7v2.config.js\",\n \"hl7v2.config.cjs\",\n];\n\nconst explorerSync = cosmiconfigSync(\"hl7v2\", {\n searchPlaces,\n});\n\nconst explorerAsync = cosmiconfig(\"hl7v2\", {\n searchPlaces: [...searchPlaces, \".hl7v2rc.mjs\", \"hl7v2.config.mjs\"],\n});\n\n/**\n * Validate configuration using Zod schema.\n */\nfunction validateConfig(rawConfig: unknown): HL7v2Config {\n const parsed = HL7v2ConfigSchema.safeParse(rawConfig);\n\n if (!parsed.success) {\n const errorMessage = parsed.error.errors\n .map((err) => ` - ${err.path.join(\".\")}: ${err.message}`)\n .join(\"\\n\");\n\n throw new ConfigurationError(\n `Invalid hl7v2 configuration:\\n${errorMessage}`,\n parsed.error\n );\n }\n\n return parsed.data;\n}\n\n/**\n * Load and validate hl7v2 configuration from configuration files (synchronous).\n *\n * @example\n * Load full configuration:\n * ```typescript\n * const config = loadConfig();\n * console.log(config.plugins); // Array of plugin configurations\n * console.log(config.settings.delimiters); // Delimiter overrides\n * ```\n *\n * @example\n * Load only settings:\n * ```typescript\n * const { settings } = loadConfig();\n * ```\n *\n * @param searchFrom - Optional directory to start searching from (defaults to\n * cwd)\n * @returns Validated hl7v2 configuration with defaults applied\n * @throws ConfigurationError if configuration is invalid\n */\nexport function loadConfig(searchFrom?: string): HL7v2Config {\n try {\n const result = explorerSync.search(searchFrom);\n const rawConfig = result?.config ?? {};\n return validateConfig(rawConfig);\n } catch (error) {\n if (error instanceof ConfigurationError) {\n throw error;\n }\n throw new ConfigurationError(\n `Failed to load hl7v2 configuration: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n}\n\n/**\n * Load and validate hl7v2 configuration from configuration files\n * (asynchronous).\n *\n * Use this version when you need non-blocking I/O or are in an async context.\n * For most use cases (CLI tools, startup code), prefer the synchronous\n * `loadConfig()`.\n *\n * @example\n * Load full configuration:\n * ```typescript\n * const config = await loadConfigAsync();\n * console.log(config.plugins); // Array of plugin configurations\n * console.log(config.settings.delimiters); // Delimiter overrides\n * ```\n *\n * @example\n * Load only settings:\n * ```typescript\n * const { settings } = await loadConfigAsync();\n * ```\n *\n * @param searchFrom - Optional directory to start searching from (defaults to\n * cwd)\n * @returns Promise resolving to validated hl7v2 configuration with defaults\n * applied\n * @throws ConfigurationError if configuration is invalid\n */\nexport async function loadConfigAsync(\n searchFrom?: string\n): Promise<HL7v2Config> {\n try {\n const result = await explorerAsync.search(searchFrom);\n const rawConfig = result?.config ?? {};\n return validateConfig(rawConfig);\n } catch (error) {\n if (error instanceof ConfigurationError) {\n throw error;\n }\n throw new ConfigurationError(\n `Failed to load hl7v2 configuration: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n}\n\n/**\n * Clear the configuration cache.\n * Useful for testing to ensure fresh config loads between tests.\n */\nexport function clearCaches(): void {\n explorerSync.clearCaches();\n explorerAsync.clearCaches();\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAb,cAAwC,MAAM;CAC5C;CAEA,YAAY,SAAiB,OAAiB;AAC5C,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,QAAQ;;;AAIjB,MAAM,eAAe;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAM,eAAe,gBAAgB,SAAS,EAC5C,cACD,CAAC;AAEF,MAAM,gBAAgB,YAAY,SAAS,EACzC,cAAc;CAAC,GAAG;CAAc;CAAgB;CAAmB,EACpE,CAAC;;;;AAKF,SAAS,eAAe,WAAiC;CACvD,MAAM,SAAS,kBAAkB,UAAU,UAAU;AAErD,KAAI,CAAC,OAAO,QAKV,OAAM,IAAI,mBACR,iCALmB,OAAO,MAAM,OAC/B,KAAK,QAAQ,OAAO,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CACzD,KAAK,KAGuC,IAC7C,OAAO,MACR;AAGH,QAAO,OAAO;;;;;;;;;;;;;;;;;;;;;;;;AAyBhB,SAAgB,WAAW,YAAkC;AAC3D,KAAI;AAGF,SAAO,eAFQ,aAAa,OAAO,WACX,EAAE,UAAU,EAAE,CACN;UACzB,OAAO;AACd,MAAI,iBAAiB,mBACnB,OAAM;AAER,QAAM,IAAI,mBACR,uCAAuC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IAC7F,MACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCL,eAAsB,gBACpB,YACsB;AACtB,KAAI;AAGF,SAAO,gBADW,MADG,cAAc,OAAO,WAAW,GAC3B,UAAU,EAAE,CACN;UACzB,OAAO;AACd,MAAI,iBAAiB,mBACnB,OAAM;AAER,QAAM,IAAI,mBACR,uCAAuC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IAC7F,MACD;;;;;;;AAQL,SAAgB,cAAoB;AAClC,cAAa,aAAa;AAC1B,eAAc,aAAa"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -70,26 +70,6 @@ declare const HL7v2SettingsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
|
70
70
|
segment?: string | undefined;
|
|
71
71
|
subcomponent?: string | undefined;
|
|
72
72
|
}>>>;
|
|
73
|
-
/**
|
|
74
|
-
* Experimental features for the parser. These features are subject to
|
|
75
|
-
* change and may become defaults in future versions.
|
|
76
|
-
*/
|
|
77
|
-
experimental: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
78
|
-
/**
|
|
79
|
-
* Controls how empty fields/components are represented in the AST.
|
|
80
|
-
*
|
|
81
|
-
* - 'legacy': Empty fields create full structure (Field → Rep → Comp → Sub
|
|
82
|
-
* with value: "")
|
|
83
|
-
* - 'empty': Empty fields have no children (Field with children: [])
|
|
84
|
-
*
|
|
85
|
-
* @default "legacy"
|
|
86
|
-
*/
|
|
87
|
-
emptyMode: z.ZodDefault<z.ZodEnum<["legacy", "empty"]>>;
|
|
88
|
-
}, "strict", z.ZodTypeAny, {
|
|
89
|
-
emptyMode: "legacy" | "empty";
|
|
90
|
-
}, {
|
|
91
|
-
emptyMode?: "legacy" | "empty" | undefined;
|
|
92
|
-
}>>>;
|
|
93
73
|
}, "strict", z.ZodTypeAny, {
|
|
94
74
|
delimiters: {
|
|
95
75
|
component: string;
|
|
@@ -99,9 +79,6 @@ declare const HL7v2SettingsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
|
99
79
|
segment: string;
|
|
100
80
|
subcomponent: string;
|
|
101
81
|
};
|
|
102
|
-
experimental: {
|
|
103
|
-
emptyMode: "legacy" | "empty";
|
|
104
|
-
};
|
|
105
82
|
}, {
|
|
106
83
|
delimiters?: {
|
|
107
84
|
component?: string | undefined;
|
|
@@ -111,9 +88,6 @@ declare const HL7v2SettingsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
|
111
88
|
segment?: string | undefined;
|
|
112
89
|
subcomponent?: string | undefined;
|
|
113
90
|
} | undefined;
|
|
114
|
-
experimental?: {
|
|
115
|
-
emptyMode?: "legacy" | "empty" | undefined;
|
|
116
|
-
} | undefined;
|
|
117
91
|
}>>>;
|
|
118
92
|
export type HL7v2Settings = z.infer<typeof HL7v2SettingsSchema>;
|
|
119
93
|
/**
|
|
@@ -207,26 +181,6 @@ export declare const HL7v2ConfigSchema: z.ZodObject<{
|
|
|
207
181
|
segment?: string | undefined;
|
|
208
182
|
subcomponent?: string | undefined;
|
|
209
183
|
}>>>;
|
|
210
|
-
/**
|
|
211
|
-
* Experimental features for the parser. These features are subject to
|
|
212
|
-
* change and may become defaults in future versions.
|
|
213
|
-
*/
|
|
214
|
-
experimental: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
215
|
-
/**
|
|
216
|
-
* Controls how empty fields/components are represented in the AST.
|
|
217
|
-
*
|
|
218
|
-
* - 'legacy': Empty fields create full structure (Field → Rep → Comp → Sub
|
|
219
|
-
* with value: "")
|
|
220
|
-
* - 'empty': Empty fields have no children (Field with children: [])
|
|
221
|
-
*
|
|
222
|
-
* @default "legacy"
|
|
223
|
-
*/
|
|
224
|
-
emptyMode: z.ZodDefault<z.ZodEnum<["legacy", "empty"]>>;
|
|
225
|
-
}, "strict", z.ZodTypeAny, {
|
|
226
|
-
emptyMode: "legacy" | "empty";
|
|
227
|
-
}, {
|
|
228
|
-
emptyMode?: "legacy" | "empty" | undefined;
|
|
229
|
-
}>>>;
|
|
230
184
|
}, "strict", z.ZodTypeAny, {
|
|
231
185
|
delimiters: {
|
|
232
186
|
component: string;
|
|
@@ -236,9 +190,6 @@ export declare const HL7v2ConfigSchema: z.ZodObject<{
|
|
|
236
190
|
segment: string;
|
|
237
191
|
subcomponent: string;
|
|
238
192
|
};
|
|
239
|
-
experimental: {
|
|
240
|
-
emptyMode: "legacy" | "empty";
|
|
241
|
-
};
|
|
242
193
|
}, {
|
|
243
194
|
delimiters?: {
|
|
244
195
|
component?: string | undefined;
|
|
@@ -248,9 +199,6 @@ export declare const HL7v2ConfigSchema: z.ZodObject<{
|
|
|
248
199
|
segment?: string | undefined;
|
|
249
200
|
subcomponent?: string | undefined;
|
|
250
201
|
} | undefined;
|
|
251
|
-
experimental?: {
|
|
252
|
-
emptyMode?: "legacy" | "empty" | undefined;
|
|
253
|
-
} | undefined;
|
|
254
202
|
}>>>;
|
|
255
203
|
}, "strip", z.ZodTypeAny, {
|
|
256
204
|
settings: {
|
|
@@ -262,9 +210,6 @@ export declare const HL7v2ConfigSchema: z.ZodObject<{
|
|
|
262
210
|
segment: string;
|
|
263
211
|
subcomponent: string;
|
|
264
212
|
};
|
|
265
|
-
experimental: {
|
|
266
|
-
emptyMode: "legacy" | "empty";
|
|
267
|
-
};
|
|
268
213
|
};
|
|
269
214
|
$schema?: string | undefined;
|
|
270
215
|
plugins?: any[] | undefined;
|
|
@@ -280,9 +225,6 @@ export declare const HL7v2ConfigSchema: z.ZodObject<{
|
|
|
280
225
|
segment?: string | undefined;
|
|
281
226
|
subcomponent?: string | undefined;
|
|
282
227
|
} | undefined;
|
|
283
|
-
experimental?: {
|
|
284
|
-
emptyMode?: "legacy" | "empty" | undefined;
|
|
285
|
-
} | undefined;
|
|
286
228
|
} | undefined;
|
|
287
229
|
}>;
|
|
288
230
|
export type HL7v2Config = z.infer<typeof HL7v2ConfigSchema>;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0FxB;;;;;;GAMG;AACH,QAAA,MAAM,mBAAmB;IAErB;;;;;;;;;;OAUG;;QA5FH;;;;WAIG;;QAOH;;;;WAIG;;QAQH;;;;WAIG;;QAOH;;;;WAIG;;QAQH;;;;WAIG;;QAOH;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCO,CAAC;AAEf,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;;IAOH;;;;;;;;;;OAUG;;IASH;;OAEG;;QAzDD;;;;;;;;;;WAUG;;YA5FH;;;;eAIG;;YAOH;;;;eAIG;;YAQH;;;;eAIG;;YAOH;;;;eAIG;;YAQH;;;;eAIG;;YAOH;;;;eAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFL,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
package/dist/schema.js
CHANGED
|
@@ -15,14 +15,43 @@ import { z } from "zod";
|
|
|
15
15
|
* 4. MSH auto-detection (if message starts with MSH)
|
|
16
16
|
*/
|
|
17
17
|
const DelimitersSchema = z.object({
|
|
18
|
+
/**
|
|
19
|
+
* Component separator character.
|
|
20
|
+
*
|
|
21
|
+
* @default "^"
|
|
22
|
+
*/
|
|
18
23
|
component: z.string().length(1).optional().default(DEFAULT_DELIMITERS.component).describe("Component separator character"),
|
|
24
|
+
/**
|
|
25
|
+
* Escape character.
|
|
26
|
+
*
|
|
27
|
+
* @default "\\"
|
|
28
|
+
*/
|
|
19
29
|
escape: z.string().length(1).optional().default(DEFAULT_DELIMITERS.escape).describe("Escape character"),
|
|
30
|
+
/**
|
|
31
|
+
* Field separator character.
|
|
32
|
+
*
|
|
33
|
+
* @default "|"
|
|
34
|
+
*/
|
|
20
35
|
field: z.string().length(1).optional().default(DEFAULT_DELIMITERS.field).describe("Field separator character"),
|
|
36
|
+
/**
|
|
37
|
+
* Repetition separator character.
|
|
38
|
+
*
|
|
39
|
+
* @default "~"
|
|
40
|
+
*/
|
|
21
41
|
repetition: z.string().length(1).optional().default(DEFAULT_DELIMITERS.repetition).describe("Repetition separator character"),
|
|
42
|
+
/**
|
|
43
|
+
* Segment terminator character.
|
|
44
|
+
*
|
|
45
|
+
* @default "\\r"
|
|
46
|
+
*/
|
|
22
47
|
segment: z.string().length(1).optional().default(DEFAULT_DELIMITERS.segment).describe("Segment terminator character"),
|
|
48
|
+
/**
|
|
49
|
+
* Subcomponent separator character.
|
|
50
|
+
*
|
|
51
|
+
* @default "&"
|
|
52
|
+
*/
|
|
23
53
|
subcomponent: z.string().length(1).optional().default(DEFAULT_DELIMITERS.subcomponent).describe("Subcomponent separator character")
|
|
24
54
|
}).strict().optional().default(DEFAULT_DELIMITERS);
|
|
25
|
-
const ExperimentalSchema = z.object({ emptyMode: z.enum(["legacy", "empty"]).default("legacy").describe("Control how empty values are represented in the parser. 'legacy' creates full structure with empty strings, 'empty' creates empty children arrays.") }).strict().optional().default({ emptyMode: "legacy" });
|
|
26
55
|
/**
|
|
27
56
|
* Schema for hl7v2-specific settings (NOT for plugins/linting).
|
|
28
57
|
*
|
|
@@ -30,10 +59,19 @@ const ExperimentalSchema = z.object({ emptyMode: z.enum(["legacy", "empty"]).def
|
|
|
30
59
|
* unified-args configuration files. The `plugins` field is handled
|
|
31
60
|
* by unified-args and should not be validated here.
|
|
32
61
|
*/
|
|
33
|
-
const HL7v2SettingsSchema = z.object({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
62
|
+
const HL7v2SettingsSchema = z.object({
|
|
63
|
+
/**
|
|
64
|
+
* Custom delimiters to use as defaults.
|
|
65
|
+
*
|
|
66
|
+
* These delimiters serve as fallbacks when:
|
|
67
|
+
* - Processing non-MSH message fragments
|
|
68
|
+
* - Working with systems that use non-standard delimiters
|
|
69
|
+
* - CLI/batch processing where all messages use the same delimiters
|
|
70
|
+
*
|
|
71
|
+
* Note: MSH auto-detection will override these if the message starts with
|
|
72
|
+
* MSH.
|
|
73
|
+
*/
|
|
74
|
+
delimiters: DelimitersSchema }).strict().optional().default({});
|
|
37
75
|
/**
|
|
38
76
|
* Full config schema (for documentation/validation).
|
|
39
77
|
*
|
|
@@ -41,8 +79,26 @@ const HL7v2SettingsSchema = z.object({
|
|
|
41
79
|
* We document it here but don't deeply validate its structure.
|
|
42
80
|
*/
|
|
43
81
|
const HL7v2ConfigSchema = z.object({
|
|
82
|
+
/**
|
|
83
|
+
* JSON Schema reference for IDE support. Use:
|
|
84
|
+
* https://raw.githubusercontent.com/rethinkhealth/hl7v2/main/packages/hl7v2-config/schema.json
|
|
85
|
+
*/
|
|
44
86
|
$schema: z.string().url().optional().describe("JSON Schema URL for IDE autocomplete support"),
|
|
87
|
+
/**
|
|
88
|
+
* Plugins configuration - handled by unified-args.
|
|
89
|
+
*
|
|
90
|
+
* Format examples:
|
|
91
|
+
*
|
|
92
|
+
* - ["preset-lint-recommended"]
|
|
93
|
+
* - ["lint-max-message-size", { "maxBytes": 5000000 }]
|
|
94
|
+
* - ["lint-message-version", ["error", { "expression": ">=2.3 <3.0.0" }]]
|
|
95
|
+
*
|
|
96
|
+
* Severity levels: "off" (0), "on"/"warn" (1), "error" (2)
|
|
97
|
+
*/
|
|
45
98
|
plugins: z.array(z.any()).optional().describe("Plugins configuration - handled by unified-args. Format: [pluginName] or [pluginName, options] or [pluginName, [severity, options]]"),
|
|
99
|
+
/**
|
|
100
|
+
* Hl7v2-specific settings (validated by this package).
|
|
101
|
+
*/
|
|
46
102
|
settings: HL7v2SettingsSchema
|
|
47
103
|
});
|
|
48
104
|
//#endregion
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../src/schema.ts"],"sourcesContent":["import { DEFAULT_DELIMITERS } from \"@glion/utils\";\nimport { z } from \"zod\";\n\n/**\n * Schema for delimiter configuration.\n *\n * Each delimiter must be exactly one character. All fields are optional,\n * allowing partial overrides (e.g., only override the field separator).\n *\n * Priority order (lowest to highest):\n *\n * 1. DEFAULT_DELIMITERS (hardcoded in hl7v2-utils)\n * 2. Settings.delimiters (from config file)\n * 3. Opts.delimiters (direct API parameter)\n * 4. MSH auto-detection (if message starts with MSH)\n */\nconst DelimitersSchema = z\n .object({\n /**\n * Component separator character.\n *\n * @default \"^\"\n */\n component: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.component)\n .describe(\"Component separator character\"),\n /**\n * Escape character.\n *\n * @default \"\\\\\"\n */\n escape: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.escape)\n .describe(\"Escape character\"),\n\n /**\n * Field separator character.\n *\n * @default \"|\"\n */\n field: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.field)\n .describe(\"Field separator character\"),\n /**\n * Repetition separator character.\n *\n * @default \"~\"\n */\n repetition: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.repetition)\n .describe(\"Repetition separator character\"),\n\n /**\n * Segment terminator character.\n *\n * @default \"\\\\r\"\n */\n segment: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.segment)\n .describe(\"Segment terminator character\"),\n /**\n * Subcomponent separator character.\n *\n * @default \"&\"\n */\n subcomponent: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.subcomponent)\n .describe(\"Subcomponent separator character\"),\n })\n .strict()\n .optional()\n .default(DEFAULT_DELIMITERS);\n\
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../src/schema.ts"],"sourcesContent":["import { DEFAULT_DELIMITERS } from \"@glion/utils\";\nimport { z } from \"zod\";\n\n/**\n * Schema for delimiter configuration.\n *\n * Each delimiter must be exactly one character. All fields are optional,\n * allowing partial overrides (e.g., only override the field separator).\n *\n * Priority order (lowest to highest):\n *\n * 1. DEFAULT_DELIMITERS (hardcoded in hl7v2-utils)\n * 2. Settings.delimiters (from config file)\n * 3. Opts.delimiters (direct API parameter)\n * 4. MSH auto-detection (if message starts with MSH)\n */\nconst DelimitersSchema = z\n .object({\n /**\n * Component separator character.\n *\n * @default \"^\"\n */\n component: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.component)\n .describe(\"Component separator character\"),\n /**\n * Escape character.\n *\n * @default \"\\\\\"\n */\n escape: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.escape)\n .describe(\"Escape character\"),\n\n /**\n * Field separator character.\n *\n * @default \"|\"\n */\n field: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.field)\n .describe(\"Field separator character\"),\n /**\n * Repetition separator character.\n *\n * @default \"~\"\n */\n repetition: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.repetition)\n .describe(\"Repetition separator character\"),\n\n /**\n * Segment terminator character.\n *\n * @default \"\\\\r\"\n */\n segment: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.segment)\n .describe(\"Segment terminator character\"),\n /**\n * Subcomponent separator character.\n *\n * @default \"&\"\n */\n subcomponent: z\n .string()\n .length(1)\n .optional()\n .default(DEFAULT_DELIMITERS.subcomponent)\n .describe(\"Subcomponent separator character\"),\n })\n .strict()\n .optional()\n .default(DEFAULT_DELIMITERS);\n\n/**\n * Schema for hl7v2-specific settings (NOT for plugins/linting).\n *\n * This schema defines the `settings` field that can be added to\n * unified-args configuration files. The `plugins` field is handled\n * by unified-args and should not be validated here.\n */\nconst HL7v2SettingsSchema = z\n .object({\n /**\n * Custom delimiters to use as defaults.\n *\n * These delimiters serve as fallbacks when:\n * - Processing non-MSH message fragments\n * - Working with systems that use non-standard delimiters\n * - CLI/batch processing where all messages use the same delimiters\n *\n * Note: MSH auto-detection will override these if the message starts with\n * MSH.\n */\n delimiters: DelimitersSchema,\n })\n .strict()\n .optional()\n .default({});\n\nexport type HL7v2Settings = z.infer<typeof HL7v2SettingsSchema>;\n\n/**\n * Full config schema (for documentation/validation).\n *\n * Note: The `plugins` field is handled by unified-args.\n * We document it here but don't deeply validate its structure.\n */\nexport const HL7v2ConfigSchema = z.object({\n /**\n * JSON Schema reference for IDE support. Use:\n * https://raw.githubusercontent.com/rethinkhealth/hl7v2/main/packages/hl7v2-config/schema.json\n */\n $schema: z\n .string()\n .url()\n .optional()\n .describe(\"JSON Schema URL for IDE autocomplete support\"),\n\n /**\n * Plugins configuration - handled by unified-args.\n *\n * Format examples:\n *\n * - [\"preset-lint-recommended\"]\n * - [\"lint-max-message-size\", { \"maxBytes\": 5000000 }]\n * - [\"lint-message-version\", [\"error\", { \"expression\": \">=2.3 <3.0.0\" }]]\n *\n * Severity levels: \"off\" (0), \"on\"/\"warn\" (1), \"error\" (2)\n */\n plugins: z\n .array(z.any())\n .optional()\n .describe(\n \"Plugins configuration - handled by unified-args. \" +\n \"Format: [pluginName] or [pluginName, options] or [pluginName, [severity, options]]\"\n ),\n\n /**\n * Hl7v2-specific settings (validated by this package).\n */\n settings: HL7v2SettingsSchema,\n});\n\nexport type HL7v2Config = z.infer<typeof HL7v2ConfigSchema>;\n\n/** Input type for config (before defaults are applied) */\nexport type HL7v2ConfigInput = z.input<typeof HL7v2ConfigSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,MAAM,mBAAmB,EACtB,OAAO;;;;;;CAMN,WAAW,EACR,QAAQ,CACR,OAAO,EAAE,CACT,UAAU,CACV,QAAQ,mBAAmB,UAAU,CACrC,SAAS,gCAAgC;;;;;;CAM5C,QAAQ,EACL,QAAQ,CACR,OAAO,EAAE,CACT,UAAU,CACV,QAAQ,mBAAmB,OAAO,CAClC,SAAS,mBAAmB;;;;;;CAO/B,OAAO,EACJ,QAAQ,CACR,OAAO,EAAE,CACT,UAAU,CACV,QAAQ,mBAAmB,MAAM,CACjC,SAAS,4BAA4B;;;;;;CAMxC,YAAY,EACT,QAAQ,CACR,OAAO,EAAE,CACT,UAAU,CACV,QAAQ,mBAAmB,WAAW,CACtC,SAAS,iCAAiC;;;;;;CAO7C,SAAS,EACN,QAAQ,CACR,OAAO,EAAE,CACT,UAAU,CACV,QAAQ,mBAAmB,QAAQ,CACnC,SAAS,+BAA+B;;;;;;CAM3C,cAAc,EACX,QAAQ,CACR,OAAO,EAAE,CACT,UAAU,CACV,QAAQ,mBAAmB,aAAa,CACxC,SAAS,mCAAmC;CAChD,CAAC,CACD,QAAQ,CACR,UAAU,CACV,QAAQ,mBAAmB;;;;;;;;AAS9B,MAAM,sBAAsB,EACzB,OAAO;;;;;;;;;;;;AAYN,YAAY,kBACb,CAAC,CACD,QAAQ,CACR,UAAU,CACV,QAAQ,EAAE,CAAC;;;;;;;AAUd,MAAa,oBAAoB,EAAE,OAAO;;;;;CAKxC,SAAS,EACN,QAAQ,CACR,KAAK,CACL,UAAU,CACV,SAAS,+CAA+C;;;;;;;;;;;;CAa3D,SAAS,EACN,MAAM,EAAE,KAAK,CAAC,CACd,UAAU,CACV,SACC,sIAED;;;;CAKH,UAAU;CACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glion/config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Configuration schema and loader for hl7v2",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"config",
|
|
@@ -37,24 +37,23 @@
|
|
|
37
37
|
"cosmiconfig": "9.0.1",
|
|
38
38
|
"unified": "11.0.5",
|
|
39
39
|
"zod": "3.25.76",
|
|
40
|
-
"@glion/utils": "0.
|
|
40
|
+
"@glion/utils": "0.16.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@types/node": "
|
|
44
|
-
"@vitest/coverage-v8": "4.1.
|
|
43
|
+
"@types/node": "25.6.0",
|
|
44
|
+
"@vitest/coverage-v8": "4.1.5",
|
|
45
45
|
"publint": "0.3.18",
|
|
46
|
-
"tsdown": "0.21.
|
|
47
|
-
"typescript": "
|
|
48
|
-
"vitest": "4.1.
|
|
46
|
+
"tsdown": "0.21.10",
|
|
47
|
+
"typescript": "6.0.3",
|
|
48
|
+
"vitest": "4.1.5",
|
|
49
49
|
"zod-to-json-schema": "3.25.0",
|
|
50
|
-
"@glion/
|
|
51
|
-
"@glion/
|
|
52
|
-
"@glion/
|
|
50
|
+
"@glion/tsconfig": "0.16.0",
|
|
51
|
+
"@glion/testing": "0.16.0",
|
|
52
|
+
"@glion/check-readme": "0.16.0"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
55
|
-
"node": ">=
|
|
55
|
+
"node": ">=20"
|
|
56
56
|
},
|
|
57
|
-
"packageManager": "pnpm@10.14.0",
|
|
58
57
|
"scripts": {
|
|
59
58
|
"build": "tsdown && tsc --emitDeclarationOnly && pnpm build:schema",
|
|
60
59
|
"build:schema": "node --input-type=module -e \"import{writeFileSync}from'fs';import{jsonSchema}from'./dist/json-schema.js';writeFileSync('schema.json',JSON.stringify(jsonSchema,null,2));\"",
|
package/schema.json
CHANGED
|
@@ -71,24 +71,6 @@
|
|
|
71
71
|
"segment": "\r",
|
|
72
72
|
"subcomponent": "&"
|
|
73
73
|
}
|
|
74
|
-
},
|
|
75
|
-
"experimental": {
|
|
76
|
-
"type": "object",
|
|
77
|
-
"properties": {
|
|
78
|
-
"emptyMode": {
|
|
79
|
-
"type": "string",
|
|
80
|
-
"enum": [
|
|
81
|
-
"legacy",
|
|
82
|
-
"empty"
|
|
83
|
-
],
|
|
84
|
-
"default": "legacy",
|
|
85
|
-
"description": "Control how empty values are represented in the parser. 'legacy' creates full structure with empty strings, 'empty' creates empty children arrays."
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"additionalProperties": false,
|
|
89
|
-
"default": {
|
|
90
|
-
"emptyMode": "legacy"
|
|
91
|
-
}
|
|
92
74
|
}
|
|
93
75
|
},
|
|
94
76
|
"additionalProperties": false,
|