tinybase 1.2.1 → 1.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/debug/checkpoints.js +8 -14
- package/lib/debug/indexes.js +4 -5
- package/lib/debug/metrics.js +4 -5
- package/lib/debug/relationships.js +4 -5
- package/lib/debug/store.d.ts +297 -1
- package/lib/debug/store.js +152 -124
- package/lib/debug/tinybase.js +156 -133
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/relationships.js +1 -1
- package/lib/relationships.js.gz +0 -0
- package/lib/store.d.ts +297 -1
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/package.json +13 -13
- package/readme.md +2 -2
package/lib/debug/tinybase.js
CHANGED
|
@@ -81,10 +81,9 @@ const mapForEach = (map, cb) =>
|
|
|
81
81
|
collForEach(map, (value, key) => cb(key, value));
|
|
82
82
|
const mapSet = (map, key, value) =>
|
|
83
83
|
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
84
|
-
const mapEnsure = (map, key,
|
|
84
|
+
const mapEnsure = (map, key, getDefaultValue) => {
|
|
85
85
|
if (!collHas(map, key)) {
|
|
86
|
-
|
|
87
|
-
map.set(key, defaultValue);
|
|
86
|
+
map.set(key, getDefaultValue());
|
|
88
87
|
}
|
|
89
88
|
return mapGet(map, key);
|
|
90
89
|
};
|
|
@@ -236,11 +235,11 @@ const getCreateFunction = (getFunction) => {
|
|
|
236
235
|
const addDeepSet = (deepSet, value, ids) =>
|
|
237
236
|
arrayLength(ids) < 2
|
|
238
237
|
? setAdd(
|
|
239
|
-
arrayIsEmpty(ids) ? deepSet : mapEnsure(deepSet, ids[0], setNew
|
|
238
|
+
arrayIsEmpty(ids) ? deepSet : mapEnsure(deepSet, ids[0], setNew),
|
|
240
239
|
value,
|
|
241
240
|
)
|
|
242
241
|
: addDeepSet(
|
|
243
|
-
mapEnsure(deepSet, ids[0], mapNew
|
|
242
|
+
mapEnsure(deepSet, ids[0], mapNew),
|
|
244
243
|
value,
|
|
245
244
|
arrayFromSecond(ids),
|
|
246
245
|
);
|
|
@@ -375,16 +374,11 @@ const createCheckpoints = getCreateFunction((store) => {
|
|
|
375
374
|
currentId = void 0;
|
|
376
375
|
checkpointsChanged = 1;
|
|
377
376
|
});
|
|
378
|
-
const table = mapEnsure(delta, tableId, mapNew
|
|
379
|
-
const row = mapEnsure(table, rowId, mapNew
|
|
380
|
-
const oldNew = mapEnsure(
|
|
381
|
-
row,
|
|
382
|
-
cellId,
|
|
383
|
-
[void 0, void 0],
|
|
384
|
-
(addOldNew) => (addOldNew[0] = oldCell),
|
|
385
|
-
);
|
|
377
|
+
const table = mapEnsure(delta, tableId, mapNew);
|
|
378
|
+
const row = mapEnsure(table, rowId, mapNew);
|
|
379
|
+
const oldNew = mapEnsure(row, cellId, () => [oldCell, void 0]);
|
|
386
380
|
oldNew[1] = newCell;
|
|
387
|
-
if (oldNew[0] ===
|
|
381
|
+
if (oldNew[0] === newCell) {
|
|
388
382
|
if (collIsEmpty(mapSet(row, cellId))) {
|
|
389
383
|
if (collIsEmpty(mapSet(table, rowId))) {
|
|
390
384
|
if (collIsEmpty(mapSet(delta, tableId))) {
|
|
@@ -1236,6 +1230,7 @@ const idsChanged = (ids, id, added) =>
|
|
|
1236
1230
|
mapSet(ids, id, mapGet(ids, id) == -added ? void 0 : added);
|
|
1237
1231
|
const createStore = () => {
|
|
1238
1232
|
let hasSchema;
|
|
1233
|
+
let cellsTouched;
|
|
1239
1234
|
let nextRowId = 0;
|
|
1240
1235
|
let transactions = 0;
|
|
1241
1236
|
const changedTableIds = mapNew();
|
|
@@ -1254,6 +1249,7 @@ const createStore = () => {
|
|
|
1254
1249
|
const cellIdsListeners = mapNewPair();
|
|
1255
1250
|
const cellListeners = mapNewPair();
|
|
1256
1251
|
const invalidCellListeners = mapNewPair();
|
|
1252
|
+
const finishTransactionListeners = mapNewPair(setNew);
|
|
1257
1253
|
const [addListener, callListeners, delListenerImpl, callListenerImpl] =
|
|
1258
1254
|
getListenerFunctions(() => store);
|
|
1259
1255
|
const validateSchema = (schema) =>
|
|
@@ -1336,7 +1332,7 @@ const createStore = () => {
|
|
|
1336
1332
|
const rowDefaulted = mapNew();
|
|
1337
1333
|
const rowNonDefaulted = setNew();
|
|
1338
1334
|
transformMap(
|
|
1339
|
-
mapEnsure(schemaMap, tableId, mapNew
|
|
1335
|
+
mapEnsure(schemaMap, tableId, mapNew),
|
|
1340
1336
|
tableSchema,
|
|
1341
1337
|
(tableSchemaMap, cellId, cellSchema) => {
|
|
1342
1338
|
mapSet(tableSchemaMap, cellId, cellSchema);
|
|
@@ -1363,18 +1359,20 @@ const createStore = () => {
|
|
|
1363
1359
|
);
|
|
1364
1360
|
const setValidTable = (tableId, table) =>
|
|
1365
1361
|
transformMap(
|
|
1366
|
-
mapEnsure(tablesMap, tableId,
|
|
1367
|
-
tableIdsChanged(tableId, 1)
|
|
1368
|
-
|
|
1362
|
+
mapEnsure(tablesMap, tableId, () => {
|
|
1363
|
+
tableIdsChanged(tableId, 1);
|
|
1364
|
+
return mapNew();
|
|
1365
|
+
}),
|
|
1369
1366
|
table,
|
|
1370
1367
|
(tableMap, rowId, row) => setValidRow(tableId, tableMap, rowId, row),
|
|
1371
1368
|
(tableMap, rowId) => delValidRow(tableId, tableMap, rowId),
|
|
1372
1369
|
);
|
|
1373
1370
|
const setValidRow = (tableId, tableMap, rowId, newRow, forceDel) =>
|
|
1374
1371
|
transformMap(
|
|
1375
|
-
mapEnsure(tableMap, rowId,
|
|
1376
|
-
rowIdsChanged(tableId, rowId, 1)
|
|
1377
|
-
|
|
1372
|
+
mapEnsure(tableMap, rowId, () => {
|
|
1373
|
+
rowIdsChanged(tableId, rowId, 1);
|
|
1374
|
+
return mapNew();
|
|
1375
|
+
}),
|
|
1378
1376
|
newRow,
|
|
1379
1377
|
(rowMap, cellId, cell) =>
|
|
1380
1378
|
setValidCell(tableId, rowId, rowMap, cellId, cell),
|
|
@@ -1437,25 +1435,25 @@ const createStore = () => {
|
|
|
1437
1435
|
const tableIdsChanged = (tableId, added) =>
|
|
1438
1436
|
idsChanged(changedTableIds, tableId, added);
|
|
1439
1437
|
const rowIdsChanged = (tableId, rowId, added) =>
|
|
1440
|
-
idsChanged(mapEnsure(changedRowIds, tableId, mapNew
|
|
1438
|
+
idsChanged(mapEnsure(changedRowIds, tableId, mapNew), rowId, added);
|
|
1441
1439
|
const cellIdsChanged = (tableId, rowId, cellId, added) =>
|
|
1442
1440
|
idsChanged(
|
|
1443
|
-
mapEnsure(mapEnsure(changedCellIds, tableId, mapNew
|
|
1441
|
+
mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
|
|
1444
1442
|
cellId,
|
|
1445
1443
|
added,
|
|
1446
1444
|
);
|
|
1447
1445
|
const cellChanged = (tableId, rowId, cellId, oldCell, newCell) =>
|
|
1448
1446
|
(mapEnsure(
|
|
1449
|
-
mapEnsure(mapEnsure(changedCells, tableId, mapNew
|
|
1447
|
+
mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
|
|
1450
1448
|
cellId,
|
|
1451
|
-
[oldCell],
|
|
1449
|
+
() => [oldCell, 0],
|
|
1452
1450
|
)[1] = newCell);
|
|
1453
1451
|
const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
|
|
1454
1452
|
arrayPush(
|
|
1455
1453
|
mapEnsure(
|
|
1456
|
-
mapEnsure(mapEnsure(invalidCells, tableId, mapNew
|
|
1454
|
+
mapEnsure(mapEnsure(invalidCells, tableId, mapNew), rowId, mapNew),
|
|
1457
1455
|
cellId,
|
|
1458
|
-
[],
|
|
1456
|
+
() => [],
|
|
1459
1457
|
),
|
|
1460
1458
|
invalidCell,
|
|
1461
1459
|
);
|
|
@@ -1484,75 +1482,73 @@ const createStore = () => {
|
|
|
1484
1482
|
)
|
|
1485
1483
|
: 0;
|
|
1486
1484
|
const callListenersForChanges = (mutator) => {
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
collForEach(
|
|
1508
|
-
collForEach(rowCellIds, (changedIds, rowId) => {
|
|
1509
|
-
if (!collIsEmpty(changedIds)) {
|
|
1510
|
-
callListeners(cellIdsListeners[mutator], [tableId, rowId]);
|
|
1511
|
-
}
|
|
1512
|
-
}),
|
|
1513
|
-
);
|
|
1514
|
-
collForEach(changes[1], (changedIds, tableId) => {
|
|
1485
|
+
const emptyIdListeners =
|
|
1486
|
+
collIsEmpty(cellIdsListeners[mutator]) &&
|
|
1487
|
+
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
1488
|
+
collIsEmpty(tableIdsListeners[mutator]);
|
|
1489
|
+
const emptyOtherListeners =
|
|
1490
|
+
collIsEmpty(cellListeners[mutator]) &&
|
|
1491
|
+
collIsEmpty(rowListeners[mutator]) &&
|
|
1492
|
+
collIsEmpty(tableListeners[mutator]) &&
|
|
1493
|
+
collIsEmpty(tablesListeners[mutator]);
|
|
1494
|
+
if (!(emptyIdListeners && emptyOtherListeners)) {
|
|
1495
|
+
const changes = mutator
|
|
1496
|
+
? [
|
|
1497
|
+
mapClone(changedTableIds),
|
|
1498
|
+
mapClone2(changedRowIds),
|
|
1499
|
+
mapClone(changedCellIds, mapClone2),
|
|
1500
|
+
mapClone(changedCells, mapClone2),
|
|
1501
|
+
]
|
|
1502
|
+
: [changedTableIds, changedRowIds, changedCellIds, changedCells];
|
|
1503
|
+
if (!emptyIdListeners) {
|
|
1504
|
+
collForEach(changes[2], (rowCellIds, tableId) =>
|
|
1505
|
+
collForEach(rowCellIds, (changedIds, rowId) => {
|
|
1515
1506
|
if (!collIsEmpty(changedIds)) {
|
|
1516
|
-
callListeners(
|
|
1507
|
+
callListeners(cellIdsListeners[mutator], [tableId, rowId]);
|
|
1517
1508
|
}
|
|
1518
|
-
})
|
|
1519
|
-
|
|
1520
|
-
|
|
1509
|
+
}),
|
|
1510
|
+
);
|
|
1511
|
+
collForEach(changes[1], (changedIds, tableId) => {
|
|
1512
|
+
if (!collIsEmpty(changedIds)) {
|
|
1513
|
+
callListeners(rowIdsListeners[mutator], [tableId]);
|
|
1521
1514
|
}
|
|
1515
|
+
});
|
|
1516
|
+
if (!collIsEmpty(changes[0])) {
|
|
1517
|
+
callListeners(tableIdsListeners[mutator]);
|
|
1522
1518
|
}
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
cellListeners[mutator],
|
|
1533
|
-
[tableId, rowId, cellId],
|
|
1534
|
-
newCell,
|
|
1535
|
-
oldCell,
|
|
1536
|
-
getCellChange,
|
|
1537
|
-
);
|
|
1538
|
-
tablesChanged = tableChanged = rowChanged = 1;
|
|
1539
|
-
}
|
|
1540
|
-
});
|
|
1541
|
-
if (rowChanged) {
|
|
1519
|
+
}
|
|
1520
|
+
if (!emptyOtherListeners) {
|
|
1521
|
+
let tablesChanged;
|
|
1522
|
+
collForEach(changes[3], (rows, tableId) => {
|
|
1523
|
+
let tableChanged;
|
|
1524
|
+
collForEach(rows, (cells, rowId) => {
|
|
1525
|
+
let rowChanged;
|
|
1526
|
+
collForEach(cells, ([oldCell, newCell], cellId) => {
|
|
1527
|
+
if (newCell !== oldCell) {
|
|
1542
1528
|
callListeners(
|
|
1543
|
-
|
|
1544
|
-
[tableId, rowId],
|
|
1529
|
+
cellListeners[mutator],
|
|
1530
|
+
[tableId, rowId, cellId],
|
|
1531
|
+
newCell,
|
|
1532
|
+
oldCell,
|
|
1545
1533
|
getCellChange,
|
|
1546
1534
|
);
|
|
1535
|
+
tablesChanged = tableChanged = rowChanged = 1;
|
|
1547
1536
|
}
|
|
1548
1537
|
});
|
|
1549
|
-
if (
|
|
1550
|
-
callListeners(
|
|
1538
|
+
if (rowChanged) {
|
|
1539
|
+
callListeners(
|
|
1540
|
+
rowListeners[mutator],
|
|
1541
|
+
[tableId, rowId],
|
|
1542
|
+
getCellChange,
|
|
1543
|
+
);
|
|
1551
1544
|
}
|
|
1552
1545
|
});
|
|
1553
|
-
if (
|
|
1554
|
-
callListeners(
|
|
1546
|
+
if (tableChanged) {
|
|
1547
|
+
callListeners(tableListeners[mutator], [tableId], getCellChange);
|
|
1555
1548
|
}
|
|
1549
|
+
});
|
|
1550
|
+
if (tablesChanged) {
|
|
1551
|
+
callListeners(tablesListeners[mutator], [], getCellChange);
|
|
1556
1552
|
}
|
|
1557
1553
|
}
|
|
1558
1554
|
}
|
|
@@ -1681,61 +1677,79 @@ const createStore = () => {
|
|
|
1681
1677
|
if (transactions == -1) {
|
|
1682
1678
|
return;
|
|
1683
1679
|
}
|
|
1684
|
-
|
|
1680
|
+
startTransaction();
|
|
1685
1681
|
const result = actions?.();
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
table,
|
|
1699
|
-
(row) =>
|
|
1700
|
-
mapToObj(
|
|
1701
|
-
row,
|
|
1702
|
-
(cells) => [...cells],
|
|
1703
|
-
([oldCell, newCell]) => oldCell === newCell,
|
|
1704
|
-
),
|
|
1705
|
-
objIsEmpty,
|
|
1706
|
-
),
|
|
1707
|
-
objIsEmpty,
|
|
1708
|
-
),
|
|
1709
|
-
mapToObj(invalidCells, (map) => mapToObj(map, mapToObj)),
|
|
1710
|
-
)
|
|
1711
|
-
) {
|
|
1682
|
+
finishTransaction(doRollback);
|
|
1683
|
+
return result;
|
|
1684
|
+
};
|
|
1685
|
+
const startTransaction = () => {
|
|
1686
|
+
transactions++;
|
|
1687
|
+
return store;
|
|
1688
|
+
};
|
|
1689
|
+
const finishTransaction = (doRollback) => {
|
|
1690
|
+
if (transactions > 0) {
|
|
1691
|
+
transactions--;
|
|
1692
|
+
if (transactions == 0) {
|
|
1693
|
+
cellsTouched = !collIsEmpty(changedCells);
|
|
1712
1694
|
transactions = 1;
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1695
|
+
callInvalidCellListeners(1);
|
|
1696
|
+
if (cellsTouched) {
|
|
1697
|
+
callListenersForChanges(1);
|
|
1698
|
+
}
|
|
1699
|
+
transactions = -1;
|
|
1700
|
+
if (
|
|
1701
|
+
doRollback?.(
|
|
1702
|
+
mapToObj(
|
|
1703
|
+
changedCells,
|
|
1704
|
+
(table) =>
|
|
1705
|
+
mapToObj(
|
|
1706
|
+
table,
|
|
1707
|
+
(row) =>
|
|
1708
|
+
mapToObj(
|
|
1709
|
+
row,
|
|
1710
|
+
(cells) => [...cells],
|
|
1711
|
+
([oldCell, newCell]) => oldCell === newCell,
|
|
1712
|
+
),
|
|
1713
|
+
objIsEmpty,
|
|
1714
|
+
),
|
|
1715
|
+
objIsEmpty,
|
|
1719
1716
|
),
|
|
1720
|
-
|
|
1717
|
+
mapToObj(invalidCells, (map) => mapToObj(map, mapToObj)),
|
|
1718
|
+
)
|
|
1719
|
+
) {
|
|
1720
|
+
transactions = 1;
|
|
1721
|
+
collForEach(changedCells, (table, tableId) =>
|
|
1722
|
+
collForEach(table, (row, rowId) =>
|
|
1723
|
+
collForEach(row, ([oldCell], cellId) =>
|
|
1724
|
+
isUndefined(oldCell)
|
|
1725
|
+
? delCell(tableId, rowId, cellId, true)
|
|
1726
|
+
: setCell(tableId, rowId, cellId, oldCell),
|
|
1727
|
+
),
|
|
1728
|
+
),
|
|
1729
|
+
);
|
|
1730
|
+
transactions = -1;
|
|
1731
|
+
cellsTouched = false;
|
|
1732
|
+
}
|
|
1733
|
+
callListeners(finishTransactionListeners[0], [], cellsTouched);
|
|
1734
|
+
callInvalidCellListeners(0);
|
|
1735
|
+
if (cellsTouched) {
|
|
1736
|
+
callListenersForChanges(0);
|
|
1737
|
+
}
|
|
1738
|
+
callListeners(finishTransactionListeners[1], [], cellsTouched);
|
|
1739
|
+
transactions = 0;
|
|
1740
|
+
arrayForEach(
|
|
1741
|
+
[
|
|
1742
|
+
changedCells,
|
|
1743
|
+
invalidCells,
|
|
1744
|
+
changedTableIds,
|
|
1745
|
+
changedRowIds,
|
|
1746
|
+
changedCellIds,
|
|
1747
|
+
],
|
|
1748
|
+
collClear,
|
|
1721
1749
|
);
|
|
1722
|
-
transactions = -1;
|
|
1723
1750
|
}
|
|
1724
|
-
callInvalidCellListeners(0);
|
|
1725
|
-
callListenersForChanges(0);
|
|
1726
|
-
transactions = 0;
|
|
1727
|
-
arrayForEach(
|
|
1728
|
-
[
|
|
1729
|
-
changedCells,
|
|
1730
|
-
invalidCells,
|
|
1731
|
-
changedTableIds,
|
|
1732
|
-
changedRowIds,
|
|
1733
|
-
changedCellIds,
|
|
1734
|
-
],
|
|
1735
|
-
collClear,
|
|
1736
|
-
);
|
|
1737
1751
|
}
|
|
1738
|
-
return
|
|
1752
|
+
return store;
|
|
1739
1753
|
};
|
|
1740
1754
|
const forEachTable = (tableCallback) =>
|
|
1741
1755
|
collForEach(tablesMap, (tableMap, tableId) =>
|
|
@@ -1777,6 +1791,10 @@ const createStore = () => {
|
|
|
1777
1791
|
rowId,
|
|
1778
1792
|
cellId,
|
|
1779
1793
|
]);
|
|
1794
|
+
const addWillFinishTransactionListener = (listener) =>
|
|
1795
|
+
addListener(listener, finishTransactionListeners[0]);
|
|
1796
|
+
const addDidFinishTransactionListener = (listener) =>
|
|
1797
|
+
addListener(listener, finishTransactionListeners[1]);
|
|
1780
1798
|
const callListener = (listenerId) => {
|
|
1781
1799
|
callListenerImpl(listenerId, [getTableIds, getRowIds, getCellIds], (ids) =>
|
|
1782
1800
|
isUndefined(ids[2]) ? [] : arrayPair(getCell(...ids)),
|
|
@@ -1795,6 +1813,7 @@ const createStore = () => {
|
|
|
1795
1813
|
row: collPairSize(rowListeners, collSize3),
|
|
1796
1814
|
cellIds: collPairSize(cellIdsListeners, collSize3),
|
|
1797
1815
|
cell: collPairSize(cellListeners, collSize4),
|
|
1816
|
+
invalidCell: collPairSize(invalidCellListeners, collSize4),
|
|
1798
1817
|
});
|
|
1799
1818
|
const store = {
|
|
1800
1819
|
getTables,
|
|
@@ -1824,6 +1843,8 @@ const createStore = () => {
|
|
|
1824
1843
|
delCell,
|
|
1825
1844
|
delSchema,
|
|
1826
1845
|
transaction,
|
|
1846
|
+
startTransaction,
|
|
1847
|
+
finishTransaction,
|
|
1827
1848
|
forEachTable,
|
|
1828
1849
|
forEachRow,
|
|
1829
1850
|
forEachCell,
|
|
@@ -1835,6 +1856,8 @@ const createStore = () => {
|
|
|
1835
1856
|
addCellIdsListener,
|
|
1836
1857
|
addCellListener,
|
|
1837
1858
|
addInvalidCellListener,
|
|
1859
|
+
addWillFinishTransactionListener,
|
|
1860
|
+
addDidFinishTransactionListener,
|
|
1838
1861
|
callListener,
|
|
1839
1862
|
delListener,
|
|
1840
1863
|
getListenerStats,
|
package/lib/indexes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),s=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),n=(e,t)=>e.sort(t),o=(e,t)=>e.forEach(t),r=e=>e.length,c=e=>0==r(e),d=e=>e.slice(1),l=e=>null==e,i=(e,t,s)=>l(e)?s?.():t(e),a=(e,t)=>e?.has(t)??!1,h=e=>l(e)||0==(e=>e.size)(e),u=e=>e.clear(),I=(e,t)=>e?.forEach(t),f=(e,t)=>e?.delete(t),g=e=>new Map(e),S=e=>[...e?.keys()??[]],w=(e,t)=>e?.get(t),p=(e,t)=>I(e,((e,s)=>t(s,e))),L=(e,t,s)=>l(s)?(f(e,t),e):e?.set(t,s),x=(e,t,s
|
|
1
|
+
const e=e=>typeof e,t=e(""),s=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),n=(e,t)=>e.sort(t),o=(e,t)=>e.forEach(t),r=e=>e.length,c=e=>0==r(e),d=e=>e.slice(1),l=e=>null==e,i=(e,t,s)=>l(e)?s?.():t(e),a=(e,t)=>e?.has(t)??!1,h=e=>l(e)||0==(e=>e.size)(e),u=e=>e.clear(),I=(e,t)=>e?.forEach(t),f=(e,t)=>e?.delete(t),g=e=>new Map(e),S=e=>[...e?.keys()??[]],w=(e,t)=>e?.get(t),p=(e,t)=>I(e,((e,s)=>t(s,e))),L=(e,t,s)=>l(s)?(f(e,t),e):e?.set(t,s),x=(e,t,s)=>(a(e,t)||e.set(t,s()),w(e,t)),v=e=>new Set(e),E=(e,t)=>e?.add(t),R=(s,n)=>e(s)==t?e=>e(s):s??(()=>n??""),b=(e,t)=>e<t?-1:1,y=(e,t,s)=>r(s)<2?E(c(s)?e:x(e,s[0],v),t):y(x(e,s[0],g),t,d(s)),T=e=>{const t=(s,n,...r)=>i(s,(s=>c(r)?e(s,n):o([r[0],null],(e=>t(w(s,e),n,...d(r))))));return t},k=Object.freeze,z=(e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))})((e=>{const t=g(),c=g(),[d,x,z,C,D,M,j,O,W,m]=((e,t,s)=>{const n=e.hasRow,r=g(),c=g(),d=g(),h=g(),f=g(),x=t=>i(w(f,t),(s=>{I(s,e.delListener),L(f,t)})),E=e=>{L(r,e),L(c,e),L(d,e),L(h,e),x(e)};return[()=>e,()=>S(r),e=>p(c,e),e=>a(c,e),e=>w(r,e),e=>w(c,e),(e,t)=>L(c,e,t),(i,S,E,R,b)=>{const y=g(),T=g();L(r,i,S),a(c,i)||(L(c,i,t()),L(d,i,g()),L(h,i,g()));const k=w(d,i),z=w(h,i),C=t=>{const o=s=>e.getCell(S,t,s),r=w(k,t),c=n(S,t)?s(R(o,t)):void 0;if(r!=c&&L(y,t,[r,c]),!l(b)){const e=w(z,t),s=n(S,t)?b(o,t):void 0;e!=s&&L(T,t,s)}},D=e=>{E((()=>{I(y,(([,e],t)=>L(k,t,e))),I(T,((e,t)=>L(z,t,e)))}),y,T,k,z,e),u(y),u(T)};p(k,C),e.hasTable(S)&&o(e.getRowIds(S),(e=>{a(k,e)||C(e)})),D(!0),x(i),L(f,i,v([e.addRowListener(S,null,((e,t,s)=>C(s))),e.addTableListener(S,(()=>D()))]))},E,()=>p(f,E)]})(e,g,(e=>l(e)?"":e+"")),[q,A,B]=(e=>{let t,s=0;const n=[],c=g();return[(o,r,d=[])=>{t??=e();const l=n.pop()??""+s++;return L(c,l,[o,r,d]),y(r,l,d),l},(e,s=[],...n)=>T(I)(e,(e=>i(w(c,e),(([e])=>e(t,...s,...n)))),...s),e=>i(w(c,e),(([,t,s])=>(T(f)(t,e,...s),L(c,e),r(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>i(w(c,e),(([e,,c])=>{const d=(...i)=>{const a=r(i);a==r(c)?e(t,...i,...n(i)):l(c[a])?o(s[a](...i),(e=>d(...i,e))):d(...i,c[a])};d()}))]})((()=>G)),F=(t,s,n)=>{const o=D(t);I(n,((t,n)=>s(n,(s=>I(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},G={setIndexDefinition:(e,o,r,d,u,S=b)=>{const x=l(u)?void 0:([e],[t])=>u(e,t);return O(e,o,((o,r,u,R,b,y)=>{let T=0;const k=v(),z=v(),C=M(e);if(I(r,(([e,t],s)=>{l(e)||(E(k,e),i(w(C,e),(t=>{f(t,s),h(t)&&(L(C,e),T=1)}))),l(t)||(E(k,t),a(C,t)||(L(C,t,v()),T=1),E(w(C,t),s),l(d)||E(z,t))})),o(),h(b)||(y?p(C,(e=>E(z,e))):p(u,(e=>i(w(R,e),(e=>E(z,e))))),I(z,(e=>{const t=(t,s)=>S(w(b,t),w(b,s),e),o=[...w(C,e)];s(o,t)||(L(C,e,v(n(o,t))),E(k,e))}))),(T||y)&&!l(x)){const t=[...C];s(t,x)||(j(e,g(n(t,x))),T=1)}T&&A(t,[e]),I(k,(t=>A(c,[e,t])))}),R(r),i(d,R)),G},delIndexDefinition:e=>(W(e),G),getStore:d,getIndexIds:x,forEachIndex:e=>z(((t,s)=>e(t,(e=>F(t,e,s))))),forEachSlice:(e,t)=>F(e,t,M(e)),hasIndex:C,hasSlice:(e,t)=>a(M(e),t),getTableId:D,getSliceIds:e=>S(M(e)),getSliceRowIds:(e,t)=>[...w(M(e),t)?.values()??[]],addSliceIdsListener:(e,s)=>q(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>q(s,c,[e,t]),delListener:e=>(B(e),G),destroy:m,getListenerStats:()=>({})};return k(G)}));export{z as createIndexes};
|
package/lib/indexes.js.gz
CHANGED
|
Binary file
|
package/lib/metrics.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),s=e(e),n=(e,t)=>e.forEach(t),o=e=>c(e,((e,t)=>e+t),0),i=e=>e.length,r=e=>0==i(e),c=(e,t,s)=>e.reduce(t,s),a=e=>e.slice(1),d=Math.max,l=Math.min,u=isFinite,h=e=>null==e,v=(e,t,s)=>h(e)?s?.():t(e),g=()=>{},M=e=>e.size,f=(e,t)=>e?.has(t)??!1,p=e=>e.clear(),m=(e,t)=>e?.forEach(t),w=(e,t)=>e?.delete(t),L=e=>new Map(e),b=(e,t)=>e?.get(t),x=(e,t)=>m(e,((e,s)=>t(s,e))),y=(e,t,s)=>h(s)?(w(e,t),e):e?.set(t,s),E=(e,t,s
|
|
1
|
+
const e=e=>typeof e,t=e(""),s=e(e),n=(e,t)=>e.forEach(t),o=e=>c(e,((e,t)=>e+t),0),i=e=>e.length,r=e=>0==i(e),c=(e,t,s)=>e.reduce(t,s),a=e=>e.slice(1),d=Math.max,l=Math.min,u=isFinite,h=e=>null==e,v=(e,t,s)=>h(e)?s?.():t(e),g=()=>{},M=e=>e.size,f=(e,t)=>e?.has(t)??!1,p=e=>e.clear(),m=(e,t)=>e?.forEach(t),w=(e,t)=>e?.delete(t),L=e=>new Map(e),b=(e,t)=>e?.get(t),x=(e,t)=>m(e,((e,s)=>t(s,e))),y=(e,t,s)=>h(s)?(w(e,t),e):e?.set(t,s),E=(e,t,s)=>(f(e,t)||e.set(t,s()),b(e,t)),I=e=>new Set(e),R=(s,n)=>e(s)==t?e=>e(s):s??(()=>n??""),S=(e,t,s)=>i(s)<2?((e,t)=>e?.add(t))(r(s)?e:E(e,s[0],I),t):S(E(e,s[0],L),t,a(s)),T=e=>{const t=(s,o,...i)=>v(s,(s=>r(i)?e(s,o):n([i[0],null],(e=>t(b(s,e),o,...a(i))))));return t},k=Object.freeze,z=L([["avg",[(e,t)=>o(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:d(t,e)]],["min",[e=>l(...e),(e,t)=>l(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:l(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),D=(e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))})((t=>{const o=L(),[r,c,a,d,l,E,D,N,j,C]=((e,t,s)=>{const o=e.hasRow,i=L(),r=L(),c=L(),a=L(),d=L(),l=t=>v(b(d,t),(s=>{m(s,e.delListener),y(d,t)})),u=e=>{y(i,e),y(r,e),y(c,e),y(a,e),l(e)};return[()=>e,()=>[...i?.keys()??[]],e=>x(r,e),e=>f(r,e),e=>b(i,e),e=>b(r,e),(e,t)=>y(r,e,t),(u,v,g,M,w)=>{const E=L(),R=L();y(i,u,v),f(r,u)||(y(r,u,t()),y(c,u,L()),y(a,u,L()));const S=b(c,u),T=b(a,u),k=t=>{const n=s=>e.getCell(v,t,s),i=b(S,t),r=o(v,t)?s(M(n,t)):void 0;if(i!=r&&y(E,t,[i,r]),!h(w)){const e=b(T,t),s=o(v,t)?w(n,t):void 0;e!=s&&y(R,t,s)}},z=e=>{g((()=>{m(E,(([,e],t)=>y(S,t,e))),m(R,((e,t)=>y(T,t,e)))}),E,R,S,T,e),p(E),p(R)};x(S,k),e.hasTable(v)&&n(e.getRowIds(v),(e=>{f(S,e)||k(e)})),z(!0),l(u),y(d,u,I([e.addRowListener(v,null,((e,t,s)=>k(s))),e.addTableListener(v,(()=>z()))]))},u,()=>x(d,u)]})(t,g,(e=>isNaN(e)||h(e)||!0===e||!1===e||""===e?void 0:1*e)),[F,O,W]=(e=>{let t,s=0;const o=[],r=L();return[(n,i,c=[])=>{t??=e();const a=o.pop()??""+s++;return y(r,a,[n,i,c]),S(i,a,c),a},(e,s=[],...n)=>T(m)(e,(e=>v(b(r,e),(([e])=>e(t,...s,...n)))),...s),e=>v(b(r,e),(([,t,s])=>(T(w)(t,e,...s),y(r,e),i(o)<1e3&&o.push(e),s)),(()=>[])),(e,s,o)=>v(b(r,e),(([e,,r])=>{const c=(...a)=>{const d=i(a);d==i(r)?e(t,...a,...o(a)):h(r[d])?n(s[d](...a),(e=>c(...a,e))):c(...a,r[d])};c()}))]})((()=>q)),q={setMetricDefinition:(t,n,i,r,c,a,d)=>{const l=e(i)==s?[i,c,a,d]:b(z,i)??b(z,"sum");return N(t,n,((e,s,n,i,r,c)=>{let a=E(t),d=M(i);const[v,g,f,p]=l;var w;c=c||h(a),m(s,(([e,t])=>{c||(a=h(e)?g?.(a,t,d++):h(t)?f?.(a,e,d--):p?.(a,t,e,d)),c=c||h(a)})),e(),h(w=i)||0==M(w)?a=void 0:c&&(a=v((e=>[...e?.values()??[]])(i),M(i))),u(a)||(a=void 0);const L=E(t);a!=L&&(D(t,a),O(o,[t],a,L))}),R(r,1)),q},delMetricDefinition:e=>(j(e),q),getStore:r,getMetricIds:c,forEachMetric:a,hasMetric:d,getTableId:l,getMetric:E,addMetricListener:(e,t)=>F(t,o,[e]),delListener:e=>(W(e),q),destroy:C,getListenerStats:()=>({})};return k(q)}));export{D as createMetrics};
|
package/lib/metrics.js.gz
CHANGED
|
Binary file
|
package/lib/relationships.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t=e(""),o=(e,t)=>e.forEach(t),s=e=>e.length,n=e=>0==s(e),i=e=>e.slice(1),r=e=>null==e,a=(e,t,o)=>r(e)?o?.():t(e),d=(e,t)=>e?.has(t)??!1,l=e=>[...e?.values()??[]],c=e=>e.clear(),R=(e,t)=>e?.forEach(t),h=(e,t)=>e?.delete(t),f=e=>new Map(e),g=(e,t)=>e?.get(t),u=(e,t)=>R(e,((e,o)=>t(o,e))),w=(e,t,o)=>r(o)?(h(e,t),e):e?.set(t,o),L=(e,t,o
|
|
1
|
+
const e=e=>typeof e,t=e(""),o=(e,t)=>e.forEach(t),s=e=>e.length,n=e=>0==s(e),i=e=>e.slice(1),r=e=>null==e,a=(e,t,o)=>r(e)?o?.():t(e),d=(e,t)=>e?.has(t)??!1,l=e=>[...e?.values()??[]],c=e=>e.clear(),R=(e,t)=>e?.forEach(t),h=(e,t)=>e?.delete(t),f=e=>new Map(e),g=(e,t)=>e?.get(t),u=(e,t)=>R(e,((e,o)=>t(o,e))),w=(e,t,o)=>r(o)?(h(e,t),e):e?.set(t,o),L=(e,t,o)=>(d(e,t)||e.set(t,o()),g(e,t)),p=e=>new Set(e),I=(e,t)=>e?.add(t),b=(o,s)=>e(o)==t?e=>e(o):o??(()=>s??""),v=(e,t,o)=>s(o)<2?I(n(o)?e:L(e,o[0],p),t):v(L(e,o[0],f),t,i(o)),k=e=>{const t=(s,r,...d)=>a(s,(s=>n(d)?e(s,r):o([d[0],null],(e=>t(g(s,e),r,...i(d))))));return t},E=Object.freeze,T=(e=>{const t=new WeakMap;return o=>(t.has(o)||t.set(o,e(o)),t.get(o))})((e=>{const t=f(),n=f(),i=f(),L=f(),[T,m,y,S,z,D,M,j,x,C]=((e,t,s)=>{const n=e.hasRow,i=f(),l=f(),h=f(),L=f(),I=f(),b=t=>a(g(I,t),(o=>{R(o,e.delListener),w(I,t)})),v=e=>{w(i,e),w(l,e),w(h,e),w(L,e),b(e)};return[()=>e,()=>[...i?.keys()??[]],e=>u(l,e),e=>d(l,e),e=>g(i,e),e=>g(l,e),(e,t)=>w(l,e,t),(a,v,k,E,T)=>{const m=f(),y=f();w(i,a,v),d(l,a)||(w(l,a,t()),w(h,a,f()),w(L,a,f()));const S=g(h,a),z=g(L,a),D=t=>{const o=o=>e.getCell(v,t,o),i=g(S,t),a=n(v,t)?s(E(o,t)):void 0;if(i!=a&&w(m,t,[i,a]),!r(T)){const e=g(z,t),s=n(v,t)?T(o,t):void 0;e!=s&&w(y,t,s)}},M=e=>{k((()=>{R(m,(([,e],t)=>w(S,t,e))),R(y,((e,t)=>w(z,t,e)))}),m,y,S,z,e),c(m),c(y)};u(S,D),e.hasTable(v)&&o(e.getRowIds(v),(e=>{d(S,e)||D(e)})),M(!0),b(a),w(I,a,p([e.addRowListener(v,null,((e,t,o)=>D(o))),e.addTableListener(v,(()=>M()))]))},v,()=>u(I,v)]})(e,(()=>[f(),f(),f(),f()]),(e=>r(e)?void 0:e+"")),[O,W,q]=(e=>{let t,n=0;const i=[],d=f();return[(o,s,r=[])=>{t??=e();const a=i.pop()??""+n++;return w(d,a,[o,s,r]),v(s,a,r),a},(e,o=[],...s)=>k(R)(e,(e=>a(g(d,e),(([e])=>e(t,...o,...s)))),...o),e=>a(g(d,e),(([,t,o])=>(k(h)(t,e,...o),w(d,e),s(i)<1e3&&i.push(e),o)),(()=>[])),(e,n,i)=>a(g(d,e),(([e,,a])=>{const d=(...l)=>{const c=s(l);c==s(a)?e(t,...l,...i(l)):r(a[c])?o(n[c](...l),(e=>d(...l,e))):d(...l,a[c])};d()}))]})((()=>G)),A=(e,t,o)=>a(D(e),(([s,,n])=>{if(!d(n,t)){const i=p();if(z(e)!=F(e))I(i,t);else{let e=t;for(;!r(e)&&!d(i,e);)I(i,e),e=g(s,e)}if(o)return i;w(n,t,i)}return g(n,t)})),B=(e,t)=>a(D(e),(([,,e])=>w(e,t))),F=e=>g(t,e),G={setRelationshipDefinition:(e,o,s,l)=>(w(t,e,s),j(e,o,((t,o)=>{const s=p(),l=p(),c=p(),[f,b]=D(e);R(o,(([t,o],n)=>{r(t)||(I(l,t),a(g(b,t),(e=>{var o;h(e,n),(r(o=e)||0==(e=>e.size)(o))&&w(b,t)}))),r(o)||(I(l,o),d(b,o)||w(b,o,p()),I(g(b,o),n)),I(s,n),w(f,n,o),u(g(L,e),(t=>{d(A(e,t),n)&&I(c,t)}))})),t(),R(s,(t=>W(n,[e,t]))),R(l,(t=>W(i,[e,t]))),R(c,(t=>{B(e,t),W(L,[e,t])}))}),b(l)),G),delRelationshipDefinition:e=>(w(t,e),x(e),G),getStore:T,getRelationshipIds:m,forEachRelationship:t=>y((o=>t(o,(t=>e.forEachRow(z(o),t))))),hasRelationship:S,getLocalTableId:z,getRemoteTableId:F,getRemoteRowId:(e,t)=>g(D(e)?.[0],t),getLocalRowIds:(e,t)=>l(g(D(e)?.[1],t)),getLinkedRowIds:(e,t)=>r(D(e))?[t]:l(A(e,t,!0)),addRemoteRowIdListener:(e,t,o)=>O(o,n,[e,t]),addLocalRowIdsListener:(e,t,o)=>O(o,i,[e,t]),addLinkedRowIdsListener:(e,t,o)=>(A(e,t),O(o,L,[e,t])),delListener:e=>(B(...q(e)),G),destroy:C,getListenerStats:()=>({})};return E(G)}));export{T as createRelationships};
|
package/lib/relationships.js.gz
CHANGED
|
Binary file
|