@graffy/common 0.16.0-alpha.10 → 0.16.0-alpha.11

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 CHANGED
@@ -1016,7 +1016,7 @@ function setVersion(graph, version, onlyIfZero = false) {
1016
1016
  if (!onlyIfZero || !node.version)
1017
1017
  node.version = version;
1018
1018
  if (node.children)
1019
- setVersion(node.children, version);
1019
+ setVersion(node.children, version, onlyIfZero);
1020
1020
  }
1021
1021
  return graph;
1022
1022
  }
@@ -1038,13 +1038,13 @@ function getKnown(graph, version = 0) {
1038
1038
  }
1039
1039
  return query;
1040
1040
  }
1041
- function finalize(graph, query, version = Date.now(), suppressSetVersion = false) {
1041
+ function finalize(graph, query, version = Date.now()) {
1042
1042
  let result = [{ key: MIN_KEY, end: MAX_KEY, version: 0 }];
1043
1043
  merge(result, graph);
1044
1044
  if (query)
1045
1045
  result = slice(result, query).known || [];
1046
- if (!suppressSetVersion)
1047
- result = setVersion(result, version);
1046
+ if (!version !== false)
1047
+ result = setVersion(result, version, true);
1048
1048
  return result;
1049
1049
  }
1050
1050
  const PRE_CHI_PUT = Symbol("PREFIX_CHILDREN_$PUT");
@@ -1506,45 +1506,47 @@ function encode(value, { version, isGraph } = {}) {
1506
1506
  if (typeof object === "object" && object && isEmpty(object))
1507
1507
  return;
1508
1508
  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
1509
  if (isDef($ver))
1517
1510
  ver = $ver;
1518
1511
  if (isPlainObject($key)) {
1519
1512
  const [page, filter] = splitArgs($key);
1520
- const foundPuts = parentPuts.filter(([_, putFilter]) => isEqual__default.default(filter, putFilter)).map(([range]) => range);
1521
- if (isGraph && page && !isDef(page.$cursor) && ($ref || $val || $chi || $put || !isEmpty(props2))) {
1522
- const node2 = makeNode2(
1523
- { ...object, $key: filter || {}, $put: foundPuts },
1524
- key,
1525
- ver
1526
- );
1527
- if (!filter)
1528
- node2.key = MIN_KEY;
1529
- node2.prefix = true;
1530
- return node2;
1531
- }
1532
- if ((!isDef(key) || Number.isInteger(key)) && page && (filter || isDef(page.$cursor))) {
1533
- const node2 = makeNode2(
1534
- {
1535
- $key: filter || {},
1536
- $chi: [
1537
- { ...object, $key: isDef(page.$cursor) ? page.$cursor : page }
1538
- ],
1539
- ...isGraph ? { $put: foundPuts } : {}
1540
- },
1541
- key,
1542
- ver
1543
- );
1544
- if (!filter)
1545
- node2.key = MIN_KEY;
1546
- node2.prefix = true;
1547
- return node2;
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__default.default(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
+ }
1548
1550
  }
1549
1551
  }
1550
1552
  let putQuery = [], prefixPuts = [];
@@ -1617,12 +1619,7 @@ function encode(value, { version, isGraph } = {}) {
1617
1619
  }
1618
1620
  }
1619
1621
  if (isGraph && (putQuery === null || putQuery.length)) {
1620
- node.children = finalize(
1621
- node.children || [],
1622
- putQuery,
1623
- node.version,
1624
- true
1625
- );
1622
+ node.children = finalize(node.children || [], putQuery, false);
1626
1623
  }
1627
1624
  if (((_a2 = node.children) == null ? void 0 : _a2.length) || isDef(node.end) || isDef(node.value) || isDef(node.path)) {
1628
1625
  return node;
@@ -1637,7 +1634,9 @@ function encode(value, { version, isGraph } = {}) {
1637
1634
  return result;
1638
1635
  }
1639
1636
  function encodeGraph(obj, version = Date.now()) {
1640
- return setVersion(encode(obj, { version, isGraph: true }), version, true);
1637
+ const encoded = encode(obj, { version, isGraph: true });
1638
+ const versioned = setVersion(encoded, version, true);
1639
+ return versioned;
1641
1640
  }
1642
1641
  function encodeQuery(obj, version = 0) {
1643
1642
  return encode(obj, { version, isGraph: false });
package/index.mjs CHANGED
@@ -1011,7 +1011,7 @@ function setVersion(graph, version, onlyIfZero = false) {
1011
1011
  if (!onlyIfZero || !node.version)
1012
1012
  node.version = version;
1013
1013
  if (node.children)
1014
- setVersion(node.children, version);
1014
+ setVersion(node.children, version, onlyIfZero);
1015
1015
  }
1016
1016
  return graph;
1017
1017
  }
@@ -1033,13 +1033,13 @@ function getKnown(graph, version = 0) {
1033
1033
  }
1034
1034
  return query;
1035
1035
  }
1036
- function finalize(graph, query, version = Date.now(), suppressSetVersion = false) {
1036
+ function finalize(graph, query, version = Date.now()) {
1037
1037
  let result = [{ key: MIN_KEY, end: MAX_KEY, version: 0 }];
1038
1038
  merge(result, graph);
1039
1039
  if (query)
1040
1040
  result = slice(result, query).known || [];
1041
- if (!suppressSetVersion)
1042
- result = setVersion(result, version);
1041
+ if (!version !== false)
1042
+ result = setVersion(result, version, true);
1043
1043
  return result;
1044
1044
  }
1045
1045
  const PRE_CHI_PUT = Symbol("PREFIX_CHILDREN_$PUT");
@@ -1501,45 +1501,47 @@ function encode(value, { version, isGraph } = {}) {
1501
1501
  if (typeof object === "object" && object && isEmpty(object))
1502
1502
  return;
1503
1503
  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
1504
  if (isDef($ver))
1512
1505
  ver = $ver;
1513
1506
  if (isPlainObject($key)) {
1514
1507
  const [page, filter] = splitArgs($key);
1515
- const foundPuts = parentPuts.filter(([_, putFilter]) => isEqual(filter, putFilter)).map(([range]) => range);
1516
- if (isGraph && page && !isDef(page.$cursor) && ($ref || $val || $chi || $put || !isEmpty(props2))) {
1517
- const node2 = makeNode2(
1518
- { ...object, $key: filter || {}, $put: foundPuts },
1519
- key,
1520
- ver
1521
- );
1522
- if (!filter)
1523
- node2.key = MIN_KEY;
1524
- node2.prefix = true;
1525
- return node2;
1526
- }
1527
- if ((!isDef(key) || Number.isInteger(key)) && page && (filter || isDef(page.$cursor))) {
1528
- const node2 = makeNode2(
1529
- {
1530
- $key: filter || {},
1531
- $chi: [
1532
- { ...object, $key: isDef(page.$cursor) ? page.$cursor : page }
1533
- ],
1534
- ...isGraph ? { $put: foundPuts } : {}
1535
- },
1536
- key,
1537
- ver
1538
- );
1539
- if (!filter)
1540
- node2.key = MIN_KEY;
1541
- node2.prefix = true;
1542
- return node2;
1508
+ if (page) {
1509
+ if (typeof object === "object" && object && !Array.isArray(object)) {
1510
+ object = {
1511
+ ...Object.fromEntries(
1512
+ Object.entries({
1513
+ $key,
1514
+ $ver,
1515
+ $ref,
1516
+ $val,
1517
+ $chi,
1518
+ $put
1519
+ }).filter(([_, val]) => isDef(val))
1520
+ ),
1521
+ ...props2
1522
+ };
1523
+ }
1524
+ const foundPuts = parentPuts.filter(([_, putFilter]) => isEqual(filter, putFilter)).map(([range]) => range);
1525
+ if (isGraph && !isDef(page.$cursor) && ($ref || $val || $chi || $put || !isEmpty(props2))) {
1526
+ object.$key = filter || {};
1527
+ object.$put = foundPuts;
1528
+ const node2 = makeNode2(object, key, ver);
1529
+ if (!filter)
1530
+ node2.key = MIN_KEY;
1531
+ node2.prefix = true;
1532
+ return node2;
1533
+ }
1534
+ if ((!isDef(key) || Number.isInteger(key)) && (filter || isDef(page.$cursor))) {
1535
+ object.$key = isDef(page.$cursor) ? page.$cursor : page;
1536
+ const wrapper = { $key: filter || {}, $chi: [object] };
1537
+ if (isGraph)
1538
+ wrapper.$put = foundPuts;
1539
+ const node2 = makeNode2(wrapper, key, ver);
1540
+ if (!filter)
1541
+ node2.key = MIN_KEY;
1542
+ node2.prefix = true;
1543
+ return node2;
1544
+ }
1543
1545
  }
1544
1546
  }
1545
1547
  let putQuery = [], prefixPuts = [];
@@ -1612,12 +1614,7 @@ function encode(value, { version, isGraph } = {}) {
1612
1614
  }
1613
1615
  }
1614
1616
  if (isGraph && (putQuery === null || putQuery.length)) {
1615
- node.children = finalize(
1616
- node.children || [],
1617
- putQuery,
1618
- node.version,
1619
- true
1620
- );
1617
+ node.children = finalize(node.children || [], putQuery, false);
1621
1618
  }
1622
1619
  if (((_a2 = node.children) == null ? void 0 : _a2.length) || isDef(node.end) || isDef(node.value) || isDef(node.path)) {
1623
1620
  return node;
@@ -1632,7 +1629,9 @@ function encode(value, { version, isGraph } = {}) {
1632
1629
  return result;
1633
1630
  }
1634
1631
  function encodeGraph(obj, version = Date.now()) {
1635
- return setVersion(encode(obj, { version, isGraph: true }), version, true);
1632
+ const encoded = encode(obj, { version, isGraph: true });
1633
+ const versioned = setVersion(encoded, version, true);
1634
+ return versioned;
1636
1635
  }
1637
1636
  function encodeQuery(obj, version = 0) {
1638
1637
  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.10",
5
+ "version": "0.16.0-alpha.11",
6
6
  "main": "./index.cjs",
7
7
  "exports": {
8
8
  "import": "./index.mjs",
@@ -18,6 +18,6 @@
18
18
  "dependencies": {
19
19
  "lodash": "^4.17.19",
20
20
  "merge-async-iterators": "^0.2.1",
21
- "@graffy/stream": "0.16.0-alpha.10"
21
+ "@graffy/stream": "0.16.0-alpha.11"
22
22
  }
23
23
  }
@@ -1,4 +1,11 @@
1
- export default function finalize(graph: any, query: any, version?: number, suppressSetVersion?: boolean): {
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;