@powerhousedao/reactor-browser 1.10.2 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +47 -0
- package/dist/src/context/index.d.ts +1 -1
- package/dist/src/context/index.d.ts.map +1 -1
- package/dist/src/context/index.js +1 -0
- package/dist/src/context/read-mode.d.ts +3 -3
- package/dist/src/context/read-mode.d.ts.map +1 -1
- package/dist/src/context/read-mode.js +198 -0
- package/dist/src/crypto/browser.d.ts +1 -1
- package/dist/src/crypto/browser.d.ts.map +1 -1
- package/dist/src/crypto/browser.js +49 -0
- package/dist/src/crypto/index.js +121 -0
- package/dist/src/document-model.d.ts +3 -3
- package/dist/src/document-model.d.ts.map +1 -1
- package/dist/src/document-model.js +5 -0
- package/dist/src/hooks/index.d.ts +9 -5
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +9 -0
- package/dist/src/hooks/useAddDebouncedOperations.d.ts +3 -3
- package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +1 -1
- package/dist/src/hooks/useAddDebouncedOperations.js +55 -0
- package/dist/src/hooks/useConnectCrypto.d.ts +1 -1
- package/dist/src/hooks/useConnectCrypto.d.ts.map +1 -1
- package/dist/src/hooks/useConnectCrypto.js +40 -0
- package/dist/src/hooks/useDocument.d.ts +3 -3
- package/dist/src/hooks/useDocument.d.ts.map +1 -1
- package/dist/src/hooks/useDocument.js +37 -0
- package/dist/src/hooks/useDocumentDispatch.d.ts +6 -10
- package/dist/src/hooks/useDocumentDispatch.d.ts.map +1 -1
- package/dist/src/hooks/useDocumentDispatch.js +41 -0
- package/dist/src/hooks/useDocumentDrives.d.ts +4 -3
- package/dist/src/hooks/useDocumentDrives.d.ts.map +1 -1
- package/dist/src/hooks/useDocumentDrives.js +84 -0
- package/dist/src/hooks/useDocumentEditor.d.ts +13 -13
- package/dist/src/hooks/useDocumentEditor.d.ts.map +1 -1
- package/dist/src/hooks/useDocumentEditor.js +30 -0
- package/dist/src/hooks/useDriveActions.d.ts +82 -0
- package/dist/src/hooks/useDriveActions.d.ts.map +1 -0
- package/dist/src/hooks/useDriveActions.js +125 -0
- package/dist/src/hooks/useDriveActionsWithUiNodes.d.ts +17 -0
- package/dist/src/hooks/useDriveActionsWithUiNodes.d.ts.map +1 -0
- package/dist/src/hooks/useDriveActionsWithUiNodes.js +71 -0
- package/dist/src/hooks/useDriveContext.d.ts +66 -0
- package/dist/src/hooks/useDriveContext.d.ts.map +1 -0
- package/dist/src/hooks/useDriveContext.js +25 -0
- package/dist/src/hooks/useUiNodesContext.d.ts +25 -0
- package/dist/src/hooks/useUiNodesContext.d.ts.map +1 -0
- package/dist/src/hooks/useUiNodesContext.js +167 -0
- package/dist/src/hooks/useUserPermissions.js +6 -0
- package/dist/src/index.d.ts +5 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/reactor.d.ts +3 -3
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +54 -0
- package/dist/src/renown/constants.js +39 -0
- package/dist/src/renown/types.d.ts +3 -3
- package/dist/src/renown/types.d.ts.map +1 -1
- package/dist/src/renown/types.js +1 -0
- package/dist/src/storage/index.d.ts +1 -1
- package/dist/src/storage/index.d.ts.map +1 -1
- package/dist/src/storage/index.js +1 -0
- package/dist/src/storage/types.js +1 -0
- package/dist/src/uiNodes/constants.d.ts +17 -0
- package/dist/src/uiNodes/constants.d.ts.map +1 -0
- package/dist/src/uiNodes/constants.js +23 -0
- package/dist/src/uiNodes/types.d.ts +61 -0
- package/dist/src/uiNodes/types.d.ts.map +1 -0
- package/dist/src/uiNodes/types.js +1 -0
- package/dist/src/utils/index.d.ts +3 -3
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +8 -0
- package/dist/src/utils/signature.d.ts +3 -3
- package/dist/src/utils/signature.d.ts.map +1 -1
- package/dist/src/utils/signature.js +39 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +15 -22
- package/dist/_virtual/__vite-browser-external.js +0 -5
- package/dist/_virtual/__vite-browser-external.js.map +0 -1
- package/dist/context/read-mode.js +0 -159
- package/dist/context/read-mode.js.map +0 -1
- package/dist/crypto/browser.js +0 -50
- package/dist/crypto/browser.js.map +0 -1
- package/dist/crypto/index.js +0 -109
- package/dist/crypto/index.js.map +0 -1
- package/dist/document-model.js +0 -11
- package/dist/document-model.js.map +0 -1
- package/dist/hooks/useAddDebouncedOperations.js +0 -54
- package/dist/hooks/useAddDebouncedOperations.js.map +0 -1
- package/dist/hooks/useConnectCrypto.js +0 -34
- package/dist/hooks/useConnectCrypto.js.map +0 -1
- package/dist/hooks/useDocument.js +0 -20
- package/dist/hooks/useDocument.js.map +0 -1
- package/dist/hooks/useDocumentDispatch.js +0 -30
- package/dist/hooks/useDocumentDispatch.js.map +0 -1
- package/dist/hooks/useDocumentDrives.js +0 -86
- package/dist/hooks/useDocumentDrives.js.map +0 -1
- package/dist/hooks/useDocumentEditor.js +0 -46
- package/dist/hooks/useDocumentEditor.js.map +0 -1
- package/dist/hooks/useUserPermissions.js +0 -10
- package/dist/hooks/useUserPermissions.js.map +0 -1
- package/dist/index.js +0 -26
- package/dist/index.js.map +0 -1
- package/dist/reactor.js +0 -59
- package/dist/reactor.js.map +0 -1
- package/dist/utils/index.js +0 -16
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/signature.js +0 -35
- package/dist/utils/signature.js.map +0 -1
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { useMemo as f, useCallback as D } from "react";
|
|
2
|
-
import { atom as a, useAtom as l } from "jotai";
|
|
3
|
-
import { atomFamily as I } from "jotai/utils";
|
|
4
|
-
import { documentToHash as A } from "../utils/index.js";
|
|
5
|
-
const p = a(
|
|
6
|
-
/* @__PURE__ */ new Map()
|
|
7
|
-
);
|
|
8
|
-
function v(t) {
|
|
9
|
-
return t.map(A).join("&");
|
|
10
|
-
}
|
|
11
|
-
const b = (t) => () => a(
|
|
12
|
-
(o) => t ? o(p).get(t) ?? [] : [],
|
|
13
|
-
(o, c, n) => {
|
|
14
|
-
c(p, (s) => {
|
|
15
|
-
if (!t)
|
|
16
|
-
return /* @__PURE__ */ new Map();
|
|
17
|
-
const e = s.get(t) ?? [];
|
|
18
|
-
return e.length !== n.length || v(e) !== v(n) ? new Map(s).set(t, n) : s;
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
), g = I(
|
|
22
|
-
() => a("INITIAL")
|
|
23
|
-
);
|
|
24
|
-
function R(t) {
|
|
25
|
-
const [o, c] = l(
|
|
26
|
-
f(b(t), [t])
|
|
27
|
-
), n = D(async () => {
|
|
28
|
-
if (!t)
|
|
29
|
-
return;
|
|
30
|
-
const u = [];
|
|
31
|
-
try {
|
|
32
|
-
const r = await t.getDrives();
|
|
33
|
-
for (const m of r)
|
|
34
|
-
try {
|
|
35
|
-
const i = await t.getDrive(m);
|
|
36
|
-
u.push(i);
|
|
37
|
-
} catch (i) {
|
|
38
|
-
console.error(i);
|
|
39
|
-
}
|
|
40
|
-
} catch (r) {
|
|
41
|
-
console.error(r);
|
|
42
|
-
} finally {
|
|
43
|
-
c(u);
|
|
44
|
-
}
|
|
45
|
-
}, [t]), [s, e] = l(
|
|
46
|
-
g(t)
|
|
47
|
-
);
|
|
48
|
-
s === "INITIAL" && (e("LOADING"), n().then(() => e("LOADED")).catch(() => e("ERROR")));
|
|
49
|
-
const h = D(
|
|
50
|
-
(u) => {
|
|
51
|
-
if (!t)
|
|
52
|
-
return;
|
|
53
|
-
const r = t.on(
|
|
54
|
-
"syncStatus",
|
|
55
|
-
async (E, M, d) => {
|
|
56
|
-
d && console.error(d), await n();
|
|
57
|
-
}
|
|
58
|
-
), m = t.on("strandUpdate", () => n()), i = t.on(
|
|
59
|
-
"clientStrandsError",
|
|
60
|
-
u.strandsErrorHandler
|
|
61
|
-
), y = t.on(
|
|
62
|
-
"defaultRemoteDrive",
|
|
63
|
-
() => n()
|
|
64
|
-
);
|
|
65
|
-
return () => {
|
|
66
|
-
r(), m(), i(), y();
|
|
67
|
-
};
|
|
68
|
-
},
|
|
69
|
-
[t, n]
|
|
70
|
-
);
|
|
71
|
-
return f(
|
|
72
|
-
() => [
|
|
73
|
-
o,
|
|
74
|
-
n,
|
|
75
|
-
h,
|
|
76
|
-
s
|
|
77
|
-
],
|
|
78
|
-
[o, s]
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
export {
|
|
82
|
-
g as documentDrivesInitializedMapAtomFamily,
|
|
83
|
-
v as drivesToHash,
|
|
84
|
-
R as useDocumentDrives
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=useDocumentDrives.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentDrives.js","sources":["../../src/hooks/useDocumentDrives.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport type { IDocumentDriveServer } from \"document-drive/server\";\nimport { DocumentDriveDocument } from \"document-model-libs/document-drive\";\nimport { atom, useAtom } from \"jotai\";\nimport { atomFamily } from \"jotai/utils\";\nimport { Trigger } from \"document-model-libs/document-drive\";\n\nimport { documentToHash } from \"../utils\";\n\nconst documentDrivesAtom = atom(\n new Map<IDocumentDriveServer, DocumentDriveDocument[]>(),\n);\n\nexport function drivesToHash(drives: DocumentDriveDocument[]): string {\n return drives.map(documentToHash).join(\"&\");\n}\n\nconst readWriteDocumentDrivesAtom = (server?: IDocumentDriveServer) => () =>\n atom(\n (get) => (server ? (get(documentDrivesAtom).get(server) ?? []) : []),\n (_get, set, newDrives: DocumentDriveDocument[]) => {\n set(documentDrivesAtom, (map) => {\n if (!server) {\n return new Map();\n }\n const currentDrives = map.get(server) ?? [];\n if (\n currentDrives.length !== newDrives.length ||\n drivesToHash(currentDrives) !== drivesToHash(newDrives)\n ) {\n return new Map(map).set(server, newDrives);\n } else {\n return map;\n }\n });\n },\n );\n\nexport type IDrivesState = \"INITIAL\" | \"LOADING\" | \"LOADED\" | \"ERROR\";\nexport const documentDrivesInitializedMapAtomFamily = atomFamily(() =>\n atom<IDrivesState>(\"INITIAL\"),\n);\n\nexport type ClientErrorHandler = {\n strandsErrorHandler: (\n driveId: string,\n trigger: Trigger,\n status: number,\n errorMessage: string,\n ) => Promise<void>;\n};\n\nexport function useDocumentDrives(reactor?: IDocumentDriveServer) {\n const [documentDrives, setDocumentDrives] = useAtom(\n useMemo(readWriteDocumentDrivesAtom(reactor), [reactor]),\n );\n\n const refreshDocumentDrives = useCallback(async () => {\n if (!reactor) {\n return;\n }\n\n const documentDrives: DocumentDriveDocument[] = [];\n try {\n const driveIds = await reactor.getDrives();\n for (const id of driveIds) {\n try {\n const drive = await reactor.getDrive(id);\n documentDrives.push(drive);\n } catch (error) {\n console.error(error);\n }\n }\n } catch (error) {\n console.error(error);\n } finally {\n setDocumentDrives(documentDrives);\n }\n }, [reactor]);\n\n const [status, setStatus] = useAtom(\n documentDrivesInitializedMapAtomFamily(reactor),\n );\n\n if (status === \"INITIAL\") {\n setStatus(\"LOADING\");\n refreshDocumentDrives()\n .then(() => setStatus(\"LOADED\"))\n .catch(() => setStatus(\"ERROR\"));\n }\n\n const serverSubscribeUpdates = useCallback(\n (clientErrorhandler: ClientErrorHandler) => {\n if (!reactor) {\n return;\n }\n const unsub1 = reactor.on(\n \"syncStatus\",\n async (_event, _status, error) => {\n if (error) {\n console.error(error);\n }\n await refreshDocumentDrives();\n },\n );\n const unsub2 = reactor.on(\"strandUpdate\", () => refreshDocumentDrives());\n const unsubOnSyncError = reactor.on(\n \"clientStrandsError\",\n clientErrorhandler.strandsErrorHandler,\n );\n\n const unsub3 = reactor.on(\"defaultRemoteDrive\", () =>\n refreshDocumentDrives(),\n );\n\n return () => {\n unsub1();\n unsub2();\n unsubOnSyncError();\n unsub3();\n };\n },\n [reactor, refreshDocumentDrives],\n );\n\n return useMemo(\n () =>\n [\n documentDrives,\n refreshDocumentDrives,\n serverSubscribeUpdates,\n status,\n ] as const,\n [documentDrives, status],\n );\n}\n"],"names":["documentDrivesAtom","atom","drivesToHash","drives","documentToHash","readWriteDocumentDrivesAtom","server","get","_get","set","newDrives","map","currentDrives","documentDrivesInitializedMapAtomFamily","atomFamily","useDocumentDrives","reactor","documentDrives","setDocumentDrives","useAtom","useMemo","refreshDocumentDrives","useCallback","driveIds","id","drive","error","status","setStatus","serverSubscribeUpdates","clientErrorhandler","unsub1","_event","_status","unsub2","unsubOnSyncError","unsub3"],"mappings":";;;;AASA,MAAMA,IAAqBC;AAAA,sBACrB,IAAmD;AACzD;AAEO,SAASC,EAAaC,GAAyC;AACpE,SAAOA,EAAO,IAAIC,CAAc,EAAE,KAAK,GAAG;AAC5C;AAEA,MAAMC,IAA8B,CAACC,MAAkC,MACrEL;AAAA,EACE,CAACM,MAASD,IAAUC,EAAIP,CAAkB,EAAE,IAAIM,CAAM,KAAK,CAAA,IAAM,CAAC;AAAA,EAClE,CAACE,GAAMC,GAAKC,MAAuC;AAC7C,IAAAD,EAAAT,GAAoB,CAACW,MAAQ;AAC/B,UAAI,CAACL;AACH,mCAAW,IAAI;AAEjB,YAAMM,IAAgBD,EAAI,IAAIL,CAAM,KAAK,CAAC;AAExC,aAAAM,EAAc,WAAWF,EAAU,UACnCR,EAAaU,CAAa,MAAMV,EAAaQ,CAAS,IAE/C,IAAI,IAAIC,CAAG,EAAE,IAAIL,GAAQI,CAAS,IAElCC;AAAA,IACT,CACD;AAAA,EAAA;AAEL,GAGWE,IAAyCC;AAAA,EAAW,MAC/Db,EAAmB,SAAS;AAC9B;AAWO,SAASc,EAAkBC,GAAgC;AAC1D,QAAA,CAACC,GAAgBC,CAAiB,IAAIC;AAAA,IAC1CC,EAAQf,EAA4BW,CAAO,GAAG,CAACA,CAAO,CAAC;AAAA,EACzD,GAEMK,IAAwBC,EAAY,YAAY;AACpD,QAAI,CAACN;AACH;AAGF,UAAMC,IAA0C,CAAC;AAC7C,QAAA;AACI,YAAAM,IAAW,MAAMP,EAAQ,UAAU;AACzC,iBAAWQ,KAAMD;AACX,YAAA;AACF,gBAAME,IAAQ,MAAMT,EAAQ,SAASQ,CAAE;AACvCP,UAAAA,EAAe,KAAKQ,CAAK;AAAA,iBAClBC,GAAO;AACd,kBAAQ,MAAMA,CAAK;AAAA,QAAA;AAAA,aAGhBA,GAAO;AACd,cAAQ,MAAMA,CAAK;AAAA,IAAA,UACnB;AACA,MAAAR,EAAkBD,CAAc;AAAA,IAAA;AAAA,EAClC,GACC,CAACD,CAAO,CAAC,GAEN,CAACW,GAAQC,CAAS,IAAIT;AAAA,IAC1BN,EAAuCG,CAAO;AAAA,EAChD;AAEA,EAAIW,MAAW,cACbC,EAAU,SAAS,GACGP,EAAA,EACnB,KAAK,MAAMO,EAAU,QAAQ,CAAC,EAC9B,MAAM,MAAMA,EAAU,OAAO,CAAC;AAGnC,QAAMC,IAAyBP;AAAA,IAC7B,CAACQ,MAA2C;AAC1C,UAAI,CAACd;AACH;AAEF,YAAMe,IAASf,EAAQ;AAAA,QACrB;AAAA,QACA,OAAOgB,GAAQC,GAASP,MAAU;AAChC,UAAIA,KACF,QAAQ,MAAMA,CAAK,GAErB,MAAML,EAAsB;AAAA,QAAA;AAAA,MAEhC,GACMa,IAASlB,EAAQ,GAAG,gBAAgB,MAAMK,GAAuB,GACjEc,IAAmBnB,EAAQ;AAAA,QAC/B;AAAA,QACAc,EAAmB;AAAA,MACrB,GAEMM,IAASpB,EAAQ;AAAA,QAAG;AAAA,QAAsB,MAC9CK,EAAsB;AAAA,MACxB;AAEA,aAAO,MAAM;AACJ,QAAAU,EAAA,GACAG,EAAA,GACUC,EAAA,GACVC,EAAA;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAACpB,GAASK,CAAqB;AAAA,EACjC;AAEO,SAAAD;AAAA,IACL,MACE;AAAA,MACEH;AAAA,MACAI;AAAA,MACAQ;AAAA,MACAF;AAAA,IACF;AAAA,IACF,CAACV,GAAgBU,CAAM;AAAA,EACzB;AACF;"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { useDocumentDispatch as g } from "./useDocumentDispatch.js";
|
|
2
|
-
import { addActionContext as v, signOperation as x } from "../utils/signature.js";
|
|
3
|
-
import { useConnectDid as A, useConnectCrypto as k } from "./useConnectCrypto.js";
|
|
4
|
-
import { useAddDebouncedOperations as y } from "./useAddDebouncedOperations.js";
|
|
5
|
-
function j(n, c) {
|
|
6
|
-
const {
|
|
7
|
-
nodeId: o,
|
|
8
|
-
driveId: r,
|
|
9
|
-
documentModel: t,
|
|
10
|
-
document: d,
|
|
11
|
-
user: e
|
|
12
|
-
} = c, i = A(), { sign: s } = k(), u = y(n, {
|
|
13
|
-
driveId: r,
|
|
14
|
-
documentId: o
|
|
15
|
-
}), [m, a, p] = g(
|
|
16
|
-
t.reducer,
|
|
17
|
-
d
|
|
18
|
-
);
|
|
19
|
-
function D(f, h) {
|
|
20
|
-
const l = (C, b) => {
|
|
21
|
-
const { prevState: I } = b;
|
|
22
|
-
x(
|
|
23
|
-
C,
|
|
24
|
-
s,
|
|
25
|
-
o,
|
|
26
|
-
I,
|
|
27
|
-
t.reducer,
|
|
28
|
-
e
|
|
29
|
-
).then((O) => u(O)).catch(console.error);
|
|
30
|
-
};
|
|
31
|
-
a(
|
|
32
|
-
v(f, i, e),
|
|
33
|
-
l,
|
|
34
|
-
h
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
dispatch: D,
|
|
39
|
-
document: m,
|
|
40
|
-
error: p
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export {
|
|
44
|
-
j as useDocumentEditor
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=useDocumentEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentEditor.js","sources":["../../src/hooks/useDocumentEditor.ts"],"sourcesContent":["import {\n Action,\n Document,\n Operation,\n BaseAction,\n DocumentModel,\n ActionErrorCallback,\n} from \"document-model/document\";\nimport { useDocumentDispatch } from \"./useDocumentDispatch\";\nimport { signOperation, addActionContext } from \"../utils/signature\";\nimport { useConnectCrypto, useConnectDid } from \"./useConnectCrypto\";\nimport { useAddDebouncedOperations } from \"./useAddDebouncedOperations\";\nimport { IDocumentDriveServer } from \"document-drive\";\nimport { User } from \"../renown/types\";\n\nexport type DocumentDispatchCallback<State, A extends Action, LocalState> = (\n operation: Operation,\n state: {\n prevState: Document<State, A, LocalState>;\n newState: Document<State, A, LocalState>;\n },\n) => void;\n\nexport type UseDocumentEditorProps<\n T = unknown,\n A extends Action = Action,\n LocalState = unknown,\n> = {\n driveId: string;\n nodeId: string;\n document: Document<T, A, LocalState> | undefined;\n documentModel: DocumentModel<unknown, Action>;\n user?: User;\n onExport?: () => void;\n onOpenSwitchboardLink?: () => Promise<void>;\n onChange?: (document: Document<T, A, LocalState>) => void;\n};\n\nexport function useDocumentEditor(\n reactor: IDocumentDriveServer | undefined,\n props: UseDocumentEditorProps,\n) {\n const {\n nodeId,\n driveId,\n documentModel,\n document: initialDocument,\n user,\n } = props;\n\n const connectDid = useConnectDid();\n const { sign } = useConnectCrypto();\n\n const addDebouncedOprations = useAddDebouncedOperations(reactor, {\n driveId,\n documentId: nodeId,\n });\n\n const [document, _dispatch, error] = useDocumentDispatch(\n documentModel.reducer,\n initialDocument,\n );\n\n function dispatch(\n action: BaseAction | Action,\n onErrorCallback?: ActionErrorCallback,\n ) {\n const callback: DocumentDispatchCallback<unknown, Action, unknown> = (\n operation,\n state,\n ) => {\n const { prevState } = state;\n\n signOperation(\n operation,\n sign,\n nodeId,\n prevState,\n documentModel.reducer,\n user,\n )\n .then((op) => {\n return addDebouncedOprations(op);\n })\n .catch(console.error);\n };\n\n _dispatch(\n addActionContext(action, connectDid, user),\n callback,\n onErrorCallback,\n );\n }\n\n return {\n dispatch,\n document,\n error,\n };\n}\n"],"names":["useDocumentEditor","reactor","props","nodeId","driveId","documentModel","initialDocument","user","connectDid","useConnectDid","sign","useConnectCrypto","addDebouncedOprations","useAddDebouncedOperations","document","_dispatch","error","useDocumentDispatch","dispatch","action","onErrorCallback","callback","operation","state","prevState","signOperation","op","addActionContext"],"mappings":";;;;AAsCgB,SAAAA,EACdC,GACAC,GACA;AACM,QAAA;AAAA,IACJ,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAUC;AAAA,IACV,MAAAC;AAAA,EAAA,IACEL,GAEEM,IAAaC,EAAc,GAC3B,EAAE,MAAAC,EAAK,IAAIC,EAAiB,GAE5BC,IAAwBC,EAA0BZ,GAAS;AAAA,IAC/D,SAAAG;AAAA,IACA,YAAYD;AAAA,EAAA,CACb,GAEK,CAACW,GAAUC,GAAWC,CAAK,IAAIC;AAAA,IACnCZ,EAAc;AAAA,IACdC;AAAA,EACF;AAES,WAAAY,EACPC,GACAC,GACA;AACM,UAAAC,IAA+D,CACnEC,GACAC,MACG;AACG,YAAA,EAAE,WAAAC,MAAcD;AAEtB,MAAAE;AAAA,QACEH;AAAA,QACAZ;AAAA,QACAP;AAAA,QACAqB;AAAA,QACAnB,EAAc;AAAA,QACdE;AAAA,MAAA,EAEC,KAAK,CAACmB,MACEd,EAAsBc,CAAE,CAChC,EACA,MAAM,QAAQ,KAAK;AAAA,IACxB;AAEA,IAAAX;AAAA,MACEY,EAAiBR,GAAQX,GAAYD,CAAI;AAAA,MACzCc;AAAA,MACAD;AAAA,IACF;AAAA,EAAA;AAGK,SAAA;AAAA,IACL,UAAAF;AAAA,IACA,UAAAJ;AAAA,IACA,OAAAE;AAAA,EACF;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUserPermissions.js","sources":["../../src/hooks/useUserPermissions.ts"],"sourcesContent":["export type UserPermissions = {\n isAllowedToCreateDocuments: boolean;\n isAllowedToEditDocuments: boolean;\n};\n\nexport function useUserPermissions(): UserPermissions | undefined {\n return {\n isAllowedToCreateDocuments: true,\n isAllowedToEditDocuments: true,\n };\n}\n"],"names":["useUserPermissions"],"mappings":"AAKO,SAASA,IAAkD;AACzD,SAAA;AAAA,IACL,4BAA4B;AAAA,IAC5B,0BAA0B;AAAA,EAC5B;AACF;"}
|
package/dist/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { baseDocumentModels as r, baseDocumentModelsMap as t } from "./document-model.js";
|
|
2
|
-
import { ReadModeContext as m, ReadModeContextProvider as n, useReadModeContext as i } from "./context/read-mode.js";
|
|
3
|
-
import { createBrowserDocumentDriveServer as d, getReactorDefaultDrivesConfig as a } from "./reactor.js";
|
|
4
|
-
import { useUserPermissions as c } from "./hooks/useUserPermissions.js";
|
|
5
|
-
import { useDocumentEditor as x } from "./hooks/useDocumentEditor.js";
|
|
6
|
-
import { documentDrivesInitializedMapAtomFamily as v, drivesToHash as C, useDocumentDrives as M } from "./hooks/useDocumentDrives.js";
|
|
7
|
-
import { useDocument as R } from "./hooks/useDocument.js";
|
|
8
|
-
import { useConnectCrypto as g, useConnectDid as y } from "./hooks/useConnectCrypto.js";
|
|
9
|
-
export {
|
|
10
|
-
m as ReadModeContext,
|
|
11
|
-
n as ReadModeContextProvider,
|
|
12
|
-
r as baseDocumentModels,
|
|
13
|
-
t as baseDocumentModelsMap,
|
|
14
|
-
d as createBrowserDocumentDriveServer,
|
|
15
|
-
v as documentDrivesInitializedMapAtomFamily,
|
|
16
|
-
C as drivesToHash,
|
|
17
|
-
a as getReactorDefaultDrivesConfig,
|
|
18
|
-
g as useConnectCrypto,
|
|
19
|
-
y as useConnectDid,
|
|
20
|
-
R as useDocument,
|
|
21
|
-
M as useDocumentDrives,
|
|
22
|
-
x as useDocumentEditor,
|
|
23
|
-
i as useReadModeContext,
|
|
24
|
-
c as useUserPermissions
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
package/dist/reactor.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import a from "document-drive/cache/memory";
|
|
2
|
-
import { BaseQueueManager as n } from "document-drive/queue/base";
|
|
3
|
-
import { DocumentDriveServer as s } from "document-drive/server";
|
|
4
|
-
import { BrowserStorage as l } from "document-drive/storage/browser";
|
|
5
|
-
const p = (r = {}) => {
|
|
6
|
-
const e = r.defaultDrivesUrl || [];
|
|
7
|
-
return {
|
|
8
|
-
defaultDrives: {
|
|
9
|
-
remoteDrives: e.map(
|
|
10
|
-
(o) => ({
|
|
11
|
-
url: o,
|
|
12
|
-
options: {
|
|
13
|
-
sharingType: "PUBLIC",
|
|
14
|
-
availableOffline: !0,
|
|
15
|
-
listeners: [
|
|
16
|
-
{
|
|
17
|
-
block: !0,
|
|
18
|
-
callInfo: {
|
|
19
|
-
data: o,
|
|
20
|
-
name: "switchboard-push",
|
|
21
|
-
transmitterType: "SwitchboardPush"
|
|
22
|
-
},
|
|
23
|
-
filter: {
|
|
24
|
-
branch: ["main"],
|
|
25
|
-
documentId: ["*"],
|
|
26
|
-
documentType: ["*"],
|
|
27
|
-
scope: ["global"]
|
|
28
|
-
},
|
|
29
|
-
label: "Switchboard Sync",
|
|
30
|
-
listenerId: "1",
|
|
31
|
-
system: !0
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
triggers: [],
|
|
35
|
-
pullInterval: 3e3
|
|
36
|
-
}
|
|
37
|
-
})
|
|
38
|
-
),
|
|
39
|
-
removeOldRemoteDrives: e.length > 0 ? {
|
|
40
|
-
strategy: "preserve-by-url-and-detach",
|
|
41
|
-
urls: e
|
|
42
|
-
} : { strategy: "preserve-all" }
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
function v(r, e, t) {
|
|
47
|
-
return new s(
|
|
48
|
-
r,
|
|
49
|
-
new l(e),
|
|
50
|
-
new a(),
|
|
51
|
-
new n(1, 10),
|
|
52
|
-
t
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
export {
|
|
56
|
-
v as createBrowserDocumentDriveServer,
|
|
57
|
-
p as getReactorDefaultDrivesConfig
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=reactor.js.map
|
package/dist/reactor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.js","sources":["../src/reactor.ts"],"sourcesContent":["import InMemoryCache from \"document-drive/cache/memory\";\nimport { BaseQueueManager } from \"document-drive/queue/base\";\nimport {\n DefaultRemoteDriveInput,\n DocumentDriveServer,\n DocumentDriveServerOptions,\n} from \"document-drive/server\";\nimport { BrowserStorage } from \"document-drive/storage/browser\";\nimport { DocumentModel } from \"document-model/document\";\n\nexport type ReactorDefaultDrivesConfig = {\n defaultDrivesUrl?: string[];\n};\n\nexport const getReactorDefaultDrivesConfig = (\n config: ReactorDefaultDrivesConfig = {},\n): Pick<DocumentDriveServerOptions, \"defaultDrives\"> => {\n const defaultDrivesUrl = config.defaultDrivesUrl || [];\n\n const remoteDrives: DefaultRemoteDriveInput[] = defaultDrivesUrl.map(\n (driveUrl) => ({\n url: driveUrl,\n options: {\n sharingType: \"PUBLIC\",\n availableOffline: true,\n listeners: [\n {\n block: true,\n callInfo: {\n data: driveUrl,\n name: \"switchboard-push\",\n transmitterType: \"SwitchboardPush\",\n },\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n documentType: [\"*\"],\n scope: [\"global\"],\n },\n label: \"Switchboard Sync\",\n listenerId: \"1\",\n system: true,\n },\n ],\n triggers: [],\n pullInterval: 3000,\n },\n }),\n );\n\n return {\n defaultDrives: {\n remoteDrives,\n removeOldRemoteDrives:\n defaultDrivesUrl.length > 0\n ? {\n strategy: \"preserve-by-url-and-detach\",\n urls: defaultDrivesUrl,\n }\n : { strategy: \"preserve-all\" },\n },\n };\n};\n\nexport function createBrowserDocumentDriveServer(\n documentModels: DocumentModel[],\n routerBasename: string,\n documentDriveServerOptions?: DocumentDriveServerOptions,\n) {\n return new DocumentDriveServer(\n documentModels,\n new BrowserStorage(routerBasename),\n new InMemoryCache(),\n new BaseQueueManager(1, 10),\n documentDriveServerOptions,\n );\n}\n"],"names":["getReactorDefaultDrivesConfig","config","defaultDrivesUrl","driveUrl","createBrowserDocumentDriveServer","documentModels","routerBasename","documentDriveServerOptions","DocumentDriveServer","BrowserStorage","InMemoryCache","BaseQueueManager"],"mappings":";;;;AAcO,MAAMA,IAAgC,CAC3CC,IAAqC,OACiB;AAChD,QAAAC,IAAmBD,EAAO,oBAAoB,CAAC;AAiC9C,SAAA;AAAA,IACL,eAAe;AAAA,MACb,cAjC4CC,EAAiB;AAAA,QAC/D,CAACC,OAAc;AAAA,UACb,KAAKA;AAAA,UACL,SAAS;AAAA,YACP,aAAa;AAAA,YACb,kBAAkB;AAAA,YAClB,WAAW;AAAA,cACT;AAAA,gBACE,OAAO;AAAA,gBACP,UAAU;AAAA,kBACR,MAAMA;AAAA,kBACN,MAAM;AAAA,kBACN,iBAAiB;AAAA,gBACnB;AAAA,gBACA,QAAQ;AAAA,kBACN,QAAQ,CAAC,MAAM;AAAA,kBACf,YAAY,CAAC,GAAG;AAAA,kBAChB,cAAc,CAAC,GAAG;AAAA,kBAClB,OAAO,CAAC,QAAQ;AAAA,gBAClB;AAAA,gBACA,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,QAAQ;AAAA,cAAA;AAAA,YAEZ;AAAA,YACA,UAAU,CAAC;AAAA,YACX,cAAc;AAAA,UAAA;AAAA,QAElB;AAAA,MACF;AAAA,MAKI,uBACED,EAAiB,SAAS,IACtB;AAAA,QACE,UAAU;AAAA,QACV,MAAMA;AAAA,MAAA,IAER,EAAE,UAAU,eAAe;AAAA,IAAA;AAAA,EAErC;AACF;AAEgB,SAAAE,EACdC,GACAC,GACAC,GACA;AACA,SAAO,IAAIC;AAAA,IACTH;AAAA,IACA,IAAII,EAAeH,CAAc;AAAA,IACjC,IAAII,EAAc;AAAA,IAClB,IAAIC,EAAiB,GAAG,EAAE;AAAA,IAC1BJ;AAAA,EACF;AACF;"}
|
package/dist/utils/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
function a(o) {
|
|
2
|
-
return Object.keys(o.operations).map(
|
|
3
|
-
(n) => {
|
|
4
|
-
var t;
|
|
5
|
-
return `${n}:${o.operations[n].length}:${(t = o.operations[n].at(-1)) == null ? void 0 : t.hash}`;
|
|
6
|
-
}
|
|
7
|
-
).join(":");
|
|
8
|
-
}
|
|
9
|
-
function s(o) {
|
|
10
|
-
return o.map(a).join("&");
|
|
11
|
-
}
|
|
12
|
-
export {
|
|
13
|
-
a as documentToHash,
|
|
14
|
-
s as drivesToHash
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import { Document, OperationScope } from \"document-model/document\";\nimport { DocumentDriveDocument } from \"document-model-libs/document-drive\";\n\nexport function documentToHash(drive: Document): string {\n return Object.keys(drive.operations)\n .map(\n (key) =>\n `${key}:${drive.operations[key as OperationScope].length}:${drive.operations[key as OperationScope].at(-1)?.hash}`,\n )\n .join(\":\");\n}\n\nexport function drivesToHash(drives: DocumentDriveDocument[]): string {\n return drives.map(documentToHash).join(\"&\");\n}\n"],"names":["documentToHash","drive","key","_a","drivesToHash","drives"],"mappings":"AAGO,SAASA,EAAeC,GAAyB;AACtD,SAAO,OAAO,KAAKA,EAAM,UAAU,EAChC;AAAA,IACC,CAACC,MACC;AAJD,UAAAC;AAIC,gBAAGD,CAAG,IAAID,EAAM,WAAWC,CAAqB,EAAE,MAAM,KAAIC,IAAAF,EAAM,WAAWC,CAAqB,EAAE,GAAG,EAAE,MAA7C,gBAAAC,EAAgD,IAAI;AAAA;AAAA,EAAA,EAEnH,KAAK,GAAG;AACb;AAEO,SAASC,EAAaC,GAAyC;AACpE,SAAOA,EAAO,IAAIL,CAAc,EAAE,KAAK,GAAG;AAC5C;"}
|
package/dist/utils/signature.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { utils as d } from "document-model/document";
|
|
2
|
-
async function g(n, t, e, r, i, s) {
|
|
3
|
-
if (!s || !n.context || !n.context.signer) return n;
|
|
4
|
-
if (!i)
|
|
5
|
-
return console.error(
|
|
6
|
-
`Document model '${r.documentType}' does not have a reducer`
|
|
7
|
-
), n;
|
|
8
|
-
const c = {
|
|
9
|
-
documentId: e,
|
|
10
|
-
signer: n.context.signer
|
|
11
|
-
};
|
|
12
|
-
return await d.buildSignedOperation(n, i, r, c, t);
|
|
13
|
-
}
|
|
14
|
-
function a(n, t, e) {
|
|
15
|
-
return e ? {
|
|
16
|
-
context: { signer: {
|
|
17
|
-
app: {
|
|
18
|
-
name: "Connect",
|
|
19
|
-
key: t || ""
|
|
20
|
-
},
|
|
21
|
-
user: {
|
|
22
|
-
address: e.address,
|
|
23
|
-
networkId: e.networkId,
|
|
24
|
-
chainId: e.chainId
|
|
25
|
-
},
|
|
26
|
-
signatures: []
|
|
27
|
-
} },
|
|
28
|
-
...n
|
|
29
|
-
} : n;
|
|
30
|
-
}
|
|
31
|
-
export {
|
|
32
|
-
a as addActionContext,
|
|
33
|
-
g as signOperation
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=signature.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sources":["../../src/utils/signature.ts"],"sourcesContent":["import {\n Action,\n ActionSigner,\n Document,\n Operation,\n OperationSignatureContext,\n Reducer,\n User,\n utils,\n} from \"document-model/document\";\nimport type { User as RenownUser } from \"../renown/types\";\n\nexport async function signOperation<\n State = unknown,\n A extends Action = Action,\n LocalState = unknown,\n>(\n operation: Operation<A>,\n sign: (data: Uint8Array) => Promise<Uint8Array>,\n documentId: string,\n document: Document<State, A, LocalState>,\n reducer?: Reducer<State, A, LocalState>,\n user?: User,\n): Promise<Operation<A>> {\n if (!user) return operation;\n if (!operation.context) return operation;\n if (!operation.context.signer) return operation;\n if (!reducer) {\n console.error(\n `Document model '${document.documentType}' does not have a reducer`,\n );\n return operation;\n }\n\n const context: Omit<\n OperationSignatureContext,\n \"operation\" | \"previousStateHash\"\n > = {\n documentId,\n signer: operation.context.signer,\n };\n\n const signedOperation = await utils.buildSignedOperation<\n State,\n A,\n LocalState\n >(operation, reducer, document, context, sign);\n\n return signedOperation as Operation<A>;\n}\n\nexport function addActionContext<A extends Action = Action>(\n action: A,\n connectDid?: string,\n user?: RenownUser,\n) {\n if (!user) return action;\n\n const signer: ActionSigner = {\n app: {\n name: \"Connect\",\n key: connectDid || \"\",\n },\n user: {\n address: user.address,\n networkId: user.networkId,\n chainId: user.chainId,\n },\n signatures: [],\n };\n\n return {\n context: { signer },\n ...action,\n };\n}\n"],"names":["signOperation","operation","sign","documentId","document","reducer","user","context","utils","addActionContext","action","connectDid"],"mappings":";AAYA,eAAsBA,EAKpBC,GACAC,GACAC,GACAC,GACAC,GACAC,GACuB;AAGvB,MAFI,CAACA,KACD,CAACL,EAAU,WACX,CAACA,EAAU,QAAQ,OAAe,QAAAA;AACtC,MAAI,CAACI;AACK,mBAAA;AAAA,MACN,mBAAmBD,EAAS,YAAY;AAAA,IAC1C,GACOH;AAGT,QAAMM,IAGF;AAAA,IACF,YAAAJ;AAAA,IACA,QAAQF,EAAU,QAAQ;AAAA,EAC5B;AAQO,SANiB,MAAMO,EAAM,qBAIlCP,GAAWI,GAASD,GAAUG,GAASL,CAAI;AAG/C;AAEgB,SAAAO,EACdC,GACAC,GACAL,GACA;AACI,SAACA,IAeE;AAAA,IACL,SAAS,EAAE,QAdgB;AAAA,MAC3B,KAAK;AAAA,QACH,MAAM;AAAA,QACN,KAAKK,KAAc;AAAA,MACrB;AAAA,MACA,MAAM;AAAA,QACJ,SAASL,EAAK;AAAA,QACd,WAAWA,EAAK;AAAA,QAChB,SAASA,EAAK;AAAA,MAChB;AAAA,MACA,YAAY,CAAA;AAAA,IACd,EAGoB;AAAA,IAClB,GAAGI;AAAA,EACL,IAlBkBA;AAmBpB;"}
|