@prisma/client-engine-runtime 6.4.0-dev.24
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/LICENSE +201 -0
- package/README.md +5 -0
- package/dist/index.d.mts +341 -0
- package/dist/index.d.ts +341 -0
- package/dist/index.js +838 -0
- package/package.json +23 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original `quaint::ValueType` enum tag from Prisma's `quaint`.
|
|
3
|
+
* Query arguments marked with this type are sanitized before being sent to the database.
|
|
4
|
+
* Notice while a query argument may be `null`, `ArgType` is guaranteed to be defined.
|
|
5
|
+
*/
|
|
6
|
+
declare type ArgType = 'Int32' | 'Int64' | 'Float' | 'Double' | 'Text' | 'Enum' | 'EnumArray' | 'Bytes' | 'Boolean' | 'Char' | 'Array' | 'Numeric' | 'Json' | 'Xml' | 'Uuid' | 'DateTime' | 'Date' | 'Time';
|
|
7
|
+
|
|
8
|
+
declare type ColumnType = (typeof ColumnTypeEnum)[keyof typeof ColumnTypeEnum];
|
|
9
|
+
|
|
10
|
+
declare const ColumnTypeEnum: {
|
|
11
|
+
readonly Int32: 0;
|
|
12
|
+
readonly Int64: 1;
|
|
13
|
+
readonly Float: 2;
|
|
14
|
+
readonly Double: 3;
|
|
15
|
+
readonly Numeric: 4;
|
|
16
|
+
readonly Boolean: 5;
|
|
17
|
+
readonly Character: 6;
|
|
18
|
+
readonly Text: 7;
|
|
19
|
+
readonly Date: 8;
|
|
20
|
+
readonly Time: 9;
|
|
21
|
+
readonly DateTime: 10;
|
|
22
|
+
readonly Json: 11;
|
|
23
|
+
readonly Enum: 12;
|
|
24
|
+
readonly Bytes: 13;
|
|
25
|
+
readonly Set: 14;
|
|
26
|
+
readonly Uuid: 15;
|
|
27
|
+
readonly Int32Array: 64;
|
|
28
|
+
readonly Int64Array: 65;
|
|
29
|
+
readonly FloatArray: 66;
|
|
30
|
+
readonly DoubleArray: 67;
|
|
31
|
+
readonly NumericArray: 68;
|
|
32
|
+
readonly BooleanArray: 69;
|
|
33
|
+
readonly CharacterArray: 70;
|
|
34
|
+
readonly TextArray: 71;
|
|
35
|
+
readonly DateArray: 72;
|
|
36
|
+
readonly TimeArray: 73;
|
|
37
|
+
readonly DateTimeArray: 74;
|
|
38
|
+
readonly JsonArray: 75;
|
|
39
|
+
readonly EnumArray: 76;
|
|
40
|
+
readonly BytesArray: 77;
|
|
41
|
+
readonly UuidArray: 78;
|
|
42
|
+
readonly UnknownNumber: 128;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
declare type ConnectionInfo = {
|
|
46
|
+
schemaName?: string;
|
|
47
|
+
maxBindValues?: number;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
declare interface DriverAdapter extends Queryable {
|
|
51
|
+
/**
|
|
52
|
+
* Starts new transaction.
|
|
53
|
+
*/
|
|
54
|
+
transactionContext(): Promise<Result<TransactionContext>>;
|
|
55
|
+
/**
|
|
56
|
+
* Optional method that returns extra connection info
|
|
57
|
+
*/
|
|
58
|
+
getConnectionInfo?(): Result<ConnectionInfo>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
declare type Error_2 = {
|
|
62
|
+
kind: 'GenericJs';
|
|
63
|
+
id: number;
|
|
64
|
+
} | {
|
|
65
|
+
kind: 'UnsupportedNativeDataType';
|
|
66
|
+
type: string;
|
|
67
|
+
} | {
|
|
68
|
+
kind: 'postgres';
|
|
69
|
+
code: string;
|
|
70
|
+
severity: string;
|
|
71
|
+
message: string;
|
|
72
|
+
detail: string | undefined;
|
|
73
|
+
column: string | undefined;
|
|
74
|
+
hint: string | undefined;
|
|
75
|
+
} | {
|
|
76
|
+
kind: 'mysql';
|
|
77
|
+
code: number;
|
|
78
|
+
message: string;
|
|
79
|
+
state: string;
|
|
80
|
+
} | {
|
|
81
|
+
kind: 'sqlite';
|
|
82
|
+
/**
|
|
83
|
+
* Sqlite extended error code: https://www.sqlite.org/rescode.html
|
|
84
|
+
*/
|
|
85
|
+
extendedCode: number;
|
|
86
|
+
message: string;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
declare type InteractiveTransactionInfo<Payload = unknown> = {
|
|
90
|
+
/**
|
|
91
|
+
* Transaction ID returned by the query engine.
|
|
92
|
+
*/
|
|
93
|
+
id: string;
|
|
94
|
+
/**
|
|
95
|
+
* Arbitrary payload the meaning of which depends on the `Engine` implementation.
|
|
96
|
+
* For example, `DataProxyEngine` needs to associate different API endpoints with transactions.
|
|
97
|
+
* In `LibraryEngine` and `BinaryEngine` it is currently not used.
|
|
98
|
+
*/
|
|
99
|
+
payload: Payload;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export declare enum IsolationLevel {
|
|
103
|
+
ReadUncommitted = "ReadUncommitted",
|
|
104
|
+
ReadCommitted = "ReadCommitted",
|
|
105
|
+
RepeatableRead = "RepeatableRead",
|
|
106
|
+
Snapshot = "Snapshot",
|
|
107
|
+
Serializable = "Serializable"
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export declare function isPrismaValuePlaceholder(value: unknown): value is PrismaValuePlaceholder;
|
|
111
|
+
|
|
112
|
+
export declare type JoinExpression = {
|
|
113
|
+
child: QueryPlanNode;
|
|
114
|
+
on: [left: string, right: string][];
|
|
115
|
+
parentField: string;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
declare const officialPrismaAdapters: readonly ["@prisma/adapter-planetscale", "@prisma/adapter-neon", "@prisma/adapter-libsql", "@prisma/adapter-d1", "@prisma/adapter-pg", "@prisma/adapter-pg-worker"];
|
|
119
|
+
|
|
120
|
+
declare type Options = {
|
|
121
|
+
maxWait?: number;
|
|
122
|
+
timeout?: number;
|
|
123
|
+
isolationLevel?: IsolationLevel;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export declare type PrismaValue = string | boolean | number | PrismaValue[] | null | Record<string, unknown> | PrismaValuePlaceholder;
|
|
127
|
+
|
|
128
|
+
export declare type PrismaValuePlaceholder = {
|
|
129
|
+
prisma__type: 'param';
|
|
130
|
+
prisma__value: {
|
|
131
|
+
name: string;
|
|
132
|
+
type: string;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
declare type Provider = 'mysql' | 'postgres' | 'sqlite';
|
|
137
|
+
|
|
138
|
+
declare type Query = {
|
|
139
|
+
sql: string;
|
|
140
|
+
args: Array<unknown>;
|
|
141
|
+
argTypes: Array<ArgType>;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
declare interface Queryable {
|
|
145
|
+
readonly provider: Provider;
|
|
146
|
+
readonly adapterName: (typeof officialPrismaAdapters)[number] | (string & {});
|
|
147
|
+
/**
|
|
148
|
+
* Execute a query given as SQL, interpolating the given parameters,
|
|
149
|
+
* and returning the type-aware result set of the query.
|
|
150
|
+
*
|
|
151
|
+
* This is the preferred way of executing `SELECT` queries.
|
|
152
|
+
*/
|
|
153
|
+
queryRaw(params: Query): Promise<Result<ResultSet>>;
|
|
154
|
+
/**
|
|
155
|
+
* Execute a query given as SQL, interpolating the given parameters,
|
|
156
|
+
* and returning the number of affected rows.
|
|
157
|
+
*
|
|
158
|
+
* This is the preferred way of executing `INSERT`, `UPDATE`, `DELETE` queries,
|
|
159
|
+
* as well as transactional queries.
|
|
160
|
+
*/
|
|
161
|
+
executeRaw(params: Query): Promise<Result<number>>;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
declare type QueryEvent = {
|
|
165
|
+
timestamp: Date;
|
|
166
|
+
query: string;
|
|
167
|
+
params: string;
|
|
168
|
+
duration: number;
|
|
169
|
+
target: string;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export declare class QueryInterpreter {
|
|
173
|
+
#private;
|
|
174
|
+
constructor({ queryable, placeholderValues, onQuery }: QueryInterpreterOptions);
|
|
175
|
+
run(queryPlan: QueryPlanNode): Promise<unknown>;
|
|
176
|
+
private interpretNode;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export declare type QueryInterpreterOptions = {
|
|
180
|
+
queryable: Queryable;
|
|
181
|
+
placeholderValues: Record<string, unknown>;
|
|
182
|
+
onQuery?: (event: QueryEvent) => void;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
export declare type QueryPlanBinding = {
|
|
186
|
+
name: string;
|
|
187
|
+
expr: QueryPlanNode;
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export declare type QueryPlanDbQuery = {
|
|
191
|
+
query: string;
|
|
192
|
+
params: PrismaValue[];
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
export declare type QueryPlanNode = {
|
|
196
|
+
type: 'seq';
|
|
197
|
+
args: QueryPlanNode[];
|
|
198
|
+
} | {
|
|
199
|
+
type: 'get';
|
|
200
|
+
args: {
|
|
201
|
+
name: string;
|
|
202
|
+
};
|
|
203
|
+
} | {
|
|
204
|
+
type: 'let';
|
|
205
|
+
args: {
|
|
206
|
+
bindings: QueryPlanBinding[];
|
|
207
|
+
expr: QueryPlanNode;
|
|
208
|
+
};
|
|
209
|
+
} | {
|
|
210
|
+
type: 'getFirstNonEmpty';
|
|
211
|
+
args: {
|
|
212
|
+
names: string[];
|
|
213
|
+
};
|
|
214
|
+
} | {
|
|
215
|
+
type: 'query';
|
|
216
|
+
args: QueryPlanDbQuery;
|
|
217
|
+
} | {
|
|
218
|
+
type: 'execute';
|
|
219
|
+
args: QueryPlanDbQuery;
|
|
220
|
+
} | {
|
|
221
|
+
type: 'reverse';
|
|
222
|
+
args: QueryPlanNode;
|
|
223
|
+
} | {
|
|
224
|
+
type: 'sum';
|
|
225
|
+
args: QueryPlanNode[];
|
|
226
|
+
} | {
|
|
227
|
+
type: 'concat';
|
|
228
|
+
args: QueryPlanNode[];
|
|
229
|
+
} | {
|
|
230
|
+
type: 'unique';
|
|
231
|
+
args: QueryPlanNode;
|
|
232
|
+
} | {
|
|
233
|
+
type: 'required';
|
|
234
|
+
args: QueryPlanNode;
|
|
235
|
+
} | {
|
|
236
|
+
type: 'join';
|
|
237
|
+
args: {
|
|
238
|
+
parent: QueryPlanNode;
|
|
239
|
+
children: JoinExpression[];
|
|
240
|
+
};
|
|
241
|
+
} | {
|
|
242
|
+
type: 'mapField';
|
|
243
|
+
args: {
|
|
244
|
+
field: string;
|
|
245
|
+
records: QueryPlanNode;
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
declare type Result<T> = {
|
|
250
|
+
map<U>(fn: (value: T) => U): Result<U>;
|
|
251
|
+
flatMap<U>(fn: (value: T) => Result<U>): Result<U>;
|
|
252
|
+
} & ({
|
|
253
|
+
readonly ok: true;
|
|
254
|
+
readonly value: T;
|
|
255
|
+
} | {
|
|
256
|
+
readonly ok: false;
|
|
257
|
+
readonly error: Error_2;
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
declare interface ResultSet {
|
|
261
|
+
/**
|
|
262
|
+
* List of column types appearing in a database query, in the same order as `columnNames`.
|
|
263
|
+
* They are used within the Query Engine to convert values from JS to Quaint values.
|
|
264
|
+
*/
|
|
265
|
+
columnTypes: Array<ColumnType>;
|
|
266
|
+
/**
|
|
267
|
+
* List of column names appearing in a database query, in the same order as `columnTypes`.
|
|
268
|
+
*/
|
|
269
|
+
columnNames: Array<string>;
|
|
270
|
+
/**
|
|
271
|
+
* List of rows retrieved from a database query.
|
|
272
|
+
* Each row is a list of values, whose length matches `columnNames` and `columnTypes`.
|
|
273
|
+
*/
|
|
274
|
+
rows: Array<Array<unknown>>;
|
|
275
|
+
/**
|
|
276
|
+
* The last ID of an `INSERT` statement, if any.
|
|
277
|
+
* This is required for `AUTO_INCREMENT` columns in databases based on MySQL and SQLite.
|
|
278
|
+
*/
|
|
279
|
+
lastInsertId?: string;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
declare interface Transaction extends Queryable {
|
|
283
|
+
/**
|
|
284
|
+
* Transaction options.
|
|
285
|
+
*/
|
|
286
|
+
readonly options: TransactionOptions;
|
|
287
|
+
/**
|
|
288
|
+
* Commit the transaction.
|
|
289
|
+
*/
|
|
290
|
+
commit(): Promise<Result<void>>;
|
|
291
|
+
/**
|
|
292
|
+
* Rolls back the transaction.
|
|
293
|
+
*/
|
|
294
|
+
rollback(): Promise<Result<void>>;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
declare interface TransactionContext extends Queryable {
|
|
298
|
+
/**
|
|
299
|
+
* Starts new transaction.
|
|
300
|
+
*/
|
|
301
|
+
startTransaction(): Promise<Result<Transaction>>;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
declare type TransactionHeaders = {
|
|
305
|
+
traceparent?: string;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
export declare class TransactionManager {
|
|
309
|
+
private transactions;
|
|
310
|
+
private closedTransactions;
|
|
311
|
+
private readonly driverAdapter;
|
|
312
|
+
private readonly clientVersion;
|
|
313
|
+
constructor({ driverAdapter, clientVersion }: {
|
|
314
|
+
driverAdapter: DriverAdapter;
|
|
315
|
+
clientVersion: string;
|
|
316
|
+
});
|
|
317
|
+
startTransaction(options: Tx.Options): Promise<Tx.InteractiveTransactionInfo<undefined>>;
|
|
318
|
+
commitTransaction(transactionId: string): Promise<void>;
|
|
319
|
+
rollbackTransaction(transactionId: string): Promise<void>;
|
|
320
|
+
getTransaction(txInfo: Tx.InteractiveTransactionInfo<unknown>, operation: string): Transaction;
|
|
321
|
+
private getActiveTransaction;
|
|
322
|
+
private startTransactionTimeout;
|
|
323
|
+
private closeTransaction;
|
|
324
|
+
private validateOptions;
|
|
325
|
+
private requiresSettingIsolationLevelFirst;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
declare type TransactionOptions = {
|
|
329
|
+
usePhantomQuery: boolean;
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
declare namespace Tx {
|
|
333
|
+
export {
|
|
334
|
+
IsolationLevel,
|
|
335
|
+
Options,
|
|
336
|
+
InteractiveTransactionInfo,
|
|
337
|
+
TransactionHeaders
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export { }
|