litedbmodel 2.0.0 → 2.0.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.
Files changed (146) hide show
  1. package/dist/scp/authoring-sql.d.ts +78 -0
  2. package/dist/scp/authoring-sql.d.ts.map +1 -1
  3. package/dist/scp/authoring-sql.js +110 -2
  4. package/dist/scp/authoring-sql.js.map +1 -1
  5. package/dist/scp/catalog.d.ts +1 -1
  6. package/dist/scp/catalog.d.ts.map +1 -1
  7. package/dist/scp/catalog.js +27 -0
  8. package/dist/scp/catalog.js.map +1 -1
  9. package/dist/scp/codegen.d.ts +46 -82
  10. package/dist/scp/codegen.d.ts.map +1 -1
  11. package/dist/scp/codegen.js +37 -80
  12. package/dist/scp/codegen.js.map +1 -1
  13. package/dist/scp/find-filter-guard.d.ts +68 -0
  14. package/dist/scp/find-filter-guard.d.ts.map +1 -0
  15. package/dist/scp/find-filter-guard.js +88 -0
  16. package/dist/scp/find-filter-guard.js.map +1 -0
  17. package/dist/scp/fragment/assemble.d.ts +61 -0
  18. package/dist/scp/fragment/assemble.d.ts.map +1 -0
  19. package/dist/scp/fragment/assemble.js +148 -0
  20. package/dist/scp/fragment/assemble.js.map +1 -0
  21. package/dist/scp/fragment/compile-pg.d.ts +107 -0
  22. package/dist/scp/fragment/compile-pg.d.ts.map +1 -0
  23. package/dist/scp/fragment/compile-pg.js +142 -0
  24. package/dist/scp/fragment/compile-pg.js.map +1 -0
  25. package/dist/scp/fragment/index.d.ts +16 -0
  26. package/dist/scp/fragment/index.d.ts.map +1 -0
  27. package/dist/scp/fragment/index.js +34 -0
  28. package/dist/scp/fragment/index.js.map +1 -0
  29. package/dist/scp/fragment/model.d.ts +119 -0
  30. package/dist/scp/fragment/model.d.ts.map +1 -0
  31. package/dist/scp/fragment/model.js +66 -0
  32. package/dist/scp/fragment/model.js.map +1 -0
  33. package/dist/scp/fragment/pg-array-type.d.ts +13 -0
  34. package/dist/scp/fragment/pg-array-type.d.ts.map +1 -0
  35. package/dist/scp/fragment/pg-array-type.js +34 -0
  36. package/dist/scp/fragment/pg-array-type.js.map +1 -0
  37. package/dist/scp/guard.d.ts +2 -6
  38. package/dist/scp/guard.d.ts.map +1 -1
  39. package/dist/scp/guard.js +19 -22
  40. package/dist/scp/guard.js.map +1 -1
  41. package/dist/scp/index.cjs +11284 -3826
  42. package/dist/scp/index.d.ts +38 -23
  43. package/dist/scp/index.d.ts.map +1 -1
  44. package/dist/scp/index.js +119 -45
  45. package/dist/scp/index.js.map +1 -1
  46. package/dist/scp/index.mjs +4231 -1412
  47. package/dist/scp/makesql/authoring-compile.d.ts +90 -0
  48. package/dist/scp/makesql/authoring-compile.d.ts.map +1 -0
  49. package/dist/scp/makesql/authoring-compile.js +494 -0
  50. package/dist/scp/makesql/authoring-compile.js.map +1 -0
  51. package/dist/scp/makesql/compile-crud.d.ts +133 -0
  52. package/dist/scp/makesql/compile-crud.d.ts.map +1 -0
  53. package/dist/scp/makesql/compile-crud.js +288 -0
  54. package/dist/scp/makesql/compile-crud.js.map +1 -0
  55. package/dist/scp/makesql/compile-relation.d.ts +157 -0
  56. package/dist/scp/makesql/compile-relation.d.ts.map +1 -0
  57. package/dist/scp/makesql/compile-relation.js +425 -0
  58. package/dist/scp/makesql/compile-relation.js.map +1 -0
  59. package/dist/scp/makesql/compile-select.d.ts +45 -0
  60. package/dist/scp/makesql/compile-select.d.ts.map +1 -0
  61. package/dist/scp/makesql/compile-select.js +58 -0
  62. package/dist/scp/makesql/compile-select.js.map +1 -0
  63. package/dist/scp/makesql/compile.d.ts +63 -0
  64. package/dist/scp/makesql/compile.d.ts.map +1 -0
  65. package/dist/scp/makesql/compile.js +99 -0
  66. package/dist/scp/makesql/compile.js.map +1 -0
  67. package/dist/scp/makesql/handler.d.ts +58 -0
  68. package/dist/scp/makesql/handler.d.ts.map +1 -0
  69. package/dist/scp/makesql/handler.js +113 -0
  70. package/dist/scp/makesql/handler.js.map +1 -0
  71. package/dist/scp/makesql/index.d.ts +33 -0
  72. package/dist/scp/makesql/index.d.ts.map +1 -0
  73. package/dist/scp/makesql/index.js +114 -0
  74. package/dist/scp/makesql/index.js.map +1 -0
  75. package/dist/scp/makesql/ir.d.ts +42 -0
  76. package/dist/scp/makesql/ir.d.ts.map +1 -0
  77. package/dist/scp/makesql/ir.js +66 -0
  78. package/dist/scp/makesql/ir.js.map +1 -0
  79. package/dist/scp/makesql/json-array.d.ts +84 -0
  80. package/dist/scp/makesql/json-array.d.ts.map +1 -0
  81. package/dist/scp/makesql/json-array.js +118 -0
  82. package/dist/scp/makesql/json-array.js.map +1 -0
  83. package/dist/scp/makesql/json-batch.d.ts +102 -0
  84. package/dist/scp/makesql/json-batch.d.ts.map +1 -0
  85. package/dist/scp/makesql/json-batch.js +269 -0
  86. package/dist/scp/makesql/json-batch.js.map +1 -0
  87. package/dist/scp/makesql/makesql.d.ts +99 -0
  88. package/dist/scp/makesql/makesql.d.ts.map +1 -0
  89. package/dist/scp/makesql/makesql.js +122 -0
  90. package/dist/scp/makesql/makesql.js.map +1 -0
  91. package/dist/scp/makesql/pool-executor.d.ts +47 -0
  92. package/dist/scp/makesql/pool-executor.d.ts.map +1 -0
  93. package/dist/scp/makesql/pool-executor.js +50 -0
  94. package/dist/scp/makesql/pool-executor.js.map +1 -0
  95. package/dist/scp/makesql/static-bundle.d.ts +185 -0
  96. package/dist/scp/makesql/static-bundle.d.ts.map +1 -0
  97. package/dist/scp/makesql/static-bundle.js +1024 -0
  98. package/dist/scp/makesql/static-bundle.js.map +1 -0
  99. package/dist/scp/makesql/tx.d.ts +216 -0
  100. package/dist/scp/makesql/tx.d.ts.map +1 -0
  101. package/dist/scp/makesql/tx.js +743 -0
  102. package/dist/scp/makesql/tx.js.map +1 -0
  103. package/dist/scp/relation.d.ts +86 -74
  104. package/dist/scp/relation.d.ts.map +1 -1
  105. package/dist/scp/relation.js +186 -120
  106. package/dist/scp/relation.js.map +1 -1
  107. package/dist/scp/runtime.d.ts +146 -210
  108. package/dist/scp/runtime.d.ts.map +1 -1
  109. package/dist/scp/runtime.js +228 -512
  110. package/dist/scp/runtime.js.map +1 -1
  111. package/dist/scp/typed-object.d.ts +12 -1
  112. package/dist/scp/typed-object.d.ts.map +1 -1
  113. package/dist/scp/typed-object.js +25 -4
  114. package/dist/scp/typed-object.js.map +1 -1
  115. package/docs/proposal/v0-coverage-matrix.md +157 -0
  116. package/docs/proposal/v2-completeness-plan.md +90 -0
  117. package/docs/proposal/v2-sql-parity-checklist.md +162 -0
  118. package/package.json +3 -3
  119. package/dist/scp/bridge.d.ts +0 -64
  120. package/dist/scp/bridge.d.ts.map +0 -1
  121. package/dist/scp/bridge.js +0 -329
  122. package/dist/scp/bridge.js.map +0 -1
  123. package/dist/scp/compile-dialect.d.ts +0 -39
  124. package/dist/scp/compile-dialect.d.ts.map +0 -1
  125. package/dist/scp/compile-dialect.js +0 -62
  126. package/dist/scp/compile-dialect.js.map +0 -1
  127. package/dist/scp/compile-sqlite.d.ts +0 -114
  128. package/dist/scp/compile-sqlite.d.ts.map +0 -1
  129. package/dist/scp/compile-sqlite.js +0 -149
  130. package/dist/scp/compile-sqlite.js.map +0 -1
  131. package/dist/scp/ir.d.ts +0 -92
  132. package/dist/scp/ir.d.ts.map +0 -1
  133. package/dist/scp/ir.js +0 -28
  134. package/dist/scp/ir.js.map +0 -1
  135. package/dist/scp/render.d.ts +0 -40
  136. package/dist/scp/render.d.ts.map +0 -1
  137. package/dist/scp/render.js +0 -170
  138. package/dist/scp/render.js.map +0 -1
  139. package/dist/scp/write-plan.d.ts +0 -161
  140. package/dist/scp/write-plan.d.ts.map +0 -1
  141. package/dist/scp/write-plan.js +0 -528
  142. package/dist/scp/write-plan.js.map +0 -1
  143. package/dist/scp/write-runtime.d.ts +0 -80
  144. package/dist/scp/write-runtime.d.ts.map +0 -1
  145. package/dist/scp/write-runtime.js +0 -167
  146. package/dist/scp/write-runtime.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/scp/makesql/tx.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,36 @@
