@jakubmazanec/zod-utils 1.0.0-a500263

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE.md +840 -0
  2. package/README.md +38 -0
  3. package/dist/main.d.ts +2 -0
  4. package/dist/main.js +4 -0
  5. package/dist/main.js.map +1 -0
  6. package/dist/types/Json.d.ts +8 -0
  7. package/dist/types/Json.js +14 -0
  8. package/dist/types/Json.js.map +1 -0
  9. package/dist/types/PackageJson.d.ts +517 -0
  10. package/dist/types/PackageJson.js +292 -0
  11. package/dist/types/PackageJson.js.map +1 -0
  12. package/dist/types/TsconfigJson.d.ts +609 -0
  13. package/dist/types/TsconfigJson.js +338 -0
  14. package/dist/types/TsconfigJson.js.map +1 -0
  15. package/dist/types.d.ts +3 -0
  16. package/dist/types.js +5 -0
  17. package/dist/types.js.map +1 -0
  18. package/dist/utils/is.d.ts +2 -0
  19. package/dist/utils/is.js +5 -0
  20. package/dist/utils/is.js.map +1 -0
  21. package/dist/utils/isPackageJson.d.ts +2 -0
  22. package/dist/utils/isPackageJson.js +6 -0
  23. package/dist/utils/isPackageJson.js.map +1 -0
  24. package/dist/utils/isTsconfigJson.d.ts +2 -0
  25. package/dist/utils/isTsconfigJson.js +6 -0
  26. package/dist/utils/isTsconfigJson.js.map +1 -0
  27. package/dist/utils/readFile.d.ts +11 -0
  28. package/dist/utils/readFile.js +16 -0
  29. package/dist/utils/readFile.js.map +1 -0
  30. package/dist/utils/readJson.d.ts +10 -0
  31. package/dist/utils/readJson.js +7 -0
  32. package/dist/utils/readJson.js.map +1 -0
  33. package/dist/utils/readPackageJson.d.ts +11 -0
  34. package/dist/utils/readPackageJson.js +7 -0
  35. package/dist/utils/readPackageJson.js.map +1 -0
  36. package/dist/utils/zodIssuesToString.d.ts +2 -0
  37. package/dist/utils/zodIssuesToString.js +30 -0
  38. package/dist/utils/zodIssuesToString.js.map +1 -0
  39. package/dist/utils.d.ts +7 -0
  40. package/dist/utils.js +9 -0
  41. package/dist/utils.js.map +1 -0
  42. package/package.json +43 -0
  43. package/src/main.ts +2 -0
  44. package/src/types/Json.ts +11 -0
  45. package/src/types/PackageJson.ts +294 -0
  46. package/src/types/TsconfigJson.ts +346 -0
  47. package/src/types.ts +3 -0
  48. package/src/utils/is.ts +5 -0
  49. package/src/utils/isPackageJson.ts +5 -0
  50. package/src/utils/isTsconfigJson.ts +5 -0
  51. package/src/utils/readFile.ts +40 -0
  52. package/src/utils/readJson.ts +31 -0
  53. package/src/utils/readPackageJson.ts +26 -0
  54. package/src/utils/zodIssuesToString.ts +52 -0
  55. package/src/utils.ts +7 -0
