@modern-js/app-tools 2.53.1-alpha.3 → 2.54.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (214) hide show
  1. package/bin/modern.js +0 -2
  2. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +2 -1
  3. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +2 -2
  4. package/dist/cjs/commands/build.js +2 -0
  5. package/dist/cjs/commands/deploy.js +2 -2
  6. package/dist/cjs/commands/dev.js +19 -5
  7. package/dist/cjs/commands/index.js +113 -7
  8. package/dist/cjs/commands/serve.js +19 -5
  9. package/dist/cjs/hooks.js +5 -0
  10. package/dist/cjs/index.js +14 -83
  11. package/dist/cjs/plugins/analyze/constants.js +56 -0
  12. package/dist/cjs/{analyze → plugins/analyze}/generateCode.js +11 -84
  13. package/dist/cjs/{analyze → plugins/analyze}/getBundleEntry.js +11 -20
  14. package/dist/cjs/{analyze → plugins/analyze}/getFileSystemEntry.js +33 -47
  15. package/dist/cjs/{analyze → plugins/analyze}/getServerRoutes.js +1 -1
  16. package/dist/cjs/{analyze → plugins/analyze}/index.js +9 -24
  17. package/dist/cjs/plugins/analyze/templates.js +101 -0
  18. package/dist/cjs/{analyze → plugins/analyze}/utils.js +12 -55
  19. package/dist/cjs/plugins/deploy/dependencies/index.js +16 -25
  20. package/dist/cjs/plugins/deploy/dependencies/utils.js +1 -2
  21. package/dist/cjs/plugins/deploy/platforms/netlify.js +5 -9
  22. package/dist/cjs/plugins/deploy/platforms/node.js +5 -13
  23. package/dist/cjs/plugins/deploy/platforms/vercel.js +5 -9
  24. package/dist/cjs/{initialize → plugins/initialize}/index.js +1 -1
  25. package/dist/cjs/plugins/serverBuild.js +10 -4
  26. package/dist/cjs/utils/createServer.js +1 -1
  27. package/dist/cjs/utils/{getServerInternalPlugins.js → loadPlugins.js} +18 -11
  28. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +4 -1
  29. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +2 -2
  30. package/dist/esm/commands/build.js +16 -9
  31. package/dist/esm/commands/deploy.js +2 -2
  32. package/dist/esm/commands/dev.js +13 -9
  33. package/dist/esm/commands/index.js +411 -3
  34. package/dist/esm/commands/serve.js +12 -8
  35. package/dist/esm/hooks.js +5 -0
  36. package/dist/esm/index.js +12 -394
  37. package/dist/esm/plugins/analyze/constants.js +24 -0
  38. package/dist/esm/{analyze → plugins/analyze}/generateCode.js +27 -169
  39. package/dist/esm/plugins/analyze/getBundleEntry.js +101 -0
  40. package/dist/esm/plugins/analyze/getFileSystemEntry.js +195 -0
  41. package/dist/esm/{analyze → plugins/analyze}/getServerRoutes.js +1 -1
  42. package/dist/esm/{analyze → plugins/analyze}/index.js +42 -70
  43. package/dist/esm/plugins/analyze/templates.js +22 -0
  44. package/dist/esm/{analyze → plugins/analyze}/utils.js +13 -135
  45. package/dist/esm/plugins/deploy/dependencies/index.js +69 -94
  46. package/dist/esm/plugins/deploy/dependencies/utils.js +3 -4
  47. package/dist/esm/plugins/deploy/platforms/netlify.js +8 -10
  48. package/dist/esm/plugins/deploy/platforms/node.js +8 -14
  49. package/dist/esm/plugins/deploy/platforms/vercel.js +8 -10
  50. package/dist/esm/{initialize → plugins/initialize}/index.js +1 -1
  51. package/dist/esm/plugins/serverBuild.js +13 -6
  52. package/dist/esm/utils/createServer.js +2 -2
  53. package/dist/esm/utils/loadPlugins.js +64 -0
  54. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +2 -1
  55. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +2 -2
  56. package/dist/esm-node/commands/build.js +2 -0
  57. package/dist/esm-node/commands/deploy.js +2 -2
  58. package/dist/esm-node/commands/dev.js +11 -7
  59. package/dist/esm-node/commands/index.js +92 -3
  60. package/dist/esm-node/commands/serve.js +10 -6
  61. package/dist/esm-node/hooks.js +5 -0
  62. package/dist/esm-node/index.js +12 -79
  63. package/dist/esm-node/plugins/analyze/constants.js +24 -0
  64. package/dist/esm-node/{analyze → plugins/analyze}/generateCode.js +14 -87
  65. package/dist/esm-node/{analyze → plugins/analyze}/getBundleEntry.js +11 -20
  66. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +75 -0
  67. package/dist/esm-node/{analyze → plugins/analyze}/getServerRoutes.js +1 -1
  68. package/dist/esm-node/{analyze → plugins/analyze}/index.js +10 -25
  69. package/dist/esm-node/plugins/analyze/templates.js +75 -0
  70. package/dist/esm-node/{analyze → plugins/analyze}/utils.js +13 -52
  71. package/dist/esm-node/plugins/deploy/dependencies/index.js +18 -27
  72. package/dist/esm-node/plugins/deploy/dependencies/utils.js +1 -2
  73. package/dist/esm-node/plugins/deploy/platforms/netlify.js +6 -10
  74. package/dist/esm-node/plugins/deploy/platforms/node.js +6 -14
  75. package/dist/esm-node/plugins/deploy/platforms/vercel.js +6 -10
  76. package/dist/esm-node/{initialize → plugins/initialize}/index.js +1 -1
  77. package/dist/esm-node/plugins/serverBuild.js +11 -5
  78. package/dist/esm-node/utils/createServer.js +2 -2
  79. package/dist/esm-node/utils/loadPlugins.js +21 -0
  80. package/dist/types/builder/builder-webpack/createCopyPattern.d.ts +2 -2
  81. package/dist/types/commands/index.d.ts +10 -3
  82. package/dist/types/config/initialize/inits.d.ts +1 -1
  83. package/dist/types/exports/server.d.ts +4 -0
  84. package/dist/types/index.d.ts +2 -5
  85. package/dist/types/plugins/analyze/constants.d.ts +9 -0
  86. package/dist/types/{analyze → plugins/analyze}/generateCode.d.ts +1 -1
  87. package/dist/types/plugins/analyze/getBundleEntry.d.ts +4 -0
  88. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +5 -0
  89. package/dist/types/{analyze → plugins/analyze}/getHtmlTemplate.d.ts +1 -1
  90. package/dist/types/{analyze → plugins/analyze}/getServerRoutes.d.ts +1 -1
  91. package/dist/types/{analyze → plugins/analyze}/index.d.ts +1 -1
  92. package/dist/types/plugins/analyze/templates.d.ts +19 -0
  93. package/dist/types/{analyze → plugins/analyze}/utils.d.ts +4 -6
  94. package/dist/types/plugins/deploy/dependencies/index.d.ts +1 -9
  95. package/dist/types/plugins/deploy/dependencies/utils.d.ts +1 -7
  96. package/dist/types/{initialize → plugins/initialize}/index.d.ts +1 -1
  97. package/dist/types/types/hooks.d.ts +11 -1
  98. package/dist/types/utils/loadPlugins.d.ts +5 -0
  99. package/package.json +22 -30
  100. package/dist/cjs/analyze/constants.js +0 -122
  101. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +0 -197
  102. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +0 -195
  103. package/dist/cjs/analyze/getClientRoutes/index.js +0 -31
  104. package/dist/cjs/analyze/getClientRoutes/utils.js +0 -59
  105. package/dist/cjs/analyze/makeLegalIdentifier.js +0 -37
  106. package/dist/cjs/analyze/nestedRoutes.js +0 -295
  107. package/dist/cjs/analyze/templates.js +0 -444
  108. package/dist/cjs/plugins/deploy/exports.js +0 -28
  109. package/dist/esm/analyze/constants.js +0 -76
  110. package/dist/esm/analyze/getBundleEntry.js +0 -75
  111. package/dist/esm/analyze/getClientRoutes/getRoutes.js +0 -185
  112. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +0 -183
  113. package/dist/esm/analyze/getClientRoutes/index.js +0 -6
  114. package/dist/esm/analyze/getClientRoutes/utils.js +0 -28
  115. package/dist/esm/analyze/getFileSystemEntry.js +0 -113
  116. package/dist/esm/analyze/makeLegalIdentifier.js +0 -15
  117. package/dist/esm/analyze/nestedRoutes.js +0 -398
  118. package/dist/esm/analyze/templates.js +0 -435
  119. package/dist/esm/plugins/deploy/exports.js +0 -4
  120. package/dist/esm/utils/getServerInternalPlugins.js +0 -40
  121. package/dist/esm-node/analyze/constants.js +0 -76
  122. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +0 -163
  123. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +0 -161
  124. package/dist/esm-node/analyze/getClientRoutes/index.js +0 -6
  125. package/dist/esm-node/analyze/getClientRoutes/utils.js +0 -22
  126. package/dist/esm-node/analyze/getFileSystemEntry.js +0 -89
  127. package/dist/esm-node/analyze/makeLegalIdentifier.js +0 -13
  128. package/dist/esm-node/analyze/nestedRoutes.js +0 -259
  129. package/dist/esm-node/analyze/templates.js +0 -405
  130. package/dist/esm-node/plugins/deploy/exports.js +0 -4
  131. package/dist/esm-node/utils/getServerInternalPlugins.js +0 -15
  132. package/dist/js/modern/analyze/constants.js +0 -15
  133. package/dist/js/modern/analyze/generateCode.js +0 -179
  134. package/dist/js/modern/analyze/getBundleEntry.js +0 -75
  135. package/dist/js/modern/analyze/getClientRoutes.js +0 -219
  136. package/dist/js/modern/analyze/getFileSystemEntry.js +0 -74
  137. package/dist/js/modern/analyze/getHtmlTemplate.js +0 -82
  138. package/dist/js/modern/analyze/getServerRoutes.js +0 -192
  139. package/dist/js/modern/analyze/index.js +0 -148
  140. package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -32
  141. package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -16
  142. package/dist/js/modern/analyze/templates.js +0 -88
  143. package/dist/js/modern/analyze/utils.js +0 -92
  144. package/dist/js/modern/commands/build.js +0 -154
  145. package/dist/js/modern/commands/deploy.js +0 -5
  146. package/dist/js/modern/commands/dev.js +0 -95
  147. package/dist/js/modern/commands/index.js +0 -3
  148. package/dist/js/modern/commands/inspect.js +0 -69
  149. package/dist/js/modern/commands/start.js +0 -31
  150. package/dist/js/modern/exports/server.js +0 -1
  151. package/dist/js/modern/hooks.js +0 -21
  152. package/dist/js/modern/index.js +0 -109
  153. package/dist/js/modern/locale/en.js +0 -35
  154. package/dist/js/modern/locale/index.js +0 -9
  155. package/dist/js/modern/locale/zh.js +0 -35
  156. package/dist/js/modern/utils/config.js +0 -78
  157. package/dist/js/modern/utils/createCompiler.js +0 -61
  158. package/dist/js/modern/utils/createServer.js +0 -18
  159. package/dist/js/modern/utils/getSpecifiedEntries.js +0 -36
  160. package/dist/js/modern/utils/language.js +0 -5
  161. package/dist/js/modern/utils/printInstructions.js +0 -11
  162. package/dist/js/modern/utils/routes.js +0 -15
  163. package/dist/js/modern/utils/types.js +0 -0
  164. package/dist/js/node/analyze/constants.js +0 -36
  165. package/dist/js/node/analyze/generateCode.js +0 -208
  166. package/dist/js/node/analyze/getBundleEntry.js +0 -89
  167. package/dist/js/node/analyze/getClientRoutes.js +0 -241
  168. package/dist/js/node/analyze/getFileSystemEntry.js +0 -90
  169. package/dist/js/node/analyze/getHtmlTemplate.js +0 -106
  170. package/dist/js/node/analyze/getServerRoutes.js +0 -208
  171. package/dist/js/node/analyze/index.js +0 -178
  172. package/dist/js/node/analyze/isDefaultExportFunction.js +0 -50
  173. package/dist/js/node/analyze/makeLegalIdentifier.js +0 -24
  174. package/dist/js/node/analyze/templates.js +0 -106
  175. package/dist/js/node/analyze/utils.js +0 -113
  176. package/dist/js/node/commands/build.js +0 -174
  177. package/dist/js/node/commands/deploy.js +0 -14
  178. package/dist/js/node/commands/dev.js +0 -120
  179. package/dist/js/node/commands/index.js +0 -44
  180. package/dist/js/node/commands/inspect.js +0 -98
  181. package/dist/js/node/commands/start.js +0 -47
  182. package/dist/js/node/exports/server.js +0 -13
  183. package/dist/js/node/hooks.js +0 -39
  184. package/dist/js/node/index.js +0 -141
  185. package/dist/js/node/locale/en.js +0 -42
  186. package/dist/js/node/locale/index.js +0 -20
  187. package/dist/js/node/locale/zh.js +0 -42
  188. package/dist/js/node/utils/config.js +0 -103
  189. package/dist/js/node/utils/createCompiler.js +0 -81
  190. package/dist/js/node/utils/createServer.js +0 -35
  191. package/dist/js/node/utils/getSpecifiedEntries.js +0 -46
  192. package/dist/js/node/utils/language.js +0 -13
  193. package/dist/js/node/utils/printInstructions.js +0 -22
  194. package/dist/js/node/utils/routes.js +0 -25
  195. package/dist/js/node/utils/types.js +0 -0
  196. package/dist/types/analyze/constants.d.ts +0 -42
  197. package/dist/types/analyze/getBundleEntry.d.ts +0 -3
  198. package/dist/types/analyze/getClientRoutes/getRoutes.d.ts +0 -8
  199. package/dist/types/analyze/getClientRoutes/getRoutesLegacy.d.ts +0 -9
  200. package/dist/types/analyze/getClientRoutes/index.d.ts +0 -2
  201. package/dist/types/analyze/getClientRoutes/utils.d.ts +0 -5
  202. package/dist/types/analyze/getFileSystemEntry.d.ts +0 -4
  203. package/dist/types/analyze/makeLegalIdentifier.d.ts +0 -1
  204. package/dist/types/analyze/nestedRoutes.d.ts +0 -7
  205. package/dist/types/analyze/templates.d.ts +0 -30
  206. package/dist/types/plugins/deploy/exports.d.ts +0 -1
  207. package/dist/types/utils/getServerInternalPlugins.d.ts +0 -2
  208. /package/dist/cjs/{analyze → plugins/analyze}/getHtmlTemplate.js +0 -0
  209. /package/dist/cjs/{analyze → plugins/analyze}/isDefaultExportFunction.js +0 -0
  210. /package/dist/esm/{analyze → plugins/analyze}/getHtmlTemplate.js +0 -0
  211. /package/dist/esm/{analyze → plugins/analyze}/isDefaultExportFunction.js +0 -0
  212. /package/dist/esm-node/{analyze → plugins/analyze}/getHtmlTemplate.js +0 -0
  213. /package/dist/esm-node/{analyze → plugins/analyze}/isDefaultExportFunction.js +0 -0
  214. /package/dist/types/{analyze → plugins/analyze}/isDefaultExportFunction.d.ts +0 -0
