turbine-orm 0.81.0 → 0.90.0
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 +26 -25
- package/dist/checkout.d.ts +27 -2
- package/dist/checkout.js +75 -4
- package/dist/cjs/checkout.d.ts +27 -2
- package/dist/cjs/checkout.js +76 -3
- package/dist/cjs/cli/code-first-tags.d.ts +62 -0
- package/dist/cjs/cli/code-first-tags.js +124 -0
- package/dist/cjs/cli/compile-query.js +9 -0
- package/dist/cjs/cli/config.d.ts +35 -6
- package/dist/cjs/cli/config.js +17 -1
- package/dist/cjs/cli/destructive.d.ts +7 -4
- package/dist/cjs/cli/destructive.js +224 -20
- package/dist/cjs/cli/error-catalog.js +36 -0
- package/dist/cjs/cli/error-text.d.ts +15 -0
- package/dist/cjs/cli/error-text.js +40 -0
- package/dist/cjs/cli/index.d.ts +62 -4
- package/dist/cjs/cli/index.js +568 -108
- package/dist/cjs/cli/local-server-guard.d.ts +53 -0
- package/dist/cjs/cli/local-server-guard.js +119 -0
- package/dist/cjs/cli/local-server-output.d.ts +41 -0
- package/dist/cjs/cli/local-server-output.js +103 -0
- package/dist/cjs/cli/mcp.d.ts +8 -0
- package/dist/cjs/cli/mcp.js +121 -32
- package/dist/cjs/cli/migrate.d.ts +113 -5
- package/dist/cjs/cli/migrate.js +270 -21
- package/dist/cjs/cli/observe.d.ts +6 -1
- package/dist/cjs/cli/observe.js +85 -55
- package/dist/cjs/cli/pii-predicate-guard.d.ts +43 -23
- package/dist/cjs/cli/pii-predicate-guard.js +98 -37
- package/dist/cjs/cli/prisma-resolve.js +17 -13
- package/dist/cjs/cli/prisma-schema.js +12 -4
- package/dist/cjs/cli/studio-ui.generated.js +1 -1
- package/dist/cjs/cli/studio.d.ts +14 -2
- package/dist/cjs/cli/studio.js +244 -69
- package/dist/cjs/cli/ui.d.ts +1 -1
- package/dist/cjs/client.d.ts +558 -85
- package/dist/cjs/client.js +1270 -395
- package/dist/cjs/connection-guard.d.ts +13 -0
- package/dist/cjs/connection-guard.js +28 -0
- package/dist/cjs/connection-url.d.ts +51 -16
- package/dist/cjs/connection-url.js +67 -34
- package/dist/cjs/diagnostics.d.ts +81 -0
- package/dist/cjs/diagnostics.js +147 -0
- package/dist/cjs/dialect.d.ts +449 -20
- package/dist/cjs/dialect.js +117 -76
- package/dist/cjs/engine-config.d.ts +7 -6
- package/dist/cjs/errors.d.ts +126 -6
- package/dist/cjs/errors.js +256 -13
- package/dist/cjs/generate.d.ts +57 -7
- package/dist/cjs/generate.js +635 -279
- package/dist/cjs/global-filters-config.d.ts +59 -0
- package/dist/cjs/global-filters-config.js +367 -0
- package/dist/cjs/index.d.ts +9 -4
- package/dist/cjs/index.js +10 -2
- package/dist/cjs/introspect.d.ts +31 -6
- package/dist/cjs/introspect.js +108 -50
- package/dist/cjs/log-codes.d.ts +12 -0
- package/dist/cjs/log-codes.js +77 -0
- package/dist/cjs/logger.d.ts +87 -0
- package/dist/cjs/logger.js +98 -0
- package/dist/cjs/mssql.d.ts +8 -5
- package/dist/cjs/mssql.js +352 -65
- package/dist/cjs/mysql.d.ts +3 -5
- package/dist/cjs/mysql.js +420 -70
- package/dist/cjs/nested-write.d.ts +3 -0
- package/dist/cjs/nested-write.js +179 -114
- package/dist/cjs/pipeline-submittable.d.ts +12 -0
- package/dist/cjs/pipeline-submittable.js +118 -44
- package/dist/cjs/pipeline.js +21 -26
- package/dist/cjs/powdb-introspect.d.ts +5 -2
- package/dist/cjs/powdb-introspect.js +20 -15
- package/dist/cjs/powdb-shared.d.ts +36 -5
- package/dist/cjs/powdb-shared.js +67 -8
- package/dist/cjs/powdb.d.ts +4 -0
- package/dist/cjs/powdb.js +183 -51
- package/dist/cjs/powql.d.ts +394 -51
- package/dist/cjs/powql.js +1829 -284
- package/dist/cjs/prisma-compat.d.ts +23 -15
- package/dist/cjs/prisma-compat.js +507 -372
- package/dist/cjs/query/aggregates.d.ts +17 -1
- package/dist/cjs/query/aggregates.js +261 -29
- package/dist/cjs/query/batched-loader.d.ts +25 -6
- package/dist/cjs/query/batched-loader.js +103 -20
- package/dist/cjs/query/builder.d.ts +325 -184
- package/dist/cjs/query/builder.js +1452 -490
- package/dist/cjs/query/column-ref.d.ts +61 -0
- package/dist/cjs/query/column-ref.js +73 -0
- package/dist/cjs/query/compound-unique.d.ts +21 -0
- package/dist/cjs/query/compound-unique.js +98 -18
- package/dist/cjs/query/deferred.d.ts +53 -16
- package/dist/cjs/query/expr.d.ts +217 -0
- package/dist/cjs/query/expr.js +859 -0
- package/dist/cjs/query/filters.d.ts +155 -53
- package/dist/cjs/query/filters.js +613 -76
- package/dist/cjs/query/index.d.ts +2 -0
- package/dist/cjs/query/index.js +7 -1
- package/dist/cjs/query/json-value.d.ts +43 -0
- package/dist/cjs/query/json-value.js +59 -0
- package/dist/cjs/query/normalize-args.d.ts +87 -0
- package/dist/cjs/query/normalize-args.js +527 -0
- package/dist/cjs/query/option-surface.d.ts +16 -4
- package/dist/cjs/query/option-surface.js +57 -14
- package/dist/cjs/query/relation-names.d.ts +14 -0
- package/dist/cjs/query/relation-names.js +77 -18
- package/dist/cjs/query/relations.d.ts +30 -3
- package/dist/cjs/query/relations.js +219 -63
- package/dist/cjs/query/row-lock.d.ts +49 -0
- package/dist/cjs/query/row-lock.js +138 -0
- package/dist/cjs/query/sql-comment.d.ts +161 -0
- package/dist/cjs/query/sql-comment.js +381 -0
- package/dist/cjs/query/stream-idle.d.ts +132 -0
- package/dist/cjs/query/stream-idle.js +212 -0
- package/dist/cjs/query/table-client.d.ts +101 -0
- package/dist/cjs/query/table-client.js +74 -0
- package/dist/cjs/query/types.d.ts +677 -298
- package/dist/cjs/query/utils.d.ts +105 -6
- package/dist/cjs/query/utils.js +426 -19
- package/dist/cjs/query/warn-registry.d.ts +18 -0
- package/dist/cjs/query/warn-registry.js +18 -0
- package/dist/cjs/query/where-compile.d.ts +138 -14
- package/dist/cjs/query/where-compile.js +513 -29
- package/dist/cjs/query/where.d.ts +159 -59
- package/dist/cjs/query/where.js +716 -246
- package/dist/cjs/query/writes.d.ts +112 -50
- package/dist/cjs/query/writes.js +1498 -200
- package/dist/cjs/query-events.d.ts +4 -2
- package/dist/cjs/query-events.js +3 -1
- package/dist/cjs/realtime.d.ts +7 -3
- package/dist/cjs/realtime.js +13 -2
- package/dist/cjs/schema-builder.d.ts +55 -4
- package/dist/cjs/schema-builder.js +382 -18
- package/dist/cjs/schema-metadata.d.ts +21 -1
- package/dist/cjs/schema-metadata.js +29 -7
- package/dist/cjs/schema-sql.d.ts +75 -5
- package/dist/cjs/schema-sql.js +497 -45
- package/dist/cjs/schema.d.ts +26 -5
- package/dist/cjs/schema.js +110 -13
- package/dist/cjs/sql-placeholders.d.ts +56 -0
- package/dist/cjs/sql-placeholders.js +204 -0
- package/dist/cjs/sqlite.d.ts +75 -20
- package/dist/cjs/sqlite.js +593 -95
- package/dist/cjs/supplied-pool-types.d.ts +48 -0
- package/dist/cjs/supplied-pool-types.js +256 -0
- package/dist/cjs/transaction-control.d.ts +51 -0
- package/dist/cjs/transaction-control.js +316 -0
- package/dist/cjs/transaction-state.d.ts +342 -0
- package/dist/cjs/transaction-state.js +707 -0
- package/dist/cjs/typed-sql.d.ts +37 -3
- package/dist/cjs/typed-sql.js +102 -8
- package/dist/cli/code-first-tags.d.ts +62 -0
- package/dist/cli/code-first-tags.js +120 -0
- package/dist/cli/compile-query.js +9 -0
- package/dist/cli/config.d.ts +35 -6
- package/dist/cli/config.js +16 -1
- package/dist/cli/destructive.d.ts +7 -4
- package/dist/cli/destructive.js +224 -20
- package/dist/cli/error-catalog.js +36 -0
- package/dist/cli/error-text.d.ts +15 -0
- package/dist/cli/error-text.js +37 -0
- package/dist/cli/index.d.ts +62 -4
- package/dist/cli/index.js +569 -112
- package/dist/cli/local-server-guard.d.ts +53 -0
- package/dist/cli/local-server-guard.js +113 -0
- package/dist/cli/local-server-output.d.ts +41 -0
- package/dist/cli/local-server-output.js +98 -0
- package/dist/cli/mcp.d.ts +8 -0
- package/dist/cli/mcp.js +121 -34
- package/dist/cli/migrate.d.ts +113 -5
- package/dist/cli/migrate.js +261 -21
- package/dist/cli/observe.d.ts +6 -1
- package/dist/cli/observe.js +84 -54
- package/dist/cli/pii-predicate-guard.d.ts +43 -23
- package/dist/cli/pii-predicate-guard.js +100 -35
- package/dist/cli/prisma-resolve.js +15 -11
- package/dist/cli/prisma-schema.js +12 -4
- package/dist/cli/studio-ui.generated.js +1 -1
- package/dist/cli/studio.d.ts +14 -2
- package/dist/cli/studio.js +246 -71
- package/dist/cli/ui.d.ts +1 -1
- package/dist/client.d.ts +558 -85
- package/dist/client.js +1275 -400
- package/dist/connection-guard.d.ts +13 -0
- package/dist/connection-guard.js +27 -0
- package/dist/connection-url.d.ts +51 -16
- package/dist/connection-url.js +63 -34
- package/dist/diagnostics.d.ts +81 -0
- package/dist/diagnostics.js +144 -0
- package/dist/dialect.d.ts +449 -20
- package/dist/dialect.js +115 -43
- package/dist/engine-config.d.ts +7 -6
- package/dist/errors.d.ts +126 -6
- package/dist/errors.js +252 -12
- package/dist/generate.d.ts +57 -7
- package/dist/generate.js +635 -281
- package/dist/global-filters-config.d.ts +59 -0
- package/dist/global-filters-config.js +361 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.js +4 -2
- package/dist/introspect.d.ts +31 -6
- package/dist/introspect.js +106 -50
- package/dist/log-codes.d.ts +12 -0
- package/dist/log-codes.js +74 -0
- package/dist/logger.d.ts +87 -0
- package/dist/logger.js +93 -0
- package/dist/mssql.d.ts +8 -5
- package/dist/mssql.js +354 -67
- package/dist/mysql.d.ts +3 -5
- package/dist/mysql.js +423 -73
- package/dist/nested-write.d.ts +3 -0
- package/dist/nested-write.js +177 -112
- package/dist/pipeline-submittable.d.ts +12 -0
- package/dist/pipeline-submittable.js +117 -44
- package/dist/pipeline.js +21 -26
- package/dist/powdb-introspect.d.ts +5 -2
- package/dist/powdb-introspect.js +21 -16
- package/dist/powdb-shared.d.ts +36 -5
- package/dist/powdb-shared.js +65 -8
- package/dist/powdb.d.ts +4 -0
- package/dist/powdb.js +183 -51
- package/dist/powql.d.ts +394 -51
- package/dist/powql.js +1836 -291
- package/dist/prisma-compat.d.ts +23 -15
- package/dist/prisma-compat.js +508 -373
- package/dist/query/aggregates.d.ts +17 -1
- package/dist/query/aggregates.js +263 -32
- package/dist/query/batched-loader.d.ts +25 -6
- package/dist/query/batched-loader.js +101 -21
- package/dist/query/builder.d.ts +325 -184
- package/dist/query/builder.js +1458 -495
- package/dist/query/column-ref.d.ts +61 -0
- package/dist/query/column-ref.js +66 -0
- package/dist/query/compound-unique.d.ts +21 -0
- package/dist/query/compound-unique.js +97 -19
- package/dist/query/deferred.d.ts +53 -16
- package/dist/query/expr.d.ts +217 -0
- package/dist/query/expr.js +848 -0
- package/dist/query/filters.d.ts +155 -53
- package/dist/query/filters.js +597 -72
- package/dist/query/index.d.ts +2 -0
- package/dist/query/index.js +4 -0
- package/dist/query/json-value.d.ts +43 -0
- package/dist/query/json-value.js +54 -0
- package/dist/query/normalize-args.d.ts +87 -0
- package/dist/query/normalize-args.js +517 -0
- package/dist/query/option-surface.d.ts +16 -4
- package/dist/query/option-surface.js +56 -13
- package/dist/query/relation-names.d.ts +14 -0
- package/dist/query/relation-names.js +77 -19
- package/dist/query/relations.d.ts +30 -3
- package/dist/query/relations.js +220 -67
- package/dist/query/row-lock.d.ts +49 -0
- package/dist/query/row-lock.js +131 -0
- package/dist/query/sql-comment.d.ts +161 -0
- package/dist/query/sql-comment.js +374 -0
- package/dist/query/stream-idle.d.ts +132 -0
- package/dist/query/stream-idle.js +203 -0
- package/dist/query/table-client.d.ts +101 -0
- package/dist/query/table-client.js +70 -0
- package/dist/query/types.d.ts +677 -298
- package/dist/query/utils.d.ts +105 -6
- package/dist/query/utils.js +414 -18
- package/dist/query/warn-registry.d.ts +18 -0
- package/dist/query/warn-registry.js +18 -0
- package/dist/query/where-compile.d.ts +138 -14
- package/dist/query/where-compile.js +508 -31
- package/dist/query/where.d.ts +159 -59
- package/dist/query/where.js +711 -248
- package/dist/query/writes.d.ts +112 -50
- package/dist/query/writes.js +1496 -202
- package/dist/query-events.d.ts +4 -2
- package/dist/query-events.js +3 -1
- package/dist/realtime.d.ts +7 -3
- package/dist/realtime.js +13 -2
- package/dist/schema-builder.d.ts +55 -4
- package/dist/schema-builder.js +381 -18
- package/dist/schema-metadata.d.ts +21 -1
- package/dist/schema-metadata.js +28 -7
- package/dist/schema-sql.d.ts +75 -5
- package/dist/schema-sql.js +494 -44
- package/dist/schema.d.ts +26 -5
- package/dist/schema.js +109 -13
- package/dist/sql-placeholders.d.ts +56 -0
- package/dist/sql-placeholders.js +200 -0
- package/dist/sqlite.d.ts +75 -20
- package/dist/sqlite.js +597 -99
- package/dist/supplied-pool-types.d.ts +48 -0
- package/dist/supplied-pool-types.js +247 -0
- package/dist/transaction-control.d.ts +51 -0
- package/dist/transaction-control.js +311 -0
- package/dist/transaction-state.d.ts +342 -0
- package/dist/transaction-state.js +696 -0
- package/dist/typed-sql.d.ts +37 -3
- package/dist/typed-sql.js +100 -8
- package/package.json +7 -4
- package/skills/turbine-orm/SKILL.md +56 -6
package/dist/cjs/schema-sql.d.ts
CHANGED
|
@@ -106,6 +106,42 @@ export interface DiffResult {
|
|
|
106
106
|
* removal/reorder, etc.). Never executed, surfaced for the operator.
|
|
107
107
|
*/
|
|
108
108
|
warnings?: string[];
|
|
109
|
+
/**
|
|
110
|
+
* The members of `warnings` the diff cannot decide are real. Postgres rewrites
|
|
111
|
+
* a CHECK expression when it stores it, so a named check whose text differs
|
|
112
|
+
* from the schema's is usually the same constraint. They are printed like any
|
|
113
|
+
* other warning, but {@link driftWarnings} leaves them out, so a gate does not
|
|
114
|
+
* fail forever on a database that was just pushed.
|
|
115
|
+
*/
|
|
116
|
+
inexactWarnings?: string[];
|
|
117
|
+
/**
|
|
118
|
+
* Type changes in `statements` that can never lose a value (see
|
|
119
|
+
* {@link isLosslessWidening}). The destructive gate skips exactly these
|
|
120
|
+
* statements; every other `ALTER COLUMN ... TYPE` is still flagged.
|
|
121
|
+
*/
|
|
122
|
+
widenings?: TypeWidening[];
|
|
123
|
+
/**
|
|
124
|
+
* Parts of the database this diff did NOT compare, as sentences. "Already in
|
|
125
|
+
* sync" is only a claim about what was compared, so a caller that says it
|
|
126
|
+
* lists these beside it.
|
|
127
|
+
*/
|
|
128
|
+
notCompared?: string[];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The warnings in a diff that report a real difference between the database and
|
|
132
|
+
* the schema file: everything in `warnings` except the entries the diff marked
|
|
133
|
+
* as possibly cosmetic ({@link DiffResult.inexactWarnings}). `push --dry-run
|
|
134
|
+
* --exit-code` fails on these.
|
|
135
|
+
*/
|
|
136
|
+
export declare function driftWarnings(diff: Pick<DiffResult, 'warnings' | 'inexactWarnings'>): string[];
|
|
137
|
+
/** One lossless `ALTER COLUMN ... TYPE` in a {@link DiffResult}. */
|
|
138
|
+
export interface TypeWidening {
|
|
139
|
+
/** The exact statement, as it appears in `DiffResult.statements`. */
|
|
140
|
+
statement: string;
|
|
141
|
+
/** The column's current type, as SQL. */
|
|
142
|
+
from: string;
|
|
143
|
+
/** The type the statement changes it to, as SQL. */
|
|
144
|
+
to: string;
|
|
109
145
|
}
|
|
110
146
|
/** A FK's current referential actions as read from the DB. */
|
|
111
147
|
export interface DbForeignKey {
|
|
@@ -133,10 +169,18 @@ export declare function diffReferentialAction(table: string, db: DbForeignKey, s
|
|
|
133
169
|
reverseStatements: string[];
|
|
134
170
|
} | null;
|
|
135
171
|
/**
|
|
136
|
-
* Compute
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
172
|
+
* Compute the enum changes needed to make the database's labels match the
|
|
173
|
+
* schema's, KEEPING THE DECLARED ORDER.
|
|
174
|
+
*
|
|
175
|
+
* An enum's order is observable: it decides `ORDER BY`, `<` and `MIN`/`MAX` on
|
|
176
|
+
* the column. A new label therefore goes where the schema declares it, not
|
|
177
|
+
* wherever the end of the type happens to be: `ADD VALUE 'x' AFTER 'prev'`, or
|
|
178
|
+
* `BEFORE 'next'` when it leads. A label that belongs at the end emits the bare
|
|
179
|
+
* `ADD VALUE`, which is what every earlier version emitted for it.
|
|
180
|
+
*
|
|
181
|
+
* Postgres cannot remove or reorder values in place, so a database label the
|
|
182
|
+
* schema dropped, and a declared order the database does not already have, are
|
|
183
|
+
* warnings (never statements): the type has to be recreated by hand.
|
|
140
184
|
*/
|
|
141
185
|
export declare function diffEnumValues(enumName: string, schemaLabels: readonly string[], dbLabels: readonly string[], dialect?: Dialect): {
|
|
142
186
|
statements: string[];
|
|
@@ -195,6 +239,11 @@ export interface SchemaDiffOptions {
|
|
|
195
239
|
* computes what DDL is needed to make the database match the schema definition.
|
|
196
240
|
*/
|
|
197
241
|
export declare function schemaDiff(schema: SchemaDef, connectionString: string, options?: SchemaDiffOptions): Promise<DiffResult>;
|
|
242
|
+
/**
|
|
243
|
+
* What {@link schemaDiff} never looks at, whatever the database holds. Kept
|
|
244
|
+
* beside the diff so the sentence cannot outlive the code it describes.
|
|
245
|
+
*/
|
|
246
|
+
export declare const NEVER_COMPARED: string;
|
|
198
247
|
/** The type-relevant subset of {@link DbColumn}, so {@link planTypeChange} stays testable. */
|
|
199
248
|
export interface DbColumnType {
|
|
200
249
|
udtName: string;
|
|
@@ -258,6 +307,27 @@ export type TypeChangePlan = {
|
|
|
258
307
|
* constraint the schema never had the vocabulary to ask for.
|
|
259
308
|
*/
|
|
260
309
|
export declare function planTypeChange(config: ColumnConfig, dbCol: DbColumnType, column: string): TypeChangePlan;
|
|
310
|
+
/**
|
|
311
|
+
* True when changing a column from `from` to `to` can never lose, round,
|
|
312
|
+
* truncate or reject a value: every value of the old type is representable
|
|
313
|
+
* unchanged in the new one. The vocabulary is deliberately small, and anything
|
|
314
|
+
* outside it answers false (the destructive gate then treats the statement as
|
|
315
|
+
* it always has):
|
|
316
|
+
*
|
|
317
|
+
* - `varchar(n)` to `varchar(m)` with m >= n, to bare `varchar`, to `text`
|
|
318
|
+
* - `smallint` to `integer` to `bigint`
|
|
319
|
+
* - any integer type to `numeric`, or to `numeric(p, s)` when it still holds
|
|
320
|
+
* the integer's digits
|
|
321
|
+
* - `numeric(p, s)` to a numeric with at least as many integer digits and at
|
|
322
|
+
* least as many decimal places (a bare `numeric` has no bound)
|
|
323
|
+
* - arrays of the above, element by element
|
|
324
|
+
*
|
|
325
|
+
* Not a widening, on purpose: `text` to `varchar(n)`, anything to a smaller
|
|
326
|
+
* type, `timestamp` to `timestamptz` (re-reads the value in the session zone),
|
|
327
|
+
* `real` to `double precision` (the stored digits change when printed), and
|
|
328
|
+
* `json` to `jsonb` (drops duplicate keys).
|
|
329
|
+
*/
|
|
330
|
+
export declare function isLosslessWidening(from: string, to: string): boolean;
|
|
261
331
|
/**
|
|
262
332
|
* Scan a set of diff statements for data-destroying operations, using the same
|
|
263
333
|
* conservative scanner (`scanDestructiveSql`) that gates `migrate up`/`down`.
|
|
@@ -265,7 +335,7 @@ export declare function planTypeChange(config: ColumnConfig, dbCol: DbColumnType
|
|
|
265
335
|
* `ALTER COLUMN ... TYPE` cast, exactly the kind of silent data loss `push`
|
|
266
336
|
* must never apply without an explicit opt-in.
|
|
267
337
|
*/
|
|
268
|
-
export declare function findDestructivePushStatements(statements: readonly string[]): DestructiveStatement[];
|
|
338
|
+
export declare function findDestructivePushStatements(statements: readonly string[], widenings?: readonly TypeWidening[]): DestructiveStatement[];
|
|
269
339
|
export interface PushResult {
|
|
270
340
|
/** Number of statements executed */
|
|
271
341
|
statementsExecuted: number;
|