@module-federation/runtime-core 0.0.0-perf-devtools-20260107043700 → 0.0.0-perf-website-code-usage-20260914033703

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 (221) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_rolldown/runtime.cjs +19 -0
  3. package/dist/_virtual/_rolldown/runtime.js +18 -0
  4. package/dist/constant.cjs +9 -0
  5. package/dist/constant.cjs.map +1 -0
  6. package/dist/constant.js +7 -0
  7. package/dist/constant.js.map +1 -0
  8. package/dist/core.cjs +150 -0
  9. package/dist/core.cjs.map +1 -0
  10. package/dist/core.d.ts +199 -0
  11. package/dist/core.js +150 -0
  12. package/dist/core.js.map +1 -0
  13. package/dist/global.cjs +175 -0
  14. package/dist/global.cjs.map +1 -0
  15. package/dist/global.d.ts +46 -0
  16. package/dist/global.js +155 -0
  17. package/dist/global.js.map +1 -0
  18. package/dist/helpers.cjs +44 -0
  19. package/dist/helpers.cjs.map +1 -0
  20. package/dist/helpers.d.ts +30 -0
  21. package/dist/helpers.js +44 -0
  22. package/dist/helpers.js.map +1 -0
  23. package/dist/index.cjs +62 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/index.d.ts +30 -1
  26. package/dist/index.js +22 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/module/index.cjs +268 -0
  29. package/dist/module/index.cjs.map +1 -0
  30. package/dist/module/index.d.ts +33 -0
  31. package/dist/module/index.js +268 -0
  32. package/dist/module/index.js.map +1 -0
  33. package/dist/plugins/generate-preload-assets.cjs +182 -0
  34. package/dist/plugins/generate-preload-assets.cjs.map +1 -0
  35. package/dist/plugins/generate-preload-assets.js +182 -0
  36. package/dist/plugins/generate-preload-assets.js.map +1 -0
  37. package/dist/plugins/snapshot/SnapshotHandler.cjs +258 -0
  38. package/dist/plugins/snapshot/SnapshotHandler.cjs.map +1 -0
  39. package/dist/plugins/snapshot/SnapshotHandler.d.ts +92 -0
  40. package/dist/plugins/snapshot/SnapshotHandler.js +257 -0
  41. package/dist/plugins/snapshot/SnapshotHandler.js.map +1 -0
  42. package/dist/plugins/snapshot/disabled.cjs +13 -0
  43. package/dist/plugins/snapshot/disabled.cjs.map +1 -0
  44. package/dist/plugins/snapshot/disabled.js +13 -0
  45. package/dist/plugins/snapshot/disabled.js.map +1 -0
  46. package/dist/plugins/snapshot/index.cjs +77 -0
  47. package/dist/plugins/snapshot/index.cjs.map +1 -0
  48. package/dist/plugins/snapshot/index.js +76 -0
  49. package/dist/plugins/snapshot/index.js.map +1 -0
  50. package/dist/remote/disabled.cjs +38 -0
  51. package/dist/remote/disabled.cjs.map +1 -0
  52. package/dist/remote/disabled.js +37 -0
  53. package/dist/remote/disabled.js.map +1 -0
  54. package/dist/remote/index.cjs +458 -0
  55. package/dist/remote/index.cjs.map +1 -0
  56. package/dist/remote/index.d.ts +147 -0
  57. package/dist/remote/index.js +458 -0
  58. package/dist/remote/index.js.map +1 -0
  59. package/dist/shared/disabled.cjs +33 -0
  60. package/dist/shared/disabled.cjs.map +1 -0
  61. package/dist/shared/disabled.js +33 -0
  62. package/dist/shared/disabled.js.map +1 -0
  63. package/dist/shared/index.cjs +477 -0
  64. package/dist/shared/index.cjs.map +1 -0
  65. package/dist/shared/index.d.ts +113 -0
  66. package/dist/shared/index.js +477 -0
  67. package/dist/shared/index.js.map +1 -0
  68. package/dist/type/config.d.ts +138 -0
  69. package/dist/type/index.cjs +13 -0
  70. package/dist/type/index.cjs.map +1 -0
  71. package/dist/type/index.d.ts +11 -0
  72. package/dist/type/index.js +8 -0
  73. package/dist/type/index.js.map +1 -0
  74. package/dist/type/plugin.d.ts +28 -0
  75. package/dist/type/preload.d.ts +60 -0
  76. package/dist/types.cjs +0 -0
  77. package/dist/types.d.ts +4 -1
  78. package/dist/types.js +1 -0
  79. package/dist/utils/context.cjs +45 -0
  80. package/dist/utils/context.cjs.map +1 -0
  81. package/dist/utils/context.d.ts +1 -0
  82. package/dist/utils/context.js +44 -0
  83. package/dist/utils/context.js.map +1 -0
  84. package/dist/utils/env.cjs +10 -0
  85. package/dist/utils/env.cjs.map +1 -0
  86. package/dist/utils/env.d.ts +1 -0
  87. package/dist/utils/env.js +10 -0
  88. package/dist/utils/env.js.map +1 -0
  89. package/dist/utils/hooks/asyncHook.cjs +26 -0
  90. package/dist/utils/hooks/asyncHook.cjs.map +1 -0
  91. package/dist/utils/hooks/asyncHook.d.ts +10 -0
  92. package/dist/utils/hooks/asyncHook.js +26 -0
  93. package/dist/utils/hooks/asyncHook.js.map +1 -0
  94. package/dist/utils/hooks/asyncWaterfallHooks.cjs +44 -0
  95. package/dist/utils/hooks/asyncWaterfallHooks.cjs.map +1 -0
  96. package/dist/utils/hooks/asyncWaterfallHooks.d.ts +12 -0
  97. package/dist/utils/hooks/asyncWaterfallHooks.js +44 -0
  98. package/dist/utils/hooks/asyncWaterfallHooks.js.map +1 -0
  99. package/dist/utils/hooks/index.cjs +5 -0
  100. package/dist/utils/hooks/index.js +7 -0
  101. package/dist/utils/hooks/pluginSystem.cjs +38 -0
  102. package/dist/utils/hooks/pluginSystem.cjs.map +1 -0
  103. package/dist/utils/hooks/pluginSystem.d.ts +16 -0
  104. package/dist/utils/hooks/pluginSystem.js +38 -0
  105. package/dist/utils/hooks/pluginSystem.js.map +1 -0
  106. package/dist/utils/hooks/syncHook.cjs +37 -0
  107. package/dist/utils/hooks/syncHook.cjs.map +1 -0
  108. package/dist/utils/hooks/syncHook.d.ts +16 -0
  109. package/dist/utils/hooks/syncHook.js +36 -0
  110. package/dist/utils/hooks/syncHook.js.map +1 -0
  111. package/dist/utils/hooks/syncWaterfallHook.cjs +40 -0
  112. package/dist/utils/hooks/syncWaterfallHook.cjs.map +1 -0
  113. package/dist/utils/hooks/syncWaterfallHook.d.ts +11 -0
  114. package/dist/utils/hooks/syncWaterfallHook.js +39 -0
  115. package/dist/utils/hooks/syncWaterfallHook.js.map +1 -0
  116. package/dist/utils/index.cjs +8 -0
  117. package/dist/utils/index.d.ts +4 -0
  118. package/dist/utils/index.js +9 -0
  119. package/dist/utils/load.cjs +280 -0
  120. package/dist/utils/load.cjs.map +1 -0
  121. package/dist/utils/load.d.ts +16 -0
  122. package/dist/utils/load.js +277 -0
  123. package/dist/utils/load.js.map +1 -0
  124. package/dist/utils/logger.cjs +34 -0
  125. package/dist/utils/logger.cjs.map +1 -0
  126. package/dist/utils/logger.d.ts +10 -0
  127. package/dist/utils/logger.js +31 -0
  128. package/dist/utils/logger.js.map +1 -0
  129. package/dist/utils/manifest.cjs +56 -0
  130. package/dist/utils/manifest.cjs.map +1 -0
  131. package/dist/utils/manifest.d.ts +10 -0
  132. package/dist/utils/manifest.js +53 -0
  133. package/dist/utils/manifest.js.map +1 -0
  134. package/dist/utils/plugin.cjs +50 -0
  135. package/dist/utils/plugin.cjs.map +1 -0
  136. package/dist/utils/plugin.d.ts +1 -0
  137. package/dist/utils/plugin.js +50 -0
  138. package/dist/utils/plugin.js.map +1 -0
  139. package/dist/utils/preload.cjs +221 -0
  140. package/dist/utils/preload.cjs.map +1 -0
  141. package/dist/utils/preload.d.ts +8 -0
  142. package/dist/utils/preload.js +218 -0
  143. package/dist/utils/preload.js.map +1 -0
  144. package/dist/utils/semver/compare.cjs +48 -0
  145. package/dist/utils/semver/compare.cjs.map +1 -0
  146. package/dist/utils/semver/compare.js +47 -0
  147. package/dist/utils/semver/compare.js.map +1 -0
  148. package/dist/utils/semver/constants.cjs +41 -0
  149. package/dist/utils/semver/constants.cjs.map +1 -0
  150. package/dist/utils/semver/constants.js +31 -0
  151. package/dist/utils/semver/constants.js.map +1 -0
  152. package/dist/utils/semver/index.cjs +68 -0
  153. package/dist/utils/semver/index.cjs.map +1 -0
  154. package/dist/utils/semver/index.d.ts +5 -0
  155. package/dist/utils/semver/index.js +68 -0
  156. package/dist/utils/semver/index.js.map +1 -0
  157. package/dist/utils/semver/parser.cjs +104 -0
  158. package/dist/utils/semver/parser.cjs.map +1 -0
  159. package/dist/utils/semver/parser.js +96 -0
  160. package/dist/utils/semver/parser.js.map +1 -0
  161. package/dist/utils/semver/utils.cjs +28 -0
  162. package/dist/utils/semver/utils.cjs.map +1 -0
  163. package/dist/utils/semver/utils.js +24 -0
  164. package/dist/utils/semver/utils.js.map +1 -0
  165. package/dist/utils/share.cjs +285 -0
  166. package/dist/utils/share.cjs.map +1 -0
  167. package/dist/utils/share.d.ts +24 -0
  168. package/dist/utils/share.js +279 -0
  169. package/dist/utils/share.js.map +1 -0
  170. package/dist/utils/tool.cjs +82 -0
  171. package/dist/utils/tool.cjs.map +1 -0
  172. package/dist/utils/tool.d.ts +8 -0
  173. package/dist/utils/tool.js +71 -0
  174. package/dist/utils/tool.js.map +1 -0
  175. package/package.json +16 -9
  176. package/dist/index.cjs.cjs +0 -3226
  177. package/dist/index.cjs.cjs.map +0 -1
  178. package/dist/index.cjs.d.ts +0 -1
  179. package/dist/index.esm.js +0 -3202
  180. package/dist/index.esm.js.map +0 -1
  181. package/dist/src/constant.d.ts +0 -2
  182. package/dist/src/core.d.ts +0 -115
  183. package/dist/src/global.d.ts +0 -42
  184. package/dist/src/helpers.d.ts +0 -38
  185. package/dist/src/index.d.ts +0 -14
  186. package/dist/src/module/index.d.ts +0 -22
  187. package/dist/src/plugins/generate-preload-assets.d.ts +0 -8
  188. package/dist/src/plugins/snapshot/SnapshotHandler.d.ts +0 -60
  189. package/dist/src/plugins/snapshot/index.d.ts +0 -5
  190. package/dist/src/remote/index.d.ts +0 -109
  191. package/dist/src/shared/index.d.ts +0 -66
  192. package/dist/src/type/config.d.ts +0 -115
  193. package/dist/src/type/index.d.ts +0 -3
  194. package/dist/src/type/plugin.d.ts +0 -35
  195. package/dist/src/type/preload.d.ts +0 -26
  196. package/dist/src/types.d.ts +0 -1
  197. package/dist/src/utils/env.d.ts +0 -3
  198. package/dist/src/utils/hooks/asyncHook.d.ts +0 -6
  199. package/dist/src/utils/hooks/asyncWaterfallHooks.d.ts +0 -10
  200. package/dist/src/utils/hooks/index.d.ts +0 -6
  201. package/dist/src/utils/hooks/pluginSystem.d.ts +0 -16
  202. package/dist/src/utils/hooks/syncHook.d.ts +0 -12
  203. package/dist/src/utils/hooks/syncWaterfallHook.d.ts +0 -9
  204. package/dist/src/utils/index.d.ts +0 -6
  205. package/dist/src/utils/load.d.ts +0 -11
  206. package/dist/src/utils/logger.d.ts +0 -6
  207. package/dist/src/utils/manifest.d.ts +0 -7
  208. package/dist/src/utils/plugin.d.ts +0 -3
  209. package/dist/src/utils/preload.d.ts +0 -6
  210. package/dist/src/utils/semver/compare.d.ts +0 -9
  211. package/dist/src/utils/semver/constants.d.ts +0 -10
  212. package/dist/src/utils/semver/index.d.ts +0 -2
  213. package/dist/src/utils/semver/parser.d.ts +0 -9
  214. package/dist/src/utils/semver/utils.d.ts +0 -11
  215. package/dist/src/utils/share.d.ts +0 -27
  216. package/dist/src/utils/tool.d.ts +0 -18
  217. package/dist/types.cjs.cjs +0 -3
  218. package/dist/types.cjs.cjs.map +0 -1
  219. package/dist/types.cjs.d.ts +0 -1
  220. package/dist/types.esm.js +0 -2
  221. package/dist/types.esm.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+
