every-plugin 2.9.6 → 2.10.1

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 (125) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +1 -1
  2. package/dist/build/rspack/dev-server-middleware.cjs +57 -3
  3. package/dist/build/rspack/dev-server-middleware.cjs.map +1 -1
  4. package/dist/build/rspack/dev-server-middleware.mjs +57 -3
  5. package/dist/build/rspack/dev-server-middleware.mjs.map +1 -1
  6. package/dist/build/rspack/fix-mf-data-uri-plugin.cjs.map +1 -1
  7. package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts +0 -1
  8. package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts.map +1 -1
  9. package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts +0 -1
  10. package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts.map +1 -1
  11. package/dist/build/rspack/fix-mf-data-uri-plugin.mjs.map +1 -1
  12. package/dist/build/rspack/module-federation.cjs.map +1 -1
  13. package/dist/build/rspack/module-federation.mjs.map +1 -1
  14. package/dist/build/rspack/plugin.cjs +2 -0
  15. package/dist/build/rspack/plugin.cjs.map +1 -1
  16. package/dist/build/rspack/plugin.d.cts +1 -2
  17. package/dist/build/rspack/plugin.d.cts.map +1 -1
  18. package/dist/build/rspack/plugin.d.mts +1 -2
  19. package/dist/build/rspack/plugin.d.mts.map +1 -1
  20. package/dist/build/rspack/plugin.mjs +2 -0
  21. package/dist/build/rspack/plugin.mjs.map +1 -1
  22. package/dist/build/rspack/utils.cjs.map +1 -1
  23. package/dist/build/rspack/utils.mjs.map +1 -1
  24. package/dist/build/shared-deps.cjs +0 -1
  25. package/dist/build/shared-deps.cjs.map +1 -1
  26. package/dist/build/shared-deps.d.cts.map +1 -1
  27. package/dist/build/shared-deps.d.mts.map +1 -1
  28. package/dist/build/shared-deps.mjs.map +1 -1
  29. package/dist/errors.cjs +0 -1
  30. package/dist/errors.cjs.map +1 -1
  31. package/dist/errors.d.cts +0 -1
  32. package/dist/errors.d.cts.map +1 -1
  33. package/dist/errors.d.mts +0 -1
  34. package/dist/errors.d.mts.map +1 -1
  35. package/dist/errors.mjs.map +1 -1
  36. package/dist/index.cjs +1 -0
  37. package/dist/index.d.cts +2 -2
  38. package/dist/index.d.mts +2 -2
  39. package/dist/index.mjs +2 -2
  40. package/dist/orpc.cjs +0 -1
  41. package/dist/plugin.cjs +2 -1
  42. package/dist/plugin.cjs.map +1 -1
  43. package/dist/plugin.d.cts +3 -2
  44. package/dist/plugin.d.cts.map +1 -1
  45. package/dist/plugin.d.mts +3 -2
  46. package/dist/plugin.d.mts.map +1 -1
  47. package/dist/plugin.mjs +3 -2
  48. package/dist/plugin.mjs.map +1 -1
  49. package/dist/runtime/errors.cjs +0 -1
  50. package/dist/runtime/errors.cjs.map +1 -1
  51. package/dist/runtime/errors.d.cts +3 -5
  52. package/dist/runtime/errors.d.cts.map +1 -1
  53. package/dist/runtime/errors.d.mts +3 -5
  54. package/dist/runtime/errors.d.mts.map +1 -1
  55. package/dist/runtime/errors.mjs.map +1 -1
  56. package/dist/runtime/index.cjs +4 -2
  57. package/dist/runtime/index.cjs.map +1 -1
  58. package/dist/runtime/index.d.cts +0 -1
  59. package/dist/runtime/index.d.cts.map +1 -1
  60. package/dist/runtime/index.d.mts +0 -1
  61. package/dist/runtime/index.d.mts.map +1 -1
  62. package/dist/runtime/index.mjs +4 -1
  63. package/dist/runtime/index.mjs.map +1 -1
  64. package/dist/runtime/mf-config.cjs +1 -2
  65. package/dist/runtime/mf-config.cjs.map +1 -1
  66. package/dist/runtime/mf-config.d.cts.map +1 -1
  67. package/dist/runtime/mf-config.d.mts.map +1 -1
  68. package/dist/runtime/mf-config.mjs +1 -1
  69. package/dist/runtime/mf-config.mjs.map +1 -1
  70. package/dist/runtime/services/module-federation.service.cjs +0 -1
  71. package/dist/runtime/services/module-federation.service.cjs.map +1 -1
  72. package/dist/runtime/services/module-federation.service.d.cts +0 -1
  73. package/dist/runtime/services/module-federation.service.d.cts.map +1 -1
  74. package/dist/runtime/services/module-federation.service.d.mts +0 -1
  75. package/dist/runtime/services/module-federation.service.d.mts.map +1 -1
  76. package/dist/runtime/services/module-federation.service.mjs.map +1 -1
  77. package/dist/runtime/services/normalize.cjs.map +1 -1
  78. package/dist/runtime/services/normalize.d.cts.map +1 -1
  79. package/dist/runtime/services/normalize.d.mts.map +1 -1
  80. package/dist/runtime/services/normalize.mjs.map +1 -1
  81. package/dist/runtime/services/plugin-lifecycle.service.cjs +0 -1
  82. package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -1
  83. package/dist/runtime/services/plugin-lifecycle.service.d.cts +0 -1
  84. package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +1 -1
  85. package/dist/runtime/services/plugin-lifecycle.service.d.mts +0 -1
  86. package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +1 -1
  87. package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -1
  88. package/dist/runtime/services/plugin-loader.service.cjs +2 -2
  89. package/dist/runtime/services/plugin-loader.service.cjs.map +1 -1
  90. package/dist/runtime/services/plugin-loader.service.d.cts +1 -2
  91. package/dist/runtime/services/plugin-loader.service.d.cts.map +1 -1
  92. package/dist/runtime/services/plugin-loader.service.d.mts +1 -2
  93. package/dist/runtime/services/plugin-loader.service.d.mts.map +1 -1
  94. package/dist/runtime/services/plugin-loader.service.mjs +2 -1
  95. package/dist/runtime/services/plugin-loader.service.mjs.map +1 -1
  96. package/dist/runtime/services/plugin.service.cjs +0 -1
  97. package/dist/runtime/services/plugin.service.cjs.map +1 -1
  98. package/dist/runtime/services/plugin.service.d.cts +5 -6
  99. package/dist/runtime/services/plugin.service.d.cts.map +1 -1
  100. package/dist/runtime/services/plugin.service.d.mts +5 -6
  101. package/dist/runtime/services/plugin.service.d.mts.map +1 -1
  102. package/dist/runtime/services/plugin.service.mjs.map +1 -1
  103. package/dist/runtime/services/secrets.service.cjs.map +1 -1
  104. package/dist/runtime/services/secrets.service.d.cts +1 -2
  105. package/dist/runtime/services/secrets.service.d.cts.map +1 -1
  106. package/dist/runtime/services/secrets.service.d.mts +1 -2
  107. package/dist/runtime/services/secrets.service.d.mts.map +1 -1
  108. package/dist/runtime/services/secrets.service.mjs.map +1 -1
  109. package/dist/runtime/validation.cjs +0 -1
  110. package/dist/runtime/validation.cjs.map +1 -1
  111. package/dist/runtime/validation.mjs.map +1 -1
  112. package/dist/testing/index.cjs.map +1 -1
  113. package/dist/testing/index.d.cts +2 -1
  114. package/dist/testing/index.d.cts.map +1 -1
  115. package/dist/testing/index.d.mts +2 -1
  116. package/dist/testing/index.d.mts.map +1 -1
  117. package/dist/testing/index.mjs.map +1 -1
  118. package/dist/types.d.cts +1 -2
  119. package/dist/types.d.cts.map +1 -1
  120. package/dist/types.d.mts +1 -2
  121. package/dist/types.d.mts.map +1 -1
  122. package/package.json +6 -6
  123. package/src/build/rspack/dev-server-middleware.ts +81 -7
  124. package/src/plugin.ts +3 -1
  125. package/src/runtime/services/plugin-loader.service.ts +2 -1
