xitdb 0.15.0 → 0.16.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.
@@ -41,11 +41,17 @@ export declare class Reader {
41
41
  readLong(): number;
42
42
  seek(position: number): void;
43
43
  }
44
+ declare class IteratorLevel {
45
+ position: number;
46
+ block: Slot[];
47
+ index: number;
48
+ constructor(position: number, block: Slot[], index: number);
49
+ }
44
50
  export declare class CursorIterator {
45
51
  cursor: ReadCursor;
46
52
  size: number;
47
53
  index: number;
48
- private stack;
54
+ stack: IteratorLevel[];
49
55
  private nextCursorMaybe;
50
56
  constructor(cursor: ReadCursor);
51
57
  private static resolveStartIndex;
@@ -65,3 +71,4 @@ export declare class CursorIterator {
65
71
  next(): ReadCursor | null;
66
72
  private nextInternal;
67
73
  }
74
+ export {};
@@ -5,6 +5,7 @@ import type { WriteableData } from './writeable-data.js';
5
5
  export declare class WriteArrayList extends ReadArrayList {
6
6
  constructor(cursor: WriteCursor);
7
7
  iterator(): WriteCursorIterator;
8
+ iteratorFrom(index: number): WriteCursorIterator;
8
9
  [Symbol.iterator](): Iterator<WriteCursor>;
9
10
  put(index: number, data: WriteableData): void;
10
11
  putCursor(index: number): WriteCursor;
@@ -1,4 +1,5 @@
1
1
  import { ReadArrayList } from './read-array-list.js';
2
+ import { WriteCursorIterator } from './write-cursor.js';
2
3
  import { ArrayListInit, ArrayListGet, ArrayListAppend, ArrayListSlice, WriteData, Context, } from './database.js';
3
4
  export class WriteArrayList extends ReadArrayList {
4
5
  constructor(cursor) {
@@ -8,6 +9,9 @@ export class WriteArrayList extends ReadArrayList {
8
9
  iterator() {
9
10
  return this.cursor.iterator();
10
11
  }
12
+ iteratorFrom(index) {
13
+ return WriteCursorIterator.from(super.iteratorFrom(index));
14
+ }
11
15
  *[Symbol.iterator]() {
12
16
  yield* this.cursor;
13
17
  }
@@ -32,5 +32,6 @@ export declare class Writer {
32
32
  }
33
33
  export declare class WriteCursorIterator extends CursorIterator {
34
34
  constructor(cursor: WriteCursor);
35
+ static from(inner: CursorIterator): WriteCursorIterator;
35
36
  next(): WriteCursor | null;
36
37
  }
@@ -112,6 +112,15 @@ export class WriteCursorIterator extends CursorIterator {
112
112
  constructor(cursor) {
113
113
  super(cursor);
114
114
  }
115
+ // wrap an already-seeked read iterator so it yields write cursors. backs the
116
+ // write-side iteratorFrom/iteratorFromIndex methods.
117
+ static from(inner) {
118
+ const it = new WriteCursorIterator(inner.cursor);
119
+ it.size = inner.size;
120
+ it.index = inner.index;
121
+ it.stack = inner.stack;
122
+ return it;
123
+ }
115
124
  next() {
116
125
  const readCursor = super.next();
117
126
  if (readCursor !== null) {
@@ -5,6 +5,7 @@ import type { WriteableData } from './writeable-data.js';
5
5
  export declare class WriteLinkedArrayList extends ReadLinkedArrayList {
6
6
  constructor(cursor: WriteCursor);
7
7
  iterator(): WriteCursorIterator;
8
+ iteratorFrom(index: number): WriteCursorIterator;
8
9
  [Symbol.iterator](): Iterator<WriteCursor>;
9
10
  put(index: number, data: WriteableData): void;
10
11
  putCursor(index: number): WriteCursor;
@@ -1,4 +1,5 @@
1
1
  import { ReadLinkedArrayList } from './read-linked-array-list.js';
2
+ import { WriteCursorIterator } from './write-cursor.js';
2
3
  import { LinkedArrayListInit, LinkedArrayListGet, LinkedArrayListAppend, LinkedArrayListSlice, LinkedArrayListConcat, LinkedArrayListInsert, LinkedArrayListRemove, WriteData, } from './database.js';
3
4
  export class WriteLinkedArrayList extends ReadLinkedArrayList {
4
5
  constructor(cursor) {
@@ -8,6 +9,9 @@ export class WriteLinkedArrayList extends ReadLinkedArrayList {
8
9
  iterator() {
9
10
  return this.cursor.iterator();
10
11
  }
12
+ iteratorFrom(index) {
13
+ return WriteCursorIterator.from(super.iteratorFrom(index));
14
+ }
11
15
  *[Symbol.iterator]() {
12
16
  yield* this.cursor;
13
17
  }
@@ -5,6 +5,8 @@ import { Bytes } from './writeable-data.js';
5
5
  export declare class WriteSortedMap extends ReadSortedMap {
6
6
  constructor(cursor: WriteCursor);
7
7
  iterator(): WriteCursorIterator;
8
+ iteratorFrom(key: string | Bytes | Uint8Array): WriteCursorIterator;
9
+ iteratorFromIndex(startIndex: number): WriteCursorIterator;
8
10
  [Symbol.iterator](): Iterator<WriteCursor>;
9
11
  put(key: string | Bytes | Uint8Array, data: WriteableData): void;
10
12
  putCursor(key: string | Bytes | Uint8Array): WriteCursor;
@@ -1,4 +1,5 @@
1
1
  import { ReadSortedMap } from './read-sorted-map.js';
2
+ import { WriteCursorIterator } from './write-cursor.js';
2
3
  import { SortedMapInit, SortedMapGet, SortedMapGetValue, SortedMapRemove, WriteData, } from './database.js';
3
4
  import { KeyNotFoundException } from './exceptions.js';
4
5
  export class WriteSortedMap extends ReadSortedMap {
@@ -9,6 +10,12 @@ export class WriteSortedMap extends ReadSortedMap {
9
10
  iterator() {
10
11
  return this.cursor.iterator();
11
12
  }
13
+ iteratorFrom(key) {
14
+ return WriteCursorIterator.from(super.iteratorFrom(key));
15
+ }
16
+ iteratorFromIndex(startIndex) {
17
+ return WriteCursorIterator.from(super.iteratorFromIndex(startIndex));
18
+ }
12
19
  *[Symbol.iterator]() {
13
20
  yield* this.cursor;
14
21
  }
@@ -4,6 +4,8 @@ import { Bytes } from './writeable-data.js';
4
4
  export declare class WriteSortedSet extends ReadSortedSet {
5
5
  constructor(cursor: WriteCursor);
6
6
  iterator(): WriteCursorIterator;
7
+ iteratorFrom(key: string | Bytes | Uint8Array): WriteCursorIterator;
8
+ iteratorFromIndex(startIndex: number): WriteCursorIterator;
7
9
  [Symbol.iterator](): Iterator<WriteCursor>;
8
10
  put(key: string | Bytes | Uint8Array): void;
9
11
  remove(key: string | Bytes | Uint8Array): boolean;
@@ -1,4 +1,5 @@
1
1
  import { ReadSortedSet } from './read-sorted-set.js';
2
+ import { WriteCursorIterator } from './write-cursor.js';
2
3
  import { SortedMapInit, SortedMapGet, SortedMapGetKey, SortedMapRemove } from './database.js';
3
4
  import { KeyNotFoundException } from './exceptions.js';
4
5
  export class WriteSortedSet extends ReadSortedSet {
@@ -9,6 +10,12 @@ export class WriteSortedSet extends ReadSortedSet {
9
10
  iterator() {
10
11
  return this.cursor.iterator();
11
12
  }
13
+ iteratorFrom(key) {
14
+ return WriteCursorIterator.from(super.iteratorFrom(key));
15
+ }
16
+ iteratorFromIndex(startIndex) {
17
+ return WriteCursorIterator.from(super.iteratorFromIndex(startIndex));
18
+ }
12
19
  *[Symbol.iterator]() {
13
20
  yield* this.cursor;
14
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xitdb",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "An immutable database",
5
5
  "license": "MIT",
6
6
  "repository": {