@umijs/preset-umi 4.0.58 → 4.0.60

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.
@@ -58,10 +58,10 @@ var apiRoute_default = (api) => {
58
58
  api.describe({
59
59
  key: "apiRoute",
60
60
  config: {
61
- schema(Joi) {
62
- return Joi.object({
63
- platform: Joi.string()
64
- });
61
+ schema({ zod }) {
62
+ return zod.object({
63
+ platform: zod.string()
64
+ }).deepPartial();
65
65
  }
66
66
  },
67
67
  enableBy: () => {
@@ -26,8 +26,10 @@ var classPropertiesLoose_default = (api) => {
26
26
  api.describe({
27
27
  key: "classPropertiesLoose",
28
28
  config: {
29
- schema(joi) {
30
- return joi.object();
29
+ schema({ zod }) {
30
+ return zod.union([zod.boolean(), zod.object({})]).describe(
31
+ "设置 babel class-properties 启用 loose \n @doc https://umijs.org/docs/api/config#classpropertiesloose"
32
+ );
31
33
  }
32
34
  },
33
35
  enableBy: api.EnableBy.config
@@ -38,9 +38,11 @@ var clickToComponent_default = (api) => {
38
38
  api.describe({
39
39
  key: "clickToComponent",
40
40
  config: {
41
- schema(joi) {
42
- return joi.object({
43
- editor: joi.string()
41
+ schema({ zod }) {
42
+ return zod.object({
43
+ editor: zod.string().describe(
44
+ "默认情况下,点击将默认编辑器为vscode, 你可以设置编辑器 vscode 或者 vscode-insiders"
45
+ ).optional()
44
46
  });
45
47
  }
46
48
  },
@@ -26,8 +26,8 @@ var import_routeExportExtractor = require("../../utils/routeExportExtractor");
26
26
  var clientLoader_default = (api) => {
27
27
  api.describe({
28
28
  config: {
29
- schema(Joi) {
30
- return Joi.object({});
29
+ schema({ zod }) {
30
+ return zod.object({});
31
31
  }
32
32
  },
33
33
  enableBy: api.EnableBy.config
@@ -37,16 +37,12 @@ var codeSplitting_default = (api) => {
37
37
  api.describe({
38
38
  key: "codeSplitting",
39
39
  config: {
40
- schema(Joi) {
41
- return Joi.object({
42
- jsStrategy: Joi.string().allow(
43
- "bigVendors",
44
- "depPerChunk",
45
- "granularChunks"
46
- ),
47
- jsStrategyOptions: Joi.object(),
48
- cssStrategy: Joi.string().allow("mergeAll"),
49
- cssStrategyOptions: Joi.object()
40
+ schema({ zod }) {
41
+ return zod.object({
42
+ jsStrategy: zod.enum(["bigVendors", "depPerChunk", "granularChunks"]),
43
+ jsStrategyOptions: zod.object({}).optional(),
44
+ cssStrategy: zod.enum(["mergeAll"]).optional(),
45
+ cssStrategyOptions: zod.object({}).optional()
50
46
  });
51
47
  }
52
48
  },
@@ -1,2 +1,4 @@
1
- import type { Root } from '@umijs/utils/compiled/@hapi/joi';
2
- export declare function getSchemas(): Record<string, (Joi: Root) => any>;
1
+ import { z } from '@umijs/utils/compiled/zod';
2
+ export declare function getSchemas(): Record<string, ({}: {
3
+ zod: typeof z;
4
+ }) => any>;
@@ -24,37 +24,90 @@ __export(schema_exports, {
24
24
  module.exports = __toCommonJS(schema_exports);
25
25
  var import_utils = require("@umijs/utils");
26
26
  function getSchemas() {
27
+ const scriptsSchema = ({ zod }) => zod.array(
28
+ zod.union([
29
+ zod.string(),
30
+ zod.object({
31
+ src: zod.string().optional()
32
+ }),
33
+ zod.object({
34
+ content: zod.string().optional()
35
+ }),
36
+ zod.record(zod.string(), zod.any())
37
+ ])
38
+ );
27
39
  return {
28
- analyze: (Joi) => Joi.object(),
29
- base: (Joi) => Joi.string(),
30
- conventionRoutes: (Joi) => Joi.object({
31
- base: Joi.string(),
32
- exclude: Joi.array().items(Joi.any())
40
+ analyze: ({ zod }) => zod.object({}),
41
+ base: ({ zod }) => zod.string(),
42
+ conventionRoutes: ({ zod }) => zod.object({
43
+ base: zod.string().optional(),
44
+ exclude: zod.array(zod.any()).optional()
33
45
  }),
34
- esbuildMinifyIIFE: (Joi) => Joi.boolean(),
35
- headScripts: (Joi) => Joi.array(),
36
- history: (Joi) => Joi.object({
37
- type: Joi.string().valid("browser", "hash", "memory")
46
+ esbuildMinifyIIFE: ({ zod }) => zod.boolean(),
47
+ headScripts: scriptsSchema,
48
+ history: ({ zod }) => zod.object({
49
+ type: zod.enum(["browser", "hash", "memory"])
38
50
  }),
39
- historyWithQuery: (Joi) => Joi.object(),
40
- links: (Joi) => Joi.array(),
41
- metas: (Joi) => Joi.array(),
42
- mountElementId: (Joi) => Joi.string(),
43
- npmClient: (Joi) => Joi.string().valid(
51
+ historyWithQuery: ({ zod }) => zod.object({}),
52
+ links: ({ zod }) => zod.array(
53
+ zod.union([
54
+ zod.object({
55
+ crossorigin: zod.string(),
56
+ href: zod.string(),
57
+ hreflang: zod.string(),
58
+ media: zod.string(),
59
+ referrerpolicy: zod.string(),
60
+ rel: zod.string(),
61
+ sizes: zod.any(),
62
+ title: zod.any(),
63
+ type: zod.any()
64
+ }).deepPartial(),
65
+ zod.record(zod.string(), zod.any())
66
+ ])
67
+ ),
68
+ metas: ({ zod }) => zod.array(
69
+ zod.union([
70
+ zod.object({
71
+ charset: zod.string(),
72
+ content: zod.string(),
73
+ "http-equiv": zod.string(),
74
+ name: zod.string()
75
+ }).deepPartial(),
76
+ zod.record(zod.string(), zod.any())
77
+ ])
78
+ ),
79
+ mountElementId: ({ zod }) => zod.string(),
80
+ npmClient: ({ zod }) => zod.enum([
44
81
  import_utils.NpmClientEnum.pnpm,
45
82
  import_utils.NpmClientEnum.tnpm,
46
83
  import_utils.NpmClientEnum.cnpm,
47
84
  import_utils.NpmClientEnum.yarn,
48
85
  import_utils.NpmClientEnum.npm
49
- ),
50
- plugins: (Joi) => Joi.array().items(Joi.string()),
51
- presets: (Joi) => Joi.array().items(Joi.string()),
52
- publicPath: (Joi) => Joi.string().regex(/(\/|^auto)$/).error(new Error('publicPath must be "auto" or end with /')),
53
- reactRouter5Compat: (Joi) => Joi.object(),
54
- routes: (Joi) => Joi.array().items(Joi.object()),
55
- scripts: (Joi) => Joi.array(),
56
- styles: (Joi) => Joi.array(),
57
- title: (Joi) => Joi.string()
86
+ ]),
87
+ plugins: ({ zod }) => zod.array(zod.string()),
88
+ presets: ({ zod }) => zod.array(zod.string()),
89
+ publicPath: ({ zod }) => zod.string().regex(/(\/|^auto)$/, {
90
+ message: 'publicPath must be "auto" or end with /'
91
+ }),
92
+ reactRouter5Compat: ({ zod }) => zod.union([zod.boolean(), zod.object({})]),
93
+ routes: ({ zod }) => {
94
+ const routeSchema = zod.union([
95
+ zod.object({
96
+ component: zod.string(),
97
+ layout: zod.literal(false),
98
+ path: zod.string(),
99
+ redirect: zod.string(),
100
+ // lazy schema need replace type when `zod2ts`
101
+ routes: zod.lazy(() => routeSchema.array()),
102
+ wrappers: zod.array(zod.string())
103
+ }).deepPartial(),
104
+ zod.record(zod.string(), zod.any())
105
+ ]);
106
+ return routeSchema.array();
107
+ },
108
+ scripts: scriptsSchema,
109
+ styles: scriptsSchema,
110
+ title: ({ zod }) => zod.string()
58
111
  };
59
112
  }
60
113
  // Annotate the CommonJS export names for ESM import in node:
@@ -26,13 +26,13 @@ var crossorigin_default = (api) => {
26
26
  api.describe({
27
27
  key: "crossorigin",
28
28
  config: {
29
- schema(Joi) {
30
- return Joi.alternatives(
31
- Joi.boolean(),
32
- Joi.object({
33
- includes: Joi.array().items(Joi.object().instance(RegExp))
29
+ schema({ zod }) {
30
+ return zod.union([
31
+ zod.boolean(),
32
+ zod.object({
33
+ includes: zod.array(zod.instanceof(RegExp)).optional()
34
34
  })
35
- );
35
+ ]);
36
36
  }
37
37
  },
38
38
  enableBy: api.EnableBy.config
@@ -165,10 +165,10 @@ var esmi_default = (api) => {
165
165
  api.describe({
166
166
  key: "esmi",
167
167
  config: {
168
- schema(Joi) {
169
- return Joi.object({
170
- cdnOrigin: Joi.string(),
171
- shimUrl: Joi.string()
168
+ schema({ zod }) {
169
+ return zod.object({
170
+ cdnOrigin: zod.string(),
171
+ shimUrl: zod.string().optional()
172
172
  });
173
173
  }
174
174
  },
@@ -101,12 +101,12 @@ var exportStatic_default = (api) => {
101
101
  }
102
102
  api.describe({
103
103
  config: {
104
- schema: (Joi) => Joi.object({
105
- extraRoutePaths: Joi.alternatives(
106
- Joi.function(),
107
- Joi.array().items(Joi.string())
108
- )
109
- })
104
+ schema: ({ zod }) => zod.object({
105
+ extraRoutePaths: zod.union([
106
+ zod.function(),
107
+ zod.array(zod.string())
108
+ ])
109
+ }).deepPartial()
110
110
  },
111
111
  enableBy: api.EnableBy.config
112
112
  });
@@ -40,7 +40,7 @@ function getFaviconFiles(p) {
40
40
  var favicons_default = (api) => {
41
41
  api.describe({
42
42
  config: {
43
- schema: (Joi) => Joi.array().items(Joi.string())
43
+ schema: ({ zod }) => zod.array(zod.string())
44
44
  }
45
45
  });
46
46
  api.modifyAppData(async (memo) => {
@@ -37,7 +37,7 @@ var import_path = require("path");
37
37
  var helmet_default = (api) => {
38
38
  api.describe({
39
39
  config: {
40
- schema: (Joi) => Joi.boolean()
40
+ schema: ({ zod }) => zod.boolean()
41
41
  }
42
42
  });
43
43
  api.onGenerateFiles(() => {
@@ -43,15 +43,15 @@ var icons_default = (api) => {
43
43
  const svgr = (0, import_utils.importLazy)(require.resolve("./svgr"));
44
44
  api.describe({
45
45
  config: {
46
- schema(Joi) {
47
- return Joi.object({
46
+ schema({ zod }) {
47
+ return zod.object({
48
48
  // don't support tnpm
49
- autoInstall: Joi.object(),
50
- defaultComponentConfig: Joi.object(),
49
+ autoInstall: zod.object({}),
50
+ defaultComponentConfig: zod.object({}),
51
51
  // e.g. alias: { home: 'fa:home' }
52
- alias: Joi.object(),
53
- include: Joi.array().items(Joi.string())
54
- });
52
+ alias: zod.object({}),
53
+ include: zod.array(zod.string())
54
+ }).deepPartial();
55
55
  }
56
56
  },
57
57
  enableBy: api.EnableBy.config
@@ -39,12 +39,12 @@ var legacy_default = (api) => {
39
39
  api.describe({
40
40
  key: "legacy",
41
41
  config: {
42
- schema(Joi) {
43
- return Joi.object({
44
- buildOnly: Joi.boolean(),
45
- nodeModulesTransform: Joi.boolean(),
46
- checkOutput: Joi.boolean()
47
- });
42
+ schema({ zod }) {
43
+ return zod.object({
44
+ buildOnly: zod.boolean(),
45
+ nodeModulesTransform: zod.boolean(),
46
+ checkOutput: zod.boolean()
47
+ }).deepPartial();
48
48
  }
49
49
  },
50
50
  enableBy: api.EnableBy.config
@@ -80,11 +80,11 @@ var lowImport_default = (api) => {
80
80
  api.describe({
81
81
  key: "lowImport",
82
82
  config: {
83
- schema(Joi) {
84
- return Joi.object({
85
- libs: Joi.array(),
86
- css: Joi.string()
87
- });
83
+ schema({ zod }) {
84
+ return zod.object({
85
+ libs: zod.array(zod.any()),
86
+ css: zod.string()
87
+ }).deepPartial();
88
88
  }
89
89
  },
90
90
  enableBy: api.EnableBy.config
@@ -41,11 +41,11 @@ function mock_default(api) {
41
41
  api.describe({
42
42
  key: "mock",
43
43
  config: {
44
- schema(Joi) {
45
- return Joi.object().keys({
46
- exclude: Joi.array().items(Joi.string()).description("exclude files not parse mock"),
47
- include: Joi.array().items(Joi.string())
48
- });
44
+ schema({ zod }) {
45
+ return zod.object({
46
+ exclude: zod.array(zod.string()).describe("exclude files not parse mock"),
47
+ include: zod.array(zod.string())
48
+ }).deepPartial();
49
49
  }
50
50
  },
51
51
  enableBy() {
@@ -42,15 +42,15 @@ var redirect_default = (api) => {
42
42
  api.describe({
43
43
  key: "monorepoRedirect",
44
44
  config: {
45
- schema(Joi) {
46
- return Joi.alternatives(
47
- Joi.boolean(),
48
- Joi.object({
49
- srcDir: Joi.array().items(Joi.string()),
50
- exclude: Joi.array().items(Joi.object().instance(RegExp)),
51
- peerDeps: Joi.boolean()
52
- })
53
- );
45
+ schema({ zod }) {
46
+ return zod.union([
47
+ zod.boolean(),
48
+ zod.object({
49
+ srcDir: zod.array(zod.string()),
50
+ exclude: zod.array(zod.instanceof(RegExp)),
51
+ peerDeps: zod.boolean()
52
+ }).deepPartial()
53
+ ]);
54
54
  }
55
55
  },
56
56
  enableBy: api.EnableBy.config
@@ -40,13 +40,13 @@ var mpa_default = (api) => {
40
40
  api.describe({
41
41
  key: "mpa",
42
42
  config: {
43
- schema(Joi) {
44
- return Joi.object({
45
- template: Joi.string(),
46
- layout: Joi.string(),
47
- getConfigFromEntryFile: Joi.boolean(),
48
- entry: Joi.object()
49
- });
43
+ schema({ zod }) {
44
+ return zod.object({
45
+ template: zod.string(),
46
+ layout: zod.string(),
47
+ getConfigFromEntryFile: zod.boolean(),
48
+ entry: zod.object({})
49
+ }).deepPartial();
50
50
  }
51
51
  },
52
52
  enableBy: api.EnableBy.config
@@ -38,9 +38,9 @@ var phantomDependency_default = (api) => {
38
38
  api.describe({
39
39
  key: "phantomDependency",
40
40
  config: {
41
- schema(Joi) {
42
- return Joi.object({
43
- exclude: Joi.array().items(Joi.string())
41
+ schema({ zod }) {
42
+ return zod.object({
43
+ exclude: zod.array(zod.string()).optional()
44
44
  });
45
45
  }
46
46
  },
@@ -40,9 +40,9 @@ var polyfill_default = (api) => {
40
40
  api.describe({
41
41
  key: "polyfill",
42
42
  config: {
43
- schema(Joi) {
44
- return Joi.object().keys({
45
- imports: Joi.array().items(Joi.string()).required().unique()
43
+ schema({ zod }) {
44
+ return zod.object({
45
+ imports: zod.array(zod.string()).optional()
46
46
  });
47
47
  }
48
48
  },
@@ -27,8 +27,8 @@ var import_path = require("path");
27
27
  var routePrefetch_default = (api) => {
28
28
  api.describe({
29
29
  config: {
30
- schema(Joi) {
31
- return Joi.object({});
30
+ schema({ zod }) {
31
+ return zod.object({});
32
32
  }
33
33
  },
34
34
  enableBy: api.EnableBy.config
@@ -26,8 +26,8 @@ var import_routeExportExtractor = require("../../utils/routeExportExtractor");
26
26
  var routeProps_default = (api) => {
27
27
  api.describe({
28
28
  config: {
29
- schema(Joi) {
30
- return Joi.object({});
29
+ schema({ zod }) {
30
+ return zod.object({});
31
31
  }
32
32
  },
33
33
  enableBy: () => {
@@ -48,12 +48,12 @@ var ssr_default = (api) => {
48
48
  api.describe({
49
49
  key: "ssr",
50
50
  config: {
51
- schema(Joi) {
52
- return Joi.object({
53
- serverBuildPath: Joi.string(),
54
- platform: Joi.string(),
55
- builder: Joi.string().allow("esbuild", "webpack")
56
- });
51
+ schema({ zod }) {
52
+ return zod.object({
53
+ serverBuildPath: zod.string(),
54
+ platform: zod.string(),
55
+ builder: zod.enum(["esbuild", "webpack"])
56
+ }).deepPartial();
57
57
  }
58
58
  },
59
59
  enableBy: import_types.EnableBy.config
@@ -27,8 +27,8 @@ var terminal_default = (api) => {
27
27
  api.describe({
28
28
  key: "terminal",
29
29
  config: {
30
- schema(Joi) {
31
- return Joi.object();
30
+ schema({ zod }) {
31
+ return zod.object({});
32
32
  }
33
33
  }
34
34
  });
@@ -41,8 +41,8 @@ var test_default = (api) => {
41
41
  api.describe({
42
42
  key: "test",
43
43
  config: {
44
- schema(Joi) {
45
- return Joi.object();
44
+ schema({ zod }) {
45
+ return zod.object({});
46
46
  }
47
47
  },
48
48
  enableBy() {
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(configTypes_exports);
35
35
  var import_utils = require("@umijs/utils");
36
36
  var import_joi = __toESM(require("@umijs/utils/compiled/@hapi/joi"));
37
37
  var import_zod = require("@umijs/utils/compiled/zod");
38
- var import_path = require("path");
38
+ var import_zod2ts = require("@umijs/zod2ts");
39
39
  var FILTER_KEYS = ["chainWebpack"];
40
40
  var configTypes_default = (api) => {
41
41
  api.onGenerateFiles(async () => {
@@ -72,17 +72,27 @@ var configTypes_default = (api) => {
72
72
  path: `core/pluginConfigJoi.d.ts`,
73
73
  content
74
74
  });
75
+ const typeName = `IConfigTypes`;
76
+ const typeString = (0, import_zod2ts.zodToTs)({
77
+ zod: import_zod.z.object(zodProperties),
78
+ identifier: typeName
79
+ }).replace(
80
+ // replace to support routes circular reference type
81
+ `routes?: (any | undefined)`,
82
+ `routes?: ${typeName}['routes']`
83
+ );
75
84
  const typeContent = `
76
- import { zod as z } from "${(0, import_utils.winPath)(
77
- (0, import_path.dirname)(require.resolve("@umijs/utils/package.json"))
78
- )}";
79
- import { IConfigFromPluginsJoi } from "./pluginConfigJoi.d";
85
+ import { ${interfaceName} } from "./pluginConfigJoi.d";
80
86
 
81
- const IConfig = ${(0, import_utils.zod2string)(import_zod.z.object(zodProperties))};
87
+ interface ${typeName} ${typeString};
82
88
 
83
- type IConfigTypes = z.infer<typeof IConfig>;
89
+ type PrettifyWithCloseable<T> = {
90
+ [K in keyof T]: T[K] | false;
91
+ } & {};
84
92
 
85
- export type IConfigFromPlugins = IConfigFromPluginsJoi & Partial<IConfigTypes>;
93
+ export type IConfigFromPlugins = PrettifyWithCloseable<
94
+ ${interfaceName} & Partial<${typeName}>
95
+ >;
86
96
  `;
87
97
  api.writeTmpFile({
88
98
  noPluginDir: true,
@@ -47,8 +47,8 @@ var tmpFiles_default = (api) => {
47
47
  api.describe({
48
48
  key: "tmpFiles",
49
49
  config: {
50
- schema(Joi) {
51
- return Joi.boolean();
50
+ schema({ zod }) {
51
+ return zod.boolean();
52
52
  }
53
53
  }
54
54
  });
@@ -26,8 +26,8 @@ var vite_default = (api) => {
26
26
  api.describe({
27
27
  key: "vite",
28
28
  config: {
29
- schema(Joi) {
30
- return Joi.object();
29
+ schema({ zod }) {
30
+ return zod.object({});
31
31
  }
32
32
  },
33
33
  enableBy: api.EnableBy.config
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/preset-umi",
3
- "version": "4.0.58",
3
+ "version": "4.0.60",
4
4
  "description": "@umijs/preset-umi",
5
5
  "homepage": "https://github.com/umijs/umi/tree/master/packages/preset-umi#readme",
6
6
  "bugs": "https://github.com/umijs/umi/issues",
@@ -36,18 +36,19 @@
36
36
  "react-router": "6.3.0",
37
37
  "react-router-dom": "6.3.0",
38
38
  "regenerator-runtime": "0.13.11",
39
- "@umijs/ast": "4.0.58",
40
- "@umijs/babel-preset-umi": "4.0.58",
41
- "@umijs/bundler-vite": "4.0.58",
42
- "@umijs/bundler-webpack": "4.0.58",
43
- "@umijs/core": "4.0.58",
44
- "@umijs/renderer-react": "4.0.58",
45
- "@umijs/server": "4.0.58",
46
- "@umijs/utils": "4.0.58",
47
- "@umijs/plugin-run": "4.0.58",
48
- "@umijs/bundler-utils": "4.0.58",
49
- "@umijs/mfsu": "4.0.58",
50
- "@umijs/did-you-know": "1.0.3"
39
+ "@umijs/ast": "4.0.60",
40
+ "@umijs/babel-preset-umi": "4.0.60",
41
+ "@umijs/bundler-utils": "4.0.60",
42
+ "@umijs/bundler-webpack": "4.0.60",
43
+ "@umijs/bundler-vite": "4.0.60",
44
+ "@umijs/core": "4.0.60",
45
+ "@umijs/mfsu": "4.0.60",
46
+ "@umijs/plugin-run": "4.0.60",
47
+ "@umijs/did-you-know": "1.0.3",
48
+ "@umijs/renderer-react": "4.0.60",
49
+ "@umijs/server": "4.0.60",
50
+ "@umijs/utils": "4.0.60",
51
+ "@umijs/zod2ts": "4.0.60"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@manypkg/get-packages": "1.1.3",