@dev-anywhere/relay 0.5.47 → 0.6.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.
@@ -6,10 +6,11 @@ import type { VoiceConfigStore } from "../voice/config-store.js";
6
6
  import type { VoiceProviderRegistry } from "../voice/provider.js";
7
7
  import type { RemoteFileBridge } from "../remote-file-bridge.js";
8
8
  import type { PtySnapshotRouteRegistry } from "../pty-snapshot-route-registry.js";
9
+ import type { SessionHistoryRouteRegistry } from "../session-history-route-registry.js";
9
10
  interface ClientConnectionInfo {
10
11
  userAgent?: string;
11
12
  remoteAddress?: string;
12
13
  }
13
- export declare function handleClientConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, ptySnapshotRoutes: PtySnapshotRouteRegistry, chaos?: RelayChaos, voiceConfigStore?: VoiceConfigStore, voiceProviders?: VoiceProviderRegistry, remoteFileBridge?: RemoteFileBridge, connectionInfo?: ClientConnectionInfo): void;
14
+ export declare function handleClientConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, ptySnapshotRoutes: PtySnapshotRouteRegistry, sessionHistoryRoutes: SessionHistoryRouteRegistry, chaos?: RelayChaos, voiceConfigStore?: VoiceConfigStore, voiceProviders?: VoiceProviderRegistry, remoteFileBridge?: RemoteFileBridge, connectionInfo?: ClientConnectionInfo): void;
14
15
  export {};
15
16
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/handlers/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAU/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AASlF,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAuQD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,wBAAwB,EAC3C,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,CAAC,EAAE,qBAAqB,EACtC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,GAAE,oBAAyB,GACxC,IAAI,CA4ZN"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/handlers/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAU/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AASxF,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAuQD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,wBAAwB,EAC3C,oBAAoB,EAAE,2BAA2B,EACjD,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,CAAC,EAAE,qBAAqB,EACtC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,GAAE,oBAAyB,GACxC,IAAI,CAsdN"}
@@ -4,5 +4,6 @@ import type { RelayRegistry } from "../registry.js";
4
4
  import type { RelayChaos } from "../chaos.js";
5
5
  import type { RemoteFileBridge } from "../remote-file-bridge.js";
6
6
  import type { PtySnapshotRouteRegistry } from "../pty-snapshot-route-registry.js";
7
- export declare function handleProxyConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, ptySnapshotRoutes: PtySnapshotRouteRegistry, chaos?: RelayChaos, remoteFileBridge?: RemoteFileBridge): void;
7
+ import type { SessionHistoryRouteRegistry } from "../session-history-route-registry.js";
8
+ export declare function handleProxyConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, ptySnapshotRoutes: PtySnapshotRouteRegistry, sessionHistoryRoutes: SessionHistoryRouteRegistry, chaos?: RelayChaos, remoteFileBridge?: RemoteFileBridge): void;
8
9
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/handlers/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAQ/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAkElF,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,wBAAwB,EAC3C,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAgQN"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/handlers/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAQ/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAkExF,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,wBAAwB,EAC3C,oBAAoB,EAAE,2BAA2B,EACjD,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAwTN"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  RELAY_VERSION,
4
4
  createRelayServer,
5
5
  parseRelayChaosFromEnv
6
- } from "./chunk-4Q4EAZP6.js";
6
+ } from "./chunk-TWQN6HNC.js";
7
7
 
8
8
  // ../../packages/shared/dist/logger.js
9
9
  import { lstatSync, mkdirSync, readdirSync, renameSync, statSync, symlinkSync, unlinkSync } from "fs";
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAK5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAK9F,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA6BD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAkS1E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAK5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAM9F,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA6BD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA4S1E"}
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  createRelayServer
4
- } from "./chunk-4Q4EAZP6.js";
4
+ } from "./chunk-TWQN6HNC.js";
5
5
  export {
6
6
  createRelayServer
7
7
  };
