@powerhousedao/connect 6.0.0-dev.5 → 6.0.0-dev.52

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 (207) hide show
  1. package/.env +1 -1
  2. package/dist/assets/AddDriveModal-CJtOv39H.js +1 -0
  3. package/dist/assets/ClearStorageModal-y5IKZ5QW.js +1 -0
  4. package/dist/assets/CookiesPolicyModal-CRQMjvin.js +1 -0
  5. package/dist/assets/CreateDocumentModal-wq9SMWoi.js +1 -0
  6. package/dist/assets/DebugSettingsModal-DRXZ3l1V.js +1 -0
  7. package/dist/assets/DeleteDriveModal-Cr5Usb_L.js +1 -0
  8. package/dist/assets/DeleteItemModal-8enl6kcm.js +1 -0
  9. package/dist/assets/DisclaimerModal-XxPC9Ejt.js +1 -0
  10. package/dist/assets/DriveSettingsModal-6h8SadLE.js +1 -0
  11. package/dist/assets/ExportDocumentWithErrorsModal-DXqXD8JC.js +1 -0
  12. package/dist/assets/SettingsModal-hbCXOBTZ.js +1 -0
  13. package/dist/assets/UpgradeDriveModal-iM7KnmAQ.js +1 -0
  14. package/dist/assets/config-0mYxXHFp.js +1 -0
  15. package/dist/assets/{design_system-DVdodNjK.js → design_system-DuOTmGnv.js} +2 -2
  16. package/dist/assets/design_system_connect-oOPqJKY4.js +47 -0
  17. package/dist/assets/design_system_ui-BpFBMLtp.js +1 -0
  18. package/dist/assets/document_drive-DiwReQ7A.js +154 -0
  19. package/dist/assets/document_engineering-p8dj-Cba.js +1 -0
  20. package/dist/assets/document_model-ly1Z8uco.js +241 -0
  21. package/dist/assets/document_model_editor-Da4AAuKL.js +25 -0
  22. package/dist/assets/drive_explorer-DgTtoOmx.js +2 -0
  23. package/dist/assets/editor-D3CEoO4i.js +1 -0
  24. package/dist/assets/{graphql-AKTCpY7l.js → graphql-BXSeDpaV.js} +2 -2
  25. package/dist/assets/{graphql-editor-pM_6zgoE.js → graphql-editor-CduYMSwz.js} +2 -2
  26. package/dist/assets/graphql_request-BHyPFzlZ.js +3 -0
  27. package/dist/assets/{hooks-CcLWqK8A.js → hooks-DfJBOC53.js} +1 -1
  28. package/dist/assets/index-B6A7sjLB.css +1 -0
  29. package/dist/assets/index-DO1hMFtq.js +149 -0
  30. package/dist/assets/index-DaxIv9p8.js +29 -0
  31. package/dist/assets/index-nPVGMhnl.js +208 -0
  32. package/dist/assets/json-editor-ge2w_43Q.js +1 -0
  33. package/dist/assets/nodefs-BDOJRpNU.js +1 -0
  34. package/dist/assets/nodefs-CVTQ2TCv.js +1 -0
  35. package/dist/assets/nodefs-_NvywCGz.js +1 -0
  36. package/dist/assets/opfs-ahp--n7Av8I7.js +3 -0
  37. package/dist/assets/opfs-ahp-DN9nZuJs.js +3 -0
  38. package/dist/assets/opfs-ahp-gToYnU-E.js +3 -0
  39. package/dist/assets/pg_dump-Cvfbb5Q0.wasm +0 -0
  40. package/dist/assets/pglite-COscPi1Y.data +0 -0
  41. package/dist/assets/pglite-CeYkvzd0.wasm +0 -0
  42. package/dist/assets/pglite.worker-Ca6pWokV.js +141 -0
  43. package/dist/assets/{react-DQSxOgtG.js → react-D_vzfE_e.js} +1 -1
  44. package/dist/assets/react-dom/client-SoBEzBdt.js +9 -0
  45. package/dist/assets/{react-dom-D6zQJsh6.js → react-dom-Cz_KAjfm.js} +1 -1
  46. package/dist/assets/reactor_browser-D9uAHhHf.js +136 -0
  47. package/dist/assets/{sentry_browser-B4YoBIIG.js → sentry_browser-TIBDlywD.js} +3 -3
  48. package/dist/assets/{sentry_react-cODD7zWc.js → sentry_react-CVx4Qq7f.js} +1 -1
  49. package/dist/assets/state-schemas-CNNgCMhK.js +2 -0
  50. package/dist/assets/tailwind_merge-CXl88Wxt.js +1 -0
  51. package/dist/assets/zod-Cc38s6JG.js +39 -0
  52. package/dist/index.html +19 -20
  53. package/heroku/Dockerfile +1 -1
  54. package/lib/package.copy.json +30 -28
  55. package/lib/src/components/document-editor-container.d.ts.map +1 -1
  56. package/lib/src/components/document-editor-container.js +7 -34
  57. package/lib/src/components/document-editor-container.js.map +1 -1
  58. package/lib/src/components/drive-icon.d.ts.map +1 -1
  59. package/lib/src/components/drive-icon.js +10 -3
  60. package/lib/src/components/drive-icon.js.map +1 -1
  61. package/lib/src/components/editors.d.ts.map +1 -1
  62. package/lib/src/components/editors.js +12 -5
  63. package/lib/src/components/editors.js.map +1 -1
  64. package/lib/src/components/error-boundary.js +1 -1
  65. package/lib/src/components/error-boundary.js.map +1 -1
  66. package/lib/src/components/modal/modals/AddDriveModal.d.ts.map +1 -1
  67. package/lib/src/components/modal/modals/AddDriveModal.js +17 -48
  68. package/lib/src/components/modal/modals/AddDriveModal.js.map +1 -1
  69. package/lib/src/components/modal/modals/ClearStorageModal.js +2 -2
  70. package/lib/src/components/modal/modals/ClearStorageModal.js.map +1 -1
  71. package/lib/src/components/modal/modals/DriveSettingsModal.d.ts.map +1 -1
  72. package/lib/src/components/modal/modals/DriveSettingsModal.js +9 -4
  73. package/lib/src/components/modal/modals/DriveSettingsModal.js.map +1 -1
  74. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.d.ts.map +1 -1
  75. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.js +3 -1
  76. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.js.map +1 -1
  77. package/lib/src/components/modal/modals/InspectorModal/useQueueInspector.d.ts +3 -0
  78. package/lib/src/components/modal/modals/InspectorModal/useQueueInspector.d.ts.map +1 -0
  79. package/lib/src/components/modal/modals/InspectorModal/useQueueInspector.js +61 -0
  80. package/lib/src/components/modal/modals/InspectorModal/useQueueInspector.js.map +1 -0
  81. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts +2 -1
  82. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts.map +1 -1
  83. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js +4 -1
  84. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js.map +1 -1
  85. package/lib/src/components/sidebar.d.ts.map +1 -1
  86. package/lib/src/components/sidebar.js +2 -2
  87. package/lib/src/components/sidebar.js.map +1 -1
  88. package/lib/src/connect.config.js +1 -1
  89. package/lib/src/connect.config.js.map +1 -1
  90. package/lib/src/context/index.d.ts +1 -1
  91. package/lib/src/context/index.d.ts.map +1 -1
  92. package/lib/src/context/index.js +1 -1
  93. package/lib/src/context/index.js.map +1 -1
  94. package/lib/src/context/processor-manager.d.ts +1 -2
  95. package/lib/src/context/processor-manager.d.ts.map +1 -1
  96. package/lib/src/context/processor-manager.js +1 -188
  97. package/lib/src/context/processor-manager.js.map +1 -1
  98. package/lib/src/context/processor-manager.old.d.ts +3 -0
  99. package/lib/src/context/processor-manager.old.d.ts.map +1 -0
  100. package/lib/src/context/processor-manager.old.js +189 -0
  101. package/lib/src/context/processor-manager.old.js.map +1 -0
  102. package/lib/src/feature-flags.d.ts.map +1 -1
  103. package/lib/src/feature-flags.js +13 -0
  104. package/lib/src/feature-flags.js.map +1 -1
  105. package/lib/src/hooks/useCheckLatestVersion.d.ts.map +1 -1
  106. package/lib/src/hooks/useCheckLatestVersion.js +1 -1
  107. package/lib/src/hooks/useCheckLatestVersion.js.map +1 -1
  108. package/lib/src/hooks/useClientErrorHandler.d.ts.map +1 -1
  109. package/lib/src/hooks/useClientErrorHandler.js +5 -40
  110. package/lib/src/hooks/useClientErrorHandler.js.map +1 -1
  111. package/lib/src/hooks/useInitSentry.js +2 -2
  112. package/lib/src/hooks/useInitSentry.js.map +1 -1
  113. package/lib/src/pages/demo/atlas-import.js +2 -2
  114. package/lib/src/pglite.db.d.ts +2 -0
  115. package/lib/src/pglite.db.d.ts.map +1 -0
  116. package/lib/src/pglite.db.js +19 -0
  117. package/lib/src/pglite.db.js.map +1 -0
  118. package/lib/src/pglite.worker.d.ts +2 -0
  119. package/lib/src/pglite.worker.d.ts.map +1 -0
  120. package/lib/src/pglite.worker.js +15 -0
  121. package/lib/src/pglite.worker.js.map +1 -0
  122. package/lib/src/services/hmr.js +1 -1
  123. package/lib/src/services/hmr.js.map +1 -1
  124. package/lib/src/services/index.d.ts +0 -3
  125. package/lib/src/services/index.d.ts.map +1 -1
  126. package/lib/src/services/index.js +0 -3
  127. package/lib/src/services/index.js.map +1 -1
  128. package/lib/src/store/editor.d.ts.map +1 -1
  129. package/lib/src/store/editor.js +4 -5
  130. package/lib/src/store/editor.js.map +1 -1
  131. package/lib/src/store/processor-host-module.d.ts +3 -0
  132. package/lib/src/store/processor-host-module.d.ts.map +1 -0
  133. package/lib/src/store/processor-host-module.js +22 -0
  134. package/lib/src/store/processor-host-module.js.map +1 -0
  135. package/lib/src/store/reactor.d.ts +1 -1
  136. package/lib/src/store/reactor.d.ts.map +1 -1
  137. package/lib/src/store/reactor.js +77 -189
  138. package/lib/src/store/reactor.js.map +1 -1
  139. package/lib/src/utils/reactor.d.ts +13 -7
  140. package/lib/src/utils/reactor.d.ts.map +1 -1
  141. package/lib/src/utils/reactor.js +37 -63
  142. package/lib/src/utils/reactor.js.map +1 -1
  143. package/lib/src/utils/signature.d.ts.map +1 -1
  144. package/lib/src/utils/signature.js +1 -1
  145. package/lib/src/utils/signature.js.map +1 -1
  146. package/lib/style.css +373 -115
  147. package/lib/test/utils/signer.test.js +25 -28
  148. package/lib/test/utils/signer.test.js.map +1 -1
  149. package/lib/tsconfig.tsbuildinfo +1 -1
  150. package/lib/vite.config.d.ts.map +1 -1
  151. package/lib/vite.config.js +0 -4
  152. package/lib/vite.config.js.map +1 -1
  153. package/package.copy.json +30 -28
  154. package/package.json +39 -37
  155. package/dist/assets/AddDriveModal-BQm-PcmC.js +0 -1
  156. package/dist/assets/ClearStorageModal-28jHiUGr.js +0 -1
  157. package/dist/assets/CookiesPolicyModal-B8ON6Aot.js +0 -1
  158. package/dist/assets/CreateDocumentModal-Dq3Bi3cq.js +0 -1
  159. package/dist/assets/DebugSettingsModal-CJONGfBK.js +0 -1
  160. package/dist/assets/DeleteDriveModal-bUDGgtH-.js +0 -1
  161. package/dist/assets/DeleteItemModal-B8ZzH9at.js +0 -1
  162. package/dist/assets/DisclaimerModal-BOLKXvyT.js +0 -1
  163. package/dist/assets/DriveSettingsModal-DIbcmIVs.js +0 -1
  164. package/dist/assets/ExportDocumentWithErrorsModal-gHdbtQ3B.js +0 -1
  165. package/dist/assets/SettingsModal-DP7GWuuW.js +0 -1
  166. package/dist/assets/UpgradeDriveModal--uyH9aU-.js +0 -1
  167. package/dist/assets/config-CU-aFfVJ.js +0 -1
  168. package/dist/assets/design_system_connect-GjcNtEuR.js +0 -47
  169. package/dist/assets/design_system_ui-CirzPTGM.js +0 -1
  170. package/dist/assets/document_drive-CwpHvdiT.js +0 -316
  171. package/dist/assets/document_engineering-x8qLjrlA.js +0 -1
  172. package/dist/assets/document_model-_oCbt5YE.js +0 -230
  173. package/dist/assets/document_model_editor-H_2IAVLg.js +0 -25
  174. package/dist/assets/drive_explorer-DaOEkDU-.js +0 -2
  175. package/dist/assets/graphql_request-BJtmW2JS.js +0 -3
  176. package/dist/assets/index-C44AjweI.js +0 -28
  177. package/dist/assets/index-DNce0SAe.css +0 -1
  178. package/dist/assets/index-Dxjl28rF.js +0 -18
  179. package/dist/assets/json-editor-BFca9ePf.js +0 -1
  180. package/dist/assets/nodefs-BRqoxQYy.js +0 -1
  181. package/dist/assets/opfs-ahp-DetoV0on.js +0 -3
  182. package/dist/assets/pg_dump-CW0pN9tG.wasm +0 -0
  183. package/dist/assets/react-dom/client-BVPiT_FE.js +0 -9
  184. package/dist/assets/reactor_browser-BTFz4lY7.js +0 -129
  185. package/dist/assets/state-schemas-DBLZHoPv.js +0 -2
  186. package/dist/assets/tailwind_merge-Dr4f9Rms.js +0 -1
  187. package/dist/assets/zod-9j67vCAu.js +0 -39
  188. package/lib/src/service-worker.d.ts +0 -2
  189. package/lib/src/service-worker.d.ts.map +0 -1
  190. package/lib/src/service-worker.js +0 -58
  191. package/lib/src/service-worker.js.map +0 -1
  192. package/lib/src/services/renown/browser.d.ts +0 -2
  193. package/lib/src/services/renown/browser.d.ts.map +0 -1
  194. package/lib/src/services/renown/browser.js +0 -6
  195. package/lib/src/services/renown/browser.js.map +0 -1
  196. package/lib/src/services/renown/constants.d.ts +0 -130
  197. package/lib/src/services/renown/constants.d.ts.map +0 -1
  198. package/lib/src/services/renown/constants.js +0 -41
  199. package/lib/src/services/renown/constants.js.map +0 -1
  200. package/lib/src/services/renown/utils.d.ts +0 -7
  201. package/lib/src/services/renown/utils.d.ts.map +0 -1
  202. package/lib/src/services/renown/utils.js +0 -20
  203. package/lib/src/services/renown/utils.js.map +0 -1
  204. package/lib/src/workers/pglite-worker.d.ts +0 -2
  205. package/lib/src/workers/pglite-worker.d.ts.map +0 -1
  206. package/lib/src/workers/pglite-worker.js +0 -32
  207. package/lib/src/workers/pglite-worker.js.map +0 -1
