@modern-js/app-tools 2.10.0 → 2.10.1-alpha.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 (247) hide show
  1. package/dist/cjs/builder/index.js +3 -1
  2. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +11 -3
  3. package/dist/cjs/commands/serve.js +9 -2
  4. package/dist/esm/builder/index.js +15 -8
  5. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +12 -4
  6. package/dist/esm/commands/serve.js +59 -2
  7. package/dist/esm-node/builder/index.js +3 -1
  8. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +12 -9
  9. package/dist/esm-node/commands/serve.js +9 -2
  10. package/dist/js/modern/analyze/constants.js +54 -0
  11. package/dist/js/modern/analyze/generateCode.js +247 -0
  12. package/dist/js/modern/analyze/getBundleEntry.js +71 -0
  13. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +220 -0
  14. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +216 -0
  15. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -0
  16. package/dist/js/modern/analyze/getClientRoutes/utils.js +31 -0
  17. package/dist/js/modern/analyze/getFileSystemEntry.js +109 -0
  18. package/dist/js/modern/analyze/getHtmlTemplate.js +115 -0
  19. package/dist/js/modern/analyze/getServerRoutes.js +175 -0
  20. package/dist/js/modern/analyze/index.js +332 -0
  21. package/dist/js/modern/analyze/isDefaultExportFunction.js +42 -0
  22. package/dist/js/modern/analyze/makeLegalIdentifier.js +13 -0
  23. package/dist/js/modern/analyze/nestedRoutes.js +157 -0
  24. package/dist/js/modern/analyze/templates.js +334 -0
  25. package/dist/js/modern/analyze/utils.js +141 -0
  26. package/dist/js/modern/builder/builderPlugins/compatModern.js +233 -0
  27. package/dist/js/modern/builder/index.js +159 -0
  28. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  29. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  30. package/dist/js/modern/builder/share.js +46 -0
  31. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +30 -0
  32. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +37 -0
  33. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +113 -0
  34. package/dist/js/modern/commands/build.js +91 -0
  35. package/dist/js/modern/commands/deploy.js +28 -0
  36. package/dist/js/modern/commands/dev.js +109 -0
  37. package/dist/js/modern/commands/index.js +3 -0
  38. package/dist/js/modern/commands/inspect.js +38 -0
  39. package/dist/js/modern/commands/serve.js +54 -0
  40. package/dist/js/modern/config/default.js +175 -0
  41. package/dist/js/modern/config/index.js +8 -0
  42. package/dist/js/modern/config/initial/createHtmlConfig.js +35 -0
  43. package/dist/js/modern/config/initial/createOutputConfig.js +68 -0
  44. package/dist/js/modern/config/initial/createSourceConfig.js +39 -0
  45. package/dist/js/modern/config/initial/createToolsConfig.js +42 -0
  46. package/dist/js/modern/config/initial/index.js +16 -0
  47. package/dist/js/modern/config/initial/inits.js +152 -0
  48. package/dist/js/modern/config/initial/transformNormalizedConfig.js +47 -0
  49. package/dist/js/modern/defineConfig.js +27 -0
  50. package/dist/js/modern/exports/server.js +4 -0
  51. package/dist/js/modern/hooks.js +35 -0
  52. package/dist/js/modern/index.js +211 -0
  53. package/dist/js/modern/initialize/index.js +124 -0
  54. package/dist/js/modern/locale/en.js +36 -0
  55. package/dist/js/modern/locale/index.js +9 -0
  56. package/dist/js/modern/locale/zh.js +36 -0
  57. package/dist/js/modern/schema/Schema.js +40 -0
  58. package/dist/js/modern/schema/index.js +88 -0
  59. package/dist/js/modern/schema/legacy.js +148 -0
  60. package/dist/js/modern/types/config/deploy.js +0 -0
  61. package/dist/js/modern/types/config/dev.js +0 -0
  62. package/dist/js/modern/types/config/experiments.js +0 -0
  63. package/dist/js/modern/types/config/html.js +0 -0
  64. package/dist/js/modern/types/config/index.js +1 -0
  65. package/dist/js/modern/types/config/output.js +0 -0
  66. package/dist/js/modern/types/config/performance.js +0 -0
  67. package/dist/js/modern/types/config/security.js +0 -0
  68. package/dist/js/modern/types/config/source.js +0 -0
  69. package/dist/js/modern/types/config/tools.js +0 -0
  70. package/dist/js/modern/types/hooks.js +0 -0
  71. package/dist/js/modern/types/index.js +3 -0
  72. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  73. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  74. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  75. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  76. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  77. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  78. package/dist/js/modern/utils/config.js +128 -0
  79. package/dist/js/modern/utils/createServer.js +75 -0
  80. package/dist/js/modern/utils/env.js +15 -0
  81. package/dist/js/modern/utils/generateWatchFiles.js +55 -0
  82. package/dist/js/modern/utils/getSelectedEntries.js +58 -0
  83. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  84. package/dist/js/modern/utils/language.js +8 -0
  85. package/dist/js/modern/utils/printInstructions.js +31 -0
  86. package/dist/js/modern/utils/restart.js +44 -0
  87. package/dist/js/modern/utils/routes.js +30 -0
  88. package/dist/js/modern/utils/types.js +0 -0
  89. package/dist/js/node/analyze/constants.js +98 -0
  90. package/dist/js/node/analyze/generateCode.js +271 -0
  91. package/dist/js/node/analyze/getBundleEntry.js +95 -0
  92. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +242 -0
  93. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +238 -0
  94. package/dist/js/node/analyze/getClientRoutes/index.js +30 -0
  95. package/dist/js/node/analyze/getClientRoutes/utils.js +58 -0
  96. package/dist/js/node/analyze/getFileSystemEntry.js +131 -0
  97. package/dist/js/node/analyze/getHtmlTemplate.js +144 -0
  98. package/dist/js/node/analyze/getServerRoutes.js +194 -0
  99. package/dist/js/node/analyze/index.js +339 -0
  100. package/dist/js/node/analyze/isDefaultExportFunction.js +71 -0
  101. package/dist/js/node/analyze/makeLegalIdentifier.js +36 -0
  102. package/dist/js/node/analyze/nestedRoutes.js +184 -0
  103. package/dist/js/node/analyze/templates.js +365 -0
  104. package/dist/js/node/analyze/utils.js +172 -0
  105. package/dist/js/node/builder/builderPlugins/compatModern.js +258 -0
  106. package/dist/js/node/builder/index.js +177 -0
  107. package/dist/js/node/builder/loaders/routerLoader.js +38 -0
  108. package/dist/js/node/builder/loaders/serverModuleLoader.js +28 -0
  109. package/dist/js/node/builder/share.js +75 -0
  110. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +53 -0
  111. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +60 -0
  112. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +135 -0
  113. package/dist/js/node/commands/build.js +112 -0
  114. package/dist/js/node/commands/deploy.js +51 -0
  115. package/dist/js/node/commands/dev.js +126 -0
  116. package/dist/js/node/commands/index.js +19 -0
  117. package/dist/js/node/commands/inspect.js +61 -0
  118. package/dist/js/node/commands/serve.js +83 -0
  119. package/dist/js/node/config/default.js +197 -0
  120. package/dist/js/node/config/index.js +34 -0
  121. package/dist/js/node/config/initial/createHtmlConfig.js +58 -0
  122. package/dist/js/node/config/initial/createOutputConfig.js +91 -0
  123. package/dist/js/node/config/initial/createSourceConfig.js +62 -0
  124. package/dist/js/node/config/initial/createToolsConfig.js +65 -0
  125. package/dist/js/node/config/initial/index.js +41 -0
  126. package/dist/js/node/config/initial/inits.js +175 -0
  127. package/dist/js/node/config/initial/transformNormalizedConfig.js +70 -0
  128. package/dist/js/node/defineConfig.js +49 -0
  129. package/dist/js/node/exports/server.js +27 -0
  130. package/dist/js/node/hooks.js +54 -0
  131. package/dist/js/node/index.js +235 -0
  132. package/dist/js/node/initialize/index.js +134 -0
  133. package/dist/js/node/locale/en.js +59 -0
  134. package/dist/js/node/locale/index.js +33 -0
  135. package/dist/js/node/locale/zh.js +59 -0
  136. package/dist/js/node/schema/Schema.js +63 -0
  137. package/dist/js/node/schema/index.js +118 -0
  138. package/dist/js/node/schema/legacy.js +169 -0
  139. package/dist/js/node/types/config/deploy.js +15 -0
  140. package/dist/js/node/types/config/dev.js +15 -0
  141. package/dist/js/node/types/config/experiments.js +15 -0
  142. package/dist/js/node/types/config/html.js +15 -0
  143. package/dist/js/node/types/config/index.js +17 -0
  144. package/dist/js/node/types/config/output.js +15 -0
  145. package/dist/js/node/types/config/performance.js +15 -0
  146. package/dist/js/node/types/config/security.js +15 -0
  147. package/dist/js/node/types/config/source.js +15 -0
  148. package/dist/js/node/types/config/tools.js +15 -0
  149. package/dist/js/node/types/hooks.js +15 -0
  150. package/dist/js/node/types/index.js +19 -0
  151. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  152. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  153. package/dist/js/node/types/legacyConfig/index.js +15 -0
  154. package/dist/js/node/types/legacyConfig/output.js +15 -0
  155. package/dist/js/node/types/legacyConfig/source.js +15 -0
  156. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  157. package/dist/js/node/utils/config.js +153 -0
  158. package/dist/js/node/utils/createServer.js +106 -0
  159. package/dist/js/node/utils/env.js +38 -0
  160. package/dist/js/node/utils/generateWatchFiles.js +85 -0
  161. package/dist/js/node/utils/getSelectedEntries.js +81 -0
  162. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  163. package/dist/js/node/utils/language.js +31 -0
  164. package/dist/js/node/utils/printInstructions.js +54 -0
  165. package/dist/js/node/utils/restart.js +67 -0
  166. package/dist/js/node/utils/routes.js +59 -0
  167. package/dist/js/node/utils/types.js +15 -0
  168. package/dist/js/treeshaking/analyze/constants.js +40 -0
  169. package/dist/js/treeshaking/analyze/generateCode.js +485 -0
  170. package/dist/js/treeshaking/analyze/getBundleEntry.js +62 -0
  171. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +233 -0
  172. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
  173. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -0
  174. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +23 -0
  175. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +107 -0
  176. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +302 -0
  177. package/dist/js/treeshaking/analyze/getServerRoutes.js +222 -0
  178. package/dist/js/treeshaking/analyze/index.js +697 -0
  179. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +47 -0
  180. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -0
  181. package/dist/js/treeshaking/analyze/nestedRoutes.js +384 -0
  182. package/dist/js/treeshaking/analyze/templates.js +468 -0
  183. package/dist/js/treeshaking/analyze/utils.js +374 -0
  184. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +304 -0
  185. package/dist/js/treeshaking/builder/index.js +374 -0
  186. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  187. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  188. package/dist/js/treeshaking/builder/share.js +40 -0
  189. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +110 -0
  190. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +72 -0
  191. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +343 -0
  192. package/dist/js/treeshaking/commands/build.js +291 -0
  193. package/dist/js/treeshaking/commands/deploy.js +154 -0
  194. package/dist/js/treeshaking/commands/dev.js +301 -0
  195. package/dist/js/treeshaking/commands/index.js +3 -0
  196. package/dist/js/treeshaking/commands/inspect.js +149 -0
  197. package/dist/js/treeshaking/commands/serve.js +199 -0
  198. package/dist/js/treeshaking/config/default.js +210 -0
  199. package/dist/js/treeshaking/config/index.js +3 -0
  200. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -0
  201. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -0
  202. package/dist/js/treeshaking/config/initial/createSourceConfig.js +42 -0
  203. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -0
  204. package/dist/js/treeshaking/config/initial/index.js +12 -0
  205. package/dist/js/treeshaking/config/initial/inits.js +209 -0
  206. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +35 -0
  207. package/dist/js/treeshaking/defineConfig.js +61 -0
  208. package/dist/js/treeshaking/exports/server.js +2 -0
  209. package/dist/js/treeshaking/hooks.js +29 -0
  210. package/dist/js/treeshaking/index.js +706 -0
  211. package/dist/js/treeshaking/initialize/index.js +276 -0
  212. package/dist/js/treeshaking/locale/en.js +38 -0
  213. package/dist/js/treeshaking/locale/index.js +9 -0
  214. package/dist/js/treeshaking/locale/zh.js +38 -0
  215. package/dist/js/treeshaking/schema/Schema.js +273 -0
  216. package/dist/js/treeshaking/schema/index.js +181 -0
  217. package/dist/js/treeshaking/schema/legacy.js +337 -0
  218. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  219. package/dist/js/treeshaking/types/config/dev.js +1 -0
  220. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  221. package/dist/js/treeshaking/types/config/html.js +1 -0
  222. package/dist/js/treeshaking/types/config/index.js +1 -0
  223. package/dist/js/treeshaking/types/config/output.js +1 -0
  224. package/dist/js/treeshaking/types/config/performance.js +1 -0
  225. package/dist/js/treeshaking/types/config/security.js +1 -0
  226. package/dist/js/treeshaking/types/config/source.js +1 -0
  227. package/dist/js/treeshaking/types/config/tools.js +1 -0
  228. package/dist/js/treeshaking/types/hooks.js +1 -0
  229. package/dist/js/treeshaking/types/index.js +3 -0
  230. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  231. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  232. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  233. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  234. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  235. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  236. package/dist/js/treeshaking/utils/config.js +302 -0
  237. package/dist/js/treeshaking/utils/createServer.js +258 -0
  238. package/dist/js/treeshaking/utils/env.js +13 -0
  239. package/dist/js/treeshaking/utils/generateWatchFiles.js +214 -0
  240. package/dist/js/treeshaking/utils/getSelectedEntries.js +186 -0
  241. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  242. package/dist/js/treeshaking/utils/language.js +6 -0
  243. package/dist/js/treeshaking/utils/printInstructions.js +152 -0
  244. package/dist/js/treeshaking/utils/restart.js +187 -0
  245. package/dist/js/treeshaking/utils/routes.js +153 -0
  246. package/dist/js/treeshaking/utils/types.js +1 -0
  247. package/package.json +9 -9
