@modern-js/app-tools 2.31.2 → 2.31.3-alpha.1

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 (259) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/analyze/constants.js +11 -5
  3. package/dist/cjs/analyze/nestedRoutes.js +28 -1
  4. package/dist/cjs/analyze/templates.js +10 -7
  5. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +1 -1
  6. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +24 -22
  7. package/dist/cjs/index.js +16 -0
  8. package/dist/esm/analyze/constants.js +11 -5
  9. package/dist/esm/analyze/nestedRoutes.js +31 -2
  10. package/dist/esm/analyze/templates.js +10 -7
  11. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +1 -1
  12. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +24 -22
  13. package/dist/esm/index.js +42 -1
  14. package/dist/esm-node/analyze/constants.js +11 -5
  15. package/dist/esm-node/analyze/nestedRoutes.js +28 -1
  16. package/dist/esm-node/analyze/templates.js +10 -7
  17. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +1 -1
  18. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +24 -22
  19. package/dist/esm-node/index.js +17 -1
  20. package/dist/js/modern/analyze/constants.js +54 -0
  21. package/dist/js/modern/analyze/generateCode.js +247 -0
  22. package/dist/js/modern/analyze/getBundleEntry.js +71 -0
  23. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +220 -0
  24. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +216 -0
  25. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -0
  26. package/dist/js/modern/analyze/getClientRoutes/utils.js +31 -0
  27. package/dist/js/modern/analyze/getFileSystemEntry.js +109 -0
  28. package/dist/js/modern/analyze/getHtmlTemplate.js +115 -0
  29. package/dist/js/modern/analyze/getServerRoutes.js +175 -0
  30. package/dist/js/modern/analyze/index.js +332 -0
  31. package/dist/js/modern/analyze/isDefaultExportFunction.js +42 -0
  32. package/dist/js/modern/analyze/makeLegalIdentifier.js +13 -0
  33. package/dist/js/modern/analyze/nestedRoutes.js +157 -0
  34. package/dist/js/modern/analyze/templates.js +334 -0
  35. package/dist/js/modern/analyze/utils.js +141 -0
  36. package/dist/js/modern/builder/builderPlugins/compatModern.js +233 -0
  37. package/dist/js/modern/builder/index.js +159 -0
  38. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  39. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  40. package/dist/js/modern/builder/share.js +46 -0
  41. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +30 -0
  42. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +37 -0
  43. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +113 -0
  44. package/dist/js/modern/commands/build.js +91 -0
  45. package/dist/js/modern/commands/deploy.js +28 -0
  46. package/dist/js/modern/commands/dev.js +109 -0
  47. package/dist/js/modern/commands/index.js +3 -0
  48. package/dist/js/modern/commands/inspect.js +38 -0
  49. package/dist/js/modern/commands/serve.js +54 -0
  50. package/dist/js/modern/config/default.js +175 -0
  51. package/dist/js/modern/config/index.js +8 -0
  52. package/dist/js/modern/config/initial/createHtmlConfig.js +35 -0
  53. package/dist/js/modern/config/initial/createOutputConfig.js +68 -0
  54. package/dist/js/modern/config/initial/createSourceConfig.js +39 -0
  55. package/dist/js/modern/config/initial/createToolsConfig.js +42 -0
  56. package/dist/js/modern/config/initial/index.js +16 -0
  57. package/dist/js/modern/config/initial/inits.js +152 -0
  58. package/dist/js/modern/config/initial/transformNormalizedConfig.js +47 -0
  59. package/dist/js/modern/defineConfig.js +27 -0
  60. package/dist/js/modern/exports/server.js +4 -0
  61. package/dist/js/modern/hooks.js +35 -0
  62. package/dist/js/modern/index.js +211 -0
  63. package/dist/js/modern/initialize/index.js +124 -0
  64. package/dist/js/modern/locale/en.js +36 -0
  65. package/dist/js/modern/locale/index.js +9 -0
  66. package/dist/js/modern/locale/zh.js +36 -0
  67. package/dist/js/modern/schema/Schema.js +40 -0
  68. package/dist/js/modern/schema/index.js +88 -0
  69. package/dist/js/modern/schema/legacy.js +148 -0
  70. package/dist/js/modern/types/config/deploy.js +0 -0
  71. package/dist/js/modern/types/config/dev.js +0 -0
  72. package/dist/js/modern/types/config/experiments.js +0 -0
  73. package/dist/js/modern/types/config/html.js +0 -0
  74. package/dist/js/modern/types/config/index.js +1 -0
  75. package/dist/js/modern/types/config/output.js +0 -0
  76. package/dist/js/modern/types/config/performance.js +0 -0
  77. package/dist/js/modern/types/config/security.js +0 -0
  78. package/dist/js/modern/types/config/source.js +0 -0
  79. package/dist/js/modern/types/config/tools.js +0 -0
  80. package/dist/js/modern/types/hooks.js +0 -0
  81. package/dist/js/modern/types/index.js +3 -0
  82. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  83. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  84. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  85. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  86. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  87. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  88. package/dist/js/modern/utils/config.js +128 -0
  89. package/dist/js/modern/utils/createServer.js +75 -0
  90. package/dist/js/modern/utils/env.js +15 -0
  91. package/dist/js/modern/utils/generateWatchFiles.js +55 -0
  92. package/dist/js/modern/utils/getSelectedEntries.js +58 -0
  93. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  94. package/dist/js/modern/utils/language.js +8 -0
  95. package/dist/js/modern/utils/printInstructions.js +31 -0
  96. package/dist/js/modern/utils/restart.js +44 -0
  97. package/dist/js/modern/utils/routes.js +30 -0
  98. package/dist/js/modern/utils/types.js +0 -0
  99. package/dist/js/node/analyze/constants.js +98 -0
  100. package/dist/js/node/analyze/generateCode.js +271 -0
  101. package/dist/js/node/analyze/getBundleEntry.js +95 -0
  102. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +242 -0
  103. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +238 -0
  104. package/dist/js/node/analyze/getClientRoutes/index.js +30 -0
  105. package/dist/js/node/analyze/getClientRoutes/utils.js +58 -0
  106. package/dist/js/node/analyze/getFileSystemEntry.js +131 -0
  107. package/dist/js/node/analyze/getHtmlTemplate.js +144 -0
  108. package/dist/js/node/analyze/getServerRoutes.js +194 -0
  109. package/dist/js/node/analyze/index.js +339 -0
  110. package/dist/js/node/analyze/isDefaultExportFunction.js +71 -0
  111. package/dist/js/node/analyze/makeLegalIdentifier.js +36 -0
  112. package/dist/js/node/analyze/nestedRoutes.js +184 -0
  113. package/dist/js/node/analyze/templates.js +365 -0
  114. package/dist/js/node/analyze/utils.js +172 -0
  115. package/dist/js/node/builder/builderPlugins/compatModern.js +258 -0
  116. package/dist/js/node/builder/index.js +177 -0
  117. package/dist/js/node/builder/loaders/routerLoader.js +38 -0
  118. package/dist/js/node/builder/loaders/serverModuleLoader.js +28 -0
  119. package/dist/js/node/builder/share.js +75 -0
  120. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +53 -0
  121. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +60 -0
  122. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +135 -0
  123. package/dist/js/node/commands/build.js +112 -0
  124. package/dist/js/node/commands/deploy.js +51 -0
  125. package/dist/js/node/commands/dev.js +126 -0
  126. package/dist/js/node/commands/index.js +19 -0
  127. package/dist/js/node/commands/inspect.js +61 -0
  128. package/dist/js/node/commands/serve.js +83 -0
  129. package/dist/js/node/config/default.js +197 -0
  130. package/dist/js/node/config/index.js +34 -0
  131. package/dist/js/node/config/initial/createHtmlConfig.js +58 -0
  132. package/dist/js/node/config/initial/createOutputConfig.js +91 -0
  133. package/dist/js/node/config/initial/createSourceConfig.js +62 -0
  134. package/dist/js/node/config/initial/createToolsConfig.js +65 -0
  135. package/dist/js/node/config/initial/index.js +41 -0
  136. package/dist/js/node/config/initial/inits.js +175 -0
  137. package/dist/js/node/config/initial/transformNormalizedConfig.js +70 -0
  138. package/dist/js/node/defineConfig.js +49 -0
  139. package/dist/js/node/exports/server.js +27 -0
  140. package/dist/js/node/hooks.js +54 -0
  141. package/dist/js/node/index.js +235 -0
  142. package/dist/js/node/initialize/index.js +134 -0
  143. package/dist/js/node/locale/en.js +59 -0
  144. package/dist/js/node/locale/index.js +33 -0
  145. package/dist/js/node/locale/zh.js +59 -0
  146. package/dist/js/node/schema/Schema.js +63 -0
  147. package/dist/js/node/schema/index.js +118 -0
  148. package/dist/js/node/schema/legacy.js +169 -0
  149. package/dist/js/node/types/config/deploy.js +15 -0
  150. package/dist/js/node/types/config/dev.js +15 -0
  151. package/dist/js/node/types/config/experiments.js +15 -0
  152. package/dist/js/node/types/config/html.js +15 -0
  153. package/dist/js/node/types/config/index.js +17 -0
  154. package/dist/js/node/types/config/output.js +15 -0
  155. package/dist/js/node/types/config/performance.js +15 -0
  156. package/dist/js/node/types/config/security.js +15 -0
  157. package/dist/js/node/types/config/source.js +15 -0
  158. package/dist/js/node/types/config/tools.js +15 -0
  159. package/dist/js/node/types/hooks.js +15 -0
  160. package/dist/js/node/types/index.js +19 -0
  161. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  162. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  163. package/dist/js/node/types/legacyConfig/index.js +15 -0
  164. package/dist/js/node/types/legacyConfig/output.js +15 -0
  165. package/dist/js/node/types/legacyConfig/source.js +15 -0
  166. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  167. package/dist/js/node/utils/config.js +153 -0
  168. package/dist/js/node/utils/createServer.js +106 -0
  169. package/dist/js/node/utils/env.js +38 -0
  170. package/dist/js/node/utils/generateWatchFiles.js +85 -0
  171. package/dist/js/node/utils/getSelectedEntries.js +81 -0
  172. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  173. package/dist/js/node/utils/language.js +31 -0
  174. package/dist/js/node/utils/printInstructions.js +54 -0
  175. package/dist/js/node/utils/restart.js +67 -0
  176. package/dist/js/node/utils/routes.js +59 -0
  177. package/dist/js/node/utils/types.js +15 -0
  178. package/dist/js/treeshaking/analyze/constants.js +40 -0
  179. package/dist/js/treeshaking/analyze/generateCode.js +485 -0
  180. package/dist/js/treeshaking/analyze/getBundleEntry.js +62 -0
  181. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +233 -0
  182. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
  183. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -0
  184. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +23 -0
  185. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +107 -0
  186. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +302 -0
  187. package/dist/js/treeshaking/analyze/getServerRoutes.js +222 -0
  188. package/dist/js/treeshaking/analyze/index.js +697 -0
  189. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +47 -0
  190. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -0
  191. package/dist/js/treeshaking/analyze/nestedRoutes.js +384 -0
  192. package/dist/js/treeshaking/analyze/templates.js +468 -0
  193. package/dist/js/treeshaking/analyze/utils.js +374 -0
  194. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +304 -0
  195. package/dist/js/treeshaking/builder/index.js +374 -0
  196. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  197. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  198. package/dist/js/treeshaking/builder/share.js +40 -0
  199. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +110 -0
  200. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +72 -0
  201. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +343 -0
  202. package/dist/js/treeshaking/commands/build.js +291 -0
  203. package/dist/js/treeshaking/commands/deploy.js +154 -0
  204. package/dist/js/treeshaking/commands/dev.js +301 -0
  205. package/dist/js/treeshaking/commands/index.js +3 -0
  206. package/dist/js/treeshaking/commands/inspect.js +149 -0
  207. package/dist/js/treeshaking/commands/serve.js +199 -0
  208. package/dist/js/treeshaking/config/default.js +210 -0
  209. package/dist/js/treeshaking/config/index.js +3 -0
  210. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -0
  211. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -0
  212. package/dist/js/treeshaking/config/initial/createSourceConfig.js +42 -0
  213. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -0
  214. package/dist/js/treeshaking/config/initial/index.js +12 -0
  215. package/dist/js/treeshaking/config/initial/inits.js +209 -0
  216. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +35 -0
  217. package/dist/js/treeshaking/defineConfig.js +61 -0
  218. package/dist/js/treeshaking/exports/server.js +2 -0
  219. package/dist/js/treeshaking/hooks.js +29 -0
  220. package/dist/js/treeshaking/index.js +706 -0
  221. package/dist/js/treeshaking/initialize/index.js +276 -0
  222. package/dist/js/treeshaking/locale/en.js +38 -0
  223. package/dist/js/treeshaking/locale/index.js +9 -0
  224. package/dist/js/treeshaking/locale/zh.js +38 -0
  225. package/dist/js/treeshaking/schema/Schema.js +273 -0
  226. package/dist/js/treeshaking/schema/index.js +181 -0
  227. package/dist/js/treeshaking/schema/legacy.js +337 -0
  228. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  229. package/dist/js/treeshaking/types/config/dev.js +1 -0
  230. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  231. package/dist/js/treeshaking/types/config/html.js +1 -0
  232. package/dist/js/treeshaking/types/config/index.js +1 -0
  233. package/dist/js/treeshaking/types/config/output.js +1 -0
  234. package/dist/js/treeshaking/types/config/performance.js +1 -0
  235. package/dist/js/treeshaking/types/config/security.js +1 -0
  236. package/dist/js/treeshaking/types/config/source.js +1 -0
  237. package/dist/js/treeshaking/types/config/tools.js +1 -0
  238. package/dist/js/treeshaking/types/hooks.js +1 -0
  239. package/dist/js/treeshaking/types/index.js +3 -0
  240. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  241. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  242. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  243. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  244. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  245. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  246. package/dist/js/treeshaking/utils/config.js +302 -0
  247. package/dist/js/treeshaking/utils/createServer.js +258 -0
  248. package/dist/js/treeshaking/utils/env.js +13 -0
  249. package/dist/js/treeshaking/utils/generateWatchFiles.js +214 -0
  250. package/dist/js/treeshaking/utils/getSelectedEntries.js +186 -0
  251. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  252. package/dist/js/treeshaking/utils/language.js +6 -0
  253. package/dist/js/treeshaking/utils/printInstructions.js +152 -0
  254. package/dist/js/treeshaking/utils/restart.js +187 -0
  255. package/dist/js/treeshaking/utils/routes.js +153 -0
  256. package/dist/js/treeshaking/utils/types.js +1 -0
  257. package/dist/types/analyze/constants.d.ts +10 -4
  258. package/dist/types/defineConfig.d.ts +1 -1
  259. package/package.json +16 -16
