bun-query-builder 0.2.69 → 0.2.70
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/bin/cli.js +19 -19
- package/dist/{chunk-kwpppy92.js → chunk-0x1f6w08.js} +3 -3
- package/dist/chunk-a8q2z6rv.js +383 -0
- package/dist/{chunk-7xvyccgk.js → chunk-baj1dqgh.js} +2 -2
- package/dist/chunk-f0ka4910.js +2 -0
- package/dist/chunk-n6g1zfr3.js +2 -0
- package/dist/{chunk-8pz2q01r.js → chunk-ndnqqp78.js} +18 -17
- package/dist/client.d.ts +33 -19
- package/dist/index.d.ts +5 -1
- package/dist/model.d.ts +21 -1
- package/dist/orm.d.ts +12 -0
- package/dist/sql-fragments.d.ts +18 -4
- package/dist/src/browser.js +1 -1
- package/dist/src/dynamodb/index.js +1 -1
- package/dist/src/index.js +1 -1
- package/package.json +4 -4
- package/dist/chunk-1dv5caj0.js +0 -383
- package/dist/chunk-adc2hmcg.js +0 -2
- package/dist/chunk-asqteyr4.js +0 -2
- /package/dist/{chunk-0h2h0qf3.js → chunk-r2ta1rnj.js} +0 -0
package/dist/client.d.ts
CHANGED
|
@@ -31,7 +31,11 @@ import type { SchemaMeta } from './meta';
|
|
|
31
31
|
* db.selectFrom('orders').whereRaw(raw`status = ${userStatus}`) // value escaped
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
-
export declare function raw(strings: TemplateStringsArray
|
|
34
|
+
export declare function raw(strings: TemplateStringsArray, ...values: unknown[]): RawExpression;
|
|
35
|
+
// eslint-disable-next-line pickier/no-unused-vars
|
|
36
|
+
export declare function raw(sqlOrStrings: TemplateStringsArray | string): RawExpression;
|
|
37
|
+
// eslint-disable-next-line pickier/no-unused-vars
|
|
38
|
+
export declare function raw(sql: string): RawExpression;
|
|
35
39
|
/**
|
|
36
40
|
* Render a SELECT-list entry to its SQL text, unwrapping SQL fragments instead
|
|
37
41
|
* of letting them stringify to "[object Object]" (stacksjs/bun-query-builder#1016).
|
|
@@ -126,6 +130,14 @@ export declare function setQueryCacheMaxSize(size: number): void;
|
|
|
126
130
|
declare interface RawExpression {
|
|
127
131
|
raw: string
|
|
128
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* A fragment with bound values, as `db.raw('stock - ?', [n])` builds it.
|
|
135
|
+
* `set()` and `where()` render it at its position and bind its values.
|
|
136
|
+
*/
|
|
137
|
+
export declare interface BoundSqlFragment {
|
|
138
|
+
readonly sql: string
|
|
139
|
+
readonly parameters: readonly unknown[]
|
|
140
|
+
}
|
|
129
141
|
export declare interface WhereRaw {
|
|
130
142
|
raw: SqlFragment
|
|
131
143
|
}
|
|
@@ -152,7 +164,7 @@ export declare interface BaseSelectQueryBuilder<DB extends AnyDatabaseSchema, TT
|
|
|
152
164
|
distinctOn: (...columns: (keyof DB[TTable]['columns'] & string | string)[]) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
153
165
|
selectRaw: (fragment: SqlFragment) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
154
166
|
where: <K extends keyof DB[TTable]['columns'] & string>(
|
|
155
|
-
expr: WhereExpression<DB[TTable]['columns']> | K,
|
|
167
|
+
expr: WhereExpression<DB[TTable]['columns']> | K | BoundSqlFragment,
|
|
156
168
|
op?: WhereOperator,
|
|
157
169
|
value?: WhereValue<DB[TTable]['columns'][K]>,
|
|
158
170
|
) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
@@ -189,12 +201,12 @@ export declare interface BaseSelectQueryBuilder<DB extends AnyDatabaseSchema, TT
|
|
|
189
201
|
whereJsonContains: (column: string, json: unknown) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
190
202
|
whereJsonPath?: (path: string, op: WhereOperator, value: unknown) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
191
203
|
andWhere: <K extends keyof DB[TTable]['columns'] & string>(
|
|
192
|
-
expr: WhereExpression<DB[TTable]['columns']> | K,
|
|
204
|
+
expr: WhereExpression<DB[TTable]['columns']> | K | BoundSqlFragment,
|
|
193
205
|
op?: WhereOperator,
|
|
194
206
|
value?: WhereValue<DB[TTable]['columns'][K]>,
|
|
195
207
|
) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
196
208
|
orWhere: <K extends keyof DB[TTable]['columns'] & string>(
|
|
197
|
-
expr: WhereExpression<DB[TTable]['columns']> | K,
|
|
209
|
+
expr: WhereExpression<DB[TTable]['columns']> | K | BoundSqlFragment,
|
|
198
210
|
op?: WhereOperator,
|
|
199
211
|
value?: WhereValue<DB[TTable]['columns'][K]>,
|
|
200
212
|
) => SelectQueryBuilder<DB, TTable, TSelected, TJoined>
|
|
@@ -360,7 +372,7 @@ export declare interface UpdateQueryBuilder<DB extends AnyDatabaseSchema, TTable
|
|
|
360
372
|
}
|
|
361
373
|
export declare interface DeleteQueryBuilder<DB extends AnyDatabaseSchema, TTable extends keyof DB & string> {
|
|
362
374
|
where: <K extends keyof DB[TTable]['columns'] & string>(
|
|
363
|
-
expr: WhereExpression<DB[TTable]['columns']> | K,
|
|
375
|
+
expr: WhereExpression<DB[TTable]['columns']> | K | BoundSqlFragment,
|
|
364
376
|
op?: WhereOperator,
|
|
365
377
|
value?: WhereValue<DB[TTable]['columns'][K]>,
|
|
366
378
|
) => DeleteQueryBuilder<DB, TTable>
|
|
@@ -397,7 +409,7 @@ export declare interface QueryBuilder<DB extends AnyDatabaseSchema> {
|
|
|
397
409
|
table: <TTable extends keyof DB & string>(table: TTable) => TableQueryBuilder<DB, TTable>
|
|
398
410
|
selectFromSub: (sub: { toSQL: () => string }, alias: string) => SelectQueryBuilder<DB, keyof DB & string, Record<string, unknown>>
|
|
399
411
|
sql: DriverConnection
|
|
400
|
-
raw: (strings: TemplateStringsArray, ...values: unknown[]) => SqlFragment
|
|
412
|
+
raw: ((sql: string, bindings?: readonly unknown[]) => BoundSqlFragment) & ((strings: TemplateStringsArray, ...values: unknown[]) => SqlFragment)
|
|
401
413
|
simple: (strings: TemplateStringsArray, ...values: unknown[]) => unknown
|
|
402
414
|
unsafe: <TRow extends Record<string, unknown> = Record<string, unknown>>(query: string, params?: unknown[]) => Promise<TRow[]>
|
|
403
415
|
deferInsert?: DeferredInsert
|
|
@@ -530,19 +542,21 @@ declare type Primitive = string | number | boolean | bigint | Date | null | unde
|
|
|
530
542
|
declare type ValueOrRef = Primitive;
|
|
531
543
|
export type WhereOperator = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'like' | 'in' | 'not in' | 'is' | 'is not';
|
|
532
544
|
/**
|
|
533
|
-
* Brand for SQL fragments
|
|
534
|
-
*
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
* SQL-injection vector flagged by the audit as Q-3.
|
|
545
|
+
* Brand for SQL fragments, such as the exported `raw` helper builds. Typed as
|
|
546
|
+
* `object` so the *Raw methods (`whereRaw`, `selectRaw`, `groupByRaw`,
|
|
547
|
+
* `havingRaw`, `orderByRaw`) refuse to compile when passed a bare string —
|
|
548
|
+
* concatenated user input (`whereRaw(\`status = '${req.body.s}'\`)`) was the
|
|
549
|
+
* canonical SQL-injection vector flagged by the audit as Q-3.
|
|
539
550
|
*
|
|
540
|
-
* Callers who
|
|
541
|
-
*
|
|
551
|
+
* Callers who need raw SQL use `raw`, which escapes interpolated values, or
|
|
552
|
+
* bind them with `db.raw('...', [values])` in `where()` and `set()`. A Bun
|
|
553
|
+
* `sql\`...\`` query is not a fragment: on Postgres and MySQL its text cannot be
|
|
554
|
+
* read back, and the *Raw methods take no bindings.
|
|
542
555
|
*
|
|
543
556
|
* ```ts
|
|
544
|
-
* import {
|
|
545
|
-
* db.selectFrom('users').whereRaw(
|
|
557
|
+
* import { raw } from 'bun-query-builder'
|
|
558
|
+
* db.selectFrom('users').whereRaw(raw\`lower(name) = lower(${input})\`)
|
|
559
|
+
* db.selectFrom('users').where(db.raw('lower(name) = lower(?)', [input]))
|
|
546
560
|
* ```
|
|
547
561
|
*
|
|
548
562
|
* The runtime guard in each *Raw method also rejects bare strings as
|
|
@@ -658,7 +672,7 @@ export type TypedSelectQueryBuilder<DB extends AnyDatabaseSchema, TTable extends
|
|
|
658
672
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} WHERE ${K} = ?`>) & (<K extends keyof DB[TTable]['columns'] & string, OP extends WhereOperator>(
|
|
659
673
|
expr: [K, OP, WhereValue<DB[TTable]['columns'][K]>],
|
|
660
674
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} WHERE ${K} ${Uppercase<OP>} ${OP extends 'in' | 'not in' ? '(?)' : '?'}`>) & ((
|
|
661
|
-
expr: WhereExpression<DB[TTable]['columns']> | string,
|
|
675
|
+
expr: WhereExpression<DB[TTable]['columns']> | string | BoundSqlFragment,
|
|
662
676
|
op?: WhereOperator,
|
|
663
677
|
value?: WhereValue<DB[TTable]['columns'][keyof DB[TTable]['columns'] & string]>,
|
|
664
678
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} WHERE ${string}`>)
|
|
@@ -667,7 +681,7 @@ export type TypedSelectQueryBuilder<DB extends AnyDatabaseSchema, TTable extends
|
|
|
667
681
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} AND ${K} = ?`>) & (<K extends keyof DB[TTable]['columns'] & string, OP extends WhereOperator>(
|
|
668
682
|
expr: [K, OP, WhereValue<DB[TTable]['columns'][K]>],
|
|
669
683
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} AND ${K} ${Uppercase<OP>} ${OP extends 'in' | 'not in' ? '(?)' : '?'}`>) & ((
|
|
670
|
-
expr: WhereExpression<DB[TTable]['columns']> | string,
|
|
684
|
+
expr: WhereExpression<DB[TTable]['columns']> | string | BoundSqlFragment,
|
|
671
685
|
op?: WhereOperator,
|
|
672
686
|
value?: WhereValue<DB[TTable]['columns'][keyof DB[TTable]['columns'] & string]>,
|
|
673
687
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} AND ${string}`>)
|
|
@@ -676,7 +690,7 @@ export type TypedSelectQueryBuilder<DB extends AnyDatabaseSchema, TTable extends
|
|
|
676
690
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} OR ${K} = ?`>) & (<K extends keyof DB[TTable]['columns'] & string, OP extends WhereOperator>(
|
|
677
691
|
expr: [K, OP, WhereValue<DB[TTable]['columns'][K]>],
|
|
678
692
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} OR ${K} ${Uppercase<OP>} ${OP extends 'in' | 'not in' ? '(?)' : '?'}`>) & ((
|
|
679
|
-
expr: WhereExpression<DB[TTable]['columns']> | string,
|
|
693
|
+
expr: WhereExpression<DB[TTable]['columns']> | string | BoundSqlFragment,
|
|
680
694
|
op?: WhereOperator,
|
|
681
695
|
value?: WhereValue<DB[TTable]['columns'][keyof DB[TTable]['columns'] & string]>,
|
|
682
696
|
) => TypedSelectQueryBuilder<DB, TTable, TSelected, TJoined, `${TSql} OR ${string}`>)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export type { DeferredInsert } from './sqlite-deferred-inserts';
|
|
2
2
|
// Resolve ambiguous re-exports by explicitly choosing which module's version to use
|
|
3
3
|
export type { WhereOperator } from './browser';
|
|
4
|
-
|
|
4
|
+
// The ORM builder that `createModel(...).query()` and `defineModel(...).query()`
|
|
5
|
+
// return. It was the DynamoDB interface, which only the dynamodb entry point
|
|
6
|
+
// should name that; it stays reachable here under an explicit alias.
|
|
7
|
+
export type { ModelQueryBuilder } from './orm';
|
|
8
|
+
export type { ModelQueryBuilder as DynamoDBModelQueryBuilder } from './dynamodb/index';
|
|
5
9
|
export type { ColumnName, QueryBuilder } from './client';
|
|
6
10
|
export type { ModelRecord } from './schema';
|
|
7
11
|
export type { ModelDefinition as OrmModelDefinition, ModelStatic as OrmModelStatic } from './orm';
|
package/dist/model.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createBrowserModel, type BrowserModelDefinition } from './browser';
|
|
2
|
+
import { type ModelStatic, type ModelDefinition as OrmModelDefinition } from './orm';
|
|
2
3
|
// Re-export the browser model types for convenience
|
|
3
4
|
export type { BrowserModelDefinition as ModelDefinition };
|
|
4
5
|
/**
|
|
@@ -83,7 +84,7 @@ export declare function registerModel<TModel>(name: string, model: TModel): TMod
|
|
|
83
84
|
* @param definition - The model definition
|
|
84
85
|
* @returns An isomorphic model with query methods
|
|
85
86
|
*/
|
|
86
|
-
export declare function defineModel<const TDef extends BrowserModelDefinition>(definition: TDef):
|
|
87
|
+
export declare function defineModel<const TDef extends BrowserModelDefinition>(definition: TDef): DefinedModel<TDef>;
|
|
87
88
|
/**
|
|
88
89
|
* Register models on the global window.StacksBrowser object.
|
|
89
90
|
* Call this in your app's entry point to make models available for STX auto-imports.
|
|
@@ -99,3 +100,22 @@ export declare function defineModel<const TDef extends BrowserModelDefinition>(d
|
|
|
99
100
|
* ```
|
|
100
101
|
*/
|
|
101
102
|
export declare function registerBrowserModels(models: Record<string, unknown>): void;
|
|
103
|
+
/**
|
|
104
|
+
* The definition as the ORM types read it. A literal definition normally
|
|
105
|
+
* satisfies the ORM's `ModelDefinition` already, which keeps its column and
|
|
106
|
+
* relation names narrow; intersecting unconditionally would widen them.
|
|
107
|
+
*/
|
|
108
|
+
declare type ServerModelDefinition<TDef> = TDef extends OrmModelDefinition ? TDef : TDef & OrmModelDefinition;
|
|
109
|
+
/**
|
|
110
|
+
* What `defineModel()` returns: the ORM model, plus the raw definition for
|
|
111
|
+
* build tools that introspect it.
|
|
112
|
+
*
|
|
113
|
+
* It used to be typed as the browser model even though the package root runs
|
|
114
|
+
* on Bun and hands back the ORM model. So `whereRaw`, `with`, `whereGroup`,
|
|
115
|
+
* `increment` and the aggregates worked but did not type-check. Browser code
|
|
116
|
+
* builds its models with `createBrowserModel` from `bun-query-builder/browser`.
|
|
117
|
+
*/
|
|
118
|
+
export type DefinedModel<TDef extends BrowserModelDefinition> = ModelStatic<ServerModelDefinition<TDef>> & {
|
|
119
|
+
definition: TDef
|
|
120
|
+
getName: () => TDef['name']
|
|
121
|
+
}
|
package/dist/orm.d.ts
CHANGED
|
@@ -547,7 +547,10 @@ export type ModelStatic<TDef extends ModelDefinition> = StaticWhereOverloads<TDe
|
|
|
547
547
|
createMany: (items: FillableAttributes<TDef>[]) => Promise<ModelRecord<TDef>[]>
|
|
548
548
|
updateOrCreate: (search: Partial<ModelAttributes<TDef>>, data: FillableAttributes<TDef>) => Promise<ModelRecord<TDef>>
|
|
549
549
|
firstOrCreate: (search: Partial<ModelAttributes<TDef>>, data?: FillableAttributes<TDef>) => Promise<ModelRecord<TDef>>
|
|
550
|
+
update: (id: number | string, data: FillableAttributes<TDef>) => Promise<ModelRecord<TDef>>
|
|
551
|
+
delete: (id: number | string) => Promise<boolean>
|
|
550
552
|
destroy: (id: number | string) => Promise<boolean>
|
|
553
|
+
forceDelete: (id: number | string) => Promise<boolean>
|
|
551
554
|
remove: (id: number | string) => Promise<boolean>
|
|
552
555
|
truncate: () => Promise<void>
|
|
553
556
|
getDefinition: () => TDef
|
|
@@ -606,6 +609,7 @@ declare class ModelInstance<TDef extends ModelDefinition, TSelected extends Colu
|
|
|
606
609
|
update(data: FillableAttributes<TDef>): Promise<this>;
|
|
607
610
|
fresh(): Promise<ModelInstance<TDef, TSelected> | null>;
|
|
608
611
|
delete(): Promise<boolean>;
|
|
612
|
+
forceDelete(): Promise<boolean>;
|
|
609
613
|
restore(): Promise<this>;
|
|
610
614
|
trashed(): boolean;
|
|
611
615
|
refresh(): Promise<this | null>;
|
|
@@ -673,7 +677,11 @@ declare class ModelQueryBuilder<TDef extends ModelDefinition, TSelected extends
|
|
|
673
677
|
orWhereLike<K extends ColumnName<TDef>>(column: K, pattern: string): ModelQueryBuilder<TDef, TSelected>;
|
|
674
678
|
whereNotLike<K extends ColumnName<TDef>>(column: K, pattern: string): ModelQueryBuilder<TDef, TSelected>;
|
|
675
679
|
orWhereNotLike<K extends ColumnName<TDef>>(column: K, pattern: string): ModelQueryBuilder<TDef, TSelected>;
|
|
680
|
+
whereRaw(fragment: string, bindings: readonly unknown[]): ModelQueryBuilder<TDef, TSelected>;
|
|
681
|
+
whereRaw(fragment: string, ...bindings: unknown[]): ModelQueryBuilder<TDef, TSelected>;
|
|
676
682
|
whereRaw(fragment: string, ...params: unknown[]): ModelQueryBuilder<TDef, TSelected>;
|
|
683
|
+
orWhereRaw(fragment: string, bindings: readonly unknown[]): ModelQueryBuilder<TDef, TSelected>;
|
|
684
|
+
orWhereRaw(fragment: string, ...bindings: unknown[]): ModelQueryBuilder<TDef, TSelected>;
|
|
677
685
|
orWhereRaw(fragment: string, ...params: unknown[]): ModelQueryBuilder<TDef, TSelected>;
|
|
678
686
|
whereGroup(callback: (builder: ModelQueryBuilder<TDef, TSelected>) => unknown): ModelQueryBuilder<TDef, TSelected>;
|
|
679
687
|
orWhereGroup(callback: (builder: ModelQueryBuilder<TDef, TSelected>) => unknown): ModelQueryBuilder<TDef, TSelected>;
|
|
@@ -683,6 +691,8 @@ declare class ModelQueryBuilder<TDef extends ModelDefinition, TSelected extends
|
|
|
683
691
|
orderBy<K extends ColumnName<TDef>>(column: K, direction?: 'asc' | 'desc'): ModelQueryBuilder<TDef, TSelected>;
|
|
684
692
|
orderByDesc<K extends ColumnName<TDef>>(column: K): ModelQueryBuilder<TDef, TSelected>;
|
|
685
693
|
orderByAsc<K extends ColumnName<TDef>>(column: K): ModelQueryBuilder<TDef, TSelected>;
|
|
694
|
+
latest(column?: ColumnName<TDef>): ModelQueryBuilder<TDef, TSelected>;
|
|
695
|
+
oldest(column?: ColumnName<TDef>): ModelQueryBuilder<TDef, TSelected>;
|
|
686
696
|
limit(count: number): ModelQueryBuilder<TDef, TSelected>;
|
|
687
697
|
take(count: number): ModelQueryBuilder<TDef, TSelected>;
|
|
688
698
|
offset(count: number): ModelQueryBuilder<TDef, TSelected>;
|
|
@@ -694,6 +704,8 @@ declare class ModelQueryBuilder<TDef extends ModelDefinition, TSelected extends
|
|
|
694
704
|
get(): Promise<ModelRecord<TDef, TSelected>[]>;
|
|
695
705
|
first(): Promise<ModelRecord<TDef, TSelected> | undefined>;
|
|
696
706
|
firstOrFail(): Promise<ModelRecord<TDef, TSelected>>;
|
|
707
|
+
find(id: number | string): Promise<ModelRecord<TDef, TSelected> | undefined>;
|
|
708
|
+
findOrFail(id: number | string): Promise<ModelRecord<TDef, TSelected>>;
|
|
697
709
|
last(): Promise<ModelRecord<TDef, TSelected> | undefined>;
|
|
698
710
|
count(): Promise<number>;
|
|
699
711
|
exists(): Promise<boolean>;
|
package/dist/sql-fragments.d.ts
CHANGED
|
@@ -43,15 +43,29 @@ export declare function renderInPredicate(column: string, values: readonly unkno
|
|
|
43
43
|
* application that developed against SQLite therefore finds out at the point
|
|
44
44
|
* its raw queries first meet Postgres, and the error does not name the cause.
|
|
45
45
|
*
|
|
46
|
-
* Only unquoted placeholders are rewritten
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
46
|
+
* Only unquoted placeholders are rewritten; see {@link mapPlaceholders} for
|
|
47
|
+
* what counts as quoted. Postgres' jsonb `?`, `?|` and `?&` operators cannot be
|
|
48
|
+
* told apart from placeholders, so write them as `jsonb_exists(col, key)`,
|
|
49
|
+
* `jsonb_exists_any(col, keys)` and `jsonb_exists_all(col, keys)`.
|
|
50
50
|
*
|
|
51
51
|
* Dialects that already take `?` get the string back unchanged, so this is safe
|
|
52
52
|
* to apply unconditionally.
|
|
53
53
|
*/
|
|
54
54
|
export declare function toDialectPlaceholders(sql: string, dialect: SupportedDialect): string;
|
|
55
|
+
/**
|
|
56
|
+
* How many `?` placeholders `sql` binds, by the same rules as
|
|
57
|
+
* {@link toDialectPlaceholders}.
|
|
58
|
+
*/
|
|
59
|
+
export declare function countPlaceholders(sql: string): number;
|
|
60
|
+
/* … *\/` block comments, which nest
|
|
61
|
+
*
|
|
62
|
+
* The ORM used a bare `sql.replace(/\?/g, …)`, so on Postgres
|
|
63
|
+
* `whereRaw("name = '?'")` was sent as `name = '$1'` and quietly matched nothing,
|
|
64
|
+
* and a `?` in a comment consumed a binding. The comment rules are the ones
|
|
65
|
+
* {@link scanTopLevelKeywords} uses; backslash escapes are not honoured, for the
|
|
66
|
+
* reason given there.
|
|
67
|
+
*/
|
|
68
|
+
export declare function mapPlaceholders(sql: string, replace: (ordinal: number) => string | undefined): { text: string, count: number };
|
|
55
69
|
/* … *\/` block comments, which nest
|
|
56
70
|
* - `$$…$$` / `$tag$…$tag$` dollar-quoted strings, without mistaking a `$1`
|
|
57
71
|
* placeholder for the start of one
|
package/dist/src/browser.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{zt,Yt,Xt,h,He,Qe,Zt,Be,en,vn}from"../chunk-baj1dqgh.js";export{He as BrowserQueryBuilder,h as BrowserQueryError,en as browserAuth,Qe as browserQuery,zt as configureBrowser,Zt as createBrowserDb,Be as createBrowserModel,vn as default,Yt as getBrowserConfig,Xt as isBrowser};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{U,D,
|
|
2
|
+
import{U,D,pt,Le,E,xe,Ke,Fe,ve,yt,d,V,ke,je,bt,qe,It,Lt}from"../../chunk-0x1f6w08.js";export{U as DynamoDBClient,ke as DynamoDBMigrationDriver,V as DynamoDBMigrationTracker,qe as EntityQueryBuilder,d as MIGRATIONS_TABLE,Le as Model,ve as buildDynamoDBMigrationPlan,pt as configureModels,Fe as convertSchemaToDefinition,D as createClient,Lt as createDynamo,je as createMigrationDriver,It as dynamo,Ke as extractModelSchema,xe as extractTableDefinition,E as hashTableDefinition,yt as isDefinitionEqual,bt as migrateModels};
|
package/dist/src/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{J,S,
|
|
2
|
+
import{J,S,tn,nn,l,Rt,At,i,Ge,Je,z,Y,X,N,Z,ee,te,ne,B,re,P,O,ie,se,_,ae,oe,ze,Pe,Ye,v,le,a,ce,ue,de,fe,f,Xe,b,k,C,me,he,I,ge,L,pe,K,F,R,j,ye,be,Te,we,q,Se,De,T,m,rn,sn,an,Ze,et,tt,nt,rt,on,it,Mt,ln,cn,un,dn,st,fn,mn,hn,$e,u,at,ot,lt,ct,ut,Nt,W,Ee,gn,pn,dt,Oe,g,_e,Ie,Bt,yn,Pt,bn,ft,mt,ht,Ot,_t}from"../chunk-a8q2z6rv.js";import{gt,c,U,D,pt,Le,E,xe,Ke,Fe,ve,yt,d,V,ke,je,bt,qe,It,Lt}from"../chunk-0x1f6w08.js";import{n,Tt,e,H,t,s,Q,We,Tn,Kt,Ft,G,wn,Ve,p,jt,qt,y,St,Dt,$t,Et,xt,Sn,Dn,$n,vt,kt,En,xn,Wt,Ut,Vt,Ht,Qt,Ct,Gt,Jt}from"../chunk-ndnqqp78.js";import{zt,Yt,Xt,h,He,Qe,Zt,Be,en}from"../chunk-baj1dqgh.js";export{vt as BelongsToManyRelationBuilder,He as BrowserQueryBuilder,h as BrowserQueryError,Kt as DEFAULT_SQLITE_PRAGMAS,U as DynamoDBClient,gt as DynamoDBDriverImpl,m as DynamoDBItemBuilder,ke as DynamoDBMigrationDriver,V as DynamoDBMigrationTracker,T as DynamoDBQueryBuilder,st as DynamoDBToolingAdapter,qe as EntityQueryBuilder,lt as GENERATED_MARKER,d as MIGRATIONS_TABLE,Le as Model,a as MySQLDriver,ce as PostgresDriver,fe as SQLiteDriver,Pt as Seeder,ue as SingleStoreDriver,Ze as SingleTableManager,on as SingleTablePatterns,tt as SingleTableQueryBuilder,et as SingleTableRepository,g as UTC_CLOCK_DEFAULT,de as VitessDriver,G as applySqliteBootstrapPragmas,Ot as auditSchemaDrift,en as browserAuth,Qe as browserQuery,$e as buildDatabaseSchema,ve as buildDynamoDBMigrationPlan,W as buildMigrationPlan,at as buildSchemaMeta,z as cacheClear,X as cacheConfig,Y as cacheStats,Oe as canonicalStorageType,_e as canonicalizeDefault,Se as checkSchema,$t as clearLocalModels,Qt as clearModelRegistry,Ge as clearQueryCache,e as config,zt as configureBrowser,pt as configureModels,Sn as configureOrm,Fe as convertSchemaToDefinition,Zt as createBrowserDb,Be as createBrowserModel,D as createClient,Lt as createDynamo,an as createDynamoDBClient,c as createDynamoDBDriver,sn as createDynamoDBItemBuilder,rn as createDynamoDBQueryBuilder,fn as createDynamoDBToolingAdapter,Dt as createFakerCompatLayer,je as createMigrationDriver,kt as createModel,i as createQueryBuilder,rt as createRepository,nt as createSingleTableManager,En as createTableFromModel,B as dbInfo,P as dbOptimize,re as dbStats,O as dbWipe,Tt as defaultConfig,Tn as defineConfig,Gt as defineModel,yn as defineModels,bn as defineSeeder,ne as dumpDatabase,It as dynamo,At as escapeStringLiteral,k as executeMigration,ie as explain,K as explainAllQueries,ee as exportData,Et as extractChanges,xt as extractInsertId,Ke as extractModelSchema,xe as extractTableDefinition,ft as familyOfDeclared,mt as familyOfSqlType,se as file,_t as formatSchemaDrift,be as freshDatabase,mn as generateAccessPatterns,F as generateDiagram,Ie as generateDiffOperations,Bt as generateDiffSql,pn as generateDiffSqlString,b as generateMigration,Ye as generateModelSource,Ee as generateSql,gn as generateSqlString,Ut as getAllModels,Yt as getBrowserConfig,Q as getConfig,$n as getDatabase,f as getDialectDriver,Wt as getModel,Vt as getModelRegistry,t as getPlaceholder,s as getPlaceholders,Ht as hasModel,dt as hashMigrationPlan,E as hashTableDefinition,te as importData,qt as inflectSingular,_ as inspectTable,oe as introspect,v as introspectDatabase,Xt as isBrowser,yt as isDefinitionEqual,ct as isGeneratedMigrationSql,Nt as isLosslessTypeChange,n as isMysqlLike,tn as iterateAllPivots,ot as lastCreatedMigrationFiles,u as loadModels,le as makeModel,ye as makeSeeder,un as marshallObject,me as migrateGenerate,ge as migrateList,bt as migrateModels,he as migrateRollback,I as migrateStatus,ut as migrationBody,Pe as modelNameForTable,L as modelShow,P as optimizeDatabase,Mt as parseStacksModels,pe as ping,K as queryExplainAll,l as quoteColumnForDialect,nn as raw,Jt as registerBrowserModels,Ct as registerModel,F as relationDiagram,Dn as releaseOrm,wn as resetConnection,C as resetDatabase,H as resolveDialect,it as resolveKeyPattern,S as resolvePivot,Ft as resolveSqlitePragmas,J as runBenchmark,j as runSeeder,R as runSeeders,ht as satisfies,Xe as saveMigrationSnapshot,xn as seedModel,We as setConfig,Je as setQueryCacheMaxSize,L as showModel,y as singularizerFor,Te as sql,ze as sqlTypeToAttr,hn as stacksModelToEntity,N as startConsole,jt as stripTrailingS,ae as tableInfo,p as tableNameFor,Rt as temporalLiteral,Z as tinker,St as toDialectPlaceholders,ln as toDynamoDBItem,cn as toModelInstance,Ve as toTableName,dn as unmarshallItem,we as unsafe,q as validateSchema,De as waitReady,O as wipeDatabase};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bun-query-builder",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.70",
|
|
5
5
|
"description": "A simple yet performant query builder for TypeScript. Built with Bun.",
|
|
6
6
|
"author": "Chris Breuer <chris@stacksjs.org>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -77,13 +77,13 @@
|
|
|
77
77
|
"typecheck": "bun --bun tsc"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"@stacksjs/clapp": "^0.2.
|
|
80
|
+
"@stacksjs/clapp": "^0.2.16",
|
|
81
81
|
"@stacksjs/ts-faker": "^0.1.8",
|
|
82
82
|
"@stacksjs/ts-validation": "^0.5.2",
|
|
83
|
-
"dynamodb-tooling": "^0.3.
|
|
83
|
+
"dynamodb-tooling": "^0.3.6"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
|
-
"bunfig": "^0.15.
|
|
86
|
+
"bunfig": "^0.15.19"
|
|
87
87
|
},
|
|
88
88
|
"git-hooks": {
|
|
89
89
|
"pre-commit": {
|