every-plugin 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/rspack/index.cjs +267 -0
- package/dist/build/rspack/index.d.cts +20 -0
- package/dist/build/rspack/index.d.mts +20 -0
- package/dist/build/rspack/index.mjs +265 -0
- package/dist/chunk-QQAxy9l9.mjs +31 -0
- package/dist/chunk-zltIcp7o.cjs +46 -0
- package/dist/effect.cjs +9 -0
- package/dist/effect.d.cts +1 -0
- package/dist/effect.d.mts +1 -0
- package/dist/effect.mjs +3 -0
- package/dist/errors-CVnoPl9v.cjs +68 -0
- package/dist/errors-Car4tFVP.d.mts +75 -0
- package/dist/errors-D7keKf7a.mjs +63 -0
- package/dist/errors-DKPPPYYT.d.cts +75 -0
- package/dist/errors.cjs +4 -0
- package/dist/errors.d.cts +3 -0
- package/dist/errors.d.mts +3 -0
- package/dist/errors.mjs +4 -0
- package/dist/fetch-Cc95-7kM.cjs +336 -0
- package/dist/fetch-KLktuWuM.mjs +335 -0
- package/dist/index-bwAhA9ca.d.mts +383 -0
- package/dist/index-matrPV4m.d.cts +382 -0
- package/dist/index.cjs +57 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +52 -0
- package/dist/{runtime/services/normalize.d.ts → normalize-BLTyqFww.d.mts} +5 -2
- package/dist/{runtime/services/normalize.js → normalize-BW7kk8Lk.d.cts} +5 -1
- package/dist/normalize-D4Qh0wVk.cjs +28 -0
- package/dist/normalize-D7nae0Hn.mjs +22 -0
- package/dist/openapi.DrTcell5-C6kyDyUK.mjs +669 -0
- package/dist/openapi.DrTcell5-DDf4D5V3.cjs +687 -0
- package/dist/orpc.cjs +46 -0
- package/dist/orpc.d.cts +7 -0
- package/dist/orpc.d.mts +7 -0
- package/dist/orpc.mjs +11 -0
- package/dist/package-Ba1JsQFb.mjs +149 -0
- package/dist/package-C09aaCqd.cjs +154 -0
- package/dist/plugins-C-7lh5gK.cjs +128 -0
- package/dist/plugins-Ps5Xxpk2.mjs +128 -0
- package/dist/runtime/index.cjs +6 -0
- package/dist/runtime/index.d.cts +5 -0
- package/dist/runtime/index.d.mts +5 -0
- package/dist/runtime/index.mjs +5 -0
- package/dist/runtime/services/normalize.cjs +3 -0
- package/dist/runtime/services/normalize.d.cts +2 -0
- package/dist/runtime/services/normalize.d.mts +2 -0
- package/dist/runtime/services/normalize.mjs +3 -0
- package/dist/runtime-CdAK1Q5M.cjs +523 -0
- package/dist/runtime-I62RA1Vo.mjs +458 -0
- package/dist/standard-DaxKTFui.mjs +595 -0
- package/dist/standard-eUgUkWaf.cjs +702 -0
- package/dist/testing/index.cjs +78 -0
- package/dist/testing/index.d.cts +60 -0
- package/dist/testing/index.d.mts +60 -0
- package/dist/testing/index.mjs +75 -0
- package/dist/zod-A7Pti5IV.d.cts +4 -0
- package/dist/zod-BVo51kgJ.mjs +10 -0
- package/dist/zod-D4CFw8d9.d.mts +4 -0
- package/dist/zod-DYghWCz1.cjs +14 -0
- package/dist/zod.cjs +10 -0
- package/dist/zod.d.cts +2 -0
- package/dist/zod.d.mts +2 -0
- package/dist/zod.mjs +5 -0
- package/dist/zod4-BXTBR1od.cjs +318 -0
- package/dist/zod4-VpXuwRO7.mjs +317 -0
- package/package.json +64 -27
- package/dist/effect.d.ts +0 -2
- package/dist/effect.d.ts.map +0 -1
- package/dist/effect.js +0 -1
- package/dist/errors.d.ts +0 -70
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -61
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -5
- package/dist/orpc.d.ts +0 -10
- package/dist/orpc.d.ts.map +0 -1
- package/dist/orpc.js +0 -6
- package/dist/plugin.d.ts +0 -57
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -43
- package/dist/runtime/errors.d.ts +0 -36
- package/dist/runtime/errors.d.ts.map +0 -1
- package/dist/runtime/errors.js +0 -47
- package/dist/runtime/index.d.ts +0 -20
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -131
- package/dist/runtime/services/module-federation.service.d.ts +0 -13
- package/dist/runtime/services/module-federation.service.d.ts.map +0 -1
- package/dist/runtime/services/module-federation.service.js +0 -155
- package/dist/runtime/services/normalize.d.ts.map +0 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.ts +0 -14
- package/dist/runtime/services/plugin-lifecycle.service.d.ts.map +0 -1
- package/dist/runtime/services/plugin-lifecycle.service.js +0 -34
- package/dist/runtime/services/plugin-loader.service.d.ts +0 -45
- package/dist/runtime/services/plugin-loader.service.d.ts.map +0 -1
- package/dist/runtime/services/plugin-loader.service.js +0 -93
- package/dist/runtime/services/plugin.service.d.ts +0 -36
- package/dist/runtime/services/plugin.service.d.ts.map +0 -1
- package/dist/runtime/services/plugin.service.js +0 -31
- package/dist/runtime/services/secrets.service.d.ts +0 -15
- package/dist/runtime/services/secrets.service.d.ts.map +0 -1
- package/dist/runtime/services/secrets.service.js +0 -35
- package/dist/runtime/services.d.ts +0 -6
- package/dist/runtime/services.d.ts.map +0 -1
- package/dist/runtime/services.js +0 -5
- package/dist/runtime/validation.d.ts +0 -5
- package/dist/runtime/validation.d.ts.map +0 -1
- package/dist/runtime/validation.js +0 -13
- package/dist/testing/index.d.ts +0 -59
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -45
- package/dist/testing/mocks/module-federation.service.d.ts +0 -6
- package/dist/testing/mocks/module-federation.service.d.ts.map +0 -1
- package/dist/testing/mocks/module-federation.service.js +0 -29
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types.d.ts +0 -187
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/zod.d.ts +0 -2
- package/dist/zod.d.ts.map +0 -1
- package/dist/zod.js +0 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
const require_chunk = require('../chunk-zltIcp7o.cjs');
|
|
2
|
+
const require_runtime = require('../runtime-CdAK1Q5M.cjs');
|
|
3
|
+
require('../normalize-D4Qh0wVk.cjs');
|
|
4
|
+
require('../package-C09aaCqd.cjs');
|
|
5
|
+
let effect = require("effect");
|
|
6
|
+
|
|
7
|
+
//#region src/testing/mocks/module-federation.service.ts
|
|
8
|
+
const createMockModuleFederationServiceLayer = (pluginMap) => effect.Layer.succeed(require_runtime.ModuleFederationService, {
|
|
9
|
+
registerRemote: (pluginId, url) => effect.Effect.gen(function* () {
|
|
10
|
+
console.log(`[MOCK] registerRemote called for ${pluginId}`);
|
|
11
|
+
if (!(pluginId in pluginMap)) return yield* effect.Effect.fail(new require_runtime.ModuleFederationError({
|
|
12
|
+
pluginId,
|
|
13
|
+
remoteUrl: url,
|
|
14
|
+
cause: /* @__PURE__ */ new Error(`Mock: Plugin ${pluginId} not available in test plugin map`)
|
|
15
|
+
}));
|
|
16
|
+
console.log(`[MOCK] registerRemote succeeded for ${pluginId}`);
|
|
17
|
+
}),
|
|
18
|
+
loadRemoteConstructor: (pluginId, url) => effect.Effect.gen(function* () {
|
|
19
|
+
console.log(`[MOCK] loadRemoteConstructor called for ${pluginId}`);
|
|
20
|
+
const PluginConstructor = pluginMap[pluginId];
|
|
21
|
+
if (!PluginConstructor) return yield* effect.Effect.fail(new require_runtime.ModuleFederationError({
|
|
22
|
+
pluginId,
|
|
23
|
+
remoteUrl: url,
|
|
24
|
+
cause: /* @__PURE__ */ new Error(`Mock: Constructor for ${pluginId} not found in test plugin map`)
|
|
25
|
+
}));
|
|
26
|
+
console.log(`[MOCK] loadRemoteConstructor succeeded for ${pluginId}`);
|
|
27
|
+
return PluginConstructor;
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/testing/index.ts
|
|
33
|
+
/**
|
|
34
|
+
* Creates a test layer with mock ModuleFederationService for unit testing.
|
|
35
|
+
* This mirrors PluginService.Live() but uses mock ModuleFederationService.
|
|
36
|
+
*/
|
|
37
|
+
const createTestLayer = (config, pluginMap) => {
|
|
38
|
+
const secrets = config.secrets || {};
|
|
39
|
+
const contextLayer = effect.Layer.mergeAll(effect.Layer.succeed(require_runtime.PluginRegistryTag, config.registry), effect.Layer.succeed(require_runtime.SecretsConfigTag, secrets));
|
|
40
|
+
const mockModuleFederationLayer = createMockModuleFederationServiceLayer(pluginMap);
|
|
41
|
+
const servicesLayer = effect.Layer.mergeAll(mockModuleFederationLayer, require_runtime.SecretsService.Default, require_runtime.RegistryService.Default, require_runtime.PluginLifecycleService.Default).pipe(effect.Layer.provide(contextLayer));
|
|
42
|
+
return require_runtime.PluginService.Default.pipe(effect.Layer.provide(require_runtime.PluginLoaderService.Default), effect.Layer.provide(servicesLayer));
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Creates a plugin runtime for locally available plugins (non-remote).
|
|
46
|
+
* Automatically infers type bindings from the plugin map, eliminating
|
|
47
|
+
* the need for manual RegistryBindings definitions.
|
|
48
|
+
*
|
|
49
|
+
* Ideal for:
|
|
50
|
+
* - Unit and integration tests
|
|
51
|
+
* - Local development and debugging
|
|
52
|
+
* - Monorepo setups where all plugins are in the same workspace
|
|
53
|
+
*
|
|
54
|
+
* For production with remote Module Federation plugins, use createPluginRuntime().
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* const pluginMap = { "my-plugin": MyPlugin } as const;
|
|
59
|
+
* const runtime = createLocalPluginRuntime({ registry, secrets }, pluginMap);
|
|
60
|
+
*
|
|
61
|
+
* // Types are automatically inferred - no manual bindings needed!
|
|
62
|
+
* const plugin = await runtime.usePlugin("my-plugin", config);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
function createLocalPluginRuntime(config, pluginMap) {
|
|
66
|
+
const layer = createTestLayer(config, pluginMap);
|
|
67
|
+
return new require_runtime.PluginRuntime(effect.ManagedRuntime.make(layer), config.registry);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated Use `createLocalPluginRuntime` instead. This alias is kept for backward compatibility.
|
|
71
|
+
*/
|
|
72
|
+
const createTestPluginRuntime = createLocalPluginRuntime;
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
exports.createLocalPluginRuntime = createLocalPluginRuntime;
|
|
76
|
+
exports.createTestLayer = createTestLayer;
|
|
77
|
+
exports.createTestPluginRuntime = createTestPluginRuntime;
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsiTGF5ZXIiLCJNb2R1bGVGZWRlcmF0aW9uU2VydmljZSIsIkVmZmVjdCIsIk1vZHVsZUZlZGVyYXRpb25FcnJvciIsIkxheWVyIiwiUGx1Z2luUmVnaXN0cnlUYWciLCJTZWNyZXRzQ29uZmlnVGFnIiwiU2VjcmV0c1NlcnZpY2UiLCJSZWdpc3RyeVNlcnZpY2UiLCJQbHVnaW5MaWZlY3ljbGVTZXJ2aWNlIiwiUGx1Z2luU2VydmljZSIsIlBsdWdpbkxvYWRlclNlcnZpY2UiLCJQbHVnaW5SdW50aW1lIiwiTWFuYWdlZFJ1bnRpbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9tb2Nrcy9tb2R1bGUtZmVkZXJhdGlvbi5zZXJ2aWNlLnRzIiwiLi4vLi4vc3JjL3Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWZmZWN0LCBMYXllciB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB0eXBlIHsgTG9hZGVkUGx1Z2luV2l0aEJpbmRpbmcgfSBmcm9tIFwiLi4vLi4vcGx1Z2luXCI7XG5pbXBvcnQgeyBNb2R1bGVGZWRlcmF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vcnVudGltZS9lcnJvcnNcIjtcbmltcG9ydCB7IE1vZHVsZUZlZGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3J1bnRpbWUvc2VydmljZXMvbW9kdWxlLWZlZGVyYXRpb24uc2VydmljZVwiO1xuXG5leHBvcnQgdHlwZSBQbHVnaW5NYXAgPSBSZWNvcmQ8c3RyaW5nLCBMb2FkZWRQbHVnaW5XaXRoQmluZGluZzxhbnksIGFueSwgYW55LCBhbnk+PjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tNb2R1bGVGZWRlcmF0aW9uU2VydmljZUxheWVyID0gKHBsdWdpbk1hcDogUGx1Z2luTWFwKSA9PlxuICBMYXllci5zdWNjZWVkKFxuICAgIE1vZHVsZUZlZGVyYXRpb25TZXJ2aWNlLFxuICAgIHtcbiAgICAgIHJlZ2lzdGVyUmVtb3RlOiAocGx1Z2luSWQ6IHN0cmluZywgdXJsOiBzdHJpbmcpID0+XG4gICAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW01PQ0tdIHJlZ2lzdGVyUmVtb3RlIGNhbGxlZCBmb3IgJHtwbHVnaW5JZH1gKTtcbiAgICAgICAgICBpZiAoIShwbHVnaW5JZCBpbiBwbHVnaW5NYXApKSB7XG4gICAgICAgICAgICByZXR1cm4geWllbGQqIEVmZmVjdC5mYWlsKFxuICAgICAgICAgICAgICBuZXcgTW9kdWxlRmVkZXJhdGlvbkVycm9yKHtcbiAgICAgICAgICAgICAgICBwbHVnaW5JZCxcbiAgICAgICAgICAgICAgICByZW1vdGVVcmw6IHVybCxcbiAgICAgICAgICAgICAgICBjYXVzZTogbmV3IEVycm9yKGBNb2NrOiBQbHVnaW4gJHtwbHVnaW5JZH0gbm90IGF2YWlsYWJsZSBpbiB0ZXN0IHBsdWdpbiBtYXBgKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgW01PQ0tdIHJlZ2lzdGVyUmVtb3RlIHN1Y2NlZWRlZCBmb3IgJHtwbHVnaW5JZH1gKTtcbiAgICAgICAgfSksXG5cbiAgICAgIGxvYWRSZW1vdGVDb25zdHJ1Y3RvcjogKHBsdWdpbklkOiBzdHJpbmcsIHVybDogc3RyaW5nKSA9PlxuICAgICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFtNT0NLXSBsb2FkUmVtb3RlQ29uc3RydWN0b3IgY2FsbGVkIGZvciAke3BsdWdpbklkfWApO1xuICAgICAgICAgIGNvbnN0IFBsdWdpbkNvbnN0cnVjdG9yID0gcGx1Z2luTWFwW3BsdWdpbklkXTtcbiAgICAgICAgICBpZiAoIVBsdWdpbkNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4geWllbGQqIEVmZmVjdC5mYWlsKFxuICAgICAgICAgICAgICBuZXcgTW9kdWxlRmVkZXJhdGlvbkVycm9yKHtcbiAgICAgICAgICAgICAgICBwbHVnaW5JZCxcbiAgICAgICAgICAgICAgICByZW1vdGVVcmw6IHVybCxcbiAgICAgICAgICAgICAgICBjYXVzZTogbmV3IEVycm9yKGBNb2NrOiBDb25zdHJ1Y3RvciBmb3IgJHtwbHVnaW5JZH0gbm90IGZvdW5kIGluIHRlc3QgcGx1Z2luIG1hcGApLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnNvbGUubG9nKGBbTU9DS10gbG9hZFJlbW90ZUNvbnN0cnVjdG9yIHN1Y2NlZWRlZCBmb3IgJHtwbHVnaW5JZH1gKTtcbiAgICAgICAgICByZXR1cm4gUGx1Z2luQ29uc3RydWN0b3I7XG4gICAgICAgIH0pLFxuICAgIH0gYXMgYW55XG4gICk7XG4iLCJpbXBvcnQgeyBMYXllciwgTWFuYWdlZFJ1bnRpbWUgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQgeyBQbHVnaW5SdW50aW1lIH0gZnJvbSBcIi4uL3J1bnRpbWVcIjtcbmltcG9ydCB7XG5cdFBsdWdpbkxpZmVjeWNsZVNlcnZpY2UsXG5cdFBsdWdpbkxvYWRlclNlcnZpY2UsXG5cdFBsdWdpblJlZ2lzdHJ5VGFnLFxuXHRQbHVnaW5TZXJ2aWNlLFxuXHRSZWdpc3RyeVNlcnZpY2UsXG5cdFNlY3JldHNDb25maWdUYWcsXG5cdFNlY3JldHNTZXJ2aWNlXG59IGZyb20gXCIuLi9ydW50aW1lL3NlcnZpY2VzXCI7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblJ1bnRpbWVDb25maWcsIFJlZ2lzdGVyZWRQbHVnaW5zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVNb2NrTW9kdWxlRmVkZXJhdGlvblNlcnZpY2VMYXllciwgdHlwZSBQbHVnaW5NYXAgfSBmcm9tIFwiLi9tb2Nrcy9tb2R1bGUtZmVkZXJhdGlvbi5zZXJ2aWNlXCI7XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgYWxsIHBsdWdpbiBtYXAga2V5cyBleGlzdCBpbiBSZWdpc3RlcmVkUGx1Z2lucy5cbiAqIFRoaXMgZW5zdXJlcyBwcm9wZXIgdHlwZSBpbmZlcmVuY2UgZm9yIGNsaWVudCBtZXRob2RzLlxuICovXG50eXBlIFZhbGlkYXRlUGx1Z2luTWFwPFQgZXh0ZW5kcyBQbHVnaW5NYXA+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogSyBleHRlbmRzIGtleW9mIFJlZ2lzdGVyZWRQbHVnaW5zXG5cdFx0PyBUW0tdXG5cdFx0OiBg4p2MIFBsdWdpbiBrZXkgXCIke0sgJiBzdHJpbmd9XCIgbm90IHJlZ2lzdGVyZWQgaW4gUmVnaXN0ZXJlZFBsdWdpbnMuIEFkZCBpdCB0byB5b3VyIHR5cGVzLmQudHMgZmlsZS5gO1xufTtcblxuLyoqXG4gKiBTaW1wbGlmaWVkIHR5cGUgaW5mZXJlbmNlIGZvciBsb2NhbCBwbHVnaW4gbWFwcy5cbiAqIEp1c3QgdXNlIHRoZSBjb25zdHJ1Y3RvciB0eXBlcyBkaXJlY3RseS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHBsdWdpbk1hcCA9IHsgXCJteS1wbHVnaW5cIjogTXlQbHVnaW4gfSBhcyBjb25zdDtcbiAqIHR5cGUgTXlCaW5kaW5ncyA9IEluZmVyQmluZGluZ3NGcm9tTWFwPHR5cGVvZiBwbHVnaW5NYXA+O1xuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIEluZmVyQmluZGluZ3NGcm9tTWFwPFQgZXh0ZW5kcyBQbHVnaW5NYXA+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogVFtLXVxufSAmIFJlZ2lzdGVyZWRQbHVnaW5zO1xuXG4vKipcbiAqIENyZWF0ZXMgYSB0ZXN0IGxheWVyIHdpdGggbW9jayBNb2R1bGVGZWRlcmF0aW9uU2VydmljZSBmb3IgdW5pdCB0ZXN0aW5nLlxuICogVGhpcyBtaXJyb3JzIFBsdWdpblNlcnZpY2UuTGl2ZSgpIGJ1dCB1c2VzIG1vY2sgTW9kdWxlRmVkZXJhdGlvblNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVUZXN0TGF5ZXIgPSA8UiBleHRlbmRzIFJlZ2lzdGVyZWRQbHVnaW5zID0gUmVnaXN0ZXJlZFBsdWdpbnM+KFxuXHRjb25maWc6IFBsdWdpblJ1bnRpbWVDb25maWc8Uj4sXG5cdHBsdWdpbk1hcDogUGx1Z2luTWFwXG4pID0+IHtcblx0Y29uc3Qgc2VjcmV0cyA9IGNvbmZpZy5zZWNyZXRzIHx8IHt9O1xuXG5cdGNvbnN0IGNvbnRleHRMYXllciA9IExheWVyLm1lcmdlQWxsKFxuXHRcdExheWVyLnN1Y2NlZWQoUGx1Z2luUmVnaXN0cnlUYWcsIGNvbmZpZy5yZWdpc3RyeSksXG5cdFx0TGF5ZXIuc3VjY2VlZChTZWNyZXRzQ29uZmlnVGFnLCBzZWNyZXRzKSxcblx0KTtcblxuXHRjb25zdCBtb2NrTW9kdWxlRmVkZXJhdGlvbkxheWVyID0gY3JlYXRlTW9ja01vZHVsZUZlZGVyYXRpb25TZXJ2aWNlTGF5ZXIocGx1Z2luTWFwKTtcblxuXHRjb25zdCBzZXJ2aWNlc0xheWVyID0gTGF5ZXIubWVyZ2VBbGwoXG5cdFx0bW9ja01vZHVsZUZlZGVyYXRpb25MYXllcixcblx0XHRTZWNyZXRzU2VydmljZS5EZWZhdWx0LFxuXHRcdFJlZ2lzdHJ5U2VydmljZS5EZWZhdWx0LFxuXHRcdFBsdWdpbkxpZmVjeWNsZVNlcnZpY2UuRGVmYXVsdCxcblx0KS5waXBlKFxuXHRcdExheWVyLnByb3ZpZGUoY29udGV4dExheWVyKVxuXHQpO1xuXG5cdHJldHVybiBQbHVnaW5TZXJ2aWNlLkRlZmF1bHQucGlwZShcblx0XHRMYXllci5wcm92aWRlKFBsdWdpbkxvYWRlclNlcnZpY2UuRGVmYXVsdCksXG5cdFx0TGF5ZXIucHJvdmlkZShzZXJ2aWNlc0xheWVyKVxuXHQpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcGx1Z2luIHJ1bnRpbWUgZm9yIGxvY2FsbHkgYXZhaWxhYmxlIHBsdWdpbnMgKG5vbi1yZW1vdGUpLlxuICogQXV0b21hdGljYWxseSBpbmZlcnMgdHlwZSBiaW5kaW5ncyBmcm9tIHRoZSBwbHVnaW4gbWFwLCBlbGltaW5hdGluZ1xuICogdGhlIG5lZWQgZm9yIG1hbnVhbCBSZWdpc3RyeUJpbmRpbmdzIGRlZmluaXRpb25zLlxuICpcbiAqIElkZWFsIGZvcjpcbiAqIC0gVW5pdCBhbmQgaW50ZWdyYXRpb24gdGVzdHNcbiAqIC0gTG9jYWwgZGV2ZWxvcG1lbnQgYW5kIGRlYnVnZ2luZ1xuICogLSBNb25vcmVwbyBzZXR1cHMgd2hlcmUgYWxsIHBsdWdpbnMgYXJlIGluIHRoZSBzYW1lIHdvcmtzcGFjZVxuICpcbiAqIEZvciBwcm9kdWN0aW9uIHdpdGggcmVtb3RlIE1vZHVsZSBGZWRlcmF0aW9uIHBsdWdpbnMsIHVzZSBjcmVhdGVQbHVnaW5SdW50aW1lKCkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBwbHVnaW5NYXAgPSB7IFwibXktcGx1Z2luXCI6IE15UGx1Z2luIH0gYXMgY29uc3Q7XG4gKiBjb25zdCBydW50aW1lID0gY3JlYXRlTG9jYWxQbHVnaW5SdW50aW1lKHsgcmVnaXN0cnksIHNlY3JldHMgfSwgcGx1Z2luTWFwKTtcbiAqXG4gKiAvLyBUeXBlcyBhcmUgYXV0b21hdGljYWxseSBpbmZlcnJlZCAtIG5vIG1hbnVhbCBiaW5kaW5ncyBuZWVkZWQhXG4gKiBjb25zdCBwbHVnaW4gPSBhd2FpdCBydW50aW1lLnVzZVBsdWdpbihcIm15LXBsdWdpblwiLCBjb25maWcpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbFBsdWdpblJ1bnRpbWU8VE1hcCBleHRlbmRzIFBsdWdpbk1hcCAmIFZhbGlkYXRlUGx1Z2luTWFwPFRNYXA+Pihcblx0Y29uZmlnOiBQbHVnaW5SdW50aW1lQ29uZmlnLFxuXHRwbHVnaW5NYXA6IFRNYXBcbik6IFBsdWdpblJ1bnRpbWU8SW5mZXJCaW5kaW5nc0Zyb21NYXA8VE1hcD4+IHtcblx0Y29uc3QgbGF5ZXIgPSBjcmVhdGVUZXN0TGF5ZXIoY29uZmlnLCBwbHVnaW5NYXApO1xuXHRjb25zdCBydW50aW1lID0gTWFuYWdlZFJ1bnRpbWUubWFrZShsYXllcik7XG5cblx0cmV0dXJuIG5ldyBQbHVnaW5SdW50aW1lPEluZmVyQmluZGluZ3NGcm9tTWFwPFRNYXA+PihydW50aW1lLCBjb25maWcucmVnaXN0cnkpO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgY3JlYXRlTG9jYWxQbHVnaW5SdW50aW1lYCBpbnN0ZWFkLiBUaGlzIGFsaWFzIGlzIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVUZXN0UGx1Z2luUnVudGltZSA9IGNyZWF0ZUxvY2FsUGx1Z2luUnVudGltZTtcblxuLy8gUmUtZXhwb3J0IHVzZWZ1bCB0eXBlcyBmb3IgdGVzdHNcbmV4cG9ydCB0eXBlIHsgRXZlcnlQbHVnaW4sIFBsdWdpblJlZ2lzdHJ5LCBSZWdpc3RlcmVkUGx1Z2lucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuZXhwb3J0IHR5cGUgeyBQbHVnaW5NYXAsIFBsdWdpblJ1bnRpbWVDb25maWcgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BLE1BQWEsMENBQTBDLGNBQ3JEQSxhQUFNLFFBQ0pDLHlDQUNBO0NBQ0UsaUJBQWlCLFVBQWtCLFFBQ2pDQyxjQUFPLElBQUksYUFBYTtBQUN0QixVQUFRLElBQUksb0NBQW9DLFdBQVc7QUFDM0QsTUFBSSxFQUFFLFlBQVksV0FDaEIsUUFBTyxPQUFPQSxjQUFPLEtBQ25CLElBQUlDLHNDQUFzQjtHQUN4QjtHQUNBLFdBQVc7R0FDWCx1QkFBTyxJQUFJLE1BQU0sZ0JBQWdCLFNBQVMsbUNBQW1DO0dBQzlFLENBQUMsQ0FDSDtBQUVILFVBQVEsSUFBSSx1Q0FBdUMsV0FBVztHQUM5RDtDQUVKLHdCQUF3QixVQUFrQixRQUN4Q0QsY0FBTyxJQUFJLGFBQWE7QUFDdEIsVUFBUSxJQUFJLDJDQUEyQyxXQUFXO0VBQ2xFLE1BQU0sb0JBQW9CLFVBQVU7QUFDcEMsTUFBSSxDQUFDLGtCQUNILFFBQU8sT0FBT0EsY0FBTyxLQUNuQixJQUFJQyxzQ0FBc0I7R0FDeEI7R0FDQSxXQUFXO0dBQ1gsdUJBQU8sSUFBSSxNQUFNLHlCQUF5QixTQUFTLCtCQUErQjtHQUNuRixDQUFDLENBQ0g7QUFFSCxVQUFRLElBQUksOENBQThDLFdBQVc7QUFDckUsU0FBTztHQUNQO0NBQ0wsQ0FDRjs7Ozs7Ozs7QUNESCxNQUFhLG1CQUNaLFFBQ0EsY0FDSTtDQUNKLE1BQU0sVUFBVSxPQUFPLFdBQVcsRUFBRTtDQUVwQyxNQUFNLGVBQWVDLGFBQU0sU0FDMUJBLGFBQU0sUUFBUUMsbUNBQW1CLE9BQU8sU0FBUyxFQUNqREQsYUFBTSxRQUFRRSxrQ0FBa0IsUUFBUSxDQUN4QztDQUVELE1BQU0sNEJBQTRCLHVDQUF1QyxVQUFVO0NBRW5GLE1BQU0sZ0JBQWdCRixhQUFNLFNBQzNCLDJCQUNBRywrQkFBZSxTQUNmQyxnQ0FBZ0IsU0FDaEJDLHVDQUF1QixRQUN2QixDQUFDLEtBQ0RMLGFBQU0sUUFBUSxhQUFhLENBQzNCO0FBRUQsUUFBT00sOEJBQWMsUUFBUSxLQUM1Qk4sYUFBTSxRQUFRTyxvQ0FBb0IsUUFBUSxFQUMxQ1AsYUFBTSxRQUFRLGNBQWMsQ0FDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JGLFNBQWdCLHlCQUNmLFFBQ0EsV0FDNEM7Q0FDNUMsTUFBTSxRQUFRLGdCQUFnQixRQUFRLFVBQVU7QUFHaEQsUUFBTyxJQUFJUSw4QkFGS0Msc0JBQWUsS0FBSyxNQUFNLEVBRW9CLE9BQU8sU0FBUzs7Ozs7QUFNL0UsTUFBYSwwQkFBMEIifQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "../zod-A7Pti5IV.cjs";
|
|
2
|
+
import "../errors-DKPPPYYT.cjs";
|
|
3
|
+
import { a as EveryPlugin, g as PluginRuntimeConfig, m as PluginRegistry, r as PluginService, t as PluginRuntime, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "../index-matrPV4m.cjs";
|
|
4
|
+
import "../normalize-BW7kk8Lk.cjs";
|
|
5
|
+
import { Layer } from "effect";
|
|
6
|
+
|
|
7
|
+
//#region src/testing/mocks/module-federation.service.d.ts
|
|
8
|
+
type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/testing/index.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* Validates that all plugin map keys exist in RegisteredPlugins.
|
|
13
|
+
* This ensures proper type inference for client methods.
|
|
14
|
+
*/
|
|
15
|
+
type ValidatePluginMap<T extends PluginMap> = { [K in keyof T]: K extends keyof RegisteredPlugins ? T[K] : `❌ Plugin key "${K & string}" not registered in RegisteredPlugins. Add it to your types.d.ts file.` };
|
|
16
|
+
/**
|
|
17
|
+
* Simplified type inference for local plugin maps.
|
|
18
|
+
* Just use the constructor types directly.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const pluginMap = { "my-plugin": MyPlugin } as const;
|
|
23
|
+
* type MyBindings = InferBindingsFromMap<typeof pluginMap>;
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
type InferBindingsFromMap<T extends PluginMap> = { [K in keyof T]: T[K] } & RegisteredPlugins;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a test layer with mock ModuleFederationService for unit testing.
|
|
29
|
+
* This mirrors PluginService.Live() but uses mock ModuleFederationService.
|
|
30
|
+
*/
|
|
31
|
+
declare const createTestLayer: <R extends RegisteredPlugins = RegisteredPlugins>(config: PluginRuntimeConfig<R>, pluginMap: PluginMap) => Layer.Layer<PluginService, never, never>;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a plugin runtime for locally available plugins (non-remote).
|
|
34
|
+
* Automatically infers type bindings from the plugin map, eliminating
|
|
35
|
+
* the need for manual RegistryBindings definitions.
|
|
36
|
+
*
|
|
37
|
+
* Ideal for:
|
|
38
|
+
* - Unit and integration tests
|
|
39
|
+
* - Local development and debugging
|
|
40
|
+
* - Monorepo setups where all plugins are in the same workspace
|
|
41
|
+
*
|
|
42
|
+
* For production with remote Module Federation plugins, use createPluginRuntime().
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const pluginMap = { "my-plugin": MyPlugin } as const;
|
|
47
|
+
* const runtime = createLocalPluginRuntime({ registry, secrets }, pluginMap);
|
|
48
|
+
*
|
|
49
|
+
* // Types are automatically inferred - no manual bindings needed!
|
|
50
|
+
* const plugin = await runtime.usePlugin("my-plugin", config);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare function createLocalPluginRuntime<TMap extends PluginMap & ValidatePluginMap<TMap>>(config: PluginRuntimeConfig, pluginMap: TMap): PluginRuntime<InferBindingsFromMap<TMap>>;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use `createLocalPluginRuntime` instead. This alias is kept for backward compatibility.
|
|
56
|
+
*/
|
|
57
|
+
declare const createTestPluginRuntime: typeof createLocalPluginRuntime;
|
|
58
|
+
//#endregion
|
|
59
|
+
export { type EveryPlugin, InferBindingsFromMap, type PluginMap, type PluginRegistry, type PluginRuntimeConfig, type RegisteredPlugins, createLocalPluginRuntime, createTestLayer, createTestPluginRuntime };
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvbW9ja3MvbW9kdWxlLWZlZGVyYXRpb24uc2VydmljZS50cyIsIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7S0FLWSxTQUFBLEdBQVksZUFBZTs7Ozs7QUFBdkM7O0tDYUssNEJBQTRCLDJCQUNwQixJQUFJLGdCQUFnQixvQkFDN0IsRUFBRSxzQkFDZSxvRkFUc0Y7Ozs7Ozs7OztBQXNCM0c7O0FBQ2EsS0FERCxvQkFDQyxDQUFBLFVBRDhCLFNBQzlCLENBQUEsR0FBQSxRQUFJLE1BQUosQ0FBSSxHQUFBLENBQUEsQ0FBRSxDQUFGLENBQUEsRUFBRSxHQUNmLGlCQURlOzs7QUFPbkI7O0FBQThELGNBQWpELGVBQWlELEVBQUEsQ0FBQSxVQUFwQixpQkFBb0IsR0FBQSxpQkFBQSxDQUFBLENBQUEsTUFBQSxFQUNyRCxtQkFEcUQsQ0FDakMsQ0FEaUMsQ0FBQSxFQUFBLFNBQUEsRUFFbEQsU0FGa0QsRUFBQSxHQUV6QyxLQUFBLENBQUEsS0FGeUMsQ0FFekMsYUFGeUMsRUFBQSxLQUFBLEVBQUEsS0FBQSxDQUFBOzs7Ozs7O0FBaUQ5RDs7Ozs7Ozs7OztBQWFBOzs7OztpQkFiZ0Isc0NBQXNDLFlBQVksa0JBQWtCLGVBQzNFLGdDQUNHLE9BQ1QsY0FBYyxxQkFBcUI7Ozs7Y0FVekIsZ0NBQXVCIn0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "../zod-D4CFw8d9.mjs";
|
|
2
|
+
import "../errors-Car4tFVP.mjs";
|
|
3
|
+
import { a as EveryPlugin, g as PluginRuntimeConfig, m as PluginRegistry, r as PluginService, t as PluginRuntime, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "../index-bwAhA9ca.mjs";
|
|
4
|
+
import "../normalize-BLTyqFww.mjs";
|
|
5
|
+
import { Layer } from "effect";
|
|
6
|
+
|
|
7
|
+
//#region src/testing/mocks/module-federation.service.d.ts
|
|
8
|
+
type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/testing/index.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* Validates that all plugin map keys exist in RegisteredPlugins.
|
|
13
|
+
* This ensures proper type inference for client methods.
|
|
14
|
+
*/
|
|
15
|
+
type ValidatePluginMap<T extends PluginMap> = { [K in keyof T]: K extends keyof RegisteredPlugins ? T[K] : `❌ Plugin key "${K & string}" not registered in RegisteredPlugins. Add it to your types.d.ts file.` };
|
|
16
|
+
/**
|
|
17
|
+
* Simplified type inference for local plugin maps.
|
|
18
|
+
* Just use the constructor types directly.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const pluginMap = { "my-plugin": MyPlugin } as const;
|
|
23
|
+
* type MyBindings = InferBindingsFromMap<typeof pluginMap>;
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
type InferBindingsFromMap<T extends PluginMap> = { [K in keyof T]: T[K] } & RegisteredPlugins;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a test layer with mock ModuleFederationService for unit testing.
|
|
29
|
+
* This mirrors PluginService.Live() but uses mock ModuleFederationService.
|
|
30
|
+
*/
|
|
31
|
+
declare const createTestLayer: <R extends RegisteredPlugins = RegisteredPlugins>(config: PluginRuntimeConfig<R>, pluginMap: PluginMap) => Layer.Layer<PluginService, never, never>;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a plugin runtime for locally available plugins (non-remote).
|
|
34
|
+
* Automatically infers type bindings from the plugin map, eliminating
|
|
35
|
+
* the need for manual RegistryBindings definitions.
|
|
36
|
+
*
|
|
37
|
+
* Ideal for:
|
|
38
|
+
* - Unit and integration tests
|
|
39
|
+
* - Local development and debugging
|
|
40
|
+
* - Monorepo setups where all plugins are in the same workspace
|
|
41
|
+
*
|
|
42
|
+
* For production with remote Module Federation plugins, use createPluginRuntime().
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const pluginMap = { "my-plugin": MyPlugin } as const;
|
|
47
|
+
* const runtime = createLocalPluginRuntime({ registry, secrets }, pluginMap);
|
|
48
|
+
*
|
|
49
|
+
* // Types are automatically inferred - no manual bindings needed!
|
|
50
|
+
* const plugin = await runtime.usePlugin("my-plugin", config);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare function createLocalPluginRuntime<TMap extends PluginMap & ValidatePluginMap<TMap>>(config: PluginRuntimeConfig, pluginMap: TMap): PluginRuntime<InferBindingsFromMap<TMap>>;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use `createLocalPluginRuntime` instead. This alias is kept for backward compatibility.
|
|
56
|
+
*/
|
|
57
|
+
declare const createTestPluginRuntime: typeof createLocalPluginRuntime;
|
|
58
|
+
//#endregion
|
|
59
|
+
export { type EveryPlugin, InferBindingsFromMap, type PluginMap, type PluginRegistry, type PluginRuntimeConfig, type RegisteredPlugins, createLocalPluginRuntime, createTestLayer, createTestPluginRuntime };
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvbW9ja3MvbW9kdWxlLWZlZGVyYXRpb24uc2VydmljZS50cyIsIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7S0FLWSxTQUFBLEdBQVksZUFBZTs7Ozs7QUFBdkM7O0tDYUssNEJBQTRCLDJCQUNwQixJQUFJLGdCQUFnQixvQkFDN0IsRUFBRSxzQkFDZSxvRkFUc0Y7Ozs7Ozs7OztBQXNCM0c7O0FBQ2EsS0FERCxvQkFDQyxDQUFBLFVBRDhCLFNBQzlCLENBQUEsR0FBQSxRQUFJLE1BQUosQ0FBSSxHQUFBLENBQUEsQ0FBRSxDQUFGLENBQUEsRUFBRSxHQUNmLGlCQURlOzs7QUFPbkI7O0FBQThELGNBQWpELGVBQWlELEVBQUEsQ0FBQSxVQUFwQixpQkFBb0IsR0FBQSxpQkFBQSxDQUFBLENBQUEsTUFBQSxFQUNyRCxtQkFEcUQsQ0FDakMsQ0FEaUMsQ0FBQSxFQUFBLFNBQUEsRUFFbEQsU0FGa0QsRUFBQSxHQUV6QyxLQUFBLENBQUEsS0FGeUMsQ0FFekMsYUFGeUMsRUFBQSxLQUFBLEVBQUEsS0FBQSxDQUFBOzs7Ozs7O0FBaUQ5RDs7Ozs7Ozs7OztBQWFBOzs7OztpQkFiZ0Isc0NBQXNDLFlBQVksa0JBQWtCLGVBQzNFLGdDQUNHLE9BQ1QsY0FBYyxxQkFBcUI7Ozs7Y0FVekIsZ0NBQXVCIn0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { a as PluginRegistryTag, c as SecretsService, d as ModuleFederationError, i as PluginLoaderService, l as PluginLifecycleService, o as RegistryService, r as PluginService, s as SecretsConfigTag, t as PluginRuntime, u as ModuleFederationService } from "../runtime-I62RA1Vo.mjs";
|
|
2
|
+
import "../normalize-D7nae0Hn.mjs";
|
|
3
|
+
import "../package-Ba1JsQFb.mjs";
|
|
4
|
+
import { Effect, Layer, ManagedRuntime } from "effect";
|
|
5
|
+
|
|
6
|
+
//#region src/testing/mocks/module-federation.service.ts
|
|
7
|
+
const createMockModuleFederationServiceLayer = (pluginMap) => Layer.succeed(ModuleFederationService, {
|
|
8
|
+
registerRemote: (pluginId, url) => Effect.gen(function* () {
|
|
9
|
+
console.log(`[MOCK] registerRemote called for ${pluginId}`);
|
|
10
|
+
if (!(pluginId in pluginMap)) return yield* Effect.fail(new ModuleFederationError({
|
|
11
|
+
pluginId,
|
|
12
|
+
remoteUrl: url,
|
|
13
|
+
cause: /* @__PURE__ */ new Error(`Mock: Plugin ${pluginId} not available in test plugin map`)
|
|
14
|
+
}));
|
|
15
|
+
console.log(`[MOCK] registerRemote succeeded for ${pluginId}`);
|
|
16
|
+
}),
|
|
17
|
+
loadRemoteConstructor: (pluginId, url) => Effect.gen(function* () {
|
|
18
|
+
console.log(`[MOCK] loadRemoteConstructor called for ${pluginId}`);
|
|
19
|
+
const PluginConstructor = pluginMap[pluginId];
|
|
20
|
+
if (!PluginConstructor) return yield* Effect.fail(new ModuleFederationError({
|
|
21
|
+
pluginId,
|
|
22
|
+
remoteUrl: url,
|
|
23
|
+
cause: /* @__PURE__ */ new Error(`Mock: Constructor for ${pluginId} not found in test plugin map`)
|
|
24
|
+
}));
|
|
25
|
+
console.log(`[MOCK] loadRemoteConstructor succeeded for ${pluginId}`);
|
|
26
|
+
return PluginConstructor;
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/testing/index.ts
|
|
32
|
+
/**
|
|
33
|
+
* Creates a test layer with mock ModuleFederationService for unit testing.
|
|
34
|
+
* This mirrors PluginService.Live() but uses mock ModuleFederationService.
|
|
35
|
+
*/
|
|
36
|
+
const createTestLayer = (config, pluginMap) => {
|
|
37
|
+
const secrets = config.secrets || {};
|
|
38
|
+
const contextLayer = Layer.mergeAll(Layer.succeed(PluginRegistryTag, config.registry), Layer.succeed(SecretsConfigTag, secrets));
|
|
39
|
+
const mockModuleFederationLayer = createMockModuleFederationServiceLayer(pluginMap);
|
|
40
|
+
const servicesLayer = Layer.mergeAll(mockModuleFederationLayer, SecretsService.Default, RegistryService.Default, PluginLifecycleService.Default).pipe(Layer.provide(contextLayer));
|
|
41
|
+
return PluginService.Default.pipe(Layer.provide(PluginLoaderService.Default), Layer.provide(servicesLayer));
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Creates a plugin runtime for locally available plugins (non-remote).
|
|
45
|
+
* Automatically infers type bindings from the plugin map, eliminating
|
|
46
|
+
* the need for manual RegistryBindings definitions.
|
|
47
|
+
*
|
|
48
|
+
* Ideal for:
|
|
49
|
+
* - Unit and integration tests
|
|
50
|
+
* - Local development and debugging
|
|
51
|
+
* - Monorepo setups where all plugins are in the same workspace
|
|
52
|
+
*
|
|
53
|
+
* For production with remote Module Federation plugins, use createPluginRuntime().
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* const pluginMap = { "my-plugin": MyPlugin } as const;
|
|
58
|
+
* const runtime = createLocalPluginRuntime({ registry, secrets }, pluginMap);
|
|
59
|
+
*
|
|
60
|
+
* // Types are automatically inferred - no manual bindings needed!
|
|
61
|
+
* const plugin = await runtime.usePlugin("my-plugin", config);
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
function createLocalPluginRuntime(config, pluginMap) {
|
|
65
|
+
const layer = createTestLayer(config, pluginMap);
|
|
66
|
+
return new PluginRuntime(ManagedRuntime.make(layer), config.registry);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated Use `createLocalPluginRuntime` instead. This alias is kept for backward compatibility.
|
|
70
|
+
*/
|
|
71
|
+
const createTestPluginRuntime = createLocalPluginRuntime;
|
|
72
|
+
|
|
73
|
+
//#endregion
|
|
74
|
+
export { createLocalPluginRuntime, createTestLayer, createTestPluginRuntime };
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL21vY2tzL21vZHVsZS1mZWRlcmF0aW9uLnNlcnZpY2UudHMiLCIuLi8uLi9zcmMvdGVzdGluZy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZmZlY3QsIExheWVyIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHR5cGUgeyBMb2FkZWRQbHVnaW5XaXRoQmluZGluZyB9IGZyb20gXCIuLi8uLi9wbHVnaW5cIjtcbmltcG9ydCB7IE1vZHVsZUZlZGVyYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9ydW50aW1lL2Vycm9yc1wiO1xuaW1wb3J0IHsgTW9kdWxlRmVkZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vcnVudGltZS9zZXJ2aWNlcy9tb2R1bGUtZmVkZXJhdGlvbi5zZXJ2aWNlXCI7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbk1hcCA9IFJlY29yZDxzdHJpbmcsIExvYWRlZFBsdWdpbldpdGhCaW5kaW5nPGFueSwgYW55LCBhbnksIGFueT4+O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja01vZHVsZUZlZGVyYXRpb25TZXJ2aWNlTGF5ZXIgPSAocGx1Z2luTWFwOiBQbHVnaW5NYXApID0+XG4gIExheWVyLnN1Y2NlZWQoXG4gICAgTW9kdWxlRmVkZXJhdGlvblNlcnZpY2UsXG4gICAge1xuICAgICAgcmVnaXN0ZXJSZW1vdGU6IChwbHVnaW5JZDogc3RyaW5nLCB1cmw6IHN0cmluZykgPT5cbiAgICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbTU9DS10gcmVnaXN0ZXJSZW1vdGUgY2FsbGVkIGZvciAke3BsdWdpbklkfWApO1xuICAgICAgICAgIGlmICghKHBsdWdpbklkIGluIHBsdWdpbk1hcCkpIHtcbiAgICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICAgIG5ldyBNb2R1bGVGZWRlcmF0aW9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIHBsdWdpbklkLFxuICAgICAgICAgICAgICAgIHJlbW90ZVVybDogdXJsLFxuICAgICAgICAgICAgICAgIGNhdXNlOiBuZXcgRXJyb3IoYE1vY2s6IFBsdWdpbiAke3BsdWdpbklkfSBub3QgYXZhaWxhYmxlIGluIHRlc3QgcGx1Z2luIG1hcGApLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnNvbGUubG9nKGBbTU9DS10gcmVnaXN0ZXJSZW1vdGUgc3VjY2VlZGVkIGZvciAke3BsdWdpbklkfWApO1xuICAgICAgICB9KSxcblxuICAgICAgbG9hZFJlbW90ZUNvbnN0cnVjdG9yOiAocGx1Z2luSWQ6IHN0cmluZywgdXJsOiBzdHJpbmcpID0+XG4gICAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW01PQ0tdIGxvYWRSZW1vdGVDb25zdHJ1Y3RvciBjYWxsZWQgZm9yICR7cGx1Z2luSWR9YCk7XG4gICAgICAgICAgY29uc3QgUGx1Z2luQ29uc3RydWN0b3IgPSBwbHVnaW5NYXBbcGx1Z2luSWRdO1xuICAgICAgICAgIGlmICghUGx1Z2luQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICAgIG5ldyBNb2R1bGVGZWRlcmF0aW9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIHBsdWdpbklkLFxuICAgICAgICAgICAgICAgIHJlbW90ZVVybDogdXJsLFxuICAgICAgICAgICAgICAgIGNhdXNlOiBuZXcgRXJyb3IoYE1vY2s6IENvbnN0cnVjdG9yIGZvciAke3BsdWdpbklkfSBub3QgZm91bmQgaW4gdGVzdCBwbHVnaW4gbWFwYCksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc29sZS5sb2coYFtNT0NLXSBsb2FkUmVtb3RlQ29uc3RydWN0b3Igc3VjY2VlZGVkIGZvciAke3BsdWdpbklkfWApO1xuICAgICAgICAgIHJldHVybiBQbHVnaW5Db25zdHJ1Y3RvcjtcbiAgICAgICAgfSksXG4gICAgfSBhcyBhbnlcbiAgKTtcbiIsImltcG9ydCB7IExheWVyLCBNYW5hZ2VkUnVudGltZSB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7IFBsdWdpblJ1bnRpbWUgfSBmcm9tIFwiLi4vcnVudGltZVwiO1xuaW1wb3J0IHtcblx0UGx1Z2luTGlmZWN5Y2xlU2VydmljZSxcblx0UGx1Z2luTG9hZGVyU2VydmljZSxcblx0UGx1Z2luUmVnaXN0cnlUYWcsXG5cdFBsdWdpblNlcnZpY2UsXG5cdFJlZ2lzdHJ5U2VydmljZSxcblx0U2VjcmV0c0NvbmZpZ1RhZyxcblx0U2VjcmV0c1NlcnZpY2Vcbn0gZnJvbSBcIi4uL3J1bnRpbWUvc2VydmljZXNcIjtcbmltcG9ydCB0eXBlIHsgUGx1Z2luUnVudGltZUNvbmZpZywgUmVnaXN0ZXJlZFBsdWdpbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGNyZWF0ZU1vY2tNb2R1bGVGZWRlcmF0aW9uU2VydmljZUxheWVyLCB0eXBlIFBsdWdpbk1hcCB9IGZyb20gXCIuL21vY2tzL21vZHVsZS1mZWRlcmF0aW9uLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhhdCBhbGwgcGx1Z2luIG1hcCBrZXlzIGV4aXN0IGluIFJlZ2lzdGVyZWRQbHVnaW5zLlxuICogVGhpcyBlbnN1cmVzIHByb3BlciB0eXBlIGluZmVyZW5jZSBmb3IgY2xpZW50IG1ldGhvZHMuXG4gKi9cbnR5cGUgVmFsaWRhdGVQbHVnaW5NYXA8VCBleHRlbmRzIFBsdWdpbk1hcD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBLIGV4dGVuZHMga2V5b2YgUmVnaXN0ZXJlZFBsdWdpbnNcblx0XHQ/IFRbS11cblx0XHQ6IGDinYwgUGx1Z2luIGtleSBcIiR7SyAmIHN0cmluZ31cIiBub3QgcmVnaXN0ZXJlZCBpbiBSZWdpc3RlcmVkUGx1Z2lucy4gQWRkIGl0IHRvIHlvdXIgdHlwZXMuZC50cyBmaWxlLmA7XG59O1xuXG4vKipcbiAqIFNpbXBsaWZpZWQgdHlwZSBpbmZlcmVuY2UgZm9yIGxvY2FsIHBsdWdpbiBtYXBzLlxuICogSnVzdCB1c2UgdGhlIGNvbnN0cnVjdG9yIHR5cGVzIGRpcmVjdGx5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgcGx1Z2luTWFwID0geyBcIm15LXBsdWdpblwiOiBNeVBsdWdpbiB9IGFzIGNvbnN0O1xuICogdHlwZSBNeUJpbmRpbmdzID0gSW5mZXJCaW5kaW5nc0Zyb21NYXA8dHlwZW9mIHBsdWdpbk1hcD47XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgSW5mZXJCaW5kaW5nc0Zyb21NYXA8VCBleHRlbmRzIFBsdWdpbk1hcD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgUmVnaXN0ZXJlZFBsdWdpbnM7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRlc3QgbGF5ZXIgd2l0aCBtb2NrIE1vZHVsZUZlZGVyYXRpb25TZXJ2aWNlIGZvciB1bml0IHRlc3RpbmcuXG4gKiBUaGlzIG1pcnJvcnMgUGx1Z2luU2VydmljZS5MaXZlKCkgYnV0IHVzZXMgbW9jayBNb2R1bGVGZWRlcmF0aW9uU2VydmljZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVRlc3RMYXllciA9IDxSIGV4dGVuZHMgUmVnaXN0ZXJlZFBsdWdpbnMgPSBSZWdpc3RlcmVkUGx1Z2lucz4oXG5cdGNvbmZpZzogUGx1Z2luUnVudGltZUNvbmZpZzxSPixcblx0cGx1Z2luTWFwOiBQbHVnaW5NYXBcbikgPT4ge1xuXHRjb25zdCBzZWNyZXRzID0gY29uZmlnLnNlY3JldHMgfHwge307XG5cblx0Y29uc3QgY29udGV4dExheWVyID0gTGF5ZXIubWVyZ2VBbGwoXG5cdFx0TGF5ZXIuc3VjY2VlZChQbHVnaW5SZWdpc3RyeVRhZywgY29uZmlnLnJlZ2lzdHJ5KSxcblx0XHRMYXllci5zdWNjZWVkKFNlY3JldHNDb25maWdUYWcsIHNlY3JldHMpLFxuXHQpO1xuXG5cdGNvbnN0IG1vY2tNb2R1bGVGZWRlcmF0aW9uTGF5ZXIgPSBjcmVhdGVNb2NrTW9kdWxlRmVkZXJhdGlvblNlcnZpY2VMYXllcihwbHVnaW5NYXApO1xuXG5cdGNvbnN0IHNlcnZpY2VzTGF5ZXIgPSBMYXllci5tZXJnZUFsbChcblx0XHRtb2NrTW9kdWxlRmVkZXJhdGlvbkxheWVyLFxuXHRcdFNlY3JldHNTZXJ2aWNlLkRlZmF1bHQsXG5cdFx0UmVnaXN0cnlTZXJ2aWNlLkRlZmF1bHQsXG5cdFx0UGx1Z2luTGlmZWN5Y2xlU2VydmljZS5EZWZhdWx0LFxuXHQpLnBpcGUoXG5cdFx0TGF5ZXIucHJvdmlkZShjb250ZXh0TGF5ZXIpXG5cdCk7XG5cblx0cmV0dXJuIFBsdWdpblNlcnZpY2UuRGVmYXVsdC5waXBlKFxuXHRcdExheWVyLnByb3ZpZGUoUGx1Z2luTG9hZGVyU2VydmljZS5EZWZhdWx0KSxcblx0XHRMYXllci5wcm92aWRlKHNlcnZpY2VzTGF5ZXIpXG5cdCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBwbHVnaW4gcnVudGltZSBmb3IgbG9jYWxseSBhdmFpbGFibGUgcGx1Z2lucyAobm9uLXJlbW90ZSkuXG4gKiBBdXRvbWF0aWNhbGx5IGluZmVycyB0eXBlIGJpbmRpbmdzIGZyb20gdGhlIHBsdWdpbiBtYXAsIGVsaW1pbmF0aW5nXG4gKiB0aGUgbmVlZCBmb3IgbWFudWFsIFJlZ2lzdHJ5QmluZGluZ3MgZGVmaW5pdGlvbnMuXG4gKlxuICogSWRlYWwgZm9yOlxuICogLSBVbml0IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0c1xuICogLSBMb2NhbCBkZXZlbG9wbWVudCBhbmQgZGVidWdnaW5nXG4gKiAtIE1vbm9yZXBvIHNldHVwcyB3aGVyZSBhbGwgcGx1Z2lucyBhcmUgaW4gdGhlIHNhbWUgd29ya3NwYWNlXG4gKlxuICogRm9yIHByb2R1Y3Rpb24gd2l0aCByZW1vdGUgTW9kdWxlIEZlZGVyYXRpb24gcGx1Z2lucywgdXNlIGNyZWF0ZVBsdWdpblJ1bnRpbWUoKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHBsdWdpbk1hcCA9IHsgXCJteS1wbHVnaW5cIjogTXlQbHVnaW4gfSBhcyBjb25zdDtcbiAqIGNvbnN0IHJ1bnRpbWUgPSBjcmVhdGVMb2NhbFBsdWdpblJ1bnRpbWUoeyByZWdpc3RyeSwgc2VjcmV0cyB9LCBwbHVnaW5NYXApO1xuICpcbiAqIC8vIFR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IGluZmVycmVkIC0gbm8gbWFudWFsIGJpbmRpbmdzIG5lZWRlZCFcbiAqIGNvbnN0IHBsdWdpbiA9IGF3YWl0IHJ1bnRpbWUudXNlUGx1Z2luKFwibXktcGx1Z2luXCIsIGNvbmZpZyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsUGx1Z2luUnVudGltZTxUTWFwIGV4dGVuZHMgUGx1Z2luTWFwICYgVmFsaWRhdGVQbHVnaW5NYXA8VE1hcD4+KFxuXHRjb25maWc6IFBsdWdpblJ1bnRpbWVDb25maWcsXG5cdHBsdWdpbk1hcDogVE1hcFxuKTogUGx1Z2luUnVudGltZTxJbmZlckJpbmRpbmdzRnJvbU1hcDxUTWFwPj4ge1xuXHRjb25zdCBsYXllciA9IGNyZWF0ZVRlc3RMYXllcihjb25maWcsIHBsdWdpbk1hcCk7XG5cdGNvbnN0IHJ1bnRpbWUgPSBNYW5hZ2VkUnVudGltZS5tYWtlKGxheWVyKTtcblxuXHRyZXR1cm4gbmV3IFBsdWdpblJ1bnRpbWU8SW5mZXJCaW5kaW5nc0Zyb21NYXA8VE1hcD4+KHJ1bnRpbWUsIGNvbmZpZy5yZWdpc3RyeSk7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBjcmVhdGVMb2NhbFBsdWdpblJ1bnRpbWVgIGluc3RlYWQuIFRoaXMgYWxpYXMgaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVRlc3RQbHVnaW5SdW50aW1lID0gY3JlYXRlTG9jYWxQbHVnaW5SdW50aW1lO1xuXG4vLyBSZS1leHBvcnQgdXNlZnVsIHR5cGVzIGZvciB0ZXN0c1xuZXhwb3J0IHR5cGUgeyBFdmVyeVBsdWdpbiwgUGx1Z2luUmVnaXN0cnksIFJlZ2lzdGVyZWRQbHVnaW5zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5leHBvcnQgdHlwZSB7IFBsdWdpbk1hcCwgUGx1Z2luUnVudGltZUNvbmZpZyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFPQSxNQUFhLDBDQUEwQyxjQUNyRCxNQUFNLFFBQ0oseUJBQ0E7Q0FDRSxpQkFBaUIsVUFBa0IsUUFDakMsT0FBTyxJQUFJLGFBQWE7QUFDdEIsVUFBUSxJQUFJLG9DQUFvQyxXQUFXO0FBQzNELE1BQUksRUFBRSxZQUFZLFdBQ2hCLFFBQU8sT0FBTyxPQUFPLEtBQ25CLElBQUksc0JBQXNCO0dBQ3hCO0dBQ0EsV0FBVztHQUNYLHVCQUFPLElBQUksTUFBTSxnQkFBZ0IsU0FBUyxtQ0FBbUM7R0FDOUUsQ0FBQyxDQUNIO0FBRUgsVUFBUSxJQUFJLHVDQUF1QyxXQUFXO0dBQzlEO0NBRUosd0JBQXdCLFVBQWtCLFFBQ3hDLE9BQU8sSUFBSSxhQUFhO0FBQ3RCLFVBQVEsSUFBSSwyQ0FBMkMsV0FBVztFQUNsRSxNQUFNLG9CQUFvQixVQUFVO0FBQ3BDLE1BQUksQ0FBQyxrQkFDSCxRQUFPLE9BQU8sT0FBTyxLQUNuQixJQUFJLHNCQUFzQjtHQUN4QjtHQUNBLFdBQVc7R0FDWCx1QkFBTyxJQUFJLE1BQU0seUJBQXlCLFNBQVMsK0JBQStCO0dBQ25GLENBQUMsQ0FDSDtBQUVILFVBQVEsSUFBSSw4Q0FBOEMsV0FBVztBQUNyRSxTQUFPO0dBQ1A7Q0FDTCxDQUNGOzs7Ozs7OztBQ0RILE1BQWEsbUJBQ1osUUFDQSxjQUNJO0NBQ0osTUFBTSxVQUFVLE9BQU8sV0FBVyxFQUFFO0NBRXBDLE1BQU0sZUFBZSxNQUFNLFNBQzFCLE1BQU0sUUFBUSxtQkFBbUIsT0FBTyxTQUFTLEVBQ2pELE1BQU0sUUFBUSxrQkFBa0IsUUFBUSxDQUN4QztDQUVELE1BQU0sNEJBQTRCLHVDQUF1QyxVQUFVO0NBRW5GLE1BQU0sZ0JBQWdCLE1BQU0sU0FDM0IsMkJBQ0EsZUFBZSxTQUNmLGdCQUFnQixTQUNoQix1QkFBdUIsUUFDdkIsQ0FBQyxLQUNELE1BQU0sUUFBUSxhQUFhLENBQzNCO0FBRUQsUUFBTyxjQUFjLFFBQVEsS0FDNUIsTUFBTSxRQUFRLG9CQUFvQixRQUFRLEVBQzFDLE1BQU0sUUFBUSxjQUFjLENBQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCRixTQUFnQix5QkFDZixRQUNBLFdBQzRDO0NBQzVDLE1BQU0sUUFBUSxnQkFBZ0IsUUFBUSxVQUFVO0FBR2hELFFBQU8sSUFBSSxjQUZLLGVBQWUsS0FBSyxNQUFNLEVBRW9CLE9BQU8sU0FBUzs7Ozs7QUFNL0UsTUFBYSwwQkFBMEIifQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as import_zod from "zod";
|
|
2
|
+
//#endregion
|
|
3
|
+
export { import_zod as t };
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLUE3UHRpNUlWLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy96b2QudHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { n as __reExport } from "./chunk-QQAxy9l9.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/zod.ts
|
|
4
|
+
var zod_exports = {};
|
|
5
|
+
import * as import_zod from "zod";
|
|
6
|
+
__reExport(zod_exports, import_zod);
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { zod_exports as t };
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLUJWbzUxa2dKLm1qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvem9kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCJ6b2RcIjtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as import_zod from "zod";
|
|
2
|
+
//#endregion
|
|
3
|
+
export { import_zod as t };
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLUQ0Q0Z3OGQ5LmQubXRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy96b2QudHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-zltIcp7o.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/zod.ts
|
|
4
|
+
var zod_exports = {};
|
|
5
|
+
require_chunk.__reExport(zod_exports, require("zod"));
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
Object.defineProperty(exports, 'zod_exports', {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () {
|
|
11
|
+
return zod_exports;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLURZZ2hXQ3oxLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvem9kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCJ6b2RcIjtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
package/dist/zod.cjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const require_zod = require('./zod-DYghWCz1.cjs');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var zod = require("zod");
|
|
5
|
+
Object.keys(zod).forEach(function (k) {
|
|
6
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () { return zod[k]; }
|
|
9
|
+
});
|
|
10
|
+
});
|
package/dist/zod.d.cts
ADDED
package/dist/zod.d.mts
ADDED