@@ -0,0 +1,258 @@
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 __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+ var compatModern_exports = {};
42
+ __export(compatModern_exports, {
43
+ PluginCompatModern: () => PluginCompatModern
44
+ });
45
+ module.exports = __toCommonJS(compatModern_exports);
46
+ var import_path = require("path");
47
+ var import_builder_shared = require("@modern-js/builder-shared");
48
+ var import_lodash = require("@modern-js/utils/lodash");
49
+ var import_html_webpack_plugin = __toESM(require("@modern-js/builder-webpack-provider/html-webpack-plugin"));
50
+ var import_utils = require("@modern-js/utils");
51
+ var import_htmlBottomTemplate = require("../webpackPlugins/htmlBottomTemplate");
52
+ var import_htmlAsyncChunkPlugin = require("../webpackPlugins/htmlAsyncChunkPlugin");
53
+ var import_share = require("../share");
54
+ var import_routerPlugin = __toESM(require("../webpackPlugins/routerPlugin"));
55
+ const PluginCompatModern = (appContext, modernConfig, options) => ({
56
+ name: "builder-plugin-compat-modern",
57
+ setup(api) {
58
+ api.modifyBuilderConfig((config) => {
59
+ if (isStreamingSSR(modernConfig)) {
60
+ return (0, import_builder_shared.mergeBuilderConfig)(config, {
61
+ html: {
62
+ inject: "body"
63
+ }
64
+ });
65
+ }
66
+ return config;
67
+ });
68
+ api.modifyWebpackChain((chain, { target, CHAIN_ID, isProd }) => {
69
+ var _a;
70
+ const builderNormalizedConfig = api.getNormalizedConfig();
71
+ if (target === "node") {
72
+ chain.name("server");
73
+ } else if (target === "modern-web") {
74
+ chain.name("modern");
75
+ } else {
76
+ chain.name("client");
77
+ }
78
+ chain.resolve.modules.add("node_modules").add((0, import_path.join)(api.context.rootPath, "node_modules"));
79
+ if (target === "node") {
80
+ applyNodeCompat(chain, modernConfig, isProd);
81
+ }
82
+ if (isHtmlEnabled(builderNormalizedConfig, target)) {
83
+ applyBottomHtmlWebpackPlugin({
84
+ api,
85
+ chain,
86
+ CHAIN_ID,
87
+ appContext,
88
+ modernConfig
89
+ });
90
+ applyAsyncChunkHtmlPlugin({
91
+ chain,
92
+ CHAIN_ID,
93
+ modernConfig
94
+ });
95
+ }
96
+ if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
97
+ const defaultCopyPattern = (0, import_share.createCopyPattern)(
98
+ appContext,
99
+ modernConfig,
100
+ "public",
101
+ chain
102
+ );
103
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
104
+ var _a2;
105
+ return [
106
+ {
107
+ patterns: [...((_a2 = args[0]) == null ? void 0 : _a2.patterns) || [], defaultCopyPattern]
108
+ }
109
+ ];
110
+ });
111
+ }
112
+ const { entrypoints } = appContext;
113
+ const existNestedRoutes = entrypoints.some(
114
+ (entrypoint) => entrypoint.nestedRoutesEntry
115
+ );
116
+ const routerConfig = (_a = modernConfig == null ? void 0 : modernConfig.runtime) == null ? void 0 : _a.router;
117
+ const routerManifest = Boolean(routerConfig == null ? void 0 : routerConfig.manifest);
118
+ if (existNestedRoutes || routerManifest) {
119
+ chain.plugin("route-plugin").use(import_routerPlugin.default);
120
+ }
121
+ if (target !== "node") {
122
+ const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
123
+ chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
124
+ chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
125
+ }
126
+ function isHtmlEnabled(config, target2) {
127
+ var _a2;
128
+ return ((_a2 = config.tools) == null ? void 0 : _a2.htmlPlugin) !== false && target2 !== "node" && target2 !== "web-worker";
129
+ }
130
+ });
131
+ if (options) {
132
+ applyCallbacks(api, options);
133
+ }
134
+ }
135
+ });
136
+ function applyCallbacks(api, options) {
137
+ options.onAfterBuild && api.onAfterBuild(options.onAfterBuild);
138
+ options.onAfterCreateCompiler && api.onAfterCreateCompiler(options.onAfterCreateCompiler);
139
+ options.onAfterStartDevServer && api.onAfterStartDevServer(options.onAfterStartDevServer);
140
+ options.onBeforeBuild && api.onBeforeBuild(options.onBeforeBuild);
141
+ options.onBeforeCreateCompiler && api.onBeforeCreateCompiler(options.onBeforeCreateCompiler);
142
+ options.onBeforeStartDevServer && api.onBeforeStartDevServer(options.onBeforeStartDevServer);
143
+ options.onDevCompileDone && api.onDevCompileDone(options.onDevCompileDone);
144
+ options.onExit && api.onExit(options.onExit);
145
+ }
146
+ function applyNodeCompat(chain, modernConfig, isProd) {
147
+ for (const ext of [
148
+ ".node.js",
149
+ ".node.jsx",
150
+ ".node.ts",
151
+ ".node.tsx",
152
+ ".server.js",
153
+ ".server.ts",
154
+ ".server.ts",
155
+ ".server.tsx"
156
+ ]) {
157
+ chain.resolve.extensions.prepend(ext);
158
+ }
159
+ filterEntriesBySSRConfig(
160
+ isProd,
161
+ chain,
162
+ modernConfig.server,
163
+ modernConfig.output
164
+ );
165
+ function filterEntriesBySSRConfig(isProd2, chain2, serverConfig, outputConfig) {
166
+ var _a;
167
+ const entries = chain2.entryPoints.entries();
168
+ if (isProd2 && ((outputConfig == null ? void 0 : outputConfig.ssg) === true || typeof ((_a = outputConfig == null ? void 0 : outputConfig.ssg) == null ? void 0 : _a[0]) === "function")) {
169
+ return;
170
+ }
171
+ if (typeof entries === "undefined") {
172
+ throw new Error(
173
+ "No entry found, one of src/routes/layout.tsx, src/App.tsx, src/index.tsx is required"
174
+ );
175
+ }
176
+ const entryNames = Object.keys(entries);
177
+ if (isProd2 && entryNames.length === 1 && (outputConfig == null ? void 0 : outputConfig.ssg)) {
178
+ return;
179
+ }
180
+ const ssgEntries = [];
181
+ if (isProd2 && (outputConfig == null ? void 0 : outputConfig.ssg)) {
182
+ const { ssg } = outputConfig;
183
+ entryNames.forEach((name) => {
184
+ if (ssg[name]) {
185
+ ssgEntries.push(name);
186
+ }
187
+ });
188
+ }
189
+ const { ssr, ssrByEntries } = serverConfig || {};
190
+ entryNames.forEach((name) => {
191
+ if (!ssgEntries.includes(name) && (ssr && (ssrByEntries == null ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries == null ? void 0 : ssrByEntries[name]))) {
192
+ chain2.entryPoints.delete(name);
193
+ }
194
+ });
195
+ }
196
+ }
197
+ function applyBottomHtmlWebpackPlugin({
198
+ api,
199
+ chain,
200
+ modernConfig,
201
+ appContext,
202
+ CHAIN_ID
203
+ }) {
204
+ for (const entryName of Object.keys(api.context.entry)) {
205
+ const baseTemplateParams = __spreadValues({
206
+ entryName,
207
+ title: (0, import_utils.getEntryOptions)(
208
+ entryName,
209
+ modernConfig.html.title,
210
+ modernConfig.html.titleByEntries,
211
+ appContext.packageName
212
+ ),
213
+ mountId: modernConfig.html.mountId
214
+ }, (0, import_utils.getEntryOptions)(
215
+ entryName,
216
+ modernConfig.html.templateParameters,
217
+ modernConfig.html.templateParametersByEntries,
218
+ appContext.packageName
219
+ ));
220
+ chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).tap((args) => [
221
+ __spreadProps(__spreadValues({}, args[0] || {}), {
222
+ __internal__: true,
223
+ bottomTemplate: appContext.htmlTemplates[`__${entryName}-bottom__`] && (0, import_lodash.template)(appContext.htmlTemplates[`__${entryName}-bottom__`])(
224
+ baseTemplateParams
225
+ )
226
+ })
227
+ ]);
228
+ }
229
+ chain.plugin(CHAIN_ID.PLUGIN.BOTTOM_TEMPLATE).use(import_htmlBottomTemplate.BottomTemplatePlugin, [import_html_webpack_plugin.default]);
230
+ }
231
+ const isStreamingSSR = (userConfig) => {
232
+ const isStreaming = (ssr) => ssr && typeof ssr === "object" && ssr.mode === "stream";
233
+ const { server } = userConfig;
234
+ if (isStreaming(server.ssr)) {
235
+ return true;
236
+ }
237
+ if ((server == null ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
238
+ for (const name of Object.keys(server.ssrByEntries)) {
239
+ if (isStreaming(server.ssrByEntries[name])) {
240
+ return true;
241
+ }
242
+ }
243
+ }
244
+ return false;
245
+ };
246
+ function applyAsyncChunkHtmlPlugin({
247
+ chain,
248
+ modernConfig,
249
+ CHAIN_ID
250
+ }) {
251
+ if (isStreamingSSR(modernConfig)) {
252
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(import_htmlAsyncChunkPlugin.HtmlAsyncChunkPlugin, [import_html_webpack_plugin.default]);
253
+ }
254
+ }
255
+ // Annotate the CommonJS export names for ESM import in node:
256
+ 0 && (module.exports = {
257
+ PluginCompatModern
258
+ });
@@ -0,0 +1,177 @@
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 __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+ var __async = (__this, __arguments, generator) => {
42
+ return new Promise((resolve, reject) => {
43
+ var fulfilled = (value) => {
44
+ try {
45
+ step(generator.next(value));
46
+ } catch (e) {
47
+ reject(e);
48
+ }
49
+ };
50
+ var rejected = (value) => {
51
+ try {
52
+ step(generator.throw(value));
53
+ } catch (e) {
54
+ reject(e);
55
+ }
56
+ };
57
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
58
+ step((generator = generator.apply(__this, __arguments)).next());
59
+ });
60
+ };
61
+ var builder_exports = {};
62
+ __export(builder_exports, {
63
+ createBuilderForModern: () => createBuilderForModern,
64
+ createBuilderOptions: () => createBuilderOptions,
65
+ createBuilderProviderConfig: () => createBuilderProviderConfig
66
+ });
67
+ module.exports = __toCommonJS(builder_exports);
68
+ var import_builder = require("@modern-js/builder");
69
+ var import_builder_webpack_provider = require("@modern-js/builder-webpack-provider");
70
+ var import_utils = require("@modern-js/utils");
71
+ var import_compatModern = require("./builderPlugins/compatModern");
72
+ var import_share = require("./share");
73
+ function getBuilderTargets(normalizedConfig) {
74
+ const targets = ["web"];
75
+ const useNodeTarget = (0, import_utils.isProd)() ? (0, import_utils.isUseSSRBundle)(normalizedConfig) : (0, import_utils.isSSR)(normalizedConfig);
76
+ if (useNodeTarget) {
77
+ targets.push("node");
78
+ }
79
+ return targets;
80
+ }
81
+ function createBuilderForModern(_0) {
82
+ return __async(this, arguments, function* ({
83
+ normalizedConfig,
84
+ appContext,
85
+ compatPluginConfig
86
+ }) {
87
+ const builderConfig = createBuilderProviderConfig(
88
+ normalizedConfig,
89
+ appContext
90
+ );
91
+ const webpackProvider = (0, import_builder_webpack_provider.builderWebpackProvider)({
92
+ builderConfig
93
+ });
94
+ const target = getBuilderTargets(normalizedConfig);
95
+ const builderOptions = createBuilderOptions(target, appContext);
96
+ const builder = yield (0, import_builder.createBuilder)(webpackProvider, builderOptions);
97
+ yield applyBuilderPlugins(
98
+ builder,
99
+ normalizedConfig,
100
+ appContext,
101
+ compatPluginConfig
102
+ );
103
+ return builder;
104
+ });
105
+ }
106
+ function createBuilderProviderConfig(normalizedConfig, appContext) {
107
+ const output = createOutputConfig(normalizedConfig, appContext);
108
+ const htmlConfig = __spreadValues({}, normalizedConfig.html);
109
+ if (!htmlConfig.template) {
110
+ htmlConfig.templateByEntries = __spreadValues(__spreadValues({}, htmlConfig.templateByEntries), appContext.htmlTemplates);
111
+ }
112
+ return __spreadProps(__spreadValues({}, normalizedConfig), {
113
+ output,
114
+ dev: __spreadProps(__spreadValues({}, normalizedConfig.dev), {
115
+ port: appContext.port
116
+ }),
117
+ html: htmlConfig
118
+ });
119
+ function createOutputConfig(config, appContext2) {
120
+ const defaultCopyPattern = (0, import_share.createCopyPattern)(appContext2, config, "upload");
121
+ const { copy } = config.output;
122
+ const copyOptions = Array.isArray(copy) ? copy : copy == null ? void 0 : copy.patterns;
123
+ const builderCopy = [...copyOptions || [], defaultCopyPattern];
124
+ return __spreadProps(__spreadValues({}, config.output), {
125
+ copy: builderCopy,
126
+ cleanDistPath: false
127
+ });
128
+ }
129
+ }
130
+ function createBuilderOptions(target, appContext) {
131
+ const entries = {};
132
+ const { entrypoints = [], checkedEntries } = appContext;
133
+ for (const { entryName, entry } of entrypoints) {
134
+ if (checkedEntries && !checkedEntries.includes(entryName)) {
135
+ continue;
136
+ }
137
+ if (entryName in entries) {
138
+ entries[entryName].push(entry);
139
+ } else {
140
+ entries[entryName] = [entry];
141
+ }
142
+ }
143
+ return {
144
+ cwd: appContext.appDirectory,
145
+ target,
146
+ configPath: appContext.configFile || void 0,
147
+ entry: entries,
148
+ framework: appContext.metaName
149
+ };
150
+ }
151
+ function applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig) {
152
+ return __async(this, null, function* () {
153
+ if (!normalizedConfig.output.disableNodePolyfill) {
154
+ const { builderPluginNodePolyfill } = yield Promise.resolve().then(() => __toESM(require("@modern-js/builder-plugin-node-polyfill")));
155
+ builder.addPlugins([builderPluginNodePolyfill()]);
156
+ }
157
+ if (normalizedConfig.tools.esbuild) {
158
+ const { esbuild: esbuildOptions } = normalizedConfig.tools;
159
+ const { builderPluginEsbuild } = yield Promise.resolve().then(() => __toESM(require("@modern-js/builder-plugin-esbuild")));
160
+ builder.addPlugins([
161
+ builderPluginEsbuild({
162
+ loader: false,
163
+ minimize: (0, import_utils.applyOptionsChain)({}, esbuildOptions)
164
+ })
165
+ ]);
166
+ }
167
+ builder.addPlugins([
168
+ (0, import_compatModern.PluginCompatModern)(appContext, normalizedConfig, compatPluginConfig)
169
+ ]);
170
+ });
171
+ }
172
+ // Annotate the CommonJS export names for ESM import in node:
173
+ 0 && (module.exports = {
174
+ createBuilderForModern,
175
+ createBuilderOptions,
176
+ createBuilderProviderConfig
177
+ });
@@ -0,0 +1,38 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var routerLoader_exports = {};
19
+ __export(routerLoader_exports, {
20
+ default: () => routerLoader_default
21
+ });
22
+ module.exports = __toCommonJS(routerLoader_exports);
23
+ var import_utils = require("@modern-js/utils");
24
+ function loader(source) {
25
+ this.cacheable();
26
+ const { target } = this._compiler.options;
27
+ if (target === "node" || Array.isArray(target) && target.includes("node")) {
28
+ return source;
29
+ }
30
+ const { resourcePath } = this;
31
+ const code = `
32
+ export { default } from "${(0, import_utils.slash)(resourcePath)}";
33
+ `;
34
+ return code;
35
+ }
36
+ var routerLoader_default = loader;
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {});
@@ -0,0 +1,28 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var serverModuleLoader_exports = {};
19
+ __export(serverModuleLoader_exports, {
20
+ default: () => serverModuleLoader_default
21
+ });
22
+ module.exports = __toCommonJS(serverModuleLoader_exports);
23
+ function loader() {
24
+ return `module.exports = {}`;
25
+ }
26
+ var serverModuleLoader_default = loader;
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {});
@@ -0,0 +1,75 @@
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 share_exports = {};
25
+ __export(share_exports, {
26
+ createCopyPattern: () => createCopyPattern
27
+ });
28
+ module.exports = __toCommonJS(share_exports);
29
+ var import_path = __toESM(require("path"));
30
+ var import_utils = require("@modern-js/utils");
31
+ function createCopyPattern(appContext, config, patternsType, chain) {
32
+ const configDir = import_path.default.resolve(
33
+ appContext.appDirectory,
34
+ config.source.configDir || "./config"
35
+ );
36
+ const uploadDir = import_path.default.posix.join(configDir.replace(/\\/g, "/"), "upload");
37
+ const publicDir = import_path.default.posix.join(configDir.replace(/\\/g, "/"), "public");
38
+ const minifiedJsRexExp = /\.min\.js/;
39
+ const info = (file) => ({
40
+ minimized: minifiedJsRexExp.test(file.sourceFilename)
41
+ });
42
+ if (patternsType === "public") {
43
+ if (!chain) {
44
+ throw new Error("expect get a webpackChain, but receive 'undefined'");
45
+ }
46
+ return {
47
+ info,
48
+ from: "**/*",
49
+ to: "public",
50
+ context: publicDir,
51
+ noErrorOnMissing: true,
52
+ transform: (content, absoluteFrom) => {
53
+ if (!/\.html?$/.test(absoluteFrom)) {
54
+ return content;
55
+ }
56
+ return content.toString("utf8").replace(
57
+ /<%=\s*assetPrefix\s*%>/g,
58
+ (0, import_utils.removeTailSlash)(chain.output.get("publicPath"))
59
+ );
60
+ }
61
+ };
62
+ } else {
63
+ return {
64
+ info,
65
+ from: "**/*",
66
+ to: "upload",
67
+ context: uploadDir,
68
+ noErrorOnMissing: true
69
+ };
70
+ }
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ createCopyPattern
75
+ });
@@ -0,0 +1,53 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var htmlAsyncChunkPlugin_exports = {};
19
+ __export(htmlAsyncChunkPlugin_exports, {
20
+ HtmlAsyncChunkPlugin: () => HtmlAsyncChunkPlugin
21
+ });
22
+ module.exports = __toCommonJS(htmlAsyncChunkPlugin_exports);
23
+ class HtmlAsyncChunkPlugin {
24
+ constructor(htmlWebpackPlugin) {
25
+ this.name = "HtmlAsyncChunkPlugin";
26
+ this.htmlWebpackPlugin = htmlWebpackPlugin;
27
+ }
28
+ apply(compiler) {
29
+ compiler.hooks.compilation.tap(
30
+ this.name,
31
+ (compilation) => {
32
+ const hooks = this.htmlWebpackPlugin.getHooks(compilation);
33
+ hooks.alterAssetTagGroups.tap(this.name, (assets) => {
34
+ const tags = [...assets.headTags, ...assets.bodyTags];
35
+ for (const tag of tags) {
36
+ if (tag.tagName === "script") {
37
+ const { attributes } = tag;
38
+ if (attributes && attributes.defer === true) {
39
+ attributes.async = true;
40
+ delete attributes.defer;
41
+ }
42
+ }
43
+ }
44
+ return assets;
45
+ });
46
+ }
47
+ );
48
+ }
49
+ }
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ HtmlAsyncChunkPlugin
53
+ });
@@ -0,0 +1,60 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var htmlBottomTemplate_exports = {};
19
+ __export(htmlBottomTemplate_exports, {
20
+ BottomTemplatePlugin: () => BottomTemplatePlugin
21
+ });
22
+ module.exports = __toCommonJS(htmlBottomTemplate_exports);
23
+ class BottomTemplatePlugin {
24
+ constructor(htmlWebpackPlugin) {
25
+ this.bottomTemplateReg = /<!--<\?-\s*bottomTemplate\s*\?>-->/;
26
+ this.bodyRegExp = /(<\/\s*body\s*>)/i;
27
+ this.htmlWebpackPlugin = htmlWebpackPlugin;
28
+ this.name = "bottom-template";
29
+ }
30
+ apply(compiler) {
31
+ compiler.hooks.compilation.tap(
32
+ this.name,
33
+ (compilation) => {
34
+ this.htmlWebpackPlugin.getHooks(compilation).beforeEmit.tap(this.name, (data) => {
35
+ var _a;
36
+ if (!((_a = data.plugin.options) == null ? void 0 : _a.__internal__)) {
37
+ return data;
38
+ }
39
+ if (this.bottomTemplateReg.test(data.html)) {
40
+ data.html = data.html.replace(this.bottomTemplateReg, "");
41
+ const { bottomTemplate } = data.plugin.options;
42
+ if (bottomTemplate) {
43
+ data.html = data.html.replace(
44
+ this.bodyRegExp,
45
+ (match) => `
46
+ ${bottomTemplate}
47
+ ${match}`
48
+ );
49
+ }
50
+ }
51
+ return data;
52
+ });
53
+ }
54
+ );
55
+ }
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ BottomTemplatePlugin
60
+ });