@module-federation/enhanced 0.0.0-canary-1701764602388

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 (235) hide show
  1. package/global.d.js +14 -0
  2. package/global.d.js.map +1 -0
  3. package/package.json +19 -0
  4. package/src/declarations/plugins/container/AsyncDependenciesBlock.d.js +14 -0
  5. package/src/declarations/plugins/container/AsyncDependenciesBlock.d.js.map +1 -0
  6. package/src/declarations/plugins/container/ContainerPlugin.d.js +12 -0
  7. package/src/declarations/plugins/container/ContainerPlugin.d.js.map +1 -0
  8. package/src/declarations/plugins/container/ContainerReferencePlugin.d.js +12 -0
  9. package/src/declarations/plugins/container/ContainerReferencePlugin.d.js.map +1 -0
  10. package/src/declarations/plugins/container/Dependency.d.js +14 -0
  11. package/src/declarations/plugins/container/Dependency.d.js.map +1 -0
  12. package/src/declarations/plugins/container/Module.d.js +3 -0
  13. package/src/declarations/plugins/container/Module.d.js.map +1 -0
  14. package/src/declarations/plugins/container/ModuleFactory.d.js +3 -0
  15. package/src/declarations/plugins/container/ModuleFactory.d.js.map +1 -0
  16. package/src/declarations/plugins/container/ModuleFederationPlugin.d.js +12 -0
  17. package/src/declarations/plugins/container/ModuleFederationPlugin.d.js.map +1 -0
  18. package/src/declarations/plugins/container/ObjectDeserializerContext.d.js +6 -0
  19. package/src/declarations/plugins/container/ObjectDeserializerContext.d.js.map +1 -0
  20. package/src/declarations/plugins/container/StaticExportsDependency.d.js +14 -0
  21. package/src/declarations/plugins/container/StaticExportsDependency.d.js.map +1 -0
  22. package/src/declarations/plugins/container/Template.d.js +4 -0
  23. package/src/declarations/plugins/container/Template.d.js.map +1 -0
  24. package/src/declarations/plugins/container/WebpackError.d.js +3 -0
  25. package/src/declarations/plugins/container/WebpackError.d.js.map +1 -0
  26. package/src/declarations/plugins/container/WebpackOptions.d.js +6 -0
  27. package/src/declarations/plugins/container/WebpackOptions.d.js.map +1 -0
  28. package/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.js +12 -0
  29. package/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.js.map +1 -0
  30. package/src/declarations/plugins/sharing/ProvideSharedPlugin.d.js +12 -0
  31. package/src/declarations/plugins/sharing/ProvideSharedPlugin.d.js.map +1 -0
  32. package/src/declarations/plugins/sharing/SharePlugin.d.js +12 -0
  33. package/src/declarations/plugins/sharing/SharePlugin.d.js.map +1 -0
  34. package/src/index.d.ts +7 -0
  35. package/src/index.js +43 -0
  36. package/src/index.js.map +1 -0
  37. package/src/lib/Constants.d.ts +117 -0
  38. package/src/lib/Constants.js +103 -0
  39. package/src/lib/Constants.js.map +1 -0
  40. package/src/lib/RuntimeGlobals.d.ts +0 -0
  41. package/src/lib/RuntimeGlobals.js +246 -0
  42. package/src/lib/RuntimeGlobals.js.map +1 -0
  43. package/src/lib/container/AsyncBoundaryPlugin.d.ts +21 -0
  44. package/src/lib/container/AsyncBoundaryPlugin.js +180 -0
  45. package/src/lib/container/AsyncBoundaryPlugin.js.map +1 -0
  46. package/src/lib/container/ContainerEntryDependency.d.js +4 -0
  47. package/src/lib/container/ContainerEntryDependency.d.js.map +1 -0
  48. package/src/lib/container/ContainerEntryDependency.d.ts +22 -0
  49. package/src/lib/container/ContainerEntryDependency.js +45 -0
  50. package/src/lib/container/ContainerEntryDependency.js.map +1 -0
  51. package/src/lib/container/ContainerEntryModule.d.js +14 -0
  52. package/src/lib/container/ContainerEntryModule.d.js.map +1 -0
  53. package/src/lib/container/ContainerEntryModule.d.ts +86 -0
  54. package/src/lib/container/ContainerEntryModule.js +260 -0
  55. package/src/lib/container/ContainerEntryModule.js.map +1 -0
  56. package/src/lib/container/ContainerEntryModuleFactory.d.js +4 -0
  57. package/src/lib/container/ContainerEntryModuleFactory.d.js.map +1 -0
  58. package/src/lib/container/ContainerEntryModuleFactory.d.ts +10 -0
  59. package/src/lib/container/ContainerEntryModuleFactory.js +32 -0
  60. package/src/lib/container/ContainerEntryModuleFactory.js.map +1 -0
  61. package/src/lib/container/ContainerExposedDependency.d.js +4 -0
  62. package/src/lib/container/ContainerExposedDependency.d.js.map +1 -0
  63. package/src/lib/container/ContainerExposedDependency.d.ts +26 -0
  64. package/src/lib/container/ContainerExposedDependency.js +53 -0
  65. package/src/lib/container/ContainerExposedDependency.js.map +1 -0
  66. package/src/lib/container/ContainerPlugin.d.js +4 -0
  67. package/src/lib/container/ContainerPlugin.d.js.map +1 -0
  68. package/src/lib/container/ContainerPlugin.d.ts +13 -0
  69. package/src/lib/container/ContainerPlugin.js +167 -0
  70. package/src/lib/container/ContainerPlugin.js.map +1 -0
  71. package/src/lib/container/ContainerReferencePlugin.d.js +4 -0
  72. package/src/lib/container/ContainerReferencePlugin.d.js.map +1 -0
  73. package/src/lib/container/ContainerReferencePlugin.d.ts +14 -0
  74. package/src/lib/container/ContainerReferencePlugin.js +102 -0
  75. package/src/lib/container/ContainerReferencePlugin.js.map +1 -0
  76. package/src/lib/container/FallbackDependency.d.js +14 -0
  77. package/src/lib/container/FallbackDependency.d.js.map +1 -0
  78. package/src/lib/container/FallbackDependency.d.ts +25 -0
  79. package/src/lib/container/FallbackDependency.js +55 -0
  80. package/src/lib/container/FallbackDependency.js.map +1 -0
  81. package/src/lib/container/FallbackItemDependency.d.js +4 -0
  82. package/src/lib/container/FallbackItemDependency.d.js.map +1 -0
  83. package/src/lib/container/FallbackItemDependency.d.ts +10 -0
  84. package/src/lib/container/FallbackItemDependency.js +33 -0
  85. package/src/lib/container/FallbackItemDependency.js.map +1 -0
  86. package/src/lib/container/FallbackModule.d.js +4 -0
  87. package/src/lib/container/FallbackModule.d.js.map +1 -0
  88. package/src/lib/container/FallbackModule.d.ts +73 -0
  89. package/src/lib/container/FallbackModule.js +149 -0
  90. package/src/lib/container/FallbackModule.js.map +1 -0
  91. package/src/lib/container/FallbackModuleFactory.d.js +4 -0
  92. package/src/lib/container/FallbackModuleFactory.d.js.map +1 -0
  93. package/src/lib/container/FallbackModuleFactory.d.ts +10 -0
  94. package/src/lib/container/FallbackModuleFactory.js +30 -0
  95. package/src/lib/container/FallbackModuleFactory.js.map +1 -0
  96. package/src/lib/container/HoistContainerReferencesPlugin.d.ts +19 -0
  97. package/src/lib/container/HoistContainerReferencesPlugin.js +78 -0
  98. package/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -0
  99. package/src/lib/container/ModuleFederationPlugin.d.js +4 -0
  100. package/src/lib/container/ModuleFederationPlugin.d.js.map +1 -0
  101. package/src/lib/container/ModuleFederationPlugin.d.ts +17 -0
  102. package/src/lib/container/ModuleFederationPlugin.js +93 -0
  103. package/src/lib/container/ModuleFederationPlugin.js.map +1 -0
  104. package/src/lib/container/ModuleFederationPluginTypes.d.js +12 -0
  105. package/src/lib/container/ModuleFederationPluginTypes.d.js.map +1 -0
  106. package/src/lib/container/RemoteModule.d.js +13 -0
  107. package/src/lib/container/RemoteModule.d.js.map +1 -0
  108. package/src/lib/container/RemoteModule.d.ts +78 -0
  109. package/src/lib/container/RemoteModule.js +150 -0
  110. package/src/lib/container/RemoteModule.js.map +1 -0
  111. package/src/lib/container/RemoteRuntimeModule.d.js +13 -0
  112. package/src/lib/container/RemoteRuntimeModule.d.js.map +1 -0
  113. package/src/lib/container/RemoteRuntimeModule.d.ts +9 -0
  114. package/src/lib/container/RemoteRuntimeModule.js +98 -0
  115. package/src/lib/container/RemoteRuntimeModule.js.map +1 -0
  116. package/src/lib/container/RemoteToExternalDependency.d.js +15 -0
  117. package/src/lib/container/RemoteToExternalDependency.d.js.map +1 -0
  118. package/src/lib/container/RemoteToExternalDependency.d.ts +10 -0
  119. package/src/lib/container/RemoteToExternalDependency.js +33 -0
  120. package/src/lib/container/RemoteToExternalDependency.js.map +1 -0
  121. package/src/lib/container/constant.d.ts +3 -0
  122. package/src/lib/container/constant.js +26 -0
  123. package/src/lib/container/constant.js.map +1 -0
  124. package/src/lib/container/options.d.js +6 -0
  125. package/src/lib/container/options.d.js.map +1 -0
  126. package/src/lib/container/options.d.ts +18 -0
  127. package/src/lib/container/options.js +91 -0
  128. package/src/lib/container/options.js.map +1 -0
  129. package/src/lib/container/runtime/FederationRuntimeEntryDependency.d.ts +7 -0
  130. package/src/lib/container/runtime/FederationRuntimeEntryDependency.js +37 -0
  131. package/src/lib/container/runtime/FederationRuntimeEntryDependency.js.map +1 -0
  132. package/src/lib/container/runtime/FederationRuntimeModule.d.ts +13 -0
  133. package/src/lib/container/runtime/FederationRuntimeModule.js +31 -0
  134. package/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -0
  135. package/src/lib/container/runtime/FederationRuntimePlugin.d.ts +17 -0
  136. package/src/lib/container/runtime/FederationRuntimePlugin.js +223 -0
  137. package/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -0
  138. package/src/lib/container/runtime/InitializeRemoteEntryRuntimePlugin.d.ts +6 -0
  139. package/src/lib/container/runtime/InitializeRemoteEntryRuntimePlugin.js +26 -0
  140. package/src/lib/container/runtime/InitializeRemoteEntryRuntimePlugin.js.map +1 -0
  141. package/src/lib/container/runtime/getFederationGlobal.d.ts +5 -0
  142. package/src/lib/container/runtime/getFederationGlobal.js +42 -0
  143. package/src/lib/container/runtime/getFederationGlobal.js.map +1 -0
  144. package/src/lib/container/runtime/utils.d.ts +15 -0
  145. package/src/lib/container/runtime/utils.js +95 -0
  146. package/src/lib/container/runtime/utils.js.map +1 -0
  147. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.js +4 -0
  148. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.js.map +1 -0
  149. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +10 -0
  150. package/src/lib/sharing/ConsumeSharedFallbackDependency.js +33 -0
  151. package/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +1 -0
  152. package/src/lib/sharing/ConsumeSharedModule.d.js +4 -0
  153. package/src/lib/sharing/ConsumeSharedModule.d.js.map +1 -0
  154. package/src/lib/sharing/ConsumeSharedModule.d.ts +106 -0
  155. package/src/lib/sharing/ConsumeSharedModule.js +195 -0
  156. package/src/lib/sharing/ConsumeSharedModule.js.map +1 -0
  157. package/src/lib/sharing/ConsumeSharedPlugin.d.js +4 -0
  158. package/src/lib/sharing/ConsumeSharedPlugin.d.js.map +1 -0
  159. package/src/lib/sharing/ConsumeSharedPlugin.d.ts +8 -0
  160. package/src/lib/sharing/ConsumeSharedPlugin.js +225 -0
  161. package/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -0
  162. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.js +4 -0
  163. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.js.map +1 -0
  164. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +13 -0
  165. package/src/lib/sharing/ConsumeSharedRuntimeModule.js +310 -0
  166. package/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -0
  167. package/src/lib/sharing/ProvideForSharedDependency.d.js +4 -0
  168. package/src/lib/sharing/ProvideForSharedDependency.d.js.map +1 -0
  169. package/src/lib/sharing/ProvideForSharedDependency.d.ts +11 -0
  170. package/src/lib/sharing/ProvideForSharedDependency.js +34 -0
  171. package/src/lib/sharing/ProvideForSharedDependency.js.map +1 -0
  172. package/src/lib/sharing/ProvideSharedDependency.d.js +14 -0
  173. package/src/lib/sharing/ProvideSharedDependency.d.js.map +1 -0
  174. package/src/lib/sharing/ProvideSharedDependency.d.ts +32 -0
  175. package/src/lib/sharing/ProvideSharedDependency.js +65 -0
  176. package/src/lib/sharing/ProvideSharedDependency.js.map +1 -0
  177. package/src/lib/sharing/ProvideSharedModule.d.js +4 -0
  178. package/src/lib/sharing/ProvideSharedModule.d.js.map +1 -0
  179. package/src/lib/sharing/ProvideSharedModule.d.ts +79 -0
  180. package/src/lib/sharing/ProvideSharedModule.js +169 -0
  181. package/src/lib/sharing/ProvideSharedModule.js.map +1 -0
  182. package/src/lib/sharing/ProvideSharedModuleFactory.d.js +4 -0
  183. package/src/lib/sharing/ProvideSharedModuleFactory.d.js.map +1 -0
  184. package/src/lib/sharing/ProvideSharedModuleFactory.d.ts +11 -0
  185. package/src/lib/sharing/ProvideSharedModuleFactory.js +32 -0
  186. package/src/lib/sharing/ProvideSharedModuleFactory.js.map +1 -0
  187. package/src/lib/sharing/ProvideSharedPlugin.d.js +4 -0
  188. package/src/lib/sharing/ProvideSharedPlugin.d.js.map +1 -0
  189. package/src/lib/sharing/ProvideSharedPlugin.d.ts +34 -0
  190. package/src/lib/sharing/ProvideSharedPlugin.js +168 -0
  191. package/src/lib/sharing/ProvideSharedPlugin.js.map +1 -0
  192. package/src/lib/sharing/SharePlugin.d.js +4 -0
  193. package/src/lib/sharing/SharePlugin.d.js.map +1 -0
  194. package/src/lib/sharing/SharePlugin.d.ts +15 -0
  195. package/src/lib/sharing/SharePlugin.js +73 -0
  196. package/src/lib/sharing/SharePlugin.js.map +1 -0
  197. package/src/lib/sharing/ShareRuntimeModule.d.js +4 -0
  198. package/src/lib/sharing/ShareRuntimeModule.d.js.map +1 -0
  199. package/src/lib/sharing/ShareRuntimeModule.d.ts +9 -0
  200. package/src/lib/sharing/ShareRuntimeModule.js +95 -0
  201. package/src/lib/sharing/ShareRuntimeModule.js.map +1 -0
  202. package/src/lib/sharing/resolveMatchedConfigs.d.js +6 -0
  203. package/src/lib/sharing/resolveMatchedConfigs.d.js.map +1 -0
  204. package/src/lib/sharing/resolveMatchedConfigs.d.ts +8 -0
  205. package/src/lib/sharing/resolveMatchedConfigs.js +69 -0
  206. package/src/lib/sharing/resolveMatchedConfigs.js.map +1 -0
  207. package/src/lib/sharing/utils.d.js +6 -0
  208. package/src/lib/sharing/utils.d.js.map +1 -0
  209. package/src/lib/sharing/utils.d.ts +45 -0
  210. package/src/lib/sharing/utils.js +348 -0
  211. package/src/lib/sharing/utils.js.map +1 -0
  212. package/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +5 -0
  213. package/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +34 -0
  214. package/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +1 -0
  215. package/src/runtime/ModuleInfoRuntimeModule.d.ts +16 -0
  216. package/src/runtime/ModuleInfoRuntimeModule.js +88 -0
  217. package/src/runtime/ModuleInfoRuntimeModule.js.map +1 -0
  218. package/src/runtime/ModuleInfoRuntimePlugin.d.ts +5 -0
  219. package/src/runtime/ModuleInfoRuntimePlugin.js +29 -0
  220. package/src/runtime/ModuleInfoRuntimePlugin.js.map +1 -0
  221. package/src/schemas/container/ContainerPlugin.check.d.ts +7 -0
  222. package/src/schemas/container/ContainerPlugin.check.js +2229 -0
  223. package/src/schemas/container/ContainerPlugin.check.js.map +1 -0
  224. package/src/schemas/container/ContainerPlugin.d.ts +268 -0
  225. package/src/schemas/container/ContainerPlugin.js +324 -0
  226. package/src/schemas/container/ContainerPlugin.js.map +1 -0
  227. package/src/schemas/container/ModuleFederationPlugin.check.d.ts +7 -0
  228. package/src/schemas/container/ModuleFederationPlugin.check.js +3818 -0
  229. package/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -0
  230. package/src/schemas/container/ModuleFederationPlugin.d.ts +441 -0
  231. package/src/schemas/container/ModuleFederationPlugin.js +556 -0
  232. package/src/schemas/container/ModuleFederationPlugin.js.map +1 -0
  233. package/src/types/runtime.d.ts +7 -0
  234. package/src/types/runtime.js +6 -0
  235. package/src/types/runtime.js.map +1 -0