3
+ //#region src/type/index.ts
4
+ var type_exports = /* @__PURE__ */ require_runtime.__exportAll({});
5
+
6
+ //#endregion
7
+ Object.defineProperty(exports, 'type_exports', {
8
+ enumerable: true,
9
+ get: function () {
10
+ return type_exports;
11
+ }
12
+ });
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/type/index.ts"],"sourcesContent":["export * from './config';\nexport * from './plugin';\nexport * from './preload';\n"],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { ModuleFederationRuntimePlugin, RuntimePluginHooks } from "./plugin.js";
2
+ import { CallFrom, GlobalShareScopeMap, HostInfo, InitScope, InitTokens, LoadModuleOptions, LoadShareExtraOptions, NoMatchedUsedExportsItem, Optional, Options, PartialOptional, Remote, RemoteEntryExports, RemoteEntryInitOptions, RemoteInfo, RemoteInfoCommon, RemoteInfoOptionalVersion, ShareArgs, ShareInfos, ShareScopeMap, ShareStrategy, Shared, SharedConfig, SharedGetter, SharedLoadContext, SharedLoadTrigger, TreeShakingArgs, UserOptions } from "./config.js";
3
+ import { EntryAssets, PreloadAssetResult, PreloadAssetStatus, PreloadAssets, PreloadConfig, PreloadOptions, PreloadRemoteArgs, PreloadRemoteResult, ResourceLoadContext, ResourceLoadInitiator, ResourceLoadType, depsPreloadArg } from "./preload.js";
4
+
5
+ //#region src/type/index.d.ts
6
+ declare namespace index_d_exports {
7
+ export { CallFrom, EntryAssets, GlobalShareScopeMap, HostInfo, InitScope, InitTokens, LoadModuleOptions, LoadShareExtraOptions, ModuleFederationRuntimePlugin, NoMatchedUsedExportsItem, Optional, Options, PartialOptional, PreloadAssetResult, PreloadAssetStatus, PreloadAssets, PreloadConfig, PreloadOptions, PreloadRemoteArgs, PreloadRemoteResult, Remote, RemoteEntryExports, RemoteEntryInitOptions, RemoteInfo, RemoteInfoCommon, RemoteInfoOptionalVersion, ResourceLoadContext, ResourceLoadInitiator, ResourceLoadType, RuntimePluginHooks, ShareArgs, ShareInfos, ShareScopeMap, ShareStrategy, Shared, SharedConfig, SharedGetter, SharedLoadContext, SharedLoadTrigger, TreeShakingArgs, UserOptions, depsPreloadArg };
8
+ }
9
+ //#endregion
10
+ export { index_d_exports };
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+
3
+ //#region src/type/index.ts
4
+ var type_exports = /* @__PURE__ */ __exportAll({});
5
+
6
+ //#endregion
7
+ export { type_exports };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/type/index.ts"],"sourcesContent":["export * from './config';\nexport * from './plugin';\nexport * from './preload';\n"],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { Module } from "../module/index.js";
2
+ import { SnapshotHandler } from "../plugins/snapshot/SnapshotHandler.js";
3
+ import { RemoteHandler } from "../remote/index.js";
4
+ import { SharedHandler } from "../shared/index.js";
5
+ import { ModuleFederation } from "../core.js";
6
+
7
+ //#region src/type/plugin.d.ts
8
+ type CoreLifeCycle = ModuleFederation['hooks']['lifecycle'];
9
+ type CoreLifeCyclePartial = Partial<{ [k in keyof CoreLifeCycle]: Parameters<CoreLifeCycle[k]['on']>[0] }>;
10
+ type SnapshotLifeCycle = SnapshotHandler['hooks']['lifecycle'];
11
+ type SnapshotLifeCycleCyclePartial = Partial<{ [k in keyof SnapshotLifeCycle]: Parameters<SnapshotLifeCycle[k]['on']>[0] }>;
12
+ type ModuleLifeCycle = Module['host']['loaderHook']['lifecycle'];
13
+ type ModuleLifeCycleCyclePartial = Partial<{ [k in keyof ModuleLifeCycle]: Parameters<ModuleLifeCycle[k]['on']>[0] }>;
14
+ type ModuleBridgeLifeCycle = Module['host']['bridgeHook']['lifecycle'];
15
+ type ModuleBridgeLifeCycleCyclePartial = Partial<{ [k in keyof ModuleBridgeLifeCycle]: Parameters<ModuleBridgeLifeCycle[k]['on']>[0] }>;
16
+ type SharedLifeCycle = SharedHandler['hooks']['lifecycle'];
17
+ type SharedLifeCycleCyclePartial = Partial<{ [k in keyof SharedLifeCycle]: Parameters<SharedLifeCycle[k]['on']>[0] }>;
18
+ type RemoteLifeCycle = RemoteHandler['hooks']['lifecycle'];
19
+ type RemoteLifeCycleCyclePartial = Partial<{ [k in keyof RemoteLifeCycle]: Parameters<RemoteLifeCycle[k]['on']>[0] }>;
20
+ type RuntimePluginHooks = CoreLifeCyclePartial & SnapshotLifeCycleCyclePartial & SharedLifeCycleCyclePartial & RemoteLifeCycleCyclePartial & ModuleLifeCycleCyclePartial & ModuleBridgeLifeCycleCyclePartial;
21
+ type ModuleFederationRuntimePlugin = RuntimePluginHooks & {
22
+ name: string;
23
+ version?: string;
24
+ apply?: (instance: ModuleFederation) => void | RuntimePluginHooks;
25
+ };
26
+ //#endregion
27
+ export { ModuleFederationRuntimePlugin, RuntimePluginHooks };
28
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1,60 @@
1
+ import { Remote, RemoteInfo } from "./config.js";
2
+
3
+ //#region src/type/preload.d.ts
4
+ type depsPreloadArg = Omit<PreloadRemoteArgs, 'depsRemote'>;
5
+ interface PreloadRemoteArgs {
6
+ nameOrAlias: string;
7
+ exposes?: Array<string>;
8
+ resourceCategory?: 'all' | 'sync';
9
+ share?: boolean;
10
+ depsRemote?: boolean | Array<depsPreloadArg>;
11
+ filter?: (assetUrl: string) => boolean;
12
+ /**
13
+ * Record preloaded JS and CSS URLs to skip duplicate resource loading.
14
+ * @default true
15
+ */
16
+ recordPreloadedAssets?: boolean;
17
+ }
18
+ type PreloadConfig = PreloadRemoteArgs;
19
+ type PreloadOptions = Array<{
20
+ remote: Remote;
21
+ preloadConfig: PreloadConfig;
22
+ }>;
23
+ type ResourceLoadInitiator = 'loadRemote' | 'preloadRemote' | 'loadShare';
24
+ type ResourceLoadType = 'manifest' | 'remoteEntry' | 'js' | 'css';
25
+ interface ResourceLoadContext {
26
+ initiator: ResourceLoadInitiator;
27
+ id: string;
28
+ resourceType: ResourceLoadType;
29
+ url?: string;
30
+ expose?: string;
31
+ }
32
+ type PreloadAssetStatus = 'success' | 'error' | 'timeout' | 'cached';
33
+ interface PreloadAssetResult {
34
+ url: string;
35
+ status: PreloadAssetStatus;
36
+ resourceType: ResourceLoadType;
37
+ initiator: ResourceLoadInitiator;
38
+ id: string;
39
+ error?: unknown;
40
+ }
41
+ interface PreloadRemoteResult {
42
+ remote: Remote;
43
+ remoteInfo: RemoteInfo;
44
+ preloadConfig: PreloadConfig;
45
+ id: string;
46
+ results: PreloadAssetResult[];
47
+ }
48
+ type EntryAssets = {
49
+ name: string;
50
+ url: string;
51
+ moduleInfo: RemoteInfo;
52
+ };
53
+ interface PreloadAssets {
54
+ cssAssets: Array<string>;
55
+ jsAssetsWithoutEntry: Array<string>;
56
+ entryAssets: Array<EntryAssets>;
57
+ }
58
+ //#endregion
59
+ export { EntryAssets, PreloadAssetResult, PreloadAssetStatus, PreloadAssets, PreloadConfig, PreloadOptions, PreloadRemoteArgs, PreloadRemoteResult, ResourceLoadContext, ResourceLoadInitiator, ResourceLoadType, depsPreloadArg };
60
+ //# sourceMappingURL=preload.d.ts.map
package/dist/types.cjs ADDED
File without changes
package/dist/types.d.ts CHANGED
@@ -1 +1,4 @@
1
- export * from "./src/types";
1
+ import { ModuleFederationRuntimePlugin, RuntimePluginHooks } from "./type/plugin.js";
2
+ import { CallFrom, GlobalShareScopeMap, HostInfo, InitScope, InitTokens, LoadModuleOptions, LoadShareExtraOptions, NoMatchedUsedExportsItem, Optional, Options, PartialOptional, Remote, RemoteEntryExports, RemoteEntryInitOptions, RemoteInfo, RemoteInfoCommon, RemoteInfoOptionalVersion, ShareArgs, ShareInfos, ShareScopeMap, ShareStrategy, Shared, SharedConfig, SharedGetter, SharedLoadContext, SharedLoadTrigger, TreeShakingArgs, UserOptions } from "./type/config.js";
3
+ import { EntryAssets, PreloadAssetResult, PreloadAssetStatus, PreloadAssets, PreloadConfig, PreloadOptions, PreloadRemoteArgs, PreloadRemoteResult, ResourceLoadContext, ResourceLoadInitiator, ResourceLoadType, depsPreloadArg } from "./type/preload.js";
4
+ export { CallFrom, EntryAssets, GlobalShareScopeMap, HostInfo, InitScope, InitTokens, LoadModuleOptions, LoadShareExtraOptions, ModuleFederationRuntimePlugin, NoMatchedUsedExportsItem, Optional, Options, PartialOptional, PreloadAssetResult, PreloadAssetStatus, PreloadAssets, PreloadConfig, PreloadOptions, PreloadRemoteArgs, PreloadRemoteResult, Remote, RemoteEntryExports, RemoteEntryInitOptions, RemoteInfo, RemoteInfoCommon, RemoteInfoOptionalVersion, ResourceLoadContext, ResourceLoadInitiator, ResourceLoadType, RuntimePluginHooks, ShareArgs, ShareInfos, ShareScopeMap, ShareStrategy, Shared, SharedConfig, SharedGetter, SharedLoadContext, SharedLoadTrigger, TreeShakingArgs, UserOptions, depsPreloadArg };
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,45 @@
1
+
2
+ //#region src/utils/context.ts
3
+ function remoteToEntry(r) {
4
+ return {
5
+ name: r.name,
6
+ alias: r.alias,
7
+ entry: "entry" in r ? r.entry : void 0,
8
+ version: "version" in r ? r.version : void 0,
9
+ type: r.type,
10
+ entryGlobalName: r.entryGlobalName,
11
+ shareScope: r.shareScope
12
+ };
13
+ }
14
+ /**
15
+ * Build a partial MFContext from runtime Options.
16
+ * Used to enrich diagnostic entries with host context at error sites.
17
+ */
18
+ function optionsToMFContext(options) {
19
+ const shared = {};
20
+ for (const [pkgName, versions] of Object.entries(options.shared)) {
21
+ const first = versions[0];
22
+ if (first) shared[pkgName] = {
23
+ version: first.version,
24
+ singleton: first.shareConfig?.singleton,
25
+ requiredVersion: first.shareConfig?.requiredVersion === false ? false : first.shareConfig?.requiredVersion,
26
+ eager: first.eager,
27
+ strictVersion: first.shareConfig?.strictVersion
28
+ };
29
+ }
30
+ return {
31
+ project: {
32
+ name: options.name,
33
+ mfRole: options.remotes?.length > 0 ? "host" : "unknown"
34
+ },
35
+ mfConfig: {
36
+ name: options.name,
37
+ remotes: options.remotes?.map(remoteToEntry) ?? [],
38
+ shared
39
+ }
40
+ };
41
+ }
42
+
43
+ //#endregion
44
+ exports.optionsToMFContext = optionsToMFContext;
45
+ //# sourceMappingURL=context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.cjs","names":[],"sources":["../../src/utils/context.ts"],"sourcesContent":["import type { MFContext } from '@module-federation/error-codes';\nimport type { Options, Remote } from '../type';\n\nfunction remoteToEntry(\n r: Remote,\n): import('@module-federation/error-codes').MFRemoteEntry {\n return {\n name: r.name,\n alias: r.alias,\n entry: 'entry' in r ? (r as { entry: string }).entry : undefined,\n version: 'version' in r ? (r as { version: string }).version : undefined,\n type: r.type,\n entryGlobalName: r.entryGlobalName,\n shareScope: r.shareScope,\n };\n}\n\n/**\n * Build a partial MFContext from runtime Options.\n * Used to enrich diagnostic entries with host context at error sites.\n */\nexport function optionsToMFContext(options: Options): Partial<MFContext> {\n const shared: MFContext['mfConfig'] extends undefined\n ? never\n : NonNullable<MFContext['mfConfig']>['shared'] = {};\n\n for (const [pkgName, versions] of Object.entries(options.shared)) {\n const first = versions[0];\n if (first) {\n shared[pkgName] = {\n version: first.version,\n singleton: first.shareConfig?.singleton,\n requiredVersion:\n first.shareConfig?.requiredVersion === false\n ? false\n : first.shareConfig?.requiredVersion,\n eager: first.eager,\n strictVersion: first.shareConfig?.strictVersion,\n };\n }\n }\n\n return {\n project: {\n name: options.name,\n mfRole: options.remotes?.length > 0 ? 'host' : 'unknown',\n },\n mfConfig: {\n name: options.name,\n remotes: options.remotes?.map(remoteToEntry) ?? [],\n shared,\n },\n };\n}\n"],"mappings":";;AAGA,SAAS,cACP,GACwD;AACxD,QAAO;EACL,MAAM,EAAE;EACR,OAAO,EAAE;EACT,OAAO,WAAW,IAAK,EAAwB,QAAQ;EACvD,SAAS,aAAa,IAAK,EAA0B,UAAU;EAC/D,MAAM,EAAE;EACR,iBAAiB,EAAE;EACnB,YAAY,EAAE;EACf;;;;;;AAOH,SAAgB,mBAAmB,SAAsC;CACvE,MAAM,SAE6C,EAAE;AAErD,MAAK,MAAM,CAAC,SAAS,aAAa,OAAO,QAAQ,QAAQ,OAAO,EAAE;EAChE,MAAM,QAAQ,SAAS;AACvB,MAAI,MACF,QAAO,WAAW;GAChB,SAAS,MAAM;GACf,WAAW,MAAM,aAAa;GAC9B,iBACE,MAAM,aAAa,oBAAoB,QACnC,QACA,MAAM,aAAa;GACzB,OAAO,MAAM;GACb,eAAe,MAAM,aAAa;GACnC;;AAIL,QAAO;EACL,SAAS;GACP,MAAM,QAAQ;GACd,QAAQ,QAAQ,SAAS,SAAS,IAAI,SAAS;GAChD;EACD,UAAU;GACR,MAAM,QAAQ;GACd,SAAS,QAAQ,SAAS,IAAI,cAAc,IAAI,EAAE;GAClD;GACD;EACF"}
@@ -0,0 +1 @@
1
+ import { MFContext } from "@module-federation/error-codes";
@@ -0,0 +1,44 @@
1
+ //#region src/utils/context.ts
2
+ function remoteToEntry(r) {
3
+ return {
4
+ name: r.name,
5
+ alias: r.alias,
6
+ entry: "entry" in r ? r.entry : void 0,
7
+ version: "version" in r ? r.version : void 0,
8
+ type: r.type,
9
+ entryGlobalName: r.entryGlobalName,
10
+ shareScope: r.shareScope
11
+ };
12
+ }
13
+ /**
14
+ * Build a partial MFContext from runtime Options.
15
+ * Used to enrich diagnostic entries with host context at error sites.
16
+ */
17
+ function optionsToMFContext(options) {
18
+ const shared = {};
19
+ for (const [pkgName, versions] of Object.entries(options.shared)) {
20
+ const first = versions[0];
21
+ if (first) shared[pkgName] = {
22
+ version: first.version,
23
+ singleton: first.shareConfig?.singleton,
24
+ requiredVersion: first.shareConfig?.requiredVersion === false ? false : first.shareConfig?.requiredVersion,
25
+ eager: first.eager,
26
+ strictVersion: first.shareConfig?.strictVersion
27
+ };
28
+ }
29
+ return {
30
+ project: {
31
+ name: options.name,
32
+ mfRole: options.remotes?.length > 0 ? "host" : "unknown"
33
+ },
34
+ mfConfig: {
35
+ name: options.name,
36
+ remotes: options.remotes?.map(remoteToEntry) ?? [],
37
+ shared
38
+ }
39
+ };
40
+ }
41
+
42
+ //#endregion
43
+ export { optionsToMFContext };
44
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../src/utils/context.ts"],"sourcesContent":["import type { MFContext } from '@module-federation/error-codes';\nimport type { Options, Remote } from '../type';\n\nfunction remoteToEntry(\n r: Remote,\n): import('@module-federation/error-codes').MFRemoteEntry {\n return {\n name: r.name,\n alias: r.alias,\n entry: 'entry' in r ? (r as { entry: string }).entry : undefined,\n version: 'version' in r ? (r as { version: string }).version : undefined,\n type: r.type,\n entryGlobalName: r.entryGlobalName,\n shareScope: r.shareScope,\n };\n}\n\n/**\n * Build a partial MFContext from runtime Options.\n * Used to enrich diagnostic entries with host context at error sites.\n */\nexport function optionsToMFContext(options: Options): Partial<MFContext> {\n const shared: MFContext['mfConfig'] extends undefined\n ? never\n : NonNullable<MFContext['mfConfig']>['shared'] = {};\n\n for (const [pkgName, versions] of Object.entries(options.shared)) {\n const first = versions[0];\n if (first) {\n shared[pkgName] = {\n version: first.version,\n singleton: first.shareConfig?.singleton,\n requiredVersion:\n first.shareConfig?.requiredVersion === false\n ? false\n : first.shareConfig?.requiredVersion,\n eager: first.eager,\n strictVersion: first.shareConfig?.strictVersion,\n };\n }\n }\n\n return {\n project: {\n name: options.name,\n mfRole: options.remotes?.length > 0 ? 'host' : 'unknown',\n },\n mfConfig: {\n name: options.name,\n remotes: options.remotes?.map(remoteToEntry) ?? [],\n shared,\n },\n };\n}\n"],"mappings":";AAGA,SAAS,cACP,GACwD;AACxD,QAAO;EACL,MAAM,EAAE;EACR,OAAO,EAAE;EACT,OAAO,WAAW,IAAK,EAAwB,QAAQ;EACvD,SAAS,aAAa,IAAK,EAA0B,UAAU;EAC/D,MAAM,EAAE;EACR,iBAAiB,EAAE;EACnB,YAAY,EAAE;EACf;;;;;;AAOH,SAAgB,mBAAmB,SAAsC;CACvE,MAAM,SAE6C,EAAE;AAErD,MAAK,MAAM,CAAC,SAAS,aAAa,OAAO,QAAQ,QAAQ,OAAO,EAAE;EAChE,MAAM,QAAQ,SAAS;AACvB,MAAI,MACF,QAAO,WAAW;GAChB,SAAS,MAAM;GACf,WAAW,MAAM,aAAa;GAC9B,iBACE,MAAM,aAAa,oBAAoB,QACnC,QACA,MAAM,aAAa;GACzB,OAAO,MAAM;GACb,eAAe,MAAM,aAAa;GACnC;;AAIL,QAAO;EACL,SAAS;GACP,MAAM,QAAQ;GACd,QAAQ,QAAQ,SAAS,SAAS,IAAI,SAAS;GAChD;EACD,UAAU;GACR,MAAM,QAAQ;GACd,SAAS,QAAQ,SAAS,IAAI,cAAc,IAAI,EAAE;GAClD;GACD;EACF"}
@@ -0,0 +1,10 @@
1
+ let _module_federation_sdk = require("@module-federation/sdk");
2
+
3
+ //#region src/utils/env.ts
4
+ function getBuilderId() {
5
+ return typeof FEDERATION_BUILD_IDENTIFIER !== "undefined" ? FEDERATION_BUILD_IDENTIFIER : "";
6
+ }
7
+
8
+ //#endregion
9
+ exports.getBuilderId = getBuilderId;
10
+ //# sourceMappingURL=env.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.cjs","names":[],"sources":["../../src/utils/env.ts"],"sourcesContent":["export {\n isBrowserEnv,\n isBrowserEnvValue,\n isDebugMode,\n} from '@module-federation/sdk';\n\nexport function isDevelopmentMode(): boolean {\n return true;\n}\n\nexport function getBuilderId(): string {\n //@ts-ignore\n return typeof FEDERATION_BUILD_IDENTIFIER !== 'undefined'\n ? //@ts-ignore\n FEDERATION_BUILD_IDENTIFIER\n : '';\n}\n"],"mappings":";;;AAUA,SAAgB,eAAuB;AAErC,QAAO,OAAO,gCAAgC,cAE1C,8BACA"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,10 @@
1
+ import "@module-federation/sdk";
2
+
3
+ //#region src/utils/env.ts
4
+ function getBuilderId() {
5
+ return typeof FEDERATION_BUILD_IDENTIFIER !== "undefined" ? FEDERATION_BUILD_IDENTIFIER : "";
6
+ }
7
+
8
+ //#endregion
9
+ export { getBuilderId };
10
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","names":[],"sources":["../../src/utils/env.ts"],"sourcesContent":["export {\n isBrowserEnv,\n isBrowserEnvValue,\n isDebugMode,\n} from '@module-federation/sdk';\n\nexport function isDevelopmentMode(): boolean {\n return true;\n}\n\nexport function getBuilderId(): string {\n //@ts-ignore\n return typeof FEDERATION_BUILD_IDENTIFIER !== 'undefined'\n ? //@ts-ignore\n FEDERATION_BUILD_IDENTIFIER\n : '';\n}\n"],"mappings":";;;AAUA,SAAgB,eAAuB;AAErC,QAAO,OAAO,gCAAgC,cAE1C,8BACA"}
@@ -0,0 +1,26 @@
1
+ const require_syncHook = require('./syncHook.cjs');
2
+
3
+ //#region src/utils/hooks/asyncHook.ts
4
+ var AsyncHook = class extends require_syncHook.SyncHook {
5
+ emit(...data) {
6
+ let result;
7
+ const ls = Array.from(this.listeners);
8
+ if (ls.length > 0) {
9
+ let i = 0;
10
+ const call = (prev) => {
11
+ if (prev === false) return false;
12
+ else if (i < ls.length) return Promise.resolve(ls[i++].apply(null, data)).then((result) => {
13
+ if (result === void 0 || data.length === 1 && result === data[0]) return call(prev);
14
+ return call(result);
15
+ });
16
+ else return prev;
17
+ };
18
+ result = call();
19
+ }
20
+ return Promise.resolve(result);
21
+ }
22
+ };
23
+
24
+ //#endregion
25
+ exports.AsyncHook = AsyncHook;
26
+ //# sourceMappingURL=asyncHook.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncHook.cjs","names":["SyncHook"],"sources":["../../../src/utils/hooks/asyncHook.ts"],"sourcesContent":["import { ArgsType, SyncHook } from './syncHook';\n\ntype CallbackReturnType = void | false | Promise<void | false>;\n\nexport class AsyncHook<\n T,\n ExternalEmitReturnType = CallbackReturnType,\n> extends SyncHook<T, ExternalEmitReturnType> {\n override emit(\n ...data: ArgsType<T>\n ): Promise<void | false | ExternalEmitReturnType> {\n let result;\n const ls = Array.from(this.listeners);\n if (ls.length > 0) {\n let i = 0;\n const call = (prev?: unknown): unknown => {\n if (prev === false) {\n return false; // Abort process\n } else if (i < ls.length) {\n return Promise.resolve(ls[i++].apply(null, data)).then((result) => {\n if (\n result === undefined ||\n (data.length === 1 && result === data[0])\n ) {\n return call(prev);\n }\n return call(result);\n });\n } else {\n return prev;\n }\n };\n result = call();\n }\n return Promise.resolve(result) as Promise<\n void | false | ExternalEmitReturnType\n >;\n }\n}\n"],"mappings":";;;AAIA,IAAa,YAAb,cAGUA,0BAAoC;CAC5C,AAAS,KACP,GAAG,MAC6C;EAChD,IAAI;EACJ,MAAM,KAAK,MAAM,KAAK,KAAK,UAAU;AACrC,MAAI,GAAG,SAAS,GAAG;GACjB,IAAI,IAAI;GACR,MAAM,QAAQ,SAA4B;AACxC,QAAI,SAAS,MACX,QAAO;aACE,IAAI,GAAG,OAChB,QAAO,QAAQ,QAAQ,GAAG,KAAK,MAAM,MAAM,KAAK,CAAC,CAAC,MAAM,WAAW;AACjE,SACE,WAAW,UACV,KAAK,WAAW,KAAK,WAAW,KAAK,GAEtC,QAAO,KAAK,KAAK;AAEnB,YAAO,KAAK,OAAO;MACnB;QAEF,QAAO;;AAGX,YAAS,MAAM;;AAEjB,SAAO,QAAQ,QAAQ,OAAO"}
@@ -0,0 +1,10 @@
1
+ import { ArgsType, SyncHook } from "./syncHook.js";
2
+
3
+ //#region src/utils/hooks/asyncHook.d.ts
4
+ type CallbackReturnType = void | false | Promise<void | false>;
5
+ declare class AsyncHook<T, ExternalEmitReturnType = CallbackReturnType> extends SyncHook<T, ExternalEmitReturnType> {
6
+ emit(...data: ArgsType<T>): Promise<void | false | ExternalEmitReturnType>;
7
+ }
8
+ //#endregion
9
+ export { AsyncHook };
10
+ //# sourceMappingURL=asyncHook.d.ts.map
@@ -0,0 +1,26 @@
1
+ import { SyncHook } from "./syncHook.js";
2
+
3
+ //#region src/utils/hooks/asyncHook.ts
4
+ var AsyncHook = class extends SyncHook {
5
+ emit(...data) {
6
+ let result;
7
+ const ls = Array.from(this.listeners);
8
+ if (ls.length > 0) {
9
+ let i = 0;
10
+ const call = (prev) => {
11
+ if (prev === false) return false;
12
+ else if (i < ls.length) return Promise.resolve(ls[i++].apply(null, data)).then((result) => {
13
+ if (result === void 0 || data.length === 1 && result === data[0]) return call(prev);
14
+ return call(result);
15
+ });
16
+ else return prev;
17
+ };
18
+ result = call();
19
+ }
20
+ return Promise.resolve(result);
21
+ }
22
+ };
23
+
24
+ //#endregion
25
+ export { AsyncHook };
26
+ //# sourceMappingURL=asyncHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncHook.js","names":[],"sources":["../../../src/utils/hooks/asyncHook.ts"],"sourcesContent":["import { ArgsType, SyncHook } from './syncHook';\n\ntype CallbackReturnType = void | false | Promise<void | false>;\n\nexport class AsyncHook<\n T,\n ExternalEmitReturnType = CallbackReturnType,\n> extends SyncHook<T, ExternalEmitReturnType> {\n override emit(\n ...data: ArgsType<T>\n ): Promise<void | false | ExternalEmitReturnType> {\n let result;\n const ls = Array.from(this.listeners);\n if (ls.length > 0) {\n let i = 0;\n const call = (prev?: unknown): unknown => {\n if (prev === false) {\n return false; // Abort process\n } else if (i < ls.length) {\n return Promise.resolve(ls[i++].apply(null, data)).then((result) => {\n if (\n result === undefined ||\n (data.length === 1 && result === data[0])\n ) {\n return call(prev);\n }\n return call(result);\n });\n } else {\n return prev;\n }\n };\n result = call();\n }\n return Promise.resolve(result) as Promise<\n void | false | ExternalEmitReturnType\n >;\n }\n}\n"],"mappings":";;;AAIA,IAAa,YAAb,cAGU,SAAoC;CAC5C,AAAS,KACP,GAAG,MAC6C;EAChD,IAAI;EACJ,MAAM,KAAK,MAAM,KAAK,KAAK,UAAU;AACrC,MAAI,GAAG,SAAS,GAAG;GACjB,IAAI,IAAI;GACR,MAAM,QAAQ,SAA4B;AACxC,QAAI,SAAS,MACX,QAAO;aACE,IAAI,GAAG,OAChB,QAAO,QAAQ,QAAQ,GAAG,KAAK,MAAM,MAAM,KAAK,CAAC,CAAC,MAAM,WAAW;AACjE,SACE,WAAW,UACV,KAAK,WAAW,KAAK,WAAW,KAAK,GAEtC,QAAO,KAAK,KAAK;AAEnB,YAAO,KAAK,OAAO;MACnB;QAEF,QAAO;;AAGX,YAAS,MAAM;;AAEjB,SAAO,QAAQ,QAAQ,OAAO"}
@@ -0,0 +1,44 @@
1
+ const require_logger = require('../logger.cjs');
2
+ const require_tool = require('../tool.cjs');
3
+ const require_syncHook = require('./syncHook.cjs');
4
+ const require_syncWaterfallHook = require('./syncWaterfallHook.cjs');
5
+
6
+ //#region src/utils/hooks/asyncWaterfallHooks.ts
7
+ var AsyncWaterfallHook = class extends require_syncHook.SyncHook {
8
+ constructor(type) {
9
+ super();
10
+ this.onerror = require_logger.error;
11
+ this.type = type;
12
+ }
13
+ emit(data) {
14
+ if (!require_tool.isObject(data)) require_logger.error(`The response data for the "${this.type}" hook must be an object.`);
15
+ const ls = Array.from(this.listeners);
16
+ if (ls.length > 0) {
17
+ let i = 0;
18
+ const processError = (e) => {
19
+ require_logger.warn(e);
20
+ this.onerror(e);
21
+ return data;
22
+ };
23
+ const call = (prevData) => {
24
+ if (prevData !== void 0 && require_syncWaterfallHook.checkReturnData(data, prevData)) data = prevData;
25
+ else if (prevData !== void 0) {
26
+ this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);
27
+ return data;
28
+ }
29
+ if (i < ls.length) try {
30
+ return Promise.resolve(ls[i++](data)).then(call, processError);
31
+ } catch (e) {
32
+ return processError(e);
33
+ }
34
+ return data;
35
+ };
36
+ return Promise.resolve(call(data));
37
+ }
38
+ return Promise.resolve(data);
39
+ }
40
+ };
41
+
42
+ //#endregion
43
+ exports.AsyncWaterfallHook = AsyncWaterfallHook;
44
+ //# sourceMappingURL=asyncWaterfallHooks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncWaterfallHooks.cjs","names":["SyncHook","error","isObject","checkReturnData"],"sources":["../../../src/utils/hooks/asyncWaterfallHooks.ts"],"sourcesContent":["import { error, warn } from '../logger';\nimport { isObject } from '../tool';\nimport { SyncHook } from './syncHook';\nimport { checkReturnData } from './syncWaterfallHook';\n\ntype CallbackReturnType<T> = T | void | Promise<T | void>;\n\nexport class AsyncWaterfallHook<T extends object> extends SyncHook<\n [T],\n CallbackReturnType<T>\n> {\n onerror: (errMsg: string | Error | unknown) => void = error;\n constructor(type: string) {\n super();\n this.type = type;\n }\n\n override emit(data: T): Promise<T> {\n if (!isObject(data)) {\n error(`The response data for the \"${this.type}\" hook must be an object.`);\n }\n const ls = Array.from(this.listeners);\n\n if (ls.length > 0) {\n let i = 0;\n const processError = (e: unknown): T => {\n warn(e);\n this.onerror(e);\n return data;\n };\n\n const call = (prevData?: T | Awaited<T> | void): T | Promise<T> => {\n if (prevData !== undefined && checkReturnData(data, prevData)) {\n data = prevData as T;\n } else if (prevData !== undefined) {\n this.onerror(\n `A plugin returned an incorrect value for the \"${this.type}\" type.`,\n );\n return data;\n }\n if (i < ls.length) {\n try {\n return Promise.resolve(ls[i++](data)).then(call, processError);\n } catch (e) {\n return processError(e);\n }\n }\n return data;\n };\n return Promise.resolve(call(data));\n }\n return Promise.resolve(data);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,qBAAb,cAA0DA,0BAGxD;CAEA,YAAY,MAAc;AACxB,SAAO;iBAF6CC;AAGpD,OAAK,OAAO;;CAGd,AAAS,KAAK,MAAqB;AACjC,MAAI,CAACC,sBAAS,KAAK,CACjB,sBAAM,8BAA8B,KAAK,KAAK,2BAA2B;EAE3E,MAAM,KAAK,MAAM,KAAK,KAAK,UAAU;AAErC,MAAI,GAAG,SAAS,GAAG;GACjB,IAAI,IAAI;GACR,MAAM,gBAAgB,MAAkB;AACtC,wBAAK,EAAE;AACP,SAAK,QAAQ,EAAE;AACf,WAAO;;GAGT,MAAM,QAAQ,aAAqD;AACjE,QAAI,aAAa,UAAaC,0CAAgB,MAAM,SAAS,CAC3D,QAAO;aACE,aAAa,QAAW;AACjC,UAAK,QACH,iDAAiD,KAAK,KAAK,SAC5D;AACD,YAAO;;AAET,QAAI,IAAI,GAAG,OACT,KAAI;AACF,YAAO,QAAQ,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,aAAa;aACvD,GAAG;AACV,YAAO,aAAa,EAAE;;AAG1B,WAAO;;AAET,UAAO,QAAQ,QAAQ,KAAK,KAAK,CAAC;;AAEpC,SAAO,QAAQ,QAAQ,KAAK"}
@@ -0,0 +1,12 @@
1
+ import { SyncHook } from "./syncHook.js";
2
+
3
+ //#region src/utils/hooks/asyncWaterfallHooks.d.ts
4
+ type CallbackReturnType<T> = T | void | Promise<T | void>;
5
+ declare class AsyncWaterfallHook<T extends object> extends SyncHook<[T], CallbackReturnType<T>> {
6
+ onerror: (errMsg: string | Error | unknown) => void;
7
+ constructor(type: string);
8
+ emit(data: T): Promise<T>;
9
+ }
10
+ //#endregion
11
+ export { AsyncWaterfallHook };
12
+ //# sourceMappingURL=asyncWaterfallHooks.d.ts.map
@@ -0,0 +1,44 @@
1
+ import { error, warn } from "../logger.js";
2
+ import { isObject } from "../tool.js";
3
+ import { SyncHook } from "./syncHook.js";
4
+ import { checkReturnData } from "./syncWaterfallHook.js";
5
+
6
+ //#region src/utils/hooks/asyncWaterfallHooks.ts
7
+ var AsyncWaterfallHook = class extends SyncHook {
8
+ constructor(type) {
9
+ super();
10
+ this.onerror = error;
11
+ this.type = type;
12
+ }
13
+ emit(data) {
14
+ if (!isObject(data)) error(`The response data for the "${this.type}" hook must be an object.`);
15
+ const ls = Array.from(this.listeners);
16
+ if (ls.length > 0) {
17
+ let i = 0;
18
+ const processError = (e) => {
19
+ warn(e);
20
+ this.onerror(e);
21
+ return data;
22
+ };
23
+ const call = (prevData) => {
24
+ if (prevData !== void 0 && checkReturnData(data, prevData)) data = prevData;
25
+ else if (prevData !== void 0) {
26
+ this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);
27
+ return data;
28
+ }
29
+ if (i < ls.length) try {
30
+ return Promise.resolve(ls[i++](data)).then(call, processError);
31
+ } catch (e) {
32
+ return processError(e);
33
+ }
34
+ return data;
35
+ };
36
+ return Promise.resolve(call(data));
37
+ }
38
+ return Promise.resolve(data);
39
+ }
40
+ };
41
+
42
+ //#endregion
43
+ export { AsyncWaterfallHook };
44
+ //# sourceMappingURL=asyncWaterfallHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncWaterfallHooks.js","names":[],"sources":["../../../src/utils/hooks/asyncWaterfallHooks.ts"],"sourcesContent":["import { error, warn } from '../logger';\nimport { isObject } from '../tool';\nimport { SyncHook } from './syncHook';\nimport { checkReturnData } from './syncWaterfallHook';\n\ntype CallbackReturnType<T> = T | void | Promise<T | void>;\n\nexport class AsyncWaterfallHook<T extends object> extends SyncHook<\n [T],\n CallbackReturnType<T>\n> {\n onerror: (errMsg: string | Error | unknown) => void = error;\n constructor(type: string) {\n super();\n this.type = type;\n }\n\n override emit(data: T): Promise<T> {\n if (!isObject(data)) {\n error(`The response data for the \"${this.type}\" hook must be an object.`);\n }\n const ls = Array.from(this.listeners);\n\n if (ls.length > 0) {\n let i = 0;\n const processError = (e: unknown): T => {\n warn(e);\n this.onerror(e);\n return data;\n };\n\n const call = (prevData?: T | Awaited<T> | void): T | Promise<T> => {\n if (prevData !== undefined && checkReturnData(data, prevData)) {\n data = prevData as T;\n } else if (prevData !== undefined) {\n this.onerror(\n `A plugin returned an incorrect value for the \"${this.type}\" type.`,\n );\n return data;\n }\n if (i < ls.length) {\n try {\n return Promise.resolve(ls[i++](data)).then(call, processError);\n } catch (e) {\n return processError(e);\n }\n }\n return data;\n };\n return Promise.resolve(call(data));\n }\n return Promise.resolve(data);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,qBAAb,cAA0D,SAGxD;CAEA,YAAY,MAAc;AACxB,SAAO;iBAF6C;AAGpD,OAAK,OAAO;;CAGd,AAAS,KAAK,MAAqB;AACjC,MAAI,CAAC,SAAS,KAAK,CACjB,OAAM,8BAA8B,KAAK,KAAK,2BAA2B;EAE3E,MAAM,KAAK,MAAM,KAAK,KAAK,UAAU;AAErC,MAAI,GAAG,SAAS,GAAG;GACjB,IAAI,IAAI;GACR,MAAM,gBAAgB,MAAkB;AACtC,SAAK,EAAE;AACP,SAAK,QAAQ,EAAE;AACf,WAAO;;GAGT,MAAM,QAAQ,aAAqD;AACjE,QAAI,aAAa,UAAa,gBAAgB,MAAM,SAAS,CAC3D,QAAO;aACE,aAAa,QAAW;AACjC,UAAK,QACH,iDAAiD,KAAK,KAAK,SAC5D;AACD,YAAO;;AAET,QAAI,IAAI,GAAG,OACT,KAAI;AACF,YAAO,QAAQ,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,aAAa;aACvD,GAAG;AACV,YAAO,aAAa,EAAE;;AAG1B,WAAO;;AAET,UAAO,QAAQ,QAAQ,KAAK,KAAK,CAAC;;AAEpC,SAAO,QAAQ,QAAQ,KAAK"}
@@ -0,0 +1,5 @@
1
+ const require_syncHook = require('./syncHook.cjs');
2
+ const require_asyncHook = require('./asyncHook.cjs');
3
+ const require_syncWaterfallHook = require('./syncWaterfallHook.cjs');
4
+ const require_asyncWaterfallHooks = require('./asyncWaterfallHooks.cjs');
5
+ const require_pluginSystem = require('./pluginSystem.cjs');
@@ -0,0 +1,7 @@
1
+ import { SyncHook } from "./syncHook.js";
2
+ import { AsyncHook } from "./asyncHook.js";
3
+ import { SyncWaterfallHook } from "./syncWaterfallHook.js";
4
+ import { AsyncWaterfallHook } from "./asyncWaterfallHooks.js";
5
+ import { PluginSystem } from "./pluginSystem.js";
6
+
7
+ export { };
@@ -0,0 +1,38 @@
1
+ const require_logger = require('../logger.cjs');
2
+ const require_tool = require('../tool.cjs');
3
+ require('../index.cjs');
4
+
5
+ //#region src/utils/hooks/pluginSystem.ts
6
+ var PluginSystem = class {
7
+ constructor(lifecycle) {
8
+ this.registerPlugins = {};
9
+ this.lifecycle = lifecycle;
10
+ this.lifecycleKeys = Object.keys(lifecycle);
11
+ }
12
+ applyPlugin(plugin) {
13
+ require_logger.assert(require_tool.isPlainObject(plugin), "Plugin configuration is invalid.");
14
+ const pluginName = plugin.name;
15
+ require_logger.assert(pluginName, "A name must be provided by the plugin.");
16
+ if (!this.registerPlugins[pluginName]) {
17
+ this.registerPlugins[pluginName] = plugin;
18
+ this.lifecycleKeys.forEach((key) => {
19
+ const pluginLife = plugin[key];
20
+ if (pluginLife) this.lifecycle[key].on(pluginLife);
21
+ });
22
+ }
23
+ }
24
+ removePlugin(pluginName) {
25
+ require_logger.assert(pluginName, "A name is required.");
26
+ const plugin = this.registerPlugins[pluginName];
27
+ require_logger.assert(plugin, `The plugin "${pluginName}" is not registered.`);
28
+ this.lifecycleKeys.forEach((key) => {
29
+ const pluginLife = plugin[key];
30
+ if (pluginLife) this.lifecycle[key].remove(pluginLife);
31
+ });
32
+ delete this.registerPlugins[pluginName];
33
+ }
34
+ };
35
+
36
+ //#endregion
37
+ exports.PluginSystem = PluginSystem;
38
+ //# sourceMappingURL=pluginSystem.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginSystem.cjs","names":["isPlainObject"],"sources":["../../../src/utils/hooks/pluginSystem.ts"],"sourcesContent":["import { assert, isPlainObject } from '../../utils';\n\nexport type Plugin<T extends Record<string, any>> = {\n [k in keyof T]?: Parameters<T[k]['on']>[0];\n} & {\n name: string;\n version?: string;\n};\n\nexport class PluginSystem<T extends Record<string, any>> {\n lifecycle: T;\n lifecycleKeys: Array<keyof T>;\n registerPlugins: Record<string, Plugin<T>> = {};\n\n constructor(lifecycle: T) {\n this.lifecycle = lifecycle;\n this.lifecycleKeys = Object.keys(lifecycle);\n }\n\n applyPlugin(plugin: Plugin<T>): void {\n assert(isPlainObject(plugin), 'Plugin configuration is invalid.');\n // The plugin's name is mandatory and must be unique\n const pluginName = plugin.name;\n assert(pluginName, 'A name must be provided by the plugin.');\n\n if (!this.registerPlugins[pluginName]) {\n this.registerPlugins[pluginName] = plugin;\n\n this.lifecycleKeys.forEach((key) => {\n const pluginLife = plugin[key];\n if (pluginLife) {\n this.lifecycle[key].on(pluginLife);\n }\n });\n }\n }\n\n removePlugin(pluginName: string): void {\n assert(pluginName, 'A name is required.');\n const plugin = this.registerPlugins[pluginName];\n assert(plugin, `The plugin \"${pluginName}\" is not registered.`);\n\n this.lifecycleKeys.forEach((key) => {\n const pluginLife = plugin[key];\n if (pluginLife) {\n this.lifecycle[key].remove(pluginLife);\n }\n });\n delete this.registerPlugins[pluginName];\n }\n}\n"],"mappings":";;;;;AASA,IAAa,eAAb,MAAyD;CAKvD,YAAY,WAAc;yBAFmB,EAAE;AAG7C,OAAK,YAAY;AACjB,OAAK,gBAAgB,OAAO,KAAK,UAAU;;CAG7C,YAAY,QAAyB;AACnC,wBAAOA,2BAAc,OAAO,EAAE,mCAAmC;EAEjE,MAAM,aAAa,OAAO;AAC1B,wBAAO,YAAY,yCAAyC;AAE5D,MAAI,CAAC,KAAK,gBAAgB,aAAa;AACrC,QAAK,gBAAgB,cAAc;AAEnC,QAAK,cAAc,SAAS,QAAQ;IAClC,MAAM,aAAa,OAAO;AAC1B,QAAI,WACF,MAAK,UAAU,KAAK,GAAG,WAAW;KAEpC;;;CAIN,aAAa,YAA0B;AACrC,wBAAO,YAAY,sBAAsB;EACzC,MAAM,SAAS,KAAK,gBAAgB;AACpC,wBAAO,QAAQ,eAAe,WAAW,sBAAsB;AAE/D,OAAK,cAAc,SAAS,QAAQ;GAClC,MAAM,aAAa,OAAO;AAC1B,OAAI,WACF,MAAK,UAAU,KAAK,OAAO,WAAW;IAExC;AACF,SAAO,KAAK,gBAAgB"}
@@ -0,0 +1,16 @@
1
+ //#region src/utils/hooks/pluginSystem.d.ts
2
+ type Plugin<T extends Record<string, any>> = { [k in keyof T]?: Parameters<T[k]['on']>[0] } & {
3
+ name: string;
4
+ version?: string;
5
+ };
6
+ declare class PluginSystem<T extends Record<string, any>> {
7
+ lifecycle: T;
8
+ lifecycleKeys: Array<keyof T>;
9
+ registerPlugins: Record<string, Plugin<T>>;
10
+ constructor(lifecycle: T);
11
+ applyPlugin(plugin: Plugin<T>): void;
12
+ removePlugin(pluginName: string): void;
13
+ }
14
+ //#endregion
15
+ export { PluginSystem };
16
+ //# sourceMappingURL=pluginSystem.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { assert } from "../logger.js";
2
+ import { isPlainObject } from "../tool.js";
3
+ import "../index.js";
4
+
5
+ //#region src/utils/hooks/pluginSystem.ts
6
+ var PluginSystem = class {
7
+ constructor(lifecycle) {
8
+ this.registerPlugins = {};
9
+ this.lifecycle = lifecycle;
10
+ this.lifecycleKeys = Object.keys(lifecycle);
11
+ }
12
+ applyPlugin(plugin) {
13
+ assert(isPlainObject(plugin), "Plugin configuration is invalid.");
14
+ const pluginName = plugin.name;
15
+ assert(pluginName, "A name must be provided by the plugin.");
16
+ if (!this.registerPlugins[pluginName]) {
17
+ this.registerPlugins[pluginName] = plugin;
18
+ this.lifecycleKeys.forEach((key) => {
19
+ const pluginLife = plugin[key];
20
+ if (pluginLife) this.lifecycle[key].on(pluginLife);
21
+ });
22
+ }
23
+ }
24
+ removePlugin(pluginName) {
25
+ assert(pluginName, "A name is required.");
26
+ const plugin = this.registerPlugins[pluginName];
27
+ assert(plugin, `The plugin "${pluginName}" is not registered.`);
28
+ this.lifecycleKeys.forEach((key) => {
29
+ const pluginLife = plugin[key];
30
+ if (pluginLife) this.lifecycle[key].remove(pluginLife);
31
+ });
32
+ delete this.registerPlugins[pluginName];
33
+ }
34
+ };
35
+
36
+ //#endregion
37
+ export { PluginSystem };
38
+ //# sourceMappingURL=pluginSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginSystem.js","names":[],"sources":["../../../src/utils/hooks/pluginSystem.ts"],"sourcesContent":["import { assert, isPlainObject } from '../../utils';\n\nexport type Plugin<T extends Record<string, any>> = {\n [k in keyof T]?: Parameters<T[k]['on']>[0];\n} & {\n name: string;\n version?: string;\n};\n\nexport class PluginSystem<T extends Record<string, any>> {\n lifecycle: T;\n lifecycleKeys: Array<keyof T>;\n registerPlugins: Record<string, Plugin<T>> = {};\n\n constructor(lifecycle: T) {\n this.lifecycle = lifecycle;\n this.lifecycleKeys = Object.keys(lifecycle);\n }\n\n applyPlugin(plugin: Plugin<T>): void {\n assert(isPlainObject(plugin), 'Plugin configuration is invalid.');\n // The plugin's name is mandatory and must be unique\n const pluginName = plugin.name;\n assert(pluginName, 'A name must be provided by the plugin.');\n\n if (!this.registerPlugins[pluginName]) {\n this.registerPlugins[pluginName] = plugin;\n\n this.lifecycleKeys.forEach((key) => {\n const pluginLife = plugin[key];\n if (pluginLife) {\n this.lifecycle[key].on(pluginLife);\n }\n });\n }\n }\n\n removePlugin(pluginName: string): void {\n assert(pluginName, 'A name is required.');\n const plugin = this.registerPlugins[pluginName];\n assert(plugin, `The plugin \"${pluginName}\" is not registered.`);\n\n this.lifecycleKeys.forEach((key) => {\n const pluginLife = plugin[key];\n if (pluginLife) {\n this.lifecycle[key].remove(pluginLife);\n }\n });\n delete this.registerPlugins[pluginName];\n }\n}\n"],"mappings":";;;;;AASA,IAAa,eAAb,MAAyD;CAKvD,YAAY,WAAc;yBAFmB,EAAE;AAG7C,OAAK,YAAY;AACjB,OAAK,gBAAgB,OAAO,KAAK,UAAU;;CAG7C,YAAY,QAAyB;AACnC,SAAO,cAAc,OAAO,EAAE,mCAAmC;EAEjE,MAAM,aAAa,OAAO;AAC1B,SAAO,YAAY,yCAAyC;AAE5D,MAAI,CAAC,KAAK,gBAAgB,aAAa;AACrC,QAAK,gBAAgB,cAAc;AAEnC,QAAK,cAAc,SAAS,QAAQ;IAClC,MAAM,aAAa,OAAO;AAC1B,QAAI,WACF,MAAK,UAAU,KAAK,GAAG,WAAW;KAEpC;;;CAIN,aAAa,YAA0B;AACrC,SAAO,YAAY,sBAAsB;EACzC,MAAM,SAAS,KAAK,gBAAgB;AACpC,SAAO,QAAQ,eAAe,WAAW,sBAAsB;AAE/D,OAAK,cAAc,SAAS,QAAQ;GAClC,MAAM,aAAa,OAAO;AAC1B,OAAI,WACF,MAAK,UAAU,KAAK,OAAO,WAAW;IAExC;AACF,SAAO,KAAK,gBAAgB"}