@modern-js/app-tools 2.58.3 → 2.59.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. package/dist/cjs/builder/generator/index.js +2 -3
  2. package/dist/cjs/builder/shared/builderPlugins/index.js +1 -3
  3. package/dist/cjs/commands/dev.js +1 -1
  4. package/dist/cjs/index.js +10 -3
  5. package/dist/cjs/plugins/analyze/getFileSystemEntry.js +50 -44
  6. package/dist/esm/builder/builder-rspack/adapterCopy.js +166 -0
  7. package/dist/esm/builder/builder-rspack/index.js +34 -0
  8. package/dist/esm/builder/builder-webpack/adapterModern.js +29 -0
  9. package/dist/esm/builder/builder-webpack/createCopyPattern.js +43 -0
  10. package/dist/esm/builder/builder-webpack/index.js +52 -0
  11. package/dist/esm/builder/generator/createBuilderProviderConfig.js +37 -0
  12. package/dist/esm/builder/generator/getBuilderEnvironments.js +81 -0
  13. package/dist/esm/builder/generator/index.js +93 -0
  14. package/dist/esm/builder/index.js +45 -0
  15. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +85 -0
  16. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +126 -0
  17. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +261 -0
  18. package/dist/esm/builder/shared/builderPlugins/index.js +3 -0
  19. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +51 -0
  20. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +37 -0
  21. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +314 -0
  22. package/dist/esm/builder/shared/bundlerPlugins/index.js +3 -0
  23. package/dist/esm/builder/shared/createCopyInfo.js +14 -0
  24. package/dist/esm/builder/shared/index.js +3 -0
  25. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +7 -0
  26. package/dist/esm/builder/shared/types.js +0 -0
  27. package/dist/esm/commands/build.js +140 -0
  28. package/dist/esm/commands/deploy.js +48 -0
  29. package/dist/esm/commands/dev.js +193 -0
  30. package/dist/esm/commands/index.js +411 -0
  31. package/dist/esm/commands/inspect.js +28 -0
  32. package/dist/esm/commands/serve.js +94 -0
  33. package/dist/esm/config/default.js +190 -0
  34. package/dist/esm/config/index.js +3 -0
  35. package/dist/esm/config/initialize/index.js +9 -0
  36. package/dist/esm/config/initialize/inits.js +89 -0
  37. package/dist/esm/config/legacy/createHtmlConfig.js +21 -0
  38. package/dist/esm/config/legacy/createOutputConfig.js +45 -0
  39. package/dist/esm/config/legacy/createSourceConfig.js +46 -0
  40. package/dist/esm/config/legacy/createToolsConfig.js +28 -0
  41. package/dist/esm/config/legacy/index.js +43 -0
  42. package/dist/esm/defineConfig.js +16 -0
  43. package/dist/esm/esm/esbuild-loader.mjs +20 -0
  44. package/dist/esm/esm/register-esm.mjs +66 -0
  45. package/dist/esm/esm/ts-node-loader.mjs +21 -0
  46. package/dist/esm/esm/utils.mjs +43 -0
  47. package/dist/esm/exports/server.js +4 -0
  48. package/dist/esm/hooks.js +34 -0
  49. package/dist/esm/index.js +246 -0
  50. package/dist/esm/locale/en.js +43 -0
  51. package/dist/esm/locale/index.js +12 -0
  52. package/dist/esm/locale/zh.js +43 -0
  53. package/dist/esm/plugins/analyze/constants.js +14 -0
  54. package/dist/esm/plugins/analyze/getBundleEntry.js +102 -0
  55. package/dist/esm/plugins/analyze/getFileSystemEntry.js +266 -0
  56. package/dist/esm/plugins/analyze/getHtmlTemplate.js +178 -0
  57. package/dist/esm/plugins/analyze/getServerRoutes.js +132 -0
  58. package/dist/esm/plugins/analyze/index.js +380 -0
  59. package/dist/esm/plugins/analyze/isDefaultExportFunction.js +49 -0
  60. package/dist/esm/plugins/analyze/templates.js +6 -0
  61. package/dist/esm/plugins/analyze/utils.js +101 -0
  62. package/dist/esm/plugins/deploy/dependencies/index.js +615 -0
  63. package/dist/esm/plugins/deploy/dependencies/utils.js +421 -0
  64. package/dist/esm/plugins/deploy/exports.js +4 -0
  65. package/dist/esm/plugins/deploy/index.js +135 -0
  66. package/dist/esm/plugins/deploy/platforms/netlify-entry.js +11 -0
  67. package/dist/esm/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  68. package/dist/esm/plugins/deploy/platforms/netlify-handler.js +205 -0
  69. package/dist/esm/plugins/deploy/platforms/netlify.js +327 -0
  70. package/dist/esm/plugins/deploy/platforms/node-entry.js +108 -0
  71. package/dist/esm/plugins/deploy/platforms/node.js +161 -0
  72. package/dist/esm/plugins/deploy/platforms/platform.js +0 -0
  73. package/dist/esm/plugins/deploy/platforms/vercel-entry.js +11 -0
  74. package/dist/esm/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  75. package/dist/esm/plugins/deploy/platforms/vercel-handler.js +206 -0
  76. package/dist/esm/plugins/deploy/platforms/vercel.js +261 -0
  77. package/dist/esm/plugins/deploy/utils.js +47 -0
  78. package/dist/esm/plugins/initialize/index.js +119 -0
  79. package/dist/esm/plugins/serverBuild.js +87 -0
  80. package/dist/esm/types/config/deploy.js +0 -0
  81. package/dist/esm/types/config/dev.js +0 -0
  82. package/dist/esm/types/config/experiments.js +0 -0
  83. package/dist/esm/types/config/html.js +0 -0
  84. package/dist/esm/types/config/index.js +1 -0
  85. package/dist/esm/types/config/output.js +0 -0
  86. package/dist/esm/types/config/performance.js +0 -0
  87. package/dist/esm/types/config/security.js +0 -0
  88. package/dist/esm/types/config/source.js +0 -0
  89. package/dist/esm/types/config/testing.js +0 -0
  90. package/dist/esm/types/config/tools.js +0 -0
  91. package/dist/esm/types/hooks.js +0 -0
  92. package/dist/esm/types/index.js +3 -0
  93. package/dist/esm/types/legacyConfig/deploy.js +0 -0
  94. package/dist/esm/types/legacyConfig/dev.js +0 -0
  95. package/dist/esm/types/legacyConfig/index.js +0 -0
  96. package/dist/esm/types/legacyConfig/output.js +0 -0
  97. package/dist/esm/types/legacyConfig/source.js +0 -0
  98. package/dist/esm/types/legacyConfig/testing.js +0 -0
  99. package/dist/esm/types/legacyConfig/tools.js +0 -0
  100. package/dist/esm/types/utils.js +0 -0
  101. package/dist/esm/utils/config.js +122 -0
  102. package/dist/esm/utils/createServer.js +58 -0
  103. package/dist/esm/utils/env.js +16 -0
  104. package/dist/esm/utils/generateWatchFiles.js +71 -0
  105. package/dist/esm/utils/getSelectedEntries.js +67 -0
  106. package/dist/esm/utils/loadPlugins.js +74 -0
  107. package/dist/esm/utils/printInstructions.js +32 -0
  108. package/dist/esm/utils/register.js +188 -0
  109. package/dist/esm/utils/restart.js +67 -0
  110. package/dist/esm/utils/routes.js +42 -0
  111. package/dist/esm/utils/types.js +0 -0
  112. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +67 -0
  113. package/dist/esm-node/builder/builder-rspack/index.js +12 -0
  114. package/dist/esm-node/builder/builder-webpack/adapterModern.js +26 -0
  115. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +41 -0
  116. package/dist/esm-node/builder/builder-webpack/index.js +20 -0
  117. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +44 -0
  118. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +60 -0
  119. package/dist/esm-node/builder/generator/index.js +36 -0
  120. package/dist/esm-node/builder/index.js +11 -0
  121. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +48 -0
  122. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +60 -0
  123. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +151 -0
  124. package/dist/esm-node/builder/shared/builderPlugins/index.js +3 -0
  125. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -0
  126. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +31 -0
  127. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +228 -0
  128. package/dist/esm-node/builder/shared/bundlerPlugins/index.js +3 -0
  129. package/dist/esm-node/builder/shared/createCopyInfo.js +14 -0
  130. package/dist/esm-node/builder/shared/index.js +3 -0
  131. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +7 -0
  132. package/dist/esm-node/builder/shared/types.js +0 -0
  133. package/dist/esm-node/commands/build.js +64 -0
  134. package/dist/esm-node/commands/deploy.js +12 -0
  135. package/dist/esm-node/commands/dev.js +105 -0
  136. package/dist/esm-node/commands/index.js +92 -0
  137. package/dist/esm-node/commands/inspect.js +15 -0
  138. package/dist/esm-node/commands/serve.js +52 -0
  139. package/dist/esm-node/config/default.js +197 -0
  140. package/dist/esm-node/config/index.js +3 -0
  141. package/dist/esm-node/config/initialize/index.js +9 -0
  142. package/dist/esm-node/config/initialize/inits.js +79 -0
  143. package/dist/esm-node/config/legacy/createHtmlConfig.js +21 -0
  144. package/dist/esm-node/config/legacy/createOutputConfig.js +45 -0
  145. package/dist/esm-node/config/legacy/createSourceConfig.js +29 -0
  146. package/dist/esm-node/config/legacy/createToolsConfig.js +28 -0
  147. package/dist/esm-node/config/legacy/index.js +43 -0
  148. package/dist/esm-node/defineConfig.js +13 -0
  149. package/dist/esm-node/esm/esbuild-loader.mjs +20 -0
  150. package/dist/esm-node/esm/register-esm.mjs +66 -0
  151. package/dist/esm-node/esm/ts-node-loader.mjs +21 -0
  152. package/dist/esm-node/esm/utils.mjs +43 -0
  153. package/dist/esm-node/exports/server.js +4 -0
  154. package/dist/esm-node/hooks.js +34 -0
  155. package/dist/esm-node/index.js +131 -0
  156. package/dist/esm-node/locale/en.js +43 -0
  157. package/dist/esm-node/locale/index.js +12 -0
  158. package/dist/esm-node/locale/zh.js +43 -0
  159. package/dist/esm-node/plugins/analyze/constants.js +14 -0
  160. package/dist/esm-node/plugins/analyze/getBundleEntry.js +61 -0
  161. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +106 -0
  162. package/dist/esm-node/plugins/analyze/getHtmlTemplate.js +74 -0
  163. package/dist/esm-node/plugins/analyze/getServerRoutes.js +132 -0
  164. package/dist/esm-node/plugins/analyze/index.js +166 -0
  165. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.js +47 -0
  166. package/dist/esm-node/plugins/analyze/templates.js +24 -0
  167. package/dist/esm-node/plugins/analyze/utils.js +68 -0
  168. package/dist/esm-node/plugins/deploy/dependencies/index.js +202 -0
  169. package/dist/esm-node/plugins/deploy/dependencies/utils.js +137 -0
  170. package/dist/esm-node/plugins/deploy/exports.js +4 -0
  171. package/dist/esm-node/plugins/deploy/index.js +44 -0
  172. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.js +11 -0
  173. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  174. package/dist/esm-node/plugins/deploy/platforms/netlify-handler.js +71 -0
  175. package/dist/esm-node/plugins/deploy/platforms/netlify.js +117 -0
  176. package/dist/esm-node/plugins/deploy/platforms/node-entry.js +44 -0
  177. package/dist/esm-node/plugins/deploy/platforms/node.js +72 -0
  178. package/dist/esm-node/plugins/deploy/platforms/platform.js +0 -0
  179. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.js +11 -0
  180. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  181. package/dist/esm-node/plugins/deploy/platforms/vercel-handler.js +72 -0
  182. package/dist/esm-node/plugins/deploy/platforms/vercel.js +129 -0
  183. package/dist/esm-node/plugins/deploy/utils.js +44 -0
  184. package/dist/esm-node/plugins/initialize/index.js +84 -0
  185. package/dist/esm-node/plugins/serverBuild.js +58 -0
  186. package/dist/esm-node/types/config/deploy.js +0 -0
  187. package/dist/esm-node/types/config/dev.js +0 -0
  188. package/dist/esm-node/types/config/experiments.js +0 -0
  189. package/dist/esm-node/types/config/html.js +0 -0
  190. package/dist/esm-node/types/config/index.js +1 -0
  191. package/dist/esm-node/types/config/output.js +0 -0
  192. package/dist/esm-node/types/config/performance.js +0 -0
  193. package/dist/esm-node/types/config/security.js +0 -0
  194. package/dist/esm-node/types/config/source.js +0 -0
  195. package/dist/esm-node/types/config/testing.js +0 -0
  196. package/dist/esm-node/types/config/tools.js +0 -0
  197. package/dist/esm-node/types/hooks.js +0 -0
  198. package/dist/esm-node/types/index.js +3 -0
  199. package/dist/esm-node/types/legacyConfig/deploy.js +0 -0
  200. package/dist/esm-node/types/legacyConfig/dev.js +0 -0
  201. package/dist/esm-node/types/legacyConfig/index.js +0 -0
  202. package/dist/esm-node/types/legacyConfig/output.js +0 -0
  203. package/dist/esm-node/types/legacyConfig/source.js +0 -0
  204. package/dist/esm-node/types/legacyConfig/testing.js +0 -0
  205. package/dist/esm-node/types/legacyConfig/tools.js +0 -0
  206. package/dist/esm-node/types/utils.js +0 -0
  207. package/dist/esm-node/utils/config.js +49 -0
  208. package/dist/esm-node/utils/createServer.js +26 -0
  209. package/dist/esm-node/utils/env.js +16 -0
  210. package/dist/esm-node/utils/generateWatchFiles.js +30 -0
  211. package/dist/esm-node/utils/getSelectedEntries.js +34 -0
  212. package/dist/esm-node/utils/loadPlugins.js +22 -0
  213. package/dist/esm-node/utils/printInstructions.js +11 -0
  214. package/dist/esm-node/utils/register.js +96 -0
  215. package/dist/esm-node/utils/restart.js +22 -0
  216. package/dist/esm-node/utils/routes.js +21 -0
  217. package/dist/esm-node/utils/types.js +0 -0
  218. package/dist/types/builder/shared/builderPlugins/index.d.ts +0 -1
  219. package/dist/types/index.d.ts +1 -1
  220. package/package.json +20 -20
  221. package/dist/cjs/builder/shared/builderPlugins/adapterWorker.js +0 -51
  222. package/dist/types/builder/shared/builderPlugins/adapterWorker.d.ts +0 -2
