@modern-js/core 1.9.1 → 1.9.2

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 (82) hide show
  1. package/dist/config/index.js +5 -1
  2. package/dist/config/schema/index.js +2 -3
  3. package/dist/index.js +5 -1
  4. package/dist/js/modern/cli.js +29 -0
  5. package/dist/js/modern/config/defaults.js +103 -0
  6. package/dist/js/modern/config/index.js +115 -0
  7. package/dist/js/modern/config/mergeConfig.js +22 -0
  8. package/dist/js/modern/config/schema/deploy.js +17 -0
  9. package/dist/js/modern/config/schema/index.js +107 -0
  10. package/dist/js/modern/config/schema/output.js +147 -0
  11. package/dist/js/modern/config/schema/server.js +170 -0
  12. package/dist/js/modern/config/schema/source.js +59 -0
  13. package/dist/js/modern/config/schema/tools.js +36 -0
  14. package/dist/js/modern/config/types/electron.js +1 -0
  15. package/dist/js/modern/config/types/index.js +1 -0
  16. package/dist/js/modern/config/types/less.js +0 -0
  17. package/dist/js/modern/config/types/sass.js +0 -0
  18. package/dist/js/modern/config/types/ssg.js +0 -0
  19. package/dist/js/modern/config/types/test.js +0 -0
  20. package/dist/js/modern/config/types/unbundle.js +0 -0
  21. package/dist/js/modern/context.js +63 -0
  22. package/dist/js/modern/index.js +169 -0
  23. package/dist/js/modern/initWatcher.js +62 -0
  24. package/dist/js/modern/loadEnv.js +14 -0
  25. package/dist/js/modern/loadPlugins.js +122 -0
  26. package/dist/js/modern/manager.js +28 -0
  27. package/dist/js/modern/pluginAPI.js +11 -0
  28. package/dist/js/modern/utils/commander.js +19 -0
  29. package/dist/js/modern/utils/repeatKeyWarning.js +18 -0
  30. package/dist/js/node/cli.js +35 -0
  31. package/dist/js/node/config/defaults.js +110 -0
  32. package/dist/js/node/config/index.js +182 -0
  33. package/dist/js/node/config/mergeConfig.js +32 -0
  34. package/dist/js/node/config/schema/deploy.js +26 -0
  35. package/dist/js/node/config/schema/index.js +127 -0
  36. package/dist/js/node/config/schema/output.js +156 -0
  37. package/dist/js/node/config/schema/server.js +179 -0
  38. package/dist/js/node/config/schema/source.js +68 -0
  39. package/dist/js/node/config/schema/tools.js +43 -0
  40. package/dist/js/node/config/types/electron.js +5 -0
  41. package/dist/js/node/config/types/index.js +5 -0
  42. package/dist/js/node/config/types/less.js +0 -0
  43. package/dist/js/node/config/types/sass.js +0 -0
  44. package/dist/js/node/config/types/ssg.js +0 -0
  45. package/dist/js/node/config/types/test.js +0 -0
  46. package/dist/js/node/config/types/unbundle.js +0 -0
  47. package/dist/js/node/context.js +93 -0
  48. package/dist/js/node/index.js +329 -0
  49. package/dist/js/node/initWatcher.js +82 -0
  50. package/dist/js/node/loadEnv.js +30 -0
  51. package/dist/js/node/loadPlugins.js +134 -0
  52. package/dist/js/node/manager.js +45 -0
  53. package/dist/js/node/pluginAPI.js +54 -0
  54. package/dist/js/node/utils/commander.js +32 -0
  55. package/dist/js/node/utils/repeatKeyWarning.js +31 -0
  56. package/dist/types/cli.d.ts +1 -0
  57. package/dist/types/config/defaults.d.ts +28 -0
  58. package/dist/types/config/index.d.ts +12 -0
  59. package/dist/types/config/mergeConfig.d.ts +31 -0
  60. package/dist/types/config/schema/deploy.d.ts +16 -0
  61. package/dist/types/config/schema/index.d.ts +466 -0
  62. package/dist/types/config/schema/output.d.ts +146 -0
  63. package/dist/types/config/schema/server.d.ts +182 -0
  64. package/dist/types/config/schema/source.d.ts +58 -0
  65. package/dist/types/config/schema/tools.d.ts +36 -0
  66. package/dist/types/config/types/electron.d.ts +13 -0
  67. package/dist/types/config/types/index.d.ts +252 -0
  68. package/dist/types/config/types/less.d.ts +10 -0
  69. package/dist/types/config/types/sass.d.ts +8 -0
  70. package/dist/types/config/types/ssg.d.ts +13 -0
  71. package/dist/types/config/types/test.d.ts +15 -0
  72. package/dist/types/config/types/unbundle.d.ts +28 -0
  73. package/dist/types/context.d.ts +47 -0
  74. package/dist/types/index.d.ts +64 -0
  75. package/dist/types/initWatcher.d.ts +3 -0
  76. package/dist/types/loadEnv.d.ts +1 -0
  77. package/dist/types/loadPlugins.d.ts +44 -0
  78. package/dist/types/manager.d.ts +75 -0
  79. package/dist/types/pluginAPI.d.ts +13 -0
  80. package/dist/types/utils/commander.d.ts +4 -0
  81. package/dist/types/utils/repeatKeyWarning.d.ts +3 -0
  82. package/package.json +4 -4
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.repeatKeyWarning = exports.deepGet = void 0;
7
+
8
+ var _schema = require("../config/schema");
9
+
10
+ const deepGet = (obj, key) => {
11
+ for (const p of key.split('.')) {
12
+ // eslint-disable-next-line no-param-reassign
13
+ obj = obj ? obj[p] : undefined;
14
+ }
15
+
16
+ return obj;
17
+ };
18
+
19
+ exports.deepGet = deepGet;
20
+
21
+ const repeatKeyWarning = (schema, jsConfig, pkgConfig) => {
22
+ const keys = (0, _schema.traverseSchema)(schema);
23
+
24
+ for (const key of keys) {
25
+ if (deepGet(jsConfig, key) !== undefined && deepGet(pkgConfig, key) !== undefined) {
26
+ throw new Error(`The same configuration ${key} exists in modern.config.js and package.json.\n Please remove it from package.json.`);
27
+ }
28
+ }
29
+ };
30
+
31
+ exports.repeatKeyWarning = repeatKeyWarning;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import { OutputConfig, ServerConfig, SourceConfig } from '.';
2
+ export declare const defaults: {
3
+ source: SourceConfig;
4
+ output: OutputConfig;
5
+ server: ServerConfig;
6
+ dev: {
7
+ assetPrefix: boolean;
8
+ https: boolean;
9
+ };
10
+ deploy: {
11
+ domain: string;
12
+ domainByEntries: undefined;
13
+ };
14
+ tools: {
15
+ webpack: undefined;
16
+ babel: undefined;
17
+ postcss: undefined;
18
+ autoprefixer: undefined;
19
+ lodash: undefined;
20
+ devServer: undefined;
21
+ tsLoader: undefined;
22
+ terser: undefined;
23
+ minifyCss: undefined;
24
+ };
25
+ plugins: never[];
26
+ runtime: {};
27
+ runtimeByEntries: {};
28
+ };
@@ -0,0 +1,12 @@
1
+ import { ErrorObject } from 'ajv';
2
+ import { defaults } from './defaults';
3
+ import { mergeConfig, NormalizedConfig } from './mergeConfig';
4
+ import { PluginValidateSchema } from './schema';
5
+ import type { UserConfig, ConfigParam, LoadedConfig } from './types';
6
+ export { defaults as defaultsConfig };
7
+ export { mergeConfig };
8
+ export * from './types';
9
+ export declare const addServerConfigToDeps: (dependencies: string[], appDirectory: string, serverConfigFile: string) => Promise<void>;
10
+ export declare const defineConfig: (config: ConfigParam) => ConfigParam;
11
+ export declare const loadUserConfig: (appDirectory: string, filePath?: string | undefined, packageJsonConfig?: string | undefined) => Promise<LoadedConfig>;
12
+ export declare const resolveConfig: (loaded: LoadedConfig, configs: UserConfig[], schemas: PluginValidateSchema[], restartWithExistingPort: number, argv: string[], onSchemaError?: (error: ErrorObject) => void) => Promise<NormalizedConfig>;
@@ -0,0 +1,31 @@
1
+ import { UserConfig, SourceConfig, ToolsConfig } from '.';
2
+ export interface NormalizedSourceConfig extends Omit<SourceConfig, 'alias' | 'moduleScopes'> {
3
+ alias: SourceConfig['alias'] | Array<SourceConfig['alias']>;
4
+ moduleScopes: SourceConfig['moduleScopes'] | Array<SourceConfig['moduleScopes']>;
5
+ }
6
+ export interface NormalizedToolsConfig extends Omit<ToolsConfig, 'webpack' | 'babel' | 'postcss' | 'autoprefixer' | 'lodash' | 'tsLoader' | 'terser' | 'minifyCss' | 'esbuild' | 'styledComponents'> {
7
+ webpack: ToolsConfig['webpack'] | Array<NonNullable<ToolsConfig['webpack']>>;
8
+ babel: ToolsConfig['babel'] | Array<NonNullable<ToolsConfig['babel']>>;
9
+ postcss: ToolsConfig['postcss'] | Array<NonNullable<ToolsConfig['postcss']>>;
10
+ styledComponents: ToolsConfig['styledComponents'] | Array<NonNullable<ToolsConfig['styledComponents']>>;
11
+ autoprefixer: ToolsConfig['autoprefixer'] | Array<NonNullable<ToolsConfig['autoprefixer']>>;
12
+ lodash: ToolsConfig['lodash'] | Array<ToolsConfig['lodash']>;
13
+ tsLoader: ToolsConfig['tsLoader'] | Array<NonNullable<ToolsConfig['tsLoader']>>;
14
+ terser: ToolsConfig['terser'] | Array<NonNullable<ToolsConfig['terser']>>;
15
+ minifyCss: ToolsConfig['minifyCss'] | Array<NonNullable<ToolsConfig['minifyCss']>>;
16
+ esbuild: ToolsConfig['esbuild'] | Array<NonNullable<ToolsConfig['esbuild']>>;
17
+ }
18
+ export interface NormalizedConfig extends Omit<Required<UserConfig>, 'source' | 'tools'> {
19
+ source: NormalizedSourceConfig;
20
+ tools: NormalizedToolsConfig;
21
+ cliOptions?: Record<string, any>;
22
+ _raw: UserConfig;
23
+ }
24
+ /**
25
+ * merge configuration from modern.config.js and plugins.
26
+ *
27
+ * @param configs - Configuration from modern.config.ts or plugin's config hook.
28
+ * @returns - normalized user config.
29
+ */
30
+
31
+ export declare const mergeConfig: (configs: Array<UserConfig | NormalizedConfig>) => NormalizedConfig;
@@ -0,0 +1,16 @@
1
+ export declare const deploy: {
2
+ type: string;
3
+ properties: {
4
+ domain: {
5
+ type: string[];
6
+ };
7
+ domainByEntries: {
8
+ type: string;
9
+ patternProperties: {
10
+ "^[a-zA-Z0-9_-]+$": {
11
+ type: string[];
12
+ };
13
+ };
14
+ };
15
+ };
16
+ };
@@ -0,0 +1,466 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ export interface PluginValidateSchema {
3
+ target: string;
4
+ schema: JSONSchemaType<any>;
5
+ }
6
+ export declare const patchSchema: (pluginSchemas: Array<PluginValidateSchema | PluginValidateSchema[]>) => {
7
+ type: string;
8
+ additionalProperties: boolean;
9
+ properties: {
10
+ source: {
11
+ type: string;
12
+ additionalProperties: boolean;
13
+ properties: {
14
+ entries: {
15
+ type: string;
16
+ patternProperties: {
17
+ "^[a-zA-Z0-9_-]+$": {
18
+ if: {
19
+ type: string;
20
+ };
21
+ then: {
22
+ required: string[];
23
+ properties: {
24
+ entry: {
25
+ type: string[];
26
+ };
27
+ disableMount: {
28
+ type: string;
29
+ };
30
+ enableFileSystemRoutes: {
31
+ type: string;
32
+ };
33
+ };
34
+ additionalProperties: boolean;
35
+ };
36
+ else: {
37
+ type: string[];
38
+ };
39
+ };
40
+ };
41
+ };
42
+ alias: {
43
+ typeof: string[];
44
+ };
45
+ disableDefaultEntries: {
46
+ type: string;
47
+ };
48
+ envVars: {
49
+ type: string;
50
+ };
51
+ globalVars: {
52
+ type: string;
53
+ };
54
+ moduleScopes: {
55
+ instanceof: string[];
56
+ };
57
+ entriesDir: {
58
+ type: string;
59
+ };
60
+ configDir: {
61
+ type: string;
62
+ };
63
+ include: {
64
+ type: string[];
65
+ };
66
+ };
67
+ };
68
+ output: {
69
+ type: string;
70
+ additionalProperties: boolean;
71
+ properties: {
72
+ assetPrefix: {
73
+ type: string;
74
+ };
75
+ path: {
76
+ type: string;
77
+ };
78
+ jsPath: {
79
+ type: string;
80
+ };
81
+ cssPath: {
82
+ type: string;
83
+ };
84
+ htmlPath: {
85
+ type: string;
86
+ };
87
+ mediaPath: {
88
+ type: string;
89
+ };
90
+ mountId: {
91
+ type: string;
92
+ };
93
+ favicon: {
94
+ type: string;
95
+ };
96
+ faviconByEntries: {
97
+ type: string;
98
+ patternProperties: {
99
+ "^[a-zA-Z0-9_-]+$": {
100
+ type: string;
101
+ };
102
+ };
103
+ };
104
+ title: {
105
+ type: string;
106
+ };
107
+ titleByEntries: {
108
+ type: string;
109
+ patternProperties: {
110
+ "^[a-zA-Z0-9_-]+$": {
111
+ type: string;
112
+ };
113
+ };
114
+ };
115
+ meta: {
116
+ type: string;
117
+ };
118
+ metaByEntries: {
119
+ type: string;
120
+ patternProperties: {
121
+ "^[a-zA-Z0-9_-]+$": {
122
+ type: string;
123
+ };
124
+ };
125
+ };
126
+ inject: {
127
+ enum: (string | boolean)[];
128
+ };
129
+ injectByEntries: {
130
+ type: string;
131
+ patternProperties: {
132
+ "^[a-zA-Z0-9_-]+$": {
133
+ enum: (string | boolean)[];
134
+ };
135
+ };
136
+ };
137
+ copy: {
138
+ type: string;
139
+ };
140
+ scriptExt: {
141
+ type: string;
142
+ };
143
+ disableTsChecker: {
144
+ type: string;
145
+ };
146
+ disableHtmlFolder: {
147
+ type: string;
148
+ };
149
+ disableCssModuleExtension: {
150
+ type: string;
151
+ };
152
+ disableCssExtract: {
153
+ type: string;
154
+ };
155
+ enableCssModuleTSDeclaration: {
156
+ type: string;
157
+ };
158
+ disableMinimize: {
159
+ type: string;
160
+ };
161
+ enableInlineStyles: {
162
+ type: string;
163
+ };
164
+ enableInlineScripts: {
165
+ type: string;
166
+ };
167
+ disableSourceMap: {
168
+ type: string;
169
+ };
170
+ disableInlineRuntimeChunk: {
171
+ type: string;
172
+ };
173
+ disableAssetsCache: {
174
+ type: string;
175
+ };
176
+ enableLatestDecorators: {
177
+ type: string;
178
+ };
179
+ enableTsLoader: {
180
+ type: string;
181
+ };
182
+ dataUriLimit: {
183
+ type: string;
184
+ };
185
+ templateParameters: {
186
+ type: string;
187
+ };
188
+ templateParametersByEntries: {
189
+ type: string;
190
+ patternProperties: {
191
+ "^[a-zA-Z0-9_-]+$": {
192
+ type: string;
193
+ };
194
+ };
195
+ };
196
+ polyfill: {
197
+ type: string;
198
+ enum: string[];
199
+ };
200
+ cssModuleLocalIdentName: {
201
+ type: string;
202
+ };
203
+ federation: {
204
+ type: string;
205
+ };
206
+ disableNodePolyfill: {
207
+ type: string;
208
+ };
209
+ enableModernMode: {
210
+ type: string;
211
+ };
212
+ };
213
+ };
214
+ server: {
215
+ type: string;
216
+ additionalProperties: boolean;
217
+ properties: {
218
+ port: {
219
+ type: string;
220
+ };
221
+ ssr: {
222
+ if: {
223
+ type: string;
224
+ };
225
+ then: {
226
+ properties: {
227
+ disableLoadable: {
228
+ type: string;
229
+ };
230
+ disableHelmet: {
231
+ type: string;
232
+ };
233
+ disableRedirect: {
234
+ type: string;
235
+ };
236
+ enableAsyncData: {
237
+ type: string;
238
+ };
239
+ enableProductWarning: {
240
+ type: string;
241
+ };
242
+ timeout: {
243
+ type: string;
244
+ };
245
+ asyncDataTimeout: {
246
+ type: string;
247
+ };
248
+ };
249
+ };
250
+ else: {
251
+ type: string;
252
+ };
253
+ };
254
+ ssrByEntries: {
255
+ type: string;
256
+ patternProperties: {
257
+ "^[a-zA-Z0-9_-]+$": {
258
+ if: {
259
+ type: string;
260
+ };
261
+ then: {
262
+ properties: {
263
+ disableLoadable: {
264
+ type: string;
265
+ };
266
+ disableHelmet: {
267
+ type: string;
268
+ };
269
+ disableRedirect: {
270
+ type: string;
271
+ };
272
+ enableProductWarning: {
273
+ type: string;
274
+ };
275
+ enableAsyncData: {
276
+ type: string;
277
+ };
278
+ timeout: {
279
+ type: string;
280
+ };
281
+ asyncDataTimeout: {
282
+ type: string;
283
+ };
284
+ };
285
+ additionalProperties: boolean;
286
+ };
287
+ else: {
288
+ type: string;
289
+ };
290
+ };
291
+ };
292
+ };
293
+ routes: {
294
+ type: string;
295
+ patternProperties: {
296
+ "^[a-zA-Z0-9_-]+$": {
297
+ if: {
298
+ type: string;
299
+ };
300
+ then: {
301
+ properties: {
302
+ route: {
303
+ oneOf: ({
304
+ type: string;
305
+ properties: {
306
+ path: {
307
+ type: string;
308
+ };
309
+ headers: {
310
+ type: string;
311
+ };
312
+ };
313
+ additionalProperties: boolean;
314
+ } | {
315
+ type: string;
316
+ items?: undefined;
317
+ } | {
318
+ type: string;
319
+ items: {
320
+ oneOf: ({
321
+ type: string;
322
+ properties: {
323
+ path: {
324
+ type: string;
325
+ };
326
+ headers: {
327
+ type: string;
328
+ };
329
+ };
330
+ additionalProperties: boolean;
331
+ } | {
332
+ type: string;
333
+ })[];
334
+ };
335
+ })[];
336
+ };
337
+ disableSpa: {
338
+ type: string;
339
+ };
340
+ };
341
+ additionalProperties: boolean;
342
+ };
343
+ else: {
344
+ oneOf: ({
345
+ type: string;
346
+ items?: undefined;
347
+ } | {
348
+ type: string;
349
+ items: {
350
+ type: string;
351
+ };
352
+ })[];
353
+ };
354
+ };
355
+ };
356
+ };
357
+ publicRoutes: {
358
+ type: string;
359
+ patternProperties: {
360
+ "^[a-zA-Z0-9_-]+$": {
361
+ type: string[];
362
+ };
363
+ };
364
+ };
365
+ baseUrl: {
366
+ oneOf: ({
367
+ type: string;
368
+ items?: undefined;
369
+ } | {
370
+ type: string;
371
+ items: {
372
+ type: string;
373
+ }[];
374
+ })[];
375
+ };
376
+ middleware: {
377
+ instanceof: string[];
378
+ };
379
+ renderHook: {
380
+ instanceof: string;
381
+ };
382
+ logger: {
383
+ type: string[];
384
+ };
385
+ metrics: {
386
+ type: string[];
387
+ };
388
+ proxy: {
389
+ type: string;
390
+ };
391
+ enableMicroFrontendDebug: {
392
+ type: string;
393
+ };
394
+ };
395
+ };
396
+ deploy: {
397
+ type: string;
398
+ properties: {
399
+ domain: {
400
+ type: string[];
401
+ };
402
+ domainByEntries: {
403
+ type: string;
404
+ patternProperties: {
405
+ "^[a-zA-Z0-9_-]+$": {
406
+ type: string[];
407
+ };
408
+ };
409
+ };
410
+ };
411
+ };
412
+ plugins: {
413
+ type: string;
414
+ additionalProperties: boolean;
415
+ };
416
+ dev: {
417
+ type: string;
418
+ properties: {
419
+ assetPrefix: {
420
+ type: string[];
421
+ };
422
+ https: {
423
+ type: string;
424
+ };
425
+ };
426
+ additionalProperties: boolean;
427
+ };
428
+ tools: {
429
+ type: string;
430
+ additionalProperties: boolean;
431
+ properties: {
432
+ webpack: {
433
+ typeof: string[];
434
+ };
435
+ babel: {
436
+ typeof: string[];
437
+ };
438
+ postcss: {
439
+ typeof: string[];
440
+ };
441
+ lodash: {
442
+ typeof: string[];
443
+ };
444
+ devServer: {
445
+ type: string;
446
+ };
447
+ tsLoader: {
448
+ typeof: string[];
449
+ };
450
+ autoprefixer: {
451
+ typeof: string[];
452
+ };
453
+ terser: {
454
+ typeof: string[];
455
+ };
456
+ minifyCss: {
457
+ typeof: string[];
458
+ };
459
+ styledComponents: {
460
+ typeof: string[];
461
+ };
462
+ };
463
+ };
464
+ };
465
+ };
466
+ export declare const traverseSchema: (schema: ReturnType<typeof patchSchema>) => string[];