@unpackjs/core 2.4.1 → 2.4.2

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 (195) hide show
  1. package/dist/index.cjs +2028 -196
  2. package/dist/index.js +1876 -39
  3. package/dist/lightningcssLoader.mjs +18 -0
  4. package/dist/typedCssModulesLoader.mjs +139 -0
  5. package/{dist → dist-types}/bundler-config/cache.d.ts +1 -1
  6. package/dist-types/bundler-config/cache.d.ts.map +1 -0
  7. package/{dist → dist-types}/bundler-config/chunkSplit.d.ts +1 -1
  8. package/dist-types/bundler-config/chunkSplit.d.ts.map +1 -0
  9. package/{dist → dist-types}/bundler-config/css.d.ts +1 -1
  10. package/dist-types/bundler-config/css.d.ts.map +1 -0
  11. package/{dist → dist-types}/bundler-config/experimentCss.d.ts +1 -1
  12. package/dist-types/bundler-config/experimentCss.d.ts.map +1 -0
  13. package/{dist → dist-types}/bundler-config/index.d.ts +1 -1
  14. package/dist-types/bundler-config/index.d.ts.map +1 -0
  15. package/{dist/lightningcss/loader.d.ts → dist-types/bundler-config/loaders/lightningcssLoader.d.ts} +2 -2
  16. package/dist-types/bundler-config/loaders/lightningcssLoader.d.ts.map +1 -0
  17. package/dist-types/bundler-config/loaders/typedCssModulesLoader.d.ts +6 -0
  18. package/dist-types/bundler-config/loaders/typedCssModulesLoader.d.ts.map +1 -0
  19. package/{dist/bundler-config → dist-types/bundler-config/plugins}/jsMinify.d.ts +1 -1
  20. package/dist-types/bundler-config/plugins/jsMinify.d.ts.map +1 -0
  21. package/{dist/lightningcss/minimizer.d.ts → dist-types/bundler-config/plugins/lightningcssMinify.d.ts} +2 -3
  22. package/dist-types/bundler-config/plugins/lightningcssMinify.d.ts.map +1 -0
  23. package/{dist/bundler-config/oxlint/plugin.d.ts → dist-types/bundler-config/plugins/oxlint/index.d.ts} +1 -1
  24. package/dist-types/bundler-config/plugins/oxlint/index.d.ts.map +1 -0
  25. package/dist-types/bundler-config/plugins/progress/helpers.d.ts.map +1 -0
  26. package/{dist/bundler-config → dist-types/bundler-config/plugins}/progress/rspack.d.ts +1 -1
  27. package/dist-types/bundler-config/plugins/progress/rspack.d.ts.map +1 -0
  28. package/{dist/bundler-config → dist-types/bundler-config/plugins}/progress/webpack.d.ts +1 -1
  29. package/dist-types/bundler-config/plugins/progress/webpack.d.ts.map +1 -0
  30. package/{dist/typed-css-modules/plugin.d.ts → dist-types/bundler-config/plugins/typedCssModules.d.ts} +2 -2
  31. package/dist-types/bundler-config/plugins/typedCssModules.d.ts.map +1 -0
  32. package/{dist → dist-types}/config.d.ts +1 -1
  33. package/dist-types/config.d.ts.map +1 -0
  34. package/{dist → dist-types}/createUnpack.d.ts +1 -1
  35. package/{dist → dist-types}/createUnpack.d.ts.map +1 -1
  36. package/{dist → dist-types}/index.d.ts +1 -1
  37. package/{dist → dist-types}/index.d.ts.map +1 -1
  38. package/dist-types/logger.d.ts +3 -0
  39. package/{dist → dist-types}/logger.d.ts.map +1 -1
  40. package/{dist → dist-types}/plugin.d.ts +1 -1
  41. package/{dist → dist-types}/plugin.d.ts.map +1 -1
  42. package/dist-types/run/build.d.ts +3 -0
  43. package/{dist → dist-types}/run/build.d.ts.map +1 -1
  44. package/{dist → dist-types}/run/dev.d.ts +1 -1
  45. package/{dist → dist-types}/run/dev.d.ts.map +1 -1
  46. package/{dist → dist-types}/types/config.d.ts +1 -1
  47. package/{dist → dist-types}/types/config.d.ts.map +1 -1
  48. package/{dist → dist-types}/types/index.d.ts +1 -0
  49. package/{dist → dist-types}/types/index.d.ts.map +1 -1
  50. package/{dist → dist-types}/utils.d.ts +5 -1
  51. package/dist-types/utils.d.ts.map +1 -0
  52. package/package.json +6 -37
  53. package/dist/bundler-config/cache.cjs +0 -114
  54. package/dist/bundler-config/cache.d.ts.map +0 -1
  55. package/dist/bundler-config/cache.js +0 -72
  56. package/dist/bundler-config/chunkSplit.cjs +0 -192
  57. package/dist/bundler-config/chunkSplit.d.ts.map +0 -1
  58. package/dist/bundler-config/chunkSplit.js +0 -150
  59. package/dist/bundler-config/css.cjs +0 -189
  60. package/dist/bundler-config/css.d.ts.map +0 -1
  61. package/dist/bundler-config/css.js +0 -149
  62. package/dist/bundler-config/experimentCss.cjs +0 -214
  63. package/dist/bundler-config/experimentCss.d.ts.map +0 -1
  64. package/dist/bundler-config/experimentCss.js +0 -175
  65. package/dist/bundler-config/helpers.cjs +0 -77
  66. package/dist/bundler-config/helpers.js +0 -31
  67. package/dist/bundler-config/index.cjs +0 -309
  68. package/dist/bundler-config/index.d.ts.map +0 -1
  69. package/dist/bundler-config/index.js +0 -262
  70. package/dist/bundler-config/jsMinify.cjs +0 -113
  71. package/dist/bundler-config/jsMinify.d.ts.map +0 -1
  72. package/dist/bundler-config/jsMinify.js +0 -71
  73. package/dist/bundler-config/oxlint/plugin.cjs +0 -143
  74. package/dist/bundler-config/oxlint/plugin.d.ts.map +0 -1
  75. package/dist/bundler-config/oxlint/plugin.js +0 -104
  76. package/dist/bundler-config/progress/helpers.cjs +0 -126
  77. package/dist/bundler-config/progress/helpers.d.ts.map +0 -1
  78. package/dist/bundler-config/progress/helpers.js +0 -81
  79. package/dist/bundler-config/progress/rspack.cjs +0 -70
  80. package/dist/bundler-config/progress/rspack.d.ts.map +0 -1
  81. package/dist/bundler-config/progress/rspack.js +0 -38
  82. package/dist/bundler-config/progress/webpack.cjs +0 -87
  83. package/dist/bundler-config/progress/webpack.d.ts.map +0 -1
  84. package/dist/bundler-config/progress/webpack.js +0 -45
  85. package/dist/colors.cjs +0 -82
  86. package/dist/colors.js +0 -40
  87. package/dist/config.cjs +0 -148
  88. package/dist/config.d.ts.map +0 -1
  89. package/dist/config.js +0 -101
  90. package/dist/constants.cjs +0 -122
  91. package/dist/constants.js +0 -51
  92. package/dist/createUnpack.cjs +0 -107
  93. package/dist/createUnpack.js +0 -75
  94. package/dist/fs.cjs +0 -91
  95. package/dist/fs.js +0 -34
  96. package/dist/global.cjs +0 -36
  97. package/dist/global.js +0 -4
  98. package/dist/lightningcss/loader.cjs +0 -57
  99. package/dist/lightningcss/loader.d.ts.map +0 -1
  100. package/dist/lightningcss/loader.js +0 -25
  101. package/dist/lightningcss/minimizer.cjs +0 -94
  102. package/dist/lightningcss/minimizer.d.ts.map +0 -1
  103. package/dist/lightningcss/minimizer.js +0 -59
  104. package/dist/loadEnv.cjs +0 -122
  105. package/dist/loadEnv.js +0 -80
  106. package/dist/loadingAnimation.cjs +0 -76
  107. package/dist/loadingAnimation.js +0 -44
  108. package/dist/logger.cjs +0 -116
  109. package/dist/logger.d.ts +0 -3
  110. package/dist/logger.js +0 -74
  111. package/dist/openBrowser.cjs +0 -89
  112. package/dist/openBrowser.js +0 -49
  113. package/dist/plugin.cjs +0 -42
  114. package/dist/plugin.js +0 -10
  115. package/dist/prebundleDeps.cjs +0 -349
  116. package/dist/prebundleDeps.js +0 -303
  117. package/dist/progressBar.cjs +0 -66
  118. package/dist/progressBar.js +0 -34
  119. package/dist/reporter.cjs +0 -164
  120. package/dist/reporter.js +0 -120
  121. package/dist/run/build.cjs +0 -68
  122. package/dist/run/build.d.ts +0 -3
  123. package/dist/run/build.js +0 -26
  124. package/dist/run/dev.cjs +0 -118
  125. package/dist/run/dev.js +0 -75
  126. package/dist/run/index.cjs +0 -69
  127. package/dist/run/index.js +0 -4
  128. package/dist/typed-css-modules/loader.cjs +0 -141
  129. package/dist/typed-css-modules/loader.d.ts +0 -8
  130. package/dist/typed-css-modules/loader.d.ts.map +0 -1
  131. package/dist/typed-css-modules/loader.js +0 -92
  132. package/dist/typed-css-modules/plugin.cjs +0 -118
  133. package/dist/typed-css-modules/plugin.d.ts.map +0 -1
  134. package/dist/typed-css-modules/plugin.js +0 -75
  135. package/dist/typed-css-modules/utils.cjs +0 -46
  136. package/dist/typed-css-modules/utils.d.ts +0 -6
  137. package/dist/typed-css-modules/utils.d.ts.map +0 -1
  138. package/dist/typed-css-modules/utils.js +0 -14
  139. package/dist/types/chunkSplit.cjs +0 -18
  140. package/dist/types/chunkSplit.js +0 -2
  141. package/dist/types/config.cjs +0 -18
  142. package/dist/types/config.js +0 -2
  143. package/dist/types/index.cjs +0 -96
  144. package/dist/types/index.js +0 -7
  145. package/dist/types/lightningcss.cjs +0 -18
  146. package/dist/types/lightningcss.js +0 -2
  147. package/dist/types/logger.cjs +0 -45
  148. package/dist/types/logger.js +0 -13
  149. package/dist/types/oxc.cjs +0 -18
  150. package/dist/types/oxc.js +0 -2
  151. package/dist/types/plugin.cjs +0 -18
  152. package/dist/types/plugin.js +0 -2
  153. package/dist/utils.cjs +0 -346
  154. package/dist/utils.d.ts.map +0 -1
  155. package/dist/utils.js +0 -204
  156. package/dist/watchFiles.cjs +0 -69
  157. package/dist/watchFiles.js +0 -27
  158. /package/dist/{bundler-config/oxlint/.oxlintrc.json → .oxlintrc.json} +0 -0
  159. /package/{dist → dist-types}/bundler-config/helpers.d.ts +0 -0
  160. /package/{dist → dist-types}/bundler-config/helpers.d.ts.map +0 -0
  161. /package/{dist/bundler-config → dist-types/bundler-config/plugins}/progress/helpers.d.ts +0 -0
  162. /package/{dist → dist-types}/colors.d.ts +0 -0
  163. /package/{dist → dist-types}/colors.d.ts.map +0 -0
  164. /package/{dist → dist-types}/constants.d.ts +0 -0
  165. /package/{dist → dist-types}/constants.d.ts.map +0 -0
  166. /package/{dist → dist-types}/fs.d.ts +0 -0
  167. /package/{dist → dist-types}/fs.d.ts.map +0 -0
  168. /package/{dist → dist-types}/global.d.ts +0 -0
  169. /package/{dist → dist-types}/global.d.ts.map +0 -0
  170. /package/{dist → dist-types}/loadEnv.d.ts +0 -0
  171. /package/{dist → dist-types}/loadEnv.d.ts.map +0 -0
  172. /package/{dist → dist-types}/loadingAnimation.d.ts +0 -0
  173. /package/{dist → dist-types}/loadingAnimation.d.ts.map +0 -0
  174. /package/{dist → dist-types}/openBrowser.d.ts +0 -0
  175. /package/{dist → dist-types}/openBrowser.d.ts.map +0 -0
  176. /package/{dist → dist-types}/prebundleDeps.d.ts +0 -0
  177. /package/{dist → dist-types}/prebundleDeps.d.ts.map +0 -0
  178. /package/{dist → dist-types}/progressBar.d.ts +0 -0
  179. /package/{dist → dist-types}/progressBar.d.ts.map +0 -0
  180. /package/{dist → dist-types}/reporter.d.ts +0 -0
  181. /package/{dist → dist-types}/reporter.d.ts.map +0 -0
  182. /package/{dist → dist-types}/run/index.d.ts +0 -0
  183. /package/{dist → dist-types}/run/index.d.ts.map +0 -0
  184. /package/{dist → dist-types}/types/chunkSplit.d.ts +0 -0
  185. /package/{dist → dist-types}/types/chunkSplit.d.ts.map +0 -0
  186. /package/{dist → dist-types}/types/lightningcss.d.ts +0 -0
  187. /package/{dist → dist-types}/types/lightningcss.d.ts.map +0 -0
  188. /package/{dist → dist-types}/types/logger.d.ts +0 -0
  189. /package/{dist → dist-types}/types/logger.d.ts.map +0 -0
  190. /package/{dist → dist-types}/types/oxc.d.ts +0 -0
  191. /package/{dist → dist-types}/types/oxc.d.ts.map +0 -0
  192. /package/{dist → dist-types}/types/plugin.d.ts +0 -0
  193. /package/{dist → dist-types}/types/plugin.d.ts.map +0 -0
  194. /package/{dist → dist-types}/watchFiles.d.ts +0 -0
  195. /package/{dist → dist-types}/watchFiles.d.ts.map +0 -0