@@ -0,0 +1,19 @@
1
+ import type { Entrypoint } from '@modern-js/types';
2
+ import type { RuntimePlugin } from '../../types';
3
+ export declare const index: ({ mountId, imports, renderFunction, exportStatement, }: {
4
+ mountId: string;
5
+ imports: string;
6
+ exportStatement: string;
7
+ renderFunction: string;
8
+ }) => string;
9
+ export declare const renderFunction: ({ plugins, customBootstrap, fileSystemRoutes, customRuntimeConfig, }: {
10
+ plugins: RuntimePlugin[];
11
+ customBootstrap?: string | false | undefined;
12
+ customRuntimeConfig?: string | false | undefined;
13
+ fileSystemRoutes: Entrypoint['fileSystemRoutes'];
14
+ }) => string;
15
+ export declare const html: (partials: {
16
+ top: string[];
17
+ head: string[];
18
+ body: string[];
19
+ }) => string;
@@ -1,22 +1,20 @@
1
1
  import type { Entrypoint } from '@modern-js/types';
2
- import type { ImportStatement } from '../types';
2
+ import type { ImportStatement } from '../../types';
3
3
  export declare const walkDirectory: (dir: string) => string[];
4
- export declare const getDefaultImports: ({ entrypoint, srcDirectory, appDirectory, internalSrcAlias, internalDirAlias, }: {
4
+ export declare const getDefaultImports: ({ entrypoint, srcDirectory, appDirectory, internalSrcAlias, internalDirAlias, runtimeConfigFile, customRuntimeConfig, }: {
5
5
  entrypoint: Entrypoint;
6
6
  srcDirectory: string;
7
7
  appDirectory: string;
8
8
  internalSrcAlias: string;
9
9
  internalDirAlias: string;
10
+ runtimeConfigFile: string | false;
11
+ customRuntimeConfig: string | false;
10
12
  }) => ImportStatement[];
11
- export declare const isPageComponentFile: (filePath: string) => boolean;
12
13
  export declare const replaceWithAlias: (base: string, filePath: string, alias: string) => string;
13
14
  export declare const parseModule: ({ source, filename, }: {
14
15
  source: string;
15
16
  filename: string;
16
17
  }) => Promise<readonly [imports: readonly import("es-module-lexer").ImportSpecifier[], exports: readonly import("es-module-lexer").ExportSpecifier[], facade: boolean]>;
17
- export declare const hasLoader: (filename: string, source?: string) => Promise<boolean>;
18
- export declare const hasAction: (filename: string, source?: string) => Promise<boolean>;
19
- export declare const getServerLoadersFile: (internalDirectory: string, entryName: string) => string;
20
18
  export declare const getServerCombinedModueFile: (internalDirectory: string, entryName: string) => string;
21
19
  export declare const checkIsBuildCommands: () => boolean;
22
20
  export declare const isSubDirOrEqual: (parent: string, child: string) => boolean;
@@ -1,9 +1 @@
1
- import type { PackageJson } from 'pkg-types';
2
- export declare const handleDependencies: ({ appDir, serverRootDir, includeEntries, entryFilter, modifyPackageJson, copyWholePackage, }: {
3
- appDir: string;
4
- serverRootDir: string;
5
- includeEntries: string[];
6
- entryFilter?: ((filePath: string) => boolean) | undefined;
7
- modifyPackageJson?: ((pkgJson: PackageJson) => PackageJson) | undefined;
8
- copyWholePackage?: ((pkgName: string) => boolean) | undefined;
9
- }) => Promise<void>;
1
+ export declare const handleDependencies: (appDir: string, serverRootDir: string, include: string[], entryFilter?: ((filePath: string) => boolean) | undefined) => Promise<void>;
@@ -17,13 +17,7 @@ export type TracedFile = {
17
17
  pkgName: string;
18
18
  pkgVersion?: string;
19
19
  };
20
- interface WritePackageOptions {
21
- pkg: TracedPackage;
22
- version: string;
23
- projectDir: string;
24
- _pkgPath?: string;
25
- }
26
- export declare const writePackage: (options: WritePackageOptions) => Promise<void>;
20
+ export declare const writePackage: (pkg: TracedPackage, version: string, projectDir: string, _pkgPath?: string) => Promise<void>;
27
21
  export declare const linkPackage: (from: string, to: string, projectRootDir: string) => Promise<void>;
28
22
  interface ReadDirOptions {
29
23
  filter?: (filePath: string) => boolean;
@@ -1,4 +1,4 @@
1
- import type { CliPlugin, AppTools } from '../types';
1
+ import type { CliPlugin, AppTools } from '../../types';
2
2
  declare const _default: ({ bundler, }: {
3
3
  bundler: 'rspack' | 'webpack';
4
4
  }) => CliPlugin<AppTools<'shared'>>;
@@ -1,5 +1,5 @@
1
1
  import type { AsyncWaterfall, AsyncWorkflow, ParallelWorkflow } from '@modern-js/plugin';
2
- import type { Entrypoint, HtmlPartials, NestedRouteForCli, PageRoute, RouteLegacy, ServerRoute } from '@modern-js/types';
2
+ import type { Entrypoint, HtmlPartials, NestedRouteForCli, PageRoute, RouteLegacy, ServerPlugin, ServerRoute } from '@modern-js/types';
3
3
  import type { RegisterBuildPlatformResult, DevToolData } from '@modern-js/core';
4
4
  import type { Stats, MultiStats } from '@rsbuild/shared';
5
5
  import type { Rspack, webpack } from '@modern-js/uni-builder';
@@ -47,6 +47,13 @@ export type AppToolsHooks<B extends Bundler = 'webpack'> = {
47
47
  modifyServerRoutes: AsyncWaterfall<{
48
48
  routes: ServerRoute[];
49
49
  }>;
50
+ modifyEntrypoints: AsyncWaterfall<{
51
+ entrypoints: Entrypoint[];
52
+ }>;
53
+ checkEntryPoint: AsyncWaterfall<{
54
+ path: string;
55
+ entry: false | string;
56
+ }>;
50
57
  htmlPartials: AsyncWaterfall<{
51
58
  entrypoint: Entrypoint;
52
59
  partials: HtmlPartials;
@@ -59,6 +66,9 @@ export type AppToolsHooks<B extends Bundler = 'webpack'> = {
59
66
  collectServerPlugins: AsyncWaterfall<{
60
67
  plugins: Array<Record<string, string>>;
61
68
  }>;
69
+ _internalServerPlugins: AsyncWaterfall<{
70
+ plugins: ServerPlugin[];
71
+ }>;
62
72
  beforeDev: AsyncWorkflow<void, unknown>;
63
73
  afterDev: AsyncWorkflow<{
64
74
  isFirstCompile: boolean;
@@ -0,0 +1,5 @@
1
+ import { ServerPlugin as ServerPluginInstance } from '@modern-js/server-core';
2
+ import { ServerPlugin } from '@modern-js/types';
3
+ import { AppTools, PluginAPI } from '../types';
4
+ export declare function getServerPlugins(api: PluginAPI<AppTools<'shared'>>): Promise<ServerPlugin[]>;
5
+ export declare function loadServerPlugins(api: PluginAPI<AppTools<'shared'>>, appDirectory: string): Promise<ServerPluginInstance[]>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.53.1-alpha.3",
18
+ "version": "2.54.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -43,11 +43,6 @@
43
43
  "types": "./dist/types/exports/server.d.ts",
44
44
  "jsnext:source": "./src/exports/server.ts",
45
45
  "default": "./dist/cjs/exports/server.js"
46
- },
47
- "./deploy": {
48
- "types": "./dist/types/plugins/deploy/exports.d.ts",
49
- "jsnext:source": "./src/plugins/deploy/exports.ts",
50
- "default": "./dist/cjs/plugins/deploy/exports.js"
51
46
  }
52
47
  },
53
48
  "engines": {
@@ -63,9 +58,6 @@
63
58
  ],
64
59
  "server": [
65
60
  "./dist/types/exports/server.d.ts"
66
- ],
67
- "deploy": [
68
- "./dist/types/plugins/deploy/exports.d.ts"
69
61
  ]
70
62
  }
71
63
  },
@@ -77,9 +69,9 @@
77
69
  "@babel/parser": "^7.22.15",
78
70
  "@babel/traverse": "^7.23.2",
79
71
  "@babel/types": "^7.23.0",
80
- "@rsbuild/plugin-node-polyfill": "0.7.3",
81
- "@rsbuild/shared": "0.7.3",
82
- "@rsbuild/core": "0.7.3",
72
+ "@rsbuild/plugin-node-polyfill": "0.7.9",
73
+ "@rsbuild/shared": "0.7.9",
74
+ "@rsbuild/core": "0.7.9",
83
75
  "@swc/helpers": "0.5.3",
84
76
  "@vercel/nft": "^0.26.4",
85
77
  "es-module-lexer": "^1.1.0",
@@ -88,23 +80,23 @@
88
80
  "mlly": "^1.6.1",
89
81
  "pkg-types": "^1.1.0",
90
82
  "std-env": "^3.7.0",
91
- "@modern-js/plugin-data-loader": "2.53.0",
92
- "@modern-js/core": "2.53.0",
93
- "@modern-js/plugin": "2.53.0",
94
- "@modern-js/node-bundle-require": "2.53.0",
95
- "@modern-js/prod-server": "2.53.0",
96
- "@modern-js/plugin-i18n": "2.53.0",
97
- "@modern-js/types": "2.53.0",
98
- "@modern-js/plugin-lint": "2.53.0",
99
- "@modern-js/server-core": "2.53.0",
100
- "@modern-js/server": "2.53.0",
101
- "@modern-js/uni-builder": "2.53.0",
102
- "@modern-js/utils": "2.53.0",
103
- "@modern-js/rsbuild-plugin-esbuild": "2.53.0",
104
- "@modern-js/server-utils": "2.53.0"
83
+ "@modern-js/core": "2.54.0",
84
+ "@modern-js/node-bundle-require": "2.54.0",
85
+ "@modern-js/plugin-lint": "2.54.0",
86
+ "@modern-js/plugin-i18n": "2.54.0",
87
+ "@modern-js/plugin": "2.54.0",
88
+ "@modern-js/plugin-data-loader": "2.54.0",
89
+ "@modern-js/prod-server": "2.54.0",
90
+ "@modern-js/rsbuild-plugin-esbuild": "2.54.0",
91
+ "@modern-js/server": "2.54.0",
92
+ "@modern-js/server-core": "2.54.0",
93
+ "@modern-js/server-utils": "2.54.0",
94
+ "@modern-js/types": "2.54.0",
95
+ "@modern-js/uni-builder": "2.54.0",
96
+ "@modern-js/utils": "2.54.0"
105
97
  },
106
98
  "devDependencies": {
107
- "@rsbuild/plugin-swc": "0.7.3",
99
+ "@rsbuild/plugin-swc": "0.7.9",
108
100
  "@types/babel__traverse": "7.18.5",
109
101
  "@types/jest": "^29",
110
102
  "@types/node": "^14",
@@ -112,9 +104,9 @@
112
104
  "ts-node": "^10.9.1",
113
105
  "tsconfig-paths": "^4.2.0",
114
106
  "typescript": "^5",
115
- "webpack": "^5.91.0",
116
- "@scripts/build": "2.53.0",
117
- "@scripts/jest-config": "2.53.0"
107
+ "webpack": "^5.92.0",
108
+ "@scripts/build": "2.54.0",
109
+ "@scripts/jest-config": "2.54.0"
118
110
  },
119
111
  "sideEffects": false,
120
112
  "publishConfig": {
@@ -1,122 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var constants_exports = {};
20
- __export(constants_exports, {
21
- ACTION_EXPORT_NAME: () => ACTION_EXPORT_NAME,
22
- APP_CONFIG_NAME: () => APP_CONFIG_NAME,
23
- APP_FILE_NAME: () => APP_FILE_NAME,
24
- APP_INIT_EXPORTED: () => APP_INIT_EXPORTED,
25
- APP_INIT_IMPORTED: () => APP_INIT_IMPORTED,
26
- ENTRY_BOOTSTRAP_FILE_NAME: () => ENTRY_BOOTSTRAP_FILE_NAME,
27
- ENTRY_POINT_FILE_NAME: () => ENTRY_POINT_FILE_NAME,
28
- FILE_SYSTEM_ROUTES_COMPONENTS_DIR: () => FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
29
- FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP: () => FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
30
- FILE_SYSTEM_ROUTES_FILE_NAME: () => FILE_SYSTEM_ROUTES_FILE_NAME,
31
- FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT: () => FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
32
- FILE_SYSTEM_ROUTES_IGNORED_REGEX: () => FILE_SYSTEM_ROUTES_IGNORED_REGEX,
33
- FILE_SYSTEM_ROUTES_INDEX: () => FILE_SYSTEM_ROUTES_INDEX,
34
- FILE_SYSTEM_ROUTES_LAYOUT: () => FILE_SYSTEM_ROUTES_LAYOUT,
35
- HTML_PARTIALS_EXTENSIONS: () => HTML_PARTIALS_EXTENSIONS,
36
- HTML_PARTIALS_FOLDER: () => HTML_PARTIALS_FOLDER,
37
- INDEX_FILE_NAME: () => INDEX_FILE_NAME,
38
- JS_EXTENSIONS: () => JS_EXTENSIONS,
39
- LOADER_EXPORT_NAME: () => LOADER_EXPORT_NAME,
40
- NESTED_ROUTE: () => NESTED_ROUTE,
41
- NESTED_ROUTES_DIR: () => NESTED_ROUTES_DIR,
42
- PAGES_DIR_NAME: () => PAGES_DIR_NAME,
43
- TEMP_LOADERS_DIR: () => TEMP_LOADERS_DIR
44
- });
45
- module.exports = __toCommonJS(constants_exports);
46
- const JS_EXTENSIONS = [
47
- ".js",
48
- ".ts",
49
- ".jsx",
50
- ".tsx"
51
- ];
52
- const INDEX_FILE_NAME = "index";
53
- const APP_FILE_NAME = "App";
54
- const PAGES_DIR_NAME = "pages";
55
- const NESTED_ROUTES_DIR = "routes";
56
- const FILE_SYSTEM_ROUTES_FILE_NAME = "routes.js";
57
- const LOADER_EXPORT_NAME = "loader";
58
- const ACTION_EXPORT_NAME = "action";
59
- const TEMP_LOADERS_DIR = "__loaders__";
60
- const ENTRY_POINT_FILE_NAME = "index.jsx";
61
- const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
62
- const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
63
- const FILE_SYSTEM_ROUTES_LAYOUT = "_layout";
64
- const FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT = "_app";
65
- const FILE_SYSTEM_ROUTES_INDEX = "index";
66
- const FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
67
- const HTML_PARTIALS_FOLDER = "html";
68
- const HTML_PARTIALS_EXTENSIONS = [
69
- ".htm",
70
- ".html",
71
- ".ejs"
72
- ];
73
- const FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
74
- const NESTED_ROUTE = {
75
- LAYOUT_FILE: "layout",
76
- LAYOUT_CONFIG_FILE: "layout.config",
77
- LAYOUT_LOADER_FILE: "layout.loader",
78
- LAYOUT_DATA_FILE: "layout.data",
79
- LAYOUT_CLIENT_LOADER: "layout.data.client",
80
- PAGE_FILE: "page",
81
- PAGE_CONFIG_FILE: "page.config",
82
- PAGE_LOADER_FILE: "page.loader",
83
- PAGE_DATA_FILE: "page.data",
84
- PAGE_CLIENT_LOADER: "page.data.client",
85
- SPLATE_FILE: "$",
86
- SPLATE_CONFIG_FILE: "$.config",
87
- SPLATE_LOADER_FILE: "$.loader",
88
- SPLATE_DATA_FILE: "$.data",
89
- SPLATE_CLIENT_DATA: "$.data.client",
90
- LOADING_FILE: "loading",
91
- ERROR_FILE: "error",
92
- LOADER_FILE: "loader"
93
- };
94
- const APP_CONFIG_NAME = "config";
95
- const APP_INIT_EXPORTED = "init";
96
- const APP_INIT_IMPORTED = "appInit";
97
- // Annotate the CommonJS export names for ESM import in node:
98
- 0 && (module.exports = {
99
- ACTION_EXPORT_NAME,
100
- APP_CONFIG_NAME,
101
- APP_FILE_NAME,
102
- APP_INIT_EXPORTED,
103
- APP_INIT_IMPORTED,
104
- ENTRY_BOOTSTRAP_FILE_NAME,
105
- ENTRY_POINT_FILE_NAME,
106
- FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
107
- FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
108
- FILE_SYSTEM_ROUTES_FILE_NAME,
109
- FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
110
- FILE_SYSTEM_ROUTES_IGNORED_REGEX,
111
- FILE_SYSTEM_ROUTES_INDEX,
112
- FILE_SYSTEM_ROUTES_LAYOUT,
113
- HTML_PARTIALS_EXTENSIONS,
114
- HTML_PARTIALS_FOLDER,
115
- INDEX_FILE_NAME,
116
- JS_EXTENSIONS,
117
- LOADER_EXPORT_NAME,
118
- NESTED_ROUTE,
119
- NESTED_ROUTES_DIR,
120
- PAGES_DIR_NAME,
121
- TEMP_LOADERS_DIR
122
- });
@@ -1,197 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var getRoutes_exports = {};
30
- __export(getRoutes_exports, {
31
- getClientRoutes: () => getClientRoutes
32
- });
33
- module.exports = __toCommonJS(getRoutes_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_utils = require("@modern-js/utils");
36
- var import_makeLegalIdentifier = require("../makeLegalIdentifier");
37
- var import_constants = require("../constants");
38
- var import_utils2 = require("../utils");
39
- var import_utils3 = require("./utils");
40
- const compName = (srcDirectory, filePath) => {
41
- const legalCompName = (0, import_makeLegalIdentifier.makeLegalIdentifier)(import_path.default.relative(srcDirectory, filePath));
42
- return `Comp_${legalCompName}`;
43
- };
44
- const layoutNameAbbr = (filePath) => {
45
- const prefix = "L_";
46
- const dirName = import_path.default.dirname(filePath).split("/").pop() || "";
47
- return `${prefix}${(0, import_makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
48
- };
49
- const parents = [];
50
- const recursiveReadDir = ({ dir, routes, basePath = "/", srcDirectory, srcAlias }) => {
51
- let hasDynamicRoute = false;
52
- let resetParent = false;
53
- let parent = parents[parents.length - 1];
54
- const layout = (0, import_utils3.findLayout)(dir);
55
- if (layout) {
56
- if (basePath === "/") {
57
- throw new Error(`should use _app instead of _layout in ${dir}`);
58
- } else {
59
- const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
60
- const componentName = compName(srcDirectory, layout);
61
- const route = {
62
- path: `${basePath.substring(0, basePath.length - 1)}`,
63
- children: [],
64
- _component: alias,
65
- component: componentName,
66
- parent,
67
- type: "page"
68
- };
69
- parent = route;
70
- resetParent = true;
71
- routes.push(route);
72
- parents.push(route);
73
- routes = route.children;
74
- }
75
- }
76
- for (const relative of import_utils.fs.readdirSync(dir)) {
77
- const filePath = import_path.default.join(dir, relative);
78
- if (!(0, import_utils3.shouldSkip)(filePath)) {
79
- const filename = import_path.default.basename(filePath, import_path.default.extname(filePath));
80
- const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, filePath, srcAlias);
81
- const componentName = compName(srcDirectory, filePath);
82
- const dynamicRouteMatched = import_constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
83
- if (dynamicRouteMatched) {
84
- if (hasDynamicRoute) {
85
- throw new Error(`Can't set two dynamic route in one directory: ${dir}`);
86
- } else {
87
- hasDynamicRoute = true;
88
- }
89
- }
90
- const route = {
91
- path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1].replace(/\$$/, "?")}${dynamicRouteMatched[2]}` : filename}`,
92
- _component: alias,
93
- component: componentName,
94
- parent,
95
- type: "page"
96
- };
97
- if (import_utils.fs.statSync(filePath).isDirectory()) {
98
- recursiveReadDir({
99
- dir: filePath,
100
- routes,
101
- basePath: `${route.path}/`,
102
- srcDirectory,
103
- srcAlias
104
- });
105
- continue;
106
- }
107
- if (filename === import_constants.FILE_SYSTEM_ROUTES_LAYOUT) {
108
- continue;
109
- }
110
- if (filename === import_constants.FILE_SYSTEM_ROUTES_INDEX) {
111
- route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
112
- }
113
- if (filename === "404" && basePath === "/") {
114
- route.path = "*";
115
- }
116
- routes.push(route);
117
- }
118
- }
119
- if (resetParent) {
120
- parents.pop();
121
- }
122
- };
123
- const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
124
- const flat = (routes) => routes.reduce((memo, route) => memo.concat(Array.isArray(route.children) ? flat(route.children) : [
125
- route
126
- ]), []);
127
- const generate = (route) => {
128
- const codes = [];
129
- let lastComponent = route.component;
130
- const imports = [
131
- `import React from 'react';`,
132
- `import ${lastComponent} from '${route._component}'`
133
- ];
134
- while (route = route.parent) {
135
- const layoutComponent = route.component;
136
- const layoutComponentAbbr = layoutNameAbbr(route._component);
137
- imports.push(`import ${layoutComponent} from '${route._component}';`);
138
- const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
139
- codes.push(`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`);
140
- lastComponent = currentComponent;
141
- }
142
- const file = import_path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
143
- import_utils.fs.outputFileSync(file, `${imports.join("\n")}
144
- ${codes.join("\n")}
145
- export default ${lastComponent}`);
146
- return {
147
- component: lastComponent,
148
- _component: (0, import_utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
149
- };
150
- };
151
- const normalized = flat(nested).map((route) => route.parent ? {
152
- ...route,
153
- ...generate(route),
154
- parent: void 0
155
- } : {
156
- ...route,
157
- parent: void 0
158
- });
159
- return normalized;
160
- };
161
- const getClientRoutes = ({ entrypoint, srcDirectory, srcAlias, internalDirectory, internalDirAlias }) => {
162
- const { entryName, pageRoutesEntry } = entrypoint;
163
- if (!pageRoutesEntry) {
164
- return [];
165
- }
166
- if (!import_utils.fs.existsSync(pageRoutesEntry)) {
167
- throw new Error(`generate file system routes error, ${pageRoutesEntry} directory not found.`);
168
- }
169
- if (!(import_utils.fs.existsSync(pageRoutesEntry) && import_utils.fs.statSync(pageRoutesEntry).isDirectory())) {
170
- throw new Error(`generate file system routes error, ${pageRoutesEntry} should be directory.`);
171
- }
172
- let routes = [];
173
- recursiveReadDir({
174
- dir: pageRoutesEntry,
175
- routes,
176
- basePath: "/",
177
- srcDirectory,
178
- srcAlias
179
- });
180
- const internalComponentsDir = import_path.default.resolve(internalDirectory, `${entryName}/${import_constants.FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`);
181
- import_utils.fs.emptyDirSync(internalComponentsDir);
182
- routes = normalizeNestedRoutes(routes, internalComponentsDir, internalDirectory, internalDirAlias);
183
- parents.length = 0;
184
- routes.sort((a, b) => {
185
- const delta = (0, import_utils3.getRouteWeight)(a.path) - (0, import_utils3.getRouteWeight)(b.path);
186
- if (delta === 0) {
187
- return a.path.length - b.path.length;
188
- }
189
- return delta;
190
- });
191
- (0, import_utils3.debug)(`fileSystem routes: %o`, routes);
192
- return routes;
193
- };
194
- // Annotate the CommonJS export names for ESM import in node:
195
- 0 && (module.exports = {
196
- getClientRoutes
197
- });