1
1
  /**
2
- * litedbmodel v2 SCP — Relation ops (Read) + staged batch resolution (WS4, #24).
2
+ * litedbmodel v2 SCP — Read relations: pre-compiled batch op + staged batch resolution (WS4,
3
+ * #24; makeSQL re-expression, epic #43/#45 Phase B).
3
4
  *
4
- * Relations are NOT SQL JOINs by default (spec §5). They are the same
5
- * staged-batch query-composition + object-assembly shape graphddb and v1 `LazyRelation`
6
- * use: collect the parent key set of a result page, run ONE batched child SELECT
7
- * (`fk IN (…)` / per-parent-limited `ROW_NUMBER()` window), then distribute the child rows
8
- * back to their parents. This makes a relation load structurally bounded — one batched
9
- * query per relation edge, NEVER one-per-parent (no N+1).
5
+ * Relations are NOT SQL JOINs by default (spec §5). They are the staged-batch
6
+ * query-composition + object-assembly shape v1's `LazyRelation` uses: collect the parent key
7
+ * set of a result page, run ONE batched child SELECT keyed by the deduped parent keys, then
8
+ * distribute the child rows back to their parents. One batched query per relation edge, NEVER
9
+ * one-per-parent (no N+1).
10
10
  *
11
- * ## The relation op is a pre-compiled artifact (spec §8)
11
+ * ## The relation op is a STATIC makeSQL artifact (design #45)
12
12
  *
13
- * A {@link RelationOp} is compiled ONCE from a model {@link RelationDecl}, dialect-aware
14
- * (SQLite for α), into the SAME {@link CompiledOperation} shape WS1 already emits for a
15
- * Select — so it renders through the SAME normative {@link renderOperation} (fragment tree
16
- * + IN-list `(?, ?, …)` expansion, spec §5). It carries NO functions and lands in the §8
17
- * bundle (`SqlBundle.relations`) as pure JSON, so a thin per-language runtime (WS7) gets
18
- * the relation batch SQL for free. The v1 `LazyRelation` batch-SQL assets (IN-list, the
19
- * `ROW_NUMBER() OVER (PARTITION BY … )` per-parent limit) are reused here as the compiled
20
- * content, not re-invented.
13
+ * A {@link RelationOp} is compiled ONCE from a model {@link RelationDecl} into a STATIC
14
+ * `makeSQL` batch SELECT via the makeSQL relation builders (`./makesql/compile-relation`) —
15
+ * byte-identical to the ORIGINAL `LazyRelation` SQL for PostgreSQL (`= ANY(?::type[])`,
16
+ * `CROSS JOIN LATERAL`, `UNNEST`), and the single-JSON-param server-side form for MySQL/SQLite
17
+ * (`json_each` / `JSON_TABLE`). The deduped key array binds as ONE param with STATIC text (no
18
+ * placeholder-count expansion), so `op.sql` is fixed and value-independent — pure JSON, lands
19
+ * in the bundle, a per-language runtime executes it directly. The REDUCED
20
+ * `CompiledOperation`/`renderOperation`/`IN (?)`-expansion forms are GONE.
21
21
  *
22
- * ## ONE relation op, TWO surfaces (spec §5 / feasibility §9)
22
+ * ## ONE relation op, TWO surfaces (spec §5)
23
23
  *
24
- * Both read surfaces trigger the IDENTICAL compiled {@link RelationOp} via
25
- * {@link runRelationOp} — there is exactly one batch-execution code path:
26
- *
27
- * - **Declarative select** (`with: { author: true }`): the planner resolves sibling
28
- * relations eagerly, dedups the parent key set, prefetch-optimized (staged batch).
29
- * - **Lazy** (`await post.author`): a prototype getter + a non-enumerable Symbol batch
30
- * context (graphddb's `GRAPHDDB_KEY` technique) fires the SAME op at access time over
31
- * the whole sibling set (batch, so still no N+1 — it just can't prefetch).
32
- *
33
- * `runRelationOp` renders `op.query` once for the deduped parent key set and returns the
34
- * child rows grouped by parent key. Both surfaces call it; a test asserts they resolve via
35
- * the same compiled op (same SQL text), not two parallel code paths.
24
+ * Both read surfaces trigger the IDENTICAL compiled op via {@link runRelationOp}:
25
+ * - **Declarative select** (`with: { author: true }`): batch-prefetched over the page.
26
+ * - **Lazy** (`await post.author`): a prototype getter fires the SAME op over the sibling set.
36
27
  */
