articulated 0.2.0 → 0.4.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.
Files changed (31) hide show
  1. package/README.md +18 -1
  2. package/build/commonjs/id_list.d.ts +56 -20
  3. package/build/commonjs/id_list.js +207 -107
  4. package/build/commonjs/id_list.js.map +1 -1
  5. package/build/commonjs/internal/leaf_map.d.ts +25 -0
  6. package/build/commonjs/internal/leaf_map.js +54 -0
  7. package/build/commonjs/internal/leaf_map.js.map +1 -0
  8. package/build/commonjs/internal/seq_map.d.ts +20 -0
  9. package/build/commonjs/internal/seq_map.js +40 -0
  10. package/build/commonjs/internal/seq_map.js.map +1 -0
  11. package/build/commonjs/vendor/functional-red-black-tree.d.ts +8 -0
  12. package/build/commonjs/vendor/functional-red-black-tree.js +911 -0
  13. package/build/commonjs/vendor/functional-red-black-tree.js.map +1 -0
  14. package/build/esm/id_list.d.ts +56 -20
  15. package/build/esm/id_list.js +206 -105
  16. package/build/esm/id_list.js.map +1 -1
  17. package/build/esm/internal/leaf_map.d.ts +25 -0
  18. package/build/esm/internal/leaf_map.js +47 -0
  19. package/build/esm/internal/leaf_map.js.map +1 -0
  20. package/build/esm/internal/seq_map.d.ts +20 -0
  21. package/build/esm/internal/seq_map.js +32 -0
  22. package/build/esm/internal/seq_map.js.map +1 -0
  23. package/build/esm/vendor/functional-red-black-tree.d.ts +8 -0
  24. package/build/esm/vendor/functional-red-black-tree.js +911 -0
  25. package/build/esm/vendor/functional-red-black-tree.js.map +1 -0
  26. package/package.json +10 -5
  27. package/src/id_list.ts +306 -109
  28. package/src/internal/leaf_map.ts +57 -0
  29. package/src/internal/seq_map.ts +48 -0
  30. package/src/vendor/functional-red-black-tree.d.ts +177 -0
  31. package/src/vendor/functional-red-black-tree.js +938 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional-red-black-tree.js","sourceRoot":"","sources":["../../../src/vendor/functional-red-black-tree.js"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { SparseIndices } from "sparse-array-rled";
2
2
  import { ElementId } from "./id";
3
+ import { MutableLeafMap } from "./internal/leaf_map";
4
+ import { MutableSeqMap } from "./internal/seq_map";
3
5
  import { SavedIdList } from "./saved_id_list";
4
6
  export interface LeafNode {
5
7
  readonly bunchId: string;
@@ -16,19 +18,48 @@ export interface LeafNode {
16
18
  * An inner node with inner-node children.
17
19
  */
18
20
  export declare class InnerNodeInner {
21
+ /**
22
+ * A unique identifer for this node within its IdTree.
23
+ */
24
+ readonly seq: number;
19
25
  readonly children: readonly InnerNode[];
20
26
  readonly size: number;
21
27
  readonly knownSize: number;
22
- constructor(children: readonly InnerNode[]);
28
+ constructor(
29
+ /**
30
+ * A unique identifer for this node within its IdTree.
31
+ */
32
+ seq: number, children: readonly InnerNode[],
33
+ /**
34
+ * We add entries for the children to this map, overwriting any existing parentSeqs.
35
+ *
36
+ * Pass null to skip when you are doing it yourself. Regardless, you need to
37
+ * delete any outdated entries yourself.
38
+ */
39
+ parentSeqsMut: MutableSeqMap | null);
23
40
  }
24
41
  /**
25
42
  * An inner node with leaf children.
26
43
  */
27
44
  export declare class InnerNodeLeaf {
45
+ /**
46
+ * A unique identifer for this node within its IdTree.
47
+ */
48
+ readonly seq: number;
28
49
  readonly children: readonly LeafNode[];
29
50
  readonly size: number;
30
51
  readonly knownSize: number;
31
- constructor(children: readonly LeafNode[]);
52
+ constructor(
53
+ /**
54
+ * A unique identifer for this node within its IdTree.
55
+ */
56
+ seq: number, children: readonly LeafNode[],
57
+ /**
58
+ * We add entries for the children to this map, overwriting any existing parentSeqs.
59
+ *
60
+ * Pass null to skip when you are doing it yourself.
61
+ */
62
+ leafMapMut: MutableLeafMap | null);
32
63
  }
33
64
  export type InnerNode = InnerNodeInner | InnerNodeLeaf;
34
65
  /**
@@ -67,6 +98,18 @@ export declare const M = 8;
67
98
  */
68
99
  export declare class IdList {
69
100
  private readonly root;
101
+ /**
102
+ * A persistent sorted map from each leaf to its parent node's seq.
103
+ *
104
+ * Besides parentSeqs, we also use this to lookup leaves by ElementId.
105
+ */
106
+ private readonly leafMap;
107
+ /**
108
+ * A persistent map from each InnerNode's seq to its parent node's seq.
109
+ *
110
+ * We map the root's seq to 0 (in our constructor).
111
+ */
112
+ private readonly parentSeqs;
70
113
  /**
71
114
  * Internal - construct an IdList using a static method (e.g. `IdList.new`).
72
115
  */
@@ -150,6 +193,13 @@ export declare class IdList {
150
193
  * @throws If `id` is not known.
151
194
  */
152
195
  undelete(id: ElementId): IdList;
196
+ /**
197
+ * Returns the path from id's leaf node to the root, or null if id is not found.
198
+ *
199
+ * The path contains each node and its index in its parent's node, starting with id's
200
+ * LeafNode and ending at a child of the root.
201
+ */
202
+ private locate;
153
203
  /**
154
204
  * Replaces the leaf at the given path with newLeaves.
155
205
  * Returns a proper (sufficiently balanced) B+Tree with updated sizes.
@@ -171,6 +221,10 @@ export declare class IdList {
171
221
  * Compare to {@link has}.
172
222
  */
173
223
  isKnown(id: ElementId): boolean;
224
+ /**
225
+ * Returns true if any of the given bulk ids are known.
226
+ */
227
+ private isAnyKnown;
174
228
  /**
175
229
  * The length of the list, counting only present ids.
176
230
  *
@@ -270,21 +324,3 @@ export declare class KnownIdView {
270
324
  */
271
325
  values(): IterableIterator<ElementId>;
272
326
  }
273
- type Located = [
274
- {
275
- node: LeafNode;
276
- indexInParent: number;
277
- },
278
- ...{
279
- node: InnerNode;
280
- indexInParent: number;
281
- }[]
282
- ];
283
- /**
284
- * Returns the path from id's leaf node to the root, or null if id is not found.
285
- *
286
- * The path contains each node and its index in its parent's node, starting with id's
287
- * LeafNode and ending at a child of the root.
288
- */
289
- export declare function locate(id: ElementId, node: InnerNode): Located | null;
290
- export {};