@umijs/mfsu 4.0.0-beta.8 → 4.0.0-canary-20240513.3

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 (100) hide show
  1. package/compiled/is-absolute-url/LICENSE +9 -0
  2. package/compiled/is-absolute-url/index.d.ts +20 -0
  3. package/compiled/is-absolute-url/index.js +1 -0
  4. package/compiled/is-absolute-url/package.json +1 -0
  5. package/compiled/mrmime/package.json +1 -1
  6. package/compiled/webpack-virtual-modules/index.js +1 -1
  7. package/compiled/webpack-virtual-modules/package.json +1 -1
  8. package/dist/babelPlugins/awaitImport/MFImport.d.ts +24 -0
  9. package/dist/babelPlugins/awaitImport/MFImport.js +66 -0
  10. package/dist/babelPlugins/awaitImport/awaitImport.d.ts +1 -1
  11. package/dist/babelPlugins/awaitImport/awaitImport.js +111 -112
  12. package/dist/babelPlugins/awaitImport/checkMatch.d.ts +3 -1
  13. package/dist/babelPlugins/awaitImport/checkMatch.js +166 -109
  14. package/dist/babelPlugins/awaitImport/getAliasedPath.d.ts +2 -2
  15. package/dist/babelPlugins/awaitImport/getAliasedPath.js +44 -33
  16. package/dist/babelPlugins/awaitImport/getRealPath.js +42 -21
  17. package/dist/babelPlugins/awaitImport/isExternals.js +55 -26
  18. package/dist/babelPlugins/awaitImport/parseSpecifiers.js +62 -47
  19. package/dist/constants.d.ts +1 -0
  20. package/dist/constants.js +50 -10
  21. package/dist/dep/dep.d.ts +11 -4
  22. package/dist/dep/dep.js +118 -80
  23. package/dist/dep/getCJSExports.js +83 -47
  24. package/dist/dep/getExposeFromContent.d.ts +0 -1
  25. package/dist/dep/getExposeFromContent.js +99 -74
  26. package/dist/dep/getModuleExports.js +58 -43
  27. package/dist/depBuilder/depBuilder.d.ts +6 -2
  28. package/dist/depBuilder/depBuilder.js +222 -158
  29. package/dist/depBuilder/getESBuildEntry.d.ts +1 -1
  30. package/dist/depBuilder/getESBuildEntry.js +50 -14
  31. package/dist/depInfo.d.ts +20 -6
  32. package/dist/depInfo.js +90 -39
  33. package/dist/esbuildHandlers/autoCssModules.d.ts +2 -0
  34. package/dist/esbuildHandlers/autoCssModules.js +48 -0
  35. package/dist/esbuildHandlers/awaitImport/index.d.ts +15 -0
  36. package/dist/esbuildHandlers/awaitImport/index.js +86 -0
  37. package/dist/index.d.ts +3 -2
  38. package/dist/index.js +35 -13
  39. package/dist/loader/esbuild.d.ts +5 -0
  40. package/dist/loader/esbuild.js +79 -0
  41. package/dist/mfsu/mfsu.d.ts +69 -0
  42. package/dist/mfsu/mfsu.js +319 -0
  43. package/dist/mfsu/strategyCompileTime.d.ts +20 -0
  44. package/dist/mfsu/strategyCompileTime.js +142 -0
  45. package/dist/mfsu/strategyStaticAnalyze.d.ts +24 -0
  46. package/dist/mfsu/strategyStaticAnalyze.js +196 -0
  47. package/dist/moduleGraph.d.ts +6 -9
  48. package/dist/moduleGraph.js +228 -178
  49. package/dist/staticDepInfo/importParser.d.ts +4 -0
  50. package/dist/staticDepInfo/importParser.js +28 -0
  51. package/dist/staticDepInfo/simulations/babel-plugin-import.d.ts +15 -0
  52. package/dist/staticDepInfo/simulations/babel-plugin-import.js +118 -0
  53. package/dist/staticDepInfo/staticDepInfo.d.ts +61 -0
  54. package/dist/staticDepInfo/staticDepInfo.js +274 -0
  55. package/dist/types.d.ts +12 -0
  56. package/dist/types.js +33 -8
  57. package/dist/utils/makeArray.js +29 -5
  58. package/dist/utils/resolveUtils.d.ts +1 -0
  59. package/dist/utils/resolveUtils.js +104 -0
  60. package/dist/utils/trimFileContent.js +29 -5
  61. package/dist/utils/webpackUtils.d.ts +3 -0
  62. package/dist/utils/webpackUtils.js +80 -0
  63. package/dist/webpackPlugins/buildDepPlugin.d.ts +4 -3
  64. package/dist/webpackPlugins/buildDepPlugin.js +61 -17
  65. package/dist/webpackPlugins/depChunkIdPrefixPlugin.d.ts +1 -1
  66. package/dist/webpackPlugins/depChunkIdPrefixPlugin.js +47 -19
  67. package/dist/webpackPlugins/stripSourceMapUrlPlugin.js +55 -27
  68. package/dist/webpackPlugins/writeCachePlugin.js +45 -15
  69. package/package.json +32 -28
  70. package/vendors/importParser/_importParser.js +683 -0
  71. package/vendors/importParser/importParser.jison +105 -0
  72. package/dist/babelPlugins/autoExport.d.ts +0 -7
  73. package/dist/babelPlugins/autoExport.d.ts.map +0 -1
  74. package/dist/babelPlugins/autoExport.js +0 -61
  75. package/dist/babelPlugins/awaitImport/awaitImport.d.ts.map +0 -1
  76. package/dist/babelPlugins/awaitImport/checkMatch.d.ts.map +0 -1
  77. package/dist/babelPlugins/awaitImport/getAliasedPath.d.ts.map +0 -1
  78. package/dist/babelPlugins/awaitImport/getRealPath.d.ts.map +0 -1
  79. package/dist/babelPlugins/awaitImport/isExternals.d.ts.map +0 -1
  80. package/dist/babelPlugins/awaitImport/parseSpecifiers.d.ts.map +0 -1
  81. package/dist/constants.d.ts.map +0 -1
  82. package/dist/dep/dep.d.ts.map +0 -1
  83. package/dist/dep/getCJSExports.d.ts.map +0 -1
  84. package/dist/dep/getExposeFromContent.d.ts.map +0 -1
  85. package/dist/dep/getModuleExports.d.ts.map +0 -1
  86. package/dist/depBuilder/depBuilder.d.ts.map +0 -1
  87. package/dist/depBuilder/getESBuildEntry.d.ts.map +0 -1
  88. package/dist/depInfo.d.ts.map +0 -1
  89. package/dist/index.d.ts.map +0 -1
  90. package/dist/mfsu.d.ts +0 -55
  91. package/dist/mfsu.d.ts.map +0 -1
  92. package/dist/mfsu.js +0 -173
  93. package/dist/moduleGraph.d.ts.map +0 -1
  94. package/dist/types.d.ts.map +0 -1
  95. package/dist/utils/makeArray.d.ts.map +0 -1
  96. package/dist/utils/trimFileContent.d.ts.map +0 -1
  97. package/dist/webpackPlugins/buildDepPlugin.d.ts.map +0 -1
  98. package/dist/webpackPlugins/depChunkIdPrefixPlugin.d.ts.map +0 -1
  99. package/dist/webpackPlugins/stripSourceMapUrlPlugin.d.ts.map +0 -1
  100. package/dist/webpackPlugins/writeCachePlugin.d.ts.map +0 -1
