@powerhousedao/reactor-browser 4.1.0-dev.9 → 5.0.0-staging.1
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/README.md +578 -0
- package/dist/src/actions/dispatch.d.ts +3 -0
- package/dist/src/actions/dispatch.d.ts.map +1 -0
- package/dist/src/actions/dispatch.js +13 -0
- package/dist/src/actions/dispatch.js.map +1 -0
- package/dist/src/actions/document.d.ts +14 -0
- package/dist/src/actions/document.d.ts.map +1 -0
- package/dist/src/actions/document.js +259 -0
- package/dist/src/actions/document.js.map +1 -0
- package/dist/src/actions/drive.d.ts +14 -0
- package/dist/src/actions/drive.d.ts.map +1 -0
- package/dist/src/actions/drive.js +194 -0
- package/dist/src/actions/drive.js.map +1 -0
- package/dist/src/actions/index.d.ts +6 -0
- package/dist/src/actions/index.d.ts.map +1 -0
- package/dist/src/actions/index.js +6 -0
- package/dist/src/actions/index.js.map +1 -0
- package/dist/src/actions/queue.d.ts +9 -0
- package/dist/src/actions/queue.d.ts.map +1 -0
- package/dist/src/actions/queue.js +144 -0
- package/dist/src/actions/queue.js.map +1 -0
- package/dist/src/actions/sign.d.ts +5 -0
- package/dist/src/actions/sign.d.ts.map +1 -0
- package/dist/src/actions/sign.js +71 -0
- package/dist/src/actions/sign.js.map +1 -0
- package/dist/src/analytics/index.d.ts +2 -0
- package/dist/src/analytics/index.d.ts.map +1 -0
- package/dist/src/analytics/index.js +2 -0
- package/dist/src/analytics/index.js.map +1 -0
- package/dist/src/constants.d.ts +3 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +3 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/context/read-mode.d.ts.map +1 -1
- package/dist/src/context/read-mode.js +3 -7
- package/dist/src/context/read-mode.js.map +1 -1
- package/dist/src/crypto/browser.d.ts.map +1 -1
- package/dist/src/crypto/browser.js +33 -10
- package/dist/src/crypto/browser.js.map +1 -1
- package/dist/src/crypto/index.d.ts +12 -5
- package/dist/src/crypto/index.d.ts.map +1 -1
- package/dist/src/crypto/index.js +61 -60
- package/dist/src/crypto/index.js.map +1 -1
- package/dist/src/document-model.d.ts +3 -2
- package/dist/src/document-model.d.ts.map +1 -1
- package/dist/src/document-model.js.map +1 -1
- package/dist/src/events/add-ph-event-handlers.d.ts +2 -0
- package/dist/src/events/add-ph-event-handlers.d.ts.map +1 -0
- package/dist/src/events/add-ph-event-handlers.js +26 -0
- package/dist/src/events/add-ph-event-handlers.js.map +1 -0
- package/dist/src/events/config.d.ts +8 -0
- package/dist/src/events/config.d.ts.map +1 -0
- package/dist/src/events/config.js +25 -0
- package/dist/src/events/config.js.map +1 -0
- package/dist/src/events/crypto.d.ts +13 -0
- package/dist/src/events/crypto.d.ts.map +1 -0
- package/dist/src/events/crypto.js +49 -0
- package/dist/src/events/crypto.js.map +1 -0
- package/dist/src/events/documents.d.ts +7 -0
- package/dist/src/events/documents.d.ts.map +1 -0
- package/dist/src/events/documents.js +19 -0
- package/dist/src/events/documents.js.map +1 -0
- package/dist/src/events/drives.d.ts +13 -0
- package/dist/src/events/drives.d.ts.map +1 -0
- package/dist/src/events/drives.js +57 -0
- package/dist/src/events/drives.js.map +1 -0
- package/dist/src/events/index.d.ts +13 -0
- package/dist/src/events/index.d.ts.map +1 -0
- package/dist/src/events/index.js +13 -0
- package/dist/src/events/index.js.map +1 -0
- package/dist/src/events/nodes.d.ts +7 -0
- package/dist/src/events/nodes.d.ts.map +1 -0
- package/dist/src/events/nodes.js +34 -0
- package/dist/src/events/nodes.js.map +1 -0
- package/dist/src/events/processors.d.ts +8 -0
- package/dist/src/events/processors.d.ts.map +1 -0
- package/dist/src/events/processors.js +25 -0
- package/dist/src/events/processors.js.map +1 -0
- package/dist/src/events/reactor.d.ts +8 -0
- package/dist/src/events/reactor.d.ts.map +1 -0
- package/dist/src/events/reactor.js +25 -0
- package/dist/src/events/reactor.js.map +1 -0
- package/dist/src/events/renown.d.ts +8 -0
- package/dist/src/events/renown.d.ts.map +1 -0
- package/dist/src/events/renown.js +27 -0
- package/dist/src/events/renown.js.map +1 -0
- package/dist/src/events/types.d.ts +60 -0
- package/dist/src/events/types.d.ts.map +1 -0
- package/dist/src/{renown → events}/types.js.map +1 -1
- package/dist/src/events/user.d.ts +14 -0
- package/dist/src/events/user.d.ts.map +1 -0
- package/dist/src/events/user.js +50 -0
- package/dist/src/events/user.js.map +1 -0
- package/dist/src/events/vetra-packages.d.ts +8 -0
- package/dist/src/events/vetra-packages.d.ts.map +1 -0
- package/dist/src/events/vetra-packages.js +29 -0
- package/dist/src/events/vetra-packages.js.map +1 -0
- package/dist/src/hooks/config.d.ts +5 -0
- package/dist/src/hooks/config.d.ts.map +1 -0
- package/dist/src/hooks/config.js +18 -0
- package/dist/src/hooks/config.js.map +1 -0
- package/dist/src/hooks/crypto.d.ts +4 -0
- package/dist/src/hooks/crypto.d.ts.map +1 -0
- package/dist/src/hooks/crypto.js +15 -0
- package/dist/src/hooks/crypto.js.map +1 -0
- package/dist/src/hooks/dispatch.d.ts +3 -0
- package/dist/src/hooks/dispatch.d.ts.map +1 -0
- package/dist/src/hooks/dispatch.js +9 -0
- package/dist/src/hooks/dispatch.js.map +1 -0
- package/dist/src/hooks/documents.d.ts +13 -0
- package/dist/src/hooks/documents.d.ts.map +1 -0
- package/dist/src/hooks/documents.js +46 -0
- package/dist/src/hooks/documents.js.map +1 -0
- package/dist/src/hooks/{useDriveContext.d.ts → drive-context.d.ts} +1 -1
- package/dist/src/hooks/drive-context.d.ts.map +1 -0
- package/dist/src/hooks/{useDriveContext.js → drive-context.js} +1 -1
- package/dist/src/hooks/drive-context.js.map +1 -0
- package/dist/src/hooks/drives.d.ts +24 -0
- package/dist/src/hooks/drives.d.ts.map +1 -0
- package/dist/src/hooks/drives.js +88 -0
- package/dist/src/hooks/drives.js.map +1 -0
- package/dist/src/hooks/index.d.ts +11 -7
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +11 -7
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/nodes.d.ts +41 -0
- package/dist/src/hooks/nodes.d.ts.map +1 -0
- package/dist/src/hooks/nodes.js +160 -0
- package/dist/src/hooks/nodes.js.map +1 -0
- package/dist/src/hooks/processor-manager.d.ts +3 -0
- package/dist/src/hooks/processor-manager.d.ts.map +1 -0
- package/dist/src/hooks/processor-manager.js +7 -0
- package/dist/src/hooks/processor-manager.js.map +1 -0
- package/dist/src/hooks/reactor.d.ts +3 -0
- package/dist/src/hooks/reactor.d.ts.map +1 -0
- package/dist/src/hooks/reactor.js +7 -0
- package/dist/src/hooks/reactor.js.map +1 -0
- package/dist/src/hooks/renown.d.ts +2 -0
- package/dist/src/hooks/renown.d.ts.map +1 -0
- package/dist/src/hooks/renown.js +7 -0
- package/dist/src/hooks/renown.js.map +1 -0
- package/dist/src/hooks/user.d.ts +7 -0
- package/dist/src/hooks/user.d.ts.map +1 -0
- package/dist/src/hooks/user.js +26 -0
- package/dist/src/hooks/user.js.map +1 -0
- package/dist/src/hooks/vetra-packages.d.ts +18 -0
- package/dist/src/hooks/vetra-packages.d.ts.map +1 -0
- package/dist/src/hooks/vetra-packages.js +75 -0
- package/dist/src/hooks/vetra-packages.js.map +1 -0
- package/dist/src/index.d.ts +6 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/reactor.d.ts +7 -0
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +63 -0
- package/dist/src/reactor.js.map +1 -1
- package/dist/src/renown/index.d.ts +3 -0
- package/dist/src/renown/index.d.ts.map +1 -0
- package/dist/src/renown/index.js +3 -0
- package/dist/src/renown/index.js.map +1 -0
- package/dist/src/renown/utils.d.ts +7 -0
- package/dist/src/renown/utils.d.ts.map +1 -0
- package/dist/src/renown/utils.js +52 -0
- package/dist/src/renown/utils.js.map +1 -0
- package/dist/src/types/drive-editor.d.ts +9 -81
- package/dist/src/types/drive-editor.d.ts.map +1 -1
- package/dist/src/types/global.d.ts +64 -0
- package/dist/src/types/global.d.ts.map +1 -0
- package/dist/src/types/global.js +2 -0
- package/dist/src/types/global.js.map +1 -0
- package/dist/src/types/index.d.ts +3 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +3 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/reactor.d.ts +4 -0
- package/dist/src/types/reactor.d.ts.map +1 -0
- package/dist/src/types/reactor.js +2 -0
- package/dist/src/types/reactor.js.map +1 -0
- package/dist/src/types/vetra.d.ts +65 -0
- package/dist/src/types/vetra.d.ts.map +1 -0
- package/dist/src/types/vetra.js +2 -0
- package/dist/src/types/vetra.js.map +1 -0
- package/dist/src/utils/drives.d.ts +32 -0
- package/dist/src/utils/drives.d.ts.map +1 -0
- package/dist/src/utils/drives.js +60 -0
- package/dist/src/utils/drives.js.map +1 -0
- package/dist/src/utils/index.d.ts +6 -4
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +6 -8
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/nodes.d.ts +8 -0
- package/dist/src/utils/nodes.d.ts.map +1 -0
- package/dist/src/utils/nodes.js +17 -0
- package/dist/src/utils/nodes.js.map +1 -0
- package/dist/src/utils/url.d.ts +22 -0
- package/dist/src/utils/url.d.ts.map +1 -0
- package/dist/src/utils/url.js +59 -0
- package/dist/src/utils/url.js.map +1 -0
- package/dist/src/utils/user.d.ts +5 -0
- package/dist/src/utils/user.d.ts.map +1 -0
- package/dist/src/utils/user.js +15 -0
- package/dist/src/utils/user.js.map +1 -0
- package/dist/src/utils/vetra.d.ts +7 -0
- package/dist/src/utils/vetra.d.ts.map +1 -0
- package/dist/src/utils/vetra.js +78 -0
- package/dist/src/utils/vetra.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +24 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +11 -5
- package/dist/package.json +0 -75
- package/dist/src/hooks/document-state.d.ts +0 -24
- package/dist/src/hooks/document-state.d.ts.map +0 -1
- package/dist/src/hooks/document-state.js +0 -89
- package/dist/src/hooks/document-state.js.map +0 -1
- package/dist/src/hooks/useAddDebouncedOperations.d.ts +0 -7
- package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +0 -1
- package/dist/src/hooks/useAddDebouncedOperations.js +0 -53
- package/dist/src/hooks/useAddDebouncedOperations.js.map +0 -1
- package/dist/src/hooks/useConnectCrypto.d.ts +0 -4
- package/dist/src/hooks/useConnectCrypto.d.ts.map +0 -1
- package/dist/src/hooks/useConnectCrypto.js +0 -57
- package/dist/src/hooks/useConnectCrypto.js.map +0 -1
- package/dist/src/hooks/useDocument.d.ts +0 -8
- package/dist/src/hooks/useDocument.d.ts.map +0 -1
- package/dist/src/hooks/useDocument.js +0 -32
- package/dist/src/hooks/useDocument.js.map +0 -1
- package/dist/src/hooks/useDocumentDispatch.d.ts +0 -10
- package/dist/src/hooks/useDocumentDispatch.d.ts.map +0 -1
- package/dist/src/hooks/useDocumentDispatch.js +0 -42
- package/dist/src/hooks/useDocumentDispatch.js.map +0 -1
- package/dist/src/hooks/useDocumentDrives.d.ts +0 -12
- package/dist/src/hooks/useDocumentDrives.d.ts.map +0 -1
- package/dist/src/hooks/useDocumentDrives.js +0 -122
- package/dist/src/hooks/useDocumentDrives.js.map +0 -1
- package/dist/src/hooks/useDocumentEditor.d.ts +0 -32
- package/dist/src/hooks/useDocumentEditor.d.ts.map +0 -1
- package/dist/src/hooks/useDocumentEditor.js +0 -41
- package/dist/src/hooks/useDocumentEditor.js.map +0 -1
- package/dist/src/hooks/useDriveActions.d.ts +0 -79
- package/dist/src/hooks/useDriveActions.d.ts.map +0 -1
- package/dist/src/hooks/useDriveActions.js +0 -108
- package/dist/src/hooks/useDriveActions.js.map +0 -1
- package/dist/src/hooks/useDriveContext.d.ts.map +0 -1
- package/dist/src/hooks/useDriveContext.js.map +0 -1
- package/dist/src/hooks/useUserPermissions.d.ts +0 -6
- package/dist/src/hooks/useUserPermissions.d.ts.map +0 -1
- package/dist/src/hooks/useUserPermissions.js +0 -7
- package/dist/src/hooks/useUserPermissions.js.map +0 -1
- package/dist/src/renown/types.d.ts +0 -76
- package/dist/src/renown/types.d.ts.map +0 -1
- package/dist/src/utils/export-document.d.ts +0 -3
- package/dist/src/utils/export-document.d.ts.map +0 -1
- package/dist/src/utils/export-document.js +0 -19
- package/dist/src/utils/export-document.js.map +0 -1
- package/dist/src/utils/signature.d.ts +0 -5
- package/dist/src/utils/signature.d.ts.map +0 -1
- package/dist/src/utils/signature.js +0 -40
- package/dist/src/utils/signature.js.map +0 -1
- /package/dist/src/{renown → events}/types.js +0 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { addFile as baseAddFile, addFolder as baseAddFolder, copyNode as baseCopyNode, deleteNode as baseDeleteNode, moveNode as baseMoveNode, updateFile as baseUpdateFile, createDriveState, generateNodesCopy, isFileNode, isFolderNode, logger, updateNode, } from "document-drive";
|
|
2
|
+
import { baseLoadFromInput, baseSaveToFileHandle, createPresignedHeader, createZip, generateId, } from "document-model";
|
|
3
|
+
import { queueActions, queueOperations, uploadOperations, } from "../actions/queue.js";
|
|
4
|
+
import { getUserPermissions } from "../utils/user.js";
|
|
5
|
+
export function downloadFile(document) {
|
|
6
|
+
const zip = createZip(document);
|
|
7
|
+
zip
|
|
8
|
+
.generateAsync({ type: "blob" })
|
|
9
|
+
.then((blob) => {
|
|
10
|
+
const link = window.document.createElement("a");
|
|
11
|
+
link.style.display = "none";
|
|
12
|
+
link.href = URL.createObjectURL(blob);
|
|
13
|
+
link.download = `${document.header.name || "Untitled"}.zip`;
|
|
14
|
+
window.document.body.appendChild(link);
|
|
15
|
+
link.click();
|
|
16
|
+
window.document.body.removeChild(link);
|
|
17
|
+
})
|
|
18
|
+
.catch(logger.error);
|
|
19
|
+
}
|
|
20
|
+
export async function exportFile(document) {
|
|
21
|
+
const reactor = window.reactor;
|
|
22
|
+
if (!reactor) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const documentModelModules = reactor.getDocumentModelModules();
|
|
26
|
+
const documentModelModule = documentModelModules.find((module) => module.documentModel.id === document.header.documentType);
|
|
27
|
+
const extension = documentModelModule?.documentModel.extension;
|
|
28
|
+
try {
|
|
29
|
+
const fileHandle = await window.showSaveFilePicker({
|
|
30
|
+
suggestedName: `${document.header.name || "Untitled"}.${extension ? `${extension}.` : ""}zip`,
|
|
31
|
+
});
|
|
32
|
+
await baseSaveToFileHandle(document, fileHandle);
|
|
33
|
+
return fileHandle;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
// ignores error if user cancelled the file picker
|
|
37
|
+
if (!(e instanceof DOMException && e.name === "AbortError")) {
|
|
38
|
+
throw e;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export async function loadFile(path) {
|
|
43
|
+
const reactor = window.reactor;
|
|
44
|
+
if (!reactor) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const documentModelModules = reactor.getDocumentModelModules();
|
|
48
|
+
const baseDocument = await baseLoadFromInput(path, (state) => state, { checkHashes: true });
|
|
49
|
+
const documentModelModule = documentModelModules.find((module) => module.documentModel.id === baseDocument.header.documentType);
|
|
50
|
+
if (!documentModelModule) {
|
|
51
|
+
throw new Error(`Document "${baseDocument.header.documentType}" is not supported`);
|
|
52
|
+
}
|
|
53
|
+
return documentModelModule.utils.loadFromInput(path);
|
|
54
|
+
}
|
|
55
|
+
export async function addDocument(driveId, name, documentType, parentFolder, document, id, preferredEditor) {
|
|
56
|
+
const reactor = window.reactor;
|
|
57
|
+
if (!reactor) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
61
|
+
if (!isAllowedToCreateDocuments) {
|
|
62
|
+
throw new Error("User is not allowed to create documents");
|
|
63
|
+
}
|
|
64
|
+
const drive = await reactor.getDrive(driveId);
|
|
65
|
+
const documentId = id ?? generateId();
|
|
66
|
+
const reactorDocumentModelModules = reactor.getDocumentModelModules();
|
|
67
|
+
const documentModelModuleFromReactor = reactorDocumentModelModules.find((module) => module.documentModel.id === documentType);
|
|
68
|
+
if (!documentModelModuleFromReactor) {
|
|
69
|
+
throw new Error(`Document model module for type ${documentType} not found`);
|
|
70
|
+
}
|
|
71
|
+
const newDocument = documentModelModuleFromReactor.utils.createDocument({
|
|
72
|
+
...document?.state,
|
|
73
|
+
});
|
|
74
|
+
newDocument.header = createPresignedHeader(documentId, documentType);
|
|
75
|
+
newDocument.header.name = name;
|
|
76
|
+
const documentMeta = preferredEditor ? { preferredEditor } : undefined;
|
|
77
|
+
await reactor.addDocument(newDocument, documentMeta);
|
|
78
|
+
const action = baseAddFile({
|
|
79
|
+
id: documentId,
|
|
80
|
+
name,
|
|
81
|
+
documentType,
|
|
82
|
+
parentFolder: parentFolder ?? null,
|
|
83
|
+
});
|
|
84
|
+
const unsafeCastAsDrive = (await queueActions(drive, action));
|
|
85
|
+
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === documentId);
|
|
86
|
+
if (!node || !isFileNode(node)) {
|
|
87
|
+
throw new Error("There was an error adding document");
|
|
88
|
+
}
|
|
89
|
+
return node;
|
|
90
|
+
}
|
|
91
|
+
export async function addFile(file, driveId, name, parentFolder) {
|
|
92
|
+
logger.verbose(`addFile(drive: ${driveId}, name: ${name}, folder: ${parentFolder})`);
|
|
93
|
+
const reactor = window.reactor;
|
|
94
|
+
if (!reactor) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
98
|
+
if (!isAllowedToCreateDocuments) {
|
|
99
|
+
throw new Error("User is not allowed to create files");
|
|
100
|
+
}
|
|
101
|
+
const document = (await loadFile(file));
|
|
102
|
+
if (!document) {
|
|
103
|
+
throw new Error("No document loaded");
|
|
104
|
+
}
|
|
105
|
+
// first create the file with the initial state of document
|
|
106
|
+
const initialDocument = {
|
|
107
|
+
header: document.header,
|
|
108
|
+
history: document.history,
|
|
109
|
+
initialState: document.initialState,
|
|
110
|
+
state: createDriveState({
|
|
111
|
+
global: document.state.global,
|
|
112
|
+
local: document.state.local,
|
|
113
|
+
}),
|
|
114
|
+
operations: {
|
|
115
|
+
global: [],
|
|
116
|
+
local: [],
|
|
117
|
+
},
|
|
118
|
+
clipboard: [],
|
|
119
|
+
};
|
|
120
|
+
const fileNode = await addDocument(driveId, name || (typeof file === "string" ? document.header.name : file.name), document.header.documentType, parentFolder, initialDocument);
|
|
121
|
+
// TODO: the return type of addDocument says it cannot fail, so why do we need this?
|
|
122
|
+
if (!fileNode) {
|
|
123
|
+
throw new Error("There was an error adding file");
|
|
124
|
+
}
|
|
125
|
+
// then add all the operations
|
|
126
|
+
const driveDocument = await reactor.getDrive(driveId);
|
|
127
|
+
// TODO: the type for reactor.getDrive says it cannot fail, so why do we need this?
|
|
128
|
+
const waitForSync = driveDocument && driveDocument.state.local.listeners.length > 0;
|
|
129
|
+
uploadOperations(document, queueOperations, {
|
|
130
|
+
waitForSync,
|
|
131
|
+
}).catch((error) => {
|
|
132
|
+
throw error;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
export async function updateFile(driveId, nodeId, documentType, name, parentFolder) {
|
|
136
|
+
const reactor = window.reactor;
|
|
137
|
+
if (!reactor) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
141
|
+
if (!isAllowedToCreateDocuments) {
|
|
142
|
+
throw new Error("User is not allowed to update files");
|
|
143
|
+
}
|
|
144
|
+
const drive = await reactor.getDrive(driveId);
|
|
145
|
+
const unsafeCastAsDrive = (await queueActions(drive, baseUpdateFile({
|
|
146
|
+
id: nodeId,
|
|
147
|
+
name: name ?? undefined,
|
|
148
|
+
parentFolder,
|
|
149
|
+
documentType,
|
|
150
|
+
})));
|
|
151
|
+
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === nodeId);
|
|
152
|
+
if (!node || !isFileNode(node)) {
|
|
153
|
+
throw new Error("There was an error updating document");
|
|
154
|
+
}
|
|
155
|
+
return node;
|
|
156
|
+
}
|
|
157
|
+
export async function addFolder(driveId, name, parentFolder) {
|
|
158
|
+
const reactor = window.reactor;
|
|
159
|
+
if (!reactor) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
163
|
+
if (!isAllowedToCreateDocuments) {
|
|
164
|
+
throw new Error("User is not allowed to create folders");
|
|
165
|
+
}
|
|
166
|
+
const folderId = generateId();
|
|
167
|
+
const drive = await reactor.getDrive(driveId);
|
|
168
|
+
const unsafeCastAsDrive = (await queueActions(drive, baseAddFolder({
|
|
169
|
+
id: folderId,
|
|
170
|
+
name,
|
|
171
|
+
parentFolder,
|
|
172
|
+
})));
|
|
173
|
+
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === folderId);
|
|
174
|
+
if (!node || !isFolderNode(node)) {
|
|
175
|
+
throw new Error("There was an error adding folder");
|
|
176
|
+
}
|
|
177
|
+
return node;
|
|
178
|
+
}
|
|
179
|
+
export async function deleteNode(driveId, nodeId) {
|
|
180
|
+
const reactor = window.reactor;
|
|
181
|
+
if (!reactor) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
185
|
+
if (!isAllowedToCreateDocuments) {
|
|
186
|
+
throw new Error("User is not allowed to delete documents");
|
|
187
|
+
}
|
|
188
|
+
const drive = await reactor.getDrive(driveId);
|
|
189
|
+
await queueActions(drive, baseDeleteNode({ id: nodeId }));
|
|
190
|
+
}
|
|
191
|
+
export async function renameNode(driveId, nodeId, name) {
|
|
192
|
+
const reactor = window.reactor;
|
|
193
|
+
if (!reactor) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
197
|
+
if (!isAllowedToCreateDocuments) {
|
|
198
|
+
throw new Error("User is not allowed to rename documents");
|
|
199
|
+
}
|
|
200
|
+
const drive = await reactor.getDrive(driveId);
|
|
201
|
+
const unsafeCastAsDrive = (await queueActions(drive, updateNode({ id: nodeId, name })));
|
|
202
|
+
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === nodeId);
|
|
203
|
+
if (!node) {
|
|
204
|
+
throw new Error("There was an error renaming node");
|
|
205
|
+
}
|
|
206
|
+
return node;
|
|
207
|
+
}
|
|
208
|
+
export async function moveNode(src, target) {
|
|
209
|
+
const reactor = window.reactor;
|
|
210
|
+
if (!reactor) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
214
|
+
if (!isAllowedToCreateDocuments) {
|
|
215
|
+
throw new Error("User is not allowed to move documents");
|
|
216
|
+
}
|
|
217
|
+
// TODO: it should not be this much work just to get the drive for a given node
|
|
218
|
+
const driveIds = await reactor.getDrives();
|
|
219
|
+
const drives = await Promise.all(driveIds.map((id) => reactor.getDrive(id)));
|
|
220
|
+
const driveForNode = drives.find((drive) => drive.state.global.nodes.some((node) => node.id === src.id));
|
|
221
|
+
// TODO: the type for reactor.getDrive says it cannot fail, so why do we need this?
|
|
222
|
+
if (!driveForNode) {
|
|
223
|
+
throw new Error("Node is not in any drive");
|
|
224
|
+
}
|
|
225
|
+
const drive = await reactor.getDrive(driveForNode.header.id);
|
|
226
|
+
await queueActions(drive, baseMoveNode({ srcFolder: src.id, targetParentFolder: target?.id }));
|
|
227
|
+
}
|
|
228
|
+
export async function copyNode(src, target) {
|
|
229
|
+
const reactor = window.reactor;
|
|
230
|
+
if (!reactor) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
234
|
+
if (!isAllowedToCreateDocuments) {
|
|
235
|
+
throw new Error("User is not allowed to copy documents");
|
|
236
|
+
}
|
|
237
|
+
// TODO: it should not be this much work just to get the drive for a given node
|
|
238
|
+
const driveIds = await reactor.getDrives();
|
|
239
|
+
const drives = await Promise.all(driveIds.map((id) => reactor.getDrive(id)));
|
|
240
|
+
const driveForNode = drives.find((drive) => drive.state.global.nodes.some((node) => node.id === src.id));
|
|
241
|
+
// TODO: the type for reactor.getDrive says it cannot fail, so why do we need this?
|
|
242
|
+
if (!driveForNode) {
|
|
243
|
+
throw new Error("Node is not in any drive");
|
|
244
|
+
}
|
|
245
|
+
const copyNodesInput = generateNodesCopy({
|
|
246
|
+
srcId: src.id,
|
|
247
|
+
targetParentFolder: target?.id,
|
|
248
|
+
targetName: src.name,
|
|
249
|
+
}, () => generateId(), driveForNode.state.global.nodes);
|
|
250
|
+
const copyActions = copyNodesInput.map((copyNodeInput) => baseCopyNode(copyNodeInput));
|
|
251
|
+
// TODO: why does this use addActions instead of queueActions?
|
|
252
|
+
const result = await reactor.addActions(driveForNode.header.id, copyActions);
|
|
253
|
+
if (result.status !== "SUCCESS") {
|
|
254
|
+
logger.error(`Error copying files: ${result.status}`, result.error);
|
|
255
|
+
}
|
|
256
|
+
// TODO: this is a lie
|
|
257
|
+
return result.document;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/actions/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DocumentDriveDocument, type DriveInput, type PullResponderTrigger, type RemoteDriveOptions, type SharingType, type SyncStatus, type Trigger } from "document-drive";
|
|
2
|
+
export declare function addDrive(input: DriveInput, preferredEditor?: string): Promise<DocumentDriveDocument | undefined>;
|
|
3
|
+
export declare function addRemoteDrive(url: string, options: RemoteDriveOptions): Promise<DocumentDriveDocument | undefined>;
|
|
4
|
+
export declare function deleteDrive(driveId: string): Promise<void>;
|
|
5
|
+
export declare function renameDrive(driveId: string, name: string): Promise<import("document-model").PHDocument | undefined>;
|
|
6
|
+
export declare function setDriveAvailableOffline(driveId: string, availableOffline: boolean): Promise<import("document-model").PHDocument | undefined>;
|
|
7
|
+
export declare function setDriveSharingType(driveId: string, sharingType: SharingType): Promise<import("document-model").PHDocument | undefined>;
|
|
8
|
+
export declare function getSyncStatus(documentId: string, sharingType: SharingType): Promise<SyncStatus | undefined>;
|
|
9
|
+
export declare function getSyncStatusSync(documentId: string, sharingType: SharingType): SyncStatus | undefined;
|
|
10
|
+
export declare function clearStorage(): Promise<void>;
|
|
11
|
+
export declare function removeTrigger(driveId: string, triggerId: string): Promise<void>;
|
|
12
|
+
export declare function registerNewPullResponderTrigger(driveId: string, url: string, options: Pick<RemoteDriveOptions, "pullFilter" | "pullInterval">): Promise<PullResponderTrigger | undefined>;
|
|
13
|
+
export declare function addTrigger(driveId: string, trigger: Trigger): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=drive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/actions/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EAEf,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AAUxB,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,8CA2BzE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,8CAQ5E;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,iBAWhD;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,4DAa9D;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,OAAO,4DAiB1B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,4DAiBzB;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAejC;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,GACvB,UAAU,GAAG,SAAS,CAexB;AAED,wBAAsB,YAAY,kBAEjC;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAkBrE;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,cAAc,CAAC,GAC/D,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAqD3C;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,iBAkBjE"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { PullResponderTransmitter, SynchronizationUnitNotFoundError, addTrigger as baseAddTrigger, removeTrigger as baseRemoveTrigger, setAvailableOffline, setDriveName, setSharingType, } from "document-drive";
|
|
2
|
+
import { createGlobalState, createState, } from "document-drive/drive-document-model/gen/ph-factories";
|
|
3
|
+
import { defaultBaseState, generateId } from "document-model";
|
|
4
|
+
import { defaultLocalState } from "document-model/document-model/gen/ph-factories";
|
|
5
|
+
import { getUserPermissions } from "../utils/user.js";
|
|
6
|
+
import { queueActions } from "./queue.js";
|
|
7
|
+
export async function addDrive(input, preferredEditor) {
|
|
8
|
+
const reactor = window.reactor;
|
|
9
|
+
if (!reactor) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
13
|
+
if (!isAllowedToCreateDocuments) {
|
|
14
|
+
throw new Error("User is not allowed to create drives");
|
|
15
|
+
}
|
|
16
|
+
const id = input.id || generateId();
|
|
17
|
+
const state = createState(defaultBaseState(), createGlobalState(input.global), defaultLocalState());
|
|
18
|
+
const newDrive = await reactor.addDrive({
|
|
19
|
+
global: state.global,
|
|
20
|
+
local: state.local,
|
|
21
|
+
id,
|
|
22
|
+
}, preferredEditor);
|
|
23
|
+
return newDrive;
|
|
24
|
+
}
|
|
25
|
+
export async function addRemoteDrive(url, options) {
|
|
26
|
+
const reactor = window.reactor;
|
|
27
|
+
if (!reactor) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const newDrive = await reactor.addRemoteDrive(url, options);
|
|
31
|
+
return newDrive;
|
|
32
|
+
}
|
|
33
|
+
export async function deleteDrive(driveId) {
|
|
34
|
+
const reactor = window.reactor;
|
|
35
|
+
if (!reactor) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
39
|
+
if (!isAllowedToCreateDocuments) {
|
|
40
|
+
throw new Error("User is not allowed to delete drives");
|
|
41
|
+
}
|
|
42
|
+
await reactor.deleteDrive(driveId);
|
|
43
|
+
}
|
|
44
|
+
export async function renameDrive(driveId, name) {
|
|
45
|
+
const reactor = window.reactor;
|
|
46
|
+
if (!reactor) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
50
|
+
if (!isAllowedToCreateDocuments) {
|
|
51
|
+
throw new Error("User is not allowed to rename drives");
|
|
52
|
+
}
|
|
53
|
+
const drive = await reactor.getDrive(driveId);
|
|
54
|
+
const renamedDrive = await queueActions(drive, setDriveName({ name }));
|
|
55
|
+
return renamedDrive;
|
|
56
|
+
}
|
|
57
|
+
export async function setDriveAvailableOffline(driveId, availableOffline) {
|
|
58
|
+
const reactor = window.reactor;
|
|
59
|
+
if (!reactor) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
63
|
+
if (!isAllowedToCreateDocuments) {
|
|
64
|
+
throw new Error("User is not allowed to change drive availability");
|
|
65
|
+
}
|
|
66
|
+
const drive = await reactor.getDrive(driveId);
|
|
67
|
+
const updatedDrive = await queueActions(drive, setAvailableOffline({ availableOffline }));
|
|
68
|
+
return updatedDrive;
|
|
69
|
+
}
|
|
70
|
+
export async function setDriveSharingType(driveId, sharingType) {
|
|
71
|
+
const reactor = window.reactor;
|
|
72
|
+
if (!reactor) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
76
|
+
if (!isAllowedToCreateDocuments) {
|
|
77
|
+
throw new Error("User is not allowed to change drive availability");
|
|
78
|
+
}
|
|
79
|
+
const drive = await reactor.getDrive(driveId);
|
|
80
|
+
const updatedDrive = await queueActions(drive, setSharingType({ type: sharingType }));
|
|
81
|
+
return updatedDrive;
|
|
82
|
+
}
|
|
83
|
+
export function getSyncStatus(documentId, sharingType) {
|
|
84
|
+
if (sharingType === "LOCAL")
|
|
85
|
+
return Promise.resolve(undefined);
|
|
86
|
+
const reactor = window.reactor;
|
|
87
|
+
if (!reactor) {
|
|
88
|
+
return Promise.resolve(undefined);
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
const syncStatus = reactor.getSyncStatus(documentId);
|
|
92
|
+
if (syncStatus instanceof SynchronizationUnitNotFoundError)
|
|
93
|
+
return Promise.resolve("INITIAL_SYNC");
|
|
94
|
+
return Promise.resolve(syncStatus);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error(error);
|
|
98
|
+
return Promise.resolve("ERROR");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export function getSyncStatusSync(documentId, sharingType) {
|
|
102
|
+
if (sharingType === "LOCAL")
|
|
103
|
+
return;
|
|
104
|
+
const reactor = window.reactor;
|
|
105
|
+
if (!reactor) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const syncStatus = reactor.getSyncStatus(documentId);
|
|
110
|
+
if (syncStatus instanceof SynchronizationUnitNotFoundError)
|
|
111
|
+
return "INITIAL_SYNC";
|
|
112
|
+
return syncStatus;
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
console.error(error);
|
|
116
|
+
return "ERROR";
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export async function clearStorage() {
|
|
120
|
+
await window.phStorage?.clear();
|
|
121
|
+
}
|
|
122
|
+
export async function removeTrigger(driveId, triggerId) {
|
|
123
|
+
const reactor = window.reactor;
|
|
124
|
+
if (!reactor) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const drive = await reactor.getDrive(driveId);
|
|
128
|
+
const unsafeCastAsDrive = (await queueActions(drive, baseRemoveTrigger({ triggerId })));
|
|
129
|
+
const trigger = unsafeCastAsDrive.state.local.triggers.find((trigger) => trigger.id === triggerId);
|
|
130
|
+
if (trigger) {
|
|
131
|
+
throw new Error(`There was an error removing trigger ${triggerId}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export async function registerNewPullResponderTrigger(driveId, url, options) {
|
|
135
|
+
const reactor = window.reactor;
|
|
136
|
+
if (!reactor) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const uuid = generateId();
|
|
140
|
+
const listener = {
|
|
141
|
+
driveId,
|
|
142
|
+
listenerId: uuid,
|
|
143
|
+
block: false,
|
|
144
|
+
filter: {
|
|
145
|
+
branch: options.pullFilter?.branch ?? [],
|
|
146
|
+
documentId: options.pullFilter?.documentId ?? [],
|
|
147
|
+
documentType: options.pullFilter?.documentType ?? [],
|
|
148
|
+
scope: options.pullFilter?.scope ?? [],
|
|
149
|
+
},
|
|
150
|
+
system: false,
|
|
151
|
+
label: `Pullresponder #${uuid}`,
|
|
152
|
+
callInfo: {
|
|
153
|
+
data: "",
|
|
154
|
+
name: "PullResponder",
|
|
155
|
+
transmitterType: "PullResponder",
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
// TODO: circular reference
|
|
159
|
+
// TODO: once we have DI, remove this and pass around
|
|
160
|
+
const listenerManager = reactor.listeners;
|
|
161
|
+
listener.transmitter = new PullResponderTransmitter(listener, listenerManager);
|
|
162
|
+
// set the listener on the manager directly (bypassing operations)
|
|
163
|
+
try {
|
|
164
|
+
await listenerManager.setListener(driveId, listener);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
throw new Error(`Listener couldn't be registered: ${error}`);
|
|
168
|
+
}
|
|
169
|
+
// for backwards compatibility: return everything but the transmitter
|
|
170
|
+
return {
|
|
171
|
+
driveId,
|
|
172
|
+
filter: listener.filter,
|
|
173
|
+
data: {
|
|
174
|
+
interval: `${options.pullInterval}` || "1000",
|
|
175
|
+
listenerId: uuid,
|
|
176
|
+
url,
|
|
177
|
+
},
|
|
178
|
+
id: uuid,
|
|
179
|
+
type: "PullResponder",
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export async function addTrigger(driveId, trigger) {
|
|
183
|
+
const reactor = window.reactor;
|
|
184
|
+
if (!reactor) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const drive = await reactor.getDrive(driveId);
|
|
188
|
+
const unsafeCastAsDrive = (await queueActions(drive, baseAddTrigger({ trigger })));
|
|
189
|
+
const newTrigger = unsafeCastAsDrive.state.local.triggers.find((trigger) => trigger.id === trigger.id);
|
|
190
|
+
if (!newTrigger) {
|
|
191
|
+
throw new Error(`There was an error adding the trigger ${trigger.id}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=drive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/actions/drive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Action, type Operation, type PHDocument } from "document-model";
|
|
2
|
+
export declare function queueActions(document: PHDocument | undefined, actionOrActions: Action[] | Action | undefined): Promise<PHDocument | undefined>;
|
|
3
|
+
export declare function queueOperations(document: PHDocument | undefined, operationOrOperations: Operation[] | Operation | undefined): Promise<PHDocument | undefined>;
|
|
4
|
+
export declare function deduplicateOperations(existingOperations: Record<string, Operation[]>, operationsToDeduplicate: Operation[]): Operation[];
|
|
5
|
+
export declare function uploadOperations(document: PHDocument | undefined, pushOperations: (document: PHDocument, operations: Operation[]) => Promise<PHDocument | undefined>, options?: {
|
|
6
|
+
waitForSync?: boolean;
|
|
7
|
+
operationsLimit?: number;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/actions/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9E,wBAAsB,YAAY,CAChC,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,mCA4B/C;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,qBAAqB,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,mCA8B3D;AAED,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC/C,uBAAuB,EAAE,SAAS,EAAE,eA8ErC;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,cAAc,EAAE,CACd,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,SAAS,EAAE,KACpB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmD9D"}
|