@module-federation/node 2.7.32 → 2.7.33

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 (122) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +31 -0
  2. package/dist/_virtual/_rolldown/runtime.mjs +8 -0
  3. package/dist/plugins/ChunkCorrelationPlugin.js +308 -0
  4. package/dist/plugins/ChunkCorrelationPlugin.js.map +1 -0
  5. package/dist/plugins/ChunkCorrelationPlugin.mjs +305 -0
  6. package/dist/plugins/ChunkCorrelationPlugin.mjs.map +1 -0
  7. package/dist/src/filesystem/stratagies.d.mts +21 -0
  8. package/dist/src/filesystem/stratagies.d.ts +10 -7
  9. package/dist/src/filesystem/stratagies.js +97 -116
  10. package/dist/src/filesystem/stratagies.js.map +1 -1
  11. package/dist/src/filesystem/stratagies.mjs +103 -0
  12. package/dist/src/filesystem/stratagies.mjs.map +1 -0
  13. package/dist/src/index.d.mts +8 -0
  14. package/dist/src/index.d.ts +8 -7
  15. package/dist/src/index.js +16 -22
  16. package/dist/src/index.mjs +9 -0
  17. package/dist/src/plugins/AutomaticPublicPathPlugin.d.mts +12 -0
  18. package/dist/src/plugins/AutomaticPublicPathPlugin.d.ts +9 -7
  19. package/dist/src/plugins/AutomaticPublicPathPlugin.js +26 -35
  20. package/dist/src/plugins/AutomaticPublicPathPlugin.js.map +1 -1
  21. package/dist/src/plugins/AutomaticPublicPathPlugin.mjs +28 -0
  22. package/dist/src/plugins/AutomaticPublicPathPlugin.mjs.map +1 -0
  23. package/dist/src/plugins/ChunkCorrelationPlugin.d.mts +5 -0
  24. package/dist/src/plugins/ChunkCorrelationPlugin.d.ts +4 -61
  25. package/dist/src/plugins/ChunkCorrelationPlugin.js +8 -440
  26. package/dist/src/plugins/ChunkCorrelationPlugin.js.map +1 -1
  27. package/dist/src/plugins/ChunkCorrelationPlugin.mjs +8 -0
  28. package/dist/src/plugins/ChunkCorrelationPlugin.mjs.map +1 -0
  29. package/dist/src/plugins/CommonJsChunkLoadingPlugin.d.mts +21 -0
  30. package/dist/src/plugins/CommonJsChunkLoadingPlugin.d.ts +16 -13
  31. package/dist/src/plugins/CommonJsChunkLoadingPlugin.js +68 -118
  32. package/dist/src/plugins/CommonJsChunkLoadingPlugin.js.map +1 -1
  33. package/dist/src/plugins/CommonJsChunkLoadingPlugin.mjs +70 -0
  34. package/dist/src/plugins/CommonJsChunkLoadingPlugin.mjs.map +1 -0
  35. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.mts +46 -0
  36. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts +39 -34
  37. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js +110 -126
  38. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js.map +1 -1
  39. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.mjs +111 -0
  40. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.mjs.map +1 -0
  41. package/dist/src/plugins/EntryChunkTrackerPlugin.d.mts +17 -0
  42. package/dist/src/plugins/EntryChunkTrackerPlugin.d.ts +14 -10
  43. package/dist/src/plugins/EntryChunkTrackerPlugin.js +30 -32
  44. package/dist/src/plugins/EntryChunkTrackerPlugin.js.map +1 -1
  45. package/dist/src/plugins/EntryChunkTrackerPlugin.mjs +38 -0
  46. package/dist/src/plugins/EntryChunkTrackerPlugin.mjs.map +1 -0
  47. package/dist/src/plugins/NodeFederationPlugin.d.mts +54 -0
  48. package/dist/src/plugins/NodeFederationPlugin.d.ts +33 -26
  49. package/dist/src/plugins/NodeFederationPlugin.js +69 -84
  50. package/dist/src/plugins/NodeFederationPlugin.js.map +1 -1
  51. package/dist/src/plugins/NodeFederationPlugin.mjs +70 -0
  52. package/dist/src/plugins/NodeFederationPlugin.mjs.map +1 -0
  53. package/dist/src/plugins/RemotePublicPathRuntimeModule.d.mts +15 -0
  54. package/dist/src/plugins/RemotePublicPathRuntimeModule.d.ts +12 -8
  55. package/dist/src/plugins/RemotePublicPathRuntimeModule.js +34 -35
  56. package/dist/src/plugins/RemotePublicPathRuntimeModule.js.map +1 -1
  57. package/dist/src/plugins/RemotePublicPathRuntimeModule.mjs +132 -0
  58. package/dist/src/plugins/RemotePublicPathRuntimeModule.mjs.map +1 -0
  59. package/dist/src/plugins/StreamingTargetPlugin.d.mts +32 -0
  60. package/dist/src/plugins/StreamingTargetPlugin.d.ts +19 -16
  61. package/dist/src/plugins/StreamingTargetPlugin.js +43 -56
  62. package/dist/src/plugins/StreamingTargetPlugin.js.map +1 -1
  63. package/dist/src/plugins/StreamingTargetPlugin.mjs +46 -0
  64. package/dist/src/plugins/StreamingTargetPlugin.mjs.map +1 -0
  65. package/dist/src/plugins/UniversalFederationPlugin.d.mts +49 -0
  66. package/dist/src/plugins/UniversalFederationPlugin.d.ts +26 -23
  67. package/dist/src/plugins/UniversalFederationPlugin.js +58 -81
  68. package/dist/src/plugins/UniversalFederationPlugin.js.map +1 -1
  69. package/dist/src/plugins/UniversalFederationPlugin.mjs +61 -0
  70. package/dist/src/plugins/UniversalFederationPlugin.mjs.map +1 -0
  71. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.d.mts +9 -0
  72. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.d.ts +6 -3
  73. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js +17 -17
  74. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js.map +1 -1
  75. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.mjs +25 -0
  76. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.mjs.map +1 -0
  77. package/dist/src/plugins/webpackChunkUtilities.d.mts +55 -0
  78. package/dist/src/plugins/webpackChunkUtilities.d.ts +14 -9
  79. package/dist/src/plugins/webpackChunkUtilities.js +195 -257
  80. package/dist/src/plugins/webpackChunkUtilities.js.map +1 -1
  81. package/dist/src/plugins/webpackChunkUtilities.mjs +234 -0
  82. package/dist/src/plugins/webpackChunkUtilities.mjs.map +1 -0
  83. package/dist/src/recordDynamicRemoteEntryHashPlugin.d.mts +7 -0
  84. package/dist/src/recordDynamicRemoteEntryHashPlugin.d.ts +5 -2
  85. package/dist/src/recordDynamicRemoteEntryHashPlugin.js +24 -61
  86. package/dist/src/recordDynamicRemoteEntryHashPlugin.js.map +1 -1
  87. package/dist/src/recordDynamicRemoteEntryHashPlugin.mjs +26 -0
  88. package/dist/src/recordDynamicRemoteEntryHashPlugin.mjs.map +1 -0
  89. package/dist/src/runtimePlugin.d.mts +27 -0
  90. package/dist/src/runtimePlugin.d.ts +24 -19
  91. package/dist/src/runtimePlugin.js +157 -252
  92. package/dist/src/runtimePlugin.js.map +1 -1
  93. package/dist/src/runtimePlugin.mjs +169 -0
  94. package/dist/src/runtimePlugin.mjs.map +1 -0
  95. package/dist/src/types/index.d.mts +8 -0
  96. package/dist/src/types/index.d.ts +8 -3
  97. package/dist/src/types/index.js +1 -3
  98. package/dist/src/types/index.mjs +1 -0
  99. package/dist/src/utils/flush-chunks.d.mts +15 -0
  100. package/dist/src/utils/flush-chunks.d.ts +7 -3
  101. package/dist/src/utils/flush-chunks.js +87 -161
  102. package/dist/src/utils/flush-chunks.js.map +1 -1
  103. package/dist/src/utils/flush-chunks.mjs +99 -0
  104. package/dist/src/utils/flush-chunks.mjs.map +1 -0
  105. package/dist/src/utils/hot-reload.d.mts +16 -0
  106. package/dist/src/utils/hot-reload.d.ts +14 -10
  107. package/dist/src/utils/hot-reload.js +177 -264
  108. package/dist/src/utils/hot-reload.js.map +1 -1
  109. package/dist/src/utils/hot-reload.mjs +194 -0
  110. package/dist/src/utils/hot-reload.mjs.map +1 -0
  111. package/dist/src/utils/index.d.mts +3 -0
  112. package/dist/src/utils/index.d.ts +3 -2
  113. package/dist/src/utils/index.js +15 -19
  114. package/dist/src/utils/index.mjs +4 -0
  115. package/package.json +59 -15
  116. package/dist/jest.config.d.ts +0 -11
  117. package/dist/jest.config.js +0 -19
  118. package/dist/jest.config.js.map +0 -1
  119. package/dist/package.json +0 -82
  120. package/dist/src/index.js.map +0 -1
  121. package/dist/src/types/index.js.map +0 -1
  122. package/dist/src/utils/index.js.map +0 -1
@@ -1,121 +1,71 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
+ const require_src_plugins_DynamicFilesystemChunkLoadingRuntimeModule = require('./DynamicFilesystemChunkLoadingRuntimeModule.js');
4
+ const require_src_plugins_RemotePublicPathRuntimeModule = require('./RemotePublicPathRuntimeModule.js');
5
+ let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
6
+
7
+ //#region src/plugins/CommonJsChunkLoadingPlugin.ts
8
+ const StartupChunkDependenciesPlugin = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/runtime/StartupChunkDependenciesPlugin"));
9
+ var DynamicFilesystemChunkLoadingPlugin = class {
10
+ constructor(options) {
11
+ this.options = options || {};
12
+ this._asyncChunkLoading = this.options.asyncChunkLoading;
13
+ }
14
+ apply(compiler) {
15
+ const { RuntimeGlobals } = compiler.webpack;
16
+ new StartupChunkDependenciesPlugin({
17
+ chunkLoading: this._asyncChunkLoading ? "async-node" : "require",
18
+ asyncChunkLoading: this._asyncChunkLoading
19
+ }).apply(compiler);
20
+ compiler.hooks.thisCompilation.tap("DynamicFilesystemChunkLoadingPlugin", (compilation) => {
21
+ const isEnabledForChunk = (_) => true;
22
+ const onceForChunkSet = /* @__PURE__ */ new WeakSet();
23
+ const handler = (chunk, set) => {
24
+ if (onceForChunkSet.has(chunk)) return;
25
+ onceForChunkSet.add(chunk);
26
+ if (!isEnabledForChunk(chunk)) return;
27
+ set.add(RuntimeGlobals.moduleFactoriesAddOnly);
28
+ set.add(RuntimeGlobals.hasOwnProperty);
29
+ set.add(RuntimeGlobals.publicPath);
30
+ compilation.addRuntimeModule(chunk, new require_src_plugins_DynamicFilesystemChunkLoadingRuntimeModule.default(set, this.options, { webpack: compiler.webpack }));
31
+ };
32
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.ensureChunkHandlers).tap("DynamicFilesystemChunkLoadingPlugin", handler);
33
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadUpdateHandlers).tap("DynamicFilesystemChunkLoadingPlugin", handler);
34
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadManifest).tap("DynamicFilesystemChunkLoadingPlugin", handler);
35
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.baseURI).tap("DynamicFilesystemChunkLoadingPlugin", handler);
36
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.externalInstallChunk).tap("DynamicFilesystemChunkLoadingPlugin", handler);
37
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.onChunksLoaded).tap("DynamicFilesystemChunkLoadingPlugin", handler);
38
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.ensureChunkHandlers).tap("DynamicFilesystemChunkLoadingPlugin", (chunk, set) => {
39
+ if (!isEnabledForChunk(chunk)) return;
40
+ set.add(RuntimeGlobals.getChunkScriptFilename);
41
+ });
42
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadUpdateHandlers).tap("DynamicFilesystemChunkLoadingPlugin", (chunk, set) => {
43
+ if (!isEnabledForChunk(chunk)) return;
44
+ set.add(RuntimeGlobals.getChunkUpdateScriptFilename);
45
+ set.add(RuntimeGlobals.moduleCache);
46
+ set.add(RuntimeGlobals.hmrModuleData);
47
+ set.add(RuntimeGlobals.moduleFactoriesAddOnly);
48
+ });
49
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadManifest).tap("DynamicFilesystemChunkLoadingPlugin", (chunk, set) => {
50
+ if (!isEnabledForChunk(chunk)) return;
51
+ set.add(RuntimeGlobals.getUpdateManifestFilename);
52
+ });
53
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.publicPath).tap("RuntimePlugin", (chunk, set) => {
54
+ const { outputOptions } = compilation;
55
+ const { publicPath: globalPublicPath, scriptType } = outputOptions;
56
+ const entryOptions = chunk.getEntryOptions();
57
+ const publicPath = entryOptions && entryOptions.publicPath !== void 0 ? entryOptions.publicPath : globalPublicPath;
58
+ const module = new require_src_plugins_RemotePublicPathRuntimeModule.default(this.options);
59
+ if (publicPath === "auto" && scriptType !== "module") set.add(RuntimeGlobals.global);
60
+ else if (typeof publicPath !== "string" || /\[(full)?hash\]/.test(publicPath)) module.fullHash = true;
61
+ compilation.addRuntimeModule(chunk, module);
62
+ return true;
63
+ });
64
+ compilation.hooks.additionalTreeRuntimeRequirements.tap("StartupChunkDependenciesPlugin", (chunk, set, { chunkGraph }) => {});
65
+ });
66
+ }
4
67
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
7
- const StartupChunkDependenciesPlugin = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/runtime/StartupChunkDependenciesPlugin'));
8
- const DynamicFilesystemChunkLoadingRuntimeModule_1 = __importDefault(require("./DynamicFilesystemChunkLoadingRuntimeModule"));
9
- const RemotePublicPathRuntimeModule_1 = __importDefault(require("./RemotePublicPathRuntimeModule"));
10
- class DynamicFilesystemChunkLoadingPlugin {
11
- constructor(options) {
12
- this.options = options || {};
13
- this._asyncChunkLoading = this.options.asyncChunkLoading;
14
- }
15
- apply(compiler) {
16
- const { RuntimeGlobals } = compiler.webpack;
17
- const chunkLoadingValue = this._asyncChunkLoading
18
- ? 'async-node'
19
- : 'require';
20
- new StartupChunkDependenciesPlugin({
21
- chunkLoading: chunkLoadingValue,
22
- asyncChunkLoading: this._asyncChunkLoading,
23
- //@ts-ignore
24
- }).apply(compiler);
25
- compiler.hooks.thisCompilation.tap('DynamicFilesystemChunkLoadingPlugin', (compilation) => {
26
- // Always enabled
27
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
28
- const isEnabledForChunk = (_) => true;
29
- const onceForChunkSet = new WeakSet();
30
- const handler = (chunk, set) => {
31
- if (onceForChunkSet.has(chunk)) {
32
- return;
33
- }
34
- onceForChunkSet.add(chunk);
35
- if (!isEnabledForChunk(chunk)) {
36
- return;
37
- }
38
- set.add(RuntimeGlobals.moduleFactoriesAddOnly);
39
- set.add(RuntimeGlobals.hasOwnProperty);
40
- set.add(RuntimeGlobals.publicPath); // this breaks things
41
- compilation.addRuntimeModule(chunk, new DynamicFilesystemChunkLoadingRuntimeModule_1.default(set, this.options, {
42
- webpack: compiler.webpack,
43
- }));
44
- };
45
- compilation.hooks.runtimeRequirementInTree
46
- .for(RuntimeGlobals.ensureChunkHandlers)
47
- .tap('DynamicFilesystemChunkLoadingPlugin', handler);
48
- compilation.hooks.runtimeRequirementInTree
49
- .for(RuntimeGlobals.hmrDownloadUpdateHandlers)
50
- .tap('DynamicFilesystemChunkLoadingPlugin', handler);
51
- compilation.hooks.runtimeRequirementInTree
52
- .for(RuntimeGlobals.hmrDownloadManifest)
53
- .tap('DynamicFilesystemChunkLoadingPlugin', handler);
54
- compilation.hooks.runtimeRequirementInTree
55
- .for(RuntimeGlobals.baseURI)
56
- .tap('DynamicFilesystemChunkLoadingPlugin', handler);
57
- compilation.hooks.runtimeRequirementInTree
58
- .for(RuntimeGlobals.externalInstallChunk)
59
- .tap('DynamicFilesystemChunkLoadingPlugin', handler);
60
- compilation.hooks.runtimeRequirementInTree
61
- .for(RuntimeGlobals.onChunksLoaded)
62
- .tap('DynamicFilesystemChunkLoadingPlugin', handler);
63
- compilation.hooks.runtimeRequirementInTree
64
- .for(RuntimeGlobals.ensureChunkHandlers)
65
- .tap('DynamicFilesystemChunkLoadingPlugin', (chunk, set) => {
66
- if (!isEnabledForChunk(chunk)) {
67
- return;
68
- }
69
- set.add(RuntimeGlobals.getChunkScriptFilename);
70
- });
71
- compilation.hooks.runtimeRequirementInTree
72
- .for(RuntimeGlobals.hmrDownloadUpdateHandlers)
73
- .tap('DynamicFilesystemChunkLoadingPlugin', (chunk, set) => {
74
- if (!isEnabledForChunk(chunk)) {
75
- return;
76
- }
77
- set.add(RuntimeGlobals.getChunkUpdateScriptFilename);
78
- set.add(RuntimeGlobals.moduleCache);
79
- set.add(RuntimeGlobals.hmrModuleData);
80
- set.add(RuntimeGlobals.moduleFactoriesAddOnly);
81
- });
82
- compilation.hooks.runtimeRequirementInTree
83
- .for(RuntimeGlobals.hmrDownloadManifest)
84
- .tap('DynamicFilesystemChunkLoadingPlugin', (chunk, set) => {
85
- if (!isEnabledForChunk(chunk)) {
86
- return;
87
- }
88
- set.add(RuntimeGlobals.getUpdateManifestFilename);
89
- });
90
- compilation.hooks.runtimeRequirementInTree
91
- .for(RuntimeGlobals.publicPath)
92
- .tap('RuntimePlugin', (chunk, set) => {
93
- const { outputOptions } = compilation;
94
- const { publicPath: globalPublicPath, scriptType } = outputOptions;
95
- const entryOptions = chunk.getEntryOptions();
96
- const publicPath = entryOptions && entryOptions.publicPath !== undefined
97
- ? entryOptions.publicPath
98
- : globalPublicPath;
99
- const module = new RemotePublicPathRuntimeModule_1.default(this.options);
100
- if (publicPath === 'auto' && scriptType !== 'module') {
101
- set.add(RuntimeGlobals.global);
102
- }
103
- else if (typeof publicPath !== 'string' ||
104
- /\[(full)?hash\]/.test(publicPath)) {
105
- module.fullHash = true;
106
- }
107
- compilation.addRuntimeModule(chunk, module);
108
- return true;
109
- });
110
- compilation.hooks.additionalTreeRuntimeRequirements.tap('StartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
111
- // compilation.addRuntimeModule(
112
- // chunk,
113
- // //@ts-ignore
114
- // new FederationModuleInfoRuntimeModule(),
115
- // );
116
- });
117
- });
118
- }
119
- }
68
+
69
+ //#endregion
120
70
  exports.default = DynamicFilesystemChunkLoadingPlugin;
