@modern-js/app-tools 2.19.1 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/bin/modern.js +0 -1
  3. package/dist/cjs/analyze/generateCode.js +22 -48
  4. package/dist/cjs/analyze/getBundleEntry.js +3 -7
  5. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +2 -6
  6. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +2 -6
  7. package/dist/cjs/analyze/getClientRoutes/utils.js +2 -6
  8. package/dist/cjs/analyze/getFileSystemEntry.js +3 -7
  9. package/dist/cjs/analyze/getHtmlTemplate.js +4 -47
  10. package/dist/cjs/analyze/getServerRoutes.js +5 -7
  11. package/dist/cjs/analyze/index.js +11 -48
  12. package/dist/cjs/analyze/isDefaultExportFunction.js +5 -48
  13. package/dist/cjs/analyze/nestedRoutes.js +2 -41
  14. package/dist/cjs/analyze/templates.js +2 -6
  15. package/dist/cjs/analyze/utils.js +3 -7
  16. package/dist/cjs/builder/builder-rspack/adapterCopy.js +4 -21
  17. package/dist/cjs/builder/builder-webpack/index.js +2 -41
  18. package/dist/cjs/builder/generator/index.js +3 -42
  19. package/dist/cjs/builder/index.js +4 -43
  20. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +6 -56
  21. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +6 -45
  22. package/dist/cjs/builder/shared/builderPlugins/index.js +4 -16
  23. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +3 -15
  24. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +5 -17
  25. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +2 -6
  26. package/dist/cjs/builder/shared/bundlerPlugins/index.js +4 -16
  27. package/dist/cjs/builder/shared/createCopyInfo.js +2 -6
  28. package/dist/cjs/builder/shared/index.js +4 -16
  29. package/dist/cjs/commands/index.js +4 -16
  30. package/dist/cjs/commands/serve.js +2 -6
  31. package/dist/cjs/config/index.js +4 -16
  32. package/dist/cjs/config/initialize/inits.js +2 -41
  33. package/dist/cjs/index.js +41 -80
  34. package/dist/cjs/schema/Schema.js +2 -14
  35. package/dist/cjs/schema/index.js +2 -6
  36. package/dist/cjs/types/config/index.js +2 -14
  37. package/dist/cjs/types/index.js +4 -16
  38. package/dist/cjs/utils/config.js +2 -41
  39. package/dist/cjs/utils/generateWatchFiles.js +2 -6
  40. package/dist/cjs/utils/routes.js +2 -6
  41. package/dist/esm/analyze/generateCode.js +13 -170
  42. package/dist/esm/analyze/getBundleEntry.js +1 -1
  43. package/dist/esm/analyze/getClientRoutes/getRoutes.js +2 -52
  44. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +2 -52
  45. package/dist/esm/analyze/getHtmlTemplate.js +6 -151
  46. package/dist/esm/analyze/getServerRoutes.js +6 -118
  47. package/dist/esm/analyze/index.js +19 -251
  48. package/dist/esm/analyze/nestedRoutes.js +5 -184
  49. package/dist/esm/analyze/templates.js +6 -242
  50. package/dist/esm/analyze/utils.js +6 -205
  51. package/dist/esm/builder/builder-rspack/adapterCopy.js +10 -235
  52. package/dist/esm/builder/builder-webpack/adapterModern.js +1 -34
  53. package/dist/esm/builder/builder-webpack/index.js +7 -219
  54. package/dist/esm/builder/generator/createBuilderProviderConfig.js +2 -52
  55. package/dist/esm/builder/generator/index.js +4 -133
  56. package/dist/esm/builder/index.js +3 -132
  57. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +9 -191
  58. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +10 -139
  59. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -69
  60. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +3 -35
  61. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +7 -226
  62. package/dist/esm/commands/build.js +5 -184
  63. package/dist/esm/commands/deploy.js +3 -132
  64. package/dist/esm/commands/dev.js +6 -185
  65. package/dist/esm/commands/inspect.js +3 -132
  66. package/dist/esm/commands/serve.js +6 -185
  67. package/dist/esm/config/default.js +3 -52
  68. package/dist/esm/config/initialize/inits.js +3 -86
  69. package/dist/esm/defineConfig.js +2 -52
  70. package/dist/esm/index.js +49 -207
  71. package/dist/esm/initialize/index.js +6 -185
  72. package/dist/esm/schema/Schema.js +8 -213
  73. package/dist/esm/schema/index.js +1 -13
  74. package/dist/esm/schema/legacy.js +1 -13
  75. package/dist/esm/utils/config.js +7 -186
  76. package/dist/esm/utils/createServer.js +6 -185
  77. package/dist/esm/utils/generateWatchFiles.js +5 -167
  78. package/dist/esm/utils/getSelectedEntries.js +3 -132
  79. package/dist/esm/utils/getServerInternalPlugins.js +5 -184
  80. package/dist/esm/utils/printInstructions.js +3 -132
  81. package/dist/esm/utils/restart.js +3 -132
  82. package/dist/esm/utils/routes.js +3 -132
  83. package/dist/esm-node/analyze/generateCode.js +19 -2
  84. package/dist/esm-node/analyze/getBundleEntry.js +1 -1
  85. package/dist/esm-node/analyze/getServerRoutes.js +2 -0
  86. package/dist/esm-node/analyze/index.js +4 -2
  87. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +1 -14
  88. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +2 -6
  89. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +5 -5
  90. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +1 -13
  91. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +1 -13
  92. package/dist/esm-node/index.js +22 -6
  93. package/dist/esm-node/schema/Schema.js +1 -13
  94. package/dist/types/analyze/index.d.ts +0 -2
  95. package/dist/types/builder/builder-rspack/index.d.ts +1 -1
  96. package/dist/types/builder/builder-webpack/adapterModern.d.ts +0 -1
  97. package/dist/types/builder/generator/index.d.ts +1 -2
  98. package/dist/types/builder/shared/builderPlugins/adapterBasic.d.ts +0 -1
  99. package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +2 -3
  100. package/dist/types/defineConfig.d.ts +0 -1
  101. package/dist/types/index.d.ts +0 -2
  102. package/dist/types/initialize/index.d.ts +0 -2
  103. package/dist/types/types/config/index.d.ts +2 -2
  104. package/dist/types/types/config/output.d.ts +1 -0
  105. package/dist/types/types/config/security.d.ts +2 -0
  106. package/dist/types/types/config/source.d.ts +0 -1
  107. package/dist/types/types/config/tools.d.ts +0 -2
  108. package/dist/types/types/hooks.d.ts +3 -1
  109. package/dist/types/types/legacyConfig/dev.d.ts +0 -1
  110. package/dist/types/types/legacyConfig/output.d.ts +2 -3
  111. package/dist/types/types/legacyConfig/source.d.ts +0 -1
  112. package/dist/types/types/legacyConfig/tools.d.ts +0 -1
  113. package/dist/types/utils/config.d.ts +0 -1
  114. package/dist/types/utils/getSelectedEntries.d.ts +0 -1
  115. package/lib/types.d.ts +8 -8
  116. package/package.json +29 -29
