every-plugin 0.3.1 → 0.3.2

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/plugin.d.ts CHANGED
@@ -1,18 +1,18 @@
1
- import type { AnyContractRouter } from "@orpc/contract";
1
+ import type { AnyContractRouter, AnySchema, InferSchemaOutput } from "@orpc/contract";
2
2
  import type { Context, Implementer, Router } from "@orpc/server";
3
3
  import { Effect, type Scope } from "effect";
4
4
  import { z } from "zod";
5
5
  /**
6
6
  * Helper type that correctly constructs the config schema type
7
7
  */
8
- export type PluginConfigFor<V extends z.ZodTypeAny, S extends z.ZodTypeAny> = z.ZodObject<{
8
+ export type PluginConfigFor<V extends AnySchema, S extends AnySchema> = {
9
9
  variables: V;
10
10
  secrets: S;
11
- }>;
11
+ };
12
12
  /**
13
13
  * Loaded plugin with static binding property
14
14
  */
15
- export interface LoadedPluginWithBinding<TContract extends AnyContractRouter, TVariables extends z.ZodTypeAny, TSecrets extends z.ZodTypeAny, TContext extends Context = Record<never, never>> {
15
+ export interface LoadedPluginWithBinding<TContract extends AnyContractRouter, TVariables extends AnySchema, TSecrets extends AnySchema, TContext extends Context = Record<never, never>> {
16
16
  new (): Plugin<TContract, TVariables, TSecrets, TContext>;
17
17
  binding: {
18
18
  contract: TContract;
@@ -30,8 +30,8 @@ export type PluginBinding<T> = T extends {
30
30
  * These provide consistent error handling across the plugin ecosystem
31
31
  */
32
32
  export declare const CommonPluginErrors: {
33
- UNAUTHORIZED: {
34
- data: z.ZodObject<{
33
+ readonly UNAUTHORIZED: {
34
+ readonly data: z.ZodObject<{
35
35
  apiKeyProvided: z.ZodBoolean;
36
36
  provider: z.ZodOptional<z.ZodString>;
37
37
  authType: z.ZodOptional<z.ZodEnum<{
@@ -41,8 +41,8 @@ export declare const CommonPluginErrors: {
41
41
  }>>;
42
42
  }, z.core.$strip>;
43
43
  };
44
- RATE_LIMITED: {
45
- data: z.ZodObject<{
44
+ readonly RATE_LIMITED: {
45
+ readonly data: z.ZodObject<{
46
46
  retryAfter: z.ZodNumber;
47
47
  remainingRequests: z.ZodOptional<z.ZodNumber>;
48
48
  resetTime: z.ZodOptional<z.ZodString>;
@@ -53,15 +53,15 @@ export declare const CommonPluginErrors: {
53
53
  }>>;
54
54
  }, z.core.$strip>;
55
55
  };
56
- SERVICE_UNAVAILABLE: {
57
- data: z.ZodObject<{
56
+ readonly SERVICE_UNAVAILABLE: {
57
+ readonly data: z.ZodObject<{
58
58
  retryAfter: z.ZodOptional<z.ZodNumber>;
59
59
  maintenanceWindow: z.ZodDefault<z.ZodBoolean>;
60
60
  estimatedUptime: z.ZodOptional<z.ZodString>;
61
61
  }, z.core.$strip>;
62
62
  };
63
- BAD_REQUEST: {
64
- data: z.ZodObject<{
63
+ readonly BAD_REQUEST: {
64
+ readonly data: z.ZodObject<{
65
65
  invalidFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
66
  validationErrors: z.ZodOptional<z.ZodArray<z.ZodObject<{
67
67
  field: z.ZodString;
@@ -70,14 +70,14 @@ export declare const CommonPluginErrors: {
70
70
  }, z.core.$strip>>>;
71
71
  }, z.core.$strip>;
72
72
  };
73
- NOT_FOUND: {
74
- data: z.ZodObject<{
73
+ readonly NOT_FOUND: {
74
+ readonly data: z.ZodObject<{
75
75
  resource: z.ZodOptional<z.ZodString>;
76
76
  resourceId: z.ZodOptional<z.ZodString>;
77
77
  }, z.core.$strip>;
78
78
  };
79
- FORBIDDEN: {
80
- data: z.ZodObject<{
79
+ readonly FORBIDDEN: {
80
+ readonly data: z.ZodObject<{
81
81
  requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
82
82
  action: z.ZodOptional<z.ZodString>;
83
83
  }, z.core.$strip>;
@@ -86,13 +86,13 @@ export declare const CommonPluginErrors: {
86
86
  /**
87
87
  * Plugin interface
88
88
  */
89
- export interface Plugin<TContract extends AnyContractRouter, TVariables extends z.ZodTypeAny, TSecrets extends z.ZodTypeAny, TContext extends Context = Record<never, never>> {
89
+ export interface Plugin<TContract extends AnyContractRouter, TVariables extends AnySchema, TSecrets extends AnySchema, TContext extends Context = Record<never, never>> {
90
90
  readonly id: string;
91
91
  readonly contract: TContract;
92
92
  readonly configSchema: PluginConfigFor<TVariables, TSecrets>;
93
93
  initialize(config: {
94
- variables: z.infer<TVariables>;
95
- secrets: z.infer<TSecrets>;
94
+ variables: InferSchemaOutput<TVariables>;
95
+ secrets: InferSchemaOutput<TSecrets>;
96
96
  }): Effect.Effect<TContext, unknown, Scope.Scope>;
97
97
  shutdown(): Effect.Effect<void, never>;
98
98
  /**
@@ -106,14 +106,14 @@ export interface Plugin<TContract extends AnyContractRouter, TVariables extends
106
106
  /**
107
107
  * Factory function to create plugins
108
108
  */
109
- export declare function createPlugin<V extends z.ZodTypeAny, S extends z.ZodTypeAny, TContract extends AnyContractRouter, TContext extends Context = Record<never, never>>(config: {
109
+ export declare function createPlugin<V extends AnySchema, S extends AnySchema, TContract extends AnyContractRouter, TContext extends Context = Record<never, never>>(config: {
110
110
  id: string;
111
111
  variables: V;
112
112
  secrets: S;
113
113
  contract: TContract;
114
114
  initialize?: (config: {
115
- variables: z.infer<V>;
116
- secrets: z.infer<S>;
115
+ variables: InferSchemaOutput<V>;
116
+ secrets: InferSchemaOutput<S>;
117
117
  }) => Effect.Effect<TContext, Error, Scope.Scope>;
118
118
  createRouter: (context: TContext, builder: Implementer<TContract, TContext & Record<never, never>, TContext & Record<never, never>>) => Router<TContract, TContext & Record<never, never>>;
119
119
  shutdown?: (ctx: TContext) => Effect.Effect<void, Error, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -55,10 +55,10 @@ export const CommonPluginErrors = {
55
55
  * Factory function to create plugins
56
56
  */
57
57
  export function createPlugin(config) {
58
- const configSchema = z.object({
58
+ const configSchema = {
59
59
  variables: config.variables,
60
60
  secrets: config.secrets
61
- });
61
+ };
62
62
  class CreatedPlugin {
63
63
  id = config.id;
64
64
  contract = config.contract;
@@ -80,7 +80,6 @@ export function createPlugin(config) {
80
80
  const builder = implement(config.contract).$context();
81
81
  const router = config.createRouter(context, builder);
82
82
  return router;
83
- // return router as Router<TContract, TContext & THostContext>;
84
83
  }
85
84
  }
86
85
  const PluginConstructor = CreatedPlugin;
@@ -1,5 +1,5 @@
1
+ import type { InferSchemaInput } from "@orpc/contract";
1
2
  import { ManagedRuntime } from "effect";
2
- import type { z } from "zod";
3
3
  import type { ConfigOf, EveryPlugin, InitializedPlugin, LoadedPlugin, PluginInstance, PluginOf, PluginRegistry, RegistryBindings, RuntimeOptions, SecretsConfig } from "../types";
4
4
  import { PluginService } from "./services/plugin.service";
5
5
  export declare class PluginRuntime<R extends RegistryBindings = RegistryBindings> {
@@ -12,16 +12,25 @@ export declare class PluginRuntime<R extends RegistryBindings = RegistryBindings
12
12
  private runPromise;
13
13
  loadPlugin<K extends keyof R>(pluginId: K): Promise<LoadedPlugin<PluginOf<R[K]>>>;
14
14
  instantiatePlugin<K extends keyof R>(pluginId: K, loadedPlugin: LoadedPlugin<PluginOf<R[K]>>): Promise<PluginInstance<PluginOf<R[K]>>>;
15
- initializePlugin<K extends keyof R>(instance: PluginInstance<PluginOf<R[K]>>, config: z.input<PluginOf<R[K]>["configSchema"]>): Promise<InitializedPlugin<PluginOf<R[K]>> & {
15
+ initializePlugin<K extends keyof R>(instance: PluginInstance<PluginOf<R[K]>>, config: {
16
+ variables: InferSchemaInput<PluginOf<R[K]>["configSchema"]["variables"]>;
17
+ secrets: InferSchemaInput<PluginOf<R[K]>["configSchema"]["secrets"]>;
18
+ }): Promise<InitializedPlugin<PluginOf<R[K]>> & {
16
19
  config: ConfigOf<R[K]>;
17
20
  }>;
18
- usePlugin<K extends keyof R>(pluginId: K, config: z.input<PluginOf<R[K]>["configSchema"]>): Promise<EveryPlugin<PluginOf<R[K]>> & {
21
+ usePlugin<K extends keyof R>(pluginId: K, config: {
22
+ variables: InferSchemaInput<PluginOf<R[K]>["configSchema"]["variables"]>;
23
+ secrets: InferSchemaInput<PluginOf<R[K]>["configSchema"]["secrets"]>;
24
+ }): Promise<EveryPlugin<PluginOf<R[K]>> & {
19
25
  initialized: InitializedPlugin<PluginOf<R[K]>> & {
20
26
  config: ConfigOf<R[K]>;
21
27
  };
22
28
  }>;
23
29
  shutdown(): Promise<void>;
24
- evictPlugin<K extends keyof R>(pluginId: K, config: z.input<PluginOf<R[K]>["configSchema"]>): Promise<void>;
30
+ evictPlugin<K extends keyof R>(pluginId: K, config: {
31
+ variables: InferSchemaInput<PluginOf<R[K]>["configSchema"]["variables"]>;
32
+ secrets: InferSchemaInput<PluginOf<R[K]>["configSchema"]["secrets"]>;
33
+ }): Promise<void>;
25
34
  }
26
35
  export declare function createPluginRuntime<R extends RegistryBindings = RegistryBindings>(config: {
27
36
  registry: PluginRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import type { InferSchemaInput, InferSchemaOutput } from "@orpc/contract";
1
2
  import { Context, Effect, Scope } from "effect";
2
- import type { z } from "zod";
3
3
  import type { AnyPlugin, LoadedPlugin, PluginInstance, PluginRegistry } from "../../types";
4
4
  import { PluginRuntimeError } from "../errors";
5
5
  import { ModuleFederationService } from "./module-federation.service";
@@ -25,12 +25,15 @@ declare const PluginLoaderService_base: Effect.Service.Class<PluginLoaderService
25
25
  metadata: import("../../types").PluginMetadata;
26
26
  }, PluginRuntimeError, never>;
27
27
  initializePlugin: <T extends AnyPlugin>(pluginInstance: PluginInstance<T>, config: {
28
- variables: unknown;
29
- secrets: unknown;
28
+ variables: InferSchemaInput<T["configSchema"]["variables"]>;
29
+ secrets: InferSchemaInput<T["configSchema"]["secrets"]>;
30
30
  }) => Effect.Effect<{
31
31
  plugin: T;
32
32
  metadata: import("../../types").PluginMetadata;
33
- config: z.infer<T["configSchema"]>;
33
+ config: {
34
+ variables: InferSchemaOutput<T["configSchema"]["variables"]>;
35
+ secrets: InferSchemaOutput<T["configSchema"]["secrets"]>;
36
+ };
34
37
  context: any;
35
38
  scope: Scope.CloseableScope;
36
39
  }, PluginRuntimeError, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.service.d.ts","sourceRoot":"","sources":["../../../src/runtime/services/plugin-loader.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACX,SAAS,EAET,YAAY,EACZ,cAAc,EACd,cAAc,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;;AAEnD,qBAAa,iBAAkB,SAAQ,sBAGpC;CAAI;;;wBAOY,MAAM;;;AALzB,qBAAa,eAAgB,SAAQ,oBAkBnC;CAAI;;;+BAgBoB,MAAM;;;;4BAyBT,CAAC,SAAS,SAAS,YAC5B,MAAM,gBACF,YAAY,CAAC,CAAC,CAAC;;;;2BAmCX,CAAC,SAAS,SAAS,kBACrB,cAAc,CAAC,CAAC,CAAC,UACzB;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE;;;oBAwD3B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;;;;;AAtInD,qBAAa,mBAAoB,SAAQ,wBA6IvC;CACD"}
1
+ {"version":3,"file":"plugin-loader.service.d.ts","sourceRoot":"","sources":["../../../src/runtime/services/plugin-loader.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,KAAK,EACX,SAAS,EAET,YAAY,EACZ,cAAc,EACd,cAAc,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;;AAEnD,qBAAa,iBAAkB,SAAQ,sBAGpC;CAAI;;;wBAOY,MAAM;;;AALzB,qBAAa,eAAgB,SAAQ,oBAkBnC;CAAI;;;+BAgBoB,MAAM;;;;4BAyBT,CAAC,SAAS,SAAS,YAC5B,MAAM,gBACF,YAAY,CAAC,CAAC,CAAC;;;;2BAmCX,CAAC,SAAS,SAAS,kBACrB,cAAc,CAAC,CAAC,CAAC,UACzB;YAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;SAAE;;;;;;;;;;;;AA9EpI,qBAAa,mBAAoB,SAAQ,wBAgKvC;CACD"}
@@ -59,14 +59,25 @@ export class PluginLoaderService extends Effect.Service()("PluginLoaderService",
59
59
  initializePlugin: (pluginInstance, config) => Effect.gen(function* () {
60
60
  const { plugin } = pluginInstance;
61
61
  // Validate and hydrate config
62
- const validatedConfig = yield* validate(plugin.configSchema, config, plugin.id, "config").pipe(Effect.mapError((validationError) => new PluginRuntimeError({
62
+ const validatedVariables = yield* validate(plugin.configSchema.variables, config.variables, plugin.id, "config").pipe(Effect.mapError((validationError) => new PluginRuntimeError({
63
63
  pluginId: plugin.id,
64
64
  operation: "validate-config",
65
65
  cause: validationError.zodError,
66
66
  retryable: false,
67
67
  })));
68
- const hydratedConfig = yield* secretsService.hydrateSecrets(validatedConfig);
69
- const _config = yield* validate(plugin.configSchema, hydratedConfig, plugin.id, "config").pipe(Effect.mapError((validationError) => new PluginRuntimeError({
68
+ // Validate secrets
69
+ const validatedSecrets = yield* validate(plugin.configSchema.secrets, config.secrets, plugin.id, "config").pipe(Effect.mapError((validationError) => new PluginRuntimeError({
70
+ pluginId: plugin.id,
71
+ operation: "validate-secrets",
72
+ cause: validationError.zodError,
73
+ retryable: false,
74
+ })));
75
+ // Hydrate secrets in variables
76
+ const hydratedConfig = yield* secretsService.hydrateSecrets({
77
+ variables: validatedVariables,
78
+ secrets: validatedSecrets,
79
+ });
80
+ const _variables = yield* validate(plugin.configSchema.variables, hydratedConfig.variables, plugin.id, "config").pipe(Effect.mapError((validationError) => new PluginRuntimeError({
70
81
  pluginId: plugin.id,
71
82
  operation: "validate-hydrated-config",
72
83
  cause: validationError.zodError,
@@ -75,11 +86,11 @@ export class PluginLoaderService extends Effect.Service()("PluginLoaderService",
75
86
  // Create a long-lived scope for this plugin instance
76
87
  const scope = yield* Scope.make();
77
88
  // Initialize plugin within the scope
78
- const context = yield* plugin.initialize(_config).pipe(Effect.provideService(Scope.Scope, scope), Effect.mapError((error) => toPluginRuntimeError(error, plugin.id, undefined, "initialize-plugin", false)));
89
+ const context = yield* plugin.initialize({ variables: _variables, secrets: hydratedConfig.secrets }).pipe(Effect.provideService(Scope.Scope, scope), Effect.mapError((error) => toPluginRuntimeError(error, plugin.id, undefined, "initialize-plugin", false)));
79
90
  return {
80
91
  plugin,
81
92
  metadata: pluginInstance.metadata,
82
- config: _config,
93
+ config: { variables: _variables, secrets: hydratedConfig.secrets },
83
94
  context,
84
95
  scope,
85
96
  };
@@ -13,18 +13,21 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
13
13
  metadata: import("../../types").PluginMetadata;
14
14
  }, import("../errors").PluginRuntimeError, never>;
15
15
  initializePlugin: <T extends AnyPlugin>(pluginInstance: import("../..").PluginInstance<T>, config: {
16
- variables: unknown;
17
- secrets: unknown;
16
+ variables: import("@orpc/contract").InferSchemaInput<T["configSchema"]["variables"]>;
17
+ secrets: import("@orpc/contract").InferSchemaInput<T["configSchema"]["secrets"]>;
18
18
  }) => Effect.Effect<{
19
19
  plugin: T;
20
20
  metadata: import("../../types").PluginMetadata;
21
- config: import("zod").infer<T["configSchema"]>;
21
+ config: {
22
+ variables: import("@orpc/contract").InferSchemaOutput<T["configSchema"]["variables"]>;
23
+ secrets: import("@orpc/contract").InferSchemaOutput<T["configSchema"]["secrets"]>;
24
+ };
22
25
  context: any;
23
26
  scope: Scope.CloseableScope;
24
27
  }, import("../errors").PluginRuntimeError, never>;
25
28
  shutdownPlugin: (plugin: InitializedPlugin<AnyPlugin>) => Effect.Effect<void, never, never>;
26
29
  cleanup: () => Effect.Effect<void, never, never>;
27
- }, never, PluginLoaderService | PluginLifecycleService>;
30
+ }, never, PluginLifecycleService | PluginLoaderService>;
28
31
  }>;
29
32
  export declare class PluginService extends PluginService_base {
30
33
  static Live: (registry: PluginRegistry, secrets: SecretsConfig) => Layer.Layer<PluginService, never, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.service.d.ts","sourceRoot":"","sources":["../../../src/runtime/services/plugin.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EACX,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAsC,MAAM,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;iCAYtE,iBAAiB,CAAC,SAAS,CAAC;;;;AATxD,qBAAa,aAAc,SAAQ,kBAyBjC;IACD,MAAM,CAAC,IAAI,GAAI,UAAU,cAAc,EAAE,SAAS,aAAa,8CAmB9D;CACD"}
1
+ {"version":3,"file":"plugin.service.d.ts","sourceRoot":"","sources":["../../../src/runtime/services/plugin.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EACX,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAsC,MAAM,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;iCAYtE,iBAAiB,CAAC,SAAS,CAAC;;;;AATxD,qBAAa,aAAc,SAAQ,kBAyBjC;IACD,MAAM,CAAC,IAAI,GAAI,UAAU,cAAc,EAAE,SAAS,aAAa,8CAmB9D;CACD"}
package/dist/types.d.ts CHANGED
@@ -1,15 +1,14 @@
1
- import type { AnyContractRouter } from "@orpc/contract";
1
+ import type { AnyContractRouter, AnySchema, InferSchemaOutput } from "@orpc/contract";
2
2
  import type { Context, Router, RouterClient } from "@orpc/server";
3
3
  import type { Scope } from "effect";
4
- import type { z } from "zod";
5
- import type { Plugin, PluginConfigFor } from "./plugin";
4
+ import type { Plugin } from "./plugin";
6
5
  import type { PluginRuntime } from "./runtime";
7
6
  /**
8
7
  * Base type for any plugin instance.
9
8
  * This is the foundation that enables type inference across the entire plugin system.
10
9
  * Uses 'any' for context to allow plugins with custom context types.
11
10
  */
12
- export type AnyPlugin = Plugin<AnyContractRouter, z.ZodTypeAny, z.ZodTypeAny, any>;
11
+ export type AnyPlugin = Plugin<AnyContractRouter, AnySchema, AnySchema, any>;
13
12
  /**
14
13
  * Registry bindings define the compile-time shape of available plugins.
15
14
  * This is a type-only construct that enables full IDE autocomplete and type safety
@@ -17,7 +16,10 @@ export type AnyPlugin = Plugin<AnyContractRouter, z.ZodTypeAny, z.ZodTypeAny, an
17
16
  */
18
17
  export type RegistryBindings = Record<string, {
19
18
  contract: AnyContractRouter;
20
- config: PluginConfigFor<z.ZodTypeAny, z.ZodTypeAny>;
19
+ config: {
20
+ variables: AnySchema;
21
+ secrets: AnySchema;
22
+ };
21
23
  }>;
22
24
  /**
23
25
  * Extracts the Plugin type from a binding definition.
@@ -26,12 +28,15 @@ export type RegistryBindings = Record<string, {
26
28
  export type PluginOf<B> = B extends {
27
29
  contract: infer C;
28
30
  config: infer Conf;
29
- } ? Conf extends PluginConfigFor<infer V, infer S> ? C extends AnyContractRouter ? Plugin<C, V, S, Context> : never : never : never;
31
+ } ? Conf extends {
32
+ variables: infer V;
33
+ secrets: infer S;
34
+ } ? V extends AnySchema ? S extends AnySchema ? C extends AnyContractRouter ? Plugin<C, V, S, Context> : never : never : never : never : never;
30
35
  /**
31
36
  * Extracts the config type from a binding definition.
32
- * This provides strongly-typed configuration based on the plugin's zod schema.
37
+ * This provides strongly-typed configuration based on the plugin's schema.
33
38
  */
34
- export type ConfigOf<B> = z.infer<PluginOf<B>["configSchema"]>;
39
+ export type ConfigOf<B> = PluginOf<B>["configSchema"];
35
40
  /**
36
41
  * The actual router type returned by plugins (with procedures implemented)
37
42
  * Supports host context composition via THostContext type parameter
@@ -41,7 +46,7 @@ export type PluginRouter<T extends AnyPlugin, THostContext extends Context = Rec
41
46
  * Extracts the context type from a plugin.
42
47
  * This is used for typing the router client context parameter.
43
48
  */
44
- export type ContextOf<T extends AnyPlugin> = T extends Plugin<AnyContractRouter, z.ZodTypeAny, z.ZodTypeAny, infer TContext> ? TContext : never;
49
+ export type ContextOf<T extends AnyPlugin> = T extends Plugin<AnyContractRouter, AnySchema, AnySchema, infer TContext> ? TContext : never;
45
50
  /**
46
51
  * Runtime registry configuration.
47
52
  * Maps plugin IDs to their remote URLs and metadata.
@@ -84,7 +89,10 @@ export interface PluginInstance<T extends AnyPlugin = AnyPlugin> {
84
89
  export interface InitializedPlugin<T extends AnyPlugin = AnyPlugin> {
85
90
  readonly plugin: T;
86
91
  readonly metadata: PluginMetadata;
87
- readonly config: z.infer<T["configSchema"]>;
92
+ readonly config: {
93
+ variables: InferSchemaOutput<T["configSchema"]["variables"]>;
94
+ secrets: InferSchemaOutput<T["configSchema"]["secrets"]>;
95
+ };
88
96
  readonly context: ContextOf<T>;
89
97
  readonly scope: Scope.CloseableScope;
90
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAC5C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC;CACtD,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IACpB,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,GACjD,IAAI,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GACrD,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,iBAAiB,GAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GACxB,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,CACtB,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IACjD,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,MAAM,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE1I;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC3D,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC7D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAChE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE;QACf,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAI7B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,YAAY,SAAS,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;IAEnD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,yBAAiB,WAAW,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,KAAY,KAAK,CACf,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAC5B,CAAC,SAAS,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,IAC1D,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3B,KAAK,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAChF,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "every-plugin",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {