every-plugin 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/{chunk-QQAxy9l9.mjs → _virtual/rolldown_runtime.cjs} +3 -7
  2. package/dist/{chunk-zltIcp7o.cjs → _virtual/rolldown_runtime.mjs} +4 -28
  3. package/dist/build/rspack/dev-server-middleware.cjs +201 -0
  4. package/dist/build/rspack/dev-server-middleware.cjs.map +1 -0
  5. package/dist/build/rspack/dev-server-middleware.mjs +200 -0
  6. package/dist/build/rspack/dev-server-middleware.mjs.map +1 -0
  7. package/dist/build/rspack/index.cjs +2 -362
  8. package/dist/build/rspack/index.d.cts +2 -20
  9. package/dist/build/rspack/index.d.mts +2 -20
  10. package/dist/build/rspack/index.mjs +2 -360
  11. package/dist/build/rspack/module-federation.cjs +46 -0
  12. package/dist/build/rspack/module-federation.cjs.map +1 -0
  13. package/dist/build/rspack/module-federation.mjs +46 -0
  14. package/dist/build/rspack/module-federation.mjs.map +1 -0
  15. package/dist/build/rspack/plugin.cjs +90 -0
  16. package/dist/build/rspack/plugin.cjs.map +1 -0
  17. package/dist/build/rspack/plugin.d.cts +20 -0
  18. package/dist/build/rspack/plugin.d.cts.map +1 -0
  19. package/dist/build/rspack/plugin.d.mts +20 -0
  20. package/dist/build/rspack/plugin.d.mts.map +1 -0
  21. package/dist/build/rspack/plugin.mjs +89 -0
  22. package/dist/build/rspack/plugin.mjs.map +1 -0
  23. package/dist/build/rspack/utils.cjs +41 -0
  24. package/dist/build/rspack/utils.cjs.map +1 -0
  25. package/dist/build/rspack/utils.mjs +38 -0
  26. package/dist/build/rspack/utils.mjs.map +1 -0
  27. package/dist/errors.cjs +103 -3
  28. package/dist/errors.cjs.map +1 -0
  29. package/dist/errors.d.cts +103 -3
  30. package/dist/errors.d.cts.map +1 -0
  31. package/dist/errors.d.mts +103 -3
  32. package/dist/errors.d.mts.map +1 -0
  33. package/dist/errors.mjs +102 -3
  34. package/dist/errors.mjs.map +1 -0
  35. package/dist/index.cjs +9 -55
  36. package/dist/index.d.cts +6 -5
  37. package/dist/index.d.mts +6 -5
  38. package/dist/index.mjs +5 -51
  39. package/dist/orpc.cjs +1 -1
  40. package/dist/package.cjs +29 -0
  41. package/dist/package.cjs.map +1 -0
  42. package/dist/package.mjs +17 -0
  43. package/dist/package.mjs.map +1 -0
  44. package/dist/plugin.cjs +48 -0
  45. package/dist/plugin.cjs.map +1 -0
  46. package/dist/plugin.d.cts +62 -0
  47. package/dist/plugin.d.cts.map +1 -0
  48. package/dist/plugin.d.mts +62 -0
  49. package/dist/plugin.d.mts.map +1 -0
  50. package/dist/plugin.mjs +47 -0
  51. package/dist/plugin.mjs.map +1 -0
  52. package/dist/runtime/errors.cjs +97 -0
  53. package/dist/runtime/errors.cjs.map +1 -0
  54. package/dist/runtime/errors.d.cts +27 -0
  55. package/dist/runtime/errors.d.cts.map +1 -0
  56. package/dist/runtime/errors.d.mts +27 -0
  57. package/dist/runtime/errors.d.mts.map +1 -0
  58. package/dist/runtime/errors.mjs +93 -0
  59. package/dist/runtime/errors.mjs.map +1 -0
  60. package/dist/runtime/index.cjs +157 -5
  61. package/dist/runtime/index.cjs.map +1 -0
  62. package/dist/runtime/index.d.cts +43 -5
  63. package/dist/runtime/index.d.cts.map +1 -0
  64. package/dist/runtime/index.d.mts +43 -5
  65. package/dist/runtime/index.d.mts.map +1 -0
  66. package/dist/runtime/index.mjs +155 -4
  67. package/dist/runtime/index.mjs.map +1 -0
  68. package/dist/runtime/services/module-federation.service.cjs +142 -0
  69. package/dist/runtime/services/module-federation.service.cjs.map +1 -0
  70. package/dist/runtime/services/module-federation.service.d.cts +15 -0
  71. package/dist/runtime/services/module-federation.service.d.cts.map +1 -0
  72. package/dist/runtime/services/module-federation.service.d.mts +15 -0
  73. package/dist/runtime/services/module-federation.service.d.mts.map +1 -0
  74. package/dist/runtime/services/module-federation.service.mjs +141 -0
  75. package/dist/runtime/services/module-federation.service.mjs.map +1 -0
  76. package/dist/runtime/services/normalize.cjs +22 -2
  77. package/dist/runtime/services/normalize.cjs.map +1 -0
  78. package/dist/runtime/services/normalize.d.cts +21 -2
  79. package/dist/runtime/services/normalize.d.cts.map +1 -0
  80. package/dist/runtime/services/normalize.d.mts +21 -2
  81. package/dist/runtime/services/normalize.d.mts.map +1 -0
  82. package/dist/runtime/services/normalize.mjs +21 -2
  83. package/dist/runtime/services/normalize.mjs.map +1 -0
  84. package/dist/runtime/services/plugin-lifecycle.service.cjs +33 -0
  85. package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -0
  86. package/dist/runtime/services/plugin-lifecycle.service.d.cts +17 -0
  87. package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +1 -0
  88. package/dist/runtime/services/plugin-lifecycle.service.d.mts +17 -0
  89. package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +1 -0
  90. package/dist/runtime/services/plugin-lifecycle.service.mjs +32 -0
  91. package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -0
  92. package/dist/runtime/services/plugin-loader.service.cjs +132 -0
  93. package/dist/runtime/services/plugin-loader.service.cjs.map +1 -0
  94. package/dist/runtime/services/plugin-loader.service.d.cts +54 -0
  95. package/dist/runtime/services/plugin-loader.service.d.cts.map +1 -0
  96. package/dist/runtime/services/plugin-loader.service.d.mts +54 -0
  97. package/dist/runtime/services/plugin-loader.service.d.mts.map +1 -0
  98. package/dist/runtime/services/plugin-loader.service.mjs +128 -0
  99. package/dist/runtime/services/plugin-loader.service.mjs.map +1 -0
  100. package/dist/runtime/services/plugin.service.cjs +33 -0
  101. package/dist/runtime/services/plugin.service.cjs.map +1 -0
  102. package/dist/runtime/services/plugin.service.d.cts +42 -0
  103. package/dist/runtime/services/plugin.service.d.cts.map +1 -0
  104. package/dist/runtime/services/plugin.service.d.mts +42 -0
  105. package/dist/runtime/services/plugin.service.d.mts.map +1 -0
  106. package/dist/runtime/services/plugin.service.mjs +32 -0
  107. package/dist/runtime/services/plugin.service.mjs.map +1 -0
  108. package/dist/runtime/services/secrets.service.cjs +50 -0
  109. package/dist/runtime/services/secrets.service.cjs.map +1 -0
  110. package/dist/runtime/services/secrets.service.d.cts +16 -0
  111. package/dist/runtime/services/secrets.service.d.cts.map +1 -0
  112. package/dist/runtime/services/secrets.service.d.mts +16 -0
  113. package/dist/runtime/services/secrets.service.d.mts.map +1 -0
  114. package/dist/runtime/services/secrets.service.mjs +48 -0
  115. package/dist/runtime/services/secrets.service.mjs.map +1 -0
  116. package/dist/runtime/validation.cjs +18 -0
  117. package/dist/runtime/validation.cjs.map +1 -0
  118. package/dist/runtime/validation.mjs +17 -0
  119. package/dist/runtime/validation.mjs.map +1 -0
  120. package/dist/testing/index.cjs +2 -4
  121. package/dist/testing/index.cjs.map +1 -1
  122. package/dist/testing/index.d.cts +4 -4
  123. package/dist/testing/index.d.mts +4 -4
  124. package/dist/testing/index.mjs +1 -3
  125. package/dist/testing/index.mjs.map +1 -1
  126. package/dist/types.cjs +0 -0
  127. package/dist/types.d.cts +261 -0
  128. package/dist/types.d.cts.map +1 -0
  129. package/dist/types.d.mts +261 -0
  130. package/dist/types.d.mts.map +1 -0
  131. package/dist/types.mjs +1 -0
  132. package/dist/zod-core.cjs +9 -0
  133. package/dist/zod-core.d.cts +1 -0
  134. package/dist/zod-core.d.mts +1 -0
  135. package/dist/zod-core.mjs +3 -0
  136. package/dist/zod.cjs +13 -1
  137. package/dist/zod.cjs.map +1 -0
  138. package/dist/zod.d.cts +8 -2
  139. package/dist/zod.d.cts.map +1 -0
  140. package/dist/zod.d.mts +8 -2
  141. package/dist/zod.d.mts.map +1 -0
  142. package/dist/zod.mjs +9 -2
  143. package/dist/zod.mjs.map +1 -0
  144. package/package.json +17 -2
  145. package/dist/build/rspack/index.cjs.map +0 -1
  146. package/dist/build/rspack/index.d.cts.map +0 -1
  147. package/dist/build/rspack/index.d.mts.map +0 -1
  148. package/dist/build/rspack/index.mjs.map +0 -1
  149. package/dist/errors-9sNpYLv5.d.mts +0 -75
  150. package/dist/errors-9sNpYLv5.d.mts.map +0 -1
  151. package/dist/errors-CVnoPl9v.cjs +0 -68
  152. package/dist/errors-CVnoPl9v.cjs.map +0 -1
  153. package/dist/errors-D7keKf7a.mjs +0 -63
  154. package/dist/errors-D7keKf7a.mjs.map +0 -1
  155. package/dist/errors-DKPPPYYT.d.cts +0 -75
  156. package/dist/errors-DKPPPYYT.d.cts.map +0 -1
  157. package/dist/fetch-8DauUFDh.mjs +0 -335
  158. package/dist/fetch-8DauUFDh.mjs.map +0 -1
  159. package/dist/fetch-CrBvwsZ4.cjs +0 -336
  160. package/dist/fetch-CrBvwsZ4.cjs.map +0 -1
  161. package/dist/index-Bu2wtZrA.d.mts +0 -463
  162. package/dist/index-Bu2wtZrA.d.mts.map +0 -1
  163. package/dist/index-DtTqwV4f.d.cts +0 -462
  164. package/dist/index-DtTqwV4f.d.cts.map +0 -1
  165. package/dist/index.cjs.map +0 -1
  166. package/dist/index.mjs.map +0 -1
  167. package/dist/normalize-BW7kk8Lk.d.cts +0 -21
  168. package/dist/normalize-BW7kk8Lk.d.cts.map +0 -1
  169. package/dist/normalize-D4Qh0wVk.cjs +0 -28
  170. package/dist/normalize-D4Qh0wVk.cjs.map +0 -1
  171. package/dist/normalize-D7nae0Hn.mjs +0 -22
  172. package/dist/normalize-D7nae0Hn.mjs.map +0 -1
  173. package/dist/normalize-eB_j86fm.d.mts +0 -21
  174. package/dist/normalize-eB_j86fm.d.mts.map +0 -1
  175. package/dist/package-CaRYwbRi.mjs +0 -150
  176. package/dist/package-CaRYwbRi.mjs.map +0 -1
  177. package/dist/package-DyTuSutr.cjs +0 -155
  178. package/dist/package-DyTuSutr.cjs.map +0 -1
  179. package/dist/plugins-C6MGKdD-.mjs +0 -790
  180. package/dist/plugins-C6MGKdD-.mjs.map +0 -1
  181. package/dist/plugins-DNaNtkG7.cjs +0 -791
  182. package/dist/plugins-DNaNtkG7.cjs.map +0 -1
  183. package/dist/runtime-BNcFgWDG.cjs +0 -558
  184. package/dist/runtime-BNcFgWDG.cjs.map +0 -1
  185. package/dist/runtime-CAWcnrAk.mjs +0 -547
  186. package/dist/runtime-CAWcnrAk.mjs.map +0 -1
  187. package/dist/standard-CkH8zNkx.mjs +0 -584
  188. package/dist/standard-CkH8zNkx.mjs.map +0 -1
  189. package/dist/standard-v75BC6Z5.cjs +0 -685
  190. package/dist/standard-v75BC6Z5.cjs.map +0 -1
  191. package/dist/zod-A7Pti5IV.d.cts +0 -4
  192. package/dist/zod-A7Pti5IV.d.cts.map +0 -1
  193. package/dist/zod-BVo51kgJ.mjs +0 -10
  194. package/dist/zod-BVo51kgJ.mjs.map +0 -1
  195. package/dist/zod-DYghWCz1.cjs +0 -14
  196. package/dist/zod-DYghWCz1.cjs.map +0 -1
  197. package/dist/zod-Zw8dlP3j.d.mts +0 -4
  198. package/dist/zod-Zw8dlP3j.d.mts.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,57 +1,11 @@