@@ -5,7 +5,7 @@ import type { RsSourceUserConfig, SharedSourceConfig, SourceUserConfig } from '.
5
5
  import type { DevUserConfig } from './dev';
6
6
  import type { RsToolsUserConfig, SharedToolsConfig, ToolsUserConfig } from './tools';
7
7
  import type { HtmlUserConfig, RsHtmlUserConfig, SharedHtmlConfig } from './html';
8
- import type { SecurityUserConfig } from './security';
8
+ import type { RsSecurityConfig, SecurityUserConfig } from './security';
9
9
  import type { DeployUserConfig } from './deploy';
10
10
  import type { ExperimentsUserConfig } from './experiments';
11
11
  import type { PerformanceUserConfig, RsPerformanceConfig, SharedPerformanceConfig } from './performance';
@@ -25,7 +25,6 @@ export type SharedUserConfig = {
25
25
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
26
26
  * @requires `bff` plugin
27
27
  */
28
-
29
28
  bff?: BffUserConfig;
30
29
  dev?: DevUserConfig;
31
30
  deploy?: DeployUserConfig;
@@ -51,6 +50,7 @@ export interface RsAppToolsUserConfig extends SharedUserConfig {
51
50
  html?: RsHtmlUserConfig;
52
51
  tools?: RsToolsUserConfig;
53
52
  performance?: RsPerformanceConfig;
53
+ security?: RsSecurityConfig;
54
54
  }
55
55
  interface SharedNormalizedConfig<RawConfig> {
56
56
  cliOptions?: Record<string, any>;
@@ -9,6 +9,7 @@ export interface SharedOutputConfig extends BuilderSharedOutputConfig {
9
9
  ssg?: SSGConfig;
10
10
  splitRouteChunks?: boolean;
11
11
  disableNodePolyfill?: boolean;
12
+ tempDir?: string;
12
13
  }
13
14
  export interface OutputUserConfig extends BuilderOutputConfig, SharedOutputConfig {}
14
15
  export interface RsOutputUserConfig extends RsBuilderOutputConfig, SharedOutputConfig {}
@@ -1,4 +1,6 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
+ import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
2
3
  import { UnwrapBuilderConfig } from '../utils';
3
4
  export type BuilderSecurityConfig = UnwrapBuilderConfig<BuilderConfig, 'security'>;
5
+ export type RsSecurityConfig = UnwrapBuilderConfig<RsBuilderConfig, 'security'>;
4
6
  export type SecurityUserConfig = BuilderSecurityConfig;
@@ -21,7 +21,6 @@ export interface SharedSourceConfig extends BuilderSharedSourceConfig {
21
21
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
22
22
  * @requires `tailwindcss` plugin
23
23
  */
24
-
25
24
  designSystem?: Record<string, any>;
26
25
  }
27
26
  export type SourceUserConfig = BuilderSourceConfig & SharedSourceConfig;
@@ -14,7 +14,6 @@ export type RsBuilderToolsConfig = UnwrapBuilderConfig<RsBuilderConfig, 'tools'>
14
14
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
15
15
  * @requires `tailwindcss` plugin
16
16
  */
17
-
18
17
  export type Tailwindcss = Record<string, any> | ((options: Record<string, any>) => Record<string, any> | void);
19
18
  export interface SharedToolsConfig extends BuilderSharedToolsConfig {
20
19
  tailwindcss?: Tailwindcss;
@@ -23,7 +22,6 @@ export interface SharedToolsConfig extends BuilderSharedToolsConfig {
23
22
  * The configuration of `swc` is provided by `swc` plugin.
24
23
  * @requires `swc` plugin
25
24
  */
26
-
27
25
  swc?: PluginSwcOptions;
28
26
  }
29
27
  export interface ToolsUserConfig extends BuilderToolsConfig, SharedToolsConfig {}
@@ -60,7 +60,9 @@ export type AppToolsHooks<B extends Bundler = 'webpack'> = {
60
60
  plugins: Array<Record<string, string>>;
61
61
  }>;
62
62
  beforeDev: AsyncWorkflow<void, unknown>;
63
- afterDev: AsyncWorkflow<void, unknown>;
63
+ afterDev: AsyncWorkflow<{
64
+ isFirstCompile: boolean;
65
+ }, unknown>;
64
66
  beforeCreateCompiler: AsyncWorkflow<{
65
67
  bundlerConfigs?: B extends 'rspack' ? Rspack.Configuration[] : webpack.Configuration[];
66
68
  }, unknown>;
@@ -8,6 +8,5 @@ export type DevUserLegacyConfig = {
8
8
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
9
9
  * @requires `proxy` plugin
10
10
  */
11
-
12
11
  proxy?: DevProxyOptions;
13
12
  };
@@ -1,5 +1,5 @@
1
- import { MetaOptions } from '@modern-js/utils';
2
- import { SSGConfig } from '../config';
1
+ import type { MetaOptions } from '@modern-js/builder-shared';
2
+ import type { SSGConfig } from '../config';
3
3
  type CrossOrigin = 'anonymous' | 'use-credentials';
4
4
  export type OutputLegacyUserConfig = {
5
5
  assetPrefix?: string;
@@ -45,7 +45,6 @@ export type OutputLegacyUserConfig = {
45
45
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
46
46
  * @requires `ssg` plugin
47
47
  */
48
-
49
48
  ssg?: SSGConfig;
50
49
  };
51
50
  export {};
@@ -20,6 +20,5 @@ export type SourceLegacyUserConfig = {
20
20
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
21
21
  * @requires `tailwindcss` plugin
22
22
  */
23
-
24
23
  designSystem?: Record<string, any>;
25
24
  };
@@ -10,7 +10,6 @@ export type ToolsLegacyUserConfig = BuilderToolsConfig & {
10
10
  * Please use `yarn new` or `pnpm new` to enable the corresponding capability.
11
11
  * @requires `tailwindcss` plugin
12
12
  */
13
-
14
13
  tailwindcss?: Record<string, any> | ((options: Record<string, any>) => Record<string, any> | void);
15
14
  jest?: JestConfig | ((jestConfig: JestConfig) => JestConfig);
16
15
  };
@@ -17,6 +17,5 @@ export declare const buildServerConfig: ({
17
17
  *
18
18
  * 处理循环引用的 replacer
19
19
  */
20
-
21
20
  export declare const safeReplacer: () => (key: string, value: unknown) => unknown;
22
21
  export declare const emitResolvedConfig: (appDirectory: string, resolvedConfig: AppNormalizedConfig<'shared'>) => Promise<void>;
@@ -2,5 +2,4 @@ import { Entrypoint } from '@modern-js/types';
2
2
  /**
3
3
  * Allow user to select entrypoints to build.
4
4
  */
5
-
6
5
  export declare const getSelectedEntries: (entry: string[] | boolean, entrypoints: Entrypoint[]) => Promise<string[]>;
package/lib/types.d.ts CHANGED
@@ -53,8 +53,12 @@ declare module '*.svg' {
53
53
  React.SVGProps<SVGSVGElement>
54
54
  >;
55
55
 
56
- const src: string;
57
- export default src;
56
+ /**
57
+ * The default export type depends on the svgDefaultExport config,
58
+ * it can be a string or a ReactComponent
59
+ * */
60
+ const content: any;
61
+ export default content;
58
62
  }
59
63
 
60
64
  declare module '*.bmp?inline' {
@@ -99,12 +103,8 @@ declare module '*.svg?inline' {
99
103
  React.SVGProps<SVGSVGElement>
100
104
  >;
101
105
 
102
- /**
103
- * The default export type depends on the svgDefaultExport config,
104
- * it can be a string or a ReactComponent
105
- * */
106
- const content: any;
107
- export default content;
106
+ const src: string;
107
+ export default src;
108
108
  }
109
109
 
110
110
  declare module '*.bmp?url' {
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.19.1",
18
+ "version": "2.21.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -66,46 +66,46 @@
66
66
  "modern-app": "./bin/modern.js"
67
67
  },
68
68
  "dependencies": {
69
- "@babel/parser": "^7.18.0",
70
- "@babel/runtime": "^7.18.0",
71
- "@babel/traverse": "^7.18.0",
72
- "@babel/types": "^7.18.0",
69
+ "@babel/parser": "^7.21.8",
70
+ "@babel/traverse": "^7.21.5",
71
+ "@babel/types": "^7.21.5",
73
72
  "es-module-lexer": "^1.1.0",
74
73
  "esbuild": "0.15.7",
75
74
  "rspack-plugin-virtual-module": "0.1.0",
76
- "@modern-js/builder": "2.19.1",
77
- "@modern-js/builder-plugin-esbuild": "2.19.1",
78
- "@modern-js/builder-plugin-node-polyfill": "2.19.1",
79
- "@modern-js/builder-shared": "2.19.1",
80
- "@modern-js/builder-webpack-provider": "2.19.1",
81
- "@modern-js/core": "2.19.1",
82
- "@modern-js/new-action": "2.19.1",
83
- "@modern-js/node-bundle-require": "2.19.1",
84
- "@modern-js/plugin": "2.19.1",
85
- "@modern-js/plugin-data-loader": "2.19.1",
86
- "@modern-js/plugin-i18n": "2.19.1",
87
- "@modern-js/plugin-lint": "2.19.1",
88
- "@modern-js/prod-server": "2.19.1",
89
- "@modern-js/server": "2.19.1",
90
- "@modern-js/types": "2.19.1",
91
- "@modern-js/upgrade": "2.19.1",
92
- "@modern-js/utils": "2.19.1"
75
+ "@swc/helpers": "0.5.1",
76
+ "@modern-js/builder": "2.21.0",
77
+ "@modern-js/builder-plugin-esbuild": "2.21.0",
78
+ "@modern-js/builder-plugin-node-polyfill": "2.21.0",
79
+ "@modern-js/builder-shared": "2.21.0",
80
+ "@modern-js/builder-webpack-provider": "2.21.0",
81
+ "@modern-js/core": "2.21.0",
82
+ "@modern-js/new-action": "2.21.0",
83
+ "@modern-js/node-bundle-require": "2.21.0",
84
+ "@modern-js/plugin": "2.21.0",
85
+ "@modern-js/plugin-data-loader": "2.21.0",
86
+ "@modern-js/plugin-i18n": "2.21.0",
87
+ "@modern-js/plugin-lint": "2.21.0",
88
+ "@modern-js/prod-server": "2.21.0",
89
+ "@modern-js/server": "2.21.0",
90
+ "@modern-js/types": "2.21.0",
91
+ "@modern-js/upgrade": "2.21.0",
92
+ "@modern-js/utils": "2.21.0"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/babel__traverse": "^7.14.2",
96
96
  "@types/jest": "^29",
97
97
  "@types/node": "^14",
98
98
  "jest": "^29",
99
- "typescript": "^4",
99
+ "typescript": "^5",
100
100
  "webpack": "^5.82.1",
101
- "@modern-js/builder-plugin-swc": "2.19.1",
102
- "@modern-js/builder-rspack-provider": "2.19.1",
103
- "@modern-js/server-core": "2.19.1",
104
- "@scripts/jest-config": "2.19.1",
105
- "@scripts/build": "2.19.1"
101
+ "@modern-js/builder-plugin-swc": "2.21.0",
102
+ "@modern-js/builder-rspack-provider": "2.21.0",
103
+ "@modern-js/server-core": "2.21.0",
104
+ "@scripts/jest-config": "2.21.0",
105
+ "@scripts/build": "2.21.0"
106
106
  },
107
107
  "peerDependencies": {
108
- "@modern-js/builder-rspack-provider": "^2.19.1"
108
+ "@modern-js/builder-rspack-provider": "^2.21.0"
109
109
  },
110
110
  "peerDependenciesMeta": {
111
111
  "@modern-js/builder-rspack-provider": {