@umijs/mfsu 4.0.8 → 4.0.11

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 (71) hide show
  1. package/compiled/is-absolute-url/LICENSE +9 -0
  2. package/compiled/is-absolute-url/index.d.ts +22 -0
  3. package/compiled/is-absolute-url/index.js +1 -0
  4. package/compiled/is-absolute-url/package.json +1 -0
  5. package/dist/babelPlugins/awaitImport/MFImport.d.ts +0 -0
  6. package/dist/babelPlugins/awaitImport/MFImport.js +1 -1
  7. package/dist/babelPlugins/awaitImport/awaitImport.d.ts +0 -0
  8. package/dist/babelPlugins/awaitImport/awaitImport.js +1 -1
  9. package/dist/babelPlugins/awaitImport/checkMatch.d.ts +0 -0
  10. package/dist/babelPlugins/awaitImport/checkMatch.js +129 -132
  11. package/dist/babelPlugins/awaitImport/getAliasedPath.d.ts +0 -0
  12. package/dist/babelPlugins/awaitImport/getAliasedPath.js +1 -1
  13. package/dist/babelPlugins/awaitImport/getRealPath.d.ts +0 -0
  14. package/dist/babelPlugins/awaitImport/getRealPath.js +1 -1
  15. package/dist/babelPlugins/awaitImport/isExternals.d.ts +0 -0
  16. package/dist/babelPlugins/awaitImport/isExternals.js +1 -1
  17. package/dist/babelPlugins/awaitImport/parseSpecifiers.d.ts +0 -0
  18. package/dist/babelPlugins/awaitImport/parseSpecifiers.js +1 -1
  19. package/dist/constants.d.ts +0 -0
  20. package/dist/constants.js +1 -1
  21. package/dist/dep/dep.d.ts +0 -0
  22. package/dist/dep/dep.js +112 -83
  23. package/dist/dep/getCJSExports.d.ts +0 -0
  24. package/dist/dep/getCJSExports.js +1 -1
  25. package/dist/dep/getExposeFromContent.d.ts +0 -0
  26. package/dist/dep/getExposeFromContent.js +1 -1
  27. package/dist/dep/getModuleExports.d.ts +0 -0
  28. package/dist/dep/getModuleExports.js +1 -1
  29. package/dist/depBuilder/depBuilder.d.ts +0 -0
  30. package/dist/depBuilder/depBuilder.js +191 -158
  31. package/dist/depBuilder/getESBuildEntry.d.ts +0 -0
  32. package/dist/depBuilder/getESBuildEntry.js +1 -1
  33. package/dist/depInfo.d.ts +0 -0
  34. package/dist/depInfo.js +75 -53
  35. package/dist/esbuildHandlers/autoCssModules.d.ts +0 -0
  36. package/dist/esbuildHandlers/autoCssModules.js +43 -22
  37. package/dist/esbuildHandlers/awaitImport/index.d.ts +0 -0
  38. package/dist/esbuildHandlers/awaitImport/index.js +1 -1
  39. package/dist/index.d.ts +0 -0
  40. package/dist/index.js +1 -1
  41. package/dist/loader/esbuild.d.ts +0 -0
  42. package/dist/loader/esbuild.js +1 -1
  43. package/dist/mfsu/mfsu.d.ts +4 -0
  44. package/dist/mfsu/mfsu.js +236 -257
  45. package/dist/mfsu/strategyCompileTime.d.ts +0 -0
  46. package/dist/mfsu/strategyCompileTime.js +131 -99
  47. package/dist/mfsu/strategyStaticAnalyze.d.ts +0 -0
  48. package/dist/mfsu/strategyStaticAnalyze.js +151 -115
  49. package/dist/moduleGraph.d.ts +0 -0
  50. package/dist/moduleGraph.js +227 -186
  51. package/dist/staticDepInfo/importParser.d.ts +0 -0
  52. package/dist/staticDepInfo/importParser.js +1 -1
  53. package/dist/staticDepInfo/simulations/babel-plugin-import.d.ts +0 -0
  54. package/dist/staticDepInfo/simulations/babel-plugin-import.js +99 -91
  55. package/dist/staticDepInfo/staticDepInfo.d.ts +0 -0
  56. package/dist/staticDepInfo/staticDepInfo.js +239 -197
  57. package/dist/types.d.ts +0 -0
  58. package/dist/types.js +1 -1
  59. package/dist/utils/makeArray.d.ts +0 -0
  60. package/dist/utils/makeArray.js +1 -1
  61. package/dist/utils/trimFileContent.d.ts +0 -0
  62. package/dist/utils/trimFileContent.js +1 -1
  63. package/dist/webpackPlugins/buildDepPlugin.d.ts +0 -0
  64. package/dist/webpackPlugins/buildDepPlugin.js +1 -1
  65. package/dist/webpackPlugins/depChunkIdPrefixPlugin.d.ts +0 -0
  66. package/dist/webpackPlugins/depChunkIdPrefixPlugin.js +1 -1
  67. package/dist/webpackPlugins/stripSourceMapUrlPlugin.d.ts +0 -0
  68. package/dist/webpackPlugins/stripSourceMapUrlPlugin.js +1 -1
  69. package/dist/webpackPlugins/writeCachePlugin.d.ts +0 -0
  70. package/dist/webpackPlugins/writeCachePlugin.js +1 -1
  71. package/package.json +8 -6
