@brass-build/client 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +255 -0
- package/CHANGELOG.md +15 -0
- package/LICENSE +21 -0
- package/README.md +836 -0
- package/dist/api-fetch.d.ts +16 -0
- package/dist/api-fetch.d.ts.map +1 -0
- package/dist/api-fetch.js +97 -0
- package/dist/api-fetch.js.map +1 -0
- package/dist/api-headers.d.ts +3 -0
- package/dist/api-headers.d.ts.map +1 -0
- package/dist/api-headers.js +25 -0
- package/dist/api-headers.js.map +1 -0
- package/dist/auth-flow.d.ts +23 -0
- package/dist/auth-flow.d.ts.map +1 -0
- package/dist/auth-flow.js +76 -0
- package/dist/auth-flow.js.map +1 -0
- package/dist/client.d.ts +106 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1278 -0
- package/dist/client.js.map +1 -0
- package/dist/doc-url-sync.d.ts +19 -0
- package/dist/doc-url-sync.d.ts.map +1 -0
- package/dist/doc-url-sync.js +181 -0
- package/dist/doc-url-sync.js.map +1 -0
- package/dist/document-branches.d.ts +32 -0
- package/dist/document-branches.d.ts.map +1 -0
- package/dist/document-branches.js +89 -0
- package/dist/document-branches.js.map +1 -0
- package/dist/document-checkpoints.d.ts +24 -0
- package/dist/document-checkpoints.d.ts.map +1 -0
- package/dist/document-checkpoints.js +115 -0
- package/dist/document-checkpoints.js.map +1 -0
- package/dist/document-commands.d.ts +93 -0
- package/dist/document-commands.d.ts.map +1 -0
- package/dist/document-commands.js +423 -0
- package/dist/document-commands.js.map +1 -0
- package/dist/document-signals.d.ts +53 -0
- package/dist/document-signals.d.ts.map +1 -0
- package/dist/document-signals.js +114 -0
- package/dist/document-signals.js.map +1 -0
- package/dist/document-streams.d.ts +22 -0
- package/dist/document-streams.d.ts.map +1 -0
- package/dist/document-streams.js +98 -0
- package/dist/document-streams.js.map +1 -0
- package/dist/document-thumbnail-capture.d.ts +27 -0
- package/dist/document-thumbnail-capture.d.ts.map +1 -0
- package/dist/document-thumbnail-capture.js +160 -0
- package/dist/document-thumbnail-capture.js.map +1 -0
- package/dist/documents-namespace.d.ts +134 -0
- package/dist/documents-namespace.d.ts.map +1 -0
- package/dist/documents-namespace.js +190 -0
- package/dist/documents-namespace.js.map +1 -0
- package/dist/documents.d.ts +146 -0
- package/dist/documents.d.ts.map +1 -0
- package/dist/documents.js +2045 -0
- package/dist/documents.js.map +1 -0
- package/dist/emitter.d.ts +15 -0
- package/dist/emitter.d.ts.map +1 -0
- package/dist/emitter.js +90 -0
- package/dist/emitter.js.map +1 -0
- package/dist/errors.d.ts +18 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +22 -0
- package/dist/errors.js.map +1 -0
- package/dist/export-guest.d.ts +9 -0
- package/dist/export-guest.d.ts.map +1 -0
- package/dist/export-guest.js +225 -0
- package/dist/export-guest.js.map +1 -0
- package/dist/fetch-retry.d.ts +16 -0
- package/dist/fetch-retry.d.ts.map +1 -0
- package/dist/fetch-retry.js +90 -0
- package/dist/fetch-retry.js.map +1 -0
- package/dist/guest-link.d.ts +3 -0
- package/dist/guest-link.d.ts.map +1 -0
- package/dist/guest-link.js +13 -0
- package/dist/guest-link.js.map +1 -0
- package/dist/handles.d.ts +57 -0
- package/dist/handles.d.ts.map +1 -0
- package/dist/handles.js +1375 -0
- package/dist/handles.js.map +1 -0
- package/dist/hosted-runtime.d.ts +33 -0
- package/dist/hosted-runtime.d.ts.map +1 -0
- package/dist/hosted-runtime.js +99 -0
- package/dist/hosted-runtime.js.map +1 -0
- package/dist/hosted-ui.d.ts +84 -0
- package/dist/hosted-ui.d.ts.map +1 -0
- package/dist/hosted-ui.js +673 -0
- package/dist/hosted-ui.js.map +1 -0
- package/dist/importer.d.ts +22 -0
- package/dist/importer.d.ts.map +1 -0
- package/dist/importer.js +54 -0
- package/dist/importer.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +132 -0
- package/dist/index.js.map +1 -0
- package/dist/init-keys.d.ts +3 -0
- package/dist/init-keys.d.ts.map +1 -0
- package/dist/init-keys.js +13 -0
- package/dist/init-keys.js.map +1 -0
- package/dist/internal.d.ts +6 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +17 -0
- package/dist/internal.js.map +1 -0
- package/dist/jwt.d.ts +3 -0
- package/dist/jwt.d.ts.map +1 -0
- package/dist/jwt.js +22 -0
- package/dist/jwt.js.map +1 -0
- package/dist/launch-context.d.ts +4 -0
- package/dist/launch-context.d.ts.map +1 -0
- package/dist/launch-context.js +44 -0
- package/dist/launch-context.js.map +1 -0
- package/dist/login-hint.d.ts +4 -0
- package/dist/login-hint.d.ts.map +1 -0
- package/dist/login-hint.js +63 -0
- package/dist/login-hint.js.map +1 -0
- package/dist/mutate-batching.d.ts +14 -0
- package/dist/mutate-batching.d.ts.map +1 -0
- package/dist/mutate-batching.js +65 -0
- package/dist/mutate-batching.js.map +1 -0
- package/dist/open-document.d.ts +127 -0
- package/dist/open-document.d.ts.map +1 -0
- package/dist/open-document.js +2121 -0
- package/dist/open-document.js.map +1 -0
- package/dist/page-title.d.ts +3 -0
- package/dist/page-title.d.ts.map +1 -0
- package/dist/page-title.js +32 -0
- package/dist/page-title.js.map +1 -0
- package/dist/perf.d.ts +9 -0
- package/dist/perf.d.ts.map +1 -0
- package/dist/perf.js +39 -0
- package/dist/perf.js.map +1 -0
- package/dist/presence.d.ts +62 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +331 -0
- package/dist/presence.js.map +1 -0
- package/dist/record-paging.d.ts +99 -0
- package/dist/record-paging.d.ts.map +1 -0
- package/dist/record-paging.js +220 -0
- package/dist/record-paging.js.map +1 -0
- package/dist/schema-conflict-dialog.d.ts +10 -0
- package/dist/schema-conflict-dialog.d.ts.map +1 -0
- package/dist/schema-conflict-dialog.js +164 -0
- package/dist/schema-conflict-dialog.js.map +1 -0
- package/dist/selection-persistence.d.ts +5 -0
- package/dist/selection-persistence.d.ts.map +1 -0
- package/dist/selection-persistence.js +90 -0
- package/dist/selection-persistence.js.map +1 -0
- package/dist/serializer.d.ts +3 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/serializer.js +2 -0
- package/dist/serializer.js.map +1 -0
- package/dist/session-persistence.d.ts +4 -0
- package/dist/session-persistence.d.ts.map +1 -0
- package/dist/session-persistence.js +68 -0
- package/dist/session-persistence.js.map +1 -0
- package/dist/session-toolbar.d.ts +62 -0
- package/dist/session-toolbar.d.ts.map +1 -0
- package/dist/session-toolbar.js +1205 -0
- package/dist/session-toolbar.js.map +1 -0
- package/dist/session.d.ts +69 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +926 -0
- package/dist/session.js.map +1 -0
- package/dist/tail-ops.d.ts +28 -0
- package/dist/tail-ops.d.ts.map +1 -0
- package/dist/tail-ops.js +46 -0
- package/dist/tail-ops.js.map +1 -0
- package/dist/topic-lifecycle.d.ts +41 -0
- package/dist/topic-lifecycle.d.ts.map +1 -0
- package/dist/topic-lifecycle.js +169 -0
- package/dist/topic-lifecycle.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/undo.d.ts +18 -0
- package/dist/undo.d.ts.map +1 -0
- package/dist/undo.js +110 -0
- package/dist/undo.js.map +1 -0
- package/dist/version-bar.d.ts +22 -0
- package/dist/version-bar.d.ts.map +1 -0
- package/dist/version-bar.js +169 -0
- package/dist/version-bar.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/dist/vite.d.ts +15 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +36 -0
- package/dist/vite.js.map +1 -0
- package/dist/ws-client.d.ts +53 -0
- package/dist/ws-client.d.ts.map +1 -0
- package/dist/ws-client.js +604 -0
- package/dist/ws-client.js.map +1 -0
- package/dist/ws-frame-limit.d.ts +21 -0
- package/dist/ws-frame-limit.d.ts.map +1 -0
- package/dist/ws-frame-limit.js +40 -0
- package/dist/ws-frame-limit.js.map +1 -0
- package/docs/app-manifest.md +65 -0
- package/docs/custom-chrome.md +147 -0
- package/docs/hosted-ui-advanced.md +77 -0
- package/docs/imported-documents.md +261 -0
- package/docs/presence.md +129 -0
- package/docs/schemas.md +135 -0
- package/docs/streams.md +248 -0
- package/package.json +60 -0
- package/scripts/prepare.mjs +50 -0
- package/src/api-fetch.ts +127 -0
- package/src/api-headers.ts +28 -0
- package/src/auth-flow.ts +125 -0
- package/src/client.ts +1457 -0
- package/src/doc-url-sync.ts +183 -0
- package/src/document-branches.ts +124 -0
- package/src/document-checkpoints.ts +135 -0
- package/src/document-commands.ts +651 -0
- package/src/document-signals.ts +234 -0
- package/src/document-streams.ts +132 -0
- package/src/document-thumbnail-capture.ts +191 -0
- package/src/documents-namespace.ts +516 -0
- package/src/documents.ts +2426 -0
- package/src/emitter.ts +129 -0
- package/src/errors.ts +45 -0
- package/src/export-guest.ts +282 -0
- package/src/fetch-retry.ts +119 -0
- package/src/guest-link.ts +14 -0
- package/src/handles.ts +1731 -0
- package/src/hosted-runtime.ts +109 -0
- package/src/hosted-ui.ts +1020 -0
- package/src/importer.ts +89 -0
- package/src/index.ts +267 -0
- package/src/init-keys.ts +15 -0
- package/src/internal.ts +23 -0
- package/src/jwt.ts +18 -0
- package/src/launch-context.ts +43 -0
- package/src/login-hint.ts +60 -0
- package/src/mutate-batching.ts +63 -0
- package/src/open-document.ts +2869 -0
- package/src/page-title.ts +33 -0
- package/src/perf.ts +46 -0
- package/src/presence.ts +471 -0
- package/src/record-paging.ts +270 -0
- package/src/schema-conflict-dialog.ts +176 -0
- package/src/selection-persistence.ts +98 -0
- package/src/serializer.ts +15 -0
- package/src/session-persistence.ts +69 -0
- package/src/session-toolbar.ts +1457 -0
- package/src/session.ts +1262 -0
- package/src/tail-ops.ts +63 -0
- package/src/topic-lifecycle.ts +217 -0
- package/src/types.ts +75 -0
- package/src/undo.ts +125 -0
- package/src/version-bar.ts +221 -0
- package/src/version.ts +8 -0
- package/src/vite.ts +49 -0
- package/src/ws-client.ts +678 -0
- package/src/ws-frame-limit.ts +52 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
// SDK surface: `Brass.documents.*`. The metadata surface: get /
|
|
2
|
+
// thumbnails / branches. The editable surface (snapshot + ops +
|
|
3
|
+
// mutate) is the `Document` runtime class via `Brass.openDocumentById`
|
|
4
|
+
// / `Brass.createDocument`. Access-granting is hosted-only (the share
|
|
5
|
+
// dialog), not a programmatic method here.
|
|
6
|
+
import { createApiFetch } from './api-fetch.js';
|
|
7
|
+
import { BrassError } from './errors.js';
|
|
8
|
+
export function createDocumentsNamespace(opts) {
|
|
9
|
+
const apiFetch = createApiFetch(opts);
|
|
10
|
+
return {
|
|
11
|
+
get(docId) {
|
|
12
|
+
return apiFetch({
|
|
13
|
+
path: `/documents/${encodeURIComponent(docId)}`,
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
listBranches(docId) {
|
|
17
|
+
return apiFetch({
|
|
18
|
+
path: `/documents/${encodeURIComponent(docId)}/branches`,
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
listStreams(docId, branchId) {
|
|
22
|
+
return apiFetch({
|
|
23
|
+
path: `/documents/${encodeURIComponent(docId)}/streams?branch=${encodeURIComponent(branchId)}`,
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
createStream(docId, branchId, name) {
|
|
27
|
+
return apiFetch({
|
|
28
|
+
method: 'POST',
|
|
29
|
+
path: `/documents/${encodeURIComponent(docId)}/streams`,
|
|
30
|
+
body: {
|
|
31
|
+
name,
|
|
32
|
+
branch_id: branchId,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
createBranch(docId, input) {
|
|
37
|
+
const body = {};
|
|
38
|
+
if (input.from_version !== undefined) {
|
|
39
|
+
body.from_version = input.from_version;
|
|
40
|
+
}
|
|
41
|
+
if (input.from_branch_id !== undefined) {
|
|
42
|
+
body.from_branch_id = input.from_branch_id;
|
|
43
|
+
}
|
|
44
|
+
if (input.name !== undefined)
|
|
45
|
+
body.name = input.name;
|
|
46
|
+
return apiFetch({
|
|
47
|
+
method: 'POST',
|
|
48
|
+
path: `/documents/${encodeURIComponent(docId)}/branches`,
|
|
49
|
+
body,
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
async setThumbnail(doc, input) {
|
|
53
|
+
const docId = doc.id;
|
|
54
|
+
if (docId === null) {
|
|
55
|
+
throw new BrassError('setThumbnail requires a Document opened from the server', { status: 400 });
|
|
56
|
+
}
|
|
57
|
+
// Capture the depicted version synchronously, before the async
|
|
58
|
+
// encode, so a concurrent editor's op landing mid-upload cannot
|
|
59
|
+
// shift the anchor away from the state the app rendered.
|
|
60
|
+
const version = doc.currentSeq;
|
|
61
|
+
if (version === null) {
|
|
62
|
+
throw new BrassError('setThumbnail: the document has no resolved version yet', { status: 400 });
|
|
63
|
+
}
|
|
64
|
+
const branchId = doc.branchId;
|
|
65
|
+
const { data, contentType } = await encodeThumbnailImage(input);
|
|
66
|
+
const body = { content_type: contentType, data, version };
|
|
67
|
+
if (branchId !== null)
|
|
68
|
+
body.branch_id = branchId;
|
|
69
|
+
if (input.width !== undefined)
|
|
70
|
+
body.width = input.width;
|
|
71
|
+
if (input.height !== undefined)
|
|
72
|
+
body.height = input.height;
|
|
73
|
+
const res = await apiFetch({
|
|
74
|
+
method: 'POST',
|
|
75
|
+
path: `/documents/${encodeURIComponent(docId)}/thumbnail`,
|
|
76
|
+
body,
|
|
77
|
+
});
|
|
78
|
+
return res.thumbnail;
|
|
79
|
+
},
|
|
80
|
+
async createCheckpoint(doc) {
|
|
81
|
+
const docId = doc.id;
|
|
82
|
+
if (docId === null) {
|
|
83
|
+
throw new BrassError('createCheckpoint requires a Document opened from the server', { status: 400 });
|
|
84
|
+
}
|
|
85
|
+
// Capture the depicted version synchronously, so a concurrent
|
|
86
|
+
// editor's op landing mid-call cannot shift the anchor away
|
|
87
|
+
// from the state the user is on. Mirrors the setThumbnail
|
|
88
|
+
// version-capture pattern. This is the anchor the server pins
|
|
89
|
+
// the checkpoint to; it is not an app-facing "seal a past
|
|
90
|
+
// version" control.
|
|
91
|
+
const version = doc.currentSeq;
|
|
92
|
+
if (version === null) {
|
|
93
|
+
throw new BrassError('createCheckpoint: the document has no resolved version yet', { status: 400 });
|
|
94
|
+
}
|
|
95
|
+
const branchId = doc.branchId;
|
|
96
|
+
const body = { version };
|
|
97
|
+
if (branchId !== null)
|
|
98
|
+
body.branch_id = branchId;
|
|
99
|
+
const res = await apiFetch({
|
|
100
|
+
method: 'POST',
|
|
101
|
+
path: `/documents/${encodeURIComponent(docId)}/checkpoints`,
|
|
102
|
+
body,
|
|
103
|
+
});
|
|
104
|
+
return res.checkpoint;
|
|
105
|
+
},
|
|
106
|
+
async pushToDrive(doc, input) {
|
|
107
|
+
const docId = doc.id;
|
|
108
|
+
if (docId === null) {
|
|
109
|
+
throw new BrassError('pushToDrive requires a Document opened from the server', { status: 400 });
|
|
110
|
+
}
|
|
111
|
+
const body = {};
|
|
112
|
+
if (input?.message !== undefined)
|
|
113
|
+
body.message = input.message;
|
|
114
|
+
const res = await apiFetch({
|
|
115
|
+
method: 'POST',
|
|
116
|
+
path: `/documents/${encodeURIComponent(docId)}/drive-sync/push`,
|
|
117
|
+
body,
|
|
118
|
+
});
|
|
119
|
+
return res;
|
|
120
|
+
},
|
|
121
|
+
async sourceBlob(doc) {
|
|
122
|
+
const docId = doc.id;
|
|
123
|
+
if (docId === null) {
|
|
124
|
+
throw new BrassError('sourceBlob requires a Document opened from the server', { status: 400 });
|
|
125
|
+
}
|
|
126
|
+
return apiFetch({
|
|
127
|
+
path: `/documents/${encodeURIComponent(docId)}/source-blob`,
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
claimImport(docId) {
|
|
131
|
+
return apiFetch({
|
|
132
|
+
method: 'POST',
|
|
133
|
+
path: `/documents/${encodeURIComponent(docId)}/import-claim`,
|
|
134
|
+
});
|
|
135
|
+
},
|
|
136
|
+
completeImport(docId) {
|
|
137
|
+
return apiFetch({
|
|
138
|
+
method: 'POST',
|
|
139
|
+
path: `/documents/${encodeURIComponent(docId)}/import-complete`,
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
async getThumbnail(docId, options) {
|
|
143
|
+
const params = new URLSearchParams();
|
|
144
|
+
if (options?.version !== undefined) {
|
|
145
|
+
params.set('version', String(options.version));
|
|
146
|
+
}
|
|
147
|
+
if (options?.branch !== undefined)
|
|
148
|
+
params.set('branch', options.branch);
|
|
149
|
+
const qs = params.toString();
|
|
150
|
+
const res = await apiFetch({
|
|
151
|
+
path: `/documents/${encodeURIComponent(docId)}/thumbnail${qs ? `?${qs}` : ''}`,
|
|
152
|
+
});
|
|
153
|
+
return res.thumbnail;
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// Reads `SetThumbnailInput.image` into base64 plus a resolved MIME
|
|
158
|
+
// type. A `Blob` carries its own `type` (canvas `toBlob` sets it);
|
|
159
|
+
// raw `ArrayBuffer` / `Uint8Array` bytes need an explicit
|
|
160
|
+
// `contentType`.
|
|
161
|
+
async function encodeThumbnailImage(input) {
|
|
162
|
+
let bytes;
|
|
163
|
+
let blobType;
|
|
164
|
+
if (input.image instanceof Uint8Array) {
|
|
165
|
+
bytes = input.image;
|
|
166
|
+
}
|
|
167
|
+
else if (input.image instanceof ArrayBuffer) {
|
|
168
|
+
bytes = new Uint8Array(input.image);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
bytes = new Uint8Array(await input.image.arrayBuffer());
|
|
172
|
+
blobType = input.image.type || undefined;
|
|
173
|
+
}
|
|
174
|
+
const contentType = input.contentType ?? blobType;
|
|
175
|
+
if (!contentType) {
|
|
176
|
+
throw new BrassError('setThumbnail: contentType is required when image is not a typed Blob', { status: 400 });
|
|
177
|
+
}
|
|
178
|
+
return { data: bytesToBase64(bytes), contentType };
|
|
179
|
+
}
|
|
180
|
+
// Standard-alphabet base64 of a byte array. Chunked so a large image
|
|
181
|
+
// does not blow the argument-count limit on `String.fromCharCode`.
|
|
182
|
+
function bytesToBase64(bytes) {
|
|
183
|
+
let binary = '';
|
|
184
|
+
const chunk = 0x8000;
|
|
185
|
+
for (let i = 0; i < bytes.length; i += chunk) {
|
|
186
|
+
binary += String.fromCharCode(...bytes.subarray(i, i + chunk));
|
|
187
|
+
}
|
|
188
|
+
return btoa(binary);
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=documents-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents-namespace.js","sourceRoot":"","sources":["../src/documents-namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { LoroDoc } from 'loro-crdt';
|
|
2
|
+
import { type UndoControllerOptions } from './undo.js';
|
|
3
|
+
import { type ListHandle, type MapHandle, type OrderedMapHandle } from './handles.js';
|
|
4
|
+
import type { DocumentCheckpoint, DocumentSourceBlob, DocumentStreamInfo, PushToDriveInput, PushToDriveResult } from './documents-namespace.js';
|
|
5
|
+
import type { DriveResolveResult } from './hosted-ui.js';
|
|
6
|
+
import { type DocumentGoneListener, type DocumentGoneReason, type DocumentGoneUnsubscribe, type DocumentStatusListener, type DocumentStatusUnsubscribe, type DocumentWorkStatus, type DocumentDriveStatus, type DocumentDriveStatusListener, type DocumentDriveStatusUnsubscribe, type DocumentDriveTrackingState, type DriveMirrorDirection } from './document-signals.js';
|
|
7
|
+
import { type CanvasSource } from './document-thumbnail-capture.js';
|
|
8
|
+
import { type BranchProvider } from './document-branches.js';
|
|
9
|
+
import { type Command, type CommandGroup, type CommandSurface, type HostedUiProvider } from './document-commands.js';
|
|
10
|
+
import { DocumentStream } from './document-streams.js';
|
|
11
|
+
export declare const DEFAULT_STREAM_NAME = "default";
|
|
12
|
+
export type { BranchProvider };
|
|
13
|
+
export type { Command, CommandGroup, CommandSurface, HostedUiProvider, };
|
|
14
|
+
export type { CanvasSource };
|
|
15
|
+
export type { DocumentGoneListener, DocumentGoneReason, DocumentGoneUnsubscribe, DocumentStatusListener, DocumentStatusUnsubscribe, DocumentWorkStatus, DocumentDriveStatus, DocumentDriveStatusListener, DocumentDriveStatusUnsubscribe, DocumentDriveTrackingState, DriveMirrorDirection, };
|
|
16
|
+
export interface DocumentMutator<E extends object = EntityProxy> {
|
|
17
|
+
entities: Record<string, E>;
|
|
18
|
+
}
|
|
19
|
+
export type EntityProxy = Record<string, unknown>;
|
|
20
|
+
export type DocumentSubscriber = (event: unknown) => void;
|
|
21
|
+
export type DocumentUnsubscribe = () => void;
|
|
22
|
+
export type SyntheticSubscribeEvent = {
|
|
23
|
+
kind: 'checkout';
|
|
24
|
+
version: number;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'return-to-head';
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'branches';
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'saving-count';
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'commands';
|
|
33
|
+
};
|
|
34
|
+
export interface UndoState {
|
|
35
|
+
canUndo: boolean;
|
|
36
|
+
canRedo: boolean;
|
|
37
|
+
}
|
|
38
|
+
export type UndoStateSubscriber = (state: UndoState) => void;
|
|
39
|
+
export interface DocumentOptions {
|
|
40
|
+
rootKey?: string;
|
|
41
|
+
docId?: string;
|
|
42
|
+
branchId?: string;
|
|
43
|
+
readOnly?: boolean;
|
|
44
|
+
version?: number;
|
|
45
|
+
undo?: UndoControllerOptions;
|
|
46
|
+
}
|
|
47
|
+
export declare class Document {
|
|
48
|
+
private readonly _doc;
|
|
49
|
+
private readonly _rootKey;
|
|
50
|
+
private readonly _docId;
|
|
51
|
+
private readonly _branchId;
|
|
52
|
+
private _checkout;
|
|
53
|
+
private _checkoutGeneration;
|
|
54
|
+
private readonly _isFrozen;
|
|
55
|
+
private readonly _forcedReadOnly;
|
|
56
|
+
private readonly _root;
|
|
57
|
+
private readonly _entities;
|
|
58
|
+
private _undo;
|
|
59
|
+
private readonly _subs;
|
|
60
|
+
private readonly _undoStateSubs;
|
|
61
|
+
private _lastCanUndo;
|
|
62
|
+
private _lastCanRedo;
|
|
63
|
+
private _unsubLoro;
|
|
64
|
+
private _unsubLocal;
|
|
65
|
+
private _localOpHook;
|
|
66
|
+
private _checkoutFetcher;
|
|
67
|
+
private _checkoutStreamSeqs;
|
|
68
|
+
private _currentSeqProvider;
|
|
69
|
+
private readonly _branchCtl;
|
|
70
|
+
private readonly _thumbnails;
|
|
71
|
+
private readonly _checkpoints;
|
|
72
|
+
private _drivePusher;
|
|
73
|
+
private _driveResolver;
|
|
74
|
+
private _sourceBlobFetcher;
|
|
75
|
+
private _name;
|
|
76
|
+
private _versionBrowsing;
|
|
77
|
+
private readonly _commandMenu;
|
|
78
|
+
private readonly _outstandingByClientId;
|
|
79
|
+
private readonly _resyncPushClientOpIds;
|
|
80
|
+
private _errorReporter;
|
|
81
|
+
private _closed;
|
|
82
|
+
private _suspended;
|
|
83
|
+
private get _isLive();
|
|
84
|
+
private _assertOpen;
|
|
85
|
+
private readonly _gone;
|
|
86
|
+
private readonly _workStatus;
|
|
87
|
+
private readonly _driveStatus;
|
|
88
|
+
presence: import('./presence.js').PresenceClient | null;
|
|
89
|
+
constructor(loroDoc: LoroDoc, options?: DocumentOptions);
|
|
90
|
+
private readonly _rootHandles;
|
|
91
|
+
map<T = unknown>(key: string): MapHandle<T>;
|
|
92
|
+
list<T = unknown>(key: string): ListHandle<T>;
|
|
93
|
+
private readonly _orderedMapHandles;
|
|
94
|
+
orderedMap<T = unknown>(mapKey: string, orderKey: string): OrderedMapHandle<T>;
|
|
95
|
+
private _handleOwnerCache;
|
|
96
|
+
private get _handleOwner();
|
|
97
|
+
get id(): string | null;
|
|
98
|
+
get readOnly(): boolean;
|
|
99
|
+
private _isLoadLocked;
|
|
100
|
+
undo(): boolean;
|
|
101
|
+
redo(): boolean;
|
|
102
|
+
private canUndo;
|
|
103
|
+
private canRedo;
|
|
104
|
+
mutate<E extends object = EntityProxy>(fn: (d: DocumentMutator<E>) => void): void;
|
|
105
|
+
private _checkoutOpenStreams;
|
|
106
|
+
private _rebindRootHandles;
|
|
107
|
+
useCanvas(source: CanvasSource): () => void;
|
|
108
|
+
pushToDrive(input?: PushToDriveInput): Promise<PushToDriveResult>;
|
|
109
|
+
resolveDrive(): Promise<DriveResolveResult | null>;
|
|
110
|
+
sourceBlob(): Promise<DocumentSourceBlob>;
|
|
111
|
+
private _streamRuntime;
|
|
112
|
+
private _streamManifest;
|
|
113
|
+
private readonly _streamOpens;
|
|
114
|
+
private _ownStream;
|
|
115
|
+
private _openedStreamName;
|
|
116
|
+
/** The stream this Document's own handles read. */
|
|
117
|
+
get openedStream(): string;
|
|
118
|
+
stream(name: string): Promise<DocumentStream>;
|
|
119
|
+
getOrCreateStream(name: string): Promise<DocumentStream>;
|
|
120
|
+
listStreams(): Promise<DocumentStreamInfo[]>;
|
|
121
|
+
private _resolveStreamInfo;
|
|
122
|
+
private _closeStreams;
|
|
123
|
+
createCheckpoint(): Promise<DocumentCheckpoint>;
|
|
124
|
+
setAutoCheckpointIntervalMs(intervalMs: number): number;
|
|
125
|
+
get name(): string | null;
|
|
126
|
+
get commands(): readonly Command[];
|
|
127
|
+
run(commandId: string): Promise<void>;
|
|
128
|
+
private _reportError;
|
|
129
|
+
private _fireSubscribers;
|
|
130
|
+
get savingCount(): number;
|
|
131
|
+
private _ensureLocalUpdatesSubscribed;
|
|
132
|
+
private _ensureLoroSubscribed;
|
|
133
|
+
subscribe(cb: DocumentSubscriber): DocumentUnsubscribe;
|
|
134
|
+
subscribeUndoState(cb: UndoStateSubscriber): DocumentUnsubscribe;
|
|
135
|
+
private _maybeFireUndoState;
|
|
136
|
+
onGone(cb: DocumentGoneListener): DocumentGoneUnsubscribe;
|
|
137
|
+
get status(): DocumentWorkStatus | null;
|
|
138
|
+
onStatus(cb: DocumentStatusListener): DocumentStatusUnsubscribe;
|
|
139
|
+
get driveStatus(): DocumentDriveStatus | null;
|
|
140
|
+
onDriveStatus(cb: DocumentDriveStatusListener): DocumentDriveStatusUnsubscribe;
|
|
141
|
+
toJSON(): Record<string, unknown>;
|
|
142
|
+
private missingRanges;
|
|
143
|
+
private chunkMissingSlice;
|
|
144
|
+
close(): void;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"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"}
|