@@ -1,3 +1,4 @@
1
+ import type { DepModule } from './depInfo';
1
2
  declare class ModuleNode {
2
3
  file: string;
3
4
  importers: Set<ModuleNode>;
@@ -15,10 +16,7 @@ interface IDep {
15
16
  export declare class ModuleGraph {
16
17
  fileToModules: Map<string, ModuleNode>;
17
18
  depToModules: Map<string, ModuleNode>;
18
- depSnapshotModules: Record<string, {
19
- file: string;
20
- version: string;
21
- }>;
19
+ depSnapshotModules: Record<string, DepModule>;
22
20
  rootModules: Set<ModuleNode>;
23
21
  constructor();
24
22
  restore(data: {
@@ -30,15 +28,13 @@ export declare class ModuleGraph {
30
28
  toJSON(): {
31
29
  roots: string[];
32
30
  fileModules: Record<string, {
33
- importModules: string[];
31
+ importedModules: string[];
32
+ isRoot?: boolean | undefined;
34
33
  }>;
35
34
  depModules: Record<string, {
36
35
  version: string | null;
37
36
  }>;
38
- depSnapshotModules: Record<string, {
39
- file: string;
40
- version: string;
41
- }>;
37
+ depSnapshotModules: Record<string, DepModule>;
42
38
  };
43
39
  snapshotDeps(): void;
44
40
  getDepsInfo(mods: Map<string, ModuleNode>): Record<string, {
@@ -48,6 +44,7 @@ export declare class ModuleGraph {
48
44
  getDepInfo(mod: ModuleNode): {
49
45
  file: string;
50
46
  version: string;
47
+ importer: string;
51
48
  };
52
49
  hasDepChanged(): boolean;
53
50
  onFileChange(opts: {
@@ -1,189 +1,239 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModuleGraph = void 0;
4
- const utils_1 = require("@umijs/utils");
5
- class ModuleNode {
6
- constructor(file) {
7
- this.importers = new Set();
8
- this.importedModules = new Set();
9
- this.isDependency = false;
10
- this.isRoot = false;
11
- this.version = null;
12
- this.file = file;
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
+
19
+ // src/moduleGraph.ts
20
+ var moduleGraph_exports = {};
21
+ __export(moduleGraph_exports, {
22
+ ModuleGraph: () => ModuleGraph
23
+ });
24
+ module.exports = __toCommonJS(moduleGraph_exports);
25
+ var ModuleNode = class {
26
+ constructor(file) {
27
+ this.importers = /* @__PURE__ */ new Set();
28
+ this.importedModules = /* @__PURE__ */ new Set();
29
+ this.isDependency = false;
30
+ this.isRoot = false;
31
+ this.version = null;
32
+ this.file = file;
33
+ }
34
+ };
35
+ var ModuleGraph = class {
36
+ constructor() {
37
+ this.fileToModules = /* @__PURE__ */ new Map();
38
+ this.depToModules = /* @__PURE__ */ new Map();
39
+ this.depSnapshotModules = {};
40
+ this.rootModules = /* @__PURE__ */ new Set();
41
+ }
42
+ restore(data) {
43
+ const getModuleNode = (file) => {
44
+ if (this.fileToModules.has(file)) {
45
+ return this.fileToModules.get(file);
46
+ }
47
+ if (this.depToModules.has(file)) {
48
+ return this.depToModules.get(file);
49
+ }
50
+ const mod = new ModuleNode(file);
51
+ return mod;
52
+ };
53
+ const addNode = ({ file, importer }) => {
54
+ const mod = getModuleNode(file);
55
+ let isDependency = false;
56
+ let info;
57
+ if (data.fileModules[file]) {
58
+ info = data.fileModules[file];
59
+ } else if (data.depModules[file]) {
60
+ info = data.depModules[file];
61
+ isDependency = true;
62
+ }
63
+ if (info.isRoot)
64
+ mod.isRoot = true;
65
+ if (importer) {
66
+ mod.importers.add(importer);
67
+ if (!importer.importedModules.has(mod)) {
68
+ importer.importedModules.add(mod);
69
+ } else {
70
+ return;
71
+ }
72
+ }
73
+ mod.isDependency = isDependency;
74
+ if (info.version !== void 0) {
75
+ mod.version = info.version;
76
+ }
77
+ if (isDependency) {
78
+ this.depToModules.set(file, mod);
79
+ } else {
80
+ this.fileToModules.set(file, mod);
81
+ for (const importedModule of info.importedModules) {
82
+ addNode({ file: importedModule, importer: mod });
83
+ }
84
+ }
85
+ };
86
+ for (const root of data.roots) {
87
+ addNode({ file: root });
13
88
  }
14
- }
15
- class ModuleGraph {
16
- constructor() {
17
- this.fileToModules = new Map();
18
- this.depToModules = new Map();
19
- this.depSnapshotModules = {};
20
- this.rootModules = new Set();
89
+ this.depSnapshotModules = data.depSnapshotModules;
90
+ }
91
+ toJSON() {
92
+ const roots = [];
93
+ const fileModules = {};
94
+ const depModules = {};
95
+ this.depToModules.forEach((value, key) => {
96
+ depModules[key] = {
97
+ version: value.version
98
+ };
99
+ });
100
+ this.fileToModules.forEach((value, key) => {
101
+ fileModules[key] = {
102
+ importedModules: Array.from(value.importedModules).map(
103
+ (item) => item.file
104
+ )
105
+ };
106
+ if (value.isRoot) {
107
+ fileModules[key].isRoot = true;
108
+ roots.push(key);
109
+ }
110
+ });
111
+ return {
112
+ roots,
113
+ fileModules,
114
+ depModules,
115
+ depSnapshotModules: this.depSnapshotModules
116
+ };
117
+ }
118
+ snapshotDeps() {
119
+ this.depSnapshotModules = this.getDepsInfo(this.depToModules);
120
+ }
121
+ getDepsInfo(mods) {
122
+ return Array.from(mods.keys()).reduce((memo, key) => {
123
+ memo[key] = this.getDepInfo(mods.get(key));
124
+ return memo;
125
+ }, {});
126
+ }
127
+ getDepInfo(mod) {
128
+ const [importer] = mod.importers;
129
+ return {
130
+ file: mod.file,
131
+ version: mod.version,
132
+ importer: importer == null ? void 0 : importer.file
133
+ };
134
+ }
135
+ hasDepChanged() {
136
+ const depModulesInfo = this.getDepsInfo(this.depToModules);
137
+ const depKeys = Object.keys(depModulesInfo);
138
+ const snapshotKeys = Object.keys(this.depSnapshotModules);
139
+ if (depKeys.length !== snapshotKeys.length) {
140
+ return true;
21
141
  }
22
- restore(data) {
23
- const addNode = ({ file, importer }) => {
24
- const mod = new ModuleNode(file);
25
- let isDependency = false;
26
- let info;
27
- if (data.fileModules[file]) {
28
- info = data.fileModules[file];
29
- }
30
- else if (data.depModules[file]) {
31
- info = data.depModules[file];
32
- isDependency = true;
33
- }
34
- if (info.isRoot)
35
- mod.isRoot = true;
36
- if (importer)
37
- mod.importers.add(importer);
38
- mod.isDependency = isDependency;
39
- if (info.version !== undefined) {
40
- mod.version = info.version;
41
- }
42
- if (isDependency) {
43
- this.depToModules.set(file, mod);
44
- }
45
- else {
46
- for (const importedModule of info.importedModules) {
47
- addNode({ file: importedModule, importer: mod });
48
- }
49
- this.fileToModules.set(file, mod);
50
- }
51
- };
52
- for (const root of data.roots) {
53
- addNode({ file: root });
54
- }
55
- this.depSnapshotModules = data.depSnapshotModules;
142
+ for (const k of depKeys) {
143
+ const dep = depModulesInfo[k];
144
+ const snapshot = this.depSnapshotModules[k];
145
+ if (dep.file !== (snapshot == null ? void 0 : snapshot.file)) {
146
+ return true;
147
+ }
148
+ if (dep.version !== (snapshot == null ? void 0 : snapshot.version)) {
149
+ return true;
150
+ }
56
151
  }
57
- toJSON() {
58
- const roots = [];
59
- const fileModules = {};
60
- const depModules = {};
61
- this.depToModules.forEach((value, key) => {
62
- depModules[key] = {
63
- version: value.version,
64
- };
152
+ return false;
153
+ }
154
+ onFileChange(opts) {
155
+ if (this.fileToModules.has(opts.file)) {
156
+ const mod = this.fileToModules.get(opts.file);
157
+ this.updateModule({
158
+ mod,
159
+ deps: opts.deps
160
+ });
161
+ } else {
162
+ const mod = new ModuleNode(opts.file);
163
+ mod.isRoot = true;
164
+ this.fileToModules.set(opts.file, mod);
165
+ this.rootModules.add(mod);
166
+ opts.deps.forEach((dep) => {
167
+ this.addNode({
168
+ file: dep.file,
169
+ isDependency: dep.isDependency,
170
+ version: dep.version || null,
171
+ importer: mod
65
172
  });
66
- this.fileToModules.forEach((value, key) => {
67
- fileModules[key] = {
68
- importModules: Array.from(value.importedModules).map((item) => item.file),
69
- };
70
- if (value.isRoot) {
71
- roots.push(key);
72
- }
73
- });
74
- return {
75
- roots,
76
- fileModules,
77
- depModules,
78
- depSnapshotModules: this.depSnapshotModules,
79
- };
80
- }
81
- snapshotDeps() {
82
- this.depSnapshotModules = this.getDepsInfo(this.depToModules);
173
+ });
83
174
  }
84
- getDepsInfo(mods) {
85
- return Array.from(mods.keys()).reduce((memo, key) => {
86
- memo[key] = this.getDepInfo(mods.get(key));
87
- return memo;
88
- }, {});
175
+ }
176
+ updateModule(opts) {
177
+ const importedModulesMap = Array.from(opts.mod.importedModules).reduce((memo, mod) => {
178
+ memo[mod.file] = mod;
179
+ return memo;
180
+ }, {});
181
+ const newDeps = [];
182
+ for (const dep of opts.deps) {
183
+ if (importedModulesMap[dep.file]) {
184
+ if (dep.version !== void 0) {
185
+ importedModulesMap[dep.file].version = dep.version;
186
+ }
187
+ delete importedModulesMap[dep.file];
188
+ } else {
189
+ newDeps.push(dep);
190
+ }
89
191
  }
90
- getDepInfo(mod) {
91
- return {
92
- file: mod.file,
93
- version: mod.version,
94
- };
192
+ Object.keys(importedModulesMap).forEach((key) => {
193
+ this.deleteNode({ mod: importedModulesMap[key], importer: opts.mod });
194
+ });
195
+ newDeps.forEach((dep) => {
196
+ this.addNode({ ...dep, importer: opts.mod });
197
+ });
198
+ }
199
+ addNode(opts) {
200
+ const modules = opts.isDependency ? this.depToModules : this.fileToModules;
201
+ let mod;
202
+ if (modules.has(opts.file)) {
203
+ mod = modules.get(opts.file);
204
+ if (opts.version !== void 0)
205
+ mod.version = opts.version;
206
+ } else {
207
+ mod = new ModuleNode(opts.file);
208
+ mod.isDependency = opts.isDependency;
209
+ if (opts.version !== void 0)
210
+ mod.version = opts.version;
211
+ modules.set(opts.file, mod);
95
212
  }
96
- hasDepChanged() {
97
- const depModulesInfo = this.getDepsInfo(this.depToModules);
98
- return !utils_1.lodash.isEqual(depModulesInfo, this.depSnapshotModules);
213
+ if (!mod.importers.has(opts.importer)) {
214
+ mod.importers.add(opts.importer);
99
215
  }
100
- onFileChange(opts) {
101
- if (this.fileToModules.has(opts.file)) {
102
- const mod = this.fileToModules.get(opts.file);
103
- this.updateModule({
104
- mod,
105
- deps: opts.deps,
106
- });
107
- }
108
- else {
109
- const mod = new ModuleNode(opts.file);
110
- mod.isRoot = true;
111
- this.fileToModules.set(opts.file, mod);
112
- this.rootModules.add(mod);
113
- opts.deps.forEach((dep) => {
114
- this.addNode({
115
- file: dep.file,
116
- isDependency: dep.isDependency,
117
- version: dep.version || null,
118
- importer: mod,
119
- });
120
- });
121
- }
216
+ if (!opts.importer.importedModules.has(mod)) {
217
+ opts.importer.importedModules.add(mod);
122
218
  }
123
- updateModule(opts) {
124
- const importedModulesMap = Array.from(opts.mod.importedModules).reduce((memo, mod) => {
125
- memo[mod.file] = mod;
126
- return memo;
127
- }, {});
128
- const newDeps = [];
129
- for (const dep of opts.deps) {
130
- // update
131
- if (importedModulesMap[dep.file]) {
132
- if (dep.version !== undefined) {
133
- importedModulesMap[dep.file].version = dep.version;
134
- }
135
- delete importedModulesMap[dep.file];
136
- }
137
- // add
138
- else {
139
- newDeps.push(dep);
140
- }
141
- }
142
- Object.keys(importedModulesMap).forEach((key) => {
143
- this.deleteNode({ mod: importedModulesMap[key], importer: opts.mod });
219
+ }
220
+ deleteNode(opts) {
221
+ const modules = opts.mod.isDependency ? this.depToModules : this.fileToModules;
222
+ const { mod, importer } = opts;
223
+ mod.importers.delete(opts.importer);
224
+ importer.importedModules.delete(mod);
225
+ if (!mod.importers.size) {
226
+ modules.delete(opts.mod.file);
227
+ mod.importedModules.forEach((importedModule) => {
228
+ this.deleteNode({
229
+ mod: importedModule,
230
+ importer: mod
144
231
  });
145
- newDeps.forEach((dep) => {
146
- this.addNode(Object.assign(Object.assign({}, dep), { importer: opts.mod }));
147
- });
148
- }
149
- addNode(opts) {
150
- const modules = opts.isDependency ? this.depToModules : this.fileToModules;
151
- let mod;
152
- if (modules.has(opts.file)) {
153
- mod = modules.get(opts.file);
154
- if (opts.version !== undefined)
155
- mod.version = opts.version;
156
- }
157
- else {
158
- mod = new ModuleNode(opts.file);
159
- mod.isDependency = opts.isDependency;
160
- if (opts.version !== undefined)
161
- mod.version = opts.version;
162
- modules.set(opts.file, mod);
163
- }
164
- if (!mod.importers.has(opts.importer)) {
165
- mod.importers.add(opts.importer);
166
- }
167
- if (!opts.importer.importedModules.has(mod)) {
168
- opts.importer.importedModules.add(mod);
169
- }
170
- }
171
- deleteNode(opts) {
172
- const modules = opts.mod.isDependency
173
- ? this.depToModules
174
- : this.fileToModules;
175
- const { mod, importer } = opts;
176
- mod.importers.delete(opts.importer);
177
- importer.importedModules.delete(mod);
178
- if (!mod.importers.size) {
179
- modules.delete(opts.mod.file);
180
- mod.importedModules.forEach((importedModule) => {
181
- this.deleteNode({
182
- mod: importedModule,
183
- importer: mod,
184
- });
185
- });
186
- }
232
+ });
187
233
  }
188
- }
189
- exports.ModuleGraph = ModuleGraph;
234
+ }
235
+ };
236
+ // Annotate the CommonJS export names for ESM import in node:
237
+ 0 && (module.exports = {
238
+ ModuleGraph
239
+ });
@@ -0,0 +1,4 @@
1
+ export default function parse(code: string): {
2
+ from: string;
3
+ imports: string[];
4
+ }[];
@@ -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
+
19
+ // src/staticDepInfo/importParser.ts
20
+ var importParser_exports = {};
21
+ __export(importParser_exports, {
22
+ default: () => parse
23
+ });
24
+ module.exports = __toCommonJS(importParser_exports);
25
+ var import_importParser = require("../../vendors/importParser/_importParser.js");
26
+ function parse(code) {
27
+ return (0, import_importParser.parse)(code);
28
+ }
@@ -0,0 +1,15 @@
1
+ import type { ImportSpecifier } from '@umijs/bundler-utils/compiled/es-module-lexer';
2
+ import type { Match } from '../staticDepInfo';
3
+ export default function createHandle(importOptions: {
4
+ libraryName: string;
5
+ libraryDirectory: string;
6
+ style: boolean | string;
7
+ camel2UnderlineComponentName?: boolean;
8
+ camel2DashComponentName?: boolean;
9
+ }): (opts: {
10
+ rawCode: string;
11
+ imports: ImportSpecifier[];
12
+ mfName: string;
13
+ alias: Record<string, string>;
14
+ pathToVersion(p: string): string;
15
+ }) => Match[];
@@ -0,0 +1,118 @@
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
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/staticDepInfo/simulations/babel-plugin-import.ts
30
+ var babel_plugin_import_exports = {};
31
+ __export(babel_plugin_import_exports, {
32
+ default: () => createHandle
33
+ });
34
+ module.exports = __toCommonJS(babel_plugin_import_exports);
35
+ var import_utils = require("@umijs/utils");
36
+ var import_path = require("path");
37
+ var import_getAliasedPath = require("../../babelPlugins/awaitImport/getAliasedPath");
38
+ var import_importParser = __toESM(require("../importParser"));
39
+ function createHandle(importOptions) {
40
+ const { libraryName, libraryDirectory } = importOptions;
41
+ const useUnderline = importOptions.camel2UnderlineComponentName;
42
+ const useDash = importOptions.camel2DashComponentName ?? true;
43
+ const transformName = useUnderline ? (n) => transCamel(n, "_") : useDash ? (n) => transCamel(n, "-") : (n) => n;
44
+ const stylePathFromCompPath = importOptions.style === "css" ? (compFsPath) => (0, import_utils.winPath)((0, import_path.join)(compFsPath, "style/css")) : (compFsPath) => (0, import_utils.winPath)((0, import_path.join)(compFsPath, "style"));
45
+ return function handleImports(opts) {
46
+ const { imports, rawCode } = opts;
47
+ if ((imports == null ? void 0 : imports.length) > 0) {
48
+ let addToMatches = function(moduleFsPath) {
49
+ const unAliasedModulePath = (0, import_getAliasedPath.getAliasedPathWithLoopDetect)({
50
+ value: (0, import_utils.winPath)(moduleFsPath),
51
+ alias: opts.alias
52
+ });
53
+ retMatched.push({
54
+ isMatch: true,
55
+ value: unAliasedModulePath,
56
+ replaceValue: `${mfName}/${(0, import_utils.winPath)(unAliasedModulePath)}`,
57
+ version
58
+ });
59
+ const unAliasedStylePath = (0, import_getAliasedPath.getAliasedPathWithLoopDetect)({
60
+ value: stylePathFromCompPath(moduleFsPath),
61
+ alias: opts.alias
62
+ });
63
+ retMatched.push({
64
+ isMatch: true,
65
+ value: unAliasedStylePath,
66
+ replaceValue: `${mfName}/${(0, import_utils.winPath)(unAliasedStylePath)}`,
67
+ version
68
+ });
69
+ };
70
+ const version = opts.pathToVersion(libraryName);
71
+ const importSnippets = imports.map(({ ss, se }) => {
72
+ return rawCode.slice(ss, se + 1);
73
+ }).join("\n");
74
+ const retMatched = [];
75
+ const parsedImports = (0, import_importParser.default)(importSnippets);
76
+ const importedVariable = /* @__PURE__ */ new Set();
77
+ for (const i of parsedImports) {
78
+ i.imports.forEach((v) => {
79
+ if (v === "*") {
80
+ errorLogForSpaceImport(libraryName);
81
+ }
82
+ importedVariable.add(v);
83
+ });
84
+ }
85
+ const mfName = opts.mfName;
86
+ for (const v of importedVariable.entries()) {
87
+ const importVariableName = v[0];
88
+ if (importVariableName === "default") {
89
+ addToMatches((0, import_path.join)(libraryName, libraryDirectory));
90
+ continue;
91
+ }
92
+ const transformedName = transformName(importVariableName);
93
+ const importFsPath = (0, import_path.join)(
94
+ libraryName,
95
+ libraryDirectory,
96
+ transformedName
97
+ );
98
+ addToMatches(importFsPath);
99
+ }
100
+ return retMatched;
101
+ }
102
+ return [];
103
+ };
104
+ }
105
+ function transCamel(_str, symbol) {
106
+ const str = _str[0].toLowerCase() + _str.substr(1);
107
+ return str.replace(/([A-Z])/g, ($1) => `${symbol}${$1.toLowerCase()}`);
108
+ }
109
+ function errorLogForSpaceImport(libraryName) {
110
+ import_utils.logger.error(
111
+ `"import * as ant from 'antd'" or "export * from '${libraryName}'" are not allowed in mfsu#strategy='eager'`
112
+ );
113
+ import_utils.logger.error(`solutions:`);
114
+ import_utils.logger.error(` change to "import { Xxx } from '${libraryName}'" or`);
115
+ import_utils.logger.error(` "export { Xxx } from '${libraryName}'" syntax`);
116
+ import_utils.logger.error(` or use mfsu#strategy='normal' configuration`);
117
+ throw Error(`"import * as ant from 'antd'" not allowed in mfsu#version=4`);
118
+ }