@powerhousedao/reactor-browser 4.1.0-dev.5 → 4.1.0-dev.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +578 -0
  2. package/dist/src/actions/dispatch.d.ts +4 -0
  3. package/dist/src/actions/dispatch.d.ts.map +1 -0
  4. package/dist/src/actions/dispatch.js +29 -0
  5. package/dist/src/actions/dispatch.js.map +1 -0
  6. package/dist/src/actions/document.d.ts +14 -0
  7. package/dist/src/actions/document.d.ts.map +1 -0
  8. package/dist/src/actions/document.js +274 -0
  9. package/dist/src/actions/document.js.map +1 -0
  10. package/dist/src/actions/drive.d.ts +13 -0
  11. package/dist/src/actions/drive.d.ts.map +1 -0
  12. package/dist/src/actions/drive.js +191 -0
  13. package/dist/src/actions/drive.js.map +1 -0
  14. package/dist/src/actions/index.d.ts +6 -0
  15. package/dist/src/actions/index.d.ts.map +1 -0
  16. package/dist/src/actions/index.js +6 -0
  17. package/dist/src/actions/index.js.map +1 -0
  18. package/dist/src/actions/queue.d.ts +8 -0
  19. package/dist/src/actions/queue.d.ts.map +1 -0
  20. package/dist/src/actions/queue.js +120 -0
  21. package/dist/src/actions/queue.js.map +1 -0
  22. package/dist/src/actions/sign.d.ts +5 -0
  23. package/dist/src/actions/sign.d.ts.map +1 -0
  24. package/dist/src/actions/sign.js +71 -0
  25. package/dist/src/actions/sign.js.map +1 -0
  26. package/dist/src/analytics/index.d.ts +2 -0
  27. package/dist/src/analytics/index.d.ts.map +1 -0
  28. package/dist/src/analytics/index.js +2 -0
  29. package/dist/src/analytics/index.js.map +1 -0
  30. package/dist/src/constants.d.ts +3 -0
  31. package/dist/src/constants.d.ts.map +1 -0
  32. package/dist/src/constants.js +3 -0
  33. package/dist/src/constants.js.map +1 -0
  34. package/dist/src/context/read-mode.d.ts.map +1 -1
  35. package/dist/src/context/read-mode.js +3 -7
  36. package/dist/src/context/read-mode.js.map +1 -1
  37. package/dist/src/crypto/browser.d.ts.map +1 -1
  38. package/dist/src/crypto/browser.js +33 -10
  39. package/dist/src/crypto/browser.js.map +1 -1
  40. package/dist/src/crypto/index.d.ts +13 -5
  41. package/dist/src/crypto/index.d.ts.map +1 -1
  42. package/dist/src/crypto/index.js +61 -60
  43. package/dist/src/crypto/index.js.map +1 -1
  44. package/dist/src/document-model.d.ts +3 -2
  45. package/dist/src/document-model.d.ts.map +1 -1
  46. package/dist/src/document-model.js.map +1 -1
  47. package/dist/src/events/add-ph-event-handlers.d.ts +2 -0
  48. package/dist/src/events/add-ph-event-handlers.d.ts.map +1 -0
  49. package/dist/src/events/add-ph-event-handlers.js +26 -0
  50. package/dist/src/events/add-ph-event-handlers.js.map +1 -0
  51. package/dist/src/events/config.d.ts +8 -0
  52. package/dist/src/events/config.d.ts.map +1 -0
  53. package/dist/src/events/config.js +25 -0
  54. package/dist/src/events/config.js.map +1 -0
  55. package/dist/src/events/crypto.d.ts +13 -0
  56. package/dist/src/events/crypto.d.ts.map +1 -0
  57. package/dist/src/events/crypto.js +49 -0
  58. package/dist/src/events/crypto.js.map +1 -0
  59. package/dist/src/events/documents.d.ts +7 -0
  60. package/dist/src/events/documents.d.ts.map +1 -0
  61. package/dist/src/events/documents.js +19 -0
  62. package/dist/src/events/documents.js.map +1 -0
  63. package/dist/src/events/drives.d.ts +13 -0
  64. package/dist/src/events/drives.d.ts.map +1 -0
  65. package/dist/src/events/drives.js +57 -0
  66. package/dist/src/events/drives.js.map +1 -0
  67. package/dist/src/events/index.d.ts +13 -0
  68. package/dist/src/events/index.d.ts.map +1 -0
  69. package/dist/src/events/index.js +13 -0
  70. package/dist/src/events/index.js.map +1 -0
  71. package/dist/src/events/nodes.d.ts +7 -0
  72. package/dist/src/events/nodes.d.ts.map +1 -0
  73. package/dist/src/events/nodes.js +34 -0
  74. package/dist/src/events/nodes.js.map +1 -0
  75. package/dist/src/events/processors.d.ts +8 -0
  76. package/dist/src/events/processors.d.ts.map +1 -0
  77. package/dist/src/events/processors.js +25 -0
  78. package/dist/src/events/processors.js.map +1 -0
  79. package/dist/src/events/reactor.d.ts +8 -0
  80. package/dist/src/events/reactor.d.ts.map +1 -0
  81. package/dist/src/events/reactor.js +25 -0
  82. package/dist/src/events/reactor.js.map +1 -0
  83. package/dist/src/events/renown.d.ts +8 -0
  84. package/dist/src/events/renown.d.ts.map +1 -0
  85. package/dist/src/events/renown.js +27 -0
  86. package/dist/src/events/renown.js.map +1 -0
  87. package/dist/src/events/types.d.ts +60 -0
  88. package/dist/src/events/types.d.ts.map +1 -0
  89. package/dist/src/{renown → events}/types.js.map +1 -1
  90. package/dist/src/events/user.d.ts +14 -0
  91. package/dist/src/events/user.d.ts.map +1 -0
  92. package/dist/src/events/user.js +49 -0
  93. package/dist/src/events/user.js.map +1 -0
  94. package/dist/src/events/vetra-packages.d.ts +8 -0
  95. package/dist/src/events/vetra-packages.d.ts.map +1 -0
  96. package/dist/src/events/vetra-packages.js +29 -0
  97. package/dist/src/events/vetra-packages.js.map +1 -0
  98. package/dist/src/hooks/config.d.ts +5 -0
  99. package/dist/src/hooks/config.d.ts.map +1 -0
  100. package/dist/src/hooks/config.js +18 -0
  101. package/dist/src/hooks/config.js.map +1 -0
  102. package/dist/src/hooks/crypto.d.ts +4 -0
  103. package/dist/src/hooks/crypto.d.ts.map +1 -0
  104. package/dist/src/hooks/crypto.js +15 -0
  105. package/dist/src/hooks/crypto.js.map +1 -0
  106. package/dist/src/hooks/dispatch.d.ts +3 -0
  107. package/dist/src/hooks/dispatch.d.ts.map +1 -0
  108. package/dist/src/hooks/dispatch.js +9 -0
  109. package/dist/src/hooks/dispatch.js.map +1 -0
  110. package/dist/src/hooks/documents.d.ts +13 -0
  111. package/dist/src/hooks/documents.d.ts.map +1 -0
  112. package/dist/src/hooks/documents.js +46 -0
  113. package/dist/src/hooks/documents.js.map +1 -0
  114. package/dist/src/hooks/{useDriveContext.d.ts → drive-context.d.ts} +1 -1
  115. package/dist/src/hooks/drive-context.d.ts.map +1 -0
  116. package/dist/src/hooks/{useDriveContext.js → drive-context.js} +1 -1
  117. package/dist/src/hooks/drive-context.js.map +1 -0
  118. package/dist/src/hooks/drives.d.ts +24 -0
  119. package/dist/src/hooks/drives.d.ts.map +1 -0
  120. package/dist/src/hooks/drives.js +89 -0
  121. package/dist/src/hooks/drives.js.map +1 -0
  122. package/dist/src/hooks/index.d.ts +11 -7
  123. package/dist/src/hooks/index.d.ts.map +1 -1
  124. package/dist/src/hooks/index.js +11 -7
  125. package/dist/src/hooks/index.js.map +1 -1
  126. package/dist/src/hooks/nodes.d.ts +41 -0
  127. package/dist/src/hooks/nodes.d.ts.map +1 -0
  128. package/dist/src/hooks/nodes.js +160 -0
  129. package/dist/src/hooks/nodes.js.map +1 -0
  130. package/dist/src/hooks/processor-manager.d.ts +3 -0
  131. package/dist/src/hooks/processor-manager.d.ts.map +1 -0
  132. package/dist/src/hooks/processor-manager.js +7 -0
  133. package/dist/src/hooks/processor-manager.js.map +1 -0
  134. package/dist/src/hooks/reactor.d.ts +3 -0
  135. package/dist/src/hooks/reactor.d.ts.map +1 -0
  136. package/dist/src/hooks/reactor.js +7 -0
  137. package/dist/src/hooks/reactor.js.map +1 -0
  138. package/dist/src/hooks/renown.d.ts +2 -0
  139. package/dist/src/hooks/renown.d.ts.map +1 -0
  140. package/dist/src/hooks/renown.js +7 -0
  141. package/dist/src/hooks/renown.js.map +1 -0
  142. package/dist/src/hooks/user.d.ts +7 -0
  143. package/dist/src/hooks/user.d.ts.map +1 -0
  144. package/dist/src/hooks/user.js +26 -0
  145. package/dist/src/hooks/user.js.map +1 -0
  146. package/dist/src/hooks/vetra-packages.d.ts +18 -0
  147. package/dist/src/hooks/vetra-packages.d.ts.map +1 -0
  148. package/dist/src/hooks/vetra-packages.js +75 -0
  149. package/dist/src/hooks/vetra-packages.js.map +1 -0
  150. package/dist/src/index.d.ts +6 -4
  151. package/dist/src/index.d.ts.map +1 -1
  152. package/dist/src/index.js +6 -2
  153. package/dist/src/index.js.map +1 -1
  154. package/dist/src/reactor.d.ts +7 -0
  155. package/dist/src/reactor.d.ts.map +1 -1
  156. package/dist/src/reactor.js +65 -0
  157. package/dist/src/reactor.js.map +1 -1
  158. package/dist/src/renown/index.d.ts +3 -0
  159. package/dist/src/renown/index.d.ts.map +1 -0
  160. package/dist/src/renown/index.js +3 -0
  161. package/dist/src/renown/index.js.map +1 -0
  162. package/dist/src/renown/utils.d.ts +7 -0
  163. package/dist/src/renown/utils.d.ts.map +1 -0
  164. package/dist/src/renown/utils.js +56 -0
  165. package/dist/src/renown/utils.js.map +1 -0
  166. package/dist/src/types/drive-editor.d.ts +9 -81
  167. package/dist/src/types/drive-editor.d.ts.map +1 -1
  168. package/dist/src/types/global.d.ts +62 -0
  169. package/dist/src/types/global.d.ts.map +1 -0
  170. package/dist/src/types/global.js +2 -0
  171. package/dist/src/types/global.js.map +1 -0
  172. package/dist/src/types/index.d.ts +3 -0
  173. package/dist/src/types/index.d.ts.map +1 -1
  174. package/dist/src/types/index.js +3 -0
  175. package/dist/src/types/index.js.map +1 -1
  176. package/dist/src/types/reactor.d.ts +4 -0
  177. package/dist/src/types/reactor.d.ts.map +1 -0
  178. package/dist/src/types/reactor.js +2 -0
  179. package/dist/src/types/reactor.js.map +1 -0
  180. package/dist/src/types/vetra.d.ts +65 -0
  181. package/dist/src/types/vetra.d.ts.map +1 -0
  182. package/dist/src/types/vetra.js +2 -0
  183. package/dist/src/types/vetra.js.map +1 -0
  184. package/dist/src/utils/drives.d.ts +21 -0
  185. package/dist/src/utils/drives.d.ts.map +1 -0
  186. package/dist/src/utils/drives.js +49 -0
  187. package/dist/src/utils/drives.js.map +1 -0
  188. package/dist/src/utils/index.d.ts +6 -4
  189. package/dist/src/utils/index.d.ts.map +1 -1
  190. package/dist/src/utils/index.js +6 -8
  191. package/dist/src/utils/index.js.map +1 -1
  192. package/dist/src/utils/nodes.d.ts +8 -0
  193. package/dist/src/utils/nodes.d.ts.map +1 -0
  194. package/dist/src/utils/nodes.js +17 -0
  195. package/dist/src/utils/nodes.js.map +1 -0
  196. package/dist/src/utils/switchboard.d.ts +2 -2
  197. package/dist/src/utils/switchboard.d.ts.map +1 -1
  198. package/dist/src/utils/switchboard.js +16 -19
  199. package/dist/src/utils/switchboard.js.map +1 -1
  200. package/dist/src/utils/url.d.ts +22 -0
  201. package/dist/src/utils/url.d.ts.map +1 -0
  202. package/dist/src/utils/url.js +59 -0
  203. package/dist/src/utils/url.js.map +1 -0
  204. package/dist/src/utils/user.d.ts +5 -0
  205. package/dist/src/utils/user.d.ts.map +1 -0
  206. package/dist/src/utils/user.js +15 -0
  207. package/dist/src/utils/user.js.map +1 -0
  208. package/dist/src/utils/vetra.d.ts +7 -0
  209. package/dist/src/utils/vetra.d.ts.map +1 -0
  210. package/dist/src/utils/vetra.js +78 -0
  211. package/dist/src/utils/vetra.js.map +1 -0
  212. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  213. package/dist/vitest.config.d.ts +3 -0
  214. package/dist/vitest.config.d.ts.map +1 -0
  215. package/dist/vitest.config.js +24 -0
  216. package/dist/vitest.config.js.map +1 -0
  217. package/package.json +11 -5
  218. package/dist/package.json +0 -75
  219. package/dist/src/hooks/document-state.d.ts +0 -24
  220. package/dist/src/hooks/document-state.d.ts.map +0 -1
  221. package/dist/src/hooks/document-state.js +0 -89
  222. package/dist/src/hooks/document-state.js.map +0 -1
  223. package/dist/src/hooks/useAddDebouncedOperations.d.ts +0 -7
  224. package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +0 -1
  225. package/dist/src/hooks/useAddDebouncedOperations.js +0 -53
  226. package/dist/src/hooks/useAddDebouncedOperations.js.map +0 -1
  227. package/dist/src/hooks/useConnectCrypto.d.ts +0 -4
  228. package/dist/src/hooks/useConnectCrypto.d.ts.map +0 -1
  229. package/dist/src/hooks/useConnectCrypto.js +0 -57
  230. package/dist/src/hooks/useConnectCrypto.js.map +0 -1
  231. package/dist/src/hooks/useDocument.d.ts +0 -8
  232. package/dist/src/hooks/useDocument.d.ts.map +0 -1
  233. package/dist/src/hooks/useDocument.js +0 -32
  234. package/dist/src/hooks/useDocument.js.map +0 -1
  235. package/dist/src/hooks/useDocumentDispatch.d.ts +0 -10
  236. package/dist/src/hooks/useDocumentDispatch.d.ts.map +0 -1
  237. package/dist/src/hooks/useDocumentDispatch.js +0 -42
  238. package/dist/src/hooks/useDocumentDispatch.js.map +0 -1
  239. package/dist/src/hooks/useDocumentDrives.d.ts +0 -12
  240. package/dist/src/hooks/useDocumentDrives.d.ts.map +0 -1
  241. package/dist/src/hooks/useDocumentDrives.js +0 -122
  242. package/dist/src/hooks/useDocumentDrives.js.map +0 -1
  243. package/dist/src/hooks/useDocumentEditor.d.ts +0 -32
  244. package/dist/src/hooks/useDocumentEditor.d.ts.map +0 -1
  245. package/dist/src/hooks/useDocumentEditor.js +0 -41
  246. package/dist/src/hooks/useDocumentEditor.js.map +0 -1
  247. package/dist/src/hooks/useDriveActions.d.ts +0 -79
  248. package/dist/src/hooks/useDriveActions.d.ts.map +0 -1
  249. package/dist/src/hooks/useDriveActions.js +0 -108
  250. package/dist/src/hooks/useDriveActions.js.map +0 -1
  251. package/dist/src/hooks/useDriveContext.d.ts.map +0 -1
  252. package/dist/src/hooks/useDriveContext.js.map +0 -1
  253. package/dist/src/hooks/useUserPermissions.d.ts +0 -6
  254. package/dist/src/hooks/useUserPermissions.d.ts.map +0 -1
  255. package/dist/src/hooks/useUserPermissions.js +0 -7
  256. package/dist/src/hooks/useUserPermissions.js.map +0 -1
  257. package/dist/src/renown/types.d.ts +0 -76
  258. package/dist/src/renown/types.d.ts.map +0 -1
  259. package/dist/src/utils/export-document.d.ts +0 -3
  260. package/dist/src/utils/export-document.d.ts.map +0 -1
  261. package/dist/src/utils/export-document.js +0 -19
  262. package/dist/src/utils/export-document.js.map +0 -1
  263. package/dist/src/utils/signature.d.ts +0 -5
  264. package/dist/src/utils/signature.d.ts.map +0 -1
  265. package/dist/src/utils/signature.js +0 -40
  266. package/dist/src/utils/signature.js.map +0 -1
  267. /package/dist/src/{renown → events}/types.js +0 -0
