@powerhousedao/connect 1.0.16-dev.1 → 1.0.16-dev.3
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-mup06TxF.js → app-DwbSet2T.js} +3794 -1119
- package/dist/assets/{app-loader-ByxyqGmZ.js → app-loader-BdSc2Vvq.js} +215 -170
- package/dist/assets/{ccip-ASjKzegb.js → ccip-DZZrGkgi.js} +3 -9
- package/dist/assets/{content-DmxMPHbR.js → content-DhXca2Mw.js} +433 -22
- package/dist/assets/{index-B8rDFj5N.js → index-UNOfsmTA.js} +3 -9
- package/dist/assets/{index-Bf_-VrwW.js → index-eML1bcMq.js} +3 -3
- package/dist/assets/index-ft3Wt36_.js +404 -0
- package/dist/assets/{main.BooYX2Lr.js → main.OXkp562h.js} +1 -1
- package/dist/index.html +2 -34
- package/dist/vite-envs.sh +1 -1
- package/package.json +6 -6
- package/dist/assets/index-10OwZr6e.js +0 -2560
- 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-7OQWVUC5.js +0 -43
- package/dist/modules/@powerhousedao/reactor-browser/chunk-7RTGQTV5.js +0 -14215
- 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-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-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-NPCM4GRM.js +0 -82
- 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-REEGAZVT.js +0 -113
- package/dist/modules/@powerhousedao/reactor-browser/chunk-RGIB4DD4.js +0 -162
- package/dist/modules/@powerhousedao/reactor-browser/chunk-RUNTF5WD.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-ULJSSMFA.js +0 -178
- 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-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
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useUserPermissions
|
|
3
|
-
} from "./chunk-OVGOA2P5.js";
|
|
4
|
-
import {
|
|
5
|
-
drivesToHash
|
|
6
|
-
} from "./chunk-P6NJ6IAQ.js";
|
|
7
|
-
import {
|
|
8
|
-
ReadDriveNotFoundError
|
|
9
|
-
} from "./chunk-7RTGQTV5.js";
|
|
10
|
-
|
|
11
|
-
// ../../packages/reactor-browser/dist/src/context/read-mode.js
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import { createContext, useContext, useEffect, useMemo, useState } from "react";
|
|
14
|
-
var __decorate = function(decorators, target, key, desc) {
|
|
15
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
-
};
|
|
20
|
-
var logger = {
|
|
21
|
-
error: console.error
|
|
22
|
-
};
|
|
23
|
-
function checkServer(target, propertyKey, descriptor) {
|
|
24
|
-
const originalMethod = descriptor.value;
|
|
25
|
-
descriptor.value = function(...args) {
|
|
26
|
-
if (!this.server) {
|
|
27
|
-
throw new Error("Read mode document drive not initialized.");
|
|
28
|
-
}
|
|
29
|
-
return originalMethod.apply(this, args);
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function bindClassMethods(instance) {
|
|
33
|
-
const prototype = Object.getPrototypeOf(instance);
|
|
34
|
-
const propertyNames = Object.getOwnPropertyNames(prototype);
|
|
35
|
-
propertyNames.forEach((name) => {
|
|
36
|
-
const descriptor = Object.getOwnPropertyDescriptor(prototype, name);
|
|
37
|
-
if (descriptor && typeof descriptor.value === "function" && name !== "constructor") {
|
|
38
|
-
instance[name] = instance[name].bind(instance);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
var ReadModeContextImpl = class {
|
|
43
|
-
server;
|
|
44
|
-
constructor(documentDrive) {
|
|
45
|
-
bindClassMethods(this);
|
|
46
|
-
this.server = documentDrive;
|
|
47
|
-
}
|
|
48
|
-
getServer() {
|
|
49
|
-
return this.server;
|
|
50
|
-
}
|
|
51
|
-
setDocumentDrive(documentDrive) {
|
|
52
|
-
this.server = documentDrive;
|
|
53
|
-
}
|
|
54
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
55
|
-
migrateReadDrive(id, options) {
|
|
56
|
-
return this.server.migrateReadDrive(id, options);
|
|
57
|
-
}
|
|
58
|
-
addReadDrive(url, options) {
|
|
59
|
-
return this.server.addReadDrive(url, options);
|
|
60
|
-
}
|
|
61
|
-
getReadDrives() {
|
|
62
|
-
return this.server.getReadDrives();
|
|
63
|
-
}
|
|
64
|
-
getReadDriveBySlug(slug) {
|
|
65
|
-
return this.server.getReadDriveBySlug(slug);
|
|
66
|
-
}
|
|
67
|
-
getReadDrive(id) {
|
|
68
|
-
return this.server.getReadDrive(id);
|
|
69
|
-
}
|
|
70
|
-
getReadDriveContext(id) {
|
|
71
|
-
return this.server.getReadDriveContext(id);
|
|
72
|
-
}
|
|
73
|
-
fetchDrive(id) {
|
|
74
|
-
return this.server.fetchDrive(id);
|
|
75
|
-
}
|
|
76
|
-
fetchDocument(driveId, documentId, documentType) {
|
|
77
|
-
return this.server.fetchDocument(driveId, documentId, documentType);
|
|
78
|
-
}
|
|
79
|
-
deleteReadDrive(id) {
|
|
80
|
-
return this.server.deleteReadDrive(id);
|
|
81
|
-
}
|
|
82
|
-
onReadDrivesUpdate(listener) {
|
|
83
|
-
return this.server.onReadDrivesUpdate(listener);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
__decorate([
|
|
87
|
-
checkServer
|
|
88
|
-
], ReadModeContextImpl.prototype, "migrateReadDrive", null);
|
|
89
|
-
__decorate([
|
|
90
|
-
checkServer
|
|
91
|
-
], ReadModeContextImpl.prototype, "addReadDrive", null);
|
|
92
|
-
__decorate([
|
|
93
|
-
checkServer
|
|
94
|
-
], ReadModeContextImpl.prototype, "getReadDrives", null);
|
|
95
|
-
__decorate([
|
|
96
|
-
checkServer
|
|
97
|
-
], ReadModeContextImpl.prototype, "getReadDriveBySlug", null);
|
|
98
|
-
__decorate([
|
|
99
|
-
checkServer
|
|
100
|
-
], ReadModeContextImpl.prototype, "getReadDrive", null);
|
|
101
|
-
__decorate([
|
|
102
|
-
checkServer
|
|
103
|
-
], ReadModeContextImpl.prototype, "getReadDriveContext", null);
|
|
104
|
-
__decorate([
|
|
105
|
-
checkServer
|
|
106
|
-
], ReadModeContextImpl.prototype, "fetchDrive", null);
|
|
107
|
-
__decorate([
|
|
108
|
-
checkServer
|
|
109
|
-
], ReadModeContextImpl.prototype, "fetchDocument", null);
|
|
110
|
-
__decorate([
|
|
111
|
-
checkServer
|
|
112
|
-
], ReadModeContextImpl.prototype, "deleteReadDrive", null);
|
|
113
|
-
__decorate([
|
|
114
|
-
checkServer
|
|
115
|
-
], ReadModeContextImpl.prototype, "onReadDrivesUpdate", null);
|
|
116
|
-
var ReadModeInstance = new ReadModeContextImpl();
|
|
117
|
-
var ReadModeContext = createContext({
|
|
118
|
-
...ReadModeInstance,
|
|
119
|
-
readDrives: []
|
|
120
|
-
});
|
|
121
|
-
async function getReadDrives(instance) {
|
|
122
|
-
const driveIds = await instance.getReadDrives();
|
|
123
|
-
const drives = await Promise.all(driveIds.map((id) => instance.getReadDrive(id)));
|
|
124
|
-
return drives.filter((drive) => !(drive instanceof ReadDriveNotFoundError));
|
|
125
|
-
}
|
|
126
|
-
var ReadModeContextProvider = (props) => {
|
|
127
|
-
const { reactorPromise, ...restProps } = props;
|
|
128
|
-
const [readDrives, setReadDrives] = useState([]);
|
|
129
|
-
const userPermissions = useUserPermissions();
|
|
130
|
-
const [ready, setReady] = useState(false);
|
|
131
|
-
useEffect(() => {
|
|
132
|
-
reactorPromise.then((reactor) => {
|
|
133
|
-
ReadModeInstance.setDocumentDrive(reactor);
|
|
134
|
-
setReady(true);
|
|
135
|
-
}).catch(logger.error);
|
|
136
|
-
}, [reactorPromise]);
|
|
137
|
-
const readMode = userPermissions === void 0 ? void 0 : !(userPermissions.isAllowedToCreateDocuments || userPermissions.isAllowedToEditDocuments);
|
|
138
|
-
useMemo(() => {
|
|
139
|
-
if (!ready || readMode === void 0) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
const accessLevel = readMode ? "READ" : "WRITE";
|
|
143
|
-
const server = ReadModeInstance.getServer();
|
|
144
|
-
if (server && typeof server.setAllDefaultDrivesAccessLevel === "function") {
|
|
145
|
-
server.setAllDefaultDrivesAccessLevel(accessLevel).catch(logger.error);
|
|
146
|
-
}
|
|
147
|
-
}, [readMode, ready]);
|
|
148
|
-
useEffect(() => {
|
|
149
|
-
if (!ready) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
getReadDrives(ReadModeInstance).then((drives) => setReadDrives(drives)).catch(logger.error);
|
|
153
|
-
const unsubscribe = ReadModeInstance.onReadDrivesUpdate((newDrives) => {
|
|
154
|
-
setReadDrives((readDrives2) => readDrives2.length !== newDrives.length || drivesToHash(readDrives2) !== drivesToHash(newDrives) ? newDrives : readDrives2);
|
|
155
|
-
}).catch(logger.error);
|
|
156
|
-
return () => {
|
|
157
|
-
unsubscribe.then((unsub) => {
|
|
158
|
-
if (typeof unsub === "function") {
|
|
159
|
-
unsub();
|
|
160
|
-
}
|
|
161
|
-
}).catch(logger.error);
|
|
162
|
-
};
|
|
163
|
-
}, [ready]);
|
|
164
|
-
const context = useMemo(() => {
|
|
165
|
-
return {
|
|
166
|
-
...ReadModeInstance,
|
|
167
|
-
readDrives
|
|
168
|
-
};
|
|
169
|
-
}, [readDrives]);
|
|
170
|
-
return _jsx(ReadModeContext.Provider, { ...restProps, value: context });
|
|
171
|
-
};
|
|
172
|
-
var useReadModeContext = () => useContext(ReadModeContext);
|
|
173
|
-
|
|
174
|
-
export {
|
|
175
|
-
ReadModeContext,
|
|
176
|
-
ReadModeContextProvider,
|
|
177
|
-
useReadModeContext
|
|
178
|
-
};
|
|
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,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-ULJSSMFA.js";
|
|
7
|
-
import "../chunk-OVGOA2P5.js";
|
|
8
|
-
import "../chunk-P6NJ6IAQ.js";
|
|
9
|
-
import "../chunk-7RTGQTV5.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-ULJSSMFA.js";
|
|
6
|
-
import "../chunk-OVGOA2P5.js";
|
|
7
|
-
import "../chunk-P6NJ6IAQ.js";
|
|
8
|
-
import "../chunk-7RTGQTV5.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
|
-
};
|