@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
@@ -1,11 +1,17 @@
1
+ import type { ImportReport } from './import-report.js';
2
+ import { type InputDocumentHandlers, type InputDocumentOptions } from './input-documents.js';
1
3
  import type { UndoControllerOptions } from './types.js';
2
- import type { ChangeSource, ListHandle, MapHandle, OrderedMapHandle, TextHandle } from './handle-types.js';
3
- import type { DocumentCheckpoint, DocumentSourceBlob, DocumentStreamInfo } from './documents-namespace.js';
4
+ import type { ChangeSource, ListHandle, MapHandle, MutateOptions, OrderedMapHandle, TextHandle } from './handle-types.js';
5
+ import type { DocumentSourceBlob, DocumentStreamInfo } from './documents-namespace.js';
6
+ import type { InputReference } from './hosted-ui.js';
4
7
  import { type DocumentGoneListener, type DocumentGoneReason, type DocumentGoneUnsubscribe, type DocumentStatusListener, type DocumentStatusUnsubscribe, type DocumentWorkStatus, type DocumentDriveStatus, type DocumentDriveStatusListener, type DocumentDriveStatusUnsubscribe, type DocumentDriveTrackingState, type DriveMirrorDirection, type DrivePublishTarget } from './document-signals.js';
5
8
  import { type CanvasSource } from './document-thumbnail-capture.js';
9
+ import type { OpenedDocument } from './open-document.js';
10
+ import type { OpenModeOptions, ReadOnlyDocument } from './read-only-document.js';
6
11
  import { type BranchProvider } from './document-branches.js';
7
12
  import { type Command, type CommandGroup, type CommandSurface, type HostedUiProvider } from './document-commands.js';
8
13
  import { DocumentStream } from './document-streams.js';
14
+ import { type SealedStore } from './sealed-store.js';
9
15
  export declare const DEFAULT_STREAM_NAME = "default";
10
16
  export type { BranchProvider };
11
17
  export type { Command, CommandGroup, CommandSurface, HostedUiProvider, };
@@ -52,29 +58,73 @@ export interface UndoState {
52
58
  canRedo: boolean;
53
59
  }
54
60
  export type UndoStateSubscriber = (state: UndoState) => void;
61
+ export type ForcedReadOnlyReason = 'link' | 'grant' | 'app' | 'unsaved' | 'capacity' | 'no_connection' | 'snapshot' | 'too_large' | 'not_imported';
55
62
  export interface DocumentOptions {
56
63
  rootKey?: string;
57
64
  docId?: string;
58
65
  branchId?: string;
66
+ /** @deprecated Pass `readOnly: true` to `session.open` / `Brass.openDocumentById`, which types the result `ReadOnlyDocument`. */
59
67
  readOnly?: boolean;
60
68
  version?: number;
61
69
  undo?: UndoControllerOptions;
62
70
  }
