@brass-build/client 0.2.0 → 0.4.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.
- package/AGENTS.md +26 -5
- package/CHANGELOG.md +61 -2
- package/README.md +247 -87
- package/dist/acting-organization.d.ts +131 -0
- package/dist/acting-organization.d.ts.map +1 -0
- package/dist/acting-organization.js +278 -0
- package/dist/acting-organization.js.map +1 -0
- package/dist/api-headers.js +7 -7
- package/dist/api-headers.js.map +1 -1
- package/dist/call-service.d.ts +74 -0
- package/dist/call-service.d.ts.map +1 -0
- package/dist/call-service.js +253 -0
- package/dist/call-service.js.map +1 -0
- package/dist/client.d.ts +29 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +583 -12
- package/dist/client.js.map +1 -1
- package/dist/document-checkpoints.d.ts +1 -0
- package/dist/document-checkpoints.d.ts.map +1 -1
- package/dist/document-checkpoints.js +27 -0
- package/dist/document-checkpoints.js.map +1 -1
- package/dist/document-contents.d.ts +15 -0
- package/dist/document-contents.d.ts.map +1 -0
- package/dist/document-contents.js +88 -0
- package/dist/document-contents.js.map +1 -0
- package/dist/document-signals.d.ts +31 -1
- package/dist/document-signals.d.ts.map +1 -1
- package/dist/document-signals.js +59 -0
- package/dist/document-signals.js.map +1 -1
- package/dist/document-streams.d.ts +4 -2
- package/dist/document-streams.d.ts.map +1 -1
- package/dist/document-streams.js +6 -0
- package/dist/document-streams.js.map +1 -1
- package/dist/document-thumbnail-capture.d.ts +20 -0
- package/dist/document-thumbnail-capture.d.ts.map +1 -1
- package/dist/document-thumbnail-capture.js +247 -9
- package/dist/document-thumbnail-capture.js.map +1 -1
- package/dist/documents-namespace.d.ts.map +1 -1
- package/dist/documents-namespace.js +3 -0
- package/dist/documents-namespace.js.map +1 -1
- package/dist/documents.d.ts +51 -3
- package/dist/documents.d.ts.map +1 -1
- package/dist/documents.js +415 -36
- package/dist/documents.js.map +1 -1
- package/dist/export-guest.d.ts.map +1 -1
- package/dist/export-guest.js +5 -0
- package/dist/export-guest.js.map +1 -1
- package/dist/handle-types.d.ts +23 -0
- package/dist/handle-types.d.ts.map +1 -1
- package/dist/handles.d.ts +1 -1
- package/dist/handles.d.ts.map +1 -1
- package/dist/handles.js +3 -3
- package/dist/handles.js.map +1 -1
- package/dist/hosted-ui.d.ts +10 -0
- package/dist/hosted-ui.d.ts.map +1 -1
- package/dist/hosted-ui.js +115 -30
- package/dist/hosted-ui.js.map +1 -1
- package/dist/importer.d.ts.map +1 -1
- package/dist/importer.js +28 -66
- package/dist/importer.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/mutate-batching.js +2 -2
- package/dist/mutate-batching.js.map +1 -1
- package/dist/open-document.d.ts +16 -1
- package/dist/open-document.d.ts.map +1 -1
- package/dist/open-document.js +123 -35
- package/dist/open-document.js.map +1 -1
- package/dist/presence.d.ts +10 -0
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js.map +1 -1
- package/dist/record-paging.d.ts +13 -14
- package/dist/record-paging.d.ts.map +1 -1
- package/dist/record-paging.js +13 -14
- package/dist/record-paging.js.map +1 -1
- package/dist/serializer.d.ts +3 -3
- package/dist/session-toolbar.d.ts +9 -0
- package/dist/session-toolbar.d.ts.map +1 -1
- package/dist/session-toolbar.js +191 -21
- package/dist/session-toolbar.js.map +1 -1
- package/dist/tail-ops.js +2 -2
- package/dist/tail-ops.js.map +1 -1
- package/dist/types.d.ts +0 -42
- package/dist/types.d.ts.map +1 -1
- package/dist/undo.d.ts +1 -1
- package/dist/undo.d.ts.map +1 -1
- package/dist/undo.js +1 -1
- package/dist/undo.js.map +1 -1
- package/dist/version-bar.d.ts.map +1 -1
- package/dist/version-bar.js +75 -4
- package/dist/version-bar.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/dist/wasm-ready-gate.d.ts +13 -0
- package/dist/wasm-ready-gate.d.ts.map +1 -0
- package/dist/wasm-ready-gate.js +28 -0
- package/dist/wasm-ready-gate.js.map +1 -0
- package/dist/wasm-runtime.browser.d.ts +11 -0
- package/dist/wasm-runtime.browser.d.ts.map +1 -0
- package/dist/wasm-runtime.browser.js +44 -0
- package/dist/wasm-runtime.browser.js.map +1 -0
- package/dist/wasm-runtime.d.ts +6 -0
- package/dist/wasm-runtime.d.ts.map +1 -0
- package/dist/wasm-runtime.js +20 -0
- package/dist/wasm-runtime.js.map +1 -0
- package/dist/when-saved.d.ts +2 -0
- package/dist/when-saved.d.ts.map +1 -0
- package/dist/when-saved.js +70 -0
- package/dist/when-saved.js.map +1 -0
- package/dist/ws-client.d.ts +4 -0
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +70 -1
- package/dist/ws-client.js.map +1 -1
- package/dist/ws-frame-limit.d.ts.map +1 -1
- package/dist/ws-frame-limit.js +9 -10
- package/dist/ws-frame-limit.js.map +1 -1
- package/docs/app-manifest.md +335 -5
- package/docs/custom-chrome.md +7 -2
- package/docs/presence.md +12 -0
- package/docs/services.md +265 -0
- package/docs/text-fields.md +191 -0
- package/package.json +4 -5
- package/src/acting-organization.ts +396 -0
- package/src/api-headers.ts +7 -7
- package/src/call-service.ts +354 -0
- package/src/client.ts +655 -15
- package/src/document-checkpoints.ts +30 -0
- package/src/document-contents.ts +104 -0
- package/src/document-signals.ts +113 -1
- package/src/document-streams.ts +15 -1
- package/src/document-thumbnail-capture.ts +253 -9
- package/src/documents-namespace.ts +20 -10
- package/src/documents.ts +460 -33
- package/src/export-guest.ts +5 -0
- package/src/handle-types.ts +35 -0
- package/src/handles.ts +7 -6
- package/src/hosted-ui.ts +155 -29
- package/src/importer.ts +28 -62
- package/src/index.ts +43 -4
- package/src/internal.ts +10 -0
- package/src/mutate-batching.ts +2 -2
- package/src/open-document.ts +179 -39
- package/src/presence.ts +6 -0
- package/src/record-paging.ts +13 -14
- package/src/serializer.ts +3 -3
- package/src/session-toolbar.ts +219 -22
- package/src/tail-ops.ts +2 -2
- package/src/types.ts +6 -4
- package/src/undo.ts +1 -1
- package/src/version-bar.ts +77 -7
- package/src/version.ts +1 -1
- package/src/wasm-ready-gate.ts +30 -0
- package/src/wasm-runtime.browser.ts +48 -0
- package/src/wasm-runtime.ts +21 -0
- package/src/when-saved.ts +66 -0
- package/src/ws-client.ts +70 -1
- package/src/ws-frame-limit.ts +9 -10
- package/dist/vite.d.ts +0 -31
- package/dist/vite.d.ts.map +0 -1
- package/dist/vite.js +0 -161
- package/dist/vite.js.map +0 -1
- package/src/vite.ts +0 -214
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// The browser half of the WASM runtime seam: the ONE module in this package
|
|
2
|
+
// that names a WASM-shipping dependency, and the only place a new one is
|
|
3
|
+
// added. Everything else imports `./wasm-runtime.js`, whose node half this
|
|
4
|
+
// one replaces in a browser build, so no other file in the SDK (and no line of
|
|
5
|
+
// an app's own config) names a WASM dep or its loader.
|
|
6
|
+
//
|
|
7
|
+
// Each entry is loaded through its package's WEB build, which readies its
|
|
8
|
+
// module asynchronously behind an explicit init and locates its bytes with
|
|
9
|
+
// `new URL(..., import.meta.url)`. That combination is what makes the whole
|
|
10
|
+
// package build with no bundler plugins: every major bundler rewrites that URL
|
|
11
|
+
// into an emitted asset on its own, and nothing here emits a top-level await,
|
|
12
|
+
// so no build target has to accept one.
|
|
13
|
+
//
|
|
14
|
+
// The alternative each package offers by default is worse in a way nothing
|
|
15
|
+
// reports. A default browser entry fetches its module with a SYNCHRONOUS
|
|
16
|
+
// XMLHttpRequest while it evaluates, so an app freezes its main thread for the
|
|
17
|
+
// whole download before it paints, whether or not anyone opens a document, and
|
|
18
|
+
// the freeze grows with the reader's latency rather than with the app. That is
|
|
19
|
+
// what a browser build resolves to unless something selects otherwise, it
|
|
20
|
+
// builds clean, and the only tell is the chunk count.
|
|
21
|
+
// The init comes from the deeper path because the package's web entry
|
|
22
|
+
// re-exports its module with `export *`, which does not carry a default, so
|
|
23
|
+
// the entry's types do not declare the init its JavaScript exports. The two
|
|
24
|
+
// specifiers resolve to the same module instance (the entry imports this
|
|
25
|
+
// file), so readying through one readies the classes taken from the other.
|
|
26
|
+
import initEngine from 'loro-crdt/web/loro_wasm.js';
|
|
27
|
+
import { createReadyGate } from './wasm-ready-gate.js';
|
|
28
|
+
export * from 'loro-crdt/web';
|
|
29
|
+
// Every WASM module this package needs ready before it runs, as the init each
|
|
30
|
+
// one exports. Add an entry rather than replacing the list: a consumer with
|
|
31
|
+
// two installed during a migration window needs both readied, and the gate
|
|
32
|
+
// below is what every caller already awaits, so a new entry costs no new call
|
|
33
|
+
// anywhere.
|
|
34
|
+
const INITS = [initEngine];
|
|
35
|
+
/**
|
|
36
|
+
* Resolve once every WASM module this package needs is ready to run.
|
|
37
|
+
*
|
|
38
|
+
* `Brass.init()` starts it and every path that constructs a document awaits
|
|
39
|
+
* it, so an app that follows the documented boot never calls it. It is
|
|
40
|
+
* idempotent and concurrent-safe for the paths that construct documents
|
|
41
|
+
* without one (a test, an in-repo tool).
|
|
42
|
+
*/
|
|
43
|
+
export const ensureWasmReady = createReadyGate(INITS);
|
|
44
|
+
//# sourceMappingURL=wasm-runtime.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-runtime.browser.js","sourceRoot":"","sources":["../src/wasm-runtime.browser.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,wCAAwC;AACxC,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,sDAAsD;AAEtD,sEAAsE;AACtE,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,OAAO,UAAU,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,eAAe,CAAC;AAE9B,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,YAAY;AACZ,MAAM,KAAK,GAAwC,CAAC,UAAU,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAwB,eAAe,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from 'loro-crdt';
|
|
2
|
+
/** Resolve once every WASM module this package needs is ready to run. Already
|
|
3
|
+
* true here: a node build readies its module during import, so the callers
|
|
4
|
+
* that await it on the browser half wait for nothing on this one. */
|
|
5
|
+
export declare function ensureWasmReady(): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=wasm-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-runtime.d.ts","sourceRoot":"","sources":["../src/wasm-runtime.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAE1B;;sEAEsE;AACtE,wBAAgB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// The node half of the WASM runtime seam. Node resolves each WASM-shipping
|
|
2
|
+
// dependency to its own node build, which readies its module as it is
|
|
3
|
+
// imported, so there is nothing to await and `ensureWasmReady` is the same
|
|
4
|
+
// call answering immediately.
|
|
5
|
+
//
|
|
6
|
+
// This is the half every importer names, so a build that applies no
|
|
7
|
+
// substitution at all (tsc, a node-targeting esbuild, the test runner) is
|
|
8
|
+
// already correct, and the browser half's `import.meta.url` asset resolution
|
|
9
|
+
// never reaches a bundler targeting node. `package.json`'s `browser` map
|
|
10
|
+
// swaps in the browser half for a bundler building this package for one, and
|
|
11
|
+
// `ensureWasmReady` exists so a caller awaits readiness the same way whichever
|
|
12
|
+
// half it got.
|
|
13
|
+
export * from 'loro-crdt';
|
|
14
|
+
/** Resolve once every WASM module this package needs is ready to run. Already
|
|
15
|
+
* true here: a node build readies its module during import, so the callers
|
|
16
|
+
* that await it on the browser half wait for nothing on this one. */
|
|
17
|
+
export function ensureWasmReady() {
|
|
18
|
+
return Promise.resolve();
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=wasm-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-runtime.js","sourceRoot":"","sources":["../src/wasm-runtime.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,sEAAsE;AACtE,2EAA2E;AAC3E,8BAA8B;AAC9B,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,eAAe;AAEf,cAAc,WAAW,CAAC;AAE1B;;sEAEsE;AACtE,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when-saved.d.ts","sourceRoot":"","sources":["../src/when-saved.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Waiting out a document's own unsaved ops.
|
|
2
|
+
//
|
|
3
|
+
// `savingCount` counts the ops this client has committed locally and the
|
|
4
|
+
// server has not acked, so a caller that needs the server to hold what the
|
|
5
|
+
// app just wrote waits on it: the import completion, and the checkpoint
|
|
6
|
+
// anchor, both of which describe a state rather than an intention.
|
|
7
|
+
// How often the wait re-checks. A closing document drops its subscribers
|
|
8
|
+
// without firing them, so this is the only thing that ends the wait for one
|
|
9
|
+
// that goes while writes are draining.
|
|
10
|
+
const SAVED_POLL_MS = 1_000;
|
|
11
|
+
// How long the OLDEST outstanding op may go unacked before the wait gives
|
|
12
|
+
// up. An op the server never received is never acked and never re-sent
|
|
13
|
+
// beyond the transport's own attempts, and `savingCount` then stays above
|
|
14
|
+
// zero for the document's life, so a wait with no bound hangs its caller
|
|
15
|
+
// forever. Read off the oldest op rather than off elapsed time, so a bulk
|
|
16
|
+
// write that takes minutes never trips it: there, every op acks promptly
|
|
17
|
+
// and the oldest is always young. Three forced-resend cycles wide (the
|
|
18
|
+
// transport forces one at 60s), so the wait outlasts the recovery it is
|
|
19
|
+
// waiting on.
|
|
20
|
+
const SAVED_STALL_MS = 180_000;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve `true` once the document has no locally-issued op waiting for its
|
|
23
|
+
* server ack; `false` when the document is no longer live, or the acks
|
|
24
|
+
* stopped arriving.
|
|
25
|
+
*
|
|
26
|
+
* `false` does not say the writes were lost, only that this wait cannot say
|
|
27
|
+
* they landed. A caller about to record something permanent against them (an
|
|
28
|
+
* import completion, a checkpoint anchor) has to stop on it.
|
|
29
|
+
*
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export function whenSaved(doc) {
|
|
33
|
+
if (doc.savingCount === 0)
|
|
34
|
+
return Promise.resolve(true);
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
let off;
|
|
37
|
+
let poll;
|
|
38
|
+
const settle = (saved) => {
|
|
39
|
+
off?.();
|
|
40
|
+
if (poll !== undefined)
|
|
41
|
+
clearInterval(poll);
|
|
42
|
+
resolve(saved);
|
|
43
|
+
};
|
|
44
|
+
try {
|
|
45
|
+
off = doc.subscribe(() => {
|
|
46
|
+
if (doc.savingCount === 0)
|
|
47
|
+
settle(true);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// The document closed, so nothing more is going to be acked.
|
|
52
|
+
resolve(false);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
poll = setInterval(() => {
|
|
56
|
+
if (doc.savingCount === 0)
|
|
57
|
+
return settle(true);
|
|
58
|
+
if (!doc._isLive)
|
|
59
|
+
return settle(false);
|
|
60
|
+
if (doc.diagnostics().oldestUnackedMs >= SAVED_STALL_MS)
|
|
61
|
+
settle(false);
|
|
62
|
+
}, SAVED_POLL_MS);
|
|
63
|
+
// Node keeps the process alive for a pending interval; this one is
|
|
64
|
+
// bookkeeping for a wait that ends on its own, so it must not.
|
|
65
|
+
poll.unref?.();
|
|
66
|
+
if (doc.savingCount === 0)
|
|
67
|
+
settle(true);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=when-saved.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when-saved.js","sourceRoot":"","sources":["../src/when-saved.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,mEAAmE;AAInE,yEAAyE;AACzE,4EAA4E;AAC5E,uCAAuC;AACvC,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,0EAA0E;AAC1E,uEAAuE;AACvE,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,uEAAuE;AACvE,wEAAwE;AACxE,cAAc;AACd,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,GAAa;IACrC,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,GAA6B,CAAC;QAClC,IAAI,IAAgD,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAQ,EAAE;YACtC,GAAG,EAAE,EAAE,CAAC;YACR,IAAI,IAAI,KAAK,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,IAAI,CAAC;YACH,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACvB,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;YAC7D,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;YACtB,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,eAAe,IAAI,cAAc;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACzE,CAAC,EAAE,aAAa,CAAC,CAAC;QAClB,mEAAmE;QACnE,+DAA+D;QAC9D,IAA+B,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3C,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/ws-client.d.ts
CHANGED
|
@@ -31,6 +31,8 @@ export declare class BrassWsClient {
|
|
|
31
31
|
private failedAttempts;
|
|
32
32
|
private reportedFailing;
|
|
33
33
|
private creditsThisSocket;
|
|
34
|
+
private lastInboundAt;
|
|
35
|
+
private silenceLimitMs;
|
|
34
36
|
private reconnectTimer;
|
|
35
37
|
private socketsOpened;
|
|
36
38
|
private outboundOverflowReported;
|
|
@@ -65,6 +67,8 @@ export declare class BrassWsClient {
|
|
|
65
67
|
private ensureLifecycleListeners;
|
|
66
68
|
private removeLifecycleListeners;
|
|
67
69
|
private startHeartbeat;
|
|
70
|
+
private socketHasGoneSilent;
|
|
71
|
+
private dropSilentSocket;
|
|
68
72
|
private stopHeartbeat;
|
|
69
73
|
private sendIfOpen;
|
|
70
74
|
private sendFrame;
|
package/dist/ws-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
package/dist/ws-client.js
CHANGED
|
@@ -17,7 +17,11 @@
|
|
|
17
17
|
// 10-minute idle timeout (only client-originated frames do), and it is the
|
|
18
18
|
// presence liveness signal (the server refreshes `last_seen` on each ping;
|
|
19
19
|
// the staleness threshold is 3 missed heartbeats). The server replies
|
|
20
|
-
// `pong`.
|
|
20
|
+
// `pong`. The same interval notices a socket that has stopped carrying
|
|
21
|
+
// anything at all (`SOCKET_SILENCE_LIMIT_MS`), since on an idle connection
|
|
22
|
+
// it is the only thing running; such a socket is retired here so the
|
|
23
|
+
// reconnect loop can replace it, because a dead path does not reliably close
|
|
24
|
+
// itself. A topic-less `{ type: 'error', reason: 'bad_message' }` is the
|
|
21
25
|
// server's catch-all rejection, so it is swallowed rather than surfaced (a
|
|
22
26
|
// deploy without the `ping` handler answers a heartbeat with it) but never
|
|
23
27
|
// counted as the connection working. Both are dropped.
|
|
@@ -64,6 +68,29 @@ const HEARTBEAT_INTERVAL_MS = 60_000;
|
|
|
64
68
|
// rather than wrong: it parks, and returning to it clears the count. A
|
|
65
69
|
// hidden page doing WORK is unaffected, because its ops draw `op_ack`.
|
|
66
70
|
const HEARTBEAT_FIRST_MS = 10_000;
|
|
71
|
+
// How long a socket may carry nothing at all before this client treats it as
|
|
72
|
+
// gone. A dead path does not always close: when a phone changes network
|
|
73
|
+
// neither end sends a FIN, so a socket that will never carry another byte
|
|
74
|
+
// still reads as OPEN, and nothing downstream notices, because the reconnect
|
|
75
|
+
// loop is driven by `close` and an op's resend goes out on the same socket.
|
|
76
|
+
// ANY inbound frame answers this, not just the `pong` the reconnect count
|
|
77
|
+
// credits: the question is whether the path still carries bytes. Two missed
|
|
78
|
+
// replies plus slack, so one dropped `pong` is not enough.
|
|
79
|
+
const SOCKET_SILENCE_LIMIT_MS = 150_000;
|
|
80
|
+
// Spread added to that limit, because the condition is SHARED: the server
|
|
81
|
+
// answers a `ping` after an awaited presence refresh and reap sweep, so its
|
|
82
|
+
// replies slow under exactly the load that makes sockets fragile, and every
|
|
83
|
+
// client goes silent at once. An unjittered threshold turns one degradation
|
|
84
|
+
// into a synchronized wave of reconnects landing on a service already
|
|
85
|
+
// shedding.
|
|
86
|
+
//
|
|
87
|
+
// Drawn PER SOCKET, not once per client. Clients that retire together
|
|
88
|
+
// reconnect together, so their next silence window is tighter than the last;
|
|
89
|
+
// a fixed per-client offset keeps its phase inside that convergence, where a
|
|
90
|
+
// fresh draw on every open scatters the schedule the wave just aligned. Two
|
|
91
|
+
// heartbeat intervals wide, since the check rides the 60s tick and a spread
|
|
92
|
+
// under one tick is quantized away.
|
|
93
|
+
const SOCKET_SILENCE_JITTER_MS = 120_000;
|
|
67
94
|
// Cap on the frames held for one topic's unacked subscribe, matching the
|
|
68
95
|
// `outboundQueue` bound. A disconnect rolls every wanted topic back to
|
|
69
96
|
// `subscribing`, so both queues hold the same kind of mid-reconnect frame
|
|
@@ -130,6 +157,14 @@ export class BrassWsClient {
|
|
|
130
157
|
// so a second outage after a recovery would go unreported for the life of
|
|
131
158
|
// the process.
|
|
132
159
|
creditsThisSocket = 0;
|
|
160
|
+
// When this socket last carried anything inbound, set on open so a socket
|
|
161
|
+
// that never speaks is measured from the moment it opened. Zero while no
|
|
162
|
+
// socket is up, which stops a silence check firing against a connection
|
|
163
|
+
// that does not exist.
|
|
164
|
+
lastInboundAt = 0;
|
|
165
|
+
// This socket's silence threshold, redrawn on every open. Held as state so
|
|
166
|
+
// one socket cannot move its own deadline every time the check looks at it.
|
|
167
|
+
silenceLimitMs = SOCKET_SILENCE_LIMIT_MS;
|
|
133
168
|
reconnectTimer = null;
|
|
134
169
|
// Sockets this client has opened. Every topic and every open document
|
|
135
170
|
// rides this one socket, so the count is a fact about the client rather
|
|
@@ -518,6 +553,9 @@ export class BrassWsClient {
|
|
|
518
553
|
this.connecting = false;
|
|
519
554
|
this.socketsOpened += 1;
|
|
520
555
|
this.creditsThisSocket = 0;
|
|
556
|
+
this.lastInboundAt = Date.now();
|
|
557
|
+
this.silenceLimitMs =
|
|
558
|
+
SOCKET_SILENCE_LIMIT_MS + Math.random() * SOCKET_SILENCE_JITTER_MS;
|
|
521
559
|
// `socket_open` per topic: re-subscribes every wanted topic (in
|
|
522
560
|
// subscription order) with a fresh retry grant, and prunes `tornDown`
|
|
523
561
|
// leftovers. Runs before the outbound drain so the server sees the
|
|
@@ -549,6 +587,9 @@ export class BrassWsClient {
|
|
|
549
587
|
}
|
|
550
588
|
}
|
|
551
589
|
onMessage(ev) {
|
|
590
|
+
// Stamped before the parse: garbage the server sent is still the server
|
|
591
|
+
// reaching us, and the path carrying bytes is the whole question.
|
|
592
|
+
this.lastInboundAt = Date.now();
|
|
552
593
|
let frame;
|
|
553
594
|
try {
|
|
554
595
|
frame = JSON.parse(typeof ev.data === 'string' ? ev.data : String(ev.data));
|
|
@@ -659,6 +700,7 @@ export class BrassWsClient {
|
|
|
659
700
|
onClose() {
|
|
660
701
|
this.stopHeartbeat();
|
|
661
702
|
this.ws = null;
|
|
703
|
+
this.lastInboundAt = 0;
|
|
662
704
|
// Held frames are tied to the connection's unacked subscribes;
|
|
663
705
|
// `socket_closed` drops them and preserves wantedness for the replay.
|
|
664
706
|
for (const topic of this.topics.keys()) {
|
|
@@ -796,12 +838,39 @@ export class BrassWsClient {
|
|
|
796
838
|
// from the cadence without a second timer to keep in step.
|
|
797
839
|
const arm = (delay) => {
|
|
798
840
|
this.heartbeatTimer = setTimeout(() => {
|
|
841
|
+
// The one thing running on an idle connection, so it is also what
|
|
842
|
+
// notices the socket stopped carrying anything.
|
|
843
|
+
if (this.socketHasGoneSilent()) {
|
|
844
|
+
this.dropSilentSocket();
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
799
847
|
this.sendIfOpen({ type: 'ping' });
|
|
800
848
|
arm(HEARTBEAT_INTERVAL_MS);
|
|
801
849
|
}, delay);
|
|
802
850
|
};
|
|
803
851
|
arm(HEARTBEAT_FIRST_MS);
|
|
804
852
|
}
|
|
853
|
+
socketHasGoneSilent() {
|
|
854
|
+
if (!this.ws || this.lastInboundAt === 0)
|
|
855
|
+
return false;
|
|
856
|
+
return Date.now() - this.lastInboundAt >= this.silenceLimitMs;
|
|
857
|
+
}
|
|
858
|
+
// Retire a socket the server has stopped answering on. `onClose` runs
|
|
859
|
+
// directly rather than being waited for: closing a dead path has nothing to
|
|
860
|
+
// complete the handshake with, so the socket can sit in CLOSING and never
|
|
861
|
+
// fire `close`, which is the state this exists to escape. Running the
|
|
862
|
+
// teardown first also lets the identity guard drop a late `close`, so the
|
|
863
|
+
// reconnect is scheduled once.
|
|
864
|
+
dropSilentSocket() {
|
|
865
|
+
const dead = this.ws;
|
|
866
|
+
this.onClose();
|
|
867
|
+
try {
|
|
868
|
+
dead?.close();
|
|
869
|
+
}
|
|
870
|
+
catch {
|
|
871
|
+
// Closing an already-dead socket is fine; the teardown already ran.
|
|
872
|
+
}
|
|
873
|
+
}
|
|
805
874
|
stopHeartbeat() {
|
|
806
875
|
if (this.heartbeatTimer) {
|
|
807
876
|
clearTimeout(this.heartbeatTimer);
|
package/dist/ws-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-frame-limit.d.ts","sourceRoot":"","sources":["../src/ws-frame-limit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ws-frame-limit.d.ts","sourceRoot":"","sources":["../src/ws-frame-limit.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG7D;AAED;uEACuE;AACvE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;uEACuE;AACvE,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpE"}
|
package/dist/ws-frame-limit.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// The ceilings an op can hit, measured before it is sent.
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// the document never saves anything. The transport also caps a message at
|
|
9
|
-
// 128 KiB, but the frame binds first in a browser: it negotiates
|
|
2
|
+
// The client's own SEND bound, deliberately smaller than the platform's
|
|
3
|
+
// 128 KiB server-push bound: the two are different limits, not one shared
|
|
4
|
+
// constant. A frame over this closes the connection, taking every other op
|
|
5
|
+
// and presence down with it, and the reconnect re-sends the oversized
|
|
6
|
+
// frame, so the document never saves anything. The transport also caps a
|
|
7
|
+
// message at 128 KiB, but the frame binds first in a browser: it negotiates
|
|
10
8
|
// `permessage-deflate` and Chromium sends a message as one frame, so what
|
|
11
9
|
// gets through depends on how the op compresses (43,264 bytes for
|
|
12
10
|
// incompressible base64, measured). Staying at the frame limit is what makes
|
|
13
11
|
// the bound independent of the content.
|
|
14
|
-
|
|
12
|
+
/** @internal Exported so a test can pin it against the server's bound. */
|
|
13
|
+
export const WS_SEND_FRAME_MAX_BYTES = 32 * 1024;
|
|
15
14
|
// Past this the blob is uploaded to storage and the write names the staged
|
|
16
15
|
// object instead of carrying it. Set by what a request body delivers
|
|
17
16
|
// (6,289,920 bytes measured), with room for the envelope and headers. Not a
|
|
@@ -32,7 +31,7 @@ export const MAX_OP_BLOB_CHARS = 8 * 1024 * 1024;
|
|
|
32
31
|
*/
|
|
33
32
|
export function opFrameExceedsWsLimit(frame) {
|
|
34
33
|
const envelopeChars = JSON.stringify({ ...frame, op_blob: '' }).length;
|
|
35
|
-
return envelopeChars + frame.op_blob.length >
|
|
34
|
+
return envelopeChars + frame.op_blob.length > WS_SEND_FRAME_MAX_BYTES;
|
|
36
35
|
}
|
|
37
36
|
/** True when the blob is too large to ride in a request body, so it is
|
|
38
37
|
* uploaded to storage first and the write names the staged object. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-frame-limit.js","sourceRoot":"","sources":["../src/ws-frame-limit.ts"],"names":[],"mappings":"AAAA,0DAA0D;
|
|
1
|
+
{"version":3,"file":"ws-frame-limit.js","sourceRoot":"","sources":["../src/ws-frame-limit.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,sEAAsE;AACtE,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,kEAAkE;AAClE,6EAA6E;AAC7E,wCAAwC;AACxC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD,2EAA2E;AAC3E,qEAAqE;AACrE,4EAA4E;AAC5E,sBAAsB;AACtB,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD,0EAA0E;AAC1E,yEAAyE;AACzE,sCAAsC;AACtC,uEAAuE;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AASjD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;IACvE,OAAO,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,uBAAuB,CAAC;AACxE,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,SAAS,CAAC,MAAM,GAAG,qBAAqB,CAAC;AAClD,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO,SAAS,CAAC,MAAM,GAAG,iBAAiB,CAAC;AAC9C,CAAC"}
|