litedbmodel 2.2.2 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/DBModel.d.ts.map +1 -1
- package/dist/DBModel.js +3 -0
- package/dist/DBModel.js.map +1 -1
- package/dist/Middleware.d.ts +19 -2
- package/dist/Middleware.d.ts.map +1 -1
- package/dist/Middleware.js +1 -0
- package/dist/Middleware.js.map +1 -1
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +8 -0
- package/dist/decorators.js.map +1 -1
- package/dist/drivers/MysqlHelper.d.ts +1 -1
- package/dist/drivers/MysqlHelper.d.ts.map +1 -1
- package/dist/drivers/MysqlHelper.js.map +1 -1
- package/dist/drivers/PostgresHelper.d.ts +1 -1
- package/dist/drivers/PostgresHelper.d.ts.map +1 -1
- package/dist/drivers/PostgresHelper.js.map +1 -1
- package/dist/drivers/SqliteHelper.d.ts +1 -1
- package/dist/drivers/SqliteHelper.d.ts.map +1 -1
- package/dist/drivers/SqliteHelper.js.map +1 -1
- package/dist/index.cjs +105 -74
- package/dist/scp/connection-routing.d.ts +38 -1
- package/dist/scp/connection-routing.d.ts.map +1 -1
- package/dist/scp/connection-routing.js +64 -5
- package/dist/scp/connection-routing.js.map +1 -1
- package/dist/scp/dbmodel-runtime.d.ts +2 -1
- package/dist/scp/dbmodel-runtime.d.ts.map +1 -1
- package/dist/scp/dbmodel-runtime.js +2 -1
- package/dist/scp/dbmodel-runtime.js.map +1 -1
- package/dist/scp/decorator-adapter.d.ts +22 -0
- package/dist/scp/decorator-adapter.d.ts.map +1 -1
- package/dist/scp/decorator-adapter.js +26 -0
- package/dist/scp/decorator-adapter.js.map +1 -1
- package/dist/scp/emit/emitter.d.ts +21 -10
- package/dist/scp/emit/emitter.d.ts.map +1 -1
- package/dist/scp/emit/emitter.js +119 -51
- package/dist/scp/emit/emitter.js.map +1 -1
- package/dist/scp/emit/endpoint.d.ts +3 -8
- package/dist/scp/emit/endpoint.d.ts.map +1 -1
- package/dist/scp/exec-context.d.ts +39 -17
- package/dist/scp/exec-context.d.ts.map +1 -1
- package/dist/scp/exec-context.js +69 -35
- package/dist/scp/exec-context.js.map +1 -1
- package/dist/scp/grouping.d.ts.map +1 -1
- package/dist/scp/grouping.js +0 -0
- package/dist/scp/grouping.js.map +1 -1
- package/dist/scp/index.cjs +257 -670
- package/dist/scp/index.d.ts +6 -11
- package/dist/scp/index.d.ts.map +1 -1
- package/dist/scp/index.js +10 -28
- package/dist/scp/index.js.map +1 -1
- package/dist/scp/index.mjs +257 -658
- package/dist/scp/leaf-transport.d.ts +127 -39
- package/dist/scp/leaf-transport.d.ts.map +1 -1
- package/dist/scp/leaf-transport.js +30 -24
- package/dist/scp/leaf-transport.js.map +1 -1
- package/dist/scp/leaves.d.ts +57 -20
- package/dist/scp/leaves.d.ts.map +1 -1
- package/dist/scp/leaves.js +224 -65
- package/dist/scp/leaves.js.map +1 -1
- package/dist/scp/makesql/compile-select.d.ts +28 -1
- package/dist/scp/makesql/compile-select.d.ts.map +1 -1
- package/dist/scp/makesql/compile-select.js +19 -17
- package/dist/scp/makesql/compile-select.js.map +1 -1
- package/dist/scp/makesql/index.d.ts +2 -2
- package/dist/scp/makesql/index.d.ts.map +1 -1
- package/dist/scp/makesql/index.js +4 -6
- package/dist/scp/makesql/index.js.map +1 -1
- package/dist/scp/makesql/tx.d.ts +43 -89
- package/dist/scp/makesql/tx.d.ts.map +1 -1
- package/dist/scp/makesql/tx.js +45 -496
- package/dist/scp/makesql/tx.js.map +1 -1
- package/dist/scp/makesql/writeouttype.d.ts +5 -7
- package/dist/scp/makesql/writeouttype.d.ts.map +1 -1
- package/dist/scp/makesql/writeouttype.js +13 -19
- package/dist/scp/makesql/writeouttype.js.map +1 -1
- package/dist/scp/middleware.d.ts +4 -4
- package/dist/scp/middleware.d.ts.map +1 -1
- package/dist/scp/middleware.js +2 -2
- package/dist/scp/middleware.js.map +1 -1
- package/dist/scp/relation.d.ts +31 -12
- package/dist/scp/relation.d.ts.map +1 -1
- package/dist/scp/relation.js +16 -6
- package/dist/scp/relation.js.map +1 -1
- package/dist/scp/typed-object.d.ts +23 -19
- package/dist/scp/typed-object.d.ts.map +1 -1
- package/dist/scp/typed-object.js +24 -30
- package/dist/scp/typed-object.js.map +1 -1
- package/dist/scp/write-bundle.d.ts +21 -70
- package/dist/scp/write-bundle.d.ts.map +1 -1
- package/dist/scp/write-bundle.js +16 -80
- package/dist/scp/write-bundle.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/docs/BENCHMARK.md +26 -22
- package/docs/COMPARISON.md +8 -4
- package/docs/api/README.md +1 -1
- package/docs/api/classes/Conditions.md +10 -10
- package/docs/api/classes/DBHandler.md +17 -17
- package/docs/api/classes/DBModel.md +111 -104
- package/docs/api/classes/LimitExceededError.md +8 -8
- package/docs/api/classes/Middleware.md +18 -18
- package/docs/api/classes/SqlRaw.md +6 -6
- package/docs/api/classes/SqlRef.md +7 -7
- package/docs/api/classes/Values.md +6 -6
- package/docs/api/classes/WriteInReadOnlyContextError.md +5 -5
- package/docs/api/classes/WriteOutsideTransactionError.md +5 -5
- package/docs/api/functions/belongsTo.md +2 -2
- package/docs/api/functions/closeAllPools.md +2 -2
- package/docs/api/functions/condsToRecord.md +2 -2
- package/docs/api/functions/createMiddleware.md +2 -2
- package/docs/api/functions/createPostgresDriver.md +2 -2
- package/docs/api/functions/createSqliteDriver.md +2 -2
- package/docs/api/functions/dbCast.md +3 -3
- package/docs/api/functions/dbCastIn.md +2 -2
- package/docs/api/functions/dbDynamic.md +3 -3
- package/docs/api/functions/dbFalse.md +2 -2
- package/docs/api/functions/dbImmediate.md +2 -2
- package/docs/api/functions/dbIn.md +2 -2
- package/docs/api/functions/dbNotNull.md +2 -2
- package/docs/api/functions/dbNow.md +2 -2
- package/docs/api/functions/dbNull.md +2 -2
- package/docs/api/functions/dbRaw.md +2 -2
- package/docs/api/functions/dbTrue.md +2 -2
- package/docs/api/functions/dbUuid.md +3 -3
- package/docs/api/functions/dbUuidIn.md +2 -2
- package/docs/api/functions/formatLocalDate.md +25 -0
- package/docs/api/functions/formatUTCDate.md +25 -0
- package/docs/api/functions/getDBConfig.md +2 -2
- package/docs/api/functions/getDBHandler.md +2 -2
- package/docs/api/functions/getTransactionConnection.md +2 -2
- package/docs/api/functions/getTransactionContext.md +2 -2
- package/docs/api/functions/hasMany.md +2 -2
- package/docs/api/functions/hasOne.md +2 -2
- package/docs/api/functions/initDBHandler.md +2 -2
- package/docs/api/functions/isAnySqlFragment.md +2 -2
- package/docs/api/functions/isConnectionError.md +26 -0
- package/docs/api/functions/isSqlCondition.md +2 -2
- package/docs/api/functions/isSqlFragment.md +2 -2
- package/docs/api/functions/isSqlRaw.md +2 -2
- package/docs/api/functions/isSqlRef.md +2 -2
- package/docs/api/functions/isSqlTypedFragment.md +2 -2
- package/docs/api/functions/model.md +6 -42
- package/docs/api/functions/parentRef.md +2 -2
- package/docs/api/functions/sql.md +7 -7
- package/docs/api/globals.md +57 -22
- package/docs/api/interfaces/Column.md +31 -31
- package/docs/api/interfaces/ColumnOptions.md +5 -4
- package/docs/api/interfaces/CreatedMiddlewareClass.md +7 -7
- package/docs/api/interfaces/DBConfig.md +13 -11
- package/docs/api/interfaces/DBConfigOptions.md +8 -8
- package/docs/api/interfaces/DeleteOptions.md +4 -4
- package/docs/api/interfaces/InsertOptions.md +8 -8
- package/docs/api/interfaces/LimitConfig.md +4 -4
- package/docs/api/interfaces/MiddlewareConfig.md +15 -15
- package/docs/api/interfaces/ModelOptions.md +8 -7
- package/docs/api/interfaces/PkeyResult.md +4 -4
- package/docs/api/interfaces/SelectOptions.md +17 -16
- package/docs/api/interfaces/SqlCondition.md +6 -6
- package/docs/api/interfaces/SqlFragment.md +5 -5
- package/docs/api/interfaces/SqlTypedFragment.md +7 -7
- package/docs/api/interfaces/TransactionOptions.md +7 -7
- package/docs/api/interfaces/UpdateManyOptions.md +4 -4
- package/docs/api/interfaces/UpdateOptions.md +4 -4
- package/docs/architecture.md +452 -0
- package/docs/benchmark-chart.svg +225 -249
- package/docs/design/phase-a-execution-context.md +2 -0
- package/package.json +20 -5
- package/dist/scp/writes.d.ts +0 -251
- package/dist/scp/writes.d.ts.map +0 -1
- package/dist/scp/writes.js +0 -176
- package/dist/scp/writes.js.map +0 -1
- package/docs/proposal/contracts-architecture-feasibility.md +0 -328
- package/docs/proposal/contracts-architecture.md +0 -579
- package/docs/proposal/litedbmodel-v2-scp-architecture.md +0 -433
- package/docs/proposal/sql-dynamic-expansion-spec.md +0 -175
- package/docs/proposal/v0-coverage-matrix.md +0 -157
- package/docs/proposal/v2-completeness-plan.md +0 -90
- package/docs/proposal/v2-sql-parity-checklist.md +0 -162
package/dist/scp/relation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/scp/relation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/scp/relation.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,30 +26,41 @@
|
|
|
26
26
|
* Both surfaces resolve through {@link import('./relation').runRelationOp} — the identical
|
|
27
27
|
* compiled op — so there is one relation-execution code path, not two.
|
|
28
28
|
*/
|
|
29
|
-
import { type RelationOp, type
|
|
29
|
+
import { type RelationOp, type RelationTarget } from './relation';
|
|
30
30
|
/** The non-enumerable Symbol under which the shared lazy batch context is stashed. */
|
|
31
31
|
export declare const RELATION_CONTEXT: unique symbol;
|
|
32
32
|
/** A hydrate factory (graphddb-shaped): raw typed-object → host object. */
|
|
33
33
|
export type HydrateFactory<R> = (raw: Record<string, unknown>) => R;
|
|
34
34
|
/**
|
|
35
|
-
* The shared lazy batch context for one result set. Holds the sibling rows, the
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* or clone drops it — "designed
|
|
35
|
+
* The shared lazy batch context for one result set. Holds the sibling rows, the batch TARGET (a raw
|
|
36
|
+
* driver or a full {@link import('./exec-context').ExecutionContext}), the compiled relation ops
|
|
37
|
+
* (keyed by name), the (optional) hydrate factory, and a per-relation memo so a relation is batched
|
|
38
|
+
* at most ONCE across all siblings (structural no-N+1 for lazy). Stored as a non-enumerable Symbol
|
|
39
|
+
* prop so spread/JSON/`Object.keys` never see it (a spread or clone drops it — "designed
|
|
40
|
+
* degradation", feasibility §9).
|
|
41
|
+
*
|
|
42
|
+
* ONE target, whatever a relation's DATABASE is: a CROSS-DB relation names its connection ON THE OP
|
|
43
|
+
* ({@link RelationOp.connection}), and {@link runRelationOp} puts that name on the statement's
|
|
44
|
+
* {@link import('./exec-context').StatementIntent} — the only input a target's `connectionFor` routes
|
|
45
|
+
* on. So this surface holds no connection registry of its own; it hands the name to the seam.
|
|
46
|
+
*
|
|
47
|
+
* WHICH targets can resolve one, on THIS plane: this surface is SYNCHRONOUS (better-sqlite3), and TS's
|
|
48
|
+
* {@link import('./connection-routing').ConnectionRegistry} maps a name to ASYNC pools
|
|
49
|
+
* ({@link import('./exec-context').AsyncConnectionPool}), so the registry-holding
|
|
50
|
+
* {@link import('./exec-context').PooledAsyncContext} is not even assignable here (its `connectionFor`
|
|
51
|
+
* yields an {@link import('./exec-context').AsyncConnection}). A named relation therefore resolves only
|
|
52
|
+
* against a CALLER-SUPPLIED {@link import('./exec-context').ExecutionContext} whose own `connectionFor`
|
|
53
|
+
* routes on `intent.db`. On a raw driver — or any other single-connection target — a named relation is
|
|
54
|
+
* LOUD (`assertRoutableNamedDb`), never silently run against the connection that target happens to hold.
|
|
40
55
|
*/
|
|
41
56
|
export declare class RelationContext {
|
|
42
57
|
private readonly siblings;
|
|
43
58
|
private readonly ops;
|
|
44
59
|
private readonly db;
|
|
45
60
|
private readonly hydrate?;
|
|
46
|
-
/** CROSS-DB (V0 R1): name → driver registry; a tagged relation routes to `connections[tag]`. */
|
|
47
|
-
private readonly connections?;
|
|
48
61
|
/** Per-relation resolved batch (name → grouping), memoized: one batch query per relation. */
|
|
49
62
|
private readonly resolved;
|
|
50
|
-
constructor(siblings: Record<string, unknown>[], ops: Readonly<Record<string, RelationOp>>, db:
|
|
51
|
-
/** The driver a relation runs against: its tagged cross-DB connection, else the primary `db`. */
|
|
52
|
-
private driverFor;
|
|
63
|
+
constructor(siblings: Record<string, unknown>[], ops: Readonly<Record<string, RelationOp>>, db: RelationTarget, hydrate?: HydrateFactory<unknown>);
|
|
53
64
|
/**
|
|
54
65
|
* Resolve `relationName` for `parent` (lazy access). The relation is batch-loaded across
|
|
55
66
|
* ALL siblings on first access and memoized, so N sibling accesses issue ONE query. Returns
|
|
@@ -72,13 +83,6 @@ export interface ReadOptions<R = Record<string, unknown>> {
|
|
|
72
83
|
readonly with?: Readonly<Record<string, true>>;
|
|
73
84
|
/** Host-object factory applied AFTER relation resolution (not applied to `null`). */
|
|
74
85
|
readonly hydrate?: HydrateFactory<R>;
|
|
75
|
-
/**
|
|
76
|
-
* CROSS-DB relations (V0 R1): connection-name → driver registry. A relation whose compiled op
|
|
77
|
-
* carries a `connection` tag (its target model lives in a DIFFERENT DB — v1
|
|
78
|
-
* `TargetClass.getDriverType()`) is batch-loaded against `connections[tag]` instead of the
|
|
79
|
-
* primary `db`. Untagged (same-DB) relations ignore this. Omit for a single-DB read.
|
|
80
|
-
*/
|
|
81
|
-
readonly connections?: Readonly<Record<string, RelationDriver>>;
|
|
82
86
|
}
|
|
83
87
|
/**
|
|
84
88
|
* Build the typed-object result set for a page of raw child rows plus the relation ops
|
|
@@ -95,5 +99,5 @@ export interface ReadOptions<R = Record<string, unknown>> {
|
|
|
95
99
|
* Returns the typed-objects (hydrated if `options.hydrate` given). This is the litedbmodel
|
|
96
100
|
* runtime concern; the bundle carries only the relation ops + assembly shape (no hydrate).
|
|
97
101
|
*/
|
|
98
|
-
export declare function buildResultSet<R = Record<string, unknown>>(rawRows: readonly Record<string, unknown>[], ops: Readonly<Record<string, RelationOp>>, db:
|
|
102
|
+
export declare function buildResultSet<R = Record<string, unknown>>(rawRows: readonly Record<string, unknown>[], ops: Readonly<Record<string, RelationOp>>, db: RelationTarget, options?: ReadOptions<R>): R[];
|
|
99
103
|
//# sourceMappingURL=typed-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-object.d.ts","sourceRoot":"","sources":["../../src/scp/typed-object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAGL,KAAK,UAAU,EAEf,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAA+C,CAAC;AAEtF,2EAA2E;AAC3E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"typed-object.d.ts","sourceRoot":"","sources":["../../src/scp/typed-object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAGL,KAAK,UAAU,EAEf,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAA+C,CAAC;AAEtF,2EAA2E;AAC3E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA0B;IACnD,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAG3D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACnC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EACzC,EAAE,EAAE,cAAc,EAClB,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC;IAQnC;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;CAYxE;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,GAAG,SAAS,CAG3F;AAUD;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxD,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EACzC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE,WAAW,CAAC,CAAC,CAAM,GAC3B,CAAC,EAAE,CA6DL"}
|
package/dist/scp/typed-object.js
CHANGED
|
@@ -35,31 +35,39 @@ const relation_1 = require("./relation");
|
|
|
35
35
|
/** The non-enumerable Symbol under which the shared lazy batch context is stashed. */
|
|
36
36
|
exports.RELATION_CONTEXT = Symbol('litedbmodel:relation-context');
|
|
37
37
|
/**
|
|
38
|
-
* The shared lazy batch context for one result set. Holds the sibling rows, the
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* or clone drops it — "designed
|
|
38
|
+
* The shared lazy batch context for one result set. Holds the sibling rows, the batch TARGET (a raw
|
|
39
|
+
* driver or a full {@link import('./exec-context').ExecutionContext}), the compiled relation ops
|
|
40
|
+
* (keyed by name), the (optional) hydrate factory, and a per-relation memo so a relation is batched
|
|
41
|
+
* at most ONCE across all siblings (structural no-N+1 for lazy). Stored as a non-enumerable Symbol
|
|
42
|
+
* prop so spread/JSON/`Object.keys` never see it (a spread or clone drops it — "designed
|
|
43
|
+
* degradation", feasibility §9).
|
|
44
|
+
*
|
|
45
|
+
* ONE target, whatever a relation's DATABASE is: a CROSS-DB relation names its connection ON THE OP
|
|
46
|
+
* ({@link RelationOp.connection}), and {@link runRelationOp} puts that name on the statement's
|
|
47
|
+
* {@link import('./exec-context').StatementIntent} — the only input a target's `connectionFor` routes
|
|
48
|
+
* on. So this surface holds no connection registry of its own; it hands the name to the seam.
|
|
49
|
+
*
|
|
50
|
+
* WHICH targets can resolve one, on THIS plane: this surface is SYNCHRONOUS (better-sqlite3), and TS's
|
|
51
|
+
* {@link import('./connection-routing').ConnectionRegistry} maps a name to ASYNC pools
|
|
52
|
+
* ({@link import('./exec-context').AsyncConnectionPool}), so the registry-holding
|
|
53
|
+
* {@link import('./exec-context').PooledAsyncContext} is not even assignable here (its `connectionFor`
|
|
54
|
+
* yields an {@link import('./exec-context').AsyncConnection}). A named relation therefore resolves only
|
|
55
|
+
* against a CALLER-SUPPLIED {@link import('./exec-context').ExecutionContext} whose own `connectionFor`
|
|
56
|
+
* routes on `intent.db`. On a raw driver — or any other single-connection target — a named relation is
|
|
57
|
+
* LOUD (`assertRoutableNamedDb`), never silently run against the connection that target happens to hold.
|
|
43
58
|
*/
|
|
44
59
|
class RelationContext {
|
|
45
60
|
siblings;
|
|
46
61
|
ops;
|
|
47
62
|
db;
|
|
48
63
|
hydrate;
|
|
49
|
-
/** CROSS-DB (V0 R1): name → driver registry; a tagged relation routes to `connections[tag]`. */
|
|
50
|
-
connections;
|
|
51
64
|
/** Per-relation resolved batch (name → grouping), memoized: one batch query per relation. */
|
|
52
65
|
resolved = new Map();
|
|
53
|
-
constructor(siblings, ops, db, hydrate
|
|
66
|
+
constructor(siblings, ops, db, hydrate) {
|
|
54
67
|
this.siblings = siblings;
|
|
55
68
|
this.ops = ops;
|
|
56
69
|
this.db = db;
|
|
57
70
|
this.hydrate = hydrate;
|
|
58
|
-
this.connections = connections;
|
|
59
|
-
}
|
|
60
|
-
/** The driver a relation runs against: its tagged cross-DB connection, else the primary `db`. */
|
|
61
|
-
driverFor(op) {
|
|
62
|
-
return op.connection === undefined ? this.db : driverForOp(op, this.connections);
|
|
63
71
|
}
|
|
64
72
|
/**
|
|
65
73
|
* Resolve `relationName` for `parent` (lazy access). The relation is batch-loaded across
|
|
@@ -73,25 +81,13 @@ class RelationContext {
|
|
|
73
81
|
}
|
|
74
82
|
let batch = this.resolved.get(relationName);
|
|
75
83
|
if (batch === undefined) {
|
|
76
|
-
batch = (0, relation_1.runRelationOp)(op, this.siblings, this.
|
|
84
|
+
batch = (0, relation_1.runRelationOp)(op, this.siblings, this.db).batch;
|
|
77
85
|
this.resolved.set(relationName, batch);
|
|
78
86
|
}
|
|
79
87
|
return applyHydrate((0, relation_1.distributeToParent)(op, parent, batch), this.hydrate);
|
|
80
88
|
}
|
|
81
89
|
}
|
|
82
90
|
exports.RelationContext = RelationContext;
|
|
83
|
-
/**
|
|
84
|
-
* The driver a CROSS-DB relation op (V0 R1) runs against: the registered `connections[tag]`. Loud
|
|
85
|
-
* failure when the tag has no registered driver (a real wiring bug — never a silent same-DB
|
|
86
|
-
* fallback, which would run the target's query on the wrong DB). Only called for a tagged op.
|
|
87
|
-
*/
|
|
88
|
-
function driverForOp(op, connections) {
|
|
89
|
-
const d = connections?.[op.connection];
|
|
90
|
-
if (d === undefined) {
|
|
91
|
-
throw new Error(`cross-DB relation '${op.name}': no driver registered for connection '${op.connection}' (pass it in ReadOptions.connections)`);
|
|
92
|
-
}
|
|
93
|
-
return d;
|
|
94
|
-
}
|
|
95
91
|
/** Read the non-enumerable batch context off a typed-object (undefined if spread/cloned away). */
|
|
96
92
|
function readRelationContext(o) {
|
|
97
93
|
const v = o[exports.RELATION_CONTEXT];
|
|
@@ -155,7 +151,7 @@ function buildResultSet(rawRows, ops, db, options = {}) {
|
|
|
155
151
|
return o;
|
|
156
152
|
});
|
|
157
153
|
// The shared lazy batch context (non-enumerable Symbol) — the whole page is the sibling set.
|
|
158
|
-
const ctx = new RelationContext(rows, ops, db, hydrate
|
|
154
|
+
const ctx = new RelationContext(rows, ops, db, hydrate);
|
|
159
155
|
for (const o of rows) {
|
|
160
156
|
Object.defineProperty(o, exports.RELATION_CONTEXT, {
|
|
161
157
|
value: ctx,
|
|
@@ -170,9 +166,7 @@ function buildResultSet(rawRows, ops, db, options = {}) {
|
|
|
170
166
|
const op = ops[name];
|
|
171
167
|
if (op === undefined)
|
|
172
168
|
throw new Error(`declarative select: relation '${name}' is not declared on this model`);
|
|
173
|
-
|
|
174
|
-
const relDb = op.connection === undefined ? db : driverForOp(op, options.connections);
|
|
175
|
-
const { batch } = (0, relation_1.runRelationOp)(op, rows, relDb);
|
|
169
|
+
const { batch } = (0, relation_1.runRelationOp)(op, rows, db);
|
|
176
170
|
for (const o of rows) {
|
|
177
171
|
o[name] = applyHydrate((0, relation_1.distributeToParent)(op, o, batch), hydrate);
|
|
178
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-object.js","sourceRoot":"","sources":["../../src/scp/typed-object.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;
|
|
1
|
+
{"version":3,"file":"typed-object.js","sourceRoot":"","sources":["../../src/scp/typed-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* litedbmodel v2 SCP — the
|
|
2
|
+
* litedbmodel v2 SCP — the BATCH write bundle surface (spec §8 / §13 / §14).
|
|
3
3
|
*
|
|
4
|
-
* A write
|
|
5
|
-
*
|
|
6
|
-
* is pure serializable JSON, so ALL FIVE
|
|
7
|
-
* per-statement tx loop.
|
|
4
|
+
* A batch write is ONE LOGICAL operation that produces N grouped SQL statements, compiled
|
|
5
|
+
* SYMBOLICALLY (no concrete input) to a {@link SqlBundle}: the first statement plus the gate-free
|
|
6
|
+
* {@link TransactionPlan} the tx runtime executes. The bundle is pure serializable JSON, so ALL FIVE
|
|
7
|
+
* language runtimes execute the SAME plan through the SAME per-statement tx loop.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* gate-free plan by `deriveBatchPlan`. The batch SQL is byte-copied from the v1 builders.
|
|
9
|
+
* `createMany` with a heterogeneous column-set groups records into one INSERT per group (mirroring
|
|
10
|
+
* `DBModel._insert`); `updateMany` is one UNNEST/JSON/CASE statement; `deleteMany` is a PK-set IN-list
|
|
11
|
+
* DELETE. The batch SQL is byte-copied from the v1 builders (`./makesql/compile-crud`), lowered into
|
|
12
|
+
* the plan by `deriveBatchPlan`. The callers are the decorator write path
|
|
13
|
+
* (`./decorator-adapter`'s `compileCreateBundle` / `compileUpdateBundle` / `compileDeleteBundle`),
|
|
14
|
+
* and the bundle is executed by `./dbmodel-runtime`'s `executeWriteAsync` → `executeTransactionAsync`.
|
|
16
15
|
*
|
|
17
|
-
* READS are NOT here.
|
|
18
|
-
* `
|
|
19
|
-
* `bind(leafHandlers(ctx))` (see `./leaves`).
|
|
16
|
+
* SINGLE-ROW writes are NOT here, and READS are NOT here. Both are declared on the
|
|
17
|
+
* `@behavior` / `@leaf` authoring surface and lowered by `bc generate` into a native module per
|
|
18
|
+
* language; the TS runtime seam for such a module is `bind(leafHandlers(ctx))` (see `./leaves`).
|
|
19
|
+
* There is no runtime read-compile and no runtime single-write compile.
|
|
20
20
|
*/
|
|
21
|
-
import type { Scope } from 'behavior-contracts/runtime';
|
|
22
|
-
import type { SqliteDriver } from './exec-context';
|
|
23
|
-
import { SqlFailure } from './errors';
|
|
24
21
|
import type { DialectName } from './dialect';
|
|
25
22
|
import type { ColumnTypeResolver } from './coltype';
|
|
26
|
-
import {
|
|
23
|
+
import { SqlFailure } from './errors';
|
|
24
|
+
import { type TxOp, type TransactionPlan } from './makesql/tx';
|
|
27
25
|
import { type InsertManyBuildOptions } from './makesql/compile-crud';
|
|
28
26
|
import type { UpdateManyBuildOptions } from '../drivers/types';
|
|
29
|
-
import { type EntityWritesDefinition, type LifecycleContract, type WriteLifecyclePhase } from './writes';
|
|
30
|
-
/** The minimal synchronous SQLite driver surface the write runtime needs (better-sqlite3 `Database`). */
|
|
31
|
-
export type SqliteDb = SqliteDriver;
|
|
32
|
-
/** Execute options for a bundle's transaction plan: the synchronous driver. */
|
|
33
|
-
export interface ExecuteOptions {
|
|
34
|
-
/** The synchronous SQLite driver (better-sqlite3 `Database`). */
|
|
35
|
-
readonly db: SqliteDb;
|
|
36
|
-
/** The target SQL dialect (spec §4/§10). Defaults to `'sqlite'` (the in-process runtime seam). */
|
|
37
|
-
readonly dialect?: DialectName;
|
|
38
|
-
}
|
|
39
27
|
/**
|
|
40
28
|
* The compiled write bundle of ONE logical operation (spec §8) — pure serializable JSON a thin
|
|
41
29
|
* per-language runtime can execute WITHOUT re-implementing litedbmodel's compile.
|
|
@@ -49,45 +37,16 @@ export interface SqlBundle {
|
|
|
49
37
|
readonly name: string;
|
|
50
38
|
/** The base-write statement template (the plan's first body statement). */
|
|
51
39
|
readonly statement: TxOp;
|
|
52
|
-
/** The derived
|
|
40
|
+
/** The derived, gate-free batch transaction plan. */
|
|
53
41
|
readonly transaction: TransactionPlan;
|
|
54
42
|
/**
|
|
55
43
|
* Codegen typed-de-box `outputType` (spec §4.1 / §9): the bc portable type of the write's
|
|
56
|
-
* {@link TransactionResult} (entity / returnedRows rows typed via the schema
|
|
57
|
-
* a column-type resolver was supplied at compile (additive: absent →
|
|
44
|
+
* {@link import('./makesql/tx').TransactionResult} (entity / returnedRows rows typed via the schema
|
|
45
|
+
* SoT). Present ONLY when a column-type resolver was supplied at compile (additive: absent →
|
|
46
|
+
* un-annotated).
|
|
58
47
|
*/
|
|
59
48
|
readonly outputType?: unknown;
|
|
60
49
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Compile a base write + its `entityWrites` save contract into a {@link SqlBundle} carrying the
|
|
63
|
-
* derived, gate-first write-time-relations {@link TransactionPlan} (spec §6/§8). `base` is the
|
|
64
|
-
* complete tuned write statement the `makesql` write compiler ({@link
|
|
65
|
-
* import('./makesql/tx').compileWriteNode}) emits; {@link deriveTransactionPlan} lowers the
|
|
66
|
-
* lifecycle's §6 effect arrays around it into the ordered statement list. Pure JSON; a per-language
|
|
67
|
-
* runtime honors the SAME plan.
|
|
68
|
-
*/
|
|
69
|
-
export declare function compileWriteBundle(name: string, base: TxOp, writes: EntityWritesDefinition, phase: WriteLifecyclePhase, dialectName?: DialectName, resolveColumnType?: ColumnTypeResolver): SqlBundle;
|
|
70
|
-
/**
|
|
71
|
-
* One member of a COMPOSITE (multi-write) Command (WS8a, #28 — spec §6 nested write / §14 tx-DAG):
|
|
72
|
-
* a named base write carrying its OWN save-contract `effects`. A later member references an earlier
|
|
73
|
-
* member's RETURNING row via `$.ref.<name>.<field>`.
|
|
74
|
-
*/
|
|
75
|
-
export interface CompositeWriteEntry {
|
|
76
|
-
/** The member name a later member references as `$.ref.<name>.<field>`. */
|
|
77
|
-
readonly name: string;
|
|
78
|
-
/** The member's complete tuned base write statement. */
|
|
79
|
-
readonly base: TxOp;
|
|
80
|
-
/** The member's own save-contract effects. */
|
|
81
|
-
readonly lifecycle: LifecycleContract;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Compile a COMPOSITE (multi-write) Command into a {@link SqlBundle} carrying ONE derived, gate-first,
|
|
85
|
-
* TOPOLOGICALLY-ORDERED transaction plan (spec §6 nested write / §14). Each entry contributes a named
|
|
86
|
-
* base write + its effects; a later member depends on an earlier via `$.ref.<name>.*`.
|
|
87
|
-
* {@link deriveTransactionPlan} builds the DAG + gate-first constraint and derives the ordered plan; a
|
|
88
|
-
* cycle / dangling ref is ESCALATED. Pure JSON.
|
|
89
|
-
*/
|
|
90
|
-
export declare function compileCompositeWriteBundle(entries: readonly CompositeWriteEntry[], phase: WriteLifecyclePhase, dialectName?: DialectName): SqlBundle;
|
|
91
50
|
/**
|
|
92
51
|
* Compile a `createMany` into a batch write {@link SqlBundle} carrying a gate-free
|
|
93
52
|
* {@link TransactionPlan}. Heterogeneous column-set groups become MULTIPLE ordered INSERT statements —
|
|
@@ -119,13 +78,5 @@ export declare function compileDeleteManyBundle(name: string, options: {
|
|
|
119
78
|
keys: Record<string, unknown>[];
|
|
120
79
|
returning?: string;
|
|
121
80
|
}, dialectName?: DialectName): SqlBundle;
|
|
122
|
-
/**
|
|
123
|
-
* Execute a {@link SqlBundle}'s derived transaction plan (spec §6/§8) as ONE real SQLite transaction.
|
|
124
|
-
* The SAME code path a thin per-language runtime follows: it consumes ONLY the serialized
|
|
125
|
-
* {@link TransactionPlan} (pure JSON) + a SQL driver, never re-deriving the plan.
|
|
126
|
-
*
|
|
127
|
-
* @throws {SqlFailure} on a driver failure (the transaction ROLLBACKs first).
|
|
128
|
-
*/
|
|
129
|
-
export declare function executeTransactionBundle(bundle: SqlBundle, input: Scope, options: ExecuteOptions): TransactionResult;
|
|
130
81
|
export { SqlFailure };
|
|
131
82
|
//# sourceMappingURL=write-bundle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-bundle.d.ts","sourceRoot":"","sources":["../../src/scp/write-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"write-bundle.d.ts","sourceRoot":"","sources":["../../src/scp/write-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAmB,KAAK,IAAI,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAQD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAAG;IAAE,EAAE,CAAC,EAAE;QAAE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,EACjG,WAAW,GAAE,WAAsB,EACnC,iBAAiB,CAAC,EAAE,kBAAkB,GACrC,SAAS,CAwBX;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,WAAW,GAAE,WAAsB,GAClC,SAAS,CAIX;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACzG,WAAW,GAAE,WAAsB,GAClC,SAAS,CAQX;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/scp/write-bundle.js
CHANGED
|
@@ -1,32 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* litedbmodel v2 SCP — the
|
|
3
|
+
* litedbmodel v2 SCP — the BATCH write bundle surface (spec §8 / §13 / §14).
|
|
4
4
|
*
|
|
5
|
-
* A write
|
|
6
|
-
*
|
|
7
|
-
* is pure serializable JSON, so ALL FIVE
|
|
8
|
-
* per-statement tx loop.
|
|
5
|
+
* A batch write is ONE LOGICAL operation that produces N grouped SQL statements, compiled
|
|
6
|
+
* SYMBOLICALLY (no concrete input) to a {@link SqlBundle}: the first statement plus the gate-free
|
|
7
|
+
* {@link TransactionPlan} the tx runtime executes. The bundle is pure serializable JSON, so ALL FIVE
|
|
8
|
+
* language runtimes execute the SAME plan through the SAME per-statement tx loop.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* gate-free plan by `deriveBatchPlan`. The batch SQL is byte-copied from the v1 builders.
|
|
10
|
+
* `createMany` with a heterogeneous column-set groups records into one INSERT per group (mirroring
|
|
11
|
+
* `DBModel._insert`); `updateMany` is one UNNEST/JSON/CASE statement; `deleteMany` is a PK-set IN-list
|
|
12
|
+
* DELETE. The batch SQL is byte-copied from the v1 builders (`./makesql/compile-crud`), lowered into
|
|
13
|
+
* the plan by `deriveBatchPlan`. The callers are the decorator write path
|
|
14
|
+
* (`./decorator-adapter`'s `compileCreateBundle` / `compileUpdateBundle` / `compileDeleteBundle`),
|
|
15
|
+
* and the bundle is executed by `./dbmodel-runtime`'s `executeWriteAsync` → `executeTransactionAsync`.
|
|
17
16
|
*
|
|
18
|
-
* READS are NOT here.
|
|
19
|
-
* `
|
|
20
|
-
* `bind(leafHandlers(ctx))` (see `./leaves`).
|
|
17
|
+
* SINGLE-ROW writes are NOT here, and READS are NOT here. Both are declared on the
|
|
18
|
+
* `@behavior` / `@leaf` authoring surface and lowered by `bc generate` into a native module per
|
|
19
|
+
* language; the TS runtime seam for such a module is `bind(leafHandlers(ctx))` (see `./leaves`).
|
|
20
|
+
* There is no runtime read-compile and no runtime single-write compile.
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.SqlFailure = void 0;
|
|
24
|
-
exports.compileWriteBundle = compileWriteBundle;
|
|
25
|
-
exports.compileCompositeWriteBundle = compileCompositeWriteBundle;
|
|
26
24
|
exports.compileCreateManyBundle = compileCreateManyBundle;
|
|
27
25
|
exports.compileUpdateManyBundle = compileUpdateManyBundle;
|
|
28
26
|
exports.compileDeleteManyBundle = compileDeleteManyBundle;
|
|
29
|
-
exports.executeTransactionBundle = executeTransactionBundle;
|
|
30
27
|
const errors_1 = require("./errors");
|
|
31
28
|
Object.defineProperty(exports, "SqlFailure", { enumerable: true, get: function () { return errors_1.SqlFailure; } });
|
|
32
29
|
const tx_1 = require("./makesql/tx");
|
|
@@ -34,57 +31,6 @@ const compile_crud_1 = require("./makesql/compile-crud");
|
|
|
34
31
|
const mysql_returning_1 = require("./makesql/mysql-returning");
|
|
35
32
|
const makesql_1 = require("./makesql/makesql");
|
|
36
33
|
const writeouttype_1 = require("./makesql/writeouttype");
|
|
37
|
-
const writes_1 = require("./writes");
|
|
38
|
-
/** Diagnostics label for a base write (its SQL verb). */
|
|
39
|
-
function writeLabelOf(sql) {
|
|
40
|
-
const m = /^\s*(INSERT|UPDATE|DELETE)/i.exec(sql);
|
|
41
|
-
return m === null ? 'Write' : m[1][0].toUpperCase() + m[1].slice(1).toLowerCase();
|
|
42
|
-
}
|
|
43
|
-
// ── Write-time relations: the Command bundle (WS5, #25 — spec §6) ──────────────
|
|
44
|
-
/**
|
|
45
|
-
* Compile a base write + its `entityWrites` save contract into a {@link SqlBundle} carrying the
|
|
46
|
-
* derived, gate-first write-time-relations {@link TransactionPlan} (spec §6/§8). `base` is the
|
|
47
|
-
* complete tuned write statement the `makesql` write compiler ({@link
|
|
48
|
-
* import('./makesql/tx').compileWriteNode}) emits; {@link deriveTransactionPlan} lowers the
|
|
49
|
-
* lifecycle's §6 effect arrays around it into the ordered statement list. Pure JSON; a per-language
|
|
50
|
-
* runtime honors the SAME plan.
|
|
51
|
-
*/
|
|
52
|
-
function compileWriteBundle(name, base, writes, phase, dialectName = 'sqlite', resolveColumnType) {
|
|
53
|
-
const lifecycle = (0, writes_1.lifecycleFor)(writes, phase);
|
|
54
|
-
if (lifecycle === undefined) {
|
|
55
|
-
throw new Error(`scp write: the '${phase}' lifecycle is not declared in the entityWrites save contract`);
|
|
56
|
-
}
|
|
57
|
-
const plan = (0, tx_1.deriveTransactionPlan)(phase, [{ op: base, label: writeLabelOf(base.sql) }], lifecycle, dialectName);
|
|
58
|
-
const bundle = { dialect: dialectName, name, statement: base, transaction: plan };
|
|
59
|
-
// Codegen typed de-box (spec §4.1/§9): when the schema/DDL column-type SoT is supplied, annotate the
|
|
60
|
-
// bundle with the TransactionResult `outputType` so the typed emitters materialize a concrete struct
|
|
61
|
-
// for the result. Fail-closed inside `annotateWriteBundleOutType`.
|
|
62
|
-
return resolveColumnType === undefined ? bundle : (0, writeouttype_1.annotateWriteBundleOutType)(bundle, resolveColumnType);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Compile a COMPOSITE (multi-write) Command into a {@link SqlBundle} carrying ONE derived, gate-first,
|
|
66
|
-
* TOPOLOGICALLY-ORDERED transaction plan (spec §6 nested write / §14). Each entry contributes a named
|
|
67
|
-
* base write + its effects; a later member depends on an earlier via `$.ref.<name>.*`.
|
|
68
|
-
* {@link deriveTransactionPlan} builds the DAG + gate-first constraint and derives the ordered plan; a
|
|
69
|
-
* cycle / dangling ref is ESCALATED. Pure JSON.
|
|
70
|
-
*/
|
|
71
|
-
function compileCompositeWriteBundle(entries, phase, dialectName = 'sqlite') {
|
|
72
|
-
if (entries.length < 2) {
|
|
73
|
-
throw new Error('scp write: a composite write bundle needs at least 2 named write members (use compileWriteBundle for a single write).');
|
|
74
|
-
}
|
|
75
|
-
const bases = entries.map((e) => ({ op: e.base, label: `${writeLabelOf(e.base.sql)} ${e.name}`, name: e.name, effects: e.lifecycle.effects }));
|
|
76
|
-
const plan = (0, tx_1.deriveTransactionPlan)(phase, bases, { effects: {} }, dialectName);
|
|
77
|
-
return { dialect: dialectName, name: entries[0].name, statement: entries[0].base, transaction: plan };
|
|
78
|
-
}
|
|
79
|
-
// ── Batch writes: createMany / updateMany / deleteMany ─────────────────────────
|
|
80
|
-
//
|
|
81
|
-
// A batch write is ONE LOGICAL operation that produces N grouped SQL statements (createMany with a
|
|
82
|
-
// heterogeneous column-set groups records into one INSERT per group, mirroring `DBModel._insert`;
|
|
83
|
-
// updateMany is one UNNEST/JSON/CASE statement; deleteMany is a PK-set IN-list DELETE). The batch
|
|
84
|
-
// compilers (`compileInsertMany`/`compileUpdateMany`/`compileDeleteMany`) copy the v1 builders
|
|
85
|
-
// byte-for-byte; here they are lowered into a gate-free {@link TransactionPlan} of body statements
|
|
86
|
-
// ({@link deriveBatchPlan}), so ALL FIVE runtimes execute the multi-statement batch through the SAME
|
|
87
|
-
// per-statement tx loop with no runtime change.
|
|
88
34
|
/** Flatten a batch compiler's `MakeSQL` component to a concrete `{ sql, params }` op. */
|
|
89
35
|
function flattenBatchOp(node, label) {
|
|
90
36
|
const assembled = (0, makesql_1.assembleMakeSQL)(node);
|
|
@@ -142,19 +88,9 @@ function compileDeleteManyBundle(name, options, dialectName = 'sqlite') {
|
|
|
142
88
|
const components = (0, compile_crud_1.compileDeleteMany)({ dialect: dialectName, ...options });
|
|
143
89
|
const ops = components.map((c, i) => flattenBatchOp(c, `deleteMany group ${i}`));
|
|
144
90
|
if (ops.length === 0) {
|
|
145
|
-
return { dialect: dialectName, name, statement: { sql: '', params: [] }, transaction: { phase: 'remove', entityFrom: null, statements: []
|
|
91
|
+
return { dialect: dialectName, name, statement: { sql: '', params: [] }, transaction: { phase: 'remove', entityFrom: null, statements: [] } };
|
|
146
92
|
}
|
|
147
93
|
const plan = (0, tx_1.deriveBatchPlan)('remove', ops);
|
|
148
94
|
return { dialect: dialectName, name, statement: { sql: ops[0].sql, params: ops[0].params }, transaction: plan };
|
|
149
95
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Execute a {@link SqlBundle}'s derived transaction plan (spec §6/§8) as ONE real SQLite transaction.
|
|
152
|
-
* The SAME code path a thin per-language runtime follows: it consumes ONLY the serialized
|
|
153
|
-
* {@link TransactionPlan} (pure JSON) + a SQL driver, never re-deriving the plan.
|
|
154
|
-
*
|
|
155
|
-
* @throws {SqlFailure} on a driver failure (the transaction ROLLBACKs first).
|
|
156
|
-
*/
|
|
157
|
-
function executeTransactionBundle(bundle, input, options) {
|
|
158
|
-
return (0, tx_1.executeTransaction)(options.db, bundle.transaction, input, bundle.dialect);
|
|
159
|
-
}
|
|
160
96
|
//# sourceMappingURL=write-bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-bundle.js","sourceRoot":"","sources":["../../src/scp/write-bundle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;
|
|
1
|
+
{"version":3,"file":"write-bundle.js","sourceRoot":"","sources":["../../src/scp/write-bundle.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -40,6 +40,18 @@ export interface ModelOptions {
|
|
|
40
40
|
updateTable?: string;
|
|
41
41
|
/** DEFAULT_GROUP: Returns Column(s) or string for default grouping */
|
|
42
42
|
group?: () => Column | Column[] | string;
|
|
43
|
+
/**
|
|
44
|
+
* CONNECTION: the NAME of the database this model lives in (multi-DB). Absent ⇒ the default
|
|
45
|
+
* connection. This is the SAME authority v1 gives the model — a v1 model picks its database by
|
|
46
|
+
* extending a `DBModel.createDBBase(config)` base class, whose handler owns the connection, and a
|
|
47
|
+
* relation is batch-loaded on the TARGET model's (`LazyRelation.ts:236`
|
|
48
|
+
* `TargetClass.getDriverType()`). Naming it makes that authority READABLE at emit time, which is
|
|
49
|
+
* what the codegen path needs: the emitter bakes the name onto every statement of every endpoint
|
|
50
|
+
* declared over this model, and onto the child fetch of every relation whose TARGET is this model,
|
|
51
|
+
* so a per-language runtime routes the statement to the pooled driver registered under it
|
|
52
|
+
* (`ConnectionRegistry`). Unregistered ⇒ LOUD, never a silent run against the wrong database.
|
|
53
|
+
*/
|
|
54
|
+
connection?: string;
|
|
43
55
|
}
|
|
44
56
|
/**
|
|
45
57
|
* Database connection configuration.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;CACrB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,SAAS,CAAC;IAExB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC;IAErB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|