@brass-build/client 0.4.1 → 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.
Files changed (323) hide show
  1. package/AGENTS.md +124 -45
  2. package/CHANGELOG.md +80 -4
  3. package/README.md +666 -179
  4. package/dist/api-fetch.d.ts +8 -0
  5. package/dist/api-fetch.d.ts.map +1 -1
  6. package/dist/api-fetch.js +35 -8
  7. package/dist/api-fetch.js.map +1 -1
  8. package/dist/batched-get.d.ts +11 -0
  9. package/dist/batched-get.d.ts.map +1 -0
  10. package/dist/batched-get.js +92 -0
  11. package/dist/batched-get.js.map +1 -0
  12. package/dist/call-service.d.ts +4 -0
  13. package/dist/call-service.d.ts.map +1 -1
  14. package/dist/call-service.js +66 -3
  15. package/dist/call-service.js.map +1 -1
  16. package/dist/client.d.ts +48 -2
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +918 -115
  19. package/dist/client.js.map +1 -1
  20. package/dist/document-checkpoints.d.ts +25 -2
  21. package/dist/document-checkpoints.d.ts.map +1 -1
  22. package/dist/document-checkpoints.js +258 -61
  23. package/dist/document-checkpoints.js.map +1 -1
  24. package/dist/document-commands.d.ts.map +1 -1
  25. package/dist/document-commands.js +5 -3
  26. package/dist/document-commands.js.map +1 -1
  27. package/dist/document-contents.d.ts +10 -0
  28. package/dist/document-contents.d.ts.map +1 -1
  29. package/dist/document-contents.js +23 -1
  30. package/dist/document-contents.js.map +1 -1
  31. package/dist/document-set-subscription.d.ts +56 -0
  32. package/dist/document-set-subscription.d.ts.map +1 -0
  33. package/dist/document-set-subscription.js +240 -0
  34. package/dist/document-set-subscription.js.map +1 -0
  35. package/dist/document-signals.d.ts +6 -0
  36. package/dist/document-signals.d.ts.map +1 -1
  37. package/dist/document-signals.js +31 -1
  38. package/dist/document-signals.js.map +1 -1
  39. package/dist/document-streams.d.ts +36 -2
  40. package/dist/document-streams.d.ts.map +1 -1
  41. package/dist/document-streams.js +69 -18
  42. package/dist/document-streams.js.map +1 -1
  43. package/dist/document-thumbnail-capture.d.ts +12 -2
  44. package/dist/document-thumbnail-capture.d.ts.map +1 -1
  45. package/dist/document-thumbnail-capture.js +103 -27
  46. package/dist/document-thumbnail-capture.js.map +1 -1
  47. package/dist/documents-namespace.d.ts +92 -10
  48. package/dist/documents-namespace.d.ts.map +1 -1
  49. package/dist/documents-namespace.js +285 -39
  50. package/dist/documents-namespace.js.map +1 -1
  51. package/dist/documents.d.ts +173 -8
  52. package/dist/documents.d.ts.map +1 -1
  53. package/dist/documents.js +1778 -310
  54. package/dist/documents.js.map +1 -1
  55. package/dist/errors.d.ts +3 -3
  56. package/dist/errors.d.ts.map +1 -1
  57. package/dist/errors.js.map +1 -1
  58. package/dist/fetch-retry.d.ts +1 -0
  59. package/dist/fetch-retry.d.ts.map +1 -1
  60. package/dist/fetch-retry.js +2 -0
  61. package/dist/fetch-retry.js.map +1 -1
  62. package/dist/file-choice.d.ts +2 -0
  63. package/dist/file-choice.d.ts.map +1 -0
  64. package/dist/file-choice.js +27 -0
  65. package/dist/file-choice.js.map +1 -0
  66. package/dist/guest-link.d.ts +18 -1
  67. package/dist/guest-link.d.ts.map +1 -1
  68. package/dist/guest-link.js +329 -1
  69. package/dist/guest-link.js.map +1 -1
  70. package/dist/handle-types.d.ts +67 -5
  71. package/dist/handle-types.d.ts.map +1 -1
  72. package/dist/handles.d.ts +15 -19
  73. package/dist/handles.d.ts.map +1 -1
  74. package/dist/handles.js +231 -76
  75. package/dist/handles.js.map +1 -1
  76. package/dist/hosted-ui.d.ts +61 -0
  77. package/dist/hosted-ui.d.ts.map +1 -1
  78. package/dist/hosted-ui.js +94 -42
  79. package/dist/hosted-ui.js.map +1 -1
  80. package/dist/import-contract.d.ts +74 -0
  81. package/dist/import-contract.d.ts.map +1 -0
  82. package/dist/import-contract.js +163 -0
  83. package/dist/import-contract.js.map +1 -0
  84. package/dist/import-guest.d.ts +9 -0
  85. package/dist/import-guest.d.ts.map +1 -0
  86. package/dist/import-guest.js +155 -0
  87. package/dist/import-guest.js.map +1 -0
  88. package/dist/import-report.d.ts +17 -0
  89. package/dist/import-report.d.ts.map +1 -0
  90. package/dist/import-report.js +7 -0
  91. package/dist/import-report.js.map +1 -0
  92. package/dist/importer-wait.d.ts +2 -0
  93. package/dist/importer-wait.d.ts.map +1 -0
  94. package/dist/importer-wait.js +5 -0
  95. package/dist/importer-wait.js.map +1 -0
  96. package/dist/importer.d.ts +18 -4
  97. package/dist/importer.d.ts.map +1 -1
  98. package/dist/importer.js +322 -105
  99. package/dist/importer.js.map +1 -1
  100. package/dist/in-development.d.ts +2 -0
  101. package/dist/in-development.d.ts.map +1 -0
  102. package/dist/in-development.js +10 -0
  103. package/dist/in-development.js.map +1 -0
  104. package/dist/index.d.ts +16 -8
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +24 -8
  107. package/dist/index.js.map +1 -1
  108. package/dist/init-keys.d.ts +1 -1
  109. package/dist/init-keys.d.ts.map +1 -1
  110. package/dist/init-keys.js +6 -1
  111. package/dist/init-keys.js.map +1 -1
  112. package/dist/input-documents.d.ts +67 -0
  113. package/dist/input-documents.d.ts.map +1 -0
  114. package/dist/input-documents.js +693 -0
  115. package/dist/input-documents.js.map +1 -0
  116. package/dist/inputs-status.d.ts +80 -0
  117. package/dist/inputs-status.d.ts.map +1 -0
  118. package/dist/inputs-status.js +460 -0
  119. package/dist/inputs-status.js.map +1 -0
  120. package/dist/inputs.d.ts +2 -0
  121. package/dist/inputs.d.ts.map +1 -0
  122. package/dist/inputs.js +793 -0
  123. package/dist/inputs.js.map +1 -0
  124. package/dist/internal.d.ts +6 -1
  125. package/dist/internal.d.ts.map +1 -1
  126. package/dist/internal.js +4 -1
  127. package/dist/internal.js.map +1 -1
  128. package/dist/join-content.d.ts +33 -0
  129. package/dist/join-content.d.ts.map +1 -0
  130. package/dist/join-content.js +114 -0
  131. package/dist/join-content.js.map +1 -0
  132. package/dist/join-stamp.d.ts +3 -0
  133. package/dist/join-stamp.d.ts.map +1 -0
  134. package/dist/join-stamp.js +12 -0
  135. package/dist/join-stamp.js.map +1 -0
  136. package/dist/manifest-drift.d.ts +9 -0
  137. package/dist/manifest-drift.d.ts.map +1 -0
  138. package/dist/manifest-drift.js +46 -0
  139. package/dist/manifest-drift.js.map +1 -0
  140. package/dist/open-document.d.ts +109 -2
  141. package/dist/open-document.d.ts.map +1 -1
  142. package/dist/open-document.js +1822 -811
  143. package/dist/open-document.js.map +1 -1
  144. package/dist/page-restore.d.ts +12 -0
  145. package/dist/page-restore.d.ts.map +1 -0
  146. package/dist/page-restore.js +23 -0
  147. package/dist/page-restore.js.map +1 -0
  148. package/dist/placement.d.ts +13 -0
  149. package/dist/placement.d.ts.map +1 -0
  150. package/dist/placement.js +34 -0
  151. package/dist/placement.js.map +1 -0
  152. package/dist/presence.d.ts +1 -0
  153. package/dist/presence.d.ts.map +1 -1
  154. package/dist/presence.js +16 -4
  155. package/dist/presence.js.map +1 -1
  156. package/dist/read-only-document.d.ts +87 -0
  157. package/dist/read-only-document.d.ts.map +1 -0
  158. package/dist/read-only-document.js +4 -0
  159. package/dist/read-only-document.js.map +1 -0
  160. package/dist/record-paging.d.ts +63 -6
  161. package/dist/record-paging.d.ts.map +1 -1
  162. package/dist/record-paging.js +122 -29
  163. package/dist/record-paging.js.map +1 -1
  164. package/dist/references.d.ts +40 -0
  165. package/dist/references.d.ts.map +1 -0
  166. package/dist/references.js +135 -0
  167. package/dist/references.js.map +1 -0
  168. package/dist/request-lane.d.ts +5 -0
  169. package/dist/request-lane.d.ts.map +1 -0
  170. package/dist/request-lane.js +48 -0
  171. package/dist/request-lane.js.map +1 -0
  172. package/dist/sealed-arrow.d.ts +170 -0
  173. package/dist/sealed-arrow.d.ts.map +1 -0
  174. package/dist/sealed-arrow.js +769 -0
  175. package/dist/sealed-arrow.js.map +1 -0
  176. package/dist/sealed-cache.d.ts +21 -0
  177. package/dist/sealed-cache.d.ts.map +1 -0
  178. package/dist/sealed-cache.js +247 -0
  179. package/dist/sealed-cache.js.map +1 -0
  180. package/dist/sealed-encode.d.ts +87 -0
  181. package/dist/sealed-encode.d.ts.map +1 -0
  182. package/dist/sealed-encode.js +876 -0
  183. package/dist/sealed-encode.js.map +1 -0
  184. package/dist/sealed-handles.d.ts +45 -0
  185. package/dist/sealed-handles.d.ts.map +1 -0
  186. package/dist/sealed-handles.js +408 -0
  187. package/dist/sealed-handles.js.map +1 -0
  188. package/dist/sealed-store.d.ts +242 -0
  189. package/dist/sealed-store.d.ts.map +1 -0
  190. package/dist/sealed-store.js +1155 -0
  191. package/dist/sealed-store.js.map +1 -0
  192. package/dist/serializer.d.ts +6 -15
  193. package/dist/serializer.d.ts.map +1 -1
  194. package/dist/session-toolbar.d.ts +20 -5
  195. package/dist/session-toolbar.d.ts.map +1 -1
  196. package/dist/session-toolbar.js +419 -67
  197. package/dist/session-toolbar.js.map +1 -1
  198. package/dist/session.d.ts +38 -1
  199. package/dist/session.d.ts.map +1 -1
  200. package/dist/session.js +562 -79
  201. package/dist/session.js.map +1 -1
  202. package/dist/sha256.d.ts +3 -0
  203. package/dist/sha256.d.ts.map +1 -0
  204. package/dist/sha256.js +74 -0
  205. package/dist/sha256.js.map +1 -0
  206. package/dist/stable-handles.d.ts +19 -0
  207. package/dist/stable-handles.d.ts.map +1 -0
  208. package/dist/stable-handles.js +193 -0
  209. package/dist/stable-handles.js.map +1 -0
  210. package/dist/staged-seal.d.ts +2 -0
  211. package/dist/staged-seal.d.ts.map +1 -0
  212. package/dist/staged-seal.js +76 -0
  213. package/dist/staged-seal.js.map +1 -0
  214. package/dist/subscriber-delivery.d.ts +8 -0
  215. package/dist/subscriber-delivery.d.ts.map +1 -0
  216. package/dist/subscriber-delivery.js +31 -0
  217. package/dist/subscriber-delivery.js.map +1 -0
  218. package/dist/tail-op-import.d.ts +10 -0
  219. package/dist/tail-op-import.d.ts.map +1 -0
  220. package/dist/tail-op-import.js +33 -0
  221. package/dist/tail-op-import.js.map +1 -0
  222. package/dist/topic-lifecycle.d.ts +6 -0
  223. package/dist/topic-lifecycle.d.ts.map +1 -1
  224. package/dist/topic-lifecycle.js +32 -2
  225. package/dist/topic-lifecycle.js.map +1 -1
  226. package/dist/trial-replace-dialog.d.ts +10 -0
  227. package/dist/trial-replace-dialog.d.ts.map +1 -0
  228. package/dist/trial-replace-dialog.js +153 -0
  229. package/dist/trial-replace-dialog.js.map +1 -0
  230. package/dist/types.d.ts +8 -1
  231. package/dist/types.d.ts.map +1 -1
  232. package/dist/undo.d.ts +60 -5
  233. package/dist/undo.d.ts.map +1 -1
  234. package/dist/undo.js +344 -75
  235. package/dist/undo.js.map +1 -1
  236. package/dist/version-bar.d.ts +1 -0
  237. package/dist/version-bar.d.ts.map +1 -1
  238. package/dist/version-bar.js +2 -1
  239. package/dist/version-bar.js.map +1 -1
  240. package/dist/version.d.ts +2 -2
  241. package/dist/version.js +1 -1
  242. package/dist/ws-client.d.ts +21 -0
  243. package/dist/ws-client.d.ts.map +1 -1
  244. package/dist/ws-client.js +192 -8
  245. package/dist/ws-client.js.map +1 -1
  246. package/dist/ws-frame-limit.d.ts +1 -0
  247. package/dist/ws-frame-limit.d.ts.map +1 -1
  248. package/dist/ws-frame-limit.js.map +1 -1
  249. package/docs/app-manifest.md +121 -17
  250. package/docs/custom-chrome.md +24 -16
  251. package/docs/hosted-ui-advanced.md +38 -6
  252. package/docs/imported-documents.md +104 -51
  253. package/docs/presence.md +16 -4
  254. package/docs/schemas.md +8 -5
  255. package/docs/services.md +6 -6
  256. package/docs/streams.md +139 -150
  257. package/docs/text-fields.md +26 -19
  258. package/package.json +5 -2
  259. package/src/api-fetch.ts +53 -3
  260. package/src/auth-flow.ts +1 -1
  261. package/src/batched-get.ts +117 -0
  262. package/src/call-service.ts +78 -3
  263. package/src/client.ts +1022 -112
  264. package/src/document-checkpoints.ts +307 -65
  265. package/src/document-commands.ts +5 -5
  266. package/src/document-contents.ts +27 -1
  267. package/src/document-set-subscription.ts +274 -0
  268. package/src/document-signals.ts +47 -5
  269. package/src/document-streams.ts +85 -16
  270. package/src/document-thumbnail-capture.ts +118 -32
  271. package/src/documents-namespace.ts +539 -84
  272. package/src/documents.ts +2017 -348
  273. package/src/errors.ts +17 -6
  274. package/src/fetch-retry.ts +5 -0
  275. package/src/file-choice.ts +26 -0
  276. package/src/guest-link.ts +362 -1
  277. package/src/handle-types.ts +73 -47
  278. package/src/handles.ts +253 -83
  279. package/src/hosted-ui.ts +211 -50
  280. package/src/import-contract.ts +227 -0
  281. package/src/import-guest.ts +193 -0
  282. package/src/import-report.ts +24 -0
  283. package/src/importer-wait.ts +4 -0
  284. package/src/importer.ts +386 -131
  285. package/src/in-development.ts +10 -0
  286. package/src/index.ts +76 -16
  287. package/src/init-keys.ts +6 -1
  288. package/src/input-documents.ts +819 -0
  289. package/src/inputs-status.ts +598 -0
  290. package/src/inputs.ts +1090 -0
  291. package/src/internal.ts +7 -0
  292. package/src/join-content.ts +135 -0
  293. package/src/join-stamp.ts +12 -0
  294. package/src/manifest-drift.ts +54 -0
  295. package/src/open-document.ts +2346 -930
  296. package/src/page-restore.ts +38 -0
  297. package/src/placement.ts +54 -0
  298. package/src/presence.ts +21 -5
  299. package/src/read-only-document.ts +133 -0
  300. package/src/record-paging.ts +147 -25
  301. package/src/references.ts +207 -0
  302. package/src/request-lane.ts +59 -0
  303. package/src/sealed-arrow.ts +843 -0
  304. package/src/sealed-cache.ts +267 -0
  305. package/src/sealed-encode.ts +1015 -0
  306. package/src/sealed-handles.ts +486 -0
  307. package/src/sealed-store.ts +1330 -0
  308. package/src/serializer.ts +8 -20
  309. package/src/session-toolbar.ts +463 -72
  310. package/src/session.ts +740 -99
  311. package/src/sha256.ts +65 -0
  312. package/src/stable-handles.ts +235 -0
  313. package/src/staged-seal.ts +90 -0
  314. package/src/subscriber-delivery.ts +37 -0
  315. package/src/tail-op-import.ts +30 -0
  316. package/src/topic-lifecycle.ts +38 -2
  317. package/src/trial-replace-dialog.ts +163 -0
  318. package/src/types.ts +6 -6
  319. package/src/undo.ts +386 -73
  320. package/src/version-bar.ts +5 -1
  321. package/src/version.ts +1 -1
  322. package/src/ws-client.ts +208 -16
  323. package/src/ws-frame-limit.ts +1 -0