71
+ export declare function snapshotFromSealedStore(store: SealedStore): Uint8Array;
72
+ /** What a record-store writer is handed. */
73
+ export interface RecordStoreSource {
74
+ schemaVersion: string;
75
+ header: readonly {
76
+ tag: string;
77
+ body: unknown;
78
+ }[];
79
+ /** Walks every record, in order. */
80
+ forEachRecord(visit: (key: string, tag: string | null, body: unknown) => void): void;
81
+ }
82
+ /**
83
+ * Write a record store as a CRDT snapshot through the one conversion every
84
+ * frozen stream takes.
85
+ */
86
+ export declare function recordStoreSnapshot(source: RecordStoreSource): Uint8Array;
63
87
  export declare class Document {
64
- private readonly _doc;
65
- private readonly _rootKey;
88
+ private _importReport;
89
+ private _changed;
90
+ private _changeNotice;
91
+ private _stopChangeNotice;
92
+ private readonly _changedListeners;
93
+ private _frozenReloader;
94
+ private _reopener;
95
+ private _reloading;
96
+ private _statusWatches;
97
+ private _inputsRuntime;
98
+ private _inputStatusHub;
99
+ private readonly _inputFollowers;
100
+ private _engine;
101
+ private _rootKey;
66
102
  private readonly _docId;
67
103
  private readonly _branchId;
68
104
  private _checkout;
69
105
  private _checkoutGeneration;
70
106
  private readonly _isFrozen;
107
+ private _sealedRoots;
108
+ private _frozenHead;
109
+ private _frozenShown;
110
+ private _frozenVersion;
111
+ private _frozenSeal;
112
+ private readonly _handles;
113
+ private _engineRootKey;
114
+ private readonly _engineOptions;
115
+ private _storageUpgrader;
71
116
  private _forcedReadOnly;
117
+ private _reopening;
118
+ private _pendingReopen;
72
119
  private _readOnlyReason;
73
120
  private _undo;
121
+ private _undoGroup;
74
122
  private readonly _subs;
75
123
  private readonly _undoStateSubs;
76
124
  private _lastCanUndo;
77
125
  private _lastCanRedo;
126
+ private _replayingUndo;
127
+ private _replayChange;
78
128
  private _unsubLoro;
79
129
  private _unsubLocal;
80
130
  private _localOpHook;
@@ -89,6 +139,7 @@ export declare class Document {
89
139
  private _driveResolver;
90
140
  private _sourceBlobFetcher;
91
141
  private _name;
142
+ private _expiresAt;
92
143
  private _versionBrowsing;
93
144
  private readonly _commandMenu;
94
145
  private readonly _outstandingByClientId;
@@ -108,10 +159,14 @@ export declare class Document {
108
159
  private readonly _drivePublishTarget;
109
160
  presence: import('./presence.js').PresenceClient | null;
110
161
  private constructor();
162
+ private get _doc();
163
+ private get _previewVersion();
111
164
  private readonly _rootHandles;
112
165
  private get _pagingSessionToken();
113
166
  map<T = unknown>(key: string): MapHandle<T>;
167
+ private _rootMap;
114
168
  list<T = unknown>(key: string): ListHandle<T>;
169
+ private _rootList;
115
170
  private readonly _orderedMapHandles;
116
171
  /**
117
172
  * A handle on the top-level text container at `key`, which `roots()` reports
@@ -122,18 +177,41 @@ export declare class Document {
122
177
  * version checkout.
123
178
  */
124
179
  text(key: string): TextHandle;
180
+ private _rootText;
125
181
  orderedMap<T = unknown>(mapKey: string, orderKey: string): OrderedMapHandle<T>;
182
+ private _rootOrderedMap;
126
183
  private _handleOwnerCache;
127
184
  private get _handleOwner();
128
185
  get id(): string | null;
129
186
  get readOnly(): boolean;
187
+ /**
188
+ * Why this reader cannot write, or null when they can.
189
+ *
190
+ * The one place the conditions are listed. `readOnly` asks whether there is
191
+ * a reason and `mutate` refuses with the reason's own message, so the two
192
+ * cannot answer differently about the same document, and a new reason
193
+ * reaches both by being added here.
194
+ *
195
+ * Order decides which message a reader sees when several hold at once, and
196
+ * it runs from the state they are in to the state they were put in: a
197
+ * checkout and an open version bar are things this reader did and can
198
+ * undo, so naming those first tells them what to do. A load that has not
199
+ * finished comes last because it clears on its own.
200
+ */
201
+ private get _readOnlyBecause();
130
202
  private _isLoadLocked;
203
+ private _requestStorageUpgrade;
131
204
  undo(): boolean;
132
205
  redo(): boolean;
206
+ private _undoBlocked;
207
+ private _undoGroupBlocked;
208
+ private _newUndoController;
133
209
  private canUndo;
134
210
  private canRedo;
135
- mutate<E extends object = EntityProxy>(fn: (d: DocumentMutator<E>) => void): void;
211
+ mutate<E extends object = EntityProxy>(fn: (d: DocumentMutator<E>) => void, options?: MutateOptions): void;
136
212
  private _checkoutOpenStreams;
213
+ private _returnOpenStreams;
214
+ private _teardownRootHandles;
137
215
  private _snapshotRootHandleKeys;
138
216
  private _rebindRootHandles;
139
217
  useCanvas(source: CanvasSource): () => void;
@@ -153,17 +231,51 @@ export declare class Document {
153
231
  private _resolveStreamInfo;
154
232
  private _closeStreams;
155
233
  private _setStreamsSuspended;
156
- createCheckpoint(): Promise<DocumentCheckpoint>;
234
+ createCheckpoint(): Promise<void>;
157
235
  setAutoCheckpointIntervalMs(intervalMs: number): number;
158
236
  get name(): string | null;
237
+ /** When Brass will remove this document, or `null` when it is kept. Set
238
+ * for a document created while signed out; a sign-in claims it and the
239
+ * claimed document reads `null`. */
240
+ get expiresAt(): Date | null;
159
241
  get commands(): readonly Command[];
160
242
  run(commandId: string): Promise<void>;
161
243
  private _reportTransportUnavailable;
162
244
  private _reportError;
245
+ private _reportSubscriberThrow;
163
246
  private _fireSubscribers;
164
247
  private _savingCountObserver;
165
248
  private _diagnosticsProvider;
166
249
  get savingCount(): number;
250
+ /**
251
+ * Opens this document again in another mode, on the same branch. With no
252
+ * options the new copy is editable; `{ readOnly: true }` follows other
253
+ * people's edits with nothing on it that writes; `{ frozen: true }` keeps
254
+ * what it loaded until `reload()`. Resolves with this document when it is
255
+ * already in that mode, and otherwise with the new copy, closing this one.
256
+ *
257
+ * Rejects with a `BrassError` (status 403), without a request, when the
258
+ * reader may not edit and the reopen asks for an editable copy. Leaving an
259
+ * editable copy first waits for its changes to save, and rejects, keeping
260
+ * this copy open, when they do not.
261
+ */
262
+ reopen(options: {
263
+ frozen: true;
264
+ readOnly?: true;
265
+ }): Promise<ReadOnlyDocument>;
266
+ reopen(options: {
267
+ readOnly: true;
268
+ frozen?: false;
269
+ }): Promise<ReadOnlyDocument>;
270
+ reopen(options?: {
271
+ readOnly?: false;
272
+ frozen?: false;
273
+ }): Promise<OpenedDocument>;
274
+ reopen(options: OpenModeOptions): Promise<OpenedDocument | ReadOnlyDocument>;
275
+ private _reopenerFor;
276
+ private _runReopen;
277
+ private _trackReopen;
278
+ private _setReopening;
167
279
  private _atCapacity;
168
280
  /**
169
281
  * Whether the document has stopped accepting new changes because it has
@@ -184,17 +296,72 @@ export declare class Document {
184
296
  */
185
297
  get atCapacity(): boolean;
186
298
  private _ensureLocalUpdatesSubscribed;
299
+ private _shipLocalUpdate;
187
300
  private _shipLocalOp;
188
301
  private _ensureLoroSubscribed;
189
302
  subscribe(cb: DocumentSubscriber): DocumentUnsubscribe;
190
303
  subscribeUndoState(cb: UndoStateSubscriber): DocumentUnsubscribe;
191
304
  private _maybeFireUndoState;
192
305
  onGone(cb: DocumentGoneListener): DocumentGoneUnsubscribe;
306
+ /** What the importer reported about the file this document was read
307
+ * from, as the open found it. `null` on a document no import produced and
308
+ * on a clean import. */
309
+ get importReport(): ImportReport | null;
310
+ private _unwatchIfIdle;
311
+ private _watchForChange;
312
+ /**
313
+ * Calls the handlers with the input files of `key`. `loaded` gets every
314
+ * file on each subscribe, then each new version, on any copy. `changed`
315
+ * gets the files changed since this document last read them, on a copy
316
+ * that can edit, each recorded as read off the Undo stack once its handler
317
+ * resolves. `removed` gets each file that left. Calls for one file never
318
+ * overlap. Subscriptions to one key share one set of calls, and each
319
+ * subscription's handlers are called for every input; a `changed` input is
320
+ * recorded as read once all of them resolve. Returns an unsubscribe.
321
+ */
322
+ subscribeInputDocuments(key: string, handlers: InputDocumentHandlers, options?: InputDocumentOptions): () => void;
323
+ private _inputStatus;
324
+ private _inputsLocalRoots;
325
+ private _watchInputsRoots;
326
+ private _markChanged;
327
+ /**
328
+ * The work in flight on this document (a new version importing, a drive
329
+ * sync), or `null` when there is none. Render `message` verbatim, draw a
330
+ * bar from `progress` when present, and show a waiting state while
331
+ * `pending`. Later phases arrive through `onStatus`.
332
+ */
193
333
  get status(): DocumentWorkStatus | null;
334
+ private _connectionNoticeObserver;
335
+ /**
336
+ * Calls `cb` with every work-status update, and once on attach when a
337
+ * status is already known. `pending: false` marks the work finished, as a
338
+ * success or as a failure whose `message` the app shows. Returns an
339
+ * unsubscribe.
340
+ *
341
+ * Do not parse `message` or infer phases from it: its wording changes
342
+ * without an SDK release.
343
+ */
194
344
  onStatus(cb: DocumentStatusListener): DocumentStatusUnsubscribe;
195
345
  get driveStatus(): DocumentDriveStatus | null;
196
346
  onDriveStatus(cb: DocumentDriveStatusListener): DocumentDriveStatusUnsubscribe;
197
347
  private _exportsHere;
348
+ private _mutateDepth;
349
+ private _nonUndoableDepth;
350
+ private _inputsQueue;
351
+ private _shipCapture;
352
+ private readonly _provisionalInputs;
353
+ private _commitPendingMutate;
354
+ private get _mutateCommitOrigin();
355
+ /**
356
+ * Records the documents `key` depends on, replacing what it held. `null`
357
+ * removes the key and its read marks. Writes only what differs from this
358
+ * copy, so a reference another reader adds or removes at the same time
359
+ * keeps their change. Undoable, as part of the current step, unless called
360
+ * inside `mutate(fn, { undoable: false })`.
361
+ */
362
+ dependsOn(key: string, refs: readonly InputReference[] | null): void;
363
+ private _queueInputs;
364
+ private _flushInputs;
198
365
  /**
199
366
  * The top-level collections of the stream this document is open at, keyed
200
367
  * as it keys them, each naming the kind of handle that reads it.
@@ -214,9 +381,7 @@ export declare class Document {
214
381
  */
215
382
  roots(): Record<string, RootKind>;
216
383
  toJSON(): Record<string, unknown>;
217
- private missingRanges;
218
384
  private chunkRanges;
219
- private chunkMissingSlice;
220
385
  private splitLocalUpdate;
221
386
  close(): void;
222
387
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"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"}