@@ -0,0 +1,131 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var getFileSystemEntry_exports = {};
25
+ __export(getFileSystemEntry_exports, {
26
+ getFileSystemEntry: () => getFileSystemEntry
27
+ });
28
+ module.exports = __toCommonJS(getFileSystemEntry_exports);
29
+ var import_fs = __toESM(require("fs"));
30
+ var import_path = __toESM(require("path"));
31
+ var import_utils = require("@modern-js/utils");
32
+ var import_isDefaultExportFunction = require("./isDefaultExportFunction");
33
+ var import_constants = require("./constants");
34
+ const hasIndex = (dir) => (0, import_utils.findExists)(
35
+ import_constants.JS_EXTENSIONS.map((ext) => import_path.default.resolve(dir, `${import_constants.INDEX_FILE_NAME}${ext}`))
36
+ );
37
+ const hasApp = (dir) => (0, import_utils.findExists)(
38
+ import_constants.JS_EXTENSIONS.map((ext) => import_path.default.resolve(dir, `${import_constants.APP_FILE_NAME}${ext}`))
39
+ );
40
+ const hasPages = (dir) => import_fs.default.existsSync(import_path.default.join(dir, import_constants.PAGES_DIR_NAME));
41
+ const hasNestedRoutes = (dir) => import_fs.default.existsSync(import_path.default.join(dir, import_constants.NESTED_ROUTES_DIR));
42
+ const isBundleEntry = (dir) => hasApp(dir) || hasPages(dir) || hasIndex(dir) || hasNestedRoutes(dir);
43
+ const scanDir = (dirs) => dirs.map((dir) => {
44
+ const indexFile = hasIndex(dir);
45
+ const customBootstrap = (0, import_isDefaultExportFunction.isDefaultExportFunction)(indexFile) ? indexFile : false;
46
+ const entryName = import_path.default.basename(dir);
47
+ if (indexFile && !customBootstrap) {
48
+ return {
49
+ entryName,
50
+ entry: indexFile,
51
+ absoluteEntryDir: import_path.default.resolve(dir),
52
+ isAutoMount: false
53
+ };
54
+ }
55
+ const isHasApp = hasApp(dir);
56
+ if (isHasApp) {
57
+ return {
58
+ entryName,
59
+ entry: import_path.default.join(dir, import_constants.APP_FILE_NAME),
60
+ isAutoMount: true,
61
+ absoluteEntryDir: import_path.default.resolve(dir),
62
+ customBootstrap
63
+ };
64
+ }
65
+ const isHasNestedRoutes = hasNestedRoutes(dir);
66
+ const isHasPages = hasPages(dir);
67
+ if (isHasNestedRoutes || isHasPages) {
68
+ const entrypoint = {
69
+ entryName,
70
+ entry: "",
71
+ fileSystemRoutes: {
72
+ globalApp: (0, import_utils.findExists)(
73
+ import_constants.JS_EXTENSIONS.map(
74
+ (ext) => import_path.default.resolve(
75
+ dir,
76
+ `./${import_constants.PAGES_DIR_NAME}/${import_constants.FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT}${ext}`
77
+ )
78
+ )
79
+ )
80
+ },
81
+ isAutoMount: true,
82
+ absoluteEntryDir: import_path.default.resolve(dir),
83
+ customBootstrap
84
+ };
85
+ if (isHasPages) {
86
+ entrypoint.entry = import_path.default.join(dir, import_constants.PAGES_DIR_NAME);
87
+ entrypoint.pageRoutesEntry = entrypoint.entry;
88
+ }
89
+ if (isHasNestedRoutes) {
90
+ entrypoint.entry = import_path.default.join(dir, import_constants.NESTED_ROUTES_DIR);
91
+ entrypoint.nestedRoutesEntry = entrypoint.entry;
92
+ }
93
+ return entrypoint;
94
+ }
95
+ return {
96
+ entryName,
97
+ entry: indexFile,
98
+ absoluteEntryDir: import_path.default.resolve(dir),
99
+ isAutoMount: false
100
+ };
101
+ });
102
+ const getFileSystemEntry = (appContext, config) => {
103
+ const { appDirectory } = appContext;
104
+ const {
105
+ source: { entriesDir, disableEntryDirs }
106
+ } = config;
107
+ let disabledDirs = [];
108
+ if (disableEntryDirs && Array.isArray(disableEntryDirs)) {
109
+ disabledDirs = disableEntryDirs == null ? void 0 : disableEntryDirs.map(
110
+ (dir) => (0, import_utils.ensureAbsolutePath)(appDirectory, dir)
111
+ );
112
+ }
113
+ const src = (0, import_utils.ensureAbsolutePath)(appDirectory, entriesDir || "");
114
+ if (import_fs.default.existsSync(src)) {
115
+ if (import_fs.default.statSync(src).isDirectory()) {
116
+ return scanDir(
117
+ isBundleEntry(src) ? [src] : import_fs.default.readdirSync(src).map((file) => import_path.default.join(src, file)).filter(
118
+ (file) => import_fs.default.statSync(file).isDirectory() && isBundleEntry(file) && !disabledDirs.includes(file)
119
+ )
120
+ );
121
+ } else {
122
+ throw Error(`source.entriesDir accept a directory.`);
123
+ }
124
+ } else {
125
+ throw Error(`src dir ${entriesDir} not found.`);
126
+ }
127
+ };
128
+ // Annotate the CommonJS export names for ESM import in node:
129
+ 0 && (module.exports = {
130
+ getFileSystemEntry
131
+ });
@@ -0,0 +1,144 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var __async = (__this, __arguments, generator) => {
25
+ return new Promise((resolve, reject) => {
26
+ var fulfilled = (value) => {
27
+ try {
28
+ step(generator.next(value));
29
+ } catch (e) {
30
+ reject(e);
31
+ }
32
+ };
33
+ var rejected = (value) => {
34
+ try {
35
+ step(generator.throw(value));
36
+ } catch (e) {
37
+ reject(e);
38
+ }
39
+ };
40
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
41
+ step((generator = generator.apply(__this, __arguments)).next());
42
+ });
43
+ };
44
+ var getHtmlTemplate_exports = {};
45
+ __export(getHtmlTemplate_exports, {
46
+ getHtmlTemplate: () => getHtmlTemplate
47
+ });
48
+ module.exports = __toCommonJS(getHtmlTemplate_exports);
49
+ var import_path = __toESM(require("path"));
50
+ var import_utils = require("@modern-js/utils");
51
+ var import_constants = require("./constants");
52
+ var templates = __toESM(require("./templates"));
53
+ var PartialPosition = /* @__PURE__ */ ((PartialPosition2) => {
54
+ PartialPosition2["TOP"] = "top";
55
+ PartialPosition2["HEAD"] = "head";
56
+ PartialPosition2["BODY"] = "body";
57
+ PartialPosition2["BOTTOM"] = "bottom";
58
+ PartialPosition2["INDEX"] = "index";
59
+ return PartialPosition2;
60
+ })(PartialPosition || {});
61
+ const findPartials = (dir, entryName, position) => {
62
+ if (import_utils.fs.existsSync(dir)) {
63
+ const base = (0, import_utils.findExists)(
64
+ import_constants.HTML_PARTIALS_EXTENSIONS.map(
65
+ (ext) => import_path.default.resolve(dir, `${position}${ext}`)
66
+ )
67
+ );
68
+ const file = entryName ? (0, import_utils.findExists)(
69
+ import_constants.HTML_PARTIALS_EXTENSIONS.map(
70
+ (ext) => import_path.default.resolve(dir, entryName, `${position}${ext}`)
71
+ )
72
+ ) || base : base;
73
+ return file ? { file, content: import_utils.fs.readFileSync(file, "utf8") } : null;
74
+ }
75
+ return null;
76
+ };
77
+ const getHtmlTemplate = (_0, _1, _2) => __async(void 0, [_0, _1, _2], function* (entrypoints, api, {
78
+ appContext,
79
+ config
80
+ }) {
81
+ const { appDirectory, internalDirectory } = appContext;
82
+ const {
83
+ source: { configDir }
84
+ } = config;
85
+ const htmlDir = import_path.default.resolve(
86
+ appDirectory,
87
+ configDir || "",
88
+ import_constants.HTML_PARTIALS_FOLDER
89
+ );
90
+ const htmlTemplates = {};
91
+ for (const entrypoint of entrypoints) {
92
+ const { entryName } = entrypoint;
93
+ const name = entrypoints.length === 1 && entryName === import_utils.MAIN_ENTRY_NAME ? "" : entryName;
94
+ const customIndexTemplate = findPartials(
95
+ htmlDir,
96
+ name,
97
+ "index" /* INDEX */
98
+ );
99
+ if (customIndexTemplate) {
100
+ htmlTemplates[entryName] = customIndexTemplate.file;
101
+ } else {
102
+ const hookRunners = api.useHookRunners();
103
+ const { partials } = yield hookRunners.htmlPartials({
104
+ entrypoint,
105
+ partials: [
106
+ "top" /* TOP */,
107
+ "head" /* HEAD */,
108
+ "body" /* BODY */
109
+ ].reduce(
110
+ (previous, position) => {
111
+ const found = findPartials(htmlDir, name, position);
112
+ previous[position] = found ? [found.content] : [];
113
+ return previous;
114
+ },
115
+ {
116
+ top: [],
117
+ head: [],
118
+ body: []
119
+ }
120
+ )
121
+ });
122
+ const templatePath = import_path.default.resolve(
123
+ internalDirectory,
124
+ entryName,
125
+ "index.html"
126
+ );
127
+ import_utils.fs.outputFileSync(templatePath, templates.html(partials), "utf8");
128
+ htmlTemplates[entryName] = templatePath;
129
+ const bottomTemplate = findPartials(
130
+ htmlDir,
131
+ name,
132
+ "bottom" /* BOTTOM */
133
+ );
134
+ if (bottomTemplate) {
135
+ htmlTemplates[`__${entryName}-bottom__`] = bottomTemplate.content;
136
+ }
137
+ }
138
+ }
139
+ return htmlTemplates;
140
+ });
141
+ // Annotate the CommonJS export names for ESM import in node:
142
+ 0 && (module.exports = {
143
+ getHtmlTemplate
144
+ });
@@ -0,0 +1,194 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, { get: all[name], enumerable: true });
39
+ };
40
+ var __copyProps = (to, from, except, desc) => {
41
+ if (from && typeof from === "object" || typeof from === "function") {
42
+ for (let key of __getOwnPropNames(from))
43
+ if (!__hasOwnProp.call(to, key) && key !== except)
44
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
45
+ }
46
+ return to;
47
+ };
48
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
49
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
50
+ mod
51
+ ));
52
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
53
+ var getServerRoutes_exports = {};
54
+ __export(getServerRoutes_exports, {
55
+ getServerRoutes: () => getServerRoutes
56
+ });
57
+ module.exports = __toCommonJS(getServerRoutes_exports);
58
+ var import_path = __toESM(require("path"));
59
+ var import_fs = __toESM(require("fs"));
60
+ var import_utils = require("@modern-js/utils");
61
+ var import_utils2 = require("./utils");
62
+ const applyBaseUrl = (baseUrl, routes) => {
63
+ if (baseUrl) {
64
+ if (Array.isArray(baseUrl)) {
65
+ return baseUrl.reduce(
66
+ (previous, current) => [...previous, ...applyBaseUrl(current, routes)],
67
+ []
68
+ );
69
+ } else {
70
+ return routes.map((route) => {
71
+ const urlPath = (0, import_utils.urlJoin)(baseUrl, route.urlPath);
72
+ return __spreadProps(__spreadValues({}, route), {
73
+ urlPath: urlPath === "/" ? urlPath : (0, import_utils.removeTailSlash)(urlPath)
74
+ });
75
+ });
76
+ }
77
+ }
78
+ return routes;
79
+ };
80
+ const applyRouteOptions = (original, routeOptions) => {
81
+ const { route, disableSpa } = routeOptions;
82
+ original.isSPA = !disableSpa;
83
+ !original.isSPA && (original.entryPath = import_path.default.dirname(original.entryPath));
84
+ let routes;
85
+ if (route) {
86
+ if (Array.isArray(route)) {
87
+ routes = route.map((url) => {
88
+ if ((0, import_utils.isPlainObject)(url)) {
89
+ const _a2 = url, { path: urlPath } = _a2, other = __objRest(_a2, ["path"]);
90
+ return __spreadProps(__spreadValues(__spreadValues({}, original), other), {
91
+ urlPath
92
+ });
93
+ } else {
94
+ return __spreadProps(__spreadValues({}, original), {
95
+ urlPath: url
96
+ });
97
+ }
98
+ });
99
+ } else if ((0, import_utils.isPlainObject)(route)) {
100
+ const _a = route, { path: urlPath } = _a, other = __objRest(_a, ["path"]);
101
+ routes = [
102
+ __spreadProps(__spreadValues(__spreadValues({}, original), other), {
103
+ urlPath
104
+ })
105
+ ];
106
+ } else {
107
+ routes = [
108
+ __spreadProps(__spreadValues({}, original), {
109
+ urlPath: route
110
+ })
111
+ ];
112
+ }
113
+ } else {
114
+ routes = [original];
115
+ }
116
+ return routes;
117
+ };
118
+ const collectHtmlRoutes = (entrypoints, appContext, config) => {
119
+ const {
120
+ html: { disableHtmlFolder },
121
+ output: { distPath: { html: htmlPath } = {} },
122
+ server: { baseUrl, routes, ssr, ssrByEntries }
123
+ } = config;
124
+ const { packageName } = appContext;
125
+ let htmlRoutes = entrypoints.reduce(
126
+ (previous, { entryName }) => {
127
+ const entryOptions = (0, import_utils.getEntryOptions)(
128
+ entryName,
129
+ ssr,
130
+ ssrByEntries,
131
+ packageName
132
+ );
133
+ const isSSR = Boolean(entryOptions);
134
+ const { resHeaders } = (routes == null ? void 0 : routes[entryName]) || {};
135
+ let route = {
136
+ urlPath: `/${entryName === import_utils.MAIN_ENTRY_NAME ? "" : entryName}`,
137
+ entryName,
138
+ entryPath: (0, import_utils.removeLeadingSlash)(
139
+ import_path.default.posix.normalize(
140
+ `${htmlPath}/${entryName}${disableHtmlFolder ? ".html" : "/index.html"}`
141
+ )
142
+ ),
143
+ isSPA: true,
144
+ isSSR,
145
+ responseHeaders: resHeaders,
146
+ bundle: isSSR ? `${import_utils.SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
147
+ };
148
+ if (routes == null ? void 0 : routes.hasOwnProperty(entryName)) {
149
+ const routeOptions = (0, import_utils.isPlainObject)(routes[entryName]) ? routes[entryName] : { route: routes[entryName] };
150
+ route = applyRouteOptions(route, routeOptions);
151
+ }
152
+ return Array.isArray(route) ? [...previous, ...route] : [...previous, route];
153
+ },
154
+ []
155
+ );
156
+ htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
157
+ return htmlRoutes;
158
+ };
159
+ const collectStaticRoutes = (appContext, config) => {
160
+ const { appDirectory } = appContext;
161
+ const {
162
+ source: { configDir },
163
+ server: { publicRoutes = {} }
164
+ } = config;
165
+ const publicFolder = import_path.default.resolve(appDirectory, configDir || "", "public");
166
+ return import_fs.default.existsSync(publicFolder) ? (0, import_utils2.walkDirectory)(publicFolder).map((filePath) => {
167
+ const urlPath = `${(0, import_utils.urlJoin)(
168
+ toPosix(filePath).slice(toPosix(publicFolder).length)
169
+ )}`;
170
+ return {
171
+ urlPath: publicRoutes[(0, import_utils.removeLeadingSlash)(urlPath)] || urlPath,
172
+ isSPA: true,
173
+ isSSR: false,
174
+ entryPath: toPosix(
175
+ import_path.default.relative(
176
+ import_path.default.resolve(appDirectory, configDir || ""),
177
+ filePath
178
+ )
179
+ )
180
+ };
181
+ }) : [];
182
+ };
183
+ const getServerRoutes = (entrypoints, {
184
+ appContext,
185
+ config
186
+ }) => [
187
+ ...collectHtmlRoutes(entrypoints, appContext, config),
188
+ ...collectStaticRoutes(appContext, config)
189
+ ];
190
+ const toPosix = (pathStr) => pathStr.split(import_path.default.sep).join(import_path.default.posix.sep);
191
+ // Annotate the CommonJS export names for ESM import in node:
192
+ 0 && (module.exports = {
193
+ getServerRoutes
194
+ });