1
- const require_chunk = require('./chunk-zltIcp7o.cjs');
2
- require('./zod-DYghWCz1.cjs');
3
- const require_errors = require('./errors-CVnoPl9v.cjs');
4
- const require_runtime = require('./runtime-BNcFgWDG.cjs');
5
- const require_normalize = require('./normalize-D4Qh0wVk.cjs');
6
- require('./package-DyTuSutr.cjs');
7
- let effect = require("effect");
8
- let __orpc_server = require("@orpc/server");
1
+ const require_errors = require('./errors.cjs');
2
+ const require_plugin = require('./plugin.cjs');
3
+ const require_runtime_services_normalize = require('./runtime/services/normalize.cjs');
4
+ const require_runtime_index = require('./runtime/index.cjs');
9
5
 
10
- //#region src/plugin.ts
11
- /**
12
- * Factory function to create plugins
13
- */
14
- function createPlugin(config) {
15
- const configSchema = {
16
- variables: config.variables,
17
- secrets: config.secrets
18
- };
19
- class CreatedPlugin {
20
- /** set during instantiation - registry key */
21
- id;
22
- contract = config.contract;
23
- configSchema = configSchema;
24
- _context = null;
25
- initialize(pluginConfig) {
26
- return (config.initialize ?? (() => effect.Effect.succeed({})))(pluginConfig).pipe(effect.Effect.tap((ctx) => effect.Effect.sync(() => {
27
- this._context = ctx;
28
- })), effect.Effect.map(() => this._context), effect.Effect.mapError((error) => error));
29
- }
30
- shutdown() {
31
- const self = this;
32
- return effect.Effect.gen(function* () {
33
- if (config.shutdown && self._context) yield* config.shutdown(self._context).pipe(effect.Effect.catchAll(() => effect.Effect.void));
34
- });
35
- }
36
- createRouter(context) {
37
- const builder = (0, __orpc_server.implement)(config.contract).$context();
38
- return config.createRouter(context, builder);
39
- }
40
- }
41
- const PluginConstructor = CreatedPlugin;
42
- PluginConstructor.binding = {
43
- contract: config.contract,
44
- variables: config.variables,
45
- secrets: config.secrets,
46
- context: {}
47
- };
48
- return PluginConstructor;
49
- }
50
-
51
- //#endregion
52
6
  exports.CommonPluginErrors = require_errors.CommonPluginErrors;
