every-plugin 0.9.0 → 2.2.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/_virtual/{rolldown_runtime.cjs → _rolldown/runtime.cjs} +15 -1
- package/dist/_virtual/{rolldown_runtime.mjs → _rolldown/runtime.mjs} +15 -2
- package/dist/build/rspack/dev-server-middleware.cjs +15 -4
- package/dist/build/rspack/dev-server-middleware.cjs.map +1 -1
- package/dist/build/rspack/dev-server-middleware.mjs +15 -4
- package/dist/build/rspack/dev-server-middleware.mjs.map +1 -1
- package/dist/build/rspack/fix-mf-data-uri-plugin.cjs +44 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.cjs.map +1 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts +11 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts.map +1 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts +11 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts.map +1 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.mjs +43 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.mjs.map +1 -0
- package/dist/build/rspack/index.cjs +8 -4
- package/dist/build/rspack/index.d.cts +3 -2
- package/dist/build/rspack/index.d.mts +3 -2
- package/dist/build/rspack/index.mjs +3 -2
- package/dist/build/rspack/module-federation.cjs +3 -3
- package/dist/build/rspack/module-federation.cjs.map +1 -1
- package/dist/build/rspack/module-federation.mjs +1 -1
- package/dist/build/rspack/module-federation.mjs.map +1 -1
- package/dist/build/rspack/plugin.cjs +83 -5
- package/dist/build/rspack/plugin.cjs.map +1 -1
- package/dist/build/rspack/plugin.d.cts +12 -1
- package/dist/build/rspack/plugin.d.cts.map +1 -1
- package/dist/build/rspack/plugin.d.mts +12 -1
- package/dist/build/rspack/plugin.d.mts.map +1 -1
- package/dist/build/rspack/plugin.mjs +80 -5
- package/dist/build/rspack/plugin.mjs.map +1 -1
- package/dist/build/rspack/utils.cjs +5 -4
- package/dist/build/rspack/utils.cjs.map +1 -1
- package/dist/build/rspack/utils.mjs +3 -2
- package/dist/build/rspack/utils.mjs.map +1 -1
- package/dist/build/shared-deps.cjs +50 -42
- package/dist/build/shared-deps.cjs.map +1 -1
- package/dist/build/shared-deps.d.cts +27 -2
- package/dist/build/shared-deps.d.cts.map +1 -1
- package/dist/build/shared-deps.d.mts +27 -2
- package/dist/build/shared-deps.d.mts.map +1 -1
- package/dist/build/shared-deps.mjs +48 -43
- package/dist/build/shared-deps.mjs.map +1 -1
- package/dist/errors.cjs +1 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts.map +1 -1
- package/dist/errors.d.mts.map +1 -1
- package/dist/errors.mjs.map +1 -1
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/orpc-client.cjs +17 -0
- package/dist/orpc-client.d.cts +2 -0
- package/dist/orpc-client.d.mts +2 -0
- package/dist/orpc-client.mjs +5 -0
- package/dist/orpc-openapi.cjs +17 -0
- package/dist/orpc-openapi.d.cts +2 -0
- package/dist/orpc-openapi.d.mts +2 -0
- package/dist/orpc-openapi.mjs +5 -0
- package/dist/orpc.cjs +8 -7
- package/dist/plugin.cjs +9 -7
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +23 -24
- package/dist/plugin.d.cts.map +1 -1
- package/dist/plugin.d.mts +23 -24
- package/dist/plugin.d.mts.map +1 -1
- package/dist/plugin.mjs +8 -7
- package/dist/plugin.mjs.map +1 -1
- package/dist/runtime/errors.cjs +2 -2
- package/dist/runtime/errors.cjs.map +1 -1
- package/dist/runtime/errors.d.cts +4 -4
- package/dist/runtime/errors.d.cts.map +1 -1
- package/dist/runtime/errors.d.mts +4 -4
- package/dist/runtime/errors.d.mts.map +1 -1
- package/dist/runtime/errors.mjs +1 -1
- package/dist/runtime/errors.mjs.map +1 -1
- package/dist/runtime/index.cjs +41 -37
- package/dist/runtime/index.cjs.map +1 -1
- package/dist/runtime/index.d.cts +3 -3
- package/dist/runtime/index.d.cts.map +1 -1
- package/dist/runtime/index.d.mts +3 -3
- package/dist/runtime/index.d.mts.map +1 -1
- package/dist/runtime/index.mjs +12 -9
- package/dist/runtime/index.mjs.map +1 -1
- package/dist/runtime/mf-config.cjs +33 -0
- package/dist/runtime/mf-config.cjs.map +1 -0
- package/dist/runtime/mf-config.d.cts +41 -0
- package/dist/runtime/mf-config.d.cts.map +1 -0
- package/dist/runtime/mf-config.d.mts +41 -0
- package/dist/runtime/mf-config.d.mts.map +1 -0
- package/dist/runtime/mf-config.mjs +29 -0
- package/dist/runtime/mf-config.mjs.map +1 -0
- package/dist/runtime/services/module-federation.service.cjs +19 -56
- package/dist/runtime/services/module-federation.service.cjs.map +1 -1
- package/dist/runtime/services/module-federation.service.d.cts.map +1 -1
- package/dist/runtime/services/module-federation.service.d.mts.map +1 -1
- package/dist/runtime/services/module-federation.service.mjs +18 -55
- package/dist/runtime/services/module-federation.service.mjs.map +1 -1
- package/dist/runtime/services/normalize.cjs +3 -2
- package/dist/runtime/services/normalize.cjs.map +1 -1
- package/dist/runtime/services/normalize.mjs +2 -2
- package/dist/runtime/services/normalize.mjs.map +1 -1
- package/dist/runtime/services/plugin-lifecycle.service.cjs +1 -1
- package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +1 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +1 -1
- package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -1
- package/dist/runtime/services/plugin-loader.service.cjs +3 -3
- package/dist/runtime/services/plugin-loader.service.cjs.map +1 -1
- package/dist/runtime/services/plugin-loader.service.d.cts +1 -1
- package/dist/runtime/services/plugin-loader.service.d.cts.map +1 -1
- package/dist/runtime/services/plugin-loader.service.d.mts +1 -1
- package/dist/runtime/services/plugin-loader.service.d.mts.map +1 -1
- package/dist/runtime/services/plugin-loader.service.mjs +2 -2
- package/dist/runtime/services/plugin-loader.service.mjs.map +1 -1
- package/dist/runtime/services/plugin.service.cjs +1 -1
- package/dist/runtime/services/plugin.service.cjs.map +1 -1
- package/dist/runtime/services/plugin.service.d.cts +6 -7
- package/dist/runtime/services/plugin.service.d.cts.map +1 -1
- package/dist/runtime/services/plugin.service.d.mts +6 -7
- package/dist/runtime/services/plugin.service.d.mts.map +1 -1
- package/dist/runtime/services/plugin.service.mjs.map +1 -1
- package/dist/runtime/services/secrets.service.cjs +1 -1
- package/dist/runtime/services/secrets.service.cjs.map +1 -1
- package/dist/runtime/services/secrets.service.d.cts.map +1 -1
- package/dist/runtime/services/secrets.service.d.mts.map +1 -1
- package/dist/runtime/services/secrets.service.mjs.map +1 -1
- package/dist/runtime/validation.cjs +1 -1
- package/dist/runtime/validation.cjs.map +1 -1
- package/dist/runtime/validation.mjs.map +1 -1
- package/dist/testing/index.cjs +2 -1
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +0 -2
- package/dist/testing/index.d.cts.map +1 -1
- package/dist/testing/index.d.mts +0 -2
- package/dist/testing/index.d.mts.map +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/testing/index.mjs.map +1 -1
- package/dist/types.d.cts +6 -6
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +6 -6
- package/dist/types.d.mts.map +1 -1
- package/dist/zod.cjs +4 -3
- package/dist/zod.mjs +2 -2
- package/package.json +204 -182
- package/src/build/rspack/dev-server-middleware.ts +233 -0
- package/src/build/rspack/fix-mf-data-uri-plugin.ts +49 -0
- package/src/build/rspack/index.ts +14 -0
- package/src/build/rspack/module-federation.ts +6 -0
- package/src/build/rspack/plugin.ts +252 -0
- package/src/build/rspack/utils.ts +60 -0
- package/src/build/shared-deps.ts +79 -0
- package/src/effect.ts +1 -0
- package/src/errors.ts +140 -0
- package/src/index.ts +26 -0
- package/src/orpc-client.ts +2 -0
- package/src/orpc-openapi.ts +2 -0
- package/src/orpc.ts +9 -0
- package/src/plugin.ts +220 -0
- package/src/runtime/errors.ts +332 -0
- package/src/runtime/index.ts +258 -0
- package/src/runtime/mf-config.ts +29 -0
- package/src/runtime/services/module-federation.service.ts +181 -0
- package/src/runtime/services/normalize.ts +18 -0
- package/src/runtime/services/plugin-lifecycle.service.ts +86 -0
- package/src/runtime/services/plugin-loader.service.ts +254 -0
- package/src/runtime/services/plugin.service.ts +66 -0
- package/src/runtime/services/secrets.service.ts +74 -0
- package/src/runtime/services.ts +5 -0
- package/src/runtime/validation.ts +23 -0
- package/src/testing/index.ts +87 -0
- package/src/testing/mocks/module-federation.service.ts +41 -0
- package/src/types.ts +309 -0
- package/src/zod-core.ts +4 -0
- package/src/zod.ts +1 -0
- package/dist/package.cjs +0 -45
- package/dist/package.cjs.map +0 -1
- package/dist/package.mjs +0 -27
- package/dist/package.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.service.mjs","names":[],"sources":["../../../src/runtime/services/plugin-loader.service.ts"],"sourcesContent":["import type { InferSchemaInput, InferSchemaOutput } from \"@orpc/contract\";\nimport { Context, Effect, Scope } from \"effect\";\nimport type { z } from \"zod\";\nimport type {\n\tAnyPlugin,\n\tAnyPluginConstructor,\n\tInitializedPlugin,\n\tLoadedPlugin,\n\tPluginInstance,\n\tPluginMetadata,\n\tPluginRegistry\n} from \"../../types\";\nimport { PluginRuntimeError, toPluginRuntimeError } from \"../errors\";\nimport { validate } from \"../validation\";\nimport { ModuleFederationService } from \"./module-federation.service\";\nimport { SecretsService } from \"./secrets.service\";\n\nexport class PluginRegistryTag extends Context.Tag(\"PluginRegistry\")<\n\tPluginRegistryTag,\n\tPluginRegistry\n>() { }\n\nexport class PluginMapTag extends Context.Tag(\"PluginMap\")<\n\tPluginMapTag,\n\tRecord<string, AnyPluginConstructor>\n>() { }\n\nexport class RegistryService extends Effect.Service<RegistryService>()(\"RegistryService\", {\n\teffect: Effect.gen(function* () {\n\t\tconst registry = yield* PluginRegistryTag;\n\t\tconst pluginMap = yield* PluginMapTag;\n\n\t\treturn {\n\t\t\tget: (pluginId: string) =>\n\t\t\t\tEffect.gen(function* () {\n\t\t\t\t\tconst entry = registry[pluginId];\n\t\t\t\t\t\n\t\t\t\t\tif (!entry) {\n\t\t\t\t\t\treturn yield* Effect.fail(\n\t\t\t\t\t\t\tnew PluginRuntimeError({\n\t\t\t\t\t\t\t\tpluginId,\n\t\t\t\t\t\t\t\toperation: \"validate-plugin-id\",\n\t\t\t\t\t\t\t\tcause: new Error(`Plugin ${pluginId} not found in registry`),\n\t\t\t\t\t\t\t\tretryable: false,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\"module\" in entry) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tconstructor: entry.module,\n\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\tremoteUrl: entry.remote || \"\",\n\t\t\t\t\t\t\t\tversion: entry.version,\n\t\t\t\t\t\t\t\tdescription: entry.description,\n\t\t\t\t\t\t\t} as PluginMetadata,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tconstructor: null,\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tremoteUrl: entry.remote,\n\t\t\t\t\t\t\tversion: entry.version,\n\t\t\t\t\t\t\tdescription: entry.description,\n\t\t\t\t\t\t} as PluginMetadata,\n\t\t\t\t\t};\n\t\t\t\t}),\n\n\t\t\tgetModule: (pluginId: string) =>\n\t\t\t\tEffect.succeed(pluginMap[pluginId] || null),\n\t\t};\n\t}),\n}) { }\n\nexport class PluginLoaderService extends Effect.Service<PluginLoaderService>()(\"PluginLoaderService\", {\n\teffect: Effect.gen(function* () {\n\t\tconst moduleFederationService = yield* ModuleFederationService;\n\t\tconst secretsService = yield* SecretsService;\n\t\tconst registryService = yield* RegistryService;\n\n\t\tconst resolveUrl = (baseUrl: string, version?: string): string =>\n\t\t\tversion && version !== \"latest\"\n\t\t\t\t? baseUrl.replace(\"@latest\", `@${version}`)\n\t\t\t\t: baseUrl;\n\n\t\treturn {\n\t\t\tloadPlugin: (pluginId: string) =>\n\t\t\t\tEffect.gen(function* () {\n\t\t\t\t\tconst entry = yield* registryService.get(pluginId);\n\n\t\t\t\t\tif (entry.constructor) {\n\t\t\t\t\t\tyield* Effect.logDebug(\"Loading plugin from direct module\", { pluginId });\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tctor: entry.constructor,\n\t\t\t\t\t\t\tmetadata: entry.metadata,\n\t\t\t\t\t\t} satisfies LoadedPlugin;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst url = entry.metadata.remoteUrl;\n\t\t\t\t\tif (!url) {\n\t\t\t\t\t\treturn yield* Effect.fail(\n\t\t\t\t\t\t\tnew PluginRuntimeError({\n\t\t\t\t\t\t\t\tpluginId,\n\t\t\t\t\t\t\t\toperation: \"load-plugin\",\n\t\t\t\t\t\t\t\tcause: new Error(`Plugin ${pluginId} has no module or remote URL configured`),\n\t\t\t\t\t\t\t\tretryable: false,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst resolvedUrl = resolveUrl(url);\n\n\t\t\t\t\tyield* moduleFederationService.registerRemote(pluginId, resolvedUrl).pipe(\n\t\t\t\t\t\tEffect.mapError((error) =>\n\t\t\t\t\t\t\ttoPluginRuntimeError(error, pluginId, undefined, \"register-remote\", true),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\tyield* Effect.logDebug(\"Loading plugin from remote\", { pluginId, url: resolvedUrl });\n\n\t\t\t\t\tconst ctor = yield* moduleFederationService.loadRemoteConstructor(pluginId, resolvedUrl).pipe(\n\t\t\t\t\t\tEffect.mapError((error) =>\n\t\t\t\t\t\t\ttoPluginRuntimeError(error, pluginId, undefined, \"load-remote\", false),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tctor,\n\t\t\t\t\t\tmetadata: entry.metadata,\n\t\t\t\t\t} satisfies LoadedPlugin;\n\t\t\t\t}),\n\n\t\t\tinstantiatePlugin: <T extends AnyPlugin>(\n\t\t\t\tpluginId: string,\n\t\t\t\tloadedPlugin: LoadedPlugin<T>,\n\t\t\t) =>\n\t\t\t\tEffect.gen(function* () {\n\t\t\t\t\tconst instance = yield* Effect.try(() => new loadedPlugin.ctor()).pipe(\n\t\t\t\t\t\tEffect.mapError((error) =>\n\t\t\t\t\t\t\ttoPluginRuntimeError(\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\tpluginId,\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\"instantiate-plugin\",\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\t(instance.id as string) = pluginId;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tplugin: instance,\n\t\t\t\t\t\tmetadata: loadedPlugin.metadata,\n\t\t\t\t\t} satisfies PluginInstance<T>;\n\t\t\t\t}),\n\n\t\t\tinitializePlugin: <T extends AnyPlugin>(\n\t\t\t\tpluginInstance: PluginInstance<T>,\n\t\t\t\tconfig: { variables: InferSchemaInput<T[\"configSchema\"][\"variables\"]>; secrets: InferSchemaInput<T[\"configSchema\"][\"secrets\"]> },\n\t\t\t) =>\n\t\t\t\tEffect.gen(function* () {\n\t\t\t\t\tconst { plugin } = pluginInstance;\n\n\t\t\t\t\t// Validate and hydrate config\n\t\t\t\t\tconst validatedVariables = yield* validate(\n\t\t\t\t\t\tplugin.configSchema.variables as z.ZodSchema<InferSchemaOutput<T[\"configSchema\"][\"variables\"]>>,\n\t\t\t\t\t\tconfig.variables,\n\t\t\t\t\t\tplugin.id,\n\t\t\t\t\t\t\"config\",\n\t\t\t\t\t).pipe(\n\t\t\t\t\t\tEffect.mapError((validationError) =>\n\t\t\t\t\t\t\tnew PluginRuntimeError({\n\t\t\t\t\t\t\t\tpluginId: plugin.id,\n\t\t\t\t\t\t\t\toperation: \"validate-config\",\n\t\t\t\t\t\t\t\tcause: validationError.zodError,\n\t\t\t\t\t\t\t\tretryable: false,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\t// Validate secrets\n\t\t\t\t\tconst validatedSecrets = yield* validate(\n\t\t\t\t\t\tplugin.configSchema.secrets as z.ZodSchema<InferSchemaOutput<T[\"configSchema\"][\"secrets\"]>>,\n\t\t\t\t\t\tconfig.secrets,\n\t\t\t\t\t\tplugin.id,\n\t\t\t\t\t\t\"config\",\n\t\t\t\t\t).pipe(\n\t\t\t\t\t\tEffect.mapError((validationError) =>\n\t\t\t\t\t\t\tnew PluginRuntimeError({\n\t\t\t\t\t\t\t\tpluginId: plugin.id,\n\t\t\t\t\t\t\t\toperation: \"validate-secrets\",\n\t\t\t\t\t\t\t\tcause: validationError.zodError,\n\t\t\t\t\t\t\t\tretryable: false,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\t// Hydrate secrets in variables\n\t\t\t\t\tconst hydratedConfig = yield* secretsService.hydrateSecrets({\n\t\t\t\t\t\tvariables: validatedVariables,\n\t\t\t\t\t\tsecrets: validatedSecrets,\n\t\t\t\t\t});\n\n\t\t\t\t\tconst _variables = yield* validate(\n\t\t\t\t\t\tplugin.configSchema.variables as z.ZodSchema<InferSchemaOutput<T[\"configSchema\"][\"variables\"]>>,\n\t\t\t\t\t\thydratedConfig.variables,\n\t\t\t\t\t\tplugin.id,\n\t\t\t\t\t\t\"config\",\n\t\t\t\t\t).pipe(\n\t\t\t\t\t\tEffect.mapError((validationError) =>\n\t\t\t\t\t\t\tnew PluginRuntimeError({\n\t\t\t\t\t\t\t\tpluginId: plugin.id,\n\t\t\t\t\t\t\t\toperation: \"validate-hydrated-config\",\n\t\t\t\t\t\t\t\tcause: validationError.zodError,\n\t\t\t\t\t\t\t\tretryable: false,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\t// Create a long-lived scope for this plugin instance\n\t\t\t\t\tconst scope = yield* Scope.make();\n\n\t\t\t\t\t// Initialize plugin within the scope\n\t\t\t\t\tconst context = yield* plugin.initialize({ variables: _variables, secrets: hydratedConfig.secrets }).pipe(\n\t\t\t\t\t\tEffect.provideService(Scope.Scope, scope),\n\t\t\t\t\t\tEffect.mapError((error) =>\n\t\t\t\t\t\t\ttoPluginRuntimeError(error, plugin.id, undefined, \"initialize-plugin\", false),\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tplugin,\n\t\t\t\t\t\tmetadata: pluginInstance.metadata,\n\t\t\t\t\t\tconfig: { variables: _variables, secrets: hydratedConfig.secrets },\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tscope,\n\t\t\t\t\t} satisfies InitializedPlugin<T>;\n\t\t\t\t}),\n\t\t};\n\t}),\n}) {\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-loader.service.mjs","names":[],"sources":["../../../src/runtime/services/plugin-loader.service.ts"],"sourcesContent":["import type { InferSchemaInput, InferSchemaOutput } from \"@orpc/contract\";\nimport { Context, Effect, Scope } from \"effect\";\nimport type { z } from \"zod\";\nimport type {\n AnyPlugin,\n AnyPluginConstructor,\n InitializedPlugin,\n LoadedPlugin,\n PluginInstance,\n PluginMetadata,\n PluginRegistry,\n} from \"../../types\";\nimport { PluginRuntimeError, toPluginRuntimeError } from \"../errors\";\nimport { validate } from \"../validation\";\nimport { ModuleFederationService } from \"./module-federation.service\";\nimport { SecretsService } from \"./secrets.service\";\n\nexport class PluginRegistryTag extends Context.Tag(\"PluginRegistry\")<\n PluginRegistryTag,\n PluginRegistry\n>() {}\n\nexport class PluginMapTag extends Context.Tag(\"PluginMap\")<\n PluginMapTag,\n Record<string, AnyPluginConstructor>\n>() {}\n\nexport class RegistryService extends Effect.Service<RegistryService>()(\"RegistryService\", {\n effect: Effect.gen(function* () {\n const registry = yield* PluginRegistryTag;\n const pluginMap = yield* PluginMapTag;\n\n return {\n get: (pluginId: string) =>\n Effect.gen(function* () {\n const entry = registry[pluginId];\n\n if (!entry) {\n return yield* Effect.fail(\n new PluginRuntimeError({\n pluginId,\n operation: \"validate-plugin-id\",\n cause: new Error(`Plugin ${pluginId} not found in registry`),\n retryable: false,\n }),\n );\n }\n\n if (\"module\" in entry) {\n return {\n constructor: entry.module,\n metadata: {\n remoteUrl: entry.remote || \"\",\n version: entry.version,\n description: entry.description,\n } as PluginMetadata,\n };\n }\n\n return {\n constructor: null,\n metadata: {\n remoteUrl: entry.remote,\n version: entry.version,\n description: entry.description,\n } as PluginMetadata,\n };\n }),\n\n getModule: (pluginId: string) => Effect.succeed(pluginMap[pluginId] || null),\n };\n }),\n}) {}\n\nexport class PluginLoaderService extends Effect.Service<PluginLoaderService>()(\n \"PluginLoaderService\",\n {\n effect: Effect.gen(function* () {\n const moduleFederationService = yield* ModuleFederationService;\n const secretsService = yield* SecretsService;\n const registryService = yield* RegistryService;\n\n const resolveUrl = (baseUrl: string, version?: string): string =>\n version && version !== \"latest\" ? baseUrl.replace(\"@latest\", `@${version}`) : baseUrl;\n\n return {\n loadPlugin: (pluginId: string) =>\n Effect.gen(function* () {\n const entry = yield* registryService.get(pluginId);\n\n if (entry.constructor) {\n yield* Effect.logDebug(\"Loading plugin from direct module\", { pluginId });\n\n return {\n ctor: entry.constructor,\n metadata: entry.metadata,\n } satisfies LoadedPlugin;\n }\n\n const url = entry.metadata.remoteUrl;\n if (!url) {\n return yield* Effect.fail(\n new PluginRuntimeError({\n pluginId,\n operation: \"load-plugin\",\n cause: new Error(`Plugin ${pluginId} has no module or remote URL configured`),\n retryable: false,\n }),\n );\n }\n\n const resolvedUrl = resolveUrl(url);\n\n yield* moduleFederationService\n .registerRemote(pluginId, resolvedUrl)\n .pipe(\n Effect.mapError((error) =>\n toPluginRuntimeError(error, pluginId, undefined, \"register-remote\", true),\n ),\n );\n\n yield* Effect.logDebug(\"Loading plugin from remote\", { pluginId, url: resolvedUrl });\n\n const ctor = yield* moduleFederationService\n .loadRemoteConstructor(pluginId, resolvedUrl)\n .pipe(\n Effect.mapError((error) =>\n toPluginRuntimeError(error, pluginId, undefined, \"load-remote\", false),\n ),\n );\n\n return {\n ctor,\n metadata: entry.metadata,\n } satisfies LoadedPlugin;\n }),\n\n instantiatePlugin: <T extends AnyPlugin>(pluginId: string, loadedPlugin: LoadedPlugin<T>) =>\n Effect.gen(function* () {\n const instance = yield* Effect.try(() => new loadedPlugin.ctor()).pipe(\n Effect.mapError((error) =>\n toPluginRuntimeError(error, pluginId, undefined, \"instantiate-plugin\", false),\n ),\n );\n\n (instance.id as string) = pluginId;\n\n return {\n plugin: instance,\n metadata: loadedPlugin.metadata,\n } satisfies PluginInstance<T>;\n }),\n\n initializePlugin: <T extends AnyPlugin>(\n pluginInstance: PluginInstance<T>,\n config: {\n variables: InferSchemaInput<T[\"configSchema\"][\"variables\"]>;\n secrets: InferSchemaInput<T[\"configSchema\"][\"secrets\"]>;\n },\n plugins?: Record<string, unknown>,\n ) =>\n Effect.gen(function* () {\n const { plugin } = pluginInstance;\n\n // Validate and hydrate config\n const validatedVariables = yield* validate(\n plugin.configSchema.variables as z.ZodSchema<\n InferSchemaOutput<T[\"configSchema\"][\"variables\"]>\n >,\n config.variables,\n plugin.id,\n \"config\",\n ).pipe(\n Effect.mapError(\n (validationError) =>\n new PluginRuntimeError({\n pluginId: plugin.id,\n operation: \"validate-config\",\n cause: validationError.zodError,\n retryable: false,\n }),\n ),\n );\n\n // Validate secrets\n const validatedSecrets = yield* validate(\n plugin.configSchema.secrets as z.ZodSchema<\n InferSchemaOutput<T[\"configSchema\"][\"secrets\"]>\n >,\n config.secrets,\n plugin.id,\n \"config\",\n ).pipe(\n Effect.mapError(\n (validationError) =>\n new PluginRuntimeError({\n pluginId: plugin.id,\n operation: \"validate-secrets\",\n cause: validationError.zodError,\n retryable: false,\n }),\n ),\n );\n\n // Hydrate secrets in variables\n const hydratedConfig = yield* secretsService.hydrateSecrets({\n variables: validatedVariables,\n secrets: validatedSecrets,\n });\n\n const _variables = yield* validate(\n plugin.configSchema.variables as z.ZodSchema<\n InferSchemaOutput<T[\"configSchema\"][\"variables\"]>\n >,\n hydratedConfig.variables,\n plugin.id,\n \"config\",\n ).pipe(\n Effect.mapError(\n (validationError) =>\n new PluginRuntimeError({\n pluginId: plugin.id,\n operation: \"validate-hydrated-config\",\n cause: validationError.zodError,\n retryable: false,\n }),\n ),\n );\n\n // Create a long-lived scope for this plugin instance\n const scope = yield* Scope.make();\n\n // Initialize plugin within the scope\n const context = yield* plugin\n .initialize({ variables: _variables, secrets: hydratedConfig.secrets }, plugins ?? {})\n .pipe(\n Effect.provideService(Scope.Scope, scope),\n Effect.mapError((error) =>\n toPluginRuntimeError(error, plugin.id, undefined, \"initialize-plugin\", false),\n ),\n );\n\n return {\n plugin,\n metadata: pluginInstance.metadata,\n config: { variables: _variables, secrets: hydratedConfig.secrets },\n context,\n scope,\n } satisfies InitializedPlugin<T>;\n }),\n };\n }),\n },\n) {}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
2
2
|
const require_module_federation_service = require('./module-federation.service.cjs');
|
|
3
3
|
const require_plugin_lifecycle_service = require('./plugin-lifecycle.service.cjs');
|
|
4
4
|
const require_secrets_service = require('./secrets.service.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.service.cjs","names":["Effect","PluginLoaderService","PluginLifecycleService","Scope","Exit","Layer","PluginRegistryTag","SecretsConfigTag","PluginMapTag","ModuleFederationService","SecretsService","RegistryService"],"sources":["../../../src/runtime/services/plugin.service.ts"],"sourcesContent":["import { Effect, Exit, Layer, Scope } from \"effect\";\nimport type {\n
|
|
1
|
+
{"version":3,"file":"plugin.service.cjs","names":["Effect","PluginLoaderService","PluginLifecycleService","Scope","Exit","Layer","PluginRegistryTag","SecretsConfigTag","PluginMapTag","ModuleFederationService","SecretsService","RegistryService"],"sources":["../../../src/runtime/services/plugin.service.ts"],"sourcesContent":["import { Effect, Exit, Layer, Scope } from \"effect\";\nimport type {\n AnyPlugin,\n AnyPluginConstructor,\n InitializedPlugin,\n PluginRegistry,\n SecretsConfig,\n} from \"../../types\";\nimport { ModuleFederationService } from \"./module-federation.service\";\nimport { PluginLifecycleService } from \"./plugin-lifecycle.service\";\nimport {\n PluginLoaderService,\n PluginMapTag,\n PluginRegistryTag,\n RegistryService,\n} from \"./plugin-loader.service\";\nimport { SecretsConfigTag, SecretsService } from \"./secrets.service\";\n\nexport class PluginService extends Effect.Service<PluginService>()(\"PluginService\", {\n scoped: Effect.gen(function* () {\n const loader = yield* PluginLoaderService;\n const lifecycle = yield* PluginLifecycleService;\n\n return {\n loadPlugin: loader.loadPlugin,\n instantiatePlugin: loader.instantiatePlugin,\n initializePlugin: loader.initializePlugin,\n shutdownPlugin: (plugin: InitializedPlugin<AnyPlugin>) =>\n Effect.gen(function* () {\n // Shutdown the plugin first (graceful cleanup)\n yield* plugin.plugin.shutdown().pipe(Effect.catchAll(() => Effect.void));\n\n // Close the plugin scope to interrupt fibers and release resources\n yield* Scope.close(plugin.scope, Exit.succeed(undefined));\n\n // Unregister from lifecycle tracking\n yield* lifecycle.unregister(plugin);\n }),\n cleanup: lifecycle.cleanup,\n };\n }),\n}) {\n static Live = (\n registry: PluginRegistry,\n secrets: SecretsConfig,\n pluginMap: Record<string, AnyPluginConstructor> = {},\n ) => {\n const contextLayer = Layer.mergeAll(\n Layer.succeed(PluginRegistryTag, registry),\n Layer.succeed(SecretsConfigTag, secrets),\n Layer.succeed(PluginMapTag, pluginMap),\n );\n\n const servicesLayer = Layer.mergeAll(\n ModuleFederationService.Default,\n SecretsService.Default,\n RegistryService.Default,\n PluginLifecycleService.Default,\n ).pipe(Layer.provide(contextLayer));\n\n return PluginService.Default.pipe(\n Layer.provide(PluginLoaderService.Default),\n Layer.provide(servicesLayer),\n );\n };\n}\n"],"mappings":";;;;;;;;AAkBA,IAAa,gBAAb,MAAa,sBAAsBA,cAAO,SAAwB,CAAC,iBAAiB,EAClF,QAAQA,cAAO,IAAI,aAAa;CAC9B,MAAM,SAAS,OAAOC;CACtB,MAAM,YAAY,OAAOC;AAEzB,QAAO;EACL,YAAY,OAAO;EACnB,mBAAmB,OAAO;EAC1B,kBAAkB,OAAO;EACzB,iBAAiB,WACfF,cAAO,IAAI,aAAa;AAEtB,UAAO,OAAO,OAAO,UAAU,CAAC,KAAKA,cAAO,eAAeA,cAAO,KAAK,CAAC;AAGxE,UAAOG,aAAM,MAAM,OAAO,OAAOC,YAAK,QAAQ,OAAU,CAAC;AAGzD,UAAO,UAAU,WAAW,OAAO;IACnC;EACJ,SAAS,UAAU;EACpB;EACD,EACH,CAAC,CAAC;CACD,OAAO,QACL,UACA,SACA,YAAkD,EAAE,KACjD;EACH,MAAM,eAAeC,aAAM,SACzBA,aAAM,QAAQC,iDAAmB,SAAS,EAC1CD,aAAM,QAAQE,0CAAkB,QAAQ,EACxCF,aAAM,QAAQG,4CAAc,UAAU,CACvC;EAED,MAAM,gBAAgBH,aAAM,SAC1BI,0DAAwB,SACxBC,uCAAe,SACfC,8CAAgB,SAChBT,wDAAuB,QACxB,CAAC,KAAKG,aAAM,QAAQ,aAAa,CAAC;AAEnC,SAAO,cAAc,QAAQ,KAC3BA,aAAM,QAAQJ,kDAAoB,QAAQ,EAC1CI,aAAM,QAAQ,cAAc,CAC7B"}
|
|
@@ -2,9 +2,8 @@ import { PluginRuntimeError } from "../errors.cjs";
|
|
|
2
2
|
import { AnyPlugin, AnyPluginConstructor, InitializedPlugin, LoadedPlugin, PluginInstance, PluginMetadata, PluginRegistry, SecretsConfig } from "../../types.cjs";
|
|
3
3
|
import { PluginLifecycleService } from "./plugin-lifecycle.service.cjs";
|
|
4
4
|
import { PluginLoaderService } from "./plugin-loader.service.cjs";
|
|
5
|
-
import "../../index.cjs";
|
|
6
5
|
import { Effect, Layer, Scope } from "effect";
|
|
7
|
-
import * as _orpc_contract0 from "@orpc/contract";
|
|
6
|
+
import * as _$_orpc_contract0 from "@orpc/contract";
|
|
8
7
|
|
|
9
8
|
//#region src/runtime/services/plugin.service.d.ts
|
|
10
9
|
declare const PluginService_base: Effect.Service.Class<PluginService, "PluginService", {
|
|
@@ -18,14 +17,14 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
|
|
|
18
17
|
metadata: PluginMetadata;
|
|
19
18
|
}, PluginRuntimeError, never>;
|
|
20
19
|
initializePlugin: <T extends AnyPlugin>(pluginInstance: PluginInstance<T>, config: {
|
|
21
|
-
variables: _orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
|
|
22
|
-
secrets: _orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
|
|
23
|
-
}) => Effect.Effect<{
|
|
20
|
+
variables: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
|
|
21
|
+
secrets: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
|
|
22
|
+
}, plugins?: Record<string, unknown>) => Effect.Effect<{
|
|
24
23
|
plugin: T;
|
|
25
24
|
metadata: PluginMetadata;
|
|
26
25
|
config: {
|
|
27
|
-
variables: _orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
|
|
28
|
-
secrets: _orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
|
|
26
|
+
variables: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
|
|
27
|
+
secrets: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
|
|
29
28
|
};
|
|
30
29
|
context: any;
|
|
31
30
|
scope: Scope.CloseableScope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.service.d.cts","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.service.d.cts","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"mappings":";;;;;;;;cAeiC,kBAAA;;;;;;;;;;;;;;;;;;;;;;;6BAYF,iBAAA,CAAkB,SAAA,MAAU,MAAA,CAAA,MAAA;;;;cAT9C,aAAA,SAAsB,kBAAA;EAAA,OAwB1B,IAAA,GACL,QAAA,EAAU,cAAA,EACV,OAAA,EAAS,aAAA,EACT,SAAA,GAAW,MAAA,SAAe,oBAAA,MAA0B,KAAA,CAAA,KAAA,CAAA,aAAA;AAAA"}
|
|
@@ -2,8 +2,7 @@ import { PluginRuntimeError } from "../errors.mjs";
|
|
|
2
2
|
import { AnyPlugin, AnyPluginConstructor, InitializedPlugin, LoadedPlugin, PluginInstance, PluginMetadata, PluginRegistry, SecretsConfig } from "../../types.mjs";
|
|
3
3
|
import { PluginLifecycleService } from "./plugin-lifecycle.service.mjs";
|
|
4
4
|
import { PluginLoaderService } from "./plugin-loader.service.mjs";
|
|
5
|
-
import "
|
|
6
|
-
import * as _orpc_contract0 from "@orpc/contract";
|
|
5
|
+
import * as _$_orpc_contract0 from "@orpc/contract";
|
|
7
6
|
import { Effect, Layer, Scope } from "effect";
|
|
8
7
|
|
|
9
8
|
//#region src/runtime/services/plugin.service.d.ts
|
|
@@ -18,14 +17,14 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
|
|
|
18
17
|
metadata: PluginMetadata;
|
|
19
18
|
}, PluginRuntimeError, never>;
|
|
20
19
|
initializePlugin: <T extends AnyPlugin>(pluginInstance: PluginInstance<T>, config: {
|
|
21
|
-
variables: _orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
|
|
22
|
-
secrets: _orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
|
|
23
|
-
}) => Effect.Effect<{
|
|
20
|
+
variables: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
|
|
21
|
+
secrets: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
|
|
22
|
+
}, plugins?: Record<string, unknown>) => Effect.Effect<{
|
|
24
23
|
plugin: T;
|
|
25
24
|
metadata: PluginMetadata;
|
|
26
25
|
config: {
|
|
27
|
-
variables: _orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
|
|
28
|
-
secrets: _orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
|
|
26
|
+
variables: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
|
|
27
|
+
secrets: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
|
|
29
28
|
};
|
|
30
29
|
context: any;
|
|
31
30
|
scope: Scope.CloseableScope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.service.d.mts","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.service.d.mts","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"mappings":";;;;;;;;cAeiC,kBAAA;;;;;;;;;;;;;;;;;;;;;;;6BAYF,iBAAA,CAAkB,SAAA,MAAU,MAAA,CAAA,MAAA;;;;cAT9C,aAAA,SAAsB,kBAAA;EAAA,OAwB1B,IAAA,GACL,QAAA,EAAU,cAAA,EACV,OAAA,EAAS,aAAA,EACT,SAAA,GAAW,MAAA,SAAe,oBAAA,MAA0B,KAAA,CAAA,KAAA,CAAA,aAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.service.mjs","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"sourcesContent":["import { Effect, Exit, Layer, Scope } from \"effect\";\nimport type {\n
|
|
1
|
+
{"version":3,"file":"plugin.service.mjs","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"sourcesContent":["import { Effect, Exit, Layer, Scope } from \"effect\";\nimport type {\n AnyPlugin,\n AnyPluginConstructor,\n InitializedPlugin,\n PluginRegistry,\n SecretsConfig,\n} from \"../../types\";\nimport { ModuleFederationService } from \"./module-federation.service\";\nimport { PluginLifecycleService } from \"./plugin-lifecycle.service\";\nimport {\n PluginLoaderService,\n PluginMapTag,\n PluginRegistryTag,\n RegistryService,\n} from \"./plugin-loader.service\";\nimport { SecretsConfigTag, SecretsService } from \"./secrets.service\";\n\nexport class PluginService extends Effect.Service<PluginService>()(\"PluginService\", {\n scoped: Effect.gen(function* () {\n const loader = yield* PluginLoaderService;\n const lifecycle = yield* PluginLifecycleService;\n\n return {\n loadPlugin: loader.loadPlugin,\n instantiatePlugin: loader.instantiatePlugin,\n initializePlugin: loader.initializePlugin,\n shutdownPlugin: (plugin: InitializedPlugin<AnyPlugin>) =>\n Effect.gen(function* () {\n // Shutdown the plugin first (graceful cleanup)\n yield* plugin.plugin.shutdown().pipe(Effect.catchAll(() => Effect.void));\n\n // Close the plugin scope to interrupt fibers and release resources\n yield* Scope.close(plugin.scope, Exit.succeed(undefined));\n\n // Unregister from lifecycle tracking\n yield* lifecycle.unregister(plugin);\n }),\n cleanup: lifecycle.cleanup,\n };\n }),\n}) {\n static Live = (\n registry: PluginRegistry,\n secrets: SecretsConfig,\n pluginMap: Record<string, AnyPluginConstructor> = {},\n ) => {\n const contextLayer = Layer.mergeAll(\n Layer.succeed(PluginRegistryTag, registry),\n Layer.succeed(SecretsConfigTag, secrets),\n Layer.succeed(PluginMapTag, pluginMap),\n );\n\n const servicesLayer = Layer.mergeAll(\n ModuleFederationService.Default,\n SecretsService.Default,\n RegistryService.Default,\n PluginLifecycleService.Default,\n ).pipe(Layer.provide(contextLayer));\n\n return PluginService.Default.pipe(\n Layer.provide(PluginLoaderService.Default),\n Layer.provide(servicesLayer),\n );\n };\n}\n"],"mappings":";;;;;;;AAkBA,IAAa,gBAAb,MAAa,sBAAsB,OAAO,SAAwB,CAAC,iBAAiB,EAClF,QAAQ,OAAO,IAAI,aAAa;CAC9B,MAAM,SAAS,OAAO;CACtB,MAAM,YAAY,OAAO;AAEzB,QAAO;EACL,YAAY,OAAO;EACnB,mBAAmB,OAAO;EAC1B,kBAAkB,OAAO;EACzB,iBAAiB,WACf,OAAO,IAAI,aAAa;AAEtB,UAAO,OAAO,OAAO,UAAU,CAAC,KAAK,OAAO,eAAe,OAAO,KAAK,CAAC;AAGxE,UAAO,MAAM,MAAM,OAAO,OAAO,KAAK,QAAQ,OAAU,CAAC;AAGzD,UAAO,UAAU,WAAW,OAAO;IACnC;EACJ,SAAS,UAAU;EACpB;EACD,EACH,CAAC,CAAC;CACD,OAAO,QACL,UACA,SACA,YAAkD,EAAE,KACjD;EACH,MAAM,eAAe,MAAM,SACzB,MAAM,QAAQ,mBAAmB,SAAS,EAC1C,MAAM,QAAQ,kBAAkB,QAAQ,EACxC,MAAM,QAAQ,cAAc,UAAU,CACvC;EAED,MAAM,gBAAgB,MAAM,SAC1B,wBAAwB,SACxB,eAAe,SACf,gBAAgB,SAChB,uBAAuB,QACxB,CAAC,KAAK,MAAM,QAAQ,aAAa,CAAC;AAEnC,SAAO,cAAc,QAAQ,KAC3B,MAAM,QAAQ,oBAAoB,QAAQ,EAC1C,MAAM,QAAQ,cAAc,CAC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.service.cjs","names":["z","Context","Effect","PluginRuntimeError"],"sources":["../../../src/runtime/services/secrets.service.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { SecretsConfig } from \"../../types\";\nimport { PluginRuntimeError } from \"../errors\";\n\nconst configSchema = z.object({\n
|
|
1
|
+
{"version":3,"file":"secrets.service.cjs","names":["z","Context","Effect","PluginRuntimeError"],"sources":["../../../src/runtime/services/secrets.service.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { SecretsConfig } from \"../../types\";\nimport { PluginRuntimeError } from \"../errors\";\n\nconst configSchema = z\n .object({\n secrets: z.record(z.string(), z.unknown()),\n })\n .loose();\n\nexport class SecretsConfigTag extends Context.Tag(\"SecretsConfig\")<\n SecretsConfigTag,\n SecretsConfig\n>() {}\n\nexport class SecretsService extends Effect.Service<SecretsService>()(\"SecretsService\", {\n effect: Effect.gen(function* () {\n const secrets = yield* SecretsConfigTag;\n\n const hydrateValue = (value: unknown): unknown => {\n if (typeof value === \"string\") {\n let result = value;\n for (const [key, secretValue] of Object.entries(secrets)) {\n const pattern = new RegExp(`{{${key}}}`, \"g\");\n result = result.replace(pattern, String(secretValue));\n }\n return result;\n }\n\n if (Array.isArray(value)) {\n return value.map(hydrateValue);\n }\n\n if (value && typeof value === \"object\") {\n const isPlainObject = value.constructor === Object || value.constructor === undefined;\n\n if (isPlainObject) {\n const hydrated: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n hydrated[key] = hydrateValue(val);\n }\n return hydrated;\n }\n\n const hydrated = Object.create(Object.getPrototypeOf(value));\n for (const [key, val] of Object.entries(value)) {\n hydrated[key] = hydrateValue(val);\n }\n return hydrated;\n }\n\n return value;\n };\n\n return {\n hydrateSecrets: <T>(config: T) =>\n Effect.gen(function* () {\n const parseResult = configSchema.parse(config);\n try {\n return hydrateValue(parseResult) as T;\n } catch (error) {\n return yield* Effect.fail(\n new PluginRuntimeError({\n operation: \"hydrate-secrets\",\n cause: error instanceof Error ? error : new Error(String(error)),\n retryable: false,\n }),\n );\n }\n }),\n };\n }),\n}) {}\n"],"mappings":";;;;;;AAKA,MAAM,eAAeA,MAClB,OAAO,EACN,SAASA,MAAE,OAAOA,MAAE,QAAQ,EAAEA,MAAE,SAAS,CAAC,EAC3C,CAAC,CACD,OAAO;AAEV,IAAa,mBAAb,cAAsCC,eAAQ,IAAI,gBAAgB,EAG/D,CAAC;AAEJ,IAAa,iBAAb,cAAoCC,cAAO,SAAyB,CAAC,kBAAkB,EACrF,QAAQA,cAAO,IAAI,aAAa;CAC9B,MAAM,UAAU,OAAO;CAEvB,MAAM,gBAAgB,UAA4B;AAChD,MAAI,OAAO,UAAU,UAAU;GAC7B,IAAI,SAAS;AACb,QAAK,MAAM,CAAC,KAAK,gBAAgB,OAAO,QAAQ,QAAQ,EAAE;IACxD,MAAM,UAAU,IAAI,OAAO,KAAK,IAAI,KAAK,IAAI;AAC7C,aAAS,OAAO,QAAQ,SAAS,OAAO,YAAY,CAAC;;AAEvD,UAAO;;AAGT,MAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,aAAa;AAGhC,MAAI,SAAS,OAAO,UAAU,UAAU;AAGtC,OAFsB,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,QAEzD;IACjB,MAAM,WAAoC,EAAE;AAC5C,SAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,CAC5C,UAAS,OAAO,aAAa,IAAI;AAEnC,WAAO;;GAGT,MAAM,WAAW,OAAO,OAAO,OAAO,eAAe,MAAM,CAAC;AAC5D,QAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,CAC5C,UAAS,OAAO,aAAa,IAAI;AAEnC,UAAO;;AAGT,SAAO;;AAGT,QAAO,EACL,iBAAoB,WAClBA,cAAO,IAAI,aAAa;EACtB,MAAM,cAAc,aAAa,MAAM,OAAO;AAC9C,MAAI;AACF,UAAO,aAAa,YAAY;WACzB,OAAO;AACd,UAAO,OAAOA,cAAO,KACnB,IAAIC,kCAAmB;IACrB,WAAW;IACX,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,CAAC;IAChE,WAAW;IACZ,CAAC,CACH;;GAEH,EACL;EACD,EACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.service.d.cts","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"mappings":";;;;;cAG+C,qBAAA;
|
|
1
|
+
{"version":3,"file":"secrets.service.d.cts","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"mappings":";;;;;cAG+C,qBAAA;cAQlC,gBAAA,SAAyB,qBAAA;AAAA,cAGhC,mBAAA;;wBA0CkB,MAAA,EAAU,CAAA,KAAC,MAAA,CAAA,MAAA,CAAA,CAAA,EAAA,kBAAA;EAAA;;cAxCtB,cAAA,SAAuB,mBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.service.d.mts","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"mappings":";;;;;cAG+C,qBAAA;
|
|
1
|
+
{"version":3,"file":"secrets.service.d.mts","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"mappings":";;;;;cAG+C,qBAAA;cAQlC,gBAAA,SAAyB,qBAAA;AAAA,cAGhC,mBAAA;;wBA0CkB,MAAA,EAAU,CAAA,KAAC,MAAA,CAAA,MAAA,CAAA,CAAA,EAAA,kBAAA;EAAA;;cAxCtB,cAAA,SAAuB,mBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.service.mjs","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { SecretsConfig } from \"../../types\";\nimport { PluginRuntimeError } from \"../errors\";\n\nconst configSchema = z.object({\n
|
|
1
|
+
{"version":3,"file":"secrets.service.mjs","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { SecretsConfig } from \"../../types\";\nimport { PluginRuntimeError } from \"../errors\";\n\nconst configSchema = z\n .object({\n secrets: z.record(z.string(), z.unknown()),\n })\n .loose();\n\nexport class SecretsConfigTag extends Context.Tag(\"SecretsConfig\")<\n SecretsConfigTag,\n SecretsConfig\n>() {}\n\nexport class SecretsService extends Effect.Service<SecretsService>()(\"SecretsService\", {\n effect: Effect.gen(function* () {\n const secrets = yield* SecretsConfigTag;\n\n const hydrateValue = (value: unknown): unknown => {\n if (typeof value === \"string\") {\n let result = value;\n for (const [key, secretValue] of Object.entries(secrets)) {\n const pattern = new RegExp(`{{${key}}}`, \"g\");\n result = result.replace(pattern, String(secretValue));\n }\n return result;\n }\n\n if (Array.isArray(value)) {\n return value.map(hydrateValue);\n }\n\n if (value && typeof value === \"object\") {\n const isPlainObject = value.constructor === Object || value.constructor === undefined;\n\n if (isPlainObject) {\n const hydrated: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n hydrated[key] = hydrateValue(val);\n }\n return hydrated;\n }\n\n const hydrated = Object.create(Object.getPrototypeOf(value));\n for (const [key, val] of Object.entries(value)) {\n hydrated[key] = hydrateValue(val);\n }\n return hydrated;\n }\n\n return value;\n };\n\n return {\n hydrateSecrets: <T>(config: T) =>\n Effect.gen(function* () {\n const parseResult = configSchema.parse(config);\n try {\n return hydrateValue(parseResult) as T;\n } catch (error) {\n return yield* Effect.fail(\n new PluginRuntimeError({\n operation: \"hydrate-secrets\",\n cause: error instanceof Error ? error : new Error(String(error)),\n retryable: false,\n }),\n );\n }\n }),\n };\n }),\n}) {}\n"],"mappings":";;;;;AAKA,MAAM,eAAe,EAClB,OAAO,EACN,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC3C,CAAC,CACD,OAAO;AAEV,IAAa,mBAAb,cAAsC,QAAQ,IAAI,gBAAgB,EAG/D,CAAC;AAEJ,IAAa,iBAAb,cAAoC,OAAO,SAAyB,CAAC,kBAAkB,EACrF,QAAQ,OAAO,IAAI,aAAa;CAC9B,MAAM,UAAU,OAAO;CAEvB,MAAM,gBAAgB,UAA4B;AAChD,MAAI,OAAO,UAAU,UAAU;GAC7B,IAAI,SAAS;AACb,QAAK,MAAM,CAAC,KAAK,gBAAgB,OAAO,QAAQ,QAAQ,EAAE;IACxD,MAAM,UAAU,IAAI,OAAO,KAAK,IAAI,KAAK,IAAI;AAC7C,aAAS,OAAO,QAAQ,SAAS,OAAO,YAAY,CAAC;;AAEvD,UAAO;;AAGT,MAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,aAAa;AAGhC,MAAI,SAAS,OAAO,UAAU,UAAU;AAGtC,OAFsB,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,QAEzD;IACjB,MAAM,WAAoC,EAAE;AAC5C,SAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,CAC5C,UAAS,OAAO,aAAa,IAAI;AAEnC,WAAO;;GAGT,MAAM,WAAW,OAAO,OAAO,OAAO,eAAe,MAAM,CAAC;AAC5D,QAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,CAC5C,UAAS,OAAO,aAAa,IAAI;AAEnC,UAAO;;AAGT,SAAO;;AAGT,QAAO,EACL,iBAAoB,WAClB,OAAO,IAAI,aAAa;EACtB,MAAM,cAAc,aAAa,MAAM,OAAO;AAC9C,MAAI;AACF,UAAO,aAAa,YAAY;WACzB,OAAO;AACd,UAAO,OAAO,OAAO,KACnB,IAAI,mBAAmB;IACrB,WAAW;IACX,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,CAAC;IAChE,WAAW;IACZ,CAAC,CACH;;GAEH,EACL;EACD,EACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.cjs","names":["Effect","ValidationError"],"sources":["../../src/runtime/validation.ts"],"sourcesContent":["import { Effect } from \"effect\";\nimport type { z } from \"zod\";\nimport { ValidationError } from \"./errors\";\n\nexport const validate = <T>(\n
|
|
1
|
+
{"version":3,"file":"validation.cjs","names":["Effect","ValidationError"],"sources":["../../src/runtime/validation.ts"],"sourcesContent":["import { Effect } from \"effect\";\nimport type { z } from \"zod\";\nimport { ValidationError } from \"./errors\";\n\nexport const validate = <T>(\n schema: z.ZodSchema<T>,\n data: unknown,\n pluginId: string,\n stage: \"config\" | \"input\" | \"output\" | \"state\",\n): Effect.Effect<T, ValidationError> =>\n Effect.gen(function* () {\n const result = schema.safeParse(data);\n if (result.success) {\n return result.data;\n }\n return yield* Effect.fail(\n new ValidationError({\n pluginId,\n stage,\n zodError: result.error,\n }),\n );\n });\n"],"mappings":";;;;;AAIA,MAAa,YACX,QACA,MACA,UACA,UAEAA,cAAO,IAAI,aAAa;CACtB,MAAM,SAAS,OAAO,UAAU,KAAK;AACrC,KAAI,OAAO,QACT,QAAO,OAAO;AAEhB,QAAO,OAAOA,cAAO,KACnB,IAAIC,+BAAgB;EAClB;EACA;EACA,UAAU,OAAO;EAClB,CAAC,CACH;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.mjs","names":[],"sources":["../../src/runtime/validation.ts"],"sourcesContent":["import { Effect } from \"effect\";\nimport type { z } from \"zod\";\nimport { ValidationError } from \"./errors\";\n\nexport const validate = <T>(\n
|
|
1
|
+
{"version":3,"file":"validation.mjs","names":[],"sources":["../../src/runtime/validation.ts"],"sourcesContent":["import { Effect } from \"effect\";\nimport type { z } from \"zod\";\nimport { ValidationError } from \"./errors\";\n\nexport const validate = <T>(\n schema: z.ZodSchema<T>,\n data: unknown,\n pluginId: string,\n stage: \"config\" | \"input\" | \"output\" | \"state\",\n): Effect.Effect<T, ValidationError> =>\n Effect.gen(function* () {\n const result = schema.safeParse(data);\n if (result.success) {\n return result.data;\n }\n return yield* Effect.fail(\n new ValidationError({\n pluginId,\n stage,\n zodError: result.error,\n }),\n );\n });\n"],"mappings":";;;;AAIA,MAAa,YACX,QACA,MACA,UACA,UAEA,OAAO,IAAI,aAAa;CACtB,MAAM,SAAS,OAAO,UAAU,KAAK;AACrC,KAAI,OAAO,QACT,QAAO,OAAO;AAEhB,QAAO,OAAO,OAAO,KACnB,IAAI,gBAAgB;EAClB;EACA;EACA,UAAU,OAAO;EAClB,CAAC,CACH;EACD"}
|
package/dist/testing/index.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
1
2
|
const require_runtime_index = require('../runtime/index.cjs');
|
|
2
3
|
|
|
3
4
|
//#region src/testing/index.ts
|
|
@@ -30,7 +31,7 @@ function convertPluginMapToRegistry(oldRegistry, pluginMap) {
|
|
|
30
31
|
* { registry: { "my-plugin": { remoteUrl: "..." } }, secrets },
|
|
31
32
|
* { "my-plugin": MyPlugin }
|
|
32
33
|
* );
|
|
33
|
-
*
|
|
34
|
+
*
|
|
34
35
|
* // New API (recommended)
|
|
35
36
|
* const runtime = createPluginRuntime({
|
|
36
37
|
* registry: { "my-plugin": { module: MyPlugin } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["createPluginRuntime"],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["createPluginRuntime"],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type { LoadedPluginWithBinding } from \"../plugin\";\nimport { createPluginRuntime } from \"../runtime\";\nimport type { AnyPluginConstructor, PluginRegistryEntry, PluginRuntimeConfig } from \"../types\";\n\nexport type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;\n\n/**\n * Simplified type inference for local plugin maps.\n * Just use the constructor types directly.\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * type MyBindings = InferBindingsFromMap<typeof pluginMap>;\n * ```\n */\nexport type InferBindingsFromMap<T extends PluginMap> = {\n [K in keyof T]: T[K];\n};\n\n/**\n * Converts old pluginMap format to new registry format\n */\nfunction convertPluginMapToRegistry<T extends PluginMap>(\n oldRegistry: Record<string, { remoteUrl: string; version?: string; description?: string }>,\n pluginMap: T,\n): Record<keyof T, PluginRegistryEntry> {\n const registry: Record<string, PluginRegistryEntry> = {};\n\n for (const [pluginId, ctor] of Object.entries(pluginMap)) {\n const oldEntry = oldRegistry[pluginId];\n registry[pluginId] = {\n module: ctor as AnyPluginConstructor,\n remote: oldEntry?.remoteUrl,\n version: oldEntry?.version,\n description: oldEntry?.description,\n };\n }\n\n return registry as Record<keyof T, PluginRegistryEntry>;\n}\n\n/**\n * Creates a plugin runtime for locally available plugins (non-remote).\n * Automatically infers type bindings from the plugin map, eliminating\n * the need for manual RegistryBindings definitions.\n *\n * @deprecated Use `createPluginRuntime` with module entries directly instead.\n * @example\n * ```ts\n * // Old API (deprecated)\n * const runtime = createLocalPluginRuntime(\n * { registry: { \"my-plugin\": { remoteUrl: \"...\" } }, secrets },\n * { \"my-plugin\": MyPlugin }\n * );\n *\n * // New API (recommended)\n * const runtime = createPluginRuntime({\n * registry: { \"my-plugin\": { module: MyPlugin } },\n * secrets\n * });\n * ```\n */\nexport function createLocalPluginRuntime<TMap extends PluginMap>(\n config: {\n registry: Record<string, { remoteUrl: string; version?: string; description?: string }>;\n secrets?: Record<string, string>;\n options?: any;\n },\n pluginMap: TMap,\n) {\n const newRegistry = convertPluginMapToRegistry(config.registry, pluginMap);\n\n return createPluginRuntime({\n registry: newRegistry,\n secrets: config.secrets,\n options: config.options,\n });\n}\n\n/**\n * @deprecated Use `createLocalPluginRuntime` or `createPluginRuntime` instead.\n */\nexport const createTestPluginRuntime = createLocalPluginRuntime;\n\nexport type { EveryPlugin, PluginRegistry, RegisteredPlugins } from \"../types\";\nexport type { PluginRuntimeConfig };\n"],"mappings":";;;;;;;AAuBA,SAAS,2BACP,aACA,WACsC;CACtC,MAAM,WAAgD,EAAE;AAExD,MAAK,MAAM,CAAC,UAAU,SAAS,OAAO,QAAQ,UAAU,EAAE;EACxD,MAAM,WAAW,YAAY;AAC7B,WAAS,YAAY;GACnB,QAAQ;GACR,QAAQ,UAAU;GAClB,SAAS,UAAU;GACnB,aAAa,UAAU;GACxB;;AAGH,QAAO;;;;;;;;;;;;;;;;;;;;;;;AAwBT,SAAgB,yBACd,QAKA,WACA;AAGA,QAAOA,0CAAoB;EACzB,UAHkB,2BAA2B,OAAO,UAAU,UAAU;EAIxE,SAAS,OAAO;EAChB,SAAS,OAAO;EACjB,CAAC;;;;;AAMJ,MAAa,0BAA0B"}
|
package/dist/testing/index.d.cts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { LoadedPluginWithBinding } from "../plugin.cjs";
|
|
2
2
|
import { EveryPlugin, InferRegistryFromEntries, PluginRegistry, PluginRegistryEntry, PluginRuntimeConfig, RegisteredPlugins } from "../types.cjs";
|
|
3
3
|
import { PluginRuntime } from "../runtime/index.cjs";
|
|
4
|
-
import "../index.cjs";
|
|
5
|
-
|
|
6
4
|
//#region src/testing/index.d.ts
|
|
7
5
|
type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
|
|
8
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/testing/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/testing/index.ts"],"mappings":";;;;KAIY,SAAA,GAAY,MAAA,SAAe,uBAAA;;;;AAAvC;;;;;AAYA;;KAAY,oBAAA,WAA+B,SAAA,kBAC7B,CAAA,GAAI,CAAA,CAAE,CAAA;;;;;;;;;;;;;AA8CpB;;;;;;;;;iBAAgB,wBAAA,cAAsC,SAAA,CAAA,CACpD,MAAA;EACE,QAAA,EAAU,MAAA;IAAiB,SAAA;IAAmB,OAAA;IAAkB,WAAA;EAAA;EAChE,OAAA,GAAU,MAAA;EACV,OAAA;AAAA,GAEF,SAAA,EAAW,IAAA,GAAI,aAAA,CAAA,wBAAA,CAAA,MAAA,OAAA,IAAA,EAAA,mBAAA;;;;cAcJ,uBAAA,SAAuB,wBAAA"}
|
package/dist/testing/index.d.mts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { LoadedPluginWithBinding } from "../plugin.mjs";
|
|
2
2
|
import { EveryPlugin, InferRegistryFromEntries, PluginRegistry, PluginRegistryEntry, PluginRuntimeConfig, RegisteredPlugins } from "../types.mjs";
|
|
3
3
|
import { PluginRuntime } from "../runtime/index.mjs";
|
|
4
|
-
import "../index.mjs";
|
|
5
|
-
|
|
6
4
|
//#region src/testing/index.d.ts
|
|
7
5
|
type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
|
|
8
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/index.ts"],"mappings":";;;;KAIY,SAAA,GAAY,MAAA,SAAe,uBAAA;;;;AAAvC;;;;;AAYA;;KAAY,oBAAA,WAA+B,SAAA,kBAC7B,CAAA,GAAI,CAAA,CAAE,CAAA;;;;;;;;;;;;;AA8CpB;;;;;;;;;iBAAgB,wBAAA,cAAsC,SAAA,CAAA,CACpD,MAAA;EACE,QAAA,EAAU,MAAA;IAAiB,SAAA;IAAmB,OAAA;IAAkB,WAAA;EAAA;EAChE,OAAA,GAAU,MAAA;EACV,OAAA;AAAA,GAEF,SAAA,EAAW,IAAA,GAAI,aAAA,CAAA,wBAAA,CAAA,MAAA,OAAA,IAAA,EAAA,mBAAA;;;;cAcJ,uBAAA,SAAuB,wBAAA"}
|
package/dist/testing/index.mjs
CHANGED
|
@@ -30,7 +30,7 @@ function convertPluginMapToRegistry(oldRegistry, pluginMap) {
|
|
|
30
30
|
* { registry: { "my-plugin": { remoteUrl: "..." } }, secrets },
|
|
31
31
|
* { "my-plugin": MyPlugin }
|
|
32
32
|
* );
|
|
33
|
-
*
|
|
33
|
+
*
|
|
34
34
|
* // New API (recommended)
|
|
35
35
|
* const runtime = createPluginRuntime({
|
|
36
36
|
* registry: { "my-plugin": { module: MyPlugin } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type { LoadedPluginWithBinding } from \"../plugin\";\nimport { createPluginRuntime } from \"../runtime\";\nimport type { AnyPluginConstructor, PluginRegistryEntry, PluginRuntimeConfig } from \"../types\";\n\nexport type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;\n\n/**\n * Simplified type inference for local plugin maps.\n * Just use the constructor types directly.\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * type MyBindings = InferBindingsFromMap<typeof pluginMap>;\n * ```\n */\nexport type InferBindingsFromMap<T extends PluginMap> = {\n [K in keyof T]: T[K];\n};\n\n/**\n * Converts old pluginMap format to new registry format\n */\nfunction convertPluginMapToRegistry<T extends PluginMap>(\n oldRegistry: Record<string, { remoteUrl: string; version?: string; description?: string }>,\n pluginMap: T,\n): Record<keyof T, PluginRegistryEntry> {\n const registry: Record<string, PluginRegistryEntry> = {};\n\n for (const [pluginId, ctor] of Object.entries(pluginMap)) {\n const oldEntry = oldRegistry[pluginId];\n registry[pluginId] = {\n module: ctor as AnyPluginConstructor,\n remote: oldEntry?.remoteUrl,\n version: oldEntry?.version,\n description: oldEntry?.description,\n };\n }\n\n return registry as Record<keyof T, PluginRegistryEntry>;\n}\n\n/**\n * Creates a plugin runtime for locally available plugins (non-remote).\n * Automatically infers type bindings from the plugin map, eliminating\n * the need for manual RegistryBindings definitions.\n *\n * @deprecated Use `createPluginRuntime` with module entries directly instead.\n * @example\n * ```ts\n * // Old API (deprecated)\n * const runtime = createLocalPluginRuntime(\n * { registry: { \"my-plugin\": { remoteUrl: \"...\" } }, secrets },\n * { \"my-plugin\": MyPlugin }\n * );\n *\n * // New API (recommended)\n * const runtime = createPluginRuntime({\n * registry: { \"my-plugin\": { module: MyPlugin } },\n * secrets\n * });\n * ```\n */\nexport function createLocalPluginRuntime<TMap extends PluginMap>(\n config: {\n registry: Record<string, { remoteUrl: string; version?: string; description?: string }>;\n secrets?: Record<string, string>;\n options?: any;\n },\n pluginMap: TMap,\n) {\n const newRegistry = convertPluginMapToRegistry(config.registry, pluginMap);\n\n return createPluginRuntime({\n registry: newRegistry,\n secrets: config.secrets,\n options: config.options,\n });\n}\n\n/**\n * @deprecated Use `createLocalPluginRuntime` or `createPluginRuntime` instead.\n */\nexport const createTestPluginRuntime = createLocalPluginRuntime;\n\nexport type { EveryPlugin, PluginRegistry, RegisteredPlugins } from \"../types\";\nexport type { PluginRuntimeConfig };\n"],"mappings":";;;;;;AAuBA,SAAS,2BACP,aACA,WACsC;CACtC,MAAM,WAAgD,EAAE;AAExD,MAAK,MAAM,CAAC,UAAU,SAAS,OAAO,QAAQ,UAAU,EAAE;EACxD,MAAM,WAAW,YAAY;AAC7B,WAAS,YAAY;GACnB,QAAQ;GACR,QAAQ,UAAU;GAClB,SAAS,UAAU;GACnB,aAAa,UAAU;GACxB;;AAGH,QAAO;;;;;;;;;;;;;;;;;;;;;;;AAwBT,SAAgB,yBACd,QAKA,WACA;AAGA,QAAO,oBAAoB;EACzB,UAHkB,2BAA2B,OAAO,UAAU,UAAU;EAIxE,SAAS,OAAO;EAChB,SAAS,OAAO;EACjB,CAAC;;;;;AAMJ,MAAa,0BAA0B"}
|
package/dist/types.d.cts
CHANGED
|
@@ -59,8 +59,8 @@ type InferRegistryFromEntries<R extends Record<string, PluginRegistryEntry>> = {
|
|
|
59
59
|
module: infer M;
|
|
60
60
|
} ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never };
|
|
61
61
|
/**
|
|
62
|
-
* Extract contract type from plugin binding
|
|
63
|
-
*/
|
|
62
|
+
* Extract contract type from plugin binding
|
|
63
|
+
*/
|
|
64
64
|
type PluginContract<T> = T extends {
|
|
65
65
|
binding: {
|
|
66
66
|
contract: infer C extends AnyContractRouter;
|
|
@@ -193,10 +193,10 @@ type VerifyPluginBinding<K extends keyof R, R = RegisteredPlugins> = R[K] extend
|
|
|
193
193
|
context: AnySchema | undefined;
|
|
194
194
|
} ? 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.`;
|
|
195
195
|
/**
|
|
196
|
-
* Result of runtime.usePlugin() call
|
|
197
|
-
* @param K - The plugin key
|
|
198
|
-
* @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
|
|
199
|
-
*/
|
|
196
|
+
* Result of runtime.usePlugin() call
|
|
197
|
+
* @param K - The plugin key
|
|
198
|
+
* @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
|
|
199
|
+
*/
|
|
200
200
|
type UsePluginResult<K extends keyof R, R = RegisteredPlugins> = VerifyPluginBinding<K, R> extends true ? {
|
|
201
201
|
readonly createClient: (context?: PluginContextInput<R[K]>) => PluginClientType<R[K]>;
|
|
202
202
|
readonly router: PluginRouterType<R[K]>;
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|
package/dist/types.d.mts
CHANGED
|
@@ -59,8 +59,8 @@ type InferRegistryFromEntries<R extends Record<string, PluginRegistryEntry>> = {
|
|
|
59
59
|
module: infer M;
|
|
60
60
|
} ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never };
|
|
61
61
|
/**
|
|
62
|
-
* Extract contract type from plugin binding
|
|
63
|
-
*/
|
|
62
|
+
* Extract contract type from plugin binding
|
|
63
|
+
*/
|
|
64
64
|
type PluginContract<T> = T extends {
|
|
65
65
|
binding: {
|
|
66
66
|
contract: infer C extends AnyContractRouter;
|
|
@@ -193,10 +193,10 @@ type VerifyPluginBinding<K extends keyof R, R = RegisteredPlugins> = R[K] extend
|
|
|
193
193
|
context: AnySchema | undefined;
|
|
194
194
|
} ? 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.`;
|
|
195
195
|
/**
|
|
196
|
-
* Result of runtime.usePlugin() call
|
|
197
|
-
* @param K - The plugin key
|
|
198
|
-
* @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
|
|
199
|
-
*/
|
|
196
|
+
* Result of runtime.usePlugin() call
|
|
197
|
+
* @param K - The plugin key
|
|
198
|
+
* @param R - The registry type (defaults to RegisteredPlugins for module augmentation pattern)
|
|
199
|
+
*/
|
|
200
200
|
type UsePluginResult<K extends keyof R, R = RegisteredPlugins> = VerifyPluginBinding<K, R> extends true ? {
|
|
201
201
|
readonly createClient: (context?: PluginContextInput<R[K]>) => PluginClientType<R[K]>;
|
|
202
202
|
readonly router: PluginRouterType<R[K]>;
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|
package/dist/zod.cjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
2
3
|
|
|
3
4
|
//#region src/zod.ts
|
|
4
|
-
var zod_exports = {};
|
|
5
|
-
|
|
5
|
+
var zod_exports = /* @__PURE__ */ require_runtime.__exportAll({});
|
|
6
|
+
require_runtime.__reExport(zod_exports, require("zod"));
|
|
6
7
|
|
|
7
8
|
//#endregion
|
|
8
9
|
Object.defineProperty(exports, 'zod_exports', {
|
package/dist/zod.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { __reExport } from "./_virtual/
|
|
1
|
+
import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.mjs";
|
|
2
2
|
|
|
3
3
|
export * from "zod"
|
|
4
4
|
|
|
5
5
|
//#region src/zod.ts
|
|
6
|
-
var zod_exports = {};
|
|
6
|
+
var zod_exports = /* @__PURE__ */ __exportAll({});
|
|
7
7
|
import * as import_zod from "zod";
|
|
8
8
|
__reExport(zod_exports, import_zod);
|
|
9
9
|
|