@@ -0,0 +1,10 @@
1
+ import ModuleDependency from 'webpack/lib/dependencies/ModuleDependency';
2
+ declare class ConsumeSharedFallbackDependency extends ModuleDependency {
3
+ /**
4
+ * @param {string} request the request
5
+ */
6
+ constructor(request: string);
7
+ get type(): string;
8
+ get category(): string;
9
+ }
10
+ export default ConsumeSharedFallbackDependency;
@@ -0,0 +1,33 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
4
+ */ 'use strict';
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return _default;
12
+ }
13
+ });
14
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
15
+ const _ModuleDependency = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/dependencies/ModuleDependency"));
16
+ const _makeSerializable = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/util/makeSerializable"));
17
+ let ConsumeSharedFallbackDependency = class ConsumeSharedFallbackDependency extends _ModuleDependency.default {
18
+ get type() {
19
+ return 'consume shared fallback';
20
+ }
21
+ get category() {
22
+ return 'esm';
23
+ }
24
+ /**
25
+ * @param {string} request the request
26
+ */ constructor(request){
27
+ super(request);
28
+ }
29
+ };
30
+ (0, _makeSerializable.default)(ConsumeSharedFallbackDependency, 'enhanced/lib/sharing/ConsumeSharedFallbackDependency');
31
+ const _default = ConsumeSharedFallbackDependency;
32
+
33
+ //# sourceMappingURL=ConsumeSharedFallbackDependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/enhanced/src/lib/sharing/ConsumeSharedFallbackDependency.ts"],"sourcesContent":["/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\n\n'use strict';\n\nimport ModuleDependency from 'webpack/lib/dependencies/ModuleDependency';\nimport makeSerializable from 'webpack/lib/util/makeSerializable';\n\nclass ConsumeSharedFallbackDependency extends ModuleDependency {\n /**\n * @param {string} request the request\n */\n constructor(request: string) {\n super(request);\n }\n\n override get type(): string {\n return 'consume shared fallback';\n }\n\n override get category(): string {\n return 'esm';\n }\n}\n\nmakeSerializable(\n ConsumeSharedFallbackDependency,\n 'enhanced/lib/sharing/ConsumeSharedFallbackDependency',\n);\n\nexport default ConsumeSharedFallbackDependency;\n"],"names":["ConsumeSharedFallbackDependency","ModuleDependency","type","category","constructor","request","makeSerializable"],"mappings":"AAAA;;;AAGA,GAEA;;;;+BA2BA;;;eAAA;;;;2EAzB6B;2EACA;AAE7B,IAAA,AAAMA,kCAAN,MAAMA,wCAAwCC,yBAAgB;IAQ5D,IAAaC,OAAe;QAC1B,OAAO;IACT;IAEA,IAAaC,WAAmB;QAC9B,OAAO;IACT;IAbA;;GAEC,GACDC,YAAYC,OAAe,CAAE;QAC3B,KAAK,CAACA;IACR;AASF;AAEAC,IAAAA,yBAAgB,EACdN,iCACA;MAGF,WAAeA"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ module.exports = ConsumeSharedModule;
3
+
4
+ //# sourceMappingURL=ConsumeSharedModule.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/enhanced/src/lib/sharing/ConsumeSharedModule.d.ts"],"sourcesContent":["export = ConsumeSharedModule;\ndeclare class ConsumeSharedModule extends Module {\n /**\n * @param {string} context context\n * @param {ConsumeOptions} options consume options\n */\n constructor(context: string, options: ConsumeOptions);\n options: ConsumeOptions;\n /**\n * @param {Hash} hash the hash used to track dependencies\n * @param {UpdateHashContext} context context\n * @returns {void}\n */\n updateHash(hash: Hash, context: UpdateHashContext): void;\n}\ndeclare namespace ConsumeSharedModule {\n export {\n WebpackOptions,\n ChunkGraph,\n ChunkGroup,\n Compilation,\n UpdateHashContext,\n CodeGenerationContext,\n CodeGenerationResult,\n LibIdentOptions,\n NeedBuildContext,\n RequestShortener,\n ResolverWithOptions,\n WebpackError,\n ObjectDeserializerContext,\n ObjectSerializerContext,\n Hash,\n InputFileSystem,\n SemVerRange,\n ConsumeOptions,\n };\n}\nimport Module = require('webpack/lib/Module');\ntype ConsumeOptions = {\n /**\n * fallback request\n */\n import?: string | undefined;\n /**\n * resolved fallback request\n */\n importResolved?: string | undefined;\n /**\n * global share key\n */\n shareKey: string;\n /**\n * share scope\n */\n shareScope: string;\n /**\n * version requirement\n */\n requiredVersion:\n | import('webpack/lib/util/semver').SemVerRange\n | false\n | undefined;\n /**\n * package name to determine required version automatically\n */\n packageName: string;\n /**\n * don't use shared version even if version isn't valid\n */\n strictVersion: boolean;\n /**\n * use single global version\n */\n singleton: boolean;\n /**\n * include the fallback module in a sync way\n */\n eager: boolean;\n};\ntype Hash = import('webpack/lib/util/Hash');\ntype UpdateHashContext = import('webpack/lib/Dependency').UpdateHashContext;\ntype WebpackOptions = any;\ntype ChunkGraph = import('webpack/lib/ChunkGraph');\ntype ChunkGroup = import('webpack/lib/ChunkGroup');\ntype Compilation = import('webpack/lib/Compilation');\ntype CodeGenerationContext = import('webpack/lib/Module').CodeGenerationContext;\ntype CodeGenerationResult = import('webpack/lib/Module').CodeGenerationResult;\ntype LibIdentOptions = import('webpack/lib/Module').LibIdentOptions;\ntype NeedBuildContext = import('webpack/lib/Module').NeedBuildContext;\ntype RequestShortener = import('webpack/lib/RequestShortener');\ntype ResolverWithOptions =\n import('webpack/lib/ResolverFactory').ResolverWithOptions;\ntype WebpackError = import('webpack/lib/WebpackError');\ntype ObjectDeserializerContext =\n import('webpack/lib/serialization/ObjectMiddleware').ObjectDeserializerContext;\ntype ObjectSerializerContext =\n import('webpack/lib/serialization/ObjectMiddleware').ObjectSerializerContext;\ntype InputFileSystem = import('webpack/lib/util/fs').InputFileSystem;\ntype SemVerRange = import('webpack/lib/util/semver').SemVerRange;\n"],"names":["ConsumeSharedModule"],"mappings":";iBAASA"}
@@ -0,0 +1,106 @@
1
+ import type { WebpackOptions, Compilation, UpdateHashContext, CodeGenerationContext, CodeGenerationResult, LibIdentOptions, NeedBuildContext, RequestShortener, ResolverWithOptions, WebpackError, ObjectDeserializerContext, ObjectSerializerContext, Hash, InputFileSystem } from 'webpack/lib/Module';
2
+ import Module from 'webpack/lib/Module';
3
+ export type ConsumeOptions = {
4
+ /**
5
+ * fallback request
6
+ */
7
+ import?: string | undefined;
8
+ /**
9
+ * resolved fallback request
10
+ */
11
+ importResolved?: string | undefined;
12
+ /**
13
+ * global share key
14
+ */
15
+ shareKey: string;
16
+ /**
17
+ * share scope
18
+ */
19
+ shareScope: string;
20
+ /**
21
+ * version requirement
22
+ */
23
+ requiredVersion: import('webpack/lib/util/semver').SemVerRange | false | undefined;
24
+ /**
25
+ * package name to determine required version automatically
26
+ */
27
+ packageName: string;
28
+ /**
29
+ * don't use shared version even if version isn't valid
30
+ */
31
+ strictVersion: boolean;
32
+ /**
33
+ * use single global version
34
+ */
35
+ singleton: boolean;
36
+ /**
37
+ * include the fallback module in a sync way
38
+ */
39
+ eager: boolean;
40
+ };
41
+ declare class ConsumeSharedModule extends Module {
42
+ options: ConsumeOptions;
43
+ /**
44
+ * @param {string} context context
45
+ * @param {ConsumeOptions} options consume options
46
+ */
47
+ constructor(context: string, options: ConsumeOptions);
48
+ /**
49
+ * @returns {string} a unique identifier of the module
50
+ */
51
+ identifier(): string;
52
+ /**
53
+ * @param {RequestShortener} requestShortener the request shortener
54
+ * @returns {string} a user readable identifier of the module
55
+ */
56
+ readableIdentifier(requestShortener: RequestShortener): string;
57
+ /**
58
+ * @param {LibIdentOptions} options options
59
+ * @returns {string | null} an identifier for library inclusion
60
+ */
61
+ libIdent(options: LibIdentOptions): string | null;
62
+ /**
63
+ * @param {NeedBuildContext} context context info
64
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
65
+ * @returns {void}
66
+ */
67
+ needBuild(context: NeedBuildContext, callback: (error?: WebpackError | null, needsRebuild?: boolean) => void): void;
68
+ /**
69
+ * @param {WebpackOptions} options webpack options
70
+ * @param {Compilation} compilation the compilation
71
+ * @param {ResolverWithOptions} resolver the resolver
72
+ * @param {InputFileSystem} fs the file system
73
+ * @param {function(WebpackError=): void} callback callback function
74
+ * @returns {void}
75
+ */
76
+ build(options: WebpackOptions, compilation: Compilation, resolver: ResolverWithOptions, fs: InputFileSystem, callback: (error?: WebpackError) => void): void;
77
+ /**
78
+ * @returns {Set<string>} types available (do not mutate)
79
+ */
80
+ getSourceTypes(): Set<string>;
81
+ /**
82
+ * @param {string=} type the source type for which the size should be estimated
83
+ * @returns {number} the estimated size of the module (must be non-zero)
84
+ */
85
+ size(type?: string): number;
86
+ /**
87
+ * @param {Hash} hash the hash used to track dependencies
88
+ * @param {UpdateHashContext} context context
89
+ * @returns {void}
90
+ */
91
+ updateHash(hash: Hash, context: UpdateHashContext): void;
92
+ /**
93
+ * @param {CodeGenerationContext} context context for code generation
94
+ * @returns {CodeGenerationResult} result
95
+ */
96
+ codeGeneration({ chunkGraph, moduleGraph, runtimeTemplate, }: CodeGenerationContext): CodeGenerationResult;
97
+ /**
98
+ * @param {ObjectSerializerContext} context context
99
+ */
100
+ serialize(context: ObjectSerializerContext): void;
101
+ /**
102
+ * @param {ObjectDeserializerContext} context context
103
+ */
104
+ deserialize(context: ObjectDeserializerContext): void;
105
+ }
106
+ export default ConsumeSharedModule;
@@ -0,0 +1,195 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
4
+ */ 'use strict';
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return _default;
12
+ }
13
+ });
14
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
15
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
16
+ const _webpacksources = require("webpack-sources");
17
+ const _AsyncDependenciesBlock = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/AsyncDependenciesBlock"));
18
+ const _Module = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/Module"));
19
+ const _ModuleTypeConstants = require("webpack/lib/ModuleTypeConstants");
20
+ const _RuntimeGlobals = /*#__PURE__*/ _interop_require_wildcard._(require("webpack/lib/RuntimeGlobals"));
21
+ const _makeSerializable = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/util/makeSerializable"));
22
+ const _semver = require("webpack/lib/util/semver");
23
+ const _ConsumeSharedFallbackDependency = /*#__PURE__*/ _interop_require_default._(require("./ConsumeSharedFallbackDependency"));
24
+ const _utils = require("./utils");
25
+ /**
26
+ * @typedef {Object} ConsumeOptions
27
+ * @property {string=} import fallback request
28
+ * @property {string=} importResolved resolved fallback request
29
+ * @property {string} shareKey global share key
30
+ * @property {string} shareScope share scope
31
+ * @property {SemVerRange | false | undefined} requiredVersion version requirement
32
+ * @property {string} packageName package name to determine required version automatically
33
+ * @property {boolean} strictVersion don't use shared version even if version isn't valid
34
+ * @property {boolean} singleton use single global version
35
+ * @property {boolean} eager include the fallback module in a sync way
36
+ */ const TYPES = new Set([
37
+ 'consume-shared'
38
+ ]);
39
+ let ConsumeSharedModule = class ConsumeSharedModule extends _Module.default {
40
+ /**
41
+ * @returns {string} a unique identifier of the module
42
+ */ identifier() {
43
+ const { shareKey, shareScope, importResolved, requiredVersion, strictVersion, singleton, eager } = this.options;
44
+ return `${_ModuleTypeConstants.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE}|${shareScope}|${shareKey}|${requiredVersion && (0, _semver.rangeToString)(requiredVersion)}|${strictVersion}|${importResolved}|${singleton}|${eager}`;
45
+ }
46
+ /**
47
+ * @param {RequestShortener} requestShortener the request shortener
48
+ * @returns {string} a user readable identifier of the module
49
+ */ readableIdentifier(requestShortener) {
50
+ const { shareKey, shareScope, importResolved, requiredVersion, strictVersion, singleton, eager } = this.options;
51
+ return `consume shared module (${shareScope}) ${shareKey}@${requiredVersion ? (0, _semver.rangeToString)(requiredVersion) : '*'}${strictVersion ? ' (strict)' : ''}${singleton ? ' (singleton)' : ''}${importResolved ? ` (fallback: ${requestShortener.shorten(importResolved)})` : ''}${eager ? ' (eager)' : ''}`;
52
+ }
53
+ /**
54
+ * @param {LibIdentOptions} options options
55
+ * @returns {string | null} an identifier for library inclusion
56
+ */ libIdent(options) {
57
+ const { shareKey, shareScope, import: request } = this.options;
58
+ return `${this.layer ? `(${this.layer})/` : ''}webpack/sharing/consume/${shareScope}/${shareKey}${request ? `/${request}` : ''}`;
59
+ }
60
+ /**
61
+ * @param {NeedBuildContext} context context info
62
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
63
+ * @returns {void}
64
+ */ needBuild(context, callback) {
65
+ callback(null, !this.buildInfo);
66
+ }
67
+ /**
68
+ * @param {WebpackOptions} options webpack options
69
+ * @param {Compilation} compilation the compilation
70
+ * @param {ResolverWithOptions} resolver the resolver
71
+ * @param {InputFileSystem} fs the file system
72
+ * @param {function(WebpackError=): void} callback callback function
73
+ * @returns {void}
74
+ */ build(options, compilation, resolver, fs, callback) {
75
+ this.buildMeta = {};
76
+ this.buildInfo = {};
77
+ if (this.options.import) {
78
+ const dep = new _ConsumeSharedFallbackDependency.default(this.options.import);
79
+ if (this.options.eager) {
80
+ this.addDependency(dep);
81
+ } else {
82
+ const block = new _AsyncDependenciesBlock.default({});
83
+ block.addDependency(dep);
84
+ this.addBlock(block);
85
+ }
86
+ }
87
+ callback();
88
+ }
89
+ /**
90
+ * @returns {Set<string>} types available (do not mutate)
91
+ */ getSourceTypes() {
92
+ return TYPES;
93
+ }
94
+ /**
95
+ * @param {string=} type the source type for which the size should be estimated
96
+ * @returns {number} the estimated size of the module (must be non-zero)
97
+ */ size(type) {
98
+ return 42;
99
+ }
100
+ /**
101
+ * @param {Hash} hash the hash used to track dependencies
102
+ * @param {UpdateHashContext} context context
103
+ * @returns {void}
104
+ */ updateHash(hash, context) {
105
+ hash.update(JSON.stringify(this.options));
106
+ super.updateHash(hash, context);
107
+ }
108
+ /**
109
+ * @param {CodeGenerationContext} context context for code generation
110
+ * @returns {CodeGenerationResult} result
111
+ */ codeGeneration({ chunkGraph, moduleGraph, runtimeTemplate }) {
112
+ const runtimeRequirements = new Set([
113
+ _RuntimeGlobals.shareScopeMap
114
+ ]);
115
+ const { shareScope, shareKey, strictVersion, requiredVersion, import: request, singleton, eager } = this.options;
116
+ let fallbackCode;
117
+ if (request) {
118
+ if (eager) {
119
+ const dep = this.dependencies[0];
120
+ fallbackCode = runtimeTemplate.syncModuleFactory({
121
+ dependency: dep,
122
+ chunkGraph,
123
+ runtimeRequirements,
124
+ request: this.options.import
125
+ });
126
+ } else {
127
+ const block = this.blocks[0];
128
+ fallbackCode = runtimeTemplate.asyncModuleFactory({
129
+ block,
130
+ chunkGraph,
131
+ runtimeRequirements,
132
+ request: this.options.import
133
+ });
134
+ }
135
+ }
136
+ let fn = 'load';
137
+ const args = [
138
+ JSON.stringify(shareScope),
139
+ JSON.stringify(shareKey)
140
+ ];
141
+ if (requiredVersion) {
142
+ if (strictVersion) {
143
+ fn += 'Strict';
144
+ }
145
+ if (singleton) {
146
+ fn += 'Singleton';
147
+ }
148
+ args.push((0, _semver.stringifyHoley)(requiredVersion));
149
+ fn += 'VersionCheck';
150
+ } else {
151
+ if (singleton) {
152
+ fn += 'Singleton';
153
+ }
154
+ }
155
+ if (fallbackCode) {
156
+ fn += 'Fallback';
157
+ args.push(fallbackCode);
158
+ }
159
+ // const code = runtimeTemplate.returningFunction(`${fn}(${args.join(', ')})`);
160
+ const sources = new Map();
161
+ sources.set('consume-shared', new _webpacksources.RawSource(fallbackCode || '()=>()=>{}'));
162
+ const data = new Map();
163
+ data.set('consume-shared', (0, _utils.normalizeConsumeShareOptions)(this.options));
164
+ return {
165
+ runtimeRequirements,
166
+ sources,
167
+ data
168
+ };
169
+ }
170
+ /**
171
+ * @param {ObjectSerializerContext} context context
172
+ */ serialize(context) {
173
+ const { write } = context;
174
+ write(this.options);
175
+ super.serialize(context);
176
+ }
177
+ /**
178
+ * @param {ObjectDeserializerContext} context context
179
+ */ deserialize(context) {
180
+ const { read } = context;
181
+ this.options = read();
182
+ super.deserialize(context);
183
+ }
184
+ /**
185
+ * @param {string} context context
186
+ * @param {ConsumeOptions} options consume options
187
+ */ constructor(context, options){
188
+ super(_ModuleTypeConstants.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE, context);
189
+ this.options = options;
190
+ }
191
+ };
192
+ (0, _makeSerializable.default)(ConsumeSharedModule, 'enhanced/lib/sharing/ConsumeSharedModule');
193
+ const _default = ConsumeSharedModule;
194
+
195
+ //# sourceMappingURL=ConsumeSharedModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/enhanced/src/lib/sharing/ConsumeSharedModule.ts"],"sourcesContent":["/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\n\n'use strict';\n\nimport { RawSource } from 'webpack-sources';\n//@ts-ignore\nimport AsyncDependenciesBlock from 'webpack/lib/AsyncDependenciesBlock';\nimport type {\n WebpackOptions,\n Compilation,\n UpdateHashContext,\n CodeGenerationContext,\n CodeGenerationResult,\n LibIdentOptions,\n NeedBuildContext,\n RequestShortener,\n ResolverWithOptions,\n WebpackError,\n ObjectDeserializerContext,\n ObjectSerializerContext,\n Hash,\n InputFileSystem,\n} from 'webpack/lib/Module';\n//@ts-ignore\nimport Module from 'webpack/lib/Module';\nimport { WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE } from 'webpack/lib/ModuleTypeConstants';\nimport * as RuntimeGlobals from 'webpack/lib/RuntimeGlobals';\n//@ts-ignore\nimport makeSerializable from 'webpack/lib/util/makeSerializable';\nimport { rangeToString, stringifyHoley } from 'webpack/lib/util/semver';\nimport ConsumeSharedFallbackDependency from './ConsumeSharedFallbackDependency';\nimport { normalizeConsumeShareOptions } from './utils';\n\nexport type ConsumeOptions = {\n /**\n * fallback request\n */\n import?: string | undefined;\n /**\n * resolved fallback request\n */\n importResolved?: string | undefined;\n /**\n * global share key\n */\n shareKey: string;\n /**\n * share scope\n */\n shareScope: string;\n /**\n * version requirement\n */\n requiredVersion:\n | import('webpack/lib/util/semver').SemVerRange\n | false\n | undefined;\n /**\n * package name to determine required version automatically\n */\n packageName: string;\n /**\n * don't use shared version even if version isn't valid\n */\n strictVersion: boolean;\n /**\n * use single global version\n */\n singleton: boolean;\n /**\n * include the fallback module in a sync way\n */\n eager: boolean;\n};\n\n/**\n * @typedef {Object} ConsumeOptions\n * @property {string=} import fallback request\n * @property {string=} importResolved resolved fallback request\n * @property {string} shareKey global share key\n * @property {string} shareScope share scope\n * @property {SemVerRange | false | undefined} requiredVersion version requirement\n * @property {string} packageName package name to determine required version automatically\n * @property {boolean} strictVersion don't use shared version even if version isn't valid\n * @property {boolean} singleton use single global version\n * @property {boolean} eager include the fallback module in a sync way\n */\n\nconst TYPES = new Set(['consume-shared']);\n\nclass ConsumeSharedModule extends Module {\n options: ConsumeOptions;\n\n /**\n * @param {string} context context\n * @param {ConsumeOptions} options consume options\n */\n constructor(context: string, options: ConsumeOptions) {\n super(WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE, context);\n this.options = options;\n }\n\n /**\n * @returns {string} a unique identifier of the module\n */\n override identifier(): string {\n const {\n shareKey,\n shareScope,\n importResolved,\n requiredVersion,\n strictVersion,\n singleton,\n eager,\n } = this.options;\n return `${WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE}|${shareScope}|${shareKey}|${\n requiredVersion && rangeToString(requiredVersion)\n }|${strictVersion}|${importResolved}|${singleton}|${eager}`;\n }\n\n /**\n * @param {RequestShortener} requestShortener the request shortener\n * @returns {string} a user readable identifier of the module\n */\n override readableIdentifier(requestShortener: RequestShortener): string {\n const {\n shareKey,\n shareScope,\n importResolved,\n requiredVersion,\n strictVersion,\n singleton,\n eager,\n } = this.options;\n return `consume shared module (${shareScope}) ${shareKey}@${\n requiredVersion ? rangeToString(requiredVersion) : '*'\n }${strictVersion ? ' (strict)' : ''}${singleton ? ' (singleton)' : ''}${\n importResolved\n ? ` (fallback: ${requestShortener.shorten(importResolved)})`\n : ''\n }${eager ? ' (eager)' : ''}`;\n }\n\n /**\n * @param {LibIdentOptions} options options\n * @returns {string | null} an identifier for library inclusion\n */\n override libIdent(options: LibIdentOptions): string | null {\n const { shareKey, shareScope, import: request } = this.options;\n return `${\n this.layer ? `(${this.layer})/` : ''\n }webpack/sharing/consume/${shareScope}/${shareKey}${\n request ? `/${request}` : ''\n }`;\n }\n\n /**\n * @param {NeedBuildContext} context context info\n * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild\n * @returns {void}\n */\n override needBuild(\n context: NeedBuildContext,\n callback: (error?: WebpackError | null, needsRebuild?: boolean) => void,\n ): void {\n callback(null, !this.buildInfo);\n }\n\n /**\n * @param {WebpackOptions} options webpack options\n * @param {Compilation} compilation the compilation\n * @param {ResolverWithOptions} resolver the resolver\n * @param {InputFileSystem} fs the file system\n * @param {function(WebpackError=): void} callback callback function\n * @returns {void}\n */\n override build(\n options: WebpackOptions,\n compilation: Compilation,\n resolver: ResolverWithOptions,\n fs: InputFileSystem,\n callback: (error?: WebpackError) => void,\n ): void {\n this.buildMeta = {};\n this.buildInfo = {};\n if (this.options.import) {\n const dep = new ConsumeSharedFallbackDependency(this.options.import);\n if (this.options.eager) {\n this.addDependency(dep);\n } else {\n const block = new AsyncDependenciesBlock({});\n block.addDependency(dep);\n this.addBlock(block);\n }\n }\n callback();\n }\n\n /**\n * @returns {Set<string>} types available (do not mutate)\n */\n override getSourceTypes(): Set<string> {\n return TYPES;\n }\n\n /**\n * @param {string=} type the source type for which the size should be estimated\n * @returns {number} the estimated size of the module (must be non-zero)\n */\n override size(type?: string): number {\n return 42;\n }\n\n /**\n * @param {Hash} hash the hash used to track dependencies\n * @param {UpdateHashContext} context context\n * @returns {void}\n */\n override updateHash(hash: Hash, context: UpdateHashContext): void {\n hash.update(JSON.stringify(this.options));\n super.updateHash(hash, context);\n }\n\n /**\n * @param {CodeGenerationContext} context context for code generation\n * @returns {CodeGenerationResult} result\n */\n override codeGeneration({\n chunkGraph,\n moduleGraph,\n runtimeTemplate,\n }: CodeGenerationContext): CodeGenerationResult {\n const runtimeRequirements = new Set([RuntimeGlobals.shareScopeMap]);\n const {\n shareScope,\n shareKey,\n strictVersion,\n requiredVersion,\n import: request,\n singleton,\n eager,\n } = this.options;\n let fallbackCode;\n if (request) {\n if (eager) {\n const dep = this.dependencies[0];\n fallbackCode = runtimeTemplate.syncModuleFactory({\n dependency: dep,\n chunkGraph,\n runtimeRequirements,\n request: this.options.import,\n });\n } else {\n const block = this.blocks[0];\n fallbackCode = runtimeTemplate.asyncModuleFactory({\n block,\n chunkGraph,\n runtimeRequirements,\n request: this.options.import,\n });\n }\n }\n let fn = 'load';\n const args = [JSON.stringify(shareScope), JSON.stringify(shareKey)];\n if (requiredVersion) {\n if (strictVersion) {\n fn += 'Strict';\n }\n if (singleton) {\n fn += 'Singleton';\n }\n args.push(stringifyHoley(requiredVersion));\n fn += 'VersionCheck';\n } else {\n if (singleton) {\n fn += 'Singleton';\n }\n }\n if (fallbackCode) {\n fn += 'Fallback';\n args.push(fallbackCode);\n }\n // const code = runtimeTemplate.returningFunction(`${fn}(${args.join(', ')})`);\n const sources = new Map();\n sources.set('consume-shared', new RawSource(fallbackCode || '()=>()=>{}'));\n\n const data = new Map();\n data.set('consume-shared', normalizeConsumeShareOptions(this.options));\n\n return {\n runtimeRequirements,\n sources,\n data,\n };\n }\n\n /**\n * @param {ObjectSerializerContext} context context\n */\n override serialize(context: ObjectSerializerContext): void {\n const { write } = context;\n write(this.options);\n super.serialize(context);\n }\n\n /**\n * @param {ObjectDeserializerContext} context context\n */\n override deserialize(context: ObjectDeserializerContext): void {\n const { read } = context;\n this.options = read();\n super.deserialize(context);\n }\n}\n\nmakeSerializable(\n ConsumeSharedModule,\n 'enhanced/lib/sharing/ConsumeSharedModule',\n);\n\nexport default ConsumeSharedModule;\n"],"names":["TYPES","Set","ConsumeSharedModule","Module","identifier","shareKey","shareScope","importResolved","requiredVersion","strictVersion","singleton","eager","options","WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE","rangeToString","readableIdentifier","requestShortener","shorten","libIdent","import","request","layer","needBuild","context","callback","buildInfo","build","compilation","resolver","fs","buildMeta","dep","ConsumeSharedFallbackDependency","addDependency","block","AsyncDependenciesBlock","addBlock","getSourceTypes","size","type","updateHash","hash","update","JSON","stringify","codeGeneration","chunkGraph","moduleGraph","runtimeTemplate","runtimeRequirements","RuntimeGlobals","shareScopeMap","fallbackCode","dependencies","syncModuleFactory","dependency","blocks","asyncModuleFactory","fn","args","push","stringifyHoley","sources","Map","set","RawSource","data","normalizeConsumeShareOptions","serialize","write","deserialize","read","constructor","makeSerializable"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ module.exports = ConsumeSharedPlugin;
3
+
4
+ //# sourceMappingURL=ConsumeSharedPlugin.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/enhanced/src/lib/sharing/ConsumeSharedPlugin.d.ts"],"sourcesContent":["export = ConsumeSharedPlugin;\ndeclare class ConsumeSharedPlugin {\n /**\n * @param {ConsumeSharedPluginOptions} options options\n */\n constructor(options: any);\n /** @type {[string, ConsumeOptions][]} */\n _consumes: [string, ConsumeOptions][];\n /**\n * Apply the plugin\n * @param {Compiler} compiler the compiler instance\n * @returns {void}\n */\n apply(compiler: Compiler): void;\n}\ndeclare namespace ConsumeSharedPlugin {\n export {\n ConsumeSharedPluginOptions,\n ConsumesConfig,\n Compiler,\n ResolveOptionsWithDependencyType,\n ConsumeOptions,\n };\n}\ntype ConsumeOptions = import('./ConsumeSharedModule').ConsumeOptions;\ntype Compiler = import('webpack/lib/Compiler');\ntype ConsumeSharedPluginOptions = any;\ntype ConsumesConfig = any;\ntype ResolveOptionsWithDependencyType =\n import('webpack/lib/ResolverFactory').ResolveOptionsWithDependencyType;\n"],"names":["ConsumeSharedPlugin"],"mappings":";iBAASA"}
@@ -0,0 +1,8 @@
1
+ import { ConsumeSharedPluginOptions } from '../../declarations/plugins/sharing/ConsumeSharedPlugin';
2
+ import Compiler from 'webpack/lib/Compiler';
3
+ declare class ConsumeSharedPlugin {
4
+ private _consumes;
5
+ constructor(options: ConsumeSharedPluginOptions);
6
+ apply(compiler: Compiler): void;
7
+ }
8
+ export default ConsumeSharedPlugin;
@@ -0,0 +1,225 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
4
+ */ 'use strict';
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return _default;
12
+ }
13
+ });
14
+ const _extends = require("@swc/helpers/_/_extends");
15
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
16
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
17
+ const _options = require("../container/options");
18
+ const _resolveMatchedConfigs = require("./resolveMatchedConfigs");
19
+ const _utils = require("./utils");
20
+ const _ConsumeSharedFallbackDependency = /*#__PURE__*/ _interop_require_default._(require("./ConsumeSharedFallbackDependency"));
21
+ const _ConsumeSharedModule = /*#__PURE__*/ _interop_require_default._(require("./ConsumeSharedModule"));
22
+ const _ConsumeSharedRuntimeModule = /*#__PURE__*/ _interop_require_default._(require("./ConsumeSharedRuntimeModule"));
23
+ const _ProvideForSharedDependency = /*#__PURE__*/ _interop_require_default._(require("./ProvideForSharedDependency"));
24
+ const _ModuleNotFoundError = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/ModuleNotFoundError"));
25
+ const _RuntimeGlobals = /*#__PURE__*/ _interop_require_wildcard._(require("webpack/lib/RuntimeGlobals"));
26
+ const _WebpackError = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/WebpackError"));
27
+ const _LazySet = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/util/LazySet"));
28
+ const _createschemavalidation = /*#__PURE__*/ _interop_require_default._(require("webpack/lib/util/create-schema-validation"));
29
+ const _FederationRuntimePlugin = /*#__PURE__*/ _interop_require_default._(require("../container/runtime/FederationRuntimePlugin"));
30
+ const _ShareRuntimeModule = /*#__PURE__*/ _interop_require_default._(require("./ShareRuntimeModule"));
31
+ const validate = (0, _createschemavalidation.default)(//eslint-disable-next-line
32
+ require('webpack/schemas/plugins/sharing/ConsumeSharedPlugin.check.js'), ()=>require('webpack/schemas/plugins/sharing/ConsumeSharedPlugin.json'), {
33
+ name: 'Consume Shared Plugin',
34
+ baseDataPath: 'options'
35
+ });
36
+ const RESOLVE_OPTIONS = {
37
+ dependencyType: 'esm'
38
+ };
39
+ const PLUGIN_NAME = 'ConsumeSharedPlugin';
40
+ let ConsumeSharedPlugin = class ConsumeSharedPlugin {
41
+ apply(compiler) {
42
+ //@ts-ignore
43
+ new _FederationRuntimePlugin.default().apply(compiler);
44
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory })=>{
45
+ compilation.dependencyFactories.set(_ConsumeSharedFallbackDependency.default, normalModuleFactory);
46
+ let unresolvedConsumes, resolvedConsumes, prefixedConsumes;
47
+ const promise = (0, _resolveMatchedConfigs.resolveMatchedConfigs)(compilation, this._consumes).then(({ resolved, unresolved, prefixed })=>{
48
+ resolvedConsumes = resolved;
49
+ unresolvedConsumes = unresolved;
50
+ prefixedConsumes = prefixed;
51
+ });
52
+ const resolver = compilation.resolverFactory.get('normal', RESOLVE_OPTIONS);
53
+ const createConsumeSharedModule = (context, request, config)=>{
54
+ const requiredVersionWarning = (details)=>{
55
+ const error = new _WebpackError.default(`No required version specified and unable to automatically determine one. ${details}`);
56
+ error.file = `shared module ${request}`;
57
+ compilation.warnings.push(error);
58
+ };
59
+ const directFallback = config.import && /^(\.\.?(\/|$)|\/|[A-Za-z]:|\\\\)/.test(config.import);
60
+ return Promise.all([
61
+ new Promise((resolve)=>{
62
+ if (!config.import) return resolve(undefined);
63
+ const resolveContext = {
64
+ fileDependencies: new _LazySet.default(),
65
+ contextDependencies: new _LazySet.default(),
66
+ missingDependencies: new _LazySet.default()
67
+ };
68
+ resolver.resolve({}, directFallback ? compiler.context : context, config.import, resolveContext, (err, result)=>{
69
+ compilation.contextDependencies.addAll(resolveContext.contextDependencies);
70
+ compilation.fileDependencies.addAll(resolveContext.fileDependencies);
71
+ compilation.missingDependencies.addAll(resolveContext.missingDependencies);
72
+ if (err) {
73
+ compilation.errors.push(new _ModuleNotFoundError.default(null, err, {
74
+ name: `resolving fallback for shared module ${request}`
75
+ }));
76
+ return resolve(undefined);
77
+ }
78
+ //@ts-ignore
79
+ resolve(result);
80
+ });
81
+ }),
82
+ new Promise((resolve)=>{
83
+ if (config.requiredVersion !== undefined) {
84
+ return resolve(config.requiredVersion);
85
+ }
86
+ let packageName = config.packageName;
87
+ if (packageName === undefined) {
88
+ if (/^(\/|[A-Za-z]:|\\\\)/.test(request)) {
89
+ // For relative or absolute requests we don't automatically use a packageName.
90
+ // If wished one can specify one with the packageName option.
91
+ return resolve(undefined);
92
+ }
93
+ const match = /^((?:@[^\\/]+[\\/])?[^\\/]+)/.exec(request);
94
+ if (!match) {
95
+ requiredVersionWarning('Unable to extract the package name from request.');
96
+ return resolve(undefined);
97
+ }
98
+ packageName = match[0];
99
+ }
100
+ (0, _utils.getDescriptionFile)(compilation.inputFileSystem, context, [
101
+ 'package.json'
102
+ ], (err, result)=>{
103
+ if (err) {
104
+ requiredVersionWarning(`Unable to read description file: ${err}`);
105
+ return resolve(undefined);
106
+ }
107
+ //@ts-ignore
108
+ const { data, path: descriptionPath } = result;
109
+ if (!data) {
110
+ requiredVersionWarning(`Unable to find description file in ${context}.`);
111
+ return resolve(undefined);
112
+ }
113
+ //@ts-ignore
114
+ if (data.name === packageName) {
115
+ // Package self-referencing
116
+ return resolve(undefined);
117
+ }
118
+ const requiredVersion = (0, _utils.getRequiredVersionFromDescriptionFile)(data, packageName);
119
+ if (typeof requiredVersion !== 'string') {
120
+ requiredVersionWarning(`Unable to find required version for "${packageName}" in description file (${descriptionPath}). It need to be in dependencies, devDependencies or peerDependencies.`);
121
+ return resolve(undefined);
122
+ }
123
+ // @ts-ignore webpack internal semver has some issue, use runtime semver , related issue: https://github.com/webpack/webpack/issues/17756
124
+ resolve(requiredVersion);
125
+ });
126
+ })
127
+ ]).then(([importResolved, requiredVersion])=>{
128
+ return new _ConsumeSharedModule.default(directFallback ? compiler.context : context, _extends._({}, config, {
129
+ importResolved,
130
+ import: importResolved ? config.import : undefined,
131
+ requiredVersion
132
+ }));
133
+ });
134
+ };
135
+ normalModuleFactory.hooks.factorize.tapPromise(PLUGIN_NAME, ({ context, request, dependencies })=>// wait for resolving to be complete
136
+ //@ts-ignore
137
+ promise.then(()=>{
138
+ if (dependencies[0] instanceof _ConsumeSharedFallbackDependency.default || dependencies[0] instanceof _ProvideForSharedDependency.default) {
139
+ return;
140
+ }
141
+ const match = unresolvedConsumes.get(request);
142
+ if (match !== undefined) {
143
+ return createConsumeSharedModule(context, request, match);
144
+ }
145
+ for (const [prefix, options] of prefixedConsumes){
146
+ if (request.startsWith(prefix)) {
147
+ const remainder = request.slice(prefix.length);
148
+ return createConsumeSharedModule(context, request, _extends._({}, options, {
149
+ import: options.import ? options.import + remainder : undefined,
150
+ shareKey: options.shareKey + remainder
151
+ }));
152
+ }
153
+ }
154
+ }));
155
+ normalModuleFactory.hooks.createModule.tapPromise(PLUGIN_NAME, ({ resource }, { context, dependencies })=>{
156
+ if (dependencies[0] instanceof _ConsumeSharedFallbackDependency.default || dependencies[0] instanceof _ProvideForSharedDependency.default) {
157
+ return Promise.resolve();
158
+ }
159
+ if (resource) {
160
+ const options = resolvedConsumes.get(resource);
161
+ if (options !== undefined) {
162
+ return createConsumeSharedModule(context, resource, options);
163
+ }
164
+ }
165
+ return Promise.resolve();
166
+ });
167
+ compilation.hooks.additionalTreeRuntimeRequirements.tap(PLUGIN_NAME, (chunk, set)=>{
168
+ set.add(_RuntimeGlobals.module);
169
+ set.add(_RuntimeGlobals.moduleCache);
170
+ set.add(_RuntimeGlobals.moduleFactoriesAddOnly);
171
+ set.add(_RuntimeGlobals.shareScopeMap);
172
+ set.add(_RuntimeGlobals.initializeSharing);
173
+ set.add(_RuntimeGlobals.hasOwnProperty);
174
+ compilation.addRuntimeModule(chunk, new _ConsumeSharedRuntimeModule.default(set));
175
+ // FIXME: need to remove webpack internal inject ShareRuntimeModule, otherwise there will be two ShareRuntimeModule
176
+ compilation.addRuntimeModule(chunk, new _ShareRuntimeModule.default());
177
+ });
178
+ });
179
+ }
180
+ constructor(options){
181
+ if (typeof options !== 'string') {
182
+ validate(options);
183
+ }
184
+ this._consumes = (0, _options.parseOptions)(options.consumes, (item, key)=>{
185
+ if (Array.isArray(item)) throw new Error('Unexpected array in options');
186
+ //@ts-ignore
187
+ const result = item === key || !(0, _utils.isRequiredVersion)(item) ? {
188
+ import: key,
189
+ shareScope: options.shareScope || 'default',
190
+ shareKey: key,
191
+ requiredVersion: undefined,
192
+ packageName: undefined,
193
+ strictVersion: false,
194
+ singleton: false,
195
+ eager: false
196
+ } : // item is a version
197
+ {
198
+ import: key,
199
+ shareScope: options.shareScope || 'default',
200
+ shareKey: key,
201
+ // webpack internal semver has some issue, use runtime semver , related issue: https://github.com/webpack/webpack/issues/17756
202
+ requiredVersion: item,
203
+ strictVersion: true,
204
+ packageName: undefined,
205
+ singleton: false,
206
+ eager: false
207
+ };
208
+ return result;
209
+ }, (item, key)=>({
210
+ import: item.import === false ? undefined : item.import || key,
211
+ shareScope: item.shareScope || options.shareScope || 'default',
212
+ shareKey: item.shareKey || key,
213
+ // @ts-ignore webpack internal semver has some issue, use runtime semver , related issue: https://github.com/webpack/webpack/issues/17756
214
+ requiredVersion: item.requiredVersion,
215
+ strictVersion: typeof item.strictVersion === 'boolean' ? item.strictVersion : item.import !== false && !item.singleton,
216
+ //@ts-ignore
217
+ packageName: item.packageName,
218
+ singleton: !!item.singleton,
219
+ eager: !!item.eager
220
+ }));
221
+ }
222
+ };
223
+ const _default = ConsumeSharedPlugin;
224
+
225
+ //# sourceMappingURL=ConsumeSharedPlugin.js.map