every-plugin 0.5.0 → 0.5.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.
- package/dist/{chunk-zltIcp7o.cjs → _virtual/rolldown_runtime.cjs} +3 -18
- package/dist/{chunk-QQAxy9l9.mjs → _virtual/rolldown_runtime.mjs} +1 -1
- package/dist/build/rspack/dev-server-middleware.cjs +201 -0
- package/dist/build/rspack/dev-server-middleware.cjs.map +1 -0
- package/dist/build/rspack/dev-server-middleware.mjs +200 -0
- package/dist/build/rspack/dev-server-middleware.mjs.map +1 -0
- package/dist/build/rspack/index.cjs +2 -362
- package/dist/build/rspack/index.d.cts +2 -20
- package/dist/build/rspack/index.d.mts +2 -20
- package/dist/build/rspack/index.mjs +2 -360
- package/dist/build/rspack/module-federation.cjs +47 -0
- package/dist/build/rspack/module-federation.cjs.map +1 -0
- package/dist/build/rspack/module-federation.mjs +47 -0
- package/dist/build/rspack/module-federation.mjs.map +1 -0
- package/dist/build/rspack/plugin.cjs +90 -0
- package/dist/build/rspack/plugin.cjs.map +1 -0
- package/dist/build/rspack/plugin.d.cts +20 -0
- package/dist/build/rspack/plugin.d.cts.map +1 -0
- package/dist/build/rspack/plugin.d.mts +20 -0
- package/dist/build/rspack/plugin.d.mts.map +1 -0
- package/dist/build/rspack/plugin.mjs +89 -0
- package/dist/build/rspack/plugin.mjs.map +1 -0
- package/dist/build/rspack/utils.cjs +41 -0
- package/dist/build/rspack/utils.cjs.map +1 -0
- package/dist/build/rspack/utils.mjs +38 -0
- package/dist/build/rspack/utils.mjs.map +1 -0
- package/dist/errors.cjs +62 -3
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +75 -3
- package/dist/errors.d.cts.map +1 -0
- package/dist/errors.d.mts +75 -3
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +62 -3
- package/dist/errors.mjs.map +1 -0
- package/dist/index.cjs +8 -55
- package/dist/index.d.cts +6 -5
- package/dist/index.d.mts +6 -5
- package/dist/index.mjs +5 -51
- package/dist/orpc.cjs +1 -1
- package/dist/{package-DyTuSutr.cjs → package.cjs} +22 -7
- package/dist/package.cjs.map +1 -0
- package/dist/{package-CaRYwbRi.mjs → package.mjs} +22 -5
- package/dist/package.mjs.map +1 -0
- package/dist/plugin.cjs +48 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.cts +62 -0
- package/dist/plugin.d.cts.map +1 -0
- package/dist/plugin.d.mts +62 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +47 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/runtime/errors.cjs +45 -0
- package/dist/runtime/errors.cjs.map +1 -0
- package/dist/runtime/errors.d.cts +27 -0
- package/dist/runtime/errors.d.cts.map +1 -0
- package/dist/runtime/errors.d.mts +27 -0
- package/dist/runtime/errors.d.mts.map +1 -0
- package/dist/runtime/errors.mjs +41 -0
- package/dist/runtime/errors.mjs.map +1 -0
- package/dist/runtime/index.cjs +157 -5
- package/dist/runtime/index.cjs.map +1 -0
- package/dist/runtime/index.d.cts +43 -5
- package/dist/runtime/index.d.cts.map +1 -0
- package/dist/runtime/index.d.mts +43 -5
- package/dist/runtime/index.d.mts.map +1 -0
- package/dist/runtime/index.mjs +155 -4
- package/dist/runtime/index.mjs.map +1 -0
- package/dist/runtime/services/module-federation.service.cjs +143 -0
- package/dist/runtime/services/module-federation.service.cjs.map +1 -0
- package/dist/runtime/services/module-federation.service.d.cts +15 -0
- package/dist/runtime/services/module-federation.service.d.cts.map +1 -0
- package/dist/runtime/services/module-federation.service.d.mts +15 -0
- package/dist/runtime/services/module-federation.service.d.mts.map +1 -0
- package/dist/runtime/services/module-federation.service.mjs +143 -0
- package/dist/runtime/services/module-federation.service.mjs.map +1 -0
- package/dist/runtime/services/normalize.cjs +22 -2
- package/dist/runtime/services/normalize.cjs.map +1 -0
- package/dist/runtime/services/normalize.d.cts +21 -2
- package/dist/runtime/services/normalize.d.cts.map +1 -0
- package/dist/runtime/services/normalize.d.mts +21 -2
- package/dist/runtime/services/normalize.d.mts.map +1 -0
- package/dist/runtime/services/normalize.mjs +21 -2
- package/dist/runtime/services/normalize.mjs.map +1 -0
- package/dist/runtime/services/plugin-lifecycle.service.cjs +33 -0
- package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -0
- package/dist/runtime/services/plugin-lifecycle.service.d.cts +17 -0
- package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +1 -0
- package/dist/runtime/services/plugin-lifecycle.service.d.mts +17 -0
- package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +1 -0
- package/dist/runtime/services/plugin-lifecycle.service.mjs +32 -0
- package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -0
- package/dist/runtime/services/plugin-loader.service.cjs +125 -0
- package/dist/runtime/services/plugin-loader.service.cjs.map +1 -0
- package/dist/runtime/services/plugin-loader.service.d.cts +54 -0
- package/dist/runtime/services/plugin-loader.service.d.cts.map +1 -0
- package/dist/runtime/services/plugin-loader.service.d.mts +54 -0
- package/dist/runtime/services/plugin-loader.service.d.mts.map +1 -0
- package/dist/runtime/services/plugin-loader.service.mjs +121 -0
- package/dist/runtime/services/plugin-loader.service.mjs.map +1 -0
- package/dist/runtime/services/plugin.service.cjs +33 -0
- package/dist/runtime/services/plugin.service.cjs.map +1 -0
- package/dist/runtime/services/plugin.service.d.cts +42 -0
- package/dist/runtime/services/plugin.service.d.cts.map +1 -0
- package/dist/runtime/services/plugin.service.d.mts +42 -0
- package/dist/runtime/services/plugin.service.d.mts.map +1 -0
- package/dist/runtime/services/plugin.service.mjs +32 -0
- package/dist/runtime/services/plugin.service.mjs.map +1 -0
- package/dist/runtime/services/secrets.service.cjs +50 -0
- package/dist/runtime/services/secrets.service.cjs.map +1 -0
- package/dist/runtime/services/secrets.service.d.cts +16 -0
- package/dist/runtime/services/secrets.service.d.cts.map +1 -0
- package/dist/runtime/services/secrets.service.d.mts +16 -0
- package/dist/runtime/services/secrets.service.d.mts.map +1 -0
- package/dist/runtime/services/secrets.service.mjs +48 -0
- package/dist/runtime/services/secrets.service.mjs.map +1 -0
- package/dist/runtime/validation.cjs +18 -0
- package/dist/runtime/validation.cjs.map +1 -0
- package/dist/runtime/validation.mjs +17 -0
- package/dist/runtime/validation.mjs.map +1 -0
- package/dist/testing/index.cjs +2 -4
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +4 -4
- package/dist/testing/index.d.mts +4 -4
- package/dist/testing/index.mjs +1 -3
- package/dist/testing/index.mjs.map +1 -1
- package/dist/types.cjs +0 -0
- package/dist/types.d.cts +261 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +261 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +1 -0
- package/dist/zod-core.cjs +9 -0
- package/dist/zod-core.d.cts +1 -0
- package/dist/zod-core.d.mts +1 -0
- package/dist/zod-core.mjs +3 -0
- package/dist/zod.cjs +13 -1
- package/dist/zod.cjs.map +1 -0
- package/dist/zod.d.cts +8 -2
- package/dist/zod.d.cts.map +1 -0
- package/dist/zod.d.mts +8 -2
- package/dist/zod.d.mts.map +1 -0
- package/dist/zod.mjs +9 -2
- package/dist/zod.mjs.map +1 -0
- package/package.json +17 -2
- package/dist/build/rspack/index.cjs.map +0 -1
- package/dist/build/rspack/index.d.cts.map +0 -1
- package/dist/build/rspack/index.d.mts.map +0 -1
- package/dist/build/rspack/index.mjs.map +0 -1
- package/dist/errors-9sNpYLv5.d.mts +0 -75
- package/dist/errors-9sNpYLv5.d.mts.map +0 -1
- package/dist/errors-CVnoPl9v.cjs +0 -68
- package/dist/errors-CVnoPl9v.cjs.map +0 -1
- package/dist/errors-D7keKf7a.mjs +0 -63
- package/dist/errors-D7keKf7a.mjs.map +0 -1
- package/dist/errors-DKPPPYYT.d.cts +0 -75
- package/dist/errors-DKPPPYYT.d.cts.map +0 -1
- package/dist/fetch-8DauUFDh.mjs +0 -335
- package/dist/fetch-8DauUFDh.mjs.map +0 -1
- package/dist/fetch-CrBvwsZ4.cjs +0 -336
- package/dist/fetch-CrBvwsZ4.cjs.map +0 -1
- package/dist/index-Bu2wtZrA.d.mts +0 -463
- package/dist/index-Bu2wtZrA.d.mts.map +0 -1
- package/dist/index-DtTqwV4f.d.cts +0 -462
- package/dist/index-DtTqwV4f.d.cts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/normalize-BW7kk8Lk.d.cts +0 -21
- package/dist/normalize-BW7kk8Lk.d.cts.map +0 -1
- package/dist/normalize-D4Qh0wVk.cjs +0 -28
- package/dist/normalize-D4Qh0wVk.cjs.map +0 -1
- package/dist/normalize-D7nae0Hn.mjs +0 -22
- package/dist/normalize-D7nae0Hn.mjs.map +0 -1
- package/dist/normalize-eB_j86fm.d.mts +0 -21
- package/dist/normalize-eB_j86fm.d.mts.map +0 -1
- package/dist/package-CaRYwbRi.mjs.map +0 -1
- package/dist/package-DyTuSutr.cjs.map +0 -1
- package/dist/plugins-C6MGKdD-.mjs +0 -790
- package/dist/plugins-C6MGKdD-.mjs.map +0 -1
- package/dist/plugins-DNaNtkG7.cjs +0 -791
- package/dist/plugins-DNaNtkG7.cjs.map +0 -1
- package/dist/runtime-BNcFgWDG.cjs +0 -558
- package/dist/runtime-BNcFgWDG.cjs.map +0 -1
- package/dist/runtime-CAWcnrAk.mjs +0 -547
- package/dist/runtime-CAWcnrAk.mjs.map +0 -1
- package/dist/standard-CkH8zNkx.mjs +0 -584
- package/dist/standard-CkH8zNkx.mjs.map +0 -1
- package/dist/standard-v75BC6Z5.cjs +0 -685
- package/dist/standard-v75BC6Z5.cjs.map +0 -1
- package/dist/zod-A7Pti5IV.d.cts +0 -4
- package/dist/zod-A7Pti5IV.d.cts.map +0 -1
- package/dist/zod-BVo51kgJ.mjs +0 -10
- package/dist/zod-BVo51kgJ.mjs.map +0 -1
- package/dist/zod-DYghWCz1.cjs +0 -14
- package/dist/zod-DYghWCz1.cjs.map +0 -1
- package/dist/zod-Zw8dlP3j.d.mts +0 -4
- package/dist/zod-Zw8dlP3j.d.mts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,52 +1,6 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import "./package-CaRYwbRi.mjs";
|
|
6
|
-
import { Effect } from "effect";
|
|
7
|
-
import { implement } from "@orpc/server";
|
|
1
|
+
import { CommonPluginErrors } 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
|
-
|
|
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, PluginRuntime, createPlugin, createPluginRuntime, getNormalizedRemoteName };
|
package/dist/orpc.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
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");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
2
|
|
|
3
3
|
//#region package.json
|
|
4
|
-
var require_package = /* @__PURE__ */
|
|
4
|
+
var require_package = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "package.json": ((exports, module) => {
|
|
5
5
|
module.exports = {
|
|
6
6
|
"name": "every-plugin",
|
|
7
|
-
"version": "0.5.
|
|
7
|
+
"version": "0.5.1",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "./dist/index.cjs",
|
|
10
10
|
"module": "./dist/index.mjs",
|
|
@@ -58,6 +58,14 @@ var require_package = /* @__PURE__ */ require_chunk.__commonJS({ "package.json":
|
|
|
58
58
|
"import": "./dist/zod.mjs",
|
|
59
59
|
"require": "./dist/zod.cjs"
|
|
60
60
|
},
|
|
61
|
+
"./zod/v4/core": {
|
|
62
|
+
"types": {
|
|
63
|
+
"import": "./dist/zod-core.d.mts",
|
|
64
|
+
"require": "./dist/zod-core.d.cts"
|
|
65
|
+
},
|
|
66
|
+
"import": "./dist/zod-core.mjs",
|
|
67
|
+
"require": "./dist/zod-core.cjs"
|
|
68
|
+
},
|
|
61
69
|
"./orpc": {
|
|
62
70
|
"types": {
|
|
63
71
|
"import": "./dist/orpc.d.mts",
|
|
@@ -74,6 +82,14 @@ var require_package = /* @__PURE__ */ require_chunk.__commonJS({ "package.json":
|
|
|
74
82
|
"import": "./dist/errors.mjs",
|
|
75
83
|
"require": "./dist/errors.cjs"
|
|
76
84
|
},
|
|
85
|
+
"./types": {
|
|
86
|
+
"types": {
|
|
87
|
+
"import": "./dist/types.d.mts",
|
|
88
|
+
"require": "./dist/types.d.cts"
|
|
89
|
+
},
|
|
90
|
+
"import": "./dist/types.mjs",
|
|
91
|
+
"require": "./dist/types.cjs"
|
|
92
|
+
},
|
|
77
93
|
"./build/rspack": {
|
|
78
94
|
"types": {
|
|
79
95
|
"import": "./dist/build/rspack/index.d.mts",
|
|
@@ -115,7 +131,6 @@ var require_package = /* @__PURE__ */ require_chunk.__commonJS({ "package.json":
|
|
|
115
131
|
"vitest": "^3.2.4"
|
|
116
132
|
},
|
|
117
133
|
"dependencies": {
|
|
118
|
-
"@better-fetch/fetch": "^1.1.18",
|
|
119
134
|
"@module-federation/enhanced": "^0.19.1",
|
|
120
135
|
"@module-federation/node": "^2.7.15",
|
|
121
136
|
"@module-federation/runtime-core": "^0.19.1",
|
|
@@ -146,10 +161,10 @@ var require_package = /* @__PURE__ */ require_chunk.__commonJS({ "package.json":
|
|
|
146
161
|
}) });
|
|
147
162
|
|
|
148
163
|
//#endregion
|
|
149
|
-
Object.defineProperty(exports, '
|
|
164
|
+
Object.defineProperty(exports, 'default', {
|
|
150
165
|
enumerable: true,
|
|
151
166
|
get: function () {
|
|
152
|
-
return require_package;
|
|
167
|
+
return require_package();
|
|
153
168
|
}
|
|
154
169
|
});
|
|
155
|
-
//# sourceMappingURL=package
|
|
170
|
+
//# 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.5.1\",\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":";;;;kBAAA;EACC,QAAQ;EACR,WAAW;EACX,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,SAAS;EACT,WAAW;GACV,KAAK;IACJ,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,aAAa;IACZ,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,aAAa;IACZ,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,eAAe;IACd,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,YAAY;IACX,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,SAAS;IACR,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,iBAAiB;IAChB,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,UAAU;IACT,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,YAAY;IACX,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,WAAW;IACV,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,kBAAkB;IACjB,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,kBAAkB;GAClB;EACD,SAAS,CACR,OACA;EACD,WAAW;GACV,SAAS;GACT,cAAc;GACd,QAAQ;GACR,aAAa;GACb,oBAAoB;GACpB,YAAY;GACZ,cAAc;GACd,aAAa;GACb;EACD,oBAAoB;GACnB,gBAAgB;GAChB,cAAc;GACd;EACD,mBAAmB;GAClB,4BAA4B;GAC5B,kBAAkB;GAClB,gBAAgB;GAChB,iBAAiB;GACjB,eAAe;GACf,cAAc;GACd,eAAe;GACf,cAAc;GACd,aAAa;GACb,QAAQ;GACR,UAAU;GACV,uBAAuB;GACvB,UAAU;GACV;EACD,gBAAgB;GACf,+BAA+B;GAC/B,2BAA2B;GAC3B,mCAAmC;GACnC,kBAAkB;GAClB,gCAAgC;GAChC,gBAAgB;GAChB,aAAa;GACb,UAAU;GACV,OAAO;GACP;EACD,YAAY;GACX;GACA;GACA;GACA;GACA;GACA;EACD,UAAU;EACV,WAAW;EACX,cAAc;GACb,QAAQ;GACR,OAAO;GACP;EACD,QAAQ,EACP,OAAO,0DACP;EACD,YAAY;EACZ,cAAc,CACb,mBACA;EACD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __commonJS } from "./_virtual/rolldown_runtime.mjs";
|
|
2
2
|
|
|
3
3
|
//#region package.json
|
|
4
4
|
var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, module) => {
|
|
5
5
|
module.exports = {
|
|
6
6
|
"name": "every-plugin",
|
|
7
|
-
"version": "0.5.
|
|
7
|
+
"version": "0.5.1",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "./dist/index.cjs",
|
|
10
10
|
"module": "./dist/index.mjs",
|
|
@@ -58,6 +58,14 @@ var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, mo
|
|
|
58
58
|
"import": "./dist/zod.mjs",
|
|
59
59
|
"require": "./dist/zod.cjs"
|
|
60
60
|
},
|
|
61
|
+
"./zod/v4/core": {
|
|
62
|
+
"types": {
|
|
63
|
+
"import": "./dist/zod-core.d.mts",
|
|
64
|
+
"require": "./dist/zod-core.d.cts"
|
|
65
|
+
},
|
|
66
|
+
"import": "./dist/zod-core.mjs",
|
|
67
|
+
"require": "./dist/zod-core.cjs"
|
|
68
|
+
},
|
|
61
69
|
"./orpc": {
|
|
62
70
|
"types": {
|
|
63
71
|
"import": "./dist/orpc.d.mts",
|
|
@@ -74,6 +82,14 @@ var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, mo
|
|
|
74
82
|
"import": "./dist/errors.mjs",
|
|
75
83
|
"require": "./dist/errors.cjs"
|
|
76
84
|
},
|
|
85
|
+
"./types": {
|
|
86
|
+
"types": {
|
|
87
|
+
"import": "./dist/types.d.mts",
|
|
88
|
+
"require": "./dist/types.d.cts"
|
|
89
|
+
},
|
|
90
|
+
"import": "./dist/types.mjs",
|
|
91
|
+
"require": "./dist/types.cjs"
|
|
92
|
+
},
|
|
77
93
|
"./build/rspack": {
|
|
78
94
|
"types": {
|
|
79
95
|
"import": "./dist/build/rspack/index.d.mts",
|
|
@@ -115,7 +131,6 @@ var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, mo
|
|
|
115
131
|
"vitest": "^3.2.4"
|
|
116
132
|
},
|
|
117
133
|
"dependencies": {
|
|
118
|
-
"@better-fetch/fetch": "^1.1.18",
|
|
119
134
|
"@module-federation/enhanced": "^0.19.1",
|
|
120
135
|
"@module-federation/node": "^2.7.15",
|
|
121
136
|
"@module-federation/runtime-core": "^0.19.1",
|
|
@@ -146,5 +161,7 @@ var require_package = /* @__PURE__ */ __commonJS({ "package.json": ((exports, mo
|
|
|
146
161
|
}) });
|
|
147
162
|
|
|
148
163
|
//#endregion
|
|
149
|
-
export
|
|
150
|
-
|
|
164
|
+
export default require_package();
|
|
165
|
+
|
|
166
|
+
export { require_package };
|
|
167
|
+
//# 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.5.1\",\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":";;;;kBAAA;EACC,QAAQ;EACR,WAAW;EACX,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,SAAS;EACT,WAAW;GACV,KAAK;IACJ,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,aAAa;IACZ,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,aAAa;IACZ,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,eAAe;IACd,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,YAAY;IACX,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,SAAS;IACR,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,iBAAiB;IAChB,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,UAAU;IACT,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,YAAY;IACX,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,WAAW;IACV,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,kBAAkB;IACjB,SAAS;KACR,UAAU;KACV,WAAW;KACX;IACD,UAAU;IACV,WAAW;IACX;GACD,kBAAkB;GAClB;EACD,SAAS,CACR,OACA;EACD,WAAW;GACV,SAAS;GACT,cAAc;GACd,QAAQ;GACR,aAAa;GACb,oBAAoB;GACpB,YAAY;GACZ,cAAc;GACd,aAAa;GACb;EACD,oBAAoB;GACnB,gBAAgB;GAChB,cAAc;GACd;EACD,mBAAmB;GAClB,4BAA4B;GAC5B,kBAAkB;GAClB,gBAAgB;GAChB,iBAAiB;GACjB,eAAe;GACf,cAAc;GACd,eAAe;GACf,cAAc;GACd,aAAa;GACb,QAAQ;GACR,UAAU;GACV,uBAAuB;GACvB,UAAU;GACV;EACD,gBAAgB;GACf,+BAA+B;GAC/B,2BAA2B;GAC3B,mCAAmC;GACnC,kBAAkB;GAClB,gCAAgC;GAChC,gBAAgB;GAChB,aAAa;GACb,UAAU;GACV,OAAO;GACP;EACD,YAAY;GACX;GACA;GACA;GACA;GACA;GACA;EACD,UAAU;EACV,WAAW;EACX,cAAc;GACb,QAAQ;GACR,OAAO;GACP;EACD,QAAQ,EACP,OAAO,0DACP;EACD,YAAY;EACZ,cAAc,CACb,mBACA;EACD"}
|
package/dist/plugin.cjs
ADDED
|
@@ -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"}
|
package/dist/plugin.mjs
ADDED
|
@@ -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,45 @@
|
|
|
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 isRetryableORPCCode = (code) => {
|
|
10
|
+
switch (code) {
|
|
11
|
+
case "TOO_MANY_REQUESTS":
|
|
12
|
+
case "SERVICE_UNAVAILABLE":
|
|
13
|
+
case "BAD_GATEWAY":
|
|
14
|
+
case "GATEWAY_TIMEOUT":
|
|
15
|
+
case "TIMEOUT": return true;
|
|
16
|
+
default: return false;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const wrapORPCError = (orpcError, pluginId, procedureName, operation) => {
|
|
20
|
+
return new PluginRuntimeError({
|
|
21
|
+
pluginId,
|
|
22
|
+
operation,
|
|
23
|
+
procedureName,
|
|
24
|
+
retryable: isRetryableORPCCode(orpcError.code),
|
|
25
|
+
cause: orpcError
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const toPluginRuntimeError = (error, pluginId, procedureName, operation, defaultRetryable = false) => {
|
|
29
|
+
if (error instanceof __orpc_contract.ORPCError) return wrapORPCError(error, pluginId, procedureName, operation);
|
|
30
|
+
if (error instanceof PluginRuntimeError) return error;
|
|
31
|
+
return new PluginRuntimeError({
|
|
32
|
+
pluginId,
|
|
33
|
+
operation,
|
|
34
|
+
procedureName,
|
|
35
|
+
retryable: defaultRetryable,
|
|
36
|
+
cause: error instanceof Error ? error : new Error(String(error))
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
exports.ModuleFederationError = ModuleFederationError;
|
|
42
|
+
exports.PluginRuntimeError = PluginRuntimeError;
|
|
43
|
+
exports.ValidationError = ValidationError;
|
|
44
|
+
exports.toPluginRuntimeError = toPluginRuntimeError;
|
|
45
|
+
//# sourceMappingURL=errors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":["Data","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\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; // Already converted\n\t}\n\n\treturn new PluginRuntimeError({\n\t\tpluginId,\n\t\toperation,\n\t\tprocedureName,\n\t\tretryable: defaultRetryable,\n\t\tcause: error instanceof Error ? error : new Error(String(error))\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;AAGH,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;AAGR,QAAO,IAAI,mBAAmB;EAC7B;EACA;EACA;EACA,WAAW;EACX,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,CAAC;EAChE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import "zod";
|
|
2
|
+
import "@orpc/contract";
|
|
3
|
+
import * as effect_Types0 from "effect/Types";
|
|
4
|
+
import * as effect_Cause0 from "effect/Cause";
|
|
5
|
+
|
|
6
|
+
//#region src/runtime/errors.d.ts
|
|
7
|
+
declare const PluginRuntimeError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
|
|
8
|
+
readonly _tag: "PluginRuntimeError";
|
|
9
|
+
} & Readonly<A>;
|
|
10
|
+
declare class PluginRuntimeError extends PluginRuntimeError_base<{
|
|
11
|
+
readonly pluginId?: string;
|
|
12
|
+
readonly operation?: string;
|
|
13
|
+
readonly procedureName?: string;
|
|
14
|
+
readonly cause?: Error;
|
|
15
|
+
readonly retryable: boolean;
|
|
16
|
+
}> {}
|
|
17
|
+
declare const ModuleFederationError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
|
|
18
|
+
readonly _tag: "ModuleFederationError";
|
|
19
|
+
} & Readonly<A>;
|
|
20
|
+
declare class ModuleFederationError extends ModuleFederationError_base<{
|
|
21
|
+
readonly pluginId: string;
|
|
22
|
+
readonly remoteUrl: string;
|
|
23
|
+
readonly cause?: Error;
|
|
24
|
+
}> {}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ModuleFederationError, PluginRuntimeError };
|
|
27
|
+
//# sourceMappingURL=errors.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.cts","names":[],"sources":["../../src/runtime/errors.ts"],"sourcesContent":[],"mappings":";;;;;;cAE6B;;;cAEhB,kBAAA,SAA2B;EAFX,SAAA,QAAA,CAAA,EAAA,MAAA;;;mBAMX;;;cAEZ;;;cAEO,qBAAA,SAA8B;;;EAR9B,SAAA,KAAA,CAAA,EAaK,KAbc;AAM1B,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ORPCError } from "@orpc/contract";
|
|
3
|
+
import * as effect_Types0 from "effect/Types";
|
|
4
|
+
import * as effect_Cause0 from "effect/Cause";
|
|
5
|
+
|
|
6
|
+
//#region src/runtime/errors.d.ts
|
|
7
|
+
declare const PluginRuntimeError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
|
|
8
|
+
readonly _tag: "PluginRuntimeError";
|
|
9
|
+
} & Readonly<A>;
|
|
10
|
+
declare class PluginRuntimeError extends PluginRuntimeError_base<{
|
|
11
|
+
readonly pluginId?: string;
|
|
12
|
+
readonly operation?: string;
|
|
13
|
+
readonly procedureName?: string;
|
|
14
|
+
readonly cause?: Error;
|
|
15
|
+
readonly retryable: boolean;
|
|
16
|
+
}> {}
|
|
17
|
+
declare const ModuleFederationError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
|
|
18
|
+
readonly _tag: "ModuleFederationError";
|
|
19
|
+
} & Readonly<A>;
|
|
20
|
+
declare class ModuleFederationError extends ModuleFederationError_base<{
|
|
21
|
+
readonly pluginId: string;
|
|
22
|
+
readonly remoteUrl: string;
|
|
23
|
+
readonly cause?: Error;
|
|
24
|
+
}> {}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ModuleFederationError, PluginRuntimeError };
|
|
27
|
+
//# sourceMappingURL=errors.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.mts","names":[],"sources":["../../src/runtime/errors.ts"],"sourcesContent":[],"mappings":";;;;;;cAE6B;;;cAEhB,kBAAA,SAA2B;EAFX,SAAA,QAAA,CAAA,EAAA,MAAA;;;mBAMX;;;cAEZ;;;cAEO,qBAAA,SAA8B;;;EAR9B,SAAA,KAAA,CAAA,EAaK,KAbc;AAM1B,CAAA,CAAA,CAAA"}
|