@bjornpagen/bumbledb 1.3.1 → 2.0.0-rc.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 +153 -77
- package/README.md +107 -41
- package/dist/alternatives.d.ts +5 -6
- package/dist/alternatives.d.ts.map +1 -1
- package/dist/alternatives.js +5 -6
- package/dist/alternatives.js.map +1 -1
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +85 -0
- package/dist/bin.js.map +1 -0
- package/dist/capacity.d.ts +14 -17
- package/dist/capacity.d.ts.map +1 -1
- package/dist/capacity.js +7 -7
- package/dist/capacity.js.map +1 -1
- package/dist/changes.d.ts +32 -40
- package/dist/changes.d.ts.map +1 -1
- package/dist/changes.js +86 -104
- package/dist/changes.js.map +1 -1
- package/dist/closed.d.ts +2 -2
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +5 -5
- package/dist/closed.js.map +1 -1
- package/dist/codec.d.ts +13 -27
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +20 -21
- package/dist/codec.js.map +1 -1
- package/dist/compile.d.ts +26 -50
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +75 -64
- package/dist/compile.js.map +1 -1
- package/dist/database/database.d.ts +98 -0
- package/dist/database/database.d.ts.map +1 -0
- package/dist/database/database.js +249 -0
- package/dist/database/database.js.map +1 -0
- package/dist/database/driver.d.ts +40 -0
- package/dist/database/driver.d.ts.map +1 -0
- package/dist/database/driver.js +68 -0
- package/dist/database/driver.js.map +1 -0
- package/dist/database/fs.d.ts +12 -0
- package/dist/database/fs.d.ts.map +1 -0
- package/dist/database/fs.js +120 -0
- package/dist/database/fs.js.map +1 -0
- package/dist/database/generate.d.ts +26 -0
- package/dist/database/generate.d.ts.map +1 -0
- package/dist/database/generate.js +102 -0
- package/dist/database/generate.js.map +1 -0
- package/dist/database/hosted.d.ts +32 -0
- package/dist/database/hosted.d.ts.map +1 -0
- package/dist/database/hosted.js +44 -0
- package/dist/database/hosted.js.map +1 -0
- package/dist/database/io.d.ts +94 -0
- package/dist/database/io.d.ts.map +1 -0
- package/dist/database/io.js +35 -0
- package/dist/database/io.js.map +1 -0
- package/dist/database/mem.d.ts +26 -0
- package/dist/database/mem.d.ts.map +1 -0
- package/dist/database/mem.js +67 -0
- package/dist/database/mem.js.map +1 -0
- package/dist/database/migration.d.ts +55 -0
- package/dist/database/migration.d.ts.map +1 -0
- package/dist/database/migration.js +46 -0
- package/dist/database/migration.js.map +1 -0
- package/dist/database/s3.d.ts +36 -0
- package/dist/database/s3.d.ts.map +1 -0
- package/dist/database/s3.js +141 -0
- package/dist/database/s3.js.map +1 -0
- package/dist/db.d.ts +44 -128
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +163 -287
- package/dist/db.js.map +1 -1
- package/dist/engine.d.ts +7 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +2 -0
- package/dist/engine.js.map +1 -0
- package/dist/errors.d.ts +152 -46
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +107 -19
- package/dist/errors.js.map +1 -1
- package/dist/face.d.ts +5 -5
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +6 -6
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +4 -5
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +3 -3
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +60 -57
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -28
- package/dist/index.js.map +1 -1
- package/dist/judgment.d.ts +1 -1
- package/dist/judgment.js +1 -1
- package/dist/law.d.ts +16 -68
- package/dist/law.d.ts.map +1 -1
- package/dist/law.js +3 -3
- package/dist/law.js.map +1 -1
- package/dist/lower.d.ts +3 -3
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +35 -39
- package/dist/lower.js.map +1 -1
- package/dist/native/addon.d.ts +23 -0
- package/dist/native/addon.d.ts.map +1 -0
- package/dist/native/addon.js +15 -0
- package/dist/native/addon.js.map +1 -0
- package/dist/native/binding.d.ts +996 -0
- package/dist/native/json.d.ts +14 -0
- package/dist/native/json.d.ts.map +1 -0
- package/dist/native/json.js +73 -0
- package/dist/native/json.js.map +1 -0
- package/dist/native/load.d.ts +9 -0
- package/dist/native/load.d.ts.map +1 -0
- package/dist/native/load.js +30 -0
- package/dist/native/load.js.map +1 -0
- package/dist/native/op.d.ts +29 -0
- package/dist/native/op.d.ts.map +1 -0
- package/dist/native/op.js +50 -0
- package/dist/native/op.js.map +1 -0
- package/dist/query/atom.d.ts +13 -14
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +2 -2
- package/dist/query/atom.js.map +1 -1
- package/dist/query/compute.d.ts +4 -4
- package/dist/query/compute.d.ts.map +1 -1
- package/dist/query/compute.js +4 -4
- package/dist/query/compute.js.map +1 -1
- package/dist/query/find.d.ts +8 -8
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +1 -1
- package/dist/query/lower.d.ts +22 -17
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +230 -343
- package/dist/query/lower.js.map +1 -1
- package/dist/query/run.d.ts +5 -5
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +32 -15
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +20 -28
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +7 -7
- package/dist/query/scope.js.map +1 -1
- package/dist/query/segments.d.ts +2 -2
- package/dist/query/segments.d.ts.map +1 -1
- package/dist/query/segments.js +3 -3
- package/dist/query/segments.js.map +1 -1
- package/dist/relation.d.ts +1 -1
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +4 -4
- package/dist/relation.js.map +1 -1
- package/dist/result.d.ts +15 -22
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +30 -39
- package/dist/result.js.map +1 -1
- package/dist/rows.d.ts +9 -33
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +8 -12
- package/dist/rows.js.map +1 -1
- package/dist/runtime.d.ts +17 -20
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +41 -205
- package/dist/runtime.js.map +1 -1
- package/dist/scalar.d.ts +4 -4
- package/dist/scalar.d.ts.map +1 -1
- package/dist/scalar.js +24 -8
- package/dist/scalar.js.map +1 -1
- package/dist/schema.d.ts +7 -18
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +18 -228
- package/dist/schema.js.map +1 -1
- package/dist/selection.d.ts +4 -4
- package/dist/selection.d.ts.map +1 -1
- package/dist/selection.js +5 -5
- package/dist/selection.js.map +1 -1
- package/dist/shape.d.ts +5 -5
- package/dist/shape.d.ts.map +1 -1
- package/dist/spec.d.ts +7 -79
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +3 -3
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +10 -10
- package/dist/statements.js.map +1 -1
- package/dist/uuid.d.ts +1 -1
- package/dist/uuid.d.ts.map +1 -1
- package/dist/uuid.js +1 -1
- package/dist/uuid.js.map +1 -1
- package/dist/values.d.ts +2 -2
- package/dist/values.d.ts.map +1 -1
- package/dist/values.js +2 -2
- package/dist/values.js.map +1 -1
- package/package.json +18 -18
- package/src/alternatives.ts +7 -8
- package/src/bin.ts +82 -0
- package/src/capacity.ts +20 -23
- package/src/changes.ts +134 -191
- package/src/closed.ts +5 -5
- package/src/codec.ts +35 -49
- package/src/compile.ts +91 -113
- package/src/database/database.ts +413 -0
- package/src/database/driver.ts +134 -0
- package/src/database/fs.ts +119 -0
- package/src/database/generate.ts +116 -0
- package/src/database/hosted.ts +102 -0
- package/src/database/io.ts +134 -0
- package/src/database/mem.ts +113 -0
- package/src/database/migration.ts +107 -0
- package/src/database/s3.ts +231 -0
- package/src/db.ts +290 -547
- package/src/engine.ts +14 -0
- package/src/errors.ts +118 -39
- package/src/face.ts +9 -9
- package/src/fields.ts +6 -7
- package/src/index.ts +92 -105
- package/src/judgment.ts +1 -1
- package/src/law.ts +18 -70
- package/src/lower.ts +61 -72
- package/src/native/addon.ts +54 -0
- package/src/native/binding.d.ts +996 -0
- package/src/native/json.ts +100 -0
- package/src/native/load.ts +31 -0
- package/src/native/op.ts +73 -0
- package/src/query/atom.ts +15 -16
- package/src/query/compute.ts +7 -7
- package/src/query/find.ts +8 -8
- package/src/query/lower.ts +270 -392
- package/src/query/run.ts +42 -21
- package/src/query/scope.ts +29 -37
- package/src/query/segments.ts +4 -4
- package/src/relation.ts +4 -4
- package/src/result.ts +53 -80
- package/src/rows.ts +18 -46
- package/src/runtime.ts +50 -277
- package/src/scalar.ts +32 -12
- package/src/schema.ts +23 -284
- package/src/selection.ts +6 -6
- package/src/shape.ts +5 -5
- package/src/spec.ts +7 -85
- package/src/statements.ts +11 -11
- package/src/uuid.ts +1 -1
- package/src/values.ts +4 -4
- package/dist/close.d.ts +0 -24
- package/dist/close.d.ts.map +0 -1
- package/dist/close.js +0 -34
- package/dist/close.js.map +0 -1
- package/dist/db-native.d.ts +0 -189
- package/dist/db-native.d.ts.map +0 -1
- package/dist/db-native.js +0 -13
- package/dist/db-native.js.map +0 -1
- package/dist/internal/log.d.ts +0 -26
- package/dist/internal/log.d.ts.map +0 -1
- package/dist/internal/log.js +0 -12
- package/dist/internal/log.js.map +0 -1
- package/dist/native.d.ts +0 -562
- package/dist/native.d.ts.map +0 -1
- package/dist/native.js +0 -123
- package/dist/native.js.map +0 -1
- package/dist/query/description.d.ts +0 -41
- package/dist/query/description.d.ts.map +0 -1
- package/dist/query/description.js +0 -311
- package/dist/query/description.js.map +0 -1
- package/dist/query/parse-ir.d.ts +0 -10
- package/dist/query/parse-ir.d.ts.map +0 -1
- package/dist/query/parse-ir.js +0 -280
- package/dist/query/parse-ir.js.map +0 -1
- package/dist/runtime-codes.d.ts +0 -2
- package/dist/runtime-codes.d.ts.map +0 -1
- package/dist/runtime-codes.js +0 -19
- package/dist/runtime-codes.js.map +0 -1
- package/dist/runtime-errors.d.ts +0 -138
- package/dist/runtime-errors.d.ts.map +0 -1
- package/dist/runtime-errors.js +0 -111
- package/dist/runtime-errors.js.map +0 -1
- package/dist/runtime-native.d.ts +0 -136
- package/dist/runtime-native.d.ts.map +0 -1
- package/dist/runtime-native.js +0 -5
- package/dist/runtime-native.js.map +0 -1
- package/dist/schema-file.d.ts +0 -7
- package/dist/schema-file.d.ts.map +0 -1
- package/dist/schema-file.js +0 -24
- package/dist/schema-file.js.map +0 -1
- package/pack-provenance.json +0 -7
- package/src/close.ts +0 -53
- package/src/db-native.ts +0 -235
- package/src/internal/log.ts +0 -46
- package/src/native.ts +0 -736
- package/src/query/description.ts +0 -424
- package/src/query/parse-ir.ts +0 -293
- package/src/runtime-codes.ts +0 -18
- package/src/runtime-errors.ts +0 -122
- package/src/runtime-native.ts +0 -181
- package/src/schema-file.ts +0 -38
package/dist/alternatives.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alternatives.js","sourceRoot":"","sources":["../src/alternatives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"alternatives.js","sourceRoot":"","sources":["../src/alternatives.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
3
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
4
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
5
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
return path;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* `bumbledb generate --schema <file>#<export> --name <name> [--migrations <dir>]`
|
|
12
|
+
* `bumbledb check --schema <file>#<export> [--migrations <dir>]`
|
|
13
|
+
* `bumbledb migrate --config <file>`: the file's default export is the app's `Database` options;
|
|
14
|
+
* the database is opened with `onOpen: "migrate"` and closed, running every pending migration.
|
|
15
|
+
*/
|
|
16
|
+
import * as path from "node:path";
|
|
17
|
+
import { pathToFileURL } from "node:url";
|
|
18
|
+
import { parseArgs } from "node:util";
|
|
19
|
+
import { Cause, Effect, Exit, Layer } from "effect";
|
|
20
|
+
import { Database } from "./database/database.js";
|
|
21
|
+
import { check, generate } from "./database/generate.js";
|
|
22
|
+
import { Bumble } from "./runtime.js";
|
|
23
|
+
async function load(specifier) {
|
|
24
|
+
return (await import(__rewriteRelativeImportExtension(pathToFileURL(path.resolve(specifier)).href)));
|
|
25
|
+
}
|
|
26
|
+
async function schemaOf(reference) {
|
|
27
|
+
const [file, name = "default"] = reference.split("#");
|
|
28
|
+
if (file === undefined || file === "")
|
|
29
|
+
throw new Error("--schema is <file>#<export>");
|
|
30
|
+
const value = (await load(file))[name];
|
|
31
|
+
if (value === undefined)
|
|
32
|
+
throw new Error(`${file} has no export ${name}`);
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
async function main(argv) {
|
|
36
|
+
const [command, ...rest] = argv;
|
|
37
|
+
const { values } = parseArgs({
|
|
38
|
+
args: rest,
|
|
39
|
+
options: {
|
|
40
|
+
schema: { type: "string" },
|
|
41
|
+
name: { type: "string" },
|
|
42
|
+
migrations: { type: "string", default: "migrations" },
|
|
43
|
+
config: { type: "string" }
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const migrations = values.migrations ?? "migrations";
|
|
47
|
+
switch (command) {
|
|
48
|
+
case "generate": {
|
|
49
|
+
if (values.schema === undefined || values.name === undefined)
|
|
50
|
+
throw new Error("generate needs --schema and --name");
|
|
51
|
+
const generated = generate(migrations, await schemaOf(values.schema), values.name);
|
|
52
|
+
console.log(generated._tag === "Created" ? `created ${migrations}/${generated.id}` : "schema unchanged");
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
55
|
+
case "check": {
|
|
56
|
+
if (values.schema === undefined)
|
|
57
|
+
throw new Error("check needs --schema");
|
|
58
|
+
const bundled = (await load(path.join(migrations, "index.ts"))).migrations;
|
|
59
|
+
const problems = check(migrations, await schemaOf(values.schema), bundled);
|
|
60
|
+
for (const problem of problems)
|
|
61
|
+
console.error(problem);
|
|
62
|
+
return problems.length === 0 ? 0 : 1;
|
|
63
|
+
}
|
|
64
|
+
case "migrate": {
|
|
65
|
+
if (values.config === undefined)
|
|
66
|
+
throw new Error("migrate needs --config");
|
|
67
|
+
const options = (await load(values.config)).default;
|
|
68
|
+
const exit = await Effect.runPromiseExit(Effect.scoped(Database.make({ ...options, onOpen: "migrate" })).pipe(Effect.provide(Layer.fresh(Bumble.layer()))));
|
|
69
|
+
if (Exit.isFailure(exit)) {
|
|
70
|
+
console.error(Cause.pretty(exit.cause));
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
console.log("migrated");
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
default:
|
|
77
|
+
console.error("usage: bumbledb generate | check | migrate");
|
|
78
|
+
return 2;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
process.exitCode = await main(process.argv.slice(2)).catch((error) => {
|
|
82
|
+
console.error(error instanceof Error ? error.message : error);
|
|
83
|
+
return 2;
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/capacity.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** Structural capacity measures and windows. Constructors and generated
|
|
2
2
|
* descriptions share the same checked representation. Bounds are u64;
|
|
3
3
|
* dependent bounds read the target row, measures read the source row. */
|
|
4
|
-
import type { AnyFace, FaceFields, FaceSource, ProjectedShape } from "./face.
|
|
5
|
-
import type { CapacityWindowSpec, WeightSpec } from "./spec.
|
|
4
|
+
import type { AnyFace, FaceFields, FaceSource, ProjectedShape } from "./face.ts";
|
|
5
|
+
import type { CapacityWindowSpec, WeightSpec } from "./spec.ts";
|
|
6
6
|
type CapacityWindow<S extends CapacityWindowSpec = CapacityWindowSpec> = S;
|
|
7
7
|
type CapacityWeight<S extends WeightSpec = WeightSpec> = S;
|
|
8
8
|
interface FieldRef<F extends string = string> {
|
|
@@ -17,9 +17,8 @@ interface BannedWindow<Canonical extends string> {
|
|
|
17
17
|
readonly "banned window spelling — the canonical-utterance law names the one legal form": Canonical;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* The path-weight refusal
|
|
21
|
-
*
|
|
22
|
-
* expansion and the spec resolver carry.
|
|
20
|
+
* The path-weight refusal: it names the pinned-column idiom, the same
|
|
21
|
+
* diagnostic the macro expansion and the spec resolver carry.
|
|
23
22
|
*/
|
|
24
23
|
interface RefusedPath<Idiom extends string> {
|
|
25
24
|
readonly "path spelling refused — the vocabulary is closed at the row": Idiom;
|
|
@@ -27,24 +26,22 @@ interface RefusedPath<Idiom extends string> {
|
|
|
27
26
|
type IsNegative<N extends bigint> = `${N}` extends `-${string}` ? true : false;
|
|
28
27
|
/**
|
|
29
28
|
* The dotted-name ban, both mints: a `a.b` spelling is a typed refusal
|
|
30
|
-
*
|
|
29
|
+
* naming the composition idiom — pin the column with a
|
|
31
30
|
* two-column containment (`Device(model, watts) <= Model(id, watts)`) and
|
|
32
31
|
* name the local field.
|
|
33
32
|
*/
|
|
34
33
|
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;
|
|
35
34
|
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;
|
|
36
35
|
/**
|
|
37
|
-
* The
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* the mint. Genuinely different semantics still refuse: negative bounds
|
|
41
|
-
* (out of the u64 domain) and inverted literal bounds.
|
|
36
|
+
* The floor-slot refusals. `{n..n}`, `{0..0}`, unit floors `{1..*}`/`{N..*}` and the vacuous
|
|
37
|
+
* `{0..*}` are harmless equivalent spellings that lower to the one canonical `(lo, hi)` law at the
|
|
38
|
+
* mint; negative bounds (out of the u64 domain) and inverted literal bounds refuse.
|
|
42
39
|
*/
|
|
43
40
|
type FloorBan<N extends bigint> = NegativeBan<N>;
|
|
44
41
|
type RangeBan<Lo extends bigint, Hi extends bigint> = bigint extends Lo ? unknown : bigint extends Hi ? unknown : IsNegative<Lo> extends true ? BannedWindow<"capacity bounds are u64 — a negative bound is out of domain"> : IsNegative<Hi> extends true ? BannedWindow<"capacity bounds are u64 — a negative bound is out of domain"> : unknown;
|
|
45
42
|
/**
|
|
46
|
-
* The
|
|
47
|
-
* `CapacityDimensionMixing` twin
|
|
43
|
+
* The dimension gate's ban row, unit instance (the engine's
|
|
44
|
+
* `CapacityDimensionMixing` twin): a unit (count)
|
|
48
45
|
* window against a `duration` bound counts facts against a span of
|
|
49
46
|
* interval coordinates — a dimension error. Judged on the `capacity`
|
|
50
47
|
* UNIT overload only. Explicit scalar and Duration measures may use
|
|
@@ -55,7 +52,7 @@ type UnitDimensionBan<W extends CapacityWindow> = W extends {
|
|
|
55
52
|
readonly hi: {
|
|
56
53
|
readonly kind: "durationField";
|
|
57
54
|
};
|
|
58
|
-
} ? BannedWindow<"a count of facts bounded by a span of time mixes dimensions
|
|
55
|
+
} ? BannedWindow<"a count of facts bounded by a span of time mixes dimensions — weigh the source with weigh(duration(field)), or bound by a u64 field or literal"> : unknown;
|
|
59
56
|
type KindAt<S extends FaceSource, K extends string> = ProjectedShape<S, K> extends readonly [infer Kind, ...unknown[]] ? Kind : undefined;
|
|
60
57
|
interface BoundOffTargetRoster<K, Roster> {
|
|
61
58
|
readonly "dependent bound must name a field of the TARGET's own row — bound names resolve against the target's full roster": readonly [
|
|
@@ -118,7 +115,7 @@ declare function within<const Lo extends bigint>(lo: Lo & FloorBan<Lo>, hi: "*")
|
|
|
118
115
|
}>;
|
|
119
116
|
/**
|
|
120
117
|
* `{lo..field}` / `{lo..Duration(field)}` — the dependent ceiling, read
|
|
121
|
-
* from the TARGET row per group (
|
|
118
|
+
* from the TARGET row per group (hi slot only). The ref carries no
|
|
122
119
|
* value, so no inversion judgment exists at construction — a per-row
|
|
123
120
|
* inverted window is the judge's typed refusal.
|
|
124
121
|
*/
|
|
@@ -150,7 +147,7 @@ declare function within<const Lo extends bigint, const Hi extends bigint>(lo: Lo
|
|
|
150
147
|
/**
|
|
151
148
|
* `[field]` — the measure: a u64-encoded field of the SOURCE row summed
|
|
152
149
|
* per target group. A dotted path is the typed refusal naming the
|
|
153
|
-
* pinned-column idiom
|
|
150
|
+
* pinned-column idiom; `weigh(duration(field))` is the
|
|
154
151
|
* interval-measure weight — calendar capacity as one statement.
|
|
155
152
|
*/
|
|
156
153
|
declare function weigh<const F extends string>(field: F & PathBan<F>): CapacityWeight<{
|
|
@@ -168,7 +165,7 @@ declare function ref<const F extends string>(field: F & PathBan<F>): FieldRef<F>
|
|
|
168
165
|
* in `within`'s hi slot it is the TARGET row's interval-measure bound
|
|
169
166
|
* in the interval element's unit, not necessarily a clock unit.
|
|
170
167
|
* Explicit u64 measures/bounds may carry that same unit; an unweighted
|
|
171
|
-
* row count cannot be bounded by an interval measure
|
|
168
|
+
* row count cannot be bounded by an interval measure.
|
|
172
169
|
*/
|
|
173
170
|
declare function duration<const F extends string>(field: F & PathBan<F>): DurationRef<F>;
|
|
174
171
|
export type { BoundsOnTarget, CapacityWeight, CapacityWindow, DurationRef, FieldRef, UnitDimensionBan, WeightOnSource };
|
package/dist/capacity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AACA;;yEAEyE;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"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"}
|
package/dist/capacity.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { AuthoringError } from "
|
|
2
|
-
import { integerValue, recordValue } from "
|
|
1
|
+
import { AuthoringError } from "./errors.js";
|
|
2
|
+
import { integerValue, recordValue } from "./values.js";
|
|
3
3
|
const unitWeight = Object.freeze({ kind: "unit" });
|
|
4
4
|
function assertRowLocal(field, role) {
|
|
5
5
|
if (typeof field !== "string" || !field.isWellFormed())
|
|
6
6
|
throw new AuthoringError({ message: `${role}: expected a well-formed field name` });
|
|
7
7
|
if (field.includes(".")) {
|
|
8
8
|
throw new AuthoringError({
|
|
9
|
-
message: `${role} \`${field}\` walks a reference — the vocabulary is closed at the row
|
|
9
|
+
message: `${role} \`${field}\` walks a reference — the vocabulary is closed at the row: pin the column with a two-column containment (Source(ref, f) <= Catalog(id, f)) and name the local field`
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
return field;
|
|
@@ -31,9 +31,9 @@ function within(lo, hi) {
|
|
|
31
31
|
return admitWindow({ kind: "exact", n: lit(lo) });
|
|
32
32
|
}
|
|
33
33
|
if (hi === "*") {
|
|
34
|
-
// `{0..*}` (vacuous) and `{N..*}` floors are
|
|
35
|
-
//
|
|
36
|
-
//
|
|
34
|
+
// `{0..*}` (vacuous) and `{N..*}` floors are accepted canonical laws:
|
|
35
|
+
// normalization preserves authored statement attribution instead of
|
|
36
|
+
// policing the spelling.
|
|
37
37
|
return admitWindow({ kind: "floor", lo: lit(lo) });
|
|
38
38
|
}
|
|
39
39
|
if (typeof hi === "bigint") {
|
|
@@ -76,7 +76,7 @@ function ref(field) {
|
|
|
76
76
|
* in `within`'s hi slot it is the TARGET row's interval-measure bound
|
|
77
77
|
* in the interval element's unit, not necessarily a clock unit.
|
|
78
78
|
* Explicit u64 measures/bounds may carry that same unit; an unweighted
|
|
79
|
-
* row count cannot be bounded by an interval measure
|
|
79
|
+
* row count cannot be bounded by an interval measure.
|
|
80
80
|
*/
|
|
81
81
|
function duration(field) {
|
|
82
82
|
return Object.freeze({ kind: "durationField", field: assertRowLocal(field, "Duration measure") });
|
package/dist/capacity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capacity.js","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"capacity.js","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"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"}
|
package/dist/changes.d.ts
CHANGED
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
import type { Scope } from "effect";
|
|
2
2
|
import { Effect, Stream } from "effect";
|
|
3
|
-
import type { SchemaId } from "./compile.
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import type {
|
|
7
|
-
import {
|
|
8
|
-
import type { AnySchema } from "./schema.
|
|
9
|
-
import type { Rel } from "./shape.
|
|
10
|
-
/**
|
|
11
|
-
* `ChangeSet` — the engine's checked immutable delta:
|
|
12
|
-
* schema-fingerprint-bound canonical native bytes with
|
|
13
|
-
* one-command `(add, remove ∖ add)` normalization and exact same-fact
|
|
14
|
-
* add-wins. Immutable and reusable while open; sealing/submitting it later
|
|
15
|
-
* retains the SAME native value — no second JS row walk ever happens.
|
|
16
|
-
*/
|
|
17
|
-
/** Counts of distinct fact additions and removals, never input events. */
|
|
18
|
-
interface ChangeCounts {
|
|
19
|
-
readonly added: bigint;
|
|
20
|
-
readonly removed: bigint;
|
|
21
|
-
}
|
|
3
|
+
import type { SchemaId } from "./compile.ts";
|
|
4
|
+
import { DbError } from "./errors.ts";
|
|
5
|
+
import type { ChangesRef } from "./native/addon.ts";
|
|
6
|
+
import type { ChangeCounts, ChangeKindOut, ChangesOut } from "./native/binding.d.ts";
|
|
7
|
+
import { type AnyRelation, type Fact } from "./relation.ts";
|
|
8
|
+
import type { AnySchema } from "./schema.ts";
|
|
9
|
+
import type { Rel } from "./shape.ts";
|
|
22
10
|
/** A relation-name-discriminated union of plain, fully typed facts. */
|
|
23
11
|
type ChangeRecord<S extends AnySchema> = {
|
|
24
12
|
[N in keyof S["relations"]]: S["relations"][N] extends AnyRelation ? {
|
|
25
13
|
readonly relation: N;
|
|
26
|
-
readonly kind:
|
|
14
|
+
readonly kind: ChangeKindOut;
|
|
27
15
|
readonly fact: Fact<S["relations"][N]>;
|
|
28
16
|
} : never;
|
|
29
17
|
}[keyof S["relations"]];
|
|
18
|
+
/**
|
|
19
|
+
* The engine's checked immutable delta: schema-fingerprint-bound canonical native bytes with
|
|
20
|
+
* one-command `(add, remove ∖ add)` normalization and exact same-fact add-wins. Reusable while
|
|
21
|
+
* open; submitting it retains the same native value, so no second row walk happens.
|
|
22
|
+
*/
|
|
30
23
|
interface ChangeSet<S extends AnySchema> {
|
|
31
24
|
readonly schemaId: SchemaId;
|
|
32
25
|
/** Distinct requested actions; use judge for effective counts against a store. */
|
|
@@ -40,36 +33,35 @@ interface ChangeSet<S extends AnySchema> {
|
|
|
40
33
|
toBytes(): Effect.Effect<Uint8Array, DbError>;
|
|
41
34
|
/** Commutative add-wins composition into one command, not sequential replay. */
|
|
42
35
|
compose(other: ChangeSet<S>): Effect.Effect<ChangeSet<S>, DbError, Scope.Scope>;
|
|
43
|
-
close(): Effect.Effect<CloseReport>;
|
|
44
36
|
}
|
|
45
37
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* stable from an ingestion effect's execution start through its Exit;
|
|
51
|
-
* after successful ingestion the accepted native bytes are independent.
|
|
52
|
-
* Failure/interruption SPENDS the draft and initiates tracked drain.
|
|
53
|
-
* Concurrent/reentrant construction refuses and spends/drains the draft.
|
|
54
|
-
* `finish` consumes the draft; later ingestion or a second finish refuses
|
|
55
|
-
* through the spent capability state.
|
|
38
|
+
* A scoped, database-free change draft. Each method returns a lazy effect that reads its iterable
|
|
39
|
+
* when it runs (every rerun reads it again); accepted rows are copied, so later mutation of the
|
|
40
|
+
* input changes nothing. A failure, an interruption or concurrent use spends the draft; `finish`
|
|
41
|
+
* consumes it.
|
|
56
42
|
*/
|
|
57
43
|
interface ChangeDraft<S extends AnySchema> {
|
|
58
44
|
insert<R extends Rel<S>>(relation: R, rows: Iterable<Fact<R>>): Effect.Effect<void, DbError>;
|
|
59
45
|
delete<R extends Rel<S>>(relation: R, rows: Iterable<Fact<R>>): Effect.Effect<void, DbError>;
|
|
60
46
|
finish(): Effect.Effect<ChangeSet<S>, DbError, Scope.Scope>;
|
|
61
|
-
close(): Effect.Effect<CloseReport>;
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
|
|
48
|
+
declare class ChangeSetLive<S extends AnySchema> implements ChangeSet<S> {
|
|
49
|
+
#private;
|
|
65
50
|
readonly schemaId: SchemaId;
|
|
51
|
+
readonly counts: ChangeCounts;
|
|
52
|
+
readonly byteLength: bigint;
|
|
53
|
+
constructor(theory: S, wire: ChangesOut, schemaId: SchemaId);
|
|
54
|
+
records(): Stream.Stream<ChangeRecord<S>, DbError>;
|
|
55
|
+
toBytes(): Effect.Effect<Uint8Array, DbError>;
|
|
56
|
+
compose(other: ChangeSet<S>): Effect.Effect<ChangeSet<S>, DbError, Scope.Scope>;
|
|
57
|
+
/** The native change set behind `value`, when `value` is one this SDK made for `schemaId`. */
|
|
58
|
+
static handle(value: object, schemaId: SchemaId): ChangesRef | undefined;
|
|
66
59
|
}
|
|
67
|
-
/** Private cross-module accessor (db.apply retains the native ChangeSet). */
|
|
68
|
-
declare function internalChanges(value: object): ChangesInternal | undefined;
|
|
69
60
|
declare const ChangeSet: Readonly<{
|
|
70
|
-
builder: <S extends AnySchema>(schema: S) => Effect.Effect<ChangeDraft<S>, DbError, import("./runtime.
|
|
71
|
-
fromBytes: <S extends AnySchema>(schema: S, bytes: Uint8Array<ArrayBufferLike>) => Effect.Effect<ChangeSet<S>, DbError, import("./runtime.
|
|
61
|
+
builder: <S extends AnySchema>(schema: S) => Effect.Effect<ChangeDraft<S>, DbError, import("./runtime.ts").Bumble | Scope.Scope>;
|
|
62
|
+
fromBytes: <S extends AnySchema>(schema: S, bytes: Uint8Array<ArrayBufferLike>) => Effect.Effect<ChangeSet<S>, DbError, import("./runtime.ts").Bumble | Scope.Scope>;
|
|
72
63
|
}>;
|
|
73
|
-
export type { ChangeCounts
|
|
74
|
-
export {
|
|
64
|
+
export type { ChangeCounts } from "./native/binding.d.ts";
|
|
65
|
+
export type { ChangeDraft, ChangeRecord };
|
|
66
|
+
export { ChangeSet, ChangeSetLive };
|
|
75
67
|
//# sourceMappingURL=changes.d.ts.map
|
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,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
|