@cerios/openapi-to-zod 0.6.0 → 1.0.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.
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Common options shared by both request and response contexts
3
+ */
4
+ interface CommonSchemaOptions {
5
+ /**
6
+ * Object validation mode
7
+ * - 'strict': Uses z.strictObject() - no additional properties allowed
8
+ * - 'normal': Uses z.object() - additional properties allowed
9
+ * - 'loose': Uses z.looseObject() - explicitly allows additional properties
10
+ */
11
+ mode?: "strict" | "normal" | "loose";
12
+ /**
13
+ * Whether to add .describe() calls for better error messages
14
+ * @default false
15
+ */
16
+ useDescribe?: boolean;
17
+ /**
18
+ * Whether to include descriptions as JSDoc comments
19
+ */
20
+ includeDescriptions?: boolean;
21
+ }
22
+ /**
23
+ * Request-specific options that can override root-level options
24
+ */
25
+ interface RequestOptions extends CommonSchemaOptions {
26
+ }
27
+ /**
28
+ * Response-specific options that can override root-level options
29
+ */
30
+ interface ResponseOptions extends CommonSchemaOptions {
31
+ }
32
+ interface OpenApiGeneratorOptions {
33
+ /**
34
+ * Object validation mode
35
+ * - 'strict': Uses z.strictObject() - no additional properties allowed
36
+ * - 'normal': Uses z.object() - additional properties allowed
37
+ * - 'loose': Uses z.looseObject() - explicitly allows additional properties
38
+ */
39
+ mode?: "strict" | "normal" | "loose";
40
+ /**
41
+ * Input OpenAPI YAML file path
42
+ */
43
+ input: string;
44
+ /**
45
+ * Output TypeScript file path
46
+ * Optional when using string generation methods (generateString)
47
+ * Required when calling generate() to write to a file
48
+ */
49
+ output?: string;
50
+ /**
51
+ * Whether to include descriptions as JSDoc comments
52
+ */
53
+ includeDescriptions?: boolean;
54
+ /**
55
+ * Whether to add .describe() calls for better error messages
56
+ * @default false
57
+ */
58
+ useDescribe?: boolean;
59
+ /**
60
+ * Schema filtering mode
61
+ * - 'all': Generate all schemas (default)
62
+ * - 'request': Only include schemas suitable for requests (excludes readOnly)
63
+ * - 'response': Only include schemas suitable for responses (excludes writeOnly)
64
+ */
65
+ schemaType?: "all" | "request" | "response";
66
+ /**
67
+ * Prefix to add to all generated schema names
68
+ * @example "api" -> "apiUserSchema"
69
+ */
70
+ prefix?: string;
71
+ /**
72
+ * Suffix to add before "Schema" in generated names
73
+ * @example "dto" -> "userDtoSchema"
74
+ */
75
+ suffix?: string;
76
+ /**
77
+ * Whether to include generation statistics in output file
78
+ * @default true
79
+ */
80
+ showStats?: boolean;
81
+ /**
82
+ * Request-specific options that override root-level options
83
+ * Applied when schemas are used in request contexts
84
+ */
85
+ request?: RequestOptions;
86
+ /**
87
+ * Response-specific options that override root-level options
88
+ * Applied when schemas are used in response contexts
89
+ */
90
+ response?: ResponseOptions;
91
+ /**
92
+ * Filter which operations to include/exclude from generation
93
+ * Useful for generating separate schemas for different API subsets
94
+ *
95
+ * Filtering logic:
96
+ * 1. If no filters specified, all operations are included
97
+ * 2. Empty arrays are treated as "no constraint" (not as "exclude all")
98
+ * 3. Include filters are applied first (allowlist)
99
+ * 4. Exclude filters are applied second (blocklist)
100
+ * 5. Exclude rules always win over include rules
101
+ *
102
+ * Supports glob patterns for paths and operationIds (e.g., "/api/v1/**", "get*")
103
+ *
104
+ * @example
105
+ * // Only generate schemas for user-related endpoints
106
+ * operationFilters: {
107
+ * includeTags: ["users"]
108
+ * }
109
+ *
110
+ * @example
111
+ * // Generate only GET endpoints, excluding deprecated ones
112
+ * operationFilters: {
113
+ * includeMethods: ["get"],
114
+ * excludeDeprecated: true
115
+ * }
116
+ *
117
+ * @example
118
+ * // Generate only v1 API endpoints
119
+ * operationFilters: {
120
+ * includePaths: ["/api/v1/**"]
121
+ * }
122
+ */
123
+ operationFilters?: OperationFilters;
124
+ /**
125
+ * Header parameters to ignore during schema generation
126
+ * Supports glob patterns for flexible matching
127
+ * Case-insensitive matching (HTTP header semantics)
128
+ *
129
+ * @internal Used by Playwright generator
130
+ */
131
+ ignoreHeaders?: string[];
132
+ /**
133
+ * Cache size for pattern regex compilation
134
+ * Higher values improve performance for large specifications with many string patterns
135
+ * @default 1000
136
+ */
137
+ cacheSize?: number;
138
+ /**
139
+ * Batch size for parallel execution
140
+ * Controls how many specifications are processed concurrently in parallel mode
141
+ * Higher values increase memory usage but may improve throughput
142
+ * @default 10
143
+ */
144
+ batchSize?: number;
145
+ }
146
+ /**
147
+ * Operation filtering options
148
+ * Controls which operations from the OpenAPI specification are included in generation
149
+ */
150
+ interface OperationFilters {
151
+ /**
152
+ * Include only operations with these tags
153
+ * If specified, only operations with at least one matching tag are included
154
+ * Empty array = no constraint
155
+ */
156
+ includeTags?: string[];
157
+ /**
158
+ * Exclude operations with these tags
159
+ * Operations with any matching tag are excluded
160
+ * Empty array = no constraint
161
+ */
162
+ excludeTags?: string[];
163
+ /**
164
+ * Include only operations matching these path patterns
165
+ * Supports glob patterns (e.g., "/users/**", "/api/v1/*")
166
+ * Empty array = no constraint
167
+ */
168
+ includePaths?: string[];
169
+ /**
170
+ * Exclude operations matching these path patterns
171
+ * Supports glob patterns (e.g., "/internal/**", "/admin/*")
172
+ * Empty array = no constraint
173
+ */
174
+ excludePaths?: string[];
175
+ /**
176
+ * Include only these HTTP methods
177
+ * Valid values: "get", "post", "put", "patch", "delete", "head", "options"
178
+ * Empty array = no constraint
179
+ */
180
+ includeMethods?: string[];
181
+ /**
182
+ * Exclude these HTTP methods
183
+ * Valid values: "get", "post", "put", "patch", "delete", "head", "options"
184
+ * Empty array = no constraint
185
+ */
186
+ excludeMethods?: string[];
187
+ /**
188
+ * Include only operations matching these operationId patterns
189
+ * Supports glob patterns (e.g., "getUser*", "*Admin")
190
+ * Empty array = no constraint
191
+ */
192
+ includeOperationIds?: string[];
193
+ /**
194
+ * Exclude operations matching these operationId patterns
195
+ * Supports glob patterns (e.g., "deleteUser*", "*Internal")
196
+ * Empty array = no constraint
197
+ */
198
+ excludeOperationIds?: string[];
199
+ /**
200
+ * Whether to exclude deprecated operations
201
+ * @default false
202
+ */
203
+ excludeDeprecated?: boolean;
204
+ }
205
+ interface OpenAPISchema {
206
+ type?: string | string[];
207
+ format?: string;
208
+ enum?: (string | number)[];
209
+ const?: string | number | boolean | null;
210
+ properties?: Record<string, OpenAPISchema>;
211
+ required?: string[];
212
+ items?: OpenAPISchema;
213
+ prefixItems?: OpenAPISchema[];
214
+ allOf?: OpenAPISchema[];
215
+ oneOf?: OpenAPISchema[];
216
+ anyOf?: OpenAPISchema[];
217
+ $ref?: string;
218
+ nullable?: boolean;
219
+ minLength?: number;
220
+ maxLength?: number;
221
+ minimum?: number;
222
+ maximum?: number;
223
+ exclusiveMinimum?: boolean | number;
224
+ exclusiveMaximum?: boolean | number;
225
+ multipleOf?: number;
226
+ pattern?: string;
227
+ description?: string;
228
+ title?: string;
229
+ example?: any;
230
+ examples?: any[];
231
+ additionalProperties?: boolean | OpenAPISchema;
232
+ minProperties?: number;
233
+ maxProperties?: number;
234
+ minItems?: number;
235
+ maxItems?: number;
236
+ uniqueItems?: boolean;
237
+ contains?: OpenAPISchema;
238
+ minContains?: number;
239
+ maxContains?: number;
240
+ discriminator?: {
241
+ propertyName: string;
242
+ mapping?: Record<string, string>;
243
+ };
244
+ readOnly?: boolean;
245
+ writeOnly?: boolean;
246
+ deprecated?: boolean;
247
+ dependentRequired?: Record<string, string[]>;
248
+ dependencies?: Record<string, string[] | OpenAPISchema>;
249
+ patternProperties?: Record<string, OpenAPISchema>;
250
+ propertyNames?: OpenAPISchema;
251
+ contentMediaType?: string;
252
+ contentEncoding?: string;
253
+ not?: OpenAPISchema;
254
+ if?: OpenAPISchema;
255
+ then?: OpenAPISchema;
256
+ else?: OpenAPISchema;
257
+ unevaluatedProperties?: boolean | OpenAPISchema;
258
+ unevaluatedItems?: boolean | OpenAPISchema;
259
+ }
260
+ interface OpenAPISpec {
261
+ components?: {
262
+ schemas?: Record<string, OpenAPISchema>;
263
+ };
264
+ paths?: Record<string, any>;
265
+ }
266
+ /**
267
+ * Execution mode for batch processing
268
+ * - 'parallel': Process all specifications concurrently (default, faster)
269
+ * - 'sequential': Process specifications one at a time (safer for resource constraints)
270
+ */
271
+ type ExecutionMode = "parallel" | "sequential";
272
+ /**
273
+ * Root configuration file structure
274
+ */
275
+ interface ConfigFile {
276
+ /**
277
+ * Global default options applied to all specifications
278
+ * Can be overridden by individual specification configurations
279
+ */
280
+ defaults?: Partial<Omit<OpenApiGeneratorOptions, "input" | "output">>;
281
+ /**
282
+ * Array of OpenAPI specifications to process
283
+ * Each specification must have input and output paths
284
+ */
285
+ specs: OpenApiGeneratorOptions[];
286
+ /**
287
+ * Execution mode for batch processing
288
+ * @default "parallel"
289
+ */
290
+ executionMode?: ExecutionMode;
291
+ }
292
+ /**
293
+ * Helper function for type-safe config file creation
294
+ * Provides IDE autocomplete and type checking for config files
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * import { defineConfig } from '@cerios/openapi-to-zod';
299
+ *
300
+ * export default defineConfig({
301
+ * defaults: {
302
+ * mode: 'strict',
303
+ * includeDescriptions: true
304
+ * },
305
+ * specs: [
306
+ * { input: 'api-v1.yaml', output: 'schemas/v1.ts' },
307
+ * { input: 'api-v2.yaml', output: 'schemas/v2.ts', mode: 'normal' }
308
+ * ]
309
+ * });
310
+ * ```
311
+ */
312
+ declare function defineConfig(config: ConfigFile): ConfigFile;
313
+
314
+ export { type CommonSchemaOptions as C, type ExecutionMode as E, type OpenApiGeneratorOptions as O, type RequestOptions as R, type ConfigFile as a, type OpenAPISchema as b, type OpenAPISpec as c, type OperationFilters as d, type ResponseOptions as e, defineConfig as f };
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Common options shared by both request and response contexts
3
+ */
4
+ interface CommonSchemaOptions {
5
+ /**
6
+ * Object validation mode
7
+ * - 'strict': Uses z.strictObject() - no additional properties allowed
8
+ * - 'normal': Uses z.object() - additional properties allowed
9
+ * - 'loose': Uses z.looseObject() - explicitly allows additional properties
10
+ */
11
+ mode?: "strict" | "normal" | "loose";
12
+ /**
13
+ * Whether to add .describe() calls for better error messages
14
+ * @default false
15
+ */
16
+ useDescribe?: boolean;
17
+ /**
18
+ * Whether to include descriptions as JSDoc comments
19
+ */
20
+ includeDescriptions?: boolean;
21
+ }
22
+ /**
23
+ * Request-specific options that can override root-level options
24
+ */
25
+ interface RequestOptions extends CommonSchemaOptions {
26
+ }
27
+ /**
28
+ * Response-specific options that can override root-level options
29
+ */
30
+ interface ResponseOptions extends CommonSchemaOptions {
31
+ }
32
+ interface OpenApiGeneratorOptions {
33
+ /**
34
+ * Object validation mode
35
+ * - 'strict': Uses z.strictObject() - no additional properties allowed
36
+ * - 'normal': Uses z.object() - additional properties allowed
37
+ * - 'loose': Uses z.looseObject() - explicitly allows additional properties
38
+ */
39
+ mode?: "strict" | "normal" | "loose";
40
+ /**
41
+ * Input OpenAPI YAML file path
42
+ */
43
+ input: string;
44
+ /**
45
+ * Output TypeScript file path
46
+ * Optional when using string generation methods (generateString)
47
+ * Required when calling generate() to write to a file
48
+ */
49
+ output?: string;
50
+ /**
51
+ * Whether to include descriptions as JSDoc comments
52
+ */
53
+ includeDescriptions?: boolean;
54
+ /**
55
+ * Whether to add .describe() calls for better error messages
56
+ * @default false
57
+ */
58
+ useDescribe?: boolean;
59
+ /**
60
+ * Schema filtering mode
61
+ * - 'all': Generate all schemas (default)
62
+ * - 'request': Only include schemas suitable for requests (excludes readOnly)
63
+ * - 'response': Only include schemas suitable for responses (excludes writeOnly)
64
+ */
65
+ schemaType?: "all" | "request" | "response";
66
+ /**
67
+ * Prefix to add to all generated schema names
68
+ * @example "api" -> "apiUserSchema"
69
+ */
70
+ prefix?: string;
71
+ /**
72
+ * Suffix to add before "Schema" in generated names
73
+ * @example "dto" -> "userDtoSchema"
74
+ */
75
+ suffix?: string;
76
+ /**
77
+ * Whether to include generation statistics in output file
78
+ * @default true
79
+ */
80
+ showStats?: boolean;
81
+ /**
82
+ * Request-specific options that override root-level options
83
+ * Applied when schemas are used in request contexts
84
+ */
85
+ request?: RequestOptions;
86
+ /**
87
+ * Response-specific options that override root-level options
88
+ * Applied when schemas are used in response contexts
89
+ */
90
+ response?: ResponseOptions;
91
+ /**
92
+ * Filter which operations to include/exclude from generation
93
+ * Useful for generating separate schemas for different API subsets
94
+ *
95
+ * Filtering logic:
96
+ * 1. If no filters specified, all operations are included
97
+ * 2. Empty arrays are treated as "no constraint" (not as "exclude all")
98
+ * 3. Include filters are applied first (allowlist)
99
+ * 4. Exclude filters are applied second (blocklist)
100
+ * 5. Exclude rules always win over include rules
101
+ *
102
+ * Supports glob patterns for paths and operationIds (e.g., "/api/v1/**", "get*")
103
+ *
104
+ * @example
105
+ * // Only generate schemas for user-related endpoints
106
+ * operationFilters: {
107
+ * includeTags: ["users"]
108
+ * }
109
+ *
110
+ * @example
111
+ * // Generate only GET endpoints, excluding deprecated ones
112
+ * operationFilters: {
113
+ * includeMethods: ["get"],
114
+ * excludeDeprecated: true
115
+ * }
116
+ *
117
+ * @example
118
+ * // Generate only v1 API endpoints
119
+ * operationFilters: {
120
+ * includePaths: ["/api/v1/**"]
121
+ * }
122
+ */
123
+ operationFilters?: OperationFilters;
124
+ /**
125
+ * Header parameters to ignore during schema generation
126
+ * Supports glob patterns for flexible matching
127
+ * Case-insensitive matching (HTTP header semantics)
128
+ *
129
+ * @internal Used by Playwright generator
130
+ */
131
+ ignoreHeaders?: string[];
132
+ /**
133
+ * Cache size for pattern regex compilation
134
+ * Higher values improve performance for large specifications with many string patterns
135
+ * @default 1000
136
+ */
137
+ cacheSize?: number;
138
+ /**
139
+ * Batch size for parallel execution
140
+ * Controls how many specifications are processed concurrently in parallel mode
141
+ * Higher values increase memory usage but may improve throughput
142
+ * @default 10
143
+ */
144
+ batchSize?: number;
145
+ }
146
+ /**
147
+ * Operation filtering options
148
+ * Controls which operations from the OpenAPI specification are included in generation
149
+ */
150
+ interface OperationFilters {
151
+ /**
152
+ * Include only operations with these tags
153
+ * If specified, only operations with at least one matching tag are included
154
+ * Empty array = no constraint
155
+ */
156
+ includeTags?: string[];
157
+ /**
158
+ * Exclude operations with these tags
159
+ * Operations with any matching tag are excluded
160
+ * Empty array = no constraint
161
+ */
162
+ excludeTags?: string[];
163
+ /**
164
+ * Include only operations matching these path patterns
165
+ * Supports glob patterns (e.g., "/users/**", "/api/v1/*")
166
+ * Empty array = no constraint
167
+ */
168
+ includePaths?: string[];
169
+ /**
170
+ * Exclude operations matching these path patterns
171
+ * Supports glob patterns (e.g., "/internal/**", "/admin/*")
172
+ * Empty array = no constraint
173
+ */
174
+ excludePaths?: string[];
175
+ /**
176
+ * Include only these HTTP methods
177
+ * Valid values: "get", "post", "put", "patch", "delete", "head", "options"
178
+ * Empty array = no constraint
179
+ */
180
+ includeMethods?: string[];
181
+ /**
182
+ * Exclude these HTTP methods
183
+ * Valid values: "get", "post", "put", "patch", "delete", "head", "options"
184
+ * Empty array = no constraint
185
+ */
186
+ excludeMethods?: string[];
187
+ /**
188
+ * Include only operations matching these operationId patterns
189
+ * Supports glob patterns (e.g., "getUser*", "*Admin")
190
+ * Empty array = no constraint
191
+ */
192
+ includeOperationIds?: string[];
193
+ /**
194
+ * Exclude operations matching these operationId patterns
195
+ * Supports glob patterns (e.g., "deleteUser*", "*Internal")
196
+ * Empty array = no constraint
197
+ */
198
+ excludeOperationIds?: string[];
199
+ /**
200
+ * Whether to exclude deprecated operations
201
+ * @default false
202
+ */
203
+ excludeDeprecated?: boolean;
204
+ }
205
+ interface OpenAPISchema {
206
+ type?: string | string[];
207
+ format?: string;
208
+ enum?: (string | number)[];
209
+ const?: string | number | boolean | null;
210
+ properties?: Record<string, OpenAPISchema>;
211
+ required?: string[];
212
+ items?: OpenAPISchema;
213
+ prefixItems?: OpenAPISchema[];
214
+ allOf?: OpenAPISchema[];
215
+ oneOf?: OpenAPISchema[];
216
+ anyOf?: OpenAPISchema[];
217
+ $ref?: string;
218
+ nullable?: boolean;
219
+ minLength?: number;
220
+ maxLength?: number;
221
+ minimum?: number;
222
+ maximum?: number;
223
+ exclusiveMinimum?: boolean | number;
224
+ exclusiveMaximum?: boolean | number;
225
+ multipleOf?: number;
226
+ pattern?: string;
227
+ description?: string;
228
+ title?: string;
229
+ example?: any;
230
+ examples?: any[];
231
+ additionalProperties?: boolean | OpenAPISchema;
232
+ minProperties?: number;
233
+ maxProperties?: number;
234
+ minItems?: number;
235
+ maxItems?: number;
236
+ uniqueItems?: boolean;
237
+ contains?: OpenAPISchema;
238
+ minContains?: number;
239
+ maxContains?: number;
240
+ discriminator?: {
241
+ propertyName: string;
242
+ mapping?: Record<string, string>;
243
+ };
244
+ readOnly?: boolean;
245
+ writeOnly?: boolean;
246
+ deprecated?: boolean;
247
+ dependentRequired?: Record<string, string[]>;
248
+ dependencies?: Record<string, string[] | OpenAPISchema>;
249
+ patternProperties?: Record<string, OpenAPISchema>;
250
+ propertyNames?: OpenAPISchema;
251
+ contentMediaType?: string;
252
+ contentEncoding?: string;
253
+ not?: OpenAPISchema;
254
+ if?: OpenAPISchema;
255
+ then?: OpenAPISchema;
256
+ else?: OpenAPISchema;
257
+ unevaluatedProperties?: boolean | OpenAPISchema;
258
+ unevaluatedItems?: boolean | OpenAPISchema;
259
+ }
260
+ interface OpenAPISpec {
261
+ components?: {
262
+ schemas?: Record<string, OpenAPISchema>;
263
+ };
264
+ paths?: Record<string, any>;
265
+ }
266
+ /**
267
+ * Execution mode for batch processing
268
+ * - 'parallel': Process all specifications concurrently (default, faster)
269
+ * - 'sequential': Process specifications one at a time (safer for resource constraints)
270
+ */
271
+ type ExecutionMode = "parallel" | "sequential";
272
+ /**
273
+ * Root configuration file structure
274
+ */
275
+ interface ConfigFile {
276
+ /**
277
+ * Global default options applied to all specifications
278
+ * Can be overridden by individual specification configurations
279
+ */
280
+ defaults?: Partial<Omit<OpenApiGeneratorOptions, "input" | "output">>;
281
+ /**
282
+ * Array of OpenAPI specifications to process
283
+ * Each specification must have input and output paths
284
+ */
285
+ specs: OpenApiGeneratorOptions[];
286
+ /**
287
+ * Execution mode for batch processing
288
+ * @default "parallel"
289
+ */
290
+ executionMode?: ExecutionMode;
291
+ }
292
+ /**
293
+ * Helper function for type-safe config file creation
294
+ * Provides IDE autocomplete and type checking for config files
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * import { defineConfig } from '@cerios/openapi-to-zod';
299
+ *
300
+ * export default defineConfig({
301
+ * defaults: {
302
+ * mode: 'strict',
303
+ * includeDescriptions: true
304
+ * },
305
+ * specs: [
306
+ * { input: 'api-v1.yaml', output: 'schemas/v1.ts' },
307
+ * { input: 'api-v2.yaml', output: 'schemas/v2.ts', mode: 'normal' }
308
+ * ]
309
+ * });
310
+ * ```
311
+ */
312
+ declare function defineConfig(config: ConfigFile): ConfigFile;
313
+
314
+ export { type CommonSchemaOptions as C, type ExecutionMode as E, type OpenApiGeneratorOptions as O, type RequestOptions as R, type ConfigFile as a, type OpenAPISchema as b, type OpenAPISpec as c, type OperationFilters as d, type ResponseOptions as e, defineConfig as f };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerios/openapi-to-zod",
3
- "version": "0.6.0",
3
+ "version": "1.0.0",
4
4
  "author": "Ronald Veth - Cerios",
