every-plugin 0.4.17 → 0.5.0

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 (37) hide show
  1. package/dist/build/rspack/index.cjs +1 -1
  2. package/dist/build/rspack/index.mjs +1 -1
  3. package/dist/{index-Coz54d1B.d.mts → index-Bu2wtZrA.d.mts} +111 -35
  4. package/dist/index-Bu2wtZrA.d.mts.map +1 -0
  5. package/dist/{index-G63gBZIY.d.cts → index-DtTqwV4f.d.cts} +111 -35
  6. package/dist/index-DtTqwV4f.d.cts.map +1 -0
  7. package/dist/index.cjs +2 -2
  8. package/dist/index.d.cts +1 -1
  9. package/dist/index.d.mts +1 -1
  10. package/dist/index.mjs +2 -2
  11. package/dist/{package-B0vvsKXO.mjs → package-CaRYwbRi.mjs} +2 -2
  12. package/dist/package-CaRYwbRi.mjs.map +1 -0
  13. package/dist/{package-D4mbTFY1.cjs → package-DyTuSutr.cjs} +2 -2
  14. package/dist/package-DyTuSutr.cjs.map +1 -0
  15. package/dist/runtime/index.cjs +2 -2
  16. package/dist/runtime/index.d.cts +1 -1
  17. package/dist/runtime/index.d.mts +1 -1
  18. package/dist/runtime/index.mjs +2 -2
  19. package/dist/{runtime-BTFJzoBu.cjs → runtime-BNcFgWDG.cjs} +91 -74
  20. package/dist/runtime-BNcFgWDG.cjs.map +1 -0
  21. package/dist/{runtime-BYDchBFq.mjs → runtime-CAWcnrAk.mjs} +92 -21
  22. package/dist/runtime-CAWcnrAk.mjs.map +1 -0
  23. package/dist/testing/index.cjs +34 -54
  24. package/dist/testing/index.cjs.map +1 -1
  25. package/dist/testing/index.d.cts +25 -30
  26. package/dist/testing/index.d.cts.map +1 -1
  27. package/dist/testing/index.d.mts +25 -30
  28. package/dist/testing/index.d.mts.map +1 -1
  29. package/dist/testing/index.mjs +35 -53
  30. package/dist/testing/index.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/index-Coz54d1B.d.mts.map +0 -1
  33. package/dist/index-G63gBZIY.d.cts.map +0 -1
  34. package/dist/package-B0vvsKXO.mjs.map +0 -1
  35. package/dist/package-D4mbTFY1.cjs.map +0 -1
  36. package/dist/runtime-BTFJzoBu.cjs.map +0 -1
  37. package/dist/runtime-BYDchBFq.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require('../../chunk-zltIcp7o.cjs');
2
2
  const require_normalize = require('../../normalize-D4Qh0wVk.cjs');
3
- const require_package$1 = require('../../package-D4mbTFY1.cjs');
3
+ const require_package$1 = require('../../package-DyTuSutr.cjs');
4
4
  let __module_federation_enhanced_rspack = require("@module-federation/enhanced/rspack");
5
5
  let node_path = require("node:path");
6
6
  node_path = require_chunk.__toESM(node_path);
@@ -1,6 +1,6 @@
1
1
  import { r as __require } from "../../chunk-QQAxy9l9.mjs";
2
2
  import { t as getNormalizedRemoteName } from "../../normalize-D7nae0Hn.mjs";
3
- import { t as require_package } from "../../package-B0vvsKXO.mjs";
3
+ import { t as require_package } from "../../package-CaRYwbRi.mjs";
4
4
  import { ModuleFederationPlugin } from "@module-federation/enhanced/rspack";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
@@ -64,6 +64,7 @@ declare function createPlugin<V$1 extends AnySchema, S$1 extends AnySchema, TCon
64
64
  //#region src/types.d.ts
65
65
  /**
66
66
  * Registry bindings interface - populated via module augmentation
67
+ * Only needed for remote-only plugin entries.
67
68
  * @example
68
69
  * ```typescript
69
70
  * declare module "every-plugin" {
@@ -78,6 +79,37 @@ interface RegisteredPlugins {}
78
79
  * Base type for any plugin instance.
79
80
  */
80
81
  type AnyPlugin = Plugin<AnyContractRouter, AnySchema, AnySchema, any>;
82
+ /**
83
+ * Loaded plugin constructor with binding information
84
+ */
85
+ type AnyPluginConstructor = {
86
+ new (): AnyPlugin;
87
+ binding: {
88
+ contract: AnyContractRouter;
89
+ variables: AnySchema;
90
+ secrets: AnySchema;
91
+ context: Context$1;
92
+ };
93
+ };
94
+ /**
95
+ * Registry entry that supports both direct module imports and remote URLs
96
+ */
97
+ type PluginRegistryEntry = {
98
+ module: AnyPluginConstructor;
99
+ remote?: string;
100
+ version?: string;
101
+ description?: string;
102
+ } | {
103
+ remote: string;
104
+ version?: string;
105
+ description?: string;
106
+ };
107
+ /**
108
+ * Infer registry types from plugin entries with module constructors
109
+ */
110
+ type InferRegistryFromEntries<R$1 extends Record<string, PluginRegistryEntry>> = { [K in keyof R$1]: R$1[K] extends {
111
+ module: infer M;
112
+ } ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never };
81
113
  /**
82
114
  * Extract contract type from plugin binding
83
115
  */