@@ -0,0 +1,69 @@
1
+ import type { WebSocket } from "ws";
2
+ export type HistoryRouteRegistration = {
3
+ kind: "leader";
4
+ upstreamRequestId: string;
5
+ } | {
6
+ kind: "joined";
7
+ upstreamRequestId: string;
8
+ } | {
9
+ kind: "duplicate";
10
+ } | {
11
+ kind: "collision";
12
+ } | {
13
+ kind: "client_capacity_exceeded";
14
+ } | {
15
+ kind: "capacity_exceeded";
16
+ };
17
+ export type HistoryRouteTarget = {
18
+ clientWs: WebSocket;
19
+ requestId: string;
20
+ };
21
+ export type HistoryRouteResolution = {
22
+ kind: "matched";
23
+ targets: HistoryRouteTarget[];
24
+ } | {
25
+ kind: "stale_proxy";
26
+ } | {
27
+ kind: "tombstone";
28
+ } | {
29
+ kind: "unmatched";
30
+ };
31
+ export interface SessionHistoryRouteRegistryOptions {
32
+ maxEntries?: number;
33
+ maxPendingPerClient?: number;
34
+ pendingTtlMs?: number;
35
+ joinWindowMs?: number;
36
+ tombstoneTtlMs?: number;
37
+ now?: () => number;
38
+ upstreamRequestIdFactory?: () => string;
39
+ }
40
+ /**
41
+ * Coalesces overlapping history requests for the same live proxy socket and correlates the one
42
+ * upstream response with every exact browser waiter. External request IDs never cross the proxy
43
+ * wire: a relay-owned ID prevents a late response from being confused with a reused client ID.
44
+ */
45
+ export declare class SessionHistoryRouteRegistry {
46
+ private readonly routes;
47
+ private readonly flights;
48
+ private readonly flightTombstones;
49
+ private readonly maxEntries;
50
+ private readonly maxPendingPerClient;
51
+ private readonly pendingTtlMs;
52
+ private readonly joinWindowMs;
53
+ private readonly tombstoneTtlMs;
54
+ private readonly now;
55
+ private readonly upstreamRequestIdFactory;
56
+ private upstreamRequestSequence;
57
+ constructor(options?: SessionHistoryRouteRegistryOptions);
58
+ register(proxyId: string, requestId: string, clientWs: WebSocket, proxyWs: WebSocket): HistoryRouteRegistration;
59
+ resolve(proxyId: string, requestId: string, proxyWs: WebSocket): HistoryRouteResolution;
60
+ abandonSocket(clientWs: WebSocket): void;
61
+ clearProxy(proxyId: string): void;
62
+ private createFlight;
63
+ private migrateFlight;
64
+ private expireFlight;
65
+ private setFlightTombstone;
66
+ private evictOldestRouteTombstone;
67
+ private pruneExpired;
68
+ }
69
+ //# sourceMappingURL=session-history-route-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-history-route-registry.d.ts","sourceRoot":"","sources":["../src/session-history-route-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAuCpC,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAElC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1B,MAAM,WAAW,kCAAkC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,wBAAwB,CAAC,EAAE,MAAM,MAAM,CAAC;CACzC;AAMD;;;;GAIG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAe;IACxD,OAAO,CAAC,uBAAuB,CAAK;gBAExB,OAAO,GAAE,kCAAuC;IAqB5D,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,SAAS,GACjB,wBAAwB;IA6D3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,sBAAsB;IAoCvF,aAAa,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAcxC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUjC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,YAAY;CAWrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev-anywhere/relay",
3
- "version": "0.5.47",
3
+ "version": "0.6.1",
4
4
  "description": "Relay server for DEV Anywhere — bridges local AI CLI proxies to remote web clients via WebSocket.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -57,7 +57,7 @@
57
57
  "@types/node": "^22.15.30",
58
58
  "@types/ws": "^8.18.1",
59
59
  "vitest": "^4.1.2",
60
- "@dev-anywhere/shared": "0.5.47"
60
+ "@dev-anywhere/shared": "0.6.1"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsup && node scripts/copy-web-assets.mjs && rm -f tsconfig.build.tsbuildinfo && tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist",