@powerhousedao/connect 1.0.16-dev.0 → 1.0.16-dev.2
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/dist/assets/{app-CMOavKiq.js → app-DhH3gUSI.js} +60 -56
- package/dist/assets/{app-loader-DC5IyHMQ.js → app-loader-Btk_wf_z.js} +123 -67
- package/dist/assets/{ccip-DSbQ3ps3.js → ccip-D9a0ttP2.js} +3 -3
- package/dist/assets/{content-CHzDFdGF.js → content-BlRqE_8w.js} +18 -3
- package/dist/assets/{index-DPALYL1s.js → index-BuxuyYQU.js} +3 -3
- package/dist/assets/{index-CL8GxjbV.js → index-D3bygFYe.js} +4 -4
- package/dist/assets/{index-BAzB-bGZ.js → index-Whh7mT2J.js} +3 -3
- package/dist/assets/{main.glrVfQff.js → main.C1DJvpcL.js} +1 -1
- package/dist/index.html +2 -34
- package/dist/vite-envs.sh +1 -1
- package/package.json +9 -9
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2ESYSVXG.js +0 -48
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2ONJ2PX4.js +0 -50
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2X2M6BYG.js +0 -2542
- package/dist/modules/@powerhousedao/reactor-browser/chunk-7MMXY5VI.js +0 -14203
- package/dist/modules/@powerhousedao/reactor-browser/chunk-7OQWVUC5.js +0 -43
- package/dist/modules/@powerhousedao/reactor-browser/chunk-C7QRY43M.js +0 -786
- package/dist/modules/@powerhousedao/reactor-browser/chunk-CO2RVWYY.js +0 -67
- package/dist/modules/@powerhousedao/reactor-browser/chunk-DKDARAJS.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-EB4SAP74.js +0 -178
- package/dist/modules/@powerhousedao/reactor-browser/chunk-FQF4YAVC.js +0 -11917
- package/dist/modules/@powerhousedao/reactor-browser/chunk-GDP7BUIH.js +0 -45
- package/dist/modules/@powerhousedao/reactor-browser/chunk-IQTSFTNF.js +0 -48
- package/dist/modules/@powerhousedao/reactor-browser/chunk-J5TYPY7U.js +0 -36
- package/dist/modules/@powerhousedao/reactor-browser/chunk-KEMIF43H.js +0 -82
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LH2T6NLN.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LRNZZ3SR.js +0 -14
- package/dist/modules/@powerhousedao/reactor-browser/chunk-NHD6VUCD.js +0 -53
- package/dist/modules/@powerhousedao/reactor-browser/chunk-OHBF7Q5F.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-OVGOA2P5.js +0 -11
- package/dist/modules/@powerhousedao/reactor-browser/chunk-P6NJ6IAQ.js +0 -12
- package/dist/modules/@powerhousedao/reactor-browser/chunk-RGIB4DD4.js +0 -162
- package/dist/modules/@powerhousedao/reactor-browser/chunk-SNZRCTNV.js +0 -2477
- package/dist/modules/@powerhousedao/reactor-browser/chunk-TNPKLKIJ.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-U34SEKEB.js +0 -250
- package/dist/modules/@powerhousedao/reactor-browser/chunk-U36SV333.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-VT7IMWQB.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-XBTEGV5M.js +0 -17
- package/dist/modules/@powerhousedao/reactor-browser/chunk-Y2AV245J.js +0 -113
- package/dist/modules/@powerhousedao/reactor-browser/chunk-Y7NTRTMT.js +0 -25
- package/dist/modules/@powerhousedao/reactor-browser/chunk-YG67WAIS.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-YWKVPJNL.js +0 -52
- package/dist/modules/@powerhousedao/reactor-browser/chunk-ZL5IPB6D.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/context/index.js +0 -16
- package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +0 -15
- package/dist/modules/@powerhousedao/reactor-browser/crypto/browser.js +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/crypto/index.js +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/document-model.js +0 -10
- package/dist/modules/@powerhousedao/reactor-browser/hooks/document-state.js +0 -96
- package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +0 -98
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useAddDebouncedOperations.js +0 -11
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useConnectCrypto.js +0 -12
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocument.js +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDispatch.js +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDrives.js +0 -13
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentEditor.js +0 -20
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +0 -9
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +0 -14
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveContext.js +0 -9
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUiNodesContext.js +0 -46
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUserPermissions.js +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/index.js +0 -127
- package/dist/modules/@powerhousedao/reactor-browser/reactor.js +0 -11
- package/dist/modules/@powerhousedao/reactor-browser/renown/constants.js +0 -53
- package/dist/modules/@powerhousedao/reactor-browser/renown/types.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/storage/index.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/storage/types.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/types/drive-editor.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/types/index.js +0 -2
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/constants.js +0 -37
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/types.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/utils/export-document.js +0 -8
- package/dist/modules/@powerhousedao/reactor-browser/utils/index.js +0 -9
- package/dist/modules/@powerhousedao/reactor-browser/utils/signature.js +0 -10
|
File without changes
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
atom,
|
|
3
|
-
useAtom
|
|
4
|
-
} from "./chunk-C7QRY43M.js";
|
|
5
|
-
import {
|
|
6
|
-
documentToHash
|
|
7
|
-
} from "./chunk-P6NJ6IAQ.js";
|
|
8
|
-
|
|
9
|
-
// ../../packages/reactor-browser/dist/src/hooks/useDocumentDrives.js
|
|
10
|
-
import { useMemo, useCallback } from "react";
|
|
11
|
-
|
|
12
|
-
// ../../node_modules/.pnpm/jotai@2.12.2_@types+react@18.3.20_react@18.3.1/node_modules/jotai/esm/vanilla/utils.mjs
|
|
13
|
-
var RESET = Symbol(
|
|
14
|
-
(import.meta.env ? import.meta.env.MODE : void 0) !== "production" ? "RESET" : ""
|
|
15
|
-
);
|
|
16
|
-
function atomFamily(initializeAtom, areEqual) {
|
|
17
|
-
let shouldRemove = null;
|
|
18
|
-
const atoms = /* @__PURE__ */ new Map();
|
|
19
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
20
|
-
const createAtom = (param) => {
|
|
21
|
-
let item;
|
|
22
|
-
if (areEqual === void 0) {
|
|
23
|
-
item = atoms.get(param);
|
|
24
|
-
} else {
|
|
25
|
-
for (const [key, value] of atoms) {
|
|
26
|
-
if (areEqual(key, param)) {
|
|
27
|
-
item = value;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (item !== void 0) {
|
|
33
|
-
if (shouldRemove == null ? void 0 : shouldRemove(item[1], param)) {
|
|
34
|
-
createAtom.remove(param);
|
|
35
|
-
} else {
|
|
36
|
-
return item[0];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const newAtom = initializeAtom(param);
|
|
40
|
-
atoms.set(param, [newAtom, Date.now()]);
|
|
41
|
-
notifyListeners("CREATE", param, newAtom);
|
|
42
|
-
return newAtom;
|
|
43
|
-
};
|
|
44
|
-
const notifyListeners = (type, param, atom2) => {
|
|
45
|
-
for (const listener of listeners) {
|
|
46
|
-
listener({ type, param, atom: atom2 });
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
createAtom.unstable_listen = (callback) => {
|
|
50
|
-
listeners.add(callback);
|
|
51
|
-
return () => {
|
|
52
|
-
listeners.delete(callback);
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
createAtom.getParams = () => atoms.keys();
|
|
56
|
-
createAtom.remove = (param) => {
|
|
57
|
-
if (areEqual === void 0) {
|
|
58
|
-
if (!atoms.has(param)) return;
|
|
59
|
-
const [atom2] = atoms.get(param);
|
|
60
|
-
atoms.delete(param);
|
|
61
|
-
notifyListeners("REMOVE", param, atom2);
|
|
62
|
-
} else {
|
|
63
|
-
for (const [key, [atom2]] of atoms) {
|
|
64
|
-
if (areEqual(key, param)) {
|
|
65
|
-
atoms.delete(key);
|
|
66
|
-
notifyListeners("REMOVE", key, atom2);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
createAtom.setShouldRemove = (fn) => {
|
|
73
|
-
shouldRemove = fn;
|
|
74
|
-
if (!shouldRemove) return;
|
|
75
|
-
for (const [key, [atom2, createdAt]] of atoms) {
|
|
76
|
-
if (shouldRemove(createdAt, key)) {
|
|
77
|
-
atoms.delete(key);
|
|
78
|
-
notifyListeners("REMOVE", key, atom2);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
return createAtom;
|
|
83
|
-
}
|
|
84
|
-
var isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === "function";
|
|
85
|
-
function createJSONStorage(getStringStorage = () => {
|
|
86
|
-
try {
|
|
87
|
-
return window.localStorage;
|
|
88
|
-
} catch (e) {
|
|
89
|
-
if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
|
|
90
|
-
if (typeof window !== "undefined") {
|
|
91
|
-
console.warn(e);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return void 0;
|
|
95
|
-
}
|
|
96
|
-
}, options) {
|
|
97
|
-
var _a;
|
|
98
|
-
let lastStr;
|
|
99
|
-
let lastValue;
|
|
100
|
-
const storage = {
|
|
101
|
-
getItem: (key, initialValue) => {
|
|
102
|
-
var _a2, _b;
|
|
103
|
-
const parse = (str2) => {
|
|
104
|
-
str2 = str2 || "";
|
|
105
|
-
if (lastStr !== str2) {
|
|
106
|
-
try {
|
|
107
|
-
lastValue = JSON.parse(str2, options == null ? void 0 : options.reviver);
|
|
108
|
-
} catch (e) {
|
|
109
|
-
return initialValue;
|
|
110
|
-
}
|
|
111
|
-
lastStr = str2;
|
|
112
|
-
}
|
|
113
|
-
return lastValue;
|
|
114
|
-
};
|
|
115
|
-
const str = (_b = (_a2 = getStringStorage()) == null ? void 0 : _a2.getItem(key)) != null ? _b : null;
|
|
116
|
-
if (isPromiseLike(str)) {
|
|
117
|
-
return str.then(parse);
|
|
118
|
-
}
|
|
119
|
-
return parse(str);
|
|
120
|
-
},
|
|
121
|
-
setItem: (key, newValue) => {
|
|
122
|
-
var _a2;
|
|
123
|
-
return (_a2 = getStringStorage()) == null ? void 0 : _a2.setItem(
|
|
124
|
-
key,
|
|
125
|
-
JSON.stringify(newValue, options == null ? void 0 : options.replacer)
|
|
126
|
-
);
|
|
127
|
-
},
|
|
128
|
-
removeItem: (key) => {
|
|
129
|
-
var _a2;
|
|
130
|
-
return (_a2 = getStringStorage()) == null ? void 0 : _a2.removeItem(key);
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
const createHandleSubscribe = (subscriber2) => (key, callback, initialValue) => subscriber2(key, (v) => {
|
|
134
|
-
let newValue;
|
|
135
|
-
try {
|
|
136
|
-
newValue = JSON.parse(v || "");
|
|
137
|
-
} catch (e) {
|
|
138
|
-
newValue = initialValue;
|
|
139
|
-
}
|
|
140
|
-
callback(newValue);
|
|
141
|
-
});
|
|
142
|
-
let subscriber;
|
|
143
|
-
try {
|
|
144
|
-
subscriber = (_a = getStringStorage()) == null ? void 0 : _a.subscribe;
|
|
145
|
-
} catch (e) {
|
|
146
|
-
}
|
|
147
|
-
if (!subscriber && typeof window !== "undefined" && typeof window.addEventListener === "function" && window.Storage) {
|
|
148
|
-
subscriber = (key, callback) => {
|
|
149
|
-
if (!(getStringStorage() instanceof window.Storage)) {
|
|
150
|
-
return () => {
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
const storageEventCallback = (e) => {
|
|
154
|
-
if (e.storageArea === getStringStorage() && e.key === key) {
|
|
155
|
-
callback(e.newValue);
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
window.addEventListener("storage", storageEventCallback);
|
|
159
|
-
return () => {
|
|
160
|
-
window.removeEventListener("storage", storageEventCallback);
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
if (subscriber) {
|
|
165
|
-
storage.subscribe = createHandleSubscribe(subscriber);
|
|
166
|
-
}
|
|
167
|
-
return storage;
|
|
168
|
-
}
|
|
169
|
-
var defaultStorage = createJSONStorage();
|
|
170
|
-
|
|
171
|
-
// ../../packages/reactor-browser/dist/src/hooks/useDocumentDrives.js
|
|
172
|
-
var documentDrivesAtom = atom(/* @__PURE__ */ new Map());
|
|
173
|
-
function drivesToHash(drives) {
|
|
174
|
-
return drives.map(documentToHash).join("&");
|
|
175
|
-
}
|
|
176
|
-
var readWriteDocumentDrivesAtom = (server) => () => atom((get) => server ? get(documentDrivesAtom).get(server) ?? [] : [], (_get, set, newDrives) => {
|
|
177
|
-
set(documentDrivesAtom, (map) => {
|
|
178
|
-
if (!server) {
|
|
179
|
-
return /* @__PURE__ */ new Map();
|
|
180
|
-
}
|
|
181
|
-
const currentDrives = map.get(server) ?? [];
|
|
182
|
-
if (currentDrives.length !== newDrives.length || drivesToHash(currentDrives) !== drivesToHash(newDrives)) {
|
|
183
|
-
return new Map(map).set(server, newDrives);
|
|
184
|
-
} else {
|
|
185
|
-
return map;
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
var documentDrivesInitializedMapAtomFamily = atomFamily(() => atom("INITIAL"));
|
|
190
|
-
function useDocumentDrives(reactor) {
|
|
191
|
-
const [documentDrives, setDocumentDrives] = useAtom(useMemo(readWriteDocumentDrivesAtom(reactor), [reactor]));
|
|
192
|
-
const refreshDocumentDrives = useCallback(async () => {
|
|
193
|
-
if (!reactor) {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
const documentDrives2 = [];
|
|
197
|
-
try {
|
|
198
|
-
const driveIds = await reactor.getDrives();
|
|
199
|
-
for (const id of driveIds) {
|
|
200
|
-
try {
|
|
201
|
-
const drive = await reactor.getDrive(id);
|
|
202
|
-
documentDrives2.push(drive);
|
|
203
|
-
} catch (error) {
|
|
204
|
-
console.error(error);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
} catch (error) {
|
|
208
|
-
console.error(error);
|
|
209
|
-
} finally {
|
|
210
|
-
setDocumentDrives(documentDrives2);
|
|
211
|
-
}
|
|
212
|
-
}, [reactor]);
|
|
213
|
-
const [status, setStatus] = useAtom(documentDrivesInitializedMapAtomFamily(reactor));
|
|
214
|
-
if (status === "INITIAL") {
|
|
215
|
-
setStatus("LOADING");
|
|
216
|
-
refreshDocumentDrives().then(() => setStatus("LOADED")).catch(() => setStatus("ERROR"));
|
|
217
|
-
}
|
|
218
|
-
const serverSubscribeUpdates = useCallback((clientErrorhandler) => {
|
|
219
|
-
if (!reactor) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
const unsub1 = reactor.on("syncStatus", async (_event, _status, error) => {
|
|
223
|
-
if (error) {
|
|
224
|
-
console.error(error);
|
|
225
|
-
}
|
|
226
|
-
await refreshDocumentDrives();
|
|
227
|
-
});
|
|
228
|
-
const unsub2 = reactor.on("strandUpdate", () => refreshDocumentDrives());
|
|
229
|
-
const unsubOnSyncError = reactor.on("clientStrandsError", clientErrorhandler.strandsErrorHandler);
|
|
230
|
-
const unsub3 = reactor.on("defaultRemoteDrive", () => refreshDocumentDrives());
|
|
231
|
-
return () => {
|
|
232
|
-
unsub1();
|
|
233
|
-
unsub2();
|
|
234
|
-
unsubOnSyncError();
|
|
235
|
-
unsub3();
|
|
236
|
-
};
|
|
237
|
-
}, [reactor, refreshDocumentDrives]);
|
|
238
|
-
return useMemo(() => [
|
|
239
|
-
documentDrives,
|
|
240
|
-
refreshDocumentDrives,
|
|
241
|
-
serverSubscribeUpdates,
|
|
242
|
-
status
|
|
243
|
-
], [documentDrives, status]);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
export {
|
|
247
|
-
drivesToHash,
|
|
248
|
-
documentDrivesInitializedMapAtomFamily,
|
|
249
|
-
useDocumentDrives
|
|
250
|
-
};
|
|
File without changes
|
|
File without changes
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// ../../packages/reactor-browser/dist/src/hooks/useDriveContext.js
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useContext } from "react";
|
|
4
|
-
var DriveContext = createContext(void 0);
|
|
5
|
-
var DriveContextProvider = ({ value, children }) => _jsx(DriveContext.Provider, { value, children });
|
|
6
|
-
function useDriveContext() {
|
|
7
|
-
const context = useContext(DriveContext);
|
|
8
|
-
if (!context) {
|
|
9
|
-
throw new Error("useDriveContext must be used within a DriveContextProvider");
|
|
10
|
-
}
|
|
11
|
-
return context;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export {
|
|
15
|
-
DriveContextProvider,
|
|
16
|
-
useDriveContext
|
|
17
|
-
};
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
addFolder,
|
|
3
|
-
copyNode,
|
|
4
|
-
deleteNode,
|
|
5
|
-
generateAddNodeAction,
|
|
6
|
-
generateNodesCopy,
|
|
7
|
-
isFileNode,
|
|
8
|
-
isFolderNode,
|
|
9
|
-
moveNode,
|
|
10
|
-
updateNode
|
|
11
|
-
} from "./chunk-7MMXY5VI.js";
|
|
12
|
-
import {
|
|
13
|
-
generateId
|
|
14
|
-
} from "./chunk-FQF4YAVC.js";
|
|
15
|
-
|
|
16
|
-
// ../../packages/reactor-browser/dist/src/hooks/useDriveActions.js
|
|
17
|
-
import { useMemo } from "react";
|
|
18
|
-
var generateId2 = () => generateId().toString();
|
|
19
|
-
function getNode(id, drive) {
|
|
20
|
-
return drive.state.global.nodes.find((node) => node.id === id);
|
|
21
|
-
}
|
|
22
|
-
function createDriveActions(document, dispatch, context) {
|
|
23
|
-
const drive = document;
|
|
24
|
-
const { id: driveId } = drive.state.global;
|
|
25
|
-
const { selectedNode } = context;
|
|
26
|
-
const handleAddFolder = async (name, parentFolder, id = generateId2()) => {
|
|
27
|
-
dispatch(addFolder({
|
|
28
|
-
id,
|
|
29
|
-
name,
|
|
30
|
-
parentFolder: parentFolder ?? null
|
|
31
|
-
}));
|
|
32
|
-
};
|
|
33
|
-
const addDocument = async (name, documentType, document2, parentFolder, id = generateId2()) => {
|
|
34
|
-
const action = generateAddNodeAction(drive.state.global, {
|
|
35
|
-
id,
|
|
36
|
-
name,
|
|
37
|
-
parentFolder: parentFolder ?? null,
|
|
38
|
-
documentType,
|
|
39
|
-
document: document2
|
|
40
|
-
}, ["global"]);
|
|
41
|
-
dispatch(action);
|
|
42
|
-
};
|
|
43
|
-
const addFile = async (file, parentFolder = selectedNode && isFileNode(selectedNode) ? void 0 : selectedNode?.id, name = file.name.replace(/\.zip$/gim, "")) => {
|
|
44
|
-
const folder = parentFolder ? getNode(parentFolder, drive) : void 0;
|
|
45
|
-
if (parentFolder && !folder) {
|
|
46
|
-
throw new Error(`Parent folder with id "${parentFolder}" not found`);
|
|
47
|
-
}
|
|
48
|
-
if (folder && !isFolderNode(folder)) {
|
|
49
|
-
throw new Error(`Parent folder with id "${parentFolder}" is not a folder`);
|
|
50
|
-
}
|
|
51
|
-
await context.addFile(file, driveId, name, parentFolder);
|
|
52
|
-
};
|
|
53
|
-
const handleDeleteNode = async (id) => {
|
|
54
|
-
dispatch(deleteNode({ id }));
|
|
55
|
-
};
|
|
56
|
-
const renameNode = async (id, name) => {
|
|
57
|
-
dispatch(updateNode({ id, name }));
|
|
58
|
-
};
|
|
59
|
-
const handleMoveNode = async (sourceId, targetId) => {
|
|
60
|
-
dispatch(moveNode({
|
|
61
|
-
srcFolder: sourceId,
|
|
62
|
-
targetParentFolder: targetId
|
|
63
|
-
}));
|
|
64
|
-
};
|
|
65
|
-
const handleCopyNode = async (sourceId, targetFolderId) => {
|
|
66
|
-
const target = targetFolderId ? getNode(targetFolderId, drive) : void 0;
|
|
67
|
-
if (targetFolderId && !target) {
|
|
68
|
-
throw new Error(`Target node with id "${targetFolderId}" not found`);
|
|
69
|
-
}
|
|
70
|
-
if (target && !isFolderNode(target)) {
|
|
71
|
-
throw new Error(`Target node with id "${targetFolderId}" is not a folder`);
|
|
72
|
-
}
|
|
73
|
-
const source = getNode(sourceId, drive);
|
|
74
|
-
if (!source) {
|
|
75
|
-
throw new Error(`Source node with id "${sourceId}" not found`);
|
|
76
|
-
}
|
|
77
|
-
const copyNodesInput = generateNodesCopy({
|
|
78
|
-
srcId: sourceId,
|
|
79
|
-
targetParentFolder: target?.id,
|
|
80
|
-
targetName: source.name
|
|
81
|
-
}, generateId2, drive.state.global.nodes);
|
|
82
|
-
const copyActions = copyNodesInput.map((copyNodeInput) => copyNode(copyNodeInput));
|
|
83
|
-
for (const copyAction of copyActions) {
|
|
84
|
-
dispatch(copyAction);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const duplicateNode = async (sourceId) => {
|
|
88
|
-
const node = getNode(sourceId, drive);
|
|
89
|
-
if (!node) {
|
|
90
|
-
throw new Error(`Node with id "${sourceId}" not found`);
|
|
91
|
-
}
|
|
92
|
-
await handleCopyNode(node.id, node.parentFolder || void 0);
|
|
93
|
-
};
|
|
94
|
-
return {
|
|
95
|
-
context,
|
|
96
|
-
selectNode: context.selectNode,
|
|
97
|
-
addFolder: handleAddFolder,
|
|
98
|
-
addFile,
|
|
99
|
-
addDocument,
|
|
100
|
-
deleteNode: handleDeleteNode,
|
|
101
|
-
renameNode,
|
|
102
|
-
moveNode: handleMoveNode,
|
|
103
|
-
copyNode: handleCopyNode,
|
|
104
|
-
duplicateNode
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
function useDriveActions(document, dispatch, context) {
|
|
108
|
-
return useMemo(() => createDriveActions(document, dispatch, context), [document, dispatch, context]);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export {
|
|
112
|
-
useDriveActions
|
|
113
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createZip
|
|
3
|
-
} from "./chunk-FQF4YAVC.js";
|
|
4
|
-
|
|
5
|
-
// ../../packages/reactor-browser/dist/src/utils/export-document.js
|
|
6
|
-
var exportDocument = async (document, name, extension) => {
|
|
7
|
-
const zip = createZip(document);
|
|
8
|
-
const ext = extension ? `.${extension.replace(/^\./, "")}` : "";
|
|
9
|
-
try {
|
|
10
|
-
const blob = await zip.generateAsync({ type: "blob" });
|
|
11
|
-
const link = window.document.createElement("a");
|
|
12
|
-
link.style.display = "none";
|
|
13
|
-
link.href = URL.createObjectURL(blob);
|
|
14
|
-
link.download = `${name || document.name || "Untitled"}${ext}.zip`;
|
|
15
|
-
window.document.body.appendChild(link);
|
|
16
|
-
link.click();
|
|
17
|
-
window.document.body.removeChild(link);
|
|
18
|
-
} catch (error) {
|
|
19
|
-
console.error(error);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
exportDocument
|
|
25
|
-
};
|
|
File without changes
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// ../../packages/reactor-browser/dist/src/crypto/browser.js
|
|
2
|
-
var BrowserKeyStorage = class _BrowserKeyStorage {
|
|
3
|
-
static #DB_NAME = "browserKeyDB";
|
|
4
|
-
static #STORE_NAME = "keyPairs";
|
|
5
|
-
static #KEY = "keyPair";
|
|
6
|
-
#db;
|
|
7
|
-
constructor() {
|
|
8
|
-
this.#db = new Promise((resolve, reject) => {
|
|
9
|
-
const req = indexedDB.open(_BrowserKeyStorage.#DB_NAME, 1);
|
|
10
|
-
req.onupgradeneeded = () => {
|
|
11
|
-
req.result.createObjectStore(_BrowserKeyStorage.#STORE_NAME);
|
|
12
|
-
};
|
|
13
|
-
req.onsuccess = () => resolve(req.result);
|
|
14
|
-
req.onerror = () => reject(req.error);
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
async #useStore(mode = "readwrite") {
|
|
18
|
-
const database = await this.#db;
|
|
19
|
-
const transaction = database.transaction(_BrowserKeyStorage.#STORE_NAME, mode);
|
|
20
|
-
const store = transaction.objectStore(_BrowserKeyStorage.#STORE_NAME);
|
|
21
|
-
return store;
|
|
22
|
-
}
|
|
23
|
-
async saveKeyPair(keyPair) {
|
|
24
|
-
const store = await this.#useStore();
|
|
25
|
-
const request = store.put(keyPair, _BrowserKeyStorage.#KEY);
|
|
26
|
-
return new Promise((resolve, reject) => {
|
|
27
|
-
request.onsuccess = () => {
|
|
28
|
-
resolve();
|
|
29
|
-
};
|
|
30
|
-
request.onerror = () => {
|
|
31
|
-
reject(new Error("Failed to save key pair"));
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
async loadKeyPair() {
|
|
36
|
-
const store = await this.#useStore("readonly");
|
|
37
|
-
const request = store.getAll();
|
|
38
|
-
return new Promise((resolve, reject) => {
|
|
39
|
-
request.onsuccess = () => {
|
|
40
|
-
const keyPair = request.result.length ? request.result[0] : void 0;
|
|
41
|
-
resolve(keyPair);
|
|
42
|
-
};
|
|
43
|
-
request.onerror = () => {
|
|
44
|
-
reject(new Error("Failed to load key pair"));
|
|
45
|
-
};
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export {
|
|
51
|
-
BrowserKeyStorage
|
|
52
|
-
};
|
|
File without changes
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import "../chunk-U36SV333.js";
|
|
2
|
-
import {
|
|
3
|
-
ReadModeContext,
|
|
4
|
-
ReadModeContextProvider,
|
|
5
|
-
useReadModeContext
|
|
6
|
-
} from "../chunk-EB4SAP74.js";
|
|
7
|
-
import "../chunk-OVGOA2P5.js";
|
|
8
|
-
import "../chunk-P6NJ6IAQ.js";
|
|
9
|
-
import "../chunk-7MMXY5VI.js";
|
|
10
|
-
import "../chunk-FQF4YAVC.js";
|
|
11
|
-
import "../chunk-2ESYSVXG.js";
|
|
12
|
-
export {
|
|
13
|
-
ReadModeContext,
|
|
14
|
-
ReadModeContextProvider,
|
|
15
|
-
useReadModeContext
|
|
16
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ReadModeContext,
|
|
3
|
-
ReadModeContextProvider,
|
|
4
|
-
useReadModeContext
|
|
5
|
-
} from "../chunk-EB4SAP74.js";
|
|
6
|
-
import "../chunk-OVGOA2P5.js";
|
|
7
|
-
import "../chunk-P6NJ6IAQ.js";
|
|
8
|
-
import "../chunk-7MMXY5VI.js";
|
|
9
|
-
import "../chunk-FQF4YAVC.js";
|
|
10
|
-
import "../chunk-2ESYSVXG.js";
|
|
11
|
-
export {
|
|
12
|
-
ReadModeContext,
|
|
13
|
-
ReadModeContextProvider,
|
|
14
|
-
useReadModeContext
|
|
15
|
-
};
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import "../chunk-2ESYSVXG.js";
|
|
2
|
-
|
|
3
|
-
// ../../packages/reactor-browser/dist/src/hooks/document-state.js
|
|
4
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
5
|
-
function useDocumentsState(args) {
|
|
6
|
-
const { reactor, driveId, documentIds, options } = args;
|
|
7
|
-
const [statesByDocumentId, setStatesByDocumentId] = useState({});
|
|
8
|
-
const isInitialized = useRef(false);
|
|
9
|
-
const isSubscribed = useRef(false);
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
async function initialize() {
|
|
12
|
-
if (isInitialized.current)
|
|
13
|
-
return;
|
|
14
|
-
if (!reactor || !driveId)
|
|
15
|
-
return;
|
|
16
|
-
isInitialized.current = true;
|
|
17
|
-
const ids = documentIds ?? await reactor.getDocuments(driveId);
|
|
18
|
-
const statesByDocumentId2 = {};
|
|
19
|
-
for (const id of ids) {
|
|
20
|
-
const document = await reactor.getDocument(driveId, id, options);
|
|
21
|
-
statesByDocumentId2[id] = {
|
|
22
|
-
...document.state,
|
|
23
|
-
documentType: document.documentType,
|
|
24
|
-
revision: document.revision,
|
|
25
|
-
created: document.created,
|
|
26
|
-
lastModified: document.lastModified
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
setStatesByDocumentId(statesByDocumentId2);
|
|
30
|
-
}
|
|
31
|
-
void initialize();
|
|
32
|
-
}, [reactor, driveId, options]);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
if (!reactor || !driveId)
|
|
35
|
-
return;
|
|
36
|
-
if (isSubscribed.current)
|
|
37
|
-
return;
|
|
38
|
-
isSubscribed.current = true;
|
|
39
|
-
const unsubscribe = reactor.on("strandUpdate", async (update) => {
|
|
40
|
-
if (update.driveId !== driveId || documentIds && !documentIds.includes(update.documentId))
|
|
41
|
-
return;
|
|
42
|
-
const updatedDocument = await reactor.getDocument(driveId, update.documentId, options);
|
|
43
|
-
setStatesByDocumentId((prev) => {
|
|
44
|
-
const newStatesByDocumentId = { ...prev };
|
|
45
|
-
newStatesByDocumentId[update.documentId] = {
|
|
46
|
-
...updatedDocument.state,
|
|
47
|
-
documentType: updatedDocument.documentType,
|
|
48
|
-
revision: updatedDocument.revision,
|
|
49
|
-
created: updatedDocument.created,
|
|
50
|
-
lastModified: updatedDocument.lastModified
|
|
51
|
-
};
|
|
52
|
-
return newStatesByDocumentId;
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
return unsubscribe;
|
|
56
|
-
}, [reactor, driveId, options]);
|
|
57
|
-
return useMemo(() => statesByDocumentId, [statesByDocumentId]);
|
|
58
|
-
}
|
|
59
|
-
function makeDriveDocumentStatesHook(reactor) {
|
|
60
|
-
const useDriveDocumentStates = useCallback((args) => {
|
|
61
|
-
const { driveId, documentIds, options } = args;
|
|
62
|
-
return useDocumentsState({
|
|
63
|
-
reactor,
|
|
64
|
-
driveId,
|
|
65
|
-
documentIds,
|
|
66
|
-
options
|
|
67
|
-
});
|
|
68
|
-
}, [reactor]);
|
|
69
|
-
return useDriveDocumentStates;
|
|
70
|
-
}
|
|
71
|
-
function makeDriveDocumentStateHook(reactor) {
|
|
72
|
-
const useDriveDocumentState = useCallback((args) => {
|
|
73
|
-
const { driveId, documentId } = args;
|
|
74
|
-
return useDocumentState({
|
|
75
|
-
reactor,
|
|
76
|
-
driveId,
|
|
77
|
-
documentId
|
|
78
|
-
});
|
|
79
|
-
}, [reactor]);
|
|
80
|
-
return useDriveDocumentState;
|
|
81
|
-
}
|
|
82
|
-
function useDocumentState(args) {
|
|
83
|
-
const { reactor, driveId, documentId } = args;
|
|
84
|
-
const state = useDocumentsState({
|
|
85
|
-
reactor,
|
|
86
|
-
driveId,
|
|
87
|
-
documentIds: [documentId]
|
|
88
|
-
});
|
|
89
|
-
return useMemo(() => state[documentId], [state, documentId]);
|
|
90
|
-
}
|
|
91
|
-
export {
|
|
92
|
-
makeDriveDocumentStateHook,
|
|
93
|
-
makeDriveDocumentStatesHook,
|
|
94
|
-
useDocumentState,
|
|
95
|
-
useDocumentsState
|
|
96
|
-
};
|