5
5
  "description": "Generate Zod schemas from OpenAPI specifications. A TypeScript code generator that converts OpenAPI/Swagger YAML definitions into type-safe Zod validation schemas.",
6
6
  "license": "MIT",
@@ -25,6 +25,16 @@
25
25
  "default": "./dist/index.js"
26
26
  }
27
27
  },
28
+ "./internal": {
29
+ "import": {
30
+ "types": "./dist/internal.d.mts",
31
+ "default": "./dist/internal.mjs"
32
+ },
33
+ "require": {
34
+ "types": "./dist/internal.d.ts",
35
+ "default": "./dist/internal.js"
36
+ }
37
+ },
28
38
  "./package.json": "./package.json"
29
39
  },
30
40
  "bugs": {
@@ -44,33 +54,34 @@
44
54
  "compile": "tsc --noEmit",
45
55
  "dev": "tsup --watch",
46
56
  "lint": "biome lint",
57
+ "pack": "npm pack --pack-destination=../..",
47
58
  "prepare": "husky",
48
59
  "test": "vitest run",
49
60
  "test:generate": "node dist/cli.js -i src/phx-case-management-api.openapi.yaml -o output/schemas.ts",
50
61
  "update-all-packages": "npx npm-check-updates -u && npm i"
51
62
  },