37
- import type { CompiledOperation } from './ir';
28
+ import { type Dialect } from './makesql/handler';
38
29
  /** A read relation cardinality (v1 parity). `belongsTo`/`hasOne` are single; `hasMany` many. */
39
30
  export type RelationKind = 'belongsTo' | 'hasMany' | 'hasOne';
40
31
  /**
41
32
  * A model's read-relation declaration (the authored/decorated relation metadata, spec §4).
42
- * This is the litedbmodel-consumer input the relation compiler lowers to a {@link RelationOp}.
43
- * It mirrors v1's `@belongsTo`/`@hasMany`/`@hasOne` config (source/target key + optional
33
+ * Mirrors v1's `@belongsTo`/`@hasMany`/`@hasOne` config (source/target key + optional
44
34
  * per-parent order/limit), reduced to the fields the batch SQL needs.
45
35
  */
46
36
  export interface RelationDecl {
@@ -52,54 +42,77 @@ export interface RelationDecl {
52
42
  readonly targetTable: string;
53
43
  /** Child columns to project (the child typed-object own props). */
54
44
  readonly select: readonly string[];
45
+ /** The PARENT column whose value is the batch key (single-key relations). */
46
+ readonly parentKey?: string;
47
+ /** The CHILD column matched against the parent key (single-key relations). */
48
+ readonly targetKey?: string;
55
49
  /**
56
- * The PARENT column whose value is the batch key (e.g. `belongsTo` → the parent FK
57
- * `author_id`; `hasMany`/`hasOne` → the parent PK `id`).
50
+ * COMPOSITE-key relations (#47 item 1): the ORDERED parent columns whose tuple is the batch key.
51
+ * Mutually exclusive with {@link parentKey}. Pairs positionally with {@link targetKeys}.
58
52
  */
59
- readonly parentKey: string;
60
- /**
61
- * The CHILD column matched against the parent key (e.g. `belongsTo` → child PK `id`;
62
- * `hasMany`/`hasOne` → child FK `post_id`).
63
- */
64
- readonly targetKey: string;
65
- /** Optional per-parent ORDER BY body (dialect-neutral text, e.g. `"created_at DESC"`). */
53
+ readonly parentKeys?: readonly string[];
54
+ /** COMPOSITE-key relations: the ORDERED child columns matched against the parent-key tuple. */
55
+ readonly targetKeys?: readonly string[];
56
+ /** Optional per-parent ORDER BY body (dialect-neutral text). */
66
57
  readonly order?: string;
58
+ /** Optional per-parent row limit (`hasMany` only). */
59
+ readonly limit?: number;
60
+ /** The target SQL dialect the batch SELECT is compiled for (default `'sqlite'`). */
61
+ readonly dialect?: Dialect;
67
62
  /**
68
- * Optional per-parent row limit (`hasMany` only). When set, the batch query uses a
69
- * `ROW_NUMBER() OVER (PARTITION BY <targetKey> ORDER BY <order>)` window so each parent
70
- * gets at most `limit` children in ONE query (v1's SQLite `batchLoadWithRowNumber`).
63
+ * CROSS-DB relations (V0 R1): the NAME of the connection the batch SELECT must execute against —
64
+ * the TARGET model's DB, which may differ from the parent's (v1 `LazyRelation.ts:236` runs a
65
+ * relation on `TargetClass.getDriverType()`'s driver/connection). Absent ⇒ the parent's own
66
+ * connection (the same-DB default). The SQL is v1-identical either way; the tag only ROUTES the
67
+ * statement — a per-language runtime with a connection registry picks the pooled driver by name.
71
68
  */
72
- readonly limit?: number;
69
+ readonly connection?: string;
73
70
  }
74
71
  /**
75
- * A pre-compiled relation batch op (spec §8 `relation ops`). Pure JSON — it carries the
76
- * compiled batch SELECT ({@link CompiledOperation}, rendered by {@link renderOperation})
77
- * plus the grouping metadata the runtime needs to distribute child rows to parents. No
78
- * functions, so it round-trips through `JSON.stringify` inside the bundle.
72
+ * A pre-compiled relation batch op (spec §8). Pure JSON — it carries the STATIC batch SELECT
73
+ * `sql` (makeSQL text with ONE `?` for the deduped-key array param) plus the grouping metadata
74
+ * the runtime needs to distribute child rows to parents. No functions, no reduced IR.
79
75
  */
80
76
  export interface RelationOp {
81
77
  readonly name: string;
82
78
  readonly kind: RelationKind;
83
- /** Parent column supplying the batch key values (dedup key). */
84
- readonly parentKey: string;
85
- /** Child column the batch groups rows by (matches the parent key). */
86
- readonly targetKey: string;
79
+ /** Parent column supplying the batch key values (dedup key) — single-key relations. */
80
+ readonly parentKey?: string;
81
+ /** Child column the batch groups rows by (matches the parent key) — single-key relations. */
82
+ readonly targetKey?: string;
83
+ /**
84
+ * COMPOSITE-key relations (#47 item 1): the ORDERED parent columns whose tuple is the dedup key.
85
+ * Present iff the op is composite (mutually exclusive with {@link parentKey}).
86
+ */
87
+ readonly parentKeys?: readonly string[];
88
+ /** COMPOSITE-key relations: the ORDERED child columns the batch groups rows by (the key tuple). */
89
+ readonly targetKeys?: readonly string[];
90
+ /** The target SQL dialect the batch SELECT text is compiled for. */
91
+ readonly dialect: Dialect;
92
+ /**
93
+ * CROSS-DB relations (V0 R1): the connection NAME the batch executes against (the target model's
94
+ * DB). Present ONLY when it differs from the parent's connection (a same-DB relation omits it).
95
+ * A per-language runtime routes the statement to the pooled driver of this name; the SQL text and
96
+ * `dialect`-driven placeholder/bind are already correct for the target (v1 `LazyRelation` parity).
97
+ */
98
+ readonly connection?: string;
87
99
  /**
88
- * The batched child SELECT as a {@link CompiledOperation}. Its WHERE is a single IN-list
89
- * fragment `targetKey IN (?)` whose one slot binds the deduped parent-key array and
90
- * expands to `(?, ?, …)` at render time (spec §5). A `limit` decl compiles to a
91
- * `ROW_NUMBER()` window CTE instead (per-parent limit).
100
+ * The batched child SELECT as STATIC makeSQL text. Single-key: ONE `?` binds the deduped
101
+ * parent-key set (PG `= ANY(?::t[])` / MySQL·SQLite single-JSON). Composite: PG binds ONE array
102
+ * param PER key column (`unnest(?::t1[], ?::t2[])`); MySQL·SQLite bind ONE JSON array-of-tuples
103
+ * param. Value-length-independent either way, so `sql` is fixed.
92
104
  */
93
- readonly query: CompiledOperation;
105
+ readonly sql: string;
94
106
  }
95
107
  /** The reserved input head the relation batch query binds its deduped key array to. */
96
108
  export declare const RELATION_KEYS_HEAD = "__keys";
97
109
  /**
98
- * Compile ONE {@link RelationDecl} into a {@link RelationOp} for SQLite (α dialect). The
99
- * batch query selects the child rows whose {@link RelationDecl.targetKey} is in the deduped
100
- * parent-key set. Reuses the existing IN-list fragment + `renderOperation` expansion (no new
101
- * SQL machinery). A `hasMany` with `limit` compiles to the v1 `ROW_NUMBER()` window form so
102
- * the per-parent cap holds in a single batched statement.
110
+ * Compile ONE {@link RelationDecl} into a STATIC {@link RelationOp} via the makeSQL relation
111
+ * builders. The batch query selects the child rows whose {@link RelationDecl.targetKey} is in
112
+ * the deduped parent-key set. PG stays byte-identical to v1's `LazyRelation`; MySQL/SQLite use
113
+ * the single-JSON-param server-side form. A `hasMany` with `limit` compiles to the per-parent
114
+ * LATERAL (PG) / ROW_NUMBER (MySQL·SQLite) form. The SQL text is FIXED (the array binds as one
115
+ * param regardless of length), so it needs no per-input recompile.
103
116
  */
104
117
  export declare function compileRelationOp(decl: RelationDecl): RelationOp;
105
118
  /** A minimal read-only driver surface (`prepare(sql).all(...params)`), the SQLite `Database`. */
@@ -111,26 +124,25 @@ export interface RelationDriver {
111
124
  /** The child rows grouped for a batch: parent-key value (stringified) → child rows. */
112
125
  export type RelationBatch = Map<string, Record<string, unknown>[]>;
113
126
  /**
114
- * Run ONE {@link RelationOp} for a set of parent rows: dedup the parent keys, render + execute
115
- * the batched child SELECT ONCE (real SQLite), and group the child rows by their target key.
116
- * This is the single batch primitive BOTH the declarative-select and the lazy surface invoke —
117
- * proving the "same relation op" invariant structurally (there is no second path).
127
+ * Run ONE {@link RelationOp} for a set of parent rows: dedup the parent-key tuples, render the
128
+ * STATIC batch SELECT once (dialect placeholder form) resolving the deferred PG array cast(s) from
129
+ * the REAL keys, execute it with the keys bound (single array / per-column arrays / JSON tuples),
130
+ * then group the child rows by their target-key identity. The single batch primitive BOTH the
131
+ * declarative-select and the lazy surface invoke, single-key AND composite.
118
132
  *
119
- * Returns `{ sql, keys, batch }`: the rendered SQL (so a caller can assert both surfaces
120
- * produced the same text), the deduped keys bound, and the grouping. When there are no
121
- * non-null parent keys the query is NOT issued (an empty batch, matching v1) — this is not a
122
- * fallback default, it is the correct empty-set behavior (an IN over no keys selects nothing).
133
+ * Returns `{ sql, keys, batch }` (`keys` = the deduped parent-key tuples). An empty key set issues
134
+ * NO query (the correct empty-set behavior — the membership over no keys selects nothing).
123
135
  */
124
136
  export declare function runRelationOp(op: RelationOp, parents: readonly Record<string, unknown>[], db: RelationDriver): {
125
137
  sql: string;
126
- keys: unknown[];
138
+ keys: unknown[][];
127
139
  batch: RelationBatch;
128
140
  };
129
141
  /**
130
142
  * Distribute a resolved {@link RelationBatch} onto ONE parent per the relation cardinality:
131
143
  * `hasMany` → the child list (`[]` when none); `belongsTo`/`hasOne` → the single child (or
132
- * `null`). `null`/`undefined` is the correct absence value (an unresolved single relation),
133
- * NOT an ad-hoc default — it is the declared cardinality's empty representation.
144
+ * `null`). Keyed by the parent's key-tuple identity. `null`/`[]` is the declared cardinality's
145
+ * empty representation, not an ad-hoc default.
134
146
  */
135
147
  export declare function distributeToParent(op: RelationOp, parent: Record<string, unknown>, batch: RelationBatch): Record<string, unknown>[] | Record<string, unknown> | null;
136
148
  //# sourceMappingURL=relation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/scp/relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAoC,MAAM,MAAM,CAAC;AAGhF,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAYhE;AAuED,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;KAAE,CAAC;CAChE;AAED,uFAAuF;AACvF,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,EAAE,EAAE,cAAc,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAmBxD;AAiBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAK5D"}
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/scp/relation.ts"],"names":[],"mappings":"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"}