@@ -0,0 +1,274 @@
1
+ import { addFile as baseAddFile, addFolder as baseAddFolder, copyNode as baseCopyNode, deleteNode as baseDeleteNode, moveNode as baseMoveNode, updateFile as baseUpdateFile, generateNodesCopy, isFileNode, isFolderNode, logger, updateNode, } from "document-drive";
2
+ import { baseLoadFromInput, baseSaveToFileHandle, createPresignedHeader, createZip, generateId, replayDocument, } from "document-model";
3
+ import { queueActions, queueOperations, uploadOperations, } from "../actions/queue.js";
4
+ import { getUserPermissions } from "../utils/user.js";
5
+ export function downloadFile(document, fileName) {
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 = fileName;
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, suggestedName) {
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
+ const name = `${suggestedName || document.header.name || "Untitled"}.${extension ? `${extension}.` : ""}zip`;
29
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
30
+ if (!window.showSaveFilePicker) {
31
+ return downloadFile(document, name);
32
+ }
33
+ try {
34
+ const fileHandle = await window.showSaveFilePicker({
35
+ suggestedName: name,
36
+ });
37
+ await baseSaveToFileHandle(document, fileHandle);
38
+ return fileHandle;
39
+ }
40
+ catch (e) {
41
+ // ignores error if user cancelled the file picker
42
+ if (!(e instanceof DOMException && e.name === "AbortError")) {
43
+ throw e;
44
+ }
45
+ }
46
+ }
47
+ export async function loadFile(path) {
48
+ const reactor = window.reactor;
49
+ if (!reactor) {
50
+ return;
51
+ }
52
+ const documentModelModules = reactor.getDocumentModelModules();
53
+ const baseDocument = await baseLoadFromInput(path, (state) => state, { checkHashes: true });
54
+ const documentModelModule = documentModelModules.find((module) => module.documentModel.id === baseDocument.header.documentType);
55
+ if (!documentModelModule) {
56
+ throw new Error(`Document "${baseDocument.header.documentType}" is not supported`);
57
+ }
58
+ return documentModelModule.utils.loadFromInput(path);
59
+ }
60
+ export async function addDocument(driveId, name, documentType, parentFolder, document, id, preferredEditor) {
61
+ const reactor = window.reactor;
62
+ if (!reactor) {
63
+ return;
64
+ }
65
+ const { isAllowedToCreateDocuments } = getUserPermissions();
66
+ if (!isAllowedToCreateDocuments) {
67
+ throw new Error("User is not allowed to create documents");
68
+ }
69
+ const drive = await reactor.getDrive(driveId);
70
+ const documentId = id ?? generateId();
71
+ const reactorDocumentModelModules = reactor.getDocumentModelModules();
72
+ const documentModelModuleFromReactor = reactorDocumentModelModules.find((module) => module.documentModel.id === documentType);
73
+ if (!documentModelModuleFromReactor) {
74
+ throw new Error(`Document model module for type ${documentType} not found`);
75
+ }
76
+ const newDocument = documentModelModuleFromReactor.utils.createDocument({
77
+ ...document?.state,
78
+ });
79
+ newDocument.header = createPresignedHeader(documentId, documentType);
80
+ newDocument.header.name = name;
81
+ const documentMeta = preferredEditor ? { preferredEditor } : undefined;
82
+ await reactor.addDocument(newDocument, documentMeta);
83
+ const action = baseAddFile({
84
+ id: documentId,
85
+ name,
86
+ documentType,
87
+ parentFolder: parentFolder ?? null,
88
+ });
89
+ const unsafeCastAsDrive = (await queueActions(drive, action));
90
+ const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === documentId);
91
+ if (!node || !isFileNode(node)) {
92
+ throw new Error("There was an error adding document");
93
+ }
94
+ return node;
95
+ }
96
+ export async function addFile(file, driveId, name, parentFolder) {
97
+ logger.verbose(`addFile(drive: ${driveId}, name: ${name}, folder: ${parentFolder})`);
98
+ const reactor = window.reactor;
99
+ if (!reactor) {
100
+ return;
101
+ }
102
+ const { isAllowedToCreateDocuments } = getUserPermissions();
103
+ if (!isAllowedToCreateDocuments) {
104
+ throw new Error("User is not allowed to create files");
105
+ }
106
+ const document = await loadFile(file);
107
+ if (!document) {
108
+ throw new Error("No document loaded");
109
+ }
110
+ const documentModule = reactor
111
+ .getDocumentModelModules()
112
+ .find((module) => module.documentModel.id === document.header.documentType);
113
+ if (!documentModule) {
114
+ throw new Error(`Document model module for type ${document.header.documentType} not found`);
115
+ }
116
+ let duplicateId = false;
117
+ try {
118
+ await reactor.getDocument(document.header.id);
119
+ duplicateId = true;
120
+ }
121
+ catch {
122
+ // document id not found
123
+ }
124
+ const documentId = duplicateId ? generateId() : document.header.id;
125
+ const header = createPresignedHeader(documentId, document.header.documentType);
126
+ header.lastModifiedAtUtcIso = document.header.createdAtUtcIso;
127
+ header.meta = document.header.meta;
128
+ header.name = name || document.header.name;
129
+ // copy the document at it's initial state
130
+ const initialDocument = {
131
+ ...document,
132
+ header,
133
+ state: document.initialState,
134
+ operations: Object.keys(document.operations).reduce((acc, key) => {
135
+ acc[key] = [];
136
+ return acc;
137
+ }, {}),
138
+ };
139
+ const fileNode = await addDocument(driveId, name || document.header.name, document.header.documentType, parentFolder, initialDocument, documentId, document.header.meta?.preferredEditor);
140
+ if (!fileNode) {
141
+ throw new Error("There was an error adding file");
142
+ }
143
+ // then add all the operations in chunks
144
+ uploadOperations(documentId, document.operations, queueOperations).catch((error) => {
145
+ throw error;
146
+ });
147
+ }
148
+ export async function updateFile(driveId, nodeId, documentType, name, parentFolder) {
149
+ const reactor = window.reactor;
150
+ if (!reactor) {
151
+ return;
152
+ }
153
+ const { isAllowedToCreateDocuments } = getUserPermissions();
154
+ if (!isAllowedToCreateDocuments) {
155
+ throw new Error("User is not allowed to update files");
156
+ }
157
+ const drive = await reactor.getDrive(driveId);
158
+ const unsafeCastAsDrive = (await queueActions(drive, baseUpdateFile({
159
+ id: nodeId,
160
+ name: name ?? undefined,
161
+ parentFolder,
162
+ documentType,
163
+ })));
164
+ const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === nodeId);
165
+ if (!node || !isFileNode(node)) {
166
+ throw new Error("There was an error updating document");
167
+ }
168
+ return node;
169
+ }
170
+ export async function addFolder(driveId, name, parentFolder) {
171
+ const reactor = window.reactor;
172
+ if (!reactor) {
173
+ return;
174
+ }
175
+ const { isAllowedToCreateDocuments } = getUserPermissions();
176
+ if (!isAllowedToCreateDocuments) {
177
+ throw new Error("User is not allowed to create folders");
178
+ }
179
+ const folderId = generateId();
180
+ const drive = await reactor.getDrive(driveId);
181
+ const unsafeCastAsDrive = (await queueActions(drive, baseAddFolder({
182
+ id: folderId,
183
+ name,
184
+ parentFolder,
185
+ })));
186
+ const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === folderId);
187
+ if (!node || !isFolderNode(node)) {
188
+ throw new Error("There was an error adding folder");
189
+ }
190
+ return node;
191
+ }
192
+ export async function deleteNode(driveId, nodeId) {
193
+ const reactor = window.reactor;
194
+ if (!reactor) {
195
+ return;
196
+ }
197
+ const { isAllowedToCreateDocuments } = getUserPermissions();
198
+ if (!isAllowedToCreateDocuments) {
199
+ throw new Error("User is not allowed to delete documents");
200
+ }
201
+ const drive = await reactor.getDrive(driveId);
202
+ await queueActions(drive, baseDeleteNode({ id: nodeId }));
203
+ }
204
+ export async function renameNode(driveId, nodeId, name) {
205
+ const reactor = window.reactor;
206
+ if (!reactor) {
207
+ return;
208
+ }
209
+ const { isAllowedToCreateDocuments } = getUserPermissions();
210
+ if (!isAllowedToCreateDocuments) {
211
+ throw new Error("User is not allowed to rename documents");
212
+ }
213
+ const drive = await reactor.getDrive(driveId);
214
+ const unsafeCastAsDrive = (await queueActions(drive, updateNode({ id: nodeId, name })));
215
+ const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === nodeId);
216
+ if (!node) {
217
+ throw new Error("There was an error renaming node");
218
+ }
219
+ return node;
220
+ }
221
+ export async function moveNode(driveId, src, target) {
222
+ const reactor = window.reactor;
223
+ if (!reactor) {
224
+ return;
225
+ }
226
+ const { isAllowedToCreateDocuments } = getUserPermissions();
227
+ if (!isAllowedToCreateDocuments) {
228
+ throw new Error("User is not allowed to move documents");
229
+ }
230
+ const drive = await reactor.getDrive(driveId);
231
+ return await queueActions(drive, baseMoveNode({ srcFolder: src.id, targetParentFolder: target?.id }));
232
+ }
233
+ function _duplicateDocument(reactor, document, newId = generateId()) {
234
+ const documentModule = reactor
235
+ .getDocumentModelModules()
236
+ .find((module) => module.documentModel.id === document.header.documentType);
237
+ if (!documentModule) {
238
+ throw new Error(`Document model module for type ${document.header.documentType} not found`);
239
+ }
240
+ return replayDocument(document.initialState, document.operations, documentModule.reducer, undefined, createPresignedHeader(newId, document.header.documentType));
241
+ }
242
+ export async function copyNode(driveId, src, target) {
243
+ const reactor = window.reactor;
244
+ if (!reactor) {
245
+ return;
246
+ }
247
+ const { isAllowedToCreateDocuments } = getUserPermissions();
248
+ if (!isAllowedToCreateDocuments) {
249
+ throw new Error("User is not allowed to copy documents");
250
+ }
251
+ const drive = await reactor.getDrive(driveId);
252
+ const copyNodesInput = generateNodesCopy({
253
+ srcId: src.id,
254
+ targetParentFolder: target?.id,
255
+ targetName: src.name,
256
+ }, () => generateId(), drive.state.global.nodes);
257
+ const fileNodesToCopy = copyNodesInput.filter((copyNodeInput) => {
258
+ const node = drive.state.global.nodes.find((node) => node.id === copyNodeInput.srcId);
259
+ return node !== undefined && isFileNode(node);
260
+ });
261
+ for (const fileNodeToCopy of fileNodesToCopy) {
262
+ try {
263
+ const document = await reactor.getDocument(fileNodeToCopy.srcId);
264
+ const duplicatedDocument = _duplicateDocument(reactor, document, fileNodeToCopy.targetId);
265
+ await reactor.addDocument(duplicatedDocument);
266
+ }
267
+ catch (e) {
268
+ logger.error(`Error copying document ${fileNodeToCopy.srcId}: ${e}`);
269
+ }
270
+ }
271
+ const copyActions = copyNodesInput.map((copyNodeInput) => baseCopyNode(copyNodeInput));
272
+ return await queueActions(drive, copyActions);
273
+ }
274
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/actions/document.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,SAAS,IAAI,aAAa,EAC1B,QAAQ,IAAI,YAAY,EACxB,UAAU,IAAI,cAAc,EAC5B,QAAQ,IAAI,YAAY,EACxB,UAAU,IAAI,cAAc,EAC5B,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,UAAU,GAIX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,UAAU,EACV,cAAc,GAGf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,QAAoB,EAAE,QAAgB;IACjE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,GAAG;SACA,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC/B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC;SACD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAoB,EAAE,aAAsB;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAC/D,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACnD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,YAAY,CACrE,CAAC;IACF,MAAM,SAAS,GAAG,mBAAmB,EAAE,aAAa,CAAC,SAAS,CAAC;IAC/D,MAAM,IAAI,GAAG,GAAG,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,IACjE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,EAChC,KAAK,CAAC;IAEN,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;YACjD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,kDAAkD;QAClD,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAmB;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAC1C,IAAI,EACJ,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK,EAC5B,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;IACF,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACnD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,YAAY,CAAC,MAAM,CAAC,YAAY,CACzE,CAAC;IACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,CAAC,MAAM,CAAC,YAAY,oBAAoB,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,IAAY,EACZ,YAAoB,EACpB,YAAqB,EACrB,QAAqB,EACrB,EAAW,EACX,eAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;IACtC,MAAM,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IACtE,MAAM,8BAA8B,GAAG,2BAA2B,CAAC,IAAI,CACrE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,YAAY,CACrD,CAAC;IACF,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,YAAY,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,WAAW,GAAG,8BAA8B,CAAC,KAAK,CAAC,cAAc,CAAC;QACtE,GAAG,QAAQ,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,WAAW,CAAC,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrE,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,EAAE,EAAE,UAAU;QACd,IAAI;QACJ,YAAY;QACZ,YAAY,EAAE,YAAY,IAAI,IAAI;KACnC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,CAAC,MAAM,YAAY,CAC3C,KAAK,EACL,MAAM,CACP,CAA0B,CAAC;IAE5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CACjC,CAAC;IACF,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAmB,EACnB,OAAe,EACf,IAAa,EACb,YAAqB;IAErB,MAAM,CAAC,OAAO,CACZ,kBAAkB,OAAO,WAAW,IAAI,aAAa,YAAY,GAAG,CACrE,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,cAAc,GAAG,OAAO;SAC3B,uBAAuB,EAAE;SACzB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,CAAC,YAAY,YAAY,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,qBAAqB,CAClC,UAAU,EACV,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;IACF,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;IAC9D,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IACnC,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAE3C,0CAA0C;IAC1C,MAAM,eAAe,GAAG;QACtB,GAAG,QAAQ;QACX,MAAM;QACN,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAwB,CAAC;KAC7B,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,OAAO,EACP,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAC5B,QAAQ,CAAC,MAAM,CAAC,YAAY,EAC5B,YAAY,EACZ,eAAe,EACf,UAAU,EACV,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CACtC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,wCAAwC;IACxC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,KAAK,CACtE,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,KAAK,CAAC;IACd,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,MAAc,EACd,YAAqB,EACrB,IAAa,EACb,YAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,CAAC,MAAM,YAAY,CAC3C,KAAK,EACL,cAAc,CAAC;QACb,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,YAAY;QACZ,YAAY;KACb,CAAC,CACH,CAA0B,CAAC;IAE5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAC7B,CAAC;IACF,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,IAAY,EACZ,YAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,CAAC,MAAM,YAAY,CAC3C,KAAK,EACL,aAAa,CAAC;QACZ,EAAE,EAAE,QAAQ;QACZ,IAAI;QACJ,YAAY;KACb,CAAC,CACH,CAA0B,CAAC;IAE5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAC/B,CAAC;IACF,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,MAAc;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,MAAc,EACd,IAAY;IAEZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,CAAC,MAAM,YAAY,CAC3C,KAAK,EACL,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACjC,CAA0B,CAAC;IAE5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAC7B,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAe,EACf,GAAS,EACT,MAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9C,OAAO,MAAM,YAAY,CACvB,KAAK,EACL,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAA6B,EAC7B,QAAoB,EACpB,KAAK,GAAG,UAAU,EAAE;IAEpB,MAAM,cAAc,GAAG,OAAO;SAC3B,uBAAuB,EAAE;SACzB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,CAAC,YAAY,YAAY,CAC3E,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CACnB,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,UAAU,EACnB,cAAc,CAAC,OAAO,EACtB,SAAS,EACT,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAe,EACf,GAAS,EACT,MAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,MAAM,EAAE,0BAA0B,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,iBAAiB,CACtC;QACE,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,kBAAkB,EAAE,MAAM,EAAE,EAAE;QAC9B,UAAU,EAAE,GAAG,CAAC,IAAI;KACrB,EACD,GAAG,EAAE,CAAC,UAAU,EAAE,EAClB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACzB,CAAC;IAEF,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,KAAK,CAC1C,CAAC;QACF,OAAO,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEjE,MAAM,kBAAkB,GAAG,kBAAkB,CAC3C,OAAO,EACP,QAAQ,EACR,cAAc,CAAC,QAAQ,CACxB,CAAC;YAEF,MAAM,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,0BAA0B,cAAc,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CACvD,YAAY,CAAC,aAAa,CAAC,CAC5B,CAAC;IACF,OAAO,MAAM,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,13 @@
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 removeTrigger(driveId: string, triggerId: string): Promise<void>;
11
+ export declare function registerNewPullResponderTrigger(driveId: string, url: string, options: Pick<RemoteDriveOptions, "pullFilter" | "pullInterval">): Promise<PullResponderTrigger | undefined>;
12
+ export declare function addTrigger(driveId: string, trigger: Trigger): Promise<void>;
13
+ //# 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,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,191 @@
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 removeTrigger(driveId, triggerId) {
120
+ const reactor = window.reactor;
121
+ if (!reactor) {
122
+ return;
123
+ }
124
+ const drive = await reactor.getDrive(driveId);
125
+ const unsafeCastAsDrive = (await queueActions(drive, baseRemoveTrigger({ triggerId })));
126
+ const trigger = unsafeCastAsDrive.state.local.triggers.find((trigger) => trigger.id === triggerId);
127
+ if (trigger) {
128
+ throw new Error(`There was an error removing trigger ${triggerId}`);
129
+ }
130
+ }
131
+ export async function registerNewPullResponderTrigger(driveId, url, options) {
132
+ const reactor = window.reactor;
133
+ if (!reactor) {
134
+ return;
135
+ }
136
+ const uuid = generateId();
137
+ const listener = {
138
+ driveId,
139
+ listenerId: uuid,
140
+ block: false,
141
+ filter: {
142
+ branch: options.pullFilter?.branch ?? [],
143
+ documentId: options.pullFilter?.documentId ?? [],
144
+ documentType: options.pullFilter?.documentType ?? [],
145
+ scope: options.pullFilter?.scope ?? [],
146
+ },
147
+ system: false,
148
+ label: `Pullresponder #${uuid}`,
149
+ callInfo: {
150
+ data: "",
151
+ name: "PullResponder",
152
+ transmitterType: "PullResponder",
153
+ },
154
+ };
155
+ // TODO: circular reference
156
+ // TODO: once we have DI, remove this and pass around
157
+ const listenerManager = reactor.listeners;
158
+ listener.transmitter = new PullResponderTransmitter(listener, listenerManager);
159
+ // set the listener on the manager directly (bypassing operations)
160
+ try {
161
+ await listenerManager.setListener(driveId, listener);
162
+ }
163
+ catch (error) {
164
+ throw new Error(`Listener couldn't be registered: ${error}`);
165
+ }
166
+ // for backwards compatibility: return everything but the transmitter
167
+ return {
168
+ driveId,
169
+ filter: listener.filter,
170
+ data: {
171
+ interval: `${options.pullInterval}` || "1000",
172
+ listenerId: uuid,
173
+ url,
174
+ },
175
+ id: uuid,
176
+ type: "PullResponder",
177
+ };
178
+ }
179
+ export async function addTrigger(driveId, trigger) {
180
+ const reactor = window.reactor;
181
+ if (!reactor) {
182
+ return;
183
+ }
184
+ const drive = await reactor.getDrive(driveId);
185
+ const unsafeCastAsDrive = (await queueActions(drive, baseAddTrigger({ trigger })));
186
+ const newTrigger = unsafeCastAsDrive.state.local.triggers.find((trigger) => trigger.id === trigger.id);
187
+ if (!newTrigger) {
188
+ throw new Error(`There was an error adding the trigger ${trigger.id}`);
189
+ }
190
+ }
191
+ //# 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,6 @@
1
+ export * from "./dispatch.js";
2
+ export * from "./document.js";
3
+ export * from "./drive.js";
4
+ export * from "./queue.js";
5
+ export * from "./sign.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -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,6 @@
1
+ export * from "./dispatch.js";
2
+ export * from "./document.js";
3
+ export * from "./drive.js";
4
+ export * from "./queue.js";
5
+ export * from "./sign.js";
6
+ //# sourceMappingURL=index.js.map
@@ -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,8 @@
1
+ import { type Action, type DocumentOperations, 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(documentId: string, operationOrOperations: Operation[] | Operation | undefined): Promise<PHDocument | undefined>;
4
+ export declare function deduplicateOperations(existingOperations: Record<string, Operation[]>, operationsToDeduplicate: Operation[]): Operation[];
5
+ export declare function uploadOperations(documentId: string, allOperations: DocumentOperations, pushOperations: (documentId: string, operations: Operation[]) => Promise<PHDocument | undefined>, options?: {
6
+ operationsLimit?: number;
7
+ }): Promise<void>;
8
+ //# 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,EACL,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAExB,wBAAsB,YAAY,CAChC,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,mCA4B/C;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,qBAAqB,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,mCAoB3D;AAED,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC/C,uBAAuB,EAAE,SAAS,EAAE,eA8ErC;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,EAAE,KACpB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,iBA+BvC"}