@rsdoctor/core 0.0.0-next-20240620044732
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.
- package/LICENSE +21 -0
- package/README.md +22 -0
- package/dist/build-utils/build/chunks/assetsModules.d.ts +4 -0
- package/dist/build-utils/build/chunks/assetsModules.d.ts.map +1 -0
- package/dist/build-utils/build/chunks/assetsModules.js +36 -0
- package/dist/build-utils/build/chunks/chunkTransform.d.ts +5 -0
- package/dist/build-utils/build/chunks/chunkTransform.d.ts.map +1 -0
- package/dist/build-utils/build/chunks/chunkTransform.js +31 -0
- package/dist/build-utils/build/chunks/generateTileGraph.d.ts +11 -0
- package/dist/build-utils/build/chunks/generateTileGraph.d.ts.map +1 -0
- package/dist/build-utils/build/chunks/generateTileGraph.js +71 -0
- package/dist/build-utils/build/chunks/index.d.ts +4 -0
- package/dist/build-utils/build/chunks/index.d.ts.map +1 -0
- package/dist/build-utils/build/chunks/index.js +26 -0
- package/dist/build-utils/build/index.d.ts +5 -0
- package/dist/build-utils/build/index.d.ts.map +1 -0
- package/dist/build-utils/build/index.js +47 -0
- package/dist/build-utils/build/module-graph/index.d.ts +4 -0
- package/dist/build-utils/build/module-graph/index.d.ts.map +1 -0
- package/dist/build-utils/build/module-graph/index.js +26 -0
- package/dist/build-utils/build/module-graph/parser.d.ts +3 -0
- package/dist/build-utils/build/module-graph/parser.d.ts.map +1 -0
- package/dist/build-utils/build/module-graph/parser.js +44 -0
- package/dist/build-utils/build/module-graph/transform.d.ts +5 -0
- package/dist/build-utils/build/module-graph/transform.d.ts.map +1 -0
- package/dist/build-utils/build/module-graph/transform.js +37 -0
- package/dist/build-utils/build/module-graph/treeShaking.d.ts +4 -0
- package/dist/build-utils/build/module-graph/treeShaking.d.ts.map +1 -0
- package/dist/build-utils/build/module-graph/treeShaking.js +132 -0
- package/dist/build-utils/build/module-graph/utils.d.ts +4 -0
- package/dist/build-utils/build/module-graph/utils.d.ts.map +1 -0
- package/dist/build-utils/build/module-graph/utils.js +113 -0
- package/dist/build-utils/build/module-graph/webpack/transform.d.ts +12 -0
- package/dist/build-utils/build/module-graph/webpack/transform.d.ts.map +1 -0
- package/dist/build-utils/build/module-graph/webpack/transform.js +195 -0
- package/dist/build-utils/build/utils/index.d.ts +4 -0
- package/dist/build-utils/build/utils/index.d.ts.map +1 -0
- package/dist/build-utils/build/utils/index.js +26 -0
- package/dist/build-utils/build/utils/loader.d.ts +19 -0
- package/dist/build-utils/build/utils/loader.d.ts.map +1 -0
- package/dist/build-utils/build/utils/loader.js +299 -0
- package/dist/build-utils/build/utils/parseBundle.d.ts +13 -0
- package/dist/build-utils/build/utils/parseBundle.d.ts.map +1 -0
- package/dist/build-utils/build/utils/parseBundle.js +367 -0
- package/dist/build-utils/build/utils/plugin.d.ts +6 -0
- package/dist/build-utils/build/utils/plugin.d.ts.map +1 -0
- package/dist/build-utils/build/utils/plugin.js +63 -0
- package/dist/build-utils/common/chunks/assetsContent.d.ts +5 -0
- package/dist/build-utils/common/chunks/assetsContent.d.ts.map +1 -0
- package/dist/build-utils/common/chunks/assetsContent.js +34 -0
- package/dist/build-utils/common/chunks/assetsModules.d.ts +24 -0
- package/dist/build-utils/common/chunks/assetsModules.d.ts.map +1 -0
- package/dist/build-utils/common/chunks/assetsModules.js +107 -0
- package/dist/build-utils/common/chunks/chunkTransform.d.ts +6 -0
- package/dist/build-utils/common/chunks/chunkTransform.d.ts.map +1 -0
- package/dist/build-utils/common/chunks/chunkTransform.js +73 -0
- package/dist/build-utils/common/chunks/index.d.ts +4 -0
- package/dist/build-utils/common/chunks/index.d.ts.map +1 -0
- package/dist/build-utils/common/chunks/index.js +26 -0
- package/dist/build-utils/common/index.d.ts +6 -0
- package/dist/build-utils/common/index.d.ts.map +1 -0
- package/dist/build-utils/common/index.js +50 -0
- package/dist/build-utils/common/module-graph/compatible.d.ts +10 -0
- package/dist/build-utils/common/module-graph/compatible.d.ts.map +1 -0
- package/dist/build-utils/common/module-graph/compatible.js +63 -0
- package/dist/build-utils/common/module-graph/index.d.ts +4 -0
- package/dist/build-utils/common/module-graph/index.d.ts.map +1 -0
- package/dist/build-utils/common/module-graph/index.js +26 -0
- package/dist/build-utils/common/module-graph/transform.d.ts +8 -0
- package/dist/build-utils/common/module-graph/transform.d.ts.map +1 -0
- package/dist/build-utils/common/module-graph/transform.js +200 -0
- package/dist/build-utils/common/module-graph/utils.d.ts +16 -0
- package/dist/build-utils/common/module-graph/utils.d.ts.map +1 -0
- package/dist/build-utils/common/module-graph/utils.js +62 -0
- package/dist/build-utils/common/trans-utils/index.d.ts +2 -0
- package/dist/build-utils/common/trans-utils/index.d.ts.map +1 -0
- package/dist/build-utils/common/trans-utils/index.js +22 -0
- package/dist/build-utils/common/trans-utils/transStats.d.ts +7 -0
- package/dist/build-utils/common/trans-utils/transStats.d.ts.map +1 -0
- package/dist/build-utils/common/trans-utils/transStats.js +35 -0
- package/dist/build-utils/common/webpack/compatible.d.ts +27 -0
- package/dist/build-utils/common/webpack/compatible.d.ts.map +1 -0
- package/dist/build-utils/common/webpack/compatible.js +181 -0
- package/dist/build-utils/index.d.ts +3 -0
- package/dist/build-utils/index.d.ts.map +1 -0
- package/dist/build-utils/index.js +41 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/inner-plugins/constants.d.ts +7 -0
- package/dist/inner-plugins/constants.d.ts.map +1 -0
- package/dist/inner-plugins/constants.js +52 -0
- package/dist/inner-plugins/index.d.ts +3 -0
- package/dist/inner-plugins/index.d.ts.map +1 -0
- package/dist/inner-plugins/index.js +24 -0
- package/dist/inner-plugins/loaders/proxy.d.ts +5 -0
- package/dist/inner-plugins/loaders/proxy.d.ts.map +1 -0
- package/dist/inner-plugins/loaders/proxy.js +115 -0
- package/dist/inner-plugins/plugins/base.d.ts +14 -0
- package/dist/inner-plugins/plugins/base.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/base.js +45 -0
- package/dist/inner-plugins/plugins/bundle.d.ts +15 -0
- package/dist/inner-plugins/plugins/bundle.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/bundle.js +92 -0
- package/dist/inner-plugins/plugins/bundleTagPlugin.d.ts +7 -0
- package/dist/inner-plugins/plugins/bundleTagPlugin.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/bundleTagPlugin.js +81 -0
- package/dist/inner-plugins/plugins/ensureModulesChunkGraph.d.ts +10 -0
- package/dist/inner-plugins/plugins/ensureModulesChunkGraph.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/ensureModulesChunkGraph.js +126 -0
- package/dist/inner-plugins/plugins/errors.d.ts +12 -0
- package/dist/inner-plugins/plugins/errors.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/errors.js +85 -0
- package/dist/inner-plugins/plugins/index.d.ts +11 -0
- package/dist/inner-plugins/plugins/index.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/index.js +40 -0
- package/dist/inner-plugins/plugins/loader.d.ts +12 -0
- package/dist/inner-plugins/plugins/loader.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/loader.js +161 -0
- package/dist/inner-plugins/plugins/plugins.d.ts +9 -0
- package/dist/inner-plugins/plugins/plugins.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/plugins.js +60 -0
- package/dist/inner-plugins/plugins/progress.d.ts +9 -0
- package/dist/inner-plugins/plugins/progress.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/progress.js +59 -0
- package/dist/inner-plugins/plugins/rules.d.ts +9 -0
- package/dist/inner-plugins/plugins/rules.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/rules.js +85 -0
- package/dist/inner-plugins/plugins/summary.d.ts +15 -0
- package/dist/inner-plugins/plugins/summary.d.ts.map +1 -0
- package/dist/inner-plugins/plugins/summary.js +115 -0
- package/dist/inner-plugins/utils/circleDetect.d.ts +5 -0
- package/dist/inner-plugins/utils/circleDetect.d.ts.map +1 -0
- package/dist/inner-plugins/utils/circleDetect.js +42 -0
- package/dist/inner-plugins/utils/config.d.ts +8 -0
- package/dist/inner-plugins/utils/config.d.ts.map +1 -0
- package/dist/inner-plugins/utils/config.js +151 -0
- package/dist/inner-plugins/utils/index.d.ts +6 -0
- package/dist/inner-plugins/utils/index.d.ts.map +1 -0
- package/dist/inner-plugins/utils/index.js +30 -0
- package/dist/inner-plugins/utils/loader.d.ts +12 -0
- package/dist/inner-plugins/utils/loader.d.ts.map +1 -0
- package/dist/inner-plugins/utils/loader.js +201 -0
- package/dist/inner-plugins/utils/plugin.d.ts +6 -0
- package/dist/inner-plugins/utils/plugin.d.ts.map +1 -0
- package/dist/inner-plugins/utils/plugin.js +126 -0
- package/dist/inner-plugins/utils/sdk.d.ts +4 -0
- package/dist/inner-plugins/utils/sdk.d.ts.map +1 -0
- package/dist/inner-plugins/utils/sdk.js +43 -0
- package/dist/rules/index.d.ts +4 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +33 -0
- package/dist/rules/linter.d.ts +10 -0
- package/dist/rules/linter.d.ts.map +1 -0
- package/dist/rules/linter.js +74 -0
- package/dist/rules/rule.d.ts +28 -0
- package/dist/rules/rule.d.ts.map +1 -0
- package/dist/rules/rule.js +143 -0
- package/dist/rules/rules/default-import-check/index.d.ts +5 -0
- package/dist/rules/rules/default-import-check/index.d.ts.map +1 -0
- package/dist/rules/rules/default-import-check/index.js +124 -0
- package/dist/rules/rules/default-import-check/types.d.ts +5 -0
- package/dist/rules/rules/default-import-check/types.d.ts.map +1 -0
- package/dist/rules/rules/default-import-check/types.js +16 -0
- package/dist/rules/rules/default-import-check/utils.d.ts +11 -0
- package/dist/rules/rules/default-import-check/utils.d.ts.map +1 -0
- package/dist/rules/rules/default-import-check/utils.js +93 -0
- package/dist/rules/rules/duplicate-package/index.d.ts +5 -0
- package/dist/rules/rules/duplicate-package/index.d.ts.map +1 -0
- package/dist/rules/rules/duplicate-package/index.js +71 -0
- package/dist/rules/rules/duplicate-package/types.d.ts +25 -0
- package/dist/rules/rules/duplicate-package/types.d.ts.map +1 -0
- package/dist/rules/rules/duplicate-package/types.js +51 -0
- package/dist/rules/rules/duplicate-package/utils.d.ts +4 -0
- package/dist/rules/rules/duplicate-package/utils.d.ts.map +1 -0
- package/dist/rules/rules/duplicate-package/utils.js +89 -0
- package/dist/rules/rules/ecma-version-check/index.d.ts +5 -0
- package/dist/rules/rules/ecma-version-check/index.d.ts.map +1 -0
- package/dist/rules/rules/ecma-version-check/index.js +82 -0
- package/dist/rules/rules/ecma-version-check/types.d.ts +8 -0
- package/dist/rules/rules/ecma-version-check/types.d.ts.map +1 -0
- package/dist/rules/rules/ecma-version-check/types.js +16 -0
- package/dist/rules/rules/ecma-version-check/utils.d.ts +3 -0
- package/dist/rules/rules/ecma-version-check/utils.d.ts.map +1 -0
- package/dist/rules/rules/ecma-version-check/utils.js +31 -0
- package/dist/rules/rules/index.d.ts +2 -0
- package/dist/rules/rules/index.d.ts.map +1 -0
- package/dist/rules/rules/index.js +37 -0
- package/dist/rules/rules/loader-performance-optimization/index.d.ts +5 -0
- package/dist/rules/rules/loader-performance-optimization/index.d.ts.map +1 -0
- package/dist/rules/rules/loader-performance-optimization/index.js +124 -0
- package/dist/rules/rules/loader-performance-optimization/types.d.ts +23 -0
- package/dist/rules/rules/loader-performance-optimization/types.d.ts.map +1 -0
- package/dist/rules/rules/loader-performance-optimization/types.js +16 -0
- package/dist/rules/rules/loader-performance-optimization/utils.d.ts +2 -0
- package/dist/rules/rules/loader-performance-optimization/utils.d.ts.map +1 -0
- package/dist/rules/rules/loader-performance-optimization/utils.js +38 -0
- package/dist/rules/utils.d.ts +4 -0
- package/dist/rules/utils.d.ts.map +1 -0
- package/dist/rules/utils.js +44 -0
- package/dist/types/chunks.d.ts +12 -0
- package/dist/types/chunks.d.ts.map +1 -0
- package/dist/types/chunks.js +16 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +30 -0
- package/dist/types/loader.d.ts +20 -0
- package/dist/types/loader.d.ts.map +1 -0
- package/dist/types/loader.js +16 -0
- package/dist/types/plugin.d.ts +96 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +16 -0
- package/dist/types/rules.d.ts +8 -0
- package/dist/types/rules.d.ts.map +1 -0
- package/dist/types/rules.js +16 -0
- package/dist/types/webpack.d.ts +15 -0
- package/dist/types/webpack.d.ts.map +1 -0
- package/dist/types/webpack.js +16 -0
- package/package.json +112 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var utils_exports = {};
|
|
20
|
+
__export(utils_exports, {
|
|
21
|
+
getDeclarationIdentifier: () => getDeclarationIdentifier,
|
|
22
|
+
getExportIdentifierStatement: () => getExportIdentifierStatement
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(utils_exports);
|
|
25
|
+
var import_lodash = require("lodash");
|
|
26
|
+
var import_ruleUtils = require("@rsdoctor/utils/ruleUtils");
|
|
27
|
+
function getDefaultExportIdentifier(node, module2, searchId) {
|
|
28
|
+
const { declaration } = node;
|
|
29
|
+
if (import_ruleUtils.parser.asserts.isLiteral(declaration) && declaration.loc) {
|
|
30
|
+
return module2.getStatement(declaration.loc);
|
|
31
|
+
}
|
|
32
|
+
if (import_ruleUtils.parser.asserts.isIdentifier(declaration)) {
|
|
33
|
+
if (searchId) {
|
|
34
|
+
const result = getDeclarationIdentifier(declaration.name, module2);
|
|
35
|
+
if (result) {
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
} else if (declaration.loc) {
|
|
39
|
+
return module2.getStatement(declaration.loc);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (import_ruleUtils.parser.asserts.isClassDeclaration(declaration) || import_ruleUtils.parser.asserts.isFunctionDeclaration(declaration)) {
|
|
43
|
+
if (declaration.id?.loc) {
|
|
44
|
+
return module2.getStatement(declaration.id.loc);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const startLine = node.declaration.loc?.start.line;
|
|
48
|
+
if (!(0, import_lodash.isNumber)(startLine)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const { transformed } = module2.getSource();
|
|
52
|
+
const endColumn = transformed.split("\n")[startLine - 1].length - 1;
|
|
53
|
+
return module2.getStatement({
|
|
54
|
+
start: {
|
|
55
|
+
line: startLine,
|
|
56
|
+
column: 0
|
|
57
|
+
},
|
|
58
|
+
end: {
|
|
59
|
+
line: startLine,
|
|
60
|
+
column: endColumn
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function getExportIdentifierStatement(name, module2) {
|
|
65
|
+
const ast = module2.getProgram();
|
|
66
|
+
if (!ast) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for (const node of ast.body) {
|
|
70
|
+
if (import_ruleUtils.parser.asserts.isExportDefaultDeclaration(node)) {
|
|
71
|
+
const result = getDefaultExportIdentifier(node, module2, false);
|
|
72
|
+
if (result) {
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const id = import_ruleUtils.parser.utils.getIdentifierInExport(name, node);
|
|
77
|
+
if (id?.loc) {
|
|
78
|
+
return module2.getStatement(id.loc);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function getDeclarationIdentifier(name, module2) {
|
|
83
|
+
const ast = module2.getProgram();
|
|
84
|
+
if (!ast) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
for (const node of ast.body) {
|
|
88
|
+
const id = import_ruleUtils.parser.utils.getIdentifierInDeclaration(name, node);
|
|
89
|
+
if (id?.loc) {
|
|
90
|
+
return module2.getStatement(id.loc);
|
|
91
|
+
}
|
|
92
|
+
if (import_ruleUtils.parser.asserts.isExportNamedDeclaration(node) && node.declaration) {
|
|
93
|
+
const id2 = import_ruleUtils.parser.utils.getIdentifierInDeclaration(
|
|
94
|
+
name,
|
|
95
|
+
node.declaration
|
|
96
|
+
);
|
|
97
|
+
if (id2?.loc) {
|
|
98
|
+
return module2.getStatement(id2.loc);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (name === "default" && import_ruleUtils.parser.asserts.isExportDefaultDeclaration(node)) {
|
|
102
|
+
const result = getDefaultExportIdentifier(node, module2, true);
|
|
103
|
+
if (result) {
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
110
|
+
0 && (module.exports = {
|
|
111
|
+
getDeclarationIdentifier,
|
|
112
|
+
getExportIdentifierStatement
|
|
113
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SourceMapConsumer } from 'source-map';
|
|
2
|
+
import * as Webpack from 'webpack';
|
|
3
|
+
import { Node } from '@rsdoctor/utils/ruleUtils';
|
|
4
|
+
import { Plugin } from '@rsdoctor/types';
|
|
5
|
+
import { ModuleGraph } from '@rsdoctor/graph';
|
|
6
|
+
export interface TransformContext {
|
|
7
|
+
astCache?: Map<Webpack.NormalModule, Node.Program>;
|
|
8
|
+
packagePathMap?: Map<string, string>;
|
|
9
|
+
getSourceMap?(module: string): Promise<SourceMapConsumer | undefined>;
|
|
10
|
+
}
|
|
11
|
+
export declare function appendModuleGraphByCompilation(compilation: Plugin.BaseCompilation, graph: ModuleGraph, features?: Plugin.RsdoctorWebpackPluginFeatures, context?: TransformContext): Promise<ModuleGraph>;
|
|
12
|
+
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../../src/build-utils/build/module-graph/webpack/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAU,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAmBnE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CACvE;AAoND,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,CAAC,eAAe,EACnC,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,6BAA6B,EAC/C,OAAO,CAAC,EAAE,gBAAgB,wBA2B3B"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var transform_exports = {};
|
|
20
|
+
__export(transform_exports, {
|
|
21
|
+
appendModuleGraphByCompilation: () => appendModuleGraphByCompilation
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(transform_exports);
|
|
24
|
+
var import_build = require("@rsdoctor/utils/build");
|
|
25
|
+
var import_compatible = require("../../../common/webpack/compatible");
|
|
26
|
+
var import_module_graph = require("../../../common/module-graph");
|
|
27
|
+
var import_parser = require("../parser");
|
|
28
|
+
var import_lodash = require("lodash");
|
|
29
|
+
async function readFile(target, wbFs) {
|
|
30
|
+
if (wbFs?.fs?.readFile) {
|
|
31
|
+
const result = new Promise((resolve, reject) => {
|
|
32
|
+
wbFs.fs.readFile(target, (err, content) => {
|
|
33
|
+
if (err) {
|
|
34
|
+
reject(err);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (content) {
|
|
38
|
+
resolve(Buffer.from(content));
|
|
39
|
+
} else {
|
|
40
|
+
resolve();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}).catch(() => {
|
|
44
|
+
});
|
|
45
|
+
if (result) {
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return import_build.File.fse.readFile(target).catch(() => {
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function appendDependency(webpackDep, module2, webpackGraph, graph) {
|
|
53
|
+
const resolvedWebpackModule = (0, import_compatible.getResolveModule)(
|
|
54
|
+
webpackDep,
|
|
55
|
+
webpackGraph
|
|
56
|
+
);
|
|
57
|
+
if (!resolvedWebpackModule) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const rawRequest = (0, import_compatible.getWebpackDependencyRequest)(
|
|
61
|
+
webpackDep,
|
|
62
|
+
resolvedWebpackModule
|
|
63
|
+
);
|
|
64
|
+
const resolveRequest = (0, import_compatible.getWebpackModulePath)(resolvedWebpackModule);
|
|
65
|
+
const request = rawRequest ?? resolveRequest;
|
|
66
|
+
if (!module2.getDependencyByRequest(request)) {
|
|
67
|
+
const depModule = graph.getModuleByFile(resolveRequest);
|
|
68
|
+
if (depModule) {
|
|
69
|
+
const dep = module2.addDependency(
|
|
70
|
+
request,
|
|
71
|
+
depModule,
|
|
72
|
+
(0, import_module_graph.getImportKind)(webpackDep)
|
|
73
|
+
);
|
|
74
|
+
if (dep) {
|
|
75
|
+
graph.addDependency(dep);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const dependency = module2.getDependencyByRequest(request);
|
|
80
|
+
if (dependency) {
|
|
81
|
+
dependency.setBuildMeta({
|
|
82
|
+
exportsType: (0, import_compatible.getModuleExportsType)(
|
|
83
|
+
resolvedWebpackModule,
|
|
84
|
+
webpackGraph,
|
|
85
|
+
module2.meta.strictHarmonyModule
|
|
86
|
+
)
|
|
87
|
+
});
|
|
88
|
+
const statement = (0, import_compatible.getDependencyPosition)(webpackDep, module2, false);
|
|
89
|
+
if (statement) {
|
|
90
|
+
dependency.addStatement(statement);
|
|
91
|
+
}
|
|
92
|
+
dependency.statements.forEach((state) => {
|
|
93
|
+
state.position.source = state.module.getSourceRange(
|
|
94
|
+
state.position.transformed
|
|
95
|
+
);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function getModuleSource(modulePath, wbFs, sourceMap) {
|
|
100
|
+
if (sourceMap) {
|
|
101
|
+
try {
|
|
102
|
+
const contentFromSourceMap = sourceMap.sourceContentFor(modulePath);
|
|
103
|
+
if (contentFromSourceMap) {
|
|
104
|
+
return Buffer.from(contentFromSourceMap);
|
|
105
|
+
}
|
|
106
|
+
} catch (e) {
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return process.env.NODE_ENV === "test" ? Buffer.from("test code") : readFile(modulePath, wbFs);
|
|
110
|
+
}
|
|
111
|
+
async function appendModuleData(origin, webpackGraph, graph, wbFs, features, context) {
|
|
112
|
+
const module2 = graph.getModuleByWebpackId((0, import_compatible.getWebpackModuleId)(origin));
|
|
113
|
+
if (!origin || !module2) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const { getSourceMap, astCache, packagePathMap } = context ?? {};
|
|
117
|
+
try {
|
|
118
|
+
const sourceMap = await getSourceMap?.(module2.path);
|
|
119
|
+
const source = await getModuleSource(module2.path, wbFs, sourceMap) ?? Buffer.from("");
|
|
120
|
+
if (sourceMap) {
|
|
121
|
+
module2.setSourceMap(sourceMap);
|
|
122
|
+
}
|
|
123
|
+
if (astCache?.has(origin)) {
|
|
124
|
+
const program = astCache.get(origin);
|
|
125
|
+
module2.setProgram(program);
|
|
126
|
+
module2.meta.hasSetEsModuleStatement = (0, import_parser.hasSetEsModuleStatement)(program);
|
|
127
|
+
}
|
|
128
|
+
const transformed = (0, import_compatible.isExternalModule)(origin) ? "" : module2.getSource().transformed.length > 0 ? module2.getSource().transformed : (0, import_lodash.isFunction)(origin?.originalSource) ? origin.originalSource()?.source()?.toString() : "";
|
|
129
|
+
const transformedSize = (0, import_compatible.isExternalModule)(origin) ? 0 : module2.getSize().transformedSize > 0 ? module2.getSize().transformedSize : Buffer.from(transformed).byteLength;
|
|
130
|
+
module2.setSource({
|
|
131
|
+
transformed,
|
|
132
|
+
source: source.toString()
|
|
133
|
+
});
|
|
134
|
+
module2.setSize({
|
|
135
|
+
transformedSize,
|
|
136
|
+
sourceSize: source.byteLength
|
|
137
|
+
});
|
|
138
|
+
let packageData;
|
|
139
|
+
if (packagePathMap && origin.resourceResolveData) {
|
|
140
|
+
let { descriptionFileRoot: root } = origin.resourceResolveData;
|
|
141
|
+
const { descriptionFileData: data } = origin.resourceResolveData;
|
|
142
|
+
if (root && data.name && data.version) {
|
|
143
|
+
if (packagePathMap.has(root)) {
|
|
144
|
+
root = packagePathMap.get(root);
|
|
145
|
+
} else {
|
|
146
|
+
const realpath = await import_build.File.fse.realpath(root);
|
|
147
|
+
root = realpath;
|
|
148
|
+
packagePathMap.set(root, realpath);
|
|
149
|
+
}
|
|
150
|
+
packageData = {
|
|
151
|
+
...origin.resourceResolveData.descriptionFileData,
|
|
152
|
+
root
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
module2.meta.strictHarmonyModule = origin.buildMeta?.strictHarmonyModule ?? false;
|
|
157
|
+
module2.meta.packageData = packageData;
|
|
158
|
+
if (!features?.lite && origin?.dependencies) {
|
|
159
|
+
Array.from(origin.dependencies).filter((item) => (0, import_module_graph.isImportDependency)(item)).concat(
|
|
160
|
+
origin.blocks.reduce(
|
|
161
|
+
(ans, item) => ans.concat(item.dependencies),
|
|
162
|
+
[]
|
|
163
|
+
)
|
|
164
|
+
).forEach((dep) => appendDependency(dep, module2, webpackGraph, graph));
|
|
165
|
+
}
|
|
166
|
+
} catch (e) {
|
|
167
|
+
console.error(`module ${module2.path} transform has error:`, e);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async function appendModuleGraphByCompilation(compilation, graph, features, context) {
|
|
171
|
+
try {
|
|
172
|
+
const { moduleGraph: webpackGraph, fileSystemInfo } = compilation;
|
|
173
|
+
const allModules = (0, import_compatible.getAllModules)(compilation);
|
|
174
|
+
await Promise.all(
|
|
175
|
+
allModules.map((module2) => {
|
|
176
|
+
return appendModuleData(
|
|
177
|
+
module2,
|
|
178
|
+
webpackGraph,
|
|
179
|
+
graph,
|
|
180
|
+
fileSystemInfo,
|
|
181
|
+
features,
|
|
182
|
+
context
|
|
183
|
+
);
|
|
184
|
+
})
|
|
185
|
+
);
|
|
186
|
+
(0, import_module_graph.removeNoImportStyle)(graph);
|
|
187
|
+
return graph;
|
|
188
|
+
} catch (e) {
|
|
189
|
+
return graph;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
193
|
+
0 && (module.exports = {
|
|
194
|
+
appendModuleGraphByCompilation
|
|
195
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/build-utils/build/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var utils_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(utils_exports);
|
|
18
|
+
__reExport(utils_exports, require("./loader"), module.exports);
|
|
19
|
+
__reExport(utils_exports, require("./plugin"), module.exports);
|
|
20
|
+
__reExport(utils_exports, require("./parseBundle"), module.exports);
|
|
21
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
22
|
+
0 && (module.exports = {
|
|
23
|
+
...require("./loader"),
|
|
24
|
+
...require("./plugin"),
|
|
25
|
+
...require("./parseBundle")
|
|
26
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { Common, Plugin } from '@rsdoctor/types';
|
|
3
|
+
import { SourceMapInput as WebpackSourceMapInput } from '../../../types';
|
|
4
|
+
export declare function parsePathQueryFragment(str: string): {
|
|
5
|
+
path: string;
|
|
6
|
+
query: string;
|
|
7
|
+
fragment: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function loadLoaderModule(loaderPath: string, cwd?: string): {
|
|
10
|
+
default: Plugin.LoaderDefinition<Common.PlainObject, {}>;
|
|
11
|
+
pitch: Plugin.PitchLoaderDefinitionFunction;
|
|
12
|
+
raw: boolean | void;
|
|
13
|
+
};
|
|
14
|
+
export declare function getLoaderOptions<T>(loaderContext: Plugin.LoaderContext<T>): T;
|
|
15
|
+
export declare function extractLoaderName(loaderPath: string, cwd?: string): string;
|
|
16
|
+
export declare function mapEachRules<T extends Plugin.BuildRuleSetRule>(rules: T[], callback: (rule: T) => T): T[];
|
|
17
|
+
export declare function addProbeLoader2Rules<T extends Plugin.BuildRuleSetRule>(rules: T[], loaderName: string, appendRules: (rule: T, index: number) => T, strict?: boolean): T[];
|
|
18
|
+
export declare function createLoaderContextTrap(this: Plugin.LoaderContext<Common.PlainObject>, final: (err: Error | null | undefined, res: string | Buffer | null, sourceMap?: WebpackSourceMapInput) => void): Plugin.LoaderContext<Common.PlainObject<any>>;
|
|
19
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/build-utils/build/utils/loader.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAQ,cAAc,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAO/E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAOA;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,SAAgB,GAClB;IACD,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAC5C,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CACrB,CAiBA;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAQzE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAqBtE;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,gBAAgB,EAC5D,KAAK,EAAE,CAAC,EAAE,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACvB,CAAC,EAAE,CAgFL;AAyBD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,gBAAgB,EACpE,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAC1C,MAAM,CAAC,EAAE,OAAO,GACf,CAAC,EAAE,CAgEL;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAC9C,KAAK,EAAE,CACL,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,EAC7B,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC3B,SAAS,CAAC,EAAE,qBAAqB,KAC9B,IAAI,iDAsFV"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var loader_exports = {};
|
|
30
|
+
__export(loader_exports, {
|
|
31
|
+
addProbeLoader2Rules: () => addProbeLoader2Rules,
|
|
32
|
+
createLoaderContextTrap: () => createLoaderContextTrap,
|
|
33
|
+
extractLoaderName: () => extractLoaderName,
|
|
34
|
+
getLoaderOptions: () => getLoaderOptions,
|
|
35
|
+
loadLoaderModule: () => loadLoaderModule,
|
|
36
|
+
mapEachRules: () => mapEachRules,
|
|
37
|
+
parsePathQueryFragment: () => parsePathQueryFragment
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(loader_exports);
|
|
40
|
+
var import_loader_utils = require("loader-utils");
|
|
41
|
+
var import_path = __toESM(require("path"));
|
|
42
|
+
var import_lodash = require("lodash");
|
|
43
|
+
var import_common = require("@rsdoctor/utils/common");
|
|
44
|
+
const PATH_QUERY_FRAGMENT_REGEXP = /^((?:\0.|[^?#\0])*)(\?(?:\0.|[^#\0])*)?(#.*)?$/;
|
|
45
|
+
function parsePathQueryFragment(str) {
|
|
46
|
+
const match = PATH_QUERY_FRAGMENT_REGEXP.exec(str);
|
|
47
|
+
return {
|
|
48
|
+
path: match?.[1].replace(/\0(.)/g, "$1") || "",
|
|
49
|
+
query: match?.[2] ? match[2].replace(/\0(.)/g, "$1") : "",
|
|
50
|
+
fragment: match?.[3] || ""
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function loadLoaderModule(loaderPath, cwd = process.cwd()) {
|
|
54
|
+
const cleanLoaderPath = parsePathQueryFragment(loaderPath).path;
|
|
55
|
+
const mod = process.env.DOCTOR_TEST ? require(import_path.default.resolve(cwd, cleanLoaderPath)) : require(require.resolve(cleanLoaderPath, {
|
|
56
|
+
paths: [cwd, import_path.default.resolve(cwd, "node_modules")]
|
|
57
|
+
}));
|
|
58
|
+
const isESM = mod.__esModule && typeof mod.default === "function";
|
|
59
|
+
return {
|
|
60
|
+
default: isESM ? mod.default : typeof mod === "function" ? mod : null,
|
|
61
|
+
pitch: mod.default?.pitch || mod.pitch,
|
|
62
|
+
raw: mod.default?.raw || mod.raw || false
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function getLoaderOptions(loaderContext) {
|
|
66
|
+
if (typeof loaderContext.getOptions === "function") {
|
|
67
|
+
return loaderContext.getOptions();
|
|
68
|
+
}
|
|
69
|
+
return (0, import_loader_utils.getOptions)(loaderContext);
|
|
70
|
+
}
|
|
71
|
+
function extractLoaderName(loaderPath, cwd = "") {
|
|
72
|
+
let res = loaderPath.replace(cwd, "");
|
|
73
|
+
if (!import_path.default.isAbsolute(res))
|
|
74
|
+
return res;
|
|
75
|
+
const nms = "/node_modules/";
|
|
76
|
+
const idx = res.lastIndexOf(nms);
|
|
77
|
+
if (idx !== -1) {
|
|
78
|
+
res = res.slice(idx + nms.length);
|
|
79
|
+
const ln = "loader";
|
|
80
|
+
const lnIdx = res.lastIndexOf(ln);
|
|
81
|
+
if (lnIdx > -1) {
|
|
82
|
+
res = res.slice(0, lnIdx + ln.length);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return res;
|
|
86
|
+
}
|
|
87
|
+
function mapEachRules(rules, callback) {
|
|
88
|
+
return rules.map((rule) => {
|
|
89
|
+
if (typeof rule === "string") {
|
|
90
|
+
return callback({
|
|
91
|
+
loader: rule
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (rule.loader && typeof rule.loader === "string") {
|
|
95
|
+
return callback(rule);
|
|
96
|
+
}
|
|
97
|
+
if (Array.isArray(rule.loaders)) {
|
|
98
|
+
const { loaders, ...rest } = rule;
|
|
99
|
+
return {
|
|
100
|
+
...rest,
|
|
101
|
+
use: mapEachRules(loaders, callback)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (rule.use && (!Array.isArray(rule.use) || rule.use.length !== 0)) {
|
|
105
|
+
if (typeof rule.use === "string") {
|
|
106
|
+
return {
|
|
107
|
+
...rule,
|
|
108
|
+
use: mapEachRules(
|
|
109
|
+
[
|
|
110
|
+
{
|
|
111
|
+
loader: rule.use,
|
|
112
|
+
options: rule.options
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
callback
|
|
116
|
+
)
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (typeof rule.use === "function") {
|
|
120
|
+
const funcUse = rule.use;
|
|
121
|
+
const newRule = {
|
|
122
|
+
...rule,
|
|
123
|
+
use: (...args) => {
|
|
124
|
+
const rules2 = funcUse.apply(null, args);
|
|
125
|
+
return mapEachRules(rules2, callback);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
return newRule;
|
|
129
|
+
}
|
|
130
|
+
if (Array.isArray(rule.use)) {
|
|
131
|
+
return {
|
|
132
|
+
...rule,
|
|
133
|
+
use: mapEachRules(rule.use, callback)
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
...rule,
|
|
138
|
+
use: mapEachRules([rule.use], callback)
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
if ("rules" in rule && Array.isArray(rule.rules)) {
|
|
142
|
+
return {
|
|
143
|
+
...rule,
|
|
144
|
+
rules: mapEachRules(rule.rules, callback)
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (Array.isArray(rule.oneOf)) {
|
|
148
|
+
return {
|
|
149
|
+
...rule,
|
|
150
|
+
oneOf: mapEachRules(rule.oneOf, callback)
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return rule;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
function getLoaderNameMatch(_r, loaderName, strict = true) {
|
|
157
|
+
if (!strict) {
|
|
158
|
+
return typeof _r === "object" && typeof _r?.loader === "string" && _r.loader.includes(loaderName) || typeof _r === "string" && _r.includes(loaderName);
|
|
159
|
+
}
|
|
160
|
+
return typeof _r === "object" && typeof _r?.loader === "string" && _r.loader === loaderName || typeof _r === "string" && _r === loaderName;
|
|
161
|
+
}
|
|
162
|
+
function addProbeLoader2Rules(rules, loaderName, appendRules, strict) {
|
|
163
|
+
return rules.map((rule) => {
|
|
164
|
+
if (!rule || typeof rule === "string")
|
|
165
|
+
return rule;
|
|
166
|
+
if (getLoaderNameMatch(rule, loaderName, strict)) {
|
|
167
|
+
const _rule = {
|
|
168
|
+
...rule,
|
|
169
|
+
use: [
|
|
170
|
+
{
|
|
171
|
+
loader: rule.loader,
|
|
172
|
+
options: rule.options
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
loader: void 0,
|
|
176
|
+
options: void 0
|
|
177
|
+
};
|
|
178
|
+
return appendRules(_rule, 0);
|
|
179
|
+
}
|
|
180
|
+
if (rule.use) {
|
|
181
|
+
if (Array.isArray(rule.use)) {
|
|
182
|
+
const _index = (0, import_lodash.findIndex)(
|
|
183
|
+
rule.use,
|
|
184
|
+
(_r) => getLoaderNameMatch(_r, loaderName, strict)
|
|
185
|
+
);
|
|
186
|
+
if (_index > -1) {
|
|
187
|
+
return appendRules(rule, _index);
|
|
188
|
+
}
|
|
189
|
+
} else if (typeof rule.use === "object" && !Array.isArray(rule.use) && typeof rule.use !== "function") {
|
|
190
|
+
rule.use = [
|
|
191
|
+
{
|
|
192
|
+
...rule.use
|
|
193
|
+
}
|
|
194
|
+
];
|
|
195
|
+
return appendRules(rule, 0);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if ("oneOf" in rule && rule.oneOf) {
|
|
199
|
+
return {
|
|
200
|
+
...rule,
|
|
201
|
+
oneOf: addProbeLoader2Rules(
|
|
202
|
+
rule.oneOf,
|
|
203
|
+
loaderName,
|
|
204
|
+
appendRules
|
|
205
|
+
)
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
if ("rules" in rule && rule.rules) {
|
|
209
|
+
return {
|
|
210
|
+
...rule,
|
|
211
|
+
rules: addProbeLoader2Rules(
|
|
212
|
+
rule.rules,
|
|
213
|
+
loaderName,
|
|
214
|
+
appendRules
|
|
215
|
+
)
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
return rule;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function createLoaderContextTrap(final) {
|
|
222
|
+
const cb = this.callback;
|
|
223
|
+
let callback = (...args) => {
|
|
224
|
+
final(args[0], args[1] ?? null, args[2]);
|
|
225
|
+
return cb.call(this, ...args);
|
|
226
|
+
};
|
|
227
|
+
const ac = this.async;
|
|
228
|
+
let async = (...args) => {
|
|
229
|
+
const cb2 = ac(...args);
|
|
230
|
+
return (...args2) => {
|
|
231
|
+
final(args2[0], args2[1] ?? null, args2[2]);
|
|
232
|
+
return cb2(...args2);
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
const trap = new Proxy(this, {
|
|
236
|
+
get(target, key, receiver) {
|
|
237
|
+
switch (key) {
|
|
238
|
+
case "async":
|
|
239
|
+
return async;
|
|
240
|
+
case "callback":
|
|
241
|
+
return callback;
|
|
242
|
+
case "query":
|
|
243
|
+
if (target.query) {
|
|
244
|
+
if (typeof target.query === "string") {
|
|
245
|
+
const res = target.query.replace(
|
|
246
|
+
// eslint-disable-next-line no-useless-escape
|
|
247
|
+
new RegExp(
|
|
248
|
+
`"${import_common.Loader.LoaderInternalPropertyName}":{[^}]*},{0,1}`
|
|
249
|
+
),
|
|
250
|
+
""
|
|
251
|
+
);
|
|
252
|
+
return res;
|
|
253
|
+
}
|
|
254
|
+
if (typeof target.query === "object") {
|
|
255
|
+
const options = target.query[import_common.Loader.LoaderInternalPropertyName];
|
|
256
|
+
if (options.hasOptions) {
|
|
257
|
+
return (0, import_lodash.omit)(target.query, [import_common.Loader.LoaderInternalPropertyName]);
|
|
258
|
+
}
|
|
259
|
+
const innerLoaderPath = options?.loader;
|
|
260
|
+
const loaderQuery = parsePathQueryFragment(innerLoaderPath).query;
|
|
261
|
+
return loaderQuery;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return Reflect.get(target, key, receiver);
|
|
265
|
+
case "getOptions":
|
|
266
|
+
return typeof target.getOptions === "function" ? () => (0, import_lodash.omit)(target.getOptions(), [import_common.Loader.LoaderInternalPropertyName]) : Reflect.get(target, key, receiver);
|
|
267
|
+
default:
|
|
268
|
+
const _target = target;
|
|
269
|
+
return _target[key];
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
set(target, key, value, receiver) {
|
|
273
|
+
switch (key) {
|
|
274
|
+
case "async":
|
|
275
|
+
async = value;
|
|
276
|
+
return true;
|
|
277
|
+
case "callback":
|
|
278
|
+
callback = value;
|
|
279
|
+
return true;
|
|
280
|
+
default:
|
|
281
|
+
return Reflect.set(target, key, value, receiver);
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
defineProperty(target, p, attrs) {
|
|
285
|
+
return Reflect.defineProperty(target, p, attrs);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
return trap;
|
|
289
|
+
}
|
|
290
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
291
|
+
0 && (module.exports = {
|
|
292
|
+
addProbeLoader2Rules,
|
|
293
|
+
createLoaderContextTrap,
|
|
294
|
+
extractLoaderName,
|
|
295
|
+
getLoaderOptions,
|
|
296
|
+
loadLoaderModule,
|
|
297
|
+
mapEachRules,
|
|
298
|
+
parsePathQueryFragment
|
|
299
|
+
});
|