121
71
  //# sourceMappingURL=CommonJsChunkLoadingPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommonJsChunkLoadingPlugin.js","sourceRoot":"","sources":["../../../src/plugins/CommonJsChunkLoadingPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommonJsChunkLoadingPlugin.js","names":["ChunkLoadingRuntimeModule","AutoPublicPathRuntimeModule"],"sources":["../../../src/plugins/CommonJsChunkLoadingPlugin.ts"],"sourcesContent":["import type { Chunk, Compiler, Compilation, ChunkGraph } from 'webpack';\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type { ModuleFederationPluginOptions } from '../types';\nconst StartupChunkDependenciesPlugin = require(\n normalizeWebpackPath('webpack/lib/runtime/StartupChunkDependenciesPlugin'),\n) as typeof import('webpack/lib/runtime/StartupChunkDependenciesPlugin');\nimport ChunkLoadingRuntimeModule from './DynamicFilesystemChunkLoadingRuntimeModule';\nimport AutoPublicPathRuntimeModule from './RemotePublicPathRuntimeModule';\n\ninterface DynamicFilesystemChunkLoadingOptions\n extends ModuleFederationPluginOptions {\n baseURI: Compiler['options']['output']['publicPath'];\n promiseBaseURI?: string;\n remotes: Record<string, string>;\n name?: string;\n asyncChunkLoading: boolean;\n debug?: boolean;\n}\n\nclass DynamicFilesystemChunkLoadingPlugin {\n private options: DynamicFilesystemChunkLoadingOptions;\n private _asyncChunkLoading: boolean;\n\n constructor(options: DynamicFilesystemChunkLoadingOptions) {\n this.options = options || ({} as DynamicFilesystemChunkLoadingOptions);\n this._asyncChunkLoading = this.options.asyncChunkLoading;\n }\n\n apply(compiler: Compiler) {\n const { RuntimeGlobals } = compiler.webpack;\n const chunkLoadingValue = this._asyncChunkLoading\n ? 'async-node'\n : 'require';\n\n new StartupChunkDependenciesPlugin({\n chunkLoading: chunkLoadingValue,\n asyncChunkLoading: this._asyncChunkLoading,\n //@ts-ignore\n }).apply(compiler);\n\n compiler.hooks.thisCompilation.tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (compilation: Compilation) => {\n // Always enabled\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const isEnabledForChunk = (_: Chunk) => true;\n const onceForChunkSet = new WeakSet();\n\n const handler = (chunk: Chunk, set: Set<string>) => {\n if (onceForChunkSet.has(chunk)) {\n return;\n }\n\n onceForChunkSet.add(chunk);\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.moduleFactoriesAddOnly);\n set.add(RuntimeGlobals.hasOwnProperty);\n\n set.add(RuntimeGlobals.publicPath); // this breaks things\n compilation.addRuntimeModule(\n chunk,\n new ChunkLoadingRuntimeModule(set, this.options, {\n webpack: compiler.webpack,\n }),\n );\n };\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.ensureChunkHandlers)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadUpdateHandlers)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadManifest)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.baseURI)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.externalInstallChunk)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.onChunksLoaded)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.ensureChunkHandlers)\n .tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (chunk: Chunk, set: Set<string>) => {\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.getChunkScriptFilename);\n },\n );\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadUpdateHandlers)\n .tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (chunk: Chunk, set: Set<string>) => {\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.getChunkUpdateScriptFilename);\n set.add(RuntimeGlobals.moduleCache);\n set.add(RuntimeGlobals.hmrModuleData);\n set.add(RuntimeGlobals.moduleFactoriesAddOnly);\n },\n );\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadManifest)\n .tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (chunk: Chunk, set: Set<string>) => {\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.getUpdateManifestFilename);\n },\n );\n\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.publicPath)\n .tap('RuntimePlugin', (chunk, set) => {\n const { outputOptions } = compilation;\n const { publicPath: globalPublicPath, scriptType } = outputOptions;\n const entryOptions = chunk.getEntryOptions();\n const publicPath =\n entryOptions && entryOptions.publicPath !== undefined\n ? entryOptions.publicPath\n : globalPublicPath;\n\n const module = new AutoPublicPathRuntimeModule(this.options);\n if (publicPath === 'auto' && scriptType !== 'module') {\n set.add(RuntimeGlobals.global);\n } else if (\n typeof publicPath !== 'string' ||\n /\\[(full)?hash\\]/.test(publicPath)\n ) {\n module.fullHash = true;\n }\n\n compilation.addRuntimeModule(chunk, module);\n return true;\n });\n\n compilation.hooks.additionalTreeRuntimeRequirements.tap(\n 'StartupChunkDependenciesPlugin',\n (\n chunk: Chunk,\n set: Set<string>,\n { chunkGraph }: { chunkGraph: ChunkGraph },\n ) => {\n // compilation.addRuntimeModule(\n // chunk,\n // //@ts-ignore\n // new FederationModuleInfoRuntimeModule(),\n // );\n },\n );\n },\n );\n }\n}\n\nexport default DynamicFilesystemChunkLoadingPlugin;\n"],"mappings":";;;;;;;AAGA,MAAM,iCAAiC,gFAChB,qDAAqD,CAC3E;AAcD,IAAM,sCAAN,MAA0C;CAIxC,YAAY,SAA+C;AACzD,OAAK,UAAU,WAAY,EAAE;AAC7B,OAAK,qBAAqB,KAAK,QAAQ;;CAGzC,MAAM,UAAoB;EACxB,MAAM,EAAE,mBAAmB,SAAS;AAKpC,MAAI,+BAA+B;GACjC,cALwB,KAAK,qBAC3B,eACA;GAIF,mBAAmB,KAAK;GAEzB,CAAC,CAAC,MAAM,SAAS;AAElB,WAAS,MAAM,gBAAgB,IAC7B,wCACC,gBAA6B;GAG5B,MAAM,qBAAqB,MAAa;GACxC,MAAM,kCAAkB,IAAI,SAAS;GAErC,MAAM,WAAW,OAAc,QAAqB;AAClD,QAAI,gBAAgB,IAAI,MAAM,CAC5B;AAGF,oBAAgB,IAAI,MAAM;AAC1B,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,uBAAuB;AAC9C,QAAI,IAAI,eAAe,eAAe;AAEtC,QAAI,IAAI,eAAe,WAAW;AAClC,gBAAY,iBACV,OACA,IAAIA,uEAA0B,KAAK,KAAK,SAAS,EAC/C,SAAS,SAAS,SACnB,CAAC,CACH;;AAEH,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,0BAA0B,CAC7C,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,QAAQ,CAC3B,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,qBAAqB,CACxC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,eAAe,CAClC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IACC,wCACC,OAAc,QAAqB;AAClC,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,uBAAuB;KAEjD;AACH,eAAY,MAAM,yBACf,IAAI,eAAe,0BAA0B,CAC7C,IACC,wCACC,OAAc,QAAqB;AAClC,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,6BAA6B;AACpD,QAAI,IAAI,eAAe,YAAY;AACnC,QAAI,IAAI,eAAe,cAAc;AACrC,QAAI,IAAI,eAAe,uBAAuB;KAEjD;AACH,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IACC,wCACC,OAAc,QAAqB;AAClC,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,0BAA0B;KAEpD;AAEH,eAAY,MAAM,yBACf,IAAI,eAAe,WAAW,CAC9B,IAAI,kBAAkB,OAAO,QAAQ;IACpC,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,YAAY,kBAAkB,eAAe;IACrD,MAAM,eAAe,MAAM,iBAAiB;IAC5C,MAAM,aACJ,gBAAgB,aAAa,eAAe,SACxC,aAAa,aACb;IAEN,MAAM,SAAS,IAAIC,0DAA4B,KAAK,QAAQ;AAC5D,QAAI,eAAe,UAAU,eAAe,SAC1C,KAAI,IAAI,eAAe,OAAO;aAE9B,OAAO,eAAe,YACtB,kBAAkB,KAAK,WAAW,CAElC,QAAO,WAAW;AAGpB,gBAAY,iBAAiB,OAAO,OAAO;AAC3C,WAAO;KACP;AAEJ,eAAY,MAAM,kCAAkC,IAClD,mCAEE,OACA,KACA,EAAE,iBACC,GAON;IAEJ"}
