@bjornpagen/bumbledb 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COOKBOOK.md +64 -27
- package/README.md +21 -20
- package/dist/capacity.d.ts +1 -1
- package/dist/changes.d.ts +4 -5
- package/dist/changes.d.ts.map +1 -1
- package/dist/changes.js +37 -34
- package/dist/changes.js.map +1 -1
- package/dist/close.d.ts +2 -2
- package/dist/codec.d.ts +5 -6
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +6 -6
- package/dist/codec.js.map +1 -1
- package/dist/compile.d.ts +4 -6
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +6 -6
- package/dist/compile.js.map +1 -1
- package/dist/db-native.d.ts +43 -56
- package/dist/db-native.d.ts.map +1 -1
- package/dist/db-native.js.map +1 -1
- package/dist/db.d.ts +43 -28
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +77 -63
- package/dist/db.js.map +1 -1
- package/dist/errors.d.ts +4 -8
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +4 -8
- package/dist/errors.js.map +1 -1
- package/dist/fields.d.ts +4 -5
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/log.d.ts +4 -4
- package/dist/internal/log.d.ts.map +1 -1
- package/dist/internal/log.js +1 -1
- package/dist/internal/log.js.map +1 -1
- package/dist/law.d.ts +1 -1
- package/dist/migration.d.ts +5 -7
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +8 -9
- package/dist/migration.js.map +1 -1
- package/dist/native.d.ts +2 -2
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/lower.d.ts +1 -1
- package/dist/result.d.ts +10 -25
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +7 -12
- package/dist/result.js.map +1 -1
- package/dist/rows.d.ts +10 -16
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +8 -45
- package/dist/rows.js.map +1 -1
- package/dist/runtime-codes.d.ts +1 -1
- package/dist/runtime-codes.d.ts.map +1 -1
- package/dist/runtime-codes.js +1 -2
- package/dist/runtime-codes.js.map +1 -1
- package/dist/runtime-errors.d.ts +3 -15
- package/dist/runtime-errors.d.ts.map +1 -1
- package/dist/runtime-errors.js +1 -5
- package/dist/runtime-errors.js.map +1 -1
- package/dist/runtime-native.d.ts +18 -48
- package/dist/runtime-native.d.ts.map +1 -1
- package/dist/runtime-native.js.map +1 -1
- package/dist/runtime.d.ts +12 -29
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +16 -57
- package/dist/runtime.js.map +1 -1
- package/dist/shape.d.ts +3 -4
- package/dist/shape.d.ts.map +1 -1
- package/dist/spec.d.ts +2 -2
- package/dist/spec.js +1 -1
- package/dist/statements.js +2 -2
- package/dist/statements.js.map +1 -1
- package/pack-provenance.json +3 -3
- package/package.json +4 -4
- package/src/capacity.ts +1 -1
- package/src/changes.ts +50 -48
- package/src/close.ts +2 -2
- package/src/codec.ts +8 -24
- package/src/compile.ts +8 -10
- package/src/db-native.ts +37 -83
- package/src/db.ts +156 -135
- package/src/errors.ts +4 -8
- package/src/fields.ts +4 -5
- package/src/index.ts +6 -5
- package/src/internal/log.ts +2 -7
- package/src/law.ts +1 -1
- package/src/migration.ts +8 -16
- package/src/native.ts +2 -3
- package/src/query/lower.ts +1 -1
- package/src/result.ts +16 -45
- package/src/rows.ts +12 -65
- package/src/runtime-codes.ts +1 -2
- package/src/runtime-errors.ts +1 -5
- package/src/runtime-native.ts +15 -68
- package/src/runtime.ts +53 -122
- package/src/shape.ts +3 -4
- package/src/spec.ts +2 -2
- package/src/statements.ts +2 -2
package/COOKBOOK.md
CHANGED
|
@@ -8,7 +8,7 @@ reads, sealed complete results, and one-shot page streams.
|
|
|
8
8
|
Every `ts` fence below is extracted and type-checked against the real
|
|
9
9
|
package surface by `test/cookbook-doc.test.ts`; the imports fence here is
|
|
10
10
|
prepended to every recipe. The examples are lazy Effect programs — nothing
|
|
11
|
-
below runs a database at import time
|
|
11
|
+
below runs a database at import time.
|
|
12
12
|
|
|
13
13
|
```ts
|
|
14
14
|
import { Effect, Option, Result, Stream } from "effect"
|
|
@@ -43,14 +43,10 @@ import {
|
|
|
43
43
|
import type {
|
|
44
44
|
ApplyOutcome,
|
|
45
45
|
CompleteResult,
|
|
46
|
-
ExecutionPolicy,
|
|
47
46
|
Fact,
|
|
48
|
-
NativeRuntimeOptions,
|
|
49
47
|
QueryReader
|
|
50
48
|
} from "@bjornpagen/bumbledb"
|
|
51
49
|
|
|
52
|
-
declare const work: ExecutionPolicy
|
|
53
|
-
declare const runtimePolicy: NativeRuntimeOptions
|
|
54
50
|
declare const localPath: string
|
|
55
51
|
```
|
|
56
52
|
|
|
@@ -93,8 +89,18 @@ void [Learning, scoreIsNumber, unitsAreExact]
|
|
|
93
89
|
|
|
94
90
|
## 2. One runtime layer; explicit create and open
|
|
95
91
|
|
|
96
|
-
`NativeRuntime.layer(
|
|
92
|
+
`NativeRuntime.layer()` acquires the single native runtime
|
|
97
93
|
with scope; reuse ONE layer value so Effect's memoization shares it.
|
|
94
|
+
Optional configuration controls workers, outstanding jobs/handles, and cleanup
|
|
95
|
+
reporting. Defaults are up to four workers, 128 queued jobs, 128 cleanup reports,
|
|
96
|
+
64 directory owners, 1,024 native handles, and a five-second cleanup report window.
|
|
97
|
+
Operations use ordinary allocation without byte/row/work quotas or execution
|
|
98
|
+
deadlines. Effect interruption requests cooperative cancellation. Runtime
|
|
99
|
+
inspection reports outstanding work, not memory usage.
|
|
100
|
+
Database `inspect().storage` reports virtual map extent, populated file length,
|
|
101
|
+
non-free LMDB pages, and allocated disk blocks (null when unavailable).
|
|
102
|
+
None of these measures process heap usage or resident RAM. Log history
|
|
103
|
+
inspection uses the same `StorageInspection` fields.
|
|
98
104
|
`Db.open` never creates a missing database; `Db.create` refuses existing
|
|
99
105
|
authority. Both are scoped acquisitions.
|
|
100
106
|
|
|
@@ -104,20 +110,20 @@ const Docs = schema("Docs", { Doc }, [key(Doc, ["id"])])
|
|
|
104
110
|
|
|
105
111
|
const openExisting = Effect.scoped(
|
|
106
112
|
Effect.gen(function* () {
|
|
107
|
-
const db = yield* Db.open(localPath, Docs
|
|
113
|
+
const db = yield* Db.open(localPath, Docs)
|
|
108
114
|
return db.schemaId
|
|
109
115
|
})
|
|
110
116
|
)
|
|
111
117
|
|
|
112
118
|
const createOnce = Effect.scoped(
|
|
113
119
|
Effect.gen(function* () {
|
|
114
|
-
const db = yield* Db.create(localPath, Docs
|
|
120
|
+
const db = yield* Db.create(localPath, Docs)
|
|
115
121
|
return db.schemaId
|
|
116
122
|
})
|
|
117
123
|
)
|
|
118
124
|
|
|
119
125
|
// One boundary; an Effect app provides the layer in its own graph instead.
|
|
120
|
-
const layer = NativeRuntime.layer(
|
|
126
|
+
const layer = NativeRuntime.layer()
|
|
121
127
|
void [openExisting.pipe(Effect.provide(layer)), createOnce.pipe(Effect.provide(layer))]
|
|
122
128
|
```
|
|
123
129
|
|
|
@@ -125,7 +131,7 @@ void [openExisting.pipe(Effect.provide(layer)), createOnce.pipe(Effect.provide(l
|
|
|
125
131
|
|
|
126
132
|
`ChangeSet.builder` acquires a scoped database-free draft. Ingestion effects
|
|
127
133
|
are lazy and re-runnable while the draft is building — each execution reads
|
|
128
|
-
the then-current iterable
|
|
134
|
+
the then-current iterable. Within ONE change set the
|
|
129
135
|
normalization is `(add, remove ∖ add)`: the identical fact's add wins
|
|
130
136
|
independent of call order. `finish()` consumes the draft into an immutable,
|
|
131
137
|
reusable `ChangeSet`.
|
|
@@ -136,12 +142,12 @@ const Tasks = schema("Tasks", { Task }, [key(Task, ["id"])])
|
|
|
136
142
|
|
|
137
143
|
const applyOnce = Effect.scoped(
|
|
138
144
|
Effect.gen(function* () {
|
|
139
|
-
const db = yield* Db.open(localPath, Tasks
|
|
145
|
+
const db = yield* Db.open(localPath, Tasks)
|
|
140
146
|
const taskId = yield* Effect.sync(() => crypto.randomUUID())
|
|
141
|
-
const draft = yield* ChangeSet.builder(Tasks
|
|
147
|
+
const draft = yield* ChangeSet.builder(Tasks)
|
|
142
148
|
yield* draft.insert(Task, [{ id: taskId, title: "write the cookbook", done: 0n }])
|
|
143
149
|
const changes = yield* draft.finish()
|
|
144
|
-
const outcome: ApplyOutcome = yield* db.apply(changes, {
|
|
150
|
+
const outcome: ApplyOutcome = yield* db.apply(changes, { expected: { kind: "any" } })
|
|
145
151
|
switch (outcome.kind) {
|
|
146
152
|
case "accepted":
|
|
147
153
|
case "no-change":
|
|
@@ -168,7 +174,7 @@ const People = schema("People", { Person }, [key(Person, ["id"])])
|
|
|
168
174
|
|
|
169
175
|
const lookup = (reader: QueryReader<typeof People>, personId: Uuid) =>
|
|
170
176
|
Effect.gen(function* () {
|
|
171
|
-
const found = yield* reader.get(Person, { id: personId }
|
|
177
|
+
const found = yield* reader.get(Person, { id: personId })
|
|
172
178
|
return Option.isSome(found) ? found.value.name : "unknown"
|
|
173
179
|
})
|
|
174
180
|
void lookup
|
|
@@ -203,13 +209,42 @@ const booksBy = query(Library).rule((r) => {
|
|
|
203
209
|
const readBooks = (reader: QueryReader<typeof Library>, name: string) =>
|
|
204
210
|
Effect.scoped(
|
|
205
211
|
Effect.gen(function* () {
|
|
206
|
-
const result = yield* reader.execute(booksBy, { name }
|
|
207
|
-
return yield* result.collect(
|
|
212
|
+
const result = yield* reader.execute(booksBy, { name })
|
|
213
|
+
return yield* result.collect()
|
|
208
214
|
})
|
|
209
215
|
)
|
|
210
216
|
void readBooks
|
|
211
217
|
```
|
|
212
218
|
|
|
219
|
+
For repeated calls on one snapshot, prepare once. The scoped handle keeps
|
|
220
|
+
one compiled plan and reuses its execution buffers; only parameters cross
|
|
221
|
+
the native boundary on subsequent calls. One-shot `execute` does not retain
|
|
222
|
+
a plan. Preparations share the snapshot's pinned version but close
|
|
223
|
+
independently; completed results also remain independent.
|
|
224
|
+
|
|
225
|
+
Ordinary execution keeps buffers for reuse. If a prepared query will sit idle
|
|
226
|
+
after a large operation, `yield* prepared.releaseMemory()` drops its
|
|
227
|
+
execution buffers but keeps the compiled query and pinned snapshot. Shared
|
|
228
|
+
query caches belong to the database: `yield* db.clearCache()` clears those
|
|
229
|
+
separately. Neither operation invalidates live results. Both are optional;
|
|
230
|
+
scope closure releases ownership as usual.
|
|
231
|
+
|
|
232
|
+
```ts
|
|
233
|
+
const readTwoAuthors = (reader: QueryReader<typeof Library>) =>
|
|
234
|
+
Effect.scoped(
|
|
235
|
+
Effect.gen(function* () {
|
|
236
|
+
const prepared = yield* reader.prepare(booksBy)
|
|
237
|
+
const first = yield* prepared.execute({ name: "Ursula Le Guin" })
|
|
238
|
+
const second = yield* prepared.execute({ name: "Octavia Butler" })
|
|
239
|
+
return [
|
|
240
|
+
yield* first.collect(),
|
|
241
|
+
yield* second.collect()
|
|
242
|
+
]
|
|
243
|
+
})
|
|
244
|
+
)
|
|
245
|
+
void readTwoAuthors
|
|
246
|
+
```
|
|
247
|
+
|
|
213
248
|
## 6. Grouped exact aggregates
|
|
214
249
|
|
|
215
250
|
Aggregates fold the group's distinct full bindings: keep the identity-bearing
|
|
@@ -263,13 +298,15 @@ const labeled = query(Telemetry).rule((r) => {
|
|
|
263
298
|
void labeled
|
|
264
299
|
```
|
|
265
300
|
|
|
266
|
-
## 8.
|
|
301
|
+
## 8. Completed results: collect or consume delivery batches
|
|
267
302
|
|
|
268
|
-
`collect(
|
|
269
|
-
leaves the result available. `pages(
|
|
303
|
+
`collect()` explicitly materializes all rows into JavaScript and
|
|
304
|
+
leaves the result available. `pages()` is a ONE-SHOT consuming
|
|
270
305
|
stream over the completed result: the first run moves the backing into a
|
|
271
306
|
private scoped cursor; a second run refuses. Every element is one owned page
|
|
272
|
-
array — pages, not rows — delivered after complete evaluation.
|
|
307
|
+
array of up to 256 rows — pages, not rows — delivered after complete evaluation.
|
|
308
|
+
Paging bounds delivery, not query execution or total result storage. An empty
|
|
309
|
+
result emits one empty page; interruption and early termination close the cursor.
|
|
273
310
|
|
|
274
311
|
```ts
|
|
275
312
|
const Event = relation("Event", { id: uuid, at: i64 })
|
|
@@ -281,7 +318,7 @@ const everything = query(Feed).rule((r) => {
|
|
|
281
318
|
})
|
|
282
319
|
|
|
283
320
|
const drain = (result: CompleteResult<{ readonly id: Uuid; readonly at: bigint }>) =>
|
|
284
|
-
result.pages(
|
|
321
|
+
result.pages().pipe(
|
|
285
322
|
Stream.runForEach((page) =>
|
|
286
323
|
Effect.sync(() => {
|
|
287
324
|
// One owned page array; caller mutation cannot reach native
|
|
@@ -326,22 +363,22 @@ const Bank = schema("Bank", { Account }, [key(Account, ["id"])])
|
|
|
326
363
|
const correct = (accountId: Uuid) =>
|
|
327
364
|
Effect.scoped(
|
|
328
365
|
Effect.gen(function* () {
|
|
329
|
-
const db = yield* Db.open(localPath, Bank
|
|
366
|
+
const db = yield* Db.open(localPath, Bank)
|
|
330
367
|
const observed = yield* Effect.scoped(
|
|
331
368
|
Effect.gen(function* () {
|
|
332
|
-
const snapshot = yield* db.snapshot(
|
|
333
|
-
const previous = yield* snapshot.get(Account, { id: accountId }
|
|
369
|
+
const snapshot = yield* db.snapshot()
|
|
370
|
+
const previous = yield* snapshot.get(Account, { id: accountId })
|
|
334
371
|
if (Option.isNone(previous)) {
|
|
335
372
|
return yield* Effect.fail({ missing: accountId })
|
|
336
373
|
}
|
|
337
374
|
return { previous: previous.value, at: snapshot.witness }
|
|
338
375
|
})
|
|
339
376
|
)
|
|
340
|
-
const draft = yield* ChangeSet.builder(Bank
|
|
377
|
+
const draft = yield* ChangeSet.builder(Bank)
|
|
341
378
|
yield* draft.delete(Account, [observed.previous])
|
|
342
379
|
yield* draft.insert(Account, [{ ...observed.previous, balance: observed.previous.balance + 1n }])
|
|
343
380
|
const changes = yield* draft.finish()
|
|
344
|
-
return yield* db.apply(changes, {
|
|
381
|
+
return yield* db.apply(changes, { expected: { kind: "exact", at: observed.at } })
|
|
345
382
|
})
|
|
346
383
|
)
|
|
347
384
|
void correct
|
|
@@ -377,7 +414,7 @@ const Items = schema("Items", { Item }, [key(Item, ["id"])])
|
|
|
377
414
|
|
|
378
415
|
const explicitClose = Effect.scoped(
|
|
379
416
|
Effect.gen(function* () {
|
|
380
|
-
const db = yield* Db.open(localPath, Items
|
|
417
|
+
const db = yield* Db.open(localPath, Items)
|
|
381
418
|
const report = yield* db.close()
|
|
382
419
|
// `closed` releases this capability's obligations; `incomplete` and
|
|
383
420
|
// `failed` retain native Closing accounting — they are never
|
package/README.md
CHANGED
|
@@ -33,8 +33,12 @@ correctness CI is distinct from the Apple Silicon performance measurements.
|
|
|
33
33
|
|
|
34
34
|
## Install
|
|
35
35
|
|
|
36
|
+
This guide follows the 1.1.0 source API. Use the guide from the Git tag matching
|
|
37
|
+
your installed package. GitHub release tarballs and npm publication are separate;
|
|
38
|
+
the npm command below applies once that version is published.
|
|
39
|
+
|
|
36
40
|
```sh
|
|
37
|
-
pnpm add @bjornpagen/bumbledb@1.
|
|
41
|
+
pnpm add @bjornpagen/bumbledb@1.1.0 effect@4.0.0-rc.112
|
|
38
42
|
```
|
|
39
43
|
|
|
40
44
|
## Quick start
|
|
@@ -68,7 +72,6 @@ import {
|
|
|
68
72
|
weigh,
|
|
69
73
|
within
|
|
70
74
|
} from "@bjornpagen/bumbledb"
|
|
71
|
-
import type { ExecutionPolicy, NativeRuntimeOptions } from "@bjornpagen/bumbledb"
|
|
72
75
|
|
|
73
76
|
// Relations describe stored records. Identity fields are ordinary
|
|
74
77
|
// application-owned Uuid values — the database issues no identity.
|
|
@@ -93,9 +96,6 @@ const Learning = schema("Learning", { Student, Attempt }, [
|
|
|
93
96
|
})
|
|
94
97
|
])
|
|
95
98
|
|
|
96
|
-
// Measured policies are inputs — the library invents no limits.
|
|
97
|
-
declare const runtimePolicy: NativeRuntimeOptions
|
|
98
|
-
declare const work: ExecutionPolicy
|
|
99
99
|
declare const localPath: string
|
|
100
100
|
|
|
101
101
|
// Queries are reusable typed values: reusing a v(R) variable is the join,
|
|
@@ -111,35 +111,35 @@ const attemptsFor = query(Learning).rule((r) => {
|
|
|
111
111
|
const program = Effect.scoped(
|
|
112
112
|
Effect.gen(function* () {
|
|
113
113
|
// First use: create explicitly. Use Db.open for an existing store.
|
|
114
|
-
const db = yield* Db.create(localPath, Learning
|
|
114
|
+
const db = yield* Db.create(localPath, Learning)
|
|
115
115
|
const studentId = yield* Effect.sync(() => crypto.randomUUID())
|
|
116
116
|
const attemptId = yield* Effect.sync(() => crypto.randomUUID())
|
|
117
117
|
|
|
118
|
-
const draft = yield* ChangeSet.builder(Learning
|
|
118
|
+
const draft = yield* ChangeSet.builder(Learning)
|
|
119
119
|
yield* draft.insert(Student, [{ id: studentId, name: "Ada", budget: 10n }])
|
|
120
120
|
yield* draft.insert(Attempt, [
|
|
121
121
|
{ id: attemptId, student: studentId, score: 0.9, units: 1n, active: { start: 0n, end: 60n } }
|
|
122
122
|
])
|
|
123
123
|
const changes = yield* draft.finish()
|
|
124
124
|
|
|
125
|
-
const outcome = yield* db.apply(changes, {
|
|
125
|
+
const outcome = yield* db.apply(changes, { expected: { kind: "any" } })
|
|
126
126
|
if (outcome.kind !== "accepted" && outcome.kind !== "no-change") {
|
|
127
127
|
return outcome
|
|
128
128
|
}
|
|
129
|
-
const snapshot = yield* db.snapshot(
|
|
130
|
-
const found = yield* snapshot.get(Student, { id: studentId }
|
|
129
|
+
const snapshot = yield* db.snapshot()
|
|
130
|
+
const found = yield* snapshot.get(Student, { id: studentId })
|
|
131
131
|
if (Option.isNone(found)) {
|
|
132
132
|
return outcome
|
|
133
133
|
}
|
|
134
|
-
const result = yield* snapshot.execute(attemptsFor, { student: studentId }
|
|
135
|
-
const rows = yield* result.collect(
|
|
134
|
+
const result = yield* snapshot.execute(attemptsFor, { student: studentId })
|
|
135
|
+
const rows = yield* result.collect()
|
|
136
136
|
return { outcome, rows }
|
|
137
137
|
})
|
|
138
138
|
)
|
|
139
139
|
|
|
140
140
|
// One boundary for this script; an Effect app supplies the layer in its
|
|
141
141
|
// own application graph instead.
|
|
142
|
-
void Effect.runPromise(program.pipe(Effect.provide(NativeRuntime.layer(
|
|
142
|
+
void Effect.runPromise(program.pipe(Effect.provide(NativeRuntime.layer())))
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Every `ts` fence in this README is extracted and type-checked against the
|
|
@@ -166,20 +166,21 @@ and query representations.
|
|
|
166
166
|
measurement range, and `weigh` chooses a numeric field or interval
|
|
167
167
|
duration. Harmless equivalent window spellings lower to one canonical
|
|
168
168
|
law; genuinely different meanings still refuse.
|
|
169
|
-
- `NativeRuntime.layer(
|
|
169
|
+
- `NativeRuntime.layer()` owns the shared native runtime with sensible defaults;
|
|
170
170
|
provide it once in the app graph. `Db.create` and `Db.open` are scoped
|
|
171
171
|
Effects over that runtime; `open` never creates and `create` refuses
|
|
172
|
-
existing authority. `db.apply(changes, {
|
|
172
|
+
existing authority. `db.apply(changes, { expected })` judges one
|
|
173
173
|
immutable final-state change: `accepted`, `no-change`,
|
|
174
174
|
`invariant-rejected` (complete statement diagnostics), or `moved`.
|
|
175
|
-
- `ChangeSet.builder(schema
|
|
175
|
+
- `ChangeSet.builder(schema)` acquires a scoped database-free draft;
|
|
176
176
|
`insert`/`delete` are lazy bounded ingestion effects, `finish()` seals the
|
|
177
177
|
immutable `ChangeSet`. Snapshots satisfy the shared `QueryReader`: typed
|
|
178
178
|
`get` returns `Option`, `execute` returns a sealed `CompleteResult` whose
|
|
179
|
-
`collect(
|
|
180
|
-
`pages(
|
|
181
|
-
arrays after complete evaluation.
|
|
182
|
-
|
|
179
|
+
`collect()` explicitly materializes all rows and whose
|
|
180
|
+
`pages()` is a one-shot consuming `Stream` of owned page
|
|
181
|
+
arrays after complete evaluation. Each page contains up to 256 rows; this
|
|
182
|
+
bounds delivery rather than streaming execution. Effect scope closes the
|
|
183
|
+
cursor on completion, failure, or interruption.
|
|
183
184
|
- `query(S).rule(...)` builds typed queries. Reusing a variable created by
|
|
184
185
|
`v(R)` joins records through that value. The builder supports named result
|
|
185
186
|
rows, typed parameters, negation, comparisons, boolean conditions, set
|
package/dist/capacity.d.ts
CHANGED
|
@@ -76,7 +76,7 @@ type IsNegative<N extends bigint> = `${N}` extends `-${string}` ? true : false;
|
|
|
76
76
|
type PathBan<F extends string> = string extends F ? unknown : F extends `${string}.${string}` ? RefusedPath<"pin the column — a two-column containment (Source(ref, f) <= Catalog(id, f)) proves the local copy, then name the local field"> : unknown;
|
|
77
77
|
type NegativeBan<N extends bigint> = bigint extends N ? unknown : IsNegative<N> extends true ? BannedWindow<"capacity bounds are u64 — a negative bound is out of domain"> : unknown;
|
|
78
78
|
/**
|
|
79
|
-
* The spelling-ban tables are DELETED
|
|
79
|
+
* The spelling-ban tables are DELETED: `{n..n}`, `{0..0}`,
|
|
80
80
|
* unit floors `{1..*}`/`{N..*}` and the vacuous `{0..*}` are harmless
|
|
81
81
|
* equivalent spellings that lower to the one canonical `(lo, hi)` law at
|
|
82
82
|
* the mint. Genuinely different semantics still refuse: negative bounds
|
package/dist/changes.d.ts
CHANGED
|
@@ -3,14 +3,13 @@ import { Effect } from "effect";
|
|
|
3
3
|
import type { SchemaId } from "./compile.js";
|
|
4
4
|
import type { ChangesHandle } from "./db-native.js";
|
|
5
5
|
import type { Fact } from "./relation.js";
|
|
6
|
-
import type { ExecutionPolicy } from "./runtime.js";
|
|
7
6
|
import type { CloseReport } from "./runtime-errors.js";
|
|
8
7
|
import { DbError } from "./runtime-errors.js";
|
|
9
8
|
import type { AnySchema } from "./schema.js";
|
|
10
9
|
import type { Rel } from "./shape.js";
|
|
11
10
|
/**
|
|
12
|
-
* `ChangeSet` — the
|
|
13
|
-
*
|
|
11
|
+
* `ChangeSet` — the engine's checked immutable delta:
|
|
12
|
+
* schema-fingerprint-bound canonical native bytes with
|
|
14
13
|
* one-command `(add, remove ∖ add)` normalization and exact same-fact
|
|
15
14
|
* add-wins. Immutable and reusable while open; sealing/submitting it later
|
|
16
15
|
* retains the SAME native value — no second JS row walk ever happens.
|
|
@@ -24,7 +23,7 @@ interface ChangeSet<S extends AnySchema> {
|
|
|
24
23
|
/**
|
|
25
24
|
* `ChangeDraft` — the scoped, database-free construction capability.
|
|
26
25
|
* Every method constructs a LAZY effect; execution reads the then-current
|
|
27
|
-
* iterable
|
|
26
|
+
* iterable again on every sequential rerun (no hidden
|
|
28
27
|
* memoization, no automatic retry, no iterator replay). Input must stay
|
|
29
28
|
* stable from an ingestion effect's execution start through its Exit;
|
|
30
29
|
* after successful ingestion the accepted native bytes are independent.
|
|
@@ -47,7 +46,7 @@ interface ChangesInternal {
|
|
|
47
46
|
/** Private cross-module accessor (db.apply retains the native ChangeSet). */
|
|
48
47
|
declare function internalChanges(value: object): ChangesInternal | undefined;
|
|
49
48
|
declare const ChangeSet: Readonly<{
|
|
50
|
-
builder: <S extends AnySchema>(schema: S
|
|
49
|
+
builder: <S extends AnySchema>(schema: S) => Effect.Effect<ChangeDraft<S>, DbError, import("./runtime.js").NativeRuntime | Scope.Scope>;
|
|
51
50
|
}>;
|
|
52
51
|
export type { ChangeDraft };
|
|
53
52
|
export { ChangeSet, internalChanges };
|
package/dist/changes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,eAAe,CAAA;AAG/D,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,eAAe,CAAA;AAG/D,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,cAAc,CAAA;AAIrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC;;;;;;GAMG;AACH,UAAU,SAAS,CAAC,CAAC,SAAS,SAAS;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnB,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;CACnC;AAED;;;;;;;;;;;GAWG;AACH,UAAU,WAAW,CAAC,CAAC,SAAS,SAAS;IACxC,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5F,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5F,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3D,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;CACnC;AAmBD,UAAU,eAAe;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAA;CACf;AAID,6EAA6E;AAC7E,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEnE;AAyRD,QAAA,MAAM,SAAS;cA1C2C,CAAC,SAAS,SAAS;EA0CjC,CAAA;AAE5C,YAAY,EAAE,WAAW,EAAE,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/changes.js
CHANGED
|
@@ -3,16 +3,15 @@ import { drainClose, releaseOwner } from "#close.ts";
|
|
|
3
3
|
import { Schema as CoreSchema, schemaTables } from "#compile.ts";
|
|
4
4
|
import { dbNative } from "#db-native.ts";
|
|
5
5
|
import { lower } from "#lower.ts";
|
|
6
|
-
import {
|
|
7
|
-
import { nativeOperationWith,
|
|
6
|
+
import { cellOf, hostCellCharge, recordOf } from "#rows.ts";
|
|
7
|
+
import { nativeOperationWith, runtimeHandle } from "#runtime.ts";
|
|
8
8
|
import { DbError } from "#runtime-errors.ts";
|
|
9
9
|
/**
|
|
10
10
|
* Host-copy granularity: one bounded host-to-native message per chunk, so
|
|
11
11
|
* real event-loop turns happen between chunks (each chunk completes through
|
|
12
12
|
* a native callback, not a microtask chain). These are converter
|
|
13
|
-
* granularity
|
|
14
|
-
*
|
|
15
|
-
* calls and chunks (chunks never reset it).
|
|
13
|
+
* granularity targets, not database-size limits. One larger row travels
|
|
14
|
+
* alone; otherwise native callbacks provide backpressure between batches.
|
|
16
15
|
*/
|
|
17
16
|
const CHUNK_BYTES = 65536n;
|
|
18
17
|
const CHUNK_ROWS = 4096;
|
|
@@ -38,7 +37,7 @@ function hostFactCharge(relation, record) {
|
|
|
38
37
|
if (value === undefined) {
|
|
39
38
|
throw refusal("ChangeDraft.ingest", "InvalidArgument");
|
|
40
39
|
}
|
|
41
|
-
bytes +=
|
|
40
|
+
bytes += hostCellCharge(value);
|
|
42
41
|
}
|
|
43
42
|
return bytes;
|
|
44
43
|
}
|
|
@@ -79,7 +78,8 @@ function pullChunk(relation, iterator, pending) {
|
|
|
79
78
|
leftover = current;
|
|
80
79
|
break;
|
|
81
80
|
}
|
|
82
|
-
|
|
81
|
+
for (const cell of projectFact(relation, record))
|
|
82
|
+
cells.push(cell);
|
|
83
83
|
bytes += charge;
|
|
84
84
|
rows += 1n;
|
|
85
85
|
current = undefined;
|
|
@@ -106,7 +106,7 @@ function ingest(state, operation, relation, rows) {
|
|
|
106
106
|
}
|
|
107
107
|
if (state.inFlight) {
|
|
108
108
|
// Reentrant construction refuses AND spends/drains — there is
|
|
109
|
-
// no implicit queue
|
|
109
|
+
// no implicit queue.
|
|
110
110
|
yield* spendAndDrain(state, operation);
|
|
111
111
|
return yield* Effect.fail(refusal(operation, "SpentHandle"));
|
|
112
112
|
}
|
|
@@ -119,29 +119,33 @@ function ingest(state, operation, relation, rows) {
|
|
|
119
119
|
return yield* Effect.fail(refusal(operation, "InvalidArgument"));
|
|
120
120
|
}
|
|
121
121
|
state.inFlight = true;
|
|
122
|
-
const wire = yield* Effect.try({
|
|
123
|
-
try: () => policyWire(state.policy, operation),
|
|
124
|
-
catch: () => refusal(operation, "InvalidArgument")
|
|
125
|
-
});
|
|
126
122
|
const body = Effect.gen(function* () {
|
|
127
|
-
const iterator =
|
|
123
|
+
const iterator = yield* Effect.try({
|
|
124
|
+
try: () => rows[Symbol.iterator](),
|
|
125
|
+
catch: () => refusal(operation, "InvalidArgument")
|
|
126
|
+
});
|
|
128
127
|
let leftover;
|
|
129
128
|
let done = false;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
129
|
+
return yield* Effect.gen(function* () {
|
|
130
|
+
while (!done) {
|
|
131
|
+
const chunk = yield* Effect.try({
|
|
132
|
+
try: () => pullChunk(relation, iterator, leftover),
|
|
133
|
+
catch: (cause) => (cause instanceof DbError ? cause : refusal(operation, "InvalidArgument"))
|
|
134
|
+
}).pipe(Effect.catch((error) => spendAndDrain(state, operation).pipe(Effect.andThen(Effect.fail(error)))));
|
|
135
|
+
leftover = chunk.leftover;
|
|
136
|
+
done = chunk.done && leftover === undefined;
|
|
137
|
+
if (chunk.rows === 0n) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
yield* eventLoopTurn();
|
|
141
|
+
yield* nativeOperationWith(operation, (callback) => verb(state.handle, relationId, chunk.rows, chunk.cells, callback), dbNative.runtimeReportTake, () => undefined).pipe(Effect.catch((error) => Effect.sync(() => {
|
|
142
|
+
state.spent = true;
|
|
143
|
+
}).pipe(Effect.andThen(Effect.fail(error)))));
|
|
139
144
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
145
|
+
}).pipe(Effect.ensuring(Effect.sync(() => {
|
|
146
|
+
if (!done)
|
|
147
|
+
iterator.return?.();
|
|
148
|
+
})));
|
|
145
149
|
});
|
|
146
150
|
return yield* Effect.onExit(body, (exit) => {
|
|
147
151
|
state.inFlight = false;
|
|
@@ -182,7 +186,7 @@ function makeDraft(state, schemaId) {
|
|
|
182
186
|
}
|
|
183
187
|
// Finish CONSUMES the draft, success or failure.
|
|
184
188
|
state.spent = true;
|
|
185
|
-
const wire = yield* nativeOperationWith("ChangeDraft.finish", (callback) => dbNative.runtimeDraftFinish(state.handle,
|
|
189
|
+
const wire = yield* nativeOperationWith("ChangeDraft.finish", (callback) => dbNative.runtimeDraftFinish(state.handle, callback), dbNative.runtimeChangesTake, (value) => value);
|
|
186
190
|
return makeChangeSet(wire.changes, schemaId);
|
|
187
191
|
}), (changes) => Effect.suspend(() => {
|
|
188
192
|
const internal = changesInternals.get(changes);
|
|
@@ -203,21 +207,20 @@ function makeDraft(state, schemaId) {
|
|
|
203
207
|
return Object.freeze(draft);
|
|
204
208
|
}
|
|
205
209
|
/**
|
|
206
|
-
* `ChangeSet.builder(schema
|
|
207
|
-
* database-free draft
|
|
210
|
+
* `ChangeSet.builder(schema)` — lazy scoped acquisition of a
|
|
211
|
+
* database-free draft. Requires the acquired
|
|
208
212
|
* `NativeRuntime`; the draft's native resources release with its scope, and
|
|
209
213
|
* the scope finalizer surfaces incomplete/failed teardown as a
|
|
210
214
|
* `CloseFailure` defect.
|
|
211
215
|
*/
|
|
212
|
-
const builder = Effect.fn("ChangeSet.builder")(function* (schema
|
|
216
|
+
const builder = Effect.fn("ChangeSet.builder")(function* (schema) {
|
|
213
217
|
const handle = yield* runtimeHandle();
|
|
214
|
-
const compiled = yield* CoreSchema.compile(schema
|
|
218
|
+
const compiled = yield* CoreSchema.compile(schema);
|
|
215
219
|
const spec = lower(schema);
|
|
216
220
|
return yield* Effect.acquireRelease(Effect.gen(function* () {
|
|
217
|
-
const draftHandle = yield* nativeOperationWith("ChangeSet.builder", (callback) => dbNative.runtimeDraftOpen(handle,
|
|
221
|
+
const draftHandle = yield* nativeOperationWith("ChangeSet.builder", (callback) => dbNative.runtimeDraftOpen(handle, spec, callback), dbNative.runtimeDraftTake, (value) => value);
|
|
218
222
|
const state = {
|
|
219
223
|
handle: draftHandle,
|
|
220
|
-
policy: work,
|
|
221
224
|
theory: schema,
|
|
222
225
|
spent: false,
|
|
223
226
|
inFlight: false
|
package/dist/changes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
|
package/dist/close.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { Effect } from "effect";
|
|
|
2
2
|
import type { CloseReport } from "./runtime-errors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Shared close/drain adapters for scoped core owners (drafts, changes,
|
|
5
|
-
* snapshots, sessions, results, cursors, databases).
|
|
6
|
-
*
|
|
5
|
+
* snapshots, sessions, results, cursors, databases). Early `close()` joins
|
|
6
|
+
* the native close transition and
|
|
7
7
|
* returns the honest {@link CloseReport}; a scope FINALIZER runs the same
|
|
8
8
|
* close and surfaces `incomplete`/`failed` as a structured `CloseFailure`
|
|
9
9
|
* DEFECT in the finalizer Cause — never catch-and-log, never false
|
package/dist/codec.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { Effect, Schema as EffectSchema, Result } from "effect";
|
|
2
2
|
import type { AnyRelation, Fact } from "./relation.js";
|
|
3
|
-
import type { ExecutionPolicy } from "./runtime.js";
|
|
4
3
|
import { DbError } from "./runtime-errors.js";
|
|
5
4
|
import type { AnySchema } from "./schema.js";
|
|
6
5
|
import type { Rel } from "./shape.js";
|
|
7
6
|
/**
|
|
8
7
|
* Boundary row codecs, derived from the core relation descriptors — never a
|
|
9
|
-
* second hand-maintained field roster
|
|
8
|
+
* second hand-maintained field roster.
|
|
10
9
|
*
|
|
11
10
|
* Two layers:
|
|
12
11
|
*
|
|
13
12
|
* 1. The CANONICAL native row codec: `encodeRows`/`decodeRows` run the
|
|
14
|
-
* same
|
|
13
|
+
* same native implementation the engine, log and migrations
|
|
15
14
|
* share (owned bytes in, owned typed rows out; untrusted input cannot
|
|
16
15
|
* inject native capabilities). Effect-only, `NativeRuntime` required.
|
|
17
16
|
* 2. The schema-tagged JSON VALUE form for HTTP/export boundaries
|
|
@@ -43,14 +42,14 @@ declare function decodeBoundaryRows<R extends AnyRelation>(relation: R, input: u
|
|
|
43
42
|
*/
|
|
44
43
|
declare function rowSchema<R extends AnyRelation>(relation: R): EffectSchema.declare<Fact<R>, Fact<R>>;
|
|
45
44
|
/**
|
|
46
|
-
* The
|
|
45
|
+
* The canonical native row codec (chapter 35 roster): owned bytes
|
|
47
46
|
* out, owned typed rows back in — the same implementation log sealing and
|
|
48
47
|
* migrations use. Binding parameters is ingestion: input must stay stable
|
|
49
48
|
* through execution, and no native work starts before the checked owned
|
|
50
49
|
* chunk exists.
|
|
51
50
|
*/
|
|
52
|
-
declare const encodeRows: <R extends AnyRelation>(shape: RowShape<R>, rows: Iterable<Fact<R
|
|
53
|
-
declare const decodeRows: <R extends AnyRelation>(shape: RowShape<R>, input: Uint8Array<ArrayBufferLike
|
|
51
|
+
declare const encodeRows: <R extends AnyRelation>(shape: RowShape<R>, rows: Iterable<Fact<R>>) => Effect.Effect<Uint8Array<ArrayBufferLike>, DbError, import("./runtime.js").NativeRuntime>;
|
|
52
|
+
declare const decodeRows: <R extends AnyRelation>(shape: RowShape<R>, input: Uint8Array<ArrayBufferLike>) => Effect.Effect<readonly Fact<R>[], DbError, import("./runtime.js").NativeRuntime>;
|
|
54
53
|
export type { RowShape };
|
|
55
54
|
export { decodeBoundaryRows, decodeRows, encodeBoundaryRows, encodeRows, rowSchema, rowShape };
|
|
56
55
|
//# sourceMappingURL=codec.d.ts.map
|
package/dist/codec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/D,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/D,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAIpC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+DAA+D;AAC/D,UAAU,QAAQ,CAAC,CAAC,SAAS,WAAW;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;CACpB;AAED,iBAAS,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE5F;AAuLD,yEAAyE;AACzE,iBAAS,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAChD,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACrB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAkB1E;AAED,6EAA6E;AAC7E,iBAAS,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAChD,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CA0BhD;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,0CAmBpD;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,0IAqBzE,CAAA;AAEF,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,4IAiBzE,CAAA;AAEF,YAAY,EAAE,QAAQ,EAAE,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA"}
|