52
63
  "dependencies": {
53
- "commander": "^12.1.0",
64
+ "commander": "^14.0.2",
54
65
  "cosmiconfig": "^9.0.0",
55
66
  "esbuild": "^0.27.1",
56
- "minimatch": "^10.0.1",
57
- "yaml": "^2.6.1"
67
+ "minimatch": "^10.1.1",
68
+ "yaml": "^2.8.2"
58
69
  },
59
70
  "devDependencies": {
60
71
  "@arethetypeswrong/cli": "^0.18.2",
61
- "@biomejs/biome": "2.3.6",
62
- "@changesets/cli": "^2.29.7",
63
- "@types/node": "^24.10.1",
72
+ "@biomejs/biome": "2.3.9",
73
+ "@changesets/cli": "^2.29.8",
74
+ "@types/node": "^25.0.2",
64
75
  "@types/prompts": "^2.4.9",
65
76
  "husky": "^9.1.7",
66
- "lint-staged": "^16.2.6",
67
- "npm-check-updates": "^19.1.2",
77
+ "lint-staged": "^16.2.7",
78
+ "npm-check-updates": "^19.2.0",
68
79
  "prompts": "^2.4.2",
69
80
  "tsup": "^8.5.1",
70
81
  "tsx": "^4.21.0",
71
82
  "typescript": "^5.9.3",
72
83
  "vitest": "^4.0.15",
73
- "zod": "^4.1.13"
84
+ "zod": "^4.2.0"
74
85
  },
75
86
  "peerDependencies": {
76
87
  "zod": "^4.0.0"