@@ -0,0 +1,70 @@
1
+ import { __require } from "../../_virtual/_rolldown/runtime.mjs";
2
+ import DynamicFilesystemChunkLoadingRuntimeModule from "./DynamicFilesystemChunkLoadingRuntimeModule.mjs";
3
+ import AutoPublicPathRuntimeModule from "./RemotePublicPathRuntimeModule.mjs";
4
+ import { normalizeWebpackPath } from "@module-federation/sdk/normalize-webpack-path";
5
+
6
+ //#region src/plugins/CommonJsChunkLoadingPlugin.ts
7
+ const StartupChunkDependenciesPlugin = __require(normalizeWebpackPath("webpack/lib/runtime/StartupChunkDependenciesPlugin"));
8
+ var DynamicFilesystemChunkLoadingPlugin = class {
9
+ constructor(options) {
10
+ this.options = options || {};
11
+ this._asyncChunkLoading = this.options.asyncChunkLoading;
12
+ }
13
+ apply(compiler) {
14
+ const { RuntimeGlobals } = compiler.webpack;
15
+ new StartupChunkDependenciesPlugin({
16
+ chunkLoading: this._asyncChunkLoading ? "async-node" : "require",
17
+ asyncChunkLoading: this._asyncChunkLoading
18
+ }).apply(compiler);
19
+ compiler.hooks.thisCompilation.tap("DynamicFilesystemChunkLoadingPlugin", (compilation) => {
20
+ const isEnabledForChunk = (_) => true;
21
+ const onceForChunkSet = /* @__PURE__ */ new WeakSet();
22
+ const handler = (chunk, set) => {
23
+ if (onceForChunkSet.has(chunk)) return;
24
+ onceForChunkSet.add(chunk);
25
+ if (!isEnabledForChunk(chunk)) return;
26
+ set.add(RuntimeGlobals.moduleFactoriesAddOnly);
27
+ set.add(RuntimeGlobals.hasOwnProperty);
28
+ set.add(RuntimeGlobals.publicPath);
29
+ compilation.addRuntimeModule(chunk, new DynamicFilesystemChunkLoadingRuntimeModule(set, this.options, { webpack: compiler.webpack }));
30
+ };
31
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.ensureChunkHandlers).tap("DynamicFilesystemChunkLoadingPlugin", handler);
32
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadUpdateHandlers).tap("DynamicFilesystemChunkLoadingPlugin", handler);
33
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadManifest).tap("DynamicFilesystemChunkLoadingPlugin", handler);
34
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.baseURI).tap("DynamicFilesystemChunkLoadingPlugin", handler);
35
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.externalInstallChunk).tap("DynamicFilesystemChunkLoadingPlugin", handler);
36
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.onChunksLoaded).tap("DynamicFilesystemChunkLoadingPlugin", handler);
37
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.ensureChunkHandlers).tap("DynamicFilesystemChunkLoadingPlugin", (chunk, set) => {
38
+ if (!isEnabledForChunk(chunk)) return;
39
+ set.add(RuntimeGlobals.getChunkScriptFilename);
40
+ });
41
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadUpdateHandlers).tap("DynamicFilesystemChunkLoadingPlugin", (chunk, set) => {
42
+ if (!isEnabledForChunk(chunk)) return;
43
+ set.add(RuntimeGlobals.getChunkUpdateScriptFilename);
44
+ set.add(RuntimeGlobals.moduleCache);
45
+ set.add(RuntimeGlobals.hmrModuleData);
46
+ set.add(RuntimeGlobals.moduleFactoriesAddOnly);
47
+ });
48
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.hmrDownloadManifest).tap("DynamicFilesystemChunkLoadingPlugin", (chunk, set) => {
49
+ if (!isEnabledForChunk(chunk)) return;
50
+ set.add(RuntimeGlobals.getUpdateManifestFilename);
51
+ });
52
+ compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.publicPath).tap("RuntimePlugin", (chunk, set) => {
53
+ const { outputOptions } = compilation;
54
+ const { publicPath: globalPublicPath, scriptType } = outputOptions;
55
+ const entryOptions = chunk.getEntryOptions();
56
+ const publicPath = entryOptions && entryOptions.publicPath !== void 0 ? entryOptions.publicPath : globalPublicPath;
57
+ const module = new AutoPublicPathRuntimeModule(this.options);
58
+ if (publicPath === "auto" && scriptType !== "module") set.add(RuntimeGlobals.global);
59
+ else if (typeof publicPath !== "string" || /\[(full)?hash\]/.test(publicPath)) module.fullHash = true;
60
+ compilation.addRuntimeModule(chunk, module);
61
+ return true;
62
+ });
63
+ compilation.hooks.additionalTreeRuntimeRequirements.tap("StartupChunkDependenciesPlugin", (chunk, set, { chunkGraph }) => {});
64
+ });
65
+ }
66
+ };
67
+
68
+ //#endregion
69
+ export { DynamicFilesystemChunkLoadingPlugin as default };
70
+ //# sourceMappingURL=CommonJsChunkLoadingPlugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonJsChunkLoadingPlugin.mjs","names":["ChunkLoadingRuntimeModule"],"sources":["../../../src/plugins/CommonJsChunkLoadingPlugin.ts"],"sourcesContent":["import type { Chunk, Compiler, Compilation, ChunkGraph } from 'webpack';\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type { ModuleFederationPluginOptions } from '../types';\nconst StartupChunkDependenciesPlugin = require(\n normalizeWebpackPath('webpack/lib/runtime/StartupChunkDependenciesPlugin'),\n) as typeof import('webpack/lib/runtime/StartupChunkDependenciesPlugin');\nimport ChunkLoadingRuntimeModule from './DynamicFilesystemChunkLoadingRuntimeModule';\nimport AutoPublicPathRuntimeModule from './RemotePublicPathRuntimeModule';\n\ninterface DynamicFilesystemChunkLoadingOptions\n extends ModuleFederationPluginOptions {\n baseURI: Compiler['options']['output']['publicPath'];\n promiseBaseURI?: string;\n remotes: Record<string, string>;\n name?: string;\n asyncChunkLoading: boolean;\n debug?: boolean;\n}\n\nclass DynamicFilesystemChunkLoadingPlugin {\n private options: DynamicFilesystemChunkLoadingOptions;\n private _asyncChunkLoading: boolean;\n\n constructor(options: DynamicFilesystemChunkLoadingOptions) {\n this.options = options || ({} as DynamicFilesystemChunkLoadingOptions);\n this._asyncChunkLoading = this.options.asyncChunkLoading;\n }\n\n apply(compiler: Compiler) {\n const { RuntimeGlobals } = compiler.webpack;\n const chunkLoadingValue = this._asyncChunkLoading\n ? 'async-node'\n : 'require';\n\n new StartupChunkDependenciesPlugin({\n chunkLoading: chunkLoadingValue,\n asyncChunkLoading: this._asyncChunkLoading,\n //@ts-ignore\n }).apply(compiler);\n\n compiler.hooks.thisCompilation.tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (compilation: Compilation) => {\n // Always enabled\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const isEnabledForChunk = (_: Chunk) => true;\n const onceForChunkSet = new WeakSet();\n\n const handler = (chunk: Chunk, set: Set<string>) => {\n if (onceForChunkSet.has(chunk)) {\n return;\n }\n\n onceForChunkSet.add(chunk);\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.moduleFactoriesAddOnly);\n set.add(RuntimeGlobals.hasOwnProperty);\n\n set.add(RuntimeGlobals.publicPath); // this breaks things\n compilation.addRuntimeModule(\n chunk,\n new ChunkLoadingRuntimeModule(set, this.options, {\n webpack: compiler.webpack,\n }),\n );\n };\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.ensureChunkHandlers)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadUpdateHandlers)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadManifest)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.baseURI)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.externalInstallChunk)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.onChunksLoaded)\n .tap('DynamicFilesystemChunkLoadingPlugin', handler);\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.ensureChunkHandlers)\n .tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (chunk: Chunk, set: Set<string>) => {\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.getChunkScriptFilename);\n },\n );\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadUpdateHandlers)\n .tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (chunk: Chunk, set: Set<string>) => {\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.getChunkUpdateScriptFilename);\n set.add(RuntimeGlobals.moduleCache);\n set.add(RuntimeGlobals.hmrModuleData);\n set.add(RuntimeGlobals.moduleFactoriesAddOnly);\n },\n );\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadManifest)\n .tap(\n 'DynamicFilesystemChunkLoadingPlugin',\n (chunk: Chunk, set: Set<string>) => {\n if (!isEnabledForChunk(chunk)) {\n return;\n }\n set.add(RuntimeGlobals.getUpdateManifestFilename);\n },\n );\n\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.publicPath)\n .tap('RuntimePlugin', (chunk, set) => {\n const { outputOptions } = compilation;\n const { publicPath: globalPublicPath, scriptType } = outputOptions;\n const entryOptions = chunk.getEntryOptions();\n const publicPath =\n entryOptions && entryOptions.publicPath !== undefined\n ? entryOptions.publicPath\n : globalPublicPath;\n\n const module = new AutoPublicPathRuntimeModule(this.options);\n if (publicPath === 'auto' && scriptType !== 'module') {\n set.add(RuntimeGlobals.global);\n } else if (\n typeof publicPath !== 'string' ||\n /\\[(full)?hash\\]/.test(publicPath)\n ) {\n module.fullHash = true;\n }\n\n compilation.addRuntimeModule(chunk, module);\n return true;\n });\n\n compilation.hooks.additionalTreeRuntimeRequirements.tap(\n 'StartupChunkDependenciesPlugin',\n (\n chunk: Chunk,\n set: Set<string>,\n { chunkGraph }: { chunkGraph: ChunkGraph },\n ) => {\n // compilation.addRuntimeModule(\n // chunk,\n // //@ts-ignore\n // new FederationModuleInfoRuntimeModule(),\n // );\n },\n );\n },\n );\n }\n}\n\nexport default DynamicFilesystemChunkLoadingPlugin;\n"],"mappings":";;;;;;AAGA,MAAM,2CACJ,qBAAqB,qDAAqD,CAC3E;AAcD,IAAM,sCAAN,MAA0C;CAIxC,YAAY,SAA+C;AACzD,OAAK,UAAU,WAAY,EAAE;AAC7B,OAAK,qBAAqB,KAAK,QAAQ;;CAGzC,MAAM,UAAoB;EACxB,MAAM,EAAE,mBAAmB,SAAS;AAKpC,MAAI,+BAA+B;GACjC,cALwB,KAAK,qBAC3B,eACA;GAIF,mBAAmB,KAAK;GAEzB,CAAC,CAAC,MAAM,SAAS;AAElB,WAAS,MAAM,gBAAgB,IAC7B,wCACC,gBAA6B;GAG5B,MAAM,qBAAqB,MAAa;GACxC,MAAM,kCAAkB,IAAI,SAAS;GAErC,MAAM,WAAW,OAAc,QAAqB;AAClD,QAAI,gBAAgB,IAAI,MAAM,CAC5B;AAGF,oBAAgB,IAAI,MAAM;AAC1B,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,uBAAuB;AAC9C,QAAI,IAAI,eAAe,eAAe;AAEtC,QAAI,IAAI,eAAe,WAAW;AAClC,gBAAY,iBACV,OACA,IAAIA,2CAA0B,KAAK,KAAK,SAAS,EAC/C,SAAS,SAAS,SACnB,CAAC,CACH;;AAEH,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,0BAA0B,CAC7C,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,QAAQ,CAC3B,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,qBAAqB,CACxC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,eAAe,CAClC,IAAI,uCAAuC,QAAQ;AACtD,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IACC,wCACC,OAAc,QAAqB;AAClC,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,uBAAuB;KAEjD;AACH,eAAY,MAAM,yBACf,IAAI,eAAe,0BAA0B,CAC7C,IACC,wCACC,OAAc,QAAqB;AAClC,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,6BAA6B;AACpD,QAAI,IAAI,eAAe,YAAY;AACnC,QAAI,IAAI,eAAe,cAAc;AACrC,QAAI,IAAI,eAAe,uBAAuB;KAEjD;AACH,eAAY,MAAM,yBACf,IAAI,eAAe,oBAAoB,CACvC,IACC,wCACC,OAAc,QAAqB;AAClC,QAAI,CAAC,kBAAkB,MAAM,CAC3B;AAEF,QAAI,IAAI,eAAe,0BAA0B;KAEpD;AAEH,eAAY,MAAM,yBACf,IAAI,eAAe,WAAW,CAC9B,IAAI,kBAAkB,OAAO,QAAQ;IACpC,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,YAAY,kBAAkB,eAAe;IACrD,MAAM,eAAe,MAAM,iBAAiB;IAC5C,MAAM,aACJ,gBAAgB,aAAa,eAAe,SACxC,aAAa,aACb;IAEN,MAAM,SAAS,IAAI,4BAA4B,KAAK,QAAQ;AAC5D,QAAI,eAAe,UAAU,eAAe,SAC1C,KAAI,IAAI,eAAe,OAAO;aAE9B,OAAO,eAAe,YACtB,kBAAkB,KAAK,WAAW,CAElC,QAAO,WAAW;AAGpB,gBAAY,iBAAiB,OAAO,OAAO;AAC3C,WAAO;KACP;AAEJ,eAAY,MAAM,kCAAkC,IAClD,mCAEE,OACA,KACA,EAAE,iBACC,GAON;IAEJ"}
@@ -0,0 +1,46 @@
1
+ import * as tapable from "tapable";
2
+ import { SyncWaterfallHook } from "tapable";
3
+ import * as webpack from "webpack";
4
+ import { Chunk, Compiler } from "webpack";
5
+
6
+ //#region src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts
7
+ declare const RuntimeModule: typeof webpack.RuntimeModule;
8
+ interface DynamicFilesystemChunkLoadingRuntimeModuleOptions {
9
+ baseURI: Compiler['options']['output']['publicPath'];
10
+ promiseBaseURI?: string;
11
+ remotes: Record<string, string>;
12
+ name?: string;
13
+ debug?: boolean;
14
+ }
15
+ interface ChunkLoadingContext {
16
+ webpack: Compiler['webpack'];
17
+ }
18
+ declare class DynamicFilesystemChunkLoadingRuntimeModule extends RuntimeModule {
19
+ private runtimeRequirements;
20
+ private options;
21
+ private chunkLoadingContext;
22
+ hooks: {
23
+ strategyCase: SyncWaterfallHook<unknown, tapable.UnsetAdditionalOptions>;
24
+ };
25
+ private logger;
26
+ constructor(runtimeRequirements: Set<string>, options: DynamicFilesystemChunkLoadingRuntimeModuleOptions, chunkLoadingContext: ChunkLoadingContext);
27
+ /**
28
+ * @private
29
+ * @param {Chunk} chunk chunk
30
+ * @param {string} rootOutputDir root output directory
31
+ * @returns {string} generated code
32
+ */
33
+ _generateBaseUri(chunk: Chunk, rootOutputDir: string): string;
34
+ /**
35
+ * @private
36
+ * @param {unknown[]} items item to log
37
+ */
38
+ _getLogger(...items: unknown[]): string;
39
+ /**
40
+ * @returns {string} runtime code
41
+ */
42
+ generate(): string;
43
+ }
44
+ //#endregion
45
+ export { DynamicFilesystemChunkLoadingRuntimeModule as default };
46
+ //# sourceMappingURL=DynamicFilesystemChunkLoadingRuntimeModule.d.mts.map
@@ -1,40 +1,45 @@
1
- import type { Chunk, Compiler } from 'webpack';
2
- declare const RuntimeModule: typeof import("webpack").RuntimeModule;
3
- import { SyncWaterfallHook } from 'tapable';
1
+ import * as webpack from "webpack";
2
+ import { Chunk, Compiler } from "webpack";
3
+ import * as tapable from "tapable";
4
+ import { SyncWaterfallHook } from "tapable";
5
+
6
+ //#region src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts
7
+ declare const RuntimeModule: typeof webpack.RuntimeModule;
4
8
  interface DynamicFilesystemChunkLoadingRuntimeModuleOptions {
5
- baseURI: Compiler['options']['output']['publicPath'];
6
- promiseBaseURI?: string;
7
- remotes: Record<string, string>;
8
- name?: string;
9
- debug?: boolean;
9
+ baseURI: Compiler['options']['output']['publicPath'];
10
+ promiseBaseURI?: string;
11
+ remotes: Record<string, string>;
12
+ name?: string;
13
+ debug?: boolean;
10
14
  }
