@libredb/libredb 0.0.1 → 0.0.2
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 +55 -0
- package/dist/adapter/store.d.ts +0 -1
- package/dist/adapter/store.js +0 -1
- package/dist/core.d.ts +44 -2
- package/dist/core.js +54 -23
- package/dist/index.d.ts +4 -2
- package/dist/index.js +3 -2
- package/dist/lens/catalog.d.ts +99 -0
- package/dist/lens/catalog.js +157 -0
- package/dist/lens/document.d.ts +0 -1
- package/dist/lens/document.js +10 -1
- package/dist/lens/kv.d.ts +0 -1
- package/dist/lens/kv.js +0 -1
- package/dist/lens/relational.d.ts +0 -1
- package/dist/lens/relational.js +11 -1
- package/dist/lens/types.d.ts +0 -1
- package/dist/lens/types.js +0 -1
- package/dist/query/range.d.ts +0 -1
- package/dist/query/range.js +0 -1
- package/package.json +1 -1
- package/dist/adapter/store.d.ts.map +0 -1
- package/dist/adapter/store.js.map +0 -1
- package/dist/core.d.ts.map +0 -1
- package/dist/core.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lens/document.d.ts.map +0 -1
- package/dist/lens/document.js.map +0 -1
- package/dist/lens/kv.d.ts.map +0 -1
- package/dist/lens/kv.js.map +0 -1
- package/dist/lens/relational.d.ts.map +0 -1
- package/dist/lens/relational.js.map +0 -1
- package/dist/lens/types.d.ts.map +0 -1
- package/dist/lens/types.js.map +0 -1
- package/dist/query/range.d.ts.map +0 -1
- package/dist/query/range.js.map +0 -1
package/README.md
CHANGED
|
@@ -249,6 +249,61 @@ users.join(orders, "id", "userId").select("users.name", "orders.total").toArray(
|
|
|
249
249
|
|
|
250
250
|
`where` is O(n) in the table size and `join` is O(n*m) — nested-loop, no indexes (the same deliberate v1 omission as the document lens). Unmatched rows on either side are dropped (inner join), and a left key matching several right rows fans out to several result rows.
|
|
251
251
|
|
|
252
|
+
## The catalog — what a database holds
|
|
253
|
+
|
|
254
|
+
Open a LibreDB file cold and the bytes alone don't say which lens each namespace belongs to. The catalog records that as you write: a `table` registers `{ kind: "relational", schema }` when its handle is built, and a `doc` collection registers `{ kind: "document" }` on its first write. `catalog(db)` reads the whole registry — a `Map` from namespace name to its entry — so a tool can render faithful per-kind views without guessing:
|
|
255
|
+
|
|
256
|
+
```ts
|
|
257
|
+
import { open, table, doc, catalog } from "libredb";
|
|
258
|
+
|
|
259
|
+
const db = open();
|
|
260
|
+
|
|
261
|
+
table(db, "users", { primaryKey: "id", columns: { id: "string", age: "number" } });
|
|
262
|
+
doc(db, "logs").put("l1", { message: "hello" });
|
|
263
|
+
|
|
264
|
+
const registry = catalog(db);
|
|
265
|
+
registry.get("users");
|
|
266
|
+
// { kind: "relational", schema: { primaryKey: "id", columns: { id: "string", age: "number" } } }
|
|
267
|
+
registry.get("logs");
|
|
268
|
+
// { kind: "document" }
|
|
269
|
+
[...registry.keys()].sort();
|
|
270
|
+
// ["logs", "users"]
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
The catalog lives under a reserved key prefix that sorts below all user data, so its entries never appear in a `kv`, `doc`, or `table` scan — and no user row leaks into the registry. `kv` namespaces are deliberately not cataloged: `kv` is the raw layer with full keyspace access.
|
|
274
|
+
|
|
275
|
+
## Reliability — deterministic simulation testing
|
|
276
|
+
|
|
277
|
+
Durability is the trust-critical promise: a transaction that returns has been fsync'd, and a crash can only ever damage the last, un-fsync'd record. LibreDB proves this with **deterministic simulation testing (DST)** — the WAL's crash/recovery path is tortured under a seeded, in-memory simulated filesystem. The kernel reaches the disk only through an injectable FS seam (`open({ path, fs })`), so a test can run the real engine on a `SimFS` that crashes on command, tears the un-fsync'd tail at a seeded point, and injects CRC corruption or short reads.
|
|
278
|
+
|
|
279
|
+
Every run is driven by one integer seed and a seeded workload of `set`/`delete`/`transact` operations. After the crash and reopen, recovery must reproduce **a valid committed prefix** of the workload — every transaction that returned successfully, and never a torn or un-committed one. An independent committed-map model (sharing no code with the engine) is the oracle the recovered state is compared against.
|
|
280
|
+
|
|
281
|
+
The DST suite runs as part of the normal gate:
|
|
282
|
+
|
|
283
|
+
```sh
|
|
284
|
+
bun run test # runs a bounded 50 seeds (fast, CI-friendly)
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Run a longer soak by raising the seed count (and optionally the base seed):
|
|
288
|
+
|
|
289
|
+
```sh
|
|
290
|
+
LIBREDB_DST_SEEDS=5000 bun test src/sim/dst.test.ts
|
|
291
|
+
LIBREDB_DST_BASE=1000000 LIBREDB_DST_SEEDS=5000 bun test src/sim/dst.test.ts
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
When a seed fails, the suite prints the exact replay hint — `Replay with runSeed(<seed>)`. Because everything is seed-driven, one seed reproduces the whole run byte-for-byte:
|
|
295
|
+
|
|
296
|
+
```ts
|
|
297
|
+
import { runSeed } from "./src/sim/dst.ts";
|
|
298
|
+
|
|
299
|
+
const result = runSeed(42);
|
|
300
|
+
result.passed; // true — recovered state is a valid committed prefix
|
|
301
|
+
result.recovered; // Map of the recovered committed key-value state
|
|
302
|
+
result.expected; // the model oracle's committed state
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
The DST harness lives in `src/sim/` and is excluded from the published package — it is test machinery, not shipped code.
|
|
306
|
+
|
|
252
307
|
## Read first
|
|
253
308
|
|
|
254
309
|
- [`MANIFESTO.md`](./MANIFESTO.md) — what LibreDB is and what it refuses to be.
|
package/dist/adapter/store.d.ts
CHANGED
package/dist/adapter/store.js
CHANGED
package/dist/core.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* and discards any record a crash left half-written.
|
|
21
21
|
*/
|
|
22
22
|
/** The LibreDB package version. Kept in sync with package.json. */
|
|
23
|
-
export declare const version = "0.0.
|
|
23
|
+
export declare const version = "0.0.2";
|
|
24
24
|
/**
|
|
25
25
|
* A key in the kernel: an immutable sequence of bytes.
|
|
26
26
|
*
|
|
@@ -87,6 +87,42 @@ export interface Database {
|
|
|
87
87
|
/** Flush pending state and release resources. Safe to call once. */
|
|
88
88
|
close(): void;
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* The filesystem the write-ahead log runs on — the kernel's one IO seam.
|
|
92
|
+
*
|
|
93
|
+
* The kernel never calls `node:fs` directly; every byte that reaches the disk
|
|
94
|
+
* goes through this interface. That keeps the IO boundary explicit and in one
|
|
95
|
+
* place (a readability gain), and it lets a test inject a simulated filesystem
|
|
96
|
+
* to torture crash recovery without a real disk (DESIGN.md section 6.4). The
|
|
97
|
+
* default is a thin real-`node:fs` adapter, so production behaviour is
|
|
98
|
+
* unchanged. The interface is deliberately the SMALLEST set of operations the
|
|
99
|
+
* WAL performs and nothing more.
|
|
100
|
+
*/
|
|
101
|
+
export interface FileSystem {
|
|
102
|
+
/** Open the log file at `path` for reading and appending, creating it if it
|
|
103
|
+
* is absent, and return a handle to it. */
|
|
104
|
+
open(path: string): WalFile;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* An open handle to a write-ahead log file: exactly the operations the WAL
|
|
108
|
+
* performs on it. Writes are append-only; recovery reads the file and may
|
|
109
|
+
* truncate a torn tail.
|
|
110
|
+
*/
|
|
111
|
+
export interface WalFile {
|
|
112
|
+
/** The number of bytes currently in the file. */
|
|
113
|
+
size(): number;
|
|
114
|
+
/** Read `length` bytes starting at `offset`. */
|
|
115
|
+
read(offset: number, length: number): Uint8Array;
|
|
116
|
+
/** Append `bytes` to the end of the file. */
|
|
117
|
+
append(bytes: Uint8Array): void;
|
|
118
|
+
/** Flush appended bytes to durable storage. After this returns the bytes
|
|
119
|
+
* survive a crash — the durability point of a commit. */
|
|
120
|
+
fsync(): void;
|
|
121
|
+
/** Shrink the file to `length` bytes, dropping anything after it. */
|
|
122
|
+
truncate(length: number): void;
|
|
123
|
+
/** Release the handle. */
|
|
124
|
+
close(): void;
|
|
125
|
+
}
|
|
90
126
|
/**
|
|
91
127
|
* How to open a kernel instance.
|
|
92
128
|
*
|
|
@@ -96,6 +132,13 @@ export interface Database {
|
|
|
96
132
|
*/
|
|
97
133
|
export interface OpenOptions {
|
|
98
134
|
readonly path?: string;
|
|
135
|
+
/**
|
|
136
|
+
* The filesystem the write-ahead log runs on. Defaults to a thin real
|
|
137
|
+
* `node:fs` adapter. Injecting one lets tests simulate crashes and IO faults
|
|
138
|
+
* deterministically (DESIGN.md section 6.4). Ignored when there is no `path`
|
|
139
|
+
* (an in-memory database never touches a filesystem).
|
|
140
|
+
*/
|
|
141
|
+
readonly fs?: FileSystem;
|
|
99
142
|
}
|
|
100
143
|
/** The signature of the kernel's entry point (see {@link open} for the
|
|
101
144
|
* implementation). Naming the contract separately lets lenses depend on it. */
|
|
@@ -108,4 +151,3 @@ export type Open = (options?: OpenOptions) => Database;
|
|
|
108
151
|
* in-memory.
|
|
109
152
|
*/
|
|
110
153
|
export declare const open: Open;
|
|
111
|
-
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.js
CHANGED
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* transactions, and a write-ahead log for durability. Recovery replays that log
|
|
20
20
|
* and discards any record a crash left half-written.
|
|
21
21
|
*/
|
|
22
|
-
import { closeSync,
|
|
22
|
+
import { closeSync, fsyncSync, openSync, readFileSync, statSync, truncateSync, writeSync, } from "node:fs";
|
|
23
23
|
/** The LibreDB package version. Kept in sync with package.json. */
|
|
24
|
-
export const version = "0.0.
|
|
24
|
+
export const version = "0.0.2";
|
|
25
25
|
/**
|
|
26
26
|
* Compare two keys by unsigned byte-lexicographic order: the first differing
|
|
27
27
|
* byte decides, and if one key is a prefix of the other the shorter sorts
|
|
@@ -219,18 +219,14 @@ function replayPayload(entries, payload) {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
/**
|
|
222
|
-
* Rebuild the committed store from the log
|
|
222
|
+
* Rebuild the committed store from the log behind `file`, returning its entries.
|
|
223
223
|
* Replays every intact record and stops at the first record a crash left torn
|
|
224
224
|
* (header promises bytes that are not there) or corrupt (checksum mismatch),
|
|
225
225
|
* truncating that tail away so the next append starts from a clean boundary.
|
|
226
226
|
*/
|
|
227
|
-
function recover(
|
|
227
|
+
function recover(file) {
|
|
228
228
|
const entries = [];
|
|
229
|
-
|
|
230
|
-
return entries;
|
|
231
|
-
// Copy into a plain Uint8Array so slices are independent copies, not views
|
|
232
|
-
// aliasing a shared Buffer pool.
|
|
233
|
-
const log = new Uint8Array(readFileSync(path));
|
|
229
|
+
const log = file.read(0, file.size());
|
|
234
230
|
let offset = 0;
|
|
235
231
|
while (offset + RECORD_HEADER <= log.length) {
|
|
236
232
|
const size = readU32(log, offset);
|
|
@@ -246,26 +242,62 @@ function recover(path) {
|
|
|
246
242
|
offset = end;
|
|
247
243
|
}
|
|
248
244
|
if (offset < log.length)
|
|
249
|
-
|
|
245
|
+
file.truncate(offset);
|
|
250
246
|
return entries;
|
|
251
247
|
}
|
|
252
|
-
/**
|
|
253
|
-
*
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
248
|
+
/**
|
|
249
|
+
* The default {@link FileSystem}: a thin adapter over `node:fs`. Each method is
|
|
250
|
+
* the obvious synchronous syscall, so the seam adds an interface, not behaviour.
|
|
251
|
+
* Appends go through one append-mode descriptor (creating the file if missing);
|
|
252
|
+
* reads, size and truncate work by path, matching how the WAL has always
|
|
253
|
+
* reached the disk.
|
|
254
|
+
*/
|
|
255
|
+
function nodeFileSystem() {
|
|
256
|
+
return {
|
|
257
|
+
open(path) {
|
|
258
|
+
const fd = openSync(path, "a"); // append-only; creates the file if missing
|
|
259
|
+
return {
|
|
260
|
+
size() {
|
|
261
|
+
return statSync(path).size;
|
|
262
|
+
},
|
|
263
|
+
read(offset, length) {
|
|
264
|
+
// A fresh Uint8Array so the returned slice is an independent copy, not
|
|
265
|
+
// a view aliasing a shared Buffer pool.
|
|
266
|
+
return new Uint8Array(readFileSync(path)).subarray(offset, offset + length);
|
|
267
|
+
},
|
|
268
|
+
append(bytes) {
|
|
269
|
+
for (let written = 0; written < bytes.length;) {
|
|
270
|
+
written += writeSync(fd, bytes, written);
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
fsync() {
|
|
274
|
+
fsyncSync(fd);
|
|
275
|
+
},
|
|
276
|
+
truncate(length) {
|
|
277
|
+
truncateSync(path, length);
|
|
278
|
+
},
|
|
279
|
+
close() {
|
|
280
|
+
closeSync(fd);
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
},
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/** Open the log file at `path` on `fs`, recover the store from it, and return
|
|
287
|
+
* the recovered entries together with a {@link Log} that appends future commits
|
|
288
|
+
* to the same file. */
|
|
289
|
+
function openLog(path, fs) {
|
|
290
|
+
const file = fs.open(path);
|
|
291
|
+
const entries = recover(file);
|
|
257
292
|
return {
|
|
258
293
|
entries,
|
|
259
294
|
log: {
|
|
260
295
|
append(ops) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
written += writeSync(fd, record, written);
|
|
264
|
-
}
|
|
265
|
-
fsyncSync(fd); // the durability point: bytes are on disk before we return
|
|
296
|
+
file.append(encodeRecord(ops));
|
|
297
|
+
file.fsync(); // the durability point: bytes are on disk before we return
|
|
266
298
|
},
|
|
267
299
|
close() {
|
|
268
|
-
|
|
300
|
+
file.close();
|
|
269
301
|
},
|
|
270
302
|
},
|
|
271
303
|
};
|
|
@@ -285,7 +317,7 @@ export const open = (options) => {
|
|
|
285
317
|
let committed;
|
|
286
318
|
let log;
|
|
287
319
|
if (options?.path !== undefined) {
|
|
288
|
-
const opened = openLog(options.path);
|
|
320
|
+
const opened = openLog(options.path, options.fs ?? nodeFileSystem());
|
|
289
321
|
committed = opened.entries;
|
|
290
322
|
log = opened.log;
|
|
291
323
|
}
|
|
@@ -340,4 +372,3 @@ export const open = (options) => {
|
|
|
340
372
|
},
|
|
341
373
|
};
|
|
342
374
|
};
|
|
343
|
-
//# sourceMappingURL=core.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* database and put a lens over it — {@link kv} (strings) or {@link doc} (JSON
|
|
6
6
|
* documents). The kernel's byte-level internals (and each lens's private codec)
|
|
7
7
|
* stay unexported on purpose — the lens is the usable face. The relational lens
|
|
8
|
-
* ({@link table}) completes the trio.
|
|
8
|
+
* ({@link table}) completes the trio. {@link catalog} reads the registry of
|
|
9
|
+
* namespaces a database holds, so a tool can render faithful per-kind views.
|
|
9
10
|
*/
|
|
10
11
|
export { version, open } from "./core.ts";
|
|
11
12
|
export type { Database, OpenOptions } from "./core.ts";
|
|
@@ -15,5 +16,6 @@ export { doc } from "./lens/document.ts";
|
|
|
15
16
|
export type { DocCollection, Doc, DocEntry, JsonValue } from "./lens/document.ts";
|
|
16
17
|
export { table } from "./lens/relational.ts";
|
|
17
18
|
export type { Table, TableSchema, Row, ColumnType, Query } from "./lens/relational.ts";
|
|
19
|
+
export { catalog } from "./lens/catalog.ts";
|
|
20
|
+
export type { CatalogEntry, CatalogRegistry } from "./lens/catalog.ts";
|
|
18
21
|
export type { Result, WriteResult } from "./lens/types.ts";
|
|
19
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* database and put a lens over it — {@link kv} (strings) or {@link doc} (JSON
|
|
6
6
|
* documents). The kernel's byte-level internals (and each lens's private codec)
|
|
7
7
|
* stay unexported on purpose — the lens is the usable face. The relational lens
|
|
8
|
-
* ({@link table}) completes the trio.
|
|
8
|
+
* ({@link table}) completes the trio. {@link catalog} reads the registry of
|
|
9
|
+
* namespaces a database holds, so a tool can render faithful per-kind views.
|
|
9
10
|
*/
|
|
10
11
|
export { version, open } from "./core.js";
|
|
11
12
|
export { kv } from "./lens/kv.js";
|
|
12
13
|
export { doc } from "./lens/document.js";
|
|
13
14
|
export { table } from "./lens/relational.js";
|
|
14
|
-
|
|
15
|
+
export { catalog } from "./lens/catalog.js";
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { Store } from "../adapter/store.ts";
|
|
2
|
+
import type { Transaction } from "../core.ts";
|
|
3
|
+
import type { TableSchema } from "./relational.ts";
|
|
4
|
+
/**
|
|
5
|
+
* The reserved marker. It is U+0000, encoded as the single byte 0x00 — the
|
|
6
|
+
* lowest byte, so it sorts before every byte a non-reserved UTF-8 name can begin
|
|
7
|
+
* with. A user collection or table name may not start with it (see
|
|
8
|
+
* {@link assertUserName}); that one rule keeps all user keys strictly above, and
|
|
9
|
+
* therefore disjoint from, the catalog namespace below.
|
|
10
|
+
*/
|
|
11
|
+
export declare const RESERVED_MARKER = "\0";
|
|
12
|
+
/**
|
|
13
|
+
* The catalog key prefix: every catalog entry's key begins with this string. It
|
|
14
|
+
* opens with the reserved marker, so the whole catalog namespace sorts before
|
|
15
|
+
* any user-data key (which can never start with the marker). The readable
|
|
16
|
+
* `libredb:catalog:` tail keeps the namespace self-describing if a raw-KV tool
|
|
17
|
+
* dumps the file before it understands the catalog.
|
|
18
|
+
*/
|
|
19
|
+
export declare const CATALOG_PREFIX = "\0libredb:catalog:";
|
|
20
|
+
/**
|
|
21
|
+
* Reject a user namespace name that begins with the reserved marker — a loud
|
|
22
|
+
* error, the same class of correctness rule as the prefix-soundness checks the
|
|
23
|
+
* lenses already enforce. Such a name could place a user key inside the catalog
|
|
24
|
+
* namespace and break the isolation the catalog relies on, so it is forbidden
|
|
25
|
+
* outright rather than silently remapped. Called by `doc` and `table` when a
|
|
26
|
+
* handle is built; the raw kv lens is deliberately not guarded — it is the raw
|
|
27
|
+
* layer with full keyspace access (DESIGN.md section 6.3).
|
|
28
|
+
*/
|
|
29
|
+
export declare function assertUserName(name: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* The lens a cataloged namespace belongs to, plus (for a relational table) its
|
|
32
|
+
* schema — the otherwise-unrecoverable interpretation a cold-opening tool needs
|
|
33
|
+
* (DESIGN.md section 6.3). `kv` namespaces are never cataloged (kv is the raw
|
|
34
|
+
* layer); a `document` entry carries only `kind` (documents are schemaless).
|
|
35
|
+
*/
|
|
36
|
+
export interface CatalogEntry {
|
|
37
|
+
readonly kind: "kv" | "document" | "relational";
|
|
38
|
+
readonly schema?: TableSchema;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The whole catalog as a snapshot, keyed by namespace name (the `<collection>`
|
|
42
|
+
* or `<table>`, with the reserved prefix stripped). It is the registry a tool
|
|
43
|
+
* that opens a LibreDB file cold reads to render faithful per-kind views
|
|
44
|
+
* (DESIGN.md section 6.3): for each namespace, which lens it belongs to and, for
|
|
45
|
+
* a relational table, its schema.
|
|
46
|
+
*/
|
|
47
|
+
export type CatalogRegistry = ReadonlyMap<string, CatalogEntry>;
|
|
48
|
+
/**
|
|
49
|
+
* Record a relational table's schema in the catalog on first creation, or — if
|
|
50
|
+
* the namespace is already cataloged — validate that the passed schema equals
|
|
51
|
+
* the persisted one, throwing on mismatch (DESIGN.md section 6.3: no schema
|
|
52
|
+
* migration in v1). Called by {@link table} when a handle is built.
|
|
53
|
+
*
|
|
54
|
+
* The read and the conditional write run in ONE kernel transaction, so the
|
|
55
|
+
* check-then-record is atomic and, on a file-backed database, the entry is
|
|
56
|
+
* fsync'd through the WAL before `table()` returns (it survives a reopen). The
|
|
57
|
+
* value is JSON of a {@link CatalogEntry} — an ordinary KV value under the
|
|
58
|
+
* reserved key, so the kv lens (the raw layer) can also read it.
|
|
59
|
+
*/
|
|
60
|
+
export declare function recordRelational(store: Store, name: string, schema: TableSchema): void;
|
|
61
|
+
/**
|
|
62
|
+
* Register a document collection in the catalog on its first write, recording
|
|
63
|
+
* only `{ kind: "document" }` — documents are schemaless, so existence and kind
|
|
64
|
+
* are all there is to record (DESIGN.md section 6.3). Idempotent: it writes the
|
|
65
|
+
* entry only when the namespace is not already cataloged, so repeated writes
|
|
66
|
+
* neither duplicate nor error.
|
|
67
|
+
*
|
|
68
|
+
* Unlike {@link recordRelational}, this takes the caller's {@link Transaction}
|
|
69
|
+
* rather than a {@link Store}: a document collection registers lazily on its
|
|
70
|
+
* first `put`, which is already inside a transaction, and the kernel forbids
|
|
71
|
+
* nested `transact`. Riding the write's own transaction also makes the
|
|
72
|
+
* registration and the first document durable together (one fsync, atomic).
|
|
73
|
+
*
|
|
74
|
+
* Write-if-absent is the crux that keeps a relational table's catalog entry
|
|
75
|
+
* intact: `table()` routes its inserts through an internal document `put`, but
|
|
76
|
+
* the `{ kind: "relational", schema }` entry was already recorded at table
|
|
77
|
+
* construction (see {@link recordRelational}), so this no-ops there and never
|
|
78
|
+
* downgrades it to a bare `document` kind.
|
|
79
|
+
*/
|
|
80
|
+
export declare function recordDocument(tx: Transaction, name: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* Read the whole catalog as a {@link CatalogRegistry} snapshot — the public
|
|
83
|
+
* read API a tool uses to enumerate a database's namespaces and their kinds
|
|
84
|
+
* (DESIGN.md section 6.3). Each entry's key has the reserved prefix stripped, so
|
|
85
|
+
* callers see plain namespace names (`users`, not `\x00libredb:catalog:users`).
|
|
86
|
+
*
|
|
87
|
+
* It scans only `[CATALOG_PREFIX, upperBound)` — the same byte-level prefix
|
|
88
|
+
* range the lenses use, computed by {@link prefixRange}. Because the prefix
|
|
89
|
+
* opens with the reserved low byte and {@link assertUserName} keeps user keys
|
|
90
|
+
* above it, that range is disjoint from all user data: catalog entries never
|
|
91
|
+
* leak into a `doc`/`table`/user-`kv` scan, and no user row leaks into the
|
|
92
|
+
* registry.
|
|
93
|
+
*
|
|
94
|
+
* The result is an EAGER snapshot, not a lazy {@link import("./types.ts").Result}
|
|
95
|
+
* like a lens read: the catalog is small metadata (one entry per namespace), and
|
|
96
|
+
* a `Map` gives a tool direct lookup and enumeration. The single read
|
|
97
|
+
* transaction sees one consistent committed state.
|
|
98
|
+
*/
|
|
99
|
+
export declare function catalog(store: Store): CatalogRegistry;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* lens/catalog.ts — the reserved catalog namespace and the user-name policy.
|
|
3
|
+
*
|
|
4
|
+
* The catalog (DESIGN.md section 6.3) lets a tool that opens a LibreDB file cold
|
|
5
|
+
* — e.g. the LibreDB Studio provider — show faithful per-kind views: which lens
|
|
6
|
+
* a namespace belongs to, and a relational table's schema. That interpretation
|
|
7
|
+
* lives in application code, not on disk, so the lenses persist it as ordinary
|
|
8
|
+
* KV entries under a reserved key prefix. It is a lens-level CONVENTION, not a
|
|
9
|
+
* kernel feature: core.ts stays pure ordered-KV and unchanged (honesty
|
|
10
|
+
* discipline — do not grow the core for this).
|
|
11
|
+
*
|
|
12
|
+
* This file establishes the namespace, the one correctness rule it depends on,
|
|
13
|
+
* and the registry write/validate mechanics. The `catalog` read API for tools is
|
|
14
|
+
* added in a later phase; here a `table` records its schema and a reopen
|
|
15
|
+
* validates against it.
|
|
16
|
+
*
|
|
17
|
+
* The codec and comparison here are the catalog's OWN — it deliberately does not
|
|
18
|
+
* import a lens. The dependency arrow points lenses -> catalog (the lenses call
|
|
19
|
+
* {@link recordRelational}); the catalog never points back at a lens, so it stays
|
|
20
|
+
* a leaf the lenses build on. The only lens reference is the type-level
|
|
21
|
+
* {@link TableSchema} import, which is erased at runtime (`import type`), so it
|
|
22
|
+
* adds no runtime coupling or import cycle.
|
|
23
|
+
*/
|
|
24
|
+
import { prefixRange } from "../query/range.js";
|
|
25
|
+
/**
|
|
26
|
+
* The reserved marker. It is U+0000, encoded as the single byte 0x00 — the
|
|
27
|
+
* lowest byte, so it sorts before every byte a non-reserved UTF-8 name can begin
|
|
28
|
+
* with. A user collection or table name may not start with it (see
|
|
29
|
+
* {@link assertUserName}); that one rule keeps all user keys strictly above, and
|
|
30
|
+
* therefore disjoint from, the catalog namespace below.
|
|
31
|
+
*/
|
|
32
|
+
export const RESERVED_MARKER = "\x00";
|
|
33
|
+
/**
|
|
34
|
+
* The catalog key prefix: every catalog entry's key begins with this string. It
|
|
35
|
+
* opens with the reserved marker, so the whole catalog namespace sorts before
|
|
36
|
+
* any user-data key (which can never start with the marker). The readable
|
|
37
|
+
* `libredb:catalog:` tail keeps the namespace self-describing if a raw-KV tool
|
|
38
|
+
* dumps the file before it understands the catalog.
|
|
39
|
+
*/
|
|
40
|
+
export const CATALOG_PREFIX = `${RESERVED_MARKER}libredb:catalog:`;
|
|
41
|
+
/**
|
|
42
|
+
* Reject a user namespace name that begins with the reserved marker — a loud
|
|
43
|
+
* error, the same class of correctness rule as the prefix-soundness checks the
|
|
44
|
+
* lenses already enforce. Such a name could place a user key inside the catalog
|
|
45
|
+
* namespace and break the isolation the catalog relies on, so it is forbidden
|
|
46
|
+
* outright rather than silently remapped. Called by `doc` and `table` when a
|
|
47
|
+
* handle is built; the raw kv lens is deliberately not guarded — it is the raw
|
|
48
|
+
* layer with full keyspace access (DESIGN.md section 6.3).
|
|
49
|
+
*/
|
|
50
|
+
export function assertUserName(name) {
|
|
51
|
+
if (name.startsWith(RESERVED_MARKER)) {
|
|
52
|
+
throw new Error(`libredb: namespace name ${JSON.stringify(name)} may not start with the reserved catalog marker (U+0000)`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const utf8 = new TextEncoder();
|
|
56
|
+
const fromUtf8 = new TextDecoder();
|
|
57
|
+
/** The kernel key for one namespace's catalog entry: the reserved prefix plus
|
|
58
|
+
* the namespace name, UTF-8 encoded. Because the prefix opens with the reserved
|
|
59
|
+
* low byte, this key always sorts outside every user-data range. */
|
|
60
|
+
function catalogKey(name) {
|
|
61
|
+
return utf8.encode(CATALOG_PREFIX + name);
|
|
62
|
+
}
|
|
63
|
+
/** Whether two table schemas are equal by structure: same primary key and the
|
|
64
|
+
* same columns mapped to the same types. Declared column ORDER is irrelevant
|
|
65
|
+
* (the comparison is over the key set), so reopening with the same schema
|
|
66
|
+
* written differently still validates. Specialized to the schema shape on
|
|
67
|
+
* purpose — the catalog has no arbitrary-JSON entries to compare. */
|
|
68
|
+
function schemasEqual(a, b) {
|
|
69
|
+
const aColumns = Object.keys(a.columns);
|
|
70
|
+
const bColumns = Object.keys(b.columns);
|
|
71
|
+
return (a.primaryKey === b.primaryKey &&
|
|
72
|
+
aColumns.length === bColumns.length &&
|
|
73
|
+
aColumns.every((column) => a.columns[column] === b.columns[column]));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Record a relational table's schema in the catalog on first creation, or — if
|
|
77
|
+
* the namespace is already cataloged — validate that the passed schema equals
|
|
78
|
+
* the persisted one, throwing on mismatch (DESIGN.md section 6.3: no schema
|
|
79
|
+
* migration in v1). Called by {@link table} when a handle is built.
|
|
80
|
+
*
|
|
81
|
+
* The read and the conditional write run in ONE kernel transaction, so the
|
|
82
|
+
* check-then-record is atomic and, on a file-backed database, the entry is
|
|
83
|
+
* fsync'd through the WAL before `table()` returns (it survives a reopen). The
|
|
84
|
+
* value is JSON of a {@link CatalogEntry} — an ordinary KV value under the
|
|
85
|
+
* reserved key, so the kv lens (the raw layer) can also read it.
|
|
86
|
+
*/
|
|
87
|
+
export function recordRelational(store, name, schema) {
|
|
88
|
+
store.transact((tx) => {
|
|
89
|
+
const key = catalogKey(name);
|
|
90
|
+
const existing = tx.get(key);
|
|
91
|
+
if (existing === undefined) {
|
|
92
|
+
const entry = { kind: "relational", schema };
|
|
93
|
+
tx.set(key, utf8.encode(JSON.stringify(entry)));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const persisted = JSON.parse(fromUtf8.decode(existing));
|
|
97
|
+
if (persisted.schema === undefined || !schemasEqual(persisted.schema, schema)) {
|
|
98
|
+
throw new Error(`libredb: table ${JSON.stringify(name)} was reopened with a schema that does not match ` +
|
|
99
|
+
`the persisted catalog entry; v1 does not support schema migration`);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Register a document collection in the catalog on its first write, recording
|
|
105
|
+
* only `{ kind: "document" }` — documents are schemaless, so existence and kind
|
|
106
|
+
* are all there is to record (DESIGN.md section 6.3). Idempotent: it writes the
|
|
107
|
+
* entry only when the namespace is not already cataloged, so repeated writes
|
|
108
|
+
* neither duplicate nor error.
|
|
109
|
+
*
|
|
110
|
+
* Unlike {@link recordRelational}, this takes the caller's {@link Transaction}
|
|
111
|
+
* rather than a {@link Store}: a document collection registers lazily on its
|
|
112
|
+
* first `put`, which is already inside a transaction, and the kernel forbids
|
|
113
|
+
* nested `transact`. Riding the write's own transaction also makes the
|
|
114
|
+
* registration and the first document durable together (one fsync, atomic).
|
|
115
|
+
*
|
|
116
|
+
* Write-if-absent is the crux that keeps a relational table's catalog entry
|
|
117
|
+
* intact: `table()` routes its inserts through an internal document `put`, but
|
|
118
|
+
* the `{ kind: "relational", schema }` entry was already recorded at table
|
|
119
|
+
* construction (see {@link recordRelational}), so this no-ops there and never
|
|
120
|
+
* downgrades it to a bare `document` kind.
|
|
121
|
+
*/
|
|
122
|
+
export function recordDocument(tx, name) {
|
|
123
|
+
const key = catalogKey(name);
|
|
124
|
+
if (tx.get(key) !== undefined)
|
|
125
|
+
return;
|
|
126
|
+
const entry = { kind: "document" };
|
|
127
|
+
tx.set(key, utf8.encode(JSON.stringify(entry)));
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Read the whole catalog as a {@link CatalogRegistry} snapshot — the public
|
|
131
|
+
* read API a tool uses to enumerate a database's namespaces and their kinds
|
|
132
|
+
* (DESIGN.md section 6.3). Each entry's key has the reserved prefix stripped, so
|
|
133
|
+
* callers see plain namespace names (`users`, not `\x00libredb:catalog:users`).
|
|
134
|
+
*
|
|
135
|
+
* It scans only `[CATALOG_PREFIX, upperBound)` — the same byte-level prefix
|
|
136
|
+
* range the lenses use, computed by {@link prefixRange}. Because the prefix
|
|
137
|
+
* opens with the reserved low byte and {@link assertUserName} keeps user keys
|
|
138
|
+
* above it, that range is disjoint from all user data: catalog entries never
|
|
139
|
+
* leak into a `doc`/`table`/user-`kv` scan, and no user row leaks into the
|
|
140
|
+
* registry.
|
|
141
|
+
*
|
|
142
|
+
* The result is an EAGER snapshot, not a lazy {@link import("./types.ts").Result}
|
|
143
|
+
* like a lens read: the catalog is small metadata (one entry per namespace), and
|
|
144
|
+
* a `Map` gives a tool direct lookup and enumeration. The single read
|
|
145
|
+
* transaction sees one consistent committed state.
|
|
146
|
+
*/
|
|
147
|
+
export function catalog(store) {
|
|
148
|
+
const { start, end } = prefixRange(utf8.encode(CATALOG_PREFIX));
|
|
149
|
+
return store.transact((tx) => {
|
|
150
|
+
const registry = new Map();
|
|
151
|
+
for (const entry of tx.getRange(start, end)) {
|
|
152
|
+
const name = fromUtf8.decode(entry.key).slice(CATALOG_PREFIX.length);
|
|
153
|
+
registry.set(name, JSON.parse(fromUtf8.decode(entry.value)));
|
|
154
|
+
}
|
|
155
|
+
return registry;
|
|
156
|
+
});
|
|
157
|
+
}
|
package/dist/lens/document.d.ts
CHANGED
package/dist/lens/document.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { result } from "./types.js";
|
|
15
15
|
import { prefixRange } from "../query/range.js";
|
|
16
|
+
import { assertUserName, recordDocument } from "./catalog.js";
|
|
16
17
|
const utf8 = new TextEncoder();
|
|
17
18
|
const fromUtf8 = new TextDecoder();
|
|
18
19
|
/** Serialize a document to UTF-8 JSON bytes — the form the kernel stores. */
|
|
@@ -95,6 +96,9 @@ function keyOf(collection, id) {
|
|
|
95
96
|
* can run a transaction).
|
|
96
97
|
*/
|
|
97
98
|
export function doc(store, collection) {
|
|
99
|
+
// A collection name may not intrude on the reserved catalog namespace
|
|
100
|
+
// (DESIGN.md section 6.3) — reject it loudly before any key is derived.
|
|
101
|
+
assertUserName(collection);
|
|
98
102
|
// The byte range covering every `<collection>:` key. prefixRange computes the
|
|
99
103
|
// [start, end) bound on raw bytes so it agrees with the kernel's order, which
|
|
100
104
|
// is what makes the colon a sound collection boundary (a sibling like "users2"
|
|
@@ -120,6 +124,12 @@ export function doc(store, collection) {
|
|
|
120
124
|
return {
|
|
121
125
|
put(id, document) {
|
|
122
126
|
store.transact((tx) => {
|
|
127
|
+
// Register this collection in the catalog on its first write (DESIGN.md
|
|
128
|
+
// section 6.3). Idempotent and inside the write's own transaction, so the
|
|
129
|
+
// registration and the document are durable together. A table's inserts
|
|
130
|
+
// also reach here, but recordDocument is write-if-absent and the
|
|
131
|
+
// relational entry already exists, so it never downgrades that entry.
|
|
132
|
+
recordDocument(tx, collection);
|
|
123
133
|
tx.set(keyOf(collection, id), encodeDoc(document));
|
|
124
134
|
});
|
|
125
135
|
return { changed: 1 };
|
|
@@ -149,4 +159,3 @@ export function doc(store, collection) {
|
|
|
149
159
|
},
|
|
150
160
|
};
|
|
151
161
|
}
|
|
152
|
-
//# sourceMappingURL=document.js.map
|
package/dist/lens/kv.d.ts
CHANGED
package/dist/lens/kv.js
CHANGED
package/dist/lens/relational.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
* `table.column`). The kernel is unchanged.
|
|
25
25
|
*/
|
|
26
26
|
import { doc, matches } from "./document.js";
|
|
27
|
+
import { assertUserName, recordRelational } from "./catalog.js";
|
|
27
28
|
import { result } from "./types.js";
|
|
28
29
|
/** Whether `value` matches the declared `type`. `"object"` is a plain JSON
|
|
29
30
|
* object — `null` (typeof `"object"`) and arrays are rejected, since v1 has
|
|
@@ -162,6 +163,9 @@ function query(name, source) {
|
|
|
162
163
|
* the primary key becomes the string kernel key.
|
|
163
164
|
*/
|
|
164
165
|
export function table(store, name, schema) {
|
|
166
|
+
// A table name may not intrude on the reserved catalog namespace (DESIGN.md
|
|
167
|
+
// section 6.3) — reject it before validating the schema or deriving any key.
|
|
168
|
+
assertUserName(name);
|
|
165
169
|
const pkType = schema.columns[schema.primaryKey];
|
|
166
170
|
if (pkType === undefined) {
|
|
167
171
|
throw new Error(`primaryKey "${schema.primaryKey}" is not a declared column`);
|
|
@@ -169,6 +173,13 @@ export function table(store, name, schema) {
|
|
|
169
173
|
if (pkType !== "string") {
|
|
170
174
|
throw new Error(`primaryKey "${schema.primaryKey}" must be a string column, but is ${pkType}`);
|
|
171
175
|
}
|
|
176
|
+
// Record this table's schema in the catalog (DESIGN.md section 6.3) so a tool
|
|
177
|
+
// opening the file cold can show a faithful relational view, or — if the name
|
|
178
|
+
// is already cataloged — validate the schema matches the persisted one (no
|
|
179
|
+
// migration in v1). Runs after the schema is structurally valid, so a broken
|
|
180
|
+
// schema never reaches the catalog. The kernel stays unchanged: this is just a
|
|
181
|
+
// KV write under the reserved prefix.
|
|
182
|
+
recordRelational(store, name, schema);
|
|
172
183
|
// A table is a schema-validated document collection: rows are stored, read,
|
|
173
184
|
// deleted, and scanned through the document lens at `<table>:<pk>`. This is
|
|
174
185
|
// what reuses the document codec and the collection-isolation-safe prefix scan;
|
|
@@ -210,4 +221,3 @@ export function table(store, name, schema) {
|
|
|
210
221
|
},
|
|
211
222
|
};
|
|
212
223
|
}
|
|
213
|
-
//# sourceMappingURL=relational.js.map
|
package/dist/lens/types.d.ts
CHANGED
package/dist/lens/types.js
CHANGED
package/dist/query/range.d.ts
CHANGED
package/dist/query/range.js
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/adapter/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC;CAC7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/adapter/store.ts"],"names":[],"mappings":""}
|
package/dist/core.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,mEAAmE;AACnE,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC;AAE7B;4EAC4E;AAC5E,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAE/B,2DAA2D;AAC3D,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,4DAA4D;IAC5D,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC,8CAA8C;IAC9C,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,oEAAoE;IACpE,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;+EAC+E;AAC/E,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAC;AAwSvD;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,IA0DlB,CAAC"}
|
package/dist/core.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AA2G/B;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,CAAM,EAAE,CAAM;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,KAAK,GAAI,CAAC,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CACb,OAA+B,EAC/B,GAAQ;IAER,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1B,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAE,OAAO,CAAC,GAAG,CAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACpD,IAAI,KAAK,GAAG,CAAC;YAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;YACxB,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACtC,CAAC;AAED;;wCAEwC;AACxC,SAAS,QAAQ,CAAC,OAAsB,EAAE,GAAQ,EAAE,KAAY;IAC9D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,KAAK;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;wDACwD;AACxD,SAAS,WAAW,CAAC,OAAsB,EAAE,GAAQ;IACnD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAWD;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,OAAsB,EAAE,OAAa;IAC5D,OAAO;QACL,GAAG,CAAC,GAAG;YACL,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,KAAK;YACZ,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,CAAC,GAAG;YACR,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG;YAClB,wEAAwE;YACxE,uEAAuE;YACvE,wEAAwE;YACxE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAgB,CAAC;gBACxC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;oBAAE,MAAM;gBAC5C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,0DAA0D;AAC1D,EAAE;AACF,2DAA2D;AAC3D,qDAAqD;AACrD,uEAAuE;AACvE,+DAA+D;AAC/D,uCAAuC;AACvC,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,+EAA+E;AAC/E,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,qDAAqD;AACrD,SAAS,QAAQ,CAAC,GAAe,EAAE,MAAc,EAAE,KAAa;IAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACjC,CAAC;AAED;2EAC2E;AAC3E,SAAS,OAAO,CAAC,MAAkB,EAAE,MAAc;IACjD,OAAO,CACL,CAAE,MAAM,CAAC,MAAM,CAAY,GAAG,SAAS;QACrC,CAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAY,IAAI,EAAE,CAAC;QACtC,CAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAY,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QACjC,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,KAAK,CAAC,IAAgB;IAC7B,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAW,CAAC;QACzB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACjC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;wCACwC;AACxC,SAAS,YAAY,CAAC,GAAkB;IACtC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK;YAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,GAAG,IAAI,CAAC,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3B,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;+CAC+C;AAC/C,SAAS,aAAa,CAAC,OAAsB,EAAE,OAAmB;IAChE,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAW,CAAC;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACxC,GAAG,IAAI,CAAC,CAAC;QACT,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;QAChD,GAAG,IAAI,SAAS,CAAC;QACjB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1C,GAAG,IAAI,CAAC,CAAC;YACT,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC;YACpD,GAAG,IAAI,WAAW,CAAC;YACnB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAEtC,2EAA2E;IAC3E,iCAAiC;IACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,GAAG,aAAa,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;QACzB,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM;YAAE,MAAM,CAAC,6CAA6C;QAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,MAAM,CAAC,oCAAoC;QAC5E,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IAED,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;QAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC;AACjB,CAAC;AAWD;8CAC8C;AAC9C,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,2CAA2C;IAC3E,OAAO;QACL,OAAO;QACP,GAAG,EAAE;YACH,MAAM,CAAC,GAAG;gBACR,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,GAAI,CAAC;oBAChD,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;gBACD,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,2DAA2D;YAC5E,CAAC;YACD,KAAK;gBACH,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAS,CAAC,OAAO,EAAE,EAAE;IACpC,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,SAAwB,CAAC;IAC7B,IAAI,GAAe,CAAC;IACpB,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3B,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,EAAE,CAAC;QACf,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,sEAAsE;IACtE,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,OAAO;QACL,QAAQ,CAAC,GAAG;YACV,IAAI,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC3D,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,aAAa,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAS,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACtD,sEAAsE;gBACtE,uEAAuE;gBACvE,sEAAsE;gBACtE,kEAAkE;gBAClE,4CAA4C;gBAC5C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5D,SAAS,GAAG,OAAO,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,yEAAyE;gBACzE,gDAAgD;gBAChD,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QACD,KAAK;YACH,IAAI,MAAM;gBAAE,OAAO,CAAC,qDAAqD;YACzE,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,GAAG,KAAK,IAAI;gBAAE,GAAG,CAAC,KAAK,EAAE,CAAC;YAC9B,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEvF,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/lens/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAU,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB;AAKD,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAEhD;AAsCD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAE9D;AAaD;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B;2CACuC;IACvC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,WAAW,CAAC;IAC5C,2EAA2E;IAC3E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IACjC;wBACoB;IACpB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC;IAChC;;;;;yDAKqD;IACrD,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxB;;;;;;;;eAQW;IACX,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CA2DnE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/lens/document.ts"],"names":[],"mappings":"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"}
|
package/dist/lens/kv.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/lens/kv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAU,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;gFACgF;AAChF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,EAAE;IACjB,mEAAmE;IACnE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC;4BACwB;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7C,iFAAiF;IACjF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IACjC;4EACwE;IACxE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD;;;qEAGiE;IACjE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;CACzC;AAOD;mEACmE;AACnE,wBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAmCnC"}
|
package/dist/lens/kv.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kv.js","sourceRoot":"","sources":["../../src/lens/kv.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relational.d.ts","sourceRoot":"","sources":["../../src/lens/relational.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAU,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;CAC3D;AAED;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;CAAE,CAAC;AA0C3E;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAM,SAAQ,MAAM,CAAC,GAAG,CAAC;IACxC;;;yEAGqE;IACrE,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC;IAC7B;;;sFAGkF;IAClF,MAAM,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;CAClE;AAuGD;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK;IACpB;wEACoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC;IAC9B;oFACgF;IAChF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IACjC;sCACkC;IAClC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC;IAChC;;;;;;4BAMwB;IACxB,GAAG,IAAI,KAAK,CAAC;IACb;sEACkE;IAClE,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC;IAC7B;4CACwC;IACxC,MAAM,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC;;;2CAGuC;IACvC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;CAClE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK,CAoD5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relational.js","sourceRoot":"","sources":["../../src/lens/relational.ts"],"names":[],"mappings":"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"}
|
package/dist/lens/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lens/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,MAAM,CAAC,GAAG,CAAE,SAAQ,QAAQ,CAAC,GAAG,CAAC;IAChD;4DACwD;IACxD,OAAO,IAAI,GAAG,EAAE,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CASpE"}
|
package/dist/lens/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lens/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoCH;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAM,MAA2B;IACrD,OAAO;QACL,CAAC,MAAM,CAAC,QAAQ,CAAC;YACf,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,CAAC;QACD,OAAO;YACL,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/query/range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAMxD"}
|
package/dist/query/range.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/query/range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAaH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,MAAkB;IACpC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,OAAO,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;QAAE,MAAM,EAAE,CAAC;IAC3D,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,GAAG,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC"}
|