tinybase 5.0.0-beta.6 → 5.0.0-beta.8
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/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs/synchronizers.cjs +1 -0
- package/lib/cjs/synchronizers.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers.cjs +1 -0
- package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/debug/synchronizers/synchronizer-local.js +503 -0
- package/lib/debug/{persisters/persister-sync.js → synchronizers/synchronizer-ws-client.js} +95 -161
- package/lib/debug/synchronizers/synchronizer-ws-server.js +57 -0
- package/lib/debug/synchronizers.js +467 -0
- package/lib/debug/tinybase.js +255 -84
- package/lib/es6/synchronizers/synchronizer-local.js +1 -0
- package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/es6/synchronizers.js +1 -0
- package/lib/es6/synchronizers.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/synchronizers/synchronizer-local.js +1 -0
- package/lib/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/synchronizers.js +1 -0
- package/lib/synchronizers.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/persisters.d.ts +8 -16
- package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
- package/lib/types/synchronizers/synchronizer-ws-client.d.ts +30 -0
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +24 -0
- package/lib/types/synchronizers.d.ts +132 -0
- package/lib/types/tinybase.d.ts +1 -0
- package/lib/types/with-schemas/persisters.d.ts +13 -57
- package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +32 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +24 -0
- package/lib/types/with-schemas/synchronizers.d.ts +149 -0
- package/lib/umd/synchronizers/synchronizer-local.js +1 -0
- package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd/synchronizers.js +1 -0
- package/lib/umd/synchronizers.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd-es6/synchronizers.js +1 -0
- package/lib/umd-es6/synchronizers.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/package.json +1 -1
- package/readme.md +2 -2
- package/lib/cjs/persisters/persister-sync.cjs +0 -1
- package/lib/cjs/persisters/persister-sync.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sync.cjs +0 -1
- package/lib/cjs-es6/persisters/persister-sync.cjs.gz +0 -0
- package/lib/es6/persisters/persister-sync.js +0 -1
- package/lib/es6/persisters/persister-sync.js.gz +0 -0
- package/lib/persisters/persister-sync.js +0 -1
- package/lib/persisters/persister-sync.js.gz +0 -0
- package/lib/types/persisters/persister-sync.d.ts +0 -182
- package/lib/types/with-schemas/persisters/persister-sync.d.ts +0 -195
- package/lib/umd/persisters/persister-sync.js +0 -1
- package/lib/umd/persisters/persister-sync.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sync.js +0 -1
- package/lib/umd-es6/persisters/persister-sync.js.gz +0 -0
package/lib/debug/tinybase.js
CHANGED
|
@@ -33,6 +33,7 @@ const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
|
33
33
|
const strEndsWith = (str, suffix) => str.endsWith(suffix);
|
|
34
34
|
const strCharCodeAt = (str, position) => str.charCodeAt(position);
|
|
35
35
|
|
|
36
|
+
const promise = Promise;
|
|
36
37
|
const mathMax = Math.max;
|
|
37
38
|
const mathMin = Math.min;
|
|
38
39
|
const isFiniteNumber = isFinite;
|
|
@@ -48,6 +49,7 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
|
48
49
|
const size = (arrayOrString) => arrayOrString.length;
|
|
49
50
|
const test = (regex, subject) => regex.test(subject);
|
|
50
51
|
const getUndefined = () => void 0;
|
|
52
|
+
const promiseNew = (resolver) => new promise(resolver);
|
|
51
53
|
|
|
52
54
|
const arrayHas = (array, value) => array.includes(value);
|
|
53
55
|
const arrayEvery = (array, cb) => array.every(cb);
|
|
@@ -1279,6 +1281,258 @@ const createCustomPersister = (
|
|
|
1279
1281
|
return objFreeze(persister);
|
|
1280
1282
|
};
|
|
1281
1283
|
|
|
1284
|
+
const textEncoder = new globalThis.TextEncoder();
|
|
1285
|
+
const getHash = (value) => {
|
|
1286
|
+
let hash = 2166136261;
|
|
1287
|
+
arrayForEach(textEncoder.encode(value), (char) => {
|
|
1288
|
+
hash ^= char;
|
|
1289
|
+
hash +=
|
|
1290
|
+
(hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
|
|
1291
|
+
});
|
|
1292
|
+
return hash >>> 0;
|
|
1293
|
+
};
|
|
1294
|
+
|
|
1295
|
+
const MASK6 = 63;
|
|
1296
|
+
const SHIFT36 = 2 ** 36;
|
|
1297
|
+
const SHIFT30 = 2 ** 30;
|
|
1298
|
+
const SHIFT24 = 2 ** 24;
|
|
1299
|
+
const SHIFT18 = 2 ** 18;
|
|
1300
|
+
const SHIFT12 = 2 ** 12;
|
|
1301
|
+
const SHIFT6 = 2 ** 6;
|
|
1302
|
+
const toB64 = (num) => String.fromCharCode(48 + (num & MASK6));
|
|
1303
|
+
const fromB64 = (str, pos) => strCharCodeAt(str, pos) - 48;
|
|
1304
|
+
const encodeHlc = (logicalTime42, counter24, clientHash30) =>
|
|
1305
|
+
toB64(logicalTime42 / SHIFT36) +
|
|
1306
|
+
toB64(logicalTime42 / SHIFT30) +
|
|
1307
|
+
toB64(logicalTime42 / SHIFT24) +
|
|
1308
|
+
toB64(logicalTime42 / SHIFT18) +
|
|
1309
|
+
toB64(logicalTime42 / SHIFT12) +
|
|
1310
|
+
toB64(logicalTime42 / SHIFT6) +
|
|
1311
|
+
toB64(logicalTime42) +
|
|
1312
|
+
toB64(counter24 / SHIFT18) +
|
|
1313
|
+
toB64(counter24 / SHIFT12) +
|
|
1314
|
+
toB64(counter24 / SHIFT6) +
|
|
1315
|
+
toB64(counter24) +
|
|
1316
|
+
toB64(clientHash30 / SHIFT24) +
|
|
1317
|
+
toB64(clientHash30 / SHIFT18) +
|
|
1318
|
+
toB64(clientHash30 / SHIFT12) +
|
|
1319
|
+
toB64(clientHash30 / SHIFT6) +
|
|
1320
|
+
toB64(clientHash30);
|
|
1321
|
+
const decodeHlc = (hlc16) => [
|
|
1322
|
+
fromB64(hlc16, 0) * SHIFT36 +
|
|
1323
|
+
fromB64(hlc16, 1) * SHIFT30 +
|
|
1324
|
+
fromB64(hlc16, 2) * SHIFT24 +
|
|
1325
|
+
fromB64(hlc16, 3) * SHIFT18 +
|
|
1326
|
+
fromB64(hlc16, 4) * SHIFT12 +
|
|
1327
|
+
fromB64(hlc16, 5) * SHIFT6 +
|
|
1328
|
+
fromB64(hlc16, 6),
|
|
1329
|
+
fromB64(hlc16, 7) * SHIFT18 +
|
|
1330
|
+
fromB64(hlc16, 8) * SHIFT12 +
|
|
1331
|
+
fromB64(hlc16, 9) * SHIFT6 +
|
|
1332
|
+
fromB64(hlc16, 10),
|
|
1333
|
+
fromB64(hlc16, 11) * SHIFT24 +
|
|
1334
|
+
fromB64(hlc16, 12) * SHIFT18 +
|
|
1335
|
+
fromB64(hlc16, 13) * SHIFT12 +
|
|
1336
|
+
fromB64(hlc16, 14) * SHIFT6 +
|
|
1337
|
+
fromB64(hlc16, 15),
|
|
1338
|
+
];
|
|
1339
|
+
const getHlcFunctions = (uniqueId) => {
|
|
1340
|
+
let logicalTime = 0;
|
|
1341
|
+
let lastCounter = -1;
|
|
1342
|
+
const uniqueIdHash = getHash(uniqueId);
|
|
1343
|
+
const getHlc = () => {
|
|
1344
|
+
seenHlc();
|
|
1345
|
+
return encodeHlc(logicalTime, ++lastCounter, uniqueIdHash);
|
|
1346
|
+
};
|
|
1347
|
+
const seenHlc = (hlc) => {
|
|
1348
|
+
const previousLogicalTime = logicalTime;
|
|
1349
|
+
const [remoteLogicalTime, remoteCounter] =
|
|
1350
|
+
isUndefined(hlc) || hlc == '' ? [0, 0] : decodeHlc(hlc);
|
|
1351
|
+
logicalTime = mathMax(
|
|
1352
|
+
previousLogicalTime,
|
|
1353
|
+
remoteLogicalTime,
|
|
1354
|
+
globalThis.HLC_TIME ?? Date.now(),
|
|
1355
|
+
);
|
|
1356
|
+
lastCounter =
|
|
1357
|
+
logicalTime == previousLogicalTime
|
|
1358
|
+
? logicalTime == remoteLogicalTime
|
|
1359
|
+
? mathMax(lastCounter, remoteCounter)
|
|
1360
|
+
: lastCounter
|
|
1361
|
+
: logicalTime == remoteLogicalTime
|
|
1362
|
+
? remoteCounter
|
|
1363
|
+
: -1;
|
|
1364
|
+
};
|
|
1365
|
+
return [getHlc, seenHlc];
|
|
1366
|
+
};
|
|
1367
|
+
|
|
1368
|
+
const RESPONSE = 0;
|
|
1369
|
+
const CONTENT_HASHES = 1;
|
|
1370
|
+
const GET_CONTENT_HASHES = 2;
|
|
1371
|
+
const GET_TABLE_IDS_DIFF = 3;
|
|
1372
|
+
const GET_ROW_IDS_DIFF = 4;
|
|
1373
|
+
const GET_TABLES_CHANGES = 5;
|
|
1374
|
+
const GET_VALUES_CHANGES = 6;
|
|
1375
|
+
const createCustomSynchronizer = (
|
|
1376
|
+
store,
|
|
1377
|
+
send,
|
|
1378
|
+
onReceive,
|
|
1379
|
+
destroyImpl,
|
|
1380
|
+
requestTimeoutSeconds = 1,
|
|
1381
|
+
onIgnoredError,
|
|
1382
|
+
) => {
|
|
1383
|
+
let persisterListener;
|
|
1384
|
+
let sends = 0;
|
|
1385
|
+
let receives = 0;
|
|
1386
|
+
const [getHlc] = getHlcFunctions(store.getId());
|
|
1387
|
+
const pendingRequests = mapNew();
|
|
1388
|
+
onReceive((fromClientId, requestId, messageType, messageBody) => {
|
|
1389
|
+
{
|
|
1390
|
+
receives++;
|
|
1391
|
+
}
|
|
1392
|
+
if (messageType == RESPONSE) {
|
|
1393
|
+
ifNotUndefined(
|
|
1394
|
+
mapGet(pendingRequests, requestId),
|
|
1395
|
+
([toClientId, handleResponse]) =>
|
|
1396
|
+
isUndefined(toClientId) || toClientId == fromClientId
|
|
1397
|
+
? handleResponse(messageBody, fromClientId)
|
|
1398
|
+
: /* istanbul ignore next */
|
|
1399
|
+
0,
|
|
1400
|
+
);
|
|
1401
|
+
} else if (messageType == CONTENT_HASHES && persister.isAutoLoading()) {
|
|
1402
|
+
getChangesFromOtherStore(fromClientId, messageBody).then((changes) =>
|
|
1403
|
+
persisterListener?.(void 0, () => changes),
|
|
1404
|
+
);
|
|
1405
|
+
} else {
|
|
1406
|
+
ifNotUndefined(
|
|
1407
|
+
messageType == GET_CONTENT_HASHES && persister.isAutoSaving()
|
|
1408
|
+
? store.getMergeableContentHashes()
|
|
1409
|
+
: messageType == GET_TABLE_IDS_DIFF
|
|
1410
|
+
? store.getMergeableTableIdsDiff(messageBody)
|
|
1411
|
+
: messageType == GET_ROW_IDS_DIFF
|
|
1412
|
+
? store.getMergeableRowIdsDiff(messageBody)
|
|
1413
|
+
: messageType == GET_TABLES_CHANGES
|
|
1414
|
+
? store.getMergeableTablesChanges(messageBody)
|
|
1415
|
+
: messageType == GET_VALUES_CHANGES
|
|
1416
|
+
? store.getMergeableValuesChanges(messageBody)
|
|
1417
|
+
: void 0,
|
|
1418
|
+
(response) => {
|
|
1419
|
+
{
|
|
1420
|
+
sends++;
|
|
1421
|
+
}
|
|
1422
|
+
send(fromClientId, requestId, RESPONSE, response);
|
|
1423
|
+
},
|
|
1424
|
+
);
|
|
1425
|
+
}
|
|
1426
|
+
});
|
|
1427
|
+
const request = async (toClientId, messageType, messageBody = EMPTY_STRING) =>
|
|
1428
|
+
promiseNew((resolve, reject) => {
|
|
1429
|
+
const requestId = getHlc();
|
|
1430
|
+
const timeout = setTimeout(() => {
|
|
1431
|
+
collDel(pendingRequests, requestId);
|
|
1432
|
+
reject(
|
|
1433
|
+
`No response from ${toClientId ?? 'anyone'} to '${messageType}'`,
|
|
1434
|
+
);
|
|
1435
|
+
}, requestTimeoutSeconds * 1e3);
|
|
1436
|
+
mapSet(pendingRequests, requestId, [
|
|
1437
|
+
toClientId,
|
|
1438
|
+
(response, fromClientId) => {
|
|
1439
|
+
clearTimeout(timeout);
|
|
1440
|
+
collDel(pendingRequests, requestId);
|
|
1441
|
+
resolve([response, fromClientId]);
|
|
1442
|
+
},
|
|
1443
|
+
]);
|
|
1444
|
+
{
|
|
1445
|
+
sends++;
|
|
1446
|
+
}
|
|
1447
|
+
send(toClientId, requestId, messageType, messageBody);
|
|
1448
|
+
});
|
|
1449
|
+
const getChangesFromOtherStore = async (
|
|
1450
|
+
otherClientId = null,
|
|
1451
|
+
otherContentHashes,
|
|
1452
|
+
) => {
|
|
1453
|
+
if (isUndefined(otherContentHashes)) {
|
|
1454
|
+
[otherContentHashes, otherClientId] = await request(
|
|
1455
|
+
otherClientId,
|
|
1456
|
+
GET_CONTENT_HASHES,
|
|
1457
|
+
);
|
|
1458
|
+
}
|
|
1459
|
+
const [otherContentTime, [otherTablesHash, otherValuesHash]] =
|
|
1460
|
+
otherContentHashes;
|
|
1461
|
+
const [, [tablesHash, valuesHash]] = store.getMergeableContentHashes();
|
|
1462
|
+
const changes = [EMPTY_STRING, [[EMPTY_STRING, {}], [EMPTY_STRING, {}], 1]];
|
|
1463
|
+
if (tablesHash != otherTablesHash) {
|
|
1464
|
+
changes[0] = otherContentTime;
|
|
1465
|
+
changes[1][0] = (
|
|
1466
|
+
await request(
|
|
1467
|
+
otherClientId,
|
|
1468
|
+
GET_TABLES_CHANGES,
|
|
1469
|
+
store.getMergeableCellHashes(
|
|
1470
|
+
(
|
|
1471
|
+
await request(
|
|
1472
|
+
otherClientId,
|
|
1473
|
+
GET_ROW_IDS_DIFF,
|
|
1474
|
+
store.getMergeableRowHashes(
|
|
1475
|
+
(
|
|
1476
|
+
await request(
|
|
1477
|
+
otherClientId,
|
|
1478
|
+
GET_TABLE_IDS_DIFF,
|
|
1479
|
+
store.getMergeableTableHashes(),
|
|
1480
|
+
)
|
|
1481
|
+
)[0],
|
|
1482
|
+
),
|
|
1483
|
+
)
|
|
1484
|
+
)[0],
|
|
1485
|
+
),
|
|
1486
|
+
)
|
|
1487
|
+
)[0];
|
|
1488
|
+
}
|
|
1489
|
+
if (valuesHash != otherValuesHash) {
|
|
1490
|
+
changes[0] = otherContentTime;
|
|
1491
|
+
changes[1][1] = (
|
|
1492
|
+
await request(
|
|
1493
|
+
otherClientId,
|
|
1494
|
+
GET_VALUES_CHANGES,
|
|
1495
|
+
store.getMergeableValuesHashes(),
|
|
1496
|
+
)
|
|
1497
|
+
)[0];
|
|
1498
|
+
}
|
|
1499
|
+
return changes;
|
|
1500
|
+
};
|
|
1501
|
+
const getPersisted = async () => {
|
|
1502
|
+
const changes = await getChangesFromOtherStore();
|
|
1503
|
+
return changes[0] != EMPTY_STRING ? changes : void 0;
|
|
1504
|
+
};
|
|
1505
|
+
const setPersisted = async () => {
|
|
1506
|
+
{
|
|
1507
|
+
sends++;
|
|
1508
|
+
}
|
|
1509
|
+
send(null, null, CONTENT_HASHES, store.getMergeableContentHashes());
|
|
1510
|
+
};
|
|
1511
|
+
const addPersisterListener = (listener) => (persisterListener = listener);
|
|
1512
|
+
const delPersisterListener = () => (persisterListener = void 0);
|
|
1513
|
+
const startSync = async (initialTables, initialValues) =>
|
|
1514
|
+
await (
|
|
1515
|
+
await persister.startAutoLoad(initialTables, initialValues)
|
|
1516
|
+
).startAutoSave();
|
|
1517
|
+
const stopSync = () => persister.stopAutoLoad().stopAutoSave();
|
|
1518
|
+
const destroy = () => {
|
|
1519
|
+
destroyImpl();
|
|
1520
|
+
return persister.stopSync();
|
|
1521
|
+
};
|
|
1522
|
+
const getSynchronizerStats = () => ({sends, receives});
|
|
1523
|
+
const persister = createCustomPersister(
|
|
1524
|
+
store,
|
|
1525
|
+
getPersisted,
|
|
1526
|
+
setPersisted,
|
|
1527
|
+
addPersisterListener,
|
|
1528
|
+
delPersisterListener,
|
|
1529
|
+
onIgnoredError,
|
|
1530
|
+
true,
|
|
1531
|
+
{startSync, stopSync, destroy, getSynchronizerStats},
|
|
1532
|
+
);
|
|
1533
|
+
return persister;
|
|
1534
|
+
};
|
|
1535
|
+
|
|
1282
1536
|
const createQueries = getCreateFunction((store) => {
|
|
1283
1537
|
const createStore = store.createStore;
|
|
1284
1538
|
const preStore = createStore();
|
|
@@ -1927,17 +2181,6 @@ const createRelationships = getCreateFunction((store) => {
|
|
|
1927
2181
|
return objFreeze(relationships);
|
|
1928
2182
|
});
|
|
1929
2183
|
|
|
1930
|
-
const textEncoder = new globalThis.TextEncoder();
|
|
1931
|
-
const getHash = (value) => {
|
|
1932
|
-
let hash = 2166136261;
|
|
1933
|
-
arrayForEach(textEncoder.encode(value), (char) => {
|
|
1934
|
-
hash ^= char;
|
|
1935
|
-
hash +=
|
|
1936
|
-
(hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
|
|
1937
|
-
});
|
|
1938
|
-
return hash >>> 0;
|
|
1939
|
-
};
|
|
1940
|
-
|
|
1941
2184
|
const stampCloneWithHash = ([time, value, hash]) => [time, value, hash];
|
|
1942
2185
|
const stampClone = ([time, value]) => [time, value];
|
|
1943
2186
|
const getStampHash = (stamp) => stamp[2];
|
|
@@ -3279,79 +3522,6 @@ const createStore = () => {
|
|
|
3279
3522
|
return objFreeze(store);
|
|
3280
3523
|
};
|
|
3281
3524
|
|
|
3282
|
-
const MASK6 = 63;
|
|
3283
|
-
const SHIFT36 = 2 ** 36;
|
|
3284
|
-
const SHIFT30 = 2 ** 30;
|
|
3285
|
-
const SHIFT24 = 2 ** 24;
|
|
3286
|
-
const SHIFT18 = 2 ** 18;
|
|
3287
|
-
const SHIFT12 = 2 ** 12;
|
|
3288
|
-
const SHIFT6 = 2 ** 6;
|
|
3289
|
-
const toB64 = (num) => String.fromCharCode(48 + (num & MASK6));
|
|
3290
|
-
const fromB64 = (str, pos) => strCharCodeAt(str, pos) - 48;
|
|
3291
|
-
const encodeHlc = (logicalTime42, counter24, clientHash30) =>
|
|
3292
|
-
toB64(logicalTime42 / SHIFT36) +
|
|
3293
|
-
toB64(logicalTime42 / SHIFT30) +
|
|
3294
|
-
toB64(logicalTime42 / SHIFT24) +
|
|
3295
|
-
toB64(logicalTime42 / SHIFT18) +
|
|
3296
|
-
toB64(logicalTime42 / SHIFT12) +
|
|
3297
|
-
toB64(logicalTime42 / SHIFT6) +
|
|
3298
|
-
toB64(logicalTime42) +
|
|
3299
|
-
toB64(counter24 / SHIFT18) +
|
|
3300
|
-
toB64(counter24 / SHIFT12) +
|
|
3301
|
-
toB64(counter24 / SHIFT6) +
|
|
3302
|
-
toB64(counter24) +
|
|
3303
|
-
toB64(clientHash30 / SHIFT24) +
|
|
3304
|
-
toB64(clientHash30 / SHIFT18) +
|
|
3305
|
-
toB64(clientHash30 / SHIFT12) +
|
|
3306
|
-
toB64(clientHash30 / SHIFT6) +
|
|
3307
|
-
toB64(clientHash30);
|
|
3308
|
-
const decodeHlc = (hlc16) => [
|
|
3309
|
-
fromB64(hlc16, 0) * SHIFT36 +
|
|
3310
|
-
fromB64(hlc16, 1) * SHIFT30 +
|
|
3311
|
-
fromB64(hlc16, 2) * SHIFT24 +
|
|
3312
|
-
fromB64(hlc16, 3) * SHIFT18 +
|
|
3313
|
-
fromB64(hlc16, 4) * SHIFT12 +
|
|
3314
|
-
fromB64(hlc16, 5) * SHIFT6 +
|
|
3315
|
-
fromB64(hlc16, 6),
|
|
3316
|
-
fromB64(hlc16, 7) * SHIFT18 +
|
|
3317
|
-
fromB64(hlc16, 8) * SHIFT12 +
|
|
3318
|
-
fromB64(hlc16, 9) * SHIFT6 +
|
|
3319
|
-
fromB64(hlc16, 10),
|
|
3320
|
-
fromB64(hlc16, 11) * SHIFT24 +
|
|
3321
|
-
fromB64(hlc16, 12) * SHIFT18 +
|
|
3322
|
-
fromB64(hlc16, 13) * SHIFT12 +
|
|
3323
|
-
fromB64(hlc16, 14) * SHIFT6 +
|
|
3324
|
-
fromB64(hlc16, 15),
|
|
3325
|
-
];
|
|
3326
|
-
const getHlcFunctions = (uniqueId) => {
|
|
3327
|
-
let logicalTime = 0;
|
|
3328
|
-
let lastCounter = -1;
|
|
3329
|
-
const uniqueIdHash = getHash(uniqueId);
|
|
3330
|
-
const getHlc = () => {
|
|
3331
|
-
seenHlc();
|
|
3332
|
-
return encodeHlc(logicalTime, ++lastCounter, uniqueIdHash);
|
|
3333
|
-
};
|
|
3334
|
-
const seenHlc = (hlc) => {
|
|
3335
|
-
const previousLogicalTime = logicalTime;
|
|
3336
|
-
const [remoteLogicalTime, remoteCounter] =
|
|
3337
|
-
isUndefined(hlc) || hlc == '' ? [0, 0] : decodeHlc(hlc);
|
|
3338
|
-
logicalTime = mathMax(
|
|
3339
|
-
previousLogicalTime,
|
|
3340
|
-
remoteLogicalTime,
|
|
3341
|
-
globalThis.HLC_TIME ?? Date.now(),
|
|
3342
|
-
);
|
|
3343
|
-
lastCounter =
|
|
3344
|
-
logicalTime == previousLogicalTime
|
|
3345
|
-
? logicalTime == remoteLogicalTime
|
|
3346
|
-
? mathMax(lastCounter, remoteCounter)
|
|
3347
|
-
: lastCounter
|
|
3348
|
-
: logicalTime == remoteLogicalTime
|
|
3349
|
-
? remoteCounter
|
|
3350
|
-
: -1;
|
|
3351
|
-
};
|
|
3352
|
-
return [getHlc, seenHlc];
|
|
3353
|
-
};
|
|
3354
|
-
|
|
3355
3525
|
const LISTENER_ARGS = {
|
|
3356
3526
|
HasTable: 1,
|
|
3357
3527
|
Table: 1,
|
|
@@ -3750,6 +3920,7 @@ const createMergeableStore = (id) => {
|
|
|
3750
3920
|
export {
|
|
3751
3921
|
createCheckpoints,
|
|
3752
3922
|
createCustomPersister,
|
|
3923
|
+
createCustomSynchronizer,
|
|
3753
3924
|
createIndexes,
|
|
3754
3925
|
createMergeableStore,
|
|
3755
3926
|
createMetrics,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>typeof e,t=e(""),n=Promise,o=Math.max,l=e=>null==e,r=(e,t,n)=>l(e)?null==n?void 0:n():t(e),a=Object,u=e=>a.getPrototypeOf(e),i=a.keys,s=a.freeze,d=e=>(e=>!l(e)&&r(u(e),(e=>e==a.prototype||l(u(e))),(()=>!0)))(e)&&0==(e=>i(e).length)(e),c=(e,t)=>null==e?void 0:e.delete(t),v=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),y=(e,t,n)=>l(n)?(c(e,t),e):null==e?void 0:e.set(t,n),h=(e,t,n,o)=>{var l,r,a;return r=t,null!=(a=null==(l=e)?void 0:l.has(r))&&a?null==o||o(g(e,t)):y(e,t,n()),g(e,t)};var f=Object.defineProperty,p=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable,C=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{u(n.next(e))}catch(e){l(e)}},a=e=>{try{u(n.throw(e))}catch(e){l(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);u((n=n.apply(e,t)).next())}));const S=v(),m=v(),w=new globalThis.TextEncoder;var L=Math.pow;const T=L(2,36),P=L(2,30),O=L(2,24),x=L(2,18),H=L(2,12),j=L(2,6),D=e=>String.fromCharCode(48+(63&e)),E=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48;var I=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{u(n.next(e))}catch(e){l(e)}},a=e=>{try{u(n.throw(e))}catch(e){l(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);u((n=n.apply(e,t)).next())}));const z=v(),R=(a,u)=>{const i=""+Math.random();return((a,u,i,f,L=1,z)=>{let R;const[V]=(e=>{let t=0,n=-1;const r=(e=>{let t=2166136261;var n;return n=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},w.encode(e).forEach(n),t>>>0})(e),a=e=>{const r=t,[a,u]=l(e)||""==e?[0,0]:[E(i=e,0)*T+E(i,1)*P+E(i,2)*O+E(i,3)*x+E(i,4)*H+E(i,5)*j+E(i,6),E(i,7)*x+E(i,8)*H+E(i,9)*j+E(i,10),E(i,11)*O+E(i,12)*x+E(i,13)*H+E(i,14)*j+E(i,15)];var i;t=o(r,a,Date.now()),n=t==r?t==a?o(n,u):n:t==a?u:-1};return[()=>{return a(),o=++n,l=r,D((e=t)/T)+D(e/P)+D(e/O)+D(e/x)+D(e/H)+D(e/j)+D(e)+D(o/x)+D(o/H)+D(o/j)+D(o)+D(l/O)+D(l/x)+D(l/H)+D(l/j)+D(l);var e,o,l},a]})(a.getId()),$=v();i(((e,t,n,o)=>{0==n?r(g($,t),(([t,n])=>l(t)||t==e?n(o,e):0)):1==n&&N.isAutoLoading()?F(e,o).then((e=>null==R?void 0:R(void 0,(()=>e)))):r(2==n&&N.isAutoSaving()?a.getMergeableContentHashes():3==n?a.getMergeableTableIdsDiff(o):4==n?a.getMergeableRowIdsDiff(o):5==n?a.getMergeableTablesChanges(o):6==n?a.getMergeableValuesChanges(o):void 0,(n=>{u(e,t,0,n)}))}));const k=(e,t,...o)=>I(void 0,[e,t,...o],(function*(e,t,o=""){return new n(((n,l)=>{const r=V(),a=setTimeout((()=>{c($,r),l(`No response from ${null!=e?e:"anyone"} to '${t}'`)}),1e3*L);y($,r,[e,(e,t)=>{clearTimeout(a),c($,r),n([e,t])}]),u(e,r,t,o)}))})),F=(e=null,t)=>I(void 0,null,(function*(){l(t)&&([t,e]=yield k(e,2));const[n,[o,r]]=t,[,[u,i]]=a.getMergeableContentHashes(),s=["",[["",{}],["",{}],1]];return u!=o&&(s[0]=n,s[1][0]=(yield k(e,5,a.getMergeableCellHashes((yield k(e,4,a.getMergeableRowHashes((yield k(e,3,a.getMergeableTableHashes()))[0])))[0])))[0]),i!=r&&(s[0]=n,s[1][1]=(yield k(e,6,a.getMergeableValuesHashes()))[0]),s})),N=((n,o,a,u,i,c,v,f={},w=[])=>{let L,T,P,O=0;h(S,w,(()=>0)),h(m,w,(()=>[]));const[x,H,j,D]=((e,t)=>!e||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!d(e)||!d(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!d(e)||!d(t)])(v,n),E=e=>A(void 0,null,(function*(){return 2!=O&&(O=1,yield z.schedule((()=>A(void 0,null,(function*(){yield e(),O=0}))))),z})),I=o=>{var l;(x&&(l=null==o?void 0:o[0],e(l)==t)?1===(null==o?void 0:o[1][2])?n.applyMergeableChanges:n.setMergeableContent:1===(null==o?void 0:o[2])?n.applyChanges:n.setContent)(o)},z=((e,t)=>{for(var n in t||(t={}))b.call(t,n)&&C(e,n,t[n]);if(p)for(var n of p(t))M.call(t,n)&&C(e,n,t[n]);return e})({load:(e,t)=>A(void 0,null,(function*(){return yield E((()=>A(void 0,null,(function*(){try{I(yield o())}catch(o){null==c||c(o),n.setContent([e,t])}}))))})),startAutoLoad:(...e)=>A(void 0,[...e],(function*(e={},t={}){return yield z.stopAutoLoad().load(e,t),T=u(((e,t)=>A(void 0,null,(function*(){const n=null==t?void 0:t();yield E((()=>A(void 0,null,(function*(){var t;try{I(null!=(t=null!=n?n:null==e?void 0:e())?t:yield o())}catch(e){null==c||c(e)}}))))})))),z})),stopAutoLoad:()=>(T&&(i(T),T=void 0),z),isAutoLoading:()=>!l(T),save:e=>A(void 0,null,(function*(){return 1!=O&&(O=2,yield z.schedule((()=>A(void 0,null,(function*(){try{yield a(H,e)}catch(e){null==c||c(e)}O=0}))))),z})),startAutoSave:()=>A(void 0,null,(function*(){return yield z.stopAutoSave().save(),P=n.addDidFinishTransactionListener((()=>{const e=j();D(e)&&z.save((()=>e))})),z})),stopAutoSave:()=>(r(P,n.delListener),P=void 0,z),isAutoSaving:()=>!l(P),schedule:(...e)=>A(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(g(m,w),...e),yield A(void 0,null,(function*(){if(!g(S,w)){for(y(S,w,1);!l((e=g(m,w),L=e.shift()));)try{yield L()}catch(e){null==c||c(e)}y(S,w,0)}var e})),z})),getStore:()=>n,destroy:()=>z.stopAutoLoad().stopAutoSave(),getStats:()=>({})},f);return s(z)})(a,(()=>I(void 0,null,(function*(){const e=yield F();return""!=e[0]?e:void 0}))),(()=>I(void 0,null,(function*(){u(null,null,1,a.getMergeableContentHashes())}))),(e=>R=e),(()=>R=void 0),z,!0,{startSync:(e,t)=>I(void 0,null,(function*(){return yield(yield N.startAutoLoad(e,t)).startAutoSave()})),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(f(),N.stopSync()),getSynchronizerStats:()=>({})});return N})(a,((e,t,n,o)=>{var r,a;l(e)?(a=(e,l)=>e!=i?l(i,t,n,o):0,((e,t)=>{null==z||z.forEach(t)})(0,((e,t)=>a(t,e)))):null==(r=g(z,e))||r(i,t,n,o)}),(e=>{y(z,i,e)}),(()=>{c(z,i)}),.001,u)};export{R as createLocalSynchronizer};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>typeof e,t="",n=e(t),o=Promise,l=Math.max,r=e=>null==e,a=(e,t,n)=>r(e)?null==n?void 0:n():t(e),i=(e,t,n)=>e.slice(t,n),u=e=>new o(e),s=Object,d=e=>s.getPrototypeOf(e),c=s.keys,v=s.freeze,g=e=>(e=>!r(e)&&a(d(e),(e=>e==s.prototype||r(d(e))),(()=>!0)))(e)&&0==(e=>c(e).length)(e),y=JSON.parse,h=(e,t)=>null==e?void 0:e.delete(t),f=e=>new Map(e),p=(e,t)=>null==e?void 0:e.get(t),b=(e,t,n)=>r(n)?(h(e,t),e):null==e?void 0:e.set(t,n),S=(e,t,n,o)=>{var l,r,a;return r=t,null!=(a=null==(l=e)?void 0:l.has(r))&&a?null==o||o(p(e,t)):b(e,t,n()),p(e,t)};var M=Object.defineProperty,C=Object.getOwnPropertySymbols,m=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,w=(e,t,n)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,O=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},a=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())}));const P=f(),L=f(),x=new globalThis.TextEncoder;var T=Math.pow;const H=T(2,36),E=T(2,30),j=T(2,24),D=T(2,18),I=T(2,12),N=T(2,6),z=e=>String.fromCharCode(48+(63&e)),J=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48;var R=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},a=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())}));const V=(o,d,c,M)=>{return T=function*(){let T;const V=(e,t)=>d.addEventListener(e,t),$=((o,i,s,d,c=1,y)=>{let M;const[T]=(e=>{let t=0,n=-1;const o=(e=>{let t=2166136261;var n;return n=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},x.encode(e).forEach(n),t>>>0})(e),a=e=>{const o=t,[a,i]=r(e)||""==e?[0,0]:[J(u=e,0)*H+J(u,1)*E+J(u,2)*j+J(u,3)*D+J(u,4)*I+J(u,5)*N+J(u,6),J(u,7)*D+J(u,8)*I+J(u,9)*N+J(u,10),J(u,11)*j+J(u,12)*D+J(u,13)*I+J(u,14)*N+J(u,15)];var u;t=l(o,a,Date.now()),n=t==o?t==a?l(n,i):n:t==a?i:-1};return[()=>{return a(),l=++n,r=o,z((e=t)/H)+z(e/E)+z(e/j)+z(e/D)+z(e/I)+z(e/N)+z(e)+z(l/D)+z(l/I)+z(l/N)+z(l)+z(r/j)+z(r/D)+z(r/I)+z(r/N)+z(r);var e,l,r},a]})(o.getId()),V=f();s(((e,t,n,l)=>{0==n?a(p(V,t),(([t,n])=>r(t)||t==e?n(l,e):0)):1==n&&F.isAutoLoading()?k(e,l).then((e=>null==M?void 0:M(void 0,(()=>e)))):a(2==n&&F.isAutoSaving()?o.getMergeableContentHashes():3==n?o.getMergeableTableIdsDiff(l):4==n?o.getMergeableRowIdsDiff(l):5==n?o.getMergeableTablesChanges(l):6==n?o.getMergeableValuesChanges(l):void 0,(n=>{i(e,t,0,n)}))}));const $=(e,t,...n)=>R(void 0,[e,t,...n],(function*(e,t,n=""){return u(((o,l)=>{const r=T(),a=setTimeout((()=>{h(V,r),l(`No response from ${null!=e?e:"anyone"} to '${t}'`)}),1e3*c);b(V,r,[e,(e,t)=>{clearTimeout(a),h(V,r),o([e,t])}]),i(e,r,t,n)}))})),k=(e=null,n)=>R(void 0,null,(function*(){r(n)&&([n,e]=yield $(e,2));const[l,[a,i]]=n,[,[u,s]]=o.getMergeableContentHashes(),d=[t,[[t,{}],[t,{}],1]];return u!=a&&(d[0]=l,d[1][0]=(yield $(e,5,o.getMergeableCellHashes((yield $(e,4,o.getMergeableRowHashes((yield $(e,3,o.getMergeableTableHashes()))[0])))[0])))[0]),s!=i&&(d[0]=l,d[1][1]=(yield $(e,6,o.getMergeableValuesHashes()))[0]),d})),F=((t,o,l,i,u,s,d,c={},y=[])=>{let h,f,M,x=0;S(P,y,(()=>0)),S(L,y,(()=>[]));const[T,H,E,j]=((e,t)=>!e||r(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!g(e)||!g(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!g(e)||!g(t)])(d,t),D=e=>O(void 0,null,(function*(){return 2!=x&&(x=1,yield N.schedule((()=>O(void 0,null,(function*(){yield e(),x=0}))))),N})),I=o=>{var l;(T&&(l=null==o?void 0:o[0],e(l)==n)?1===(null==o?void 0:o[1][2])?t.applyMergeableChanges:t.setMergeableContent:1===(null==o?void 0:o[2])?t.applyChanges:t.setContent)(o)},N=((e,t)=>{for(var n in t||(t={}))m.call(t,n)&&w(e,n,t[n]);if(C)for(var n of C(t))A.call(t,n)&&w(e,n,t[n]);return e})({load:(e,n)=>O(void 0,null,(function*(){return yield D((()=>O(void 0,null,(function*(){try{I(yield o())}catch(o){null==s||s(o),t.setContent([e,n])}}))))})),startAutoLoad:(...e)=>O(void 0,[...e],(function*(e={},t={}){return yield N.stopAutoLoad().load(e,t),f=i(((e,t)=>O(void 0,null,(function*(){const n=null==t?void 0:t();yield D((()=>O(void 0,null,(function*(){var t;try{I(null!=(t=null!=n?n:null==e?void 0:e())?t:yield o())}catch(e){null==s||s(e)}}))))})))),N})),stopAutoLoad:()=>(f&&(u(f),f=void 0),N),isAutoLoading:()=>!r(f),save:e=>O(void 0,null,(function*(){return 1!=x&&(x=2,yield N.schedule((()=>O(void 0,null,(function*(){try{yield l(H,e)}catch(e){null==s||s(e)}x=0}))))),N})),startAutoSave:()=>O(void 0,null,(function*(){return yield N.stopAutoSave().save(),M=t.addDidFinishTransactionListener((()=>{const e=E();j(e)&&N.save((()=>e))})),N})),stopAutoSave:()=>(a(M,t.delListener),M=void 0,N),isAutoSaving:()=>!r(M),schedule:(...e)=>O(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(p(L,y),...e),yield O(void 0,null,(function*(){if(!p(P,y)){for(b(P,y,1);!r((e=p(L,y),h=e.shift()));)try{yield h()}catch(e){null==s||s(e)}b(P,y,0)}var e})),N})),getStore:()=>t,destroy:()=>N.stopAutoLoad().stopAutoSave(),getStats:()=>({})},c);return v(N)})(o,(()=>R(void 0,null,(function*(){const e=yield k();return e[0]!=t?e:void 0}))),(()=>R(void 0,null,(function*(){i(null,null,1,o.getMergeableContentHashes())}))),(e=>M=e),(()=>M=void 0),y,!0,{startSync:(e,t)=>R(void 0,null,(function*(){return yield(yield F.startAutoLoad(e,t)).startAutoSave()})),stopSync:()=>F.stopAutoLoad().stopAutoSave(),destroy:()=>(d(),F.stopSync()),getSynchronizerStats:()=>({})});return F})(o,((e,...n)=>{d.send((null!=e?e:t)+"\n"+JSON.stringify(n,((e,t)=>t instanceof Map?s.fromEntries([...t]):t)))}),(e=>{T=e}),(()=>{d.close()}),c,M);return V("message",(({data:e})=>{if(!r(T)){const t=e.toString("utf8").indexOf("\n");-1!==t&&T(i(e,0,t),...y(i(e,t+1)))}})),u(((e,t)=>{d.readyState!=d.OPEN?(V("error",t),V("open",(()=>e($)))):e($)}))},new Promise(((e,t)=>{var n=e=>{try{l(T.next(e))}catch(e){t(e)}},o=e=>{try{l(T.throw(e))}catch(e){t(e)}},l=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,o);l((T=T.apply(void 0,null)).next())}));var T};export{V as createWsSynchronizer};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=(e,n,o)=>e.slice(n,o),n=(e,n)=>null==e?void 0:e.delete(n),o=o=>{const t=new Map(void 0);return o.on("connection",((o,l)=>{const s=l.headers["sec-websocket-key"];var r,c,a;r=t,c=s,null==(a=o)?n(r,c):null==r||r.set(c,a),o.on("message",(n=>{var o;const l=n.toString("utf8"),r=l.indexOf("\n");if(-1!==r){const n=e(l,0,r),c=e(l,r+1);""===n?((e,n)=>{var o;null==(o=e)||o.forEach(((e,n)=>{return o=e,n!=s?o.send(s+"\n"+c):0;var o}))})(t):null==(o=((e,n)=>null==e?void 0:e.get(n))(t,n))||o.send(s+"\n"+c)}})),o.on("close",(()=>{n(t,s)}))})),{getWebSocketServer:()=>o,destroy:()=>{o.close(),t.clear()}}};export{o as createWsServer};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>typeof e,t=e(""),n=Promise,o=Math.max,l=e=>null==e,r=(e,t,n)=>l(e)?null==n?void 0:n():t(e),a=Object,i=e=>a.getPrototypeOf(e),u=a.keys,s=a.freeze,d=e=>(e=>!l(e)&&r(i(e),(e=>e==a.prototype||l(i(e))),(()=>!0)))(e)&&0==(e=>u(e).length)(e),c=(e,t)=>null==e?void 0:e.delete(t),v=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),y=(e,t,n)=>l(n)?(c(e,t),e):null==e?void 0:e.set(t,n),h=(e,t,n,o)=>{var l,r,a;return r=t,null!=(a=null==(l=e)?void 0:l.has(r))&&a?null==o||o(g(e,t)):y(e,t,n()),g(e,t)};var f=Object.defineProperty,p=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},a=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())}));const S=v(),w=v(),m=new globalThis.TextEncoder;var L=Math.pow;const T=L(2,36),P=L(2,30),O=L(2,24),x=L(2,18),H=L(2,12),j=L(2,6),D=e=>String.fromCharCode(48+(63&e)),I=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48;var E=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},a=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())}));const z=(a,i,u,f,L=1,z)=>{let R;const[V]=(e=>{let t=0,n=-1;const r=(e=>{let t=2166136261;var n;return n=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},m.encode(e).forEach(n),t>>>0})(e),a=e=>{const r=t,[a,i]=l(e)||""==e?[0,0]:[I(u=e,0)*T+I(u,1)*P+I(u,2)*O+I(u,3)*x+I(u,4)*H+I(u,5)*j+I(u,6),I(u,7)*x+I(u,8)*H+I(u,9)*j+I(u,10),I(u,11)*O+I(u,12)*x+I(u,13)*H+I(u,14)*j+I(u,15)];var u;t=o(r,a,Date.now()),n=t==r?t==a?o(n,i):n:t==a?i:-1};return[()=>{return a(),o=++n,l=r,D((e=t)/T)+D(e/P)+D(e/O)+D(e/x)+D(e/H)+D(e/j)+D(e)+D(o/x)+D(o/H)+D(o/j)+D(o)+D(l/O)+D(l/x)+D(l/H)+D(l/j)+D(l);var e,o,l},a]})(a.getId()),$=v();u(((e,t,n,o)=>{0==n?r(g($,t),(([t,n])=>l(t)||t==e?n(o,e):0)):1==n&&N.isAutoLoading()?F(e,o).then((e=>null==R?void 0:R(void 0,(()=>e)))):r(2==n&&N.isAutoSaving()?a.getMergeableContentHashes():3==n?a.getMergeableTableIdsDiff(o):4==n?a.getMergeableRowIdsDiff(o):5==n?a.getMergeableTablesChanges(o):6==n?a.getMergeableValuesChanges(o):void 0,(n=>{i(e,t,0,n)}))}));const k=(e,t,...o)=>E(void 0,[e,t,...o],(function*(e,t,o=""){return new n(((n,l)=>{const r=V(),a=setTimeout((()=>{c($,r),l(`No response from ${null!=e?e:"anyone"} to '${t}'`)}),1e3*L);y($,r,[e,(e,t)=>{clearTimeout(a),c($,r),n([e,t])}]),i(e,r,t,o)}))})),F=(e=null,t)=>E(void 0,null,(function*(){l(t)&&([t,e]=yield k(e,2));const[n,[o,r]]=t,[,[i,u]]=a.getMergeableContentHashes(),s=["",[["",{}],["",{}],1]];return i!=o&&(s[0]=n,s[1][0]=(yield k(e,5,a.getMergeableCellHashes((yield k(e,4,a.getMergeableRowHashes((yield k(e,3,a.getMergeableTableHashes()))[0])))[0])))[0]),u!=r&&(s[0]=n,s[1][1]=(yield k(e,6,a.getMergeableValuesHashes()))[0]),s})),N=((n,o,a,i,u,c,v,f={},m=[])=>{let L,T,P,O=0;h(S,m,(()=>0)),h(w,m,(()=>[]));const[x,H,j,D]=((e,t)=>!e||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!d(e)||!d(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!d(e)||!d(t)])(v,n),I=e=>A(void 0,null,(function*(){return 2!=O&&(O=1,yield z.schedule((()=>A(void 0,null,(function*(){yield e(),O=0}))))),z})),E=o=>{var l;(x&&(l=null==o?void 0:o[0],e(l)==t)?1===(null==o?void 0:o[1][2])?n.applyMergeableChanges:n.setMergeableContent:1===(null==o?void 0:o[2])?n.applyChanges:n.setContent)(o)},z=((e,t)=>{for(var n in t||(t={}))b.call(t,n)&&M(e,n,t[n]);if(p)for(var n of p(t))C.call(t,n)&&M(e,n,t[n]);return e})({load:(e,t)=>A(void 0,null,(function*(){return yield I((()=>A(void 0,null,(function*(){try{E(yield o())}catch(o){null==c||c(o),n.setContent([e,t])}}))))})),startAutoLoad:(...e)=>A(void 0,[...e],(function*(e={},t={}){return yield z.stopAutoLoad().load(e,t),T=i(((e,t)=>A(void 0,null,(function*(){const n=null==t?void 0:t();yield I((()=>A(void 0,null,(function*(){var t;try{E(null!=(t=null!=n?n:null==e?void 0:e())?t:yield o())}catch(e){null==c||c(e)}}))))})))),z})),stopAutoLoad:()=>(T&&(u(T),T=void 0),z),isAutoLoading:()=>!l(T),save:e=>A(void 0,null,(function*(){return 1!=O&&(O=2,yield z.schedule((()=>A(void 0,null,(function*(){try{yield a(H,e)}catch(e){null==c||c(e)}O=0}))))),z})),startAutoSave:()=>A(void 0,null,(function*(){return yield z.stopAutoSave().save(),P=n.addDidFinishTransactionListener((()=>{const e=j();D(e)&&z.save((()=>e))})),z})),stopAutoSave:()=>(r(P,n.delListener),P=void 0,z),isAutoSaving:()=>!l(P),schedule:(...e)=>A(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(g(w,m),...e),yield A(void 0,null,(function*(){if(!g(S,m)){for(y(S,m,1);!l((e=g(w,m),L=e.shift()));)try{yield L()}catch(e){null==c||c(e)}y(S,m,0)}var e})),z})),getStore:()=>n,destroy:()=>z.stopAutoLoad().stopAutoSave(),getStats:()=>({})},f);return s(z)})(a,(()=>E(void 0,null,(function*(){const e=yield F();return""!=e[0]?e:void 0}))),(()=>E(void 0,null,(function*(){i(null,null,1,a.getMergeableContentHashes())}))),(e=>R=e),(()=>R=void 0),z,!0,{startSync:(e,t)=>E(void 0,null,(function*(){return yield(yield N.startAutoLoad(e,t)).startAutoSave()})),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(f(),N.stopSync()),getSynchronizerStats:()=>({})});return N};export{z as createCustomSynchronizer};
|
|
Binary file
|
package/lib/es6/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",n=e(t),l=e(!0),o=e(0),s=e(e),r="type",a="default",i="Listener",d="Result",u="add",c="Has",v="Ids",g="Table",h=g+"s",f=g+v,b="Row",p=b+"Count",L=b+v,y="Sorted"+b+v,C="Cell",w=C+v,I="Value",T=I+"s",R=I+v,S=e=>t+e,M=(e,t)=>e.startsWith(t),m=(e,t)=>e.endsWith(t),V=Math.max,E=Math.min,O=isFinite,k=e=>null==e,x=(e,t,n)=>k(e)?null==n?void 0:n():t(e),D=e=>e==n||e==l,A=t=>e(t)==n,H=t=>e(t)==s,J=e=>Array.isArray(e),P=(e,t,n)=>e.slice(t,n),j=e=>e.length,F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>j(e)===j(t)&&z(e,((e,n)=>t[n]===e)),W=(e,t)=>z(e,((n,l)=>0==l||t(e[l-1],n)<=0)),_=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),$=(e,t)=>e.map(t),q=e=>K(e,((e,t)=>e+t),0),G=e=>0==j(e),K=(e,t,n)=>e.reduce(t,n),U=(e,...t)=>e.push(...t),X=e=>e.pop(),Y=e=>e.shift(),Z=Object,ee=e=>Z.getPrototypeOf(e),te=Z.entries,ne=Z.isFrozen,le=e=>!k(e)&&x(ee(e),(e=>e==Z.prototype||k(ee(e))),(()=>!0)),oe=Z.keys,se=Z.freeze,re=(e=[])=>Z.fromEntries(e),ae=(e,t)=>t in e,ie=(e,t)=>(delete e[t],e),de=(e,t)=>B(te(e),(([e,n])=>t(n,e))),ue=(e,t)=>$(te(e),(([e,n])=>t(n,e))),ce=(e,t)=>re(ue(e,((e,n)=>[n,t(e,n)]))),ve=e=>le(e)&&0==(e=>j(oe(e)))(e),ge=(e,t,n)=>(ae(e,t)||(e[t]=n()),e[t]),he=(e,t,n,l=0)=>k(e)||!le(e)||!l&&ve(e)||ne(e)?(null==n||n(),!1):(ue(e,((n,l)=>{t(n,l)||ie(e,l)})),!!l||!ve(e)),fe=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},be=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},pe=e=>k(e)||0==fe(e),Le=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},ye=e=>e.clear(),Ce=(e,t)=>null==e?void 0:e.forEach(t),we=(e,t)=>null==e?void 0:e.delete(t),Ie=e=>new Map(e),Te=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},Re=(e,t)=>null==e?void 0:e.get(t),Se=(e,t)=>Ce(e,((e,n)=>t(n,e))),Me=(e,t,n)=>k(n)?(we(e,t),e):null==e?void 0:e.set(t,n),me=(e,t,n,l)=>(be(e,t)?null==l||l(Re(e,t)):Me(e,t,n()),Re(e,t)),Ve=(e,t,n,l=Me)=>(ue(t,((t,l)=>n(e,l,t))),Se(e,(n=>ae(t,n)?0:l(e,n))),e),Ee=(e,t,n,l)=>{const o={};return Ce(e,((e,s)=>{if(!(null==n?void 0:n(e,s))){const n=t?t(e,s):e;!(null==l?void 0:l(n))&&(o[s]=n)}})),o},Oe=(e,t,n)=>Ee(e,(e=>Ee(e,t,n)),pe,ve),ke=(e,t,n)=>Ee(e,(e=>Oe(e,t,n)),pe,ve),xe=(e,t)=>{const n=Ie();return Ce(e,((e,l)=>{var o;return n.set(l,null!=(o=null==t?void 0:t(e))?o:e)})),n},De=e=>xe(e,xe),Ae=e=>xe(e,De),He=(e,t,n,l,o=0)=>x((n?me:Re)(e,t[o],o>j(t)-2?n:Ie),(s=>{if(o>j(t)-2)return(null==l?void 0:l(s))&&Me(e,t[o]),s;const r=He(s,t,n,l,o+1);return pe(s)&&Me(e,t[o]),r})),Je=t=>{const n=e(t);return D(n)||n==o&&O(t)?n:void 0},Pe=e=>null===e||!k(Je(e)),je=(e,t,n,l,o)=>k(o)?e.delCell(t,n,l,!0):e.setCell(t,n,l,o),Fe=(e,t,n)=>k(n)?e.delValue(t):e.setValue(t,n),Qe=e=>new Set(J(e)||k(e)?e:[e]),ze=(e,t)=>null==e?void 0:e.add(t),Ne=(e,t,n,l,o)=>{const s=e.hasRow,r=Ie(),a=Ie(),i=Ie(),d=Ie(),u=Ie(),c=Ie(),v=(t,n,...l)=>{const o=me(c,t,Qe);return B(l,(t=>ze(o,t)&&n&&e.callListener(t))),l},g=(t,...n)=>x(Re(c,t),(l=>{B(G(n)?Le(l):n,(t=>{e.delListener(t),we(l,t)})),pe(l)&&Me(c,t)})),h=(e,n)=>{Me(r,e,n),be(a,e)||(Me(a,e,t()),Me(d,e,Ie()),Me(u,e,Ie()),o(i))},f=e=>{Me(r,e),Me(a,e),Me(d,e),Me(u,e),g(e),o(i)};return[()=>e,()=>Te(r),e=>Se(a,e),e=>be(a,e),e=>Re(r,e),e=>Re(a,e),(e,t)=>Me(a,e,t),h,(t,l,o,r,a)=>{h(t,l);const i=Ie(),c=Ie(),f=Re(d,t),b=Re(u,t),p=t=>{const o=n=>e.getCell(l,t,n),d=Re(f,t),u=s(l,t)?n(r(o,t)):void 0;if(d===u||J(d)&&J(u)&&N(d,u)||Me(i,t,[d,u]),!k(a)){const e=Re(b,t),n=s(l,t)?a(o,t):void 0;e!=n&&Me(c,t,n)}},L=e=>{o((()=>{Ce(i,(([,e],t)=>Me(f,t,e))),Ce(c,((e,t)=>Me(b,t,e)))}),i,c,f,b,e),ye(i),ye(c)};Se(f,p),e.hasTable(l)&&B(e.getRowIds(l),(e=>{be(f,e)||p(e)})),L(!0),g(t),v(t,0,e.addRowListener(l,null,((e,t,n)=>p(n))),e.addTableListener(l,(()=>L())))},f,e=>l(e,i),()=>Se(c,f),v,g]},We=(e,n)=>A(e)?t=>t(e):null!=e?e:()=>null!=n?n:t,_e=(e,t)=>{const n=new WeakMap;return l=>{n.has(l)||n.set(l,e(l));const o=n.get(l);return null==t||t(o),o}},Be=/^\d+$/,$e=()=>{const e=[];let n=0;return[l=>{var o;return null!=(o=l?Y(e):null)?o:t+n++},t=>{Be.test(t)&&j(e)<1e3&&U(e,t)}]},qe=e=>{let n;const[l,o]=$e(),s=Ie();return[(o,r,a,i=[],d=(()=>[]))=>{null!=n||(n=e());const u=l(1);return Me(s,u,[o,r,a,i,d]),ze(He(r,null!=a?a:[t],Qe),u),u},(e,l,...o)=>B(((e,n=[t])=>{const l=[],o=(e,t)=>t==j(n)?U(l,e):null===n[t]?Ce(e,(e=>o(e,t+1))):B([n[t],null],(n=>o(Re(e,n),t+1)));return o(e,0),l})(e,l),(e=>Ce(e,(e=>Re(s,e)[0](n,...null!=l?l:[],...o))))),e=>x(Re(s,e),(([,n,l])=>(He(n,null!=l?l:[t],void 0,(t=>(we(t,e),pe(t)?1:0))),Me(s,e),o(e),l))),e=>x(Re(s,e),(([e,,t=[],l,o])=>{const s=(...r)=>{var a,i;const d=j(r);d==j(t)?e(n,...r,...o(r)):k(t[d])?B(null!=(i=null==(a=l[d])?void 0:a.call(l,...r))?i:[],(e=>s(...r,e))):s(...r,t[d])};s()}))]},Ge=_e((e=>{let n,l,o,s=100,r=Ie(),a=Ie(),i=1;const d=Ie(),u=Ie(),[c,v,g]=qe((()=>H)),h=Ie(),f=Ie(),b=[],p=[],L=(t,n)=>{i=0,e.transaction((()=>{const[l,o]=Re(h,n);Ce(l,((n,l)=>Ce(n,((n,o)=>Ce(n,((n,s)=>je(e,l,o,s,n[t]))))))),Ce(o,((n,l)=>Fe(e,l,n[t])))})),i=1},y=e=>{Me(h,e),Me(f,e),v(u,[e])},C=(e,t)=>B(((e,t)=>e.splice(0,t))(e,null!=t?t:j(e)),y),w=()=>C(b,j(b)-s),I=()=>x(n,(()=>{U(b,n),w(),C(p),n=void 0,o=1})),T=()=>{n=X(b),o=1};let R,S;const M=(e="")=>(k(n)&&(n=t+l++,Me(h,n,[r,a]),D(n,e),r=Ie(),a=Ie(),o=1),n),m=()=>{G(b)||(((e,...t)=>{e.unshift(...t)})(p,M()),L(0,n),n=X(b),o=1)},V=()=>{G(p)||(U(b,n),n=Y(p),L(1,n),o=1)},E=()=>{o&&(v(d),o=0)},O=e=>{const t=M(e);return E(),t},D=(e,t)=>(A(e)&&Re(f,e)!==t&&(Me(f,e,t),v(u,[e])),H),A=e=>be(h,e),H={setSize:e=>(s=e,w(),H),addCheckpoint:O,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],n,[...p]],forEachCheckpoint:e=>Se(f,e),hasCheckpoint:A,getCheckpoint:e=>Re(f,e),goBackward:()=>(m(),E(),H),goForward:()=>(V(),E(),H),goTo:e=>{const t=Q(b,e)?m:Q(p,e)?V:null;for(;!k(t)&&e!=n;)t();return E(),H},addCheckpointIdsListener:e=>c(e,d),addCheckpointListener:(e,t)=>c(t,u,[e]),delListener:e=>(g(e),H),clear:()=>(C(b),C(p),k(n)||y(n),n=void 0,l=0,O(),H),clearForward:()=>(G(p)||(C(p),v(d)),H),destroy:()=>{e.delListener(R),e.delListener(S)},getListenerStats:()=>({}),_registerListeners:()=>{R=e.addCellListener(null,null,null,((e,t,n,l,o,s)=>{if(i){I();const e=me(r,t,Ie),a=me(e,n,Ie),i=me(a,l,(()=>[s,void 0]));i[1]=o,i[0]===o&&pe(Me(a,l))&&pe(Me(e,n))&&pe(Me(r,t))&&T(),E()}})),S=e.addValueListener(null,((e,t,n,l)=>{if(i){I();const e=me(a,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&pe(Me(a,t))&&T(),E()}}))}};return se(H.clear())}),(e=>e._registerListeners())),Ke=(e,t)=>(null!=e?e:0)<(null!=t?t:0)?-1:1,Ue=_e((e=>{const n=Ie(),l=Ie(),[o,s,r]=qe((()=>y)),[a,i,d,u,c,v,g,,h,f,b,p]=Ne(e,Ie,(e=>k(e)?t:J(e)?$(e,S):S(e)),o,s),L=(t,n,l)=>{const o=c(t);Ce(l,((t,l)=>n(l,(n=>Ce(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},y={setIndexDefinition:(e,t,o,r,a,i=Ke)=>{const d=k(a)?void 0:([e],[t])=>a(e,t);return h(e,t,((t,o,a,u,c,h)=>{let f=0;const b=Qe(),p=Qe(),L=v(e);if(Ce(o,(([e,t],n)=>{const l=Qe(e),o=Qe(t);Ce(l,(e=>we(o,e)?we(l,e):0)),Ce(l,(e=>{ze(b,e),x(Re(L,e),(t=>{we(t,n),pe(t)&&(Me(L,e),f=1)}))})),Ce(o,(e=>{ze(b,e),be(L,e)||(Me(L,e,Qe()),f=1),ze(Re(L,e),n),k(r)||ze(p,e)}))})),t(),pe(c)||(h?Se(L,(e=>ze(p,e))):Se(a,(e=>x(Re(u,e),(e=>ze(p,e))))),Ce(p,(e=>{const t=(t,n)=>i(Re(c,t),Re(c,n),e),n=[...Re(L,e)];W(n,t)||(Me(L,e,Qe(_(n,t))),ze(b,e))}))),(f||h)&&!k(d)){const t=[...L];W(t,d)||(g(e,Ie(_(t,d))),f=1)}f&&s(n,[e]),Ce(b,(t=>s(l,[e,t])))}),We(o),x(r,We)),y},delIndexDefinition:e=>(f(e),y),getStore:a,getIndexIds:i,forEachIndex:e=>d(((t,n)=>e(t,(e=>L(t,e,n))))),forEachSlice:(e,t)=>L(e,t,v(e)),hasIndex:u,hasSlice:(e,t)=>be(v(e),t),getTableId:c,getSliceIds:e=>Te(v(e)),getSliceRowIds:(e,t)=>Le(Re(v(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>o(n,l,[e,t]),delListener:e=>(r(e),y),destroy:p,getListenerStats:()=>({})};return se(y)})),Xe=Ie([["avg",[(e,t)=>q(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:V(t,e)]],["min",[e=>E(...e),(e,t)=>E(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:E(t,e)]],["sum",[e=>q(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Ye=(e,t,n,l,o,s=!1)=>{if(pe(n))return;const[r,a,i,d]=o;return s||(s=k(e)),Ce(l,(([n,l])=>{s||(e=k(n)?null==a?void 0:a(e,l,t++):k(l)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,l,n,t),s||(s=k(e)))})),s?r(Le(n),fe(n)):e},Ze=_e((e=>{const n=Ie(),[l,o,s]=qe((()=>p)),[r,a,i,d,u,c,v,,g,h,f,b]=Ne(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),l,o),p={setMetricDefinition:(e,t,l,s,r,a,i)=>{var d;const u=H(l)?[l,r,a,i]:null!=(d=Re(Xe,l))?d:Re(Xe,"sum");return g(e,t,((t,l,s,r,a,i)=>{const d=c(e),g=fe(r);i||(i=k(d)),t();let h=Ye(d,g,r,l,u,i);O(h)||(h=void 0),h!=d&&(v(e,h),o(n,[e],h,d))}),We(s,1)),p},delMetricDefinition:e=>(h(e),p),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:d,getTableId:u,getMetric:c,addMetricIdsListener:f,addMetricListener:(e,t)=>l(t,n,[e]),delListener:e=>(s(e),p),destroy:b,getListenerStats:()=>({})};return se(p)}));var et=Object.defineProperty,tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,lt=Object.prototype.propertyIsEnumerable,ot=(e,t,n)=>t in e?et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,st=(e,t,n)=>new Promise(((l,o)=>{var s=e=>{try{a(n.next(e))}catch(e){o(e)}},r=e=>{try{a(n.throw(e))}catch(e){o(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(s,r);a((n=n.apply(e,t)).next())}));const rt=Ie(),at=Ie(),it=(e,t,n,l,o,s,r,a={},i=[])=>{let d,u,c,v=0;me(rt,i,(()=>0)),me(at,i,(()=>[]));const[g,h,f,b]=((e,t)=>!e||k(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!ve(e)||!ve(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!ve(e)||!ve(t)])(r,e),p=e=>st(void 0,null,(function*(){return 2!=v&&(v=1,yield y.schedule((()=>st(void 0,null,(function*(){yield e(),v=0}))))),y})),L=t=>{(g&&A(null==t?void 0:t[0])?1===(null==t?void 0:t[1][2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},y=((e,t)=>{for(var n in t||(t={}))nt.call(t,n)&&ot(e,n,t[n]);if(tt)for(var n of tt(t))lt.call(t,n)&&ot(e,n,t[n]);return e})({load:(n,l)=>st(void 0,null,(function*(){return yield p((()=>st(void 0,null,(function*(){try{L(yield t())}catch(t){null==s||s(t),e.setContent([n,l])}}))))})),startAutoLoad:(...e)=>st(void 0,[...e],(function*(e={},n={}){return yield y.stopAutoLoad().load(e,n),u=l(((e,n)=>st(void 0,null,(function*(){const l=null==n?void 0:n();yield p((()=>st(void 0,null,(function*(){var n;try{L(null!=(n=null!=l?l:null==e?void 0:e())?n:yield t())}catch(e){null==s||s(e)}}))))})))),y})),stopAutoLoad:()=>(u&&(o(u),u=void 0),y),isAutoLoading:()=>!k(u),save:e=>st(void 0,null,(function*(){return 1!=v&&(v=2,yield y.schedule((()=>st(void 0,null,(function*(){try{yield n(h,e)}catch(e){null==s||s(e)}v=0}))))),y})),startAutoSave:()=>st(void 0,null,(function*(){return yield y.stopAutoSave().save(),c=e.addDidFinishTransactionListener((()=>{const e=f();b(e)&&y.save((()=>e))})),y})),stopAutoSave:()=>(x(c,e.delListener),c=void 0,y),isAutoSaving:()=>!k(c),schedule:(...e)=>st(void 0,null,(function*(){return U(Re(at,i),...e),yield st(void 0,null,(function*(){if(!Re(rt,i)){for(Me(rt,i,1);!k(d=Y(Re(at,i)));)try{yield d()}catch(e){null==s||s(e)}Me(rt,i,0)}})),y})),getStore:()=>e,destroy:()=>y.stopAutoLoad().stopAutoSave(),getStats:()=>({})},a);return se(y)};var dt=Object.getOwnPropertySymbols,ut=Object.prototype.hasOwnProperty,ct=Object.prototype.propertyIsEnumerable;const vt=_e((e=>{const n=e.createStore,l=n(),o=n(),s=Ie(),{addListener:r,callListeners:a,delListener:c}=o,[v,h,f,I,T,,,R,,S,M,m,V,E]=Ne(e,(()=>!0),F,r,a),O=(e,t,...n)=>B(n,(n=>ze(me(me(s,t,Ie),e,Qe),n))),D=e=>{x(Re(s,e),(e=>{Se(e,((e,t)=>Ce(t,(t=>e.delListener(t))))),ye(e)})),B([o,l],(t=>t.delTable(e)))},A=(e,t,n)=>O(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),J={setQueryDefinition:(n,s,r)=>{R(n,s),D(n);const a=[],i=[[null,[s,null,null,[],Ie()]]],d=[],u=[],c=[];r({select:(e,n)=>{const l=H(e)?[j(a)+t,e]:[k(n)?e:n,t=>t(e,n)];return U(a,l),{as:e=>l[0]=e}},join:(e,t,n)=>{const l=k(n)||H(t)?null:t,o=k(l)?t:n,s=[e,[e,l,H(o)?o:e=>e(o),[],Ie()]];return U(i,s),{as:e=>s[0]=e}},where:(e,t,n)=>U(d,H(e)?e:k(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,o)=>{var s;const r=[e,[e,H(t)?[t,n,l,o]:null!=(s=Re(Xe,t))?s:[(e,t)=>t]]];return U(u,r),{as:e=>r[0]=e}},having:(e,t)=>U(c,H(e)?e:n=>n(e)===t)});const v=Ie(a);if(pe(v))return J;const g=Ie(i);Se(g,((e,[,t])=>x(Re(g,t),(({3:t})=>k(e)?0:U(t,e)))));const h=Ie(u);let f=l;if(pe(h)&&G(c))f=o;else{A(n,f,o);const e=Ie();Se(h,((t,[n,l])=>ze(me(e,n,Qe),[t,l])));const t=Qe();Se(v,(n=>be(e,n)?0:ze(t,n)));const l=Ie(),s=(t,l,s,r)=>x(t,(([a,i,d,u])=>{Se(l,((t,[n])=>{const l=me(a,t,Ie),o=Re(l,s),i=r?void 0:n;if(o!==i){const n=Qe([[o,i]]),r=fe(l);Me(l,s,i),Ce(Re(e,t),(([e,t])=>{const o=Ye(u[e],r,l,n,t);u[e]=k(Je(o))?null:o}))}})),pe(i)||!z(c,(e=>e((e=>u[e]))))?o.delRow(n,d):k(d)?t[2]=o.addRow(n,u):o.setRow(n,d,u)}));O(f,n,f.addRowListener(n,null,((o,r,a,i)=>{const d=[],u=[],c=Ie(),v=f.hasRow(n,a);let g=!v;Ce(t,(e=>{const[t,l,o]=i(n,a,e);U(d,l),U(u,o),g||(g=t)})),Se(e,(e=>{const[t,,l]=i(n,a,e);(g||t)&&Me(c,e,[l])})),g&&s(He(l,d,void 0,(([,e])=>(we(e,a),pe(e)))),c,a,1),v&&s(He(l,u,(()=>{const e={};return Ce(t,(t=>e[t]=f.getCell(n,a,t))),[Ie(),Qe(),void 0,e]}),(([,e])=>{ze(e,a)})),c,a)})))}A(n,e,f);const b=(t,l,o,r)=>{const a=t=>e.getCell(l,o,t);B(r,(l=>{var o;const[s,,r,i,d]=Re(g,l),u=null==r?void 0:r(a,t),[c,v]=null!=(o=Re(d,t))?o:[];u!=c&&(k(v)||E(n,v),Me(d,t,k(u)?null:[u,...V(n,1,e.addRowListener(s,u,(()=>b(t,s,u,i))))]))})),(t=>{const l=(n,l)=>{var o,r,a;return e.getCell(...k(l)?[s,t,n]:n===s?[s,t,l]:[null==(o=Re(g,n))?void 0:o[0],null==(a=Re(null==(r=Re(g,n))?void 0:r[4],t))?void 0:a[0],l])};f.transaction((()=>z(d,(e=>e(l)))?Se(v,((e,o)=>je(f,n,t,e,o(l,t)))):f.delRow(n,t)))})(t)},{3:p}=Re(g,null);return f.transaction((()=>V(n,1,e.addRowListener(s,null,((t,l,o)=>{e.hasRow(s,o)?b(o,s,o,p):(f.delRow(n,o),Ce(g,(({4:e})=>x(Re(e,o),(([,t])=>{E(n,t),Me(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),S(e),J),getStore:v,getQueryIds:h,forEachQuery:f,hasQuery:I,getTableId:T,addQueryIdsListener:e=>M((()=>e(J))),delListener:e=>(c(e),J),destroy:m,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)ut.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&dt)for(var l of dt(e))t.indexOf(l)<0&&ct.call(e,l)&&(n[l]=e[l]);return n})(o.getListenerStats(),["tables","tableIds","transaction"])};return ue({[g]:[1,1],[g+w]:[0,1],[p]:[0,1],[L]:[0,1],[y]:[0,5],[b]:[1,2],[w]:[0,2],[C]:[1,3]},(([e,t],n)=>{B(e?["get","has","forEach"]:["get"],(e=>J[e+d+n]=(...t)=>o[e+n](...t))),J[u+d+n+i]=(...e)=>o[u+n+i](...P(e,0,t),((n,...l)=>e[t](J,...l)),!0)})),se(J)})),gt=_e((e=>{const n=Ie(),l=Ie(),o=Ie(),s=Ie(),[r,a,i]=qe((()=>I)),[d,u,c,v,g,h,,,f,b,p,L]=Ne(e,(()=>[Ie(),Ie(),Ie(),Ie()]),(e=>k(e)?void 0:e+t),r,a),y=(e,t,n)=>x(h(e),(([l,,o])=>{if(!be(o,t)){const s=Qe();if(g(e)!=w(e))ze(s,t);else{let e=t;for(;!k(e)&&!be(s,e);)ze(s,e),e=Re(l,e)}if(n)return s;Me(o,t,s)}return Re(o,t)})),C=(e,t)=>x(h(e),(([,,e])=>Me(e,t))),w=e=>Re(n,e),I={setRelationshipDefinition:(e,t,r,i)=>(Me(n,e,r),f(e,t,((t,n)=>{const r=Qe(),i=Qe(),d=Qe(),[u,c]=h(e);Ce(n,(([t,n],l)=>{k(t)||(ze(i,t),x(Re(c,t),(e=>{we(e,l),pe(e)&&Me(c,t)}))),k(n)||(ze(i,n),be(c,n)||Me(c,n,Qe()),ze(Re(c,n),l)),ze(r,l),Me(u,l,n),Se(Re(s,e),(t=>{be(y(e,t),l)&&ze(d,t)}))})),t(),Ce(r,(t=>a(l,[e,t]))),Ce(i,(t=>a(o,[e,t]))),Ce(d,(t=>{C(e,t),a(s,[e,t])}))}),We(i)),I),delRelationshipDefinition:e=>(Me(n,e),b(e),I),getStore:d,getRelationshipIds:u,forEachRelationship:t=>c((n=>t(n,(t=>e.forEachRow(g(n),t))))),hasRelationship:v,getLocalTableId:g,getRemoteTableId:w,getRemoteRowId:(e,t)=>{var n;return Re(null==(n=h(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return Le(Re(null==(n=h(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>k(h(e))?[t]:Le(y(e,t,!0)),addRelationshipIdsListener:p,addRemoteRowIdListener:(e,t,n)=>r(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>r(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(y(e,t),r(n,s,[e,t])),delListener:e=>{var t;return C(...null!=(t=i(e))?t:[]),I},destroy:L,getListenerStats:()=>({})};return se(I)})),ht=new globalThis.TextEncoder,ft=e=>{let t=2166136261;return B(ht.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},bt=([e,t,n])=>[e,t,n],pt=([e,t])=>[e,t],Lt=e=>e[2],yt=(e,t)=>ft(e+":"+t),Ct=(e,t,n)=>{e[2]=t>>>0,n>e[0]&&(e[0]=n)},wt=e=>[e,re()],It=(e="")=>[e,Ie(),0],Tt=([e,t,n],l=bt)=>[e,Ee(t,l),n],Rt=(t,n)=>J(t)&&3==j(t)&&A(t[0])&&n(t[1])&&e(t[2])==o&&O(t[2]),St=e=>[e,e],Mt=()=>[Ie(),Ie()],mt=e=>[...e],Vt=([e,t])=>e===t,Et=e=>JSON.stringify(e,((e,t)=>t instanceof Map?Z.fromEntries([...t]):t)),Ot=JSON.parse,kt=(e,t,n)=>Me(e,t,Re(e,t)==-n?void 0:n),xt=()=>{let e,t,n=!1,l=!1,s=0,d=[];const v=Ie(),y=Ie(),M=Ie(),m=Ie(),V=Ie(),E=Ie(),O=Ie(),A=Ie(),J=Ie(),j=Ie(),F=Ie(),z=Ie(),W=Ie(),q=Ie(),G=Qe(),K=Ie(),X=Ie(),Y=Ie(),Z=Ie(),ee=Mt(),te=Mt(),ne=Mt(),le=Mt(),oe=Mt(),re=Mt(),de=Mt(),ce=Mt(),ge=Mt(),Le=Mt(),He=Mt(),Pe=Mt(),Ne=Mt(),We=Mt(),_e=Mt(),Be=Mt(),Ge=Mt(),Ue=Mt(),Xe=Mt(),Ye=Mt(),Ze=Mt(),et=Mt(),tt=Ie(),nt=Mt(),[lt,ot,st,rt]=qe((()=>Hn)),at=e=>{if(!he(e,((e,t)=>Q([r,a],t))))return!1;const t=e[r];return!(!D(t)&&t!=o||(Je(e[a])!=t&&ie(e,a),0))},it=(t,n)=>(!e||be(F,n)||$t(n))&&he(t,((e,t)=>dt(n,t,e)),(()=>$t(n))),dt=(e,t,n,l)=>he(l?n:gt(n,e,t),((l,o)=>x(ut(e,t,o,l),(e=>(n[o]=e,!0)),(()=>!1))),(()=>$t(e,t))),ut=(t,n,l,o)=>e?x(Re(Re(F,t),l),(e=>Je(o)!=e[r]?$t(t,n,l,o,e[a]):o),(()=>$t(t,n,l,o))):k(Je(o))?$t(t,n,l,o):o,ct=(e,t)=>he(t?e:ht(e),((t,n)=>x(vt(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>qt())),vt=(e,n)=>t?x(Re(W,e),(t=>Je(n)!=t[r]?qt(e,n,t[a]):n),(()=>qt(e,n))):k(Je(n))?qt(e,n):n,gt=(e,t,n)=>(x(Re(z,t),(([l,o])=>{Ce(l,((t,n)=>{ae(e,n)||(e[n]=t)})),Ce(o,(l=>{ae(e,l)||$t(t,n,l)}))})),e),ht=e=>(t&&(Ce(q,((t,n)=>{ae(e,n)||(e[n]=t)})),Ce(G,(t=>{ae(e,t)||qt(t)}))),e),ft=e=>Ve(F,e,((e,t,n)=>{const l=Ie(),o=Qe();Ve(me(F,t,Ie),n,((e,t,n)=>{Me(e,t,n),x(n[a],(e=>Me(l,t,e)),(()=>ze(o,t)))})),Me(z,t,[l,o])}),((e,t)=>{Me(F,t),Me(z,t)})),bt=e=>Ve(W,e,((e,t,n)=>{Me(W,t,n),x(n[a],(e=>Me(q,t,e)),(()=>ze(G,t)))}),((e,t)=>{Me(W,t),Me(q,t),we(G,t)})),pt=e=>ve(e)?Mn():wn(e),Lt=e=>Ve(Y,e,((e,t,n)=>yt(t,n)),((e,t)=>Jt(t))),yt=(e,t)=>Ve(me(Y,e,(()=>(Qt(e,1),Me(K,e,$e()),Me(X,e,Ie()),Ie()))),t,((t,n,l)=>Ct(e,t,n,l)),((t,n)=>Pt(e,t,n))),Ct=(e,t,n,l,o)=>Ve(me(t,n,(()=>(zt(e,n,1),Ie()))),l,((t,l,o)=>wt(e,n,t,l,o)),((l,s)=>jt(e,t,n,l,s,o))),wt=(e,t,n,l,o)=>{be(n,l)||Nt(e,t,l,1);const s=Re(n,l);o!==s&&(Wt(e,t,l,s,o),Me(n,l,o))},It=(e,t,n,l,o)=>x(Re(t,n),(t=>wt(e,n,t,l,o)),(()=>Ct(e,t,n,gt({[l]:o},e,n)))),Tt=e=>ve(e)?En():In(e),Rt=e=>Ve(Z,e,((e,t,n)=>Dt(t,n)),((e,t)=>Ft(t))),Dt=(e,t)=>{be(Z,e)||_t(e,1);const n=Re(Z,e);t!==n&&(Bt(e,n,t),Me(Z,e,t))},At=(e,t)=>{const[n]=Re(K,e),l=n(t);return be(Re(Y,e),l)?At(e,t):l},Ht=e=>{var t;return null!=(t=Re(Y,e))?t:yt(e,{})},Jt=e=>yt(e,{}),Pt=(e,t,n)=>{const[,l]=Re(K,e);l(n),Ct(e,t,n,{},!0)},jt=(e,t,n,l,o,s)=>{var r;const a=Re(null==(r=Re(z,e))?void 0:r[0],o);if(!k(a)&&!s)return wt(e,n,l,o,a);const i=t=>{Wt(e,n,t,Re(l,t)),Nt(e,n,t,-1),Me(l,t)};k(a)?i(o):Se(l,i),pe(l)&&(zt(e,n,-1),pe(Me(t,n))&&(Qt(e,-1),Me(Y,e),Me(K,e),Me(X,e)))},Ft=e=>{const t=Re(q,e);if(!k(t))return Dt(e,t);Bt(e,Re(Z,e)),_t(e,-1),Me(Z,e)},Qt=(e,t)=>kt(v,e,t),zt=(e,t,n)=>kt(me(m,e,Ie),t,n)&&Me(M,e,me(M,e,(()=>0))+n),Nt=(e,t,n,l)=>{var o;const s=Re(X,e),r=null!=(o=Re(s,n))?o:0;(0==r&&1==l||1==r&&-1==l)&&kt(me(y,e,Ie),n,l),Me(s,n,r!=-l?r+l:null),kt(me(me(V,e,Ie),t,Ie),n,l)},Wt=(e,t,n,l,o)=>me(me(me(E,e,Ie),t,Ie),n,(()=>[l,0]))[1]=o,_t=(e,t)=>kt(O,e,t),Bt=(e,t,n)=>me(A,e,(()=>[t,0]))[1]=n,$t=(e,t,n,l,o)=>(U(me(me(me(J,e,Ie),t,Ie),n,(()=>[])),l),o),qt=(e,t,n)=>(U(me(j,e,(()=>[])),t),n),Gt=(e,t,n)=>x(Re(Re(Re(E,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...St(un(e,t,n))])),Kt=e=>x(Re(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...St(gn(e))])),Ut=e=>pe(J)||pe(Be[e])?0:Ce(e?Ae(J):J,((t,n)=>Ce(t,((t,l)=>Ce(t,((t,o)=>ot(Be[e],[n,l,o],t))))))),Xt=e=>pe(j)||pe(Ge[e])?0:Ce(e?xe(j):j,((t,n)=>ot(Ge[e],[n],t))),Yt=(e,t,n,l)=>{if(!pe(e))return ot(t,l,(()=>Ee(e))),Se(e,((e,t)=>ot(n,[...null!=l?l:[],e],1==t))),1},Zt=e=>{const t=hn();t!=n&&ot(ee[e],void 0,t);const l=pe(Le[e]),o=pe(Ne[e])&&pe(We[e])&&pe(ge[e])&&pe(He[e])&&pe(re[e])&&pe(de[e])&&pe(ce[e])&&l&&pe(ne[e])&&pe(le[e]),s=pe(_e[e])&&pe(Pe[e])&&pe(oe[e])&&pe(te[e]);if(!o||!s){const t=e?[xe(v),De(y),xe(M),De(m),Ae(V),Ae(E)]:[v,y,M,m,V,E];if(!o){Yt(t[0],ne[e],le[e]),Ce(t[1],((t,n)=>Yt(t,re[e],de[e],[n]))),Ce(t[2],((t,n)=>{0!=t&&ot(ce[e],[n],sn(n))}));const n=Qe();Ce(t[3],((t,o)=>{Yt(t,ge[e],He[e],[o])&&!l&&(ot(Le[e],[o,null]),ze(n,o))})),l||Ce(t[5],((t,l)=>{if(!be(n,l)){const n=Qe();Ce(t,(e=>Ce(e,(([t,l],o)=>l!==t?ze(n,o):we(e,o))))),Ce(n,(t=>ot(Le[e],[l,t])))}})),Ce(t[4],((t,n)=>Ce(t,((t,l)=>Yt(t,Ne[e],We[e],[n,l])))))}if(!s){let n;Ce(t[5],((t,l)=>{let o;Ce(t,((t,s)=>{let r;Ce(t,(([t,a],i)=>{a!==t&&(ot(_e[e],[l,s,i],a,t,Gt),n=o=r=1)})),r&&ot(Pe[e],[l,s],Gt)})),o&&ot(oe[e],[l],Gt)})),n&&ot(te[e],void 0,Gt)}}},en=e=>{const t=yn();t!=l&&ot(Ue[e],void 0,t);const n=pe(Ye[e])&&pe(Ze[e]),o=pe(et[e])&&pe(Xe[e]);if(!n||!o){const t=e?[xe(O),xe(A)]:[O,A];if(n||Yt(t[0],Ye[e],Ze[e]),!o){let n;Ce(t[1],(([t,l],o)=>{l!==t&&(ot(et[e],[o],l,t,Kt),n=1)})),n&&ot(Xe[e],void 0,Kt)}}},tn=(e,...t)=>(xn((()=>e(...$(t,S)))),Hn),nn=()=>ke(Y),ln=()=>Te(Y),on=e=>Te(Re(X,S(e))),sn=e=>fe(Re(Y,S(e))),rn=e=>Te(Re(Y,S(e))),an=(e,t,n,l=0,o)=>{return $(P(_((s=Re(Y,S(e)),r=(e,n)=>[k(t)?n:Re(e,S(t)),n],$([...null!=(a=null==s?void 0:s.entries())?a:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ke(e,t)*(n?-1:1))),l,k(o)?o:l+o),(([,e])=>e));var s,r,a},dn=(e,t)=>Te(Re(Re(Y,S(e)),S(t))),un=(e,t,n)=>Re(Re(Re(Y,S(e)),S(t)),S(n)),cn=()=>Ee(Z),vn=()=>Te(Z),gn=e=>Re(Z,S(e)),hn=()=>!pe(Y),fn=e=>be(Y,S(e)),bn=(e,t)=>be(Re(X,S(e)),S(t)),pn=(e,t)=>be(Re(Y,S(e)),S(t)),Ln=(e,t,n)=>be(Re(Re(Y,S(e)),S(t)),S(n)),yn=()=>!pe(Z),Cn=e=>be(Z,S(e)),wn=e=>tn((()=>(e=>he(e,it,$t))(e)?Lt(e):0)),In=e=>tn((()=>ct(e)?Rt(e):0)),Tn=e=>{try{pt(Ot(e))}catch(e){}return Hn},Rn=t=>tn((()=>{if((e=he(t,(e=>he(e,at))))&&(ft(t),!pe(Y))){const e=nn();Mn(),wn(e)}})),Sn=e=>tn((()=>{if(t=(e=>he(e,at))(e)){const n=cn();kn(),En(),t=!0,bt(e),In(n)}})),Mn=()=>tn((()=>Lt({}))),mn=e=>tn((e=>be(Y,e)?Jt(e):0),e),Vn=(e,t)=>tn(((e,t)=>x(Re(Y,e),(n=>be(n,t)?Pt(e,n,t):0))),e,t),En=()=>tn((()=>Rt({}))),On=()=>tn((()=>{ft({}),e=!1})),kn=()=>tn((()=>{bt({}),t=!1})),xn=(e,t)=>{if(-1!=s){Dn();const n=e();return An(t),n}},Dn=()=>(-1!=s&&s++,1==s&&ot(tt,void 0),Hn),An=e=>{var t,o;return s>0&&(s--,0==s&&(s=1,Ut(1),pe(E)||Zt(1),Xt(1),pe(A)||en(1),(null==e?void 0:e(Hn))&&(Ce(E,((e,t)=>Ce(e,((e,n)=>Ce(e,(([e],l)=>je(Hn,t,n,l,e))))))),ye(E),Ce(A,(([e],t)=>Fe(Hn,t,e))),ye(A)),ot(nt[0],void 0),s=-1,Ut(0),pe(E)||Zt(0),Xt(0),pe(A)||en(0),null==(t=d[0])||t.call(d,Hn),ot(nt[1],void 0),null==(o=d[1])||o.call(d,Hn),s=0,n=hn(),l=yn(),B([v,y,M,m,V,E,J,O,A,j],ye))),Hn},Hn={getContent:()=>[nn(),cn()],getTables:nn,getTableIds:ln,getTable:e=>Oe(Re(Y,S(e))),getTableCellIds:on,getRowCount:sn,getRowIds:rn,getSortedRowIds:an,getRow:(e,t)=>Ee(Re(Re(Y,S(e)),S(t))),getCellIds:dn,getCell:un,getValues:cn,getValueIds:vn,getValue:gn,hasTables:hn,hasTable:fn,hasTableCell:bn,hasRow:pn,hasCell:Ln,hasValues:yn,hasValue:Cn,getTablesJson:()=>Et(Y),getValuesJson:()=>Et(Z),getJson:()=>Et([Y,Z]),getTablesSchemaJson:()=>Et(F),getValuesSchemaJson:()=>Et(W),getSchemaJson:()=>Et([F,W]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>tn((()=>{(ve(e)?Mn:wn)(e),(ve(t)?En:In)(t)})),setTables:wn,setTable:(e,t)=>tn((e=>it(t,e)?yt(e,t):0),e),setRow:(e,t,n)=>tn(((e,t)=>dt(e,t,n)?Ct(e,Ht(e),t,n):0),e,t),addRow:(e,t,n=!0)=>xn((()=>{let l;return dt(e,l,t)&&(e=S(e),Ct(e,Ht(e),l=At(e,n?1:0),t)),l})),setPartialRow:(e,t,n)=>tn(((e,t)=>{if(dt(e,t,n,1)){const l=Ht(e);ue(n,((n,o)=>It(e,l,t,o,n)))}}),e,t),setCell:(e,t,n,l)=>tn(((e,t,n)=>x(ut(e,t,n,H(l)?l(un(e,t,n)):l),(l=>It(e,Ht(e),t,n,l)))),e,t,n),setValues:In,setPartialValues:e=>tn((()=>ct(e,1)?ue(e,((e,t)=>Dt(t,e))):0)),setValue:(e,t)=>tn((e=>x(vt(e,H(t)?t(gn(e)):t),(t=>Dt(e,t)))),e),applyChanges:e=>tn((()=>{ue(e[0],((e,t)=>k(e)?mn(t):ue(e,((e,n)=>k(e)?Vn(t,n):ue(e,((e,l)=>je(Hn,t,n,l,e))))))),ue(e[1],((e,t)=>Fe(Hn,t,e)))})),setTablesJson:Tn,setValuesJson:e=>{try{Tt(Ot(e))}catch(e){}return Hn},setJson:e=>tn((()=>{try{const[t,n]=Ot(e);pt(t),Tt(n)}catch(t){Tn(e)}})),setTablesSchema:Rn,setValuesSchema:Sn,setSchema:(e,t)=>tn((()=>{Rn(e),Sn(t)})),delTables:Mn,delTable:mn,delRow:Vn,delCell:(e,t,n,l)=>tn(((e,t,n)=>x(Re(Y,e),(o=>x(Re(o,t),(s=>be(s,n)?jt(e,o,t,s,n,l):0))))),e,t,n),delValues:En,delValue:e=>tn((e=>be(Z,e)?Ft(e):0),e),delTablesSchema:On,delValuesSchema:kn,delSchema:()=>tn((()=>{On(),kn()})),transaction:xn,startTransaction:Dn,getTransactionChanges:()=>[Ee(E,((e,t)=>-1===Re(v,t)?void 0:Ee(e,((e,n)=>-1===Re(Re(m,t),n)?void 0:Ee(e,(([,e])=>e),(e=>Vt(e)))),pe,ve)),pe,ve),Ee(A,(([,e])=>e),(e=>Vt(e))),1],getTransactionLog:()=>[!pe(E),!pe(A),ke(E,mt,Vt),ke(J),Ee(A,mt,Vt),Ee(j),Ee(v),Oe(m),ke(V),Ee(O)],finishTransaction:An,forEachTable:e=>Ce(Y,((t,n)=>e(n,(e=>Ce(t,((t,n)=>e(n,(e=>Se(t,e))))))))),forEachTableCell:(e,t)=>Se(Re(X,S(e)),t),forEachRow:(e,t)=>Ce(Re(Y,S(e)),((e,n)=>t(n,(t=>Se(e,t))))),forEachCell:(e,t,n)=>Se(Re(Re(Y,S(e)),S(t)),n),forEachValue:e=>Se(Z,e),addSortedRowIdsListener:(e,t,n,l,o,s,r)=>{let a=an(e,t,n,l,o);return lt((()=>{const r=an(e,t,n,l,o);N(r,a)||(a=r,s(Hn,e,t,n,l,o,a))}),Le[r?1:0],[e,t],[ln])},addStartTransactionListener:e=>lt(e,tt),addWillFinishTransactionListener:e=>lt(e,nt[0]),addDidFinishTransactionListener:e=>lt(e,nt[1]),callListener:e=>(rt(e),Hn),delListener:e=>(st(e),Hn),getListenerStats:()=>({}),createStore:xt,addListener:lt,callListeners:ot,setInternalListeners:(e,t)=>d=[e,t]};return ue({[c+h]:[0,ee,[],()=>[hn()]],[h]:[0,te],[f]:[0,ne],[c+g]:[1,le,[ln],e=>[fn(...e)]],[g]:[1,oe,[ln]],[g+w]:[1,re,[ln]],[c+g+C]:[2,de,[ln,on],e=>[bn(...e)]],[p]:[1,ce,[ln]],[L]:[1,ge,[ln]],[c+b]:[2,He,[ln,rn],e=>[pn(...e)]],[b]:[2,Pe,[ln,rn]],[w]:[2,Ne,[ln,rn]],[c+C]:[3,We,[ln,rn,dn],e=>[Ln(...e)]],[C]:[3,_e,[ln,rn,dn],e=>St(un(...e))],InvalidCell:[3,Be],[c+T]:[0,Ue,[],()=>[yn()]],[T]:[0,Xe],[R]:[0,Ye],[c+I]:[1,Ze,[vn],e=>[Cn(...e)]],[I]:[1,et,[vn],e=>St(gn(e[0]))],InvalidValue:[1,Ge]},(([e,t,n,l],o)=>{Hn[u+o+i]=(...o)=>lt(o[e],t[o[e+1]?1:0],e>0?P(o,0,e):void 0,n,l)})),se(Hn)};var Dt=Math.pow;const At=Dt(2,36),Ht=Dt(2,30),Jt=Dt(2,24),Pt=Dt(2,18),jt=Dt(2,12),Ft=Dt(2,6),Qt=e=>String.fromCharCode(48+(63&e)),zt=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,Nt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Wt=(e="")=>[e,[It(e),It(e)],0],_t=e=>{let n,l,o=1,s=Wt();const[r,a]=(e=>{let t=0,n=-1;const l=ft(e),o=e=>{const l=t,[o,s]=k(e)||""==e?[0,0]:[zt(r=e,0)*At+zt(r,1)*Ht+zt(r,2)*Jt+zt(r,3)*Pt+zt(r,4)*jt+zt(r,5)*Ft+zt(r,6),zt(r,7)*Pt+zt(r,8)*jt+zt(r,9)*Ft+zt(r,10),zt(r,11)*Jt+zt(r,12)*Pt+zt(r,13)*jt+zt(r,14)*Ft+zt(r,15)];var r;t=V(l,o,Date.now()),n=t==l?t==o?V(n,s):n:t==o?s:-1};return[()=>{return o(),s=++n,r=l,Qt((e=t)/At)+Qt(e/Ht)+Qt(e/Jt)+Qt(e/Pt)+Qt(e/jt)+Qt(e/Ft)+Qt(e)+Qt(s/Pt)+Qt(s/jt)+Qt(s/Ft)+Qt(s)+Qt(r/Jt)+Qt(r/Pt)+Qt(r/jt)+Qt(r/Ft)+Qt(r);var e,s,r},o]})(e),i=xt(),d=e=>{const t=o;return o=0,e(),o=t,f},u=(e,t=0)=>{const n={},l={},[o,[[r,a,i],d],u]=e,[,[v,g]]=s,[h,f,b]=v;if(r){let e=t?i:b^(r>h?(h?ft(h):0)^ft(r):0);de(a,(([l,o,s],r)=>{const a=me(f,r,It),[i,d,u]=a;let v=t?s:u^(l>i?(i?ft(i):0)^ft(l):0);de(o,((e,l)=>{const[o,s]=c(e,me(d,l,It),ge(ge(n,r,re),l,re),t);v^=t?0:(o?yt(l,o):0)^yt(l,s)})),Ct(a,v,l),e^=t?0:(u?yt(r,u):0)^yt(r,a[2])})),Ct(v,e,r)}return c(d,g,l,t),Ct(s,t?u:v[2]^g[2],o),[n,l,1]},c=(e,n,l,o)=>{const[s,r,a]=e,[i,d,u]=n;if(s){let e=o?a:u^(s>i?(i?ft(i):0)^ft(s):0);de(r,(([n,s,r],a)=>{const i=me(d,a,(()=>[t,void 0,0])),[u,,c]=i;n>u&&(Ct(i,o?r:ft(Et(null!=s?s:null)+":"+n),n),i[1]=s,l[a]=s,e^=o?0:yt(a,c)^yt(a,i[2]))})),Ct(n,e,s)}return[u,n[2]]},v=()=>[s[0],[Tt(s[1][0],(e=>Tt(e,(e=>Tt(e))))),Tt(s[1][1])],s[2]],g=()=>{if(k(l)){const[,,e,,l]=i.getTransactionLog(),o=ve(e)&&ve(l)?t:null!=n?n:n=r(),s=[o,[wt(ve(e)?t:o),wt(ve(l)?t:o),1]],[[,a],[,d]]=s[1];return ue(e,((e,t)=>{const[,n]=a[t]=wt(o);ue(e,((e,t)=>{const[,l]=n[t]=wt(o);ue(e,(([,e],t)=>l[t]=[o,e]))}))})),ue(l,(([,e],t)=>d[t]=[o,e])),s}return l},h=e=>d((()=>{a(e[0]),i.applyChanges(u(e))})),f={getId:()=>e,getMergeableContent:v,getMergeableContentHashes:()=>[s[0],[s[1][0][2],s[1][1][2]]],getMergeableTableHashes:()=>Ee(s[1][0][1],Lt),getMergeableTableIdsDiff:e=>{const t=[];return Se(s[1][0][1],((n,[,,l])=>{l!==(null==e?void 0:e[n])&&U(t,n)})),t},getMergeableRowHashes:e=>re($(e,(e=>{var t;return[e,Ee(null==(t=Re(s[1][0][1],e))?void 0:t[1],Lt)]}))),getMergeableRowIdsDiff:e=>ce(e,((e,t)=>{var n;const l=[];return Se(null==(n=Re(s[1][0][1],t))?void 0:n[1],((t,[,,n])=>{n!==(null==e?void 0:e[t])&&U(l,t)})),l})),getMergeableCellHashes:e=>ce(e,((e,t)=>re($(e,(e=>{var n,l;return[e,Ee(null==(l=Re(null==(n=Re(s[1][0][1],t))?void 0:n[1],e))?void 0:l[1],Lt)]}))))),getMergeableTablesChanges:e=>{const[,[[t,n]]]=s,l={};return de(e,((e,t)=>x(Re(n,t),(([n,o])=>{const s={};de(e,((e,t)=>x(Re(o,t),(([n,l])=>{const o=Ee(l,pt,(([,,t],n)=>t==(null==e?void 0:e[n])));ve(o)||(s[t]=[n,o])})))),ve(s)||(l[t]=[n,s])})))),[t,l]},getMergeableValuesHashes:()=>Ee(s[1][1][1],Lt),getMergeableValuesChanges:e=>[s[1][1][0],Ee(s[1][1][1],pt,(([,,t],n)=>t==(null==e?void 0:e[n])))],setMergeableContent:e=>d((()=>(e=>Rt(e,(e=>J(e)&&2==j(e)&&Rt(e[0],(e=>he(e,(e=>Rt(e,(e=>he(e,(e=>Rt(e,(e=>he(e,(e=>Rt(e,Pe)),void 0,1)))),void 0,1)))),void 0,1)))&&Rt(e[1],(e=>he(e,(e=>Rt(e,Pe)),void 0,1))))))(e)?i.transaction((()=>{i.delTables().delValues(),s=Wt(),a(e[0]),i.applyChanges(u(e,1))})):0)),getTransactionMergeableChanges:g,applyMergeableChanges:h,merge:e=>{const t=v(),n=e.getMergeableContent();return e.applyMergeableChanges(t),h(n)}};return i.setInternalListeners((()=>{o&&(l=g(),u(l))}),(()=>n=l=void 0)),ue(i,((e,t)=>f[t]=M(t,"set")||M(t,"del")||M(t,"apply")||m(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),f):M(t,"add")&&m(t,"Listener")?(...n)=>{var l;const o=null!=(l=Nt[P(t,3,-8)])?l:0,s=n[o];return n[o]=(e,...t)=>s(f,...t),e(...n)}:e)),se(f)};export{Ge as createCheckpoints,it as createCustomPersister,Ue as createIndexes,_t as createMergeableStore,Ze as createMetrics,vt as createQueries,gt as createRelationships,xt as createStore,Ke as defaultSorter};
|
|
1
|
+
const e=e=>typeof e,t="",n=e(t),l=e(!0),o=e(0),s=e(e),r="type",a="default",i="Listener",d="Result",u="add",c="Has",g="Ids",v="Table",h=v+"s",f=v+g,b="Row",y=b+"Count",p=b+g,L="Sorted"+b+g,C="Cell",w=C+g,T="Value",I=T+"s",S=T+g,R=e=>t+e,M=(e,t)=>e.startsWith(t),m=(e,t)=>e.endsWith(t),V=Promise,E=Math.max,A=Math.min,H=isFinite,O=e=>null==e,x=(e,t,n)=>O(e)?null==n?void 0:n():t(e),D=e=>e==n||e==l,k=t=>e(t)==n,P=t=>e(t)==s,J=e=>Array.isArray(e),j=(e,t,n)=>e.slice(t,n),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),W=(e,t)=>F(e)===F(t)&&N(e,((e,n)=>t[n]===e)),$=(e,t)=>N(e,((n,l)=>0==l||t(e[l-1],n)<=0)),_=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),q=(e,t)=>e.map(t),G=e=>U(e,((e,t)=>e+t),0),K=e=>0==F(e),U=(e,t,n)=>e.reduce(t,n),X=(e,...t)=>e.push(...t),Y=e=>e.pop(),Z=e=>e.shift(),ee=Object,te=e=>ee.getPrototypeOf(e),ne=ee.entries,le=ee.isFrozen,oe=e=>!O(e)&&x(te(e),(e=>e==ee.prototype||O(te(e))),(()=>!0)),se=ee.keys,re=ee.freeze,ae=(e=[])=>ee.fromEntries(e),ie=(e,t)=>t in e,de=(e,t)=>(delete e[t],e),ue=(e,t)=>B(ne(e),(([e,n])=>t(n,e))),ce=(e,t)=>q(ne(e),(([e,n])=>t(n,e))),ge=(e,t)=>ae(ce(e,((e,n)=>[n,t(e,n)]))),ve=e=>oe(e)&&0==(e=>F(se(e)))(e),he=(e,t,n)=>(ie(e,t)||(e[t]=n()),e[t]),fe=(e,t,n,l=0)=>O(e)||!oe(e)||!l&&ve(e)||le(e)?(null==n||n(),!1):(ce(e,((n,l)=>{t(n,l)||de(e,l)})),!!l||!ve(e)),be=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},ye=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},pe=e=>O(e)||0==be(e),Le=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},Ce=e=>e.clear(),we=(e,t)=>null==e?void 0:e.forEach(t),Te=(e,t)=>null==e?void 0:e.delete(t),Ie=e=>new Map(e),Se=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},Re=(e,t)=>null==e?void 0:e.get(t),Me=(e,t)=>we(e,((e,n)=>t(n,e))),me=(e,t,n)=>O(n)?(Te(e,t),e):null==e?void 0:e.set(t,n),Ve=(e,t,n,l)=>(ye(e,t)?null==l||l(Re(e,t)):me(e,t,n()),Re(e,t)),Ee=(e,t,n,l=me)=>(ce(t,((t,l)=>n(e,l,t))),Me(e,(n=>ie(t,n)?0:l(e,n))),e),Ae=(e,t,n,l)=>{const o={};return we(e,((e,s)=>{if(!(null==n?void 0:n(e,s))){const n=t?t(e,s):e;!(null==l?void 0:l(n))&&(o[s]=n)}})),o},He=(e,t,n)=>Ae(e,(e=>Ae(e,t,n)),pe,ve),Oe=(e,t,n)=>Ae(e,(e=>He(e,t,n)),pe,ve),xe=(e,t)=>{const n=Ie();return we(e,((e,l)=>{var o;return n.set(l,null!=(o=null==t?void 0:t(e))?o:e)})),n},De=e=>xe(e,xe),ke=e=>xe(e,De),Pe=(e,t,n,l,o=0)=>x((n?Ve:Re)(e,t[o],o>F(t)-2?n:Ie),(s=>{if(o>F(t)-2)return(null==l?void 0:l(s))&&me(e,t[o]),s;const r=Pe(s,t,n,l,o+1);return pe(s)&&me(e,t[o]),r})),Je=t=>{const n=e(t);return D(n)||n==o&&H(t)?n:void 0},je=e=>null===e||!O(Je(e)),Fe=(e,t,n,l,o)=>O(o)?e.delCell(t,n,l,!0):e.setCell(t,n,l,o),Qe=(e,t,n)=>O(n)?e.delValue(t):e.setValue(t,n),ze=e=>new Set(J(e)||O(e)?e:[e]),Ne=(e,t)=>null==e?void 0:e.add(t),We=(e,t,n,l,o)=>{const s=e.hasRow,r=Ie(),a=Ie(),i=Ie(),d=Ie(),u=Ie(),c=Ie(),g=(t,n,...l)=>{const o=Ve(c,t,ze);return B(l,(t=>Ne(o,t)&&n&&e.callListener(t))),l},v=(t,...n)=>x(Re(c,t),(l=>{B(K(n)?Le(l):n,(t=>{e.delListener(t),Te(l,t)})),pe(l)&&me(c,t)})),h=(e,n)=>{me(r,e,n),ye(a,e)||(me(a,e,t()),me(d,e,Ie()),me(u,e,Ie()),o(i))},f=e=>{me(r,e),me(a,e),me(d,e),me(u,e),v(e),o(i)};return[()=>e,()=>Se(r),e=>Me(a,e),e=>ye(a,e),e=>Re(r,e),e=>Re(a,e),(e,t)=>me(a,e,t),h,(t,l,o,r,a)=>{h(t,l);const i=Ie(),c=Ie(),f=Re(d,t),b=Re(u,t),y=t=>{const o=n=>e.getCell(l,t,n),d=Re(f,t),u=s(l,t)?n(r(o,t)):void 0;if(d===u||J(d)&&J(u)&&W(d,u)||me(i,t,[d,u]),!O(a)){const e=Re(b,t),n=s(l,t)?a(o,t):void 0;e!=n&&me(c,t,n)}},p=e=>{o((()=>{we(i,(([,e],t)=>me(f,t,e))),we(c,((e,t)=>me(b,t,e)))}),i,c,f,b,e),Ce(i),Ce(c)};Me(f,y),e.hasTable(l)&&B(e.getRowIds(l),(e=>{ye(f,e)||y(e)})),p(!0),v(t),g(t,0,e.addRowListener(l,null,((e,t,n)=>y(n))),e.addTableListener(l,(()=>p())))},f,e=>l(e,i),()=>Me(c,f),g,v]},$e=(e,n)=>k(e)?t=>t(e):null!=e?e:()=>null!=n?n:t,_e=(e,t)=>{const n=new WeakMap;return l=>{n.has(l)||n.set(l,e(l));const o=n.get(l);return null==t||t(o),o}},Be=/^\d+$/,qe=()=>{const e=[];let n=0;return[l=>{var o;return null!=(o=l?Z(e):null)?o:t+n++},t=>{Be.test(t)&&F(e)<1e3&&X(e,t)}]},Ge=e=>{let n;const[l,o]=qe(),s=Ie();return[(o,r,a,i=[],d=(()=>[]))=>{null!=n||(n=e());const u=l(1);return me(s,u,[o,r,a,i,d]),Ne(Pe(r,null!=a?a:[t],ze),u),u},(e,l,...o)=>B(((e,n=[t])=>{const l=[],o=(e,t)=>t==F(n)?X(l,e):null===n[t]?we(e,(e=>o(e,t+1))):B([n[t],null],(n=>o(Re(e,n),t+1)));return o(e,0),l})(e,l),(e=>we(e,(e=>Re(s,e)[0](n,...null!=l?l:[],...o))))),e=>x(Re(s,e),(([,n,l])=>(Pe(n,null!=l?l:[t],void 0,(t=>(Te(t,e),pe(t)?1:0))),me(s,e),o(e),l))),e=>x(Re(s,e),(([e,,t=[],l,o])=>{const s=(...r)=>{var a,i;const d=F(r);d==F(t)?e(n,...r,...o(r)):O(t[d])?B(null!=(i=null==(a=l[d])?void 0:a.call(l,...r))?i:[],(e=>s(...r,e))):s(...r,t[d])};s()}))]},Ke=_e((e=>{let n,l,o,s=100,r=Ie(),a=Ie(),i=1;const d=Ie(),u=Ie(),[c,g,v]=Ge((()=>k)),h=Ie(),f=Ie(),b=[],y=[],p=(t,n)=>{i=0,e.transaction((()=>{const[l,o]=Re(h,n);we(l,((n,l)=>we(n,((n,o)=>we(n,((n,s)=>Fe(e,l,o,s,n[t]))))))),we(o,((n,l)=>Qe(e,l,n[t])))})),i=1},L=e=>{me(h,e),me(f,e),g(u,[e])},C=(e,t)=>B(((e,t)=>e.splice(0,t))(e,null!=t?t:F(e)),L),w=()=>C(b,F(b)-s),T=()=>x(n,(()=>{X(b,n),w(),C(y),n=void 0,o=1})),I=()=>{n=Y(b),o=1};let S,R;const M=(e="")=>(O(n)&&(n=t+l++,me(h,n,[r,a]),H(n,e),r=Ie(),a=Ie(),o=1),n),m=()=>{K(b)||(((e,...t)=>{e.unshift(...t)})(y,M()),p(0,n),n=Y(b),o=1)},V=()=>{K(y)||(X(b,n),n=Z(y),p(1,n),o=1)},E=()=>{o&&(g(d),o=0)},A=e=>{const t=M(e);return E(),t},H=(e,t)=>(D(e)&&Re(f,e)!==t&&(me(f,e,t),g(u,[e])),k),D=e=>ye(h,e),k={setSize:e=>(s=e,w(),k),addCheckpoint:A,setCheckpoint:H,getStore:()=>e,getCheckpointIds:()=>[[...b],n,[...y]],forEachCheckpoint:e=>Me(f,e),hasCheckpoint:D,getCheckpoint:e=>Re(f,e),goBackward:()=>(m(),E(),k),goForward:()=>(V(),E(),k),goTo:e=>{const t=z(b,e)?m:z(y,e)?V:null;for(;!O(t)&&e!=n;)t();return E(),k},addCheckpointIdsListener:e=>c(e,d),addCheckpointListener:(e,t)=>c(t,u,[e]),delListener:e=>(v(e),k),clear:()=>(C(b),C(y),O(n)||L(n),n=void 0,l=0,A(),k),clearForward:()=>(K(y)||(C(y),g(d)),k),destroy:()=>{e.delListener(S),e.delListener(R)},getListenerStats:()=>({}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,n,l,o,s)=>{if(i){T();const e=Ve(r,t,Ie),a=Ve(e,n,Ie),i=Ve(a,l,(()=>[s,void 0]));i[1]=o,i[0]===o&&pe(me(a,l))&&pe(me(e,n))&&pe(me(r,t))&&I(),E()}})),R=e.addValueListener(null,((e,t,n,l)=>{if(i){T();const e=Ve(a,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&pe(me(a,t))&&I(),E()}}))}};return re(k.clear())}),(e=>e._registerListeners())),Ue=(e,t)=>(null!=e?e:0)<(null!=t?t:0)?-1:1,Xe=_e((e=>{const n=Ie(),l=Ie(),[o,s,r]=Ge((()=>L)),[a,i,d,u,c,g,v,,h,f,b,y]=We(e,Ie,(e=>O(e)?t:J(e)?q(e,R):R(e)),o,s),p=(t,n,l)=>{const o=c(t);we(l,((t,l)=>n(l,(n=>we(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},L={setIndexDefinition:(e,t,o,r,a,i=Ue)=>{const d=O(a)?void 0:([e],[t])=>a(e,t);return h(e,t,((t,o,a,u,c,h)=>{let f=0;const b=ze(),y=ze(),p=g(e);if(we(o,(([e,t],n)=>{const l=ze(e),o=ze(t);we(l,(e=>Te(o,e)?Te(l,e):0)),we(l,(e=>{Ne(b,e),x(Re(p,e),(t=>{Te(t,n),pe(t)&&(me(p,e),f=1)}))})),we(o,(e=>{Ne(b,e),ye(p,e)||(me(p,e,ze()),f=1),Ne(Re(p,e),n),O(r)||Ne(y,e)}))})),t(),pe(c)||(h?Me(p,(e=>Ne(y,e))):Me(a,(e=>x(Re(u,e),(e=>Ne(y,e))))),we(y,(e=>{const t=(t,n)=>i(Re(c,t),Re(c,n),e),n=[...Re(p,e)];$(n,t)||(me(p,e,ze(_(n,t))),Ne(b,e))}))),(f||h)&&!O(d)){const t=[...p];$(t,d)||(v(e,Ie(_(t,d))),f=1)}f&&s(n,[e]),we(b,(t=>s(l,[e,t])))}),$e(o),x(r,$e)),L},delIndexDefinition:e=>(f(e),L),getStore:a,getIndexIds:i,forEachIndex:e=>d(((t,n)=>e(t,(e=>p(t,e,n))))),forEachSlice:(e,t)=>p(e,t,g(e)),hasIndex:u,hasSlice:(e,t)=>ye(g(e),t),getTableId:c,getSliceIds:e=>Se(g(e)),getSliceRowIds:(e,t)=>Le(Re(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>o(n,l,[e,t]),delListener:e=>(r(e),L),destroy:y,getListenerStats:()=>({})};return re(L)})),Ye=Ie([["avg",[(e,t)=>G(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>E(...e),(e,t)=>E(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:E(t,e)]],["min",[e=>A(...e),(e,t)=>A(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:A(t,e)]],["sum",[e=>G(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Ze=(e,t,n,l,o,s=!1)=>{if(pe(n))return;const[r,a,i,d]=o;return s||(s=O(e)),we(l,(([n,l])=>{s||(e=O(n)?null==a?void 0:a(e,l,t++):O(l)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,l,n,t),s||(s=O(e)))})),s?r(Le(n),be(n)):e},et=_e((e=>{const n=Ie(),[l,o,s]=Ge((()=>y)),[r,a,i,d,u,c,g,,v,h,f,b]=We(e,Q,(e=>isNaN(e)||O(e)||!0===e||!1===e||e===t?void 0:1*e),l,o),y={setMetricDefinition:(e,t,l,s,r,a,i)=>{var d;const u=P(l)?[l,r,a,i]:null!=(d=Re(Ye,l))?d:Re(Ye,"sum");return v(e,t,((t,l,s,r,a,i)=>{const d=c(e),v=be(r);i||(i=O(d)),t();let h=Ze(d,v,r,l,u,i);H(h)||(h=void 0),h!=d&&(g(e,h),o(n,[e],h,d))}),$e(s,1)),y},delMetricDefinition:e=>(h(e),y),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:d,getTableId:u,getMetric:c,addMetricIdsListener:f,addMetricListener:(e,t)=>l(t,n,[e]),delListener:e=>(s(e),y),destroy:b,getListenerStats:()=>({})};return re(y)}));var tt=Object.defineProperty,nt=Object.getOwnPropertySymbols,lt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,st=(e,t,n)=>t in e?tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,rt=(e,t,n)=>new Promise(((l,o)=>{var s=e=>{try{a(n.next(e))}catch(e){o(e)}},r=e=>{try{a(n.throw(e))}catch(e){o(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(s,r);a((n=n.apply(e,t)).next())}));const at=Ie(),it=Ie(),dt=(e,t,n,l,o,s,r,a={},i=[])=>{let d,u,c,g=0;Ve(at,i,(()=>0)),Ve(it,i,(()=>[]));const[v,h,f,b]=((e,t)=>!e||O(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!ve(e)||!ve(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!ve(e)||!ve(t)])(r,e),y=e=>rt(void 0,null,(function*(){return 2!=g&&(g=1,yield L.schedule((()=>rt(void 0,null,(function*(){yield e(),g=0}))))),L})),p=t=>{(v&&k(null==t?void 0:t[0])?1===(null==t?void 0:t[1][2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},L=((e,t)=>{for(var n in t||(t={}))lt.call(t,n)&&st(e,n,t[n]);if(nt)for(var n of nt(t))ot.call(t,n)&&st(e,n,t[n]);return e})({load:(n,l)=>rt(void 0,null,(function*(){return yield y((()=>rt(void 0,null,(function*(){try{p(yield t())}catch(t){null==s||s(t),e.setContent([n,l])}}))))})),startAutoLoad:(...e)=>rt(void 0,[...e],(function*(e={},n={}){return yield L.stopAutoLoad().load(e,n),u=l(((e,n)=>rt(void 0,null,(function*(){const l=null==n?void 0:n();yield y((()=>rt(void 0,null,(function*(){var n;try{p(null!=(n=null!=l?l:null==e?void 0:e())?n:yield t())}catch(e){null==s||s(e)}}))))})))),L})),stopAutoLoad:()=>(u&&(o(u),u=void 0),L),isAutoLoading:()=>!O(u),save:e=>rt(void 0,null,(function*(){return 1!=g&&(g=2,yield L.schedule((()=>rt(void 0,null,(function*(){try{yield n(h,e)}catch(e){null==s||s(e)}g=0}))))),L})),startAutoSave:()=>rt(void 0,null,(function*(){return yield L.stopAutoSave().save(),c=e.addDidFinishTransactionListener((()=>{const e=f();b(e)&&L.save((()=>e))})),L})),stopAutoSave:()=>(x(c,e.delListener),c=void 0,L),isAutoSaving:()=>!O(c),schedule:(...e)=>rt(void 0,null,(function*(){return X(Re(it,i),...e),yield rt(void 0,null,(function*(){if(!Re(at,i)){for(me(at,i,1);!O(d=Z(Re(it,i)));)try{yield d()}catch(e){null==s||s(e)}me(at,i,0)}})),L})),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})},a);return re(L)},ut=new globalThis.TextEncoder,ct=e=>{let t=2166136261;return B(ut.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0};var gt=Math.pow;const vt=gt(2,36),ht=gt(2,30),ft=gt(2,24),bt=gt(2,18),yt=gt(2,12),pt=gt(2,6),Lt=e=>String.fromCharCode(48+(63&e)),Ct=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,wt=e=>{let t=0,n=-1;const l=ct(e),o=e=>{const l=t,[o,s]=O(e)||""==e?[0,0]:[Ct(r=e,0)*vt+Ct(r,1)*ht+Ct(r,2)*ft+Ct(r,3)*bt+Ct(r,4)*yt+Ct(r,5)*pt+Ct(r,6),Ct(r,7)*bt+Ct(r,8)*yt+Ct(r,9)*pt+Ct(r,10),Ct(r,11)*ft+Ct(r,12)*bt+Ct(r,13)*yt+Ct(r,14)*pt+Ct(r,15)];var r;t=E(l,o,Date.now()),n=t==l?t==o?E(n,s):n:t==o?s:-1};return[()=>{return o(),s=++n,r=l,Lt((e=t)/vt)+Lt(e/ht)+Lt(e/ft)+Lt(e/bt)+Lt(e/yt)+Lt(e/pt)+Lt(e)+Lt(s/bt)+Lt(s/yt)+Lt(s/pt)+Lt(s)+Lt(r/ft)+Lt(r/bt)+Lt(r/yt)+Lt(r/pt)+Lt(r);var e,s,r},o]};var Tt=(e,t,n)=>new Promise(((l,o)=>{var s=e=>{try{a(n.next(e))}catch(e){o(e)}},r=e=>{try{a(n.throw(e))}catch(e){o(e)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(s,r);a((n=n.apply(e,t)).next())}));const It=(e,n,l,o,s=1,r)=>{let a;const[i]=wt(e.getId()),d=Ie();l(((t,l,o,s)=>{0==o?x(Re(d,l),(([e,n])=>O(e)||e==t?n(s,t):0)):1==o&&g.isAutoLoading()?c(t,s).then((e=>null==a?void 0:a(void 0,(()=>e)))):x(2==o&&g.isAutoSaving()?e.getMergeableContentHashes():3==o?e.getMergeableTableIdsDiff(s):4==o?e.getMergeableRowIdsDiff(s):5==o?e.getMergeableTablesChanges(s):6==o?e.getMergeableValuesChanges(s):void 0,(e=>{n(t,l,0,e)}))}));const u=(e,t,...l)=>Tt(void 0,[e,t,...l],(function*(e,t,l=""){return new V(((o,r)=>{const a=i(),u=setTimeout((()=>{Te(d,a),r(`No response from ${null!=e?e:"anyone"} to '${t}'`)}),1e3*s);me(d,a,[e,(e,t)=>{clearTimeout(u),Te(d,a),o([e,t])}]),n(e,a,t,l)}))})),c=(n=null,l)=>Tt(void 0,null,(function*(){O(l)&&([l,n]=yield u(n,2));const[o,[s,r]]=l,[,[a,i]]=e.getMergeableContentHashes(),d=[t,[[t,{}],[t,{}],1]];return a!=s&&(d[0]=o,d[1][0]=(yield u(n,5,e.getMergeableCellHashes((yield u(n,4,e.getMergeableRowHashes((yield u(n,3,e.getMergeableTableHashes()))[0])))[0])))[0]),i!=r&&(d[0]=o,d[1][1]=(yield u(n,6,e.getMergeableValuesHashes()))[0]),d})),g=dt(e,(()=>Tt(void 0,null,(function*(){const e=yield c();return e[0]!=t?e:void 0}))),(()=>Tt(void 0,null,(function*(){n(null,null,1,e.getMergeableContentHashes())}))),(e=>a=e),(()=>a=void 0),r,!0,{startSync:(e,t)=>Tt(void 0,null,(function*(){return yield(yield g.startAutoLoad(e,t)).startAutoSave()})),stopSync:()=>g.stopAutoLoad().stopAutoSave(),destroy:()=>(o(),g.stopSync()),getSynchronizerStats:()=>({})});return g};var St=Object.getOwnPropertySymbols,Rt=Object.prototype.hasOwnProperty,Mt=Object.prototype.propertyIsEnumerable;const mt=_e((e=>{const n=e.createStore,l=n(),o=n(),s=Ie(),{addListener:r,callListeners:a,delListener:c}=o,[g,h,f,T,I,,,S,,R,M,m,V,E]=We(e,(()=>!0),Q,r,a),A=(e,t,...n)=>B(n,(n=>Ne(Ve(Ve(s,t,Ie),e,ze),n))),H=e=>{x(Re(s,e),(e=>{Me(e,((e,t)=>we(t,(t=>e.delListener(t))))),Ce(e)})),B([o,l],(t=>t.delTable(e)))},D=(e,t,n)=>A(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),k={setQueryDefinition:(n,s,r)=>{S(n,s),H(n);const a=[],i=[[null,[s,null,null,[],Ie()]]],d=[],u=[],c=[];r({select:(e,n)=>{const l=P(e)?[F(a)+t,e]:[O(n)?e:n,t=>t(e,n)];return X(a,l),{as:e=>l[0]=e}},join:(e,t,n)=>{const l=O(n)||P(t)?null:t,o=O(l)?t:n,s=[e,[e,l,P(o)?o:e=>e(o),[],Ie()]];return X(i,s),{as:e=>s[0]=e}},where:(e,t,n)=>X(d,P(e)?e:O(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,o)=>{var s;const r=[e,[e,P(t)?[t,n,l,o]:null!=(s=Re(Ye,t))?s:[(e,t)=>t]]];return X(u,r),{as:e=>r[0]=e}},having:(e,t)=>X(c,P(e)?e:n=>n(e)===t)});const g=Ie(a);if(pe(g))return k;const v=Ie(i);Me(v,((e,[,t])=>x(Re(v,t),(({3:t})=>O(e)?0:X(t,e)))));const h=Ie(u);let f=l;if(pe(h)&&K(c))f=o;else{D(n,f,o);const e=Ie();Me(h,((t,[n,l])=>Ne(Ve(e,n,ze),[t,l])));const t=ze();Me(g,(n=>ye(e,n)?0:Ne(t,n)));const l=Ie(),s=(t,l,s,r)=>x(t,(([a,i,d,u])=>{Me(l,((t,[n])=>{const l=Ve(a,t,Ie),o=Re(l,s),i=r?void 0:n;if(o!==i){const n=ze([[o,i]]),r=be(l);me(l,s,i),we(Re(e,t),(([e,t])=>{const o=Ze(u[e],r,l,n,t);u[e]=O(Je(o))?null:o}))}})),pe(i)||!N(c,(e=>e((e=>u[e]))))?o.delRow(n,d):O(d)?t[2]=o.addRow(n,u):o.setRow(n,d,u)}));A(f,n,f.addRowListener(n,null,((o,r,a,i)=>{const d=[],u=[],c=Ie(),g=f.hasRow(n,a);let v=!g;we(t,(e=>{const[t,l,o]=i(n,a,e);X(d,l),X(u,o),v||(v=t)})),Me(e,(e=>{const[t,,l]=i(n,a,e);(v||t)&&me(c,e,[l])})),v&&s(Pe(l,d,void 0,(([,e])=>(Te(e,a),pe(e)))),c,a,1),g&&s(Pe(l,u,(()=>{const e={};return we(t,(t=>e[t]=f.getCell(n,a,t))),[Ie(),ze(),void 0,e]}),(([,e])=>{Ne(e,a)})),c,a)})))}D(n,e,f);const b=(t,l,o,r)=>{const a=t=>e.getCell(l,o,t);B(r,(l=>{var o;const[s,,r,i,d]=Re(v,l),u=null==r?void 0:r(a,t),[c,g]=null!=(o=Re(d,t))?o:[];u!=c&&(O(g)||E(n,g),me(d,t,O(u)?null:[u,...V(n,1,e.addRowListener(s,u,(()=>b(t,s,u,i))))]))})),(t=>{const l=(n,l)=>{var o,r,a;return e.getCell(...O(l)?[s,t,n]:n===s?[s,t,l]:[null==(o=Re(v,n))?void 0:o[0],null==(a=Re(null==(r=Re(v,n))?void 0:r[4],t))?void 0:a[0],l])};f.transaction((()=>N(d,(e=>e(l)))?Me(g,((e,o)=>Fe(f,n,t,e,o(l,t)))):f.delRow(n,t)))})(t)},{3:y}=Re(v,null);return f.transaction((()=>V(n,1,e.addRowListener(s,null,((t,l,o)=>{e.hasRow(s,o)?b(o,s,o,y):(f.delRow(n,o),we(v,(({4:e})=>x(Re(e,o),(([,t])=>{E(n,t),me(e,o)})))))}))))),k},delQueryDefinition:e=>(H(e),R(e),k),getStore:g,getQueryIds:h,forEachQuery:f,hasQuery:T,getTableId:I,addQueryIdsListener:e=>M((()=>e(k))),delListener:e=>(c(e),k),destroy:m,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)Rt.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&St)for(var l of St(e))t.indexOf(l)<0&&Mt.call(e,l)&&(n[l]=e[l]);return n})(o.getListenerStats(),["tables","tableIds","transaction"])};return ce({[v]:[1,1],[v+w]:[0,1],[y]:[0,1],[p]:[0,1],[L]:[0,5],[b]:[1,2],[w]:[0,2],[C]:[1,3]},(([e,t],n)=>{B(e?["get","has","forEach"]:["get"],(e=>k[e+d+n]=(...t)=>o[e+n](...t))),k[u+d+n+i]=(...e)=>o[u+n+i](...j(e,0,t),((n,...l)=>e[t](k,...l)),!0)})),re(k)})),Vt=_e((e=>{const n=Ie(),l=Ie(),o=Ie(),s=Ie(),[r,a,i]=Ge((()=>T)),[d,u,c,g,v,h,,,f,b,y,p]=We(e,(()=>[Ie(),Ie(),Ie(),Ie()]),(e=>O(e)?void 0:e+t),r,a),L=(e,t,n)=>x(h(e),(([l,,o])=>{if(!ye(o,t)){const s=ze();if(v(e)!=w(e))Ne(s,t);else{let e=t;for(;!O(e)&&!ye(s,e);)Ne(s,e),e=Re(l,e)}if(n)return s;me(o,t,s)}return Re(o,t)})),C=(e,t)=>x(h(e),(([,,e])=>me(e,t))),w=e=>Re(n,e),T={setRelationshipDefinition:(e,t,r,i)=>(me(n,e,r),f(e,t,((t,n)=>{const r=ze(),i=ze(),d=ze(),[u,c]=h(e);we(n,(([t,n],l)=>{O(t)||(Ne(i,t),x(Re(c,t),(e=>{Te(e,l),pe(e)&&me(c,t)}))),O(n)||(Ne(i,n),ye(c,n)||me(c,n,ze()),Ne(Re(c,n),l)),Ne(r,l),me(u,l,n),Me(Re(s,e),(t=>{ye(L(e,t),l)&&Ne(d,t)}))})),t(),we(r,(t=>a(l,[e,t]))),we(i,(t=>a(o,[e,t]))),we(d,(t=>{C(e,t),a(s,[e,t])}))}),$e(i)),T),delRelationshipDefinition:e=>(me(n,e),b(e),T),getStore:d,getRelationshipIds:u,forEachRelationship:t=>c((n=>t(n,(t=>e.forEachRow(v(n),t))))),hasRelationship:g,getLocalTableId:v,getRemoteTableId:w,getRemoteRowId:(e,t)=>{var n;return Re(null==(n=h(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return Le(Re(null==(n=h(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>O(h(e))?[t]:Le(L(e,t,!0)),addRelationshipIdsListener:y,addRemoteRowIdListener:(e,t,n)=>r(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>r(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(L(e,t),r(n,s,[e,t])),delListener:e=>{var t;return C(...null!=(t=i(e))?t:[]),T},destroy:p,getListenerStats:()=>({})};return re(T)})),Et=([e,t,n])=>[e,t,n],At=([e,t])=>[e,t],Ht=e=>e[2],Ot=(e,t)=>ct(e+":"+t),xt=(e,t,n)=>{e[2]=t>>>0,n>e[0]&&(e[0]=n)},Dt=e=>[e,ae()],kt=(e="")=>[e,Ie(),0],Pt=([e,t,n],l=Et)=>[e,Ae(t,l),n],Jt=(t,n)=>J(t)&&3==F(t)&&k(t[0])&&n(t[1])&&e(t[2])==o&&H(t[2]),jt=e=>[e,e],Ft=()=>[Ie(),Ie()],Qt=e=>[...e],zt=([e,t])=>e===t,Nt=e=>JSON.stringify(e,((e,t)=>t instanceof Map?ee.fromEntries([...t]):t)),Wt=JSON.parse,$t=(e,t,n)=>me(e,t,Re(e,t)==-n?void 0:n),_t=()=>{let e,t,n=!1,l=!1,s=0,d=[];const g=Ie(),L=Ie(),M=Ie(),m=Ie(),V=Ie(),E=Ie(),A=Ie(),H=Ie(),k=Ie(),J=Ie(),F=Ie(),Q=Ie(),N=Ie(),$=Ie(),G=ze(),K=Ie(),U=Ie(),Y=Ie(),Z=Ie(),ee=Ft(),te=Ft(),ne=Ft(),le=Ft(),oe=Ft(),se=Ft(),ae=Ft(),ue=Ft(),ge=Ft(),he=Ft(),Le=Ft(),Pe=Ft(),je=Ft(),We=Ft(),$e=Ft(),_e=Ft(),Be=Ft(),Ke=Ft(),Xe=Ft(),Ye=Ft(),Ze=Ft(),et=Ft(),tt=Ie(),nt=Ft(),[lt,ot,st,rt]=Ge((()=>kn)),at=e=>{if(!fe(e,((e,t)=>z([r,a],t))))return!1;const t=e[r];return!(!D(t)&&t!=o||(Je(e[a])!=t&&de(e,a),0))},it=(t,n)=>(!e||ye(F,n)||Bt(n))&&fe(t,((e,t)=>dt(n,t,e)),(()=>Bt(n))),dt=(e,t,n,l)=>fe(l?n:vt(n,e,t),((l,o)=>x(ut(e,t,o,l),(e=>(n[o]=e,!0)),(()=>!1))),(()=>Bt(e,t))),ut=(t,n,l,o)=>e?x(Re(Re(F,t),l),(e=>Je(o)!=e[r]?Bt(t,n,l,o,e[a]):o),(()=>Bt(t,n,l,o))):O(Je(o))?Bt(t,n,l,o):o,ct=(e,t)=>fe(t?e:ht(e),((t,n)=>x(gt(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>qt())),gt=(e,n)=>t?x(Re(N,e),(t=>Je(n)!=t[r]?qt(e,n,t[a]):n),(()=>qt(e,n))):O(Je(n))?qt(e,n):n,vt=(e,t,n)=>(x(Re(Q,t),(([l,o])=>{we(l,((t,n)=>{ie(e,n)||(e[n]=t)})),we(o,(l=>{ie(e,l)||Bt(t,n,l)}))})),e),ht=e=>(t&&(we($,((t,n)=>{ie(e,n)||(e[n]=t)})),we(G,(t=>{ie(e,t)||qt(t)}))),e),ft=e=>Ee(F,e,((e,t,n)=>{const l=Ie(),o=ze();Ee(Ve(F,t,Ie),n,((e,t,n)=>{me(e,t,n),x(n[a],(e=>me(l,t,e)),(()=>Ne(o,t)))})),me(Q,t,[l,o])}),((e,t)=>{me(F,t),me(Q,t)})),bt=e=>Ee(N,e,((e,t,n)=>{me(N,t,n),x(n[a],(e=>me($,t,e)),(()=>Ne(G,t)))}),((e,t)=>{me(N,t),me($,t),Te(G,t)})),yt=e=>ve(e)?Mn():wn(e),pt=e=>Ee(Y,e,((e,t,n)=>Lt(t,n)),((e,t)=>Vt(t))),Lt=(e,t)=>Ee(Ve(Y,e,(()=>(Ot(e,1),me(K,e,qe()),me(U,e,Ie()),Ie()))),t,((t,n,l)=>Ct(e,t,n,l)),((t,n)=>Et(e,t,n))),Ct=(e,t,n,l,o)=>Ee(Ve(t,n,(()=>(xt(e,n,1),Ie()))),l,((t,l,o)=>wt(e,n,t,l,o)),((l,s)=>At(e,t,n,l,s,o))),wt=(e,t,n,l,o)=>{ye(n,l)||Dt(e,t,l,1);const s=Re(n,l);o!==s&&(kt(e,t,l,s,o),me(n,l,o))},Tt=(e,t,n,l,o)=>x(Re(t,n),(t=>wt(e,n,t,l,o)),(()=>Ct(e,t,n,vt({[l]:o},e,n)))),It=e=>ve(e)?En():Tn(e),St=e=>Ee(Z,e,((e,t,n)=>Rt(t,n)),((e,t)=>Ht(t))),Rt=(e,t)=>{ye(Z,e)||Pt(e,1);const n=Re(Z,e);t!==n&&(Jt(e,n,t),me(Z,e,t))},Mt=(e,t)=>{const[n]=Re(K,e),l=n(t);return ye(Re(Y,e),l)?Mt(e,t):l},mt=e=>{var t;return null!=(t=Re(Y,e))?t:Lt(e,{})},Vt=e=>Lt(e,{}),Et=(e,t,n)=>{const[,l]=Re(K,e);l(n),Ct(e,t,n,{},!0)},At=(e,t,n,l,o,s)=>{var r;const a=Re(null==(r=Re(Q,e))?void 0:r[0],o);if(!O(a)&&!s)return wt(e,n,l,o,a);const i=t=>{kt(e,n,t,Re(l,t)),Dt(e,n,t,-1),me(l,t)};O(a)?i(o):Me(l,i),pe(l)&&(xt(e,n,-1),pe(me(t,n))&&(Ot(e,-1),me(Y,e),me(K,e),me(U,e)))},Ht=e=>{const t=Re($,e);if(!O(t))return Rt(e,t);Jt(e,Re(Z,e)),Pt(e,-1),me(Z,e)},Ot=(e,t)=>$t(g,e,t),xt=(e,t,n)=>$t(Ve(m,e,Ie),t,n)&&me(M,e,Ve(M,e,(()=>0))+n),Dt=(e,t,n,l)=>{var o;const s=Re(U,e),r=null!=(o=Re(s,n))?o:0;(0==r&&1==l||1==r&&-1==l)&&$t(Ve(L,e,Ie),n,l),me(s,n,r!=-l?r+l:null),$t(Ve(Ve(V,e,Ie),t,Ie),n,l)},kt=(e,t,n,l,o)=>Ve(Ve(Ve(E,e,Ie),t,Ie),n,(()=>[l,0]))[1]=o,Pt=(e,t)=>$t(A,e,t),Jt=(e,t,n)=>Ve(H,e,(()=>[t,0]))[1]=n,Bt=(e,t,n,l,o)=>(X(Ve(Ve(Ve(k,e,Ie),t,Ie),n,(()=>[])),l),o),qt=(e,t,n)=>(X(Ve(J,e,(()=>[])),t),n),Gt=(e,t,n)=>x(Re(Re(Re(E,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...jt(un(e,t,n))])),Kt=e=>x(Re(H,e),(([e,t])=>[!0,e,t]),(()=>[!1,...jt(vn(e))])),Ut=e=>pe(k)||pe(_e[e])?0:we(e?ke(k):k,((t,n)=>we(t,((t,l)=>we(t,((t,o)=>ot(_e[e],[n,l,o],t))))))),Xt=e=>pe(J)||pe(Be[e])?0:we(e?xe(J):J,((t,n)=>ot(Be[e],[n],t))),Yt=(e,t,n,l)=>{if(!pe(e))return ot(t,l,(()=>Ae(e))),Me(e,((e,t)=>ot(n,[...null!=l?l:[],e],1==t))),1},Zt=e=>{const t=hn();t!=n&&ot(ee[e],void 0,t);const l=pe(he[e]),o=pe(je[e])&&pe(We[e])&&pe(ge[e])&&pe(Le[e])&&pe(se[e])&&pe(ae[e])&&pe(ue[e])&&l&&pe(ne[e])&&pe(le[e]),s=pe($e[e])&&pe(Pe[e])&&pe(oe[e])&&pe(te[e]);if(!o||!s){const t=e?[xe(g),De(L),xe(M),De(m),ke(V),ke(E)]:[g,L,M,m,V,E];if(!o){Yt(t[0],ne[e],le[e]),we(t[1],((t,n)=>Yt(t,se[e],ae[e],[n]))),we(t[2],((t,n)=>{0!=t&&ot(ue[e],[n],sn(n))}));const n=ze();we(t[3],((t,o)=>{Yt(t,ge[e],Le[e],[o])&&!l&&(ot(he[e],[o,null]),Ne(n,o))})),l||we(t[5],((t,l)=>{if(!ye(n,l)){const n=ze();we(t,(e=>we(e,(([t,l],o)=>l!==t?Ne(n,o):Te(e,o))))),we(n,(t=>ot(he[e],[l,t])))}})),we(t[4],((t,n)=>we(t,((t,l)=>Yt(t,je[e],We[e],[n,l])))))}if(!s){let n;we(t[5],((t,l)=>{let o;we(t,((t,s)=>{let r;we(t,(([t,a],i)=>{a!==t&&(ot($e[e],[l,s,i],a,t,Gt),n=o=r=1)})),r&&ot(Pe[e],[l,s],Gt)})),o&&ot(oe[e],[l],Gt)})),n&&ot(te[e],void 0,Gt)}}},en=e=>{const t=Ln();t!=l&&ot(Ke[e],void 0,t);const n=pe(Ye[e])&&pe(Ze[e]),o=pe(et[e])&&pe(Xe[e]);if(!n||!o){const t=e?[xe(A),xe(H)]:[A,H];if(n||Yt(t[0],Ye[e],Ze[e]),!o){let n;we(t[1],(([t,l],o)=>{l!==t&&(ot(et[e],[o],l,t,Kt),n=1)})),n&&ot(Xe[e],void 0,Kt)}}},tn=(e,...t)=>(On((()=>e(...q(t,R)))),kn),nn=()=>Oe(Y),ln=()=>Se(Y),on=e=>Se(Re(U,R(e))),sn=e=>be(Re(Y,R(e))),rn=e=>Se(Re(Y,R(e))),an=(e,t,n,l=0,o)=>{return q(j(_((s=Re(Y,R(e)),r=(e,n)=>[O(t)?n:Re(e,R(t)),n],q([...null!=(a=null==s?void 0:s.entries())?a:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ue(e,t)*(n?-1:1))),l,O(o)?o:l+o),(([,e])=>e));var s,r,a},dn=(e,t)=>Se(Re(Re(Y,R(e)),R(t))),un=(e,t,n)=>Re(Re(Re(Y,R(e)),R(t)),R(n)),cn=()=>Ae(Z),gn=()=>Se(Z),vn=e=>Re(Z,R(e)),hn=()=>!pe(Y),fn=e=>ye(Y,R(e)),bn=(e,t)=>ye(Re(U,R(e)),R(t)),yn=(e,t)=>ye(Re(Y,R(e)),R(t)),pn=(e,t,n)=>ye(Re(Re(Y,R(e)),R(t)),R(n)),Ln=()=>!pe(Z),Cn=e=>ye(Z,R(e)),wn=e=>tn((()=>(e=>fe(e,it,Bt))(e)?pt(e):0)),Tn=e=>tn((()=>ct(e)?St(e):0)),In=e=>{try{yt(Wt(e))}catch(e){}return kn},Sn=t=>tn((()=>{if((e=fe(t,(e=>fe(e,at))))&&(ft(t),!pe(Y))){const e=nn();Mn(),wn(e)}})),Rn=e=>tn((()=>{if(t=(e=>fe(e,at))(e)){const n=cn();Hn(),En(),t=!0,bt(e),Tn(n)}})),Mn=()=>tn((()=>pt({}))),mn=e=>tn((e=>ye(Y,e)?Vt(e):0),e),Vn=(e,t)=>tn(((e,t)=>x(Re(Y,e),(n=>ye(n,t)?Et(e,n,t):0))),e,t),En=()=>tn((()=>St({}))),An=()=>tn((()=>{ft({}),e=!1})),Hn=()=>tn((()=>{bt({}),t=!1})),On=(e,t)=>{if(-1!=s){xn();const n=e();return Dn(t),n}},xn=()=>(-1!=s&&s++,1==s&&ot(tt,void 0),kn),Dn=e=>{var t,o;return s>0&&(s--,0==s&&(s=1,Ut(1),pe(E)||Zt(1),Xt(1),pe(H)||en(1),(null==e?void 0:e(kn))&&(we(E,((e,t)=>we(e,((e,n)=>we(e,(([e],l)=>Fe(kn,t,n,l,e))))))),Ce(E),we(H,(([e],t)=>Qe(kn,t,e))),Ce(H)),ot(nt[0],void 0),s=-1,Ut(0),pe(E)||Zt(0),Xt(0),pe(H)||en(0),null==(t=d[0])||t.call(d,kn),ot(nt[1],void 0),null==(o=d[1])||o.call(d,kn),s=0,n=hn(),l=Ln(),B([g,L,M,m,V,E,k,A,H,J],Ce))),kn},kn={getContent:()=>[nn(),cn()],getTables:nn,getTableIds:ln,getTable:e=>He(Re(Y,R(e))),getTableCellIds:on,getRowCount:sn,getRowIds:rn,getSortedRowIds:an,getRow:(e,t)=>Ae(Re(Re(Y,R(e)),R(t))),getCellIds:dn,getCell:un,getValues:cn,getValueIds:gn,getValue:vn,hasTables:hn,hasTable:fn,hasTableCell:bn,hasRow:yn,hasCell:pn,hasValues:Ln,hasValue:Cn,getTablesJson:()=>Nt(Y),getValuesJson:()=>Nt(Z),getJson:()=>Nt([Y,Z]),getTablesSchemaJson:()=>Nt(F),getValuesSchemaJson:()=>Nt(N),getSchemaJson:()=>Nt([F,N]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>tn((()=>{(ve(e)?Mn:wn)(e),(ve(t)?En:Tn)(t)})),setTables:wn,setTable:(e,t)=>tn((e=>it(t,e)?Lt(e,t):0),e),setRow:(e,t,n)=>tn(((e,t)=>dt(e,t,n)?Ct(e,mt(e),t,n):0),e,t),addRow:(e,t,n=!0)=>On((()=>{let l;return dt(e,l,t)&&(e=R(e),Ct(e,mt(e),l=Mt(e,n?1:0),t)),l})),setPartialRow:(e,t,n)=>tn(((e,t)=>{if(dt(e,t,n,1)){const l=mt(e);ce(n,((n,o)=>Tt(e,l,t,o,n)))}}),e,t),setCell:(e,t,n,l)=>tn(((e,t,n)=>x(ut(e,t,n,P(l)?l(un(e,t,n)):l),(l=>Tt(e,mt(e),t,n,l)))),e,t,n),setValues:Tn,setPartialValues:e=>tn((()=>ct(e,1)?ce(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>tn((e=>x(gt(e,P(t)?t(vn(e)):t),(t=>Rt(e,t)))),e),applyChanges:e=>tn((()=>{ce(e[0],((e,t)=>O(e)?mn(t):ce(e,((e,n)=>O(e)?Vn(t,n):ce(e,((e,l)=>Fe(kn,t,n,l,e))))))),ce(e[1],((e,t)=>Qe(kn,t,e)))})),setTablesJson:In,setValuesJson:e=>{try{It(Wt(e))}catch(e){}return kn},setJson:e=>tn((()=>{try{const[t,n]=Wt(e);yt(t),It(n)}catch(t){In(e)}})),setTablesSchema:Sn,setValuesSchema:Rn,setSchema:(e,t)=>tn((()=>{Sn(e),Rn(t)})),delTables:Mn,delTable:mn,delRow:Vn,delCell:(e,t,n,l)=>tn(((e,t,n)=>x(Re(Y,e),(o=>x(Re(o,t),(s=>ye(s,n)?At(e,o,t,s,n,l):0))))),e,t,n),delValues:En,delValue:e=>tn((e=>ye(Z,e)?Ht(e):0),e),delTablesSchema:An,delValuesSchema:Hn,delSchema:()=>tn((()=>{An(),Hn()})),transaction:On,startTransaction:xn,getTransactionChanges:()=>[Ae(E,((e,t)=>-1===Re(g,t)?void 0:Ae(e,((e,n)=>-1===Re(Re(m,t),n)?void 0:Ae(e,(([,e])=>e),(e=>zt(e)))),pe,ve)),pe,ve),Ae(H,(([,e])=>e),(e=>zt(e))),1],getTransactionLog:()=>[!pe(E),!pe(H),Oe(E,Qt,zt),Oe(k),Ae(H,Qt,zt),Ae(J),Ae(g),He(m),Oe(V),Ae(A)],finishTransaction:Dn,forEachTable:e=>we(Y,((t,n)=>e(n,(e=>we(t,((t,n)=>e(n,(e=>Me(t,e))))))))),forEachTableCell:(e,t)=>Me(Re(U,R(e)),t),forEachRow:(e,t)=>we(Re(Y,R(e)),((e,n)=>t(n,(t=>Me(e,t))))),forEachCell:(e,t,n)=>Me(Re(Re(Y,R(e)),R(t)),n),forEachValue:e=>Me(Z,e),addSortedRowIdsListener:(e,t,n,l,o,s,r)=>{let a=an(e,t,n,l,o);return lt((()=>{const r=an(e,t,n,l,o);W(r,a)||(a=r,s(kn,e,t,n,l,o,a))}),he[r?1:0],[e,t],[ln])},addStartTransactionListener:e=>lt(e,tt),addWillFinishTransactionListener:e=>lt(e,nt[0]),addDidFinishTransactionListener:e=>lt(e,nt[1]),callListener:e=>(rt(e),kn),delListener:e=>(st(e),kn),getListenerStats:()=>({}),createStore:_t,addListener:lt,callListeners:ot,setInternalListeners:(e,t)=>d=[e,t]};return ce({[c+h]:[0,ee,[],()=>[hn()]],[h]:[0,te],[f]:[0,ne],[c+v]:[1,le,[ln],e=>[fn(...e)]],[v]:[1,oe,[ln]],[v+w]:[1,se,[ln]],[c+v+C]:[2,ae,[ln,on],e=>[bn(...e)]],[y]:[1,ue,[ln]],[p]:[1,ge,[ln]],[c+b]:[2,Le,[ln,rn],e=>[yn(...e)]],[b]:[2,Pe,[ln,rn]],[w]:[2,je,[ln,rn]],[c+C]:[3,We,[ln,rn,dn],e=>[pn(...e)]],[C]:[3,$e,[ln,rn,dn],e=>jt(un(...e))],InvalidCell:[3,_e],[c+I]:[0,Ke,[],()=>[Ln()]],[I]:[0,Xe],[S]:[0,Ye],[c+T]:[1,Ze,[gn],e=>[Cn(...e)]],[T]:[1,et,[gn],e=>jt(vn(e[0]))],InvalidValue:[1,Be]},(([e,t,n,l],o)=>{kn[u+o+i]=(...o)=>lt(o[e],t[o[e+1]?1:0],e>0?j(o,0,e):void 0,n,l)})),re(kn)},Bt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},qt=(e="")=>[e,[kt(e),kt(e)],0],Gt=e=>{let n,l,o=1,s=qt();const[r,a]=wt(e),i=_t(),d=e=>{const t=o;return o=0,e(),o=t,f},u=(e,t=0)=>{const n={},l={},[o,[[r,a,i],d],u]=e,[,[g,v]]=s,[h,f,b]=g;if(r){let e=t?i:b^(r>h?(h?ct(h):0)^ct(r):0);ue(a,(([l,o,s],r)=>{const a=Ve(f,r,kt),[i,d,u]=a;let g=t?s:u^(l>i?(i?ct(i):0)^ct(l):0);ue(o,((e,l)=>{const[o,s]=c(e,Ve(d,l,kt),he(he(n,r,ae),l,ae),t);g^=t?0:(o?Ot(l,o):0)^Ot(l,s)})),xt(a,g,l),e^=t?0:(u?Ot(r,u):0)^Ot(r,a[2])})),xt(g,e,r)}return c(d,v,l,t),xt(s,t?u:g[2]^v[2],o),[n,l,1]},c=(e,n,l,o)=>{const[s,r,a]=e,[i,d,u]=n;if(s){let e=o?a:u^(s>i?(i?ct(i):0)^ct(s):0);ue(r,(([n,s,r],a)=>{const i=Ve(d,a,(()=>[t,void 0,0])),[u,,c]=i;n>u&&(xt(i,o?r:ct(Nt(null!=s?s:null)+":"+n),n),i[1]=s,l[a]=s,e^=o?0:Ot(a,c)^Ot(a,i[2]))})),xt(n,e,s)}return[u,n[2]]},g=()=>[s[0],[Pt(s[1][0],(e=>Pt(e,(e=>Pt(e))))),Pt(s[1][1])],s[2]],v=()=>{if(O(l)){const[,,e,,l]=i.getTransactionLog(),o=ve(e)&&ve(l)?t:null!=n?n:n=r(),s=[o,[Dt(ve(e)?t:o),Dt(ve(l)?t:o),1]],[[,a],[,d]]=s[1];return ce(e,((e,t)=>{const[,n]=a[t]=Dt(o);ce(e,((e,t)=>{const[,l]=n[t]=Dt(o);ce(e,(([,e],t)=>l[t]=[o,e]))}))})),ce(l,(([,e],t)=>d[t]=[o,e])),s}return l},h=e=>d((()=>{a(e[0]),i.applyChanges(u(e))})),f={getId:()=>e,getMergeableContent:g,getMergeableContentHashes:()=>[s[0],[s[1][0][2],s[1][1][2]]],getMergeableTableHashes:()=>Ae(s[1][0][1],Ht),getMergeableTableIdsDiff:e=>{const t=[];return Me(s[1][0][1],((n,[,,l])=>{l!==(null==e?void 0:e[n])&&X(t,n)})),t},getMergeableRowHashes:e=>ae(q(e,(e=>{var t;return[e,Ae(null==(t=Re(s[1][0][1],e))?void 0:t[1],Ht)]}))),getMergeableRowIdsDiff:e=>ge(e,((e,t)=>{var n;const l=[];return Me(null==(n=Re(s[1][0][1],t))?void 0:n[1],((t,[,,n])=>{n!==(null==e?void 0:e[t])&&X(l,t)})),l})),getMergeableCellHashes:e=>ge(e,((e,t)=>ae(q(e,(e=>{var n,l;return[e,Ae(null==(l=Re(null==(n=Re(s[1][0][1],t))?void 0:n[1],e))?void 0:l[1],Ht)]}))))),getMergeableTablesChanges:e=>{const[,[[t,n]]]=s,l={};return ue(e,((e,t)=>x(Re(n,t),(([n,o])=>{const s={};ue(e,((e,t)=>x(Re(o,t),(([n,l])=>{const o=Ae(l,At,(([,,t],n)=>t==(null==e?void 0:e[n])));ve(o)||(s[t]=[n,o])})))),ve(s)||(l[t]=[n,s])})))),[t,l]},getMergeableValuesHashes:()=>Ae(s[1][1][1],Ht),getMergeableValuesChanges:e=>[s[1][1][0],Ae(s[1][1][1],At,(([,,t],n)=>t==(null==e?void 0:e[n])))],setMergeableContent:e=>d((()=>(e=>Jt(e,(e=>J(e)&&2==F(e)&&Jt(e[0],(e=>fe(e,(e=>Jt(e,(e=>fe(e,(e=>Jt(e,(e=>fe(e,(e=>Jt(e,je)),void 0,1)))),void 0,1)))),void 0,1)))&&Jt(e[1],(e=>fe(e,(e=>Jt(e,je)),void 0,1))))))(e)?i.transaction((()=>{i.delTables().delValues(),s=qt(),a(e[0]),i.applyChanges(u(e,1))})):0)),getTransactionMergeableChanges:v,applyMergeableChanges:h,merge:e=>{const t=g(),n=e.getMergeableContent();return e.applyMergeableChanges(t),h(n)}};return i.setInternalListeners((()=>{o&&(l=v(),u(l))}),(()=>n=l=void 0)),ce(i,((e,t)=>f[t]=M(t,"set")||M(t,"del")||M(t,"apply")||m(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),f):M(t,"add")&&m(t,"Listener")?(...n)=>{var l;const o=null!=(l=Bt[j(t,3,-8)])?l:0,s=n[o];return n[o]=(e,...t)=>s(f,...t),e(...n)}:e)),re(f)};export{Ke as createCheckpoints,dt as createCustomPersister,It as createCustomSynchronizer,Xe as createIndexes,Gt as createMergeableStore,et as createMetrics,mt as createQueries,Vt as createRelationships,_t as createStore,Ue as defaultSorter};
|
package/lib/es6/tinybase.js.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>typeof e,t=e(""),a=Promise,s=Math.max,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=Object,c=e=>r.getPrototypeOf(e),i=r.keys,g=r.freeze,l=e=>(e=>!n(e)&&o(c(e),(e=>e==r.prototype||n(c(e))),(()=>!0)))(e)&&0==(e=>i(e).length)(e),u=(e,t)=>e?.delete(t),d=e=>new Map(e),h=(e,t)=>e?.get(t),y=(e,t,a)=>n(a)?(u(e,t),e):e?.set(t,a),w=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(h(e,t)):y(e,t,a()),h(e,t)},v=d(),p=d(),b=new globalThis.TextEncoder,C=2**36,M=2**30,A=2**24,S=2**18,f=4096,L=64,T=e=>String.fromCharCode(48+(63&e)),m=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,H=d(),D=(r,c)=>{const i=""+Math.random();return((r,c,i,H,D=1,x)=>{let E;const[I]=(e=>{let t=0,a=-1;const o=(e=>{let t=2166136261;var a;return a=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},b.encode(e).forEach(a),t>>>0})(e),r=e=>{const o=t,[r,c]=n(e)||""==e?[0,0]:[m(i=e,0)*C+m(i,1)*M+m(i,2)*A+m(i,3)*S+m(i,4)*f+m(i,5)*L+m(i,6),m(i,7)*S+m(i,8)*f+m(i,9)*L+m(i,10),m(i,11)*A+m(i,12)*S+m(i,13)*f+m(i,14)*L+m(i,15)];var i;t=s(o,r,Date.now()),a=t==o?t==r?s(a,c):a:t==r?c:-1};return[()=>{return r(),s=++a,n=o,T((e=t)/C)+T(e/M)+T(e/A)+T(e/S)+T(e/f)+T(e/L)+T(e)+T(s/S)+T(s/f)+T(s/L)+T(s)+T(n/A)+T(n/S)+T(n/f)+T(n/L)+T(n);var e,s,n},r]})(r.getId()),z=d();i(((e,t,a,s)=>{0==a?o(h(z,t),(([t,a])=>n(t)||t==e?a(s,e):0)):1==a&&R.isAutoLoading()?P(e,s).then((e=>E?.(void 0,(()=>e)))):o(2==a&&R.isAutoSaving()?r.getMergeableContentHashes():3==a?r.getMergeableTableIdsDiff(s):4==a?r.getMergeableRowIdsDiff(s):5==a?r.getMergeableTablesChanges(s):6==a?r.getMergeableValuesChanges(s):void 0,(a=>{c(e,t,0,a)}))}));const O=async(e,t,s="")=>new a(((a,n)=>{const o=I(),r=setTimeout((()=>{u(z,o),n(`No response from ${e??"anyone"} to '${t}'`)}),1e3*D);y(z,o,[e,(e,t)=>{clearTimeout(r),u(z,o),a([e,t])}]),c(e,o,t,s)})),P=async(e=null,t)=>{n(t)&&([t,e]=await O(e,2));const[a,[s,o]]=t,[,[c,i]]=r.getMergeableContentHashes(),g=["",[["",{}],["",{}],1]];return c!=s&&(g[0]=a,g[1][0]=(await O(e,5,r.getMergeableCellHashes((await O(e,4,r.getMergeableRowHashes((await O(e,3,r.getMergeableTableHashes()))[0])))[0])))[0]),i!=o&&(g[0]=a,g[1][1]=(await O(e,6,r.getMergeableValuesHashes()))[0]),g},R=((a,s,r,c,i,u,d,b={},C=[])=>{let M,A,S,f=0;w(v,C,(()=>0)),w(p,C,(()=>[]));const[L,T,m,H]=((e,t)=>!e||n(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!l(e)||!l(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!l(e)||!l(t)])(d,a),D=async e=>(2!=f&&(f=1,await E.schedule((async()=>{await e(),f=0}))),E),x=s=>{var n;(L&&(n=s?.[0],e(n)==t)?1===s?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===s?.[2]?a.applyChanges:a.setContent)(s)},E={load:async(e,t)=>await D((async()=>{try{x(await s())}catch(s){u?.(s),a.setContent([e,t])}})),startAutoLoad:async(e={},t={})=>(await E.stopAutoLoad().load(e,t),A=c((async(e,t)=>{const a=t?.();await D((async()=>{try{x(a??e?.()??await s())}catch(e){u?.(e)}}))})),E),stopAutoLoad:()=>(A&&(i(A),A=void 0),E),isAutoLoading:()=>!n(A),save:async e=>(1!=f&&(f=2,await E.schedule((async()=>{try{await r(T,e)}catch(e){u?.(e)}f=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),S=a.addDidFinishTransactionListener((()=>{const e=m();H(e)&&E.save((()=>e))})),E),stopAutoSave:()=>(o(S,a.delListener),S=void 0,E),isAutoSaving:()=>!n(S),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(h(p,C),...e),await(async()=>{if(!h(v,C)){for(y(v,C,1);!n((e=h(p,C),M=e.shift()));)try{await M()}catch(e){u?.(e)}y(v,C,0)}var e})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...b};return g(E)})(r,(async()=>{const e=await P();return""!=e[0]?e:void 0}),(async()=>{c(null,null,1,r.getMergeableContentHashes())}),(e=>E=e),(()=>E=void 0),x,!0,{startSync:async(e,t)=>await(await R.startAutoLoad(e,t)).startAutoSave(),stopSync:()=>R.stopAutoLoad().stopAutoSave(),destroy:()=>(H(),R.stopSync()),getSynchronizerStats:()=>({})});return R})(r,((e,t,a,s)=>{var o;n(e)?(o=(e,n)=>e!=i?n(i,t,a,s):0,((e,t)=>{e?.forEach(t)})(H,((e,t)=>o(t,e)))):h(H,e)?.(i,t,a,s)}),(e=>{y(H,i,e)}),(()=>{u(H,i)}),.001,c)};export{D as createLocalSynchronizer};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>typeof e,t="",a=e(t),s=Promise,n=Math.max,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),c=e=>new s(e),g=Object,l=e=>g.getPrototypeOf(e),d=g.keys,u=g.freeze,y=e=>(e=>!o(e)&&r(l(e),(e=>e==g.prototype||o(l(e))),(()=>!0)))(e)&&0==(e=>d(e).length)(e),h=JSON.parse,w=(e,t)=>e?.delete(t),p=e=>new Map(e),v=(e,t)=>e?.get(t),b=(e,t,a)=>o(a)?(w(e,t),e):e?.set(t,a),S=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(v(e,t)):b(e,t,a()),v(e,t)},f=p(),C=p(),M=new globalThis.TextEncoder,A=2**36,L=2**30,T=2**24,m=2**18,H=4096,O=64,E=e=>String.fromCharCode(48+(63&e)),x=(e,t)=>((e,t)=>e.charCodeAt(t))(e,t)-48,D=async(s,l,d,D)=>{let N;const I=(e,t)=>l.addEventListener(e,t),P=((s,i,g,l,d=1,h)=>{let D;const[N]=(e=>{let t=0,a=-1;const s=(e=>{let t=2166136261;var a;return a=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},M.encode(e).forEach(a),t>>>0})(e),r=e=>{const s=t,[r,i]=o(e)||""==e?[0,0]:[x(c=e,0)*A+x(c,1)*L+x(c,2)*T+x(c,3)*m+x(c,4)*H+x(c,5)*O+x(c,6),x(c,7)*m+x(c,8)*H+x(c,9)*O+x(c,10),x(c,11)*T+x(c,12)*m+x(c,13)*H+x(c,14)*O+x(c,15)];var c;t=n(s,r,Date.now()),a=t==s?t==r?n(a,i):a:t==r?i:-1};return[()=>{return r(),n=++a,o=s,E((e=t)/A)+E(e/L)+E(e/T)+E(e/m)+E(e/H)+E(e/O)+E(e)+E(n/m)+E(n/H)+E(n/O)+E(n)+E(o/T)+E(o/m)+E(o/H)+E(o/O)+E(o);var e,n,o},r]})(s.getId()),I=p();g(((e,t,a,n)=>{0==a?r(v(I,t),(([t,a])=>o(t)||t==e?a(n,e):0)):1==a&&J.isAutoLoading()?z(e,n).then((e=>D?.(void 0,(()=>e)))):r(2==a&&J.isAutoSaving()?s.getMergeableContentHashes():3==a?s.getMergeableTableIdsDiff(n):4==a?s.getMergeableRowIdsDiff(n):5==a?s.getMergeableTablesChanges(n):6==a?s.getMergeableValuesChanges(n):void 0,(a=>{i(e,t,0,a)}))}));const P=async(e,t,a="")=>c(((s,n)=>{const o=N(),r=setTimeout((()=>{w(I,o),n(`No response from ${e??"anyone"} to '${t}'`)}),1e3*d);b(I,o,[e,(e,t)=>{clearTimeout(r),w(I,o),s([e,t])}]),i(e,o,t,a)})),z=async(e=null,a)=>{o(a)&&([a,e]=await P(e,2));const[n,[r,i]]=a,[,[c,g]]=s.getMergeableContentHashes(),l=[t,[[t,{}],[t,{}],1]];return c!=r&&(l[0]=n,l[1][0]=(await P(e,5,s.getMergeableCellHashes((await P(e,4,s.getMergeableRowHashes((await P(e,3,s.getMergeableTableHashes()))[0])))[0])))[0]),g!=i&&(l[0]=n,l[1][1]=(await P(e,6,s.getMergeableValuesHashes()))[0]),l},J=((t,s,n,i,c,g,l,d={},h=[])=>{let w,p,M,A=0;S(f,h,(()=>0)),S(C,h,(()=>[]));const[L,T,m,H]=((e,t)=>!e||o(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!y(e)||!y(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!y(e)||!y(t)])(l,t),O=async e=>(2!=A&&(A=1,await x.schedule((async()=>{await e(),A=0}))),x),E=s=>{var n;(L&&(n=s?.[0],e(n)==a)?1===s?.[1][2]?t.applyMergeableChanges:t.setMergeableContent:1===s?.[2]?t.applyChanges:t.setContent)(s)},x={load:async(e,a)=>await O((async()=>{try{E(await s())}catch(s){g?.(s),t.setContent([e,a])}})),startAutoLoad:async(e={},t={})=>(await x.stopAutoLoad().load(e,t),p=i((async(e,t)=>{const a=t?.();await O((async()=>{try{E(a??e?.()??await s())}catch(e){g?.(e)}}))})),x),stopAutoLoad:()=>(p&&(c(p),p=void 0),x),isAutoLoading:()=>!o(p),save:async e=>(1!=A&&(A=2,await x.schedule((async()=>{try{await n(T,e)}catch(e){g?.(e)}A=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),M=t.addDidFinishTransactionListener((()=>{const e=m();H(e)&&x.save((()=>e))})),x),stopAutoSave:()=>(r(M,t.delListener),M=void 0,x),isAutoSaving:()=>!o(M),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(v(C,h),...e),await(async()=>{if(!v(f,h)){for(b(f,h,1);!o((e=v(C,h),w=e.shift()));)try{await w()}catch(e){g?.(e)}b(f,h,0)}var e})(),x),getStore:()=>t,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...d};return u(x)})(s,(async()=>{const e=await z();return e[0]!=t?e:void 0}),(async()=>{i(null,null,1,s.getMergeableContentHashes())}),(e=>D=e),(()=>D=void 0),h,!0,{startSync:async(e,t)=>await(await J.startAutoLoad(e,t)).startAutoSave(),stopSync:()=>J.stopAutoLoad().stopAutoSave(),destroy:()=>(l(),J.stopSync()),getSynchronizerStats:()=>({})});return J})(s,((e,...a)=>{l.send((e??t)+"\n"+JSON.stringify(a,((e,t)=>t instanceof Map?g.fromEntries([...t]):t)))}),(e=>{N=e}),(()=>{l.close()}),d,D);return I("message",(({data:e})=>{if(!o(N)){const t=e.toString("utf8").indexOf("\n");-1!==t&&N(i(e,0,t),...h(i(e,t+1)))}})),c(((e,t)=>{l.readyState!=l.OPEN?(I("error",t),I("open",(()=>e(P)))):e(P)}))};export{D as createWsSynchronizer};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=(e,n,o)=>e.slice(n,o),n=(e,n)=>e?.delete(n),o=o=>{const t=new Map(void 0);return o.on("connection",((o,s)=>{const c=s.headers["sec-websocket-key"];var r,a,d;r=t,a=c,null==(d=o)?n(r,a):r?.set(a,d),o.on("message",(n=>{const o=n.toString("utf8"),s=o.indexOf("\n");if(-1!==s){const n=e(o,0,s),r=e(o,s+1);""===n?((e,n)=>{var o;o=e,o?.forEach(((e,n)=>{return o=e,n!=c?o.send(c+"\n"+r):0;var o}))})(t):((e,n)=>e?.get(n))(t,n)?.send(c+"\n"+r)}})),o.on("close",(()=>{n(t,c)}))})),{getWebSocketServer:()=>o,destroy:()=>{o.close(),t.clear()}}};export{o as createWsServer};
|
|
Binary file
|