@@ -1,349 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.n = (module)=>{
5
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
- __webpack_require__.d(getter, {
7
- a: getter
8
- });
9
- return getter;
10
- };
11
- })();
12
- (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
18
- };
19
- })();
20
- (()=>{
21
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
- })();
23
- (()=>{
24
- __webpack_require__.r = (exports1)=>{
25
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
- value: 'Module'
27
- });
28
- Object.defineProperty(exports1, '__esModule', {
29
- value: true
30
- });
31
- };
32
- })();
33
- var __webpack_exports__ = {};
34
- __webpack_require__.r(__webpack_exports__);
35
- __webpack_require__.d(__webpack_exports__, {
36
- prebundleDeps: ()=>prebundleDeps
37
- });
38
- const external_node_fs_namespaceObject = require("node:fs");
39
- var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
40
- const external_node_path_namespaceObject = require("node:path");
41
- var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
42
- const core_namespaceObject = require("@rspack/core");
43
- const external_cors_namespaceObject = require("cors");
44
- var external_cors_default = /*#__PURE__*/ __webpack_require__.n(external_cors_namespaceObject);
45
- const external_express_namespaceObject = require("express");
46
- var external_express_default = /*#__PURE__*/ __webpack_require__.n(external_express_namespaceObject);
47
- const external_html_webpack_plugin_namespaceObject = require("html-webpack-plugin");
48
- var external_html_webpack_plugin_default = /*#__PURE__*/ __webpack_require__.n(external_html_webpack_plugin_namespaceObject);
49
- const external_tinyglobby_namespaceObject = require("tinyglobby");
50
- const external_colors_cjs_namespaceObject = require("./colors.cjs");
51
- const external_constants_cjs_namespaceObject = require("./constants.cjs");
52
- const external_fs_cjs_namespaceObject = require("./fs.cjs");
53
- const external_global_cjs_namespaceObject = require("./global.cjs");
54
- const external_logger_cjs_namespaceObject = require("./logger.cjs");
55
- const external_utils_cjs_namespaceObject = require("./utils.cjs");
56
- const CACHE_DIR = 'umd';
57
- const FAILED_DEPS_CACHE_FILE = 'failed-deps.json';
58
- const getFailedDepsCache = (failedDepsCachePath)=>{
59
- if (external_node_fs_default().existsSync(failedDepsCachePath)) return JSON.parse(external_node_fs_default().readFileSync(failedDepsCachePath, 'utf-8'));
60
- return {};
61
- };
62
- const saveFailedDepsCache = (failedDepsCachePath, cache)=>{
63
- const cacheDir = external_node_path_default().dirname(failedDepsCachePath);
64
- if (!external_node_fs_default().existsSync(cacheDir)) external_node_fs_default().mkdirSync(cacheDir, {
65
- recursive: true
66
- });
67
- external_node_fs_default().writeFileSync(failedDepsCachePath, JSON.stringify(cache, null, 2), 'utf-8');
68
- };
69
- const getExternalLibraryName = (pkgName)=>{
70
- const externalAlias = {
71
- react: 'React',
72
- 'react-dom': 'ReactDOM',
73
- 'react-router-dom': 'ReactRouterDOM'
74
- };
75
- return externalAlias[pkgName] || pkgName;
76
- };
77
- const getExternalValue = (pkgName)=>`window ${getExternalLibraryName(pkgName)}`;
78
- const getExistExternals = (externals)=>{
79
- const existExternals = new Set();
80
- if (Array.isArray(externals)) externals.forEach((item)=>{
81
- if ((0, external_utils_cjs_namespaceObject.isPlainObject)(item)) Object.keys(item).forEach((key)=>existExternals.add(key));
82
- });
83
- else if ((0, external_utils_cjs_namespaceObject.isPlainObject)(externals)) Object.keys(externals).forEach((key)=>existExternals.add(key));
84
- return Array.from(existExternals);
85
- };
86
- const getPkgEntry = (packageJson)=>{
87
- if (packageJson.module) return packageJson.module;
88
- if (packageJson.exports) {
89
- if ((0, external_utils_cjs_namespaceObject.isString)(packageJson.exports)) return packageJson.exports;
90
- const defaultExport = packageJson.exports['.'];
91
- if (defaultExport) {
92
- if ((0, external_utils_cjs_namespaceObject.isString)(defaultExport)) return defaultExport;
93
- if ((0, external_utils_cjs_namespaceObject.isString)(defaultExport.import)) return defaultExport.import;
94
- if ((0, external_utils_cjs_namespaceObject.isString)(defaultExport.browser)) return defaultExport.browser;
95
- if ((0, external_utils_cjs_namespaceObject.isString)(defaultExport.default)) return defaultExport.default;
96
- }
97
- if ((0, external_utils_cjs_namespaceObject.isString)(packageJson.exports.default)) return packageJson.exports.default;
98
- }
99
- if (packageJson.main) return packageJson.main;
100
- };
101
- const prebundleDeps = async ({ unpackConfig })=>{
102
- var _unpackConfig_dev;
103
- const count = {
104
- total: 0,
105
- bundled: 0
106
- };
107
- const failedDeps = [];
108
- const root = unpackConfig.root;
109
- const failedDepsCachePath = external_node_path_default().resolve(root, external_constants_cjs_namespaceObject.TEMP_DIR, FAILED_DEPS_CACHE_FILE);
110
- const failedCache = getFailedDepsCache(failedDepsCachePath);
111
- const updateProgress = ()=>{
112
- (0, external_utils_cjs_namespaceObject.logUpdate)(`${external_colors_cjs_namespaceObject.colors.magenta("\xbb")} optimizing dependencies (${count.bundled}/${count.total})`);
113
- if (count.total === count.bundled + failedDeps.length) console.log();
114
- };
115
- const bundleDep = ({ name, entry, version })=>new Promise((resolve)=>{
116
- const pkgDir = external_node_path_default().resolve(root, external_constants_cjs_namespaceObject.TEMP_DIR, CACHE_DIR, name);
117
- const outDir = external_node_path_default().resolve(pkgDir, version);
118
- const getResult = ()=>{
119
- const assets = (0, external_tinyglobby_namespaceObject.globSync)('**/index.{js,css}', {
120
- cwd: outDir,
121
- absolute: true
122
- });
123
- return {
124
- name,
125
- assets
126
- };
127
- };
128
- if (external_node_fs_default().existsSync(outDir)) return void resolve(getResult());
129
- count.total++;
130
- updateProgress();
131
- const getSwcOptions = ({ tsx })=>({
132
- jsc: {
133
- parser: {
134
- tsx,
135
- syntax: "typescript",
136
- dynamicImport: true,
137
- decorators: true
138
- },
139
- transform: {
140
- react: {
141
- runtime: 'automatic'
142
- }
143
- }
144
- }
145
- });
146
- const compiler = (0, core_namespaceObject.rspack)({
147
- entry: {
148
- index: entry
149
- },
150
- context: root,
151
- mode: 'development',
152
- output: {
153
- clean: true,
154
- path: outDir,
155
- pathinfo: false,
156
- library: {
157
- name: getExternalLibraryName(name),
158
- type: 'umd',
159
- umdNamedDefine: true
160
- },
161
- globalObject: 'this'
162
- },
163
- devtool: false,
164
- module: {
165
- rules: [
166
- {
167
- test: /\.(j|t)s$/,
168
- use: [
169
- {
170
- loader: 'builtin:swc-loader',
171
- options: getSwcOptions({
172
- tsx: false
173
- })
174
- }
175
- ]
176
- },
177
- {
178
- test: /\.(j|t)sx$/,
179
- use: [
180
- {
181
- loader: 'builtin:swc-loader',
182
- options: getSwcOptions({
183
- tsx: true
184
- })
185
- }
186
- ]
187
- },
188
- {
189
- test: /\.less$/,
190
- type: 'css/auto',
191
- use: [
192
- {
193
- loader: (0, external_utils_cjs_namespaceObject.getCompiledPkgPath)('less-loader'),
194
- options: {
195
- lessOptions: {
196
- javascriptEnabled: true
197
- },
198
- implementation: (0, external_utils_cjs_namespaceObject.getUserDepPath)(root, 'less')
199
- }
200
- }
201
- ]
202
- },
203
- {
204
- test: /\.s[ac]ss$/i,
205
- type: 'css/auto',
206
- use: [
207
- {
208
- loader: (0, external_utils_cjs_namespaceObject.getCompiledPkgPath)('sass-loader'),
209
- options: {
210
- api: 'modern-compiler',
211
- implementation: (0, external_utils_cjs_namespaceObject.getUserDepPath)(root, [
212
- 'sass-embedded',
213
- 'sass'
214
- ])
215
- }
216
- }
217
- ]
218
- }
219
- ]
220
- },
221
- optimization: {
222
- splitChunks: false
223
- },
224
- experiments: {
225
- css: true
226
- },
227
- externals: {
228
- react: getExternalValue('react'),
229
- 'react-dom': getExternalValue('react-dom'),
230
- 'react-router-dom': getExternalValue('react-router-dom')
231
- }
232
- });
233
- compiler.run((_, stats)=>{
234
- let isFailed = false;
235
- if (null == stats ? void 0 : stats.hasErrors()) {
236
- isFailed = true;
237
- failedDeps.push(name);
238
- failedCache[name] = version;
239
- (0, external_fs_cjs_namespaceObject.removeDir)(outDir);
240
- } else count.bundled++;
241
- updateProgress();
242
- compiler.close(()=>{
243
- resolve(isFailed ? void 0 : getResult());
244
- });
245
- });
246
- });
247
- const userOptions = (0, external_utils_cjs_namespaceObject.isPlainObject)(null == (_unpackConfig_dev = unpackConfig.dev) ? void 0 : _unpackConfig_dev.prebundle) ? unpackConfig.dev.prebundle : {};
248
- const ignoreCSSDeps = userOptions.ignoreCSS || [];
249
- const packageJson = JSON.parse(external_node_fs_default().readFileSync(external_node_path_default().resolve(root, 'package.json'), 'utf-8'));
250
- const existExternals = getExistExternals(unpackConfig.externals);
251
- const excludeDeps = [
252
- ...existExternals || [],
253
- ...userOptions.exclude || []
254
- ];
255
- const shouldIncludeDeps = Object.keys(packageJson.dependencies).filter((pkgName)=>!excludeDeps.includes(pkgName));
256
- const noEntryDeps = [];
257
- const needBundleDeps = shouldIncludeDeps.map((pkgName)=>{
258
- const packageJson = JSON.parse(external_node_fs_default().readFileSync(external_node_path_default().resolve(root, 'node_modules', pkgName, 'package.json'), 'utf-8'));
259
- const version = packageJson.version;
260
- if (failedCache[pkgName] === version) return;
261
- const entry = getPkgEntry(packageJson);
262
- if (!entry) {
263
- noEntryDeps.push(pkgName);
264
- failedCache[pkgName] = version;
265
- return;
266
- }
267
- return {
268
- name: pkgName,
269
- entry: external_node_path_default().resolve(root, 'node_modules', pkgName, entry),
270
- version
271
- };
272
- }).filter(Boolean);
273
- const bundledDeps = await Promise.all(needBundleDeps.map((depInfo)=>bundleDep(depInfo)));
274
- saveFailedDepsCache(failedDepsCachePath, failedCache);
275
- if (failedDeps[0]) external_logger_cjs_namespaceObject.logger.warn(`something went wrong while optimizing "${external_colors_cjs_namespaceObject.colors.bold(failedDeps.join(', '))}"`);
276
- const cachePath = external_node_path_default().resolve(root, external_constants_cjs_namespaceObject.TEMP_DIR, CACHE_DIR);
277
- const app = external_express_default()();
278
- app.use(external_cors_default()());
279
- app.use(`/${CACHE_DIR}`, external_express_default()["static"](cachePath));
280
- const port = await (0, external_utils_cjs_namespaceObject.getPort)();
281
- const staticServer = app.listen(port, ()=>{});
282
- external_global_cjs_namespaceObject.restartCleaners.push(()=>new Promise((resolve)=>staticServer.close(()=>resolve())));
283
- const externals = {};
284
- const jsAssets = [];
285
- const cssAssets = [];
286
- const preJsAssets = [];
287
- bundledDeps.filter(Boolean).forEach((dep)=>{
288
- if (!dep) return;
289
- externals[dep.name] = getExternalValue(dep.name);
290
- dep.assets.forEach((absPath)=>{
291
- const relativePath = external_node_path_default().relative(cachePath, absPath);
292
- const preDeps = [
293
- 'react',
294
- 'react-dom',
295
- 'react-router-dom'
296
- ];
297
- const serverPath = `//localhost:${port}/${CACHE_DIR}/${relativePath}`;
298
- switch(external_node_path_default().extname(relativePath)){
299
- case '.js':
300
- if (preDeps.includes(dep.name)) preJsAssets.push({
301
- path: serverPath,
302
- order: preDeps.indexOf(dep.name)
303
- });
304
- else jsAssets.push(serverPath);
305
- break;
306
- case '.css':
307
- if (!ignoreCSSDeps.includes(dep.name)) cssAssets.push(serverPath);
308
- break;
309
- default:
310
- break;
311
- }
312
- });
313
- });
314
- unpackConfig.externals = Array.isArray(unpackConfig.externals) ? [
315
- externals,
316
- ...unpackConfig.externals
317
- ] : {
318
- ...externals,
319
- ...unpackConfig.externals
320
- };
321
- const HtmlPlugin = 'rspack' === unpackConfig.bundler ? core_namespaceObject.rspack.HtmlRspackPlugin : external_html_webpack_plugin_default();
322
- unpackConfig.plugins.push({
323
- name: 'unpack:prebundle',
324
- bundlerConfig: (config)=>{
325
- const PLUGIN_NAME = 'PluginInjectAssets';
326
- config.plugins.push({
327
- apply: (compiler)=>{
328
- compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation)=>{
329
- HtmlPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>{
330
- const sortedPreJsAssets = preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path);
331
- args.assets.js.unshift(...sortedPreJsAssets, ...jsAssets);
332
- args.assets.css.unshift(...cssAssets);
333
- return args;
334
- });
335
- });
336
- }
337
- });
338
- return config;
339
- }
340
- });
341
- return unpackConfig;
342
- };
343
- exports.prebundleDeps = __webpack_exports__.prebundleDeps;
344
- for(var __webpack_i__ in __webpack_exports__)if (-1 === [
345
- "prebundleDeps"
346
- ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
347
- Object.defineProperty(exports, '__esModule', {
348
- value: true
349
- });
@@ -1,303 +0,0 @@
1
- import 'module';
2
- /*#__PURE__*/ import.meta.url;
3
- import node_fs from "node:fs";
4
- import node_path from "node:path";
5
- import { rspack } from "@rspack/core";
6
- import cors from "cors";
7
- import express from "express";
8
- import html_webpack_plugin from "html-webpack-plugin";
9
- import { globSync } from "tinyglobby";
10
- import { colors } from "./colors.js";
11
- import { TEMP_DIR } from "./constants.js";
12
- import { removeDir } from "./fs.js";
13
- import { restartCleaners } from "./global.js";
14
- import { logger } from "./logger.js";
15
- import { getCompiledPkgPath, getPort, getUserDepPath, isPlainObject, isString, logUpdate } from "./utils.js";
16
- const CACHE_DIR = 'umd';
17
- const FAILED_DEPS_CACHE_FILE = 'failed-deps.json';
18
- const getFailedDepsCache = (failedDepsCachePath)=>{
19
- if (node_fs.existsSync(failedDepsCachePath)) return JSON.parse(node_fs.readFileSync(failedDepsCachePath, 'utf-8'));
20
- return {};
21
- };
22
- const saveFailedDepsCache = (failedDepsCachePath, cache)=>{
23
- const cacheDir = node_path.dirname(failedDepsCachePath);
24
- if (!node_fs.existsSync(cacheDir)) node_fs.mkdirSync(cacheDir, {
25
- recursive: true
26
- });
27
- node_fs.writeFileSync(failedDepsCachePath, JSON.stringify(cache, null, 2), 'utf-8');
28
- };
29
- const getExternalLibraryName = (pkgName)=>{
30
- const externalAlias = {
31
- react: 'React',
32
- 'react-dom': 'ReactDOM',
33
- 'react-router-dom': 'ReactRouterDOM'
34
- };
35
- return externalAlias[pkgName] || pkgName;
36
- };
37
- const getExternalValue = (pkgName)=>`window ${getExternalLibraryName(pkgName)}`;
38
- const getExistExternals = (externals)=>{
39
- const existExternals = new Set();
40
- if (Array.isArray(externals)) externals.forEach((item)=>{
41
- if (isPlainObject(item)) Object.keys(item).forEach((key)=>existExternals.add(key));
42
- });
43
- else if (isPlainObject(externals)) Object.keys(externals).forEach((key)=>existExternals.add(key));
44
- return Array.from(existExternals);
45
- };
46
- const getPkgEntry = (packageJson)=>{
47
- if (packageJson.module) return packageJson.module;
48
- if (packageJson.exports) {
49
- if (isString(packageJson.exports)) return packageJson.exports;
50
- const defaultExport = packageJson.exports['.'];
51
- if (defaultExport) {
52
- if (isString(defaultExport)) return defaultExport;
53
- if (isString(defaultExport.import)) return defaultExport.import;
54
- if (isString(defaultExport.browser)) return defaultExport.browser;
55
- if (isString(defaultExport.default)) return defaultExport.default;
56
- }
57
- if (isString(packageJson.exports.default)) return packageJson.exports.default;
58
- }
59
- if (packageJson.main) return packageJson.main;
60
- };
61
- const prebundleDeps = async ({ unpackConfig })=>{
62
- var _unpackConfig_dev;
63
- const count = {
64
- total: 0,
65
- bundled: 0
66
- };
67
- const failedDeps = [];
68
- const root = unpackConfig.root;
69
- const failedDepsCachePath = node_path.resolve(root, TEMP_DIR, FAILED_DEPS_CACHE_FILE);
70
- const failedCache = getFailedDepsCache(failedDepsCachePath);
71
- const updateProgress = ()=>{
72
- logUpdate(`${colors.magenta("\xbb")} optimizing dependencies (${count.bundled}/${count.total})`);
73
- if (count.total === count.bundled + failedDeps.length) console.log();
74
- };
75
- const bundleDep = ({ name, entry, version })=>new Promise((resolve)=>{
76
- const pkgDir = node_path.resolve(root, TEMP_DIR, CACHE_DIR, name);
77
- const outDir = node_path.resolve(pkgDir, version);
78
- const getResult = ()=>{
79
- const assets = globSync('**/index.{js,css}', {
80
- cwd: outDir,
81
- absolute: true
82
- });
83
- return {
84
- name,
85
- assets
86
- };
87
- };
88
- if (node_fs.existsSync(outDir)) return void resolve(getResult());
89
- count.total++;
90
- updateProgress();
91
- const getSwcOptions = ({ tsx })=>({
92
- jsc: {
93
- parser: {
94
- tsx,
95
- syntax: "typescript",
96
- dynamicImport: true,
97
- decorators: true
98
- },
99
- transform: {
100
- react: {
101
- runtime: 'automatic'
102
- }
103
- }
104
- }
105
- });
106
- const compiler = rspack({
107
- entry: {
108
- index: entry
109
- },
110
- context: root,
111
- mode: 'development',
112
- output: {
113
- clean: true,
114
- path: outDir,
115
- pathinfo: false,
116
- library: {
117
- name: getExternalLibraryName(name),
118
- type: 'umd',
119
- umdNamedDefine: true
120
- },
121
- globalObject: 'this'
122
- },
123
- devtool: false,
124
- module: {
125
- rules: [
126
- {
127
- test: /\.(j|t)s$/,
128
- use: [
129
- {
130
- loader: 'builtin:swc-loader',
131
- options: getSwcOptions({
132
- tsx: false
133
- })
134
- }
135
- ]
136
- },
137
- {
138
- test: /\.(j|t)sx$/,
139
- use: [
140
- {
141
- loader: 'builtin:swc-loader',
142
- options: getSwcOptions({
143
- tsx: true
144
- })
145
- }
146
- ]
147
- },
148
- {
149
- test: /\.less$/,
150
- type: 'css/auto',
151
- use: [
152
- {
153
- loader: getCompiledPkgPath('less-loader'),
154
- options: {
155
- lessOptions: {
156
- javascriptEnabled: true
157
- },
158
- implementation: getUserDepPath(root, 'less')
159
- }
160
- }
161
- ]
162
- },
163
- {
164
- test: /\.s[ac]ss$/i,
165
- type: 'css/auto',
166
- use: [
167
- {
168
- loader: getCompiledPkgPath('sass-loader'),
169
- options: {
170
- api: 'modern-compiler',
171
- implementation: getUserDepPath(root, [
172
- 'sass-embedded',
173
- 'sass'
174
- ])
175
- }
176
- }
177
- ]
178
- }
179
- ]
180
- },
181
- optimization: {
182
- splitChunks: false
183
- },
184
- experiments: {
185
- css: true
186
- },
187
- externals: {
188
- react: getExternalValue('react'),
189
- 'react-dom': getExternalValue('react-dom'),
190
- 'react-router-dom': getExternalValue('react-router-dom')
191
- }
192
- });
193
- compiler.run((_, stats)=>{
194
- let isFailed = false;
195
- if (null == stats ? void 0 : stats.hasErrors()) {
196
- isFailed = true;
197
- failedDeps.push(name);
198
- failedCache[name] = version;
199
- removeDir(outDir);
200
- } else count.bundled++;
201
- updateProgress();
202
- compiler.close(()=>{
203
- resolve(isFailed ? void 0 : getResult());
204
- });
205
- });
206
- });
207
- const userOptions = isPlainObject(null == (_unpackConfig_dev = unpackConfig.dev) ? void 0 : _unpackConfig_dev.prebundle) ? unpackConfig.dev.prebundle : {};
208
- const ignoreCSSDeps = userOptions.ignoreCSS || [];
209
- const packageJson = JSON.parse(node_fs.readFileSync(node_path.resolve(root, 'package.json'), 'utf-8'));
210
- const existExternals = getExistExternals(unpackConfig.externals);
211
- const excludeDeps = [
212
- ...existExternals || [],
213
- ...userOptions.exclude || []
214
- ];
215
- const shouldIncludeDeps = Object.keys(packageJson.dependencies).filter((pkgName)=>!excludeDeps.includes(pkgName));
216
- const noEntryDeps = [];
217
- const needBundleDeps = shouldIncludeDeps.map((pkgName)=>{
218
- const packageJson = JSON.parse(node_fs.readFileSync(node_path.resolve(root, 'node_modules', pkgName, 'package.json'), 'utf-8'));
219
- const version = packageJson.version;
220
- if (failedCache[pkgName] === version) return;
221
- const entry = getPkgEntry(packageJson);
222
- if (!entry) {
223
- noEntryDeps.push(pkgName);
224
- failedCache[pkgName] = version;
225
- return;
226
- }
227
- return {
228
- name: pkgName,
229
- entry: node_path.resolve(root, 'node_modules', pkgName, entry),
230
- version
231
- };
232
- }).filter(Boolean);
233
- const bundledDeps = await Promise.all(needBundleDeps.map((depInfo)=>bundleDep(depInfo)));
234
- saveFailedDepsCache(failedDepsCachePath, failedCache);
235
- if (failedDeps[0]) logger.warn(`something went wrong while optimizing "${colors.bold(failedDeps.join(', '))}"`);
236
- const cachePath = node_path.resolve(root, TEMP_DIR, CACHE_DIR);
237
- const app = express();
238
- app.use(cors());
239
- app.use(`/${CACHE_DIR}`, express["static"](cachePath));
240
- const port = await getPort();
241
- const staticServer = app.listen(port, ()=>{});
242
- restartCleaners.push(()=>new Promise((resolve)=>staticServer.close(()=>resolve())));
243
- const externals = {};
244
- const jsAssets = [];
245
- const cssAssets = [];
246
- const preJsAssets = [];
247
- bundledDeps.filter(Boolean).forEach((dep)=>{
248
- if (!dep) return;
249
- externals[dep.name] = getExternalValue(dep.name);
250
- dep.assets.forEach((absPath)=>{
251
- const relativePath = node_path.relative(cachePath, absPath);
252
- const preDeps = [
253
- 'react',
254
- 'react-dom',
255
- 'react-router-dom'
256
- ];
257
- const serverPath = `//localhost:${port}/${CACHE_DIR}/${relativePath}`;
258
- switch(node_path.extname(relativePath)){
259
- case '.js':
260
- if (preDeps.includes(dep.name)) preJsAssets.push({
261
- path: serverPath,
262
- order: preDeps.indexOf(dep.name)
263
- });
264
- else jsAssets.push(serverPath);
265
- break;
266
- case '.css':
267
- if (!ignoreCSSDeps.includes(dep.name)) cssAssets.push(serverPath);
268
- break;
269
- default:
270
- break;
271
- }
272
- });
273
- });
274
- unpackConfig.externals = Array.isArray(unpackConfig.externals) ? [
275
- externals,
276
- ...unpackConfig.externals
277
- ] : {
278
- ...externals,
279
- ...unpackConfig.externals
280
- };
281
- const HtmlPlugin = 'rspack' === unpackConfig.bundler ? rspack.HtmlRspackPlugin : html_webpack_plugin;
282
- unpackConfig.plugins.push({
283
- name: 'unpack:prebundle',
284
- bundlerConfig: (config)=>{
285
- const PLUGIN_NAME = 'PluginInjectAssets';
286
- config.plugins.push({
287
- apply: (compiler)=>{
288
- compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation)=>{
289
- HtmlPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>{
290
- const sortedPreJsAssets = preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path);
291
- args.assets.js.unshift(...sortedPreJsAssets, ...jsAssets);
292
- args.assets.css.unshift(...cssAssets);
293
- return args;
294
- });
295
- });
296
- }
297
- });
298
- return config;
299
- }
300
- });
301
- return unpackConfig;
302
- };
303
- export { prebundleDeps };