@powerhousedao/connect 1.0.0-dev.244 → 1.0.0-dev.245

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 (25) hide show
  1. package/dist/assets/{app-D3TxLTK-.css → app-76Vr3j5e.css} +19 -1
  2. package/dist/assets/{app-DR3WlBLu.js → app-BH-6rUAk.js} +337 -337
  3. package/dist/assets/{app-loader-CjrEwupY.css → app-loader-Bnp0H-wa.css} +16 -0
  4. package/dist/assets/{app-loader-CXe8k3Z6.js → app-loader-CQdXsdrs.js} +188 -194
  5. package/dist/assets/{ccip-DqQzZGts.js → ccip-DzlgrM-Q.js} +3 -3
  6. package/dist/assets/{content-C4uS9aKJ.js → content-CGSfY9bJ.js} +3 -3
  7. package/dist/assets/{index-Ka_SdIs9.js → index-BR7pEetO.js} +3 -3
  8. package/dist/assets/{index-BSwHlrXw.js → index-Boh2tg26.js} +4 -4
  9. package/dist/assets/{index-DXnKAS5B.js → index-Ck0OHqQ0.js} +3 -3
  10. package/dist/assets/{main.CwbMf_Nf.js → main.PwF6jbJu.js} +1 -1
  11. package/dist/index.html +1 -1
  12. package/dist/modules/@powerhousedao/reactor-browser/{chunk-YOX3ZAET.js → chunk-4AV4NYOH.js} +145 -159
  13. package/dist/modules/@powerhousedao/reactor-browser/{chunk-P46ZMPJ3.js → chunk-GZM7UEXF.js} +1 -1
  14. package/dist/modules/@powerhousedao/reactor-browser/{chunk-POMUCSTC.js → chunk-K62SYQYI.js} +22 -16
  15. package/dist/modules/@powerhousedao/reactor-browser/{chunk-6AXML2S3.js → chunk-QVHWUIBE.js} +1 -1
  16. package/dist/modules/@powerhousedao/reactor-browser/{chunk-4LZZ55AN.js → chunk-UIXXJKR2.js} +1 -1
  17. package/dist/modules/@powerhousedao/reactor-browser/context/index.js +2 -2
  18. package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +2 -2
  19. package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +3 -3
  20. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +2 -2
  21. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +3 -3
  22. package/dist/modules/@powerhousedao/reactor-browser/index.js +5 -5
  23. package/dist/modules/@powerhousedao/reactor-browser/reactor.js +2 -2
  24. package/dist/vite-envs.sh +1 -1
  25. package/package.json +9 -9
@@ -2958,6 +2958,10 @@
2958
2958
  user-select: none;
2959
2959
  }
2960
2960
 
2961
+ .\[scrollbar-width\:none\] {
2962
+ scrollbar-width: none;
2963
+ }
2964
+
2961
2965
  .group-focus-within\:\!text-gray-900:is(:where(.group):focus-within *) {
2962
2966
  color: var(--color-gray-900) !important;
2963
2967
  }
@@ -4375,6 +4379,18 @@
4375
4379
  flex-shrink: 0;
4376
4380
  }
4377
4381
 
4382
+ .\[\&\:\:-webkit-scrollbar\]\:\!hidden::-webkit-scrollbar {
4383
+ display: none !important;
4384
+ }
4385
+
4386
+ .\[\&\:\:-webkit-scrollbar-thumb\]\:\!hidden::-webkit-scrollbar-thumb {
4387
+ display: none !important;
4388
+ }
4389
+
4390
+ .\[\&\:\:-webkit-scrollbar-track\]\:\!hidden::-webkit-scrollbar-track {
4391
+ display: none !important;
4392
+ }
4393
+
4378
4394
  .\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button {
4379
4395
  display: none;
4380
4396
  }
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-DR3WlBLu.js","assets/main.CwbMf_Nf.js","assets/app-D3TxLTK-.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-BH-6rUAk.js","assets/main.PwF6jbJu.js","assets/app-76Vr3j5e.css"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __typeError = (msg) => {
4
4
  throw TypeError(msg);
@@ -11,7 +11,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
11
11
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
12
12
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
13
13
  var _tags, _levelString, _errorHandler, _ConsoleLogger_instances, levelValue_get, _getDocumentModelModule, _drives, _ReadModeService_instances, parseGraphQLErrors_fn, fetchDrive_fn, _a, _ServiceWorkerManager_instances, handleServiceWorkerMessage_fn, handleServiceWorker_fn;
