@bodil/bdb 0.1.1 → 0.1.3

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/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # bdb
2
+
3
+ An easy to use and well typed reactive database for client side web apps. It
4
+ doesn't get more web scale than this!
5
+
6
+ ## API Docs
7
+
8
+ Find the API docs here:
9
+
10
+ * [https://js.bodil.lol/projects/bdb/](https://js.bodil.lol/projects/bdb/en/stable/modules.html)
11
+
12
+ ## Example
13
+
14
+ ```ts
15
+ import { createTable } from "@bodil/bdb";
16
+
17
+ type MovieStar = {
18
+ name: string;
19
+ powerLevel: number;
20
+ };
21
+
22
+ // Make a table of entries of type `MovieStar` with primary key `name`
23
+ const movieStars = createTable<MovieStar>()(index<MovieStar>()("name"))
24
+ // with an additional searchable index for `powerLevel`.
25
+ .withIndex(index<MovieStar>()("powerLevel"));
26
+
27
+ // Add some movie stars to the table.
28
+ table.add(
29
+ { name: "Joe", powerLevel: 25 },
30
+ { name: "Mike", powerLevel: 15 },
31
+ { name: "Robert", powerLevel: 9001 },
32
+ );
33
+
34
+ // Lookup a movie star by primary key.
35
+ table.get("Joe"); // => { name: "Joe", powerLevel: 25 }
36
+
37
+ // Get all movie stars with `powerLevel` below 9000.
38
+ const query = table.where("powerLevel").below(9000);
39
+ query.toArray().map((i) => i.name); // => ["Joe", "Mike"]
40
+
41
+ // A live query of Robert's power level.
42
+ const robertsPowerLevel = table.signal("Robert")?.map((i) => i.powerLevel);
43
+ robertsPowerLevel.get(); // => 9001
44
+ // He gets more powerful as he fixes the bug!
45
+ table.update("Robert", (robert) => robert.powerLevel++);
46
+ robertsPowerLevel.get(); // => 9002
47
+ ```
48
+
49
+ ## Licence
50
+
51
+ Copyright 2025 Bodil Stokke
52
+
53
+ Licensed under the
54
+ [EUPL](https://interoperable-europe.ec.europa.eu/collection/eupl/eupl-text-eupl-12)
55
+ version 1.2 or later.
package/dist/broadcast.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { Emitter } from "@bodil/core/async";
2
- import { DisposableContext, eventListener } from "@bodil/core/disposable";
2
+ import { DisposableContext, toDisposable } from "@bodil/core/disposable";
3
+ function eventListener(target, type, callback) {
4
+ target.addEventListener(type, callback);
5
+ return toDisposable(() => target.removeEventListener(type, callback));
6
+ }
3
7
  /** @internal */
4
8
  export class Broadcaster extends Emitter {
5
9
  constructor(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1E,gBAAgB;AAChB,MAAM,OAAO,WAAyB,SAAQ,OAAoB;IAI9D,YAAY,IAAY;QACpB,KAAK,EAAE,CAAC;QAHK,YAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAI/C,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CACZ,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAgC,EAAE,EAAE,CACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAkB,CAAC,CAC/C,CAAC;IACN,CAAC;IAEQ,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAoB;QACrB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACJ"}
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,SAAS,aAAa,CAAC,MAAmB,EAAE,IAAY,EAAE,QAAuB;IAC7E,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,WAAyB,SAAQ,OAAoB;IAI9D,YAAY,IAAY;QACpB,KAAK,EAAE,CAAC;QAHK,YAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAI/C,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CACZ,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAgC,EAAE,EAAE,CACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAkB,CAAC,CAC/C,CAAC;IACN,CAAC;IAEQ,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAoB;QACrB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACJ"}
@@ -150,4 +150,30 @@ test("IndexedDB", async () => {
150
150
  ]);
151
151
  }
152
152
  });
153
+ test("query.below/query.above", () => {
154
+ const table = createTable()(index()("id")).withIndex(index()("value"));
155
+ table.add({ id: "1", value: 1 }, { id: "2", value: 2 }, { id: "3", value: 3 }, { id: "4", value: 4 }, { id: "5", value: 5 });
156
+ expect(table
157
+ .where("value")
158
+ .below(3)
159
+ .toArray()
160
+ .map((i) => i.value)).toEqual([2, 1]);
161
+ expect(table
162
+ .where("value")
163
+ .below(3)
164
+ .inclusive()
165
+ .toArray()
166
+ .map((i) => i.value)).toEqual([3, 2, 1]);
167
+ expect(table
168
+ .where("value")
169
+ .above(3)
170
+ .toArray()
171
+ .map((i) => i.value)).toEqual([4, 5]);
172
+ expect(table
173
+ .where("value")
174
+ .above(3)
175
+ .inclusive()
176
+ .toArray()
177
+ .map((i) => i.value)).toEqual([3, 4, 5]);
178
+ });
153
179
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAClC,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAWnB,YAAY,EAA+B,CAAC,aAAa,EAEtD,CAAC;AACR,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IAQtB,MAAM,KAAK,GAAG,WAAW,EAAY,CAAC,KAAK,EAAY,CAAC,IAAI,CAAC,CAAC;SACzD,SAAS,CAAC,SAAS,EAAY,CAAC,SAAS,CAAC,CAAC;SAC3C,SAAS,CAAC,KAAK,EAAY,CAAC,KAAK,CAAC,CAAC;SACnC,SAAS,CAAC,UAAU,EAAY,CAAC,MAAM,CAAC,CAAC;SACzC,SAAS,CAAC,aAAa,EAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG;QAC7B;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;QACD;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG;YACZ,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;QACD;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;QACD;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,sBAAsB;YAC3B,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;KACJ,CAAC;IAEF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAElC,+CAA+C;IAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,2DAA2D;IAC3D,MAAM,CAAC,GAAG,EAAE;QACR,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IACrB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpB,wDAAwD;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,4CAA4C;IAC5C,MAAM,sBAAsB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC7D,YAAY,EAA6C,CAAC,aAAa,EAAsB,CAAC;IAC9F,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxD,YAAY,EAA0C,CAAC,aAAa,EAAY,CAAC;IACjF,MAAM,uBAAuB,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7D,YAAY,EAA8C,CAAC,aAAa,EAAsB,CAAC;AACnG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE3B,MAAM,QAAQ,GAAG,WAAW,EAAW,CAAC,KAAK,EAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CACrE,KAAK,EAAW,CAAC,OAAO,CAAC,CAC5B,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IAEvB,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAG5D,MAAM,SAAS,GAAG,WAAW,EAAY,CAAC,KAAK,EAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAElE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IAElC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;QAC7B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IAEjD,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,CACR,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CACL,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;IAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;QACG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,KAAK,CAAC,CAAC;aACrD,SAAS,CAAC,SAAS,EAAS,CAAC,MAAM,CAAC,CAAC;aACrC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,CAAC,GAAG,CACN,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAC7C,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EACjD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAChD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACzD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;SACpD,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,CAAC;QACG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,KAAK,CAAC,CAAC;aACrD,SAAS,CAAC,SAAS,EAAS,CAAC,MAAM,CAAC,CAAC;aACrC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACzD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;SACpD,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAClC,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAWnB,YAAY,EAA+B,CAAC,aAAa,EAEtD,CAAC;AACR,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IAQtB,MAAM,KAAK,GAAG,WAAW,EAAY,CAAC,KAAK,EAAY,CAAC,IAAI,CAAC,CAAC;SACzD,SAAS,CAAC,SAAS,EAAY,CAAC,SAAS,CAAC,CAAC;SAC3C,SAAS,CAAC,KAAK,EAAY,CAAC,KAAK,CAAC,CAAC;SACnC,SAAS,CAAC,UAAU,EAAY,CAAC,MAAM,CAAC,CAAC;SACzC,SAAS,CAAC,aAAa,EAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG;QAC7B;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;QACD;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG;YACZ,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;QACD;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;QACD;YACI,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,sBAAsB;YAC3B,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB;KACJ,CAAC;IAEF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAElC,+CAA+C;IAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,2DAA2D;IAC3D,MAAM,CAAC,GAAG,EAAE;QACR,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IACrB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpB,wDAAwD;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,4CAA4C;IAC5C,MAAM,sBAAsB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC7D,YAAY,EAA6C,CAAC,aAAa,EAAsB,CAAC;IAC9F,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxD,YAAY,EAA0C,CAAC,aAAa,EAAY,CAAC;IACjF,MAAM,uBAAuB,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7D,YAAY,EAA8C,CAAC,aAAa,EAAsB,CAAC;AACnG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE3B,MAAM,QAAQ,GAAG,WAAW,EAAW,CAAC,KAAK,EAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CACrE,KAAK,EAAW,CAAC,OAAO,CAAC,CAC5B,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IAEvB,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAG5D,MAAM,SAAS,GAAG,WAAW,EAAY,CAAC,KAAK,EAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAElE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IAElC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;QAC7B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IAEjD,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,CACR,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CACL,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;IAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;QACG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,KAAK,CAAC,CAAC;aACrD,SAAS,CAAC,SAAS,EAAS,CAAC,MAAM,CAAC,CAAC;aACrC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,CAAC,GAAG,CACN,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAC7C,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EACjD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAChD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACzD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;SACpD,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,CAAC;QACG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,WAAW,EAAS,CAAC,KAAK,EAAS,CAAC,KAAK,CAAC,CAAC;aACrD,SAAS,CAAC,SAAS,EAAS,CAAC,MAAM,CAAC,CAAC;aACrC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACzD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;SACpD,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IAEjC,MAAM,KAAK,GAAG,WAAW,EAAQ,CAAC,KAAK,EAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,KAAK,CAAC,GAAG,CACL,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CACxB,CAAC;IACF,MAAM,CACF,KAAK;SACA,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,CAAC,CAAC;SACR,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC3B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,CACF,KAAK;SACA,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,CAAC,CAAC;SACR,SAAS,EAAE;SACX,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC3B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CACF,KAAK;SACA,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,CAAC,CAAC;SACR,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC3B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,CACF,KAAK;SACA,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,CAAC,CAAC;SACR,SAAS,EAAE;SACX,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC3B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC"}
package/dist/query.d.ts CHANGED
@@ -4,8 +4,7 @@ import type { Index, UnitIndex } from "./indices";
4
4
  import type { Table } from "./table";
5
5
  export declare enum IteratorDirection {
6
6
  Ascending = 0,
7
- Descending = 1,
8
- DescendingExclusive = 2
7
+ Descending = 1
9
8
  }
10
9
  export declare abstract class Query<A extends object> implements Iterable<Readonly<A>> {
11
10
  abstract [Symbol.iterator](): IterableIterator<Readonly<A>>;
@@ -27,12 +26,15 @@ export declare class IndexQuery<A extends object, PI extends UnitIndex<A>, I ext
27
26
  private readonly indexTable?;
28
27
  private readonly isPrimary;
29
28
  private start?;
29
+ private skipStart;
30
30
  private direction;
31
31
  constructor(table: Table<A, PI, Ix>, indexKey: keyof Ix & string, direction: IteratorDirection, start?: I["keyType"]);
32
32
  [Symbol.iterator](): IterableIterator<Readonly<A>>;
33
33
  reverse(): this;
34
34
  equals(value: I["keyType"]): ArrayQuery<A, PI, Ix>;
35
35
  below(value: I["keyType"]): this;
36
+ above(value: I["keyType"]): this;
37
+ inclusive(): this;
36
38
  max(): Option<I["keyType"]>;
37
39
  min(): Option<I["keyType"]>;
38
40
  }
package/dist/query.js CHANGED
@@ -5,38 +5,37 @@ export var IteratorDirection;
5
5
  (function (IteratorDirection) {
6
6
  IteratorDirection[IteratorDirection["Ascending"] = 0] = "Ascending";
7
7
  IteratorDirection[IteratorDirection["Descending"] = 1] = "Descending";
8
- IteratorDirection[IteratorDirection["DescendingExclusive"] = 2] = "DescendingExclusive";
9
8
  })(IteratorDirection || (IteratorDirection = {}));
10
- function* indexIterator(table, direction, start) {
9
+ function* indexIterator(table, direction, start, skipStart = false) {
11
10
  if (table.isEmpty) {
12
11
  return;
13
12
  }
14
- if (direction === IteratorDirection.Ascending) {
15
- for (const items of table.values(start)) {
16
- for (const item of items) {
17
- yield item;
18
- }
13
+ const entries = direction === IteratorDirection.Ascending
14
+ ? table.entries(start)
15
+ : table.entriesReversed(start);
16
+ for (const entry of entries) {
17
+ if (skipStart && table._compare(entry[0], start) === 0) {
18
+ skipStart = false;
19
19
  }
20
- }
21
- else {
22
- for (const entry of table.entriesReversed(start, undefined, direction === IteratorDirection.DescendingExclusive)) {
20
+ else {
23
21
  for (const item of entry[1]) {
24
22
  yield item;
25
23
  }
26
24
  }
27
25
  }
28
26
  }
29
- function* primaryIndexIterator(table, direction, start) {
27
+ function* primaryIndexIterator(table, direction, start, skipStart = false) {
30
28
  if (table.isEmpty) {
31
29
  return;
32
30
  }
33
- if (direction === IteratorDirection.Ascending) {
34
- for (const item of table.values(start)) {
35
- yield item;
31
+ const entries = direction === IteratorDirection.Ascending
32
+ ? table.entries(start)
33
+ : table.entriesReversed(start);
34
+ for (const entry of entries) {
35
+ if (skipStart && table._compare(entry[0], start) === 0) {
36
+ skipStart = false;
36
37
  }
37
- }
38
- else {
39
- for (const entry of table.entriesReversed(start, undefined, direction === IteratorDirection.DescendingExclusive)) {
38
+ else {
40
39
  yield entry[1];
41
40
  }
42
41
  }
@@ -78,6 +77,7 @@ export class TableQuery extends Query {
78
77
  export class IndexQuery extends TableQuery {
79
78
  constructor(table, indexKey, direction, start) {
80
79
  super(table);
80
+ this.skipStart = false;
81
81
  this.isPrimary = table.primaryIndex.name === indexKey;
82
82
  if (this.isPrimary) {
83
83
  this.index = table.primaryIndex;
@@ -92,8 +92,8 @@ export class IndexQuery extends TableQuery {
92
92
  }
93
93
  [Symbol.iterator]() {
94
94
  return this.isPrimary
95
- ? primaryIndexIterator(this.table.primary, this.direction, this.start)
96
- : indexIterator(this.indexTable, this.direction, this.start);
95
+ ? primaryIndexIterator(this.table.primary, this.direction, this.start, this.skipStart)
96
+ : indexIterator(this.indexTable, this.direction, this.start, this.skipStart);
97
97
  }
98
98
  reverse() {
99
99
  switch (this.direction) {
@@ -103,8 +103,6 @@ export class IndexQuery extends TableQuery {
103
103
  case IteratorDirection.Descending:
104
104
  this.direction = IteratorDirection.Ascending;
105
105
  return this;
106
- case IteratorDirection.DescendingExclusive:
107
- throw new Error("not sure how to reverse IteratorDirection.DescendingExclusive");
108
106
  }
109
107
  }
110
108
  equals(value) {
@@ -116,7 +114,18 @@ export class IndexQuery extends TableQuery {
116
114
  }
117
115
  below(value) {
118
116
  this.start = value;
119
- this.direction = IteratorDirection.DescendingExclusive;
117
+ this.direction = IteratorDirection.Descending;
118
+ this.skipStart = true;
119
+ return this;
120
+ }
121
+ above(value) {
122
+ this.start = value;
123
+ this.direction = IteratorDirection.Ascending;
124
+ this.skipStart = true;
125
+ return this;
126
+ }
127
+ inclusive() {
128
+ this.skipStart = false;
120
129
  return this;
121
130
  }
122
131
  max() {
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/dist/table.js CHANGED
@@ -19,7 +19,7 @@ export class Table extends Emitter {
19
19
  this.primary = new BTree();
20
20
  this.indices = {};
21
21
  this.indexTables = {};
22
- this.changed = Signal(0);
22
+ this.changed = Signal.from(0);
23
23
  this.#signals = new BTree();
24
24
  this.#signalCleanupRegistry = new FinalizationRegistry(this.#signalCleanup.bind(this));
25
25
  this.#context = new DisposableContext();
@@ -55,14 +55,14 @@ export class Table extends Emitter {
55
55
  signal(primaryKey) {
56
56
  const active = this.#signals.get(primaryKey)?.deref();
57
57
  if (active !== undefined) {
58
- return active.readOnly();
58
+ return active.readOnly;
59
59
  }
60
- const sig = Signal(this.get(primaryKey), {
60
+ const sig = Signal.from(this.get(primaryKey), {
61
61
  equals: () => false,
62
62
  });
63
63
  this.#signalCleanupRegistry.register(sig, primaryKey);
64
64
  this.#signals.set(primaryKey, new WeakRef(sig));
65
- return sig.readOnly();
65
+ return sig.readOnly;
66
66
  }
67
67
  get(primaryKey) {
68
68
  return this.primary.get(primaryKey);
package/dist/table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bodil/bdb",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "A signal enabled database",
5
5
  "homepage": "https://codeberg.org/bodil/bdb",
6
6
  "repository": {
@@ -26,31 +26,33 @@
26
26
  "access": "public"
27
27
  },
28
28
  "dependencies": {
29
- "@bodil/core": "^0.4.9",
30
- "@bodil/opt": "^0.4.2",
31
- "@bodil/signal": "^0.3.3",
32
- "immer": "^11.0.1",
33
- "sorted-btree": "2.0.0-alpha.0"
29
+ "@bodil/core": "^0.5.2",
30
+ "@bodil/opt": "^1.0.0",
31
+ "@bodil/signal": "^0.5.1",
32
+ "immer": "^11.1.3",
33
+ "sorted-btree": "2.1.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@eslint/eslintrc": "^3.3.3",
37
- "@eslint/js": "^9.39.1",
37
+ "@eslint/js": "^9.39.2",
38
38
  "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
39
- "@typescript-eslint/eslint-plugin": "^8.49.0",
40
- "@typescript-eslint/parser": "^8.49.0",
41
- "eslint": "^9.39.1",
39
+ "@typescript-eslint/eslint-plugin": "^8.52.0",
40
+ "@typescript-eslint/parser": "^8.52.0",
41
+ "@typhonjs-typedoc/ts-lib-docs": "^2024.12.25",
42
+ "eslint": "^9.39.2",
42
43
  "eslint-config-prettier": "^10.1.8",
43
- "eslint-plugin-jsdoc": "^54.7.0",
44
+ "eslint-plugin-jsdoc": "^61.5.0",
44
45
  "fake-indexeddb": "^6.2.5",
45
- "globals": "^16.5.0",
46
+ "globals": "^17.0.0",
46
47
  "npm-run-all2": "^8.0.4",
47
48
  "prettier": "^3.7.4",
48
49
  "temporal-polyfill": "^0.3.0",
49
50
  "typedoc": "^0.28.15",
50
51
  "typedoc-plugin-extras": "^4.0.1",
51
52
  "typedoc-plugin-mdn-links": "^5.0.10",
53
+ "typedoc-theme-fresh": "^0.2.3",
52
54
  "typescript": "^5.9.3",
53
- "vitest": "^3.2.4"
55
+ "vitest": "^4.0.16"
54
56
  },
55
57
  "prettier": {
56
58
  "editorconfig": true,
package/src/broadcast.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import { Emitter } from "@bodil/core/async";
2
- import { DisposableContext, eventListener } from "@bodil/core/disposable";
2
+ import { DisposableContext, toDisposable } from "@bodil/core/disposable";
3
+
4
+ function eventListener(target: EventTarget, type: string, callback: EventListener) {
5
+ target.addEventListener(type, callback);
6
+ return toDisposable(() => target.removeEventListener(type, callback));
7
+ }
3
8
 
4
9
  /** @internal */
5
10
  export class Broadcaster<MessageType> extends Emitter<MessageType> implements Disposable {
package/src/index.test.ts CHANGED
@@ -210,3 +210,45 @@ test("IndexedDB", async () => {
210
210
  ]);
211
211
  }
212
212
  });
213
+
214
+ test("query.below/query.above", () => {
215
+ type Item = { id: string; value: number };
216
+ const table = createTable<Item>()(index<Item>()("id")).withIndex(index<Item>()("value"));
217
+ table.add(
218
+ { id: "1", value: 1 },
219
+ { id: "2", value: 2 },
220
+ { id: "3", value: 3 },
221
+ { id: "4", value: 4 },
222
+ { id: "5", value: 5 },
223
+ );
224
+ expect(
225
+ table
226
+ .where("value")
227
+ .below(3)
228
+ .toArray()
229
+ .map((i) => i.value),
230
+ ).toEqual([2, 1]);
231
+ expect(
232
+ table
233
+ .where("value")
234
+ .below(3)
235
+ .inclusive()
236
+ .toArray()
237
+ .map((i) => i.value),
238
+ ).toEqual([3, 2, 1]);
239
+ expect(
240
+ table
241
+ .where("value")
242
+ .above(3)
243
+ .toArray()
244
+ .map((i) => i.value),
245
+ ).toEqual([4, 5]);
246
+ expect(
247
+ table
248
+ .where("value")
249
+ .above(3)
250
+ .inclusive()
251
+ .toArray()
252
+ .map((i) => i.value),
253
+ ).toEqual([3, 4, 5]);
254
+ });
package/src/query.ts CHANGED
@@ -9,29 +9,25 @@ import type { Table } from "./table";
9
9
  export enum IteratorDirection {
10
10
  Ascending = 0,
11
11
  Descending = 1,
12
- DescendingExclusive = 2,
13
12
  }
14
13
 
15
14
  function* indexIterator<A extends object, I extends Index<A>>(
16
15
  table: BTree<I["keyType"], Array<A>>,
17
16
  direction: IteratorDirection,
18
17
  start?: I["keyType"],
18
+ skipStart = false,
19
19
  ): Generator<Readonly<A>> {
20
20
  if (table.isEmpty) {
21
21
  return;
22
22
  }
23
- if (direction === IteratorDirection.Ascending) {
24
- for (const items of table.values(start)) {
25
- for (const item of items) {
26
- yield item;
27
- }
28
- }
29
- } else {
30
- for (const entry of table.entriesReversed(
31
- start,
32
- undefined,
33
- direction === IteratorDirection.DescendingExclusive,
34
- )) {
23
+ const entries =
24
+ direction === IteratorDirection.Ascending
25
+ ? table.entries(start)
26
+ : table.entriesReversed(start);
27
+ for (const entry of entries) {
28
+ if (skipStart && table._compare(entry[0], start) === 0) {
29
+ skipStart = false;
30
+ } else {
35
31
  for (const item of entry[1]) {
36
32
  yield item;
37
33
  }
@@ -43,20 +39,19 @@ function* primaryIndexIterator<A extends object, I extends UnitIndex<A>>(
43
39
  table: BTree<I["keyType"], Readonly<A>>,
44
40
  direction: IteratorDirection,
45
41
  start?: I["keyType"],
42
+ skipStart = false,
46
43
  ): Generator<Readonly<A>> {
47
44
  if (table.isEmpty) {
48
45
  return;
49
46
  }
50
- if (direction === IteratorDirection.Ascending) {
51
- for (const item of table.values(start)) {
52
- yield item;
53
- }
54
- } else {
55
- for (const entry of table.entriesReversed(
56
- start,
57
- undefined,
58
- direction === IteratorDirection.DescendingExclusive,
59
- )) {
47
+ const entries =
48
+ direction === IteratorDirection.Ascending
49
+ ? table.entries(start)
50
+ : table.entriesReversed(start);
51
+ for (const entry of entries) {
52
+ if (skipStart && table._compare(entry[0], start) === 0) {
53
+ skipStart = false;
54
+ } else {
60
55
  yield entry[1];
61
56
  }
62
57
  }
@@ -123,6 +118,7 @@ export class IndexQuery<
123
118
  private readonly indexTable?: BTree<I["keyType"], Array<A>>;
124
119
  private readonly isPrimary: boolean;
125
120
  private start?: I["keyType"];
121
+ private skipStart = false;
126
122
  private direction: IteratorDirection;
127
123
 
128
124
  constructor(
@@ -146,8 +142,8 @@ export class IndexQuery<
146
142
 
147
143
  [Symbol.iterator](): IterableIterator<Readonly<A>> {
148
144
  return this.isPrimary
149
- ? primaryIndexIterator(this.table.primary, this.direction, this.start)
150
- : indexIterator(this.indexTable!, this.direction, this.start);
145
+ ? primaryIndexIterator(this.table.primary, this.direction, this.start, this.skipStart)
146
+ : indexIterator(this.indexTable!, this.direction, this.start, this.skipStart);
151
147
  }
152
148
 
153
149
  reverse(): this {
@@ -158,8 +154,6 @@ export class IndexQuery<
158
154
  case IteratorDirection.Descending:
159
155
  this.direction = IteratorDirection.Ascending;
160
156
  return this;
161
- case IteratorDirection.DescendingExclusive:
162
- throw new Error("not sure how to reverse IteratorDirection.DescendingExclusive");
163
157
  }
164
158
  }
165
159
 
@@ -173,7 +167,20 @@ export class IndexQuery<
173
167
 
174
168
  below(value: I["keyType"]): this {
175
169
  this.start = value;
176
- this.direction = IteratorDirection.DescendingExclusive;
170
+ this.direction = IteratorDirection.Descending;
171
+ this.skipStart = true;
172
+ return this;
173
+ }
174
+
175
+ above(value: I["keyType"]): this {
176
+ this.start = value;
177
+ this.direction = IteratorDirection.Ascending;
178
+ this.skipStart = true;
179
+ return this;
180
+ }
181
+
182
+ inclusive(): this {
183
+ this.skipStart = false;
177
184
  return this;
178
185
  }
179
186
 
package/src/table.ts CHANGED
@@ -30,7 +30,7 @@ export class Table<A extends object, PI extends UnitIndex<A>, Ix extends object>
30
30
  [K in Exclude<keyof Ix & string, PI["name"]>]: BTree<Ix[K], Array<A>>;
31
31
  } = {} as any;
32
32
 
33
- readonly changed = Signal(0);
33
+ readonly changed = Signal.from(0);
34
34
 
35
35
  #storage?: TableStorage<A, PI>;
36
36
  readonly #signals = new BTree<PI["keyType"], WeakRef<Signal.State<Readonly<A> | undefined>>>();
@@ -82,14 +82,14 @@ export class Table<A extends object, PI extends UnitIndex<A>, Ix extends object>
82
82
  signal(primaryKey: PI["keyType"]): Signal.Computed<Readonly<A> | undefined> {
83
83
  const active = this.#signals.get(primaryKey)?.deref();
84
84
  if (active !== undefined) {
85
- return active.readOnly();
85
+ return active.readOnly;
86
86
  }
87
- const sig = Signal(this.get(primaryKey), {
87
+ const sig = Signal.from(this.get(primaryKey), {
88
88
  equals: () => false,
89
89
  });
90
90
  this.#signalCleanupRegistry.register(sig, primaryKey);
91
91
  this.#signals.set(primaryKey, new WeakRef(sig));
92
- return sig.readOnly();
92
+ return sig.readOnly;
93
93
  }
94
94
 
95
95
  get(primaryKey: PI["keyType"]): Readonly<A> | undefined {