@prisma/client-engine-runtime 6.4.0-dev.52 → 6.4.0-integration-renovate-configure.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/index.d.mts CHANGED
@@ -1,8 +1,105 @@
1
- import { DriverAdapter } from '@prisma/driver-adapter-utils';
2
- import { Queryable } from '@prisma/driver-adapter-utils';
3
- import { Transaction } from '@prisma/driver-adapter-utils';
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';
4
7
 
5
- export declare const enum IsolationLevel {
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 {
6
103
  ReadUncommitted = "ReadUncommitted",
7
104
  ReadCommitted = "ReadCommitted",
8
105
  RepeatableRead = "RepeatableRead",
@@ -18,6 +115,14 @@ export declare type JoinExpression = {
18
115
  parentField: string;
19
116
  };
20
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
+
21
126
  export declare type PrismaValue = string | boolean | number | PrismaValue[] | null | Record<string, unknown> | PrismaValuePlaceholder;
22
127
 
23
128
  export declare type PrismaValuePlaceholder = {
@@ -28,11 +133,40 @@ export declare type PrismaValuePlaceholder = {
28
133
  };
29
134
  };
30
135
 
31
- export declare type QueryEvent = {
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 = {
32
165
  timestamp: Date;
33
166
  query: string;
34
- params: unknown[];
167
+ params: string;
35
168
  duration: number;
169
+ target: string;
36
170
  };
37
171
 
38
172
  export declare class QueryInterpreter {
@@ -112,21 +246,78 @@ export declare type QueryPlanNode = {
112
246
  };
113
247
  };
114
248
 
115
- export declare type TransactionInfo = {
116
- id: string;
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;
117
306
  };
118
307
 
119
308
  export declare class TransactionManager {
120
309
  private transactions;
121
310
  private closedTransactions;
122
311
  private readonly driverAdapter;
123
- constructor({ driverAdapter }: {
312
+ private readonly clientVersion;
313
+ constructor({ driverAdapter, clientVersion }: {
124
314
  driverAdapter: DriverAdapter;
315
+ clientVersion: string;
125
316
  });
126
- startTransaction(options: TransactionOptions): Promise<TransactionInfo>;
317
+ startTransaction(options: Tx.Options): Promise<Tx.InteractiveTransactionInfo<undefined>>;
127
318
  commitTransaction(transactionId: string): Promise<void>;
128
319
  rollbackTransaction(transactionId: string): Promise<void>;
129
- getTransaction(txInfo: TransactionInfo, operation: string): Transaction;
320
+ getTransaction(txInfo: Tx.InteractiveTransactionInfo<unknown>, operation: string): Transaction;
130
321
  private getActiveTransaction;
131
322
  cancelAllTransactions(): Promise<void>;
132
323
  private startTransactionTimeout;
@@ -135,16 +326,17 @@ export declare class TransactionManager {
135
326
  private requiresSettingIsolationLevelFirst;
136
327
  }
137
328
 
138
- export declare class TransactionManagerError extends Error {
139
- meta?: Record<string, unknown> | undefined;
140
- code: string;
141
- constructor(message: string, meta?: Record<string, unknown> | undefined);
142
- }
143
-
144
- export declare type TransactionOptions = {
145
- maxWait?: number;
146
- timeout?: number;
147
- isolationLevel?: IsolationLevel;
329
+ declare type TransactionOptions = {
330
+ usePhantomQuery: boolean;
148
331
  };
149
332
 
333
+ declare namespace Tx {
334
+ export {
335
+ IsolationLevel,
336
+ Options,
337
+ InteractiveTransactionInfo,
338
+ TransactionHeaders
339
+ }
340
+ }
341
+
150
342
  export { }
package/dist/index.d.ts CHANGED
@@ -1,8 +1,105 @@
1
- import { DriverAdapter } from '@prisma/driver-adapter-utils';
2
- import { Queryable } from '@prisma/driver-adapter-utils';
3
- import { Transaction } from '@prisma/driver-adapter-utils';
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';
4
7
 
5
- export declare const enum IsolationLevel {
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 {
6
103
  ReadUncommitted = "ReadUncommitted",
7
104
  ReadCommitted = "ReadCommitted",
8
105
  RepeatableRead = "RepeatableRead",
@@ -18,6 +115,14 @@ export declare type JoinExpression = {
18
115
  parentField: string;
19
116
  };
20
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
+
21
126
  export declare type PrismaValue = string | boolean | number | PrismaValue[] | null | Record<string, unknown> | PrismaValuePlaceholder;
22
127
 
23
128
  export declare type PrismaValuePlaceholder = {
@@ -28,11 +133,40 @@ export declare type PrismaValuePlaceholder = {
28
133
  };
29
134
  };
30
135
 
31
- export declare type QueryEvent = {
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 = {
32
165
  timestamp: Date;
33
166
  query: string;
34
- params: unknown[];
167
+ params: string;
35
168
  duration: number;
169
+ target: string;
36
170
  };
37
171
 
38
172
  export declare class QueryInterpreter {
@@ -112,21 +246,78 @@ export declare type QueryPlanNode = {
112
246
  };
113
247
  };
114
248
 
115
- export declare type TransactionInfo = {
116
- id: string;
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;
117
306
  };
118
307
 
119
308
  export declare class TransactionManager {
120
309
  private transactions;
121
310
  private closedTransactions;
122
311
  private readonly driverAdapter;
123
- constructor({ driverAdapter }: {
312
+ private readonly clientVersion;
313
+ constructor({ driverAdapter, clientVersion }: {
124
314
  driverAdapter: DriverAdapter;
315
+ clientVersion: string;
125
316
  });
126
- startTransaction(options: TransactionOptions): Promise<TransactionInfo>;
317
+ startTransaction(options: Tx.Options): Promise<Tx.InteractiveTransactionInfo<undefined>>;
127
318
  commitTransaction(transactionId: string): Promise<void>;
128
319
  rollbackTransaction(transactionId: string): Promise<void>;
129
- getTransaction(txInfo: TransactionInfo, operation: string): Transaction;
320
+ getTransaction(txInfo: Tx.InteractiveTransactionInfo<unknown>, operation: string): Transaction;
130
321
  private getActiveTransaction;
131
322
  cancelAllTransactions(): Promise<void>;
132
323
  private startTransactionTimeout;
@@ -135,16 +326,17 @@ export declare class TransactionManager {
135
326
  private requiresSettingIsolationLevelFirst;
136
327
  }
137
328
 
138
- export declare class TransactionManagerError extends Error {
139
- meta?: Record<string, unknown> | undefined;
140
- code: string;
141
- constructor(message: string, meta?: Record<string, unknown> | undefined);
142
- }
143
-
144
- export declare type TransactionOptions = {
145
- maxWait?: number;
146
- timeout?: number;
147
- isolationLevel?: IsolationLevel;
329
+ declare type TransactionOptions = {
330
+ usePhantomQuery: boolean;
148
331
  };
149
332
 
333
+ declare namespace Tx {
334
+ export {
335
+ IsolationLevel,
336
+ Options,
337
+ InteractiveTransactionInfo,
338
+ TransactionHeaders
339
+ }
340
+ }
341
+
150
342
  export { }