14
- import { _ as __vitePreload } from "./main.CwbMf_Nf.js";
14
+ import { _ as __vitePreload } from "./main.PwF6jbJu.js";
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
16
16
  import { useState, useEffect, Suspense, lazy } from "react";
17
17
  function _mergeNamespaces(n, m) {
@@ -86,10 +86,123 @@ class DocumentEditorDebugTools {
86
86
  this.document = void 0;
87
87
  }
88
88
  }
89
+ var define_process_env_default = {};
90
+ const LEVELS = {
91
+ verbose: 1,
92
+ debug: 2,
93
+ info: 3,
94
+ warn: 4,
95
+ error: 5,
96
+ silent: 6
97
+ };
98
+ class ConsoleLogger {
99
+ constructor(tags, errorHandler2) {
100
+ __privateAdd(this, _ConsoleLogger_instances);
101
+ __privateAdd(this, _tags);
102
+ __privateAdd(this, _levelString, "env");
103
+ __privateAdd(this, _errorHandler);
104
+ __privateSet(this, _tags, (tags || []).map((tag) => `[${tag}]`));
105
+ __privateSet(this, _errorHandler, errorHandler2);
106
+ this.log = this.log.bind(this);
107
+ this.info = this.info.bind(this);
108
+ this.warn = this.warn.bind(this);
109
+ this.error = this.error.bind(this);
110
+ this.debug = this.debug.bind(this);
111
+ this.verbose = this.verbose.bind(this);
112
+ }
113
+ get level() {
114
+ return __privateGet(this, _levelString);
115
+ }
116
+ set level(level) {
117
+ __privateSet(this, _levelString, level);
118
+ }
119
+ get errorHandler() {
120
+ return __privateGet(this, _errorHandler);
121
+ }
122
+ set errorHandler(handler) {
123
+ __privateSet(this, _errorHandler, handler);
124
+ }
125
+ log(...data) {
126
+ return this.debug(...data);
127
+ }
128
+ verbose(...data) {
129
+ if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.verbose) {
130
+ return;
131
+ }
132
+ return this.debug(...data);
133
+ }
134
+ debug(...data) {
135
+ if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.debug) {
136
+ return;
137
+ }
138
+ return console.debug(...[...__privateGet(this, _tags), ...data]);
139
+ }
140
+ info(...data) {
141
+ if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.info) {
142
+ return;
143
+ }
144
+ return console.info(...[...__privateGet(this, _tags), ...data]);
145
+ }
146
+ warn(...data) {
147
+ if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.warn) {
148
+ return;
149
+ }
150
+ return console.warn(...[...__privateGet(this, _tags), ...data]);
151
+ }
152
+ error(...data) {
153
+ if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.error) {
154
+ return;
155
+ }
156
+ if (__privateGet(this, _errorHandler)) {
157
+ __privateGet(this, _errorHandler).call(this, ...data);
158
+ }
159
+ return console.error(...[...__privateGet(this, _tags), ...data]);
160
+ }
161
+ }
162
+ _tags = new WeakMap();
163
+ _levelString = new WeakMap();
164
+ _errorHandler = new WeakMap();
165
+ _ConsoleLogger_instances = new WeakSet();
166
+ levelValue_get = function() {
167
+ if (__privateGet(this, _levelString) === "env") {
168
+ const envLevel = typeof process !== "undefined" ? define_process_env_default.LOG_LEVEL : void 0;
169
+ if (!envLevel) {
170
+ return LEVELS.debug;
171
+ }
172
+ if (!(envLevel in LEVELS)) {
173
+ return LEVELS.debug;
174
+ }
175
+ return LEVELS[envLevel];
176
+ }
177
+ return LEVELS[__privateGet(this, _levelString)];
178
+ };
179
+ const loggerInstance = new ConsoleLogger();
180
+ let logLevel = "env";
181
+ let errorHandler;
182
+ loggerInstance.level = logLevel;
183
+ loggerInstance.errorHandler = errorHandler;
184
+ const logger$1 = loggerInstance;
185
+ const setErrorHandler = (handler) => {
186
+ errorHandler = handler;
187
+ loggerInstance.errorHandler = handler;
188
+ };
189
+ const setLogLevel = (level) => {
190
+ logLevel = level;
191
+ loggerInstance.level = level;
192
+ };
193
+ const childLogger = (tags) => {
194
+ const logger2 = new ConsoleLogger(tags);
195
+ logger2.level = logLevel;
196
+ logger2.errorHandler = errorHandler;
197
+ return logger2;
198
+ };
89
199
  class InMemoryCache {
90
200
  constructor() {
91
201
  __publicField(this, "cache", /* @__PURE__ */ new Map());
92
202
  }
203
+ clear() {
204
+ this.cache.clear();
205
+ }
93
206
  async setDocument(drive, id, document) {
94
207
  var _a2;
95
208
  const global2 = document.operations.global.map((e) => {
@@ -115,6 +228,15 @@ class InMemoryCache {
115
228
  var _a2;
116
229
  return (_a2 = this.cache.get(drive)) == null ? void 0 : _a2.get(id);
117
230
  }
231
+ async getCachedOperations(drive, id) {
232
+ try {
233
+ const document = await this.getDocument(drive, id);
234
+ return document == null ? void 0 : document.operations;
235
+ } catch (error) {
236
+ logger$1.error(error);
237
+ return void 0;
238
+ }
239
+ }
118
240
  }
119
241
  const K = [
120
242
  1518500249 | 0,
@@ -11372,116 +11494,6 @@ const driveDocumentModelModule = {
11372
11494
  actions: { ...creators, ...actions },
11373
11495
  utils: { ...documentModelUtils, ...customUtils }
11374
11496
  };
11375
- var define_process_env_default = {};
11376
- const LEVELS = {
11377
- verbose: 1,
11378
- debug: 2,
11379
- info: 3,
11380
- warn: 4,
11381
- error: 5,
11382
- silent: 6
11383
- };
11384
- class ConsoleLogger {
11385
- constructor(tags, errorHandler2) {
11386
- __privateAdd(this, _ConsoleLogger_instances);
11387
- __privateAdd(this, _tags);
11388
- __privateAdd(this, _levelString, "env");
11389
- __privateAdd(this, _errorHandler);
11390
- __privateSet(this, _tags, (tags || []).map((tag) => `[${tag}]`));
11391
- __privateSet(this, _errorHandler, errorHandler2);
11392
- this.log = this.log.bind(this);
11393
- this.info = this.info.bind(this);
11394
- this.warn = this.warn.bind(this);
11395
- this.error = this.error.bind(this);
11396
- this.debug = this.debug.bind(this);
11397
- this.verbose = this.verbose.bind(this);
11398
- }
11399
- get level() {
11400
- return __privateGet(this, _levelString);
11401
- }
11402
- set level(level) {
11403
- __privateSet(this, _levelString, level);
11404
- }
11405
- get errorHandler() {
11406
- return __privateGet(this, _errorHandler);
11407
- }
11408
- set errorHandler(handler) {
11409
- __privateSet(this, _errorHandler, handler);
11410
- }
11411
- log(...data) {
11412
- return this.debug(...data);
11413
- }
11414
- verbose(...data) {
11415
- if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.verbose) {
11416
- return;
11417
- }
11418
- return this.debug(...data);
11419
- }
11420
- debug(...data) {
11421
- if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.debug) {
11422
- return;
11423
- }
11424
- return console.debug(...[...__privateGet(this, _tags), ...data]);
11425
- }
11426
- info(...data) {
11427
- if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.info) {
11428
- return;
11429
- }
11430
- return console.info(...[...__privateGet(this, _tags), ...data]);
11431
- }
11432
- warn(...data) {
11433
- if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.warn) {
11434
- return;
11435
- }
11436
- return console.warn(...[...__privateGet(this, _tags), ...data]);
11437
- }
11438
- error(...data) {
11439
- if (__privateGet(this, _ConsoleLogger_instances, levelValue_get) > LEVELS.error) {
11440
- return;
11441
- }
11442
- if (__privateGet(this, _errorHandler)) {
11443
- __privateGet(this, _errorHandler).call(this, ...data);
11444
- }
11445
- return console.error(...[...__privateGet(this, _tags), ...data]);
11446
- }
11447
- }
11448
- _tags = new WeakMap();
11449
- _levelString = new WeakMap();
11450
- _errorHandler = new WeakMap();
11451
- _ConsoleLogger_instances = new WeakSet();
11452
- levelValue_get = function() {
11453
- if (__privateGet(this, _levelString) === "env") {
11454
- const envLevel = typeof process !== "undefined" ? define_process_env_default.LOG_LEVEL : void 0;
11455
- if (!envLevel) {
11456
- return LEVELS.debug;
11457
- }
11458
- if (!(envLevel in LEVELS)) {
11459
- return LEVELS.debug;
11460
- }
11461
- return LEVELS[envLevel];
11462
- }
11463
- return LEVELS[__privateGet(this, _levelString)];
11464
- };
11465
- const loggerInstance = new ConsoleLogger();
11466
- let logLevel = "env";
11467
- let errorHandler;
11468
- loggerInstance.level = logLevel;
11469
- loggerInstance.errorHandler = errorHandler;
11470
- const logger$1 = loggerInstance;
11471
- const setErrorHandler = (handler) => {
11472
- errorHandler = handler;
11473
- loggerInstance.errorHandler = handler;
11474
- };
11475
- const setLogLevel = (level) => {
11476
- logLevel = level;
11477
- loggerInstance.level = level;
11478
- };
11479
- const childLogger = (tags) => {
11480
- const logger2 = new ConsoleLogger(tags);
11481
- logger2.level = logLevel;
11482
- logger2.errorHandler = errorHandler;
11483
- return logger2;
11484
- };
11485
11497
  class DocumentModelNotFoundError extends Error {
11486
11498
  constructor(id, cause) {
11487
11499
  super(`Document model "${id}" not found`, { cause });
@@ -22497,7 +22509,7 @@ const _PullResponderTransmitter = class _PullResponderTransmitter {
22497
22509
  const syncUnits = await this.manager.getListenerSyncUnitIds(driveId, listenerId);
22498
22510
  let success = true;
22499
22511
  for (const revision of revisions) {
22500
- const syncUnit = syncUnits.find((s) => s.scope === revision.scope && s.branch === revision.branch && s.driveId === revision.driveId && s.documentId == revision.documentId);
22512
+ const syncUnit = syncUnits.find((s) => s.scope === revision.scope && s.branch === revision.branch && s.documentId == revision.documentId);
22501
22513
  if (!syncUnit) {
22502
22514
  this.logger.warn("Unknown sync unit was acknowledged", revision);
22503
22515
  success = false;
@@ -22814,7 +22826,6 @@ class BaseDocumentDriveServer {
22814
22826
  // internal state
22815
22827
  __publicField(this, "triggerMap", /* @__PURE__ */ new Map());
22816
22828
  __publicField(this, "initializePromise");
22817
- var _a2, _b;
22818
22829
  this.documentModelModules = documentModelModules;
22819
22830
  this.storage = storage;
22820
22831
  this.documentStorage = documentStorage;
@@ -22835,17 +22846,6 @@ class BaseDocumentDriveServer {
22835
22846
  taskQueueMethod: (options == null ? void 0 : options.taskQueueMethod) === void 0 ? RunAsap.runAsap : options.taskQueueMethod
22836
22847
  };
22837
22848
  this.defaultDrivesManager = new DefaultDrivesManager(this, this.defaultDrivesManagerDelegate, options);
22838
- (_b = (_a2 = this.storage).setStorageDelegate) == null ? void 0 : _b.call(_a2, {
22839
- getCachedOperations: async (drive, id) => {
22840
- try {
22841
- const document = await this.cache.getDocument(drive, id);
22842
- return document == null ? void 0 : document.operations;
22843
- } catch (error) {
22844
- logger$1.error(error);
22845
- return void 0;
22846
- }
22847
- }
22848
- });
22849
22849
  this.initializePromise = this._initialize();
22850
22850
  }
22851
22851
  // workaround for testing the ephemeral listeners -- we don't have DI in place yet
@@ -23651,7 +23651,6 @@ class BaseDocumentDriveServer {
23651
23651
  this.listenerManager.updateSynchronizationRevisions(driveId, [
23652
23652
  {
23653
23653
  syncId: "0",
23654
- driveId,
23655
23654
  documentId: "",
23656
23655
  scope: "global",
23657
23656
  branch: "main",
@@ -23790,18 +23789,15 @@ const DocumentDriveServer = ReadModeServer(BaseDocumentDriveServer);
23790
23789
  class MemoryStorage {
23791
23790
  constructor() {
23792
23791
  __publicField(this, "documents");
23793
- __publicField(this, "drives");
23794
23792
  __publicField(this, "driveManifests");
23795
- __publicField(this, "slugToDriveId", {});
23796
23793
  this.documents = {};
23797
- this.drives = {};
23798
23794
  this.driveManifests = {};
23799
23795
  }
23800
23796
  ////////////////////////////////
23801
23797
  // IDocumentStorage
23802
23798
  ////////////////////////////////
23803
23799
  exists(documentId) {
23804
- return Promise.resolve(!!this.documents[documentId]);
23800
+ return Promise.resolve(!!this.documents[documentId] || !!this.documents[`drive/${documentId}`]);
23805
23801
  }
23806
23802
  create(documentId, document) {
23807
23803
  this.documents[documentId] = document;
@@ -23810,6 +23806,10 @@ class MemoryStorage {
23810
23806
  get(documentId) {
23811
23807
  const document = this.documents[documentId];
23812
23808
  if (!document) {
23809
+ const drive = this.documents[`drive/${documentId}`];
23810
+ if (drive) {
23811
+ return Promise.resolve(drive);
23812
+ }
23813
23813
  throw new Error(`Document with id ${documentId} not found`);
23814
23814
  }
23815
23815
  return Promise.resolve(document);
@@ -23827,17 +23827,9 @@ class MemoryStorage {
23827
23827
  getDocument(driveId, id) {
23828
23828
  return this.get(id);
23829
23829
  }
23830
- async saveDocument(drive, id, document) {
23831
- this.documents[id] = document;
23832
- const manifest = this.getDriveManifest(drive);
23833
- manifest.documentIds.add(id);
23834
- this.updateDriveManifest(drive, manifest);
23835
- }
23836
23830
  async clearStorage() {
23837
23831
  this.documents = {};
23838
- this.drives = {};
23839
23832
  this.driveManifests = {};
23840
- this.slugToDriveId = {};
23841
23833
  }
23842
23834
  async createDocument(drive, id, document) {
23843
23835
  await this.create(id, document);
@@ -23869,34 +23861,43 @@ class MemoryStorage {
23869
23861
  delete this.documents[id];
23870
23862
  }
23871
23863
  async getDrives() {
23872
- return Object.keys(this.drives);
23864
+ return Object.keys(this.driveManifests);
23873
23865
  }
23874
23866
  async getDrive(id) {
23875
- const drive = this.drives[id];
23867
+ const drive = this.documents[`drive/${id}`];
23876
23868
  if (!drive) {
23877
23869
  throw new DriveNotFoundError(id);
23878
23870
  }
23879
23871
  return drive;
23880
23872
  }
23881
23873
  async getDriveBySlug(slug) {
23882
- const driveId = this.slugToDriveId[slug];
23883
- if (!driveId) {
23884
- throw new Error(`Drive with slug ${slug} not found`);
23874
+ for (const driveId of Object.keys(this.driveManifests)) {
23875
+ const drive = this.documents[`drive/${driveId}`];
23876
+ if (drive.initialState.state.global.slug === slug) {
23877
+ return drive;
23878
+ }
23885
23879
  }
23886
- return this.getDrive(driveId);
23880
+ throw new Error(`Drive with slug ${slug} not found`);
23887
23881
  }
23888
23882
  async createDrive(id, drive) {
23889
- this.drives[id] = drive;
23890
- this.updateDriveManifest(id, { documentIds: /* @__PURE__ */ new Set() });
23891
- const { slug } = drive.initialState.state.global;
23883
+ const slug = drive.initialState.state.global.slug;
23892
23884
  if (slug) {
23893
- this.slugToDriveId[slug] = id;
23885
+ let existingDrive;
23886
+ try {
23887
+ existingDrive = await this.getDriveBySlug(slug);
23888
+ } catch {
23889
+ }
23890
+ if (existingDrive) {
23891
+ throw new Error(`Drive with slug ${slug} already exists`);
23892
+ }
23894
23893
  }
23894
+ await this.create(`drive/${id}`, drive);
23895
+ this.updateDriveManifest(id, { documentIds: /* @__PURE__ */ new Set() });
23895
23896
  }
23896
23897
  async addDriveOperations(id, operations, header) {
23897
23898
  const drive = await this.getDrive(id);
23898
23899
  const mergedOperations = mergeOperations(drive.operations, operations);
23899
- this.drives[id] = {
23900
+ this.documents[`drive/${id}`] = {
23900
23901
  ...drive,
23901
23902
  ...header,
23902
23903
  operations: mergedOperations
@@ -23918,24 +23919,18 @@ class MemoryStorage {
23918
23919
  delete this.documents[docId];
23919
23920
  }));
23920
23921
  delete this.driveManifests[id];
23921
- delete this.drives[id];
23922
- for (const [slug, driveId] of Object.entries(this.slugToDriveId)) {
23923
- if (driveId === id) {
23924
- delete this.slugToDriveId[slug];
23925
- }
23926
- }
23922
+ delete this.documents[id];
23927
23923
  }
23928
23924
  async getSynchronizationUnitsRevision(units) {
23929
23925
  const results = await Promise.allSettled(units.map(async (unit) => {
23930
23926
  try {
23931
- const document = await (unit.documentId ? this.getDocument(unit.driveId, unit.documentId) : this.getDrive(unit.driveId));
23927
+ const document = await this.get(unit.documentId);
23932
23928
  if (!document) {
23933
23929
  return void 0;
23934
23930
  }
23935
23931
  const operation = document.operations[unit.scope].at(-1);
23936
23932
  if (operation) {
23937
23933
  return {
23938
- driveId: unit.driveId,
23939
23934
  documentId: unit.documentId,
23940
23935
  scope: unit.scope,
23941
23936
  branch: unit.branch,
@@ -24138,7 +24133,7 @@ const _ListenerManager = class _ListenerManager {
24138
24133
  this.logger.verbose(`Abandoning push for sync unit ${syncUnit.syncId}: already up-to-date (${unitState.listenerRev} >= ${syncUnit.revision})`);
24139
24134
  return;
24140
24135
  } else {
24141
- this.logger.verbose(`Listener out-of-date for sync unit (${syncUnit.driveId}, ${syncUnit.scope}, ${syncUnit.documentId}): ${unitState == null ? void 0 : unitState.listenerRev} < ${syncUnit.revision}`);
24136
+ this.logger.verbose(`Listener out-of-date for sync unit (${syncUnit.scope}, ${syncUnit.documentId}): ${unitState == null ? void 0 : unitState.listenerRev} < ${syncUnit.revision}`);
24142
24137
  }
24143
24138
  const opData = [];
24144
24139
  try {
@@ -24296,11 +24291,11 @@ const _ListenerManager = class _ListenerManager {
24296
24291
  if (entry && entry.listenerRev >= syncUnit.revision) {
24297
24292
  return;
24298
24293
  }
24299
- const { documentId, driveId: driveId2, scope, branch } = syncUnit;
24294
+ const { documentId, scope, branch } = syncUnit;
24300
24295
  try {
24301
24296
  const operations = await this.syncManager.getOperationData(
24302
24297
  // DEAL WITH INVALID SYNC ID ERROR
24303
- driveId2,
24298
+ driveId,
24304
24299
  syncUnit.syncId,
24305
24300
  {
24306
24301
  since: options == null ? void 0 : options.since,
@@ -24313,7 +24308,7 @@ const _ListenerManager = class _ListenerManager {
24313
24308
  }
24314
24309
  operationsCount += operations.length;
24315
24310
  strands.push({
24316
- driveId: driveId2,
24311
+ driveId,
24317
24312
  documentId,
24318
24313
  scope,
24319
24314
  branch,
@@ -24580,26 +24575,21 @@ class SynchronizationManager {
24580
24575
  async getSynchronizationUnitsRevision(driveId, syncUnitsQuery) {
24581
24576
  const drive = await this.getDrive(driveId);
24582
24577
  const revisions = await this.storage.getSynchronizationUnitsRevision(syncUnitsQuery);
24583
- const synchronizationUnits = syncUnitsQuery.map((s) => ({
24584
- ...s,
24585
- lastUpdated: drive.created,
24586
- revision: -1
24587
- }));
24588
- for (const revision of revisions) {
24589
- const syncUnit = synchronizationUnits.find((s) => revision.driveId === s.driveId && revision.documentId === s.documentId && revision.scope === s.scope && revision.branch === s.branch);
24590
- if (syncUnit) {
24591
- syncUnit.revision = revision.revision;
24592
- syncUnit.lastUpdated = revision.lastUpdated;
24593
- }
24594
- }
24595
- return synchronizationUnits;
24578
+ return syncUnitsQuery.map((s) => {
24579
+ var _a2;
24580
+ return {
24581
+ ...s,
24582
+ lastUpdated: drive.created,
24583
+ revision: ((_a2 = revisions.find((r) => r.documentId === s.documentId && r.scope === s.scope && r.branch === s.branch)) == null ? void 0 : _a2.revision) ?? -1
24584
+ };
24585
+ });
24596
24586
  }
24597
24587
  async getSynchronizationUnitsIds(driveId, documentId, scope, branch, documentType2) {
24598
24588
  const drive = await this.getDrive(driveId);
24599
24589
  const nodes = drive.state.global.nodes.filter((node) => isFileNode(node) && (!(documentId == null ? void 0 : documentId.length) || documentId.includes(node.id) || documentId.includes("*")) && (!(documentType2 == null ? void 0 : documentType2.length) || documentType2.includes(node.documentType) || documentType2.includes("*")));
24600
24590
  if ((!documentId || documentId.includes("*") || documentId.includes("")) && (!(documentType2 == null ? void 0 : documentType2.length) || documentType2.includes("powerhouse/document-drive") || documentType2.includes("*"))) {
24601
24591
  nodes.unshift({
24602
- id: "",
24592
+ id: drive.state.global.id,
24603
24593
  documentType: "powerhouse/document-drive",
24604
24594
  synchronizationUnits: [
24605
24595
  {
@@ -24641,7 +24631,6 @@ class SynchronizationManager {
24641
24631
  syncId,
24642
24632
  scope: syncUnit.scope,
24643
24633
  branch: syncUnit.branch,
24644
- driveId,
24645
24634
  documentId: node.id,
24646
24635
  documentType: node.documentType
24647
24636
  };
@@ -24659,7 +24648,6 @@ class SynchronizationManager {
24659
24648
  syncId,
24660
24649
  scope,
24661
24650
  branch,
24662
- driveId,
24663
24651
  documentId,
24664
24652
  documentType: documentType2,
24665
24653
  lastUpdated: lastOperation.timestamp ?? document.lastModified,
@@ -25545,7 +25533,7 @@ const nodeOptionsMap = {
25545
25533
  };
25546
25534
  const name = "@powerhousedao/connect";
25547
25535
  const productName = "Powerhouse-Connect";
25548
- const version$1 = "1.0.0-dev.244";
25536
+ const version$1 = "1.0.0-dev.245";
25549
25537
  const description = "Powerhouse Connect";
25550
25538
  const main = "./dist/index.html";
25551
25539
  const type = "module";
@@ -28416,12 +28404,13 @@ const _BrowserStorage = class _BrowserStorage {
28416
28404
  async getDrives() {
28417
28405
  const db = await this.db;
28418
28406
  const keys = await db.keys();
28419
- return keys.filter((key) => key.startsWith(_BrowserStorage.DRIVES_KEY)).map((key) => key.slice(_BrowserStorage.DRIVES_KEY.length + _BrowserStorage.SEP.length));
28407
+ return keys.filter((key) => key.startsWith(_BrowserStorage.MANIFEST_KEY)).map((key) => key.slice(_BrowserStorage.MANIFEST_KEY.length + _BrowserStorage.SEP.length));
28420
28408
  }
28421
28409
  async getDrive(id) {
28422
- const db = await this.db;
28423
- const drive = await db.getItem(this.buildDriveKey(id));
28424
- if (!drive) {
28410
+ let drive;
28411
+ try {
28412
+ drive = await this.get(id);
28413
+ } catch {
28425
28414
  throw new DriveNotFoundError(id);
28426
28415
  }
28427
28416
  return drive;
@@ -28437,8 +28426,18 @@ const _BrowserStorage = class _BrowserStorage {
28437
28426
  throw new Error(`Drive with slug ${slug} not found`);
28438
28427
  }
28439
28428
  async createDrive(id, drive) {
28440
- const db = await this.db;
28441
- await db.setItem(this.buildDriveKey(id), drive);
28429
+ const slug = drive.initialState.state.global.slug;
28430
+ if (slug) {
28431
+ let existingDrive;
28432
+ try {
28433
+ existingDrive = await this.getDriveBySlug(slug);
28434
+ } catch {
28435
+ }
28436
+ if (existingDrive) {
28437
+ throw new Error(`Drive with slug ${slug} already exists`);
28438
+ }
28439
+ }
28440
+ await this.create(id, drive);
28442
28441
  await this.updateDriveManifest(id, { documentIds: [] });
28443
28442
  }
28444
28443
  async deleteDrive(id) {
@@ -28446,13 +28445,13 @@ const _BrowserStorage = class _BrowserStorage {
28446
28445
  await Promise.all(documents.map((doc) => this.deleteDocument(id, doc)));
28447
28446
  const db = await this.db;
28448
28447
  await db.removeItem(this.buildManifestKey(id));
28449
- return db.removeItem(this.buildDriveKey(id));
28448
+ return db.removeItem(this.buildDocumentKey(id));
28450
28449
  }
28451
28450
  async addDriveOperations(id, operations, header) {
28452
28451
  const drive = await this.getDrive(id);
28453
28452
  const mergedOperations = mergeOperations(drive.operations, operations);
28454
28453
  const db = await this.db;
28455
- await db.setItem(this.buildDriveKey(id), {
28454
+ await db.setItem(this.buildDocumentKey(id), {
28456
28455
  ...drive,
28457
28456
  ...header,
28458
28457
  operations: mergedOperations
@@ -28461,14 +28460,13 @@ const _BrowserStorage = class _BrowserStorage {
28461
28460
  async getSynchronizationUnitsRevision(units) {
28462
28461
  const results = await Promise.allSettled(units.map(async (unit) => {
28463
28462
  try {
28464
- const document = await (unit.documentId ? this.getDocument(unit.driveId, unit.documentId) : this.getDrive(unit.driveId));
28463
+ const document = await this.get(unit.documentId);
28465
28464
  if (!document) {
28466
28465
  return void 0;
28467
28466
  }
28468
28467
  const operation = document.operations[unit.scope].at(-1);
28469
28468
  if (operation) {
28470
28469
  return {
28471
- driveId: unit.driveId,
28472
28470
  documentId: unit.documentId,
28473
28471
  scope: unit.scope,
28474
28472
  branch: unit.branch,
@@ -28500,7 +28498,7 @@ const _BrowserStorage = class _BrowserStorage {
28500
28498
  const drive = await this.getDrive(driveId);
28501
28499
  const migratedDrive = migrateDocumentOperationSignatures(drive);
28502
28500
  if (migratedDrive !== drive) {
28503
- return (await this.db).setItem(this.buildDriveKey(driveId), migratedDrive);
28501
+ return (await this.db).setItem(this.buildDocumentKey(driveId), migratedDrive);
28504
28502
  }
28505
28503
  }
28506
28504
  async migrateDocument(drive, id) {
@@ -28513,9 +28511,6 @@ const _BrowserStorage = class _BrowserStorage {
28513
28511
  ////////////////////////////////
28514
28512
  // Private methods
28515
28513
  ////////////////////////////////
28516
- buildDriveKey(driveId) {
28517
- return `${_BrowserStorage.DRIVES_KEY}${_BrowserStorage.SEP}${driveId}`;
28518
- }
28519
28514
  buildDocumentKey(documentId) {
28520
28515
  return `${_BrowserStorage.DOCUMENT_KEY}${_BrowserStorage.SEP}${documentId}`;
28521
28516
  }
@@ -28525,7 +28520,6 @@ const _BrowserStorage = class _BrowserStorage {
28525
28520
  };
28526
28521
  __publicField(_BrowserStorage, "DBName", "DOCUMENT_DRIVES");
28527
28522
  __publicField(_BrowserStorage, "SEP", ":");
28528
- __publicField(_BrowserStorage, "DRIVES_KEY", "DRIVES");
28529
28523
  __publicField(_BrowserStorage, "DOCUMENT_KEY", "DOCUMENT");
28530
28524
  __publicField(_BrowserStorage, "MANIFEST_KEY", "MANIFEST");
28531
28525
  let BrowserStorage = _BrowserStorage;
@@ -31131,7 +31125,7 @@ if (window.__VITE_ENVS.MODE === "development") {
31131
31125
  } else {
31132
31126
  serviceWorkerManager.registerServiceWorker(false);
31133
31127
  }
31134
- const App = lazy(() => __vitePreload(() => import("./app-DR3WlBLu.js").then((n) => n.aN), true ? __vite__mapDeps([0,1,2]) : void 0));
31128
+ const App = lazy(() => __vitePreload(() => import("./app-BH-6rUAk.js").then((n) => n.aN), true ? __vite__mapDeps([0,1,2]) : void 0));
31135
31129
  const AppLoader = /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(App, {}) });
31136
31130
  const appLoader = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
31137
31131
  __proto__: null,
@@ -1,7 +1,7 @@
1
- import { aD as BaseError, aE as getUrl, aF as stringify, aG as decodeErrorResult, aH as isAddressEqual, aI as call, aJ as concat, aK as encodeAbiParameters, aL as HttpRequestError, aM as isHex } from "./app-DR3WlBLu.js";
2
- import "./main.CwbMf_Nf.js";
1
+ import { aD as BaseError, aE as getUrl, aF as stringify, aG as decodeErrorResult, aH as isAddressEqual, aI as call, aJ as concat, aK as encodeAbiParameters, aL as HttpRequestError, aM as isHex } from "./app-BH-6rUAk.js";
2
+ import "./main.PwF6jbJu.js";
3
3
  import "react/jsx-runtime";
4
- import "./app-loader-CXe8k3Z6.js";
4
+ import "./app-loader-CQdXsdrs.js";
5
5
  import "react";
6
6
  import "@powerhousedao/reactor-browser";
7
7
  import "react-dom";