@@ -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";
5
6
  import { Effect, Layer, Scope } from "effect";
6
- import * as _$_orpc_contract0 from "@orpc/contract";
7
-
8
7
  //#region src/runtime/services/plugin.service.d.ts
9
8
  declare const PluginService_base: Effect.Service.Class<PluginService, "PluginService", {
10
9
  readonly scoped: Effect.Effect<{
@@ -17,14 +16,14 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
17
16
  metadata: PluginMetadata;
18
17
  }, PluginRuntimeError, never>;
19
18
  initializePlugin: <T extends AnyPlugin>(pluginInstance: PluginInstance<T>, config: {
20
- variables: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
21
- secrets: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
19
+ variables: import("@orpc/contract").InferSchemaInput<T["configSchema"]["variables"]>;
20
+ secrets: import("@orpc/contract").InferSchemaInput<T["configSchema"]["secrets"]>;
22
21
  }, plugins?: Record<string, unknown>) => Effect.Effect<{
23
22
  plugin: T;
24
23
  metadata: PluginMetadata;
25
24
  config: {
26
- variables: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
27
- secrets: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
25
+ variables: import("@orpc/contract").InferSchemaOutput<T["configSchema"]["variables"]>;
26
+ secrets: import("@orpc/contract").InferSchemaOutput<T["configSchema"]["secrets"]>;
28
27
  };
29
28
  context: any;
30
29
  scope: Scope.CloseableScope;
@@ -1 +1 @@
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;6BAC5B,iBAAA,CAAkB,SAAA,MAAU,MAAA,CAAA,MAAA;;;;cAV9C,aAAA,SAAsB,kBAAA;EAAA,OA4B1B,IAAA,GACL,QAAA,EAAU,cAAA,EACV,OAAA,EAAS,aAAA,EACT,SAAA,GAAW,MAAA,SAAe,oBAAA,MAA0B,KAAA,CAAA,KAAA,CAAA,aAAA;AAAA"}
1
+ {"version":3,"file":"plugin.service.d.cts","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2B+B,iBAAA,QAAA,kBAAkB,eAAU,OAAA;IAC5B,iBAAA,QAAA,kBAAkB,eAAU,OAAA;;;;cAV9C,sBAAsB;SA4B1B,OACL,UAAU,gBACV,SAAS,eACT,YAAW,eAAe,0BAA0B,MAAA,MAAA"}
@@ -2,9 +2,8 @@ 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 * as _$_orpc_contract0 from "@orpc/contract";
5
+ import "../../index.mjs";
6
6
  import { Effect, Layer, Scope } from "effect";
7
-
8
7
  //#region src/runtime/services/plugin.service.d.ts
9
8
  declare const PluginService_base: Effect.Service.Class<PluginService, "PluginService", {
10
9
  readonly scoped: Effect.Effect<{
@@ -17,14 +16,14 @@ declare const PluginService_base: Effect.Service.Class<PluginService, "PluginSer
17
16
  metadata: PluginMetadata;
18
17
  }, PluginRuntimeError, never>;
19
18
  initializePlugin: <T extends AnyPlugin>(pluginInstance: PluginInstance<T>, config: {
20
- variables: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
21
- secrets: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
19
+ variables: import("@orpc/contract").InferSchemaInput<T["configSchema"]["variables"]>;
20
+ secrets: import("@orpc/contract").InferSchemaInput<T["configSchema"]["secrets"]>;
22
21
  }, plugins?: Record<string, unknown>) => Effect.Effect<{
23
22
  plugin: T;
24
23
  metadata: PluginMetadata;
25
24
  config: {
26
- variables: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
27
- secrets: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
25
+ variables: import("@orpc/contract").InferSchemaOutput<T["configSchema"]["variables"]>;
26
+ secrets: import("@orpc/contract").InferSchemaOutput<T["configSchema"]["secrets"]>;
28
27
  };
29
28
  context: any;
30
29
  scope: Scope.CloseableScope;
@@ -1 +1 @@
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;6BAC5B,iBAAA,CAAkB,SAAA,MAAU,MAAA,CAAA,MAAA;;;;cAV9C,aAAA,SAAsB,kBAAA;EAAA,OA4B1B,IAAA,GACL,QAAA,EAAU,cAAA,EACV,OAAA,EAAS,aAAA,EACT,SAAA,GAAW,MAAA,SAAe,oBAAA,MAA0B,KAAA,CAAA,KAAA,CAAA,aAAA;AAAA"}
1
+ {"version":3,"file":"plugin.service.d.mts","names":[],"sources":["../../../src/runtime/services/plugin.service.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2B+B,iBAAA,QAAA,kBAAkB,eAAU,OAAA;IAC5B,iBAAA,QAAA,kBAAkB,eAAU,OAAA;;;;cAV9C,sBAAsB;SA4B1B,OACL,UAAU,gBACV,SAAS,eACT,YAAW,eAAe,0BAA0B,MAAA,MAAA"}
@@ -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 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 registerPlugin: (plugin: InitializedPlugin<AnyPlugin>) => lifecycle.register(plugin),\n shutdownPlugin: (plugin: InitializedPlugin<AnyPlugin>) =>\n Effect.gen(function* () {\n yield* plugin.plugin\n .shutdown()\n .pipe(\n Effect.catchAll((error) =>\n Effect.logWarning(`Failed to shutdown plugin ${plugin.plugin.id}`, error),\n ),\n );\n\n yield* Scope.close(plugin.scope, Exit.succeed(undefined));\n\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,WAAyC,UAAU,SAAS,OAAO;EACpF,iBAAiB,WACf,OAAO,IAAI,aAAa;AACtB,UAAO,OAAO,OACX,UAAU,CACV,KACC,OAAO,UAAU,UACf,OAAO,WAAW,6BAA6B,OAAO,OAAO,MAAM,MAAM,CAC1E,CACF;AAEH,UAAO,MAAM,MAAM,OAAO,OAAO,KAAK,QAAQ,OAAU,CAAC;AAEzD,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
+ {"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 registerPlugin: (plugin: InitializedPlugin<AnyPlugin>) => lifecycle.register(plugin),\n shutdownPlugin: (plugin: InitializedPlugin<AnyPlugin>) =>\n Effect.gen(function* () {\n yield* plugin.plugin\n .shutdown()\n .pipe(\n Effect.catchAll((error) =>\n Effect.logWarning(`Failed to shutdown plugin ${plugin.plugin.id}`, error),\n ),\n );\n\n yield* Scope.close(plugin.scope, Exit.succeed(undefined));\n\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,QAAuB,CAAC,CAAC,iBAAiB,EAClF,QAAQ,OAAO,IAAI,aAAa;CAC9B,MAAM,SAAS,OAAO;CACtB,MAAM,YAAY,OAAO;CAEzB,OAAO;EACL,YAAY,OAAO;EACnB,mBAAmB,OAAO;EAC1B,kBAAkB,OAAO;EACzB,iBAAiB,WAAyC,UAAU,SAAS,MAAM;EACnF,iBAAiB,WACf,OAAO,IAAI,aAAa;GACtB,OAAO,OAAO,OACX,SAAS,CAAC,CACV,KACC,OAAO,UAAU,UACf,OAAO,WAAW,6BAA6B,OAAO,OAAO,MAAM,KAAK,CAC1E,CACF;GAEF,OAAO,MAAM,MAAM,OAAO,OAAO,KAAK,QAAQ,MAAS,CAAC;GAExD,OAAO,UAAU,WAAW,MAAM;EACpC,CAAC;EACH,SAAS,UAAU;CACrB;AACF,CAAC,EACH,CAAC,CAAC,CAAC;CACD,OAAO,QACL,UACA,SACA,YAAkD,CAAC,MAChD;EACH,MAAM,eAAe,MAAM,SACzB,MAAM,QAAQ,mBAAmB,QAAQ,GACzC,MAAM,QAAQ,kBAAkB,OAAO,GACvC,MAAM,QAAQ,cAAc,SAAS,CACvC;EAEA,MAAM,gBAAgB,MAAM,SAC1B,wBAAwB,SACxB,eAAe,SACf,gBAAgB,SAChB,uBAAuB,OACzB,CAAC,CAAC,KAAK,MAAM,QAAQ,YAAY,CAAC;EAElC,OAAO,cAAc,QAAQ,KAC3B,MAAM,QAAQ,oBAAoB,OAAO,GACzC,MAAM,QAAQ,aAAa,CAC7B;CACF;AACF"}
@@ -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 * as 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 .passthrough();\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,IAClB,OAAO,EACN,SAASA,IAAE,OAAOA,IAAE,QAAQ,EAAEA,IAAE,SAAS,CAAC,EAC3C,CAAC,CACD,aAAa;AAEhB,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
+ {"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 * as 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 .passthrough();\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,IAClB,OAAO,EACN,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAC3C,CAAC,CAAC,CACD,YAAY;AAEf,IAAa,mBAAb,cAAsCC,eAAQ,IAAI,eAAe,CAAC,CAGhE,CAAC,CAAC,CAAC;AAEL,IAAa,iBAAb,cAAoCC,cAAO,QAAwB,CAAC,CAAC,kBAAkB,EACrF,QAAQA,cAAO,IAAI,aAAa;CAC9B,MAAM,UAAU,OAAO;CAEvB,MAAM,gBAAgB,UAA4B;EAChD,IAAI,OAAO,UAAU,UAAU;GAC7B,IAAI,SAAS;GACb,KAAK,MAAM,CAAC,KAAK,gBAAgB,OAAO,QAAQ,OAAO,GAAG;IACxD,MAAM,UAAU,IAAI,OAAO,KAAK,IAAI,KAAK,GAAG;IAC5C,SAAS,OAAO,QAAQ,SAAS,OAAO,WAAW,CAAC;GACtD;GACA,OAAO;EACT;EAEA,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,IAAI,YAAY;EAG/B,IAAI,SAAS,OAAO,UAAU,UAAU;GAGtC,IAFsB,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,QAEzD;IACjB,MAAM,WAAoC,CAAC;IAC3C,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAC3C,SAAS,OAAO,aAAa,GAAG;IAElC,OAAO;GACT;GAEA,MAAM,WAAW,OAAO,OAAO,OAAO,eAAe,KAAK,CAAC;GAC3D,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAC3C,SAAS,OAAO,aAAa,GAAG;GAElC,OAAO;EACT;EAEA,OAAO;CACT;CAEA,OAAO,EACL,iBAAoB,WAClBA,cAAO,IAAI,aAAa;EACtB,MAAM,cAAc,aAAa,MAAM,MAAM;EAC7C,IAAI;GACF,OAAO,aAAa,WAAW;EACjC,SAAS,OAAO;GACd,OAAO,OAAOA,cAAO,KACnB,IAAIC,kCAAmB;IACrB,WAAW;IACX,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;IAC/D,WAAW;GACb,CAAC,CACH;EACF;CACF,CAAC,EACL;AACF,CAAC,EACH,CAAC,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { PluginRuntimeError } from "../errors.cjs";
2
2
  import { SecretsConfig } from "../../types.cjs";
3
3
  import { Context, Effect } from "effect";
4
-
5
4
  //#region src/runtime/services/secrets.service.d.ts
6
5
  declare const SecretsConfigTag_base: Context.TagClass<SecretsConfigTag, "SecretsConfig", SecretsConfig>;
7
6
  declare class SecretsConfigTag extends SecretsConfigTag_base {}
@@ -12,5 +11,5 @@ declare const SecretsService_base: Effect.Service.Class<SecretsService, "Secrets
12
11
  }>;
13
12
  declare class SecretsService extends SecretsService_base {}
14
13
  //#endregion
15
- export { SecretsService };
14
+ export { SecretsConfigTag, SecretsService };
16
15
  //# sourceMappingURL=secrets.service.d.cts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"secrets.service.d.cts","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"mappings":";;;;;cAWa,yBAAyB;;;IA6Cf,iBAAA,GAAC,QAAU,MAAC,OAAA,OAAA,GAAA;;;cAxCtB,uBAAuB"}
@@ -1,7 +1,6 @@
1
1
  import { PluginRuntimeError } from "../errors.mjs";
2
2
  import { SecretsConfig } from "../../types.mjs";
3
3
  import { Context, Effect } from "effect";
4
-
5
4
  //#region src/runtime/services/secrets.service.d.ts
6
5
  declare const SecretsConfigTag_base: Context.TagClass<SecretsConfigTag, "SecretsConfig", SecretsConfig>;
7
6
  declare class SecretsConfigTag extends SecretsConfigTag_base {}
@@ -12,5 +11,5 @@ declare const SecretsService_base: Effect.Service.Class<SecretsService, "Secrets
12
11
  }>;
13
12
  declare class SecretsService extends SecretsService_base {}
14
13
  //#endregion
15
- export { SecretsService };
14
+ export { SecretsConfigTag, SecretsService };
16
15
  //# sourceMappingURL=secrets.service.d.mts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"secrets.service.d.mts","names":[],"sources":["../../../src/runtime/services/secrets.service.ts"],"mappings":";;;;;cAWa,yBAAyB;;;IA6Cf,iBAAA,GAAC,QAAU,MAAC,OAAA,OAAA,GAAA;;;cAxCtB,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.service.mjs","names":["z"],"sources":["../../../src/runtime/services/secrets.service.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\nimport * as 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 .passthrough();\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,IAClB,OAAO,EACN,SAASA,IAAE,OAAOA,IAAE,QAAQ,EAAEA,IAAE,SAAS,CAAC,EAC3C,CAAC,CACD,aAAa;AAEhB,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
+ {"version":3,"file":"secrets.service.mjs","names":["z"],"sources":["../../../src/runtime/services/secrets.service.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\nimport * as 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 .passthrough();\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,IAClB,OAAO,EACN,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAC3C,CAAC,CAAC,CACD,YAAY;AAEf,IAAa,mBAAb,cAAsC,QAAQ,IAAI,eAAe,CAAC,CAGhE,CAAC,CAAC,CAAC;AAEL,IAAa,iBAAb,cAAoC,OAAO,QAAwB,CAAC,CAAC,kBAAkB,EACrF,QAAQ,OAAO,IAAI,aAAa;CAC9B,MAAM,UAAU,OAAO;CAEvB,MAAM,gBAAgB,UAA4B;EAChD,IAAI,OAAO,UAAU,UAAU;GAC7B,IAAI,SAAS;GACb,KAAK,MAAM,CAAC,KAAK,gBAAgB,OAAO,QAAQ,OAAO,GAAG;IACxD,MAAM,UAAU,IAAI,OAAO,KAAK,IAAI,KAAK,GAAG;IAC5C,SAAS,OAAO,QAAQ,SAAS,OAAO,WAAW,CAAC;GACtD;GACA,OAAO;EACT;EAEA,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,IAAI,YAAY;EAG/B,IAAI,SAAS,OAAO,UAAU,UAAU;GAGtC,IAFsB,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,QAEzD;IACjB,MAAM,WAAoC,CAAC;IAC3C,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAC3C,SAAS,OAAO,aAAa,GAAG;IAElC,OAAO;GACT;GAEA,MAAM,WAAW,OAAO,OAAO,OAAO,eAAe,KAAK,CAAC;GAC3D,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAC3C,SAAS,OAAO,aAAa,GAAG;GAElC,OAAO;EACT;EAEA,OAAO;CACT;CAEA,OAAO,EACL,iBAAoB,WAClB,OAAO,IAAI,aAAa;EACtB,MAAM,cAAc,aAAa,MAAM,MAAM;EAC7C,IAAI;GACF,OAAO,aAAa,WAAW;EACjC,SAAS,OAAO;GACd,OAAO,OAAO,OAAO,KACnB,IAAI,mBAAmB;IACrB,WAAW;IACX,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;IAC/D,WAAW;GACb,CAAC,CACH;EACF;CACF,CAAC,EACL;AACF,CAAC,EACH,CAAC,CAAC,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
1
  const require_errors = require('./errors.cjs');
3
2
  let effect = require("effect");
4
3
 
@@ -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 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
+ {"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,IAAI;CACpC,IAAI,OAAO,SACT,OAAO,OAAO;CAEhB,OAAO,OAAOA,cAAO,KACnB,IAAIC,+BAAgB;EAClB;EACA;EACA,UAAU,OAAO;CACnB,CAAC,CACH;AACF,CAAC"}
@@ -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 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"}
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,IAAI;CACpC,IAAI,OAAO,SACT,OAAO,OAAO;CAEhB,OAAO,OAAO,OAAO,KACnB,IAAI,gBAAgB;EAClB;EACA;EACA,UAAU,OAAO;CACnB,CAAC,CACH;AACF,CAAC"}
@@ -1 +1 @@
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,UAGzC;EACrB,SAAS,OAAO;EAChB,SAAS,OAAO;EACjB,CAAC;;;;;AAMJ,MAAa,0BAA0B"}
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,CAAC;CAEvD,KAAK,MAAM,CAAC,UAAU,SAAS,OAAO,QAAQ,SAAS,GAAG;EACxD,MAAM,WAAW,YAAY;EAC7B,SAAS,YAAY;GACnB,QAAQ;GACR,QAAQ,UAAU;GAClB,SAAS,UAAU;GACnB,aAAa,UAAU;EACzB;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgB,yBACd,QAKA,WACA;CAGA,OAAOA,0CAAoB;EACzB,UAHkB,2BAA2B,OAAO,UAAU,SAG1C;EACpB,SAAS,OAAO;EAChB,SAAS,OAAO;CAClB,CAAC;AACH;;;;AAKA,MAAa,0BAA0B"}
@@ -1,6 +1,7 @@
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";
4
5
  //#region src/testing/index.d.ts
5
6
  type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
6
7
  /**
@@ -13,7 +14,7 @@ type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
13
14
  * type MyBindings = InferBindingsFromMap<typeof pluginMap>;
14
15
  * ```
15
16
  */
16
- type InferBindingsFromMap<T extends PluginMap> = { [K in keyof T]: T[K] };
17
+ type InferBindingsFromMap<T extends PluginMap> = { [K in keyof T]: T[K]; };
17
18
  /**
18
19
  * Creates a plugin runtime for locally available plugins (non-remote).
19
20
  * Automatically infers type bindings from the plugin map, eliminating
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/testing/index.ts"],"mappings":";;;;;KAIY,YAAY,eAAe;;;;;;;;;;;KAY3B,qBAAqB,UAAU,gBACxC,WAAW,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;iBA8CJ,yBAAyB,aAAa,WACpD;EACE,UAAU;IAAiB;IAAmB;IAAkB;;EAChE,UAAU;EACV;GAEF,WAAW,OAAI,cAAA,yBAAA,aAAA,MAAA;;;;cAcJ,gCAAuB"}
@@ -1,6 +1,7 @@
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";
4
5
  //#region src/testing/index.d.ts
5
6
  type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
6
7
  /**
@@ -13,7 +14,7 @@ type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;
13
14
  * type MyBindings = InferBindingsFromMap<typeof pluginMap>;
14
15
  * ```
15
16
  */
16
- type InferBindingsFromMap<T extends PluginMap> = { [K in keyof T]: T[K] };
17
+ type InferBindingsFromMap<T extends PluginMap> = { [K in keyof T]: T[K]; };
17
18
  /**
18
19
  * Creates a plugin runtime for locally available plugins (non-remote).
19
20
  * Automatically infers type bindings from the plugin map, eliminating
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/index.ts"],"mappings":";;;;;KAIY,YAAY,eAAe;;;;;;;;;;;KAY3B,qBAAqB,UAAU,gBACxC,WAAW,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;iBA8CJ,yBAAyB,aAAa,WACpD;EACE,UAAU;IAAiB;IAAmB;IAAkB;;EAChE,UAAU;EACV;GAEF,WAAW,OAAI,cAAA,yBAAA,aAAA,MAAA;;;;cAcJ,gCAAuB"}
@@ -1 +1 @@
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,UAGzC;EACrB,SAAS,OAAO;EAChB,SAAS,OAAO;EACjB,CAAC;;;;;AAMJ,MAAa,0BAA0B"}
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,CAAC;CAEvD,KAAK,MAAM,CAAC,UAAU,SAAS,OAAO,QAAQ,SAAS,GAAG;EACxD,MAAM,WAAW,YAAY;EAC7B,SAAS,YAAY;GACnB,QAAQ;GACR,QAAQ,UAAU;GAClB,SAAS,UAAU;GACnB,aAAa,UAAU;EACzB;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgB,yBACd,QAKA,WACA;CAGA,OAAO,oBAAoB;EACzB,UAHkB,2BAA2B,OAAO,UAAU,SAG1C;EACpB,SAAS,OAAO;EAChB,SAAS,OAAO;CAClB,CAAC;AACH;;;;AAKA,MAAa,0BAA0B"}
package/dist/types.d.cts CHANGED
@@ -2,7 +2,6 @@ import { Plugin } from "./plugin.cjs";
2
2
  import { Scope } from "effect";
3
3
  import { AnyContractRouter, AnySchema, InferSchemaInput, InferSchemaOutput } from "@orpc/contract";
4
4
  import { Router, RouterClient } from "@orpc/server";
5
-
6
5
  //#region src/types.d.ts
7
6
  /**
8
7
  * Registry bindings interface - populated via module augmentation
@@ -57,7 +56,7 @@ type ExtractPluginType<E> = E extends {
57
56
  */
58
57
  type InferRegistryFromEntries<R extends Record<string, PluginRegistryEntry>> = { [K in keyof R]: R[K] extends {
59
58
  module: infer M;
60
- } ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never };
59
+ } ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never; };
61
60
  /**
62
61
  * Extract contract type from plugin binding
63
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;;;;UAuBiB;;;;KAKL,YAAY,OAAO,mBAAmB,WAAW,WAAW;;;;KAK5D;UACF;EACR;IACE,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;;;;;;KAOD;EACN,QAAQ;EAAsB;EAAiB;EAAkB;;EACjE;EAAgB;EAAkB;;;;;KAK5B,kBAAkB,KAAK;EAAY,cAAc;IAAM;;;;KAKvD,yBAAyB,UAAU,eAAe,2BAC3D,WAAW,IAAI,EAAE;EAAa,cAAc;IACzC,IACA,gBAAgB,oBACd,kBAAkB;;;;KAOd,eAAe,KAAK;EAC9B;IAAW,gBAAgB,UAAU;;IAEnC;;;;KAMQ,gBAAgB,KAAK;EAAY;IAAW,iBAAiB,UAAU;;IAC/E;;;;KAMQ,cAAc,KAAK;EAAY;IAAW,eAAe,UAAU;;IAC3E;;;;KAMQ,cAAc,KAAK;EAC7B;IAAW,eAAe,UAAU;;IAElC;;;;;KAOQ,iBAAiB,KAAK,OAAO,eAAe;;;;KAK5C,iBAAiB,KAAK,aAAa,iBAAiB;;;;;;KAOpD,iBAAiB,gBAAgB,GAAG,IAAI,qBAAqB,EAAE;EACzE,eAAe;IAEb;EACE,gBAAgB,UAAU;EAC1B,iBAAiB,UAAU;EAC3B,eAAe,UAAU;EACzB,eAAe,wBAAwB;IAEvC,OAAO,GAAG,GAAG,GAAG;;;;KAOV,kBAAkB,gBAAgB,GAAG,IAAI,qBAAqB,iBAAiB,GAAG;;;;KAKlF,mBAAmB,KAC7B,cAAc,WAAW,YAAY,iBAAiB,cAAc;;;;KAK1D,kBAAkB;EAC5B,WAAW,iBAAiB,gBAAgB;EAC5C,SAAS,iBAAiB,cAAc;;;;;KAM9B,UAAU,UAAU,aAC9B,UAAU,OAAO,mBAAmB,WAAW,WAAW,6BAA6B,SACnF;;;;KAMM;WACD;WACA;WACA;;;;;KAMC,iBAAiB,eAAe;;;;KAKhC,yBAAyB,eAAe;;;;;UAMnC;GACd;;;;;UAMc,aAAa,UAAU,YAAY;WACzC,gBAAgB;WAChB,UAAU;;;;;UAMJ,eAAe,UAAU,YAAY;WAC3C,QAAQ;WACR,UAAU;;;;;UAMJ,kBAAkB,UAAU,YAAY;WAC9C,QAAQ;WACR,UAAU;WACV;IACP,WAAW,kBAAkB;IAC7B,SAAS,kBAAkB;;WAEpB,SAAS,UAAU;WACnB,OAAO,MAAM;;;;;KAMnB,oBAAoB,gBAAgB,GAAG,IAAI,qBAAqB,EAAE;EACrE,eAAe;IAEb;EACE,UAAU;EACV,WAAW;EACX,SAAS;EACT,SAAS;wBAGI,4IACF;;;;;;KAOL,gBAAgB,gBAAgB,GAAG,IAAI,qBACjD,oBAAoB,GAAG;WAER,eAAe,UAAU,mBAAmB,EAAE,QAAQ,iBAAiB,EAAE;WACzE,QAAQ,iBAAiB,EAAE;WAC3B,UAAU;WACV,aAAa,kBAAkB,iBAAiB,GAAG;IAE9D,oBAAoB,GAAG;;;;UAKZ;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;;;KASG,WAAW,KAAK;EAAY,uBAAuB;IAAM,IAAI;;;;kBAKjD;;;;;;;;;;;;;;;;;;OAkBH,MACV,kBACA,SAAS,qBACP,gBAAgB,WAAW,UAAU,gBAAgB,GAAG,WAAW;;;;;UAMxD,oBACf,UAAU,eAAe,uBAAuB,eAAe;EAE/D,UAAU;EACV,UAAU;EACV,UAAU;;;;;;UAOK;EACf,UAAU;EACV,UAAU;EACV,UAAU"}
package/dist/types.d.mts CHANGED
@@ -2,7 +2,6 @@ import { Plugin } from "./plugin.mjs";
2
2
  import { AnyContractRouter, AnySchema, InferSchemaInput, InferSchemaOutput } from "@orpc/contract";
3
3
  import { Scope } from "effect";
4
4
  import { Router, RouterClient } from "@orpc/server";
5
-
6
5
  //#region src/types.d.ts
7
6
  /**
8
7
  * Registry bindings interface - populated via module augmentation
@@ -57,7 +56,7 @@ type ExtractPluginType<E> = E extends {
57
56
  */
58
57
  type InferRegistryFromEntries<R extends Record<string, PluginRegistryEntry>> = { [K in keyof R]: R[K] extends {
59
58
  module: infer M;
60
- } ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never };
59
+ } ? M : K extends keyof RegisteredPlugins ? RegisteredPlugins[K] : never; };
61
60
  /**
62
61
  * Extract contract type from plugin binding
63
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;;;;UAuBiB;;;;KAKL,YAAY,OAAO,mBAAmB,WAAW,WAAW;;;;KAK5D;UACF;EACR;IACE,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;;;;;;KAOD;EACN,QAAQ;EAAsB;EAAiB;EAAkB;;EACjE;EAAgB;EAAkB;;;;;KAK5B,kBAAkB,KAAK;EAAY,cAAc;IAAM;;;;KAKvD,yBAAyB,UAAU,eAAe,2BAC3D,WAAW,IAAI,EAAE;EAAa,cAAc;IACzC,IACA,gBAAgB,oBACd,kBAAkB;;;;KAOd,eAAe,KAAK;EAC9B;IAAW,gBAAgB,UAAU;;IAEnC;;;;KAMQ,gBAAgB,KAAK;EAAY;IAAW,iBAAiB,UAAU;;IAC/E;;;;KAMQ,cAAc,KAAK;EAAY;IAAW,eAAe,UAAU;;IAC3E;;;;KAMQ,cAAc,KAAK;EAC7B;IAAW,eAAe,UAAU;;IAElC;;;;;KAOQ,iBAAiB,KAAK,OAAO,eAAe;;;;KAK5C,iBAAiB,KAAK,aAAa,iBAAiB;;;;;;KAOpD,iBAAiB,gBAAgB,GAAG,IAAI,qBAAqB,EAAE;EACzE,eAAe;IAEb;EACE,gBAAgB,UAAU;EAC1B,iBAAiB,UAAU;EAC3B,eAAe,UAAU;EACzB,eAAe,wBAAwB;IAEvC,OAAO,GAAG,GAAG,GAAG;;;;KAOV,kBAAkB,gBAAgB,GAAG,IAAI,qBAAqB,iBAAiB,GAAG;;;;KAKlF,mBAAmB,KAC7B,cAAc,WAAW,YAAY,iBAAiB,cAAc;;;;KAK1D,kBAAkB;EAC5B,WAAW,iBAAiB,gBAAgB;EAC5C,SAAS,iBAAiB,cAAc;;;;;KAM9B,UAAU,UAAU,aAC9B,UAAU,OAAO,mBAAmB,WAAW,WAAW,6BAA6B,SACnF;;;;KAMM;WACD;WACA;WACA;;;;;KAMC,iBAAiB,eAAe;;;;KAKhC,yBAAyB,eAAe;;;;;UAMnC;GACd;;;;;UAMc,aAAa,UAAU,YAAY;WACzC,gBAAgB;WAChB,UAAU;;;;;UAMJ,eAAe,UAAU,YAAY;WAC3C,QAAQ;WACR,UAAU;;;;;UAMJ,kBAAkB,UAAU,YAAY;WAC9C,QAAQ;WACR,UAAU;WACV;IACP,WAAW,kBAAkB;IAC7B,SAAS,kBAAkB;;WAEpB,SAAS,UAAU;WACnB,OAAO,MAAM;;;;;KAMnB,oBAAoB,gBAAgB,GAAG,IAAI,qBAAqB,EAAE;EACrE,eAAe;IAEb;EACE,UAAU;EACV,WAAW;EACX,SAAS;EACT,SAAS;wBAGI,4IACF;;;;;;KAOL,gBAAgB,gBAAgB,GAAG,IAAI,qBACjD,oBAAoB,GAAG;WAER,eAAe,UAAU,mBAAmB,EAAE,QAAQ,iBAAiB,EAAE;WACzE,QAAQ,iBAAiB,EAAE;WAC3B,UAAU;WACV,aAAa,kBAAkB,iBAAiB,GAAG;IAE9D,oBAAoB,GAAG;;;;UAKZ;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;;;KASG,WAAW,KAAK;EAAY,uBAAuB;IAAM,IAAI;;;;kBAKjD;;;;;;;;;;;;;;;;;;OAkBH,MACV,kBACA,SAAS,qBACP,gBAAgB,WAAW,UAAU,gBAAgB,GAAG,WAAW;;;;;UAMxD,oBACf,UAAU,eAAe,uBAAuB,eAAe;EAE/D,UAAU;EACV,UAAU;EACV,UAAU;;;;;;UAOK;EACf,UAAU;EACV,UAAU;EACV,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "every-plugin",
3
- "version": "2.9.6",
3
+ "version": "2.10.1",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -94,7 +94,7 @@
94
94
  "@rspack/core": "1.7.11",
95
95
  "typescript": "^5.9.3",
96
96
  "effect": "3.21.2",
97
- "zod": "4.3.6",
97
+ "zod": "4.4.3",
98
98
  "@orpc/contract": "1.14.3",
99
99
  "@orpc/server": "1.14.3",
100
100
  "@orpc/client": "1.14.3",
@@ -114,7 +114,7 @@
114
114
  "@vitest/ui": "4.1.5",
115
115
  "bun-types": "^1.3.7",
116
116
  "sirv": "^3.0.2",
117
- "tsdown": "^0.21.7",
117
+ "tsdown": "^0.22.0",
118
118
  "vite-tsconfig-paths": "^6.0.5",
119
119
  "vitest": "^4.1.8"
120
120
  },
@@ -122,9 +122,9 @@
122
122
  "@module-federation/enhanced": "^2.4.0",
123
123
  "@module-federation/node": "^2.7.42",
124
124
  "@module-federation/runtime-core": "^2.4.0",
125
- "@orpc/contract": "^1.13.4",
126
- "@orpc/experimental-publisher": "^1.13.4",
127
- "@orpc/server": "^1.13.4",
125
+ "@orpc/contract": "1.14.3",
126
+ "@orpc/experimental-publisher": "1.14.2",
127
+ "@orpc/server": "1.14.3",
128
128
  "@orpc/tanstack-query": "1.14.3"
129
129
  },
130
130
  "keywords": [
@@ -18,6 +18,60 @@ const normalizePrefix = (prefix?: string): string => {
18
18
  return cleaned ? `/${cleaned}` : "";
19
19
  };
20
20
 
21
+ const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
22
+
23
+ const readRuntimeConfigFromEnv = (): any => {
24
+ const raw = process.env.BOS_RUNTIME_CONFIG;
25
+ if (!raw) return null;
26
+ try {
27
+ return JSON.parse(raw);
28
+ } catch {
29
+ return null;
30
+ }
31
+ };
32
+
33
+ const collectSiblingRemotes = (runtimeConfig: any, pluginId: string) => {
34
+ const siblings: Record<string, { remote: string }> = {};
35
+
36
+ const isApi = pluginId === "api" || runtimeConfig?.api?.name === pluginId;
37
+
38
+ const ownKey = runtimeConfig?.plugins?.[pluginId] ? pluginId : null;
39
+ let dependsOn: string[] = [];
40
+ if (ownKey) {
41
+ dependsOn = runtimeConfig.plugins[ownKey].dependsOn ?? [];
42
+ } else if (isApi) {
43
+ dependsOn = runtimeConfig?.api?.dependsOn ?? [];
44
+ }
45
+
46
+ for (const depId of dependsOn) {
47
+ const dep = runtimeConfig?.plugins?.[depId];
48
+ if (!dep || dep.source !== "local" || !dep.url) continue;
49
+ if (depId === pluginId) continue;
50
+ const base = dep.url.replace(/\/$/, "");
51
+ siblings[depId] = { remote: `${base}/remoteEntry.js` };
52
+ }
53
+
54
+ return { siblings, dependsOn };
55
+ };
56
+
57
+ const loadPluginWithRetry = async (
58
+ runtime: any,
59
+ pluginId: string,
60
+ timeoutMs = 90000,
61
+ ): Promise<any> => {
62
+ const deadline = Date.now() + timeoutMs;
63
+ let lastError: unknown;
64
+ while (Date.now() < deadline) {
65
+ try {
66
+ return await runtime.usePlugin(pluginId, { variables: {}, secrets: {} } as any);
67
+ } catch (error) {
68
+ lastError = error;
69
+ await sleep(500);
70
+ }
71
+ }
72
+ throw lastError;
73
+ };
74
+
21
75
  export function setupPluginMiddleware(
22
76
  devServer: any,
23
77
  pluginInfo: PluginInfo,
@@ -49,18 +103,38 @@ export function setupPluginMiddleware(
49
103
 
50
104
  const pluginId = devConfig?.pluginId || pluginInfo.normalizedName;
51
105
 
52
- const runtime = createPluginRuntime({
53
- registry: {
54
- [pluginId]: {
55
- remote: `http://localhost:${port}/remoteEntry.js`,
56
- },
106
+ const runtimeConfig = readRuntimeConfigFromEnv();
107
+ const { siblings, dependsOn } = collectSiblingRemotes(runtimeConfig, pluginId);
108
+
109
+ if (dependsOn.length > 0) {
110
+ console.log(`│ 🔗 Loading sibling plugin(s) for ${pluginId}: ${dependsOn.join(", ")}`);
111
+ }
112
+
113
+ const registry: Record<string, { remote: string }> = {
114
+ [pluginId]: {
115
+ remote: `http://localhost:${port}/remoteEntry.js`,
57
116
  },
117
+ ...siblings,
118
+ };
119
+
120
+ const runtime = createPluginRuntime({
121
+ registry,
58
122
  });
59
123
 
60
124
  const defaultConfig = { variables: {}, secrets: {} };
61
125
 
62
- // @ts-expect-error we don't know the plugin id
63
- const loaded = await runtime.usePlugin(pluginId, (devConfig?.config ?? defaultConfig) as any);
126
+ const pluginsMap: Record<string, unknown> = {};
127
+ for (const depId of Object.keys(siblings)) {
128
+ const dep = await loadPluginWithRetry(runtime, depId);
129
+ pluginsMap[depId] = dep.createClient;
130
+ console.log(`│ ✅ Loaded dependency plugin: ${depId}`);
131
+ }
132
+
133
+ const loaded: any = await runtime.usePlugin<typeof pluginId>(
134
+ pluginId,
135
+ (devConfig?.config ?? defaultConfig) as any,
136
+ Object.keys(pluginsMap).length > 0 ? pluginsMap : undefined,
137
+ );
64
138
 
65
139
  cleanup = async () => {
66
140
  handlers.rpc = null;
package/src/plugin.ts CHANGED
@@ -2,7 +2,7 @@ import type { AnyContractRouter, AnySchema, InferSchemaOutput } from "@orpc/cont
2
2
  import { ORPCError } from "@orpc/contract";
3
3
  import type { Implementer, Router } from "@orpc/server";
4
4
  import { implement, onError } from "@orpc/server";
5
- import { Effect, type Context as EffectContext, type Layer, type Scope } from "effect";
5
+ import { Context, Effect, type Context as EffectContext, type Layer, type Scope } from "effect";
6
6
  import { extractFromFiberFailure, formatORPCError } from "./runtime/errors";
7
7
 
8
8
  type ContextOutput<T> = T extends AnySchema ? InferSchemaOutput<T> : Record<string, never>;
@@ -31,6 +31,8 @@ export type PluginServicesTools = {
31
31
  buildService: <T>(tag: T, layer: Layer.Layer<any, any, any>) => Effect.Effect<ServiceOf<T>>;
32
32
  };
33
33
 
34
+ export class PluginIdTag extends Context.Tag("PluginId")<PluginIdTag, string>() {}
35
+
34
36
  type PluginDefinition<
35
37
  V extends AnySchema,
36
38
  S extends AnySchema,
@@ -1,7 +1,7 @@
1
1
  import type { InferSchemaInput, InferSchemaOutput } from "@orpc/contract";
2
2
  import { Context, Effect, Context as EffectContext, Exit, Layer, Scope } from "effect";
3
3
  import type { z } from "zod";
4
- import type { PluginServicesTools } from "../../plugin";
4
+ import { PluginIdTag, type PluginServicesTools } from "../../plugin";
5
5
  import type {
6
6
  AnyPlugin,
7
7
  AnyPluginConstructor,
@@ -259,6 +259,7 @@ export class PluginLoaderService extends Effect.Service<PluginLoaderService>()(
259
259
  tools,
260
260
  )
261
261
  .pipe(
262
+ Effect.provideService(PluginIdTag, plugin.id),
262
263
  Effect.provideService(Scope.Scope, scope),
263
264
  Effect.tapError(() =>
264
265
  Scope.close(scope, Exit.succeed(undefined)).pipe(