@atscript/db 0.1.150 → 0.1.152
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/dist/agg.d.cts +1 -1
- package/dist/agg.d.mts +1 -1
- package/dist/{buckets-XOz0Bw5x.d.mts → buckets-Cb0zmhDc.d.mts} +38 -1
- package/dist/{buckets-24Ac4sIS.d.cts → buckets-tzd8iIM2.d.cts} +38 -1
- package/dist/{column-diff-CKKBVDvx.cjs → column-diff-CU7KHj9-.cjs} +270 -79
- package/dist/{column-diff-CKLDWBbo.mjs → column-diff-CnyLjbQ8.mjs} +270 -79
- package/dist/{fk-diff-CCLiJ9sJ.d.cts → fk-diff-Bw26lwSc.d.cts} +8 -1
- package/dist/{fk-diff-R8eU7gq-.d.mts → fk-diff-lcAnwvm9.d.mts} +8 -1
- package/dist/index.cjs +24 -2
- package/dist/index.d.cts +15 -16
- package/dist/index.d.mts +15 -16
- package/dist/index.mjs +24 -2
- package/dist/{nested-writer-BUQvk6QT.cjs → nested-writer-BzbOPSUp.cjs} +129 -7
- package/dist/{nested-writer-CUBoq1ZO.mjs → nested-writer-cvbVAkNo.mjs} +124 -8
- package/dist/rel.cjs +2 -2
- package/dist/rel.d.cts +2 -2
- package/dist/rel.d.mts +2 -2
- package/dist/rel.mjs +2 -2
- package/dist/{relation-helpers-DjVJN2ng.d.cts → relation-helpers-Bdo4NHPC.d.mts} +1 -1
- package/dist/{relation-helpers-H7UEVkHs.d.mts → relation-helpers-DxIZKvnJ.d.cts} +1 -1
- package/dist/{relation-loader-ByY1Byrl.mjs → relation-loader-DYab07lw.mjs} +1 -1
- package/dist/{relation-loader-D8OrdH-r.cjs → relation-loader-fNjHgBMs.cjs} +1 -1
- package/dist/sync.cjs +1 -1
- package/dist/sync.d.cts +2 -2
- package/dist/sync.d.mts +2 -2
- package/dist/sync.mjs +1 -1
- package/package.json +8 -8
package/dist/agg.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { r as TResolvedBucket } from "./buckets-
|
|
1
|
+
import { r as TResolvedBucket } from "./buckets-tzd8iIM2.cjs";
|
|
2
2
|
import { _ as TDbAggregateFn, a as AggregateResult, c as CalendarBucketLabel, d as WeekStart, f as isAggregateExpr, h as resolveAlias, i as AggregateQuery, l as ComputedExpr, m as resolveAggregateSearch, n as AggregateExpr, o as BucketExpr, p as isBucketExpr, r as AggregateFn, s as BucketUnit, t as AggregateControls, u as ResolvedBucket, v as assertAggregateFn } from "./agg-42CSpGDR.cjs";
|
|
3
3
|
export { type AggregateControls, type AggregateExpr, type AggregateFn, type AggregateQuery, type AggregateResult, type BucketExpr, type BucketUnit, type CalendarBucketLabel, type ComputedExpr, type ResolvedBucket, type TDbAggregateFn, type TResolvedBucket, type WeekStart, assertAggregateFn, isAggregateExpr, isBucketExpr, resolveAggregateSearch, resolveAlias };
|
package/dist/agg.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { r as TResolvedBucket } from "./buckets-
|
|
1
|
+
import { r as TResolvedBucket } from "./buckets-Cb0zmhDc.mjs";
|
|
2
2
|
import { _ as TDbAggregateFn, a as AggregateResult, c as CalendarBucketLabel, d as WeekStart, f as isAggregateExpr, h as resolveAlias, i as AggregateQuery, l as ComputedExpr, m as resolveAggregateSearch, n as AggregateExpr, o as BucketExpr, p as isBucketExpr, r as AggregateFn, s as BucketUnit, t as AggregateControls, u as ResolvedBucket, v as assertAggregateFn } from "./agg-Wo-smrYV.mjs";
|
|
3
3
|
export { type AggregateControls, type AggregateExpr, type AggregateFn, type AggregateQuery, type AggregateResult, type BucketExpr, type BucketUnit, type CalendarBucketLabel, type ComputedExpr, type ResolvedBucket, type TDbAggregateFn, type TResolvedBucket, type WeekStart, assertAggregateFn, isAggregateExpr, isBucketExpr, resolveAggregateSearch, resolveAlias };
|
|
@@ -707,6 +707,8 @@ declare class AtscriptDbReadable<T extends TAtscriptAnnotatedType = TAtscriptAnn
|
|
|
707
707
|
* @since 0.1.148
|
|
708
708
|
*/
|
|
709
709
|
get uniqueKeySets(): string[][];
|
|
710
|
+
private _uniqueKeySets?;
|
|
711
|
+
private _computeUniqueKeySets;
|
|
710
712
|
/** Preferred row identifier field names. Defaults to primary keys. */
|
|
711
713
|
get preferredId(): readonly string[];
|
|
712
714
|
/** Legitimate row-identifier shapes (primary key + every unique index). */
|
|
@@ -1201,7 +1203,12 @@ type TCascadePin = FilterExpr[] | undefined;
|
|
|
1201
1203
|
declare abstract class IntegrityStrategy {
|
|
1202
1204
|
abstract validateForeignKeys(items: Array<Record<string, unknown>>, meta: TableMetadata, fkLookupResolver: TFkLookupResolver | undefined, writeTableResolver: TWriteTableResolver | undefined, partial?: boolean, excludeTargetTable?: string): Promise<void>;
|
|
1203
1205
|
abstract cascadeBeforeDelete(filter: FilterExpr, tableName: string, meta: TableMetadata, cascadeResolver: TCascadeResolver, translateFilter: (f: FilterExpr) => FilterExpr, adapter: BaseDbAdapter): Promise<TCascadePin>;
|
|
1204
|
-
|
|
1206
|
+
/**
|
|
1207
|
+
* Whether a delete must run the application-level cascade pass. `tableName`
|
|
1208
|
+
* (optional, since 0.1.151) lets the strategy answer `false` for a table
|
|
1209
|
+
* nothing references.
|
|
1210
|
+
*/
|
|
1211
|
+
abstract needsCascade(cascadeResolver: TCascadeResolver | undefined, tableName?: string): boolean;
|
|
1205
1212
|
}
|
|
1206
1213
|
/**
|
|
1207
1214
|
* Integrity strategy for adapters with native FK support (e.g. SQLite, MySQL).
|
|
@@ -1396,6 +1403,21 @@ declare class AtscriptDbTable<T extends TAtscriptAnnotatedType = TAtscriptAnnota
|
|
|
1396
1403
|
* parent, so the write never touches a child of another parent.
|
|
1397
1404
|
*/
|
|
1398
1405
|
private _rowFilters;
|
|
1406
|
+
/**
|
|
1407
|
+
* Whether a `*One` / `bulk*` write of `payloads` is a single statement that
|
|
1408
|
+
* needs no wrapping transaction (since 0.1.151): one root-level row, no
|
|
1409
|
+
* `guard` / `check` (their reads and the write must share one snapshot),
|
|
1410
|
+
* no nested navigation data (multi-table phases), and FK integrity enforced
|
|
1411
|
+
* by the database (application-level FK checks read before writing). The
|
|
1412
|
+
* write then calls the adapter outside any transaction of its own — one
|
|
1413
|
+
* `insertMany([row])` / `replaceOne` / `updateOne` / `nativePatch`, or a
|
|
1414
|
+
* read-only `count` for an empty patch; the array-operator read-modify-write
|
|
1415
|
+
* still opens a transaction for its pair. Adapters may rely on it: a
|
|
1416
|
+
* single-row `insertMany` reached this way runs outside a transaction.
|
|
1417
|
+
*/
|
|
1418
|
+
private _isSingleStatementWrite;
|
|
1419
|
+
/** Runs a write body inside the adapter transaction — or directly for a single-statement write. */
|
|
1420
|
+
private _inWriteTransaction;
|
|
1399
1421
|
/** Whether `filter` names every primary-key field (so it IS the row's exact key). */
|
|
1400
1422
|
private _isPkFilter;
|
|
1401
1423
|
/**
|
|
@@ -1465,6 +1487,13 @@ declare class AtscriptDbTable<T extends TAtscriptAnnotatedType = TAtscriptAnnota
|
|
|
1465
1487
|
* engine's own default applies. The version column is never touched.
|
|
1466
1488
|
*/
|
|
1467
1489
|
protected _applyDefaults(data: Record<string, unknown>): Record<string, unknown>;
|
|
1490
|
+
/**
|
|
1491
|
+
* Parsed `@db.default 'literal'` values that are primitives — reused for
|
|
1492
|
+
* every row (an object / array default is parsed per row: each row gets
|
|
1493
|
+
* its own instance).
|
|
1494
|
+
*/
|
|
1495
|
+
private _primitiveDefaults?;
|
|
1496
|
+
private _valueDefault;
|
|
1468
1497
|
/**
|
|
1469
1498
|
* The JS value for a `@db.default 'literal'`: strings (including unions of
|
|
1470
1499
|
* string literals) are used as-is, every other design type is parsed as
|
|
@@ -1858,6 +1887,12 @@ declare class DbSpace implements AsyncDisposable {
|
|
|
1858
1887
|
private _readables;
|
|
1859
1888
|
/** All tables created in this space — used for reverse FK lookup during cascade. */
|
|
1860
1889
|
private _allTables;
|
|
1890
|
+
/**
|
|
1891
|
+
* Per-table-name memo of {@link _getCascadeTargets} / {@link _getFkLookupTarget}
|
|
1892
|
+
* (since 0.1.151) — both scan every table; cleared whenever a table is added.
|
|
1893
|
+
*/
|
|
1894
|
+
private _cascadeTargets;
|
|
1895
|
+
private _fkLookupTargets;
|
|
1861
1896
|
/** Every table / view handle the space created — flagged closed on {@link close}. */
|
|
1862
1897
|
private _handles;
|
|
1863
1898
|
/** Lazily created adapter for administrative ops (drop table/view) that don't need a registered readable. */
|
|
@@ -1952,11 +1987,13 @@ declare class DbSpace implements AsyncDisposable {
|
|
|
1952
1987
|
* Accesses `table.foreignKeys` which triggers `_flatten()` if needed.
|
|
1953
1988
|
*/
|
|
1954
1989
|
private _getCascadeTargets;
|
|
1990
|
+
private _scanCascadeTargets;
|
|
1955
1991
|
/**
|
|
1956
1992
|
* Resolves a table name to a queryable target for FK validation.
|
|
1957
1993
|
* Searches all registered tables for one with the matching table name.
|
|
1958
1994
|
*/
|
|
1959
1995
|
private _getFkLookupTarget;
|
|
1996
|
+
private _scanFkLookupTarget;
|
|
1960
1997
|
}
|
|
1961
1998
|
//#endregion
|
|
1962
1999
|
//#region src/base-adapter.d.ts
|
|
@@ -707,6 +707,8 @@ declare class AtscriptDbReadable<T extends TAtscriptAnnotatedType = TAtscriptAnn
|
|
|
707
707
|
* @since 0.1.148
|
|
708
708
|
*/
|
|
709
709
|
get uniqueKeySets(): string[][];
|
|
710
|
+
private _uniqueKeySets?;
|
|
711
|
+
private _computeUniqueKeySets;
|
|
710
712
|
/** Preferred row identifier field names. Defaults to primary keys. */
|
|
711
713
|
get preferredId(): readonly string[];
|
|
712
714
|
/** Legitimate row-identifier shapes (primary key + every unique index). */
|
|
@@ -1201,7 +1203,12 @@ type TCascadePin = FilterExpr[] | undefined;
|
|
|
1201
1203
|
declare abstract class IntegrityStrategy {
|
|
1202
1204
|
abstract validateForeignKeys(items: Array<Record<string, unknown>>, meta: TableMetadata, fkLookupResolver: TFkLookupResolver | undefined, writeTableResolver: TWriteTableResolver | undefined, partial?: boolean, excludeTargetTable?: string): Promise<void>;
|
|
1203
1205
|
abstract cascadeBeforeDelete(filter: FilterExpr, tableName: string, meta: TableMetadata, cascadeResolver: TCascadeResolver, translateFilter: (f: FilterExpr) => FilterExpr, adapter: BaseDbAdapter): Promise<TCascadePin>;
|
|
1204
|
-
|
|
1206
|
+
/**
|
|
1207
|
+
* Whether a delete must run the application-level cascade pass. `tableName`
|
|
1208
|
+
* (optional, since 0.1.151) lets the strategy answer `false` for a table
|
|
1209
|
+
* nothing references.
|
|
1210
|
+
*/
|
|
1211
|
+
abstract needsCascade(cascadeResolver: TCascadeResolver | undefined, tableName?: string): boolean;
|
|
1205
1212
|
}
|
|
1206
1213
|
/**
|
|
1207
1214
|
* Integrity strategy for adapters with native FK support (e.g. SQLite, MySQL).
|
|
@@ -1396,6 +1403,21 @@ declare class AtscriptDbTable<T extends TAtscriptAnnotatedType = TAtscriptAnnota
|
|
|
1396
1403
|
* parent, so the write never touches a child of another parent.
|
|
1397
1404
|
*/
|
|
1398
1405
|
private _rowFilters;
|
|
1406
|
+
/**
|
|
1407
|
+
* Whether a `*One` / `bulk*` write of `payloads` is a single statement that
|
|
1408
|
+
* needs no wrapping transaction (since 0.1.151): one root-level row, no
|
|
1409
|
+
* `guard` / `check` (their reads and the write must share one snapshot),
|
|
1410
|
+
* no nested navigation data (multi-table phases), and FK integrity enforced
|
|
1411
|
+
* by the database (application-level FK checks read before writing). The
|
|
1412
|
+
* write then calls the adapter outside any transaction of its own — one
|
|
1413
|
+
* `insertMany([row])` / `replaceOne` / `updateOne` / `nativePatch`, or a
|
|
1414
|
+
* read-only `count` for an empty patch; the array-operator read-modify-write
|
|
1415
|
+
* still opens a transaction for its pair. Adapters may rely on it: a
|
|
1416
|
+
* single-row `insertMany` reached this way runs outside a transaction.
|
|
1417
|
+
*/
|
|
1418
|
+
private _isSingleStatementWrite;
|
|
1419
|
+
/** Runs a write body inside the adapter transaction — or directly for a single-statement write. */
|
|
1420
|
+
private _inWriteTransaction;
|
|
1399
1421
|
/** Whether `filter` names every primary-key field (so it IS the row's exact key). */
|
|
1400
1422
|
private _isPkFilter;
|
|
1401
1423
|
/**
|
|
@@ -1465,6 +1487,13 @@ declare class AtscriptDbTable<T extends TAtscriptAnnotatedType = TAtscriptAnnota
|
|
|
1465
1487
|
* engine's own default applies. The version column is never touched.
|
|
1466
1488
|
*/
|
|
1467
1489
|
protected _applyDefaults(data: Record<string, unknown>): Record<string, unknown>;
|
|
1490
|
+
/**
|
|
1491
|
+
* Parsed `@db.default 'literal'` values that are primitives — reused for
|
|
1492
|
+
* every row (an object / array default is parsed per row: each row gets
|
|
1493
|
+
* its own instance).
|
|
1494
|
+
*/
|
|
1495
|
+
private _primitiveDefaults?;
|
|
1496
|
+
private _valueDefault;
|
|
1468
1497
|
/**
|
|
1469
1498
|
* The JS value for a `@db.default 'literal'`: strings (including unions of
|
|
1470
1499
|
* string literals) are used as-is, every other design type is parsed as
|
|
@@ -1858,6 +1887,12 @@ declare class DbSpace implements AsyncDisposable {
|
|
|
1858
1887
|
private _readables;
|
|
1859
1888
|
/** All tables created in this space — used for reverse FK lookup during cascade. */
|
|
1860
1889
|
private _allTables;
|
|
1890
|
+
/**
|
|
1891
|
+
* Per-table-name memo of {@link _getCascadeTargets} / {@link _getFkLookupTarget}
|
|
1892
|
+
* (since 0.1.151) — both scan every table; cleared whenever a table is added.
|
|
1893
|
+
*/
|
|
1894
|
+
private _cascadeTargets;
|
|
1895
|
+
private _fkLookupTargets;
|
|
1861
1896
|
/** Every table / view handle the space created — flagged closed on {@link close}. */
|
|
1862
1897
|
private _handles;
|
|
1863
1898
|
/** Lazily created adapter for administrative ops (drop table/view) that don't need a registered readable. */
|
|
@@ -1952,11 +1987,13 @@ declare class DbSpace implements AsyncDisposable {
|
|
|
1952
1987
|
* Accesses `table.foreignKeys` which triggers `_flatten()` if needed.
|
|
1953
1988
|
*/
|
|
1954
1989
|
private _getCascadeTargets;
|
|
1990
|
+
private _scanCascadeTargets;
|
|
1955
1991
|
/**
|
|
1956
1992
|
* Resolves a table name to a queryable target for FK validation.
|
|
1957
1993
|
* Searches all registered tables for one with the matching table name.
|
|
1958
1994
|
*/
|
|
1959
1995
|
private _getFkLookupTarget;
|
|
1996
|
+
private _scanFkLookupTarget;
|
|
1960
1997
|
}
|
|
1961
1998
|
//#endregion
|
|
1962
1999
|
//#region src/base-adapter.d.ts
|