11
15
  interface ChunkLoadingContext {
12
- webpack: Compiler['webpack'];
16
+ webpack: Compiler['webpack'];
13
17
  }
14
18
  declare class DynamicFilesystemChunkLoadingRuntimeModule extends RuntimeModule {
15
- private runtimeRequirements;
16
- private options;
17
- private chunkLoadingContext;
18
- hooks: {
19
- strategyCase: SyncWaterfallHook<unknown, import("tapable").UnsetAdditionalOptions>;
20
- };
21
- private logger;
22
- constructor(runtimeRequirements: Set<string>, options: DynamicFilesystemChunkLoadingRuntimeModuleOptions, chunkLoadingContext: ChunkLoadingContext);
23
- /**
24
- * @private
25
- * @param {Chunk} chunk chunk
26
- * @param {string} rootOutputDir root output directory
27
- * @returns {string} generated code
28
- */
29
- _generateBaseUri(chunk: Chunk, rootOutputDir: string): string;
30
- /**
31
- * @private
32
- * @param {unknown[]} items item to log
33
- */
34
- _getLogger(...items: unknown[]): string;
35
- /**
36
- * @returns {string} runtime code
37
- */
38
- generate(): string;
19
+ private runtimeRequirements;
20
+ private options;
21
+ private chunkLoadingContext;
22
+ hooks: {
23
+ strategyCase: SyncWaterfallHook<unknown, tapable.UnsetAdditionalOptions>;
24
+ };
25
+ private logger;
26
+ constructor(runtimeRequirements: Set<string>, options: DynamicFilesystemChunkLoadingRuntimeModuleOptions, chunkLoadingContext: ChunkLoadingContext);
27
+ /**
28
+ * @private
29
+ * @param {Chunk} chunk chunk
30
+ * @param {string} rootOutputDir root output directory
31
+ * @returns {string} generated code
32
+ */
33
+ _generateBaseUri(chunk: Chunk, rootOutputDir: string): string;
34
+ /**
35
+ * @private
36
+ * @param {unknown[]} items item to log
37
+ */
38
+ _getLogger(...items: unknown[]): string;
39
+ /**
40
+ * @returns {string} runtime code
41
+ */
42
+ generate(): string;
39
43
  }
40
- export default DynamicFilesystemChunkLoadingRuntimeModule;
44
+ export = DynamicFilesystemChunkLoadingRuntimeModule;
45
+ //# sourceMappingURL=DynamicFilesystemChunkLoadingRuntimeModule.d.ts.map