@prisma/client-engine-runtime 6.4.0-dev.49 → 6.4.0-dev.50

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.
@@ -0,0 +1,75 @@
1
+ export type PrismaValuePlaceholder = {
2
+ prisma__type: 'param';
3
+ prisma__value: {
4
+ name: string;
5
+ type: string;
6
+ };
7
+ };
8
+ export declare function isPrismaValuePlaceholder(value: unknown): value is PrismaValuePlaceholder;
9
+ export type PrismaValue = string | boolean | number | PrismaValue[] | null | Record<string, unknown> | PrismaValuePlaceholder;
10
+ export type QueryPlanBinding = {
11
+ name: string;
12
+ expr: QueryPlanNode;
13
+ };
14
+ export type QueryPlanDbQuery = {
15
+ query: string;
16
+ params: PrismaValue[];
17
+ };
18
+ export type JoinExpression = {
19
+ child: QueryPlanNode;
20
+ on: [left: string, right: string][];
21
+ parentField: string;
22
+ };
23
+ export type QueryPlanNode = {
24
+ type: 'seq';
25
+ args: QueryPlanNode[];
26
+ } | {
27
+ type: 'get';
28
+ args: {
29
+ name: string;
30
+ };
31
+ } | {
32
+ type: 'let';
33
+ args: {
34
+ bindings: QueryPlanBinding[];
35
+ expr: QueryPlanNode;
36
+ };
37
+ } | {
38
+ type: 'getFirstNonEmpty';
39
+ args: {
40
+ names: string[];
41
+ };
42
+ } | {
43
+ type: 'query';
44
+ args: QueryPlanDbQuery;
45
+ } | {
46
+ type: 'execute';
47
+ args: QueryPlanDbQuery;
48
+ } | {
49
+ type: 'reverse';
50
+ args: QueryPlanNode;
51
+ } | {
52
+ type: 'sum';
53
+ args: QueryPlanNode[];
54
+ } | {
55
+ type: 'concat';
56
+ args: QueryPlanNode[];
57
+ } | {
58
+ type: 'unique';
59
+ args: QueryPlanNode;
60
+ } | {
61
+ type: 'required';
62
+ args: QueryPlanNode;
63
+ } | {
64
+ type: 'join';
65
+ args: {
66
+ parent: QueryPlanNode;
67
+ children: JoinExpression[];
68
+ };
69
+ } | {
70
+ type: 'mapField';
71
+ args: {
72
+ field: string;
73
+ records: QueryPlanNode;
74
+ };
75
+ };
@@ -0,0 +1,6 @@
1
+ export type QueryEvent = {
2
+ timestamp: Date;
3
+ query: string;
4
+ params: unknown[];
5
+ duration: number;
6
+ };
package/dist/index.d.mts CHANGED
@@ -1,105 +1,8 @@
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';
1
+ import { DriverAdapter } from '@prisma/driver-adapter-utils';
2
+ import { Queryable } from '@prisma/driver-adapter-utils';
3
+ import { Transaction } from '@prisma/driver-adapter-utils';
7
4
 
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 {
5
+ export declare const enum IsolationLevel {
103
6
  ReadUncommitted = "ReadUncommitted",
104
7
  ReadCommitted = "ReadCommitted",
105
8
  RepeatableRead = "RepeatableRead",
@@ -115,14 +18,6 @@ export declare type JoinExpression = {
115
18
  parentField: string;
116
19
  };
117
20
 
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
21
  export declare type PrismaValue = string | boolean | number | PrismaValue[] | null | Record<string, unknown> | PrismaValuePlaceholder;
127
22
 
128
23
  export declare type PrismaValuePlaceholder = {
@@ -133,40 +28,11 @@ export declare type PrismaValuePlaceholder = {
133
28
  };
134
29
  };
135
30
 
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 = {
31
+ export declare type QueryEvent = {
165
32
  timestamp: Date;
166
33
  query: string;
167
- params: string;
34
+ params: unknown[];
168
35
  duration: number;
169
- target: string;
170
36
  };
171
37
 
172
38
  export declare class QueryInterpreter {
@@ -246,78 +112,21 @@ export declare type QueryPlanNode = {
246
112
  };
247
113
  };
248
114
 
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;
115
+ export declare type TransactionInfo = {
116
+ id: string;
306
117
  };
307
118
 
308
119
  export declare class TransactionManager {
309
120
  private transactions;
310
121
  private closedTransactions;
311
122
  private readonly driverAdapter;
312
- private readonly clientVersion;
313
- constructor({ driverAdapter, clientVersion }: {
123
+ constructor({ driverAdapter }: {
314
124
  driverAdapter: DriverAdapter;
315
- clientVersion: string;
316
125
  });
317
- startTransaction(options: Tx.Options): Promise<Tx.InteractiveTransactionInfo<undefined>>;
126
+ startTransaction(options: TransactionOptions): Promise<TransactionInfo>;
318
127
  commitTransaction(transactionId: string): Promise<void>;
319
128
  rollbackTransaction(transactionId: string): Promise<void>;
320
- getTransaction(txInfo: Tx.InteractiveTransactionInfo<unknown>, operation: string): Transaction;
129
+ getTransaction(txInfo: TransactionInfo, operation: string): Transaction;
321
130
  private getActiveTransaction;
322
131
  cancelAllTransactions(): Promise<void>;
323
132
  private startTransactionTimeout;
@@ -326,17 +135,16 @@ export declare class TransactionManager {
326
135
  private requiresSettingIsolationLevelFirst;
327
136
  }
328
137
 
329
- declare type TransactionOptions = {
330
- usePhantomQuery: boolean;
331
- };
332
-
333
- declare namespace Tx {
334
- export {
335
- IsolationLevel,
336
- Options,
337
- InteractiveTransactionInfo,
338
- TransactionHeaders
339
- }
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);
340
142
  }
341
143
 
144
+ export declare type TransactionOptions = {
145
+ maxWait?: number;
146
+ timeout?: number;
147
+ isolationLevel?: IsolationLevel;
148
+ };
149
+
342
150
  export { }
package/dist/index.d.ts CHANGED
@@ -1,105 +1,8 @@
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';
1
+ import { DriverAdapter } from '@prisma/driver-adapter-utils';
2
+ import { Queryable } from '@prisma/driver-adapter-utils';
3
+ import { Transaction } from '@prisma/driver-adapter-utils';
7
4
 
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 {
5
+ export declare const enum IsolationLevel {
103
6
  ReadUncommitted = "ReadUncommitted",
104
7
  ReadCommitted = "ReadCommitted",
105
8
  RepeatableRead = "RepeatableRead",
@@ -115,14 +18,6 @@ export declare type JoinExpression = {
115
18
  parentField: string;
116
19
  };
117
20
 
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
21
  export declare type PrismaValue = string | boolean | number | PrismaValue[] | null | Record<string, unknown> | PrismaValuePlaceholder;
127
22
 
128
23
  export declare type PrismaValuePlaceholder = {
@@ -133,40 +28,11 @@ export declare type PrismaValuePlaceholder = {
133
28
  };
134
29
  };
135
30
 
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 = {
31
+ export declare type QueryEvent = {
165
32
  timestamp: Date;
166
33
  query: string;
167
- params: string;
34
+ params: unknown[];
168
35
  duration: number;
169
- target: string;
170
36
  };
171
37
 
172
38
  export declare class QueryInterpreter {
@@ -246,78 +112,21 @@ export declare type QueryPlanNode = {
246
112
  };
247
113
  };
248
114
 
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;
115
+ export declare type TransactionInfo = {
116
+ id: string;
306
117
  };
307
118
 
308
119
  export declare class TransactionManager {
309
120
  private transactions;
310
121
  private closedTransactions;
311
122
  private readonly driverAdapter;
312
- private readonly clientVersion;
313
- constructor({ driverAdapter, clientVersion }: {
123
+ constructor({ driverAdapter }: {
314
124
  driverAdapter: DriverAdapter;
315
- clientVersion: string;
316
125
  });
317
- startTransaction(options: Tx.Options): Promise<Tx.InteractiveTransactionInfo<undefined>>;
126
+ startTransaction(options: TransactionOptions): Promise<TransactionInfo>;
318
127
  commitTransaction(transactionId: string): Promise<void>;
319
128
  rollbackTransaction(transactionId: string): Promise<void>;
320
- getTransaction(txInfo: Tx.InteractiveTransactionInfo<unknown>, operation: string): Transaction;
129
+ getTransaction(txInfo: TransactionInfo, operation: string): Transaction;
321
130
  private getActiveTransaction;
322
131
  cancelAllTransactions(): Promise<void>;
323
132
  private startTransactionTimeout;
@@ -326,17 +135,16 @@ export declare class TransactionManager {
326
135
  private requiresSettingIsolationLevelFirst;
327
136
  }
328
137
 
329
- declare type TransactionOptions = {
330
- usePhantomQuery: boolean;
331
- };
332
-
333
- declare namespace Tx {
334
- export {
335
- IsolationLevel,
336
- Options,
337
- InteractiveTransactionInfo,
338
- TransactionHeaders
339
- }
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);
340
142
  }
341
143
 
144
+ export declare type TransactionOptions = {
145
+ maxWait?: number;
146
+ timeout?: number;
147
+ isolationLevel?: IsolationLevel;
148
+ };
149
+
342
150
  export { }