@rindle/room 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The room's **self-authorizing signed lease token** (RINDLE-REALTIME-DESIGN.md §10.1).
3
+ *
4
+ * The API server is the authority (§4): it authenticates the user, resolves the named
5
+ * query to an approved AST, and signs this token. The token then IS the lease — the
6
+ * room materializes on first presentation, so no pre-placement `/materialize` control
7
+ * call ever touches it (the §10.1 inversion; on the DO shell the Worker verifies the
8
+ * same signature statelessly before `get(id)`).
9
+ *
10
+ * Shape: `rt1.<base64url(payload)>.<base64url(hmac-sha256(prefix.payload))>` with
11
+ * payload `{ v: 1, doc, ast, sub, iat, exp, kid }`:
12
+ *
13
+ * - `doc` — the room/document id the token authorizes (a token for one room presented
14
+ * to another is refused);
15
+ * - `ast` — the approved wire `Ast` (the client never composes this; §4's "ASTs never
16
+ * cross the public wire" holds because the token is opaque TO THE CLIENT — it carries
17
+ * it, it cannot mint or alter it);
18
+ * - `sub` — the subject (user id): the revocation key (§4.1);
19
+ * - `iat`/`exp` — issued-at / expiry, ms epoch. Renewal is re-authorization: clients
20
+ * obtain a fresh token through the API server, never extend this one. `iat` is what
21
+ * lets a revocation refuse pre-revocation tokens while a genuine re-grant (a newer
22
+ * token) passes immediately;
23
+ * - `kid` — which shared secret signed it (rotation).
24
+ *
25
+ * HMAC via WebCrypto (`crypto.subtle`) so the exact same code verifies in Node (the
26
+ * test shell) and in a Cloudflare Worker/DO (P4) — no `node:crypto` import.
27
+ */
28
+ export interface RoomTokenPayload {
29
+ v: 1;
30
+ doc: string;
31
+ ast: unknown;
32
+ sub: string;
33
+ iat: number;
34
+ exp: number;
35
+ kid: string;
36
+ /** A short fingerprint of the room's compiled scope specs at mint time
37
+ * ({@link scopeSpecsHash}). Advisory, not a credential: the room's §3.3 gate is the
38
+ * contract regardless. It lets the shell detect SCOPE SKEW — a room profile edited
39
+ * while a room is already live arms the gate with the OLD specs (a one-shot at boot)
40
+ * while fresh leases prove against the NEW ones, so every routed write silently
41
+ * deopt-loops. Optional so a pre-stamp api-server / older token still verifies. */
42
+ scopesHash?: string;
43
+ }
44
+ export interface MintRoomTokenOptions {
45
+ doc: string;
46
+ ast: unknown;
47
+ /** The subject (user id) this token authorizes — the §4.1 revocation key. */
48
+ sub: string;
49
+ /** Key id + its secret (utf-8; give every room the same `keys` map). */
50
+ kid: string;
51
+ key: string;
52
+ /** Expiry, ms from `now`. Keep short (minutes) — the §4.1 TTL backstop. */
53
+ ttlMs: number;
54
+ /** Mint time; defaults to `Date.now()`. Injectable for tests. */
55
+ now?: number;
56
+ /** The room's {@link scopeSpecsHash} for the profile this lease serves — stamped so the
57
+ * shell can flag scope skew (see {@link RoomTokenPayload.scopesHash}). Omit to not stamp. */
58
+ scopesHash?: string;
59
+ }
60
+ /** A stable short fingerprint of the compiled scope specs — the scope-skew tripwire.
61
+ * NOT security (the gate re-proves every write): FNV-1a-32 over the {@link canonicalJson}
62
+ * form, 8 hex chars. Both the api-server (stamping the lease token) and the room shell
63
+ * (hashing the boot-wire scopes it armed the gate with) run this over the SAME compiler
64
+ * output, so an unchanged profile ⇒ equal hash and a profile edited under a live room ⇒
65
+ * mismatch. A collision only costs a missed diagnostic, never correctness. Accepts either
66
+ * wire's spec array (`RoomScopeSpec[]` / `RoomTableSpec[]` — structurally identical). */
67
+ export declare function scopeSpecsHash(specs: readonly unknown[]): string;
68
+ /** Sign a room lease token. This runs on the API-server side (or a test playing it). */
69
+ export declare function mintRoomToken(opts: MintRoomTokenOptions): Promise<string>;
70
+ /** Why a token was refused. The `reason` is terse and safe to echo in a queryError. */
71
+ export declare class RoomTokenError extends Error {
72
+ readonly reason: string;
73
+ constructor(reason: string);
74
+ }
75
+ export interface VerifyRoomTokenOptions {
76
+ /** The room's own doc id — a token for any other doc is refused. */
77
+ doc: string;
78
+ /** kid → shared secret. Unknown kids are refused (never "try them all"). */
79
+ keys: Record<string, string>;
80
+ /** Verification time; defaults to `Date.now()`. Injectable for tests. */
81
+ now?: number;
82
+ }
83
+ /**
84
+ * Verify a token's signature and claims; returns the payload (with the approved AST)
85
+ * or throws {@link RoomTokenError}. Signature is checked FIRST — no claim is trusted
86
+ * (not even `kid`'s existence beyond the key lookup) before the MAC passes.
87
+ */
88
+ export declare function verifyRoomToken(token: string, opts: VerifyRoomTokenOptions): Promise<RoomTokenPayload>;
89
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,CAAC,CAAC;IACL,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;wFAKoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;kGAC8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD;;;;;;0FAM0F;AAC1F,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAQhE;AA8BD,wFAAwF;AACxF,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB/E;AAED,uFAAuF;AACvF,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAI3B;AAED,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CA4C3B"}
package/dist/token.js ADDED
@@ -0,0 +1,158 @@
1
+ /**
2
+ * The room's **self-authorizing signed lease token** (RINDLE-REALTIME-DESIGN.md §10.1).
3
+ *
4
+ * The API server is the authority (§4): it authenticates the user, resolves the named
5
+ * query to an approved AST, and signs this token. The token then IS the lease — the
6
+ * room materializes on first presentation, so no pre-placement `/materialize` control
7
+ * call ever touches it (the §10.1 inversion; on the DO shell the Worker verifies the
8
+ * same signature statelessly before `get(id)`).
9
+ *
10
+ * Shape: `rt1.<base64url(payload)>.<base64url(hmac-sha256(prefix.payload))>` with
11
+ * payload `{ v: 1, doc, ast, sub, iat, exp, kid }`:
12
+ *
13
+ * - `doc` — the room/document id the token authorizes (a token for one room presented
14
+ * to another is refused);
15
+ * - `ast` — the approved wire `Ast` (the client never composes this; §4's "ASTs never
16
+ * cross the public wire" holds because the token is opaque TO THE CLIENT — it carries
17
+ * it, it cannot mint or alter it);
18
+ * - `sub` — the subject (user id): the revocation key (§4.1);
19
+ * - `iat`/`exp` — issued-at / expiry, ms epoch. Renewal is re-authorization: clients
20
+ * obtain a fresh token through the API server, never extend this one. `iat` is what
21
+ * lets a revocation refuse pre-revocation tokens while a genuine re-grant (a newer
22
+ * token) passes immediately;
23
+ * - `kid` — which shared secret signed it (rotation).
24
+ *
25
+ * HMAC via WebCrypto (`crypto.subtle`) so the exact same code verifies in Node (the
26
+ * test shell) and in a Cloudflare Worker/DO (P4) — no `node:crypto` import.
27
+ */
28
+ const PREFIX = "rt1";
29
+ /** Canonical JSON: object keys sorted recursively (arrays keep order), so structurally
30
+ * identical specs serialize identically regardless of key INSERTION order across code
31
+ * versions — a cosmetic reorder must not read as a scope change. `undefined`-valued keys
32
+ * are dropped, matching `JSON.stringify` and the `footprintWhere?`/`where?` optionals. */
33
+ function canonicalJson(v) {
34
+ if (v === undefined)
35
+ return "null";
36
+ if (v === null || typeof v !== "object")
37
+ return JSON.stringify(v);
38
+ if (Array.isArray(v))
39
+ return `[${v.map(canonicalJson).join(",")}]`;
40
+ const o = v;
41
+ const keys = Object.keys(o)
42
+ .filter((k) => o[k] !== undefined)
43
+ .sort();
44
+ return `{${keys.map((k) => `${JSON.stringify(k)}:${canonicalJson(o[k])}`).join(",")}}`;
45
+ }
46
+ /** A stable short fingerprint of the compiled scope specs — the scope-skew tripwire.
47
+ * NOT security (the gate re-proves every write): FNV-1a-32 over the {@link canonicalJson}
48
+ * form, 8 hex chars. Both the api-server (stamping the lease token) and the room shell
49
+ * (hashing the boot-wire scopes it armed the gate with) run this over the SAME compiler
50
+ * output, so an unchanged profile ⇒ equal hash and a profile edited under a live room ⇒
51
+ * mismatch. A collision only costs a missed diagnostic, never correctness. Accepts either
52
+ * wire's spec array (`RoomScopeSpec[]` / `RoomTableSpec[]` — structurally identical). */
53
+ export function scopeSpecsHash(specs) {
54
+ const json = canonicalJson(specs);
55
+ let h = 0x811c9dc5;
56
+ for (let i = 0; i < json.length; i++) {
57
+ h ^= json.charCodeAt(i);
58
+ h = Math.imul(h, 0x01000193);
59
+ }
60
+ return (h >>> 0).toString(16).padStart(8, "0");
61
+ }
62
+ function b64url(bytes) {
63
+ let bin = "";
64
+ for (const b of bytes)
65
+ bin += String.fromCharCode(b);
66
+ return btoa(bin).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
67
+ }
68
+ // Return type inferred (`Uint8Array<ArrayBuffer>` under TS ≥5.7 libs) — an explicit
69
+ // `Uint8Array` annotation widens to `ArrayBufferLike` and fails `crypto.subtle`'s
70
+ // `BufferSource` under consumers compiling this source with newer lib types (the DO shell).
71
+ function unb64url(s) {
72
+ const bin = atob(s.replace(/-/g, "+").replace(/_/g, "/"));
73
+ const out = new Uint8Array(bin.length);
74
+ for (let i = 0; i < bin.length; i++)
75
+ out[i] = bin.charCodeAt(i);
76
+ return out;
77
+ }
78
+ // Return type inferred: this package's tsconfig has no DOM lib, so the WebCrypto
79
+ // interface names aren't ambient — but `crypto.subtle`'s own types carry through.
80
+ async function hmacKey(secret, usage) {
81
+ return crypto.subtle.importKey("raw", new TextEncoder().encode(secret), { name: "HMAC", hash: "SHA-256" }, false, [usage]);
82
+ }
83
+ /** Sign a room lease token. This runs on the API-server side (or a test playing it). */
84
+ export async function mintRoomToken(opts) {
85
+ const now = opts.now ?? Date.now();
86
+ const payload = {
87
+ v: 1,
88
+ doc: opts.doc,
89
+ ast: opts.ast,
90
+ sub: opts.sub,
91
+ iat: now,
92
+ exp: now + opts.ttlMs,
93
+ kid: opts.kid,
94
+ // Stamped only when supplied — an unstamped mint keeps the pre-scopesHash byte shape.
95
+ ...(opts.scopesHash !== undefined ? { scopesHash: opts.scopesHash } : {}),
96
+ };
97
+ const body = b64url(new TextEncoder().encode(JSON.stringify(payload)));
98
+ const signed = `${PREFIX}.${body}`;
99
+ const key = await hmacKey(opts.key, "sign");
100
+ const sig = new Uint8Array(await crypto.subtle.sign("HMAC", key, new TextEncoder().encode(signed)));
101
+ return `${signed}.${b64url(sig)}`;
102
+ }
103
+ /** Why a token was refused. The `reason` is terse and safe to echo in a queryError. */
104
+ export class RoomTokenError extends Error {
105
+ reason;
106
+ constructor(reason) {
107
+ super(`lease token refused: ${reason}`);
108
+ this.reason = reason;
109
+ }
110
+ }
111
+ /**
112
+ * Verify a token's signature and claims; returns the payload (with the approved AST)
113
+ * or throws {@link RoomTokenError}. Signature is checked FIRST — no claim is trusted
114
+ * (not even `kid`'s existence beyond the key lookup) before the MAC passes.
115
+ */
116
+ export async function verifyRoomToken(token, opts) {
117
+ const now = opts.now ?? Date.now();
118
+ const parts = token.split(".");
119
+ if (parts.length !== 3 || parts[0] !== PREFIX) {
120
+ throw new RoomTokenError("not a room token");
121
+ }
122
+ const [, body, sig] = parts;
123
+ // Parse only far enough to find `kid` (the signature covers everything, so a lying
124
+ // kid can only select a key that then fails the MAC).
125
+ let payload;
126
+ try {
127
+ payload = JSON.parse(new TextDecoder().decode(unb64url(body)));
128
+ }
129
+ catch {
130
+ throw new RoomTokenError("malformed payload");
131
+ }
132
+ const secret = typeof payload.kid === "string" ? opts.keys[payload.kid] : undefined;
133
+ if (secret === undefined) {
134
+ throw new RoomTokenError("unknown key id");
135
+ }
136
+ const key = await hmacKey(secret, "verify");
137
+ const ok = await crypto.subtle.verify("HMAC", key, unb64url(sig), new TextEncoder().encode(`${PREFIX}.${body}`));
138
+ if (!ok) {
139
+ throw new RoomTokenError("bad signature");
140
+ }
141
+ if (payload.v !== 1)
142
+ throw new RoomTokenError("unknown version");
143
+ if (payload.doc !== opts.doc)
144
+ throw new RoomTokenError("token is for another doc");
145
+ if (typeof payload.sub !== "string" || payload.sub.length === 0) {
146
+ throw new RoomTokenError("missing subject");
147
+ }
148
+ if (typeof payload.exp !== "number" || now >= payload.exp) {
149
+ throw new RoomTokenError("expired lease");
150
+ }
151
+ if (typeof payload.iat !== "number")
152
+ throw new RoomTokenError("missing iat");
153
+ if (payload.ast === undefined || payload.ast === null) {
154
+ throw new RoomTokenError("missing ast");
155
+ }
156
+ return payload;
157
+ }
158
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
package/dist/wasm.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { WasmRoom } from "../pkg/rindle_room.js";
2
+ export { WasmRoom };
3
+ /** Initialize the room wasm module (idempotent). Call once before `WasmRoom.open`.
4
+ * Node: bytes are read from the package. Browser/bundler: the wasm is fetched. Pass
5
+ * `moduleOrPath` to override (a `WebAssembly.Module`, URL, or bytes). */
6
+ export declare function initRoomWasm(moduleOrPath?: unknown): Promise<void>;
7
+ //# sourceMappingURL=wasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAKA,OAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,CAAC;AAIpB;;0EAE0E;AAC1E,wBAAgB,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBlE"}
package/dist/wasm.js ADDED
@@ -0,0 +1,29 @@
1
+ // Loader for the room wasm artifact (pkg/, built by ./build.sh) — the same init-once
2
+ // pattern as @rindle/wasm: a `--target web` ESM artifact needs one explicit init before
3
+ // the classes are usable. Node reads the bytes from the package; a browser/Worker host
4
+ // fetches (or passes a precompiled module).
5
+ import init, { WasmRoom } from "../pkg/rindle_room.js";
6
+ export { WasmRoom };
7
+ let initialized = null;
8
+ /** Initialize the room wasm module (idempotent). Call once before `WasmRoom.open`.
9
+ * Node: bytes are read from the package. Browser/bundler: the wasm is fetched. Pass
10
+ * `moduleOrPath` to override (a `WebAssembly.Module`, URL, or bytes). */
11
+ export function initRoomWasm(moduleOrPath) {
12
+ if (!initialized) {
13
+ initialized = (async () => {
14
+ if (moduleOrPath !== undefined) {
15
+ await init({ module_or_path: moduleOrPath });
16
+ }
17
+ else if (globalThis.process?.versions?.node) {
18
+ const { readFile } = await import("node:fs/promises");
19
+ const bytes = await readFile(new URL("../pkg/rindle_room_bg.wasm", import.meta.url));
20
+ await init({ module_or_path: bytes });
21
+ }
22
+ else {
23
+ await init();
24
+ }
25
+ })();
26
+ }
27
+ return initialized;
28
+ }
29
+ //# sourceMappingURL=wasm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,wFAAwF;AACxF,uFAAuF;AACvF,4CAA4C;AAE5C,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C;;0EAE0E;AAC1E,MAAM,UAAU,YAAY,CAAC,YAAsB;IACjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,IACJ,UAA6D,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EACtF,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrF,MAAM,IAAI,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@rindle/room",
3
+ "version": "0.5.0",
4
+ "type": "module",
5
+ "description": "Rindle Realtime room: the wasm room core (rindle-room-wasm) plus the Node test shell that drives the same build \u2014 upstream ws subscriber of rindled, downstream ws server speaking the @rindle/remote protocol verbatim (RINDLE-REALTIME-DESIGN.md \u00a711 P0).",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "sideEffects": false,
9
+ "exports": {
10
+ ".": {
11
+ "@rindle/source": "./src/index.ts",
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./package.json": "./package.json",
16
+ "./pkg/*": "./pkg/*",
17
+ "./wasm": {
18
+ "@rindle/source": "./src/wasm.ts",
19
+ "types": "./dist/wasm.d.ts",
20
+ "default": "./dist/wasm.js"
21
+ },
22
+ "./token": {
23
+ "@rindle/source": "./src/token.ts",
24
+ "types": "./dist/token.d.ts",
25
+ "default": "./dist/token.js"
26
+ },
27
+ "./journal": {
28
+ "@rindle/source": "./src/journal.ts",
29
+ "types": "./dist/journal.d.ts",
30
+ "default": "./dist/journal.js"
31
+ },
32
+ "./authority": {
33
+ "@rindle/source": "./src/authority.ts",
34
+ "types": "./dist/authority.d.ts",
35
+ "default": "./dist/authority.js"
36
+ },
37
+ "./mutation-tx": {
38
+ "@rindle/source": "./src/mutation-tx.ts",
39
+ "types": "./dist/mutation-tx.d.ts",
40
+ "default": "./dist/mutation-tx.js"
41
+ }
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "src",
46
+ "pkg",
47
+ "build.sh",
48
+ "README.md"
49
+ ],
50
+ "scripts": {
51
+ "build": "tsc -p tsconfig.build.json",
52
+ "build:wasm": "./build.sh",
53
+ "typecheck": "tsc --noEmit",
54
+ "test": "node --conditions=@rindle/source test/wasm-room.e2e.mjs && node --conditions=@rindle/source test/token.e2e.mjs && node --conditions=@rindle/source test/shell.e2e.mjs && node --conditions=@rindle/source test/shell-writes.e2e.mjs && node --conditions=@rindle/source test/shell-gate.e2e.mjs && node --conditions=@rindle/source test/shell-flush.e2e.mjs",
55
+ "test:rust-daemon": "node --conditions=@rindle/source test/daemon-room.e2e.mjs && node --conditions=@rindle/source test/dual-source.e2e.mjs && node --conditions=@rindle/source test/lifecycle.e2e.mjs"
56
+ },
57
+ "dependencies": {
58
+ "ws": "^8.18.0"
59
+ },
60
+ "devDependencies": {
61
+ "@rindle/api-server": "workspace:*",
62
+ "@rindle/client": "workspace:*",
63
+ "@rindle/daemon-client": "workspace:*",
64
+ "@rindle/optimistic": "workspace:*",
65
+ "@rindle/remote": "workspace:*",
66
+ "@rindle/wasm": "workspace:*",
67
+ "@types/node": "^22.10.0",
68
+ "@types/ws": "^8.5.13",
69
+ "typescript": "^5.7.0"
70
+ }
71
+ }