@vibeorm/sql 2.0.2 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast.d.ts +54 -7
- package/dist/ast.d.ts.map +1 -1
- package/dist/codecs.d.ts +2 -3
- package/dist/codecs.d.ts.map +1 -1
- package/dist/composable.d.ts +70 -0
- package/dist/composable.d.ts.map +1 -0
- package/dist/dialect.d.ts +82 -6
- package/dist/dialect.d.ts.map +1 -1
- package/dist/dialects/constraint-owned-index.d.ts +9 -0
- package/dist/dialects/constraint-owned-index.d.ts.map +1 -0
- package/dist/dialects/migration-history.d.ts +8 -0
- package/dist/dialects/migration-history.d.ts.map +1 -0
- package/dist/dialects/migration-inventory.d.ts +24 -0
- package/dist/dialects/migration-inventory.d.ts.map +1 -0
- package/dist/dialects/migration-objects.d.ts +37 -0
- package/dist/dialects/migration-objects.d.ts.map +1 -0
- package/dist/dialects/migration-visibility.d.ts +8 -0
- package/dist/dialects/migration-visibility.d.ts.map +1 -0
- package/dist/dialects/mysql-check-probe.d.ts +16 -0
- package/dist/dialects/mysql-check-probe.d.ts.map +1 -0
- package/dist/dialects/mysql.d.ts.map +1 -1
- package/dist/dialects/postgres-rls-readiness.d.ts +3 -0
- package/dist/dialects/postgres-rls-readiness.d.ts.map +1 -1
- package/dist/dialects/postgres.d.ts.map +1 -1
- package/dist/dialects/sqlite-constraints.d.ts +16 -0
- package/dist/dialects/sqlite-constraints.d.ts.map +1 -0
- package/dist/dialects/sqlite-table-definition.d.ts +19 -0
- package/dist/dialects/sqlite-table-definition.d.ts.map +1 -0
- package/dist/dialects/sqlite.d.ts.map +1 -1
- package/dist/exclusion.d.ts +32 -0
- package/dist/exclusion.d.ts.map +1 -0
- package/dist/index.d.ts +21 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1590 -408
- package/dist/index.js.map +26 -13
- package/dist/locks.d.ts +57 -0
- package/dist/locks.d.ts.map +1 -0
- package/dist/predicate.d.ts +53 -0
- package/dist/predicate.d.ts.map +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/result-decoder.d.ts +49 -0
- package/dist/result-decoder.d.ts.map +1 -0
- package/package.json +2 -2
package/dist/locks.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lock SQL: the row-locking clause appended to a SELECT, and the
|
|
3
|
+
* transaction-scoped advisory-lock statement.
|
|
4
|
+
*
|
|
5
|
+
* Both are pure text decisions, so both live here rather than in the runtime —
|
|
6
|
+
* and both REFUSE rather than degrade. A dialect that cannot express a strength
|
|
7
|
+
* or a wait policy has no text for it (`SqlDialect.rowLockSyntax`), and the
|
|
8
|
+
* refusal is a `VIBE_UNSUPPORTED_CAPABILITY`, never a weaker clause: silently
|
|
9
|
+
* turning `skipLocked` into a blocking read hands two workers the same job.
|
|
10
|
+
*/
|
|
11
|
+
import type { AdvisoryLockStatement, RowLock } from "./ast.ts";
|
|
12
|
+
import type { SqlDialect } from "./dialect.ts";
|
|
13
|
+
import type { ParamCollector } from "./params.ts";
|
|
14
|
+
import type { RenderedQuery } from "./render.ts";
|
|
15
|
+
/** How a lock request reads in a refusal message (`FOR UPDATE SKIP LOCKED`). */
|
|
16
|
+
export declare function describeRowLock(params: {
|
|
17
|
+
lock: RowLock;
|
|
18
|
+
}): string;
|
|
19
|
+
/**
|
|
20
|
+
* The clause for one row lock, or `null` when this dialect has NO locking-read
|
|
21
|
+
* clause at all and the request is the historical `FOR UPDATE` no-op.
|
|
22
|
+
*
|
|
23
|
+
* sqlite is that case: it has no clause, and its write transactions are
|
|
24
|
+
* mutually exclusive, so `lock: "update"` there is a documented no-op kept for
|
|
25
|
+
* compatibility. Anything else on such a dialect — a different strength, or a
|
|
26
|
+
* wait policy that changes behaviour — is refused by the caller BEFORE this
|
|
27
|
+
* point (the query builder), and refused again here as a backstop.
|
|
28
|
+
*/
|
|
29
|
+
export declare function renderRowLockClause(params: {
|
|
30
|
+
dialect: SqlDialect;
|
|
31
|
+
lock: RowLock;
|
|
32
|
+
}): string | null;
|
|
33
|
+
/** Largest/smallest value each advisory key part may carry, per PostgreSQL's types. */
|
|
34
|
+
export declare const ADVISORY_KEY_BOUNDS: {
|
|
35
|
+
readonly single: {
|
|
36
|
+
readonly min: bigint;
|
|
37
|
+
readonly max: bigint;
|
|
38
|
+
};
|
|
39
|
+
readonly pair: {
|
|
40
|
+
readonly min: number;
|
|
41
|
+
readonly max: number;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* `SELECT pg_advisory_xact_lock($1::bigint)` and friends.
|
|
46
|
+
*
|
|
47
|
+
* The key binds as TEXT with an explicit cast: PostgreSQL overloads these
|
|
48
|
+
* functions on `(bigint)` and `(int4, int4)`, and an OID-typed driver resolves
|
|
49
|
+
* a bound parameter's type itself — the trap `jsonParamCast` already exists for.
|
|
50
|
+
* Casting in the SQL makes every driver send the same bytes.
|
|
51
|
+
*/
|
|
52
|
+
export declare function renderAdvisoryLock(params: {
|
|
53
|
+
dialect: SqlDialect;
|
|
54
|
+
statement: AdvisoryLockStatement;
|
|
55
|
+
collector: ParamCollector;
|
|
56
|
+
}): RenderedQuery;
|
|
57
|
+
//# sourceMappingURL=locks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../src/locks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAmB,qBAAqB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsBjD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAGjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CA4BjG;AAID,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,EAAE;IAChC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAI9D,CAAC;AAOH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,EAAE,cAAc,CAAC;CAC3B,GAAG,aAAa,CA+BhB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed schema predicates → SQL text.
|
|
3
|
+
*
|
|
4
|
+
* The ONE place a `PredicateIR` becomes SQL, for both of the sites that cannot
|
|
5
|
+
* carry a bound parameter: a CHECK constraint body and a partial index's
|
|
6
|
+
* `WHERE`. Constitution rule 4 — every SQL-text decision lives in a dialect
|
|
7
|
+
* here, never in migrate, the DSL or a query builder.
|
|
8
|
+
*
|
|
9
|
+
* What it guarantees:
|
|
10
|
+
*
|
|
11
|
+
* - **Logical field names resolve to physical columns.** `@map("qty_total")`
|
|
12
|
+
* is applied here, so renaming a mapped column cannot leave a CHECK naming a
|
|
13
|
+
* column that no longer exists.
|
|
14
|
+
* - **Identifiers are quoted through `dialect.quoteIdent`, literals through
|
|
15
|
+
* `dialect.quoteStringLiteral`.** No value the author writes can escape its
|
|
16
|
+
* literal and become SQL structure.
|
|
17
|
+
* - **Operand scalars must match the field's.** Compared through
|
|
18
|
+
* `fieldTypeIdentity`, the same answer foreign-key pairing uses, so a check
|
|
19
|
+
* and a relation can never disagree about what a column IS.
|
|
20
|
+
* - **A dialect that cannot express something refuses here**, at the earliest
|
|
21
|
+
* knowable moment (generate time), with a `VibeError` carrying a stable
|
|
22
|
+
* `meta.rule` — never silently different SQL.
|
|
23
|
+
*
|
|
24
|
+
* Three-valued logic is NOT smoothed over. A comparison against NULL is
|
|
25
|
+
* UNKNOWN, and a CHECK passes on TRUE **or** UNKNOWN, so nothing here inserts
|
|
26
|
+
* an implicit `IS NOT NULL` guard. An author who wants all-or-none writes it
|
|
27
|
+
* with `isNull`/`isNotNull`.
|
|
28
|
+
*/
|
|
29
|
+
import type { EnumIR, ModelIR, PredicateIR } from "@vibeorm/schema";
|
|
30
|
+
import type { SqlDialect } from "./dialect.ts";
|
|
31
|
+
/**
|
|
32
|
+
* Where a predicate is being rendered. The two sites have different database
|
|
33
|
+
* limits, so the renderer has to know which one it is serving.
|
|
34
|
+
*/
|
|
35
|
+
export type PredicateUsage = "check" | "indexPredicate" | "exclusionPredicate";
|
|
36
|
+
/**
|
|
37
|
+
* The part of a model a predicate reads: its name (for error messages) and its
|
|
38
|
+
* fields (for physical column names and scalar types). Narrow on purpose — a
|
|
39
|
+
* predicate can never depend on relations, indexes or view-ness.
|
|
40
|
+
*/
|
|
41
|
+
export type PredicateModel = Pick<ModelIR, "name" | "fields">;
|
|
42
|
+
/** Render a typed predicate as the SQL text of a CHECK body or an index `WHERE`. */
|
|
43
|
+
export declare function renderPredicate(params: {
|
|
44
|
+
predicate: PredicateIR;
|
|
45
|
+
model: PredicateModel;
|
|
46
|
+
dialect: SqlDialect;
|
|
47
|
+
/** Schema enums, for membership checking of enum operands. */
|
|
48
|
+
enums?: readonly EnumIR[];
|
|
49
|
+
usage: PredicateUsage;
|
|
50
|
+
/** Human label naming the declaration, e.g. `CHECK "order_total_nonnegative"`. */
|
|
51
|
+
site: string;
|
|
52
|
+
}): string;
|
|
53
|
+
//# sourceMappingURL=predicate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../src/predicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAW,OAAO,EAAE,WAAW,EAAoC,MAAM,iBAAiB,CAAC;AAC/G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAE/E;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;AAE9D,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAaT"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAarE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAqB,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,OAAO,EAAY,MAAM,UAAU,CAAC;AAa1J,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACnD,CAAC;AAIF,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,mBAAmB,GAAG,YAAY,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,sBAAsB,CAAA;CAAE,GAAG,aAAa,CAgDvM;AAgGD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAAG,MAAM,CAgM5G;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;CAC3B,GAAG,MAAM,CAaT"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Dialect } from "@vibeorm/schema";
|
|
2
|
+
import type { WireFidelity } from "./codecs.ts";
|
|
3
|
+
/** DateTime's explicit opt-in raw projection/parameter representation. NULL is separate. */
|
|
4
|
+
export type ExtendedDateTime = Date | "infinity" | "-infinity";
|
|
5
|
+
/** An explicit projection contract, with centralized bidirectional scalar conversion. */
|
|
6
|
+
export type ResultDecoder<T> = {
|
|
7
|
+
readonly decode: (params: {
|
|
8
|
+
value: unknown;
|
|
9
|
+
dialect: Dialect;
|
|
10
|
+
wire?: WireFidelity;
|
|
11
|
+
}) => T;
|
|
12
|
+
readonly encode: (params: {
|
|
13
|
+
value: unknown;
|
|
14
|
+
dialect: Dialect;
|
|
15
|
+
}) => unknown;
|
|
16
|
+
};
|
|
17
|
+
/** The output of a declared result decoder. */
|
|
18
|
+
export type Decoded<D> = D extends ResultDecoder<infer T> ? T : never;
|
|
19
|
+
type Fields = Readonly<Record<string, ResultDecoder<unknown>>>;
|
|
20
|
+
type Shape<F extends Fields> = {
|
|
21
|
+
[K in keyof F]: Decoded<F[K]>;
|
|
22
|
+
};
|
|
23
|
+
/** Result contracts: scalar codecs, explicit nullability, enum membership, and object projections. */
|
|
24
|
+
export declare const decode: {
|
|
25
|
+
readonly string: ResultDecoder<string>;
|
|
26
|
+
readonly boolean: ResultDecoder<boolean>;
|
|
27
|
+
readonly int: ResultDecoder<number>;
|
|
28
|
+
readonly float: ResultDecoder<number>;
|
|
29
|
+
readonly bigInt: ResultDecoder<bigint>;
|
|
30
|
+
readonly decimal: ResultDecoder<string>;
|
|
31
|
+
readonly dateTime: ResultDecoder<Date>;
|
|
32
|
+
readonly extendedDateTime: ResultDecoder<ExtendedDateTime>;
|
|
33
|
+
readonly json: ResultDecoder<unknown>;
|
|
34
|
+
readonly bytes: ResultDecoder<Uint8Array>;
|
|
35
|
+
readonly nullable: <T>(params: {
|
|
36
|
+
decoder: ResultDecoder<T>;
|
|
37
|
+
}) => ResultDecoder<T | null>;
|
|
38
|
+
readonly array: <T>(params: {
|
|
39
|
+
decoder: ResultDecoder<T>;
|
|
40
|
+
}) => ResultDecoder<T[]>;
|
|
41
|
+
readonly enum: <T extends string>(params: {
|
|
42
|
+
values: readonly T[];
|
|
43
|
+
}) => ResultDecoder<T>;
|
|
44
|
+
readonly object: <F extends Fields>(params: {
|
|
45
|
+
fields: F;
|
|
46
|
+
}) => ResultDecoder<Shape<F>>;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=result-decoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-decoder.d.ts","sourceRoot":"","sources":["../src/result-decoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;AAC/D,yFAAyF;AACzF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAE,KAAK,CAAC,CAAC;IAC1F,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC;CAC5E,CAAC;AACF,+CAA+C;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAItE,KAAK,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAmDjE,sGAAsG;AACtG,eAAO,MAAM,MAAM,EAAE;IACnB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KAAE,KAAK,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACzF,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KAAE,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAA;KAAE,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;IACxF,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAgDtF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeorm/sql",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Dialect-aware SQL layer for VibeORM v2 — SQL AST, renderers and capability tables for postgres, sqlite and mysql",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"orm",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"bun": ">=1.2.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@vibeorm/schema": "2.
|
|
47
|
+
"@vibeorm/schema": "2.1.1"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|