@jakubmazanec/zod-utils 1.0.0-9029e49
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/LICENSE.md +840 -0
- package/README.md +38 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -0
- package/dist/types/Json.d.ts +8 -0
- package/dist/types/Json.js +14 -0
- package/dist/types/Json.js.map +1 -0
- package/dist/types/PackageJson.d.ts +517 -0
- package/dist/types/PackageJson.js +292 -0
- package/dist/types/PackageJson.js.map +1 -0
- package/dist/types/TsconfigJson.d.ts +609 -0
- package/dist/types/TsconfigJson.js +338 -0
- package/dist/types/TsconfigJson.js.map +1 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/is.d.ts +2 -0
- package/dist/utils/is.js +5 -0
- package/dist/utils/is.js.map +1 -0
- package/dist/utils/isPackageJson.d.ts +2 -0
- package/dist/utils/isPackageJson.js +6 -0
- package/dist/utils/isPackageJson.js.map +1 -0
- package/dist/utils/isTsconfigJson.d.ts +2 -0
- package/dist/utils/isTsconfigJson.js +6 -0
- package/dist/utils/isTsconfigJson.js.map +1 -0
- package/dist/utils/readFile.d.ts +11 -0
- package/dist/utils/readFile.js +16 -0
- package/dist/utils/readFile.js.map +1 -0
- package/dist/utils/readJson.d.ts +10 -0
- package/dist/utils/readJson.js +7 -0
- package/dist/utils/readJson.js.map +1 -0
- package/dist/utils/readPackageJson.d.ts +11 -0
- package/dist/utils/readPackageJson.js +7 -0
- package/dist/utils/readPackageJson.js.map +1 -0
- package/dist/utils/zodIssuesToString.d.ts +2 -0
- package/dist/utils/zodIssuesToString.js +30 -0
- package/dist/utils/zodIssuesToString.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +9 -0
- package/dist/utils.js.map +1 -0
- package/package.json +43 -0
- package/src/main.ts +2 -0
- package/src/types/Json.ts +11 -0
- package/src/types/PackageJson.ts +294 -0
- package/src/types/TsconfigJson.ts +346 -0
- package/src/types.ts +3 -0
- package/src/utils/is.ts +5 -0
- package/src/utils/isPackageJson.ts +5 -0
- package/src/utils/isTsconfigJson.ts +5 -0
- package/src/utils/readFile.ts +40 -0
- package/src/utils/readJson.ts +31 -0
- package/src/utils/readPackageJson.ts +26 -0
- package/src/utils/zodIssuesToString.ts +52 -0
- package/src/utils.ts +7 -0
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jakubmazanec/zod-utils",
|
|
3
|
+
"version": "1.0.0-9029e49",
|
|
4
|
+
"description": "Collection of Zod schemas and utilities.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/jakubmazanec/js-tools",
|
|
8
|
+
"directory": "packages/zod-utils"
|
|
9
|
+
},
|
|
10
|
+
"license": "LGPL-3.0-only",
|
|
11
|
+
"author": "Jakub Mazanec <jakub@mazanec.dev>",
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"type": "module",
|
|
14
|
+
"exports": "./dist/main.js",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"src"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "swc src -d dist && tsc",
|
|
21
|
+
"clean": "del-cli dist *.tsbuildinfo",
|
|
22
|
+
"document": "typedoc --options typedoc.config.cjs",
|
|
23
|
+
"format": "prettier . --write --ignore-unknown --ignore-path ../../.prettierignore",
|
|
24
|
+
"lint": "eslint .",
|
|
25
|
+
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests",
|
|
26
|
+
"typecheck": "tsc --project tsconfig.typecheck.json"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@jakubmazanec/ts-utils": "2.1.0-9029e49"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@jest/globals": "^29.5.0",
|
|
33
|
+
"@types/node": "^16.18.3",
|
|
34
|
+
"zod": "^3.19.1"
|
|
35
|
+
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"zod": "^3.19.1"
|
|
38
|
+
},
|
|
39
|
+
"packageManager": "npm@8.19.4",
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=16.20.0"
|
|
42
|
+
}
|
|
43
|
+
}
|
package/src/main.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);
|
|
4
|
+
|
|
5
|
+
type Literal = z.infer<typeof literalSchema>;
|
|
6
|
+
|
|
7
|
+
export const jsonSchema: z.ZodSchema<Json> = z.lazy(() =>
|
|
8
|
+
z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]),
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
export type Json = Json[] | Literal | {[key: string]: Json};
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
const packageJsonFundingSchema = z.union([
|
|
4
|
+
z
|
|
5
|
+
.object({
|
|
6
|
+
type: z
|
|
7
|
+
.union([
|
|
8
|
+
z.enum([
|
|
9
|
+
'corporation',
|
|
10
|
+
'foundation',
|
|
11
|
+
'github',
|
|
12
|
+
'individual',
|
|
13
|
+
'opencollective',
|
|
14
|
+
'patreon',
|
|
15
|
+
]),
|
|
16
|
+
z.string(),
|
|
17
|
+
])
|
|
18
|
+
.optional(),
|
|
19
|
+
url: z.string(),
|
|
20
|
+
})
|
|
21
|
+
.strict(),
|
|
22
|
+
z.string(),
|
|
23
|
+
]);
|
|
24
|
+
|
|
25
|
+
const packageJsonPublishConfigSchema = z.intersection(
|
|
26
|
+
z.object({
|
|
27
|
+
access: z.enum(['public', 'restricted']).optional(),
|
|
28
|
+
registry: z.string().optional(),
|
|
29
|
+
tag: z.string().optional(),
|
|
30
|
+
}),
|
|
31
|
+
z.record(z.unknown()),
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const packageJsonPersonSchema = z.union([
|
|
35
|
+
z
|
|
36
|
+
.object({
|
|
37
|
+
name: z.string(),
|
|
38
|
+
email: z.string().optional(),
|
|
39
|
+
url: z.string().optional(),
|
|
40
|
+
})
|
|
41
|
+
.strict(),
|
|
42
|
+
z.string(),
|
|
43
|
+
]);
|
|
44
|
+
|
|
45
|
+
const packageJsonBugsLocationSchema = z.union([
|
|
46
|
+
z
|
|
47
|
+
.object({
|
|
48
|
+
email: z.string().optional(),
|
|
49
|
+
url: z.string().optional(),
|
|
50
|
+
})
|
|
51
|
+
.strict(),
|
|
52
|
+
z.string(),
|
|
53
|
+
]);
|
|
54
|
+
|
|
55
|
+
const packageJsonDirectoryLocationsSchema = z
|
|
56
|
+
.object({
|
|
57
|
+
bin: z.string().optional(),
|
|
58
|
+
doc: z.string().optional(),
|
|
59
|
+
example: z.string().optional(),
|
|
60
|
+
lib: z.string().optional(),
|
|
61
|
+
man: z.string().optional(),
|
|
62
|
+
v: z.string().optional(),
|
|
63
|
+
})
|
|
64
|
+
.strict();
|
|
65
|
+
|
|
66
|
+
const packageJsonScriptsSchema = z.intersection(
|
|
67
|
+
z.record(z.string()),
|
|
68
|
+
z.object({
|
|
69
|
+
prepublish: z.string().optional(),
|
|
70
|
+
prepare: z.string().optional(),
|
|
71
|
+
prepublishOnly: z.string().optional(),
|
|
72
|
+
prepack: z.string().optional(),
|
|
73
|
+
postpack: z.string().optional(),
|
|
74
|
+
publish: z.string().optional(),
|
|
75
|
+
postpublish: z.string().optional(),
|
|
76
|
+
preinstall: z.string().optional(),
|
|
77
|
+
install: z.string().optional(),
|
|
78
|
+
postinstall: z.string().optional(),
|
|
79
|
+
preuninstall: z.string().optional(),
|
|
80
|
+
uninstall: z.string().optional(),
|
|
81
|
+
postuninstall: z.string().optional(),
|
|
82
|
+
preversion: z.string().optional(),
|
|
83
|
+
version: z.string().optional(),
|
|
84
|
+
postversion: z.string().optional(),
|
|
85
|
+
pretest: z.string().optional(),
|
|
86
|
+
test: z.string().optional(),
|
|
87
|
+
posttest: z.string().optional(),
|
|
88
|
+
prestop: z.string().optional(),
|
|
89
|
+
stop: z.string().optional(),
|
|
90
|
+
poststop: z.string().optional(),
|
|
91
|
+
prestart: z.string().optional(),
|
|
92
|
+
start: z.string().optional(),
|
|
93
|
+
poststart: z.string().optional(),
|
|
94
|
+
prerestart: z.string().optional(),
|
|
95
|
+
restart: z.string().optional(),
|
|
96
|
+
postrestart: z.string().optional(),
|
|
97
|
+
}),
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const packageJsonDependenciesSchema = z.record(z.string());
|
|
101
|
+
|
|
102
|
+
const packageJsonExportConditionSchema = z.union([
|
|
103
|
+
z.enum([
|
|
104
|
+
'browser',
|
|
105
|
+
'default',
|
|
106
|
+
'deno',
|
|
107
|
+
'development',
|
|
108
|
+
'electron',
|
|
109
|
+
'import',
|
|
110
|
+
'node',
|
|
111
|
+
'production',
|
|
112
|
+
'react-native',
|
|
113
|
+
'require',
|
|
114
|
+
]),
|
|
115
|
+
z.string(),
|
|
116
|
+
]);
|
|
117
|
+
|
|
118
|
+
type PackageJsonExportCondition = z.infer<typeof packageJsonExportConditionSchema>;
|
|
119
|
+
|
|
120
|
+
const packageJsonExportsSchema: z.ZodSchema<PackageJsonExports> = z.lazy(() =>
|
|
121
|
+
z.union([
|
|
122
|
+
z.string().array(),
|
|
123
|
+
z.string(),
|
|
124
|
+
z.object({
|
|
125
|
+
browser: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
126
|
+
default: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
127
|
+
deno: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
128
|
+
development: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
129
|
+
electron: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
130
|
+
import: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
131
|
+
node: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
132
|
+
production: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
133
|
+
'react-native': z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
134
|
+
require: z.union([packageJsonExportsSchema, z.null()]).optional(),
|
|
135
|
+
}),
|
|
136
|
+
z.record(z.union([packageJsonExportsSchema, z.null()])),
|
|
137
|
+
]),
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
const packageJsonBundledDependenciesSchema = z.union([z.string().array(), z.boolean()]).optional();
|
|
141
|
+
|
|
142
|
+
type PackageJsonExports =
|
|
143
|
+
| string[]
|
|
144
|
+
| string
|
|
145
|
+
| {
|
|
146
|
+
[key in PackageJsonExportCondition]?: PackageJsonExports | null;
|
|
147
|
+
}
|
|
148
|
+
| {[key: string]: PackageJsonExports | null | undefined};
|
|
149
|
+
|
|
150
|
+
export const packageJsonSchema = z.object({
|
|
151
|
+
name: z.string().optional(),
|
|
152
|
+
version: z.string().optional(),
|
|
153
|
+
description: z.string().optional(),
|
|
154
|
+
keywords: z.string().array().optional(),
|
|
155
|
+
homepage: z.string().optional(),
|
|
156
|
+
bugs: packageJsonBugsLocationSchema.optional(),
|
|
157
|
+
license: z.string().optional(),
|
|
158
|
+
author: packageJsonPersonSchema.optional(),
|
|
159
|
+
contributors: packageJsonPersonSchema.array().optional(),
|
|
160
|
+
maintainers: packageJsonPersonSchema.array().optional(),
|
|
161
|
+
files: z.string().array().optional(),
|
|
162
|
+
type: z.union([z.literal('commonjs'), z.literal('module')]).optional(),
|
|
163
|
+
main: z.string().optional(),
|
|
164
|
+
exports: packageJsonExportsSchema.optional(),
|
|
165
|
+
bin: z.union([z.record(z.string()), z.string()]).optional(),
|
|
166
|
+
man: z.union([z.string().array(), z.string()]).optional(),
|
|
167
|
+
directories: packageJsonDirectoryLocationsSchema.optional(),
|
|
168
|
+
repository: z
|
|
169
|
+
.union([
|
|
170
|
+
z
|
|
171
|
+
.object({
|
|
172
|
+
type: z.string(),
|
|
173
|
+
url: z.string(),
|
|
174
|
+
directory: z.string().optional(),
|
|
175
|
+
})
|
|
176
|
+
.strict(),
|
|
177
|
+
z.string(),
|
|
178
|
+
])
|
|
179
|
+
.optional(),
|
|
180
|
+
scripts: packageJsonScriptsSchema.optional(),
|
|
181
|
+
config: z.record(z.unknown()).optional(),
|
|
182
|
+
dependencies: packageJsonDependenciesSchema.optional(),
|
|
183
|
+
devDependencies: packageJsonDependenciesSchema.optional(),
|
|
184
|
+
optionalDependencies: packageJsonDependenciesSchema.optional(),
|
|
185
|
+
peerDependencies: packageJsonDependenciesSchema.optional(),
|
|
186
|
+
peerDependenciesMeta: z
|
|
187
|
+
.record(
|
|
188
|
+
z.object({
|
|
189
|
+
optional: z.boolean(),
|
|
190
|
+
}),
|
|
191
|
+
)
|
|
192
|
+
.optional(),
|
|
193
|
+
bundledDependencies: packageJsonBundledDependenciesSchema,
|
|
194
|
+
bundleDependencies: packageJsonBundledDependenciesSchema,
|
|
195
|
+
overrides: z
|
|
196
|
+
.record(z.union([z.string(), z.record(z.union([z.string(), z.record(z.unknown())]))]))
|
|
197
|
+
.optional(),
|
|
198
|
+
|
|
199
|
+
funding: z.union([packageJsonFundingSchema.array(), packageJsonFundingSchema]).optional(),
|
|
200
|
+
|
|
201
|
+
module: z.string().optional(),
|
|
202
|
+
esnext: z.union([z.string(), z.record(z.string())]).optional(),
|
|
203
|
+
browser: z.union([z.string(), z.record(z.union([z.string(), z.literal(false)]))]).optional(),
|
|
204
|
+
sideEffects: z.union([z.string().array(), z.boolean()]).optional(),
|
|
205
|
+
|
|
206
|
+
engines: z
|
|
207
|
+
.intersection(
|
|
208
|
+
z.object({
|
|
209
|
+
node: z.string().optional(),
|
|
210
|
+
npm: z.string().optional(),
|
|
211
|
+
}),
|
|
212
|
+
z.record(z.string()),
|
|
213
|
+
)
|
|
214
|
+
.optional(),
|
|
215
|
+
|
|
216
|
+
os: z
|
|
217
|
+
.union([
|
|
218
|
+
z.enum([
|
|
219
|
+
'!aix',
|
|
220
|
+
'!darwin',
|
|
221
|
+
'!freebsd',
|
|
222
|
+
'!linux',
|
|
223
|
+
'!openbsd',
|
|
224
|
+
'!sunos',
|
|
225
|
+
'!win32',
|
|
226
|
+
'aix',
|
|
227
|
+
'darwin',
|
|
228
|
+
'freebsd',
|
|
229
|
+
'linux',
|
|
230
|
+
'openbsd',
|
|
231
|
+
'sunos',
|
|
232
|
+
'win32',
|
|
233
|
+
]),
|
|
234
|
+
z.string(),
|
|
235
|
+
])
|
|
236
|
+
.array()
|
|
237
|
+
.optional(),
|
|
238
|
+
cpu: z
|
|
239
|
+
.union([
|
|
240
|
+
z.enum([
|
|
241
|
+
'!arm',
|
|
242
|
+
'!arm64',
|
|
243
|
+
'!ia32',
|
|
244
|
+
'!mips',
|
|
245
|
+
'!mipsel',
|
|
246
|
+
'!ppc',
|
|
247
|
+
'!ppc64',
|
|
248
|
+
'!s390',
|
|
249
|
+
'!s390x',
|
|
250
|
+
'!x32',
|
|
251
|
+
'!x64',
|
|
252
|
+
'arm',
|
|
253
|
+
'arm64',
|
|
254
|
+
'ia32',
|
|
255
|
+
'mips',
|
|
256
|
+
'mipsel',
|
|
257
|
+
'ppc',
|
|
258
|
+
'ppc64',
|
|
259
|
+
's390',
|
|
260
|
+
's390x',
|
|
261
|
+
'x32',
|
|
262
|
+
'x64',
|
|
263
|
+
]),
|
|
264
|
+
z.string(),
|
|
265
|
+
])
|
|
266
|
+
.array()
|
|
267
|
+
.optional(),
|
|
268
|
+
private: z.boolean().optional(),
|
|
269
|
+
publishConfig: packageJsonPublishConfigSchema.optional(),
|
|
270
|
+
preferGlobal: z.boolean().optional(),
|
|
271
|
+
|
|
272
|
+
workspaces: z
|
|
273
|
+
.union([
|
|
274
|
+
z.string().array(),
|
|
275
|
+
z
|
|
276
|
+
.object({
|
|
277
|
+
packages: z.string().array().optional(),
|
|
278
|
+
nohoist: z.string().array().optional(),
|
|
279
|
+
})
|
|
280
|
+
.strict(),
|
|
281
|
+
])
|
|
282
|
+
.optional(),
|
|
283
|
+
flat: z.boolean().optional(),
|
|
284
|
+
resolutions: packageJsonDependenciesSchema.optional(),
|
|
285
|
+
|
|
286
|
+
types: z.string().optional(),
|
|
287
|
+
typings: z.string().optional(),
|
|
288
|
+
|
|
289
|
+
// TODO: move following to separate schema
|
|
290
|
+
packageManager: z.string().optional(),
|
|
291
|
+
source: z.string().optional(),
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
export type PackageJson = z.infer<typeof packageJsonSchema>;
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
let jsxSchema = z.enum(['preserve', 'react', 'react-jsx', 'react-jsxdev', 'react-native']);
|
|
4
|
+
|
|
5
|
+
let moduleSchema = z.enum([
|
|
6
|
+
'CommonJS',
|
|
7
|
+
'AMD',
|
|
8
|
+
'System',
|
|
9
|
+
'UMD',
|
|
10
|
+
'ES6',
|
|
11
|
+
'ES2015',
|
|
12
|
+
'ES2020',
|
|
13
|
+
'ESNext',
|
|
14
|
+
'None',
|
|
15
|
+
'commonjs',
|
|
16
|
+
'amd',
|
|
17
|
+
'system',
|
|
18
|
+
'umd',
|
|
19
|
+
'es6',
|
|
20
|
+
'es2015',
|
|
21
|
+
'es2020',
|
|
22
|
+
'esnext',
|
|
23
|
+
'none',
|
|
24
|
+
]);
|
|
25
|
+
|
|
26
|
+
let newLineSchema = z.enum(['CRLF', 'LF', 'crlf', 'lf']);
|
|
27
|
+
|
|
28
|
+
let targetSchema = z.enum([
|
|
29
|
+
'ES3',
|
|
30
|
+
'ES5',
|
|
31
|
+
'ES6',
|
|
32
|
+
'ES2015',
|
|
33
|
+
'ES2016',
|
|
34
|
+
'ES2017',
|
|
35
|
+
'ES2018',
|
|
36
|
+
'ES2019',
|
|
37
|
+
'ES2020',
|
|
38
|
+
'ES2021',
|
|
39
|
+
'ESNext',
|
|
40
|
+
'es3',
|
|
41
|
+
'es5',
|
|
42
|
+
'es6',
|
|
43
|
+
'es2015',
|
|
44
|
+
'es2016',
|
|
45
|
+
'es2017',
|
|
46
|
+
'es2018',
|
|
47
|
+
'es2019',
|
|
48
|
+
'es2020',
|
|
49
|
+
'es2021',
|
|
50
|
+
'esnext',
|
|
51
|
+
]);
|
|
52
|
+
|
|
53
|
+
let libSchema = z.enum([
|
|
54
|
+
'ES5',
|
|
55
|
+
'ES6',
|
|
56
|
+
'ES7',
|
|
57
|
+
'ES2015',
|
|
58
|
+
'ES2015.Collection',
|
|
59
|
+
'ES2015.Core',
|
|
60
|
+
'ES2015.Generator',
|
|
61
|
+
'ES2015.Iterable',
|
|
62
|
+
'ES2015.Promise',
|
|
63
|
+
'ES2015.Proxy',
|
|
64
|
+
'ES2015.Reflect',
|
|
65
|
+
'ES2015.Symbol.WellKnown',
|
|
66
|
+
'ES2015.Symbol',
|
|
67
|
+
'ES2016',
|
|
68
|
+
'ES2016.Array.Include',
|
|
69
|
+
'ES2017',
|
|
70
|
+
'ES2017.Intl',
|
|
71
|
+
'ES2017.Object',
|
|
72
|
+
'ES2017.SharedMemory',
|
|
73
|
+
'ES2017.String',
|
|
74
|
+
'ES2017.TypedArrays',
|
|
75
|
+
'ES2018',
|
|
76
|
+
'ES2018.AsyncGenerator',
|
|
77
|
+
'ES2018.AsyncIterable',
|
|
78
|
+
'ES2018.Intl',
|
|
79
|
+
'ES2018.Promise',
|
|
80
|
+
'ES2018.Regexp',
|
|
81
|
+
'ES2019',
|
|
82
|
+
'ES2019.Array',
|
|
83
|
+
'ES2019.Object',
|
|
84
|
+
'ES2019.String',
|
|
85
|
+
'ES2019.Symbol',
|
|
86
|
+
'ES2020',
|
|
87
|
+
'ES2020.BigInt',
|
|
88
|
+
'ES2020.Promise',
|
|
89
|
+
'ES2020.String',
|
|
90
|
+
'ES2020.Symbol.WellKnown',
|
|
91
|
+
'ES2020.SharedMemory',
|
|
92
|
+
'ES2020.Intl',
|
|
93
|
+
'ES2021',
|
|
94
|
+
'ES2021.Promise',
|
|
95
|
+
'ES2021.String',
|
|
96
|
+
'ES2021.WeakRef',
|
|
97
|
+
'ESNext',
|
|
98
|
+
'ESNext.Array',
|
|
99
|
+
'ESNext.AsyncIterable',
|
|
100
|
+
'ESNext.BigInt',
|
|
101
|
+
'ESNext.Intl',
|
|
102
|
+
'ESNext.Promise',
|
|
103
|
+
'ESNext.String',
|
|
104
|
+
'ESNext.Symbol',
|
|
105
|
+
'ESNext.WeakRef',
|
|
106
|
+
'DOM',
|
|
107
|
+
'DOM.Iterable',
|
|
108
|
+
'ScriptHost',
|
|
109
|
+
'WebWorker',
|
|
110
|
+
'WebWorker.ImportScripts',
|
|
111
|
+
'WebWorker.Iterable',
|
|
112
|
+
'es5',
|
|
113
|
+
'es6',
|
|
114
|
+
'es7',
|
|
115
|
+
'es2015',
|
|
116
|
+
'es2015.collection',
|
|
117
|
+
'es2015.core',
|
|
118
|
+
'es2015.generator',
|
|
119
|
+
'es2015.iterable',
|
|
120
|
+
'es2015.promise',
|
|
121
|
+
'es2015.proxy',
|
|
122
|
+
'es2015.reflect',
|
|
123
|
+
'es2015.symbol.wellknown',
|
|
124
|
+
'es2015.symbol',
|
|
125
|
+
'es2016',
|
|
126
|
+
'es2016.array.include',
|
|
127
|
+
'es2017',
|
|
128
|
+
'es2017.intl',
|
|
129
|
+
'es2017.object',
|
|
130
|
+
'es2017.sharedmemory',
|
|
131
|
+
'es2017.string',
|
|
132
|
+
'es2017.typedarrays',
|
|
133
|
+
'es2018',
|
|
134
|
+
'es2018.asyncgenerator',
|
|
135
|
+
'es2018.asynciterable',
|
|
136
|
+
'es2018.intl',
|
|
137
|
+
'es2018.promise',
|
|
138
|
+
'es2018.regexp',
|
|
139
|
+
'es2019',
|
|
140
|
+
'es2019.array',
|
|
141
|
+
'es2019.object',
|
|
142
|
+
'es2019.string',
|
|
143
|
+
'es2019.symbol',
|
|
144
|
+
'es2020',
|
|
145
|
+
'es2020.bigint',
|
|
146
|
+
'es2020.promise',
|
|
147
|
+
'es2020.string',
|
|
148
|
+
'es2020.symbol.wellknown',
|
|
149
|
+
'es2020.sharedmemory',
|
|
150
|
+
'es2020.intl',
|
|
151
|
+
'es2021',
|
|
152
|
+
'es2021.promise',
|
|
153
|
+
'es2021.string',
|
|
154
|
+
'es2021.weakref',
|
|
155
|
+
'esnext',
|
|
156
|
+
'esnext.array',
|
|
157
|
+
'esnext.asynciterable',
|
|
158
|
+
'esnext.bigint',
|
|
159
|
+
'esnext.intl',
|
|
160
|
+
'esnext.promise',
|
|
161
|
+
'esnext.string',
|
|
162
|
+
'esnext.symbol',
|
|
163
|
+
'esnext.weakref',
|
|
164
|
+
'dom',
|
|
165
|
+
'dom.iterable',
|
|
166
|
+
'scripthost',
|
|
167
|
+
'webworker',
|
|
168
|
+
'webworker.importscripts',
|
|
169
|
+
'webworker.iterable',
|
|
170
|
+
]);
|
|
171
|
+
|
|
172
|
+
let pluginSchema = z
|
|
173
|
+
.object({
|
|
174
|
+
name: z.string().optional(),
|
|
175
|
+
})
|
|
176
|
+
.strict()
|
|
177
|
+
.and(z.record(z.unknown()));
|
|
178
|
+
|
|
179
|
+
let importsNotUsedAsValuesSchema = z.enum(['remove', 'preserve', 'error']);
|
|
180
|
+
|
|
181
|
+
let fallbackPollingSchema = z.enum([
|
|
182
|
+
'fixedPollingInterval',
|
|
183
|
+
'priorityPollingInterval',
|
|
184
|
+
'dynamicPriorityPolling',
|
|
185
|
+
'fixedInterval',
|
|
186
|
+
'priorityInterval',
|
|
187
|
+
'dynamicPriority',
|
|
188
|
+
'fixedChunkSize',
|
|
189
|
+
]);
|
|
190
|
+
|
|
191
|
+
let watchDirectory = z.enum([
|
|
192
|
+
'useFsEvents',
|
|
193
|
+
'fixedPollingInterval',
|
|
194
|
+
'dynamicPriorityPolling',
|
|
195
|
+
'fixedChunkSizePolling',
|
|
196
|
+
]);
|
|
197
|
+
|
|
198
|
+
let watchFileSchema = z.enum([
|
|
199
|
+
'fixedPollingInterval',
|
|
200
|
+
'priorityPollingInterval',
|
|
201
|
+
'dynamicPriorityPolling',
|
|
202
|
+
'useFsEvents',
|
|
203
|
+
'useFsEventsOnParentDirectory',
|
|
204
|
+
'fixedChunkSizePolling',
|
|
205
|
+
]);
|
|
206
|
+
|
|
207
|
+
let compilerOptionsSchema = z
|
|
208
|
+
.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(['classic', 'node']).optional(),
|
|
259
|
+
newLine: newLineSchema.optional(),
|
|
260
|
+
noEmit: z.boolean().optional(),
|
|
261
|
+
noEmitHelpers: z.boolean().optional(),
|
|
262
|
+
noEmitOnError: z.boolean().optional(),
|
|
263
|
+
noErrorTruncation: z.boolean().optional(),
|
|
264
|
+
noFallthroughCasesInSwitch: z.boolean().optional(),
|
|
265
|
+
noImplicitAny: z.boolean().optional(),
|
|
266
|
+
noImplicitOverride: z.boolean().optional(),
|
|
267
|
+
noImplicitReturns: z.boolean().optional(),
|
|
268
|
+
noImplicitThis: z.boolean().optional(),
|
|
269
|
+
noImplicitUseStrict: z.boolean().optional(),
|
|
270
|
+
noLib: z.boolean().optional(),
|
|
271
|
+
noPropertyAccessFromIndexSignature: z.boolean().optional(),
|
|
272
|
+
noResolve: z.boolean().optional(),
|
|
273
|
+
noStrictGenericChecks: z.boolean().optional(),
|
|
274
|
+
noUncheckedIndexedAccess: z.boolean().optional(),
|
|
275
|
+
noUnusedLocals: z.boolean().optional(),
|
|
276
|
+
noUnusedParameters: z.boolean().optional(),
|
|
277
|
+
outDir: z.string().optional(),
|
|
278
|
+
outFile: z.string().optional(),
|
|
279
|
+
paths: z.record(z.string().array()).optional(),
|
|
280
|
+
plugins: pluginSchema.array().optional(),
|
|
281
|
+
preserveConstEnums: z.boolean().optional(),
|
|
282
|
+
preserveSymlinks: z.boolean().optional(),
|
|
283
|
+
preserveWatchOutput: z.boolean().optional(),
|
|
284
|
+
pretty: z.boolean().optional(),
|
|
285
|
+
reactNamespace: z.string().optional(),
|
|
286
|
+
removeComments: z.boolean().optional(),
|
|
287
|
+
resolveJsonModule: z.boolean().optional(),
|
|
288
|
+
rootDir: z.string().optional(),
|
|
289
|
+
rootDirs: z.string().array().optional(),
|
|
290
|
+
skipDefaultLibCheck: z.boolean().optional(),
|
|
291
|
+
skipLibCheck: z.boolean().optional(),
|
|
292
|
+
sourceMap: z.boolean().optional(),
|
|
293
|
+
sourceRoot: z.string().optional(),
|
|
294
|
+
strict: z.boolean().optional(),
|
|
295
|
+
strictBindCallApply: z.boolean().optional(),
|
|
296
|
+
strictFunctionTypes: z.boolean().optional(),
|
|
297
|
+
strictNullChecks: z.boolean().optional(),
|
|
298
|
+
strictPropertyInitialization: z.boolean().optional(),
|
|
299
|
+
stripInternal: z.boolean().optional(),
|
|
300
|
+
suppressExcessPropertyErrors: z.boolean().optional(),
|
|
301
|
+
suppressImplicitAnyIndexErrors: z.boolean().optional(),
|
|
302
|
+
target: targetSchema.optional(),
|
|
303
|
+
traceResolution: z.boolean().optional(),
|
|
304
|
+
tsBuildInfoFile: z.string().optional(),
|
|
305
|
+
typeRoots: z.string().array().optional(),
|
|
306
|
+
types: z.string().array().optional(),
|
|
307
|
+
useDefineForClassFields: z.boolean().optional(),
|
|
308
|
+
useUnknownInCatchVariables: z.boolean().optional(),
|
|
309
|
+
watch: z.boolean().optional(),
|
|
310
|
+
watchDirectory: watchDirectory.optional(),
|
|
311
|
+
watchFile: watchFileSchema.optional(),
|
|
312
|
+
})
|
|
313
|
+
.strict();
|
|
314
|
+
|
|
315
|
+
let typeAcquisitionSchema = z
|
|
316
|
+
.object({
|
|
317
|
+
enable: z.boolean().optional(),
|
|
318
|
+
include: z.string().array().optional(),
|
|
319
|
+
exclude: z.string().array().optional(),
|
|
320
|
+
})
|
|
321
|
+
.strict();
|
|
322
|
+
|
|
323
|
+
let referencesSchema = z
|
|
324
|
+
.object({
|
|
325
|
+
path: z.string(),
|
|
326
|
+
|
|
327
|
+
originalPath: z.string().optional(),
|
|
328
|
+
prepend: z.boolean().optional(),
|
|
329
|
+
circular: z.boolean().optional(),
|
|
330
|
+
})
|
|
331
|
+
.strict();
|
|
332
|
+
|
|
333
|
+
export const tsconfigJsonSchema = z
|
|
334
|
+
.object({
|
|
335
|
+
compileOnSave: z.boolean().optional(),
|
|
336
|
+
compilerOptions: compilerOptionsSchema.optional(),
|
|
337
|
+
exclude: z.string().array().optional(),
|
|
338
|
+
extends: z.string().optional(),
|
|
339
|
+
files: z.string().array().optional(),
|
|
340
|
+
include: z.string().array().optional(),
|
|
341
|
+
references: referencesSchema.array().optional(),
|
|
342
|
+
typeAcquisition: typeAcquisitionSchema.optional(),
|
|
343
|
+
})
|
|
344
|
+
.strict();
|
|
345
|
+
|
|
346
|
+
export type TsconfigJson = z.infer<typeof tsconfigJsonSchema>;
|
package/src/types.ts
ADDED