@powerhousedao/reactor-browser 1.10.1 → 1.11.0

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 (108) hide show
  1. package/dist/package.json +47 -0
  2. package/dist/src/context/index.d.ts +1 -1
  3. package/dist/src/context/index.d.ts.map +1 -1
  4. package/dist/src/context/index.js +1 -0
  5. package/dist/src/context/read-mode.d.ts +3 -3
  6. package/dist/src/context/read-mode.d.ts.map +1 -1
  7. package/dist/src/context/read-mode.js +198 -0
  8. package/dist/src/crypto/browser.d.ts +1 -1
  9. package/dist/src/crypto/browser.d.ts.map +1 -1
  10. package/dist/src/crypto/browser.js +49 -0
  11. package/dist/src/crypto/index.js +121 -0
  12. package/dist/src/document-model.d.ts +3 -3
  13. package/dist/src/document-model.d.ts.map +1 -1
  14. package/dist/src/document-model.js +5 -0
  15. package/dist/src/hooks/index.d.ts +9 -5
  16. package/dist/src/hooks/index.d.ts.map +1 -1
  17. package/dist/src/hooks/index.js +9 -0
  18. package/dist/src/hooks/useAddDebouncedOperations.d.ts +3 -3
  19. package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +1 -1
  20. package/dist/src/hooks/useAddDebouncedOperations.js +55 -0
  21. package/dist/src/hooks/useConnectCrypto.d.ts +1 -1
  22. package/dist/src/hooks/useConnectCrypto.d.ts.map +1 -1
  23. package/dist/src/hooks/useConnectCrypto.js +40 -0
  24. package/dist/src/hooks/useDocument.d.ts +3 -3
  25. package/dist/src/hooks/useDocument.d.ts.map +1 -1
  26. package/dist/src/hooks/useDocument.js +37 -0
  27. package/dist/src/hooks/useDocumentDispatch.d.ts +6 -10
  28. package/dist/src/hooks/useDocumentDispatch.d.ts.map +1 -1
  29. package/dist/src/hooks/useDocumentDispatch.js +41 -0
  30. package/dist/src/hooks/useDocumentDrives.d.ts +4 -3
  31. package/dist/src/hooks/useDocumentDrives.d.ts.map +1 -1
  32. package/dist/src/hooks/useDocumentDrives.js +84 -0
  33. package/dist/src/hooks/useDocumentEditor.d.ts +13 -13
  34. package/dist/src/hooks/useDocumentEditor.d.ts.map +1 -1
  35. package/dist/src/hooks/useDocumentEditor.js +30 -0
  36. package/dist/src/hooks/useDriveActions.d.ts +82 -0
  37. package/dist/src/hooks/useDriveActions.d.ts.map +1 -0
  38. package/dist/src/hooks/useDriveActions.js +125 -0
  39. package/dist/src/hooks/useDriveActionsWithUiNodes.d.ts +17 -0
  40. package/dist/src/hooks/useDriveActionsWithUiNodes.d.ts.map +1 -0
  41. package/dist/src/hooks/useDriveActionsWithUiNodes.js +71 -0
  42. package/dist/src/hooks/useDriveContext.d.ts +66 -0
  43. package/dist/src/hooks/useDriveContext.d.ts.map +1 -0
  44. package/dist/src/hooks/useDriveContext.js +25 -0
  45. package/dist/src/hooks/useUiNodesContext.d.ts +25 -0
  46. package/dist/src/hooks/useUiNodesContext.d.ts.map +1 -0
  47. package/dist/src/hooks/useUiNodesContext.js +167 -0
  48. package/dist/src/hooks/useUserPermissions.js +6 -0
  49. package/dist/src/index.d.ts +5 -5
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +4 -0
  52. package/dist/src/reactor.d.ts +3 -3
  53. package/dist/src/reactor.d.ts.map +1 -1
  54. package/dist/src/reactor.js +54 -0
  55. package/dist/src/renown/constants.js +39 -0
  56. package/dist/src/renown/types.d.ts +3 -3
  57. package/dist/src/renown/types.d.ts.map +1 -1
  58. package/dist/src/renown/types.js +1 -0
  59. package/dist/src/storage/index.d.ts +1 -1
  60. package/dist/src/storage/index.d.ts.map +1 -1
  61. package/dist/src/storage/index.js +1 -0
  62. package/dist/src/storage/types.js +1 -0
  63. package/dist/src/uiNodes/constants.d.ts +17 -0
  64. package/dist/src/uiNodes/constants.d.ts.map +1 -0
  65. package/dist/src/uiNodes/constants.js +23 -0
  66. package/dist/src/uiNodes/types.d.ts +61 -0
  67. package/dist/src/uiNodes/types.d.ts.map +1 -0
  68. package/dist/src/uiNodes/types.js +1 -0
  69. package/dist/src/utils/index.d.ts +3 -3
  70. package/dist/src/utils/index.d.ts.map +1 -1
  71. package/dist/src/utils/index.js +8 -0
  72. package/dist/src/utils/signature.d.ts +3 -3
  73. package/dist/src/utils/signature.d.ts.map +1 -1
  74. package/dist/src/utils/signature.js +39 -0
  75. package/dist/tsconfig.tsbuildinfo +1 -0
  76. package/package.json +15 -22
  77. package/dist/_virtual/__vite-browser-external.js +0 -5
  78. package/dist/_virtual/__vite-browser-external.js.map +0 -1
  79. package/dist/context/read-mode.js +0 -159
  80. package/dist/context/read-mode.js.map +0 -1
  81. package/dist/crypto/browser.js +0 -50
  82. package/dist/crypto/browser.js.map +0 -1
  83. package/dist/crypto/index.js +0 -109
  84. package/dist/crypto/index.js.map +0 -1
  85. package/dist/document-model.js +0 -11
  86. package/dist/document-model.js.map +0 -1
  87. package/dist/hooks/useAddDebouncedOperations.js +0 -54
  88. package/dist/hooks/useAddDebouncedOperations.js.map +0 -1
  89. package/dist/hooks/useConnectCrypto.js +0 -34
  90. package/dist/hooks/useConnectCrypto.js.map +0 -1
  91. package/dist/hooks/useDocument.js +0 -20
  92. package/dist/hooks/useDocument.js.map +0 -1
  93. package/dist/hooks/useDocumentDispatch.js +0 -30
  94. package/dist/hooks/useDocumentDispatch.js.map +0 -1
  95. package/dist/hooks/useDocumentDrives.js +0 -86
  96. package/dist/hooks/useDocumentDrives.js.map +0 -1
  97. package/dist/hooks/useDocumentEditor.js +0 -46
  98. package/dist/hooks/useDocumentEditor.js.map +0 -1
  99. package/dist/hooks/useUserPermissions.js +0 -10
  100. package/dist/hooks/useUserPermissions.js.map +0 -1
  101. package/dist/index.js +0 -26
  102. package/dist/index.js.map +0 -1
  103. package/dist/reactor.js +0 -59
  104. package/dist/reactor.js.map +0 -1
  105. package/dist/utils/index.js +0 -16
  106. package/dist/utils/index.js.map +0 -1
  107. package/dist/utils/signature.js +0 -35
  108. 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,10 +0,0 @@
1
- function e() {
2
- return {
3
- isAllowedToCreateDocuments: !0,
4
- isAllowedToEditDocuments: !0
5
- };
6
- }
7
- export {
8
- e as useUserPermissions
9
- };
10
- //# sourceMappingURL=useUserPermissions.js.map
@@ -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
@@ -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;"}
@@ -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
@@ -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;"}
@@ -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;"}