@@ -0,0 +1,338 @@
1
+ import * as z from 'zod';
2
+ let jsxSchema = z.enum([
3
+ 'preserve',
4
+ 'react',
5
+ 'react-jsx',
6
+ 'react-jsxdev',
7
+ 'react-native'
8
+ ]);
9
+ let moduleSchema = z.enum([
10
+ 'CommonJS',
11
+ 'AMD',
12
+ 'System',
13
+ 'UMD',
14
+ 'ES6',
15
+ 'ES2015',
16
+ 'ES2020',
17
+ 'ESNext',
18
+ 'None',
19
+ 'commonjs',
20
+ 'amd',
21
+ 'system',
22
+ 'umd',
23
+ 'es6',
24
+ 'es2015',
25
+ 'es2020',
26
+ 'esnext',
27
+ 'none'
28
+ ]);
29
+ let newLineSchema = z.enum([
30
+ 'CRLF',
31
+ 'LF',
32
+ 'crlf',
33
+ 'lf'
34
+ ]);
35
+ let targetSchema = z.enum([
36
+ 'ES3',
37
+ 'ES5',
38
+ 'ES6',
39
+ 'ES2015',
40
+ 'ES2016',
41
+ 'ES2017',
42
+ 'ES2018',
43
+ 'ES2019',
44
+ 'ES2020',
45
+ 'ES2021',
46
+ 'ESNext',
47
+ 'es3',
48
+ 'es5',
49
+ 'es6',
50
+ 'es2015',
51
+ 'es2016',
52
+ 'es2017',
53
+ 'es2018',
54
+ 'es2019',
55
+ 'es2020',
56
+ 'es2021',
57
+ 'esnext'
58
+ ]);
59
+ let libSchema = z.enum([
60
+ 'ES5',
61
+ 'ES6',
62
+ 'ES7',
63
+ 'ES2015',
64
+ 'ES2015.Collection',
65
+ 'ES2015.Core',
66
+ 'ES2015.Generator',
67
+ 'ES2015.Iterable',
68
+ 'ES2015.Promise',
69
+ 'ES2015.Proxy',
70
+ 'ES2015.Reflect',
71
+ 'ES2015.Symbol.WellKnown',
72
+ 'ES2015.Symbol',
73
+ 'ES2016',
74
+ 'ES2016.Array.Include',
75
+ 'ES2017',
76
+ 'ES2017.Intl',
77
+ 'ES2017.Object',
78
+ 'ES2017.SharedMemory',
79
+ 'ES2017.String',
80
+ 'ES2017.TypedArrays',
81
+ 'ES2018',
82
+ 'ES2018.AsyncGenerator',
83
+ 'ES2018.AsyncIterable',
84
+ 'ES2018.Intl',
85
+ 'ES2018.Promise',
86
+ 'ES2018.Regexp',
87
+ 'ES2019',
88
+ 'ES2019.Array',
89
+ 'ES2019.Object',
90
+ 'ES2019.String',
91
+ 'ES2019.Symbol',
92
+ 'ES2020',
93
+ 'ES2020.BigInt',
94
+ 'ES2020.Promise',
95
+ 'ES2020.String',
96
+ 'ES2020.Symbol.WellKnown',
97
+ 'ES2020.SharedMemory',
98
+ 'ES2020.Intl',
99
+ 'ES2021',
100
+ 'ES2021.Promise',
101
+ 'ES2021.String',
102
+ 'ES2021.WeakRef',
103
+ 'ESNext',
104
+ 'ESNext.Array',
105
+ 'ESNext.AsyncIterable',
106
+ 'ESNext.BigInt',
107
+ 'ESNext.Intl',
108
+ 'ESNext.Promise',
109
+ 'ESNext.String',
110
+ 'ESNext.Symbol',
111
+ 'ESNext.WeakRef',
112
+ 'DOM',
113
+ 'DOM.Iterable',
114
+ 'ScriptHost',
115
+ 'WebWorker',
116
+ 'WebWorker.ImportScripts',
117
+ 'WebWorker.Iterable',
118
+ 'es5',
119
+ 'es6',
120
+ 'es7',
121
+ 'es2015',
122
+ 'es2015.collection',
123
+ 'es2015.core',
124
+ 'es2015.generator',
125
+ 'es2015.iterable',
126
+ 'es2015.promise',
127
+ 'es2015.proxy',
128
+ 'es2015.reflect',
129
+ 'es2015.symbol.wellknown',
130
+ 'es2015.symbol',
131
+ 'es2016',
132
+ 'es2016.array.include',
133
+ 'es2017',
134
+ 'es2017.intl',
135
+ 'es2017.object',
136
+ 'es2017.sharedmemory',
137
+ 'es2017.string',
138
+ 'es2017.typedarrays',
139
+ 'es2018',
140
+ 'es2018.asyncgenerator',
141
+ 'es2018.asynciterable',
142
+ 'es2018.intl',
143
+ 'es2018.promise',
144
+ 'es2018.regexp',
145
+ 'es2019',
146
+ 'es2019.array',
147
+ 'es2019.object',
148
+ 'es2019.string',
149
+ 'es2019.symbol',
150
+ 'es2020',
151
+ 'es2020.bigint',
152
+ 'es2020.promise',
153
+ 'es2020.string',
154
+ 'es2020.symbol.wellknown',
155
+ 'es2020.sharedmemory',
156
+ 'es2020.intl',
157
+ 'es2021',
158
+ 'es2021.promise',
159
+ 'es2021.string',
160
+ 'es2021.weakref',
161
+ 'esnext',
162
+ 'esnext.array',
163
+ 'esnext.asynciterable',
164
+ 'esnext.bigint',
165
+ 'esnext.intl',
166
+ 'esnext.promise',
167
+ 'esnext.string',
168
+ 'esnext.symbol',
169
+ 'esnext.weakref',
170
+ 'dom',
171
+ 'dom.iterable',
172
+ 'scripthost',
173
+ 'webworker',
174
+ 'webworker.importscripts',
175
+ 'webworker.iterable'
176
+ ]);
177
+ let pluginSchema = z.object({
178
+ name: z.string().optional()
179
+ }).strict().and(z.record(z.unknown()));
180
+ let importsNotUsedAsValuesSchema = z.enum([
181
+ 'remove',
182
+ 'preserve',
183
+ 'error'
184
+ ]);
185
+ let fallbackPollingSchema = z.enum([
186
+ 'fixedPollingInterval',
187
+ 'priorityPollingInterval',
188
+ 'dynamicPriorityPolling',
189
+ 'fixedInterval',
190
+ 'priorityInterval',
191
+ 'dynamicPriority',
192
+ 'fixedChunkSize'
193
+ ]);
194
+ let watchDirectory = z.enum([
195
+ 'useFsEvents',
196
+ 'fixedPollingInterval',
197
+ 'dynamicPriorityPolling',
198
+ 'fixedChunkSizePolling'
199
+ ]);
200
+ let watchFileSchema = z.enum([
201
+ 'fixedPollingInterval',
202
+ 'priorityPollingInterval',
203
+ 'dynamicPriorityPolling',
204
+ 'useFsEvents',
205
+ 'useFsEventsOnParentDirectory',
206
+ 'fixedChunkSizePolling'
207
+ ]);
208
+ let compilerOptionsSchema = z.object({
209
+ allowJs: z.boolean().optional(),
210
+ allowSyntheticDefaultImports: z.boolean().optional(),
211
+ allowUmdGlobalAccess: z.boolean().optional(),
212
+ allowUnreachableCode: z.boolean().optional(),
213
+ allowUnusedLabels: z.boolean().optional(),
214
+ alwaysStrict: z.boolean().optional(),
215
+ assumeChangesOnlyAffectDirectDependencies: z.boolean().optional(),
216
+ baseUrl: z.string().optional(),
217
+ charset: z.string().optional(),
218
+ checkJs: z.boolean().optional(),
219
+ composite: z.boolean().optional(),
220
+ declaration: z.boolean().optional(),
221
+ declarationDir: z.string().optional(),
222
+ declarationMap: z.boolean().optional(),
223
+ diagnostics: z.boolean().optional(),
224
+ disableReferencedProjectLoad: z.boolean().optional(),
225
+ disableSizeLimit: z.boolean().optional(),
226
+ disableSolutionSearching: z.boolean().optional(),
227
+ disableSourceOfProjectReferenceRedirect: z.boolean().optional(),
228
+ downlevelIteration: z.boolean().optional(),
229
+ emitBOM: z.boolean().optional(),
230
+ emitDeclarationOnly: z.boolean().optional(),
231
+ emitDecoratorMetadata: z.boolean().optional(),
232
+ esModuleInterop: z.boolean().optional(),
233
+ exactOptionalPropertyTypes: z.boolean().optional(),
234
+ experimentalDecorators: z.boolean().optional(),
235
+ explainFiles: z.boolean().optional(),
236
+ extendedDiagnostics: z.boolean().optional(),
237
+ fallbackPolling: fallbackPollingSchema.optional(),
238
+ forceConsistentCasingInFileNames: z.boolean().optional(),
239
+ generateCpuProfile: z.string().optional(),
240
+ importHelpers: z.boolean().optional(),
241
+ importsNotUsedAsValues: importsNotUsedAsValuesSchema.optional(),
242
+ incremental: z.boolean().optional(),
243
+ inlineSourceMap: z.boolean().optional(),
244
+ inlineSources: z.boolean().optional(),
245
+ isolatedModules: z.boolean().optional(),
246
+ jsx: jsxSchema.optional(),
247
+ jsxFactory: z.string().optional(),
248
+ jsxFragmentFactory: z.string().optional(),
249
+ jsxImportSource: z.string().optional(),
250
+ keyofStringsOnly: z.boolean().optional(),
251
+ lib: libSchema.array().optional(),
252
+ listEmittedFiles: z.boolean().optional(),
253
+ listFiles: z.boolean().optional(),
254
+ listFilesOnly: z.boolean().optional(),
255
+ mapRoot: z.string().optional(),
256
+ maxNodeModuleJsDepth: z.number().optional(),
257
+ module: moduleSchema.optional(),
258
+ moduleResolution: z.enum([
259
+ 'classic',
260
+ 'node'
261
+ ]).optional(),
262
+ newLine: newLineSchema.optional(),
263
+ noEmit: z.boolean().optional(),
264
+ noEmitHelpers: z.boolean().optional(),
265
+ noEmitOnError: z.boolean().optional(),
266
+ noErrorTruncation: z.boolean().optional(),
267
+ noFallthroughCasesInSwitch: z.boolean().optional(),
268
+ noImplicitAny: z.boolean().optional(),
269
+ noImplicitOverride: z.boolean().optional(),
270
+ noImplicitReturns: z.boolean().optional(),
271
+ noImplicitThis: z.boolean().optional(),
272
+ noImplicitUseStrict: z.boolean().optional(),
273
+ noLib: z.boolean().optional(),
274
+ noPropertyAccessFromIndexSignature: z.boolean().optional(),
275
+ noResolve: z.boolean().optional(),
276
+ noStrictGenericChecks: z.boolean().optional(),
277
+ noUncheckedIndexedAccess: z.boolean().optional(),
278
+ noUnusedLocals: z.boolean().optional(),
279
+ noUnusedParameters: z.boolean().optional(),
280
+ outDir: z.string().optional(),
281
+ outFile: z.string().optional(),
282
+ paths: z.record(z.string().array()).optional(),
283
+ plugins: pluginSchema.array().optional(),
284
+ preserveConstEnums: z.boolean().optional(),
285
+ preserveSymlinks: z.boolean().optional(),
286
+ preserveWatchOutput: z.boolean().optional(),
287
+ pretty: z.boolean().optional(),
288
+ reactNamespace: z.string().optional(),
289
+ removeComments: z.boolean().optional(),
290
+ resolveJsonModule: z.boolean().optional(),
291
+ rootDir: z.string().optional(),
292
+ rootDirs: z.string().array().optional(),
293
+ skipDefaultLibCheck: z.boolean().optional(),
294
+ skipLibCheck: z.boolean().optional(),
295
+ sourceMap: z.boolean().optional(),
296
+ sourceRoot: z.string().optional(),
297
+ strict: z.boolean().optional(),
298
+ strictBindCallApply: z.boolean().optional(),
299
+ strictFunctionTypes: z.boolean().optional(),
300
+ strictNullChecks: z.boolean().optional(),
301
+ strictPropertyInitialization: z.boolean().optional(),
302
+ stripInternal: z.boolean().optional(),
303
+ suppressExcessPropertyErrors: z.boolean().optional(),
304
+ suppressImplicitAnyIndexErrors: z.boolean().optional(),
305
+ target: targetSchema.optional(),
306
+ traceResolution: z.boolean().optional(),
307
+ tsBuildInfoFile: z.string().optional(),
308
+ typeRoots: z.string().array().optional(),
309
+ types: z.string().array().optional(),
310
+ useDefineForClassFields: z.boolean().optional(),
311
+ useUnknownInCatchVariables: z.boolean().optional(),
312
+ watch: z.boolean().optional(),
313
+ watchDirectory: watchDirectory.optional(),
314
+ watchFile: watchFileSchema.optional()
315
+ }).strict();
316
+ let typeAcquisitionSchema = z.object({
317
+ enable: z.boolean().optional(),
318
+ include: z.string().array().optional(),
319
+ exclude: z.string().array().optional()
320
+ }).strict();
321
+ let referencesSchema = z.object({
322
+ path: z.string(),
323
+ originalPath: z.string().optional(),
324
+ prepend: z.boolean().optional(),
325
+ circular: z.boolean().optional()
326
+ }).strict();
327
+ export const tsconfigJsonSchema = z.object({
328
+ compileOnSave: z.boolean().optional(),
329
+ compilerOptions: compilerOptionsSchema.optional(),
330
+ exclude: z.string().array().optional(),
331
+ extends: z.string().optional(),
332
+ files: z.string().array().optional(),
333
+ include: z.string().array().optional(),
334
+ references: referencesSchema.array().optional(),
335
+ typeAcquisition: typeAcquisitionSchema.optional()
336
+ }).strict();
337
+
338
+ //# sourceMappingURL=TsconfigJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/TsconfigJson.ts"],"sourcesContent":["import * as z from 'zod';\n\nlet jsxSchema = z.enum(['preserve', 'react', 'react-jsx', 'react-jsxdev', 'react-native']);\n\nlet moduleSchema = z.enum([\n 'CommonJS',\n 'AMD',\n 'System',\n 'UMD',\n 'ES6',\n 'ES2015',\n 'ES2020',\n 'ESNext',\n 'None',\n 'commonjs',\n 'amd',\n 'system',\n 'umd',\n 'es6',\n 'es2015',\n 'es2020',\n 'esnext',\n 'none',\n]);\n\nlet newLineSchema = z.enum(['CRLF', 'LF', 'crlf', 'lf']);\n\nlet targetSchema = z.enum([\n 'ES3',\n 'ES5',\n 'ES6',\n 'ES2015',\n 'ES2016',\n 'ES2017',\n 'ES2018',\n 'ES2019',\n 'ES2020',\n 'ES2021',\n 'ESNext',\n 'es3',\n 'es5',\n 'es6',\n 'es2015',\n 'es2016',\n 'es2017',\n 'es2018',\n 'es2019',\n 'es2020',\n 'es2021',\n 'esnext',\n]);\n\nlet libSchema = z.enum([\n 'ES5',\n 'ES6',\n 'ES7',\n 'ES2015',\n 'ES2015.Collection',\n 'ES2015.Core',\n 'ES2015.Generator',\n 'ES2015.Iterable',\n 'ES2015.Promise',\n 'ES2015.Proxy',\n 'ES2015.Reflect',\n 'ES2015.Symbol.WellKnown',\n 'ES2015.Symbol',\n 'ES2016',\n 'ES2016.Array.Include',\n 'ES2017',\n 'ES2017.Intl',\n 'ES2017.Object',\n 'ES2017.SharedMemory',\n 'ES2017.String',\n 'ES2017.TypedArrays',\n 'ES2018',\n 'ES2018.AsyncGenerator',\n 'ES2018.AsyncIterable',\n 'ES2018.Intl',\n 'ES2018.Promise',\n 'ES2018.Regexp',\n 'ES2019',\n 'ES2019.Array',\n 'ES2019.Object',\n 'ES2019.String',\n 'ES2019.Symbol',\n 'ES2020',\n 'ES2020.BigInt',\n 'ES2020.Promise',\n 'ES2020.String',\n 'ES2020.Symbol.WellKnown',\n 'ES2020.SharedMemory',\n 'ES2020.Intl',\n 'ES2021',\n 'ES2021.Promise',\n 'ES2021.String',\n 'ES2021.WeakRef',\n 'ESNext',\n 'ESNext.Array',\n 'ESNext.AsyncIterable',\n 'ESNext.BigInt',\n 'ESNext.Intl',\n 'ESNext.Promise',\n 'ESNext.String',\n 'ESNext.Symbol',\n 'ESNext.WeakRef',\n 'DOM',\n 'DOM.Iterable',\n 'ScriptHost',\n 'WebWorker',\n 'WebWorker.ImportScripts',\n 'WebWorker.Iterable',\n 'es5',\n 'es6',\n 'es7',\n 'es2015',\n 'es2015.collection',\n 'es2015.core',\n 'es2015.generator',\n 'es2015.iterable',\n 'es2015.promise',\n 'es2015.proxy',\n 'es2015.reflect',\n 'es2015.symbol.wellknown',\n 'es2015.symbol',\n 'es2016',\n 'es2016.array.include',\n 'es2017',\n 'es2017.intl',\n 'es2017.object',\n 'es2017.sharedmemory',\n 'es2017.string',\n 'es2017.typedarrays',\n 'es2018',\n 'es2018.asyncgenerator',\n 'es2018.asynciterable',\n 'es2018.intl',\n 'es2018.promise',\n 'es2018.regexp',\n 'es2019',\n 'es2019.array',\n 'es2019.object',\n 'es2019.string',\n 'es2019.symbol',\n 'es2020',\n 'es2020.bigint',\n 'es2020.promise',\n 'es2020.string',\n 'es2020.symbol.wellknown',\n 'es2020.sharedmemory',\n 'es2020.intl',\n 'es2021',\n 'es2021.promise',\n 'es2021.string',\n 'es2021.weakref',\n 'esnext',\n 'esnext.array',\n 'esnext.asynciterable',\n 'esnext.bigint',\n 'esnext.intl',\n 'esnext.promise',\n 'esnext.string',\n 'esnext.symbol',\n 'esnext.weakref',\n 'dom',\n 'dom.iterable',\n 'scripthost',\n 'webworker',\n 'webworker.importscripts',\n 'webworker.iterable',\n]);\n\nlet pluginSchema = z\n .object({\n name: z.string().optional(),\n })\n .strict()\n .and(z.record(z.unknown()));\n\nlet importsNotUsedAsValuesSchema = z.enum(['remove', 'preserve', 'error']);\n\nlet fallbackPollingSchema = z.enum([\n 'fixedPollingInterval',\n 'priorityPollingInterval',\n 'dynamicPriorityPolling',\n 'fixedInterval',\n 'priorityInterval',\n 'dynamicPriority',\n 'fixedChunkSize',\n]);\n\nlet watchDirectory = z.enum([\n 'useFsEvents',\n 'fixedPollingInterval',\n 'dynamicPriorityPolling',\n 'fixedChunkSizePolling',\n]);\n\nlet watchFileSchema = z.enum([\n 'fixedPollingInterval',\n 'priorityPollingInterval',\n 'dynamicPriorityPolling',\n 'useFsEvents',\n 'useFsEventsOnParentDirectory',\n 'fixedChunkSizePolling',\n]);\n\nlet compilerOptionsSchema = z\n .object({\n allowJs: z.boolean().optional(),\n allowSyntheticDefaultImports: z.boolean().optional(),\n allowUmdGlobalAccess: z.boolean().optional(),\n allowUnreachableCode: z.boolean().optional(),\n allowUnusedLabels: z.boolean().optional(),\n alwaysStrict: z.boolean().optional(),\n assumeChangesOnlyAffectDirectDependencies: z.boolean().optional(),\n baseUrl: z.string().optional(),\n charset: z.string().optional(),\n checkJs: z.boolean().optional(),\n composite: z.boolean().optional(),\n declaration: z.boolean().optional(),\n declarationDir: z.string().optional(),\n declarationMap: z.boolean().optional(),\n diagnostics: z.boolean().optional(),\n disableReferencedProjectLoad: z.boolean().optional(),\n disableSizeLimit: z.boolean().optional(),\n disableSolutionSearching: z.boolean().optional(),\n disableSourceOfProjectReferenceRedirect: z.boolean().optional(),\n downlevelIteration: z.boolean().optional(),\n emitBOM: z.boolean().optional(),\n emitDeclarationOnly: z.boolean().optional(),\n emitDecoratorMetadata: z.boolean().optional(),\n esModuleInterop: z.boolean().optional(),\n exactOptionalPropertyTypes: z.boolean().optional(),\n experimentalDecorators: z.boolean().optional(),\n explainFiles: z.boolean().optional(),\n extendedDiagnostics: z.boolean().optional(),\n fallbackPolling: fallbackPollingSchema.optional(),\n forceConsistentCasingInFileNames: z.boolean().optional(),\n generateCpuProfile: z.string().optional(),\n importHelpers: z.boolean().optional(),\n importsNotUsedAsValues: importsNotUsedAsValuesSchema.optional(),\n incremental: z.boolean().optional(),\n inlineSourceMap: z.boolean().optional(),\n inlineSources: z.boolean().optional(),\n isolatedModules: z.boolean().optional(),\n jsx: jsxSchema.optional(),\n jsxFactory: z.string().optional(),\n jsxFragmentFactory: z.string().optional(),\n jsxImportSource: z.string().optional(),\n keyofStringsOnly: z.boolean().optional(),\n lib: libSchema.array().optional(),\n listEmittedFiles: z.boolean().optional(),\n listFiles: z.boolean().optional(),\n listFilesOnly: z.boolean().optional(),\n mapRoot: z.string().optional(),\n maxNodeModuleJsDepth: z.number().optional(),\n module: moduleSchema.optional(),\n moduleResolution: z.enum(['classic', 'node']).optional(),\n newLine: newLineSchema.optional(),\n noEmit: z.boolean().optional(),\n noEmitHelpers: z.boolean().optional(),\n noEmitOnError: z.boolean().optional(),\n noErrorTruncation: z.boolean().optional(),\n noFallthroughCasesInSwitch: z.boolean().optional(),\n noImplicitAny: z.boolean().optional(),\n noImplicitOverride: z.boolean().optional(),\n noImplicitReturns: z.boolean().optional(),\n noImplicitThis: z.boolean().optional(),\n noImplicitUseStrict: z.boolean().optional(),\n noLib: z.boolean().optional(),\n noPropertyAccessFromIndexSignature: z.boolean().optional(),\n noResolve: z.boolean().optional(),\n noStrictGenericChecks: z.boolean().optional(),\n noUncheckedIndexedAccess: z.boolean().optional(),\n noUnusedLocals: z.boolean().optional(),\n noUnusedParameters: z.boolean().optional(),\n outDir: z.string().optional(),\n outFile: z.string().optional(),\n paths: z.record(z.string().array()).optional(),\n plugins: pluginSchema.array().optional(),\n preserveConstEnums: z.boolean().optional(),\n preserveSymlinks: z.boolean().optional(),\n preserveWatchOutput: z.boolean().optional(),\n pretty: z.boolean().optional(),\n reactNamespace: z.string().optional(),\n removeComments: z.boolean().optional(),\n resolveJsonModule: z.boolean().optional(),\n rootDir: z.string().optional(),\n rootDirs: z.string().array().optional(),\n skipDefaultLibCheck: z.boolean().optional(),\n skipLibCheck: z.boolean().optional(),\n sourceMap: z.boolean().optional(),\n sourceRoot: z.string().optional(),\n strict: z.boolean().optional(),\n strictBindCallApply: z.boolean().optional(),\n strictFunctionTypes: z.boolean().optional(),\n strictNullChecks: z.boolean().optional(),\n strictPropertyInitialization: z.boolean().optional(),\n stripInternal: z.boolean().optional(),\n suppressExcessPropertyErrors: z.boolean().optional(),\n suppressImplicitAnyIndexErrors: z.boolean().optional(),\n target: targetSchema.optional(),\n traceResolution: z.boolean().optional(),\n tsBuildInfoFile: z.string().optional(),\n typeRoots: z.string().array().optional(),\n types: z.string().array().optional(),\n useDefineForClassFields: z.boolean().optional(),\n useUnknownInCatchVariables: z.boolean().optional(),\n watch: z.boolean().optional(),\n watchDirectory: watchDirectory.optional(),\n watchFile: watchFileSchema.optional(),\n })\n .strict();\n\nlet typeAcquisitionSchema = z\n .object({\n enable: z.boolean().optional(),\n include: z.string().array().optional(),\n exclude: z.string().array().optional(),\n })\n .strict();\n\nlet referencesSchema = z\n .object({\n path: z.string(),\n\n originalPath: z.string().optional(),\n prepend: z.boolean().optional(),\n circular: z.boolean().optional(),\n })\n .strict();\n\nexport const tsconfigJsonSchema = z\n .object({\n compileOnSave: z.boolean().optional(),\n compilerOptions: compilerOptionsSchema.optional(),\n exclude: z.string().array().optional(),\n extends: z.string().optional(),\n files: z.string().array().optional(),\n include: z.string().array().optional(),\n references: referencesSchema.array().optional(),\n typeAcquisition: typeAcquisitionSchema.optional(),\n })\n .strict();\n\nexport type TsconfigJson = z.infer<typeof tsconfigJsonSchema>;\n"],"names":["z","jsxSchema","enum","moduleSchema","newLineSchema","targetSchema","libSchema","pluginSchema","object","name","string","optional","strict","and","record","unknown","importsNotUsedAsValuesSchema","fallbackPollingSchema","watchDirectory","watchFileSchema","compilerOptionsSchema","allowJs","boolean","allowSyntheticDefaultImports","allowUmdGlobalAccess","allowUnreachableCode","allowUnusedLabels","alwaysStrict","assumeChangesOnlyAffectDirectDependencies","baseUrl","charset","checkJs","composite","declaration","declarationDir","declarationMap","diagnostics","disableReferencedProjectLoad","disableSizeLimit","disableSolutionSearching","disableSourceOfProjectReferenceRedirect","downlevelIteration","emitBOM","emitDeclarationOnly","emitDecoratorMetadata","esModuleInterop","exactOptionalPropertyTypes","experimentalDecorators","explainFiles","extendedDiagnostics","fallbackPolling","forceConsistentCasingInFileNames","generateCpuProfile","importHelpers","importsNotUsedAsValues","incremental","inlineSourceMap","inlineSources","isolatedModules","jsx","jsxFactory","jsxFragmentFactory","jsxImportSource","keyofStringsOnly","lib","array","listEmittedFiles","listFiles","listFilesOnly","mapRoot","maxNodeModuleJsDepth","number","module","moduleResolution","newLine","noEmit","noEmitHelpers","noEmitOnError","noErrorTruncation","noFallthroughCasesInSwitch","noImplicitAny","noImplicitOverride","noImplicitReturns","noImplicitThis","noImplicitUseStrict","noLib","noPropertyAccessFromIndexSignature","noResolve","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","outDir","outFile","paths","plugins","preserveConstEnums","preserveSymlinks","preserveWatchOutput","pretty","reactNamespace","removeComments","resolveJsonModule","rootDir","rootDirs","skipDefaultLibCheck","skipLibCheck","sourceMap","sourceRoot","strictBindCallApply","strictFunctionTypes","strictNullChecks","strictPropertyInitialization","stripInternal","suppressExcessPropertyErrors","suppressImplicitAnyIndexErrors","target","traceResolution","tsBuildInfoFile","typeRoots","types","useDefineForClassFields","useUnknownInCatchVariables","watch","watchFile","typeAcquisitionSchema","enable","include","exclude","referencesSchema","path","originalPath","prepend","circular","tsconfigJsonSchema","compileOnSave","compilerOptions","extends","files","references","typeAcquisition"],"mappings":"AAAA,YAAYA,OAAO,MAAM;AAEzB,IAAIC,YAAYD,EAAEE,KAAK;IAAC;IAAY;IAAS;IAAa;IAAgB;CAAe;AAEzF,IAAIC,eAAeH,EAAEE,KAAK;IACxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,IAAIE,gBAAgBJ,EAAEE,KAAK;IAAC;IAAQ;IAAM;IAAQ;CAAK;AAEvD,IAAIG,eAAeL,EAAEE,KAAK;IACxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,IAAII,YAAYN,EAAEE,KAAK;IACrB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,IAAIK,eAAeP,EAChBQ,OAAO;IACNC,MAAMT,EAAEU,SAASC;AACnB,GACCC,SACAC,IAAIb,EAAEc,OAAOd,EAAEe;AAElB,IAAIC,+BAA+BhB,EAAEE,KAAK;IAAC;IAAU;IAAY;CAAQ;AAEzE,IAAIe,wBAAwBjB,EAAEE,KAAK;I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"}
@@ -0,0 +1,3 @@
1
+ export * from './types/Json.js';
2
+ export * from './types/PackageJson.js';
3
+ export * from './types/TsconfigJson.js';
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from './types/Json.js';
2
+ export * from './types/PackageJson.js';
3
+ export * from './types/TsconfigJson.js';
4
+
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["export * from './types/Json.js';\nexport * from './types/PackageJson.js';\nexport * from './types/TsconfigJson.js';\n"],"names":[],"mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,yBAAyB;AACvC,cAAc,0BAA0B"}
@@ -0,0 +1,2 @@
1
+ import { type z, type ZodTypeAny } from 'zod';
2
+ export declare function is<S extends ZodTypeAny>(value: unknown, schema: S): value is z.infer<S>;
@@ -0,0 +1,5 @@
1
+ export function is(value, schema) {
2
+ return schema.safeParse(value).success;
3
+ }
4
+
5
+ //# sourceMappingURL=is.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/is.ts"],"sourcesContent":["import {type z, type ZodTypeAny} from 'zod';\n\nexport function is<S extends ZodTypeAny>(value: unknown, schema: S): value is z.infer<S> {\n return schema.safeParse(value).success;\n}\n"],"names":["is","value","schema","safeParse","success"],"mappings":"AAEA,OAAO,SAASA,GAAyBC,KAAc,EAAEC,MAAS;IAChE,OAAOA,OAAOC,UAAUF,OAAOG;AACjC"}
@@ -0,0 +1,2 @@
1
+ import { type PackageJson } from '../types.js';
2
+ export declare function isPackageJson(value: unknown): value is PackageJson;
@@ -0,0 +1,6 @@
1
+ import { packageJsonSchema } from '../types.js';
2
+ export function isPackageJson(value) {
3
+ return packageJsonSchema.safeParse(value).success;
4
+ }
5
+
6
+ //# sourceMappingURL=isPackageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/isPackageJson.ts"],"sourcesContent":["import {type PackageJson, packageJsonSchema} from '../types.js';\n\nexport function isPackageJson(value: unknown): value is PackageJson {\n return packageJsonSchema.safeParse(value).success;\n}\n"],"names":["packageJsonSchema","isPackageJson","value","safeParse","success"],"mappings":"AAAA,SAA0BA,iBAAiB,QAAO,cAAc;AAEhE,OAAO,SAASC,cAAcC,KAAc;IAC1C,OAAOF,kBAAkBG,UAAUD,OAAOE;AAC5C"}
@@ -0,0 +1,2 @@
1
+ import { type TsconfigJson } from '../types.js';
2
+ export declare function isTsconfigJson(value: unknown): value is TsconfigJson;
@@ -0,0 +1,6 @@
1
+ import { tsconfigJsonSchema } from '../types.js';
2
+ export function isTsconfigJson(value) {
3
+ return tsconfigJsonSchema.safeParse(value).success;
4
+ }
5
+
6
+ //# sourceMappingURL=isTsconfigJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/isTsconfigJson.ts"],"sourcesContent":["import {type TsconfigJson, tsconfigJsonSchema} from '../types.js';\n\nexport function isTsconfigJson(value: unknown): value is TsconfigJson {\n return tsconfigJsonSchema.safeParse(value).success;\n}\n"],"names":["tsconfigJsonSchema","isTsconfigJson","value","safeParse","success"],"mappings":"AAAA,SAA2BA,kBAAkB,QAAO,cAAc;AAElE,OAAO,SAASC,eAAeC,KAAc;IAC3C,OAAOF,mBAAmBG,UAAUD,OAAOE;AAC7C"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { type If } from '@jakubmazanec/ts-utils';
4
+ import { type PathLike } from 'node:fs';
5
+ import fs from 'node:fs/promises';
6
+ import { type z, type ZodTypeAny, type ZodError } from 'zod';
7
+ export interface ReadFileOptions {
8
+ parser?: (rawString: string) => unknown;
9
+ throwOnZodError?: boolean;
10
+ }
11
+ export declare function readFile<S extends ZodTypeAny, O extends ReadFileOptions | undefined = undefined>(path: fs.FileHandle | PathLike, schema: S, options?: O): Promise<O extends undefined ? z.infer<S> | ZodError<z.infer<S>> : If<NonNullable<O>['throwOnZodError'], true, z.infer<S>, z.infer<S> | ZodError<z.infer<S>>>>;
@@ -0,0 +1,16 @@
1
+ import fs from 'node:fs/promises';
2
+ export async function readFile(path, schema, options) {
3
+ let fileParser = (options === null || options === void 0 ? void 0 : options.parser) ?? JSON.parse;
4
+ let rawJson = fileParser(await fs.readFile(path, {
5
+ encoding: 'utf8'
6
+ }));
7
+ if (options === null || options === void 0 ? void 0 : options.throwOnZodError) {
8
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- return type is actually defined via the function overload above
9
+ return schema.parse(rawJson);
10
+ }
11
+ let result = schema.safeParse(rawJson);
12
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- return type is actually defined via the function overload above
13
+ return result.success ? result.data : result.error;
14
+ }
15
+
16
+ //# sourceMappingURL=readFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/readFile.ts"],"sourcesContent":["import {type If} from '@jakubmazanec/ts-utils';\nimport {type PathLike} from 'node:fs';\nimport fs from 'node:fs/promises';\nimport {type z, type ZodTypeAny, type ZodError} from 'zod';\n\nexport interface ReadFileOptions {\n parser?: (rawString: string) => unknown;\n throwOnZodError?: boolean;\n}\n\nexport async function readFile<\n S extends ZodTypeAny,\n O extends ReadFileOptions | undefined = undefined,\n>(\n path: fs.FileHandle | PathLike,\n schema: S,\n options?: O,\n): Promise<\n O extends undefined\n ? z.infer<S> | ZodError<z.infer<S>>\n : If<NonNullable<O>['throwOnZodError'], true, z.infer<S>, z.infer<S> | ZodError<z.infer<S>>>\n>;\nexport async function readFile(\n path: fs.FileHandle | PathLike,\n schema: ZodTypeAny,\n options?: ReadFileOptions,\n) {\n let fileParser = options?.parser ?? JSON.parse;\n let rawJson = fileParser(await fs.readFile(path, {encoding: 'utf8'})) as unknown;\n\n if (options?.throwOnZodError) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- return type is actually defined via the function overload above\n return schema.parse(rawJson);\n }\n\n let result = schema.safeParse(rawJson);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- return type is actually defined via the function overload above\n return result.success ? result.data : result.error;\n}\n"],"names":["fs","readFile","path","schema","options","fileParser","parser","JSON","parse","rawJson","encoding","throwOnZodError","result","safeParse","success","data","error"],"mappings":"AAEA,OAAOA,QAAQ,mBAAmB;AAoBlC,OAAO,eAAeC,SACpBC,IAA8B,EAC9BC,MAAkB,EAClBC,OAAyB;IAEzB,IAAIC,aAAaD,CAAAA,oBAAAA,qBAAAA,KAAAA,IAAAA,QAASE,MAAK,KAAKC,KAAKC;IACzC,IAAIC,UAAUJ,WAAW,MAAML,GAAGC,SAASC,MAAM;QAACQ,UAAU;IAAM;IAElE,IAAIN,oBAAAA,qBAAAA,KAAAA,IAAAA,QAASO,iBAAiB;QAC5B,kIAAkI;QAClI,OAAOR,OAAOK,MAAMC;IACtB;IAEA,IAAIG,SAAST,OAAOU,UAAUJ;IAE9B,kIAAkI;IAClI,OAAOG,OAAOE,UAAUF,OAAOG,OAAOH,OAAOI;AAC/C"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { type If } from '@jakubmazanec/ts-utils';
4
+ import { type PathLike } from 'node:fs';
5
+ import type fs from 'node:fs/promises';
6
+ import { type z, type ZodTypeAny, type ZodError } from 'zod';
7
+ export interface ReadJsonOptions {
8
+ throwOnZodError?: boolean;
9
+ }
10
+ export declare function readJson<S extends ZodTypeAny, O extends ReadJsonOptions | undefined = undefined>(path: fs.FileHandle | PathLike, schema: S, options?: O): Promise<O extends undefined ? z.infer<S> | ZodError<z.infer<S>> : If<NonNullable<O>['throwOnZodError'], true, z.infer<S>, z.infer<S> | ZodError<z.infer<S>>>>;
@@ -0,0 +1,7 @@
1
+ import { readFile } from './readFile.js';
2
+ export async function readJson(path, schema, options) {
3
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- return type is actually defined via the function overload above
4
+ return readFile(path, schema, options);
5
+ }
6
+
7
+ //# sourceMappingURL=readJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/readJson.ts"],"sourcesContent":["import {type If} from '@jakubmazanec/ts-utils';\nimport {type PathLike} from 'node:fs';\nimport type fs from 'node:fs/promises';\nimport {type z, type ZodTypeAny, type ZodError} from 'zod';\n\nimport {readFile} from './readFile.js';\n\nexport interface ReadJsonOptions {\n throwOnZodError?: boolean;\n}\n\nexport async function readJson<\n S extends ZodTypeAny,\n O extends ReadJsonOptions | undefined = undefined,\n>(\n path: fs.FileHandle | PathLike,\n schema: S,\n options?: O,\n): Promise<\n O extends undefined\n ? z.infer<S> | ZodError<z.infer<S>>\n : If<NonNullable<O>['throwOnZodError'], true, z.infer<S>, z.infer<S> | ZodError<z.infer<S>>>\n>;\nexport async function readJson(\n path: fs.FileHandle | PathLike,\n schema: ZodTypeAny,\n options?: ReadJsonOptions,\n) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- return type is actually defined via the function overload above\n return readFile(path, schema, options);\n}\n"],"names":["readFile","readJson","path","schema","options"],"mappings":"AAKA,SAAQA,QAAQ,QAAO,gBAAgB;AAkBvC,OAAO,eAAeC,SACpBC,IAA8B,EAC9BC,MAAkB,EAClBC,OAAyB;IAEzB,kIAAkI;IAClI,OAAOJ,SAASE,MAAMC,QAAQC;AAChC"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { type If } from '@jakubmazanec/ts-utils';
4
+ import { type PathLike } from 'node:fs';
5
+ import type fs from 'node:fs/promises';
6
+ import { type ZodError } from 'zod';
7
+ import { type PackageJson } from '../types.js';
8
+ export interface ReadPackageJsonOptions {
9
+ throwOnZodError?: boolean;
10
+ }
11
+ export declare function readPackageJson<O extends ReadPackageJsonOptions | undefined = undefined>(path: fs.FileHandle | PathLike, options?: O): Promise<O extends undefined ? PackageJson | ZodError<PackageJson> : If<NonNullable<O>['throwOnZodError'], true, PackageJson, PackageJson | ZodError<PackageJson>>>;
@@ -0,0 +1,7 @@
1
+ import { packageJsonSchema } from '../types.js';
2
+ import { readFile } from './readFile.js';
3
+ export async function readPackageJson(path, options) {
4
+ return readFile(path, packageJsonSchema, options);
5
+ }
6
+
7
+ //# sourceMappingURL=readPackageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/readPackageJson.ts"],"sourcesContent":["import {type If} from '@jakubmazanec/ts-utils';\nimport {type PathLike} from 'node:fs';\nimport type fs from 'node:fs/promises';\nimport {type ZodError} from 'zod';\n\nimport {type PackageJson, packageJsonSchema} from '../types.js';\nimport {readFile} from './readFile.js';\n\nexport interface ReadPackageJsonOptions {\n throwOnZodError?: boolean;\n}\n\nexport async function readPackageJson<O extends ReadPackageJsonOptions | undefined = undefined>(\n path: fs.FileHandle | PathLike,\n options?: O,\n): Promise<\n O extends undefined\n ? PackageJson | ZodError<PackageJson>\n : If<NonNullable<O>['throwOnZodError'], true, PackageJson, PackageJson | ZodError<PackageJson>>\n>;\nexport async function readPackageJson(\n path: fs.FileHandle | PathLike,\n options?: ReadPackageJsonOptions,\n) {\n return readFile(path, packageJsonSchema, options);\n}\n"],"names":["packageJsonSchema","readFile","readPackageJson","path","options"],"mappings":"AAKA,SAA0BA,iBAAiB,QAAO,cAAc;AAChE,SAAQC,QAAQ,QAAO,gBAAgB;AAcvC,OAAO,eAAeC,gBACpBC,IAA8B,EAC9BC,OAAgC;IAEhC,OAAOH,SAASE,MAAMH,mBAAmBI;AAC3C"}
@@ -0,0 +1,2 @@
1
+ import * as z from 'zod';
2
+ export declare function zodIssuesToStrings(zodIssues: z.ZodIssue[]): string[];
@@ -0,0 +1,30 @@
1
+ import * as z from 'zod';
2
+ function zodIssuePathToText(zodIssuePath) {
3
+ return zodIssuePath.length > 0 ? ` at path "${zodIssuePath.join('.')}"` : '';
4
+ }
5
+ function zodIssueToString(zodIssue) {
6
+ if (zodIssue.code === z.ZodIssueCode.invalid_type) {
7
+ return `Expected "${zodIssue.expected}" but received "${zodIssue.received}"${zodIssuePathToText(zodIssue.path)}`;
8
+ }
9
+ if (zodIssue.code === z.ZodIssueCode.unrecognized_keys) {
10
+ return `Unrecognized ${zodIssue.keys.length >= 2 ? 'keys' : 'key'} ${zodIssue.keys.map((key)=>`"${key}"`).join(', ')}${zodIssuePathToText(zodIssue.path)}`;
11
+ }
12
+ if (zodIssue.code === z.ZodIssueCode.invalid_union) {
13
+ return `Invalid union: ${zodIssue.unionErrors.map((unionError)=>unionError.issues.map((issue)=>{
14
+ let zodIssueString = [
15
+ ...zodIssueToString(issue)
16
+ ];
17
+ zodIssueString[0] &&= zodIssueString[0].toLowerCase();
18
+ return zodIssueString.join('');
19
+ }).join(', ')).join('; ')}`;
20
+ }
21
+ if (zodIssue.code === z.ZodIssueCode.invalid_enum_value) {
22
+ return `Expected ${zodIssue.options.length === 1 ? `"${zodIssue.options[0]}"` : `${zodIssue.options.map((option)=>`"${option}"`).slice(0, -1).join(', ')} or "${zodIssue.options.at(-1)}"`}${zodIssuePathToText(zodIssue.path)}`;
23
+ }
24
+ return `${zodIssue.message}${zodIssuePathToText(zodIssue.path)}`;
25
+ }
26
+ export function zodIssuesToStrings(zodIssues) {
27
+ return zodIssues.map((zodIssue)=>zodIssueToString(zodIssue));
28
+ }
29
+
30
+ //# sourceMappingURL=zodIssuesToString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/zodIssuesToString.ts"],"sourcesContent":["import * as z from 'zod';\n\nfunction zodIssuePathToText(zodIssuePath: Array<number | string>): string {\n return zodIssuePath.length > 0 ? ` at path \"${zodIssuePath.join('.')}\"` : '';\n}\n\nfunction zodIssueToString(zodIssue: z.ZodIssue): string {\n if (zodIssue.code === z.ZodIssueCode.invalid_type) {\n return `Expected \"${zodIssue.expected}\" but received \"${zodIssue.received}\"${zodIssuePathToText(\n zodIssue.path,\n )}`;\n }\n\n if (zodIssue.code === z.ZodIssueCode.unrecognized_keys) {\n return `Unrecognized ${zodIssue.keys.length >= 2 ? 'keys' : 'key'} ${zodIssue.keys\n .map((key) => `\"${key}\"`)\n .join(', ')}${zodIssuePathToText(zodIssue.path)}`;\n }\n\n if (zodIssue.code === z.ZodIssueCode.invalid_union) {\n return `Invalid union: ${zodIssue.unionErrors\n .map((unionError) =>\n unionError.issues\n .map((issue) => {\n let zodIssueString = [...zodIssueToString(issue)];\n\n zodIssueString[0] &&= zodIssueString[0].toLowerCase();\n\n return zodIssueString.join('');\n })\n .join(', '),\n )\n .join('; ')}`;\n }\n\n if (zodIssue.code === z.ZodIssueCode.invalid_enum_value) {\n return `Expected ${\n zodIssue.options.length === 1\n ? `\"${zodIssue.options[0]}\"`\n : `${zodIssue.options\n .map((option) => `\"${option}\"`)\n .slice(0, -1)\n .join(', ')} or \"${zodIssue.options.at(-1)}\"`\n }${zodIssuePathToText(zodIssue.path)}`;\n }\n\n return `${zodIssue.message}${zodIssuePathToText(zodIssue.path)}`;\n}\n\nexport function zodIssuesToStrings(zodIssues: z.ZodIssue[]): string[] {\n return zodIssues.map((zodIssue) => zodIssueToString(zodIssue));\n}\n"],"names":["z","zodIssuePathToText","zodIssuePath","length","join","zodIssueToString","zodIssue","code","ZodIssueCode","invalid_type","expected","received","path","unrecognized_keys","keys","map","key","invalid_union","unionErrors","unionError","issues","issue","zodIssueString","toLowerCase","invalid_enum_value","options","option","slice","at","message","zodIssuesToStrings","zodIssues"],"mappings":"AAAA,YAAYA,OAAO,MAAM;AAEzB,SAASC,mBAAmBC,YAAoC;IAC9D,OAAOA,aAAaC,SAAS,IAAI,CAAC,UAAU,EAAED,aAAaE,KAAK,KAAK,CAAC,CAAC,GAAG;AAC5E;AAEA,SAASC,iBAAiBC,QAAoB;IAC5C,IAAIA,SAASC,SAASP,EAAEQ,aAAaC,cAAc;QACjD,OAAO,CAAC,UAAU,EAAEH,SAASI,SAAS,gBAAgB,EAAEJ,SAASK,SAAS,CAAC,EAAEV,mBAC3EK,SAASM,MACT,CAAC;IACL;IAEA,IAAIN,SAASC,SAASP,EAAEQ,aAAaK,mBAAmB;QACtD,OAAO,CAAC,aAAa,EAAEP,SAASQ,KAAKX,UAAU,IAAI,SAAS,MAAM,CAAC,EAAEG,SAASQ,KAC3EC,IAAI,CAACC,MAAQ,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,EACvBZ,KAAK,MAAM,EAAEH,mBAAmBK,SAASM,MAAM,CAAC;IACrD;IAEA,IAAIN,SAASC,SAASP,EAAEQ,aAAaS,eAAe;QAClD,OAAO,CAAC,eAAe,EAAEX,SAASY,YAC/BH,IAAI,CAACI,aACJA,WAAWC,OACRL,IAAI,CAACM;gBACJ,IAAIC,iBAAiB;uBAAIjB,iBAAiBgB;iBAAO;gBAEjDC,cAAc,CAAC,EAAE,KAAKA,cAAc,CAAC,EAAE,CAACC;gBAExC,OAAOD,eAAelB,KAAK;YAC7B,GACCA,KAAK,OAETA,KAAK,MAAM,CAAC;IACjB;IAEA,IAAIE,SAASC,SAASP,EAAEQ,aAAagB,oBAAoB;QACvD,OAAO,CAAC,SAAS,EACflB,SAASmB,QAAQtB,WAAW,IACxB,CAAC,CAAC,EAAEG,SAASmB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAC1B,CAAC,EAAEnB,SAASmB,QACTV,IAAI,CAACW,SAAW,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,EAC7BC,MAAM,GAAG,CAAC,GACVvB,KAAK,MAAM,KAAK,EAAEE,SAASmB,QAAQG,GAAG,CAAC,GAAG,CAAC,CAAC,CACpD,EAAE3B,mBAAmBK,SAASM,MAAM,CAAC;IACxC;IAEA,OAAO,CAAC,EAAEN,SAASuB,QAAQ,EAAE5B,mBAAmBK,SAASM,MAAM,CAAC;AAClE;AAEA,OAAO,SAASkB,mBAAmBC,SAAuB;IACxD,OAAOA,UAAUhB,IAAI,CAACT,WAAaD,iBAAiBC;AACtD"}
@@ -0,0 +1,7 @@
1
+ export * from './utils/is.js';
2
+ export * from './utils/isPackageJson.js';
3
+ export * from './utils/isTsconfigJson.js';
4
+ export * from './utils/readFile.js';
5
+ export * from './utils/readJson.js';
6
+ export * from './utils/readPackageJson.js';
7
+ export * from './utils/zodIssuesToString.js';
package/dist/utils.js ADDED
@@ -0,0 +1,9 @@
1
+ export * from './utils/is.js';
2
+ export * from './utils/isPackageJson.js';
3
+ export * from './utils/isTsconfigJson.js';
4
+ export * from './utils/readFile.js';
5
+ export * from './utils/readJson.js';
6
+ export * from './utils/readPackageJson.js';
7
+ export * from './utils/zodIssuesToString.js';
8
+
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.ts"],"sourcesContent":["export * from './utils/is.js';\nexport * from './utils/isPackageJson.js';\nexport * from './utils/isTsconfigJson.js';\nexport * from './utils/readFile.js';\nexport * from './utils/readJson.js';\nexport * from './utils/readPackageJson.js';\nexport * from './utils/zodIssuesToString.js';\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,4BAA4B;AAC1C,cAAc,sBAAsB;AACpC,cAAc,sBAAsB;AACpC,cAAc,6BAA6B;AAC3C,cAAc,+BAA+B"}