@@ -124,7 +156,7 @@ type PluginClientType<T> = RouterClient<PluginRouterType<T>>;
124
156
  * @param K - The plugin key
125
157
  * @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
126
158
  */
127
- type RegisteredPlugin<K extends keyof R, R = RegisteredPlugins> = R[K] extends {
159
+ type RegisteredPlugin<K$1 extends keyof R$1, R$1 = RegisteredPlugins> = R$1[K$1] extends {
128
160
  binding: infer B;
129
161
  } ? B extends {
130
162
  contract: infer C extends AnyContractRouter;
@@ -144,9 +176,17 @@ type PluginConfigInput<T> = {
144
176
  */
145
177
  type ContextOf<T extends AnyPlugin> = T extends Plugin<AnyContractRouter, AnySchema, AnySchema, infer TContext> ? TContext : never;
146
178
  /**
147
- * Runtime registry configuration.
179
+ * Plugin metadata for remote loading
148
180
  */
149
- type PluginRegistry = Record<string, PluginMetadata>;
181
+ type PluginMetadata = {
182
+ readonly remoteUrl: string;
183
+ readonly version?: string;
184
+ readonly description?: string;
185
+ };
186
+ /**
187
+ * Runtime registry configuration supporting both module and remote entries
188
+ */
189
+ type PluginRegistry = Record<string, PluginRegistryEntry>;
150
190
  /**
151
191
  * Configuration for secrets injection.
152
192
  * Secrets are hydrated into plugin configs using template replacement.
@@ -154,14 +194,6 @@ type PluginRegistry = Record<string, PluginMetadata>;
154
194
  interface SecretsConfig {
155
195
  [key: string]: string;
156
196
  }
157
- /**
158
- * Plugin metadata
159
- */
160
- type PluginMetadata = {
161
- readonly remoteUrl: string;
162
- readonly version?: string;
163
- readonly description?: string;
164
- };
165
197
  /**
166
198
  * Loaded plugin
167
199
  */
@@ -192,25 +224,25 @@ interface InitializedPlugin<T extends AnyPlugin = AnyPlugin> {
192
224
  /**
193
225
  * Helper type to detect type errors when looking up RegisteredPlugins
194
226
  */
195
- type VerifyPluginBinding<K extends keyof R, R = RegisteredPlugins> = R[K] extends {
227
+ type VerifyPluginBinding<K$1 extends keyof R$1, R$1 = RegisteredPlugins> = R$1[K$1] extends {
196
228
  binding: infer B;
197
229
  } ? B extends {
198
230
  contract: AnyContractRouter;
199
231
  variables: AnySchema;
200
232
  secrets: AnySchema;
201
233
  context: Context$1;
202
- } ? true : `❌ Plugin "${K & string}" is not properly registered. Ensure it extends plugin binding layout { contract, variables, secrets, context }.` : `❌ Plugin "${K & string}" is not properly registered. Missing binding property.`;
234
+ } ? true : `❌ Plugin "${K$1 & string}" is not properly registered. Ensure it extends plugin binding layout { contract, variables, secrets, context }.` : `❌ Plugin "${K$1 & string}" is not properly registered. Missing binding property.`;
203
235
  /**
204
236
  * Result of runtime.usePlugin() call
205
237
  * @param K - The plugin key
206
238
  * @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
207
239
  */
208
- type UsePluginResult<K extends keyof R, R = RegisteredPlugins> = VerifyPluginBinding<K, R> extends true ? {
209
- readonly client: PluginClientType<R[K]>;
210
- readonly router: PluginRouterType<R[K]>;
240
+ type UsePluginResult<K$1 extends keyof R$1, R$1 = RegisteredPlugins> = VerifyPluginBinding<K$1, R$1> extends true ? {
241
+ readonly client: PluginClientType<R$1[K$1]>;
242
+ readonly router: PluginRouterType<R$1[K$1]>;
211
243
  readonly metadata: PluginMetadata;
212
- readonly initialized: InitializedPlugin<RegisteredPlugin<K, R>>;
213
- } : VerifyPluginBinding<K, R>;
244
+ readonly initialized: InitializedPlugin<RegisteredPlugin<K$1, R$1>>;
245
+ } : VerifyPluginBinding<K$1, R$1>;
214
246
  /**
215
247
  * Runtime options
216
248
  */
@@ -222,27 +254,43 @@ interface RuntimeOptions {
222
254
  debug?: boolean;
223
255
  metrics?: boolean;
224
256
  }
257
+ /**
258
+ * Extract registry type from runtime instance or use type directly
259
+ * This allows EveryPlugin.Infer to work with both:
260
+ * - typeof runtime (extracts registry from PluginRuntime<R> via __registryType)
261
+ * - Registry types directly
262
+ */
263
+ type RegistryOf<T> = T extends {
264
+ __registryType?: infer R;
265
+ } ? R : T;
225
266
  /**
226
267
  * Namespace containing type utilities for working with plugin results.
227
268
  */
228
269
  declare namespace EveryPlugin {
229
270
  /**
230
- * Extract plugin runtime instance type from registered plugins.
271
+ * Extract plugin runtime instance type from registered plugins or runtime.
231
272
  * Provides full type safety for plugin clients, routers, and metadata.
232
273
  *
233
274
  * @example
234
275
  * ```ts
276
+ * // From RegisteredPlugins (module augmentation)
235
277
  * type Plugin = EveryPlugin.Infer<"my-plugin">;
236
- * const plugin: Plugin = await runtime.usePlugin("my-plugin", config);
278
+ *
279
+ * // From runtime instance (when using module entries)
280
+ * const runtime = createPluginRuntime({ registry: { "my-plugin": { module: MyPlugin } } });
281
+ * type Plugin = EveryPlugin.Infer<"my-plugin", typeof runtime>;
282
+ *
283
+ * // From explicit registry type
284
+ * type Plugin = EveryPlugin.Infer<"my-plugin", MyRegistryType>;
237
285
  * ```
238
286
  */
239
- type Infer<K extends keyof R, R = RegisteredPlugins> = UsePluginResult<K, R>;
287
+ type Infer<K$1 extends string, Source = RegisteredPlugins> = K$1 extends keyof RegistryOf<Source> ? UsePluginResult<K$1, RegistryOf<Source>> : never;
240
288
  }
241
289
  /**
242
- * Plugin runtime configuration
290
+ * Plugin runtime configuration with support for both module and remote entries
243
291
  */
244
- interface PluginRuntimeConfig<R extends RegisteredPlugins = RegisteredPlugins> {
245
- registry: PluginRegistry;
292
+ interface PluginRuntimeConfig<R$1 extends Record<string, PluginRegistryEntry> = Record<string, PluginRegistryEntry>> {
293
+ registry: R$1;
246
294
  secrets?: SecretsConfig;
247
295
  options?: RuntimeOptions;
248
296
  }
@@ -300,10 +348,19 @@ declare class SecretsService extends SecretsService_base {}
300
348
  //#region src/runtime/services/plugin-loader.service.d.ts
301
349
  declare const PluginRegistryTag_base: Context.TagClass<PluginRegistryTag, "PluginRegistry", PluginRegistry>;
302
350
  declare class PluginRegistryTag extends PluginRegistryTag_base {}
351
+ declare const PluginMapTag_base: Context.TagClass<PluginMapTag, "PluginMap", Record<string, AnyPluginConstructor>>;
352
+ declare class PluginMapTag extends PluginMapTag_base {}
303
353
  declare const RegistryService_base: Effect.Service.Class<RegistryService, "RegistryService", {
304
354
  readonly effect: Effect.Effect<{
305
- get: (pluginId: string) => Effect.Effect<PluginMetadata, PluginRuntimeError, never>;
306
- }, never, PluginRegistryTag>;
355
+ get: (pluginId: string) => Effect.Effect<{
356
+ constructor: AnyPluginConstructor;
357
+ metadata: PluginMetadata;
358
+ } | {
359
+ constructor: null;
360
+ metadata: PluginMetadata;
361
+ }, PluginRuntimeError, never>;
362
+ getModule: (pluginId: string) => Effect.Effect<AnyPluginConstructor | null, never, never>;
363
+ }, never, PluginRegistryTag | PluginMapTag>;
307
364
  }>;
308
365
  declare class RegistryService extends RegistryService_base {}
309
366
  declare const PluginLoaderService_base: Effect.Service.Class<PluginLoaderService, "PluginLoaderService", {
@@ -362,26 +419,45 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
362
419
  }, never, PluginLoaderService | PluginLifecycleService>;
363
420
  }>;
364
421
  declare class PluginService extends PluginService_base {
365
- static Live: (registry: PluginRegistry, secrets: SecretsConfig) => Layer.Layer<PluginService, never, never>;
422
+ static Live: (registry: PluginRegistry, secrets: SecretsConfig, pluginMap?: Record<string, AnyPluginConstructor>) => Layer.Layer<PluginService, never, never>;
366
423
  }
367
424
  //#endregion
368
425
  //#region src/runtime/index.d.ts
369
- declare class PluginRuntime<R extends RegisteredPlugins = RegisteredPlugins> {
426
+ declare class PluginRuntime<R$1 = RegisteredPlugins> {
370
427
  private runtime;
371
428
  private registry;
429
+ readonly ['__registryType']?: R$1;
372
430
  private pluginCache;
373
431
  constructor(runtime: ManagedRuntime.ManagedRuntime<PluginService, never>, registry: PluginRegistry);
374
432
  private generateCacheKey;
375
433
  private validatePluginId;
376
434
  private runPromise;
377
- usePlugin<K extends keyof R & string>(pluginId: K, config: PluginConfigInput<R[K]>): Promise<UsePluginResult<K, R>>;
378
- loadPlugin<K extends keyof R & string>(pluginId: K): Promise<LoadedPlugin<RegisteredPlugin<K, R>>>;
379
- instantiatePlugin<K extends keyof R & string>(pluginId: K, loadedPlugin: LoadedPlugin<RegisteredPlugin<K, R>>): Promise<PluginInstance<RegisteredPlugin<K, R>>>;
435
+ usePlugin<K$1 extends keyof R$1 & string>(pluginId: K$1, config: PluginConfigInput<R$1[K$1]>): Promise<UsePluginResult<K$1, R$1>>;
436
+ loadPlugin<K$1 extends keyof R$1 & string>(pluginId: K$1): Promise<LoadedPlugin<RegisteredPlugin<K$1, R$1>>>;
437
+ instantiatePlugin<K$1 extends keyof R$1 & string>(pluginId: K$1, loadedPlugin: LoadedPlugin<RegisteredPlugin<K$1, R$1>>): Promise<PluginInstance<RegisteredPlugin<K$1, R$1>>>;
380
438
  initializePlugin<T extends AnyPlugin>(instance: PluginInstance<T>, config: any): Promise<InitializedPlugin<T>>;
381
439
  shutdown(): Promise<void>;
382
- evictPlugin<K extends keyof R & string>(pluginId: K, config: PluginConfigInput<R[K]>): Promise<void>;
440
+ evictPlugin<K$1 extends keyof R$1 & string>(pluginId: K$1, config: PluginConfigInput<R$1[K$1]>): Promise<void>;
383
441
  }
384
- declare function createPluginRuntime<R extends RegisteredPlugins = RegisteredPlugins>(config: PluginRuntimeConfig<R>): PluginRuntime<R>;
442
+ /**
443
+ * Creates a plugin runtime with support for both module and remote plugin entries.
444
+ *
445
+ * @example
446
+ * ```typescript
447
+ * // With module entries (types inferred automatically)
448
+ * const runtime = createPluginRuntime({
449
+ * registry: {
450
+ * telegram: { module: TelegramPlugin },
451
+ * gopher: { remote: "https://cdn.example.com/gopher/remoteEntry.js" }
452
+ * },
453
+ * secrets: { API_KEY: "..." }
454
+ * });
455
+ *
456
+ * // Types are automatically inferred from module entries!
457
+ * const { client } = await runtime.usePlugin("telegram", config);
458
+ * ```
459
+ */
460
+ declare function createPluginRuntime<TRegistry extends Record<string, PluginRegistryEntry>>(config: PluginRuntimeConfig<TRegistry>): PluginRuntime<InferRegistryFromEntries<TRegistry>>;
385
461
  //#endregion
386
- export { PluginConfigFor as C, Plugin as S, PluginSecrets as _, EveryPlugin as a, SecretsConfig as b, PluginClientType as c, PluginContract as d, PluginInstance as f, PluginRuntimeConfig as g, PluginRouterType as h, AnyPlugin as i, PluginConfigInput as l, PluginRegistry as m, createPluginRuntime as n, InitializedPlugin as o, PluginMetadata as p, PluginService as r, LoadedPlugin as s, PluginRuntime as t, PluginContext as u, PluginVariables as v, createPlugin as w, LoadedPluginWithBinding as x, RegisteredPlugins as y };
387
- //# sourceMappingURL=index-Coz54d1B.d.mts.map
462
+ export { Plugin as C, LoadedPluginWithBinding as S, createPlugin as T, PluginRuntimeConfig as _, InferRegistryFromEntries as a, RegisteredPlugins as b, PluginClientType as c, PluginContract as d, PluginInstance as f, PluginRouterType as g, PluginRegistryEntry as h, EveryPlugin as i, PluginConfigInput as l, PluginRegistry as m, createPluginRuntime as n, InitializedPlugin as o, PluginMetadata as p, AnyPlugin as r, LoadedPlugin as s, PluginRuntime as t, PluginContext as u, PluginSecrets as v, PluginConfigFor as w, SecretsConfig as x, PluginVariables as y };
463
+ //# sourceMappingURL=index-Bu2wtZrA.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Bu2wtZrA.d.mts","names":[],"sources":["../src/plugin.ts","../src/types.ts","../src/runtime/errors.ts","../src/runtime/services/plugin-lifecycle.service.ts","../src/runtime/services/module-federation.service.ts","../src/runtime/services/secrets.service.ts","../src/runtime/services/plugin-loader.service.ts","../src/runtime/services/plugin.service.ts","../src/runtime/index.ts"],"sourcesContent":[],"mappings":"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"}
@@ -63,6 +63,7 @@ declare function createPlugin<V$1 extends AnySchema, S$1 extends AnySchema, TCon
63
63
  //#region src/types.d.ts
64
64
  /**
65
65
  * Registry bindings interface - populated via module augmentation
66
+ * Only needed for remote-only plugin entries.
66
67
  * @example
67
68
  * ```typescript
68
69
  * declare module "every-plugin" {
@@ -77,6 +78,37 @@ interface RegisteredPlugins {}
77
78
  * Base type for any plugin instance.
78
79
  */
79
80
  type AnyPlugin = Plugin<AnyContractRouter, AnySchema, AnySchema, any>;
81
+ /**
82
+ * Loaded plugin constructor with binding information
83
+ */
84
+ type AnyPluginConstructor = {
85
+ new (): AnyPlugin;
86
+ binding: {
87
+ contract: AnyContractRouter;
88
+ variables: AnySchema;
89
+ secrets: AnySchema;
90
+ context: Context$1;
91
+ };
92
+ };
93
+ /**
94
+ * Registry entry that supports both direct module imports and remote URLs
95
+ */
96
+ type PluginRegistryEntry = {
97
+ module: AnyPluginConstructor;
98
+ remote?: string;
99
+ version?: string;
100
+ description?: string;
101
+ } | {
102
+ remote: string;
103
+ version?: string;
104
+ description?: string;
105
+ };
106
+ /**
107
+ * Infer registry types from plugin entries with module constructors
108
+ */
109
+ type InferRegistryFromEntries<R$1 extends Record<string, PluginRegistryEntry>> = { [K in keyof R$1]: R$1[K] extends {
110
+ module: infer M;
111
+ } ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never };
80
112
  /**
81
113
  * Extract contract type from plugin binding
82
114
  */
@@ -123,7 +155,7 @@ type PluginClientType<T> = RouterClient<PluginRouterType<T>>;
123
155
  * @param K - The plugin key
124
156
  * @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
125
157
  */
126
- type RegisteredPlugin<K extends keyof R, R = RegisteredPlugins> = R[K] extends {
158
+ type RegisteredPlugin<K$1 extends keyof R$1, R$1 = RegisteredPlugins> = R$1[K$1] extends {
127
159
  binding: infer B;
128
160
  } ? B extends {
129
161
  contract: infer C extends AnyContractRouter;
@@ -143,9 +175,17 @@ type PluginConfigInput<T> = {
143
175
  */
144
176
  type ContextOf<T extends AnyPlugin> = T extends Plugin<AnyContractRouter, AnySchema, AnySchema, infer TContext> ? TContext : never;
145
177
  /**
146
- * Runtime registry configuration.
178
+ * Plugin metadata for remote loading
147
179
  */
148
- type PluginRegistry = Record<string, PluginMetadata>;
180
+ type PluginMetadata = {
181
+ readonly remoteUrl: string;
182
+ readonly version?: string;
183
+ readonly description?: string;
184
+ };
185
+ /**
186
+ * Runtime registry configuration supporting both module and remote entries
187
+ */
188
+ type PluginRegistry = Record<string, PluginRegistryEntry>;
149
189
  /**
150
190
  * Configuration for secrets injection.
151
191
  * Secrets are hydrated into plugin configs using template replacement.
@@ -153,14 +193,6 @@ type PluginRegistry = Record<string, PluginMetadata>;
153
193
  interface SecretsConfig {
154
194
  [key: string]: string;
155
195
  }
156
- /**
157
- * Plugin metadata
158
- */
159
- type PluginMetadata = {
160
- readonly remoteUrl: string;
161
- readonly version?: string;
162
- readonly description?: string;
163
- };
164
196
  /**
165
197
  * Loaded plugin
166
198
  */
@@ -191,25 +223,25 @@ interface InitializedPlugin<T extends AnyPlugin = AnyPlugin> {
191
223
  /**
192
224
  * Helper type to detect type errors when looking up RegisteredPlugins
193
225
  */
194
- type VerifyPluginBinding<K extends keyof R, R = RegisteredPlugins> = R[K] extends {
226
+ type VerifyPluginBinding<K$1 extends keyof R$1, R$1 = RegisteredPlugins> = R$1[K$1] extends {
195
227
  binding: infer B;
196
228
  } ? B extends {
197
229
  contract: AnyContractRouter;
198
230
  variables: AnySchema;
199
231
  secrets: AnySchema;
200
232
  context: Context$1;
201
- } ? true : `❌ Plugin "${K & string}" is not properly registered. Ensure it extends plugin binding layout { contract, variables, secrets, context }.` : `❌ Plugin "${K & string}" is not properly registered. Missing binding property.`;
233
+ } ? true : `❌ Plugin "${K$1 & string}" is not properly registered. Ensure it extends plugin binding layout { contract, variables, secrets, context }.` : `❌ Plugin "${K$1 & string}" is not properly registered. Missing binding property.`;
202
234
  /**
203
235
  * Result of runtime.usePlugin() call
204
236
  * @param K - The plugin key
205
237
  * @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
206
238
  */
207
- type UsePluginResult<K extends keyof R, R = RegisteredPlugins> = VerifyPluginBinding<K, R> extends true ? {
208
- readonly client: PluginClientType<R[K]>;
209
- readonly router: PluginRouterType<R[K]>;
239
+ type UsePluginResult<K$1 extends keyof R$1, R$1 = RegisteredPlugins> = VerifyPluginBinding<K$1, R$1> extends true ? {
240
+ readonly client: PluginClientType<R$1[K$1]>;
241
+ readonly router: PluginRouterType<R$1[K$1]>;
210
242
  readonly metadata: PluginMetadata;
211
- readonly initialized: InitializedPlugin<RegisteredPlugin<K, R>>;
212
- } : VerifyPluginBinding<K, R>;
243
+ readonly initialized: InitializedPlugin<RegisteredPlugin<K$1, R$1>>;
244
+ } : VerifyPluginBinding<K$1, R$1>;
213
245
  /**
214
246
  * Runtime options
215
247
  */
@@ -221,27 +253,43 @@ interface RuntimeOptions {
221
253
  debug?: boolean;
222
254
  metrics?: boolean;
223
255
  }
256
+ /**
257
+ * Extract registry type from runtime instance or use type directly
258
+ * This allows EveryPlugin.Infer to work with both:
259
+ * - typeof runtime (extracts registry from PluginRuntime<R> via __registryType)
260
+ * - Registry types directly
261
+ */
262
+ type RegistryOf<T> = T extends {
263
+ __registryType?: infer R;
264
+ } ? R : T;
224
265
  /**
225
266
  * Namespace containing type utilities for working with plugin results.
226
267
  */
227
268
  declare namespace EveryPlugin {
228
269
  /**
229
- * Extract plugin runtime instance type from registered plugins.
270
+ * Extract plugin runtime instance type from registered plugins or runtime.
230
271
  * Provides full type safety for plugin clients, routers, and metadata.
231
272
  *
232
273
  * @example
233
274
  * ```ts
275
+ * // From RegisteredPlugins (module augmentation)
234
276
  * type Plugin = EveryPlugin.Infer<"my-plugin">;
235
- * const plugin: Plugin = await runtime.usePlugin("my-plugin", config);
277
+ *
278
+ * // From runtime instance (when using module entries)
279
+ * const runtime = createPluginRuntime({ registry: { "my-plugin": { module: MyPlugin } } });
280
+ * type Plugin = EveryPlugin.Infer<"my-plugin", typeof runtime>;
281
+ *
282
+ * // From explicit registry type
283
+ * type Plugin = EveryPlugin.Infer<"my-plugin", MyRegistryType>;
236
284
  * ```
237
285
  */
238
- type Infer<K extends keyof R, R = RegisteredPlugins> = UsePluginResult<K, R>;
286
+ type Infer<K$1 extends string, Source = RegisteredPlugins> = K$1 extends keyof RegistryOf<Source> ? UsePluginResult<K$1, RegistryOf<Source>> : never;
239
287
  }
240
288
  /**
241
- * Plugin runtime configuration
289
+ * Plugin runtime configuration with support for both module and remote entries
242
290
  */
243
- interface PluginRuntimeConfig<R extends RegisteredPlugins = RegisteredPlugins> {
244
- registry: PluginRegistry;
291
+ interface PluginRuntimeConfig<R$1 extends Record<string, PluginRegistryEntry> = Record<string, PluginRegistryEntry>> {
292
+ registry: R$1;
245
293
  secrets?: SecretsConfig;
246
294
  options?: RuntimeOptions;
247
295
  }
@@ -299,10 +347,19 @@ declare class SecretsService extends SecretsService_base {}
299
347
  //#region src/runtime/services/plugin-loader.service.d.ts
300
348
  declare const PluginRegistryTag_base: Context.TagClass<PluginRegistryTag, "PluginRegistry", PluginRegistry>;
301
349
  declare class PluginRegistryTag extends PluginRegistryTag_base {}
350
+ declare const PluginMapTag_base: Context.TagClass<PluginMapTag, "PluginMap", Record<string, AnyPluginConstructor>>;
351
+ declare class PluginMapTag extends PluginMapTag_base {}
302
352
  declare const RegistryService_base: Effect.Service.Class<RegistryService, "RegistryService", {
303
353
  readonly effect: Effect.Effect<{
304
- get: (pluginId: string) => Effect.Effect<PluginMetadata, PluginRuntimeError, never>;
305
- }, never, PluginRegistryTag>;
354
+ get: (pluginId: string) => Effect.Effect<{
355
+ constructor: AnyPluginConstructor;
356
+ metadata: PluginMetadata;
357
+ } | {
358
+ constructor: null;
359
+ metadata: PluginMetadata;
360
+ }, PluginRuntimeError, never>;
361
+ getModule: (pluginId: string) => Effect.Effect<AnyPluginConstructor | null, never, never>;
362
+ }, never, PluginRegistryTag | PluginMapTag>;
306
363
  }>;
307
364
  declare class RegistryService extends RegistryService_base {}
308
365
  declare const PluginLoaderService_base: Effect.Service.Class<PluginLoaderService, "PluginLoaderService", {
@@ -361,26 +418,45 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
361
418
  }, never, PluginLoaderService | PluginLifecycleService>;
362
419
  }>;
363
420
  declare class PluginService extends PluginService_base {
364
- static Live: (registry: PluginRegistry, secrets: SecretsConfig) => Layer.Layer<PluginService, never, never>;
421
+ static Live: (registry: PluginRegistry, secrets: SecretsConfig, pluginMap?: Record<string, AnyPluginConstructor>) => Layer.Layer<PluginService, never, never>;
365
422
  }
366
423
  //#endregion
367
424
  //#region src/runtime/index.d.ts
368
- declare class PluginRuntime<R extends RegisteredPlugins = RegisteredPlugins> {
425
+ declare class PluginRuntime<R$1 = RegisteredPlugins> {
369
426
  private runtime;
370
427
  private registry;
428
+ readonly ['__registryType']?: R$1;
371
429
  private pluginCache;
372
430
  constructor(runtime: ManagedRuntime.ManagedRuntime<PluginService, never>, registry: PluginRegistry);
373
431
  private generateCacheKey;
374
432
  private validatePluginId;
375
433
  private runPromise;
376
- usePlugin<K extends keyof R & string>(pluginId: K, config: PluginConfigInput<R[K]>): Promise<UsePluginResult<K, R>>;
377
- loadPlugin<K extends keyof R & string>(pluginId: K): Promise<LoadedPlugin<RegisteredPlugin<K, R>>>;
378
- instantiatePlugin<K extends keyof R & string>(pluginId: K, loadedPlugin: LoadedPlugin<RegisteredPlugin<K, R>>): Promise<PluginInstance<RegisteredPlugin<K, R>>>;
434
+ usePlugin<K$1 extends keyof R$1 & string>(pluginId: K$1, config: PluginConfigInput<R$1[K$1]>): Promise<UsePluginResult<K$1, R$1>>;
435
+ loadPlugin<K$1 extends keyof R$1 & string>(pluginId: K$1): Promise<LoadedPlugin<RegisteredPlugin<K$1, R$1>>>;
436
+ instantiatePlugin<K$1 extends keyof R$1 & string>(pluginId: K$1, loadedPlugin: LoadedPlugin<RegisteredPlugin<K$1, R$1>>): Promise<PluginInstance<RegisteredPlugin<K$1, R$1>>>;
379
437
  initializePlugin<T extends AnyPlugin>(instance: PluginInstance<T>, config: any): Promise<InitializedPlugin<T>>;
380
438
  shutdown(): Promise<void>;
381
- evictPlugin<K extends keyof R & string>(pluginId: K, config: PluginConfigInput<R[K]>): Promise<void>;
439
+ evictPlugin<K$1 extends keyof R$1 & string>(pluginId: K$1, config: PluginConfigInput<R$1[K$1]>): Promise<void>;
382
440
  }
383
- declare function createPluginRuntime<R extends RegisteredPlugins = RegisteredPlugins>(config: PluginRuntimeConfig<R>): PluginRuntime<R>;
441
+ /**
442
+ * Creates a plugin runtime with support for both module and remote plugin entries.
443
+ *
444
+ * @example
445
+ * ```typescript
446
+ * // With module entries (types inferred automatically)
447
+ * const runtime = createPluginRuntime({
448
+ * registry: {
449
+ * telegram: { module: TelegramPlugin },
450
+ * gopher: { remote: "https://cdn.example.com/gopher/remoteEntry.js" }
451
+ * },
452
+ * secrets: { API_KEY: "..." }
453
+ * });
454
+ *
455
+ * // Types are automatically inferred from module entries!
456
+ * const { client } = await runtime.usePlugin("telegram", config);
457
+ * ```
458
+ */
459
+ declare function createPluginRuntime<TRegistry extends Record<string, PluginRegistryEntry>>(config: PluginRuntimeConfig<TRegistry>): PluginRuntime<InferRegistryFromEntries<TRegistry>>;
384
460
  //#endregion
385
- export { PluginConfigFor as C, Plugin as S, PluginSecrets as _, EveryPlugin as a, SecretsConfig as b, PluginClientType as c, PluginContract as d, PluginInstance as f, PluginRuntimeConfig as g, PluginRouterType as h, AnyPlugin as i, PluginConfigInput as l, PluginRegistry as m, createPluginRuntime as n, InitializedPlugin as o, PluginMetadata as p, PluginService as r, LoadedPlugin as s, PluginRuntime as t, PluginContext as u, PluginVariables as v, createPlugin as w, LoadedPluginWithBinding as x, RegisteredPlugins as y };
386
- //# sourceMappingURL=index-G63gBZIY.d.cts.map
461
+ export { Plugin as C, LoadedPluginWithBinding as S, createPlugin as T, PluginRuntimeConfig as _, InferRegistryFromEntries as a, RegisteredPlugins as b, PluginClientType as c, PluginContract as d, PluginInstance as f, PluginRouterType as g, PluginRegistryEntry as h, EveryPlugin as i, PluginConfigInput as l, PluginRegistry as m, createPluginRuntime as n, InitializedPlugin as o, PluginMetadata as p, AnyPlugin as r, LoadedPlugin as s, PluginRuntime as t, PluginContext as u, PluginSecrets as v, PluginConfigFor as w, SecretsConfig as x, PluginVariables as y };
462
+ //# sourceMappingURL=index-DtTqwV4f.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DtTqwV4f.d.cts","names":[],"sources":["../src/plugin.ts","../src/types.ts","../src/runtime/errors.ts","../src/runtime/services/plugin-lifecycle.service.ts","../src/runtime/services/module-federation.service.ts","../src/runtime/services/secrets.service.ts","../src/runtime/services/plugin-loader.service.ts","../src/runtime/services/plugin.service.ts","../src/runtime/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  const require_chunk = require('./chunk-zltIcp7o.cjs');
2
2
  require('./zod-DYghWCz1.cjs');
3
3
  const require_errors = require('./errors-CVnoPl9v.cjs');
4
- const require_runtime = require('./runtime-BTFJzoBu.cjs');
4
+ const require_runtime = require('./runtime-BNcFgWDG.cjs');
5
5
  const require_normalize = require('./normalize-D4Qh0wVk.cjs');
6
- require('./package-D4mbTFY1.cjs');
6
+ require('./package-DyTuSutr.cjs');
7
7
  let effect = require("effect");
8
8
  let __orpc_server = require("@orpc/server");
9
9
 
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./zod-A7Pti5IV.cjs";
2
2
  import { t as CommonPluginErrors } from "./errors-DKPPPYYT.cjs";
3
- import { C as PluginConfigFor, S as Plugin, _ as PluginSecrets, a as EveryPlugin, b as SecretsConfig, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRuntimeConfig, h as PluginRouterType, i as AnyPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginVariables, w as createPlugin, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "./index-G63gBZIY.cjs";
3
+ import { C as Plugin, S as LoadedPluginWithBinding, T as createPlugin, _ as PluginRuntimeConfig, b as RegisteredPlugins, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRouterType, i as EveryPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, r as AnyPlugin, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginSecrets, w as PluginConfigFor, x as SecretsConfig, y as PluginVariables } from "./index-DtTqwV4f.cjs";
4
4
  import { t as getNormalizedRemoteName } from "./normalize-BW7kk8Lk.cjs";
5
5
  export { AnyPlugin, CommonPluginErrors, EveryPlugin, InitializedPlugin, LoadedPlugin, LoadedPluginWithBinding, Plugin, PluginClientType, PluginConfigFor, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntime, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./zod-Zw8dlP3j.mjs";
2
2
  import { t as CommonPluginErrors } from "./errors-9sNpYLv5.mjs";
3
- import { C as PluginConfigFor, S as Plugin, _ as PluginSecrets, a as EveryPlugin, b as SecretsConfig, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRuntimeConfig, h as PluginRouterType, i as AnyPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginVariables, w as createPlugin, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "./index-Coz54d1B.mjs";
3
+ import { C as Plugin, S as LoadedPluginWithBinding, T as createPlugin, _ as PluginRuntimeConfig, b as RegisteredPlugins, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRouterType, i as EveryPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, r as AnyPlugin, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginSecrets, w as PluginConfigFor, x as SecretsConfig, y as PluginVariables } from "./index-Bu2wtZrA.mjs";
4
4
  import { t as getNormalizedRemoteName } from "./normalize-eB_j86fm.mjs";
5
5
  export { AnyPlugin, CommonPluginErrors, EveryPlugin, InitializedPlugin, LoadedPlugin, LoadedPluginWithBinding, Plugin, PluginClientType, PluginConfigFor, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntime, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import "./zod-BVo51kgJ.mjs";
2
2
  import { t as CommonPluginErrors } from "./errors-D7keKf7a.mjs";
3
- import { n as createPluginRuntime, t as PluginRuntime } from "./runtime-BYDchBFq.mjs";
3
+ import { n as createPluginRuntime, t as PluginRuntime } from "./runtime-CAWcnrAk.mjs";
4
4
  import { t as getNormalizedRemoteName } from "./normalize-D7nae0Hn.mjs";
5
- import "./package-B0vvsKXO.mjs";
5
+ import "./package-CaRYwbRi.mjs";
6
6
  import { Effect } from "effect";
7
7
  import { implement } from "@orpc/server";
8
8
 
@@ -4,7 +4,7 @@ import { t as __commonJS } from "./chunk-QQAxy9l9.mjs";
4
4
  var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, module) => {
5
5
  module.exports = {
6
6
  "name": "every-plugin",
7
- "version": "0.4.17",
7
+ "version": "0.5.0",
8
8
  "type": "module",
9
9
  "main": "./dist/index.cjs",
10
10
  "module": "./dist/index.mjs",
@@ -147,4 +147,4 @@ var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, mo
147
147
 
148
148
  //#endregion
149
149
  export { require_package as t };
150
- //# sourceMappingURL=package-B0vvsKXO.mjs.map
150
+ //# sourceMappingURL=package-CaRYwbRi.mjs.map