@@ -1,100 +1,132 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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 });
4
10
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StrategyCompileTime = void 0;
7
- const utils_1 = require("@umijs/utils");
8
- const awaitImport_1 = __importDefault(require("../babelPlugins/awaitImport/awaitImport"));
9
- const getRealPath_1 = require("../babelPlugins/awaitImport/getRealPath");
10
- const dep_1 = require("../dep/dep");
11
- const depInfo_1 = require("../depInfo");
12
- class StrategyCompileTime {
13
- constructor({ mfsu }) {
14
- this.mfsu = mfsu;
15
- this.depInfo = new depInfo_1.DepInfo({ mfsu });
16
- }
17
- getDepModules() {
18
- return this.depInfo.getDepModules();
19
- }
20
- getCacheFilePath() {
21
- return this.depInfo.getCacheFilePath();
22
- }
23
- init() { }
24
- shouldBuild() {
25
- return this.depInfo.shouldBuild();
26
- }
27
- loadCache() {
28
- this.depInfo.loadCache();
29
- }
30
- writeCache() {
31
- this.depInfo.writeCache();
32
- }
33
- refresh() {
34
- this.depInfo.snapshot();
35
- }
36
- getBabelPlugin() {
37
- return [awaitImport_1.default, this.getAwaitImportCollectOpts()];
38
- }
39
- getBuildDepPlugConfig() {
40
- const mfsu = this.mfsu;
41
- return {
42
- onCompileDone: () => {
43
- if (mfsu.depBuilder.isBuilding) {
44
- mfsu.buildDepsAgain = true;
45
- }
46
- else {
47
- mfsu
48
- .buildDeps()
49
- .then(() => {
50
- mfsu.onProgress({
51
- done: true,
52
- });
53
- })
54
- .catch((e) => {
55
- utils_1.printHelp.runtime(e);
56
- mfsu.onProgress({
57
- done: true,
58
- });
59
- });
60
- }
61
- },
62
- };
63
- }
64
- getAwaitImportCollectOpts() {
65
- const mfsuOpts = this.mfsu.opts;
66
- const mfsu = this.mfsu;
67
- return {
68
- onTransformDeps: () => { },
69
- onCollect: ({ file, data, }) => {
70
- this.depInfo.moduleGraph.onFileChange({
71
- file,
72
- // @ts-ignore
73
- deps: [
74
- ...Array.from(data.matched).map((item) => ({
75
- file: item.sourceValue,
76
- isDependency: true,
77
- version: dep_1.Dep.getDepVersion({
78
- dep: item.sourceValue,
79
- cwd: mfsuOpts.cwd,
80
- }),
81
- })),
82
- ...Array.from(data.unMatched).map((item) => ({
83
- file: (0, getRealPath_1.getRealPath)({
84
- file,
85
- dep: item.sourceValue,
86
- }),
87
- isDependency: false,
88
- })),
89
- ],
90
- });
91
- },
92
- exportAllMembers: mfsuOpts.exportAllMembers,
93
- unMatchLibs: mfsuOpts.unMatchLibs,
94
- remoteName: mfsuOpts.mfName,
95
- alias: mfsu.alias,
96
- externals: mfsu.externals,
97
- };
98
- }
99
- }
100
- exports.StrategyCompileTime = StrategyCompileTime;
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(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/mfsu/strategyCompileTime.ts
23
+ var strategyCompileTime_exports = {};
24
+ __export(strategyCompileTime_exports, {
25
+ StrategyCompileTime: () => StrategyCompileTime
26
+ });
27
+ module.exports = __toCommonJS(strategyCompileTime_exports);
28
+ var import_utils = require("@umijs/utils");
29
+ var import_awaitImport = __toESM(require("../babelPlugins/awaitImport/awaitImport"));
30
+ var import_getRealPath = require("../babelPlugins/awaitImport/getRealPath");
31
+ var import_dep = require("../dep/dep");
32
+ var import_depInfo = require("../depInfo");
33
+ var StrategyCompileTime = class {
34
+ constructor({ mfsu }) {
35
+ this.mfsu = mfsu;
36
+ this.depInfo = new import_depInfo.DepInfo({ mfsu });
37
+ }
38
+ getDepModules() {
39
+ return this.depInfo.getDepModules();
40
+ }
41
+ getCacheFilePath() {
42
+ return this.depInfo.getCacheFilePath();
43
+ }
44
+ init() {
45
+ }
46
+ shouldBuild() {
47
+ return this.depInfo.shouldBuild();
48
+ }
49
+ loadCache() {
50
+ this.depInfo.loadCache();
51
+ }
52
+ writeCache() {
53
+ this.depInfo.writeCache();
54
+ }
55
+ refresh() {
56
+ this.depInfo.snapshot();
57
+ }
58
+ getBabelPlugin() {
59
+ return [import_awaitImport.default, this.getAwaitImportCollectOpts()];
60
+ }
61
+ getBuildDepPlugConfig() {
62
+ const mfsu = this.mfsu;
63
+ return {
64
+ onCompileDone: () => {
65
+ if (mfsu.depBuilder.isBuilding) {
66
+ mfsu.buildDepsAgain = true;
67
+ } else {
68
+ mfsu.buildDeps().then(() => {
69
+ mfsu.onProgress({
70
+ done: true
71
+ });
72
+ }).catch((e) => {
73
+ import_utils.printHelp.runtime(e);
74
+ mfsu.onProgress({
75
+ done: true
76
+ });
77
+ });
78
+ }
79
+ }
80
+ };
81
+ }
82
+ getAwaitImportCollectOpts() {
83
+ const mfsuOpts = this.mfsu.opts;
84
+ const mfsu = this.mfsu;
85
+ const userUnMatches = mfsuOpts.unMatchLibs || [];
86
+ const sharedUnMatches = Object.keys(mfsuOpts.shared || {});
87
+ const remoteAliasUnMatches = (mfsuOpts.remoteAliases || []).map((str) => new RegExp(`^${str}`));
88
+ const unMatches = [
89
+ ...userUnMatches,
90
+ ...sharedUnMatches,
91
+ ...remoteAliasUnMatches
92
+ ];
93
+ return {
94
+ onTransformDeps: () => {
95
+ },
96
+ onCollect: ({
97
+ file,
98
+ data
99
+ }) => {
100
+ this.depInfo.moduleGraph.onFileChange({
101
+ file,
102
+ deps: [
103
+ ...Array.from(data.matched).map((item) => ({
104
+ file: item.sourceValue,
105
+ isDependency: true,
106
+ version: import_dep.Dep.getDepVersion({
107
+ dep: item.sourceValue,
108
+ cwd: mfsuOpts.cwd
109
+ })
110
+ })),
111
+ ...Array.from(data.unMatched).map((item) => ({
112
+ file: (0, import_getRealPath.getRealPath)({
113
+ file,
114
+ dep: item.sourceValue
115
+ }),
116
+ isDependency: false
117
+ }))
118
+ ]
119
+ });
120
+ },
121
+ exportAllMembers: mfsuOpts.exportAllMembers,
122
+ unMatchLibs: unMatches,
123
+ remoteName: mfsuOpts.mfName,
124
+ alias: mfsu.alias,
125
+ externals: mfsu.externals
126
+ };
127
+ }
128
+ };
129
+ // Annotate the CommonJS export names for ESM import in node:
130
+ 0 && (module.exports = {
131
+ StrategyCompileTime
132
+ });
File without changes
@@ -1,121 +1,157 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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 });
4
10
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StaticAnalyzeStrategy = void 0;
7
- const utils_1 = require("@umijs/utils");
8
- const getAliasedPath_1 = require("../babelPlugins/awaitImport/getAliasedPath");
9
- const MFImport_1 = __importDefault(require("../babelPlugins/awaitImport/MFImport"));
10
- const staticDepInfo_1 = require("../staticDepInfo/staticDepInfo");
11
- class StaticAnalyzeStrategy {
12
- constructor({ mfsu, srcCodeCache }) {
13
- this.mfsu = mfsu;
14
- this.staticDepInfo = new staticDepInfo_1.StaticDepInfo({
15
- mfsu,
16
- srcCodeCache,
17
- });
18
- }
19
- init() {
20
- this.staticDepInfo.init();
21
- }
22
- getDepModules() {
23
- return this.staticDepInfo.getDepModules();
24
- }
25
- getCacheFilePath() {
26
- return this.staticDepInfo.getCacheFilePath();
27
- }
28
- shouldBuild() {
29
- return this.staticDepInfo.shouldBuild();
30
- }
31
- writeCache() {
32
- this.staticDepInfo.writeCache();
33
- }
34
- getBabelPlugin() {
35
- return [MFImport_1.default, this.getMfImportOpts()];
36
- }
37
- getMfImportOpts() {
38
- const mfsu = this.mfsu;
39
- const mfsuOpts = this.mfsu.opts;
40
- return {
41
- resolveImportSource: (source) => {
42
- const depMat = this.staticDepInfo.getDependencies();
43
- const r = (0, getAliasedPath_1.getAliasedPathWithLoopDetect)({
44
- value: source,
45
- alias: mfsu.alias,
46
- });
47
- const m = depMat[r];
48
- if (m) {
49
- return m.replaceValue;
50
- }
51
- return r;
52
- },
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(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/mfsu/strategyStaticAnalyze.ts
23
+ var strategyStaticAnalyze_exports = {};
24
+ __export(strategyStaticAnalyze_exports, {
25
+ StaticAnalyzeStrategy: () => StaticAnalyzeStrategy
26
+ });
27
+ module.exports = __toCommonJS(strategyStaticAnalyze_exports);
28
+ var import_utils = require("@umijs/utils");
29
+ var import_checkMatch = require("../babelPlugins/awaitImport/checkMatch");
30
+ var import_MFImport = __toESM(require("../babelPlugins/awaitImport/MFImport"));
31
+ var import_staticDepInfo = require("../staticDepInfo/staticDepInfo");
32
+ var StaticAnalyzeStrategy = class {
33
+ constructor({ mfsu, srcCodeCache }) {
34
+ this.mfsu = mfsu;
35
+ this.staticDepInfo = new import_staticDepInfo.StaticDepInfo({
36
+ mfsu,
37
+ srcCodeCache
38
+ });
39
+ }
40
+ init() {
41
+ this.staticDepInfo.init();
42
+ }
43
+ getDepModules() {
44
+ return this.staticDepInfo.getDepModules();
45
+ }
46
+ getCacheFilePath() {
47
+ return this.staticDepInfo.getCacheFilePath();
48
+ }
49
+ shouldBuild() {
50
+ return this.staticDepInfo.shouldBuild();
51
+ }
52
+ writeCache() {
53
+ this.staticDepInfo.writeCache();
54
+ }
55
+ getBabelPlugin() {
56
+ return [import_MFImport.default, this.getMfImportOpts()];
57
+ }
58
+ getMfImportOpts() {
59
+ const mfsu = this.mfsu;
60
+ const mfsuOpts = this.mfsu.opts;
61
+ const userUnMatches = mfsuOpts.unMatchLibs || [];
62
+ const sharedUnMatches = Object.keys(mfsuOpts.shared || {});
63
+ const remoteAliasUnMatches = (mfsuOpts.remoteAliases || []).map((str) => new RegExp(`^${str}`));
64
+ const unMatches = [
65
+ ...userUnMatches,
66
+ ...sharedUnMatches,
67
+ ...remoteAliasUnMatches
68
+ ];
69
+ return {
70
+ resolveImportSource: (source) => {
71
+ const match = (0, import_checkMatch.checkMatch)({
72
+ value: source,
73
+ filename: "_.js",
74
+ opts: {
53
75
  exportAllMembers: mfsuOpts.exportAllMembers,
54
- unMatchLibs: mfsuOpts.unMatchLibs,
76
+ unMatchLibs: unMatches,
55
77
  remoteName: mfsuOpts.mfName,
56
78
  alias: mfsu.alias,
57
- externals: mfsu.externals,
58
- };
59
- }
60
- getBuildDepPlugConfig() {
61
- const mfsu = this.mfsu;
62
- return {
63
- beforeCompile: async () => {
64
- utils_1.logger.event(`[MFSU][eager] start build deps`);
65
- if (mfsu.depBuilder.isBuilding) {
66
- mfsu.buildDepsAgain = true;
67
- }
68
- else {
69
- this.staticDepInfo.consumeAllProducedEvents();
70
- mfsu
71
- .buildDeps()
72
- .then(() => {
73
- mfsu.onProgress({
74
- done: true,
75
- });
76
- })
77
- .catch((e) => {
78
- utils_1.printHelp.runtime(e);
79
- mfsu.onProgress({
80
- done: true,
81
- });
82
- });
83
- }
84
- },
85
- onFileChange: async (c) => {
86
- utils_1.logger.debug('webpack found changes modified:', c.modifiedFiles, 'removed:', c.removedFiles);
87
- // webpack init run
88
- if (!c.modifiedFiles || c.modifiedFiles.size === 0) {
89
- return;
90
- }
91
- const start = Date.now();
92
- let event = this.staticDepInfo.getProducedEvent();
93
- while (event.length === 0) {
94
- await sleep(200);
95
- event = this.staticDepInfo.getProducedEvent();
96
- if (Date.now() - start > 5000) {
97
- utils_1.logger.warn('webpack wait mfsu deps too long');
98
- break;
99
- }
100
- }
101
- },
102
- onCompileDone: () => {
103
- // fixme if mf module finished earlier than src compile
104
- },
105
- };
106
- }
107
- loadCache() {
108
- this.staticDepInfo.loadCache();
109
- }
110
- refresh() {
111
- this.staticDepInfo.snapshot();
112
- }
113
- }
114
- exports.StaticAnalyzeStrategy = StaticAnalyzeStrategy;
79
+ externals: mfsu.externals
80
+ }
81
+ });
82
+ if (!match.isMatch) {
83
+ return source;
84
+ }
85
+ const depMat = this.staticDepInfo.getDependencies();
86
+ const m = depMat[match.value];
87
+ if (m) {
88
+ return m.replaceValue;
89
+ }
90
+ return match.value;
91
+ },
92
+ exportAllMembers: mfsuOpts.exportAllMembers,
93
+ unMatchLibs: mfsuOpts.unMatchLibs,
94
+ remoteName: mfsuOpts.mfName,
95
+ alias: mfsu.alias,
96
+ externals: mfsu.externals
97
+ };
98
+ }
99
+ getBuildDepPlugConfig() {
100
+ const mfsu = this.mfsu;
101
+ return {
102
+ beforeCompile: async () => {
103
+ import_utils.logger.event(`[MFSU][eager] start build deps`);
104
+ if (mfsu.depBuilder.isBuilding) {
105
+ mfsu.buildDepsAgain = true;
106
+ } else {
107
+ this.staticDepInfo.consumeAllProducedEvents();
108
+ mfsu.buildDeps().then(() => {
109
+ mfsu.onProgress({
110
+ done: true
111
+ });
112
+ }).catch((e) => {
113
+ import_utils.printHelp.runtime(e);
114
+ mfsu.onProgress({
115
+ done: true
116
+ });
117
+ });
118
+ }
119
+ },
120
+ onFileChange: async (c) => {
121
+ import_utils.logger.debug("webpack found changes modified:", c.modifiedFiles, "removed:", c.removedFiles);
122
+ if (!c.modifiedFiles || c.modifiedFiles.size === 0) {
123
+ return;
124
+ }
125
+ const start = Date.now();
126
+ let event = this.staticDepInfo.getProducedEvent();
127
+ while (event.length === 0) {
128
+ await sleep(200);
129
+ event = this.staticDepInfo.getProducedEvent();
130
+ if (Date.now() - start > 5e3) {
131
+ import_utils.logger.warn("webpack wait mfsu deps too long");
132
+ break;
133
+ }
134
+ }
135
+ },
136
+ onCompileDone: () => {
137
+ }
138
+ };
139
+ }
140
+ loadCache() {
141
+ this.staticDepInfo.loadCache();
142
+ }
143
+ refresh() {
144
+ this.staticDepInfo.snapshot();
145
+ }
146
+ };
115
147
  function sleep(ms) {
116
- return new Promise((resolve) => {
117
- setTimeout(() => {
118
- resolve();
119
- }, ms);
120
- });
148
+ return new Promise((resolve) => {
149
+ setTimeout(() => {
150
+ resolve();
151
+ }, ms);
152
+ });
121
153
  }
154
+ // Annotate the CommonJS export names for ESM import in node:
155
+ 0 && (module.exports = {
156
+ StaticAnalyzeStrategy
157
+ });
File without changes