@bjornpagen/bumbledb 1.2.1 → 1.3.1
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 +240 -9
- package/README.md +9 -6
- package/dist/alternatives.d.ts +25 -0
- package/dist/alternatives.d.ts.map +1 -0
- package/dist/alternatives.js +59 -0
- package/dist/alternatives.js.map +1 -0
- package/dist/changes.d.ts +0 -1
- package/dist/changes.d.ts.map +1 -1
- package/dist/changes.js +2 -8
- package/dist/changes.js.map +1 -1
- package/dist/codec.d.ts +8 -1
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +29 -2
- package/dist/codec.js.map +1 -1
- package/dist/db-native.d.ts +2 -9
- package/dist/db-native.d.ts.map +1 -1
- package/dist/db-native.js.map +1 -1
- package/dist/index.d.ts +5 -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 +2 -2
- package/dist/internal/log.js.map +1 -1
- package/dist/native.d.ts +23 -9
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +2 -1
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js.map +1 -1
- package/dist/query/compute.d.ts +19 -4
- package/dist/query/compute.d.ts.map +1 -1
- package/dist/query/compute.js +17 -13
- package/dist/query/compute.js.map +1 -1
- package/dist/query/description.d.ts +10 -2
- package/dist/query/description.d.ts.map +1 -1
- package/dist/query/description.js +14 -5
- package/dist/query/description.js.map +1 -1
- package/dist/query/find.d.ts +13 -6
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +1 -1
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +14 -2
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +64 -50
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts.map +1 -1
- package/dist/query/parse-ir.js +26 -3
- package/dist/query/parse-ir.js.map +1 -1
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +6 -1
- package/dist/query/scope.js.map +1 -1
- package/dist/query/segments.d.ts +20 -0
- package/dist/query/segments.d.ts.map +1 -0
- package/dist/query/segments.js +35 -0
- package/dist/query/segments.js.map +1 -0
- package/dist/runtime-codes.d.ts +1 -1
- package/dist/runtime-codes.d.ts.map +1 -1
- package/dist/runtime-codes.js +1 -0
- package/dist/runtime-codes.js.map +1 -1
- package/dist/runtime-errors.d.ts +23 -3
- package/dist/runtime-errors.d.ts.map +1 -1
- package/dist/runtime-errors.js +16 -3
- package/dist/runtime-errors.js.map +1 -1
- package/dist/runtime-native.d.ts +3 -8
- package/dist/runtime-native.d.ts.map +1 -1
- package/dist/runtime-native.js.map +1 -1
- package/dist/runtime.d.ts +0 -23
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +0 -36
- package/dist/runtime.js.map +1 -1
- package/dist/scalar.d.ts +46 -94
- package/dist/scalar.d.ts.map +1 -1
- package/dist/scalar.js +69 -156
- package/dist/scalar.js.map +1 -1
- package/dist/schema-file.d.ts +7 -0
- package/dist/schema-file.d.ts.map +1 -0
- package/dist/schema-file.js +24 -0
- package/dist/schema-file.js.map +1 -0
- package/pack-provenance.json +4 -4
- package/package.json +4 -4
- package/src/alternatives.ts +95 -0
- package/src/changes.ts +2 -8
- package/src/codec.ts +43 -3
- package/src/db-native.ts +2 -10
- package/src/index.ts +23 -6
- package/src/internal/log.ts +2 -4
- package/src/native.ts +21 -7
- package/src/query/atom.ts +2 -0
- package/src/query/compute.ts +46 -16
- package/src/query/description.ts +38 -8
- package/src/query/find.ts +37 -26
- package/src/query/lower.ts +89 -52
- package/src/query/parse-ir.ts +27 -3
- package/src/query/scope.ts +8 -1
- package/src/query/segments.ts +61 -0
- package/src/runtime-codes.ts +1 -0
- package/src/runtime-errors.ts +16 -3
- package/src/runtime-native.ts +1 -9
- package/src/runtime.ts +1 -70
- package/src/scalar.ts +138 -285
- package/src/schema-file.ts +38 -0
- package/dist/migration.d.ts +0 -31
- package/dist/migration.d.ts.map +0 -1
- package/dist/migration.js +0 -47
- package/dist/migration.js.map +0 -1
- package/src/migration.ts +0 -61
package/COOKBOOK.md
CHANGED
|
@@ -11,16 +11,23 @@ prepended to every recipe. The examples are lazy Effect programs — nothing
|
|
|
11
11
|
below runs a database at import time.
|
|
12
12
|
|
|
13
13
|
```ts
|
|
14
|
-
import { Effect, Option, Result, Stream } from "effect"
|
|
14
|
+
import { Effect, Option, Result, Schema as EffectSchema, Stream } from "effect"
|
|
15
15
|
import {
|
|
16
|
+
alternatives,
|
|
17
|
+
bool,
|
|
16
18
|
capacity,
|
|
17
19
|
ChangeSet,
|
|
18
20
|
closed,
|
|
21
|
+
closedId,
|
|
22
|
+
Compute,
|
|
19
23
|
contained,
|
|
20
24
|
Db,
|
|
25
|
+
decodeBoundaryField,
|
|
21
26
|
describeQuery,
|
|
22
27
|
duration,
|
|
28
|
+
encodeBoundaryField,
|
|
23
29
|
f64,
|
|
30
|
+
fieldSchema,
|
|
24
31
|
i64,
|
|
25
32
|
uuid,
|
|
26
33
|
Uuid,
|
|
@@ -33,8 +40,8 @@ import {
|
|
|
33
40
|
queryFromDescription,
|
|
34
41
|
ref,
|
|
35
42
|
relation,
|
|
36
|
-
Scalar,
|
|
37
43
|
schema,
|
|
44
|
+
select,
|
|
38
45
|
str,
|
|
39
46
|
u64,
|
|
40
47
|
v,
|
|
@@ -528,14 +535,238 @@ const explicitClose = Effect.scoped(
|
|
|
528
535
|
void explicitClose
|
|
529
536
|
```
|
|
530
537
|
|
|
531
|
-
## 13.
|
|
538
|
+
## 13. Derive slices, measure them, and round the total
|
|
532
539
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
540
|
+
An earning range crosses two rate bands. Intersection produces a relation of
|
|
541
|
+
nonempty segments, measurement produces exact integer widths, and ordinary
|
|
542
|
+
stages combine the results. These are synthetic arithmetic units, not tax policy.
|
|
536
543
|
|
|
537
544
|
```ts
|
|
538
|
-
const
|
|
539
|
-
const
|
|
540
|
-
|
|
545
|
+
const Earning = relation("Earning", { id: u64, schedule: u64, span: interval(u64) })
|
|
546
|
+
const Band = relation("Band", { id: u64, schedule: u64, span: interval(u64), numerator: u64 })
|
|
547
|
+
const Rates = schema("Rates", { Earning, Band }, [key(Earning, ["id"]), key(Band, ["id"])])
|
|
548
|
+
const overlaps = query(Rates).rule((r) => {
|
|
549
|
+
const earning = v(Earning)
|
|
550
|
+
const band = v(Band)
|
|
551
|
+
return r.match(Earning, earning).match(Band, { ...band, schedule: earning.schedule }).find({
|
|
552
|
+
earning: earning.id, band: band.id, numerator: band.numerator,
|
|
553
|
+
span: r.intersection(earning.span, band.span)
|
|
554
|
+
})
|
|
555
|
+
})
|
|
556
|
+
const weighted = query(Rates).rule((r) => {
|
|
557
|
+
const row = v(overlaps)
|
|
558
|
+
return r.match(overlaps, row).find({ earning: row.earning, band: row.band,
|
|
559
|
+
weighted: Compute.multiply(Compute.measure(row.span), row.numerator) })
|
|
560
|
+
})
|
|
561
|
+
const totals = query(Rates).rule((r) => {
|
|
562
|
+
const row = v(weighted)
|
|
563
|
+
return r.match(weighted, row).find({ earning: row.earning, total: r.sum(row.weighted) })
|
|
564
|
+
})
|
|
565
|
+
const amounts = query(Rates).rule((r) => {
|
|
566
|
+
const row = v(totals)
|
|
567
|
+
return r.match(totals, row).find({ earning: row.earning,
|
|
568
|
+
amount: Compute.mulDiv(row.total, Compute.u64(1n), Compute.u64(10n), "nearestTiesToEven") })
|
|
569
|
+
})
|
|
570
|
+
const calculate = Effect.scoped(Effect.gen(function* () {
|
|
571
|
+
const db = yield* Db.create(localPath, Rates)
|
|
572
|
+
const change = yield* ChangeSet.builder(Rates)
|
|
573
|
+
yield* change.insert(Earning, [{ id: 1n, schedule: 1n, span: { start: 80n, end: 140n } }])
|
|
574
|
+
yield* change.insert(Band, [
|
|
575
|
+
{ id: 1n, schedule: 1n, span: { start: 0n, end: 100n }, numerator: 1n },
|
|
576
|
+
{ id: 2n, schedule: 1n, span: { start: 100n, end: 200n }, numerator: 2n }
|
|
577
|
+
])
|
|
578
|
+
yield* db.apply(yield* change.finish(), { expected: { kind: "any" } })
|
|
579
|
+
const snapshot = yield* db.snapshot()
|
|
580
|
+
return yield* (yield* snapshot.execute(amounts, {})).collect()
|
|
581
|
+
}))
|
|
582
|
+
// [{ earning: 1n, amount: 10n }]: (20*1 + 40*2)/10, rounded once.
|
|
583
|
+
void calculate
|
|
541
584
|
```
|
|
585
|
+
|
|
586
|
+
Retain contribution identity through intermediate projections: two distinct
|
|
587
|
+
bands contributing the same amount must both count. Projecting only the amount
|
|
588
|
+
intentionally deduplicates it. Round after summing when that is the intended
|
|
589
|
+
calculation; summing separately rounded contributions can give a different result.
|
|
590
|
+
Checked multiplication and aggregate result ranges still apply before the final
|
|
591
|
+
`mulDiv`. The query creates no stored slice or copied-width facts.
|
|
592
|
+
|
|
593
|
+
## 14. Subtract a window, coalesce coverage, and measure
|
|
594
|
+
|
|
595
|
+
Binary difference returns zero, one, or two maximal nonempty pieces. A subsequent
|
|
596
|
+
`pack` stage coalesces overlapping or adjacent coverage per owner; measurement
|
|
597
|
+
then sums covered width once.
|
|
598
|
+
|
|
599
|
+
```ts
|
|
600
|
+
const Window = relation("Window", { id: u64, owner: u64, span: interval(i64), excluded: interval(i64) })
|
|
601
|
+
const Windows = schema("Windows", { Window }, [key(Window, ["id"])])
|
|
602
|
+
const remaining = query(Windows).rule((r) => {
|
|
603
|
+
const row = v(Window)
|
|
604
|
+
return r.match(Window, row).find({ owner: row.owner, span: r.difference(row.span, row.excluded) })
|
|
605
|
+
})
|
|
606
|
+
const coverage = query(Windows).rule((r) => {
|
|
607
|
+
const row = v(remaining)
|
|
608
|
+
return r.match(remaining, row).find({ owner: row.owner, span: r.pack(row.span) })
|
|
609
|
+
})
|
|
610
|
+
const widths = query(Windows).rule((r) => {
|
|
611
|
+
const row = v(coverage)
|
|
612
|
+
return r.match(coverage, row).find({ owner: row.owner, span: row.span, width: Compute.measure(row.span) })
|
|
613
|
+
})
|
|
614
|
+
const coveredWidth = query(Windows).rule((r) => {
|
|
615
|
+
const row = v(widths)
|
|
616
|
+
return r.match(widths, row).find({ owner: row.owner, width: r.sum(row.width) })
|
|
617
|
+
})
|
|
618
|
+
void coveredWidth
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
For `[0,10)` minus `[3,7)`, the pieces are `[0,3)` and `[7,10)`.
|
|
622
|
+
Subtracting the whole input produces no rows. Absence is never a null or an empty
|
|
623
|
+
interval. Delivery order is unspecified. Multiple producers in one head form
|
|
624
|
+
all combinations; they are not zipped. Their input variables must already be
|
|
625
|
+
bound. Use another stage to consume produced intervals, aggregate, or `pack`.
|
|
626
|
+
Ordinary joins, Allen predicates, and negation accept those derived stages.
|
|
627
|
+
An empty interval producer removes that binding before the same head's scalar
|
|
628
|
+
expressions run, regardless of column order. Once a stage produces an arithmetic
|
|
629
|
+
failure, subsequent stages cannot turn that failure into an empty answer.
|
|
630
|
+
|
|
631
|
+
Both operands must share an interval element kind: `i64`, `u64`, or `f64`.
|
|
632
|
+
Fixed-width inputs yield general intervals because clipping may change width.
|
|
633
|
+
`pack` also returns general intervals: merging adjacent fixed-width inputs can
|
|
634
|
+
produce a longer interval. These output types survive description export/import.
|
|
635
|
+
Construction compares endpoints and is independent of represented width; output
|
|
636
|
+
enumeration still costs work proportional to its cardinality.
|
|
637
|
+
|
|
638
|
+
`measure` returns `u64` for bounded integer intervals and the native once-rounded
|
|
639
|
+
`f64` length for dense intervals. Integer maximum endpoints represent rays.
|
|
640
|
+
Unbounded measurement and finite overflow are distinct failures. Clip a ray to a
|
|
641
|
+
finite interval before measuring it. Filtering a later stage cannot erase an
|
|
642
|
+
upstream arithmetic failure. Exact measure additivity applies to bounded integer
|
|
643
|
+
segments, not arbitrary sums of already-rounded floating lengths.
|
|
644
|
+
|
|
645
|
+
Each difference subtracts one interval. Unioning `A minus B1` with `A minus B2`
|
|
646
|
+
does not subtract their combined coverage from `A`.
|
|
647
|
+
|
|
648
|
+
## 15. Exhaustive alternatives with ordinary laws
|
|
649
|
+
|
|
650
|
+
Declare each key once. The helper expands a closed roster into ordinary
|
|
651
|
+
containment and mirrors statements in roster order. Equivalent independently
|
|
652
|
+
constructed descriptors work; JavaScript object identity has no meaning here.
|
|
653
|
+
|
|
654
|
+
```ts
|
|
655
|
+
const Kind = closed("Kind", ["Imported", "Electronic", "Postal"])
|
|
656
|
+
const Document = relation("Document", { id: u64, kind: closedId(Kind) })
|
|
657
|
+
const Imported = relation("Imported", { document: u64, evidence: str })
|
|
658
|
+
const Electronic = relation("Electronic", { document: u64, reference: str })
|
|
659
|
+
const Postal = relation("Postal", { document: u64, window: interval(i64) })
|
|
660
|
+
const documentKey = key(Document, ["id"])
|
|
661
|
+
const arms = {
|
|
662
|
+
Imported: key(Imported, ["document"]),
|
|
663
|
+
Electronic: key(Electronic, ["document"]),
|
|
664
|
+
Postal: key(Postal, ["document"])
|
|
665
|
+
}
|
|
666
|
+
const Documents = schema("Documents", { Kind, Document, Imported, Electronic, Postal }, [
|
|
667
|
+
documentKey, arms.Imported, arms.Electronic, arms.Postal,
|
|
668
|
+
...alternatives(documentKey, "kind", Kind, arms)
|
|
669
|
+
])
|
|
670
|
+
void Documents
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
Missing, extra, wrong, or duplicate payloads refuse under the generated laws.
|
|
674
|
+
Switch the discriminator and replace its payload in one change: the final state
|
|
675
|
+
is checked, independent of insert/delete call order. Composite scalar keys work.
|
|
676
|
+
Interval keys cannot establish exactly one payload row because their containment
|
|
677
|
+
means pointwise coverage. Payloads themselves can contain intervals.
|
|
678
|
+
|
|
679
|
+
Each payload keeps its own inferred fields and ordinary relation representation.
|
|
680
|
+
Evidence and ownership still need their own laws. The expansion has the same
|
|
681
|
+
native descriptor, fingerprint, and admission costs as the identical manual laws.
|
|
682
|
+
|
|
683
|
+
## 16. Exact integer quotients and explicit rounding
|
|
684
|
+
|
|
685
|
+
`mulDiv` requires matching integer operands and a strictly positive divisor.
|
|
686
|
+
It computes the product exactly in a wider native integer and checks the public
|
|
687
|
+
64-bit result range after rounding.
|
|
688
|
+
|
|
689
|
+
```ts
|
|
690
|
+
const Input = relation("Input", { amount: i64 })
|
|
691
|
+
const Arithmetic = schema("Arithmetic", { Input }, [])
|
|
692
|
+
const quotients = query(Arithmetic).rule((r) => {
|
|
693
|
+
const row = v(Input)
|
|
694
|
+
return r.match(Input, row).find({
|
|
695
|
+
truncated: Compute.mulDiv(row.amount, Compute.i64(1n), Compute.i64(2n), "towardZero"),
|
|
696
|
+
away: Compute.mulDiv(row.amount, Compute.i64(1n), Compute.i64(2n), "nearestTiesAwayFromZero"),
|
|
697
|
+
even: Compute.mulDiv(row.amount, Compute.i64(1n), Compute.i64(2n), "nearestTiesToEven")
|
|
698
|
+
})
|
|
699
|
+
})
|
|
700
|
+
void quotients
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
For `amount = -5`, the results are `-2`, `-3`, and `-2`. For `-7`, ties-to-even
|
|
704
|
+
returns `-4`. Exact quotients do not change. `u64::MAX * 2 / 2` succeeds;
|
|
705
|
+
`i64::MIN * -1 / 2` returns `2^62`; `i64::MIN * -1 / 1` refuses final overflow.
|
|
706
|
+
Existing checked multiply/divide retain their intermediate-overflow behavior,
|
|
707
|
+
so replacing them with `mulDiv` is an explicit semantic choice. All three modes
|
|
708
|
+
perform bounded work without an additional scan, index, or JavaScript evaluator.
|
|
709
|
+
|
|
710
|
+
## 17. Use field codecs directly
|
|
711
|
+
|
|
712
|
+
Fields carry their host-value schema and strict JSON-boundary representation.
|
|
713
|
+
Use the same descriptors in relations, selected input records, and individual
|
|
714
|
+
values. Integer JSON values are canonical decimal strings; float JSON values
|
|
715
|
+
are canonical `$f64` bit images. Native row bytes remain a separate format.
|
|
716
|
+
|
|
717
|
+
```ts
|
|
718
|
+
const Method = closed("Method", ["Electronic", "Postal"])
|
|
719
|
+
const input = EffectSchema.Struct({
|
|
720
|
+
amount: fieldSchema(i64),
|
|
721
|
+
method: fieldSchema(closedId(Method)),
|
|
722
|
+
window: fieldSchema(interval(i64))
|
|
723
|
+
})
|
|
724
|
+
const valid = EffectSchema.is(input)({
|
|
725
|
+
amount: -25n,
|
|
726
|
+
method: "Electronic",
|
|
727
|
+
window: { start: 0n, end: 60n }
|
|
728
|
+
})
|
|
729
|
+
const amount = Result.getOrThrow(decodeBoundaryField(i64, "-25"))
|
|
730
|
+
const json = Result.getOrThrow(encodeBoundaryField(i64, amount)) // "-25"
|
|
731
|
+
void [valid, json]
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
The codecs enforce integer bounds, closed handles, byte widths, valid intervals,
|
|
735
|
+
and canonical floating-point values through the same interpreter used by rows.
|
|
736
|
+
Application parsing of dates, currency, or nonblank text composes with the field
|
|
737
|
+
schema using ordinary Effect Schema operations.
|
|
738
|
+
|
|
739
|
+
## 18. Combine projections and computations in one query
|
|
740
|
+
|
|
741
|
+
Every arm supplies the same ordered output columns and compatible field types.
|
|
742
|
+
A stored scalar and a computed scalar can occupy the same projection column.
|
|
743
|
+
|
|
744
|
+
```ts
|
|
745
|
+
const Entry = relation("Entry", { id: u64, amount: i64, previous: i64, correction: bool })
|
|
746
|
+
const Ledger = schema("Ledger", { Entry }, [])
|
|
747
|
+
const amounts = query(Ledger)
|
|
748
|
+
.rule((r) => {
|
|
749
|
+
const { id, amount } = v(Entry)
|
|
750
|
+
return r.match(Entry, { id, amount, correction: false }).find({ id, amount })
|
|
751
|
+
})
|
|
752
|
+
.rule((r) => {
|
|
753
|
+
const { id, amount, previous } = v(Entry)
|
|
754
|
+
return r.match(Entry, { id, amount, previous, correction: true })
|
|
755
|
+
.find({ id, amount: Compute.subtract(amount, previous) })
|
|
756
|
+
})
|
|
757
|
+
const totals = query(Ledger).rule((r) => {
|
|
758
|
+
const row = v(amounts)
|
|
759
|
+
return r.match(amounts, row).find({ id: row.id, total: r.sum(row.amount) })
|
|
760
|
+
})
|
|
761
|
+
void totals
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
Identical output facts deduplicate before the following stage aggregates them.
|
|
765
|
+
An evidenced zero remains a row; an absent group has none. Interval projections
|
|
766
|
+
can combine with produced interval pieces of the same element kind; a width
|
|
767
|
+
refinement survives only when every arm preserves it. Aggregate operators must
|
|
768
|
+
agree across arms and cannot share a column with a projection.
|
|
769
|
+
|
|
770
|
+
Each expression retains its original failure boundary. Moving filters across
|
|
771
|
+
an imported stage can change which arithmetic executes; a later filter cannot
|
|
772
|
+
erase an upstream overflow.
|
package/README.md
CHANGED
|
@@ -24,6 +24,13 @@ structural descriptions. Schema construction owns copies of declarations.
|
|
|
24
24
|
Independently constructed equivalent declarations work in queries, codecs,
|
|
25
25
|
writes, and key lookups; ordered fields and enum handles must agree.
|
|
26
26
|
|
|
27
|
+
Individual fields expose the same validation and JSON codecs as rows:
|
|
28
|
+
`fieldSchema(field)` returns a host-value Effect Schema,
|
|
29
|
+
`decodeBoundaryField(field, input)` decodes strict JSON-boundary data, and
|
|
30
|
+
`encodeBoundaryField(field, value)` encodes it. Both boundary operations return
|
|
31
|
+
`Result`; their value type is `Infer<typeof field>`. Compose field schemas into
|
|
32
|
+
ordinary Effect Schema records for application inputs.
|
|
33
|
+
|
|
27
34
|
## Platform support
|
|
28
35
|
|
|
29
36
|
The TypeScript package ships native binaries for **darwin-arm64**
|
|
@@ -38,12 +45,12 @@ correctness CI is distinct from the Apple Silicon performance measurements.
|
|
|
38
45
|
|
|
39
46
|
## Install
|
|
40
47
|
|
|
41
|
-
This guide follows the 1.
|
|
48
|
+
This guide follows the 1.3.1 source API. Use the guide from the Git tag matching
|
|
42
49
|
your installed package. GitHub release tarballs and npm publication are separate;
|
|
43
50
|
the npm command below applies once that version is published.
|
|
44
51
|
|
|
45
52
|
```sh
|
|
46
|
-
pnpm add @bjornpagen/bumbledb@1.
|
|
53
|
+
pnpm add @bjornpagen/bumbledb@1.3.1 effect@4.0.0-rc.112
|
|
47
54
|
```
|
|
48
55
|
|
|
49
56
|
## Quick start
|
|
@@ -225,10 +232,6 @@ and query representations.
|
|
|
225
232
|
query or compilation. Checked immutable branches may be shared. Structural
|
|
226
233
|
declarations with byte payloads are copied when consumed; JavaScript byte
|
|
227
234
|
buffers themselves are mutable and are never treated as immutable cache keys.
|
|
228
|
-
- `Scalar.field("units")` is an unresolved source-field leaf.
|
|
229
|
-
`Scalar.add(Scalar.field("units"), Scalar.u64(1n))` authors synchronously
|
|
230
|
-
without native loading. Native schema binding typechecks it, including
|
|
231
|
-
on zero rows. There is no `field<T>` assertion and no JS evaluator.
|
|
232
235
|
- Operational failure is the one `DbError` tagged-reason class in the
|
|
233
236
|
Effect error channel; interruption and finalizer problems stay in
|
|
234
237
|
`Cause`. Resource owners are scoped and report honest `CloseReport`s;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type AnyClosed } from "./closed.js";
|
|
2
|
+
import type { Face, SameArity, SameShapes } from "./face.js";
|
|
3
|
+
import { type ClosedIdField } from "./fields.js";
|
|
4
|
+
import type { RelationFields } from "./relation.js";
|
|
5
|
+
import { type ContainmentStatement, type KeyStatement, type MirrorsStatement } from "./statements.js";
|
|
6
|
+
type KeyFace<K extends KeyStatement> = Face<K["owner"], K["projection"]>;
|
|
7
|
+
type ScalarKey<K extends KeyStatement> = Extract<RelationFields<K["owner"]>[K["projection"][number]], {
|
|
8
|
+
readonly kind: "interval";
|
|
9
|
+
}> extends never ? unknown : {
|
|
10
|
+
readonly "alternative identity keys must be scalar": never;
|
|
11
|
+
};
|
|
12
|
+
type Discriminator<P extends KeyStatement, C extends AnyClosed> = {
|
|
13
|
+
[F in keyof RelationFields<P["owner"]>]: RelationFields<P["owner"]>[F] extends ClosedIdField<C["name"], C["handles"]> ? F : never;
|
|
14
|
+
}[keyof RelationFields<P["owner"]>] & string;
|
|
15
|
+
/**
|
|
16
|
+
* Exhaustive closed alternatives, expanded into ordinary laws. Declare the
|
|
17
|
+
* supplied keys in the schema once; this helper emits only the discriminator
|
|
18
|
+
* containment followed by one mirrors statement per handle in roster order.
|
|
19
|
+
* No new statement kind or assembled payload representation is introduced.
|
|
20
|
+
*/
|
|
21
|
+
declare function alternatives<P extends KeyStatement, C extends AnyClosed, const Arms extends Record<C["handles"][number], KeyStatement>>(parent: P & ScalarKey<P>, discriminator: Discriminator<NoInfer<P>, NoInfer<C>>, roster: C, arms: Arms & Record<Exclude<keyof Arms, C["handles"][number]>, never> & {
|
|
22
|
+
readonly [H in C["handles"][number]]: ScalarKey<Arms[H]> & SameArity<KeyFace<P>, KeyFace<Arms[H]>> & SameShapes<KeyFace<P>, KeyFace<Arms[H]>>;
|
|
23
|
+
}): readonly (ContainmentStatement | MirrorsStatement)[];
|
|
24
|
+
export { alternatives };
|
|
25
|
+
//# sourceMappingURL=alternatives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alternatives.d.ts","sourceRoot":"","sources":["../src/alternatives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA6C,MAAM,YAAY,CAAA;AAEtF,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,MAAM,gBAAgB,CAAA;AAGvB,KAAK,OAAO,CAAC,CAAC,SAAS,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;AACxE,KAAK,SAAS,CAAC,CAAC,SAAS,YAAY,IACpC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,SAAS,KAAK,GACtG,OAAO,GACP;IAAE,QAAQ,CAAC,0CAA0C,EAAE,KAAK,CAAA;CAAE,CAAA;AAClE,KAAK,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,SAAS,IAAI;KAChE,CAAC,IAAI,MAAM,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAClH,CAAC,GACD,KAAK;CACR,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAClC,MAAM,CAAA;AAcP;;;;;GAKG;AACH,iBAAS,YAAY,CACpB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,SAAS,EACnB,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,EAE7D,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EACxB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EACpD,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,IAAI,GACT,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAC1D,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACvD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CACzC,GACA,SAAS,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,EAAE,CAmCtD;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { closedDescriptor, closedId, sealedFieldOf } from "#closed.ts";
|
|
2
|
+
import { AuthoringError } from "#errors.ts";
|
|
3
|
+
import { signaturesAgree } from "#fields.ts";
|
|
4
|
+
import { statementDescriptor } from "#statements.ts";
|
|
5
|
+
import { recordValue } from "#values.ts";
|
|
6
|
+
function scalarKey(input) {
|
|
7
|
+
const checked = statementDescriptor(input);
|
|
8
|
+
if (checked.kind !== "key")
|
|
9
|
+
throw new AuthoringError({ message: "alternatives: expected a key statement" });
|
|
10
|
+
for (const name of checked.projection) {
|
|
11
|
+
if (sealedFieldOf(checked.owner, name)?.kind === "interval")
|
|
12
|
+
throw new AuthoringError({
|
|
13
|
+
message: "alternatives: identity keys must be scalar; interval keys prove point coverage"
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return checked;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Exhaustive closed alternatives, expanded into ordinary laws. Declare the
|
|
20
|
+
* supplied keys in the schema once; this helper emits only the discriminator
|
|
21
|
+
* containment followed by one mirrors statement per handle in roster order.
|
|
22
|
+
* No new statement kind or assembled payload representation is introduced.
|
|
23
|
+
*/
|
|
24
|
+
function alternatives(parent, discriminator, roster, arms) {
|
|
25
|
+
const primary = scalarKey(parent);
|
|
26
|
+
const closed = closedDescriptor(roster);
|
|
27
|
+
const field = sealedFieldOf(primary.owner, discriminator);
|
|
28
|
+
if (field === undefined || !signaturesAgree(field, closedId(closed)))
|
|
29
|
+
throw new AuthoringError({ message: "alternatives: discriminator must reference the supplied closed roster" });
|
|
30
|
+
const payloads = recordValue("alternative arms", arms, closed.handles);
|
|
31
|
+
const statements = [
|
|
32
|
+
statementDescriptor({
|
|
33
|
+
kind: "containment",
|
|
34
|
+
source: { owner: primary.owner, projection: [discriminator], selection: [] },
|
|
35
|
+
target: { owner: closed, projection: ["id"], selection: [] }
|
|
36
|
+
})
|
|
37
|
+
];
|
|
38
|
+
const children = new Set([primary.owner.name]);
|
|
39
|
+
for (const handle of closed.handles) {
|
|
40
|
+
const child = scalarKey(payloads[handle]);
|
|
41
|
+
if (children.has(child.owner.name))
|
|
42
|
+
throw new AuthoringError({
|
|
43
|
+
message: `alternatives: each arm needs its own payload relation (${child.owner.name})`
|
|
44
|
+
});
|
|
45
|
+
children.add(child.owner.name);
|
|
46
|
+
statements.push(statementDescriptor({
|
|
47
|
+
kind: "mirrors",
|
|
48
|
+
source: {
|
|
49
|
+
owner: primary.owner,
|
|
50
|
+
projection: primary.projection,
|
|
51
|
+
selection: [{ field: discriminator, set: { kind: "one", literal: { kind: "handle", handle } } }]
|
|
52
|
+
},
|
|
53
|
+
target: { owner: child.owner, projection: child.projection, selection: [] }
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
return Object.freeze(statements);
|
|
57
|
+
}
|
|
58
|
+
export { alternatives };
|
|
59
|
+
//# sourceMappingURL=alternatives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alternatives.js","sourceRoot":"","sources":["../src/alternatives.ts"],"names":[],"mappings":"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"}
|
package/dist/changes.d.ts
CHANGED
|
@@ -63,7 +63,6 @@ interface ChangeDraft<S extends AnySchema> {
|
|
|
63
63
|
interface ChangesInternal {
|
|
64
64
|
readonly handle: ChangesHandle;
|
|
65
65
|
readonly schemaId: SchemaId;
|
|
66
|
-
closed: boolean;
|
|
67
66
|
}
|
|
68
67
|
/** Private cross-module accessor (db.apply retains the native ChangeSet). */
|
|
69
68
|
declare function internalChanges(value: object): ChangesInternal | undefined;
|
package/dist/changes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
|
package/dist/changes.js
CHANGED
|
@@ -171,14 +171,13 @@ function acquireChanges(theory, schemaId, acquire) {
|
|
|
171
171
|
const internal = changesInternals.get(changes);
|
|
172
172
|
if (internal === undefined)
|
|
173
173
|
return Effect.void;
|
|
174
|
-
internal.closed = true;
|
|
175
174
|
return releaseOwner("ChangeSet.close", (callback) => dbNative.runtimeChangesClose(internal.handle, callback));
|
|
176
175
|
}), { interruptible: true });
|
|
177
176
|
}
|
|
178
177
|
function makeChangeSet(theory, wire, schemaId) {
|
|
179
178
|
const handle = wire.changes;
|
|
180
179
|
const relations = Object.values(theory.relations);
|
|
181
|
-
const internal = { handle, schemaId
|
|
180
|
+
const internal = { handle, schemaId };
|
|
182
181
|
const value = {
|
|
183
182
|
schemaId,
|
|
184
183
|
counts: Object.freeze({ ...wire.counts }),
|
|
@@ -194,16 +193,11 @@ function makeChangeSet(theory, wire, schemaId) {
|
|
|
194
193
|
const right = internalChanges(other);
|
|
195
194
|
if (right === undefined || right.schemaId !== schemaId)
|
|
196
195
|
return Effect.fail(refusal("ChangeSet.compose", "InvalidArgument"));
|
|
197
|
-
if (internal.closed || right.closed)
|
|
198
|
-
return Effect.fail(refusal("ChangeSet.compose", "ClosedHandle"));
|
|
199
196
|
return acquireChanges(theory, schemaId, nativeOperationWith("ChangeSet.compose", (callback) => dbNative.runtimeChangesCompose(handle, right.handle, callback), dbNative.runtimeChangesTake, (result) => result));
|
|
200
197
|
});
|
|
201
198
|
},
|
|
202
199
|
close() {
|
|
203
|
-
return
|
|
204
|
-
internal.closed = true;
|
|
205
|
-
return drainClose("ChangeSet.close", (callback) => dbNative.runtimeChangesClose(handle, callback));
|
|
206
|
-
});
|
|
200
|
+
return drainClose("ChangeSet.close", (callback) => dbNative.runtimeChangesClose(handle, callback));
|
|
207
201
|
}
|
|
208
202
|
};
|
|
209
203
|
Object.freeze(value);
|
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":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAA+B,cAAc,EAAE,MAAM,cAAc,CAAA;AAE1E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAG3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAyDpD;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,MAAM,CAAA;AAC1B,MAAM,UAAU,GAAG,IAAI,CAAA;AAcvB,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA2B,CAAA;AAE/D,6EAA6E;AAC7E,SAAS,eAAe,CAAC,KAAa;IACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB,EAAE,MAA0D;IAC7F,OAAO,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5D,CAAC;AASD,SAAS,aAAa;IACrB,OAAO,MAAM,CAAC,QAAQ,CAAO,CAAC,MAAM,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAqB,EAAE,MAAyC;IACvF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACvC,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,QAAqB,EAAE,QAA0B,EAAE,OAA2B;IAChG,MAAM,KAAK,GAAgB,EAAE,CAAA;IAC7B,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,QAA4B,CAAA;IAChC,IAAI,OAAO,GAAuB,OAAO,CAAA;IACzC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;YACxD,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CACzB,YAAY,QAAQ,CAAC,IAAI,EAAE,EAC3B,OAAO,EACP,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACnD,CAAA;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;YAC/C,QAAQ,GAAG,OAAO,CAAA;YAClB,MAAK;QACN,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClE,KAAK,IAAI,MAAM,CAAA;QACf,IAAI,IAAI,EAAE,CAAA;QACV,OAAO,GAAG,SAAS,CAAA;IACpB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB,EAAE,SAAiB;IAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,IAAI,CAAA;QACnB,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QAClB,iEAAiE;QACjE,gEAAgE;QAChE,0DAA0D;QAC1D,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnH,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CACd,KAAiB,EACjB,SAAsD,EACtD,QAAqB,EACrB,IAAsB;IAEtB,MAAM,IAAI,GAAG,SAAS,KAAK,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAA;IAC3G,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,8DAA8D;YAC9D,qBAAqB;YACrB,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YACtC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACxD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;QACjE,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAClC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAClC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;aACjD,CAAC,CAAA;YACF,IAAI,QAA4B,CAAA;YAChC,IAAI,IAAI,GAAG,KAAK,CAAA;YAChB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACjC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;wBAClD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;qBACjD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC1G,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;oBACzB,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAA;oBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;wBACvB,SAAQ;oBACT,CAAC;oBACD,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;oBACtB,KAAK,CAAC,CAAC,mBAAmB,CACzB,SAAS,EACT,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,EAC/E,QAAQ,CAAC,iBAAiB,EAC1B,GAAG,EAAE,CAAC,SAAS,CACf,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;oBACnB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAC3C,CACD,CAAA;gBACF,CAAC;YACF,CAAC,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,QAAQ,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,IAAI;oBAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAA;YAC/B,CAAC,CAAC,CACF,CACD,CAAA;QACF,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1C,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAA;YACtB,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,OAAO,MAAM,CAAC,IAAI,CAAA;YACnB,CAAC;YACD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAC1B,SAAoC,EACpC,MAAwB;IAExB,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC/G,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,qEAAqE;IACrE,sEAAsE;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;KAC1C,CAAoB,CAAA;AACtB,CAAC;AAED,SAAS,aAAa,CACrB,MAAqB,EACrB,SAAoC;IAEpC,OAAO,MAAM,CAAC,MAAM,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAC1C,mBAAmB,CAClB,mBAAmB,EACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC7D,QAAQ,CAAC,wBAAwB,EACjC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAChB,EACD,CAAC,KAAK,EAAE,EAAE,CACT,YAAY,CAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EACtG,EAAE,aAAa,EAAE,IAAI,EAAE,CACvB,CAAA;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CACtC,mBAAmB,CAClB,mBAAmB,EACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjE,QAAQ,CAAC,qBAAqB,EAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CACd,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnB,IAAI,KAAK,IAAI;YACZ,CAAC,CAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAa,CAAW;YAC3C,CAAC,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAI,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAW,CACtG,CACD,CACD,CAAA;IACF,CAAC,CAAC,CACF,CAAA;AACF,CAAC;AAED,SAAS,cAAc,CACtB,MAAS,EACT,QAAkB,EAClB,OAA4C;IAE5C,OAAO,MAAM,CAAC,cAAc,CAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EACzE,CAAC,OAAO,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,IAAI,CAAA;QAC9C,OAAO,YAAY,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC9G,CAAC,CAAC,EACH,EAAE,aAAa,EAAE,IAAI,EAAE,CACvB,CAAA;AACF,CAAC;AAED,SAAS,aAAa,CAAsB,MAAS,EAAE,IAAiB,EAAE,QAAkB;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACtD,MAAM,KAAK,GAAiB;QAC3B,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO;YACN,OAAO,aAAa,CAAI,MAAM,EAAE,SAAS,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO;YACN,OAAO,mBAAmB,CACzB,mBAAmB,EACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC5D,QAAQ,CAAC,gBAAgB,EACzB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAChB,CAAA;QACF,CAAC;QACD,OAAO,CAAC,KAAK;YACZ,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;gBACpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBACrD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAA;gBACpE,OAAO,cAAc,CACpB,MAAM,EACN,QAAQ,EACR,mBAAmB,CAClB,mBAAmB,EACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC5E,QAAQ,CAAC,kBAAkB,EAC3B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAClB,CACD,CAAA;YACF,CAAC,CAAC,CAAA;QACH,CAAC;QACD,KAAK;YACJ,OAAO,UAAU,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QACnG,CAAC;KACD,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACrC,OAAO,KAAK,CAAA;AACb,CAAC;AAED,SAAS,SAAS,CAAsB,MAAS,EAAE,KAAiB,EAAE,QAAkB;IACvF,MAAM,KAAK,GAAmB;QAC7B,MAAM,CAAC,QAAQ,EAAE,IAAI;YACpB,OAAO,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,IAAI;YACpB,OAAO,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM;YACL,OAAO,cAAc,CACpB,MAAM,EACN,QAAQ,EACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACnB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAA;gBACxE,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpB,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;oBACjD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAA;gBACxE,CAAC;gBACD,iDAAiD;gBACjD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;gBAClB,OAAO,KAAK,CAAC,CAAC,mBAAmB,CAChC,oBAAoB,EACpB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjE,QAAQ,CAAC,kBAAkB,EAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAChB,CAAA;YACF,CAAC,CAAC,CACF,CAAA;QACF,CAAC;QACD,KAAK;YACJ,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC1B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;gBAClB,OAAO,UAAU,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;YACzG,CAAC,CAAC,CAAA;QACH,CAAC;KACD,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAuB,MAAS;IACvF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAC7C,mBAAmB,EACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAC/D,QAAQ,CAAC,gBAAgB,EACzB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAChB,CAAA;QACD,MAAM,KAAK,GAAe;YACzB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK;SACf,CAAA;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAClE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAA;IACb,CAAC,CAAC,EACF,CAAC,KAAK,EAAE,EAAE,CACT,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,IAAI,CAAA;QACnB,CAAC;QACD,mDAAmD;QACnD,0DAA0D;QAC1D,qCAAqC;QACrC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QAClB,OAAO,YAAY,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC3G,CAAC,CAAC,EACH,EAAE,aAAa,EAAE,IAAI,EAAE,CACvB,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,sEAAsE;AACtE,8DAA8D;AAC9D,MAAM,WAAW,GAAG,IAAI,OAAO,EAAsB,CAAA;AAErD,6EAA6E;AAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAuB,MAAS,EAAE,KAAiB;IAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACpC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK,CAAC;QACnD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,KAAK,CAAC;KAC7D,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,KAAK,CAAC,CAAC,cAAc,CAC3B,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,QAAQ,EACjB,mBAAmB,CAClB,qBAAqB,EACrB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAChG,QAAQ,CAAC,kBAAkB,EAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CACd,CACD,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;AAGvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/codec.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect, Schema as EffectSchema, Result } from "effect";
|
|
2
|
+
import { type AnyField, type Infer } from "./fields.js";
|
|
2
3
|
import { type AnyRelation, type Fact } from "./relation.js";
|
|
3
4
|
import { DbError } from "./runtime-errors.js";
|
|
4
5
|
import type { AnySchema } from "./schema.js";
|
|
@@ -30,6 +31,12 @@ interface RowShape<R extends AnyRelation> {
|
|
|
30
31
|
readonly relation: R;
|
|
31
32
|
}
|
|
32
33
|
declare function rowShape<S extends AnySchema, R extends Rel<S>>(schema: S, relation: R): RowShape<R>;
|
|
34
|
+
/** The host-value schema, using the same interpreter as facts and row codecs. */
|
|
35
|
+
declare function fieldSchema<F extends AnyField>(field: F): EffectSchema.declare<Infer<F>, Infer<F>>;
|
|
36
|
+
/** Encode one field's host value in the canonical JSON-boundary form. */
|
|
37
|
+
declare function encodeBoundaryField<F extends AnyField>(field: F, value: Infer<F>): Result.Result<unknown, DbError>;
|
|
38
|
+
/** Strict JSON-boundary decoding, returning the field's canonical host value. */
|
|
39
|
+
declare function decodeBoundaryField<F extends AnyField>(field: F, input: unknown): Result.Result<Infer<F>, DbError>;
|
|
33
40
|
/** Pure schema-tagged JSON encoding of complete rows. */
|
|
34
41
|
declare function encodeBoundaryRows<R extends AnyRelation>(relation: R, rows: Iterable<Fact<R>>): Result.Result<ReadonlyArray<Readonly<Record<string, unknown>>>, DbError>;
|
|
35
42
|
/** Pure strict decoding; malformed records, getters and values fail as data. */
|
|
@@ -46,5 +53,5 @@ declare function rowSchema<R extends AnyRelation>(relation: R): EffectSchema.dec
|
|
|
46
53
|
declare const encodeRows: <R extends AnyRelation>(shape: RowShape<R>, rows: Iterable<Fact<R>>) => Effect.Effect<Uint8Array<ArrayBufferLike>, DbError, import("./runtime.js").NativeRuntime>;
|
|
47
54
|
declare const decodeRows: <R extends AnyRelation>(shape: RowShape<R>, input: Uint8Array<ArrayBufferLike>) => Effect.Effect<readonly Fact<R>[], DbError, import("./runtime.js").NativeRuntime>;
|
|
48
55
|
export type { RowShape };
|
|
49
|
-
export { decodeBoundaryRows, decodeRows, encodeBoundaryRows, encodeRows, rowSchema, rowShape };
|
|
56
|
+
export { decodeBoundaryField, decodeBoundaryRows, decodeRows, encodeBoundaryField, encodeBoundaryRows, encodeRows, fieldSchema, rowSchema, rowShape };
|
|
50
57
|
//# 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;
|
|
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;AAK/D,OAAO,EAAE,KAAK,QAAQ,EAAmB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,IAAI,EAAsC,MAAM,cAAc,CAAA;AAI9F,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,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,CAI5F;AAwHD,iFAAiF;AACjF,iBAAS,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,4CAUhD;AAED,yEAAyE;AACzE,iBAAS,mBAAmB,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAK3G;AAED,iFAAiF;AACjF,iBAAS,mBAAmB,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAK3G;AAED,yDAAyD;AACzD,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,CAuB1E;AAED,gFAAgF;AAChF,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,CAsBhD;AAED,6EAA6E;AAC7E,iBAAS,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,0CAapD;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,0IAmBzE,CAAA;AAEF,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,4IAezE,CAAA;AAEF,YAAY,EAAE,QAAQ,EAAE,CAAA;AACxB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,CAAA"}
|
package/dist/codec.js
CHANGED
|
@@ -3,6 +3,7 @@ import { membersAgree } from "#closed.ts";
|
|
|
3
3
|
import { schemaTables } from "#compile.ts";
|
|
4
4
|
import { dbNative } from "#db-native.ts";
|
|
5
5
|
import { AuthoringError } from "#errors.ts";
|
|
6
|
+
import { fieldDescriptor } from "#fields.ts";
|
|
6
7
|
import { lower } from "#lower.ts";
|
|
7
8
|
import { relationDescriptor, relationFields } from "#relation.ts";
|
|
8
9
|
import { factOfCells, flatRowsOf } from "#rows.ts";
|
|
@@ -99,7 +100,6 @@ function decodeTaggedF64(value) {
|
|
|
99
100
|
const record = recordValue("binary64 image", value, ["$f64"]);
|
|
100
101
|
return f64OfHex(record.$f64);
|
|
101
102
|
}
|
|
102
|
-
/** Decode representation, then judge the value through the shared interpreter. */
|
|
103
103
|
function decodeBoundaryValue(context, field, input) {
|
|
104
104
|
if ("closed" in field)
|
|
105
105
|
return fieldValue(context, field, input);
|
|
@@ -126,6 +126,33 @@ function decodeBoundaryValue(context, field, input) {
|
|
|
126
126
|
}
|
|
127
127
|
return fieldValue(context, field, decoded);
|
|
128
128
|
}
|
|
129
|
+
/** The host-value schema, using the same interpreter as facts and row codecs. */
|
|
130
|
+
function fieldSchema(field) {
|
|
131
|
+
const descriptor = fieldDescriptor("fieldSchema", field);
|
|
132
|
+
return EffectSchema.declare((value) => {
|
|
133
|
+
try {
|
|
134
|
+
fieldValue("fieldSchema", descriptor, value);
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/** Encode one field's host value in the canonical JSON-boundary form. */
|
|
143
|
+
function encodeBoundaryField(field, value) {
|
|
144
|
+
return Result.try({
|
|
145
|
+
try: () => encodeBoundaryValue("encodeBoundaryField", fieldDescriptor("encodeBoundaryField", field), value),
|
|
146
|
+
catch: (cause) => argumentError("encodeBoundaryField", cause)
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/** Strict JSON-boundary decoding, returning the field's canonical host value. */
|
|
150
|
+
function decodeBoundaryField(field, input) {
|
|
151
|
+
return Result.try({
|
|
152
|
+
try: () => decodeBoundaryValue("decodeBoundaryField", fieldDescriptor("decodeBoundaryField", field), input),
|
|
153
|
+
catch: (cause) => argumentError("decodeBoundaryField", cause)
|
|
154
|
+
});
|
|
155
|
+
}
|
|
129
156
|
/** Pure schema-tagged JSON encoding of complete rows. */
|
|
130
157
|
function encodeBoundaryRows(relation, rows) {
|
|
131
158
|
return Result.try({
|
|
@@ -210,5 +237,5 @@ const decodeRows = Effect.fn("decodeRows")(function* (shape, input) {
|
|
|
210
237
|
}
|
|
211
238
|
return yield* nativeOperationWith("decodeRows", (callback) => dbNative.runtimeDecodeRows(runtime, spec, relationId, input, callback), dbNative.runtimeRowsTake, (rows) => Object.freeze(rows.map((row) => factOfCells(relation, row))));
|
|
212
239
|
});
|
|
213
|
-
export { decodeBoundaryRows, decodeRows, encodeBoundaryRows, encodeRows, rowSchema, rowShape };
|
|
240
|
+
export { decodeBoundaryField, decodeBoundaryRows, decodeRows, encodeBoundaryField, encodeBoundaryRows, encodeRows, fieldSchema, rowSchema, rowShape };
|
|
214
241
|
//# sourceMappingURL=codec.js.map
|