@@ -1,27 +1,21 @@
1
1
  import { phGlobalConfigFromEnv } from "@powerhousedao/connect/config";
2
2
  import { initFeatureFlags } from "@powerhousedao/connect/feature-flags.js";
3
3
  import { toast } from "@powerhousedao/connect/services";
4
- import { createBrowserDocumentDriveServer, createBrowserReactor, createBrowserStorage, } from "@powerhousedao/connect/utils";
5
- import { DocumentCache, ReactorClientDocumentCache, truncateAllTables as dropAllTables, extractDriveSlugFromPath, extractNodeSlugFromPath, getDrives, getReactorDefaultDrivesConfig, initConnectCrypto, initLegacyReactor, login, refreshReactorData, refreshReactorDataClient, setFeatures, setPHToast, setSelectedDrive, setSelectedNode, setVetraPackages, } from "@powerhousedao/reactor-browser";
6
- import { addPHEventHandlers, setConnectCrypto, setDatabase, setDefaultPHGlobalConfig, setDid, setDocumentCache, setDrives, setLegacyReactor, setPGlite, setProcessorManager, setReactorClient, setReactorClientModule, setRenown, setSync, } from "@powerhousedao/reactor-browser/connect";
7
- import { initRenown } from "@renown/sdk";
8
- import { ProcessorManager, logger } from "document-drive";
9
- import { generateId } from "document-model/core";
4
+ import { addDefaultDrivesForNewReactor, createBrowserReactor, getDefaultDrivesFromEnv, } from "@powerhousedao/connect/utils";
5
+ import { addRemoteDrive, dropAllReactorStorage, extractDriveSlugFromPath, extractNodeSlugFromPath, getDrives, ReactorClientDocumentCache, refreshReactorDataClient, setFeatures, setPHToast, setSelectedDrive, setSelectedNode, setVetraPackages, } from "@powerhousedao/reactor-browser";
6
+ import { addPHEventHandlers, login, setConnectCrypto, setDefaultPHGlobalConfig, setDid, setDocumentCache, setDrives, setReactorClient, setReactorClientModule, setRenown, } from "@powerhousedao/reactor-browser/connect";
7
+ import { BrowserKeyStorage, RenownBuilder, RenownCryptoBuilder, } from "@renown/sdk";
8
+ import { logger } from "document-drive";
10
9
  import { loadCommonPackage } from "./document-model.js";