53
- exports.PluginRuntime = require_runtime.PluginRuntime;
54
- exports.createPlugin = createPlugin;
55
- exports.createPluginRuntime = require_runtime.createPluginRuntime;
56
- exports.getNormalizedRemoteName = require_normalize.getNormalizedRemoteName;
57
- //# sourceMappingURL=index.cjs.map
7
+ exports.ERROR_PATTERNS = require_errors.ERROR_PATTERNS;
8
+ exports.PluginRuntime = require_runtime_index.PluginRuntime;
9
+ exports.createPlugin = require_plugin.createPlugin;
10
+ exports.createPluginRuntime = require_runtime_index.createPluginRuntime;
11
+ exports.getNormalizedRemoteName = require_runtime_services_normalize.getNormalizedRemoteName;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
- import "./zod-A7Pti5IV.cjs";
2
- import { t as CommonPluginErrors } from "./errors-DKPPPYYT.cjs";
3
- import { C as Plugin, S as LoadedPluginWithBinding, T as createPlugin, _ as PluginRuntimeConfig, b as RegisteredPlugins, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRouterType, i as EveryPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, r as AnyPlugin, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginSecrets, w as PluginConfigFor, x as SecretsConfig, y as PluginVariables } from "./index-DtTqwV4f.cjs";
4
- import { t as getNormalizedRemoteName } from "./normalize-BW7kk8Lk.cjs";
5
- export { AnyPlugin, CommonPluginErrors, EveryPlugin, InitializedPlugin, LoadedPlugin, LoadedPluginWithBinding, Plugin, PluginClientType, PluginConfigFor, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntime, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
1
+ import { CommonPluginErrors, ERROR_PATTERNS } from "./errors.cjs";
2
+ import { LoadedPluginWithBinding, Plugin, PluginConfigFor, createPlugin } from "./plugin.cjs";
3
+ import { AnyPlugin, EveryPlugin, InitializedPlugin, LoadedPlugin, PluginClientType, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig } from "./types.cjs";
4
+ import { PluginRuntime, createPluginRuntime } from "./runtime/index.cjs";
5
+ import { getNormalizedRemoteName } from "./runtime/services/normalize.cjs";
6
+ export { type AnyPlugin, CommonPluginErrors, ERROR_PATTERNS, type EveryPlugin, type InitializedPlugin, type LoadedPlugin, LoadedPluginWithBinding, Plugin, type PluginClientType, PluginConfigFor, type PluginConfigInput, type PluginContext, type PluginContract, type PluginInstance, type PluginMetadata, type PluginRegistry, type PluginRouterType, PluginRuntime, type PluginRuntimeConfig, type PluginSecrets, type PluginVariables, type RegisteredPlugins, type SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
- import "./zod-Zw8dlP3j.mjs";
2
- import { t as CommonPluginErrors } from "./errors-9sNpYLv5.mjs";
3
- import { C as Plugin, S as LoadedPluginWithBinding, T as createPlugin, _ as PluginRuntimeConfig, b as RegisteredPlugins, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRouterType, i as EveryPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, r as AnyPlugin, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginSecrets, w as PluginConfigFor, x as SecretsConfig, y as PluginVariables } from "./index-Bu2wtZrA.mjs";
4
- import { t as getNormalizedRemoteName } from "./normalize-eB_j86fm.mjs";
5
- export { AnyPlugin, CommonPluginErrors, EveryPlugin, InitializedPlugin, LoadedPlugin, LoadedPluginWithBinding, Plugin, PluginClientType, PluginConfigFor, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntime, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
1
+ import { CommonPluginErrors, ERROR_PATTERNS } from "./errors.mjs";
2
+ import { LoadedPluginWithBinding, Plugin, PluginConfigFor, createPlugin } from "./plugin.mjs";
3
+ import { AnyPlugin, EveryPlugin, InitializedPlugin, LoadedPlugin, PluginClientType, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig } from "./types.mjs";
4
+ import { PluginRuntime, createPluginRuntime } from "./runtime/index.mjs";
5
+ import { getNormalizedRemoteName } from "./runtime/services/normalize.mjs";
6
+ export { type AnyPlugin, CommonPluginErrors, ERROR_PATTERNS, type EveryPlugin, type InitializedPlugin, type LoadedPlugin, LoadedPluginWithBinding, Plugin, type PluginClientType, PluginConfigFor, type PluginConfigInput, type PluginContext, type PluginContract, type PluginInstance, type PluginMetadata, type PluginRegistry, type PluginRouterType, PluginRuntime, type PluginRuntimeConfig, type PluginSecrets, type PluginVariables, type RegisteredPlugins, type SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/index.mjs CHANGED
@@ -1,52 +1,6 @@
1
- import "./zod-BVo51kgJ.mjs";
2
- import { t as CommonPluginErrors } from "./errors-D7keKf7a.mjs";
3
- import { n as createPluginRuntime, t as PluginRuntime } from "./runtime-CAWcnrAk.mjs";
4
- import { t as getNormalizedRemoteName } from "./normalize-D7nae0Hn.mjs";
5
- import "./package-CaRYwbRi.mjs";
6
- import { Effect } from "effect";
7
- import { implement } from "@orpc/server";
1
+ import { CommonPluginErrors, ERROR_PATTERNS } from "./errors.mjs";
2
+ import { createPlugin } from "./plugin.mjs";
3
+ import { getNormalizedRemoteName } from "./runtime/services/normalize.mjs";
4
+ import { PluginRuntime, createPluginRuntime } from "./runtime/index.mjs";
8
5
 
9
- //#region src/plugin.ts
10
- /**
11
- * Factory function to create plugins
12
- */
13
- function createPlugin(config) {
14
- const configSchema = {
15
- variables: config.variables,
16
- secrets: config.secrets
17
- };
18
- class CreatedPlugin {
19
- /** set during instantiation - registry key */
20
- id;
21
- contract = config.contract;
22
- configSchema = configSchema;
23
- _context = null;
24
- initialize(pluginConfig) {
25
- return (config.initialize ?? (() => Effect.succeed({})))(pluginConfig).pipe(Effect.tap((ctx) => Effect.sync(() => {
26
- this._context = ctx;
27
- })), Effect.map(() => this._context), Effect.mapError((error) => error));
28
- }
29
- shutdown() {
30
- const self = this;
31
- return Effect.gen(function* () {
32
- if (config.shutdown && self._context) yield* config.shutdown(self._context).pipe(Effect.catchAll(() => Effect.void));
33
- });
34
- }
35
- createRouter(context) {
36
- const builder = implement(config.contract).$context();
37
- return config.createRouter(context, builder);
38
- }
39
- }
40
- const PluginConstructor = CreatedPlugin;
41
- PluginConstructor.binding = {
42
- contract: config.contract,
43
- variables: config.variables,
44
- secrets: config.secrets,
45
- context: {}
46
- };
47
- return PluginConstructor;
48
- }
49
-
50
- //#endregion
51
- export { CommonPluginErrors, PluginRuntime, createPlugin, createPluginRuntime, getNormalizedRemoteName };
52
- //# sourceMappingURL=index.mjs.map
6
+ export { CommonPluginErrors, ERROR_PATTERNS, PluginRuntime, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/orpc.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_chunk = require('./chunk-zltIcp7o.cjs');
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
2
  let __orpc_experimental_publisher_ioredis = require("@orpc/experimental-publisher/ioredis");
3
3
  let __orpc_experimental_publisher_memory = require("@orpc/experimental-publisher/memory");
4
4
  let __orpc_experimental_publisher_upstash_redis = require("@orpc/experimental-publisher/upstash-redis");
@@ -0,0 +1,29 @@
1
+
2
+ //#region package.json
3
+ var version = "0.6.0";
4
+ var dependencies = {
5
+ "@module-federation/enhanced": "^0.19.1",
6
+ "@module-federation/node": "^2.7.15",
7
+ "@module-federation/runtime-core": "^0.19.1",
8
+ "@orpc/contract": "^1.10.0",
9
+ "@orpc/experimental-publisher": "^1.10.0",
10
+ "@orpc/server": "^1.10.0",
11
+ "@orpc/zod": "^1.10.0",
12
+ "effect": "3.18.1",
13
+ "zod": "4.1.5"
14
+ };
15
+
16
+ //#endregion
17
+ Object.defineProperty(exports, 'dependencies', {
18
+ enumerable: true,
19
+ get: function () {
20
+ return dependencies;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, 'version', {
24
+ enumerable: true,
25
+ get: function () {
26
+ return version;
27
+ }
28
+ });
29
+ //# sourceMappingURL=package.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.cjs","names":[],"sources":["../package.json"],"sourcesContent":["{\n\t\"name\": \"every-plugin\",\n\t\"version\": \"0.6.0\",\n\t\"type\": \"module\",\n\t\"main\": \"./dist/index.cjs\",\n\t\"module\": \"./dist/index.mjs\",\n\t\"types\": \"./dist/index.d.mts\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/index.mjs\",\n\t\t\t\"require\": \"./dist/index.cjs\"\n\t\t},\n\t\t\"./runtime\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/runtime/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/runtime/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/runtime/index.mjs\",\n\t\t\t\"require\": \"./dist/runtime/index.cjs\"\n\t\t},\n\t\t\"./testing\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/testing/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/testing/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/testing/index.mjs\",\n\t\t\t\"require\": \"./dist/testing/index.cjs\"\n\t\t},\n\t\t\"./normalize\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/runtime/services/normalize.d.mts\",\n\t\t\t\t\"require\": \"./dist/runtime/services/normalize.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/runtime/services/normalize.mjs\",\n\t\t\t\"require\": \"./dist/runtime/services/normalize.cjs\"\n\t\t},\n\t\t\"./effect\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/effect.d.mts\",\n\t\t\t\t\"require\": \"./dist/effect.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/effect.mjs\",\n\t\t\t\"require\": \"./dist/effect.cjs\"\n\t\t},\n\t\t\"./zod\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/zod.d.mts\",\n\t\t\t\t\"require\": \"./dist/zod.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/zod.mjs\",\n\t\t\t\"require\": \"./dist/zod.cjs\"\n\t\t},\n\t\t\"./zod/v4/core\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/zod-core.d.mts\",\n\t\t\t\t\"require\": \"./dist/zod-core.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/zod-core.mjs\",\n\t\t\t\"require\": \"./dist/zod-core.cjs\"\n\t\t},\n\t\t\"./orpc\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/orpc.d.mts\",\n\t\t\t\t\"require\": \"./dist/orpc.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/orpc.mjs\",\n\t\t\t\"require\": \"./dist/orpc.cjs\"\n\t\t},\n\t\t\"./errors\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/errors.d.mts\",\n\t\t\t\t\"require\": \"./dist/errors.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/errors.mjs\",\n\t\t\t\"require\": \"./dist/errors.cjs\"\n\t\t},\n\t\t\"./types\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/types.d.mts\",\n\t\t\t\t\"require\": \"./dist/types.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/types.mjs\",\n\t\t\t\"require\": \"./dist/types.cjs\"\n\t\t},\n\t\t\"./build/rspack\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/build/rspack/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/build/rspack/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/build/rspack/index.mjs\",\n\t\t\t\"require\": \"./dist/build/rspack/index.cjs\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\"\n\t},\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"scripts\": {\n\t\t\"build\": \"tsdown\",\n\t\t\"build:test\": \"cd tests/fixtures/test-plugin && bun run build\",\n\t\t\"test\": \"vitest run --config vitest.config.ts\",\n\t\t\"test:unit\": \"vitest run --config vitest.config.ts\",\n\t\t\"test:integration\": \"bun run build:test && vitest run --config vitest.integration.config.ts\",\n\t\t\"test:all\": \"bun run test:unit && bun run test:integration\",\n\t\t\"test:watch\": \"vitest --config vitest.config.ts --watch\",\n\t\t\"typecheck\": \"tsc --noEmit\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"@rspack/core\": \"*\",\n\t\t\"typescript\": \"^5.6.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@effect/language-service\": \"^0.38.4\",\n\t\t\"@effect/vitest\": \"^0.25.1\",\n\t\t\"@orpc/client\": \"^1.10.0\",\n\t\t\"@orpc/openapi\": \"^1.10.4\",\n\t\t\"@rspack/cli\": \"^1.5.8\",\n\t\t\"@types/bun\": \"^1.3.0\",\n\t\t\"@types/node\": \"^24.9.0\",\n\t\t\"@vitest/ui\": \"3.2.4\",\n\t\t\"bun-types\": \"^1.3.0\",\n\t\t\"sirv\": \"^3.0.2\",\n\t\t\"tsdown\": \"^0.16.1\",\n\t\t\"vite-tsconfig-paths\": \"^5.1.4\",\n\t\t\"vitest\": \"^3.2.4\"\n\t},\n\t\"dependencies\": {\n\t\t\"@module-federation/enhanced\": \"^0.19.1\",\n\t\t\"@module-federation/node\": \"^2.7.15\",\n\t\t\"@module-federation/runtime-core\": \"^0.19.1\",\n\t\t\"@orpc/contract\": \"^1.10.0\",\n\t\t\"@orpc/experimental-publisher\": \"^1.10.0\",\n\t\t\"@orpc/server\": \"^1.10.0\",\n\t\t\"@orpc/zod\": \"^1.10.0\",\n\t\t\"effect\": \"3.18.1\",\n\t\t\"zod\": \"4.1.5\"\n\t},\n\t\"keywords\": [\n\t\t\"plugin\",\n\t\t\"module-federation\",\n\t\t\"orpc\",\n\t\t\"zod\",\n\t\t\"typescript\"\n\t],\n\t\"author\": \"plugin.every.near\",\n\t\"license\": \"MIT\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"https://github.com/near-everything/every-plugin.git\"\n\t},\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/near-everything/every-plugin/issues\"\n\t},\n\t\"homepage\": \"https://plugin.everything.dev\",\n\t\"workspaces\": [\n\t\t\"tests/fixtures/*\"\n\t]\n}\n"],"mappings":";;cAEY;mBAgIK;CACf,+BAA+B;CAC/B,2BAA2B;CAC3B,mCAAmC;CACnC,kBAAkB;CAClB,gCAAgC;CAChC,gBAAgB;CAChB,aAAa;CACb,UAAU;CACV,OAAO;CACP"}
@@ -0,0 +1,17 @@
1
+ //#region package.json
2
+ var version = "0.6.0";
3
+ var dependencies = {
4
+ "@module-federation/enhanced": "^0.19.1",
5
+ "@module-federation/node": "^2.7.15",
6
+ "@module-federation/runtime-core": "^0.19.1",
7
+ "@orpc/contract": "^1.10.0",
8
+ "@orpc/experimental-publisher": "^1.10.0",
9
+ "@orpc/server": "^1.10.0",
10
+ "@orpc/zod": "^1.10.0",
11
+ "effect": "3.18.1",
12
+ "zod": "4.1.5"
13
+ };
14
+
15
+ //#endregion
16
+ export { dependencies, version };
17
+ //# sourceMappingURL=package.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.mjs","names":[],"sources":["../package.json"],"sourcesContent":["{\n\t\"name\": \"every-plugin\",\n\t\"version\": \"0.6.0\",\n\t\"type\": \"module\",\n\t\"main\": \"./dist/index.cjs\",\n\t\"module\": \"./dist/index.mjs\",\n\t\"types\": \"./dist/index.d.mts\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/index.mjs\",\n\t\t\t\"require\": \"./dist/index.cjs\"\n\t\t},\n\t\t\"./runtime\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/runtime/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/runtime/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/runtime/index.mjs\",\n\t\t\t\"require\": \"./dist/runtime/index.cjs\"\n\t\t},\n\t\t\"./testing\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/testing/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/testing/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/testing/index.mjs\",\n\t\t\t\"require\": \"./dist/testing/index.cjs\"\n\t\t},\n\t\t\"./normalize\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/runtime/services/normalize.d.mts\",\n\t\t\t\t\"require\": \"./dist/runtime/services/normalize.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/runtime/services/normalize.mjs\",\n\t\t\t\"require\": \"./dist/runtime/services/normalize.cjs\"\n\t\t},\n\t\t\"./effect\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/effect.d.mts\",\n\t\t\t\t\"require\": \"./dist/effect.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/effect.mjs\",\n\t\t\t\"require\": \"./dist/effect.cjs\"\n\t\t},\n\t\t\"./zod\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/zod.d.mts\",\n\t\t\t\t\"require\": \"./dist/zod.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/zod.mjs\",\n\t\t\t\"require\": \"./dist/zod.cjs\"\n\t\t},\n\t\t\"./zod/v4/core\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/zod-core.d.mts\",\n\t\t\t\t\"require\": \"./dist/zod-core.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/zod-core.mjs\",\n\t\t\t\"require\": \"./dist/zod-core.cjs\"\n\t\t},\n\t\t\"./orpc\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/orpc.d.mts\",\n\t\t\t\t\"require\": \"./dist/orpc.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/orpc.mjs\",\n\t\t\t\"require\": \"./dist/orpc.cjs\"\n\t\t},\n\t\t\"./errors\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/errors.d.mts\",\n\t\t\t\t\"require\": \"./dist/errors.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/errors.mjs\",\n\t\t\t\"require\": \"./dist/errors.cjs\"\n\t\t},\n\t\t\"./types\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/types.d.mts\",\n\t\t\t\t\"require\": \"./dist/types.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/types.mjs\",\n\t\t\t\"require\": \"./dist/types.cjs\"\n\t\t},\n\t\t\"./build/rspack\": {\n\t\t\t\"types\": {\n\t\t\t\t\"import\": \"./dist/build/rspack/index.d.mts\",\n\t\t\t\t\"require\": \"./dist/build/rspack/index.d.cts\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/build/rspack/index.mjs\",\n\t\t\t\"require\": \"./dist/build/rspack/index.cjs\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\"\n\t},\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"scripts\": {\n\t\t\"build\": \"tsdown\",\n\t\t\"build:test\": \"cd tests/fixtures/test-plugin && bun run build\",\n\t\t\"test\": \"vitest run --config vitest.config.ts\",\n\t\t\"test:unit\": \"vitest run --config vitest.config.ts\",\n\t\t\"test:integration\": \"bun run build:test && vitest run --config vitest.integration.config.ts\",\n\t\t\"test:all\": \"bun run test:unit && bun run test:integration\",\n\t\t\"test:watch\": \"vitest --config vitest.config.ts --watch\",\n\t\t\"typecheck\": \"tsc --noEmit\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"@rspack/core\": \"*\",\n\t\t\"typescript\": \"^5.6.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@effect/language-service\": \"^0.38.4\",\n\t\t\"@effect/vitest\": \"^0.25.1\",\n\t\t\"@orpc/client\": \"^1.10.0\",\n\t\t\"@orpc/openapi\": \"^1.10.4\",\n\t\t\"@rspack/cli\": \"^1.5.8\",\n\t\t\"@types/bun\": \"^1.3.0\",\n\t\t\"@types/node\": \"^24.9.0\",\n\t\t\"@vitest/ui\": \"3.2.4\",\n\t\t\"bun-types\": \"^1.3.0\",\n\t\t\"sirv\": \"^3.0.2\",\n\t\t\"tsdown\": \"^0.16.1\",\n\t\t\"vite-tsconfig-paths\": \"^5.1.4\",\n\t\t\"vitest\": \"^3.2.4\"\n\t},\n\t\"dependencies\": {\n\t\t\"@module-federation/enhanced\": \"^0.19.1\",\n\t\t\"@module-federation/node\": \"^2.7.15\",\n\t\t\"@module-federation/runtime-core\": \"^0.19.1\",\n\t\t\"@orpc/contract\": \"^1.10.0\",\n\t\t\"@orpc/experimental-publisher\": \"^1.10.0\",\n\t\t\"@orpc/server\": \"^1.10.0\",\n\t\t\"@orpc/zod\": \"^1.10.0\",\n\t\t\"effect\": \"3.18.1\",\n\t\t\"zod\": \"4.1.5\"\n\t},\n\t\"keywords\": [\n\t\t\"plugin\",\n\t\t\"module-federation\",\n\t\t\"orpc\",\n\t\t\"zod\",\n\t\t\"typescript\"\n\t],\n\t\"author\": \"plugin.every.near\",\n\t\"license\": \"MIT\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"https://github.com/near-everything/every-plugin.git\"\n\t},\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/near-everything/every-plugin/issues\"\n\t},\n\t\"homepage\": \"https://plugin.everything.dev\",\n\t\"workspaces\": [\n\t\t\"tests/fixtures/*\"\n\t]\n}\n"],"mappings":";cAEY;mBAgIK;CACf,+BAA+B;CAC/B,2BAA2B;CAC3B,mCAAmC;CACnC,kBAAkB;CAClB,gCAAgC;CAChC,gBAAgB;CAChB,aAAa;CACb,UAAU;CACV,OAAO;CACP"}
@@ -0,0 +1,48 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ let effect = require("effect");
3
+ let __orpc_server = require("@orpc/server");
4
+
5
+ //#region src/plugin.ts
6
+ /**
7
+ * Factory function to create plugins
8
+ */
9
+ function createPlugin(config) {
10
+ const configSchema = {
11
+ variables: config.variables,
12
+ secrets: config.secrets
13
+ };
14
+ class CreatedPlugin {
15
+ /** set during instantiation - registry key */
16
+ id;
17
+ contract = config.contract;
18
+ configSchema = configSchema;
19
+ _context = null;
20
+ initialize(pluginConfig) {
21
+ return (config.initialize ?? (() => effect.Effect.succeed({})))(pluginConfig).pipe(effect.Effect.tap((ctx) => effect.Effect.sync(() => {
22
+ this._context = ctx;
23
+ })), effect.Effect.map(() => this._context), effect.Effect.mapError((error) => error));
24
+ }
25
+ shutdown() {
26
+ const self = this;
27
+ return effect.Effect.gen(function* () {
28
+ if (config.shutdown && self._context) yield* config.shutdown(self._context).pipe(effect.Effect.catchAll(() => effect.Effect.void));
29
+ });
30
+ }
31
+ createRouter(context) {
32
+ const builder = (0, __orpc_server.implement)(config.contract).$context();
33
+ return config.createRouter(context, builder);
34
+ }
35
+ }
36
+ const PluginConstructor = CreatedPlugin;
37
+ PluginConstructor.binding = {
38
+ contract: config.contract,
39
+ variables: config.variables,
40
+ secrets: config.secrets,
41
+ context: {}
42
+ };
43
+ return PluginConstructor;
44
+ }
45
+
46
+ //#endregion
47
+ exports.createPlugin = createPlugin;
48
+ //# sourceMappingURL=plugin.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.cjs","names":["configSchema: PluginConfigFor<V, S>","Effect"],"sources":["../src/plugin.ts"],"sourcesContent":["import type { AnyContractRouter, AnySchema, InferSchemaOutput } from \"@orpc/contract\";\nimport type { Context, Implementer, Router } from \"@orpc/server\";\nimport { implement } from \"@orpc/server\";\nimport { Effect, type Scope } from \"effect\";\n\n/**\n * Helper type that correctly constructs the config schema type\n */\nexport type PluginConfigFor<V extends AnySchema, S extends AnySchema> = {\n\tvariables: V;\n\tsecrets: S;\n};\n\n/**\n * Loaded plugin with static binding property\n */\nexport interface LoadedPluginWithBinding<\n\tTContract extends AnyContractRouter,\n\tTVariables extends AnySchema,\n\tTSecrets extends AnySchema,\n\tTContext extends Context = Record<never, never>\n> {\n\tnew(): Plugin<TContract, TVariables, TSecrets, TContext>;\n\tbinding: {\n\t\tcontract: TContract;\n\t\tvariables: TVariables;\n\t\tsecrets: TSecrets;\n\t\tcontext: TContext;\n\t};\n}\n\n/**\n * Plugin interface\n */\nexport interface Plugin<\n\tTContract extends AnyContractRouter,\n\tTVariables extends AnySchema,\n\tTSecrets extends AnySchema,\n\tTContext extends Context = Record<never, never>\n> {\n\treadonly id: string;\n\treadonly contract: TContract;\n\treadonly configSchema: PluginConfigFor<TVariables, TSecrets>;\n\n\t// Plugin lifecycle\n\tinitialize(\n\t\tconfig: { variables: InferSchemaOutput<TVariables>; secrets: InferSchemaOutput<TSecrets> }\n\t): Effect.Effect<TContext, unknown, Scope.Scope>;\n\n\tshutdown(): Effect.Effect<void, never>;\n\n\t/**\n\t * Creates the strongly-typed oRPC router for this plugin.\n\t * The router's procedure types are inferred directly from the contract.\n\t * @param context The initialized plugin context\n\t * @returns A router with procedures matching the plugin's contract\n\t */\n\tcreateRouter(context: TContext): Router<TContract, any>;\n}\n\n/**\n * Factory function to create plugins\n */\nexport function createPlugin<\n\tV extends AnySchema,\n\tS extends AnySchema,\n\tTContract extends AnyContractRouter,\n\tTContext extends Context = Record<never, never>\n>(config: {\n\tvariables: V;\n\tsecrets: S;\n\tcontract: TContract;\n\tinitialize?: (\n\t\tconfig: { variables: InferSchemaOutput<V>; secrets: InferSchemaOutput<S> }\n\t) => Effect.Effect<TContext, Error, Scope.Scope>;\n\tcreateRouter: (\n\t\tcontext: TContext,\n\t\tbuilder: Implementer<TContract, TContext, TContext>\n\t) => Router<TContract, any>;\n\tshutdown?: (ctx: TContext) => Effect.Effect<void, Error, never>;\n}) {\n\tconst configSchema: PluginConfigFor<V, S> = {\n\t\tvariables: config.variables,\n\t\tsecrets: config.secrets\n\t};\n\n\tclass CreatedPlugin implements Plugin<TContract, V, S, TContext> {\n\t\t/** set during instantiation - registry key */\n\t\tid!: string;\n\t\treadonly contract = config.contract;\n\t\treadonly configSchema = configSchema;\n\n\t\tprivate _context: TContext | null = null;\n\n\t\tinitialize(\n\t\t\tpluginConfig: { variables: InferSchemaOutput<V>; secrets: InferSchemaOutput<S> }\n\t\t): Effect.Effect<TContext, unknown, Scope.Scope> {\n\t\t\tconst init = config.initialize ?? (() => Effect.succeed({} as TContext));\n\n\t\t\treturn init(pluginConfig).pipe(\n\t\t\t\tEffect.tap((ctx) => Effect.sync(() => { this._context = ctx; })),\n\t\t\t\tEffect.map(() => this._context as TContext),\n\t\t\t\tEffect.mapError((error) => error as unknown)\n\t\t\t);\n\t\t}\n\n\t\tshutdown(): Effect.Effect<void, never> {\n\t\t\tconst self = this;\n\t\t\treturn Effect.gen(function* () {\n\t\t\t\tif (config.shutdown && self._context) {\n\t\t\t\t\tyield* config.shutdown(self._context).pipe(\n\t\t\t\t\t\tEffect.catchAll(() => Effect.void)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tcreateRouter(context: TContext): Router<TContract, any> {\n\t\t\tconst builder = implement(config.contract).$context<TContext>();\n\t\t\tconst router = config.createRouter(context, builder);\n\t\t\treturn router as Router<TContract, any>;\n\t\t}\n\t}\n\n\tconst PluginConstructor = CreatedPlugin as unknown as {\n\t\tnew(): Plugin<TContract, V, S, TContext>;\n\t\tbinding: {\n\t\t\tcontract: TContract;\n\t\t\tvariables: V;\n\t\t\tsecrets: S;\n\t\t\tcontext: TContext;\n\t\t};\n\t};\n\n\tPluginConstructor.binding = {\n\t\tcontract: config.contract,\n\t\tvariables: config.variables,\n\t\tsecrets: config.secrets,\n\t\tcontext: {} as TContext\n\t};\n\n\treturn PluginConstructor as LoadedPluginWithBinding<TContract, V, S, TContext>;\n}\n"],"mappings":";;;;;;;;AA+DA,SAAgB,aAKd,QAYC;CACF,MAAMA,eAAsC;EAC3C,WAAW,OAAO;EAClB,SAAS,OAAO;EAChB;CAED,MAAM,cAA2D;;EAEhE;EACA,AAAS,WAAW,OAAO;EAC3B,AAAS,eAAe;EAExB,AAAQ,WAA4B;EAEpC,WACC,cACgD;AAGhD,WAFa,OAAO,qBAAqBC,cAAO,QAAQ,EAAE,CAAa,GAE3D,aAAa,CAAC,KACzBA,cAAO,KAAK,QAAQA,cAAO,WAAW;AAAE,SAAK,WAAW;KAAO,CAAC,EAChEA,cAAO,UAAU,KAAK,SAAqB,EAC3CA,cAAO,UAAU,UAAU,MAAiB,CAC5C;;EAGF,WAAuC;GACtC,MAAM,OAAO;AACb,UAAOA,cAAO,IAAI,aAAa;AAC9B,QAAI,OAAO,YAAY,KAAK,SAC3B,QAAO,OAAO,SAAS,KAAK,SAAS,CAAC,KACrCA,cAAO,eAAeA,cAAO,KAAK,CAClC;KAED;;EAGH,aAAa,SAA2C;GACvD,MAAM,uCAAoB,OAAO,SAAS,CAAC,UAAoB;AAE/D,UADe,OAAO,aAAa,SAAS,QAAQ;;;CAKtD,MAAM,oBAAoB;AAU1B,mBAAkB,UAAU;EAC3B,UAAU,OAAO;EACjB,WAAW,OAAO;EAClB,SAAS,OAAO;EAChB,SAAS,EAAE;EACX;AAED,QAAO"}
@@ -0,0 +1,62 @@
1
+ import { Effect, Scope } from "effect";
2
+ import { AnyContractRouter, AnySchema, InferSchemaOutput } from "@orpc/contract";
3
+ import { Context as Context$1, Implementer, Router } from "@orpc/server";
4
+
5
+ //#region src/plugin.d.ts
6
+
7
+ /**
8
+ * Helper type that correctly constructs the config schema type
9
+ */
10
+ type PluginConfigFor<V extends AnySchema, S extends AnySchema> = {
11
+ variables: V;
12
+ secrets: S;
13
+ };
14
+ /**
15
+ * Loaded plugin with static binding property
16
+ */
17
+ interface LoadedPluginWithBinding<TContract extends AnyContractRouter, TVariables extends AnySchema, TSecrets extends AnySchema, TContext extends Context$1 = Record<never, never>> {
18
+ new (): Plugin<TContract, TVariables, TSecrets, TContext>;
19
+ binding: {
20
+ contract: TContract;
21
+ variables: TVariables;
22
+ secrets: TSecrets;
23
+ context: TContext;
24
+ };
25
+ }
26
+ /**
27
+ * Plugin interface
28
+ */
29
+ interface Plugin<TContract extends AnyContractRouter, TVariables extends AnySchema, TSecrets extends AnySchema, TContext extends Context$1 = Record<never, never>> {
30
+ readonly id: string;
31
+ readonly contract: TContract;
32
+ readonly configSchema: PluginConfigFor<TVariables, TSecrets>;
33
+ initialize(config: {
34
+ variables: InferSchemaOutput<TVariables>;
35
+ secrets: InferSchemaOutput<TSecrets>;
36
+ }): Effect.Effect<TContext, unknown, Scope.Scope>;
37
+ shutdown(): Effect.Effect<void, never>;
38
+ /**
39
+ * Creates the strongly-typed oRPC router for this plugin.
40
+ * The router's procedure types are inferred directly from the contract.
41
+ * @param context The initialized plugin context
42
+ * @returns A router with procedures matching the plugin's contract
43
+ */
44
+ createRouter(context: TContext): Router<TContract, any>;
45
+ }
46
+ /**
47
+ * Factory function to create plugins
48
+ */
49
+ declare function createPlugin<V extends AnySchema, S extends AnySchema, TContract extends AnyContractRouter, TContext extends Context$1 = Record<never, never>>(config: {
50
+ variables: V;
51
+ secrets: S;
52
+ contract: TContract;
53
+ initialize?: (config: {
54
+ variables: InferSchemaOutput<V>;
55
+ secrets: InferSchemaOutput<S>;
56
+ }) => Effect.Effect<TContext, Error, Scope.Scope>;
57
+ createRouter: (context: TContext, builder: Implementer<TContract, TContext, TContext>) => Router<TContract, any>;
58
+ shutdown?: (ctx: TContext) => Effect.Effect<void, Error, never>;
59
+ }): LoadedPluginWithBinding<TContract, V, S, TContext>;
60
+ //#endregion
61
+ export { LoadedPluginWithBinding, Plugin, PluginConfigFor, createPlugin };
62
+ //# sourceMappingURL=plugin.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.cts","names":[],"sources":["../src/plugin.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAQA;AAAsC,KAA1B,eAA0B,CAAA,UAAA,SAAA,EAAA,UAAqB,SAArB,CAAA,GAAA;EAAqB,SAAA,EAC/C,CAD+C;EAC/C,OAAA,EACF,CADE;CACF;;AAMV;;AAEoB,UAFH,uBAEG,CAAA,kBADD,iBACC,EAAA,mBAAA,SAAA,EAAA,iBACF,SADE,EAAA,iBAEF,SAFE,GAEQ,MAFR,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA;EACF,MAAA,EAGV,MAHU,CAGH,SAHG,EAGQ,UAHR,EAGoB,QAHpB,EAG8B,QAH9B,CAAA;EACA,OAAA,EAAA;IAAU,QAAA,EAIhB,SAJgB;IAEb,SAAA,EAGF,UAHE;IAAW,OAAA,EAIf,QAJe;IAAY,OAAA,EAK3B,QAL2B;EAAU,CAAA;;;;;AAKrC,UAOM,MAPN,CAAA,kBAQQ,iBARR,EAAA,mBASS,SATT,EAAA,iBAUO,SAVP,EAAA,iBAWO,SAXP,GAWiB,MAXjB,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA;EAAQ,SAAA,EAAA,EAAA,MAAA;EAOF,SAAM,QAAA,EAOH,SAPG;EACJ,SAAA,YAAA,EAOK,eAPL,CAOqB,UAPrB,EAOiC,QAPjC,CAAA;EACC,UAAA,CAAA,MAAA,EAAA;IACF,SAAA,EASK,iBATL,CASuB,UATvB,CAAA;IACA,OAAA,EAQ6C,iBAR7C,CAQ+D,QAR/D,CAAA;EAAU,CAAA,CAAA,EASxB,MAAA,CAAO,MATiB,CASV,QATU,EAAA,OAAA,EASS,KAAA,CAAM,KATf,CAAA;EAGR,QAAA,EAAA,EAQP,MAAA,CAAO,MARA,CAAA,IAAA,EAAA,KAAA,CAAA;EACoB;;;;;;EAIuB,YAAA,CAAA,OAAA,EAWxC,QAXwC,CAAA,EAW7B,MAX6B,CAWtB,SAXsB,EAAA,GAAA,CAAA;;;;;AAWxC,iBAMP,YANO,CAAA,UAOZ,SAPY,EAAA,UAQZ,SARY,EAAA,kBASJ,iBATI,EAAA,iBAUL,SAVK,GAUK,MAVL,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA,MAAA,EAAA;EAAkB,SAAA,EAY7B,CAZ6B;EAAP,OAAA,EAaxB,CAbwB;EAAM,QAAA,EAc7B,SAd6B;EAMxB,UAAA,CAAA,EAAA,CAAA,MAAY,EAAA;IACjB,SAAA,EASY,iBATZ,CAS8B,CAT9B,CAAA;IACA,OAAA,EAQ2C,iBAR3C,CAQ6D,CAR7D,CAAA;EACQ,CAAA,EAAA,GAQb,MAAA,CAAO,MARM,CAQC,QARD,EAQW,KARX,EAQkB,KAAA,CAAM,KARxB,CAAA;EACD,YAAA,EAAA,CAAA,OAAA,EASP,QATO,EAAA,OAAA,EAUP,WAVO,CAUK,SAVL,EAUgB,QAVhB,EAU0B,QAV1B,CAAA,EAAA,GAWZ,MAXY,CAWL,SAXK,EAAA,GAAA,CAAA;EAAU,QAAA,CAAA,EAAA,CAAA,GAAA,EAYV,QAZU,EAAA,GAYG,MAAA,CAAO,MAZV,CAAA,IAAA,EAYuB,KAZvB,EAAA,KAAA,CAAA;CAEhB,CAAA,EAwEiB,uBAxEjB,CAwEyC,SAxEzC,EAwEoD,CAxEpD,EAwEuD,CAxEvD,EAwE0D,QAxE1D,CAAA"}
@@ -0,0 +1,62 @@
1
+ import { Effect, Scope } from "effect";
2
+ import { Context as Context$1, Implementer, Router } from "@orpc/server";
3
+ import { AnyContractRouter, AnySchema, InferSchemaOutput } from "@orpc/contract";
4
+
5
+ //#region src/plugin.d.ts
6
+
7
+ /**
8
+ * Helper type that correctly constructs the config schema type
9
+ */
10
+ type PluginConfigFor<V extends AnySchema, S extends AnySchema> = {
11
+ variables: V;
12
+ secrets: S;
13
+ };
14
+ /**
15
+ * Loaded plugin with static binding property
16
+ */
17
+ interface LoadedPluginWithBinding<TContract extends AnyContractRouter, TVariables extends AnySchema, TSecrets extends AnySchema, TContext extends Context$1 = Record<never, never>> {
18
+ new (): Plugin<TContract, TVariables, TSecrets, TContext>;
19
+ binding: {
20
+ contract: TContract;
21
+ variables: TVariables;
22
+ secrets: TSecrets;
23
+ context: TContext;
24
+ };
25
+ }
26
+ /**
27
+ * Plugin interface
28
+ */
29
+ interface Plugin<TContract extends AnyContractRouter, TVariables extends AnySchema, TSecrets extends AnySchema, TContext extends Context$1 = Record<never, never>> {
30
+ readonly id: string;
31
+ readonly contract: TContract;
32
+ readonly configSchema: PluginConfigFor<TVariables, TSecrets>;
33
+ initialize(config: {
34
+ variables: InferSchemaOutput<TVariables>;
35
+ secrets: InferSchemaOutput<TSecrets>;
36
+ }): Effect.Effect<TContext, unknown, Scope.Scope>;
37
+ shutdown(): Effect.Effect<void, never>;
38
+ /**
39
+ * Creates the strongly-typed oRPC router for this plugin.
40
+ * The router's procedure types are inferred directly from the contract.
41
+ * @param context The initialized plugin context
42
+ * @returns A router with procedures matching the plugin's contract
43
+ */
44
+ createRouter(context: TContext): Router<TContract, any>;
45
+ }
46
+ /**
47
+ * Factory function to create plugins
48
+ */
49
+ declare function createPlugin<V extends AnySchema, S extends AnySchema, TContract extends AnyContractRouter, TContext extends Context$1 = Record<never, never>>(config: {
50
+ variables: V;
51
+ secrets: S;
52
+ contract: TContract;
53
+ initialize?: (config: {
54
+ variables: InferSchemaOutput<V>;
55
+ secrets: InferSchemaOutput<S>;
56
+ }) => Effect.Effect<TContext, Error, Scope.Scope>;
57
+ createRouter: (context: TContext, builder: Implementer<TContract, TContext, TContext>) => Router<TContract, any>;
58
+ shutdown?: (ctx: TContext) => Effect.Effect<void, Error, never>;
59
+ }): LoadedPluginWithBinding<TContract, V, S, TContext>;
60
+ //#endregion
61
+ export { LoadedPluginWithBinding, Plugin, PluginConfigFor, createPlugin };
62
+ //# sourceMappingURL=plugin.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.mts","names":[],"sources":["../src/plugin.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAQA;AAAsC,KAA1B,eAA0B,CAAA,UAAA,SAAA,EAAA,UAAqB,SAArB,CAAA,GAAA;EAAqB,SAAA,EAC/C,CAD+C;EAC/C,OAAA,EACF,CADE;CACF;;AAMV;;AAEoB,UAFH,uBAEG,CAAA,kBADD,iBACC,EAAA,mBAAA,SAAA,EAAA,iBACF,SADE,EAAA,iBAEF,SAFE,GAEQ,MAFR,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA;EACF,MAAA,EAGV,MAHU,CAGH,SAHG,EAGQ,UAHR,EAGoB,QAHpB,EAG8B,QAH9B,CAAA;EACA,OAAA,EAAA;IAAU,QAAA,EAIhB,SAJgB;IAEb,SAAA,EAGF,UAHE;IAAW,OAAA,EAIf,QAJe;IAAY,OAAA,EAK3B,QAL2B;EAAU,CAAA;;;;;AAKrC,UAOM,MAPN,CAAA,kBAQQ,iBARR,EAAA,mBASS,SATT,EAAA,iBAUO,SAVP,EAAA,iBAWO,SAXP,GAWiB,MAXjB,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA;EAAQ,SAAA,EAAA,EAAA,MAAA;EAOF,SAAM,QAAA,EAOH,SAPG;EACJ,SAAA,YAAA,EAOK,eAPL,CAOqB,UAPrB,EAOiC,QAPjC,CAAA;EACC,UAAA,CAAA,MAAA,EAAA;IACF,SAAA,EASK,iBATL,CASuB,UATvB,CAAA;IACA,OAAA,EAQ6C,iBAR7C,CAQ+D,QAR/D,CAAA;EAAU,CAAA,CAAA,EASxB,MAAA,CAAO,MATiB,CASV,QATU,EAAA,OAAA,EASS,KAAA,CAAM,KATf,CAAA;EAGR,QAAA,EAAA,EAQP,MAAA,CAAO,MARA,CAAA,IAAA,EAAA,KAAA,CAAA;EACoB;;;;;;EAIuB,YAAA,CAAA,OAAA,EAWxC,QAXwC,CAAA,EAW7B,MAX6B,CAWtB,SAXsB,EAAA,GAAA,CAAA;;;;;AAWxC,iBAMP,YANO,CAAA,UAOZ,SAPY,EAAA,UAQZ,SARY,EAAA,kBASJ,iBATI,EAAA,iBAUL,SAVK,GAUK,MAVL,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA,MAAA,EAAA;EAAkB,SAAA,EAY7B,CAZ6B;EAAP,OAAA,EAaxB,CAbwB;EAAM,QAAA,EAc7B,SAd6B;EAMxB,UAAA,CAAA,EAAA,CAAA,MAAY,EAAA;IACjB,SAAA,EASY,iBATZ,CAS8B,CAT9B,CAAA;IACA,OAAA,EAQ2C,iBAR3C,CAQ6D,CAR7D,CAAA;EACQ,CAAA,EAAA,GAQb,MAAA,CAAO,MARM,CAQC,QARD,EAQW,KARX,EAQkB,KAAA,CAAM,KARxB,CAAA;EACD,YAAA,EAAA,CAAA,OAAA,EASP,QATO,EAAA,OAAA,EAUP,WAVO,CAUK,SAVL,EAUgB,QAVhB,EAU0B,QAV1B,CAAA,EAAA,GAWZ,MAXY,CAWL,SAXK,EAAA,GAAA,CAAA;EAAU,QAAA,CAAA,EAAA,CAAA,GAAA,EAYV,QAZU,EAAA,GAYG,MAAA,CAAO,MAZV,CAAA,IAAA,EAYuB,KAZvB,EAAA,KAAA,CAAA;CAEhB,CAAA,EAwEiB,uBAxEjB,CAwEyC,SAxEzC,EAwEoD,CAxEpD,EAwEuD,CAxEvD,EAwE0D,QAxE1D,CAAA"}
@@ -0,0 +1,47 @@
1
+ import { Effect } from "effect";
2
+ import { implement } from "@orpc/server";
3
+
4
+ //#region src/plugin.ts
5
+ /**
6
+ * Factory function to create plugins
7
+ */
8
+ function createPlugin(config) {
9
+ const configSchema = {
10
+ variables: config.variables,
11
+ secrets: config.secrets
12
+ };
13
+ class CreatedPlugin {
14
+ /** set during instantiation - registry key */
15
+ id;
16
+ contract = config.contract;
17
+ configSchema = configSchema;
18
+ _context = null;
19
+ initialize(pluginConfig) {
20
+ return (config.initialize ?? (() => Effect.succeed({})))(pluginConfig).pipe(Effect.tap((ctx) => Effect.sync(() => {
21
+ this._context = ctx;
22
+ })), Effect.map(() => this._context), Effect.mapError((error) => error));
23
+ }
24
+ shutdown() {
25
+ const self = this;
26
+ return Effect.gen(function* () {
27
+ if (config.shutdown && self._context) yield* config.shutdown(self._context).pipe(Effect.catchAll(() => Effect.void));
28
+ });
29
+ }
30
+ createRouter(context) {
31
+ const builder = implement(config.contract).$context();
32
+ return config.createRouter(context, builder);
33
+ }
34
+ }
35
+ const PluginConstructor = CreatedPlugin;
36
+ PluginConstructor.binding = {
37
+ contract: config.contract,
38
+ variables: config.variables,
39
+ secrets: config.secrets,
40
+ context: {}
41
+ };
42
+ return PluginConstructor;
43
+ }
44
+
45
+ //#endregion
46
+ export { createPlugin };
47
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.mjs","names":["configSchema: PluginConfigFor<V, S>"],"sources":["../src/plugin.ts"],"sourcesContent":["import type { AnyContractRouter, AnySchema, InferSchemaOutput } from \"@orpc/contract\";\nimport type { Context, Implementer, Router } from \"@orpc/server\";\nimport { implement } from \"@orpc/server\";\nimport { Effect, type Scope } from \"effect\";\n\n/**\n * Helper type that correctly constructs the config schema type\n */\nexport type PluginConfigFor<V extends AnySchema, S extends AnySchema> = {\n\tvariables: V;\n\tsecrets: S;\n};\n\n/**\n * Loaded plugin with static binding property\n */\nexport interface LoadedPluginWithBinding<\n\tTContract extends AnyContractRouter,\n\tTVariables extends AnySchema,\n\tTSecrets extends AnySchema,\n\tTContext extends Context = Record<never, never>\n> {\n\tnew(): Plugin<TContract, TVariables, TSecrets, TContext>;\n\tbinding: {\n\t\tcontract: TContract;\n\t\tvariables: TVariables;\n\t\tsecrets: TSecrets;\n\t\tcontext: TContext;\n\t};\n}\n\n/**\n * Plugin interface\n */\nexport interface Plugin<\n\tTContract extends AnyContractRouter,\n\tTVariables extends AnySchema,\n\tTSecrets extends AnySchema,\n\tTContext extends Context = Record<never, never>\n> {\n\treadonly id: string;\n\treadonly contract: TContract;\n\treadonly configSchema: PluginConfigFor<TVariables, TSecrets>;\n\n\t// Plugin lifecycle\n\tinitialize(\n\t\tconfig: { variables: InferSchemaOutput<TVariables>; secrets: InferSchemaOutput<TSecrets> }\n\t): Effect.Effect<TContext, unknown, Scope.Scope>;\n\n\tshutdown(): Effect.Effect<void, never>;\n\n\t/**\n\t * Creates the strongly-typed oRPC router for this plugin.\n\t * The router's procedure types are inferred directly from the contract.\n\t * @param context The initialized plugin context\n\t * @returns A router with procedures matching the plugin's contract\n\t */\n\tcreateRouter(context: TContext): Router<TContract, any>;\n}\n\n/**\n * Factory function to create plugins\n */\nexport function createPlugin<\n\tV extends AnySchema,\n\tS extends AnySchema,\n\tTContract extends AnyContractRouter,\n\tTContext extends Context = Record<never, never>\n>(config: {\n\tvariables: V;\n\tsecrets: S;\n\tcontract: TContract;\n\tinitialize?: (\n\t\tconfig: { variables: InferSchemaOutput<V>; secrets: InferSchemaOutput<S> }\n\t) => Effect.Effect<TContext, Error, Scope.Scope>;\n\tcreateRouter: (\n\t\tcontext: TContext,\n\t\tbuilder: Implementer<TContract, TContext, TContext>\n\t) => Router<TContract, any>;\n\tshutdown?: (ctx: TContext) => Effect.Effect<void, Error, never>;\n}) {\n\tconst configSchema: PluginConfigFor<V, S> = {\n\t\tvariables: config.variables,\n\t\tsecrets: config.secrets\n\t};\n\n\tclass CreatedPlugin implements Plugin<TContract, V, S, TContext> {\n\t\t/** set during instantiation - registry key */\n\t\tid!: string;\n\t\treadonly contract = config.contract;\n\t\treadonly configSchema = configSchema;\n\n\t\tprivate _context: TContext | null = null;\n\n\t\tinitialize(\n\t\t\tpluginConfig: { variables: InferSchemaOutput<V>; secrets: InferSchemaOutput<S> }\n\t\t): Effect.Effect<TContext, unknown, Scope.Scope> {\n\t\t\tconst init = config.initialize ?? (() => Effect.succeed({} as TContext));\n\n\t\t\treturn init(pluginConfig).pipe(\n\t\t\t\tEffect.tap((ctx) => Effect.sync(() => { this._context = ctx; })),\n\t\t\t\tEffect.map(() => this._context as TContext),\n\t\t\t\tEffect.mapError((error) => error as unknown)\n\t\t\t);\n\t\t}\n\n\t\tshutdown(): Effect.Effect<void, never> {\n\t\t\tconst self = this;\n\t\t\treturn Effect.gen(function* () {\n\t\t\t\tif (config.shutdown && self._context) {\n\t\t\t\t\tyield* config.shutdown(self._context).pipe(\n\t\t\t\t\t\tEffect.catchAll(() => Effect.void)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tcreateRouter(context: TContext): Router<TContract, any> {\n\t\t\tconst builder = implement(config.contract).$context<TContext>();\n\t\t\tconst router = config.createRouter(context, builder);\n\t\t\treturn router as Router<TContract, any>;\n\t\t}\n\t}\n\n\tconst PluginConstructor = CreatedPlugin as unknown as {\n\t\tnew(): Plugin<TContract, V, S, TContext>;\n\t\tbinding: {\n\t\t\tcontract: TContract;\n\t\t\tvariables: V;\n\t\t\tsecrets: S;\n\t\t\tcontext: TContext;\n\t\t};\n\t};\n\n\tPluginConstructor.binding = {\n\t\tcontract: config.contract,\n\t\tvariables: config.variables,\n\t\tsecrets: config.secrets,\n\t\tcontext: {} as TContext\n\t};\n\n\treturn PluginConstructor as LoadedPluginWithBinding<TContract, V, S, TContext>;\n}\n"],"mappings":";;;;;;;AA+DA,SAAgB,aAKd,QAYC;CACF,MAAMA,eAAsC;EAC3C,WAAW,OAAO;EAClB,SAAS,OAAO;EAChB;CAED,MAAM,cAA2D;;EAEhE;EACA,AAAS,WAAW,OAAO;EAC3B,AAAS,eAAe;EAExB,AAAQ,WAA4B;EAEpC,WACC,cACgD;AAGhD,WAFa,OAAO,qBAAqB,OAAO,QAAQ,EAAE,CAAa,GAE3D,aAAa,CAAC,KACzB,OAAO,KAAK,QAAQ,OAAO,WAAW;AAAE,SAAK,WAAW;KAAO,CAAC,EAChE,OAAO,UAAU,KAAK,SAAqB,EAC3C,OAAO,UAAU,UAAU,MAAiB,CAC5C;;EAGF,WAAuC;GACtC,MAAM,OAAO;AACb,UAAO,OAAO,IAAI,aAAa;AAC9B,QAAI,OAAO,YAAY,KAAK,SAC3B,QAAO,OAAO,SAAS,KAAK,SAAS,CAAC,KACrC,OAAO,eAAe,OAAO,KAAK,CAClC;KAED;;EAGH,aAAa,SAA2C;GACvD,MAAM,UAAU,UAAU,OAAO,SAAS,CAAC,UAAoB;AAE/D,UADe,OAAO,aAAa,SAAS,QAAQ;;;CAKtD,MAAM,oBAAoB;AAU1B,mBAAkB,UAAU;EAC3B,UAAU,OAAO;EACjB,WAAW,OAAO;EAClB,SAAS,OAAO;EAChB,SAAS,EAAE;EACX;AAED,QAAO"}
@@ -0,0 +1,97 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ let effect = require("effect");
3
+ let __orpc_contract = require("@orpc/contract");
4
+
5
+ //#region src/runtime/errors.ts
6
+ var PluginRuntimeError = class extends effect.Data.TaggedError("PluginRuntimeError") {};
7
+ var ModuleFederationError = class extends effect.Data.TaggedError("ModuleFederationError") {};
8
+ var ValidationError = class extends effect.Data.TaggedError("ValidationError") {};
9
+ const extractErrorMessage = (error) => {
10
+ if (!error) return "Unknown error";
11
+ if (error instanceof Error) {
12
+ if (error.message) return error.message;
13
+ if (error.cause instanceof Error) return extractErrorMessage(error.cause);
14
+ }
15
+ if (error instanceof AggregateError && error.errors?.length) return error.errors.map((e) => extractErrorMessage(e)).join("; ");
16
+ if (typeof error === "object" && "message" in error) return String(error.message);
17
+ return String(error);
18
+ };
19
+ const formatPluginError = (pluginId, operation, message) => {
20
+ const lines = [];
21
+ lines.push(`\n╭─ Plugin Error ${"─".repeat(40)}`);
22
+ if (pluginId) lines.push(`│ Plugin: ${pluginId}`);
23
+ if (operation) lines.push(`│ During: ${operation}`);
24
+ lines.push(`│`);
25
+ if (message.includes("ECONNREFUSED")) {
26
+ lines.push(`│ ❌ Connection refused`);
27
+ lines.push(`│ `);
28
+ lines.push(`│ A required service is not running.`);
29
+ lines.push(`│ → Run: docker compose up -d`);
30
+ } else if (message.includes("ENOTFOUND")) {
31
+ lines.push(`│ ❌ Host not found`);
32
+ lines.push(`│ `);
33
+ lines.push(`│ Check your connection URL or network settings.`);
34
+ } else if (message.includes("ETIMEDOUT") || message.includes("timeout")) {
35
+ lines.push(`│ ❌ Connection timeout`);
36
+ lines.push(`│ `);
37
+ lines.push(`│ The service took too long to respond.`);
38
+ } else if (message.includes("EACCES") || message.includes("permission")) {
39
+ lines.push(`│ ❌ Permission denied`);
40
+ lines.push(`│ `);
41
+ lines.push(`│ Check credentials or access permissions.`);
42
+ } else if (message.includes("401") || message.includes("unauthorized")) {
43
+ lines.push(`│ ❌ Authentication failed`);
44
+ lines.push(`│ `);
45
+ lines.push(`│ Check your API key or credentials.`);
46
+ } else lines.push(`│ ❌ ${message}`);
47
+ lines.push(`╰${"─".repeat(50)}\n`);
48
+ console.error(lines.join("\n"));
49
+ };
50
+ const isRetryableError = (message) => {
51
+ return [
52
+ "ETIMEDOUT",
53
+ "ECONNRESET",
54
+ "timeout",
55
+ "503",
56
+ "429"
57
+ ].some((p) => message.toLowerCase().includes(p.toLowerCase()));
58
+ };
59
+ const isRetryableORPCCode = (code) => {
60
+ switch (code) {
61
+ case "TOO_MANY_REQUESTS":
62
+ case "SERVICE_UNAVAILABLE":
63
+ case "BAD_GATEWAY":
64
+ case "GATEWAY_TIMEOUT":
65
+ case "TIMEOUT": return true;
66
+ default: return false;
67
+ }
68
+ };
69
+ const wrapORPCError = (orpcError, pluginId, procedureName, operation) => {
70
+ return new PluginRuntimeError({
71
+ pluginId,
72
+ operation,
73
+ procedureName,
74
+ retryable: isRetryableORPCCode(orpcError.code),
75
+ cause: orpcError
76
+ });
77
+ };
78
+ const toPluginRuntimeError = (error, pluginId, procedureName, operation, defaultRetryable = false) => {
79
+ if (error instanceof __orpc_contract.ORPCError) return wrapORPCError(error, pluginId, procedureName, operation);
80
+ if (error instanceof PluginRuntimeError) return error;
81
+ const message = extractErrorMessage(error);
82
+ formatPluginError(pluginId, operation, message);
83
+ return new PluginRuntimeError({
84
+ pluginId,
85
+ operation,
86
+ procedureName,
87
+ retryable: defaultRetryable || isRetryableError(message),
88
+ cause: error instanceof Error ? error : new Error(message)
89
+ });
90
+ };
91
+
92
+ //#endregion
93
+ exports.ModuleFederationError = ModuleFederationError;
94
+ exports.PluginRuntimeError = PluginRuntimeError;
95
+ exports.ValidationError = ValidationError;
96
+ exports.toPluginRuntimeError = toPluginRuntimeError;
97
+ //# sourceMappingURL=errors.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.cjs","names":["Data","lines: string[]","ORPCError"],"sources":["../../src/runtime/errors.ts"],"sourcesContent":["import { ORPCError } from \"@orpc/contract\";\nimport { Data } from \"effect\";\nimport type { z } from \"zod\";\n\nexport class PluginRuntimeError extends Data.TaggedError(\"PluginRuntimeError\")<{\n\treadonly pluginId?: string;\n\treadonly operation?: string;\n\treadonly procedureName?: string;\n\treadonly cause?: Error;\n\treadonly retryable: boolean;\n}> { }\n\nexport class ModuleFederationError extends Data.TaggedError(\n\t\"ModuleFederationError\",\n)<{\n\treadonly pluginId: string;\n\treadonly remoteUrl: string;\n\treadonly cause?: Error;\n}> { }\n\nexport class ValidationError extends Data.TaggedError(\"ValidationError\")<{\n\treadonly pluginId: string;\n\treadonly stage: \"config\" | \"input\" | \"output\" | \"state\";\n\treadonly zodError: z.ZodError;\n}> { }\n\nconst extractErrorMessage = (error: unknown): string => {\n\tif (!error) return 'Unknown error';\n\n\tif (error instanceof Error) {\n\t\tif (error.message) return error.message;\n\t\tif ((error as any).cause instanceof Error) {\n\t\t\treturn extractErrorMessage((error as any).cause);\n\t\t}\n\t}\n\n\tif (error instanceof AggregateError && error.errors?.length) {\n\t\treturn error.errors.map(e => extractErrorMessage(e)).join('; ');\n\t}\n\n\tif (typeof error === 'object' && 'message' in error) {\n\t\treturn String((error as any).message);\n\t}\n\n\treturn String(error);\n};\n\nconst formatPluginError = (\n\tpluginId: string | undefined,\n\toperation: string | undefined,\n\tmessage: string\n): void => {\n\tconst lines: string[] = [];\n\n\tlines.push(`\\n╭─ Plugin Error ${'─'.repeat(40)}`);\n\tif (pluginId) lines.push(`│ Plugin: ${pluginId}`);\n\tif (operation) lines.push(`│ During: ${operation}`);\n\tlines.push(`│`);\n\n\tif (message.includes('ECONNREFUSED')) {\n\t\tlines.push(`│ ❌ Connection refused`);\n\t\tlines.push(`│ `);\n\t\tlines.push(`│ A required service is not running.`);\n\t\tlines.push(`│ → Run: docker compose up -d`);\n\t} else if (message.includes('ENOTFOUND')) {\n\t\tlines.push(`│ ❌ Host not found`);\n\t\tlines.push(`│ `);\n\t\tlines.push(`│ Check your connection URL or network settings.`);\n\t} else if (message.includes('ETIMEDOUT') || message.includes('timeout')) {\n\t\tlines.push(`│ ❌ Connection timeout`);\n\t\tlines.push(`│ `);\n\t\tlines.push(`│ The service took too long to respond.`);\n\t} else if (message.includes('EACCES') || message.includes('permission')) {\n\t\tlines.push(`│ ❌ Permission denied`);\n\t\tlines.push(`│ `);\n\t\tlines.push(`│ Check credentials or access permissions.`);\n\t} else if (message.includes('401') || message.includes('unauthorized')) {\n\t\tlines.push(`│ ❌ Authentication failed`);\n\t\tlines.push(`│ `);\n\t\tlines.push(`│ Check your API key or credentials.`);\n\t} else {\n\t\tlines.push(`│ ❌ ${message}`);\n\t}\n\n\tlines.push(`╰${'─'.repeat(50)}\\n`);\n\n\tconsole.error(lines.join('\\n'));\n};\n\nconst isRetryableError = (message: string): boolean => {\n\tconst retryablePatterns = ['ETIMEDOUT', 'ECONNRESET', 'timeout', '503', '429'];\n\treturn retryablePatterns.some(p => message.toLowerCase().includes(p.toLowerCase()));\n};\n\n// Helper to determine if an oRPC error code is retryable\nexport const isRetryableORPCCode = (code: string): boolean => {\n\tswitch (code) {\n\t\tcase 'TOO_MANY_REQUESTS':\n\t\tcase 'SERVICE_UNAVAILABLE':\n\t\tcase 'BAD_GATEWAY':\n\t\tcase 'GATEWAY_TIMEOUT':\n\t\tcase 'TIMEOUT':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\n// Convert ORPC errors from plugin procedures to PluginRuntimeError\nexport const wrapORPCError = (\n\torpcError: ORPCError<string, unknown>,\n\tpluginId?: string,\n\tprocedureName?: string,\n\toperation?: string\n): PluginRuntimeError => {\n\treturn new PluginRuntimeError({\n\t\tpluginId,\n\t\toperation,\n\t\tprocedureName,\n\t\tretryable: isRetryableORPCCode(orpcError.code),\n\t\tcause: orpcError as Error\n\t});\n};\n\n// Universal error converter for the runtime\nexport const toPluginRuntimeError = (\n\terror: unknown,\n\tpluginId?: string,\n\tprocedureName?: string,\n\toperation?: string,\n\tdefaultRetryable = false\n): PluginRuntimeError => {\n\tif (error instanceof ORPCError) {\n\t\treturn wrapORPCError(error, pluginId, procedureName, operation);\n\t}\n\n\tif (error instanceof PluginRuntimeError) {\n\t\treturn error;\n\t}\n\n\tconst message = extractErrorMessage(error);\n\n\tformatPluginError(pluginId, operation, message);\n\n\treturn new PluginRuntimeError({\n\t\tpluginId,\n\t\toperation,\n\t\tprocedureName,\n\t\tretryable: defaultRetryable || isRetryableError(message),\n\t\tcause: error instanceof Error ? error : new Error(message)\n\t});\n};\n"],"mappings":";;;;;AAIA,IAAa,qBAAb,cAAwCA,YAAK,YAAY,qBAAqB,CAM3E;AAEH,IAAa,wBAAb,cAA2CA,YAAK,YAC/C,wBACA,CAIE;AAEH,IAAa,kBAAb,cAAqCA,YAAK,YAAY,kBAAkB,CAIrE;AAEH,MAAM,uBAAuB,UAA2B;AACvD,KAAI,CAAC,MAAO,QAAO;AAEnB,KAAI,iBAAiB,OAAO;AAC3B,MAAI,MAAM,QAAS,QAAO,MAAM;AAChC,MAAK,MAAc,iBAAiB,MACnC,QAAO,oBAAqB,MAAc,MAAM;;AAIlD,KAAI,iBAAiB,kBAAkB,MAAM,QAAQ,OACpD,QAAO,MAAM,OAAO,KAAI,MAAK,oBAAoB,EAAE,CAAC,CAAC,KAAK,KAAK;AAGhE,KAAI,OAAO,UAAU,YAAY,aAAa,MAC7C,QAAO,OAAQ,MAAc,QAAQ;AAGtC,QAAO,OAAO,MAAM;;AAGrB,MAAM,qBACL,UACA,WACA,YACU;CACV,MAAMC,QAAkB,EAAE;AAE1B,OAAM,KAAK,qBAAqB,IAAI,OAAO,GAAG,GAAG;AACjD,KAAI,SAAU,OAAM,KAAK,cAAc,WAAW;AAClD,KAAI,UAAW,OAAM,KAAK,cAAc,YAAY;AACpD,OAAM,KAAK,IAAI;AAEf,KAAI,QAAQ,SAAS,eAAe,EAAE;AACrC,QAAM,KAAK,0BAA0B;AACrC,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,wCAAwC;AACnD,QAAM,KAAK,iCAAiC;YAClC,QAAQ,SAAS,YAAY,EAAE;AACzC,QAAM,KAAK,sBAAsB;AACjC,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,oDAAoD;YACrD,QAAQ,SAAS,YAAY,IAAI,QAAQ,SAAS,UAAU,EAAE;AACxE,QAAM,KAAK,0BAA0B;AACrC,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,2CAA2C;YAC5C,QAAQ,SAAS,SAAS,IAAI,QAAQ,SAAS,aAAa,EAAE;AACxE,QAAM,KAAK,yBAAyB;AACpC,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,8CAA8C;YAC/C,QAAQ,SAAS,MAAM,IAAI,QAAQ,SAAS,eAAe,EAAE;AACvE,QAAM,KAAK,6BAA6B;AACxC,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,wCAAwC;OAEnD,OAAM,KAAK,QAAQ,UAAU;AAG9B,OAAM,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI;AAElC,SAAQ,MAAM,MAAM,KAAK,KAAK,CAAC;;AAGhC,MAAM,oBAAoB,YAA6B;AAEtD,QAD0B;EAAC;EAAa;EAAc;EAAW;EAAO;EAAM,CACrD,MAAK,MAAK,QAAQ,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;;AAIpF,MAAa,uBAAuB,SAA0B;AAC7D,SAAQ,MAAR;EACC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,UACJ,QAAO;EACR,QACC,QAAO;;;AAKV,MAAa,iBACZ,WACA,UACA,eACA,cACwB;AACxB,QAAO,IAAI,mBAAmB;EAC7B;EACA;EACA;EACA,WAAW,oBAAoB,UAAU,KAAK;EAC9C,OAAO;EACP,CAAC;;AAIH,MAAa,wBACZ,OACA,UACA,eACA,WACA,mBAAmB,UACK;AACxB,KAAI,iBAAiBC,0BACpB,QAAO,cAAc,OAAO,UAAU,eAAe,UAAU;AAGhE,KAAI,iBAAiB,mBACpB,QAAO;CAGR,MAAM,UAAU,oBAAoB,MAAM;AAE1C,mBAAkB,UAAU,WAAW,QAAQ;AAE/C,QAAO,IAAI,mBAAmB;EAC7B;EACA;EACA;EACA,WAAW,oBAAoB,iBAAiB,QAAQ;EACxD,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,QAAQ;EAC1D,CAAC"}