@fatagnus/dink-web 2.23.1 → 2.24.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/client.d.ts +0 -1
- package/dist/client.js +53 -2
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +312 -4
- package/dist/react.d.ts +220 -35
- package/dist/types.d.ts +79 -64
- package/package.json +3 -2
- package/dist/client.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/react.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
package/dist/client.d.ts
CHANGED
package/dist/client.js
CHANGED
|
@@ -283,10 +283,17 @@ export class DinkWebClient {
|
|
|
283
283
|
let cancelSubject;
|
|
284
284
|
const dataHandlers = [];
|
|
285
285
|
const closeHandlers = [];
|
|
286
|
+
const controlHandlers = [];
|
|
287
|
+
let _bufferedAmount = 0;
|
|
288
|
+
const drainHandlers = [];
|
|
289
|
+
let resolveClosed;
|
|
290
|
+
const closedPromise = new Promise((resolve) => { resolveClosed = resolve; });
|
|
286
291
|
const cleanup = (reason) => {
|
|
287
292
|
if (closed)
|
|
288
293
|
return;
|
|
289
294
|
closed = true;
|
|
295
|
+
resolveClosed();
|
|
296
|
+
ctrlSub?.unsubscribe();
|
|
290
297
|
dataSub?.unsubscribe();
|
|
291
298
|
doneSub?.unsubscribe();
|
|
292
299
|
for (const h of closeHandlers) {
|
|
@@ -331,6 +338,23 @@ export class DinkWebClient {
|
|
|
331
338
|
cleanup(reason);
|
|
332
339
|
},
|
|
333
340
|
});
|
|
341
|
+
// Subscribe to control messages from edge
|
|
342
|
+
const ctrlSub = nc.subscribe(outputInbox + '.ctrl', {
|
|
343
|
+
callback: (err, msg) => {
|
|
344
|
+
if (err || closed)
|
|
345
|
+
return;
|
|
346
|
+
try {
|
|
347
|
+
const parsed = JSON.parse(new TextDecoder().decode(msg.data));
|
|
348
|
+
for (const h of controlHandlers) {
|
|
349
|
+
try {
|
|
350
|
+
h(parsed);
|
|
351
|
+
}
|
|
352
|
+
catch { /* ignore */ }
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
catch { /* ignore parse errors */ }
|
|
356
|
+
},
|
|
357
|
+
});
|
|
334
358
|
// Build handshake request
|
|
335
359
|
const channelReq = {
|
|
336
360
|
reply_subject: outputInbox,
|
|
@@ -338,6 +362,7 @@ export class DinkWebClient {
|
|
|
338
362
|
data: request ?? {},
|
|
339
363
|
};
|
|
340
364
|
const subject = `edge.${this.config.appId}.${edgeId}.services.${service}.${method}.channel`;
|
|
365
|
+
let channelId = 'ch_' + (outputInbox.split('.').pop() || outputInbox);
|
|
341
366
|
try {
|
|
342
367
|
const ackMsg = await nc.request(subject, this.encode(channelReq), {
|
|
343
368
|
timeout: this.config.timeout ?? DEFAULT_TIMEOUT,
|
|
@@ -345,16 +370,20 @@ export class DinkWebClient {
|
|
|
345
370
|
try {
|
|
346
371
|
const ack = JSON.parse(new TextDecoder().decode(ackMsg.data));
|
|
347
372
|
cancelSubject = ack.cancelSubject;
|
|
373
|
+
if (ack.channelId)
|
|
374
|
+
channelId = ack.channelId;
|
|
348
375
|
}
|
|
349
376
|
catch {
|
|
350
377
|
/* backwards compatible */
|
|
351
378
|
}
|
|
352
379
|
}
|
|
353
380
|
catch (err) {
|
|
381
|
+
ctrlSub?.unsubscribe();
|
|
354
382
|
cleanup();
|
|
355
383
|
throw err;
|
|
356
384
|
}
|
|
357
385
|
const channel = {
|
|
386
|
+
get id() { return channelId; },
|
|
358
387
|
write(data) {
|
|
359
388
|
if (closed)
|
|
360
389
|
throw new Error('Channel is closed');
|
|
@@ -362,6 +391,19 @@ export class DinkWebClient {
|
|
|
362
391
|
throw new Error(`Channel write: payload size ${data.byteLength} exceeds max ${DEFAULT_MAX_PAYLOAD} bytes`);
|
|
363
392
|
}
|
|
364
393
|
nc.publish(inputInbox, data);
|
|
394
|
+
_bufferedAmount += data.byteLength;
|
|
395
|
+
queueMicrotask(() => {
|
|
396
|
+
_bufferedAmount = Math.max(0, _bufferedAmount - data.byteLength);
|
|
397
|
+
if (_bufferedAmount === 0) {
|
|
398
|
+
for (const h of drainHandlers) {
|
|
399
|
+
try {
|
|
400
|
+
h();
|
|
401
|
+
}
|
|
402
|
+
catch { /* ignore */ }
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
return true;
|
|
365
407
|
},
|
|
366
408
|
onData(handler) {
|
|
367
409
|
dataHandlers.push(handler);
|
|
@@ -382,9 +424,18 @@ export class DinkWebClient {
|
|
|
382
424
|
onClose(handler) {
|
|
383
425
|
closeHandlers.push(handler);
|
|
384
426
|
},
|
|
385
|
-
|
|
386
|
-
|
|
427
|
+
sendControl(msg) {
|
|
428
|
+
if (closed)
|
|
429
|
+
return;
|
|
430
|
+
nc.publish(inputInbox + '.ctrl', new TextEncoder().encode(JSON.stringify(msg)));
|
|
431
|
+
},
|
|
432
|
+
onControl(handler) {
|
|
433
|
+
controlHandlers.push(handler);
|
|
387
434
|
},
|
|
435
|
+
get isOpen() { return !closed; },
|
|
436
|
+
get closed() { return closedPromise; },
|
|
437
|
+
get bufferedAmount() { return _bufferedAmount; },
|
|
438
|
+
onDrain(handler) { drainHandlers.push(handler); },
|
|
388
439
|
};
|
|
389
440
|
return channel;
|
|
390
441
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,312 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// Generated by dts-bundle-generator v9.5.1
|
|
2
|
+
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
export interface ServiceCaller {
|
|
6
|
+
call<Req, Resp>(edgeId: string, service: string, method: string, req: Req): Promise<Resp>;
|
|
7
|
+
callCenter<Req, Resp>(service: string, method: string, req: Req): Promise<Resp>;
|
|
8
|
+
subscribe<Req, Resp>(edgeId: string, service: string, method: string, req: Req, handler: (resp: Resp) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
9
|
+
}
|
|
10
|
+
export interface Subscription {
|
|
11
|
+
unsubscribe(): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Extended subscription handle for streaming RPCs.
|
|
15
|
+
* Supports cancellation and lifecycle callbacks.
|
|
16
|
+
*/
|
|
17
|
+
export interface StreamSubscription extends Subscription {
|
|
18
|
+
/** Send a cancel signal to the edge to abort the stream. */
|
|
19
|
+
cancel(): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for streaming RPC subscriptions.
|
|
23
|
+
*/
|
|
24
|
+
export interface StreamOptions {
|
|
25
|
+
/** Called when the stream completes normally. */
|
|
26
|
+
onDone?: () => void;
|
|
27
|
+
/** Called when the stream encounters an error. */
|
|
28
|
+
onError?: (err: Error) => void;
|
|
29
|
+
}
|
|
30
|
+
export interface ServiceDefinition {
|
|
31
|
+
name: string;
|
|
32
|
+
version: string;
|
|
33
|
+
methods: string[];
|
|
34
|
+
}
|
|
35
|
+
/** Response from POST /api/keys/web-token */
|
|
36
|
+
export interface WebTokenResponse {
|
|
37
|
+
token: string;
|
|
38
|
+
ws_url: string;
|
|
39
|
+
expires_at: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Callback that fetches a fresh web token.
|
|
43
|
+
* Called automatically when the current token is about to expire.
|
|
44
|
+
* Should POST to /api/keys/web-token and return the response.
|
|
45
|
+
*/
|
|
46
|
+
export type TokenRefresher = () => Promise<WebTokenResponse>;
|
|
47
|
+
export interface DinkWebConfig {
|
|
48
|
+
/** WebSocket URL (e.g., "wss://host:9222") */
|
|
49
|
+
url: string;
|
|
50
|
+
/** Authentication token (from /api/keys/web-token) */
|
|
51
|
+
token: string;
|
|
52
|
+
/** Token expiry time (ISO 8601 string or Date). Enables auto-refresh when set with tokenRefresher. */
|
|
53
|
+
expiresAt?: string | Date;
|
|
54
|
+
/** App ID for subject routing */
|
|
55
|
+
appId: string;
|
|
56
|
+
/** Request timeout in ms (default: 30000) */
|
|
57
|
+
timeout?: number;
|
|
58
|
+
/** Called when connection state changes */
|
|
59
|
+
onStatusChange?: (status: ConnectionStatus) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Called to obtain a fresh token before the current one expires.
|
|
62
|
+
* If not set, the client will not auto-refresh tokens.
|
|
63
|
+
*/
|
|
64
|
+
tokenRefresher?: TokenRefresher;
|
|
65
|
+
/**
|
|
66
|
+
* How many ms before expiry to trigger a refresh (default: 60000 = 1 minute).
|
|
67
|
+
*/
|
|
68
|
+
refreshBeforeExpiryMs?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface ConnectionStats {
|
|
71
|
+
/** Current connection status */
|
|
72
|
+
status: ConnectionStatus;
|
|
73
|
+
/** Number of reconnections since connect() */
|
|
74
|
+
reconnectCount: number;
|
|
75
|
+
/** Last measured round-trip time in ms, or null if not yet measured */
|
|
76
|
+
rttMs: number | null;
|
|
77
|
+
/** When the current token expires, or null if unknown */
|
|
78
|
+
tokenExpiresAt: Date | null;
|
|
79
|
+
}
|
|
80
|
+
export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "closed" | "error";
|
|
81
|
+
/** Discovered edge information */
|
|
82
|
+
export interface EdgeInfo {
|
|
83
|
+
edgeId: string;
|
|
84
|
+
name?: string;
|
|
85
|
+
labels?: Record<string, string>;
|
|
86
|
+
services?: string[];
|
|
87
|
+
status?: string;
|
|
88
|
+
}
|
|
89
|
+
/** Bidirectional raw byte channel between browser and edge. */
|
|
90
|
+
export interface Channel {
|
|
91
|
+
/** Unique channel identifier (e.g., "ch_abc123") */
|
|
92
|
+
readonly id: string;
|
|
93
|
+
/** Send raw bytes to the other side. Returns false if backpressure is active. */
|
|
94
|
+
write(data: Uint8Array): boolean;
|
|
95
|
+
/** Register handler for incoming raw bytes */
|
|
96
|
+
onData(handler: (data: Uint8Array) => void): void;
|
|
97
|
+
/** Close the channel (either side can initiate) */
|
|
98
|
+
close(): void;
|
|
99
|
+
/** Called when the channel closes (by either side). Supports multiple handlers. */
|
|
100
|
+
onClose(handler: (reason?: string) => void): void;
|
|
101
|
+
/** Send a JSON-serializable control message out-of-band */
|
|
102
|
+
sendControl(msg: unknown): void;
|
|
103
|
+
/** Register handler for incoming control messages */
|
|
104
|
+
onControl(handler: (msg: unknown) => void): void;
|
|
105
|
+
/** True if channel is open */
|
|
106
|
+
readonly isOpen: boolean;
|
|
107
|
+
/** Promise that resolves when the channel closes */
|
|
108
|
+
readonly closed: Promise<void>;
|
|
109
|
+
/** Number of bytes queued for sending */
|
|
110
|
+
readonly bufferedAmount: number;
|
|
111
|
+
/** Register handler called when buffered data has been flushed */
|
|
112
|
+
onDrain(handler: () => void): void;
|
|
113
|
+
}
|
|
114
|
+
/** Options for opening a channel. */
|
|
115
|
+
export interface ChannelOptions {
|
|
116
|
+
/** Called when the channel encounters an error. */
|
|
117
|
+
onError?: (err: Error) => void;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* DinkWebClient connects to dinkd via NATS WebSocket from the browser.
|
|
121
|
+
* Implements ServiceCaller so generated client code works unchanged.
|
|
122
|
+
*
|
|
123
|
+
* Features:
|
|
124
|
+
* - Correct inbox-based streaming protocol (matches Node.js SDK)
|
|
125
|
+
* - Auto token refresh before expiry (requires tokenRefresher config)
|
|
126
|
+
* - Connection quality monitoring (RTT, reconnect count)
|
|
127
|
+
* - Automatic reconnection (built into nats.ws)
|
|
128
|
+
* - Center and edge service calls
|
|
129
|
+
* - Raw binary subscription mode for high-throughput streams
|
|
130
|
+
* - Edge discovery from the browser
|
|
131
|
+
*/
|
|
132
|
+
export declare class DinkWebClient implements ServiceCaller {
|
|
133
|
+
private nc;
|
|
134
|
+
private config;
|
|
135
|
+
private _status;
|
|
136
|
+
private _reconnectCount;
|
|
137
|
+
private _rttMs;
|
|
138
|
+
private _tokenExpiresAt;
|
|
139
|
+
private _refreshTimer;
|
|
140
|
+
private _rttInterval;
|
|
141
|
+
constructor(config: DinkWebConfig);
|
|
142
|
+
get status(): ConnectionStatus;
|
|
143
|
+
/** Current connection statistics */
|
|
144
|
+
get stats(): ConnectionStats;
|
|
145
|
+
connect(): Promise<void>;
|
|
146
|
+
close(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Call an edge service via request/reply.
|
|
149
|
+
* Subject: edge.{appId}.{edgeId}.services.{service}.{method}
|
|
150
|
+
*/
|
|
151
|
+
call<Req, Resp>(edgeId: string, service: string, method: string, req: Req): Promise<Resp>;
|
|
152
|
+
/**
|
|
153
|
+
* Call a center (cloud) service via request/reply.
|
|
154
|
+
* Subject: center.{appId}.services.{service}.{method}
|
|
155
|
+
*/
|
|
156
|
+
callCenter<Req, Resp>(service: string, method: string, req: Req): Promise<Resp>;
|
|
157
|
+
/**
|
|
158
|
+
* Subscribe to a streaming edge service using the correct inbox-based protocol.
|
|
159
|
+
*
|
|
160
|
+
* Protocol:
|
|
161
|
+
* 1. Create a unique inbox subject
|
|
162
|
+
* 2. Subscribe to inbox (data) and inbox.done (completion)
|
|
163
|
+
* 3. Send { reply_subject, data } envelope via request to the .stream subject
|
|
164
|
+
* 4. Edge acks with { status, cancelSubject }
|
|
165
|
+
* 5. Edge publishes stream data to the inbox, then inbox.done when finished
|
|
166
|
+
* 6. On cancel/unsubscribe, publish to cancelSubject to abort the stream
|
|
167
|
+
*/
|
|
168
|
+
subscribe<Req, Resp>(edgeId: string, service: string, method: string, req: Req, handler: (resp: Resp) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
169
|
+
/**
|
|
170
|
+
* Subscribe to a streaming edge service in raw binary mode.
|
|
171
|
+
* Skips JSON encode/decode — handler receives raw Uint8Array payloads.
|
|
172
|
+
* Ideal for high-throughput binary streams (PTY output, file transfers).
|
|
173
|
+
*
|
|
174
|
+
* Uses the same inbox-based streaming protocol as subscribe().
|
|
175
|
+
*/
|
|
176
|
+
subscribeRaw(edgeId: string, service: string, method: string, req: unknown, handler: (data: Uint8Array) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
177
|
+
/**
|
|
178
|
+
* Open a bidirectional raw byte channel to an edge service.
|
|
179
|
+
* Returns a Channel object for sending/receiving raw Uint8Array data.
|
|
180
|
+
*
|
|
181
|
+
* Protocol:
|
|
182
|
+
* 1. Create two unique inbox subjects (output for receiving, input for sending)
|
|
183
|
+
* 2. Subscribe to output inbox (data) and output inbox.done (completion)
|
|
184
|
+
* 3. Send { reply_subject, input_subject, data } envelope via request to .channel subject
|
|
185
|
+
* 4. Edge acks with { status, cancelSubject }
|
|
186
|
+
* 5. Bidirectional raw byte flow over the two inboxes
|
|
187
|
+
* 6. Either side can close: client publishes to cancelSubject, edge publishes to outputInbox.done
|
|
188
|
+
*/
|
|
189
|
+
openChannel(edgeId: string, service: string, method: string, request?: unknown, options?: ChannelOptions): Promise<Channel>;
|
|
190
|
+
/**
|
|
191
|
+
* Discover edges in the current app.
|
|
192
|
+
* Subject: center.{appId}.edges.discover
|
|
193
|
+
*
|
|
194
|
+
* This is a convenience for browser apps that need to find edges
|
|
195
|
+
* without a Convex backend intermediary.
|
|
196
|
+
*/
|
|
197
|
+
discoverEdges(filter?: {
|
|
198
|
+
labels?: Record<string, string>;
|
|
199
|
+
service?: string;
|
|
200
|
+
}): Promise<EdgeInfo[]>;
|
|
201
|
+
/**
|
|
202
|
+
* Create a typed service client for an edge.
|
|
203
|
+
* Usage: const svc = client.service('edge-1', MyServiceClient);
|
|
204
|
+
*/
|
|
205
|
+
service<T>(edgeId: string, factory: new (edgeId: string, caller: ServiceCaller) => T): T;
|
|
206
|
+
private scheduleTokenRefresh;
|
|
207
|
+
private refreshToken;
|
|
208
|
+
private startRttProbe;
|
|
209
|
+
private monitorStatus;
|
|
210
|
+
private stopTimers;
|
|
211
|
+
private setStatus;
|
|
212
|
+
private ensureConnected;
|
|
213
|
+
private encode;
|
|
214
|
+
private decode;
|
|
215
|
+
}
|
|
216
|
+
export interface DinkWebContextValue {
|
|
217
|
+
client: DinkWebClient | null;
|
|
218
|
+
status: ConnectionStatus;
|
|
219
|
+
stats: ConnectionStats;
|
|
220
|
+
}
|
|
221
|
+
export interface DinkWebProviderProps {
|
|
222
|
+
/** WebSocket URL (e.g., "wss://host:9222") */
|
|
223
|
+
url: string;
|
|
224
|
+
/** Authentication token */
|
|
225
|
+
token: string;
|
|
226
|
+
/** Token expiry (ISO string or Date) */
|
|
227
|
+
expiresAt?: string | Date;
|
|
228
|
+
/** App ID for subject routing */
|
|
229
|
+
appId: string;
|
|
230
|
+
/** Request timeout in ms */
|
|
231
|
+
timeout?: number;
|
|
232
|
+
/** Callback to fetch a fresh token before expiry */
|
|
233
|
+
tokenRefresher?: TokenRefresher;
|
|
234
|
+
/** Ms before expiry to trigger refresh (default: 60000) */
|
|
235
|
+
refreshBeforeExpiryMs?: number;
|
|
236
|
+
children: ReactNode;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Provider that manages DinkWebClient lifecycle.
|
|
240
|
+
* Creates and connects the client on mount, drains on unmount.
|
|
241
|
+
* Reconnects when url/token/appId change.
|
|
242
|
+
*/
|
|
243
|
+
export declare function DinkWebProvider({ url, token, expiresAt, appId, timeout, tokenRefresher, refreshBeforeExpiryMs, children, }: DinkWebProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<DinkWebContextValue | null>>;
|
|
244
|
+
/**
|
|
245
|
+
* Access the DinkWebClient instance, connection status, and stats.
|
|
246
|
+
*
|
|
247
|
+
* @throws Error if used outside DinkWebProvider
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```tsx
|
|
251
|
+
* function StatusBar() {
|
|
252
|
+
* const { client, status, stats } = useDinkWeb();
|
|
253
|
+
* return <div>Status: {status}, RTT: {stats.rttMs}ms</div>;
|
|
254
|
+
* }
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
export declare function useDinkWeb(): DinkWebContextValue;
|
|
258
|
+
/**
|
|
259
|
+
* Get a typed service client bound to a specific edge.
|
|
260
|
+
* Memoized — returns the same instance as long as edgeId and client don't change.
|
|
261
|
+
*
|
|
262
|
+
* @param edgeId - Edge to bind the service client to
|
|
263
|
+
* @param factory - Generated service client class (e.g., TerminalServiceClient)
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```tsx
|
|
267
|
+
* function Terminal({ edgeId }: { edgeId: string }) {
|
|
268
|
+
* const svc = useDinkService(edgeId, TerminalServiceClient);
|
|
269
|
+
* // svc.StreamOutput(...), svc.SendInput(...), etc.
|
|
270
|
+
* }
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
export declare function useDinkService<T>(edgeId: string, factory: new (edgeId: string, caller: ServiceCaller) => T): T | null;
|
|
274
|
+
/**
|
|
275
|
+
* Options for the useChannel hook.
|
|
276
|
+
*/
|
|
277
|
+
export interface UseChannelOptions extends ChannelOptions {
|
|
278
|
+
/** If false, the channel will not be opened. Default: true. */
|
|
279
|
+
enabled?: boolean;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Open a bidirectional raw byte channel to an edge service.
|
|
283
|
+
* Manages channel lifecycle — opens on mount/deps change, closes on unmount.
|
|
284
|
+
*
|
|
285
|
+
* @param edgeId - Edge to connect to
|
|
286
|
+
* @param service - Service name
|
|
287
|
+
* @param method - Method name
|
|
288
|
+
* @param request - Initial request payload
|
|
289
|
+
* @param options - Channel options
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```tsx
|
|
293
|
+
* function Terminal({ edgeId }: { edgeId: string }) {
|
|
294
|
+
* const { channel, isOpen, error } = useChannel(
|
|
295
|
+
* edgeId, 'TerminalService', 'shell',
|
|
296
|
+
* { shell: '/bin/bash', cols: 80, rows: 24 }
|
|
297
|
+
* );
|
|
298
|
+
*
|
|
299
|
+
* useEffect(() => {
|
|
300
|
+
* if (!channel) return;
|
|
301
|
+
* channel.onData((data) => term.write(data));
|
|
302
|
+
* }, [channel]);
|
|
303
|
+
* }
|
|
304
|
+
* ```
|
|
305
|
+
*/
|
|
306
|
+
export declare function useChannel(edgeId: string, service: string, method: string, request?: unknown, options?: UseChannelOptions): {
|
|
307
|
+
channel: Channel | null;
|
|
308
|
+
isOpen: boolean;
|
|
309
|
+
error: Error | null;
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
export {};
|
package/dist/react.d.ts
CHANGED
|
@@ -1,36 +1,221 @@
|
|
|
1
|
+
// Generated by dts-bundle-generator v9.5.1
|
|
2
|
+
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
export interface ServiceCaller {
|
|
6
|
+
call<Req, Resp>(edgeId: string, service: string, method: string, req: Req): Promise<Resp>;
|
|
7
|
+
callCenter<Req, Resp>(service: string, method: string, req: Req): Promise<Resp>;
|
|
8
|
+
subscribe<Req, Resp>(edgeId: string, service: string, method: string, req: Req, handler: (resp: Resp) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
9
|
+
}
|
|
10
|
+
export interface Subscription {
|
|
11
|
+
unsubscribe(): void;
|
|
12
|
+
}
|
|
1
13
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Provides DinkWebProvider for connection lifecycle management,
|
|
5
|
-
* useDinkWeb for accessing client + status, and useDinkService
|
|
6
|
-
* for typed service client access with auto-edge binding.
|
|
7
|
-
*
|
|
8
|
-
* @module @fatagnus/dink-web/react
|
|
14
|
+
* Extended subscription handle for streaming RPCs.
|
|
15
|
+
* Supports cancellation and lifecycle callbacks.
|
|
9
16
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
export interface StreamSubscription extends Subscription {
|
|
18
|
+
/** Send a cancel signal to the edge to abort the stream. */
|
|
19
|
+
cancel(): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for streaming RPC subscriptions.
|
|
23
|
+
*/
|
|
24
|
+
export interface StreamOptions {
|
|
25
|
+
/** Called when the stream completes normally. */
|
|
26
|
+
onDone?: () => void;
|
|
27
|
+
/** Called when the stream encounters an error. */
|
|
28
|
+
onError?: (err: Error) => void;
|
|
29
|
+
}
|
|
30
|
+
/** Response from POST /api/keys/web-token */
|
|
31
|
+
export interface WebTokenResponse {
|
|
32
|
+
token: string;
|
|
33
|
+
ws_url: string;
|
|
34
|
+
expires_at: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Callback that fetches a fresh web token.
|
|
38
|
+
* Called automatically when the current token is about to expire.
|
|
39
|
+
* Should POST to /api/keys/web-token and return the response.
|
|
40
|
+
*/
|
|
41
|
+
export type TokenRefresher = () => Promise<WebTokenResponse>;
|
|
42
|
+
export interface DinkWebConfig {
|
|
43
|
+
/** WebSocket URL (e.g., "wss://host:9222") */
|
|
44
|
+
url: string;
|
|
45
|
+
/** Authentication token (from /api/keys/web-token) */
|
|
46
|
+
token: string;
|
|
47
|
+
/** Token expiry time (ISO 8601 string or Date). Enables auto-refresh when set with tokenRefresher. */
|
|
48
|
+
expiresAt?: string | Date;
|
|
49
|
+
/** App ID for subject routing */
|
|
50
|
+
appId: string;
|
|
51
|
+
/** Request timeout in ms (default: 30000) */
|
|
52
|
+
timeout?: number;
|
|
53
|
+
/** Called when connection state changes */
|
|
54
|
+
onStatusChange?: (status: ConnectionStatus) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Called to obtain a fresh token before the current one expires.
|
|
57
|
+
* If not set, the client will not auto-refresh tokens.
|
|
58
|
+
*/
|
|
59
|
+
tokenRefresher?: TokenRefresher;
|
|
60
|
+
/**
|
|
61
|
+
* How many ms before expiry to trigger a refresh (default: 60000 = 1 minute).
|
|
62
|
+
*/
|
|
63
|
+
refreshBeforeExpiryMs?: number;
|
|
64
|
+
}
|
|
65
|
+
export interface ConnectionStats {
|
|
66
|
+
/** Current connection status */
|
|
67
|
+
status: ConnectionStatus;
|
|
68
|
+
/** Number of reconnections since connect() */
|
|
69
|
+
reconnectCount: number;
|
|
70
|
+
/** Last measured round-trip time in ms, or null if not yet measured */
|
|
71
|
+
rttMs: number | null;
|
|
72
|
+
/** When the current token expires, or null if unknown */
|
|
73
|
+
tokenExpiresAt: Date | null;
|
|
74
|
+
}
|
|
75
|
+
export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "closed" | "error";
|
|
76
|
+
/** Discovered edge information */
|
|
77
|
+
export interface EdgeInfo {
|
|
78
|
+
edgeId: string;
|
|
79
|
+
name?: string;
|
|
80
|
+
labels?: Record<string, string>;
|
|
81
|
+
services?: string[];
|
|
82
|
+
status?: string;
|
|
83
|
+
}
|
|
84
|
+
/** Bidirectional raw byte channel between browser and edge. */
|
|
85
|
+
export interface Channel {
|
|
86
|
+
/** Unique channel identifier (e.g., "ch_abc123") */
|
|
87
|
+
readonly id: string;
|
|
88
|
+
/** Send raw bytes to the other side. Returns false if backpressure is active. */
|
|
89
|
+
write(data: Uint8Array): boolean;
|
|
90
|
+
/** Register handler for incoming raw bytes */
|
|
91
|
+
onData(handler: (data: Uint8Array) => void): void;
|
|
92
|
+
/** Close the channel (either side can initiate) */
|
|
93
|
+
close(): void;
|
|
94
|
+
/** Called when the channel closes (by either side). Supports multiple handlers. */
|
|
95
|
+
onClose(handler: (reason?: string) => void): void;
|
|
96
|
+
/** Send a JSON-serializable control message out-of-band */
|
|
97
|
+
sendControl(msg: unknown): void;
|
|
98
|
+
/** Register handler for incoming control messages */
|
|
99
|
+
onControl(handler: (msg: unknown) => void): void;
|
|
100
|
+
/** True if channel is open */
|
|
101
|
+
readonly isOpen: boolean;
|
|
102
|
+
/** Promise that resolves when the channel closes */
|
|
103
|
+
readonly closed: Promise<void>;
|
|
104
|
+
/** Number of bytes queued for sending */
|
|
105
|
+
readonly bufferedAmount: number;
|
|
106
|
+
/** Register handler called when buffered data has been flushed */
|
|
107
|
+
onDrain(handler: () => void): void;
|
|
108
|
+
}
|
|
109
|
+
/** Options for opening a channel. */
|
|
110
|
+
export interface ChannelOptions {
|
|
111
|
+
/** Called when the channel encounters an error. */
|
|
112
|
+
onError?: (err: Error) => void;
|
|
113
|
+
}
|
|
114
|
+
declare class DinkWebClient implements ServiceCaller {
|
|
115
|
+
private nc;
|
|
116
|
+
private config;
|
|
117
|
+
private _status;
|
|
118
|
+
private _reconnectCount;
|
|
119
|
+
private _rttMs;
|
|
120
|
+
private _tokenExpiresAt;
|
|
121
|
+
private _refreshTimer;
|
|
122
|
+
private _rttInterval;
|
|
123
|
+
constructor(config: DinkWebConfig);
|
|
124
|
+
get status(): ConnectionStatus;
|
|
125
|
+
/** Current connection statistics */
|
|
126
|
+
get stats(): ConnectionStats;
|
|
127
|
+
connect(): Promise<void>;
|
|
128
|
+
close(): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Call an edge service via request/reply.
|
|
131
|
+
* Subject: edge.{appId}.{edgeId}.services.{service}.{method}
|
|
132
|
+
*/
|
|
133
|
+
call<Req, Resp>(edgeId: string, service: string, method: string, req: Req): Promise<Resp>;
|
|
134
|
+
/**
|
|
135
|
+
* Call a center (cloud) service via request/reply.
|
|
136
|
+
* Subject: center.{appId}.services.{service}.{method}
|
|
137
|
+
*/
|
|
138
|
+
callCenter<Req, Resp>(service: string, method: string, req: Req): Promise<Resp>;
|
|
139
|
+
/**
|
|
140
|
+
* Subscribe to a streaming edge service using the correct inbox-based protocol.
|
|
141
|
+
*
|
|
142
|
+
* Protocol:
|
|
143
|
+
* 1. Create a unique inbox subject
|
|
144
|
+
* 2. Subscribe to inbox (data) and inbox.done (completion)
|
|
145
|
+
* 3. Send { reply_subject, data } envelope via request to the .stream subject
|
|
146
|
+
* 4. Edge acks with { status, cancelSubject }
|
|
147
|
+
* 5. Edge publishes stream data to the inbox, then inbox.done when finished
|
|
148
|
+
* 6. On cancel/unsubscribe, publish to cancelSubject to abort the stream
|
|
149
|
+
*/
|
|
150
|
+
subscribe<Req, Resp>(edgeId: string, service: string, method: string, req: Req, handler: (resp: Resp) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
151
|
+
/**
|
|
152
|
+
* Subscribe to a streaming edge service in raw binary mode.
|
|
153
|
+
* Skips JSON encode/decode — handler receives raw Uint8Array payloads.
|
|
154
|
+
* Ideal for high-throughput binary streams (PTY output, file transfers).
|
|
155
|
+
*
|
|
156
|
+
* Uses the same inbox-based streaming protocol as subscribe().
|
|
157
|
+
*/
|
|
158
|
+
subscribeRaw(edgeId: string, service: string, method: string, req: unknown, handler: (data: Uint8Array) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
159
|
+
/**
|
|
160
|
+
* Open a bidirectional raw byte channel to an edge service.
|
|
161
|
+
* Returns a Channel object for sending/receiving raw Uint8Array data.
|
|
162
|
+
*
|
|
163
|
+
* Protocol:
|
|
164
|
+
* 1. Create two unique inbox subjects (output for receiving, input for sending)
|
|
165
|
+
* 2. Subscribe to output inbox (data) and output inbox.done (completion)
|
|
166
|
+
* 3. Send { reply_subject, input_subject, data } envelope via request to .channel subject
|
|
167
|
+
* 4. Edge acks with { status, cancelSubject }
|
|
168
|
+
* 5. Bidirectional raw byte flow over the two inboxes
|
|
169
|
+
* 6. Either side can close: client publishes to cancelSubject, edge publishes to outputInbox.done
|
|
170
|
+
*/
|
|
171
|
+
openChannel(edgeId: string, service: string, method: string, request?: unknown, options?: ChannelOptions): Promise<Channel>;
|
|
172
|
+
/**
|
|
173
|
+
* Discover edges in the current app.
|
|
174
|
+
* Subject: center.{appId}.edges.discover
|
|
175
|
+
*
|
|
176
|
+
* This is a convenience for browser apps that need to find edges
|
|
177
|
+
* without a Convex backend intermediary.
|
|
178
|
+
*/
|
|
179
|
+
discoverEdges(filter?: {
|
|
180
|
+
labels?: Record<string, string>;
|
|
181
|
+
service?: string;
|
|
182
|
+
}): Promise<EdgeInfo[]>;
|
|
183
|
+
/**
|
|
184
|
+
* Create a typed service client for an edge.
|
|
185
|
+
* Usage: const svc = client.service('edge-1', MyServiceClient);
|
|
186
|
+
*/
|
|
187
|
+
service<T>(edgeId: string, factory: new (edgeId: string, caller: ServiceCaller) => T): T;
|
|
188
|
+
private scheduleTokenRefresh;
|
|
189
|
+
private refreshToken;
|
|
190
|
+
private startRttProbe;
|
|
191
|
+
private monitorStatus;
|
|
192
|
+
private stopTimers;
|
|
193
|
+
private setStatus;
|
|
194
|
+
private ensureConnected;
|
|
195
|
+
private encode;
|
|
196
|
+
private decode;
|
|
197
|
+
}
|
|
198
|
+
export interface DinkWebContextValue {
|
|
199
|
+
client: DinkWebClient | null;
|
|
200
|
+
status: ConnectionStatus;
|
|
201
|
+
stats: ConnectionStats;
|
|
17
202
|
}
|
|
18
203
|
export interface DinkWebProviderProps {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
204
|
+
/** WebSocket URL (e.g., "wss://host:9222") */
|
|
205
|
+
url: string;
|
|
206
|
+
/** Authentication token */
|
|
207
|
+
token: string;
|
|
208
|
+
/** Token expiry (ISO string or Date) */
|
|
209
|
+
expiresAt?: string | Date;
|
|
210
|
+
/** App ID for subject routing */
|
|
211
|
+
appId: string;
|
|
212
|
+
/** Request timeout in ms */
|
|
213
|
+
timeout?: number;
|
|
214
|
+
/** Callback to fetch a fresh token before expiry */
|
|
215
|
+
tokenRefresher?: TokenRefresher;
|
|
216
|
+
/** Ms before expiry to trigger refresh (default: 60000) */
|
|
217
|
+
refreshBeforeExpiryMs?: number;
|
|
218
|
+
children: ReactNode;
|
|
34
219
|
}
|
|
35
220
|
/**
|
|
36
221
|
* Provider that manages DinkWebClient lifecycle.
|
|
@@ -72,8 +257,8 @@ export declare function useDinkService<T>(edgeId: string, factory: new (edgeId:
|
|
|
72
257
|
* Options for the useChannel hook.
|
|
73
258
|
*/
|
|
74
259
|
export interface UseChannelOptions extends ChannelOptions {
|
|
75
|
-
|
|
76
|
-
|
|
260
|
+
/** If false, the channel will not be opened. Default: true. */
|
|
261
|
+
enabled?: boolean;
|
|
77
262
|
}
|
|
78
263
|
/**
|
|
79
264
|
* Open a bidirectional raw byte channel to an edge service.
|
|
@@ -101,9 +286,9 @@ export interface UseChannelOptions extends ChannelOptions {
|
|
|
101
286
|
* ```
|
|
102
287
|
*/
|
|
103
288
|
export declare function useChannel(edgeId: string, service: string, method: string, request?: unknown, options?: UseChannelOptions): {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
289
|
+
channel: Channel | null;
|
|
290
|
+
isOpen: boolean;
|
|
291
|
+
error: Error | null;
|
|
107
292
|
};
|
|
293
|
+
|
|
108
294
|
export {};
|
|
109
|
-
//# sourceMappingURL=react.d.ts.map
|
package/dist/types.d.ts
CHANGED
|
@@ -1,38 +1,40 @@
|
|
|
1
|
+
// Generated by dts-bundle-generator v9.5.1
|
|
2
|
+
|
|
1
3
|
export interface ServiceCaller {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
call<Req, Resp>(edgeId: string, service: string, method: string, req: Req): Promise<Resp>;
|
|
5
|
+
callCenter<Req, Resp>(service: string, method: string, req: Req): Promise<Resp>;
|
|
6
|
+
subscribe<Req, Resp>(edgeId: string, service: string, method: string, req: Req, handler: (resp: Resp) => void, options?: StreamOptions): Promise<StreamSubscription>;
|
|
5
7
|
}
|
|
6
8
|
export interface Subscription {
|
|
7
|
-
|
|
9
|
+
unsubscribe(): void;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Extended subscription handle for streaming RPCs.
|
|
11
13
|
* Supports cancellation and lifecycle callbacks.
|
|
12
14
|
*/
|
|
13
15
|
export interface StreamSubscription extends Subscription {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
/** Send a cancel signal to the edge to abort the stream. */
|
|
17
|
+
cancel(): void;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Options for streaming RPC subscriptions.
|
|
19
21
|
*/
|
|
20
22
|
export interface StreamOptions {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/** Called when the stream completes normally. */
|
|
24
|
+
onDone?: () => void;
|
|
25
|
+
/** Called when the stream encounters an error. */
|
|
26
|
+
onError?: (err: Error) => void;
|
|
25
27
|
}
|
|
26
28
|
export interface ServiceDefinition {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
name: string;
|
|
30
|
+
version: string;
|
|
31
|
+
methods: string[];
|
|
30
32
|
}
|
|
31
33
|
/** Response from POST /api/keys/web-token */
|
|
32
34
|
export interface WebTokenResponse {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
token: string;
|
|
36
|
+
ws_url: string;
|
|
37
|
+
expires_at: string;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
40
|
* Callback that fetches a fresh web token.
|
|
@@ -41,63 +43,76 @@ export interface WebTokenResponse {
|
|
|
41
43
|
*/
|
|
42
44
|
export type TokenRefresher = () => Promise<WebTokenResponse>;
|
|
43
45
|
export interface DinkWebConfig {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
/** WebSocket URL (e.g., "wss://host:9222") */
|
|
47
|
+
url: string;
|
|
48
|
+
/** Authentication token (from /api/keys/web-token) */
|
|
49
|
+
token: string;
|
|
50
|
+
/** Token expiry time (ISO 8601 string or Date). Enables auto-refresh when set with tokenRefresher. */
|
|
51
|
+
expiresAt?: string | Date;
|
|
52
|
+
/** App ID for subject routing */
|
|
53
|
+
appId: string;
|
|
54
|
+
/** Request timeout in ms (default: 30000) */
|
|
55
|
+
timeout?: number;
|
|
56
|
+
/** Called when connection state changes */
|
|
57
|
+
onStatusChange?: (status: ConnectionStatus) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Called to obtain a fresh token before the current one expires.
|
|
60
|
+
* If not set, the client will not auto-refresh tokens.
|
|
61
|
+
*/
|
|
62
|
+
tokenRefresher?: TokenRefresher;
|
|
63
|
+
/**
|
|
64
|
+
* How many ms before expiry to trigger a refresh (default: 60000 = 1 minute).
|
|
65
|
+
*/
|
|
66
|
+
refreshBeforeExpiryMs?: number;
|
|
65
67
|
}
|
|
66
68
|
export interface ConnectionStats {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
/** Current connection status */
|
|
70
|
+
status: ConnectionStatus;
|
|
71
|
+
/** Number of reconnections since connect() */
|
|
72
|
+
reconnectCount: number;
|
|
73
|
+
/** Last measured round-trip time in ms, or null if not yet measured */
|
|
74
|
+
rttMs: number | null;
|
|
75
|
+
/** When the current token expires, or null if unknown */
|
|
76
|
+
tokenExpiresAt: Date | null;
|
|
75
77
|
}
|
|
76
|
-
export type ConnectionStatus =
|
|
78
|
+
export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "closed" | "error";
|
|
77
79
|
/** Discovered edge information */
|
|
78
80
|
export interface EdgeInfo {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
edgeId: string;
|
|
82
|
+
name?: string;
|
|
83
|
+
labels?: Record<string, string>;
|
|
84
|
+
services?: string[];
|
|
85
|
+
status?: string;
|
|
84
86
|
}
|
|
85
87
|
/** Bidirectional raw byte channel between browser and edge. */
|
|
86
88
|
export interface Channel {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
/** Unique channel identifier (e.g., "ch_abc123") */
|
|
90
|
+
readonly id: string;
|
|
91
|
+
/** Send raw bytes to the other side. Returns false if backpressure is active. */
|
|
92
|
+
write(data: Uint8Array): boolean;
|
|
93
|
+
/** Register handler for incoming raw bytes */
|
|
94
|
+
onData(handler: (data: Uint8Array) => void): void;
|
|
95
|
+
/** Close the channel (either side can initiate) */
|
|
96
|
+
close(): void;
|
|
97
|
+
/** Called when the channel closes (by either side). Supports multiple handlers. */
|
|
98
|
+
onClose(handler: (reason?: string) => void): void;
|
|
99
|
+
/** Send a JSON-serializable control message out-of-band */
|
|
100
|
+
sendControl(msg: unknown): void;
|
|
101
|
+
/** Register handler for incoming control messages */
|
|
102
|
+
onControl(handler: (msg: unknown) => void): void;
|
|
103
|
+
/** True if channel is open */
|
|
104
|
+
readonly isOpen: boolean;
|
|
105
|
+
/** Promise that resolves when the channel closes */
|
|
106
|
+
readonly closed: Promise<void>;
|
|
107
|
+
/** Number of bytes queued for sending */
|
|
108
|
+
readonly bufferedAmount: number;
|
|
109
|
+
/** Register handler called when buffered data has been flushed */
|
|
110
|
+
onDrain(handler: () => void): void;
|
|
97
111
|
}
|
|
98
112
|
/** Options for opening a channel. */
|
|
99
113
|
export interface ChannelOptions {
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
/** Called when the channel encounters an error. */
|
|
115
|
+
onError?: (err: Error) => void;
|
|
102
116
|
}
|
|
103
|
-
|
|
117
|
+
|
|
118
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fatagnus/dink-web",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.24.1",
|
|
4
4
|
"description": "Browser SDK for Dink edge mesh platform via NATS WebSocket",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "tsc",
|
|
33
|
+
"build": "tsc && dts-bundle-generator --config dts-bundle.config.json --no-banner",
|
|
34
34
|
"clean": "rm -rf dist",
|
|
35
35
|
"prebuild": "npm run clean",
|
|
36
36
|
"prepublishOnly": "npm run build",
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@types/node": "^20.10.0",
|
|
75
75
|
"@types/react": "^19.2.14",
|
|
76
|
+
"dts-bundle-generator": "^9.5.1",
|
|
76
77
|
"typescript": "^5.3.0"
|
|
77
78
|
},
|
|
78
79
|
"engines": {
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,eAAe,EAEf,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,aAAa;IAClD,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,MAAM,CAA2E;IACzF,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,YAAY,CAA+C;gBAEvD,MAAM,EAAE,aAAa;IAQjC,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,oCAAoC;IACpC,IAAI,KAAK,IAAI,eAAe,CAO3B;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;OAGG;IACG,IAAI,CAAC,GAAG,EAAE,IAAI,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,GACN,OAAO,CAAC,IAAI,CAAC;IAUhB;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,IAAI,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,GACN,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;;;;;;;OAUG;IACG,SAAS,CAAC,GAAG,EAAE,IAAI,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAC7B,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAgG9B;;;;;;OAMG;IACG,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,EACnC,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,kBAAkB,CAAC;IA0E9B;;;;;;;;;;;OAWG;IACG,WAAW,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,CAAC;IAuHnB;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUvB;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,CAAC,GAAG,CAAC;IAMxF,OAAO,CAAC,oBAAoB;YAiBd,YAAY;IAwC1B,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;CAGd"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,OAAO,EACP,cAAc,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/react.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAON,KAAK,SAAS,EAEd,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EACX,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,OAAO,EACP,cAAc,EACd,MAAM,YAAY,CAAC;AAIpB,UAAU,mBAAmB;IAC5B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;CACvB;AAMD,MAAM,WAAW,oBAAoB;IACpC,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,QAAQ,GACR,EAAE,oBAAoB,uGA4DtB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,IAAI,mBAAmB,CAMhD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,CAAC,GACvD,CAAC,GAAG,IAAI,CAOV;AAKD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,iBAAiB,GACzB;IAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAwDnE"}
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|