@brass-build/client 0.2.0 → 0.3.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.
Files changed (83) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +16 -12
  3. package/dist/client.d.ts +1 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +28 -1
  6. package/dist/client.js.map +1 -1
  7. package/dist/document-checkpoints.d.ts +1 -0
  8. package/dist/document-checkpoints.d.ts.map +1 -1
  9. package/dist/document-checkpoints.js +27 -0
  10. package/dist/document-checkpoints.js.map +1 -1
  11. package/dist/document-signals.d.ts +31 -1
  12. package/dist/document-signals.d.ts.map +1 -1
  13. package/dist/document-signals.js +59 -0
  14. package/dist/document-signals.js.map +1 -1
  15. package/dist/document-thumbnail-capture.d.ts +20 -0
  16. package/dist/document-thumbnail-capture.d.ts.map +1 -1
  17. package/dist/document-thumbnail-capture.js +247 -9
  18. package/dist/document-thumbnail-capture.js.map +1 -1
  19. package/dist/documents-namespace.d.ts.map +1 -1
  20. package/dist/documents-namespace.js +3 -0
  21. package/dist/documents-namespace.js.map +1 -1
  22. package/dist/documents.d.ts +6 -2
  23. package/dist/documents.d.ts.map +1 -1
  24. package/dist/documents.js +110 -14
  25. package/dist/documents.js.map +1 -1
  26. package/dist/handles.d.ts.map +1 -1
  27. package/dist/handles.js +2 -2
  28. package/dist/handles.js.map +1 -1
  29. package/dist/importer.d.ts.map +1 -1
  30. package/dist/importer.js +11 -60
  31. package/dist/importer.js.map +1 -1
  32. package/dist/internal.d.ts +1 -0
  33. package/dist/internal.d.ts.map +1 -1
  34. package/dist/internal.js +1 -0
  35. package/dist/internal.js.map +1 -1
  36. package/dist/open-document.d.ts +15 -0
  37. package/dist/open-document.d.ts.map +1 -1
  38. package/dist/open-document.js +54 -1
  39. package/dist/open-document.js.map +1 -1
  40. package/dist/record-paging.d.ts +13 -14
  41. package/dist/record-paging.d.ts.map +1 -1
  42. package/dist/record-paging.js +13 -14
  43. package/dist/record-paging.js.map +1 -1
  44. package/dist/serializer.d.ts +3 -3
  45. package/dist/session-toolbar.d.ts.map +1 -1
  46. package/dist/session-toolbar.js +131 -9
  47. package/dist/session-toolbar.js.map +1 -1
  48. package/dist/version-bar.d.ts.map +1 -1
  49. package/dist/version-bar.js +23 -2
  50. package/dist/version-bar.js.map +1 -1
  51. package/dist/version.d.ts +2 -2
  52. package/dist/version.js +1 -1
  53. package/dist/when-saved.d.ts +2 -0
  54. package/dist/when-saved.d.ts.map +1 -0
  55. package/dist/when-saved.js +70 -0
  56. package/dist/when-saved.js.map +1 -0
  57. package/dist/ws-client.d.ts +4 -0
  58. package/dist/ws-client.d.ts.map +1 -1
  59. package/dist/ws-client.js +70 -1
  60. package/dist/ws-client.js.map +1 -1
  61. package/dist/ws-frame-limit.d.ts.map +1 -1
  62. package/dist/ws-frame-limit.js +9 -10
  63. package/dist/ws-frame-limit.js.map +1 -1
  64. package/docs/custom-chrome.md +4 -2
  65. package/package.json +1 -1
  66. package/src/client.ts +37 -2
  67. package/src/document-checkpoints.ts +30 -0
  68. package/src/document-signals.ts +113 -1
  69. package/src/document-thumbnail-capture.ts +253 -9
  70. package/src/documents-namespace.ts +20 -10
  71. package/src/documents.ts +120 -13
  72. package/src/handles.ts +6 -5
  73. package/src/importer.ts +11 -56
  74. package/src/internal.ts +6 -0
  75. package/src/open-document.ts +100 -1
  76. package/src/record-paging.ts +13 -14
  77. package/src/serializer.ts +3 -3
  78. package/src/session-toolbar.ts +139 -10
  79. package/src/version-bar.ts +24 -5
  80. package/src/version.ts +1 -1
  81. package/src/when-saved.ts +66 -0
  82. package/src/ws-client.ts +70 -1
  83. package/src/ws-frame-limit.ts +9 -10
