@makaio/framework 1.0.0-dev-1790165101280 → 1.0.0-dev-1790175294701
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/.makaio-build.json +2 -2
- package/dist/bridge/pty-bridge.cjs +222 -0
- package/dist/bus/index.d.mts +1 -1
- package/dist/bus/index.mjs +1 -1
- package/dist/{bus-D4DBDaoS.mjs → bus-30AlabEz.mjs} +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -2
- package/dist/contracts/automation-trigger/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.d.mts +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/extension/index.d.mts +4 -4
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +86 -86
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +2 -2
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/reaction/index.d.mts +1 -1
- package/dist/contracts/reaction/index.mjs +1 -1
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/worker/index.d.mts +1 -1
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/{contribution-kpR61mnG.d.mts → contribution-DTb65rRN.d.mts} +1 -1
- package/dist/{extension-context-CmhBCbbq.d.mts → extension-context-DH84KOm9.d.mts} +3 -3
- package/dist/framework-packages-mquh5_Yw.mjs +1 -0
- package/dist/{hook-responses-C3nUIm-6.d.mts → hook-responses-OETFKaAL.d.mts} +1 -1
- package/dist/{index-C9Dz8UoK2.d.mts → index-2YW8DTb62.d.mts} +6 -6
- package/dist/{index-04uTOEVU.d.mts → index-7pt_bh4z.d.mts} +6 -6
- package/dist/{index-D5Lw1UsO.d.mts → index-B1iXL1pW.d.mts} +8 -8
- package/dist/{index-CRjWqvy02.d.mts → index-BMr77str2.d.mts} +8 -8
- package/dist/{index-xad0YUyF.d.mts → index-BRXETFym.d.mts} +10 -2
- package/dist/{index-8HtSFrzb.d.mts → index-BVN64wQx.d.mts} +16 -16
- package/dist/{index-D5BLD2Pw.d.mts → index-BgkQiruC.d.mts} +7 -7
- package/dist/{index-J6C4thLY.d.mts → index-Bgz81LHZ.d.mts} +1 -1
- package/dist/{index-ul45YFff.d.mts → index-BusmMFMN.d.mts} +4 -4
- package/dist/{index-BM53WQaQ.d.mts → index-CVRQS5jk.d.mts} +1 -1
- package/dist/{index-CFMaXW-s.d.mts → index-Cu8k2ZGe.d.mts} +42 -42
- package/dist/{index-BYwt4CNf.d.mts → index-D8V1DhrY.d.mts} +79 -79
- package/dist/{index-LCumcYK12.d.mts → index-DIEnLLhi2.d.mts} +37 -37
- package/dist/{index-DVo_rb2w2.d.mts → index-DPsQ_cFG2.d.mts} +11 -11
- package/dist/{index-BTLbhl35.d.mts → index-DWKSiTxX.d.mts} +27 -27
- package/dist/{index-CLwnkYRD.d.mts → index-DxtUM-qd.d.mts} +1 -1
- package/dist/{index-CpGWwlRN.d.mts → index-Mk478DlF.d.mts} +8 -8
- package/dist/{index-CkE9MwNX.d.mts → index-oE2q0pTG.d.mts} +1 -1
- package/dist/{index-aAo9ugCm.d.mts → index-wGlFWRXg.d.mts} +4 -4
- package/dist/kernel/extension/index.d.mts +2 -2
- package/dist/kernel/index.d.mts +2 -2
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/{namespace-C5tKjqgb.d.mts → namespace-B9iQN3FQ.d.mts} +4 -4
- package/dist/{namespace-BEi98VfQ.d.mts → namespace-Bz0ZDWhE.d.mts} +18 -18
- package/dist/{namespace-B1FBjHfn.d.mts → namespace-C1-ZAKEG.d.mts} +6 -6
- package/dist/{namespace-D6W4Erwp.d.mts → namespace-DAzOxaux.d.mts} +2 -2
- package/dist/{namespace-CHSwZhH7.d.mts → namespace-h7gq_v5U.d.mts} +2 -2
- package/dist/package.json +1 -1
- package/dist/reaction-DVa5lwm5.mjs +1 -0
- package/dist/{schemas-BXkSHQaF.d.mts → schemas-BTJvvq9Y.d.mts} +2 -2
- package/dist/{schemas-Cb9OJ9va.d.mts → schemas-CBDNnyz4.d.mts} +1 -1
- package/dist/{schemas-Bv7ecHxV.d.mts → schemas-Dec5VtBU.d.mts} +8 -8
- package/dist/{schemas-BzSB9u68.d.mts → schemas-Dyp3rHZ7.d.mts} +4 -4
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +2 -2
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +3 -3
- package/dist/services/execution-target/index.d.mts +2 -2
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/filesystem/namespace.d.mts +12 -12
- package/dist/services/filesystem/schemas.d.mts +6 -6
- package/dist/services/harness/index.d.mts +3 -3
- package/dist/services/index.d.mts +64 -31
- package/dist/services/index.mjs +1 -1
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/index.d.mts +5 -5
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/settings/namespace.d.mts +8 -8
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
- package/dist/services/subagent-template/index.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/workflow-transitions/index.mjs +1 -1
- package/dist/{session-lineage-CmP7L5g2.d.mts → session-lineage-BQ9NWlt6.d.mts} +1 -1
- package/dist/{tools-ByDy0ueE.mjs → tools-K3DWA4Jr.mjs} +1 -1
- package/dist/{transition-B0qsutdE.d.mts → transition-CSN6QoMp.d.mts} +1 -1
- package/dist/{types-BP_P1izV.d.mts → types-DTpwvvY9.d.mts} +15 -15
- package/dist/{view-builder-nKz9DKfE.d.mts → view-builder-cjQZJmTY.d.mts} +7 -7
- package/dist/workflow-engine/index.d.mts +16 -16
- package/dist/{workflow-transitions-UOXY-VZa.mjs → workflow-transitions-C2BLDE5N.mjs} +1 -1
- package/package.json +1 -1
- package/dist/framework-packages-C2tvdFmP.mjs +0 -1
- package/dist/reaction-C8WbJqLk.mjs +0 -1
- package/dist/{schemas-rliUGyrt.d.mts → schemas-CU2NE5Lg.d.mts} +1 -1
package/dist/.makaio-build.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"fingerprint": "
|
|
4
|
-
"builtAt": "2026-09-
|
|
3
|
+
"fingerprint": "f56ac43695e3b3616e7286d6e05800202cbafd667e9eba1e3561a5f8ed882c41",
|
|
4
|
+
"builtAt": "2026-09-23T14:55:42.168Z",
|
|
5
5
|
"declarations": true,
|
|
6
6
|
"declarationBackend": "tsc"
|
|
7
7
|
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PTY Bridge — Node.js subprocess
|
|
3
|
+
*
|
|
4
|
+
* Runs under plain Node.js (not Bun) so it can load the node-pty native addon.
|
|
5
|
+
* Speaks newline-delimited JSON-RPC over stdin/stdout, multiplexing any number
|
|
6
|
+
* of PTY sessions for the Bun host process.
|
|
7
|
+
*
|
|
8
|
+
* Protocol (stdin, Bun → bridge):
|
|
9
|
+
* { "id": <number>, "cmd": "spawn", "file": <string>, "args": <string[]>,
|
|
10
|
+
* "options": { "cwd"?: <string>, "name"?: <string>, "cols"?: <number>,
|
|
11
|
+
* "rows"?: <number>, "env"?: <Record<string,string>>,
|
|
12
|
+
* "inheritEnvironment"?: <boolean> } }
|
|
13
|
+
* { "id": <number>, "cmd": "input", "ptyId": <number>, "data": <UTF-8 base64> }
|
|
14
|
+
* { "id": <number>, "cmd": "resize", "ptyId": <number>, "cols": <number>, "rows": <number> }
|
|
15
|
+
* { "id": <number>, "cmd": "kill", "ptyId": <number>, "signal"?: <string> }
|
|
16
|
+
*
|
|
17
|
+
* Protocol (stdout, bridge → Bun):
|
|
18
|
+
* { "id": <number>, "ptyId": <number>, "event": "spawned", "pid": <number>, "process": <string> }
|
|
19
|
+
* { "ptyId": <number>, "event": "data", "data": <UTF-8 base64> }
|
|
20
|
+
* { "ptyId": <number>, "event": "exit", "exitCode": <number>, "signal": <number> }
|
|
21
|
+
* { "id": <number>, "event": "error", "message": <string> }
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
'use strict';
|
|
25
|
+
|
|
26
|
+
const pty = require('node-pty');
|
|
27
|
+
const readline = require('readline');
|
|
28
|
+
|
|
29
|
+
/** @type {Map<number, import('node-pty').IPty>} */
|
|
30
|
+
const sessions = new Map();
|
|
31
|
+
|
|
32
|
+
let nextPtyId = 1;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Emit a JSON-RPC event to the Bun host via stdout.
|
|
36
|
+
* @param {Record<string, unknown>} payload
|
|
37
|
+
* @example
|
|
38
|
+
*/
|
|
39
|
+
function emit(payload) {
|
|
40
|
+
process.stdout.write(JSON.stringify(payload) + '\n');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Log a debug message to stderr (never interferes with the JSON-RPC protocol).
|
|
45
|
+
* @param {string} message
|
|
46
|
+
* @example
|
|
47
|
+
*/
|
|
48
|
+
function debug(message) {
|
|
49
|
+
process.stderr.write(`[pty-bridge] ${message}\n`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Kill and delete all active PTY sessions.
|
|
54
|
+
* @example
|
|
55
|
+
*/
|
|
56
|
+
function disposeAll() {
|
|
57
|
+
for (const [id, proc] of sessions) {
|
|
58
|
+
try {
|
|
59
|
+
proc.kill();
|
|
60
|
+
} catch {
|
|
61
|
+
// Ignore — process may have already exited.
|
|
62
|
+
}
|
|
63
|
+
sessions.delete(id);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Handle a "spawn" command.
|
|
69
|
+
* @param {{ id: number; file: string; args: string[]; options: Record<string, unknown> }} cmd
|
|
70
|
+
* @example
|
|
71
|
+
*/
|
|
72
|
+
function handleSpawn(cmd) {
|
|
73
|
+
const ptyId = nextPtyId++;
|
|
74
|
+
const { id, file, args, options } = cmd;
|
|
75
|
+
const env =
|
|
76
|
+
options.env !== null && typeof options.env === 'object' && !Array.isArray(options.env)
|
|
77
|
+
? /** @type {Record<string, string>} */ (options.env)
|
|
78
|
+
: undefined;
|
|
79
|
+
|
|
80
|
+
/** @type {import('node-pty').IWindowsPtyForkOptions | import('node-pty').IPtyForkOptions} */
|
|
81
|
+
const spawnOptions = {
|
|
82
|
+
name: typeof options.name === 'string' ? options.name : 'xterm-256color',
|
|
83
|
+
cols: typeof options.cols === 'number' ? options.cols : 80,
|
|
84
|
+
rows: typeof options.rows === 'number' ? options.rows : 24,
|
|
85
|
+
cwd: typeof options.cwd === 'string' ? options.cwd : undefined,
|
|
86
|
+
env: options.inheritEnvironment === true && env !== undefined ? { ...process.env, ...env } : env,
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
let proc;
|
|
90
|
+
try {
|
|
91
|
+
proc = pty.spawn(file, args, spawnOptions);
|
|
92
|
+
} catch (err) {
|
|
93
|
+
emit({ id, event: 'error', message: err instanceof Error ? err.message : String(err) });
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
sessions.set(ptyId, proc);
|
|
98
|
+
debug(`spawned ptyId=${ptyId} pid=${proc.pid} file=${file}`);
|
|
99
|
+
|
|
100
|
+
emit({ id, ptyId, event: 'spawned', pid: proc.pid, process: proc.process });
|
|
101
|
+
|
|
102
|
+
proc.onData((data) => {
|
|
103
|
+
// The backend contract carries terminal output as JavaScript text strings.
|
|
104
|
+
emit({ ptyId, event: 'data', data: Buffer.from(data, 'utf8').toString('base64') });
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
proc.onExit(({ exitCode, signal }) => {
|
|
108
|
+
debug(`ptyId=${ptyId} exited exitCode=${exitCode} signal=${signal}`);
|
|
109
|
+
sessions.delete(ptyId);
|
|
110
|
+
emit({ ptyId, event: 'exit', exitCode, signal: signal ?? 0 });
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Handle an "input" command — write base64-decoded data to the PTY.
|
|
116
|
+
* @param {{ id: number; ptyId: number; data: string }} cmd
|
|
117
|
+
* @example
|
|
118
|
+
*/
|
|
119
|
+
function handleInput(cmd) {
|
|
120
|
+
const proc = sessions.get(cmd.ptyId);
|
|
121
|
+
if (!proc) {
|
|
122
|
+
emit({ id: cmd.id, event: 'error', message: `unknown ptyId: ${cmd.ptyId}` });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// Input originates as a JavaScript string, encoded as UTF-8 before base64 transport.
|
|
126
|
+
const decoded = Buffer.from(cmd.data, 'base64').toString('utf8');
|
|
127
|
+
proc.write(decoded);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Handle a "resize" command.
|
|
132
|
+
* @param {{ id: number; ptyId: number; cols: number; rows: number }} cmd
|
|
133
|
+
* @example
|
|
134
|
+
*/
|
|
135
|
+
function handleResize(cmd) {
|
|
136
|
+
const proc = sessions.get(cmd.ptyId);
|
|
137
|
+
if (!proc) {
|
|
138
|
+
emit({ id: cmd.id, event: 'error', message: `unknown ptyId: ${cmd.ptyId}` });
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
proc.resize(cmd.cols, cmd.rows);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Handle a "kill" command.
|
|
146
|
+
* @param {{ id: number; ptyId: number; signal?: string }} cmd
|
|
147
|
+
* @example
|
|
148
|
+
*/
|
|
149
|
+
function handleKill(cmd) {
|
|
150
|
+
const proc = sessions.get(cmd.ptyId);
|
|
151
|
+
if (!proc) {
|
|
152
|
+
emit({ id: cmd.id, event: 'error', message: `unknown ptyId: ${cmd.ptyId}` });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
proc.kill(cmd.signal ?? 'SIGHUP');
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// ── Stdin / readline setup ───────────────────────────────────────────────────
|
|
159
|
+
|
|
160
|
+
const rl = readline.createInterface({ input: process.stdin, crlfDelay: Infinity });
|
|
161
|
+
|
|
162
|
+
rl.on('line', (line) => {
|
|
163
|
+
const trimmed = line.trim();
|
|
164
|
+
if (!trimmed) return;
|
|
165
|
+
|
|
166
|
+
/** @type {Record<string, unknown>} */
|
|
167
|
+
let cmd;
|
|
168
|
+
try {
|
|
169
|
+
cmd = JSON.parse(trimmed);
|
|
170
|
+
} catch (err) {
|
|
171
|
+
debug(`malformed JSON: ${trimmed}`);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
try {
|
|
176
|
+
switch (cmd.cmd) {
|
|
177
|
+
case 'spawn':
|
|
178
|
+
handleSpawn(/** @type {Parameters<typeof handleSpawn>[0]} */ (cmd));
|
|
179
|
+
break;
|
|
180
|
+
case 'input':
|
|
181
|
+
handleInput(/** @type {Parameters<typeof handleInput>[0]} */ (cmd));
|
|
182
|
+
break;
|
|
183
|
+
case 'resize':
|
|
184
|
+
handleResize(/** @type {Parameters<typeof handleResize>[0]} */ (cmd));
|
|
185
|
+
break;
|
|
186
|
+
case 'kill':
|
|
187
|
+
handleKill(/** @type {Parameters<typeof handleKill>[0]} */ (cmd));
|
|
188
|
+
break;
|
|
189
|
+
default:
|
|
190
|
+
debug(`unknown command: ${String(cmd.cmd)}`);
|
|
191
|
+
}
|
|
192
|
+
} catch (err) {
|
|
193
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
194
|
+
debug(`error handling command: ${message}`);
|
|
195
|
+
if (cmd && cmd.id != null) {
|
|
196
|
+
emit({ id: cmd.id, event: 'error', message });
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
// When the host closes stdin the bridge shuts down cleanly.
|
|
202
|
+
rl.on('close', () => {
|
|
203
|
+
debug('stdin closed — shutting down');
|
|
204
|
+
disposeAll();
|
|
205
|
+
process.exit(0);
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
// ── Signal handling ──────────────────────────────────────────────────────────
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
*
|
|
212
|
+
* @param signal
|
|
213
|
+
* @example
|
|
214
|
+
*/
|
|
215
|
+
function shutdown(signal) {
|
|
216
|
+
debug(`received ${signal} — shutting down`);
|
|
217
|
+
disposeAll();
|
|
218
|
+
process.exit(0);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
|
222
|
+
process.on('SIGINT', () => shutdown('SIGINT'));
|
package/dist/bus/index.d.mts
CHANGED
|
@@ -4055,8 +4055,8 @@ declare module '@makaio/contracts' {
|
|
|
4055
4055
|
//#region core/contracts/src/skill/schemas.d.ts
|
|
4056
4056
|
/** Trigger that activated or reinjected a skill. */
|
|
4057
4057
|
declare const SkillActivationTriggerSchema: z.ZodEnum<{
|
|
4058
|
-
auto: "auto";
|
|
4059
4058
|
user: "user";
|
|
4059
|
+
auto: "auto";
|
|
4060
4060
|
model: "model";
|
|
4061
4061
|
reinjection: "reinjection";
|
|
4062
4062
|
}>;
|
package/dist/bus/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as ee,M as te,N as f,O as ne,P as re,Q as p,R as m,S as h,T as ie,U as ae,V as g,W as oe,X as se,Y as ce,Z as le,_ as ue,a as de,at as fe,b as pe,d as _,et as me,f as he,g as v,h as y,i as ge,it as b,j as x,k as S,l as C,m as w,nt as T,o as E,p as D,q as O,r as k,rt as A,s as j,t as M,tt as N,u as P,v as F,w as I,x as L,y as _e,z as ve}from"../bus-D4DBDaoS.mjs";import{z as R}from"zod";const z={"channel.open":{request:R.object({endpoint:R.string(),token:R.string(),clientPubKey:R.string(),transports:R.array(R.string())}),response:R.object({channelId:R.string(),endpointPubKey:R.string()})}};function B(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=Array(t.length);for(let e=0;e<t.length;e++)n[e]=String.fromCharCode(t[e]);return btoa(n.join(``))}function V(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}async function H(){return globalThis.crypto.subtle.generateKey({name:`ECDH`,namedCurve:`P-256`},!1,[`deriveKey`])}async function U(e){return B(await globalThis.crypto.subtle.exportKey(`raw`,e))}async function W(e){let t=V(e);return globalThis.crypto.subtle.importKey(`raw`,t,{name:`ECDH`,namedCurve:`P-256`},!1,[])}async function G(e,t){return globalThis.crypto.subtle.deriveKey({name:`ECDH`,public:t},e,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function K(e,t,n){let r=globalThis.crypto.getRandomValues(new Uint8Array(12)),i=new TextEncoder().encode(t),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.encrypt(a,e,i);return{iv:B(r),data:B(o)}}async function q(e,t,n){let r=V(t.iv),i=V(t.data),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.decrypt(a,e,i);return new TextDecoder().decode(o)}function J(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!1,payload:{},local:!1,channel:!1}}}function Y(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!0,payload:{},local:!1,channel:!1}}}var X=class{channelId;sharedKey;context;transportNames;cleanups=[];pendingRequests=new Set;closed=!1;constructor(e,t,n,r){this.channelId=e,this.sharedKey=t,this.context=n,this.transportNames=r;let i=J(e,`$close`);this.cleanups.push(this.registerEventHandler(i,t,e=>{this.handlePeerClose()}))}on(e,t,n){this.assertOpen();let r=this.requireKey(),i=e.$meta.isRequest?this.registerRequestHandler(e,r,t,n):this.registerEventHandler(e,r,t,n);return this.cleanups.push(i),()=>{i();let e=this.cleanups.indexOf(i);e!==-1&&this.cleanups.splice(e,1)}}once(e,t){this.assertOpen();let n=this.requireKey(),r=null,i=(e=>{let n=r;if(r=null,n){let e=this.cleanups.indexOf(n);e!==-1&&this.cleanups.splice(e,1)}return n?.(),t(e)});return r=e.$meta.isRequest?this.registerRequestHandler(e,n,i):this.registerEventHandler(e,n,i),this.cleanups.push(r),()=>{if(r){let e=r;r=null;let t=this.cleanups.indexOf(e);t!==-1&&this.cleanups.splice(t,1),e()}}}async emit(e,t){this.assertOpen();let n=this.requireKey(),r=J(this.channelId,e.subject),i=await K(n,JSON.stringify(t),`${this.channelId}:${e.subject}:evt`);await w(this.context,r,i,{...this.transportNames?{transports:[...this.transportNames]}:{}})}async request(e,t,n){this.assertOpen();let r=this.requireKey(),i=new AbortController;this.pendingRequests.add(i);try{let a=Y(this.channelId,e.subject),o=await K(r,JSON.stringify(t),`${this.channelId}:${e.subject}:req`),s=await q(r,await _(this.context,a,o,{signal:i.signal,...n?.timeout===void 0?{}:{timeout:n.timeout},...this.transportNames?{transports:[...this.transportNames]}:{}}),`${this.channelId}:${e.subject}:res`);return JSON.parse(s)}finally{this.pendingRequests.delete(i)}}async requestOptional(e,t,n){try{return{handled:!0,data:await this.request(e,t,n)}}catch(e){if(e instanceof l)return{handled:!1};throw e}}close(){if(this.closed)return;this.closed=!0;let e=this.sharedKey;if(e){let t=J(this.channelId,`$close`);K(e,JSON.stringify({}),`${this.channelId}:$close:evt`).then(e=>w(this.context,t,e,{...this.transportNames?{transports:[...this.transportNames]}:{}})).catch(()=>{})}this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null}assertOpen(){if(this.closed)throw new g(this.channelId)}requireKey(){return this.sharedKey}registerEventHandler(e,t,n,r){let i=J(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:evt`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r);return n({...e,payload:i})},r)}registerRequestHandler(e,t,n,r){let i=Y(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:req`,o=`${this.channelId}:${e.subject}:res`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r),s,c=e=>{s={value:e}},l=e=>{s={value:{...s?.value??{},...e}}},u=async()=>{let n=s;if(await e.next(),n!==void 0){s=n;return}let r=e.result;if(r!==void 0){let e=await q(t,r,o);s={value:JSON.parse(e)}}};if(await n({...e,payload:i,get result(){return s?.value},setResult:c,extendResult:l,next:u}),s!==void 0){let n=await K(t,JSON.stringify(s.value),o);e.setResult(n)}},r)}handlePeerClose(){this.closed||(this.closed=!0,this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null)}abortPendingRequests(){let e=new g(this.channelId);for(let t of this.pendingRequests)t.abort(e);this.pendingRequests.clear()}runCleanups(){for(let e of this.cleanups)try{e()}catch{}this.cleanups.length=0}};function Z(e){return e.namespaceRegistry.registerNamespace(p(`system`,z)).subjects.channel.open}function ye(e,t,n,r){let i=v(e,Z(e),async i=>{if(i.payload.endpoint!==t){await i.next();return}if(i.payload.token!==r.token)throw new c(t);let{publicKey:a,privateKey:o}=await H(),s=await G(o,await W(i.payload.clientPubKey)),l=globalThis.crypto.randomUUID(),u=new Set(e.transportRegistry.names()),d=new X(l,s,e,(i.payload.transports??[]).filter(e=>u.has(e)));try{n(d),i.setResult({channelId:l,endpointPubKey:await U(a)})}catch(e){throw d.close(),e}});return{name:t,token:r.token,close:i}}async function be(e,t,n){let r=Z(e),{publicKey:i,privateKey:a}=await H(),o=await U(i),s=n.transports!==void 0,c=s?[...n.transports]:[...e.transportRegistry.names()],l=s?{transports:c}:void 0,u=await _(e,r,{endpoint:t,token:n.token,clientPubKey:o,transports:c},l),d=await G(a,await W(u.endpointPubKey));return new X(u.channelId,d,e,c)}var xe=class{pending;constructor(){this.pending=new Map}track(e,t,n){return new Promise((r,i)=>{if(n?.aborted){i(s(n.reason));return}let a=t===0?void 0:setTimeout(()=>{let n=this.pending.get(e);n!==void 0&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(new f(e,t)))},t);if(this.pending.set(e,{resolve:r,reject:i,timeoutId:a,removeAbortListener:void 0}),n){let t=()=>{this.reject(e,s(n.reason))};n.addEventListener(`abort`,t,{once:!0});let r=()=>{n.removeEventListener(`abort`,t)},i=this.pending.get(e);i&&(i.removeAbortListener=r)}n?.aborted&&this.reject(e,s(n.reason))})}resolve(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.resolve(t))}reject(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(t))}cancel(e,t){this.reject(e,t??s(void 0))}rejectAll(e){for(let[t,n]of this.pending.entries())clearTimeout(n.timeoutId),n.removeAbortListener?.(),n.reject(e);this.pending.clear()}cleanup(){this.rejectAll(Error(`Transport disconnected`))}};const Se=p(`bus:lifecycle`,de).subjects;function Ce(e,t){let n={},r={},i={};for(let[t,a]of e)n[t]=a.priorities,r[t]=a.deliveryClass??`relayable`,a.filter!==void 0&&(i[t]=a.filter);return{type:`subscribe`,...t===void 0?{}:{ackId:t},subjects:n,deliveryClasses:r,...Object.keys(i).length>0&&{filters:i}}}function we(e,t){return{type:`unsubscribe`,...t===void 0?{}:{ackId:t},subjects:e}}function Q(e,t){let n=e.trim();if(n.length===0||n.startsWith(`extension:`))throw Error(`Invalid extensionName: expected a non-empty extension name without the "extension:" prefix.`);let r=n;return{...p(`extension:${r}`,t.schemas),domain:r,extensions:t.extensions??{}}}function $(e,t){return`${e}.${t}`}function Te(){let e=new Map;return{register(t){let n=$(t.namespace,t.subject);return e.set(n,t),()=>{e.get(n)===t&&e.delete(n)}},get(t,n){return e.get($(t,n))}}}const Ee=x.fact.$meta.namespace,De=x.fact.subject;function Oe(e){return e.type===`event`||e.type===`request`||e.type===`broadcast`}async function ke(e,t,n,r,i,a){let o=y({message:t,direction:`outbound`,observedAt:a(),machineId:i,namespaceRegistry:n,projectorRegistry:r});for(let n of o)await e.send({type:`event`,namespace:Ee,subject:De,payload:n,messageId:`${t.messageId}:telemetry:${n.factId}`,correlationId:t.correlationId})}function Ae(e,t,n,r,i){return async function(a,o){if(!Oe(a))return!0;if(await ke(e,a,t,n,r,i),a.type===`request`)throw Error(`Projected telemetry transport cannot satisfy request responses; exclude it from request routing.`);return a.type===`broadcast`?[]:!0}}function je(e){let{inner:t,namespaceRegistry:n,projectorRegistry:r,machineId:i,now:a=Date.now}=e,o={name:e.name,send:Ae(t,n,r,i,a),onReceive(e){return t.onReceive(async()=>{})},connect(){return t.connect()},disconnect(){return t.disconnect()},subscribe(){return Promise.resolve()},unsubscribe(){return Promise.resolve()},get ready(){return t.ready},get onNewReadySession(){return t.onNewReadySession},set onNewReadySession(e){t.onNewReadySession=e},get onConnected(){return t.onConnected},set onConnected(e){t.onConnected=e},get onDisconnected(){return t.onDisconnected},set onDisconnected(e){t.onDisconnected=e},isReady(){return t.isReady?.()??!0},cancelRequest(e,n){t.cancelRequest?.(e,n)},onBroadcastResults(e,n,r){t.onBroadcastResults?.(e,n,r)}};return t.reconnect&&(o.reconnect=()=>t.reconnect()),o}export{ae as BusAbortError,d as BusError,Se as BusLifecycle,m as CONNECTION_LOST_ERROR_CODE,c as ChannelAuthError,g as ChannelClosedError,n as ChannelOnlyError,ve as ConnectionLostError,xe as CorrelationTracker,he as DEFAULT_READINESS_TIMEOUT_MS,D as DEFAULT_REQUEST_TIMEOUT_MS,pe as LOCAL_ORIGIN,ee as LocalSubjectError,M as MakaioBus,o as NO_HANDLER_ERROR_CODE,l as NoHandlerError,P as OnceAbortError,L as REMOTE_ORIGIN,re as RequestError,z as SystemChannelSchemas,f as TimeoutError,te as ValidationError,F as __resetWarnedSubjects,Ce as buildSubscribeMessage,we as buildUnsubscribeMessage,b as channelSubject,me as collectorOnlySubject,k as createBusContext,ge as createBusInstance,ye as createChannelEndpoint,Q as createExtensionNamespace,C as createFilteredBus,je as createProjectedTelemetryTransport,Te as createSubjectTelemetryProjectorRegistry,N as defaultTransports,E as defineSubjectExtension,a as deserializeTransportError,j as extendSubject,i as findInErrorChain,e as getFullSubjectForSubjectDefinition,O as getPath,ne as getSubjectFromBusMessage,h as handleCorrelationResponse,T as hostLocalRequest,S as isNoHandlerErrorForSubject,oe as isRequestCancellation,fe as isRequestSchema,A as localSubject,se as matchesAnySubscription,u as matchesFilter,le as matchesSubscription,ce as mergeFilters,be as openChannel,_e as parseBusUrl,y as projectSubjectTelemetryFacts,r as serializeTransportError,I as shouldReceiveMessage,ie as trackMessageCorrelation,t as transportErrorData,ue as waitForSubscriptionPropagation};
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as ee,M as te,N as f,O as ne,P as re,Q as p,R as m,S as h,T as ie,U as ae,V as g,W as oe,X as se,Y as ce,Z as le,_ as ue,a as de,at as fe,b as pe,d as _,et as me,f as he,g as v,h as y,i as ge,it as b,j as x,k as S,l as C,m as w,nt as T,o as E,p as D,q as O,r as k,rt as A,s as j,t as M,tt as N,u as P,v as F,w as I,x as L,y as _e,z as ve}from"../bus-30AlabEz.mjs";import{z as R}from"zod";const z={"channel.open":{request:R.object({endpoint:R.string(),token:R.string(),clientPubKey:R.string(),transports:R.array(R.string())}),response:R.object({channelId:R.string(),endpointPubKey:R.string()})}};function B(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=Array(t.length);for(let e=0;e<t.length;e++)n[e]=String.fromCharCode(t[e]);return btoa(n.join(``))}function V(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}async function H(){return globalThis.crypto.subtle.generateKey({name:`ECDH`,namedCurve:`P-256`},!1,[`deriveKey`])}async function U(e){return B(await globalThis.crypto.subtle.exportKey(`raw`,e))}async function W(e){let t=V(e);return globalThis.crypto.subtle.importKey(`raw`,t,{name:`ECDH`,namedCurve:`P-256`},!1,[])}async function G(e,t){return globalThis.crypto.subtle.deriveKey({name:`ECDH`,public:t},e,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function K(e,t,n){let r=globalThis.crypto.getRandomValues(new Uint8Array(12)),i=new TextEncoder().encode(t),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.encrypt(a,e,i);return{iv:B(r),data:B(o)}}async function q(e,t,n){let r=V(t.iv),i=V(t.data),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.decrypt(a,e,i);return new TextDecoder().decode(o)}function J(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!1,payload:{},local:!1,channel:!1}}}function Y(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!0,payload:{},local:!1,channel:!1}}}var X=class{channelId;sharedKey;context;transportNames;cleanups=[];pendingRequests=new Set;closed=!1;constructor(e,t,n,r){this.channelId=e,this.sharedKey=t,this.context=n,this.transportNames=r;let i=J(e,`$close`);this.cleanups.push(this.registerEventHandler(i,t,e=>{this.handlePeerClose()}))}on(e,t,n){this.assertOpen();let r=this.requireKey(),i=e.$meta.isRequest?this.registerRequestHandler(e,r,t,n):this.registerEventHandler(e,r,t,n);return this.cleanups.push(i),()=>{i();let e=this.cleanups.indexOf(i);e!==-1&&this.cleanups.splice(e,1)}}once(e,t){this.assertOpen();let n=this.requireKey(),r=null,i=(e=>{let n=r;if(r=null,n){let e=this.cleanups.indexOf(n);e!==-1&&this.cleanups.splice(e,1)}return n?.(),t(e)});return r=e.$meta.isRequest?this.registerRequestHandler(e,n,i):this.registerEventHandler(e,n,i),this.cleanups.push(r),()=>{if(r){let e=r;r=null;let t=this.cleanups.indexOf(e);t!==-1&&this.cleanups.splice(t,1),e()}}}async emit(e,t){this.assertOpen();let n=this.requireKey(),r=J(this.channelId,e.subject),i=await K(n,JSON.stringify(t),`${this.channelId}:${e.subject}:evt`);await w(this.context,r,i,{...this.transportNames?{transports:[...this.transportNames]}:{}})}async request(e,t,n){this.assertOpen();let r=this.requireKey(),i=new AbortController;this.pendingRequests.add(i);try{let a=Y(this.channelId,e.subject),o=await K(r,JSON.stringify(t),`${this.channelId}:${e.subject}:req`),s=await q(r,await _(this.context,a,o,{signal:i.signal,...n?.timeout===void 0?{}:{timeout:n.timeout},...this.transportNames?{transports:[...this.transportNames]}:{}}),`${this.channelId}:${e.subject}:res`);return JSON.parse(s)}finally{this.pendingRequests.delete(i)}}async requestOptional(e,t,n){try{return{handled:!0,data:await this.request(e,t,n)}}catch(e){if(e instanceof l)return{handled:!1};throw e}}close(){if(this.closed)return;this.closed=!0;let e=this.sharedKey;if(e){let t=J(this.channelId,`$close`);K(e,JSON.stringify({}),`${this.channelId}:$close:evt`).then(e=>w(this.context,t,e,{...this.transportNames?{transports:[...this.transportNames]}:{}})).catch(()=>{})}this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null}assertOpen(){if(this.closed)throw new g(this.channelId)}requireKey(){return this.sharedKey}registerEventHandler(e,t,n,r){let i=J(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:evt`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r);return n({...e,payload:i})},r)}registerRequestHandler(e,t,n,r){let i=Y(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:req`,o=`${this.channelId}:${e.subject}:res`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r),s,c=e=>{s={value:e}},l=e=>{s={value:{...s?.value??{},...e}}},u=async()=>{let n=s;if(await e.next(),n!==void 0){s=n;return}let r=e.result;if(r!==void 0){let e=await q(t,r,o);s={value:JSON.parse(e)}}};if(await n({...e,payload:i,get result(){return s?.value},setResult:c,extendResult:l,next:u}),s!==void 0){let n=await K(t,JSON.stringify(s.value),o);e.setResult(n)}},r)}handlePeerClose(){this.closed||(this.closed=!0,this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null)}abortPendingRequests(){let e=new g(this.channelId);for(let t of this.pendingRequests)t.abort(e);this.pendingRequests.clear()}runCleanups(){for(let e of this.cleanups)try{e()}catch{}this.cleanups.length=0}};function Z(e){return e.namespaceRegistry.registerNamespace(p(`system`,z)).subjects.channel.open}function ye(e,t,n,r){let i=v(e,Z(e),async i=>{if(i.payload.endpoint!==t){await i.next();return}if(i.payload.token!==r.token)throw new c(t);let{publicKey:a,privateKey:o}=await H(),s=await G(o,await W(i.payload.clientPubKey)),l=globalThis.crypto.randomUUID(),u=new Set(e.transportRegistry.names()),d=new X(l,s,e,(i.payload.transports??[]).filter(e=>u.has(e)));try{n(d),i.setResult({channelId:l,endpointPubKey:await U(a)})}catch(e){throw d.close(),e}});return{name:t,token:r.token,close:i}}async function be(e,t,n){let r=Z(e),{publicKey:i,privateKey:a}=await H(),o=await U(i),s=n.transports!==void 0,c=s?[...n.transports]:[...e.transportRegistry.names()],l=s?{transports:c}:void 0,u=await _(e,r,{endpoint:t,token:n.token,clientPubKey:o,transports:c},l),d=await G(a,await W(u.endpointPubKey));return new X(u.channelId,d,e,c)}var xe=class{pending;constructor(){this.pending=new Map}track(e,t,n){return new Promise((r,i)=>{if(n?.aborted){i(s(n.reason));return}let a=t===0?void 0:setTimeout(()=>{let n=this.pending.get(e);n!==void 0&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(new f(e,t)))},t);if(this.pending.set(e,{resolve:r,reject:i,timeoutId:a,removeAbortListener:void 0}),n){let t=()=>{this.reject(e,s(n.reason))};n.addEventListener(`abort`,t,{once:!0});let r=()=>{n.removeEventListener(`abort`,t)},i=this.pending.get(e);i&&(i.removeAbortListener=r)}n?.aborted&&this.reject(e,s(n.reason))})}resolve(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.resolve(t))}reject(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(t))}cancel(e,t){this.reject(e,t??s(void 0))}rejectAll(e){for(let[t,n]of this.pending.entries())clearTimeout(n.timeoutId),n.removeAbortListener?.(),n.reject(e);this.pending.clear()}cleanup(){this.rejectAll(Error(`Transport disconnected`))}};const Se=p(`bus:lifecycle`,de).subjects;function Ce(e,t){let n={},r={},i={};for(let[t,a]of e)n[t]=a.priorities,r[t]=a.deliveryClass??`relayable`,a.filter!==void 0&&(i[t]=a.filter);return{type:`subscribe`,...t===void 0?{}:{ackId:t},subjects:n,deliveryClasses:r,...Object.keys(i).length>0&&{filters:i}}}function we(e,t){return{type:`unsubscribe`,...t===void 0?{}:{ackId:t},subjects:e}}function Q(e,t){let n=e.trim();if(n.length===0||n.startsWith(`extension:`))throw Error(`Invalid extensionName: expected a non-empty extension name without the "extension:" prefix.`);let r=n;return{...p(`extension:${r}`,t.schemas),domain:r,extensions:t.extensions??{}}}function $(e,t){return`${e}.${t}`}function Te(){let e=new Map;return{register(t){let n=$(t.namespace,t.subject);return e.set(n,t),()=>{e.get(n)===t&&e.delete(n)}},get(t,n){return e.get($(t,n))}}}const Ee=x.fact.$meta.namespace,De=x.fact.subject;function Oe(e){return e.type===`event`||e.type===`request`||e.type===`broadcast`}async function ke(e,t,n,r,i,a){let o=y({message:t,direction:`outbound`,observedAt:a(),machineId:i,namespaceRegistry:n,projectorRegistry:r});for(let n of o)await e.send({type:`event`,namespace:Ee,subject:De,payload:n,messageId:`${t.messageId}:telemetry:${n.factId}`,correlationId:t.correlationId})}function Ae(e,t,n,r,i){return async function(a,o){if(!Oe(a))return!0;if(await ke(e,a,t,n,r,i),a.type===`request`)throw Error(`Projected telemetry transport cannot satisfy request responses; exclude it from request routing.`);return a.type===`broadcast`?[]:!0}}function je(e){let{inner:t,namespaceRegistry:n,projectorRegistry:r,machineId:i,now:a=Date.now}=e,o={name:e.name,send:Ae(t,n,r,i,a),onReceive(e){return t.onReceive(async()=>{})},connect(){return t.connect()},disconnect(){return t.disconnect()},subscribe(){return Promise.resolve()},unsubscribe(){return Promise.resolve()},get ready(){return t.ready},get onNewReadySession(){return t.onNewReadySession},set onNewReadySession(e){t.onNewReadySession=e},get onConnected(){return t.onConnected},set onConnected(e){t.onConnected=e},get onDisconnected(){return t.onDisconnected},set onDisconnected(e){t.onDisconnected=e},isReady(){return t.isReady?.()??!0},cancelRequest(e,n){t.cancelRequest?.(e,n)},onBroadcastResults(e,n,r){t.onBroadcastResults?.(e,n,r)}};return t.reconnect&&(o.reconnect=()=>t.reconnect()),o}export{ae as BusAbortError,d as BusError,Se as BusLifecycle,m as CONNECTION_LOST_ERROR_CODE,c as ChannelAuthError,g as ChannelClosedError,n as ChannelOnlyError,ve as ConnectionLostError,xe as CorrelationTracker,he as DEFAULT_READINESS_TIMEOUT_MS,D as DEFAULT_REQUEST_TIMEOUT_MS,pe as LOCAL_ORIGIN,ee as LocalSubjectError,M as MakaioBus,o as NO_HANDLER_ERROR_CODE,l as NoHandlerError,P as OnceAbortError,L as REMOTE_ORIGIN,re as RequestError,z as SystemChannelSchemas,f as TimeoutError,te as ValidationError,F as __resetWarnedSubjects,Ce as buildSubscribeMessage,we as buildUnsubscribeMessage,b as channelSubject,me as collectorOnlySubject,k as createBusContext,ge as createBusInstance,ye as createChannelEndpoint,Q as createExtensionNamespace,C as createFilteredBus,je as createProjectedTelemetryTransport,Te as createSubjectTelemetryProjectorRegistry,N as defaultTransports,E as defineSubjectExtension,a as deserializeTransportError,j as extendSubject,i as findInErrorChain,e as getFullSubjectForSubjectDefinition,O as getPath,ne as getSubjectFromBusMessage,h as handleCorrelationResponse,T as hostLocalRequest,S as isNoHandlerErrorForSubject,oe as isRequestCancellation,fe as isRequestSchema,A as localSubject,se as matchesAnySubscription,u as matchesFilter,le as matchesSubscription,ce as mergeFilters,be as openChannel,_e as parseBusUrl,y as projectSubjectTelemetryFacts,r as serializeTransportError,I as shouldReceiveMessage,ie as trackMessageCorrelation,t as transportErrorData,ue as waitForSubscriptionPropagation};
|