@powerhousedao/connect 1.0.19-staging.0 → 1.0.20-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.env +1 -1
- package/dist/assets/{app-B0t4z_0j.js → app-BRmEr17M.js} +8654 -3164
- package/dist/assets/app-BRmEr17M.js.map +1 -0
- package/dist/assets/{app-CDOWlDp2.css → app-BzvMUA_5.css} +118 -0
- package/dist/assets/{app-loader-DiF8OhX3.css → app-loader-DaCxVT0x.css} +134 -0
- package/dist/assets/{app-loader-C-1MIlBU.js → app-loader-_6yU4PFI.js} +522 -264
- package/dist/assets/app-loader-_6yU4PFI.js.map +1 -0
- package/dist/assets/browser--PdVaTAw.js +27234 -0
- package/dist/assets/browser--PdVaTAw.js.map +1 -0
- package/dist/assets/{ccip-CiyFdT-G.js → ccip-oTEe2poK.js} +4 -3
- package/dist/assets/ccip-oTEe2poK.js.map +1 -0
- package/dist/assets/{content-DhAAoiTj.js → content-B1Gquii9.js} +1051 -374
- package/dist/assets/content-B1Gquii9.js.map +1 -0
- package/dist/assets/{index-BYJBV0RH.js → index-C47jzF-n.js} +21 -15
- package/dist/assets/index-C47jzF-n.js.map +1 -0
- package/dist/assets/index-CXljh8x6.js +208 -0
- package/dist/assets/index-CXljh8x6.js.map +1 -0
- package/dist/assets/{index-D-cXDDE0.js → index-Csy31V2Q.js} +4 -3
- package/dist/assets/index-Csy31V2Q.js.map +1 -0
- package/dist/assets/{index-DMkr0pEM.js → index-DSo3d6TG.js} +7 -6
- package/dist/assets/index-DSo3d6TG.js.map +1 -0
- package/dist/assets/{main.DTarSVWp.js → main.CUjcRUhx.js} +2 -1
- package/dist/assets/main.CUjcRUhx.js.map +1 -0
- package/dist/assets/reactor-analytics-C7JH8QS3.js +44 -0
- package/dist/assets/reactor-analytics-C7JH8QS3.js.map +1 -0
- package/dist/assets/router-B-9X40Vx.js +1585 -0
- package/dist/assets/router-B-9X40Vx.js.map +1 -0
- package/dist/assets/{style-Ce3V83BE.css → style-BPUyhu8E.css} +3 -0
- package/dist/external-packages.js +1 -0
- package/dist/external-packages.js.map +1 -0
- package/dist/hmr.js +1 -0
- package/dist/hmr.js.map +1 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -0
- package/dist/service-worker.js.map +1 -0
- package/dist/vite-envs.sh +1 -1
- package/package.json +10 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-BRmEr17M.js","assets/main.CUjcRUhx.js","assets/app-BzvMUA_5.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.
|
|
14
|
+
import { _ as __vitePreload } from "./main.CUjcRUhx.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) {
|
|
@@ -133,7 +133,7 @@ class InMemoryCache {
|
|
|
133
133
|
if (!drive) {
|
|
134
134
|
return false;
|
|
135
135
|
}
|
|
136
|
-
const slug = drive.
|
|
136
|
+
const slug = drive.slug.length > 0 ? drive.slug : driveId;
|
|
137
137
|
if (slug) {
|
|
138
138
|
this.slugToDriveId.delete(slug);
|
|
139
139
|
}
|
|
@@ -7117,6 +7117,7 @@ function createReducer(stateReducer2, documentReducer = baseReducer) {
|
|
|
7117
7117
|
function baseCreateExtendedState(initialState, createState2) {
|
|
7118
7118
|
return {
|
|
7119
7119
|
name: "",
|
|
7120
|
+
slug: "",
|
|
7120
7121
|
documentType: "",
|
|
7121
7122
|
revision: {
|
|
7122
7123
|
global: 0,
|
|
@@ -7144,10 +7145,6 @@ function baseCreateDocument(initialState, createState2) {
|
|
|
7144
7145
|
function hashDocumentStateForScope(document, scope = "global") {
|
|
7145
7146
|
return hash(cjsModule(document.state[scope] || ""));
|
|
7146
7147
|
}
|
|
7147
|
-
const hashKey = (date, randomLimit = 1e3) => {
|
|
7148
|
-
const random = Math.random() * randomLimit;
|
|
7149
|
-
return hash(`${(/* @__PURE__ */ new Date()).toISOString()}${random}`);
|
|
7150
|
-
};
|
|
7151
7148
|
function getDocumentLastModified(document) {
|
|
7152
7149
|
var _a2;
|
|
7153
7150
|
const sortedOperations = sortOperations(Object.values(document.operations).flat());
|
|
@@ -7534,21 +7531,186 @@ function UpdateStateExampleInputSchema() {
|
|
|
7534
7531
|
newExample: z.string()
|
|
7535
7532
|
});
|
|
7536
7533
|
}
|
|
7534
|
+
var dist = {};
|
|
7535
|
+
var hasRequiredDist;
|
|
7536
|
+
function requireDist() {
|
|
7537
|
+
if (hasRequiredDist) return dist;
|
|
7538
|
+
hasRequiredDist = 1;
|
|
7539
|
+
(function(exports) {
|
|
7540
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
7541
|
+
function getDefaultExportFromCjs2(x) {
|
|
7542
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
7543
|
+
}
|
|
7544
|
+
var browser = { exports: {} };
|
|
7545
|
+
var process2 = browser.exports = {};
|
|
7546
|
+
var cachedSetTimeout;
|
|
7547
|
+
var cachedClearTimeout;
|
|
7548
|
+
function defaultSetTimout() {
|
|
7549
|
+
throw new Error("setTimeout has not been defined");
|
|
7550
|
+
}
|
|
7551
|
+
function defaultClearTimeout() {
|
|
7552
|
+
throw new Error("clearTimeout has not been defined");
|
|
7553
|
+
}
|
|
7554
|
+
(function() {
|
|
7555
|
+
try {
|
|
7556
|
+
if (typeof setTimeout === "function") {
|
|
7557
|
+
cachedSetTimeout = setTimeout;
|
|
7558
|
+
} else {
|
|
7559
|
+
cachedSetTimeout = defaultSetTimout;
|
|
7560
|
+
}
|
|
7561
|
+
} catch (e) {
|
|
7562
|
+
cachedSetTimeout = defaultSetTimout;
|
|
7563
|
+
}
|
|
7564
|
+
try {
|
|
7565
|
+
if (typeof clearTimeout === "function") {
|
|
7566
|
+
cachedClearTimeout = clearTimeout;
|
|
7567
|
+
} else {
|
|
7568
|
+
cachedClearTimeout = defaultClearTimeout;
|
|
7569
|
+
}
|
|
7570
|
+
} catch (e) {
|
|
7571
|
+
cachedClearTimeout = defaultClearTimeout;
|
|
7572
|
+
}
|
|
7573
|
+
})();
|
|
7574
|
+
function runTimeout(fun) {
|
|
7575
|
+
if (cachedSetTimeout === setTimeout) {
|
|
7576
|
+
return setTimeout(fun, 0);
|
|
7577
|
+
}
|
|
7578
|
+
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
7579
|
+
cachedSetTimeout = setTimeout;
|
|
7580
|
+
return setTimeout(fun, 0);
|
|
7581
|
+
}
|
|
7582
|
+
try {
|
|
7583
|
+
return cachedSetTimeout(fun, 0);
|
|
7584
|
+
} catch (e) {
|
|
7585
|
+
try {
|
|
7586
|
+
return cachedSetTimeout.call(null, fun, 0);
|
|
7587
|
+
} catch (e2) {
|
|
7588
|
+
return cachedSetTimeout.call(this, fun, 0);
|
|
7589
|
+
}
|
|
7590
|
+
}
|
|
7591
|
+
}
|
|
7592
|
+
function runClearTimeout(marker) {
|
|
7593
|
+
if (cachedClearTimeout === clearTimeout) {
|
|
7594
|
+
return clearTimeout(marker);
|
|
7595
|
+
}
|
|
7596
|
+
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
7597
|
+
cachedClearTimeout = clearTimeout;
|
|
7598
|
+
return clearTimeout(marker);
|
|
7599
|
+
}
|
|
7600
|
+
try {
|
|
7601
|
+
return cachedClearTimeout(marker);
|
|
7602
|
+
} catch (e) {
|
|
7603
|
+
try {
|
|
7604
|
+
return cachedClearTimeout.call(null, marker);
|
|
7605
|
+
} catch (e2) {
|
|
7606
|
+
return cachedClearTimeout.call(this, marker);
|
|
7607
|
+
}
|
|
7608
|
+
}
|
|
7609
|
+
}
|
|
7610
|
+
var queue = [];
|
|
7611
|
+
var draining = false;
|
|
7612
|
+
var currentQueue;
|
|
7613
|
+
var queueIndex = -1;
|
|
7614
|
+
function cleanUpNextTick() {
|
|
7615
|
+
if (!draining || !currentQueue) {
|
|
7616
|
+
return;
|
|
7617
|
+
}
|
|
7618
|
+
draining = false;
|
|
7619
|
+
if (currentQueue.length) {
|
|
7620
|
+
queue = currentQueue.concat(queue);
|
|
7621
|
+
} else {
|
|
7622
|
+
queueIndex = -1;
|
|
7623
|
+
}
|
|
7624
|
+
if (queue.length) {
|
|
7625
|
+
drainQueue();
|
|
7626
|
+
}
|
|
7627
|
+
}
|
|
7628
|
+
function drainQueue() {
|
|
7629
|
+
if (draining) {
|
|
7630
|
+
return;
|
|
7631
|
+
}
|
|
7632
|
+
var timeout = runTimeout(cleanUpNextTick);
|
|
7633
|
+
draining = true;
|
|
7634
|
+
var len = queue.length;
|
|
7635
|
+
while (len) {
|
|
7636
|
+
currentQueue = queue;
|
|
7637
|
+
queue = [];
|
|
7638
|
+
while (++queueIndex < len) {
|
|
7639
|
+
if (currentQueue) {
|
|
7640
|
+
currentQueue[queueIndex].run();
|
|
7641
|
+
}
|
|
7642
|
+
}
|
|
7643
|
+
queueIndex = -1;
|
|
7644
|
+
len = queue.length;
|
|
7645
|
+
}
|
|
7646
|
+
currentQueue = null;
|
|
7647
|
+
draining = false;
|
|
7648
|
+
runClearTimeout(timeout);
|
|
7649
|
+
}
|
|
7650
|
+
process2.nextTick = function(fun) {
|
|
7651
|
+
var args = new Array(arguments.length - 1);
|
|
7652
|
+
if (arguments.length > 1) {
|
|
7653
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
7654
|
+
args[i - 1] = arguments[i];
|
|
7655
|
+
}
|
|
7656
|
+
}
|
|
7657
|
+
queue.push(new Item(fun, args));
|
|
7658
|
+
if (queue.length === 1 && !draining) {
|
|
7659
|
+
runTimeout(drainQueue);
|
|
7660
|
+
}
|
|
7661
|
+
};
|
|
7662
|
+
function Item(fun, array) {
|
|
7663
|
+
this.fun = fun;
|
|
7664
|
+
this.array = array;
|
|
7665
|
+
}
|
|
7666
|
+
Item.prototype.run = function() {
|
|
7667
|
+
this.fun.apply(null, this.array);
|
|
7668
|
+
};
|
|
7669
|
+
process2.title = "browser";
|
|
7670
|
+
process2.browser = true;
|
|
7671
|
+
process2.env = {};
|
|
7672
|
+
process2.argv = [];
|
|
7673
|
+
process2.version = "";
|
|
7674
|
+
process2.versions = {};
|
|
7675
|
+
function noop2() {
|
|
7676
|
+
}
|
|
7677
|
+
process2.on = noop2;
|
|
7678
|
+
process2.addListener = noop2;
|
|
7679
|
+
process2.once = noop2;
|
|
7680
|
+
process2.off = noop2;
|
|
7681
|
+
process2.removeListener = noop2;
|
|
7682
|
+
process2.removeAllListeners = noop2;
|
|
7683
|
+
process2.emit = noop2;
|
|
7684
|
+
process2.prependListener = noop2;
|
|
7685
|
+
process2.prependOnceListener = noop2;
|
|
7686
|
+
process2.listeners = function(name2) {
|
|
7687
|
+
return [];
|
|
7688
|
+
};
|
|
7689
|
+
process2.binding = function(name2) {
|
|
7690
|
+
throw new Error("process.binding is not supported");
|
|
7691
|
+
};
|
|
7692
|
+
process2.cwd = function() {
|
|
7693
|
+
return "/";
|
|
7694
|
+
};
|
|
7695
|
+
process2.chdir = function(dir) {
|
|
7696
|
+
throw new Error("process.chdir is not supported");
|
|
7697
|
+
};
|
|
7698
|
+
process2.umask = function() {
|
|
7699
|
+
return 0;
|
|
7700
|
+
};
|
|
7701
|
+
var browserExports = browser.exports;
|
|
7702
|
+
const process$1 = /* @__PURE__ */ getDefaultExportFromCjs2(browserExports);
|
|
7703
|
+
exports.default = process$1;
|
|
7704
|
+
exports.process = process$1;
|
|
7705
|
+
})(dist);
|
|
7706
|
+
return dist;
|
|
7707
|
+
}
|
|
7708
|
+
var distExports = requireDist();
|
|
7709
|
+
const process = /* @__PURE__ */ getDefaultExportFromCjs(distExports);
|
|
7537
7710
|
function commonjsRequire(path) {
|
|
7538
7711
|
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
7539
7712
|
}
|
|
7540
7713
|
var jszip_min = { exports: {} };
|
|
7541
|
-
/*!
|
|
7542
|
-
|
|
7543
|
-
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
|
7544
|
-
<http://stuartk.com/jszip>
|
|
7545
|
-
|
|
7546
|
-
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
|
|
7547
|
-
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
|
|
7548
|
-
|
|
7549
|
-
JSZip uses the library pako released under the MIT license :
|
|
7550
|
-
https://github.com/nodeca/pako/blob/main/LICENSE
|
|
7551
|
-
*/
|
|
7552
7714
|
var hasRequiredJszip_min;
|
|
7553
7715
|
function requireJszip_min() {
|
|
7554
7716
|
if (hasRequiredJszip_min) return jszip_min.exports;
|
|
@@ -10323,9 +10485,10 @@ function validateOperations(operations) {
|
|
|
10323
10485
|
}
|
|
10324
10486
|
function createZip(document) {
|
|
10325
10487
|
const zip = new JSZip();
|
|
10326
|
-
const { name: name2, revision, documentType: documentType2, created, lastModified } = document;
|
|
10488
|
+
const { name: name2, slug, revision, documentType: documentType2, created, lastModified } = document;
|
|
10327
10489
|
const header = {
|
|
10328
10490
|
name: name2,
|
|
10491
|
+
slug,
|
|
10329
10492
|
revision,
|
|
10330
10493
|
documentType: documentType2,
|
|
10331
10494
|
created,
|
|
@@ -11154,8 +11317,7 @@ const initialGlobalState = {
|
|
|
11154
11317
|
id: "",
|
|
11155
11318
|
name: "",
|
|
11156
11319
|
nodes: [],
|
|
11157
|
-
icon: null
|
|
11158
|
-
slug: null
|
|
11320
|
+
icon: null
|
|
11159
11321
|
};
|
|
11160
11322
|
const initialLocalState = {
|
|
11161
11323
|
listeners: [],
|
|
@@ -11495,7 +11657,7 @@ _errorHandler = new WeakMap();
|
|
|
11495
11657
|
_ConsoleLogger_instances = new WeakSet();
|
|
11496
11658
|
levelValue_get = function() {
|
|
11497
11659
|
if (__privateGet(this, _levelString) === "env") {
|
|
11498
|
-
const envLevel = typeof process !== "undefined" ? define_process_env_default.LOG_LEVEL : void 0;
|
|
11660
|
+
const envLevel = typeof process !== "undefined" && "env" in process ? define_process_env_default.LOG_LEVEL : void 0;
|
|
11499
11661
|
if (!envLevel) {
|
|
11500
11662
|
return LEVELS.debug;
|
|
11501
11663
|
}
|
|
@@ -11549,7 +11711,7 @@ class ConflictOperationError extends OperationError {
|
|
|
11549
11711
|
}
|
|
11550
11712
|
class DocumentAlreadyExistsError extends Error {
|
|
11551
11713
|
constructor(documentId) {
|
|
11552
|
-
super(`Document with id ${documentId} already exists`);
|
|
11714
|
+
super(`Document with id ${documentId} uses id or slug that already exists`);
|
|
11553
11715
|
__publicField(this, "documentId");
|
|
11554
11716
|
this.documentId = documentId;
|
|
11555
11717
|
}
|
|
@@ -22234,7 +22396,7 @@ class ReadModeService {
|
|
|
22234
22396
|
return Promise.resolve(result ? { ...result.drive, readContext: result.context } : new ReadDriveNotFoundError(id));
|
|
22235
22397
|
}
|
|
22236
22398
|
async getReadDriveBySlug(slug) {
|
|
22237
|
-
const readDrive = [...__privateGet(this, _drives).values()].find(({ drive }) => drive.
|
|
22399
|
+
const readDrive = [...__privateGet(this, _drives).values()].find(({ drive }) => drive.slug === slug);
|
|
22238
22400
|
return Promise.resolve(readDrive ? { ...readDrive.drive, readContext: readDrive.context } : new ReadDriveSlugNotFoundError(slug));
|
|
22239
22401
|
}
|
|
22240
22402
|
getReadDriveContext(id) {
|
|
@@ -23296,7 +23458,7 @@ class BaseDocumentDriveServer {
|
|
|
23296
23458
|
async _initializeDrive(driveId) {
|
|
23297
23459
|
var _a2, _b, _c;
|
|
23298
23460
|
const drive = await this.getDrive(driveId);
|
|
23299
|
-
this.logger.verbose(`[SYNC DEBUG] Initializing drive ${driveId} with slug "${drive.
|
|
23461
|
+
this.logger.verbose(`[SYNC DEBUG] Initializing drive ${driveId} with slug "${drive.slug}"`);
|
|
23300
23462
|
await this.synchronizationManager.initializeDriveSyncStatus(driveId, drive);
|
|
23301
23463
|
if (this.shouldSyncRemoteDrive(drive)) {
|
|
23302
23464
|
this.logger.verbose(`[SYNC DEBUG] Starting sync for remote drive ${driveId}`);
|
|
@@ -23376,19 +23538,18 @@ class BaseDocumentDriveServer {
|
|
|
23376
23538
|
if (!id) {
|
|
23377
23539
|
throw new Error("Invalid Drive Id");
|
|
23378
23540
|
}
|
|
23379
|
-
const drives = await this.legacyStorage.getDrives();
|
|
23380
|
-
if (drives.includes(id)) {
|
|
23381
|
-
throw new DocumentAlreadyExistsError(id);
|
|
23382
|
-
}
|
|
23383
23541
|
const document = createDocument({
|
|
23384
23542
|
state: input
|
|
23385
23543
|
});
|
|
23544
|
+
if (input.slug && input.slug.length > 0) {
|
|
23545
|
+
document.slug = input.slug;
|
|
23546
|
+
}
|
|
23386
23547
|
document.meta = {
|
|
23387
23548
|
preferredEditor
|
|
23388
23549
|
};
|
|
23389
|
-
await this.
|
|
23390
|
-
if (input.
|
|
23391
|
-
await this.cache.deleteDriveBySlug(input.
|
|
23550
|
+
await this.documentStorage.create(id, document);
|
|
23551
|
+
if (input.slug && input.slug.length > 0) {
|
|
23552
|
+
await this.cache.deleteDriveBySlug(input.slug);
|
|
23392
23553
|
}
|
|
23393
23554
|
await this._initializeDrive(id);
|
|
23394
23555
|
this.eventEmitter.emit("driveAdded", document);
|
|
@@ -23402,10 +23563,10 @@ class BaseDocumentDriveServer {
|
|
|
23402
23563
|
pullInterval
|
|
23403
23564
|
});
|
|
23404
23565
|
return await this.addDrive({
|
|
23566
|
+
slug,
|
|
23405
23567
|
global: {
|
|
23406
23568
|
id,
|
|
23407
23569
|
name: name2,
|
|
23408
|
-
slug,
|
|
23409
23570
|
icon: icon ?? null
|
|
23410
23571
|
},
|
|
23411
23572
|
local: {
|
|
@@ -23421,16 +23582,25 @@ class BaseDocumentDriveServer {
|
|
|
23421
23582
|
this.stopSyncRemoteDrive(driveId),
|
|
23422
23583
|
this.listenerManager.removeDrive(driveId),
|
|
23423
23584
|
this.cache.deleteDrive(driveId),
|
|
23424
|
-
this.
|
|
23585
|
+
this.documentStorage.delete(driveId)
|
|
23425
23586
|
]);
|
|
23587
|
+
this.eventEmitter.emit("driveDeleted", driveId);
|
|
23426
23588
|
result.forEach((r) => {
|
|
23427
23589
|
if (r.status === "rejected") {
|
|
23428
23590
|
throw r.reason;
|
|
23429
23591
|
}
|
|
23430
23592
|
});
|
|
23431
23593
|
}
|
|
23432
|
-
|
|
23433
|
-
|
|
23594
|
+
// TODO: paginate
|
|
23595
|
+
async getDrives() {
|
|
23596
|
+
const drives = [];
|
|
23597
|
+
let cursor;
|
|
23598
|
+
do {
|
|
23599
|
+
const { documents, nextCursor } = await this.documentStorage.findByType("powerhouse/document-drive", 100, cursor);
|
|
23600
|
+
drives.push(...documents);
|
|
23601
|
+
cursor = nextCursor;
|
|
23602
|
+
} while (cursor);
|
|
23603
|
+
return drives;
|
|
23434
23604
|
}
|
|
23435
23605
|
async getDrive(driveId, options) {
|
|
23436
23606
|
let document;
|
|
@@ -23506,6 +23676,7 @@ class BaseDocumentDriveServer {
|
|
|
23506
23676
|
const document = input.document ?? this.getDocumentModelModule(input.documentType).utils.createDocument();
|
|
23507
23677
|
const documentStorage = {
|
|
23508
23678
|
name: document.name,
|
|
23679
|
+
slug: document.slug,
|
|
23509
23680
|
revision: document.revision,
|
|
23510
23681
|
documentType: document.documentType,
|
|
23511
23682
|
created: document.created,
|
|
@@ -23916,13 +24087,6 @@ class BaseDocumentDriveServer {
|
|
|
23916
24087
|
addDriveOperation(driveId, operation, options) {
|
|
23917
24088
|
return this.addDriveOperations(driveId, [operation], options);
|
|
23918
24089
|
}
|
|
23919
|
-
async clearStorage() {
|
|
23920
|
-
var _a2, _b;
|
|
23921
|
-
for (const drive of await this.getDrives()) {
|
|
23922
|
-
await this.deleteDrive(drive);
|
|
23923
|
-
}
|
|
23924
|
-
await ((_b = (_a2 = this.legacyStorage).clearStorage) == null ? void 0 : _b.call(_a2));
|
|
23925
|
-
}
|
|
23926
24090
|
async _addDriveOperations(driveId, callback) {
|
|
23927
24091
|
if (!this.legacyStorage.addDriveOperationsWithTransaction) {
|
|
23928
24092
|
const documentStorage = await this.documentStorage.get(driveId);
|
|
@@ -24197,17 +24361,24 @@ class MemoryStorage {
|
|
|
24197
24361
|
exists(documentId) {
|
|
24198
24362
|
return Promise.resolve(!!this.documents[documentId]);
|
|
24199
24363
|
}
|
|
24200
|
-
// TODO: this should throw an error if the document already exists.
|
|
24201
24364
|
create(documentId, document) {
|
|
24202
|
-
|
|
24365
|
+
if (this.documents[documentId]) {
|
|
24366
|
+
throw new DocumentAlreadyExistsError(documentId);
|
|
24367
|
+
}
|
|
24368
|
+
const slug = document.slug.length > 0 ? document.slug : documentId;
|
|
24369
|
+
if (slug && this.slugToDocumentId[slug]) {
|
|
24370
|
+
throw new DocumentAlreadyExistsError(documentId);
|
|
24371
|
+
}
|
|
24203
24372
|
this.documents[documentId] = document;
|
|
24204
|
-
const slug = (_a2 = document.initialState.state.global) == null ? void 0 : _a2.slug;
|
|
24205
24373
|
if (slug) {
|
|
24206
24374
|
if (this.slugToDocumentId[slug]) {
|
|
24207
|
-
throw new
|
|
24375
|
+
throw new DocumentAlreadyExistsError(documentId);
|
|
24208
24376
|
}
|
|
24209
24377
|
this.slugToDocumentId[slug] = documentId;
|
|
24210
24378
|
}
|
|
24379
|
+
if (document.documentType === "powerhouse/document-drive") {
|
|
24380
|
+
this.updateDriveManifest(documentId, { documentIds: /* @__PURE__ */ new Set() });
|
|
24381
|
+
}
|
|
24211
24382
|
return Promise.resolve();
|
|
24212
24383
|
}
|
|
24213
24384
|
get(documentId) {
|
|
@@ -24224,20 +24395,56 @@ class MemoryStorage {
|
|
|
24224
24395
|
}
|
|
24225
24396
|
return this.get(documentId);
|
|
24226
24397
|
}
|
|
24398
|
+
async findByType(documentModelType, limit = 100, cursor) {
|
|
24399
|
+
const documentsAndIds = Object.entries(this.documents).filter(([_, doc]) => doc.documentType === documentModelType).map(([id, doc]) => ({
|
|
24400
|
+
id,
|
|
24401
|
+
document: doc
|
|
24402
|
+
}));
|
|
24403
|
+
documentsAndIds.sort((a, b) => {
|
|
24404
|
+
const aDate = new Date(a.document.created);
|
|
24405
|
+
const bDate = new Date(b.document.created);
|
|
24406
|
+
if (aDate.getTime() === bDate.getTime()) {
|
|
24407
|
+
const aId = a.id;
|
|
24408
|
+
const bId = b.id;
|
|
24409
|
+
return aId.localeCompare(bId);
|
|
24410
|
+
}
|
|
24411
|
+
return aDate.getTime() - bDate.getTime();
|
|
24412
|
+
});
|
|
24413
|
+
let startIndex = 0;
|
|
24414
|
+
if (cursor) {
|
|
24415
|
+
const index = documentsAndIds.findIndex(({ id }) => id === cursor);
|
|
24416
|
+
if (index !== -1) {
|
|
24417
|
+
startIndex = index;
|
|
24418
|
+
}
|
|
24419
|
+
}
|
|
24420
|
+
const endIndex = Math.min(startIndex + limit, documentsAndIds.length);
|
|
24421
|
+
let nextCursor;
|
|
24422
|
+
if (endIndex < documentsAndIds.length) {
|
|
24423
|
+
nextCursor = documentsAndIds[endIndex].id;
|
|
24424
|
+
}
|
|
24425
|
+
return {
|
|
24426
|
+
documents: documentsAndIds.slice(startIndex, endIndex).map(({ id }) => id),
|
|
24427
|
+
nextCursor
|
|
24428
|
+
};
|
|
24429
|
+
}
|
|
24227
24430
|
async delete(documentId) {
|
|
24228
|
-
var _a2;
|
|
24229
24431
|
const document = this.documents[documentId];
|
|
24230
24432
|
if (document) {
|
|
24231
|
-
const slug =
|
|
24433
|
+
const slug = document.slug.length > 0 ? document.slug : documentId;
|
|
24232
24434
|
if (slug && this.slugToDocumentId[slug] === documentId) {
|
|
24233
24435
|
delete this.slugToDocumentId[slug];
|
|
24234
24436
|
}
|
|
24235
24437
|
}
|
|
24236
|
-
const
|
|
24237
|
-
for (const
|
|
24238
|
-
|
|
24239
|
-
|
|
24240
|
-
|
|
24438
|
+
const parents = await this.getParents(documentId);
|
|
24439
|
+
for (const parent of parents) {
|
|
24440
|
+
await this.removeChild(parent, documentId);
|
|
24441
|
+
}
|
|
24442
|
+
const children = await this.getChildren(documentId);
|
|
24443
|
+
for (const child of children) {
|
|
24444
|
+
const childParents = await this.getParents(child);
|
|
24445
|
+
if (childParents.length === 1) {
|
|
24446
|
+
await this.delete(child);
|
|
24447
|
+
}
|
|
24241
24448
|
}
|
|
24242
24449
|
delete this.driveManifests[documentId];
|
|
24243
24450
|
if (this.documents[documentId]) {
|
|
@@ -24271,14 +24478,26 @@ class MemoryStorage {
|
|
|
24271
24478
|
const manifest = this.getManifest(parentId);
|
|
24272
24479
|
return [...manifest.documentIds];
|
|
24273
24480
|
}
|
|
24481
|
+
async getParents(childId) {
|
|
24482
|
+
const parents = [];
|
|
24483
|
+
for (const [driveId, manifest] of Object.entries(this.driveManifests)) {
|
|
24484
|
+
if (manifest.documentIds.has(childId)) {
|
|
24485
|
+
parents.push(driveId);
|
|
24486
|
+
}
|
|
24487
|
+
}
|
|
24488
|
+
return parents;
|
|
24489
|
+
}
|
|
24274
24490
|
////////////////////////////////
|
|
24275
|
-
//
|
|
24491
|
+
// IDocumentAdminStorage
|
|
24276
24492
|
////////////////////////////////
|
|
24277
|
-
async
|
|
24493
|
+
async clear() {
|
|
24278
24494
|
this.documents = {};
|
|
24279
24495
|
this.driveManifests = {};
|
|
24280
24496
|
this.slugToDocumentId = {};
|
|
24281
24497
|
}
|
|
24498
|
+
////////////////////////////////
|
|
24499
|
+
// IDriveStorage
|
|
24500
|
+
////////////////////////////////
|
|
24282
24501
|
async addDocumentOperations(drive, id, operations, header) {
|
|
24283
24502
|
const document = await this.get(id);
|
|
24284
24503
|
if (!document) {
|
|
@@ -24291,13 +24510,6 @@ class MemoryStorage {
|
|
|
24291
24510
|
operations: mergedOperations
|
|
24292
24511
|
};
|
|
24293
24512
|
}
|
|
24294
|
-
async getDrives() {
|
|
24295
|
-
return Object.keys(this.driveManifests);
|
|
24296
|
-
}
|
|
24297
|
-
async createDrive(id, drive) {
|
|
24298
|
-
await this.create(id, drive);
|
|
24299
|
-
this.updateDriveManifest(id, { documentIds: /* @__PURE__ */ new Set() });
|
|
24300
|
-
}
|
|
24301
24513
|
async addDriveOperations(id, operations, header) {
|
|
24302
24514
|
const drive = await this.get(id);
|
|
24303
24515
|
const mergedOperations = mergeOperations(drive.operations, operations);
|
|
@@ -24307,32 +24519,6 @@ class MemoryStorage {
|
|
|
24307
24519
|
operations: mergedOperations
|
|
24308
24520
|
};
|
|
24309
24521
|
}
|
|
24310
|
-
async deleteDrive(id) {
|
|
24311
|
-
const manifest = this.getManifest(id);
|
|
24312
|
-
const drives = await this.getDrives();
|
|
24313
|
-
await Promise.all([...manifest.documentIds].map((docId) => {
|
|
24314
|
-
var _a2;
|
|
24315
|
-
for (const driveId of drives) {
|
|
24316
|
-
if (driveId === id) {
|
|
24317
|
-
continue;
|
|
24318
|
-
}
|
|
24319
|
-
const manifest2 = this.getManifest(driveId);
|
|
24320
|
-
if (manifest2.documentIds.has(docId)) {
|
|
24321
|
-
return;
|
|
24322
|
-
}
|
|
24323
|
-
}
|
|
24324
|
-
const document = this.documents[docId];
|
|
24325
|
-
if (document) {
|
|
24326
|
-
const slug = (_a2 = document.initialState.state.global) == null ? void 0 : _a2.slug;
|
|
24327
|
-
if (slug && this.slugToDocumentId[slug] === docId) {
|
|
24328
|
-
delete this.slugToDocumentId[slug];
|
|
24329
|
-
}
|
|
24330
|
-
}
|
|
24331
|
-
delete this.documents[docId];
|
|
24332
|
-
}));
|
|
24333
|
-
delete this.driveManifests[id];
|
|
24334
|
-
delete this.documents[id];
|
|
24335
|
-
}
|
|
24336
24522
|
async getSynchronizationUnitsRevision(units) {
|
|
24337
24523
|
const results = await Promise.allSettled(units.map(async (unit) => {
|
|
24338
24524
|
try {
|
|
@@ -25535,6 +25721,9 @@ function Syncing(props) {
|
|
|
25535
25721
|
function Tabler(props) {
|
|
25536
25722
|
return jsxs("svg", { ...props, width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M4.5 9V7.5C4.5 6.30653 4.97411 5.16193 5.81802 4.31802C6.66193 3.47411 7.80653 3 9 3C10.1935 3 11.3381 3.47411 12.182 4.31802C13.0259 5.16193 13.5 6.30653 13.5 7.5V9M3 13.5C3 13.8978 3.15804 14.2794 3.43934 14.5607C3.72064 14.842 4.10218 15 4.5 15C4.89782 15 5.27936 14.842 5.56066 14.5607C5.84196 14.2794 6 13.8978 6 13.5C6 13.1022 5.84196 12.7206 5.56066 12.4393C5.27936 12.158 4.89782 12 4.5 12C4.10218 12 3.72064 12.158 3.43934 12.4393C3.15804 12.7206 3 13.1022 3 13.5ZM12 13.5C12 13.8978 12.158 14.2794 12.4393 14.5607C12.7206 14.842 13.1022 15 13.5 15C13.8978 15 14.2794 14.842 14.5607 14.5607C14.842 14.2794 15 13.8978 15 13.5C15 13.1022 14.842 12.7206 14.5607 12.4393C14.2794 12.158 13.8978 12 13.5 12C13.1022 12 12.7206 12.158 12.4393 12.4393C12.158 12.7206 12 13.1022 12 13.5Z", stroke: "currentcolor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M11.25 6.75L13.5 9L15.75 6.75", stroke: "currentcolor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] });
|
|
25537
25723
|
}
|
|
25724
|
+
function TimelineCaret(props) {
|
|
25725
|
+
return jsx("svg", { ...props, width: "10", height: "7", viewBox: "0 0 10 7", fill: "currentcolor", children: jsx("path", { d: "M0.539174 0.830403L0.539396 0.830693L4.81717 6.41675L0.539174 0.830403ZM0.539174 0.830403C0.492941 0.770121 0.486776 0.69618 0.524599 0.622069C0.562768 0.547277 0.632849 0.5 0.721373 0.5L9.27711 0.5C9.36895 0.5 9.44336 0.552912 9.47789 0.620069C9.51177 0.686686 9.50789 0.767089 9.45938 0.830307L9.45889 0.83095M0.539174 0.830403L9.45889 0.83095M9.45889 0.83095C9.05222 1.36269 7.09357 3.91999 5.94678 5.41729C5.588 5.88573 5.30868 6.25042 5.18122 6.41687M9.45889 0.83095L5.18122 6.41687M5.18122 6.41687C5.1428 6.46691 5.07824 6.5 4.99924 6.5M5.18122 6.41687L4.99924 6.5M4.99924 6.5C4.92023 6.5 4.85567 6.46691 4.81726 6.41687L4.99924 6.5Z", fill: "currentcolor", stroke: "currentcolor" }) });
|
|
25726
|
+
}
|
|
25538
25727
|
function Timeline(props) {
|
|
25539
25728
|
return jsxs("svg", { ...props, width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentcolor", children: [jsx("rect", { width: "16", height: "16", fill: "url(#pattern0_1256_1508)" }), jsxs("defs", { children: [jsx("pattern", { id: "pattern0_1256_1508", patternContentUnits: "objectBoundingBox", width: "1", height: "1", children: jsx("use", { href: "#image0_1256_1508", transform: "scale(0.00195312)" }) }), jsx("image", { id: "image0_1256_1508", width: "512", height: "512", preserveAspectRatio: "none", href: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJzt3Xm0XmV96PHvyUASCEmYQsIcJpkhzJOASLWK89KrtS6r7RLtba1Xl73qte1VOzm2asVeUMTSah3QAgoqk6gI4gACgowSCFMgCRAyD+fcP573lMPhnOS8797P+9vD97PWb53U1cV+ht9+9vPu/exngyRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiSpFwPRBZDUs62BPYDdgF2BHYAdgbkj/j0DmAVs1fk7A5g+zn/vSWBo1N+ngOUjYimwBFgMPNL5u7r0mknKzgmAVG07APsDB3T+7g/syzMX/Cp4EvgdcE8n7u78vZ00aZBUQU4ApGqYDOwHHNGJhZ2/cyMLVYLFwC2duBm4CbgrtESSACcAUpRZwAnAiZ04Dtg2tET9swy4Afh55+/1pEcNkvrICYDUH9sApwJnAKcDh5B+9Qs2ATcCP+zET4BVoSWSWsAJgJTPQuBM0kX/BNJCPG3ZBtJdgUs7cVtscSRJ2rypwAuBzwKLSCvpjeJxH3A28CJgykQ7Q5KknCaTLkznk1a8R18smx5LgXOB38PJgCSpzwZIt/Q/CzxK/EWxrfEY6c7AsZvvLkmSitkOOAu4lfiLn/Hs+C3wIWDP8TpPkqRuTAJeDHwTWEf8hc7YfGwELun02aQx+lOSpM3alvRr/3biL2pGb3EP8D6qs2OiJKnC9gE+TdqYJvoCZpQTq0hrBfZBkqRRFgIXkjalib5gGXliI/B14CgkSa13ImmzmUHiL1BG/+JK4BQkSa3zfOBq4i9ERmxcQZoESpIa7gjSL/7oC49RrfgecAySpMbZEziH9Bw4+mJjVDe+g4sFJakR5gAfBdYSf3Ex6hHrSZPFnZAk1c5k4O2k7WKjLyhGPWMZ8Of42WZJqo1TgJuIv4AYzYgbgeORJFXWHOAz+C6/UX4MAhcAc5EkVcqbgCXEXyiMZsdSUq5JkoLtBVxO/IXBaFd8B9gVSVKINwMriL8YGO2Mp0gfjBpAktQXOwMXE38BMIwh0h2oXZAkZfU60utZ0YO+YYyMJcDLkCSVbjpphX/0QG8Ym4sLgG2QasBnV6qDg0ifcT0kuiDSBNwGvBa4I7og0uZMii6AtAVvBX6BF3/Vx8GknH1DdEEkqY6mkPbwj76laxhF4hxgK6QK8hGAqmg+cCF+p13NcAPwGuDh6IJIIzkBUNWcSLr4z48uSI2sBhYB93X+LiW9KbGs8+/HSe+sD3b+Qvri3arOvycBszv/ngrM6vzfczr/3oW0Be68TiwA9sbFbt14CHgV8MvogkjDnACoSt4EfBGYFl2QinoEuBW4GbgFuJt00X8sqDxzSROBA0kLNQ/t/N09qDxVt4a0puXr0QWRpKoYAD5E+oUa/cy2KvEEcBnwV8ALgR17bdwAOwEvBf4v8F1gOfHtWZUYBD6CP74kiWnAfxA/MEfHctIvw7eT3nho0hs6k4AjgHcB/0Wa3ES3d3T8O+lxiyS10hzgx8QPxhExSHoe/HfAScDkgm1ZJ1OAU4B/BH5NfF9ExeXAtgXbUpJqZ2fgJuIH4X7HbcD7cO/4kfYk3R24lvY9BroFvyooqUX2Bu4hfvDtV9wAvBsXx03E7qQJ0m3E91u/4l7SOSFJjXYo6X3o6EE3dywHPtupr3pzDPA52vHJ5weB55XTbJJUPQtp/pf8fkx6nXF6SW2mtBfBu0ivPUb3b854FCeMkhpoIWlTmuhBNkdsAr4DHF9aa2ksk4AzSG3d1LUCy4Fjy2owSYp2NM18F/wp4FOkRWzqrwOBfyXtZhidB2XHE8CR5TWVJMU4mua9970C+FvSa4yKNZ+0TmAd8XlRZizFxwGSamx/YAnxg2lZsQr4DOkVRlXLHqQv720gPk/KiiWkrZUlqVYWkFY2Rw+iZcR60op+L/zVdwBpR8WmrBF4EF8RlFQj82nOe/7fIz1vVr0cQdppLzp/yoh7SV9hlKRKm0Pa3Sx60Cwad5A+aKN6ewPN2HfiV7htsKQK2wq4ivjBskisBt5P8z7UMgv4A+ALwM9JnxBe34nHOv/buaQLZtMuNLOBfwE2Ep9fReIHNC8vJTXAAHAB8YNkkfghsF/ZDRNsf+A8untdbhXwRZrXFkeTPsAUnWdF4gL8lLCkivkI8YNjr/EE8DaaNbDOAD5JsVXx64GP06xdDScD7yTt4RCdd73GR0pvFUnq0R8RPyj2GlfQvK+x7QfcSnltdD1pYWeT7AVcQ3z+9RKDwOvLbhBJ6tZxwFriB8VuYy3wHpr1qx/SlsuPUX57LQYO62M9+mES8F7qmb+rgaPKbxJJmpj5wEPED4bdxm+AwzO0R7T9yHPxHzkJaOLraIeT3vqIzstu40Gad2dGUg1MA64jfhDsNs4jPR9vmhmUe9t/vLie1PdNsy3wFeLzs5f+2CpDe0jSuM4lfvDrJtYCZ2VpiWr4JP1ryw/3qU4RzqJ+jwQ+m6UlJGkMbyJ+0OsmFpPWKjTV/vR3D/ynaeajgGEnk/dRSo5wUaCk7A4gXQCiB7yJxo+BuVlaojrOo//t+vm+1CzOAtJakej8nWisIJ2bkpTFDOq1ze9/0Mzn1SPNortNfsqKlcDMPtQv0izgMuLzeKLxG2DrLC0hqfW+QPwgN9H4W5r3it9Y/oC4Nm7DbefJwKeJz+eJxtl5mkFSm72K+MFtIrEeeGumNqiiyEnZOX2oX1W8nf6us+g1BoGXZWoDSS20M/VYFLUaeEmmNqiqnxPX3j/rQ/2q5NXAOuLzfEuxhHTOSlJhlxA/qG0pngZekKsBKuxxYi80bXMmsIb4fN9SXEo7HoFJyuhtxA9mW4ongBNzNUDFRf4iXduH+lXRqdTjTZg/ydUAkppvd6r/1bTHgSNzNUANRLd/W51G9ScBT9C8D11J6pOLiB/ENhdPkr7x3mbRfdBmxwDLiO+DzcV3s9VeUmNFvl42kXgaOCFb7esjuh/a7hjSRDS6HzYXb8xWe0mNswNpgVf0wDVerKadC/7GEt0XSmsCqrww8HHSOS1JW3Q+8YPWeLGe9r3qtznR/aHkFVR7n4A27dkgqUcnkjYTiR6wxos2bfIzEdH9oWe8heqeO5uAY7PVXFLtTSJ2Y5ktxUfyVb22ovtEz/Zh4vtkvPglaWtjSXqOdxA/SI0X/4Ebm4wlul/0bAPAV4jvl/HiT/NVXVJd7QAsJX6AGit+RPO/6ter6L7Rc00DfkJ834wVjwNz8lVdUh19hvjBaax4GJifsd51F90/GtvOwGLi+2es+HjGekuqmQWkbV2jB6bRsR44KWO9myC6jzS+46jmebUO2CdjvSXVyH8SPyiNFWflrHRDRPeRNq+q39L4as5KS6qHo6nmq0tfzFnpBonuJ23ZBcT30+gYxG20pda7kvjBaHT8BpiRs9INEt1X2rKZwJ3E99XouCxnpSVV20nED0KjYy1wRM5KN0x0f2liDiVtYR3dX6Pj5JyVllRdVfz1/56sNW6e6P7SxL2b+P4aHT/IWmNJlXQi8YPP6LiCtBuhJi66zzRxk4AfEt9no+OUnJWWVD2XEz/wjIwngF2z1riZovtN3dmb9Cnr6H4bGd4FkFrkOOIHndHxtqw1bq7oflP3qrjltutupJb4JvEDzsi4Bvf571V036l7A8DVxPfdyPhK1hpLqoQFwEbiB5zhWAsckLXGzRbdf+rN86jWLoEbcXfA1nHBVfu8h2p9EvRDwB3RhZD67E7gY9GFGGEy8K7oQkjKZwdgJfG/NobjDmBq1ho3X3QfqnfTgXuJ78PheBqYnbXGqhTvALTLnwDbRBdihHcDG6ILIQVZC7w3uhAjzATeHF0ISeUbAO4i/lfGcFyRt7qtEd2PKu4HxPfjcNyFC3Klxnkx8YPLcKwHDsxb3daI7ksVdyjVWph7Rt7qSuq3/yJ+YBmOz2aua5tE96XKcT7xfTkc385cV0l9tBvpWXv0wDJEWoS4c97qtkp0f6oce1Kd1wLX4znaCi4CbIc3A1OiC9FxNrAkuhBSxdwP/Gt0ITqmAn8YXQhJ5fgt8b8qhoAVwI6Z69o20X2q8sylOq/p3pq5rpL6oEr7/n8kc13bKLpPVa5/Ir5Ph+OozHWVlNnZxA8kQ8BTwJzMdW2j6H5VuXYB1hDfr0PAv2Suq6SMtgKWEj+QDAGfylzXtoruV5Xv88T36xBprU6Vtg2X1IWXEj+IDJHeQNgzc13bKrpvVb69qc6+AKdnrqsC+RZAs702ugAd3yCtcpa0Zb8DLokuRMfrogsgqXtTgMeJ/wUxBBybua5tFt23yuNU4vt2iDSGVOUVYkkTdAbxg8cQ8OPcFW256P5VPjcS379DwAtzV1QxfATQXK+JLkDHudEFkGrq7OgCdLwiugCSunM/8b8cngC2zl3RlovuY+WzDen12eg+vjd3RRXDOwDNdBiwR3QhgAuA1dGFkGpqFfD16EKQ3ko4ILoQKp8TgGZ6aXQBOr4UXQCp5r4YXYCOM6MLIGlifkT8bcMbstdSEN/Pyu824vv56uy1VN95B6B5ZgMnRhcC+Fp0AaSGqMK5dCKu52kcJwDNcyrx7+0OAd8KLoPUFF8l/m7LNKrxw0IlcgLQPKdGFwD4KfBAdCGkhrgX+GV0IYAXRBdA5XIC0DxVmAB8M7oAUsNU4ZxyQyCpwmYT/xGRQdInTdUf0YvD1B/PI76vNwCzcldU/eMdgGY5ifjPd94IPBxcBqlp7gTuCC7DFOC44DKoRE4AmuWk6AIA34sugNRQVfhC4PHRBVB5nAA0y9HRBQC+H10AqaEuiy4A3gFolIHoAqg0A8BSYPvAMjwBzCWtQ1B/RD+Hdwzpn62AZcDMwDIsA3YiPu9UAu8ANMe+xF78Aa7Ai7+Uy3riP6+9A7BPcBlUEicAzXFsdAGAq6ILIDXcldEFAI6MLoDK4QSgORZGFwC4ProAUsP9MLoApK+NqgGcADTHIcHHf5L00RJJ+dwKrAgugxOAhnAC0BwHBx//OtImQJLy2QT8PLgMTgAawglAM8wGdg0uw3XBx5faIvpc2wOYE1wGlcAJQDMcTPzrWD8LPr7UFtF3AAaAA4LLoBI4AWiGA6MLANwSXQCpJW6KLgCwX3QBVJwTgGaIfi/3YeDx4DJIbfEwsCS4DNFjjkrgBKAZ9g4+vr/+pf66Ofj43gFoACcAzRA9Abg1+PhS20Sfc04AGsAJQDM4AZDa5c7g4y8IPr5K4ASg/maR9ueOFD0YSW0Tfc7tAEwPLoMKcgJQf7tFFwC4L7oAUsvcFXz8AWCX4DKoICcA9bdz8PFXkT5DLKl/HgWeDi5D9OZjKsgJQP3NDz7+Ivw2uBRhcfDxnQDUnBOA+psbfPxFwceX2uqB4OP7CKDmnADU37zg498ffHypraLvAEQvPlZBTgDqb8fg47sDoBTjoeDjbx98fBXkBKD+or/K5QJAKUb0ubdd8PFVkBOA+psVfPzoQUhqq+hzzzsANecEoP6iJwDLg48vtdWy4OM7Aag5JwD1Nzv4+NG/QhTL78LHiZ58bx18fBXkBKD+tg0+/lPBx1esHwIHRheipVYFH9+tgGvOCUD9TQs+/trg4yvWPOAa4JDgcrTR6uDjOwGoOScA9Tc1+Pjrg4+veHOBq3AS0G9OAFSIE4D6mxJ8/A3Bx1c1DE8CDo4uSIusCT7+jODjqyAnAPUXfQdgXfDxVR1zSWsCDo0uSEtEj9/Rx1dBdmD9Rd8B8BGARtqJdCfgsOiCtED0ua+acwJQf9Ff4os+fttV8RHMTqSFgUcFl6PpJgcf33O/5pwA1F/0L/DoRxBttzK6AOPYDvg+cHh0QRos+g6AE4CacwJQf9ETgOhfIW23KLoAm7EjaU3A0dEFaSgnACrECUD9RS/C2yr4+G13c3QBtmD4TsDC6II0UPTke2Pw8VWQE4D6i74DEL0RUdtdE12ACdgBuBI4MrogDRM9AYjeh0AFOQGov+g7ANEfI2q7S4ifBE7E9sAVuDCwTNHrb5wA1JwTgPqLHvyjP0bUdk8AF0YXYoKGJwGuCShH9Nf4nADUnBOA+oveDcw7APE+BgxGF2KCtiNNAo6JLkgDzA0+vhOAmnMCUH/RnwSdE3x8wS3AF6IL0YU5wOXAsdEFqbmdg49f1VdQNUFOAOpvWfDx5wUfX8l7gbuiC9GF4UnA8dEFqbHoCcDS4OOrICcA9Rd9EkYPQkpWAv8DWBFdkC7MJr0i6CSgN9GPAKLvPqogJwD15x0ADbsZeCX1ejY7G/gBcEJ0QWooegIQPfaoICcA9Rd9Es4PPr6e7Rrg5dRrEjCLdCfgxOiC1Ez03bfou48qyAlA/UWfhHsFH1/PdTX1nQScFF2QGom+AxA99qggJwD1F30SLgg+vsZWx0nAtsD3gJOjC1IDA8CewWV4KPj4UusdRPooR2RE/xLR+J4PPE18jnQTK4EX5GiMBtmV+H7aN3stJW3W1qRNYCIHAldxV9vpwCriLxjdxNPAKTkaoyFOI7Z/BoHpuSupvHwEUH+rgceCy3Bg8PG1eXV8HDATuAwnAeOJ/vX9OLA2uAwqyAlAM9wXfPyDg4+vLavjJGAb0iTgtOByVNFBwcdfHHx8lcAJQDMsCj6+E4B6uBr4feq1hes2wKXAC6MLUjGHBx//nuDjqwROAJphUfDxnQDUx0+o32ZBW5M+e3xacDmq5NDg498dfHyVwAlAM0Q/Atgd2Cm4DJq4Oj4O2Bq4GDgyuiAVMI/48+3O4OOrBE4AmuGO6ALg513rpo6PA2YBFwE7RBckWBXeunEC0ABOAJrh1ugC4ASgjur4OGB34FPRhQhWhY2SfAQgVcgDxL4X/N38VVQmddsnYBA4NktL1MPPiG1/dwCUKua7xA4Ky/GOUp3VbRJwSZ5mqLxtgPXEtr2T/YZwwG6OW4KPvx3xK5PVu7qtCTgT2C26EAGOB6YGl+Gm4OOrJE4AmqMK6wBOiy6ACqnTmoBJwGuiCxGgCs//b44ugMrhBKA5ou8AAJwaXQAVVqdXBE+PLkCA50cXAO8ASJUzhfivvj3RKYfqrw5rAu7LVvtqmkp6RBN9jg/krqj6wzsAzbERuCG4DHOAE4PLoHLU4U7AHrRrwnkqaRFgpOE3ENQATgCa5afRBSAtJFMzVH1h4CRg2+hC9FEV1jxUYYyRNIYXE39b1gVCzVPlxwHbZax3lQwADxLf3m1cdyHVwmzSo4DoQWLv3BVV31VxErCJ9jwCOJb49t4AzMxdUfWPjwCa5SngN9GFoBq3KlWuKq4JeIA04W2DV0cXgHR3r6qPg9QDJwDNc110AYDXRhdAWVRtEvDr6AL00auiCwBcFV0ASZv3WuJvFQ6SPtqiZqrK44B35q5oRRxIfFsPAb+Xu6KSiplDelYXPVi8L3dFFSp6ErAJ2DV7Lavhg8Sfz2uAGbkrKqm4HxM/YNyWvZaKFjkJuLgP9auCAeAe4s/nK3JXVFI5PkD8gDEEHJO7ogoXMQkYpD25dQbx5/EQ8L9zV1RSOY4gfsAYAj6Xu6KqhH5PAr7Un2pVwteJP4+HgINzV1RSOQaAh4gfNFaQ9iZQ8z2f/nyL4n5g+z7VKdqOwFriz+N7cldUMXwNsJmGgB9EF4K0TetboguhvujHp4RXdI6xPOMxquStwLToQtCe9RZSY7yM+F8OQ8DdONFsk9NIG1KVnUdP0a7PTQ8AdxJ//g7RrnaXGmEr0qc7owePIdJkRO1xJLCI8vLnd6R1LW1yGvHn7RCwFJict6qScjif+AFkCLg8d0VVOdsBXyat2O81bwZJC/7m9LfolfBt4s/bIeALuSsqKY+XED+ADA/kB2auq6rpWOAS0sY9E82XTaTnzm151W+0Qyg2cSoz/PqfVFNTSbfwogeRIeDzmeuqatsV+AvgIuA+nj0h2NT53y4ibe/blh3+xvNV4s/XIdKbRK7fkWrsC8QPJEOk98TnZ66r6mMy6THBdviMeaT9qMYnvYeAf8pcV0mZvZD4gWQ43BhI2rwvEX+eDkdbH8FIjVGVvcSHgPXA3nmrK9XWHsA64s/TIeAO0tihBvP5TvMNkd4GqIKpwF9FF0KqqPeTXt+tgnNJY4ekmtuFanwieIj0fPOAvNWVamc30id3o8/PIdJdiJ3yVldSP11M/MAyHF/PXFepbr5M/Hnp+Sk1VFW2Bh4iveO8MG91pdo4nO72ScgdL8pbXUn9NhlYTPzgMhzuDiglVxJ/Pg6H3+6QGuqDxA8wI+P1easrVd6riD8PR8Y781ZXUpTt6c832ycaj9DOfd4lgBmkDx1Fn4fD8RQwK2uNJYX6HPEDzcj4bN7qSpX1D8SffyPjE3mrKynaPlRnq9GhTlmOzlpjqXoOoDqb/gyfh3vlrLCkariQ+AFnZPwS94NXe0wCriX+vBsZX8taY0mVcQzxA87ocPGR2uJdxJ9vI2MQOCxrjSVVyk+IH3hGxlN4C1LNtwBYSfz5NjIuzlpjSZXzAuIHntFxDb6DrOaaBPyI+PNsdByXs9KSqulq4gef0fHerDWW4ryf+PNrdFyRtcaSKusk4geg0bGWtDWq1CRHUa1V/8NxYs5KS6q27xE/CI2OO4Btc1Za6qOZpJyOPq9Gh8/+pZY7irQKOHowGh2+lqSmuID482l0bMI7bZKAi4gfkMaKs3JWWuqDPyP+PBorLshZaUn1sT/VfD65Fjg5Y72lnI6jmufVOtLriJIEwKeIH5jGiqXAvhnrLeUwn2p9fntkfDRjvSXV0CzS1/miB6ex4nb8aqDqYzrwM+LPm7FiCTA7X9Ul1dVZxA9Q48X3gSn5qi6VYgD4CvHny3jxx/mqLqnOJpE+zBM9SI0X/5yv6lIp/o7482S8uBF32pS0GadSzdcCh+Pt+aouFfIO4s+P8WITbvojaQK+RPyANV6sB16dr+pST14JbCT+/Bgv/l++qktqku2BR4kftMaLdcCZ2Wovdec0YDXx58V48TAuopXUhdcTP3BtaRLw0my1lybmeGAF8efD5uK12WovqbEuJn7w2lysIv36kiIcCTxB/HmwufhOttpLarTdgKeIH8Q2F0/j4ib131GkTaqi839zsRzYNVcDSGq+txM/kG0pngSOzdUA0ignUP1f/kPAm3I1gKT2uIT4wWxL8TRwRq4GkDpOofrP/IdIH/iSpMLmUt1tgkfGGuAVmdpAeiXVXu0/HEtI56wkleIlVHuDoOHYALwlTxOoxd5Btd/zH45BnARLyuCzxA9wEx0EP0zal10qYgD4W+JzeqLxmTzNIKntpgE3Ez/ITTS+AczI0hJqg2nAvxGfxxONm0lfIpSkLA4mLbiLHuwmGj8B5mVpCTXZLsDPic/ficYKYL8sLSFJI1R9l8DR8SBwXJaWUBMdBzxEfN52E2/M0hKSNIZPET/odRNrgbdlaQk1yZ+TtpmOztduwuf+kvpqCvBD4ge/buObwOwM7aF6mwl8lfj87DZ+CmyVoT0kabN2Jt1ejx4Eu407gYUZ2kP1dBRwB/F52W0sJp2DkhTieNIGPNGDYbexFngPMKn8JlFNTALeD6wnPh+7jTW4rkVSBbyeemwSNFb8CNi7/CZRxS0g9X10/vUSg8Abym8SSerN+4kfGHuNp0k7vblxUPNNAv4CWEl83vUaHyy9VSSpoHOJHxyLxI+BA0tvFVXFAcC1xOdZkTi/9FaRpBJMAb5P/CBZJNaRthF2R7Xm2Br4e+r3et/ouApX/EuqsFnAr4kfLIvGvcCrS24b9d+rgEXE51PR+CXp3JKkSpsL3E78oFlGXA0cXm7zqA8OAi4lPn/KiLvxdT9JNbI7zfjlNUT6DOz5wJ5lNpCy2A34MrCJ+LwpIxYDe5TZQJLUD/tQvz3VNxdrgU8DO5XZSCrFnsDZ1HNPivHiMVyUKqnG9gceJX4wLTNWkvZf363EdlJvFpD6Yi3xeVH2xf/QEttJkkIsBJ4gflAtO9YCnyddhNRfhwBfIT2eic6DsuNx4LDymkqSYi0k/aqJHlxzxEbgW8CppbWWxjIAnAZ8m+Y84x/r4u+iU0mNcxDNWhMwVtwI/Anp63Iqx07Ae0kfcYru35zxKP7yl9RgewH3ED/Y5o4VwAXAGaW0WvsMACcD5wCrie/P3HE/ab2MJDXa7jT/19zIuA34a2DfMhqv4Q4k7XXfhknicNxBOickqRXm0YwdA7uNG4C/xF97wwaAY4F/BH5LfP/0O24kbZwlSa2yLfX/dkCRuAP4GGnxYJv2eJ9KejRyNvAg8f0QFd8nnQOS1EpTSM95owfj6FhJ2rr23cARwOQijVox2wCnA/8XuJJ6f4q3rDiXlPuS1HrvAwaJH5irEiuAK0hfJjwT2KX3pu27ecArgU8CPwM2EN+eVYlB4AO9N61UnoHoAkgjvJ60j7uf4h3bY6R1E7cAd3XiDmBJUHl2BfYjLW48iPQK22G4VfJ4VgNvBb4RXRAJnACoeo4DLsRtdruxEnigE4tJz9WXdWIpaRfGFcD6zt9NPPcRwzY8sw5hEukivhNpgdq8Ef+e3/n3XsDWmerTRPeTPi99U3RBpGFOAFRFOwL/ie/QqxmuBV5L3J0aaUxNWmik5lhNmgBsA5yAE1XV1+eAN5LuvEiSuvBK4EniF28ZRjexAngDkqRCDiItfIse1A1jIvEr3PVRNeAjANXB48D5pE1TjsNHAqqmIdLnoV9PyllJUonOoPlfFDTqF0uAVyBJympH4CLiB33DGAIuI70qKUnqk7NwgaARF0+SNvaRJAWYT9o4KPpiYLQrvoOf8JWkSng57f6ynNGfeBR4M5KkStkOOA8/KmSUH5tIX/BSbQqmAAAQ9ElEQVTbDklSZZ0C3Ej8RcNoRvwMOAZJUi1MIt2qfYT4C4hRz1gGvAv3S5GkWpoFfBxYR/wFxahHrCHlzBwkSbW3L/AtXB9gjB+bgC8DeyBJapyjgO8Sf7ExqhXfBQ5DktR4x5He5Y6+8BixcQUpFyRJLXMKcA3xFyKjv3EpcCySpNY7FvgGsJH4i5ORJ9YDXwGORJKkUfYCPorfGGhSrAA+g4v7JEkTsD3wf4AHiL+AGb3F7cBfkF4FlSSpK5OAM0iPB9YTf1EzNh8bSYs7zwAGxuhPSZK6Nh/4AHAP8Rc649lxC/BeYN64vSdJUkEDwGnAOcDjxF/82hqPAv8MLNxsb0mSlMFk4GTSIrMlxF8Umx5LgQtIn3+eOoH+kSQpu62AM4EvAg8Sf7FsSiwCPke66+KHeaSSuEhGymdv0i/VlwHPB6bFFqc2NgI3kBbzXckzn3aWVCInAFJ/bAu8EDgdOIm07/yU0BJVxwbgl8CPOnEtsDK0RFILOAGQYswEjidNBk7q/Hvb0BL1z+PALzrxU+A6YFVoiaQWcgIgVcNk4HnAoaS7A4d2Yq/AMhU1/Pz+tk78inTRXxRXJEnDnABI1TabNBE4gDQZ2AtY0In5YaV6tkeB+zrxu87f3wC/BZ4OLJekzXACINXXdNKEYDdgJ2CHcWJGJyBNKCaRXqGb2fnfNvDsZ+4rSLfkn+r8ewXwBOnW/WPAI6SL/hJgMbAmQ90kSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZJUAQPRBdAWzQAWALt3Ymdg287/Pr3z/7MWWAM8DSwBFgMPAIs6/7vay/xRr2YBh5PyZy9gD2AXYCtgDjAVmEzKnxXABuBRUt48ANwP/BpY2t9ia6KcAFTLZOAY4GRgIXAksD8wqcf/3iBwF3BjJ34K/ALYVLikqiLzR0XsC7wYeD4pd/alnGvEA6T8uR74AXALMFTCf1eqvTnAW4GvA8tIJ0bOWNY51ls6x1a9mT/q1QBwIvAvwD3kz53heBj4EvD7pEmr1CpTgVcBF5JusfbrxBsda4BvAK/olEn1YP6oiD2AD9Pfi/548Qjwz8DBWWssVcC2wLtIt8SiT7yxTsQPAdvlqrwKM39UxOHABcB64vNlrLgWeDk+mlbDbAd8jLRQJvok21I8Bfwj3t6tEvNHRRwOfI/43Jho/Bw4PUtLSH00HXgv/Xk2W3YsBd4DTCu9VTRR5o+K2B34N9Kizeh86CUuBQ4pvVWkPjgDuJf4k6ho3IOz8Qjmj3o1ifSoaCXx/V80NpDuKA2/sipV2nbAeaRXqKJPnrJiEPgi3tbtB/NHRRxIel0zus/LjjtIr7dKlXUyaROV6JMlVywmvTakPMwfFfFWYBXx/ZwrNgJ/Q+/7WkhZDJBuuVV1dW2ZsYG02tuTsDzmj4qYDpxDfN/2K64G5pXSclJBM4BvE39S9Du+ic/lymD+qIh5wK+I789+xyLgoOLNJ/Vue+AnxJ8MUXE9sFPhVmwv88f8KWIf4G7i+zEqlgOnFG5FqQd7AXcSfxJEx29JO4upO3th/pg/vTuG9KpldP9FxxrSTpRS3+xGM17RKivuBnYt1KLtYv6YP0Uchhf/kbEOeFmhFpUmaGfgduKTvmpxFzC/QLu2hflj/hTxPNInd6P7q2qxDnhJgXaVtmgW8Bvik72qcTNpv3qNzfwxf4rYFXiI+H6qaqwEjui5daXNmAR8h/gkr3pchp/4HIv5Y/4UMR24gfj+qXo8BOzSYxtL4/oU8cldl/hEj23cZOaP+dOrAeCrxPdLXeI6/AaFSvQ64pO6bvGanlq6mcwf86eI/0l8f9QtPtNTS0uj7EY9v8YWHcvx9S4wf8yfYg6k2dv75opB4KU9tLf03yYB1xCfzHWNq2j3lq/mj/lTxFbAjcT3Q13jYWDHrltd6vhz4pO47vGOrlu9Ocwf86eIDxLf/nWP87tudQmYS7oNGZ3AdY/ltHO7V/PH/Clid9JrbdHtX/cYxO2C1YPziU/epsQXu2z7JjB/zJ8iLiS+3ZsStwBTumt+tdmRpJljdOI2JTbRrg06zB/zp4iTiG/zpsUfd9UDarVLiE/YpsW3u+qBejN/zJ8iriC+vZsW9+JdAE2Av97yxCBwdBf9UFfmj/lTxAnEt3VT4y0T7wa11UXEJ2pT41td9ENdmT/mTxGXEt/OTY27aPdrpc8xEF2AitkduA/3Is9lE7APcH90QTIxf/Jqev7sAfwO8yenF5EesQhnQ6OdhSdfTpNp9mIc8yevpufP2zF/cnt7dAGqxDsAz5hC+mXhl6TyegTYE9gQXZCSmT/9Yf6oiI2k/Hk4uiBVUKcJwCzgTOB04HBgL2AOMDWwTP20grQ16uWk91oXAY8Cs0lt8DzgYNItrt8HZoSUUlVl/qgI82dsG4AnSe3xa+Bq0jqOpwPL1Cj7A+fR3g9i3A38GbBNF202E/hT4IEKlN8wf4z6hvnTfawibV61XxdtplFmAJ8kzbCiOzQi1gB/TfogSK+mAR8A1lWgPob5Y9QnzJ/isR74ODC9QBu20n7ArcR3YFTcDxxauBWfcSRwTwXqZZg/RvXD/Ck3rgfmF27FllgIPEZ8p0XFzeRZCDQfuK0C9TPMH6O6Yf7kicXAYYVbseH2o90X/9yrgOeSFqtE19Mwf4zqhfmTNxYD84o2YlPNoN23/ddQ7m238RzdOVZ0fQ3zx6hOmD/9ietJayMqoUqbTnwUeFV0IQJ9BPhmH47zMGlf9Rf24VjqH/NHRZg//bEbqf7XBJcDqM4+APuTng+19WtN95DeoV3fp+NNB35L2ktB9Wf+qAjzp79Wkh53PxpdkKpsBfw+2nvxB/g0/Tv5ANaSXk9RM5g/KsL86a+ZwN9EFwKqcQdgFml7z62jCxJkBWnhzao+H3c26XZcW9u9KcwfFWH+xFhFWhC4MrIQVbgDcCbtTQJI22v2++QDeAq4LOC4Kpf5oyLMnxjbkK59oaowATg9ugDBLg889rWBx1Y5zB8VYf7ECb/2VWECcHh0AYLdEnjsGwKPrXKYPyrC/IkTfu2rwgRgQXQBgi0KPPZDgcdWORYFHtv8qb9Fgcdue/6EX/uqsAhwHcU+OFF300ltEGFrYp7/qTzmj4owf+KsI/hDQVW4A9B2ka8/bgo8tsph/qgI86fFqjABWBFdgGDdfGe7bLMDj61ymD8qwvyJ81R0AaowAbgvugDB9g889t6Bx1Y5zB8VYf7E+V10AaowAfh1dAGCHRJ47PBVqCrM/FER5k+cm6MLUIUJwNXRBQj2osBjt/WDHE1i/qgI8yfOVdEFqMJbADNJH0WIfBYVaS2wM/1fC7ENqd1n9vm4Kpf5oyLMnxhuBdyxEvhadCECTQf+MOC4b6S9J1+TmD8qwvyJ8VWCL/5QjTsAkD6NeBswNbogQRaT2qBf7+NuRfocZ9sX4TSF+aMizJ/+Wg8cSAUWAU6OLkDHcmBb4KToggSZDaymf3tj/yXwuj4dS/mZPyrC/OmvTwAXRheiaqYD1wNDLY31wDGFW3HLTiA994uur2H+GNUJ86c/cR0wrXArNtR80u2o6E6KintI3+bOZXfgkQrU0zB/jOqF+ZM3HiAt/NNmHEa7JwG3AXMLt+Jz7U768ld0/Qzzx6humD954gHg0MKt2BI7AT8ivtOiYjFwXOFWfMYJtHvm3bYwfwzzpzpxHf7y79o04MOkVyWiOzAi1gAfoNjXorbq/Dfa/MytrWH+GOZPbKwD/gGf+RcyD/g87Z0ILAL+lO4+nLENcBZwbwXKb5g/Rn1jEeZPt7ESOIcavOZYlX0AJmImcCbwAuAIYAEwhzTLbIPVwGWkV3VuAB4ClgEbSe2wAFhIap+X0u5NNvRc5o+KMH/Gth54kvRRu5uAH5LaKXyTn4mo0wQgtymk2e6uweVoukeAPYEN0QUpmfnTH03On/vJuwpfacKyJ/BwdEGqoApbAVfFRuBL0YVogS/QvMEbzJ9+aXL+fDm6EC1wMV78/5t3AJ5td9KtnKrskNg0m4B9SL90msj8yavp+bMHaXtY8yefFwFXRBeiKrwD8GyLgUuiC9FgF9HcwRvMn9yanj8PAN+LLkSD3QVcGV0IVdtCYJD4laRNi0Hg8C76oa7MH/OniOOJb+umxpu76Ae12MXEJ2vT4ltd9UC9mT/mTxE/IL69mxb3kBZaSlvkr7hyYxPt+PU2zPwxf4o4kfg2b1q8pZsOkM4jPmmbEud22fZNYP6YP0V8g/h2b0rciAsr1aUdgKXEJ2/dYxnp2w5tY/6YP0XsBjxNfPvXPQZJ3yLQGJwVjW8NaTenM6MLUnP/C/hJdCECmD/laGv+rCBdwM6ILkjNfRk4O7oQqqdJwFXEz2LrGlfQ7ldNzR/zp4ippG13o/uhrvEQ6U6c1LNd8VZuL7GctDFO25k/5k8R++KjgF5iEHhJD+0tPcdriU/ousWre2rpZjJ/zJ8i3kF8f9Qt/qmnlpbG8Unik7ou8bEe27jJzB/zp4h/J75f6hI/Bab11szS2CaRtnmNTu6qx2W4uHQs5o/5U8R04Hri+6fqsQiY21sTS5s3C7iF+CSvatxEe74D3gvzx/wpYj7pexPR/VTVWAEc1nPrShMwF7id+GSvWtwJzCvQrm1h/pg/RewPPEJ8f1UtVgMvKNCu0oTtStpbOjrpqxJ3A7sUatF2MX/MnyIOxTdLRsY63G9DfbYncAfxyR8dt+PrWr0wf8yfIo4CHiO+/6JjNfCygm0p9WQ74MfEnwRRcR2wY+FWbC/zx/wpYm/SN+6j+zEqlgPPL9yKUgEzgG8SfzL0O75GWpmsYswfFbEz8Avi+7PfcR9wQAntJxU2ALyL9Cwq+sTIHRuA93XqrHKYPypiOvAZ4vu2X3EVaeIjVcqJNPs1nQfwy1o5mT8q4o+AVcT3c67YCPw17f4+hCpuDvAF0l7U0SdMWTFI+ib7nBLbSWMzf1TEAcC1xPd52fFb4KQS20nK6nTS603RJ07RuAs4rdym0QSYP+rVJOCdNOMjQuuBv8f1IqqhacC7qec7u4+TnktvVXqraKLMHxWxG/Al0q3z6HzoJS4BDiq9VaQ+mwP8A/Ak8SfVluJJ4O+A2VlaQr0wf1TEocClxOfGRONnwKlZWkIKNJP0q2gR8SfZ6LiPtDrb57TVZf6oiMOAc4A1xOfL6BgErgBenq32UkVMIe1e9XXSTlZRJ91q4D9J22j6Bbb6MH9UxK7A31CNTYQeAj6B7/SrpWYDbyYNpI+T/4R7HPhq55iz+lA/5WX+qIjjSXsI9HMy8CBwHvAinDiGcjOOaplE2uP7JODIzr+fR+8nySbSfvM3Ar8Cftr592DhkqqKzB8VsTfwYuBkUu7sRznv3C8i5c/1wOXArSX8N1UCJwDVN5304Zg9SB9N2Zn0q286aRtZSLdi15EWYD1G2nBlMXA/sLbP5VW1mD/q1bbA4aSJwR6d2IX0dsoc0hsek3gmd9YDS0h580Dn76+BZf0uuCRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJOf1/TBeQ5OE/WfQAAAAASUVORK5CYII=" })] })] });
|
|
25540
25729
|
}
|
|
@@ -25675,6 +25864,7 @@ const iconComponents = {
|
|
|
25675
25864
|
Synced,
|
|
25676
25865
|
Syncing,
|
|
25677
25866
|
Tabler,
|
|
25867
|
+
TimelineCaret,
|
|
25678
25868
|
Timeline,
|
|
25679
25869
|
TrashFill,
|
|
25680
25870
|
Trash,
|
|
@@ -25737,7 +25927,12 @@ const ADD_TRIGGER = "ADD_TRIGGER";
|
|
|
25737
25927
|
const ADD_INVALID_TRIGGER = "ADD_INVALID_TRIGGER";
|
|
25738
25928
|
const defaultDriveOptions = [NEW_FOLDER, RENAME, SETTINGS];
|
|
25739
25929
|
const defaultFileOptions = [RENAME, DELETE, DUPLICATE];
|
|
25740
|
-
const defaultFolderOptions = [
|
|
25930
|
+
const defaultFolderOptions = [
|
|
25931
|
+
NEW_FOLDER,
|
|
25932
|
+
RENAME,
|
|
25933
|
+
DELETE,
|
|
25934
|
+
DUPLICATE
|
|
25935
|
+
];
|
|
25741
25936
|
const debugNodeOptions = [
|
|
25742
25937
|
ADD_TRIGGER,
|
|
25743
25938
|
REMOVE_TRIGGER,
|
|
@@ -25817,7 +26012,7 @@ const nodeOptionsMap = {
|
|
|
25817
26012
|
};
|
|
25818
26013
|
const name = "@powerhousedao/connect";
|
|
25819
26014
|
const productName = "Powerhouse-Connect";
|
|
25820
|
-
const version$1 = "1.0.
|
|
26015
|
+
const version$1 = "1.0.20-dev.1";
|
|
25821
26016
|
const description = "Powerhouse Connect";
|
|
25822
26017
|
const main = "./dist/index.html";
|
|
25823
26018
|
const type = "module";
|
|
@@ -25829,7 +26024,7 @@ const repository = { "type": "git", "url": "git+https://github.com/powerhouse-in
|
|
|
25829
26024
|
const bugs = { "url": "https://github.com/powerhouse-inc/document-model-electron/issues" };
|
|
25830
26025
|
const homepage = "https://github.com/powerhouse-inc/document-model-electron#readme";
|
|
25831
26026
|
const scripts = { "build:tsc": "tsc --build", "start": "electron-forge start", "package": "electron-forge package", "make": "PH_CONNECT_BASE_HREF=./ electron-forge make", "make:mac": "PH_CONNECT_BASE_HREF=./ electron-forge make -p darwin", "make:linux": "PH_CONNECT_BASE_HREF=./ electron-forge make -p linux", "make:windows": "PH_CONNECT_BASE_HREF=./ electron-forge make -p win32", "publish:electron": "electron-forge publish", "prepublishOnly": "npm run build", "lint": "eslint .", "lint:fix": "eslint --fix .", "lint:nx": "eslint --quiet --fix .", "format": 'prettier --write "**/*.+(js|ts|jsx|tsx|json)"', "dev": "vite -c vite.renderer.config.mts", "dev:nocache": "rm -rf node_modules/.vite && rm -rf node_modules/.cache && npm run dev", "prebuild": "tsc --build --noEmit", "build": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts", "preview:web": "vite preview -c vite.renderer.config.mts", "e2e": "playwright test", "cy:open": "cypress open", "build:service-worker": "tsc --build ./tsconfig.sw.json", "clean": "rimraf dist", "clean:node_modules": "rimraf node_modules" };
|
|
25832
|
-
const devDependencies = { "@electron-forge/cli": "^6.1.1", "@electron-forge/maker-deb": "^6.1.1", "@electron-forge/maker-rpm": "^6.1.1", "@electron-forge/maker-squirrel": "^6.1.1", "@electron-forge/maker-zip": "^6.1.1", "@electron-forge/plugin-vite": "^6.1.1", "@electron-forge/publisher-electron-release-server": "^6.2.1", "@electron-forge/publisher-github": "^7.2.0", "@electron-forge/shared-types": "^7.7.0", "@playwright/test": "^1.41.2", "@powerhousedao/builder-tools": "workspace:*", "@powerhousedao/common": "workspace:*", "@powerhousedao/config": "workspace:*", "@powerhousedao/design-system": "workspace:*", "@powerhousedao/reactor-browser": "workspace:*", "@powerhousedao/scalars": "workspace:*", "@rollup/plugin-node-resolve": "^15.2.3", "@sentry/browser": "^9.1.0", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tailwindcss/vite": "^4.0.9", "@tanstack/react-virtual": "^3.8.1", "@types/node": "^22.13.10", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.18", "@types/uuid": "^9.0.7", "@types/wicg-file-system-access": "^2020.9.6", "@vitejs/plugin-basic-ssl": "^1.2.0", "@vitejs/plugin-react": "^4.2.1", "asar": "^3.2.0", "did-key-creator": "^1.2.0", "document-drive": "workspace:*", "document-model": "workspace:*", "electron": "30.0.0", "electron-is-dev": "^3.0.1", "electron-playwright-helpers": "^1.7.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", "esbuild": "^0.24.0", "graphql": "^16.8.1", "graphql-request": "^6.1.0", "i18next": "^23.7.6", "jotai": "^2.1.0", "jotai-effect": "^1.1.6", "localforage": "^1.10.0", "lz-string": "^1.5.0", "playwright": "^1.41.2", "playwright-core": "^1.41.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-hotkeys-hook": "^4.5.0", "react-i18next": "^13.5.0", "react-router-dom": "^6.11.2", "tailwind-merge": "^3.0.2", "tailwindcss": "^4.0.9", "uuid": "^9.0.1", "viem": "^2.8.13", "vite": "^6.2.2", "vite-envs": "^4.4.11", "vite-plugin-html": "^3.2.2", "vite-plugin-node-polyfills": "^0.23.0", "vite-plugin-svgr": "^4.2.0", "vite-tsconfig-paths": "^4.3.2", "xvfb-maybe": "^0.2.1" };
|
|
26027
|
+
const devDependencies = { "@electron-forge/cli": "^6.1.1", "@electron-forge/maker-deb": "^6.1.1", "@electron-forge/maker-rpm": "^6.1.1", "@electron-forge/maker-squirrel": "^6.1.1", "@electron-forge/maker-zip": "^6.1.1", "@electron-forge/plugin-vite": "^6.1.1", "@electron-forge/publisher-electron-release-server": "^6.2.1", "@electron-forge/publisher-github": "^7.2.0", "@electron-forge/shared-types": "^7.7.0", "@playwright/test": "^1.41.2", "@powerhousedao/builder-tools": "workspace:*", "@powerhousedao/common": "workspace:*", "@powerhousedao/config": "workspace:*", "@powerhousedao/design-system": "workspace:*", "@powerhousedao/diff-analyzer": "^0.0.0-dev.4", "@powerhousedao/reactor-browser": "workspace:*", "@powerhousedao/scalars": "workspace:*", "@rollup/plugin-node-resolve": "^15.2.3", "@sentry/browser": "^9.1.0", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tailwindcss/vite": "^4.0.9", "@tanstack/react-virtual": "^3.8.1", "@types/node": "^22.13.10", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.18", "@types/uuid": "^9.0.7", "@types/wicg-file-system-access": "^2020.9.6", "@vitejs/plugin-basic-ssl": "^1.2.0", "@vitejs/plugin-react": "^4.2.1", "asar": "^3.2.0", "did-key-creator": "^1.2.0", "document-drive": "workspace:*", "document-model": "workspace:*", "electron": "30.0.0", "electron-is-dev": "^3.0.1", "electron-playwright-helpers": "^1.7.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", "esbuild": "^0.24.0", "graphql": "^16.8.1", "graphql-request": "^6.1.0", "i18next": "^23.7.6", "jotai": "^2.1.0", "jotai-effect": "^1.1.6", "localforage": "^1.10.0", "lz-string": "^1.5.0", "playwright": "^1.41.2", "playwright-core": "^1.41.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-hotkeys-hook": "^4.5.0", "react-i18next": "^13.5.0", "react-router-dom": "^6.11.2", "tailwind-merge": "^3.0.2", "tailwindcss": "^4.0.9", "uuid": "^9.0.1", "viem": "^2.8.13", "vite": "^6.2.2", "vite-envs": "^4.4.11", "vite-plugin-html": "^3.2.2", "vite-plugin-node-polyfills": "^0.23.0", "vite-plugin-svgr": "^4.2.0", "vite-tsconfig-paths": "^4.3.2", "xvfb-maybe": "^0.2.1" };
|
|
25833
26028
|
const optionalDependencies = { "@esbuild/linux-x64": "^0.21.4", "@rollup/rollup-linux-x64-musl": "4.14.3" };
|
|
25834
26029
|
const packageJson = {
|
|
25835
26030
|
name,
|
|
@@ -28610,6 +28805,9 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28610
28805
|
name: namespace ? `${namespace}:${_BrowserStorage.DBName}` : _BrowserStorage.DBName
|
|
28611
28806
|
}));
|
|
28612
28807
|
}
|
|
28808
|
+
////////////////////////////////
|
|
28809
|
+
// IDocumentAdminStorage
|
|
28810
|
+
////////////////////////////////
|
|
28613
28811
|
async clear() {
|
|
28614
28812
|
const db = await this.db;
|
|
28615
28813
|
await db.clear();
|
|
@@ -28622,12 +28820,19 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28622
28820
|
const document = await db.getItem(this.buildDocumentKey(documentId));
|
|
28623
28821
|
return !!document;
|
|
28624
28822
|
}
|
|
28625
|
-
// TODO: this should throw an error if the document already exists.
|
|
28626
28823
|
async create(documentId, document) {
|
|
28627
|
-
var _a2;
|
|
28628
28824
|
const db = await this.db;
|
|
28825
|
+
if (await this.exists(documentId)) {
|
|
28826
|
+
throw new DocumentAlreadyExistsError(documentId);
|
|
28827
|
+
}
|
|
28828
|
+
const slug = document.slug.length > 0 ? document.slug : documentId;
|
|
28829
|
+
if (slug) {
|
|
28830
|
+
const slugManifest = await this.getSlugManifest();
|
|
28831
|
+
if (slugManifest.slugToId[slug]) {
|
|
28832
|
+
throw new DocumentAlreadyExistsError(documentId);
|
|
28833
|
+
}
|
|
28834
|
+
}
|
|
28629
28835
|
await db.setItem(this.buildDocumentKey(documentId), document);
|
|
28630
|
-
const slug = ((_a2 = document.initialState.state.global) == null ? void 0 : _a2.slug) ?? documentId;
|
|
28631
28836
|
if (slug) {
|
|
28632
28837
|
const slugManifest = await this.getSlugManifest();
|
|
28633
28838
|
if (slugManifest.slugToId[slug]) {
|
|
@@ -28636,6 +28841,9 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28636
28841
|
slugManifest.slugToId[slug] = documentId;
|
|
28637
28842
|
await this.updateSlugManifest(slugManifest);
|
|
28638
28843
|
}
|
|
28844
|
+
if (document.documentType === "powerhouse/document-drive") {
|
|
28845
|
+
this.updateDriveManifest(documentId, { documentIds: [] });
|
|
28846
|
+
}
|
|
28639
28847
|
}
|
|
28640
28848
|
async get(documentId) {
|
|
28641
28849
|
const db = await this.db;
|
|
@@ -28653,15 +28861,56 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28653
28861
|
}
|
|
28654
28862
|
return this.get(documentId);
|
|
28655
28863
|
}
|
|
28864
|
+
async findByType(documentModelType, limit = 100, cursor) {
|
|
28865
|
+
const db = await this.db;
|
|
28866
|
+
const keys = await db.keys();
|
|
28867
|
+
const documentKeys = keys.filter((key) => key.startsWith(`${_BrowserStorage.DOCUMENT_KEY}${_BrowserStorage.SEP}`));
|
|
28868
|
+
const documentsAndIds = [];
|
|
28869
|
+
for (const key of documentKeys) {
|
|
28870
|
+
const documentId = key.slice(_BrowserStorage.DOCUMENT_KEY.length + _BrowserStorage.SEP.length);
|
|
28871
|
+
try {
|
|
28872
|
+
const document = await db.getItem(key);
|
|
28873
|
+
if (!document || document.documentType !== documentModelType) {
|
|
28874
|
+
continue;
|
|
28875
|
+
}
|
|
28876
|
+
documentsAndIds.push({ id: documentId, document });
|
|
28877
|
+
} catch (error) {
|
|
28878
|
+
continue;
|
|
28879
|
+
}
|
|
28880
|
+
}
|
|
28881
|
+
documentsAndIds.sort((a, b) => {
|
|
28882
|
+
const aDate = new Date(a.document.created);
|
|
28883
|
+
const bDate = new Date(b.document.created);
|
|
28884
|
+
if (aDate.getTime() === bDate.getTime()) {
|
|
28885
|
+
return a.id.localeCompare(b.id);
|
|
28886
|
+
}
|
|
28887
|
+
return aDate.getTime() - bDate.getTime();
|
|
28888
|
+
});
|
|
28889
|
+
let startIndex = 0;
|
|
28890
|
+
if (cursor) {
|
|
28891
|
+
const index = documentsAndIds.findIndex(({ id }) => id === cursor);
|
|
28892
|
+
if (index !== -1) {
|
|
28893
|
+
startIndex = index;
|
|
28894
|
+
}
|
|
28895
|
+
}
|
|
28896
|
+
const endIndex = Math.min(startIndex + limit, documentsAndIds.length);
|
|
28897
|
+
let nextCursor;
|
|
28898
|
+
if (endIndex < documentsAndIds.length) {
|
|
28899
|
+
nextCursor = documentsAndIds[endIndex].id;
|
|
28900
|
+
}
|
|
28901
|
+
return {
|
|
28902
|
+
documents: documentsAndIds.slice(startIndex, endIndex).map(({ id }) => id),
|
|
28903
|
+
nextCursor
|
|
28904
|
+
};
|
|
28905
|
+
}
|
|
28656
28906
|
async delete(documentId) {
|
|
28657
|
-
var _a2;
|
|
28658
28907
|
const db = await this.db;
|
|
28659
28908
|
const document = await db.getItem(this.buildDocumentKey(documentId));
|
|
28660
28909
|
if (!document) {
|
|
28661
28910
|
return false;
|
|
28662
28911
|
}
|
|
28912
|
+
const slug = document.slug.length > 0 ? document.slug : documentId;
|
|
28663
28913
|
try {
|
|
28664
|
-
const slug = (_a2 = document.initialState.state.global) == null ? void 0 : _a2.slug;
|
|
28665
28914
|
if (slug) {
|
|
28666
28915
|
const slugManifest = await this.getSlugManifest();
|
|
28667
28916
|
if (slugManifest.slugToId[slug] === documentId) {
|
|
@@ -28671,11 +28920,16 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28671
28920
|
}
|
|
28672
28921
|
} catch (error) {
|
|
28673
28922
|
}
|
|
28674
|
-
const
|
|
28675
|
-
for (const
|
|
28676
|
-
|
|
28677
|
-
|
|
28678
|
-
|
|
28923
|
+
const parents = await this.getParents(documentId);
|
|
28924
|
+
for (const parent of parents) {
|
|
28925
|
+
await this.removeChild(parent, documentId);
|
|
28926
|
+
}
|
|
28927
|
+
const children = await this.getChildren(documentId);
|
|
28928
|
+
for (const child of children) {
|
|
28929
|
+
const childParents = await this.getParents(child);
|
|
28930
|
+
if (childParents.length === 1 && childParents[0] === documentId) {
|
|
28931
|
+
await this.delete(child);
|
|
28932
|
+
}
|
|
28679
28933
|
}
|
|
28680
28934
|
await db.removeItem(this.buildManifestKey(documentId));
|
|
28681
28935
|
await db.removeItem(this.buildDocumentKey(documentId));
|
|
@@ -28709,6 +28963,20 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28709
28963
|
const manifest = await this.getManifest(parentId);
|
|
28710
28964
|
return manifest.documentIds;
|
|
28711
28965
|
}
|
|
28966
|
+
async getParents(childId) {
|
|
28967
|
+
const db = await this.db;
|
|
28968
|
+
const keys = await db.keys();
|
|
28969
|
+
const parents = [];
|
|
28970
|
+
const manifestKeys = keys.filter((key) => key.startsWith(`${_BrowserStorage.MANIFEST_KEY}${_BrowserStorage.SEP}`));
|
|
28971
|
+
for (const key of manifestKeys) {
|
|
28972
|
+
const driveId = key.slice(_BrowserStorage.MANIFEST_KEY.length + _BrowserStorage.SEP.length);
|
|
28973
|
+
const manifest = await this.getManifest(driveId);
|
|
28974
|
+
if (manifest.documentIds.includes(childId)) {
|
|
28975
|
+
parents.push(driveId);
|
|
28976
|
+
}
|
|
28977
|
+
}
|
|
28978
|
+
return parents;
|
|
28979
|
+
}
|
|
28712
28980
|
////////////////////////////////
|
|
28713
28981
|
// IDriveStorage
|
|
28714
28982
|
////////////////////////////////
|
|
@@ -28730,9 +28998,6 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28730
28998
|
const db = await this.db;
|
|
28731
28999
|
await db.setItem(_BrowserStorage.SLUG_MANIFEST_KEY, manifest);
|
|
28732
29000
|
}
|
|
28733
|
-
async clearStorage() {
|
|
28734
|
-
return (await this.db).clear();
|
|
28735
|
-
}
|
|
28736
29001
|
async addDocumentOperations(drive, id, operations, header) {
|
|
28737
29002
|
const document = await this.get(id);
|
|
28738
29003
|
if (!document) {
|
|
@@ -28746,22 +29011,6 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28746
29011
|
operations: mergedOperations
|
|
28747
29012
|
});
|
|
28748
29013
|
}
|
|
28749
|
-
async getDrives() {
|
|
28750
|
-
const db = await this.db;
|
|
28751
|
-
const keys = await db.keys();
|
|
28752
|
-
return keys.filter((key) => key.startsWith(_BrowserStorage.MANIFEST_KEY)).map((key) => key.slice(_BrowserStorage.MANIFEST_KEY.length + _BrowserStorage.SEP.length));
|
|
28753
|
-
}
|
|
28754
|
-
async createDrive(id, drive) {
|
|
28755
|
-
await this.create(id, drive);
|
|
28756
|
-
await this.updateDriveManifest(id, { documentIds: [] });
|
|
28757
|
-
}
|
|
28758
|
-
async deleteDrive(id) {
|
|
28759
|
-
const documents = await this.getChildren(id);
|
|
28760
|
-
await Promise.all(documents.map((doc) => this.delete(doc)));
|
|
28761
|
-
const db = await this.db;
|
|
28762
|
-
await db.removeItem(this.buildManifestKey(id));
|
|
28763
|
-
return db.removeItem(this.buildDocumentKey(id));
|
|
28764
|
-
}
|
|
28765
29014
|
async addDriveOperations(id, operations, header) {
|
|
28766
29015
|
const drive = await this.get(id);
|
|
28767
29016
|
const mergedOperations = mergeOperations(drive.operations, operations);
|
|
@@ -28802,12 +29051,16 @@ const _BrowserStorage = class _BrowserStorage {
|
|
|
28802
29051
|
}
|
|
28803
29052
|
// migrates all stored operations from legacy signature to signatures array
|
|
28804
29053
|
async migrateOperationSignatures() {
|
|
28805
|
-
|
|
28806
|
-
|
|
28807
|
-
await this.
|
|
28808
|
-
const
|
|
28809
|
-
|
|
28810
|
-
|
|
29054
|
+
let cursor;
|
|
29055
|
+
do {
|
|
29056
|
+
const { documents: drives, nextCursor } = await this.findByType("powerhouse/document-drive", 100, cursor);
|
|
29057
|
+
for (const drive of drives) {
|
|
29058
|
+
await this.migrateDrive(drive);
|
|
29059
|
+
const documents = await this.getChildren(drive);
|
|
29060
|
+
await Promise.all(documents.map(async (docId) => this.migrateDocument(drive, docId)));
|
|
29061
|
+
}
|
|
29062
|
+
cursor = nextCursor;
|
|
29063
|
+
} while (cursor);
|
|
28811
29064
|
}
|
|
28812
29065
|
async migrateDrive(driveId) {
|
|
28813
29066
|
const drive = await this.get(driveId);
|
|
@@ -28881,8 +29134,11 @@ const getReactorDefaultDrivesConfig = () => {
|
|
|
28881
29134
|
}
|
|
28882
29135
|
};
|
|
28883
29136
|
};
|
|
28884
|
-
function
|
|
28885
|
-
return new
|
|
29137
|
+
function createBrowserStorage(routerBasename) {
|
|
29138
|
+
return new BrowserStorage(routerBasename);
|
|
29139
|
+
}
|
|
29140
|
+
function createBrowserDocumentDriveServer(documentModels, storage) {
|
|
29141
|
+
return new ReactorBuilder(documentModels).withStorage(storage).withCache(new InMemoryCache()).withQueueManager(new BaseQueueManager(1, 10)).withOptions({ ...getReactorDefaultDrivesConfig() }).build();
|
|
28886
29142
|
}
|
|
28887
29143
|
const VERSION_CHECK_INTERVAL = parseInt(window.__VITE_ENVS.PH_CONNECT_VERSION_CHECK_INTERVAL) || 60 * 60 * 1e3;
|
|
28888
29144
|
const basePath = connectConfig.routerBasename;
|
|
@@ -31441,14 +31697,14 @@ if (window.__VITE_ENVS.MODE === "development") {
|
|
|
31441
31697
|
} else {
|
|
31442
31698
|
serviceWorkerManager.registerServiceWorker(false);
|
|
31443
31699
|
}
|
|
31444
|
-
const App = lazy(() => __vitePreload(() => import("./app-
|
|
31700
|
+
const App = lazy(() => __vitePreload(() => import("./app-BRmEr17M.js").then((n) => n.bu), true ? __vite__mapDeps([0,1,2]) : void 0));
|
|
31445
31701
|
const AppLoader = /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(App, {}) });
|
|
31446
31702
|
const appLoader = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
31447
31703
|
__proto__: null,
|
|
31448
31704
|
default: AppLoader
|
|
31449
31705
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
31450
31706
|
export {
|
|
31451
|
-
|
|
31707
|
+
Icon as $,
|
|
31452
31708
|
AddStateExampleInputSchema as A,
|
|
31453
31709
|
SetModuleDescriptionInputSchema as B,
|
|
31454
31710
|
SetModuleNameInputSchema as C,
|
|
@@ -31475,49 +31731,49 @@ export {
|
|
|
31475
31731
|
baseLoadFromFile as X,
|
|
31476
31732
|
baseLoadFromInput as Y,
|
|
31477
31733
|
pascalCase as Z,
|
|
31478
|
-
|
|
31734
|
+
logger$1 as _,
|
|
31479
31735
|
createReducer as a,
|
|
31480
|
-
|
|
31481
|
-
|
|
31482
|
-
|
|
31483
|
-
|
|
31484
|
-
|
|
31485
|
-
|
|
31486
|
-
|
|
31487
|
-
|
|
31488
|
-
|
|
31489
|
-
|
|
31490
|
-
|
|
31491
|
-
|
|
31492
|
-
|
|
31493
|
-
|
|
31494
|
-
|
|
31495
|
-
|
|
31496
|
-
|
|
31497
|
-
|
|
31498
|
-
|
|
31499
|
-
|
|
31500
|
-
|
|
31501
|
-
|
|
31502
|
-
|
|
31503
|
-
|
|
31504
|
-
|
|
31505
|
-
|
|
31506
|
-
|
|
31507
|
-
|
|
31508
|
-
|
|
31509
|
-
|
|
31510
|
-
|
|
31511
|
-
|
|
31512
|
-
|
|
31513
|
-
|
|
31514
|
-
|
|
31515
|
-
|
|
31516
|
-
|
|
31517
|
-
|
|
31518
|
-
|
|
31519
|
-
|
|
31520
|
-
|
|
31736
|
+
getNamedType as a$,
|
|
31737
|
+
getDefaultExportFromCjs as a0,
|
|
31738
|
+
LOCAL as a1,
|
|
31739
|
+
commonjsGlobal as a2,
|
|
31740
|
+
PUBLIC as a3,
|
|
31741
|
+
SWITCHBOARD as a4,
|
|
31742
|
+
locationInfoByLocation as a5,
|
|
31743
|
+
sharingTypeOptions as a6,
|
|
31744
|
+
objectType as a7,
|
|
31745
|
+
recordType as a8,
|
|
31746
|
+
stringType as a9,
|
|
31747
|
+
updateNode as aA,
|
|
31748
|
+
FILE as aB,
|
|
31749
|
+
moveNode as aC,
|
|
31750
|
+
generateNodesCopy as aD,
|
|
31751
|
+
copyNode as aE,
|
|
31752
|
+
createState as aF,
|
|
31753
|
+
setDriveName as aG,
|
|
31754
|
+
setAvailableOffline as aH,
|
|
31755
|
+
setSharingType as aI,
|
|
31756
|
+
SynchronizationUnitNotFoundError as aJ,
|
|
31757
|
+
removeTrigger as aK,
|
|
31758
|
+
generateUUID as aL,
|
|
31759
|
+
PullResponderTransmitter as aM,
|
|
31760
|
+
addTrigger as aN,
|
|
31761
|
+
ReadDriveNotFoundError as aO,
|
|
31762
|
+
openUrl as aP,
|
|
31763
|
+
getNodeOptions as aQ,
|
|
31764
|
+
DRIVE as aR,
|
|
31765
|
+
FOLDER as aS,
|
|
31766
|
+
requestPublicDrive as aT,
|
|
31767
|
+
serviceWorkerManager as aU,
|
|
31768
|
+
packageJson as aV,
|
|
31769
|
+
t as aW,
|
|
31770
|
+
gql as aX,
|
|
31771
|
+
request as aY,
|
|
31772
|
+
inspect as aZ,
|
|
31773
|
+
GraphQLError as a_,
|
|
31774
|
+
capitalCase as aa,
|
|
31775
|
+
CLOUD as ab,
|
|
31776
|
+
createZip as ac,
|
|
31521
31777
|
LZString as ad,
|
|
31522
31778
|
buildSignedOperation as ae,
|
|
31523
31779
|
getI18n as af,
|
|
@@ -31525,99 +31781,100 @@ export {
|
|
|
31525
31781
|
connectConfig as ah,
|
|
31526
31782
|
hashDocumentStateForScope as ai,
|
|
31527
31783
|
getAugmentedNamespace as aj,
|
|
31528
|
-
|
|
31529
|
-
|
|
31530
|
-
|
|
31531
|
-
|
|
31532
|
-
|
|
31533
|
-
|
|
31534
|
-
|
|
31535
|
-
|
|
31536
|
-
|
|
31537
|
-
|
|
31538
|
-
|
|
31539
|
-
|
|
31540
|
-
|
|
31541
|
-
|
|
31542
|
-
|
|
31543
|
-
|
|
31784
|
+
process as ak,
|
|
31785
|
+
setErrorHandler as al,
|
|
31786
|
+
driveDocumentModelModule as am,
|
|
31787
|
+
createBrowserStorage as an,
|
|
31788
|
+
createBrowserDocumentDriveServer as ao,
|
|
31789
|
+
generateId as ap,
|
|
31790
|
+
childLogger as aq,
|
|
31791
|
+
reducer as ar,
|
|
31792
|
+
isDocumentDrive as as,
|
|
31793
|
+
generateAddNodeAction as at,
|
|
31794
|
+
isFileNode as au,
|
|
31795
|
+
uploadDocumentOperations as av,
|
|
31796
|
+
updateFile as aw,
|
|
31797
|
+
addFolder as ax,
|
|
31798
|
+
isFolderNode as ay,
|
|
31799
|
+
deleteNode as az,
|
|
31544
31800
|
SetStateSchemaInputSchema as b,
|
|
31545
|
-
|
|
31546
|
-
|
|
31547
|
-
|
|
31548
|
-
|
|
31549
|
-
|
|
31550
|
-
|
|
31551
|
-
|
|
31552
|
-
|
|
31553
|
-
|
|
31554
|
-
|
|
31555
|
-
|
|
31556
|
-
|
|
31557
|
-
|
|
31558
|
-
|
|
31559
|
-
|
|
31560
|
-
|
|
31561
|
-
|
|
31562
|
-
|
|
31563
|
-
|
|
31564
|
-
|
|
31565
|
-
|
|
31566
|
-
|
|
31567
|
-
|
|
31568
|
-
|
|
31569
|
-
|
|
31570
|
-
|
|
31571
|
-
|
|
31572
|
-
|
|
31573
|
-
|
|
31574
|
-
|
|
31575
|
-
|
|
31576
|
-
|
|
31577
|
-
|
|
31578
|
-
|
|
31579
|
-
|
|
31580
|
-
|
|
31581
|
-
|
|
31582
|
-
|
|
31583
|
-
|
|
31584
|
-
|
|
31585
|
-
|
|
31586
|
-
|
|
31587
|
-
|
|
31588
|
-
|
|
31589
|
-
|
|
31590
|
-
|
|
31591
|
-
|
|
31592
|
-
|
|
31593
|
-
|
|
31594
|
-
|
|
31595
|
-
|
|
31596
|
-
|
|
31597
|
-
|
|
31598
|
-
|
|
31599
|
-
|
|
31600
|
-
|
|
31601
|
-
|
|
31602
|
-
|
|
31603
|
-
|
|
31604
|
-
|
|
31605
|
-
|
|
31606
|
-
|
|
31607
|
-
|
|
31608
|
-
|
|
31801
|
+
defaultFileOptions as b$,
|
|
31802
|
+
invariant as b0,
|
|
31803
|
+
isInputObjectType as b1,
|
|
31804
|
+
isScalarType as b2,
|
|
31805
|
+
isObjectType as b3,
|
|
31806
|
+
isInterfaceType as b4,
|
|
31807
|
+
isUnionType as b5,
|
|
31808
|
+
isEnumType as b6,
|
|
31809
|
+
print as b7,
|
|
31810
|
+
isPrintableAsBlockString as b8,
|
|
31811
|
+
Kind as b9,
|
|
31812
|
+
isOutputType as bA,
|
|
31813
|
+
isInputType as bB,
|
|
31814
|
+
GraphQLBoolean as bC,
|
|
31815
|
+
assertAbstractType as bD,
|
|
31816
|
+
doTypesOverlap as bE,
|
|
31817
|
+
DirectiveLocation as bF,
|
|
31818
|
+
specifiedRules as bG,
|
|
31819
|
+
NoUnusedFragmentsRule as bH,
|
|
31820
|
+
ExecutableDefinitionsRule as bI,
|
|
31821
|
+
validate as bJ,
|
|
31822
|
+
validateSchema as bK,
|
|
31823
|
+
GraphQLID as bL,
|
|
31824
|
+
GraphQLString as bM,
|
|
31825
|
+
GraphQLFloat as bN,
|
|
31826
|
+
GraphQLInt as bO,
|
|
31827
|
+
GraphQLDirective as bP,
|
|
31828
|
+
GraphQLUnionType as bQ,
|
|
31829
|
+
isNonNullType as bR,
|
|
31830
|
+
GraphQLNonNull as bS,
|
|
31831
|
+
isNamedType as bT,
|
|
31832
|
+
isLeafType as bU,
|
|
31833
|
+
GraphQLSchema as bV,
|
|
31834
|
+
buildSchema as bW,
|
|
31835
|
+
sentenceCase as bX,
|
|
31836
|
+
getDimensions as bY,
|
|
31837
|
+
READ as bZ,
|
|
31838
|
+
nodeOptionsMap as b_,
|
|
31839
|
+
astFromValue as ba,
|
|
31840
|
+
DEFAULT_DEPRECATION_REASON as bb,
|
|
31841
|
+
isSpecifiedDirective as bc,
|
|
31842
|
+
isSpecifiedScalarType as bd,
|
|
31843
|
+
isIntrospectionType as be,
|
|
31844
|
+
z as bf,
|
|
31845
|
+
GraphQLScalarType as bg,
|
|
31846
|
+
parse as bh,
|
|
31847
|
+
visit as bi,
|
|
31848
|
+
buildASTSchema as bj,
|
|
31849
|
+
extendSchema as bk,
|
|
31850
|
+
getNullableType as bl,
|
|
31851
|
+
isListType as bm,
|
|
31852
|
+
snakeCase as bn,
|
|
31853
|
+
constantCase as bo,
|
|
31854
|
+
isAbstractType as bp,
|
|
31855
|
+
BREAK as bq,
|
|
31856
|
+
GraphQLInputObjectType as br,
|
|
31857
|
+
GraphQLList as bs,
|
|
31858
|
+
GraphQLEnumType as bt,
|
|
31859
|
+
GraphQLObjectType as bu,
|
|
31860
|
+
GraphQLInterfaceType as bv,
|
|
31861
|
+
SchemaMetaFieldDef as bw,
|
|
31862
|
+
TypeMetaFieldDef as bx,
|
|
31863
|
+
TypeNameMetaFieldDef as by,
|
|
31864
|
+
isCompositeType as bz,
|
|
31609
31865
|
createAction as c,
|
|
31610
|
-
|
|
31611
|
-
|
|
31612
|
-
|
|
31613
|
-
|
|
31614
|
-
|
|
31615
|
-
|
|
31616
|
-
|
|
31617
|
-
|
|
31618
|
-
|
|
31619
|
-
|
|
31620
|
-
|
|
31866
|
+
DELETE as c0,
|
|
31867
|
+
RENAME as c1,
|
|
31868
|
+
WRITE as c2,
|
|
31869
|
+
DUPLICATE as c3,
|
|
31870
|
+
defaultFolderOptions as c4,
|
|
31871
|
+
garbageCollect as c5,
|
|
31872
|
+
sortOperations as c6,
|
|
31873
|
+
UI_NODE as c7,
|
|
31874
|
+
undo as c8,
|
|
31875
|
+
redo as c9,
|
|
31876
|
+
useDocumentDispatch as ca,
|
|
31877
|
+
appLoader as cb,
|
|
31621
31878
|
ReorderModuleOperationsInputSchema as d,
|
|
31622
31879
|
DeleteOperationInputSchema as e,
|
|
31623
31880
|
SetOperationReducerInputSchema as f,
|
|
@@ -31642,3 +31899,4 @@ export {
|
|
|
31642
31899
|
ReorderModulesInputSchema as y,
|
|
31643
31900
|
DeleteModuleInputSchema as z
|
|
31644
31901
|
};
|
|
31902
|
+
//# sourceMappingURL=app-loader-_6yU4PFI.js.map
|