@@ -0,0 +1,615 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
+ import { _ as _ts_values } from "@swc/helpers/_/_ts_values";
6
+ import path from "node:path";
7
+ import { fs as fse, pkgUp, semver } from "@modern-js/utils";
8
+ import { parseNodeModulePath } from "mlly";
9
+ import { readPackageJSON } from "pkg-types";
10
+ import { traceFiles as defaultTraceFiles, findEntryFiles, findPackageParents, isFile, isSubPath, linkPackage, readDirRecursive, resolveTracedPath, writePackage } from "./utils";
11
+ import { nodeFileTrace } from "@vercel/nft";
12
+ var handleDependencies = function() {
13
+ var _ref = _async_to_generator(function(param) {
14
+ var appDir, serverRootDir, includeEntries, _param_traceFiles, traceFiles, entryFilter, modifyPackageJson, copyWholePackage, traceOptions, base, entryFiles, fileTrace, currentProjectModules, dependencySearchRoot, tracedFiles, _, tracedPackages, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, tracedFile, pkgName, tracedPackage, pkgJSON, tracedPackageVersion, shouldCopyWholePackage, _tracedPackageVersion_files, allFiles, err, multiVersionPkgs, singleVersionPackages, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, tracedPackage1, versions, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, version, projectPkgJson, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _loop, _iterator3, _step3, err, outputPkgPath, newPkgJson, finalPkgJson;
15
+ return _ts_generator(this, function(_state) {
16
+ switch (_state.label) {
17
+ case 0:
18
+ appDir = param.appDir, serverRootDir = param.serverRootDir, includeEntries = param.includeEntries, _param_traceFiles = param.traceFiles, traceFiles = _param_traceFiles === void 0 ? defaultTraceFiles : _param_traceFiles, entryFilter = param.entryFilter, modifyPackageJson = param.modifyPackageJson, copyWholePackage = param.copyWholePackage, traceOptions = param.traceOptions;
19
+ base = "/";
20
+ return [
21
+ 4,
22
+ findEntryFiles(serverRootDir, entryFilter)
23
+ ];
24
+ case 1:
25
+ entryFiles = _state.sent();
26
+ return [
27
+ 4,
28
+ traceFiles({
29
+ entryFiles: entryFiles.concat(includeEntries),
30
+ serverRootDir,
31
+ base,
32
+ traceOptions
33
+ })
34
+ ];
35
+ case 2:
36
+ fileTrace = _state.sent();
37
+ currentProjectModules = path.join(appDir, "node_modules");
38
+ dependencySearchRoot = path.resolve(appDir, "../../../../../../");
39
+ _ = Object.fromEntries;
40
+ return [
41
+ 4,
42
+ Promise.all(_to_consumable_array(fileTrace.reasons.entries()).map(function() {
43
+ var _ref2 = _async_to_generator(function(param2) {
44
+ var _param, _path, reasons, filePath, baseDir, pkgName2, subpath, pkgPath, parsed, MODERN_UTILS_PATH, MODERN_UTILS_PATH_REGEX, match, packageJsonPath, _tmp, packageJson, parents, tracedFile2;
45
+ return _ts_generator(this, function(_state2) {
46
+ switch (_state2.label) {
47
+ case 0:
48
+ _param = _sliced_to_array(param2, 2), _path = _param[0], reasons = _param[1];
49
+ if (reasons.ignored) {
50
+ return [
51
+ 2
52
+ ];
53
+ }
54
+ return [
55
+ 4,
56
+ resolveTracedPath(base, _path)
57
+ ];
58
+ case 1:
59
+ filePath = _state2.sent();
60
+ if (isSubPath(serverRootDir, filePath) || isSubPath(appDir, filePath) && !isSubPath(currentProjectModules, filePath)) {
61
+ return [
62
+ 2
63
+ ];
64
+ }
65
+ return [
66
+ 4,
67
+ isFile(filePath)
68
+ ];
69
+ case 2:
70
+ if (!_state2.sent()) {
71
+ return [
72
+ 2
73
+ ];
74
+ }
75
+ if (!filePath.includes("node_modules"))
76
+ return [
77
+ 3,
78
+ 3
79
+ ];
80
+ parsed = parseNodeModulePath(filePath);
81
+ baseDir = parsed.dir;
82
+ pkgName2 = parsed.name;
83
+ subpath = parsed.subpath;
84
+ pkgPath = path.join(baseDir, pkgName2);
85
+ return [
86
+ 3,
87
+ 8
88
+ ];
89
+ case 3:
90
+ MODERN_UTILS_PATH = "packages/toolkit/utils";
91
+ MODERN_UTILS_PATH_REGEX = new RegExp("(.*".concat(MODERN_UTILS_PATH, ")"));
92
+ match = filePath.match(MODERN_UTILS_PATH_REGEX);
93
+ if (!match)
94
+ return [
95
+ 3,
96
+ 4
97
+ ];
98
+ _tmp = path.join(match[0], "package.json");
99
+ return [
100
+ 3,
101
+ 6
102
+ ];
103
+ case 4:
104
+ return [
105
+ 4,
106
+ pkgUp({
107
+ cwd: path.dirname(filePath)
108
+ })
109
+ ];
110
+ case 5:
111
+ _tmp = _state2.sent();
112
+ _state2.label = 6;
113
+ case 6:
114
+ packageJsonPath = _tmp;
115
+ if (!(packageJsonPath && isSubPath(dependencySearchRoot, packageJsonPath)))
116
+ return [
117
+ 3,
118
+ 8
119
+ ];
120
+ return [
121
+ 4,
122
+ fse.readJSON(packageJsonPath)
123
+ ];
124
+ case 7:
125
+ packageJson = _state2.sent();
126
+ pkgPath = baseDir = path.dirname(packageJsonPath);
127
+ subpath = path.relative(baseDir, filePath);
128
+ pkgName2 = packageJson.name;
129
+ _state2.label = 8;
130
+ case 8:
131
+ if (!baseDir) {
132
+ return [
133
+ 2
134
+ ];
135
+ }
136
+ return [
137
+ 4,
138
+ Promise.all(_to_consumable_array(reasons.parents).map(function(p) {
139
+ return resolveTracedPath(base, p);
140
+ }))
141
+ ];
142
+ case 9:
143
+ parents = _state2.sent();
144
+ tracedFile2 = {
145
+ path: filePath,
146
+ parents,
147
+ isDirectDep: parents.some(function(parent) {
148
+ return isSubPath(appDir, parent) && !isSubPath(currentProjectModules, parent);
149
+ }),
150
+ subpath,
151
+ pkgName: pkgName2,
152
+ pkgPath
153
+ };
154
+ return [
155
+ 2,
156
+ [
157
+ filePath,
158
+ tracedFile2
159
+ ]
160
+ ];
161
+ }
162
+ });
163
+ });
164
+ return function(_2) {
165
+ return _ref2.apply(this, arguments);
166
+ };
167
+ }())).then(function(r) {
168
+ return r.filter(Boolean);
169
+ })
170
+ ];
171
+ case 3:
172
+ tracedFiles = _.apply(Object, [
173
+ _state.sent()
174
+ ]);
175
+ tracedPackages = {};
176
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
177
+ _state.label = 4;
178
+ case 4:
179
+ _state.trys.push([
180
+ 4,
181
+ 11,
182
+ 12,
183
+ 13
184
+ ]);
185
+ _iterator = Object.values(tracedFiles)[Symbol.iterator]();
186
+ _state.label = 5;
187
+ case 5:
188
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done))
189
+ return [
190
+ 3,
191
+ 10
192
+ ];
193
+ tracedFile = _step.value;
194
+ pkgName = tracedFile.pkgName;
195
+ tracedPackage = tracedPackages[pkgName];
196
+ return [
197
+ 4,
198
+ readPackageJSON(tracedFile.pkgPath, {
199
+ cache: true
200
+ }).catch(function() {
201
+ })
202
+ ];
203
+ case 6:
204
+ pkgJSON = _state.sent();
205
+ if (!pkgJSON) {
206
+ pkgJSON = {
207
+ name: pkgName,
208
+ version: "0.0.0"
209
+ };
210
+ }
211
+ if (!tracedPackage) {
212
+ tracedPackage = {
213
+ name: pkgName,
214
+ versions: {}
215
+ };
216
+ tracedPackages[pkgName] = tracedPackage;
217
+ }
218
+ tracedPackageVersion = tracedPackage.versions[pkgJSON.version];
219
+ if (!tracedPackageVersion) {
220
+ tracedPackageVersion = {
221
+ path: tracedFile.pkgPath,
222
+ files: [],
223
+ isDirectDep: false,
224
+ pkgJSON
225
+ };
226
+ if (tracedFile.isDirectDep) {
227
+ tracedPackageVersion.isDirectDep = tracedFile.isDirectDep;
228
+ }
229
+ tracedPackage.versions[pkgJSON.version] = tracedPackageVersion;
230
+ }
231
+ tracedFile.pkgName = pkgName;
232
+ tracedFile.pkgVersion = pkgJSON.version;
233
+ shouldCopyWholePackage = copyWholePackage === null || copyWholePackage === void 0 ? void 0 : copyWholePackage(pkgName);
234
+ if (!(tracedFile.path.startsWith(tracedFile.pkgPath) && // Merged package files are based on the version, not on paths, to handle some boundary cases
235
+ tracedPackageVersion.pkgJSON.version === tracedFile.pkgVersion))
236
+ return [
237
+ 3,
238
+ 9
239
+ ];
240
+ if (!shouldCopyWholePackage)
241
+ return [
242
+ 3,
243
+ 8
244
+ ];
245
+ return [
246
+ 4,
247
+ readDirRecursive(tracedFile.pkgPath)
248
+ ];
249
+ case 7:
250
+ allFiles = _state.sent();
251
+ (_tracedPackageVersion_files = tracedPackageVersion.files).push.apply(_tracedPackageVersion_files, _to_consumable_array(allFiles));
252
+ return [
253
+ 3,
254
+ 9
255
+ ];
256
+ case 8:
257
+ tracedPackageVersion.files.push(tracedFile.path);
258
+ _state.label = 9;
259
+ case 9:
260
+ _iteratorNormalCompletion = true;
261
+ return [
262
+ 3,
263
+ 5
264
+ ];
265
+ case 10:
266
+ return [
267
+ 3,
268
+ 13
269
+ ];
270
+ case 11:
271
+ err = _state.sent();
272
+ _didIteratorError = true;
273
+ _iteratorError = err;
274
+ return [
275
+ 3,
276
+ 13
277
+ ];
278
+ case 12:
279
+ try {
280
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
281
+ _iterator.return();
282
+ }
283
+ } finally {
284
+ if (_didIteratorError) {
285
+ throw _iteratorError;
286
+ }
287
+ }
288
+ return [
289
+ 7
290
+ ];
291
+ case 13:
292
+ multiVersionPkgs = {};
293
+ singleVersionPackages = [];
294
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
295
+ try {
296
+ for (_iterator1 = Object.values(tracedPackages)[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
297
+ tracedPackage1 = _step1.value;
298
+ versions = Object.keys(tracedPackage1.versions);
299
+ if (versions.length === 1) {
300
+ singleVersionPackages.push(tracedPackage1.name);
301
+ continue;
302
+ }
303
+ multiVersionPkgs[tracedPackage1.name] = {};
304
+ _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
305
+ try {
306
+ for (_iterator2 = versions[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
307
+ version = _step2.value;
308
+ multiVersionPkgs[tracedPackage1.name][version] = findPackageParents(tracedPackage1, version, tracedFiles);
309
+ }
310
+ } catch (err2) {
311
+ _didIteratorError2 = true;
312
+ _iteratorError2 = err2;
313
+ } finally {
314
+ try {
315
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
316
+ _iterator2.return();
317
+ }
318
+ } finally {
319
+ if (_didIteratorError2) {
320
+ throw _iteratorError2;
321
+ }
322
+ }
323
+ }
324
+ }
325
+ } catch (err2) {
326
+ _didIteratorError1 = true;
327
+ _iteratorError1 = err2;
328
+ } finally {
329
+ try {
330
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
331
+ _iterator1.return();
332
+ }
333
+ } finally {
334
+ if (_didIteratorError1) {
335
+ throw _iteratorError1;
336
+ }
337
+ }
338
+ }
339
+ return [
340
+ 4,
341
+ Promise.all(singleVersionPackages.map(function(pkgName2) {
342
+ var pkg = tracedPackages[pkgName2];
343
+ var version2 = Object.keys(pkg.versions)[0];
344
+ return writePackage({
345
+ pkg,
346
+ version: version2,
347
+ projectDir: serverRootDir
348
+ });
349
+ }))
350
+ ];
351
+ case 14:
352
+ _state.sent();
353
+ return [
354
+ 4,
355
+ readPackageJSON(serverRootDir).catch(function() {
356
+ return {};
357
+ })
358
+ ];
359
+ case 15:
360
+ projectPkgJson = _state.sent();
361
+ _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
362
+ _state.label = 16;
363
+ case 16:
364
+ _state.trys.push([
365
+ 16,
366
+ 21,
367
+ 22,
368
+ 23
369
+ ]);
370
+ _loop = function() {
371
+ var _step_value, pkgName2, pkgVersions, versionEntires, _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, _step_value1, version2, parentPkgs, pkg, pkgDestPath, _iteratorNormalCompletion12, _didIteratorError12, _iteratorError12, _iterator12, _step12, parentPkg, parentPkgName, err2, err2;
372
+ return _ts_generator(this, function(_state2) {
373
+ switch (_state2.label) {
374
+ case 0:
375
+ _step_value = _sliced_to_array(_step3.value, 2), pkgName2 = _step_value[0], pkgVersions = _step_value[1];
376
+ versionEntires = Object.entries(pkgVersions).sort(function(param2, param1) {
377
+ var _param = _sliced_to_array(param2, 2), v1 = _param[0], p1 = _param[1], _param1 = _sliced_to_array(param1, 2), v2 = _param1[0], p2 = _param1[1];
378
+ var _tracedPackages_pkgName_versions_v1, _tracedPackages_pkgName_versions, _tracedPackages_pkgName, _tracedPackages_pkgName_versions_v2, _tracedPackages_pkgName_versions1, _tracedPackages_pkgName1;
379
+ var shouldHoist1 = (_tracedPackages_pkgName = tracedPackages[pkgName2]) === null || _tracedPackages_pkgName === void 0 ? void 0 : (_tracedPackages_pkgName_versions = _tracedPackages_pkgName.versions) === null || _tracedPackages_pkgName_versions === void 0 ? void 0 : (_tracedPackages_pkgName_versions_v1 = _tracedPackages_pkgName_versions[v1]) === null || _tracedPackages_pkgName_versions_v1 === void 0 ? void 0 : _tracedPackages_pkgName_versions_v1.isDirectDep;
380
+ var shouldHoist2 = (_tracedPackages_pkgName1 = tracedPackages[pkgName2]) === null || _tracedPackages_pkgName1 === void 0 ? void 0 : (_tracedPackages_pkgName_versions1 = _tracedPackages_pkgName1.versions) === null || _tracedPackages_pkgName_versions1 === void 0 ? void 0 : (_tracedPackages_pkgName_versions_v2 = _tracedPackages_pkgName_versions1[v2]) === null || _tracedPackages_pkgName_versions_v2 === void 0 ? void 0 : _tracedPackages_pkgName_versions_v2.isDirectDep;
381
+ if (shouldHoist1 && !shouldHoist2) {
382
+ return -1;
383
+ }
384
+ if (!shouldHoist1 && shouldHoist2) {
385
+ return 1;
386
+ }
387
+ if (p1.length === 0) {
388
+ return -1;
389
+ }
390
+ if (p2.length === 0) {
391
+ return 1;
392
+ }
393
+ return semver.lt(v1, v2, {
394
+ loose: true
395
+ }) ? 1 : -1;
396
+ });
397
+ _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;
398
+ _state2.label = 1;
399
+ case 1:
400
+ _state2.trys.push([
401
+ 1,
402
+ 14,
403
+ 15,
404
+ 16
405
+ ]);
406
+ _iterator4 = versionEntires[Symbol.iterator]();
407
+ _state2.label = 2;
408
+ case 2:
409
+ if (!!(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done))
410
+ return [
411
+ 3,
412
+ 13
413
+ ];
414
+ _step_value1 = _sliced_to_array(_step4.value, 2), version2 = _step_value1[0], parentPkgs = _step_value1[1];
415
+ pkg = tracedPackages[pkgName2];
416
+ pkgDestPath = ".modernjs/".concat(pkgName2, "@").concat(version2, "/node_modules/").concat(pkgName2);
417
+ return [
418
+ 4,
419
+ writePackage({
420
+ pkg,
421
+ version: version2,
422
+ projectDir: serverRootDir,
423
+ _pkgPath: pkgDestPath
424
+ })
425
+ ];
426
+ case 3:
427
+ _state2.sent();
428
+ return [
429
+ 4,
430
+ linkPackage(pkgDestPath, "".concat(pkgName2), serverRootDir)
431
+ ];
432
+ case 4:
433
+ _state2.sent();
434
+ _iteratorNormalCompletion12 = true, _didIteratorError12 = false, _iteratorError12 = void 0;
435
+ _state2.label = 5;
436
+ case 5:
437
+ _state2.trys.push([
438
+ 5,
439
+ 10,
440
+ 11,
441
+ 12
442
+ ]);
443
+ _iterator12 = parentPkgs[Symbol.iterator]();
444
+ _state2.label = 6;
445
+ case 6:
446
+ if (!!(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done))
447
+ return [
448
+ 3,
449
+ 9
450
+ ];
451
+ parentPkg = _step12.value;
452
+ parentPkgName = parentPkg.replace(/@[^@]+$/, "");
453
+ return [
454
+ 4,
455
+ multiVersionPkgs[parentPkgName] ? linkPackage(pkgDestPath, ".modernjs/".concat(parentPkg, "/node_modules/").concat(pkgName2), serverRootDir) : linkPackage(pkgDestPath, "".concat(parentPkgName, "/node_modules/").concat(pkgName2), serverRootDir)
456
+ ];
457
+ case 7:
458
+ _state2.sent();
459
+ _state2.label = 8;
460
+ case 8:
461
+ _iteratorNormalCompletion12 = true;
462
+ return [
463
+ 3,
464
+ 6
465
+ ];
466
+ case 9:
467
+ return [
468
+ 3,
469
+ 12
470
+ ];
471
+ case 10:
472
+ err2 = _state2.sent();
473
+ _didIteratorError12 = true;
474
+ _iteratorError12 = err2;
475
+ return [
476
+ 3,
477
+ 12
478
+ ];
479
+ case 11:
480
+ try {
481
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
482
+ _iterator12.return();
483
+ }
484
+ } finally {
485
+ if (_didIteratorError12) {
486
+ throw _iteratorError12;
487
+ }
488
+ }
489
+ return [
490
+ 7
491
+ ];
492
+ case 12:
493
+ _iteratorNormalCompletion4 = true;
494
+ return [
495
+ 3,
496
+ 2
497
+ ];
498
+ case 13:
499
+ return [
500
+ 3,
501
+ 16
502
+ ];
503
+ case 14:
504
+ err2 = _state2.sent();
505
+ _didIteratorError4 = true;
506
+ _iteratorError4 = err2;
507
+ return [
508
+ 3,
509
+ 16
510
+ ];
511
+ case 15:
512
+ try {
513
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
514
+ _iterator4.return();
515
+ }
516
+ } finally {
517
+ if (_didIteratorError4) {
518
+ throw _iteratorError4;
519
+ }
520
+ }
521
+ return [
522
+ 7
523
+ ];
524
+ case 16:
525
+ return [
526
+ 2
527
+ ];
528
+ }
529
+ });
530
+ };
531
+ _iterator3 = Object.entries(multiVersionPkgs)[Symbol.iterator]();
532
+ _state.label = 17;
533
+ case 17:
534
+ if (!!(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done))
535
+ return [
536
+ 3,
537
+ 20
538
+ ];
539
+ return [
540
+ 5,
541
+ _ts_values(_loop())
542
+ ];
543
+ case 18:
544
+ _state.sent();
545
+ _state.label = 19;
546
+ case 19:
547
+ _iteratorNormalCompletion3 = true;
548
+ return [
549
+ 3,
550
+ 17
551
+ ];
552
+ case 20:
553
+ return [
554
+ 3,
555
+ 23
556
+ ];
557
+ case 21:
558
+ err = _state.sent();
559
+ _didIteratorError3 = true;
560
+ _iteratorError3 = err;
561
+ return [
562
+ 3,
563
+ 23
564
+ ];
565
+ case 22:
566
+ try {
567
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
568
+ _iterator3.return();
569
+ }
570
+ } finally {
571
+ if (_didIteratorError3) {
572
+ throw _iteratorError3;
573
+ }
574
+ }
575
+ return [
576
+ 7
577
+ ];
578
+ case 23:
579
+ outputPkgPath = path.join(serverRootDir, "package.json");
580
+ newPkgJson = {
581
+ name: "".concat(projectPkgJson.name || "modernjs-project", "-prod"),
582
+ version: projectPkgJson.version || "0.0.0",
583
+ private: true,
584
+ type: projectPkgJson.type || "commonjs",
585
+ dependencies: Object.fromEntries(_to_consumable_array(Object.values(tracedPackages).map(function(pkg) {
586
+ return [
587
+ pkg.name,
588
+ Object.keys(pkg.versions)[0]
589
+ ];
590
+ })).sort(function(param2, param1) {
591
+ var _param = _sliced_to_array(param2, 1), a = _param[0], _param1 = _sliced_to_array(param1, 1), b = _param1[0];
592
+ return a.localeCompare(b);
593
+ }))
594
+ };
595
+ finalPkgJson = (modifyPackageJson === null || modifyPackageJson === void 0 ? void 0 : modifyPackageJson(newPkgJson)) || newPkgJson;
596
+ return [
597
+ 4,
598
+ fse.writeJSON(outputPkgPath, finalPkgJson)
599
+ ];
600
+ case 24:
601
+ _state.sent();
602
+ return [
603
+ 2
604
+ ];
605
+ }
606
+ });
607
+ });
608
+ return function handleDependencies2(_) {
609
+ return _ref.apply(this, arguments);
610
+ };
611
+ }();
612
+ export {
613
+ handleDependencies,
614
+ nodeFileTrace
615
+ };