@@ -1 +1 @@
1
- {"version":3,"file":"version-bar.js","sourceRoot":"","sources":["../src/version-bar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-bar.js","sourceRoot":"","sources":["../src/version-bar.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const SDK_VERSION = "0.2.0";
2
- export declare const SDK_CLIENT_ID = "sdk/0.2.0";
1
+ export declare const SDK_VERSION = "0.3.0";
2
+ export declare const SDK_CLIENT_ID = "sdk/0.3.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -3,6 +3,6 @@
3
3
  // can measure the version distribution of deployed apps and time
4
4
  // compatibility windows against it. A unit test pins this to
5
5
  // package.json's version; the release bump touches both together.
6
- export const SDK_VERSION = '0.2.0';
6
+ export const SDK_VERSION = '0.3.0';
7
7
  export const SDK_CLIENT_ID = `sdk/${SDK_VERSION}`;
8
8
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=when-saved.d.ts.map
@@ -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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AAkCA,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAQ7C,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAO/C,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAGxC,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAGjC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AA+DvD,MAAM,WAAW,gBAAgB;IAO/B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAYzD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAe7C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,aAAa;IA6EZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IA5EjC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,UAAU,CAAS;IAO3B,OAAO,CAAC,YAAY,CAAK;IAOzB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,SAAS,CAAgC;IAIjD,OAAO,CAAC,aAAa,CAAiB;IAQtC,OAAO,CAAC,iBAAiB,CAAgC;IAKzD,OAAO,CAAC,mBAAmB,CAAqB;IAGhD,OAAO,CAAC,oBAAoB,CAAS;IAQrC,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,eAAe,CAAS;IAUhC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IAMpE,OAAO,CAAC,aAAa,CAAK;IAI1B,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,cAAc,CAA6B;gBAEtB,IAAI,EAAE,eAAe;IAKlD,SAAS,CACP,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,IAAI;IAqDb,OAAO,CAAC,QAAQ;IAwChB,OAAO,CAAC,SAAS;IA2CjB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAwE1B,KAAK,IAAI,IAAI;YAoCC,eAAe;IAoG7B,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,SAAS;IA8FjB,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,MAAM;IAad,qEAAqE;IACrE,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,4CAA4C;IAC5C,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,0CAA0C;IAC1C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;CASlB"}
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`. A topic-less `{ type: 'error', reason: 'bad_message' }` is the
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);
@@ -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":"AA6BA,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"}
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"}
@@ -1,17 +1,16 @@
1
1
  // The ceilings an op can hit, measured before it is sent.
2
- //
3
- // Duplicated from the server's `frameExceedsWsLimit` / `op-blob.ts`
4
- // rather than imported: this package ships unbundled and can only import
5
- // its own relative files. The server owns the contract; these follow it.
6
- // A frame over this closes the connection, taking every other op and
7
- // presence down with it, and the reconnect re-sends the oversized frame, so
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
- const WS_FRAME_MAX_BYTES = 32 * 1024;
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 > WS_FRAME_MAX_BYTES;
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;AAC1D,EAAE;AACF,oEAAoE;AACpE,yEAAyE;AACzE,yEAAyE;AAEzE,qEAAqE;AACrE,4EAA4E;AAC5E,0EAA0E;AAC1E,iEAAiE;AACjE,0EAA0E;AAC1E,kEAAkE;AAClE,6EAA6E;AAC7E,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AAErC,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,kBAAkB,CAAC;AACnE,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"}
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"}
@@ -48,8 +48,10 @@ Each piece renders one cluster wired to `Brass.session` and returns
48
48
  - `Brass.mountPresenceRoster` renders the who's-here roster of
49
49
  coloured initials. It is the receiver half only: still publish your
50
50
  own presence state (see the README's "Presence").
51
- - `Brass.mountDriveSync` renders the drive-sync badge. It renders
52
- nothing on a non-drive doc, so it is safe to mount in any header.
51
+ - `Brass.mountDriveSync` renders the drive-sync badge: the sync state
52
+ and publish of a document linked to a drive, and the offer to publish
53
+ one its project's drive has not received yet. It carries the actions
54
+ the open document has, so it is safe in any header.
53
55
  - `Brass.mountAccountMenu` renders the account avatar menu (email, an
54
56
  Open Brass dashboard link, and sign out).
55
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brass-build/client",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Client SDK for Brass",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/client.ts CHANGED
@@ -76,6 +76,8 @@ import {
76
76
  createDocumentsNamespace,
77
77
  type DocumentsNamespace,
78
78
  type DocumentsInternalNamespace,
79
+ type PushToDriveInput,
80
+ type PushToDriveResult,
79
81
  } from './documents-namespace.js';
80
82
  import {
81
83
  createDocumentSession,
@@ -1133,6 +1135,40 @@ export class BrassClient {
1133
1135
  return null;
1134
1136
  }
1135
1137
 
1138
+ // Publish a document to a drive, supplying the bytes when the platform has
1139
+ // no writer for it.
1140
+ //
1141
+ // Where the export of this document runs in THIS app, the SDK runs the
1142
+ // registered serializer in process and the push carries its bytes, rather
1143
+ // than sending the reader through the hosted export frame. That is what
1144
+ // makes a publish from inside an app one click, and it is the same on the
1145
+ // publish that creates the drive file and on every push after it: the
1146
+ // caller's own app either writes this document or it does not.
1147
+ //
1148
+ // Everything else is the route's, including refusing bytes from an app the
1149
+ // exporter setting does not name, which it does by name rather than the
1150
+ // client predicting it.
1151
+ private async pushDocumentToDrive(
1152
+ doc: Document,
1153
+ input: PushToDriveInput,
1154
+ ): Promise<PushToDriveResult> {
1155
+ const docId = doc.id;
1156
+ if (docId === null || !doc._exportRunsHere) {
1157
+ return await this.docsInternal().pushToDrive(doc, input);
1158
+ }
1159
+ const serialized = await this.serializeForExport(docId);
1160
+ if (!serialized.ok) {
1161
+ throw new BrassError(
1162
+ `This app could not write the document out to publish it: ${serialized.message}`,
1163
+ { status: 400 },
1164
+ );
1165
+ }
1166
+ return await this.docsInternal().pushToDrive(doc, {
1167
+ ...input,
1168
+ bytes: serialized.bytes,
1169
+ });
1170
+ }
1171
+
1136
1172
  // Run the registered serializer for an export request from a hosted
1137
1173
  // surface. Resolves the doc from the open set (the active session doc is
1138
1174
  // the fallback for an app that drives it through the session), then hands
@@ -1218,8 +1254,7 @@ export class BrassClient {
1218
1254
  thumbnailUploader: (doc, image, width, height) =>
1219
1255
  docsNs.setThumbnail(doc, { image, width, height }),
1220
1256
  checkpointCreator: (doc) => docsInternal.createCheckpoint(doc),
1221
- drivePusher: (doc, input) =>
1222
- docsInternal.pushToDrive(doc, input),
1257
+ drivePusher: (doc, input) => this.pushDocumentToDrive(doc, input),
1223
1258
  sourceBlobFetcher: (doc) => docsInternal.sourceBlob(doc),
1224
1259
  hostedUiProvider: {
1225
1260
  documentHistory: (docId, options) =>
@@ -29,6 +29,9 @@ export interface CheckpointSchedulerHost {
29
29
  currentSeq(): number | null;
30
30
  // Seal the current undo step. Safe to call when undo is absent.
31
31
  sealUndoStep(): void;
32
+ // Resolve `true` once every op this client has committed locally has been
33
+ // acked; `false` when the document went, or the acks stopped arriving.
34
+ whenLocalOpsSaved(): Promise<boolean>;
32
35
  }
33
36
 
34
37
  export class CheckpointScheduler {
@@ -65,6 +68,26 @@ export class CheckpointScheduler {
65
68
  // arriving during the await start a fresh undo step rather than
66
69
  // folding into the pre-checkpoint one.
67
70
  this.host.sealUndoStep();
71
+ // The anchor is a SERVER seq, and an op the app just committed holds one
72
+ // only once it is acked, so a checkpoint sealed with writes outstanding
73
+ // sits below the work the caller is saving: an app that writes and then
74
+ // saves a version (the file importer's one-undo-step seal is this shape)
75
+ // marks a point its own edits are missing from, and restoring it loses
76
+ // them. Waiting for the acks is what makes the marker describe the state
77
+ // the caller has.
78
+ const saved = await this.host.whenLocalOpsSaved();
79
+ if (!this.host.isAttached()) {
80
+ throw new Error('Document is closed');
81
+ }
82
+ // Sealing anyway is the failure this wait exists to prevent, and it fails
83
+ // quietly: the marker looks like a saved version and restores to a state
84
+ // missing the work the caller asked to save. Refusing hands the app a
85
+ // state it can act on instead.
86
+ if (!saved) {
87
+ throw new Error(
88
+ 'createCheckpoint: the document has changes that are not saved yet',
89
+ );
90
+ }
68
91
  const result = await this._creator();
69
92
  // Record the seq so a pending auto-checkpoint at the same version
70
93
  // skips its fire. The server Put is unconditional (last-write-wins),
@@ -116,6 +139,13 @@ export class CheckpointScheduler {
116
139
  private async _fireAuto(): Promise<void> {
117
140
  if (!this.host.isAutoAllowed()) return;
118
141
  if (this._creator === null) return;
142
+ // Same anchor rule as `create`. The debounce usually outlasts the acks,
143
+ // so this ordinarily resolves at once; what it covers is a burst whose
144
+ // last ops are still draining when the timer fires. Best-effort here, so
145
+ // a seal that cannot confirm the writes skips and the next local edit
146
+ // reschedules it.
147
+ if (!(await this.host.whenLocalOpsSaved())) return;
148
+ if (!this.host.isAutoAllowed()) return;
119
149
  const seq = this.host.currentSeq();
120
150
  if (seq === null) return;
121
151
  // Already checkpointed at this exact version (manual seal a moment