@brass-build/client 0.4.0 → 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.
- package/AGENTS.md +142 -41
- package/CHANGELOG.md +93 -4
- package/README.md +666 -179
- package/dist/acting-organization.d.ts.map +1 -1
- package/dist/acting-organization.js +6 -11
- package/dist/acting-organization.js.map +1 -1
- package/dist/api-fetch.d.ts +8 -0
- package/dist/api-fetch.d.ts.map +1 -1
- package/dist/api-fetch.js +35 -8
- package/dist/api-fetch.js.map +1 -1
- package/dist/batched-get.d.ts +11 -0
- package/dist/batched-get.d.ts.map +1 -0
- package/dist/batched-get.js +92 -0
- package/dist/batched-get.js.map +1 -0
- package/dist/call-service.d.ts +4 -0
- package/dist/call-service.d.ts.map +1 -1
- package/dist/call-service.js +66 -3
- package/dist/call-service.js.map +1 -1
- package/dist/client.d.ts +51 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +982 -124
- package/dist/client.js.map +1 -1
- package/dist/document-checkpoints.d.ts +25 -2
- package/dist/document-checkpoints.d.ts.map +1 -1
- package/dist/document-checkpoints.js +258 -61
- package/dist/document-checkpoints.js.map +1 -1
- package/dist/document-commands.d.ts.map +1 -1
- package/dist/document-commands.js +5 -3
- package/dist/document-commands.js.map +1 -1
- package/dist/document-contents.d.ts +10 -0
- package/dist/document-contents.d.ts.map +1 -1
- package/dist/document-contents.js +23 -1
- package/dist/document-contents.js.map +1 -1
- package/dist/document-set-subscription.d.ts +56 -0
- package/dist/document-set-subscription.d.ts.map +1 -0
- package/dist/document-set-subscription.js +240 -0
- package/dist/document-set-subscription.js.map +1 -0
- package/dist/document-signals.d.ts +6 -0
- package/dist/document-signals.d.ts.map +1 -1
- package/dist/document-signals.js +31 -1
- package/dist/document-signals.js.map +1 -1
- package/dist/document-streams.d.ts +36 -2
- package/dist/document-streams.d.ts.map +1 -1
- package/dist/document-streams.js +69 -18
- package/dist/document-streams.js.map +1 -1
- package/dist/document-thumbnail-capture.d.ts +12 -2
- package/dist/document-thumbnail-capture.d.ts.map +1 -1
- package/dist/document-thumbnail-capture.js +103 -27
- package/dist/document-thumbnail-capture.js.map +1 -1
- package/dist/documents-namespace.d.ts +92 -10
- package/dist/documents-namespace.d.ts.map +1 -1
- package/dist/documents-namespace.js +285 -39
- package/dist/documents-namespace.js.map +1 -1
- package/dist/documents.d.ts +173 -8
- package/dist/documents.d.ts.map +1 -1
- package/dist/documents.js +1778 -310
- package/dist/documents.js.map +1 -1
- package/dist/errors.d.ts +3 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/fetch-retry.d.ts +1 -0
- package/dist/fetch-retry.d.ts.map +1 -1
- package/dist/fetch-retry.js +2 -0
- package/dist/fetch-retry.js.map +1 -1
- package/dist/file-choice.d.ts +2 -0
- package/dist/file-choice.d.ts.map +1 -0
- package/dist/file-choice.js +27 -0
- package/dist/file-choice.js.map +1 -0
- package/dist/guest-link.d.ts +18 -1
- package/dist/guest-link.d.ts.map +1 -1
- package/dist/guest-link.js +329 -1
- package/dist/guest-link.js.map +1 -1
- package/dist/handle-types.d.ts +67 -5
- package/dist/handle-types.d.ts.map +1 -1
- package/dist/handles.d.ts +15 -19
- package/dist/handles.d.ts.map +1 -1
- package/dist/handles.js +231 -76
- package/dist/handles.js.map +1 -1
- package/dist/hosted-ui.d.ts +61 -0
- package/dist/hosted-ui.d.ts.map +1 -1
- package/dist/hosted-ui.js +94 -42
- package/dist/hosted-ui.js.map +1 -1
- package/dist/import-contract.d.ts +74 -0
- package/dist/import-contract.d.ts.map +1 -0
- package/dist/import-contract.js +163 -0
- package/dist/import-contract.js.map +1 -0
- package/dist/import-guest.d.ts +9 -0
- package/dist/import-guest.d.ts.map +1 -0
- package/dist/import-guest.js +155 -0
- package/dist/import-guest.js.map +1 -0
- package/dist/import-report.d.ts +17 -0
- package/dist/import-report.d.ts.map +1 -0
- package/dist/import-report.js +7 -0
- package/dist/import-report.js.map +1 -0
- package/dist/importer-wait.d.ts +2 -0
- package/dist/importer-wait.d.ts.map +1 -0
- package/dist/importer-wait.js +5 -0
- package/dist/importer-wait.js.map +1 -0
- package/dist/importer.d.ts +18 -4
- package/dist/importer.d.ts.map +1 -1
- package/dist/importer.js +322 -105
- package/dist/importer.js.map +1 -1
- package/dist/in-development.d.ts +2 -0
- package/dist/in-development.d.ts.map +1 -0
- package/dist/in-development.js +10 -0
- package/dist/in-development.js.map +1 -0
- package/dist/index.d.ts +16 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -8
- package/dist/index.js.map +1 -1
- package/dist/init-keys.d.ts +1 -1
- package/dist/init-keys.d.ts.map +1 -1
- package/dist/init-keys.js +6 -1
- package/dist/init-keys.js.map +1 -1
- package/dist/input-documents.d.ts +67 -0
- package/dist/input-documents.d.ts.map +1 -0
- package/dist/input-documents.js +693 -0
- package/dist/input-documents.js.map +1 -0
- package/dist/inputs-status.d.ts +80 -0
- package/dist/inputs-status.d.ts.map +1 -0
- package/dist/inputs-status.js +460 -0
- package/dist/inputs-status.js.map +1 -0
- package/dist/inputs.d.ts +2 -0
- package/dist/inputs.d.ts.map +1 -0
- package/dist/inputs.js +793 -0
- package/dist/inputs.js.map +1 -0
- package/dist/internal.d.ts +6 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +4 -1
- package/dist/internal.js.map +1 -1
- package/dist/join-content.d.ts +33 -0
- package/dist/join-content.d.ts.map +1 -0
- package/dist/join-content.js +114 -0
- package/dist/join-content.js.map +1 -0
- package/dist/join-stamp.d.ts +3 -0
- package/dist/join-stamp.d.ts.map +1 -0
- package/dist/join-stamp.js +12 -0
- package/dist/join-stamp.js.map +1 -0
- package/dist/manifest-drift.d.ts +9 -0
- package/dist/manifest-drift.d.ts.map +1 -0
- package/dist/manifest-drift.js +46 -0
- package/dist/manifest-drift.js.map +1 -0
- package/dist/open-document.d.ts +109 -2
- package/dist/open-document.d.ts.map +1 -1
- package/dist/open-document.js +1822 -811
- package/dist/open-document.js.map +1 -1
- package/dist/page-restore.d.ts +12 -0
- package/dist/page-restore.d.ts.map +1 -0
- package/dist/page-restore.js +23 -0
- package/dist/page-restore.js.map +1 -0
- package/dist/placement.d.ts +13 -0
- package/dist/placement.d.ts.map +1 -0
- package/dist/placement.js +34 -0
- package/dist/placement.js.map +1 -0
- package/dist/presence.d.ts +1 -0
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +16 -4
- package/dist/presence.js.map +1 -1
- package/dist/read-only-document.d.ts +87 -0
- package/dist/read-only-document.d.ts.map +1 -0
- package/dist/read-only-document.js +4 -0
- package/dist/read-only-document.js.map +1 -0
- package/dist/record-paging.d.ts +63 -6
- package/dist/record-paging.d.ts.map +1 -1
- package/dist/record-paging.js +122 -29
- package/dist/record-paging.js.map +1 -1
- package/dist/references.d.ts +40 -0
- package/dist/references.d.ts.map +1 -0
- package/dist/references.js +135 -0
- package/dist/references.js.map +1 -0
- package/dist/request-lane.d.ts +5 -0
- package/dist/request-lane.d.ts.map +1 -0
- package/dist/request-lane.js +48 -0
- package/dist/request-lane.js.map +1 -0
- package/dist/sealed-arrow.d.ts +170 -0
- package/dist/sealed-arrow.d.ts.map +1 -0
- package/dist/sealed-arrow.js +769 -0
- package/dist/sealed-arrow.js.map +1 -0
- package/dist/sealed-cache.d.ts +21 -0
- package/dist/sealed-cache.d.ts.map +1 -0
- package/dist/sealed-cache.js +247 -0
- package/dist/sealed-cache.js.map +1 -0
- package/dist/sealed-encode.d.ts +87 -0
- package/dist/sealed-encode.d.ts.map +1 -0
- package/dist/sealed-encode.js +876 -0
- package/dist/sealed-encode.js.map +1 -0
- package/dist/sealed-handles.d.ts +45 -0
- package/dist/sealed-handles.d.ts.map +1 -0
- package/dist/sealed-handles.js +408 -0
- package/dist/sealed-handles.js.map +1 -0
- package/dist/sealed-store.d.ts +242 -0
- package/dist/sealed-store.d.ts.map +1 -0
- package/dist/sealed-store.js +1155 -0
- package/dist/sealed-store.js.map +1 -0
- package/dist/serializer.d.ts +6 -15
- package/dist/serializer.d.ts.map +1 -1
- package/dist/session-toolbar.d.ts +20 -5
- package/dist/session-toolbar.d.ts.map +1 -1
- package/dist/session-toolbar.js +419 -67
- package/dist/session-toolbar.js.map +1 -1
- package/dist/session.d.ts +38 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +562 -79
- package/dist/session.js.map +1 -1
- package/dist/sha256.d.ts +3 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +74 -0
- package/dist/sha256.js.map +1 -0
- package/dist/stable-handles.d.ts +19 -0
- package/dist/stable-handles.d.ts.map +1 -0
- package/dist/stable-handles.js +193 -0
- package/dist/stable-handles.js.map +1 -0
- package/dist/staged-seal.d.ts +2 -0
- package/dist/staged-seal.d.ts.map +1 -0
- package/dist/staged-seal.js +76 -0
- package/dist/staged-seal.js.map +1 -0
- package/dist/subscriber-delivery.d.ts +8 -0
- package/dist/subscriber-delivery.d.ts.map +1 -0
- package/dist/subscriber-delivery.js +31 -0
- package/dist/subscriber-delivery.js.map +1 -0
- package/dist/tail-op-import.d.ts +10 -0
- package/dist/tail-op-import.d.ts.map +1 -0
- package/dist/tail-op-import.js +33 -0
- package/dist/tail-op-import.js.map +1 -0
- package/dist/topic-lifecycle.d.ts +6 -0
- package/dist/topic-lifecycle.d.ts.map +1 -1
- package/dist/topic-lifecycle.js +32 -2
- package/dist/topic-lifecycle.js.map +1 -1
- package/dist/trial-replace-dialog.d.ts +10 -0
- package/dist/trial-replace-dialog.d.ts.map +1 -0
- package/dist/trial-replace-dialog.js +153 -0
- package/dist/trial-replace-dialog.js.map +1 -0
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/undo.d.ts +60 -5
- package/dist/undo.d.ts.map +1 -1
- package/dist/undo.js +344 -75
- package/dist/undo.js.map +1 -1
- package/dist/version-bar.d.ts +1 -0
- package/dist/version-bar.d.ts.map +1 -1
- package/dist/version-bar.js +2 -1
- package/dist/version-bar.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/dist/ws-client.d.ts +21 -0
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +192 -8
- package/dist/ws-client.js.map +1 -1
- package/dist/ws-frame-limit.d.ts +1 -0
- package/dist/ws-frame-limit.d.ts.map +1 -1
- package/dist/ws-frame-limit.js.map +1 -1
- package/docs/app-manifest.md +121 -17
- package/docs/custom-chrome.md +24 -16
- package/docs/hosted-ui-advanced.md +38 -6
- package/docs/imported-documents.md +104 -51
- package/docs/presence.md +16 -4
- package/docs/schemas.md +8 -5
- package/docs/services.md +6 -6
- package/docs/streams.md +139 -150
- package/docs/text-fields.md +26 -19
- package/package.json +5 -2
- package/src/acting-organization.ts +6 -12
- package/src/api-fetch.ts +53 -3
- package/src/auth-flow.ts +1 -1
- package/src/batched-get.ts +117 -0
- package/src/call-service.ts +78 -3
- package/src/client.ts +1092 -121
- package/src/document-checkpoints.ts +307 -65
- package/src/document-commands.ts +5 -5
- package/src/document-contents.ts +27 -1
- package/src/document-set-subscription.ts +274 -0
- package/src/document-signals.ts +47 -5
- package/src/document-streams.ts +85 -16
- package/src/document-thumbnail-capture.ts +118 -32
- package/src/documents-namespace.ts +539 -84
- package/src/documents.ts +2017 -348
- package/src/errors.ts +17 -6
- package/src/fetch-retry.ts +5 -0
- package/src/file-choice.ts +26 -0
- package/src/guest-link.ts +362 -1
- package/src/handle-types.ts +73 -47
- package/src/handles.ts +253 -83
- package/src/hosted-ui.ts +211 -50
- package/src/import-contract.ts +227 -0
- package/src/import-guest.ts +193 -0
- package/src/import-report.ts +24 -0
- package/src/importer-wait.ts +4 -0
- package/src/importer.ts +386 -131
- package/src/in-development.ts +10 -0
- package/src/index.ts +76 -16
- package/src/init-keys.ts +6 -1
- package/src/input-documents.ts +819 -0
- package/src/inputs-status.ts +598 -0
- package/src/inputs.ts +1090 -0
- package/src/internal.ts +7 -0
- package/src/join-content.ts +135 -0
- package/src/join-stamp.ts +12 -0
- package/src/manifest-drift.ts +54 -0
- package/src/open-document.ts +2346 -930
- package/src/page-restore.ts +38 -0
- package/src/placement.ts +54 -0
- package/src/presence.ts +21 -5
- package/src/read-only-document.ts +133 -0
- package/src/record-paging.ts +147 -25
- package/src/references.ts +207 -0
- package/src/request-lane.ts +59 -0
- package/src/sealed-arrow.ts +843 -0
- package/src/sealed-cache.ts +267 -0
- package/src/sealed-encode.ts +1015 -0
- package/src/sealed-handles.ts +486 -0
- package/src/sealed-store.ts +1330 -0
- package/src/serializer.ts +8 -20
- package/src/session-toolbar.ts +463 -72
- package/src/session.ts +740 -99
- package/src/sha256.ts +65 -0
- package/src/stable-handles.ts +235 -0
- package/src/staged-seal.ts +90 -0
- package/src/subscriber-delivery.ts +37 -0
- package/src/tail-op-import.ts +30 -0
- package/src/topic-lifecycle.ts +38 -2
- package/src/trial-replace-dialog.ts +163 -0
- package/src/types.ts +6 -6
- package/src/undo.ts +386 -73
- package/src/version-bar.ts +5 -1
- package/src/version.ts +1 -1
- package/src/ws-client.ts +208 -16
- package/src/ws-frame-limit.ts +1 -0
|
@@ -3,8 +3,69 @@
|
|
|
3
3
|
// `Document` runtime class via `Brass.openDocumentById` /
|
|
4
4
|
// `Brass.createDocument`. Access-granting is hosted-only (the share
|
|
5
5
|
// dialog), not a programmatic method here.
|
|
6
|
+
import { awaitSeal } from './staged-seal.js';
|
|
6
7
|
import { createApiFetch } from './api-fetch.js';
|
|
8
|
+
import { DEFAULT_IMPORT_STREAM, encodeImportStreams, encodeStreamBundle, } from './import-contract.js';
|
|
7
9
|
import { BrassError } from './errors.js';
|
|
10
|
+
import { createRequestLane } from './request-lane.js';
|
|
11
|
+
import { createBatchedGet } from './batched-get.js';
|
|
12
|
+
import { parseProvisionalInputsAnswer } from './inputs.js';
|
|
13
|
+
import { createDocumentList, } from './document-set-subscription.js';
|
|
14
|
+
function listingFromWire(byToken) {
|
|
15
|
+
return ({ refs, schema_type, ...row }) => ({
|
|
16
|
+
...row,
|
|
17
|
+
...(schema_type !== undefined ? { family: schema_type } : {}),
|
|
18
|
+
...(refs !== undefined ? { from: refs.flatMap((token) => byToken.get(token) ?? []) } : {}),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
// A chosen reference as the `refs` query names it, and as a listing row names
|
|
22
|
+
// the reference it came from.
|
|
23
|
+
function refToken(ref) {
|
|
24
|
+
return ref.extent === 'organization'
|
|
25
|
+
? `organization:${ref.organization_id}`
|
|
26
|
+
: ref.extent === 'project'
|
|
27
|
+
? `project:${ref.project_id}`
|
|
28
|
+
: `document:${ref.doc_id}`;
|
|
29
|
+
}
|
|
30
|
+
// How long a provisional inputs post waits before trying again, or null to
|
|
31
|
+
// give up. A 409 names an op that has not landed on its line yet, which it
|
|
32
|
+
// does within moments; a 429 asks for fewer requests; a 5xx is a write that
|
|
33
|
+
// applied nothing (other writers held the line), jittered so a commit's posts
|
|
34
|
+
// do not meet again. Anything else is final.
|
|
35
|
+
const PROVISIONAL_NOT_LANDED_DELAYS_MS = [500, 1000, 2000, 4000];
|
|
36
|
+
const PROVISIONAL_RATE_LIMITED_DELAYS_MS = [5000, 15000];
|
|
37
|
+
const PROVISIONAL_UNAVAILABLE_DELAYS_MS = [1000, 3000, 9000];
|
|
38
|
+
export function provisionalRetryDelayMs(status, attempt, random = Math.random) {
|
|
39
|
+
if (status !== undefined && status >= 500 && status <= 504) {
|
|
40
|
+
const base = PROVISIONAL_UNAVAILABLE_DELAYS_MS[attempt];
|
|
41
|
+
return base === undefined ? null : Math.round(base * (0.5 + random()));
|
|
42
|
+
}
|
|
43
|
+
const delays = status === 409
|
|
44
|
+
? PROVISIONAL_NOT_LANDED_DELAYS_MS
|
|
45
|
+
: status === 429
|
|
46
|
+
? PROVISIONAL_RATE_LIMITED_DELAYS_MS
|
|
47
|
+
: [];
|
|
48
|
+
return delays[attempt] ?? null;
|
|
49
|
+
}
|
|
50
|
+
let inputsRouteMissingNoted = false;
|
|
51
|
+
// A platform without the provisional inputs route still records a key from
|
|
52
|
+
// the document when it compacts, so the post's absence delays the status
|
|
53
|
+
// rather than losing anything. Said once per page.
|
|
54
|
+
function noteInputsRouteMissing() {
|
|
55
|
+
if (inputsRouteMissingNoted)
|
|
56
|
+
return;
|
|
57
|
+
inputsRouteMissingNoted = true;
|
|
58
|
+
console.info('Brass: this platform does not take provisional input posts yet, so input status updates after the document compacts.');
|
|
59
|
+
}
|
|
60
|
+
/** How many single `documents.get` requests one client has in flight at once. */
|
|
61
|
+
const GET_CONCURRENCY = 6;
|
|
62
|
+
/** How many batched `documents.get` requests (20 ids each) one client has in
|
|
63
|
+
* flight at once. */
|
|
64
|
+
const BATCH_CONCURRENCY = 5;
|
|
65
|
+
/** Attempts a queued `get` makes against a throttled API (about 9 s of
|
|
66
|
+
* backoff). The API's request budget is shared by every caller, so a get
|
|
67
|
+
* queued behind a burst can meet a refusal that clears within seconds. */
|
|
68
|
+
const GET_ATTEMPTS = 6;
|
|
8
69
|
export function createDocumentsNamespace(opts) {
|
|
9
70
|
const apiFetch = createApiFetch(opts);
|
|
10
71
|
// Identifies THIS client to the import claim, so two tabs of one app
|
|
@@ -12,10 +73,87 @@ export function createDocumentsNamespace(opts) {
|
|
|
12
73
|
// Minted once per namespace, so re-claiming from this client refreshes
|
|
13
74
|
// its own claim rather than taking a second one.
|
|
14
75
|
const importClientId = randomToken();
|
|
15
|
-
|
|
76
|
+
// An app that shows something about each of several hundred documents
|
|
77
|
+
// calls `get` once per document, usually all at once. Sent one request each,
|
|
78
|
+
// those calls spend the API's request budget for this app's other calls
|
|
79
|
+
// (its opens) and every other caller's, so they are batched, and reads sent
|
|
80
|
+
// on their own queue.
|
|
81
|
+
const getLane = createRequestLane(GET_CONCURRENCY);
|
|
82
|
+
const singleGet = (docId) => getLane.run(docId, () => apiFetch({
|
|
83
|
+
path: `/documents/${encodeURIComponent(docId)}`,
|
|
84
|
+
maxAttempts: GET_ATTEMPTS,
|
|
85
|
+
}));
|
|
86
|
+
const batchedGet = createBatchedGet({
|
|
87
|
+
apiFetch,
|
|
88
|
+
lane: createRequestLane(BATCH_CONCURRENCY),
|
|
89
|
+
single: singleGet,
|
|
90
|
+
maxAttempts: GET_ATTEMPTS,
|
|
91
|
+
});
|
|
92
|
+
const readSeal = (docId) => (sealId) => apiFetch({
|
|
93
|
+
path: `/documents/${encodeURIComponent(docId)}/seals/${encodeURIComponent(sealId)}`,
|
|
94
|
+
});
|
|
95
|
+
const putThumbnail = async (doc, input, version) => {
|
|
96
|
+
const docId = doc.id;
|
|
97
|
+
if (docId === null) {
|
|
98
|
+
throw new BrassError('setThumbnail requires a Document opened from the server', { status: 400 });
|
|
99
|
+
}
|
|
100
|
+
if (version === null) {
|
|
101
|
+
throw new BrassError('setThumbnail: the document has no resolved version yet', { status: 400 });
|
|
102
|
+
}
|
|
103
|
+
const branchId = doc.branchId;
|
|
104
|
+
const { data, contentType } = await encodeThumbnailImage(input);
|
|
105
|
+
const body = { content_type: contentType, data, version };
|
|
106
|
+
if (branchId !== null)
|
|
107
|
+
body.branch_id = branchId;
|
|
108
|
+
if (input.width !== undefined)
|
|
109
|
+
body.width = input.width;
|
|
110
|
+
if (input.height !== undefined)
|
|
111
|
+
body.height = input.height;
|
|
112
|
+
const res = await apiFetch({
|
|
113
|
+
method: 'POST',
|
|
114
|
+
path: `/documents/${encodeURIComponent(docId)}/thumbnail`,
|
|
115
|
+
body,
|
|
116
|
+
});
|
|
117
|
+
return res.thumbnail;
|
|
118
|
+
};
|
|
119
|
+
const namespace = {
|
|
16
120
|
get(docId) {
|
|
17
|
-
return
|
|
18
|
-
|
|
121
|
+
return batchedGet(docId).then(({ schema_type, ...record }) => ({
|
|
122
|
+
...record,
|
|
123
|
+
...(schema_type !== undefined ? { family: schema_type } : {}),
|
|
124
|
+
}));
|
|
125
|
+
},
|
|
126
|
+
async list(query) {
|
|
127
|
+
const params = new URLSearchParams();
|
|
128
|
+
if (query?.from?.length) {
|
|
129
|
+
params.set('refs', JSON.stringify(query.from.map((ref) => ({
|
|
130
|
+
ref: refToken(ref),
|
|
131
|
+
...(ref.accept !== undefined ? { accept: ref.accept } : {}),
|
|
132
|
+
}))));
|
|
133
|
+
}
|
|
134
|
+
if (query?.types?.length)
|
|
135
|
+
params.set('type', query.types.join(','));
|
|
136
|
+
if (query?.projectIds?.length)
|
|
137
|
+
params.set('project_id', query.projectIds.join(','));
|
|
138
|
+
if (query?.name)
|
|
139
|
+
params.set('name', query.name);
|
|
140
|
+
if (query?.updatedAfter)
|
|
141
|
+
params.set('updated_after', query.updatedAfter);
|
|
142
|
+
if (query?.updatedBefore)
|
|
143
|
+
params.set('updated_before', query.updatedBefore);
|
|
144
|
+
if (query?.limit !== undefined)
|
|
145
|
+
params.set('limit', String(query.limit));
|
|
146
|
+
const search = params.toString();
|
|
147
|
+
const result = await apiFetch({
|
|
148
|
+
path: search ? `/documents?${search}` : '/documents',
|
|
149
|
+
});
|
|
150
|
+
const byToken = new Map((query?.from ?? []).map((ref) => [refToken(ref), ref]));
|
|
151
|
+
const documents = result.documents.map(listingFromWire(byToken));
|
|
152
|
+
return createDocumentList({
|
|
153
|
+
documents,
|
|
154
|
+
query: query ?? {},
|
|
155
|
+
list: async (q) => (await namespace.list(q)).documents,
|
|
156
|
+
socket: opts.getSocket?.(),
|
|
19
157
|
});
|
|
20
158
|
},
|
|
21
159
|
listBranches(docId) {
|
|
@@ -28,6 +166,66 @@ export function createDocumentsNamespace(opts) {
|
|
|
28
166
|
path: `/documents/${encodeURIComponent(docId)}/streams?branch=${encodeURIComponent(branchId)}`,
|
|
29
167
|
});
|
|
30
168
|
},
|
|
169
|
+
async setRecords(docId, input) {
|
|
170
|
+
// Encoded on the client, by the encoder an importer's result goes
|
|
171
|
+
// through, and staged as one bundle, so the platform seals it exactly
|
|
172
|
+
// as it seals an import. What reaches the network is the stored form's
|
|
173
|
+
// tables rather than a JSON rendering of them, which is several times
|
|
174
|
+
// larger.
|
|
175
|
+
const { encodeSealedRecordsUpload } = await import('./sealed-encode.js');
|
|
176
|
+
const streams = 'streams' in input
|
|
177
|
+
? await encodeImportStreams({ streams: input.streams })
|
|
178
|
+
: [
|
|
179
|
+
{
|
|
180
|
+
name: DEFAULT_IMPORT_STREAM,
|
|
181
|
+
bytes: await encodeSealedRecordsUpload({
|
|
182
|
+
schemaVersion: input.schemaVersion,
|
|
183
|
+
header: (input.header ?? []).map((entry) => ({
|
|
184
|
+
tag: entry.type,
|
|
185
|
+
body: entry.params,
|
|
186
|
+
})),
|
|
187
|
+
records: input.records.map((record) => [
|
|
188
|
+
record.key,
|
|
189
|
+
record.type,
|
|
190
|
+
record.params,
|
|
191
|
+
]),
|
|
192
|
+
}),
|
|
193
|
+
},
|
|
194
|
+
];
|
|
195
|
+
if (streams.length === 0) {
|
|
196
|
+
throw new BrassError('There is nothing to set: every stream is empty', {
|
|
197
|
+
status: 400,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
const bytes = encodeStreamBundle(streams);
|
|
201
|
+
const staged = await apiFetch({
|
|
202
|
+
method: 'POST',
|
|
203
|
+
path: `/documents/${encodeURIComponent(docId)}/records/upload`,
|
|
204
|
+
body: { byte_size: bytes.byteLength },
|
|
205
|
+
});
|
|
206
|
+
// A presigned PUT carries no Brass headers: the signature is the
|
|
207
|
+
// credential, and a stray header breaks it.
|
|
208
|
+
// The view's own buffer rather than the view: a `Uint8Array` over a
|
|
209
|
+
// larger buffer would send the whole of it, and `fetch` takes the
|
|
210
|
+
// buffer type directly.
|
|
211
|
+
const put = await fetch(staged.url, {
|
|
212
|
+
method: 'PUT',
|
|
213
|
+
body: bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength),
|
|
214
|
+
});
|
|
215
|
+
if (!put.ok) {
|
|
216
|
+
throw new BrassError('Uploading the record set failed', {
|
|
217
|
+
status: put.status,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
// The platform answers once the set is queued; the call resolves when
|
|
221
|
+
// it is stored, and rejects with the platform's refusal if it is not.
|
|
222
|
+
const accepted = await apiFetch({
|
|
223
|
+
method: 'POST',
|
|
224
|
+
path: `/documents/${encodeURIComponent(docId)}/records`,
|
|
225
|
+
body: { upload_key: staged.upload_key },
|
|
226
|
+
});
|
|
227
|
+
await awaitSeal(accepted, readSeal(docId));
|
|
228
|
+
},
|
|
31
229
|
createStream(docId, branchId, name) {
|
|
32
230
|
return apiFetch({
|
|
33
231
|
method: 'POST',
|
|
@@ -55,45 +253,24 @@ export function createDocumentsNamespace(opts) {
|
|
|
55
253
|
});
|
|
56
254
|
},
|
|
57
255
|
async setThumbnail(doc, input) {
|
|
58
|
-
const docId = doc.id;
|
|
59
|
-
if (docId === null) {
|
|
60
|
-
throw new BrassError('setThumbnail requires a Document opened from the server', { status: 400 });
|
|
61
|
-
}
|
|
62
256
|
// Capture the depicted version synchronously, before the async
|
|
63
257
|
// encode, so a concurrent editor's op landing mid-upload cannot
|
|
64
258
|
// shift the anchor away from the state the app rendered.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const branchId = doc.branchId;
|
|
70
|
-
const { data, contentType } = await encodeThumbnailImage(input);
|
|
71
|
-
const body = { content_type: contentType, data, version };
|
|
72
|
-
if (branchId !== null)
|
|
73
|
-
body.branch_id = branchId;
|
|
74
|
-
if (input.width !== undefined)
|
|
75
|
-
body.width = input.width;
|
|
76
|
-
if (input.height !== undefined)
|
|
77
|
-
body.height = input.height;
|
|
78
|
-
const res = await apiFetch({
|
|
79
|
-
method: 'POST',
|
|
80
|
-
path: `/documents/${encodeURIComponent(docId)}/thumbnail`,
|
|
81
|
-
body,
|
|
82
|
-
});
|
|
83
|
-
return res.thumbnail;
|
|
259
|
+
return putThumbnail(doc, input, doc.currentSeq);
|
|
260
|
+
},
|
|
261
|
+
async setThumbnailAt(doc, input, version) {
|
|
262
|
+
return putThumbnail(doc, input, version);
|
|
84
263
|
},
|
|
85
|
-
async createCheckpoint(doc) {
|
|
264
|
+
async createCheckpoint(doc, anchor) {
|
|
86
265
|
const docId = doc.id;
|
|
87
266
|
if (docId === null) {
|
|
88
267
|
throw new BrassError('createCheckpoint requires a Document opened from the server', { status: 400 });
|
|
89
268
|
}
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
// version" control.
|
|
96
|
-
const version = doc.currentSeq;
|
|
269
|
+
// The scheduler passes the seq it read once every local op was acked,
|
|
270
|
+
// so the marker holds the state of the calls it covers. Without one,
|
|
271
|
+
// the depicted version is read here, synchronously, so an op landing
|
|
272
|
+
// mid-call cannot shift the anchor.
|
|
273
|
+
const version = anchor?.version ?? doc.currentSeq;
|
|
97
274
|
if (version === null) {
|
|
98
275
|
throw new BrassError('createCheckpoint: the document has no resolved version yet', { status: 400 });
|
|
99
276
|
}
|
|
@@ -135,18 +312,76 @@ export function createDocumentsNamespace(opts) {
|
|
|
135
312
|
path: `/documents/${encodeURIComponent(docId)}/source-blob`,
|
|
136
313
|
});
|
|
137
314
|
},
|
|
315
|
+
async postProvisionalInputs(docId, { key, body }, opts = {}) {
|
|
316
|
+
const path = `/documents/${encodeURIComponent(docId)}/inputs/${encodeURIComponent(key)}`;
|
|
317
|
+
for (let attempt = 0;; attempt += 1) {
|
|
318
|
+
let status;
|
|
319
|
+
try {
|
|
320
|
+
return parseProvisionalInputsAnswer(await apiFetch({ method: 'POST', path, body }));
|
|
321
|
+
}
|
|
322
|
+
catch (err) {
|
|
323
|
+
status = err instanceof BrassError ? err.status : undefined;
|
|
324
|
+
}
|
|
325
|
+
if (status === 404) {
|
|
326
|
+
noteInputsRouteMissing();
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
const delay = provisionalRetryDelayMs(status, attempt);
|
|
330
|
+
if (delay === null || opts.superseded?.() === true)
|
|
331
|
+
return null;
|
|
332
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
333
|
+
if (opts.superseded?.() === true)
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
readInputKeyStatus(docId, key, query) {
|
|
338
|
+
const search = new URLSearchParams(query).toString();
|
|
339
|
+
const path = `/documents/${encodeURIComponent(docId)}/inputs/${encodeURIComponent(key)}`;
|
|
340
|
+
return orNullOn404(apiFetch({ path: search ? `${path}?${search}` : path }));
|
|
341
|
+
},
|
|
138
342
|
claimImport(docId) {
|
|
139
343
|
return apiFetch({
|
|
140
344
|
method: 'POST',
|
|
141
345
|
path: `/documents/${encodeURIComponent(docId)}/import-claim`,
|
|
142
|
-
body: { client_id: importClientId },
|
|
346
|
+
body: { client_id: importClientId, stages: true },
|
|
143
347
|
});
|
|
144
348
|
},
|
|
145
|
-
|
|
146
|
-
|
|
349
|
+
async stageImport(docId, bundle) {
|
|
350
|
+
const staged = await apiFetch({
|
|
351
|
+
method: 'POST',
|
|
352
|
+
path: `/documents/${encodeURIComponent(docId)}/import-complete/upload`,
|
|
353
|
+
body: { byte_size: bundle.byteLength },
|
|
354
|
+
});
|
|
355
|
+
// A presigned PUT carries no Brass headers: the signature is the
|
|
356
|
+
// credential, and a stray header breaks it.
|
|
357
|
+
const put = await fetch(staged.url, {
|
|
358
|
+
method: 'PUT',
|
|
359
|
+
body: bundle.buffer.slice(bundle.byteOffset, bundle.byteOffset + bundle.byteLength),
|
|
360
|
+
});
|
|
361
|
+
if (!put.ok) {
|
|
362
|
+
throw new BrassError('Uploading the import failed', {
|
|
363
|
+
status: put.status,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
return staged.upload_key;
|
|
367
|
+
},
|
|
368
|
+
async completeImport(docId, report, uploadKey) {
|
|
369
|
+
const accepted = await apiFetch({
|
|
147
370
|
method: 'POST',
|
|
148
371
|
path: `/documents/${encodeURIComponent(docId)}/import-complete`,
|
|
149
|
-
body: {
|
|
372
|
+
body: {
|
|
373
|
+
client_id: importClientId,
|
|
374
|
+
...(report !== undefined ? { report } : {}),
|
|
375
|
+
upload_key: uploadKey,
|
|
376
|
+
},
|
|
377
|
+
});
|
|
378
|
+
return awaitSeal(accepted, readSeal(docId));
|
|
379
|
+
},
|
|
380
|
+
failImport(docId, message) {
|
|
381
|
+
return apiFetch({
|
|
382
|
+
method: 'POST',
|
|
383
|
+
path: `/documents/${encodeURIComponent(docId)}/import-failed`,
|
|
384
|
+
body: { client_id: importClientId, message },
|
|
150
385
|
});
|
|
151
386
|
},
|
|
152
387
|
async getThumbnail(docId, options) {
|
|
@@ -163,8 +398,9 @@ export function createDocumentsNamespace(opts) {
|
|
|
163
398
|
return res.thumbnail;
|
|
164
399
|
},
|
|
165
400
|
};
|
|
401
|
+
return namespace;
|
|
166
402
|
}
|
|
167
|
-
function randomToken() {
|
|
403
|
+
export function randomToken() {
|
|
168
404
|
const g = globalThis;
|
|
169
405
|
if (g.crypto?.randomUUID)
|
|
170
406
|
return g.crypto.randomUUID();
|
|
@@ -206,4 +442,14 @@ function bytesToBase64(bytes) {
|
|
|
206
442
|
}
|
|
207
443
|
return btoa(binary);
|
|
208
444
|
}
|
|
445
|
+
async function orNullOn404(request) {
|
|
446
|
+
try {
|
|
447
|
+
return await request;
|
|
448
|
+
}
|
|
449
|
+
catch (err) {
|
|
450
|
+
if (err instanceof BrassError && err.status === 404)
|
|
451
|
+
return null;
|
|
452
|
+
throw err;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
209
455
|
//# sourceMappingURL=documents-namespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents-namespace.js","sourceRoot":"","sources":["../src/documents-namespace.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,oEAAoE;AACpE,0DAA0D;AAC1D,oEAAoE;AACpE,2CAA2C;AAI3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA0SzC,MAAM,UAAU,wBAAwB,CACtC,IAA6B;IAE7B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,iDAAiD;IACjD,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;IAErC,OAAO;QACL,GAAG,CAAC,KAAK;YACP,OAAO,QAAQ,CAAiB;gBAC9B,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,QAAQ,CAA2D;gBACxE,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,WAAW;aACzD,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,QAAQ;YACzB,OAAO,QAAQ,CAAuD;gBACpE,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,mBAAmB,kBAAkB,CAAC,QAAQ,CAAC,EAAE;aAC/F,CAAC,CAAC;QACL,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI;YAChC,OAAO,QAAQ,CAAqB;gBAClC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,UAAU;gBACvD,IAAI,EAAE;oBACJ,IAAI;oBACJ,SAAS,EAAE,QAAQ;iBACpB;aACF,CAAC,CAAC;QACL,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,KAAK;YACvB,MAAM,IAAI,GAAwB,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACzC,CAAC;YACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;YAC7C,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACrD,OAAO,QAAQ,CAAgB;gBAC7B,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,WAAW;gBACxD,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,UAAU,CAClB,yDAAyD,EACzD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,+DAA+D;YAC/D,gEAAgE;YAChE,yDAAyD;YACzD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC;YAC/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,UAAU,CAClB,wDAAwD,EACxD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,IAAI,GAON,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACjD,IAAI,QAAQ,KAAK,IAAI;gBAAE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YACjD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACxD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAmC;gBAC3D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,YAAY;gBACzD,IAAI;aACL,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,SAAS,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,GAAG;YACxB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,UAAU,CAClB,6DAA6D,EAC7D,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,8DAA8D;YAC9D,4DAA4D;YAC5D,0DAA0D;YAC1D,8DAA8D;YAC9D,0DAA0D;YAC1D,oBAAoB;YACpB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC;YAC/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,UAAU,CAClB,4DAA4D,EAC5D,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC9B,MAAM,IAAI,GAGN,EAAE,OAAO,EAAE,CAAC;YAChB,IAAI,QAAQ,KAAK,IAAI;gBAAE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YACjD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAqC;gBAC7D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,cAAc;gBAC3D,IAAI;aACL,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,UAAU,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK;YAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,UAAU,CAClB,wDAAwD,EACxD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAGN,EAAE,CAAC;YACP,IAAI,KAAK,EAAE,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/D,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAoB;gBAC5C,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,kBAAkB;gBAC/D,IAAI;aACL,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG;YAClB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,UAAU,CAClB,uDAAuD,EACvD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAqB;gBAClC,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,cAAc;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,KAAK;YACf,OAAO,QAAQ,CAAsB;gBACnC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,eAAe;gBAC5D,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QACD,cAAc,CAAC,KAAK;YAClB,OAAO,QAAQ,CAA0D;gBACvE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,kBAAkB;gBAC/D,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO;YAC/B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAA0C;gBAClE,IAAI,EAAE,cAAc,kBAAkB,CAAC,KAAK,CAAC,aAC3C,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAClB,EAAE;aACH,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,SAAS,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,CAAC,GAAG,UAAwD,CAAC;IACnE,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACvD,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mEAAmE;AACnE,mEAAmE;AACnE,0DAA0D;AAC1D,iBAAiB;AACjB,KAAK,UAAU,oBAAoB,CACjC,KAAwB;IAExB,IAAI,KAAiB,CAAC;IACtB,IAAI,QAA4B,CAAC;IACjC,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU,EAAE,CAAC;QACtC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,YAAY,WAAW,EAAE,CAAC;QAC9C,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IAC3C,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC;IAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,UAAU,CAClB,sEAAsE,EACtE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,qEAAqE;AACrE,mEAAmE;AACnE,SAAS,aAAa,CAAC,KAAiB;IACtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"documents-namespace.js","sourceRoot":"","sources":["../src/documents-namespace.ts"],"names":[],"mappings":"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"}
|