11
10
  import { loadExternalPackages, subscribeExternalPackages, } from "./external-packages.js";
12
- let reactorLegacyStorage;
13
- function setLegacyReactorStorage(storage) {
14
- reactorLegacyStorage = storage;
15
- }
11
+ import { createProcessorHostModule } from "./processor-host-module.js";
16
12
  export async function clearReactorStorage() {
17
- // clear legacy storage
18
- await reactorLegacyStorage?.clear();
19
- // clear all the reactor dependencies
20
13
  const pg = window.ph?.reactorClientModule?.pg;
21
- if (pg) {
22
- await dropAllTables(pg);
14
+ if (!pg) {
15
+ throw new Error("PGlite not found");
23
16
  }
24
- return !!reactorLegacyStorage;
17
+ await dropAllReactorStorage(pg);
18
+ await pg.close();
25
19
  }
26
20
  async function updateVetraPackages(externalPackages) {
27
21
  const commonPackage = await loadCommonPackage();
@@ -29,64 +23,11 @@ async function updateVetraPackages(externalPackages) {
29
23
  setVetraPackages([commonPackage, ...externalPackages]);
30
24
  return packages;
31
25
  }
32
- /**
33
- * Filters document model modules to only include the latest version of each document type.
34
- * This is needed for legacy reactor v1 which doesn't support multiple versions.
35
- */
36
- function filterToLatestVersions(modules) {
37
- const latestByType = new Map();
38
- for (const module of modules) {
39
- const documentType = module.documentModel.global.id;
40
- const version = module.documentModel.global.specifications?.[0]?.version ?? 1;
41
- const existing = latestByType.get(documentType);
42
- const existingVersion = existing?.documentModel.global.specifications?.[0]?.version ?? 1;
43
- if (!existing || version > existingVersion) {
44
- latestByType.set(documentType, module);
45
- }
46
- }
47
- return Array.from(latestByType.values());
48
- }
49
- async function loadDriveFromRemoteUrl(remoteUrl, reactor, drives) {
50
- const driveFromRemoteUrl = drives.find((drive) => drive.state.local.triggers.find((trigger) => trigger.type === "PullResponder" && trigger.data?.url === remoteUrl));
51
- if (driveFromRemoteUrl) {
52
- return driveFromRemoteUrl;
53
- }
54
- try {
55
- const remoteDrive = await reactor.addRemoteDrive(remoteUrl, {
56
- sharingType: "PUBLIC",
57
- availableOffline: true,
58
- listeners: [
59
- {
60
- block: true,
61
- callInfo: {
62
- data: remoteUrl,
63
- name: "switchboard-push",
64
- transmitterType: "SwitchboardPush",
65
- },
66
- filter: {
67
- branch: ["main"],
68
- documentId: ["*"],
69
- documentType: ["*"],
70
- scope: ["global"],
71
- },
72
- label: "Switchboard Sync",
73
- listenerId: generateId(),
74
- system: true,
75
- },
76
- ],
77
- triggers: [],
78
- });
79
- return remoteDrive;
80
- }
81
- catch (error) {
82
- logger.error("Error adding remote drive", error);
83
- }
84
- }
85
26
  export async function createReactor() {
86
27
  if (!window.ph) {
87
28
  window.ph = {};
88
29
  }
89
- if (window.ph.legacyReactor || window.ph.loading)
30
+ if (window.ph.loading)
90
31
  return;
91
32
  window.ph.loading = true;
92
33
  // add window event handlers for updates
@@ -95,17 +36,19 @@ export async function createReactor() {
95
36
  setPHToast(toast);
96
37
  // initialize feature flags
97
38
  const features = await initFeatureFlags();
98
- logger.info(`Features: ${JSON.stringify(Object.fromEntries(features), null, 2)}`);
99
- // initialize connect crypto
100
- const connectCrypto = await initConnectCrypto();
101
- // initialize did
102
- const did = await connectCrypto.did();
103
- // initialize renown
104
- const renown = initRenown(did, phGlobalConfigFromEnv.routerBasename);
105
- // initialize storage
106
- const storage = createBrowserStorage(phGlobalConfigFromEnv.routerBasename);
107
- // store storage for admin access
108
- setLegacyReactorStorage(storage);
39
+ logger.info("Features: @features", JSON.stringify(Object.fromEntries(features), null, 2));
40
+ // initialize renown crypto
41
+ const keyPairStorage = await BrowserKeyStorage.create();
42
+ const renownCrypto = await new RenownCryptoBuilder()
43
+ .withKeyPairStorage(keyPairStorage)
44
+ .build();
45
+ // initialize Renown
46
+ const renown = await new RenownBuilder("connect", {
47
+ basename: phGlobalConfigFromEnv.routerBasename,
48
+ baseUrl: phGlobalConfigFromEnv.renownUrl,
49
+ })
50
+ .withCrypto(renownCrypto)
51
+ .build();
109
52
  // load vetra packages
110
53
  const externalPackages = await loadExternalPackages();
111
54
  const vetraPackages = await updateVetraPackages(externalPackages);
@@ -113,132 +56,77 @@ export async function createReactor() {
113
56
  // get document models to set in the reactor (all versions)
114
57
  const documentModelModules = vetraPackages
115
58
  .flatMap((pkg) => pkg.modules.documentModelModules)
116
- .filter((module) => module !== undefined);
59
+ .filter((module, index, modules) => module !== undefined &&
60
+ // deduplicate by documentType and version
61
+ modules.findIndex((m) => m?.documentType === module.documentType &&
62
+ m.version === module.version) === index);
117
63
  // get upgrade manifests from packages
118
- const upgradeManifests = vetraPackages
119
- .flatMap((pkg) => pkg.upgradeManifests)
120
- .filter((manifest) => manifest !== undefined);
121
- // filter to latest versions for legacy reactor (doesn't support versioning)
122
- const latestModules = filterToLatestVersions(documentModelModules);
123
- // create the legacy reactor with only latest versions
124
- const defaultConfig = getReactorDefaultDrivesConfig();
125
- const legacyReactor = createBrowserDocumentDriveServer(latestModules, storage, {
126
- ...defaultConfig,
127
- featureFlags: {
128
- enableDualActionCreate: true,
129
- },
130
- });
64
+ const upgradeManifests = vetraPackages.flatMap((pkg) => pkg.upgradeManifests);
131
65
  // create reactor v2 with all versions and upgrade manifests
132
- const reactorClientModule = await createBrowserReactor(documentModelModules, upgradeManifests, storage, connectCrypto);
133
- // initialize the reactor
134
- await initLegacyReactor(legacyReactor, renown, connectCrypto);
135
- // create the processor manager
136
- const processorManager = new ProcessorManager(legacyReactor.listeners, legacyReactor);
66
+ const reactorClientModule = await createBrowserReactor(documentModelModules, upgradeManifests, renown);
137
67
  // get the drives from the reactor
138
- let drives = await getDrives(legacyReactor);
139
- // if remoteUrl is set and drive not already existing add remote drive and open it
140
- const remoteUrl = getDriveUrl();
141
- const remoteDrive = remoteUrl
142
- ? await loadDriveFromRemoteUrl(remoteUrl, legacyReactor, drives)
143
- : undefined;
144
- // if a remote drive was added then refetches the drives
145
- if (remoteDrive) {
146
- drives = await getDrives(legacyReactor);
147
- }
148
- // get the documents from the reactor
68
+ const drives = await getDrives(reactorClientModule.client);
149
69
  // set the selected drive and node from the path
150
70
  const path = window.location.pathname;
151
- const driveSlug = remoteDrive?.header.slug ?? extractDriveSlugFromPath(path);
152
- const nodeSlug = !remoteDrive ? extractNodeSlugFromPath(path) : "";
153
- // initialize user
71
+ const driveSlug = extractDriveSlugFromPath(path);
72
+ const nodeSlug = extractNodeSlugFromPath(path);
73
+ // initialize user from URL parameter
154
74
  const didFromUrl = getDidFromUrl();
155
- await login(didFromUrl, legacyReactor, renown, connectCrypto);
156
- // initialize the document cache based on feature flags
157
- const useLegacyRead = features.get("FEATURE_LEGACY_READ_ENABLED") ?? true;
158
- const documentCache = useLegacyRead
159
- ? new DocumentCache(legacyReactor)
160
- : new ReactorClientDocumentCache(reactorClientModule.client);
75
+ await login(didFromUrl, renown);
76
+ const documentCache = new ReactorClientDocumentCache(reactorClientModule.client);
161
77
  // dispatch the events to set the values in the window object
162
78
  setDefaultPHGlobalConfig(phGlobalConfigFromEnv);
163
- setLegacyReactor(legacyReactor);
164
79
  setReactorClientModule(reactorClientModule);
165
80
  setReactorClient(reactorClientModule.client);
166
- setSync(reactorClientModule.reactorModule?.syncModule?.syncManager);
167
- setDatabase(reactorClientModule.reactorModule?.database);
168
- setPGlite(reactorClientModule.pg);
169
81
  setDocumentCache(documentCache);
170
- setConnectCrypto(connectCrypto);
171
- setDid(did);
82
+ setConnectCrypto(renownCrypto);
83
+ setDid(renown.did);
172
84
  setRenown(renown);
173
- setProcessorManager(processorManager);
174
85
  setDrives(drives);
175
86
  setVetraPackages(vetraPackages);
176
87
  setSelectedDrive(driveSlug);
177
88
  setSelectedNode(nodeSlug);
178
89
  setFeatures(features);
179
- // subscribe to reactor events based on feature flags
180
- if (useLegacyRead) {
181
- // Subscribe to legacy reactor events
182
- legacyReactor.on("defaultRemoteDrive", (...args) => {
183
- logger.verbose("defaultRemoteDrive", ...args);
184
- refreshReactorData(legacyReactor).catch(logger.error);
185
- });
186
- legacyReactor.on("clientStrandsError", (...args) => {
187
- logger.verbose("clientStrandsError", ...args);
188
- refreshReactorData(legacyReactor).catch(logger.error);
189
- });
190
- legacyReactor.on("driveAdded", (...args) => {
191
- logger.verbose("driveAdded", ...args);
192
- // register the drive with the processor manager
193
- processorManager.registerDrive(args[0].header.id).catch(logger.error);
194
- refreshReactorData(legacyReactor).catch(logger.error);
195
- });
196
- legacyReactor.on("driveDeleted", (...args) => {
197
- logger.verbose("driveDeleted", ...args);
198
- refreshReactorData(legacyReactor).catch(logger.error);
199
- });
200
- legacyReactor.on("documentModelModules", (...args) => {
201
- logger.verbose("documentModelModules", ...args);
202
- refreshReactorData(legacyReactor).catch(logger.error);
203
- });
204
- legacyReactor.on("driveOperationsAdded", (...args) => {
205
- logger.verbose("driveOperationsAdded", ...args);
206
- refreshReactorData(legacyReactor).catch(logger.error);
207
- });
90
+ // Add default drives for new reactor (after window.ph is set up)
91
+ const defaultDrivesConfig = getDefaultDrivesFromEnv();
92
+ if (defaultDrivesConfig.length > 0) {
93
+ await addDefaultDrivesForNewReactor(defaultDrivesConfig);
208
94
  }
209
- else {
210
- legacyReactor.on("defaultRemoteDrive", (...args) => {
211
- logger.verbose("future:defaultRemoteDrive", ...args);
212
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
213
- });
214
- legacyReactor.on("clientStrandsError", (...args) => {
215
- logger.verbose("future:clientStrandsError", ...args);
216
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
217
- });
218
- legacyReactor.on("driveAdded", (...args) => {
219
- logger.verbose("future:driveAdded", ...args);
220
- // register the drive with the processor manager
221
- processorManager.registerDrive(args[0].header.id).catch(logger.error);
222
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
223
- });
224
- legacyReactor.on("driveDeleted", (...args) => {
225
- logger.verbose("future:driveDeleted", ...args);
226
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
227
- });
228
- legacyReactor.on("documentModelModules", (...args) => {
229
- logger.verbose("future:documentModelModules", ...args);
230
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
231
- });
232
- legacyReactor.on("driveOperationsAdded", (...args) => {
233
- logger.verbose("future:driveOperationsAdded", ...args);
234
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
235
- });
236
- // Subscribe via ReactorClient interface
237
- const reactorClient = reactorClientModule.client;
238
- reactorClient.subscribe({ type: "powerhouse/document-drive" }, (event) => {
239
- logger.verbose("ReactorClient subscription event", event);
240
- refreshReactorDataClient(reactorClientModule.client).catch(logger.error);
241
- });
95
+ // if remoteUrl is set and drive not already existing add remote drive and open it
96
+ const remoteUrl = getDriveUrl();
97
+ if (remoteUrl) {
98
+ try {
99
+ await addRemoteDrive(remoteUrl, {});
100
+ }
101
+ catch (error) {
102
+ console.error(`Failed to add remote drive from ${remoteUrl}:`, error);
103
+ }
104
+ }
105
+ // Subscribe via ReactorClient interface
106
+ const reactorClient = reactorClientModule.client;
107
+ reactorClient.subscribe({ type: "powerhouse/document-drive" }, (event) => {
108
+ logger.verbose("ReactorClient subscription event: @event", event);
109
+ refreshReactorDataClient(reactorClientModule.client).catch((e) => logger.error("@error", e));
110
+ });
111
+ // Refresh from ReactorClient to pick up any synced drives
112
+ await refreshReactorDataClient(reactorClientModule.client);
113
+ const packagesWithProcessorFactories = vetraPackages.filter((pkg) => pkg.processorFactory !== undefined);
114
+ if (packagesWithProcessorFactories.length > 0) {
115
+ const processorHostModule = await createProcessorHostModule();
116
+ if (processorHostModule !== undefined) {
117
+ await Promise.all(packagesWithProcessorFactories.map(async (pkg) => {
118
+ const { id, name, processorFactory } = pkg;
119
+ console.log("Loading processor factory:", name);
120
+ try {
121
+ const factory = await processorFactory(processorHostModule);
122
+ await reactorClientModule.reactorModule?.processorManager.registerFactory(id, factory);
123
+ }
124
+ catch (error) {
125
+ console.error(`Error registering processor: "${name}".`);
126
+ console.error(error);
127
+ }
128
+ }));
129
+ }
242
130
  }
243
131
  window.ph.loading = false;
244
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/store/reactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/store/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,SAAS,EACT,0BAA0B,EAC1B,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAGjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,KAAK,EACL,gBAAgB,EAChB,wBAAwB,EACxB,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,CAAC;IAC9C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAEhC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,gBAAgC;IACjE,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACtD,gBAAgB,CAAC,CAAC,aAAa,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO;QAAE,OAAO;IAE9B,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;IAEzB,wCAAwC;IACxC,kBAAkB,EAAE,CAAC;IAErB,uDAAuD;IACvD,UAAU,CAAC,KAAkB,CAAC,CAAC;IAE/B,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACtD,CAAC;IAEF,2BAA2B;IAC3B,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,IAAI,mBAAmB,EAAE;SACjD,kBAAkB,CAAC,cAAc,CAAC;SAClC,KAAK,EAAE,CAAC;IAEX,oBAAoB;IACpB,MAAM,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,SAAS,EAAE;QAChD,QAAQ,EAAE,qBAAqB,CAAC,cAAc;QAC9C,OAAO,EAAE,qBAAqB,CAAC,SAAS;KACzC,CAAC;SACC,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,EAAE,CAAC;IAEX,sBAAsB;IACtB,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAClE,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAE/C,2DAA2D;IAC3D,MAAM,oBAAoB,GAAG,aAAa;SACvC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;SAClD,MAAM,CACL,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACzB,MAAM,KAAK,SAAS;QACpB,0CAA0C;QAC1C,OAAO,CAAC,SAAS,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC,YAAY;YACvC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAC/B,KAAK,KAAK,CACd,CAAC;IAEJ,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE9E,4DAA4D;IAC5D,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,oBAAwD,EACxD,gBAAgB,EAChB,MAAM,CACP,CAAC;IAEF,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE3D,gDAAgD;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACtC,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE/C,qCAAqC;IACrC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,IAAI,0BAA0B,CAClD,mBAAmB,CAAC,MAAM,CAC3B,CAAC;IAEF,6DAA6D;IAC7D,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAChD,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAC5C,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC7C,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5B,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1B,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEtB,iEAAiE;IACjE,MAAM,mBAAmB,GAAG,uBAAuB,EAAE,CAAC;IACtD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,6BAA6B,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,kFAAkF;IAClF,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC;IAChC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACjD,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QACvE,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QAClE,wBAAwB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,8BAA8B,GAAG,aAAa,CAAC,MAAM,CACzD,CACE,GAAG,EACkE,EAAE,CACvE,GAAG,CAAC,gBAAgB,KAAK,SAAS,CACrC,CAAC;IAEF,IAAI,8BAA8B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,mBAAmB,GAAG,MAAM,yBAAyB,EAAE,CAAC;QAC9D,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,OAAO,CAAC,GAAG,CACf,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC/C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;oBAC5D,MAAM,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,CAAC,eAAe,CACvE,EAAE,EACF,OAAO,CACR,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,IAAI,CAAC,CAAC;oBACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,13 +1,19 @@
1
- import type { BrowserReactorClientModule } from "@powerhousedao/reactor-browser";
2
- import { type IConnectCrypto } from "@renown/sdk";
3
- import type { DocumentDriveServerOptions, IDocumentAdminStorage, IDocumentDriveServer, IDocumentOperationStorage, IDocumentStorage, IDriveOperationStorage } from "document-drive";
1
+ import { type BrowserReactorClientModule } from "@powerhousedao/reactor-browser";
2
+ import { type IRenown } from "@renown/sdk";
4
3
  import type { DocumentModelModule, UpgradeManifest } from "document-model";
5
- export declare const getReactorDefaultDrivesConfig: () => Pick<DocumentDriveServerOptions, "defaultDrives">;
6
- export declare function createBrowserStorage(routerBasename: string): IDriveOperationStorage & IDocumentOperationStorage & IDocumentStorage & IDocumentAdminStorage;
7
- export declare function createBrowserDocumentDriveServer(documentModels: DocumentModelModule<any>[], storage: IDriveOperationStorage, options: DocumentDriveServerOptions): IDocumentDriveServer;
8
4
  /**
9
5
  * Creates a Reactor that plugs into legacy storage but syncs through the new
10
6
  * Reactor GQL API.
11
7
  */
12
- export declare function createBrowserReactor(documentModelModules: DocumentModelModule[], upgradeManifests: UpgradeManifest<readonly number[]>[], legacyStorage: IDocumentStorage & IDocumentOperationStorage, connectCrypto: IConnectCrypto): Promise<BrowserReactorClientModule>;
8
+ export declare function createBrowserReactor(documentModelModules: DocumentModelModule[], upgradeManifests: UpgradeManifest<readonly number[]>[], renown: IRenown): Promise<BrowserReactorClientModule>;
9
+ /**
10
+ * Parse default drives from environment variable.
11
+ * Returns an array of drive REST endpoint URLs (e.g., "https://example.com/d/powerhouse").
12
+ */
13
+ export declare function getDefaultDrivesFromEnv(): string[];
14
+ /**
15
+ * Add default drives for the new reactor via sync manager.
16
+ * @param defaultDriveUrls - Array of drive REST endpoint URLs (e.g., "https://example.com/d/powerhouse")
17
+ */
18
+ export declare function addDefaultDrivesForNewReactor(defaultDriveUrls: string[]): Promise<void>;
13
19
  //# sourceMappingURL=reactor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/utils/reactor.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAY3E,eAAO,MAAM,6BAA6B,QAAO,IAAI,CACnD,0BAA0B,EAC1B,eAAe,CAuChB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,GACrB,sBAAsB,GACvB,yBAAyB,GACzB,gBAAgB,GAChB,qBAAqB,CAEtB;AAED,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAC1C,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,0BAA0B,GAClC,oBAAoB,CAUtB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,oBAAoB,EAAE,mBAAmB,EAAE,EAC3C,gBAAgB,EAAE,eAAe,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACtD,aAAa,EAAE,gBAAgB,GAAG,yBAAyB,EAC3D,aAAa,EAAE,cAAc,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CAkCrC"}
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/utils/reactor.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI3E;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,oBAAoB,EAAE,mBAAmB,EAAE,EAC3C,gBAAgB,EAAE,eAAe,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACtD,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,0BAA0B,CAAC,CAsCrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAMlD;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -1,73 +1,24 @@
1
1
  import { PGlite } from "@electric-sql/pglite";
2
- import { ConsoleLogger, GqlChannelFactory, ReactorBuilder, ReactorClientBuilder, SyncBuilder, } from "@powerhousedao/reactor";
3
- import { ConnectCryptoSigner, createSignatureVerifier, } from "@renown/sdk";
4
- import { BrowserStorage, EventQueueManager, InMemoryCache, ReactorBuilder as LegacyReactorBuilder, } from "document-drive";
2
+ import { ChannelScheme, ConsoleLogger, ReactorBuilder, ReactorClientBuilder, } from "@powerhousedao/reactor";
3
+ import { addRemoteDrive, } from "@powerhousedao/reactor-browser";
4
+ import { createSignatureVerifier } from "@renown/sdk";
5
5
  import { Kysely } from "kysely";
6
6
  import { PGliteDialect } from "kysely-pglite-dialect";
7
- import { createRemoveOldRemoteDrivesConfig } from "./drive-preservation.js";
8
- const DEFAULT_DRIVES_URL = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL ||
9
- undefined;
10
- const defaultDrivesUrl = DEFAULT_DRIVES_URL
11
- ? DEFAULT_DRIVES_URL.split(",")
12
- : [];
13
- export const getReactorDefaultDrivesConfig = () => {
14
- const remoteDrives = defaultDrivesUrl.map((driveUrl) => ({
15
- url: driveUrl,
16
- options: {
17
- sharingType: "PUBLIC",
18
- availableOffline: true,
19
- listeners: [
20
- {
21
- block: true,
22
- callInfo: {
23
- data: driveUrl,
24
- name: "switchboard-push",
25
- transmitterType: "SwitchboardPush",
26
- },
27
- filter: {
28
- branch: ["main"],
29
- documentId: ["*"],
30
- documentType: ["*"],
31
- scope: ["global"],
32
- },
33
- label: "Switchboard Sync",
34
- listenerId: "1",
35
- system: true,
36
- },
37
- ],
38
- triggers: [],
39
- },
40
- }));
41
- return {
42
- defaultDrives: {
43
- remoteDrives,
44
- removeOldRemoteDrives: createRemoveOldRemoteDrivesConfig(defaultDrivesUrl),
45
- },
46
- };
47
- };
48
- export function createBrowserStorage(routerBasename) {
49
- return new BrowserStorage(routerBasename);
50
- }
51
- export function createBrowserDocumentDriveServer(documentModels, storage, options) {
52
- return new LegacyReactorBuilder(documentModels)
53
- .withStorage(storage)
54
- .withCache(new InMemoryCache())
55
- .withQueueManager(new EventQueueManager())
56
- .withOptions({
57
- ...options,
58
- ...getReactorDefaultDrivesConfig(),
59
- })
60
- .build();
61
- }
62
7
  /**
63
8
  * Creates a Reactor that plugs into legacy storage but syncs through the new
64
9
  * Reactor GQL API.
65
10
  */
66
- export async function createBrowserReactor(documentModelModules, upgradeManifests, legacyStorage, connectCrypto) {
11
+ export async function createBrowserReactor(documentModelModules, upgradeManifests, renown) {
67
12
  const signerConfig = {
68
- signer: new ConnectCryptoSigner(connectCrypto),
13
+ signer: renown.signer,
69
14
  verifier: createSignatureVerifier(),
70
15
  };
16
+ const jwtHandler = async (url) => {
17
+ if (!renown.user) {
18
+ return undefined;
19
+ }
20
+ return renown.getBearerToken({ expiresIn: 10, aud: url });
21
+ };
71
22
  const pg = new PGlite("idb://reactor", {
72
23
  relaxedDurability: true,
73
24
  });
@@ -78,9 +29,8 @@ export async function createBrowserReactor(documentModelModules, upgradeManifest
78
29
  .withReactorBuilder(new ReactorBuilder()
79
30
  .withDocumentModels(documentModelModules)
80
31
  .withUpgradeManifests(upgradeManifests)
81
- .withLegacyStorage(legacyStorage)
82
- .withSync(new SyncBuilder().withChannelFactory(new GqlChannelFactory(logger)))
83
- .withFeatures({ legacyStorageEnabled: true })
32
+ .withChannelScheme(ChannelScheme.CONNECT)
33
+ .withJwtHandler(jwtHandler)
84
34
  .withKysely(new Kysely({
85
35
  dialect: new PGliteDialect(pg),
86
36
  })));
@@ -90,4 +40,28 @@ export async function createBrowserReactor(documentModelModules, upgradeManifest
90
40
  pg,
91
41
  };
92
42
  }
43
+ /**
44
+ * Parse default drives from environment variable.
45
+ * Returns an array of drive REST endpoint URLs (e.g., "https://example.com/d/powerhouse").
46
+ */
47
+ export function getDefaultDrivesFromEnv() {
48
+ const envValue = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL;
49
+ if (!envValue)
50
+ return [];
51
+ return envValue.split(",").filter((url) => url.trim().length > 0);
52
+ }
53
+ /**
54
+ * Add default drives for the new reactor via sync manager.
55
+ * @param defaultDriveUrls - Array of drive REST endpoint URLs (e.g., "https://example.com/d/powerhouse")
56
+ */
57
+ export async function addDefaultDrivesForNewReactor(defaultDriveUrls) {
58
+ for (const url of defaultDriveUrls) {
59
+ try {
60
+ await addRemoteDrive(url, {});
61
+ }
62
+ catch (error) {
63
+ console.error(`Failed to add default drive ${url}:`, error);
64
+ }
65
+ }
66
+ }
93
67
  //# sourceMappingURL=reactor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/utils/reactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/utils/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,GAIrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAgB,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,oBAA2C,EAC3C,gBAAsD,EACtD,MAAe;IAEf,MAAM,YAAY,GAAiB;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,uBAAuB,EAAE;KACpC,CAAC;IAEF,MAAM,UAAU,GAAe,KAAK,EAAE,GAAW,EAAE,EAAE;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE;QACrC,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE;SACvC,UAAU,CAAC,MAAM,CAAC;SAClB,UAAU,CAAC,YAAY,CAAC;SACxB,kBAAkB,CACjB,IAAI,cAAc,EAAE;SACjB,kBAAkB,CAAC,oBAAoB,CAAC;SACxC,oBAAoB,CAAC,gBAAgB,CAAC;SACtC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC;SACxC,cAAc,CAAC,UAAU,CAAC;SAC1B,UAAU,CACT,IAAI,MAAM,CAAW;QACnB,OAAO,EAAE,IAAI,aAAa,CAAC,EAAE,CAAC;KAC/B,CAAC,CACH,CACJ,CAAC;IAEJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO;QACL,GAAG,MAAM;QACT,EAAE;KAC2B,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,6BAEpB,CAAC;IACd,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,gBAA0B;IAE1B,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EAEN,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,EACP,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EAC1E,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAC/C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,SAAS,CAAC,CAqBpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACxD,MAAM,EAAE,CAAC,EACT,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,IAAI,KAqBZ"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EAEN,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,EACP,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EAC1E,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAC/C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,SAAS,CAAC,CAsBpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACxD,MAAM,EAAE,CAAC,EACT,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,IAAI,KAqBZ"}
@@ -6,7 +6,7 @@ export async function signOperation(operation, sign, documentId, document, reduc
6
6
  if (!operation.action.context?.signer)
7
7
  return operation;
8
8
  if (!reducer) {
9
- logger.error(`Document model '${document.header.documentType}' does not have a reducer`);
9
+ logger.error("Document model '@documentType' does not have a reducer", document.header.documentType);
10
10
  return operation;
11
11
  }
12
12
  const context = operation.action.context.signer;
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAUxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAoB,EACpB,IAA+C,EAC/C,UAAkB,EAClB,QAA4B,EAC5B,OAAyB,EACzB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,mBAAmB,QAAQ,CAAC,MAAM,CAAC,YAAY,2BAA2B,CAC3E,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAiB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAE9D,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAC7C,SAAS,CAAC,MAAM,EAChB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,CACL,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAS,EACT,UAAmB,EACnB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEzB,MAAM,MAAM,GAAiB;QAC3B,GAAG,EAAE;YACH,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,UAAU,IAAI,EAAE;SACtB;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;QACD,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,EAAE,MAAM,EAAE;QACnB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAUxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAoB,EACpB,IAA+C,EAC/C,UAAkB,EAClB,QAA4B,EAC5B,OAAyB,EACzB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,wDAAwD,EACxD,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAiB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAE9D,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAC7C,SAAS,CAAC,MAAM,EAChB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,CACL,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAS,EACT,UAAmB,EACnB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEzB,MAAM,MAAM,GAAiB;QAC3B,GAAG,EAAE;YACH,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,UAAU,IAAI,EAAE;SACtB;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;QACD,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,EAAE,MAAM,EAAE;QACnB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC"}