@@ -3,68 +3,100 @@
3
3
  // burst of local edits settles. Both also seal the undo step, unifying
4
4
  // "checkpoint" and "undo boundary": a deliberate save, an auto-seal on
5
5
  // idle, and a modeler's pointerUp all produce the same Ctrl-Z boundary.
6
+ //
7
+ // The undo seal happens on every call. One writer serves both paths and
8
+ // writes a marker per call; calls made while a write is in flight share the
9
+ // next one, anchored at the state when it writes, which holds every call it
10
+ // covers. So an app can call `createCheckpoint` at the end of every user
11
+ // action without waiting on the network or handling a refusal.
6
12
  // Default auto-checkpoint debounce: sealed this long after the last
7
13
  // local edit, so every app gets a version-history timeline without
8
- // writing checkpoint code. 60s balances "user reaches a natural pause"
9
- // against snapshot-blob churn. Override or disable (0) via
14
+ // writing checkpoint code. Override or disable (0) via
10
15
  // `doc.setAutoCheckpointIntervalMs(...)`.
11
16
  const AUTO_CHECKPOINT_DEFAULT_MS = 60_000;
17
+ // Retry delay after a failed write, doubling per consecutive failure up to
18
+ // the ceiling. Calls made meanwhile join the retried write.
19
+ export const RETRY_BASE_MS = 5_000;
20
+ const RETRY_CEILING_MS = 10 * 60_000;
21
+ // A refusal the next attempt may not meet: a network failure, a timeout, a
22
+ // rate limit, or a server fault. Anything else (no edit access, a missing
23
+ // document) answers the same way however often it is asked.
24
+ function isRetryable(err) {
25
+ const status = err?.status;
26
+ if (typeof status !== 'number')
27
+ return true;
28
+ return status === 408 || status === 429 || status >= 500;
29
+ }
30
+ function rejectAll(waiters, err) {
31
+ for (const w of waiters)
32
+ w.reject(err);
33
+ }
34
+ function resolveAll(waiters, checkpoint) {
35
+ for (const w of waiters)
36
+ w.resolve(checkpoint);
37
+ }
12
38
  export class CheckpointScheduler {
13
39
  host;
14
40
  // Injected checkpoint-create hook (the Document owns no HTTP client).
15
- // `null` on offline / test paths; a manual `create` then throws.
41
+ // `null` on offline / test paths; a manual `create` then rejects.
16
42
  _creator = null;
17
- // Debounce timer + bookkeeping. `_autoIntervalMs === 0` disables it;
18
- // `_lastSeq` skips a fire that would clobber a manual checkpoint at
19
- // the same seq.
43
+ // Debounce timer. `_autoIntervalMs === 0` disables it.
20
44
  _autoTimer = null;
21
45
  _autoIntervalMs = AUTO_CHECKPOINT_DEFAULT_MS;
22
- _lastSeq = null;
46
+ // Calls waiting for the next marker, and whether the debounce wants one.
47
+ _waiters = [];
48
+ _autoWanted = false;
49
+ // The frame the newest request took, which becomes the picture of the
50
+ // marker that covers it. Taken with the batch, like the waiters.
51
+ _frame = null;
52
+ // The newest marker written, so a write at the same seq resolves to it
53
+ // instead of writing again. The server Put is last-write-wins, so a
54
+ // second write there would only replace one entry with an identical one.
55
+ _last = null;
56
+ // Earliest time the next write may start, and the timer that starts it.
57
+ _nextWriteAt = 0;
58
+ _flushTimer = null;
59
+ _flushing = false;
60
+ _failures = 0;
61
+ // Bumped when the Document detaches, so a write in progress across a close
62
+ // stops touching the queue the close already settled.
63
+ _epoch = 0;
23
64
  constructor(host) {
24
65
  this.host = host;
25
66
  }
26
67
  setCreator(creator) {
27
68
  this._creator = creator;
28
69
  }
29
- // Seal a checkpoint anchored to `host.currentSeq()`.
30
- async create() {
70
+ // Seal the undo step now and resolve to the marker that covers this call.
71
+ create() {
31
72
  if (!this.host.isAttached()) {
32
- throw new Error('Document is closed');
73
+ return Promise.reject(new Error('Document is closed'));
33
74
  }
34
75
  if (this.host.docId() === null) {
35
- throw new Error('createCheckpoint: Document has no server identity');
76
+ return Promise.reject(new Error('createCheckpoint: Document has no server identity'));
36
77
  }
37
78
  if (this._creator === null) {
38
- throw new Error('createCheckpoint: no creator attached. Opened via the SDK factory?');
79
+ return Promise.reject(new Error('createCheckpoint: no creator attached. Opened via the SDK factory?'));
39
80
  }
40
- // Seal BEFORE the round-trip: the seal is synchronous, so mutates
41
- // arriving during the await start a fresh undo step rather than
42
- // folding into the pre-checkpoint one.
81
+ // Synchronous, so a mutate after this call starts the next undo step
82
+ // however long the marker takes.
43
83
  this.host.sealUndoStep();
44
- // The anchor is a SERVER seq, and an op the app just committed holds one
45
- // only once it is acked, so a checkpoint sealed with writes outstanding
46
- // sits below the work the caller is saving: an app that writes and then
47
- // saves a version (the file importer's one-undo-step seal is this shape)
48
- // marks a point its own edits are missing from, and restoring it loses
49
- // them. Waiting for the acks is what makes the marker describe the state
50
- // the caller has.
51
- const saved = await this.host.whenLocalOpsSaved();
52
- if (!this.host.isAttached()) {
53
- throw new Error('Document is closed');
54
- }
55
- // Sealing anyway is the failure this wait exists to prevent, and it fails
56
- // quietly: the marker looks like a saved version and restores to a state
57
- // missing the work the caller asked to save. Refusing hands the app a
58
- // state it can act on instead.
59
- if (!saved) {
60
- throw new Error('createCheckpoint: the document has changes that are not saved yet');
61
- }
62
- const result = await this._creator();
63
- // Record the seq so a pending auto-checkpoint at the same version
64
- // skips its fire. The server Put is unconditional (last-write-wins),
65
- // so without this an idle period right after a manual save would
66
- // replace the manual entry with an auto one.
67
- this._lastSeq = result.version;
84
+ // Nothing since the newest marker: it already restores this state.
85
+ const last = this._last;
86
+ if (last !== null &&
87
+ !this.host.hasUnsavedOps() &&
88
+ last.version === this.host.currentSeq()) {
89
+ return Promise.resolve(last);
90
+ }
91
+ this._frame = this.host.captureFrame();
92
+ const result = new Promise((resolve, reject) => {
93
+ this._waiters.push({ resolve, reject });
94
+ });
95
+ // Apps call this at the end of every action without awaiting it. A
96
+ // rejection still reaches a caller that awaits; one that does not is not
97
+ // reported as unhandled.
98
+ result.catch(() => { });
99
+ this._schedule();
68
100
  return result;
69
101
  }
70
102
  // Configure the auto-checkpoint debounce; `0` disables. Returns the
@@ -95,48 +127,213 @@ export class CheckpointScheduler {
95
127
  }
96
128
  this._autoTimer = setTimeout(() => {
97
129
  this._autoTimer = null;
98
- void this._fireAuto();
130
+ this._fireAuto();
99
131
  }, this._autoIntervalMs);
100
132
  }
101
- // Cancel a pending auto-checkpoint (suspend / close).
133
+ // Cancel a pending auto-checkpoint.
102
134
  cancelAuto() {
103
135
  if (this._autoTimer !== null) {
104
136
  clearTimeout(this._autoTimer);
105
137
  this._autoTimer = null;
106
138
  }
107
139
  }
108
- async _fireAuto() {
140
+ // The Document is closing or being parked. Calls still waiting get one
141
+ // marker now, outside the spacing, when every local op is acked; otherwise
142
+ // they reject, since no marker can cover writes the server does not have.
143
+ // Must run while the host still answers `currentSeq`.
144
+ detach() {
145
+ this.cancelAuto();
146
+ if (this._flushTimer !== null) {
147
+ clearTimeout(this._flushTimer);
148
+ this._flushTimer = null;
149
+ }
150
+ this._epoch += 1;
151
+ this._flushing = false;
152
+ this._autoWanted = false;
153
+ const batch = this._waiters;
154
+ this._waiters = [];
155
+ const frame = this._frame;
156
+ this._frame = null;
157
+ if (batch.length === 0)
158
+ return;
159
+ const seq = this.host.currentSeq();
160
+ const creator = this._creator;
161
+ if (creator === null || seq === null || this.host.hasUnsavedOps()) {
162
+ rejectAll(batch, new Error('Document is closed'));
163
+ return;
164
+ }
165
+ if (this._last !== null && this._last.version === seq) {
166
+ resolveAll(batch, this._last);
167
+ return;
168
+ }
169
+ creator({ version: seq }).then((checkpoint) => {
170
+ this._last = checkpoint;
171
+ this._picture(frame, checkpoint.version);
172
+ resolveAll(batch, checkpoint);
173
+ }, (err) => rejectAll(batch, err));
174
+ }
175
+ _fireAuto() {
109
176
  if (!this.host.isAutoAllowed())
110
177
  return;
111
178
  if (this._creator === null)
112
179
  return;
113
- // Same anchor rule as `create`. The debounce usually outlasts the acks,
114
- // so this ordinarily resolves at once; what it covers is a burst whose
115
- // last ops are still draining when the timer fires. Best-effort here, so
116
- // a seal that cannot confirm the writes skips and the next local edit
117
- // reschedules it.
118
- if (!(await this.host.whenLocalOpsSaved()))
180
+ // Seal undo now so the user gets the Ctrl-Z boundary at their idle
181
+ // point whether or not a marker is written. An edit to another stream
182
+ // of the document leaves `currentSeq` where it was, so the check below
183
+ // can skip the marker after such an edit, and the step still seals.
184
+ this.host.sealUndoStep();
185
+ // Already marked at this exact version with nothing local outstanding:
186
+ // the newest marker already restores this state.
187
+ if (!this.host.hasUnsavedOps() &&
188
+ this._last !== null &&
189
+ this._last.version === this.host.currentSeq()) {
190
+ return;
191
+ }
192
+ this._frame = this.host.captureFrame();
193
+ this._autoWanted = true;
194
+ this._schedule();
195
+ }
196
+ _wanted() {
197
+ return this._waiters.length > 0 || this._autoWanted;
198
+ }
199
+ _schedule() {
200
+ if (this._flushing || this._flushTimer !== null)
119
201
  return;
120
- if (!this.host.isAutoAllowed())
202
+ if (!this._wanted())
121
203
  return;
204
+ const wait = this._nextWriteAt - Date.now();
205
+ if (wait <= 0) {
206
+ // Calls made in the same task still join: the write takes its batch
207
+ // only after awaiting the acks.
208
+ void this._flush();
209
+ return;
210
+ }
211
+ this._flushTimer = setTimeout(() => {
212
+ this._flushTimer = null;
213
+ void this._flush();
214
+ }, wait);
215
+ }
216
+ _noteFailure() {
217
+ this._failures += 1;
218
+ const delay = Math.min(RETRY_BASE_MS * 2 ** (this._failures - 1), RETRY_CEILING_MS);
219
+ this._nextWriteAt = Date.now() + delay;
220
+ }
221
+ async _flush() {
222
+ if (!this._wanted())
223
+ return;
224
+ const epoch = this._epoch;
225
+ this._flushing = true;
226
+ try {
227
+ await this._write(epoch);
228
+ }
229
+ finally {
230
+ if (epoch === this._epoch) {
231
+ this._flushing = false;
232
+ this._schedule();
233
+ }
234
+ }
235
+ }
236
+ async _write(epoch) {
237
+ // The anchor is a SERVER seq, and an op the app just committed holds one
238
+ // only once it is acked, so a marker written with writes outstanding
239
+ // would sit below the work the calls it covers are saving, and restoring
240
+ // it would lose them. Wait for the acks, then confirm synchronously that
241
+ // nothing was committed between the wait ending and the anchor being
242
+ // read.
243
+ for (;;) {
244
+ const saved = await this.host.whenLocalOpsSaved();
245
+ if (epoch !== this._epoch)
246
+ return;
247
+ if (!saved) {
248
+ // Writing anyway would produce a marker that looks like a saved
249
+ // version and restores to a state missing the work. The calls it
250
+ // would have covered are told instead; the debounce retries on the
251
+ // next local edit.
252
+ const batch = this._waiters;
253
+ this._waiters = [];
254
+ this._autoWanted = false;
255
+ this._frame = null;
256
+ this._noteFailure();
257
+ rejectAll(batch, new Error('createCheckpoint: the document has changes that are not saved yet'));
258
+ return;
259
+ }
260
+ if (!this.host.hasUnsavedOps())
261
+ break;
262
+ }
122
263
  const seq = this.host.currentSeq();
123
- if (seq === null)
264
+ const creator = this._creator;
265
+ if (creator === null || seq === null) {
266
+ const batch = this._waiters;
267
+ this._waiters = [];
268
+ this._autoWanted = false;
269
+ this._frame = null;
270
+ rejectAll(batch, new Error(creator === null
271
+ ? 'createCheckpoint: no creator attached'
272
+ : 'createCheckpoint: the document has no resolved version yet'));
124
273
  return;
125
- // Already checkpointed at this exact version (manual seal a moment
126
- // ago).
127
- if (this._lastSeq === seq)
274
+ }
275
+ if (this._autoWanted && this._waiters.length === 0) {
276
+ // An auto marker alone is dropped once the document has moved into a
277
+ // history checkout.
278
+ if (!this.host.isAutoAllowed()) {
279
+ this._autoWanted = false;
280
+ return;
281
+ }
282
+ }
283
+ // Every call queued up to this point is covered by a marker at `seq`;
284
+ // a call after it waits for the next one.
285
+ const batch = this._waiters;
286
+ const autoOnly = batch.length === 0;
287
+ this._waiters = [];
288
+ this._autoWanted = false;
289
+ const frame = this._frame;
290
+ this._frame = null;
291
+ if (this._last !== null && this._last.version === seq) {
292
+ resolveAll(batch, this._last);
128
293
  return;
129
- // Seal undo before the write so the user gets the Ctrl-Z boundary at
130
- // their idle point even if the server write below fails.
131
- this.host.sealUndoStep();
294
+ }
295
+ let checkpoint;
132
296
  try {
133
- const result = await this._creator();
134
- this._lastSeq = result.version;
297
+ checkpoint = await creator({ version: seq });
135
298
  }
136
- catch {
137
- // Best-effort: a rejection (rate limit, no write access, network)
138
- // is swallowed; the next local edit reschedules.
299
+ catch (err) {
300
+ if (epoch !== this._epoch) {
301
+ rejectAll(batch, new Error('Document is closed'));
302
+ return;
303
+ }
304
+ this._noteFailure();
305
+ // An auto marker is best-effort, and the next local edit asks again.
306
+ if (autoOnly)
307
+ return;
308
+ if (isRetryable(err)) {
309
+ // Still owed a marker: the next write covers these calls too, and
310
+ // takes this frame unless a newer call has taken one since.
311
+ this._waiters = batch.concat(this._waiters);
312
+ this._frame ??= frame;
313
+ }
314
+ else {
315
+ rejectAll(batch, err);
316
+ }
317
+ return;
318
+ }
319
+ this._failures = 0;
320
+ if (this._last === null || checkpoint.version >= this._last.version) {
321
+ this._last = checkpoint;
139
322
  }
323
+ this._picture(frame, checkpoint.version);
324
+ resolveAll(batch, checkpoint);
325
+ }
326
+ // Upload the frame the newest covered call took as the marker's picture,
327
+ // under the marker's own version, so the history pairs each entry with a
328
+ // picture of exactly that state. Best-effort: a marker without one keeps
329
+ // the picture the debounced capture leaves.
330
+ _picture(frame, version) {
331
+ if (frame === null)
332
+ return;
333
+ void frame.then((taken) => {
334
+ if (taken !== null)
335
+ this.host.uploadFrame(taken, version);
336
+ });
140
337
  }
141
338
  }
142
339
  //# sourceMappingURL=document-checkpoints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document-checkpoints.js","sourceRoot":"","sources":["../src/document-checkpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-checkpoints.js","sourceRoot":"","sources":["../src/document-checkpoints.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document-commands.d.ts","sourceRoot":"","sources":["../src/document-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-commands.d.ts","sourceRoot":"","sources":["../src/document-commands.ts"],"names":[],"mappings":"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"}
@@ -218,7 +218,6 @@ export class CommandMenu {
218
218
  if (this._builtinCommands !== null)
219
219
  return this._builtinCommands;
220
220
  const hasHostedUi = () => this._hostedUi !== null;
221
- const editable = () => !this.host.readOnly() && this.host.isLive();
222
221
  const list = [
223
222
  this._buildCommand('history', DOC_COMMAND_LABELS.history, 'document', DOC_COMMAND_SURFACES.history, hasHostedUi, async () => {
224
223
  const hosted = this._hostedUi;
@@ -292,10 +291,13 @@ export class CommandMenu {
292
291
  this.host.setName(newName);
293
292
  }
294
293
  }),
295
- this._buildCommand('undo', DOC_COMMAND_LABELS.undo, 'edit', DOC_COMMAND_SURFACES.undo, () => editable() && this.host.canUndo(), () => {
294
+ this._buildCommand('undo', DOC_COMMAND_LABELS.undo, 'edit', DOC_COMMAND_SURFACES.undo,
295
+ // `canUndo` carries the read-only gate per stream: the document can
296
+ // be read-only while a stream of it takes writes and holds the step.
297
+ () => this.host.isLive() && this.host.canUndo(), () => {
296
298
  this.host.undo();
297
299
  }),
298
- this._buildCommand('redo', DOC_COMMAND_LABELS.redo, 'edit', DOC_COMMAND_SURFACES.redo, () => editable() && this.host.canRedo(), () => {
300
+ this._buildCommand('redo', DOC_COMMAND_LABELS.redo, 'edit', DOC_COMMAND_SURFACES.redo, () => this.host.isLive() && this.host.canRedo(), () => {
299
301
  this.host.redo();
300
302
  }),
301
303
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"document-commands.js","sourceRoot":"","sources":["../src/document-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-commands.js","sourceRoot":"","sources":["../src/document-commands.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { JoinContent } from './join-content.js';
1
2
  /** A document's root containers, each read whole, keyed as the document
2
3
  * keys them. A map root reads back as the object an app sees through
3
4
  * `doc.map(key)`, a list as its items, a text root as its string. The JSON
@@ -12,4 +13,13 @@ export type DocumentContents = Record<string, unknown>;
12
13
  * and presigned entries are resolved to bytes.
13
14
  */
14
15
  export declare function readDocumentContents(snapshot: Uint8Array | null, ops: readonly Uint8Array[]): DocumentContents;
16
+ /**
17
+ * Read every root of a join's decoded content.
18
+ *
19
+ * Frozen content is read as it stands, with no CRDT engine: it carries no tail
20
+ * (the conversion that would give it one is the platform's). CRDT content and
21
+ * a document with no snapshot are materialised with `ops`, as
22
+ * `readDocumentContents` does.
23
+ */
24
+ export declare function readJoinContents(content: JoinContent, ops: readonly Uint8Array[]): DocumentContents;
15
25
  //# sourceMappingURL=document-contents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document-contents.d.ts","sourceRoot":"","sources":["../src/document-contents.ts"],"names":[],"mappings":"AAmCA;;;0EAG0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,GAAG,IAAI,EAC3B,GAAG,EAAE,SAAS,UAAU,EAAE,GACzB,gBAAgB,CAKlB"}
1
+ {"version":3,"file":"document-contents.d.ts","sourceRoot":"","sources":["../src/document-contents.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD;;;0EAG0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,GAAG,IAAI,EAC3B,GAAG,EAAE,SAAS,UAAU,EAAE,GACzB,gBAAgB,CAKlB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,SAAS,UAAU,EAAE,GACzB,gBAAgB,CAQlB"}
@@ -25,6 +25,8 @@
25
25
  // and not `ensureWasmReady`: its caller holds the bytes already, which means
26
26
  // something upstream has opened a document and readied the runtime.
27
27
  import { LoroDoc } from './wasm-runtime.js';
28
+ import { isReservedRootName } from './references.js';
29
+ import { importTailOp } from './tail-op-import.js';
28
30
  import { META_KEY, flattenPagedLookup, isPagedMarker, pagedRootKey, } from './record-paging.js';
29
31
  /**
30
32
  * Materialise a document from a join's bytes and read every root.
@@ -39,9 +41,26 @@ export function readDocumentContents(snapshot, ops) {
39
41
  if (snapshot !== null)
40
42
  doc.import(snapshot);
41
43
  for (const op of ops)
42
- doc.import(op);
44
+ importTailOp(doc, op);
43
45
  return readRoots(doc);
44
46
  }
47
+ /**
48
+ * Read every root of a join's decoded content.
49
+ *
50
+ * Frozen content is read as it stands, with no CRDT engine: it carries no tail
51
+ * (the conversion that would give it one is the platform's). CRDT content and
52
+ * a document with no snapshot are materialised with `ops`, as
53
+ * `readDocumentContents` does.
54
+ */
55
+ export function readJoinContents(content, ops) {
56
+ if (content.kind === 'frozen') {
57
+ if (ops.length > 0) {
58
+ throw new Error('Frozen content arrived with changes above it, so it is not the whole document.');
59
+ }
60
+ return content.content.toJSON();
61
+ }
62
+ return readDocumentContents(content.kind === 'crdt' ? content.bytes : null, ops);
63
+ }
45
64
  // A root container id is `cid:root-<name>:<Type>`; the name arrives as the
46
65
  // key, so only the type suffix is read.
47
66
  function containerType(containerId) {
@@ -52,6 +71,9 @@ function readRoots(doc) {
52
71
  // Root ids only, so the enumeration converts nothing: each root below
53
72
  // decides its own read.
54
73
  for (const [key, containerId] of Object.entries(doc.getShallowValue())) {
74
+ // The document's references and read marks are not content.
75
+ if (isReservedRootName(key))
76
+ continue;
55
77
  switch (containerType(String(containerId))) {
56
78
  case 'Map':
57
79
  contents[key] = readMapRoot(doc, key);
@@ -1 +1 @@
1
- {"version":3,"file":"document-contents.js","sourceRoot":"","sources":["../src/document-contents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-contents.js","sourceRoot":"","sources":["../src/document-contents.ts"],"names":[],"mappings":"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"}