@graffy/common 0.16.0-alpha.10 → 0.16.0-alpha.12
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/index.cjs +51 -47
- package/index.mjs +51 -47
- package/package.json +3 -3
- package/types/ops/finalize.d.ts +8 -1
package/index.cjs
CHANGED
|
@@ -118,6 +118,9 @@ const stringifyDescriptor = {
|
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
120
|
function addStringify(buffer) {
|
|
121
|
+
if (Object.hasOwn(buffer, "toJSON") || Object.hasOwn(buffer, "toString") || Object.hasOwn(buffer, Symbol.for("nodejs.util.inspect.custom"))) {
|
|
122
|
+
return buffer;
|
|
123
|
+
}
|
|
121
124
|
Object.defineProperties(buffer, {
|
|
122
125
|
toJSON: stringifyDescriptor,
|
|
123
126
|
toString: stringifyDescriptor,
|
|
@@ -282,10 +285,12 @@ function keyStep(key) {
|
|
|
282
285
|
switch (key[l]) {
|
|
283
286
|
case 0:
|
|
284
287
|
newKey = key.slice(0, l);
|
|
288
|
+
addStringify(newKey);
|
|
285
289
|
step = 1;
|
|
286
290
|
break;
|
|
287
291
|
case 255:
|
|
288
292
|
newKey = key.slice(0, l);
|
|
293
|
+
addStringify(newKey);
|
|
289
294
|
newKey[l - 1]++;
|
|
290
295
|
step = -1;
|
|
291
296
|
break;
|
|
@@ -293,7 +298,7 @@ function keyStep(key) {
|
|
|
293
298
|
newKey = key;
|
|
294
299
|
step = 0;
|
|
295
300
|
}
|
|
296
|
-
return { key:
|
|
301
|
+
return { key: newKey, step };
|
|
297
302
|
}
|
|
298
303
|
function keyBefore(key) {
|
|
299
304
|
if (isMinKey(key) || isMaxKey(key))
|
|
@@ -1016,7 +1021,7 @@ function setVersion(graph, version, onlyIfZero = false) {
|
|
|
1016
1021
|
if (!onlyIfZero || !node.version)
|
|
1017
1022
|
node.version = version;
|
|
1018
1023
|
if (node.children)
|
|
1019
|
-
setVersion(node.children, version);
|
|
1024
|
+
setVersion(node.children, version, onlyIfZero);
|
|
1020
1025
|
}
|
|
1021
1026
|
return graph;
|
|
1022
1027
|
}
|
|
@@ -1038,13 +1043,13 @@ function getKnown(graph, version = 0) {
|
|
|
1038
1043
|
}
|
|
1039
1044
|
return query;
|
|
1040
1045
|
}
|
|
1041
|
-
function finalize(graph, query, version = Date.now()
|
|
1046
|
+
function finalize(graph, query, version = Date.now()) {
|
|
1042
1047
|
let result = [{ key: MIN_KEY, end: MAX_KEY, version: 0 }];
|
|
1043
1048
|
merge(result, graph);
|
|
1044
1049
|
if (query)
|
|
1045
1050
|
result = slice(result, query).known || [];
|
|
1046
|
-
if (!
|
|
1047
|
-
result = setVersion(result, version);
|
|
1051
|
+
if (!version !== false)
|
|
1052
|
+
result = setVersion(result, version, true);
|
|
1048
1053
|
return result;
|
|
1049
1054
|
}
|
|
1050
1055
|
const PRE_CHI_PUT = Symbol("PREFIX_CHILDREN_$PUT");
|
|
@@ -1506,45 +1511,47 @@ function encode(value, { version, isGraph } = {}) {
|
|
|
1506
1511
|
if (typeof object === "object" && object && isEmpty(object))
|
|
1507
1512
|
return;
|
|
1508
1513
|
const { $key, $ver, $ref, $val, $chi, $put, ...props2 } = object || {};
|
|
1509
|
-
if (typeof object === "object" && object && !Array.isArray(object)) {
|
|
1510
|
-
object = Object.fromEntries(
|
|
1511
|
-
Object.entries({ $key, $ver, $ref, $val, $chi, $put, ...props2 }).filter(
|
|
1512
|
-
([_, val]) => isDef(val)
|
|
1513
|
-
)
|
|
1514
|
-
);
|
|
1515
|
-
}
|
|
1516
1514
|
if (isDef($ver))
|
|
1517
1515
|
ver = $ver;
|
|
1518
1516
|
if (isPlainObject($key)) {
|
|
1519
1517
|
const [page, filter] = splitArgs($key);
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1518
|
+
if (page) {
|
|
1519
|
+
if (typeof object === "object" && object && !Array.isArray(object)) {
|
|
1520
|
+
object = {
|
|
1521
|
+
...Object.fromEntries(
|
|
1522
|
+
Object.entries({
|
|
1523
|
+
$key,
|
|
1524
|
+
$ver,
|
|
1525
|
+
$ref,
|
|
1526
|
+
$val,
|
|
1527
|
+
$chi,
|
|
1528
|
+
$put
|
|
1529
|
+
}).filter(([_, val]) => isDef(val))
|
|
1530
|
+
),
|
|
1531
|
+
...props2
|
|
1532
|
+
};
|
|
1533
|
+
}
|
|
1534
|
+
const foundPuts = parentPuts.filter(([_, putFilter]) => isEqual__default.default(filter, putFilter)).map(([range]) => range);
|
|
1535
|
+
if (isGraph && !isDef(page.$cursor) && ($ref || $val || $chi || $put || !isEmpty(props2))) {
|
|
1536
|
+
object.$key = filter || {};
|
|
1537
|
+
object.$put = foundPuts;
|
|
1538
|
+
const node2 = makeNode2(object, key, ver);
|
|
1539
|
+
if (!filter)
|
|
1540
|
+
node2.key = MIN_KEY;
|
|
1541
|
+
node2.prefix = true;
|
|
1542
|
+
return node2;
|
|
1543
|
+
}
|
|
1544
|
+
if ((!isDef(key) || Number.isInteger(key)) && (filter || isDef(page.$cursor))) {
|
|
1545
|
+
object.$key = isDef(page.$cursor) ? page.$cursor : page;
|
|
1546
|
+
const wrapper = { $key: filter || {}, $chi: [object] };
|
|
1547
|
+
if (isGraph)
|
|
1548
|
+
wrapper.$put = foundPuts;
|
|
1549
|
+
const node2 = makeNode2(wrapper, key, ver);
|
|
1550
|
+
if (!filter)
|
|
1551
|
+
node2.key = MIN_KEY;
|
|
1552
|
+
node2.prefix = true;
|
|
1553
|
+
return node2;
|
|
1554
|
+
}
|
|
1548
1555
|
}
|
|
1549
1556
|
}
|
|
1550
1557
|
let putQuery = [], prefixPuts = [];
|
|
@@ -1617,12 +1624,7 @@ function encode(value, { version, isGraph } = {}) {
|
|
|
1617
1624
|
}
|
|
1618
1625
|
}
|
|
1619
1626
|
if (isGraph && (putQuery === null || putQuery.length)) {
|
|
1620
|
-
node.children = finalize(
|
|
1621
|
-
node.children || [],
|
|
1622
|
-
putQuery,
|
|
1623
|
-
node.version,
|
|
1624
|
-
true
|
|
1625
|
-
);
|
|
1627
|
+
node.children = finalize(node.children || [], putQuery, false);
|
|
1626
1628
|
}
|
|
1627
1629
|
if (((_a2 = node.children) == null ? void 0 : _a2.length) || isDef(node.end) || isDef(node.value) || isDef(node.path)) {
|
|
1628
1630
|
return node;
|
|
@@ -1637,7 +1639,9 @@ function encode(value, { version, isGraph } = {}) {
|
|
|
1637
1639
|
return result;
|
|
1638
1640
|
}
|
|
1639
1641
|
function encodeGraph(obj, version = Date.now()) {
|
|
1640
|
-
|
|
1642
|
+
const encoded = encode(obj, { version, isGraph: true });
|
|
1643
|
+
const versioned = setVersion(encoded, version, true);
|
|
1644
|
+
return versioned;
|
|
1641
1645
|
}
|
|
1642
1646
|
function encodeQuery(obj, version = 0) {
|
|
1643
1647
|
return encode(obj, { version, isGraph: false });
|
package/index.mjs
CHANGED
|
@@ -113,6 +113,9 @@ const stringifyDescriptor = {
|
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
function addStringify(buffer) {
|
|
116
|
+
if (Object.hasOwn(buffer, "toJSON") || Object.hasOwn(buffer, "toString") || Object.hasOwn(buffer, Symbol.for("nodejs.util.inspect.custom"))) {
|
|
117
|
+
return buffer;
|
|
118
|
+
}
|
|
116
119
|
Object.defineProperties(buffer, {
|
|
117
120
|
toJSON: stringifyDescriptor,
|
|
118
121
|
toString: stringifyDescriptor,
|
|
@@ -277,10 +280,12 @@ function keyStep(key) {
|
|
|
277
280
|
switch (key[l]) {
|
|
278
281
|
case 0:
|
|
279
282
|
newKey = key.slice(0, l);
|
|
283
|
+
addStringify(newKey);
|
|
280
284
|
step = 1;
|
|
281
285
|
break;
|
|
282
286
|
case 255:
|
|
283
287
|
newKey = key.slice(0, l);
|
|
288
|
+
addStringify(newKey);
|
|
284
289
|
newKey[l - 1]++;
|
|
285
290
|
step = -1;
|
|
286
291
|
break;
|
|
@@ -288,7 +293,7 @@ function keyStep(key) {
|
|
|
288
293
|
newKey = key;
|
|
289
294
|
step = 0;
|
|
290
295
|
}
|
|
291
|
-
return { key:
|
|
296
|
+
return { key: newKey, step };
|
|
292
297
|
}
|
|
293
298
|
function keyBefore(key) {
|
|
294
299
|
if (isMinKey(key) || isMaxKey(key))
|
|
@@ -1011,7 +1016,7 @@ function setVersion(graph, version, onlyIfZero = false) {
|
|
|
1011
1016
|
if (!onlyIfZero || !node.version)
|
|
1012
1017
|
node.version = version;
|
|
1013
1018
|
if (node.children)
|
|
1014
|
-
setVersion(node.children, version);
|
|
1019
|
+
setVersion(node.children, version, onlyIfZero);
|
|
1015
1020
|
}
|
|
1016
1021
|
return graph;
|
|
1017
1022
|
}
|
|
@@ -1033,13 +1038,13 @@ function getKnown(graph, version = 0) {
|
|
|
1033
1038
|
}
|
|
1034
1039
|
return query;
|
|
1035
1040
|
}
|
|
1036
|
-
function finalize(graph, query, version = Date.now()
|
|
1041
|
+
function finalize(graph, query, version = Date.now()) {
|
|
1037
1042
|
let result = [{ key: MIN_KEY, end: MAX_KEY, version: 0 }];
|
|
1038
1043
|
merge(result, graph);
|
|
1039
1044
|
if (query)
|
|
1040
1045
|
result = slice(result, query).known || [];
|
|
1041
|
-
if (!
|
|
1042
|
-
result = setVersion(result, version);
|
|
1046
|
+
if (!version !== false)
|
|
1047
|
+
result = setVersion(result, version, true);
|
|
1043
1048
|
return result;
|
|
1044
1049
|
}
|
|
1045
1050
|
const PRE_CHI_PUT = Symbol("PREFIX_CHILDREN_$PUT");
|
|
@@ -1501,45 +1506,47 @@ function encode(value, { version, isGraph } = {}) {
|
|
|
1501
1506
|
if (typeof object === "object" && object && isEmpty(object))
|
|
1502
1507
|
return;
|
|
1503
1508
|
const { $key, $ver, $ref, $val, $chi, $put, ...props2 } = object || {};
|
|
1504
|
-
if (typeof object === "object" && object && !Array.isArray(object)) {
|
|
1505
|
-
object = Object.fromEntries(
|
|
1506
|
-
Object.entries({ $key, $ver, $ref, $val, $chi, $put, ...props2 }).filter(
|
|
1507
|
-
([_, val]) => isDef(val)
|
|
1508
|
-
)
|
|
1509
|
-
);
|
|
1510
|
-
}
|
|
1511
1509
|
if (isDef($ver))
|
|
1512
1510
|
ver = $ver;
|
|
1513
1511
|
if (isPlainObject($key)) {
|
|
1514
1512
|
const [page, filter] = splitArgs($key);
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1513
|
+
if (page) {
|
|
1514
|
+
if (typeof object === "object" && object && !Array.isArray(object)) {
|
|
1515
|
+
object = {
|
|
1516
|
+
...Object.fromEntries(
|
|
1517
|
+
Object.entries({
|
|
1518
|
+
$key,
|
|
1519
|
+
$ver,
|
|
1520
|
+
$ref,
|
|
1521
|
+
$val,
|
|
1522
|
+
$chi,
|
|
1523
|
+
$put
|
|
1524
|
+
}).filter(([_, val]) => isDef(val))
|
|
1525
|
+
),
|
|
1526
|
+
...props2
|
|
1527
|
+
};
|
|
1528
|
+
}
|
|
1529
|
+
const foundPuts = parentPuts.filter(([_, putFilter]) => isEqual(filter, putFilter)).map(([range]) => range);
|
|
1530
|
+
if (isGraph && !isDef(page.$cursor) && ($ref || $val || $chi || $put || !isEmpty(props2))) {
|
|
1531
|
+
object.$key = filter || {};
|
|
1532
|
+
object.$put = foundPuts;
|
|
1533
|
+
const node2 = makeNode2(object, key, ver);
|
|
1534
|
+
if (!filter)
|
|
1535
|
+
node2.key = MIN_KEY;
|
|
1536
|
+
node2.prefix = true;
|
|
1537
|
+
return node2;
|
|
1538
|
+
}
|
|
1539
|
+
if ((!isDef(key) || Number.isInteger(key)) && (filter || isDef(page.$cursor))) {
|
|
1540
|
+
object.$key = isDef(page.$cursor) ? page.$cursor : page;
|
|
1541
|
+
const wrapper = { $key: filter || {}, $chi: [object] };
|
|
1542
|
+
if (isGraph)
|
|
1543
|
+
wrapper.$put = foundPuts;
|
|
1544
|
+
const node2 = makeNode2(wrapper, key, ver);
|
|
1545
|
+
if (!filter)
|
|
1546
|
+
node2.key = MIN_KEY;
|
|
1547
|
+
node2.prefix = true;
|
|
1548
|
+
return node2;
|
|
1549
|
+
}
|
|
1543
1550
|
}
|
|
1544
1551
|
}
|
|
1545
1552
|
let putQuery = [], prefixPuts = [];
|
|
@@ -1612,12 +1619,7 @@ function encode(value, { version, isGraph } = {}) {
|
|
|
1612
1619
|
}
|
|
1613
1620
|
}
|
|
1614
1621
|
if (isGraph && (putQuery === null || putQuery.length)) {
|
|
1615
|
-
node.children = finalize(
|
|
1616
|
-
node.children || [],
|
|
1617
|
-
putQuery,
|
|
1618
|
-
node.version,
|
|
1619
|
-
true
|
|
1620
|
-
);
|
|
1622
|
+
node.children = finalize(node.children || [], putQuery, false);
|
|
1621
1623
|
}
|
|
1622
1624
|
if (((_a2 = node.children) == null ? void 0 : _a2.length) || isDef(node.end) || isDef(node.value) || isDef(node.path)) {
|
|
1623
1625
|
return node;
|
|
@@ -1632,7 +1634,9 @@ function encode(value, { version, isGraph } = {}) {
|
|
|
1632
1634
|
return result;
|
|
1633
1635
|
}
|
|
1634
1636
|
function encodeGraph(obj, version = Date.now()) {
|
|
1635
|
-
|
|
1637
|
+
const encoded = encode(obj, { version, isGraph: true });
|
|
1638
|
+
const versioned = setVersion(encoded, version, true);
|
|
1639
|
+
return versioned;
|
|
1636
1640
|
}
|
|
1637
1641
|
function encodeQuery(obj, version = 0) {
|
|
1638
1642
|
return encode(obj, { version, isGraph: false });
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@graffy/common",
|
|
3
3
|
"description": "Common libraries that used by various Graffy modules.",
|
|
4
4
|
"author": "aravind (https://github.com/aravindet)",
|
|
5
|
-
"version": "0.16.0-alpha.
|
|
5
|
+
"version": "0.16.0-alpha.12",
|
|
6
6
|
"main": "./index.cjs",
|
|
7
7
|
"exports": {
|
|
8
8
|
"import": "./index.mjs",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"lodash": "^4.17.19",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"@graffy/stream": "0.16.0-alpha.12",
|
|
21
|
+
"merge-async-iterators": "^0.2.1"
|
|
22
22
|
}
|
|
23
23
|
}
|
package/types/ops/finalize.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {any} graph
|
|
4
|
+
* @param {any} query
|
|
5
|
+
* @param {number | false} version
|
|
6
|
+
* @returns any
|
|
7
|
+
*/
|
|
8
|
+
export default function finalize(graph: any, query: any, version?: number | false): {
|
|
2
9
|
key: Uint8Array;
|
|
3
10
|
end: Uint8Array;
|
|
4
11
|
version: number;
|