data-api-client 2.2.0 → 2.4.0

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.
@@ -9,6 +9,7 @@ const events_1 = require("events");
9
9
  const sqlstring_1 = __importDefault(require("sqlstring"));
10
10
  const client_1 = require("../client");
11
11
  const errors_1 = require("./errors");
12
+ const transaction_sql_1 = require("./transaction-sql");
12
13
  function formatMySQLQuery(sql, params = []) {
13
14
  return sqlstring_1.default.format(sql, params);
14
15
  }
@@ -72,6 +73,10 @@ function createMySQLConnection(config) {
72
73
  const eventEmitter = new events_1.EventEmitter();
73
74
  let transactionId;
74
75
  async function executeQuery(sqlOrOptions, params) {
76
+ const rawSql = typeof sqlOrOptions === 'string' ? sqlOrOptions : sqlOrOptions.sql;
77
+ const txControl = await runTransactionControl(rawSql);
78
+ if (txControl)
79
+ return txControl;
75
80
  let sql;
76
81
  let values = [];
77
82
  let rowsAsArray = false;
@@ -107,6 +112,39 @@ function createMySQLConnection(config) {
107
112
  const result = await core.query(queryOptions);
108
113
  return convertToMySQL2Result(result, sql);
109
114
  }
115
+ async function runTransactionControl(sql) {
116
+ const txn = (0, transaction_sql_1.classifyTransactionControl)(sql);
117
+ if (!txn)
118
+ return null;
119
+ const empty = [[], undefined];
120
+ switch (txn.kind) {
121
+ case 'begin': {
122
+ const txResult = await core.beginTransaction();
123
+ transactionId = txResult.transactionId;
124
+ return empty;
125
+ }
126
+ case 'commit': {
127
+ if (transactionId) {
128
+ await core.commitTransaction({ transactionId });
129
+ transactionId = undefined;
130
+ }
131
+ return empty;
132
+ }
133
+ case 'rollback': {
134
+ if (transactionId) {
135
+ await core.rollbackTransaction({ transactionId });
136
+ transactionId = undefined;
137
+ }
138
+ return empty;
139
+ }
140
+ case 'setTransaction':
141
+ return empty;
142
+ case 'savepoint':
143
+ case 'release':
144
+ case 'rollbackTo':
145
+ throw new Error(transaction_sql_1.NESTED_TRANSACTION_MESSAGE);
146
+ }
147
+ }
110
148
  const connection = Object.assign(eventEmitter, {
111
149
  connect(callback) {
112
150
  if (callback) {
@@ -137,9 +175,11 @@ function createMySQLConnection(config) {
137
175
  if (typeof paramsOrCallback === 'function') {
138
176
  cb = paramsOrCallback;
139
177
  }
140
- else if (paramsOrCallback !== undefined) {
141
- params = paramsOrCallback;
142
- if (callback !== undefined) {
178
+ else {
179
+ if (paramsOrCallback !== undefined && paramsOrCallback !== null) {
180
+ params = paramsOrCallback;
181
+ }
182
+ if (typeof callback === 'function') {
143
183
  cb = callback;
144
184
  }
145
185
  }
@@ -148,9 +188,11 @@ function createMySQLConnection(config) {
148
188
  if (typeof paramsOrCallback === 'function') {
149
189
  cb = paramsOrCallback;
150
190
  }
151
- else if (paramsOrCallback !== undefined) {
152
- params = paramsOrCallback;
153
- if (callback !== undefined) {
191
+ else {
192
+ if (paramsOrCallback !== undefined && paramsOrCallback !== null) {
193
+ params = paramsOrCallback;
194
+ }
195
+ if (typeof callback === 'function') {
154
196
  cb = callback;
155
197
  }
156
198
  }
@@ -340,9 +382,11 @@ function createMySQLPool(config) {
340
382
  if (typeof paramsOrCallback === 'function') {
341
383
  cb = paramsOrCallback;
342
384
  }
343
- else if (paramsOrCallback !== undefined) {
344
- params = paramsOrCallback;
345
- if (callback !== undefined) {
385
+ else {
386
+ if (paramsOrCallback !== undefined && paramsOrCallback !== null) {
387
+ params = paramsOrCallback;
388
+ }
389
+ if (typeof callback === 'function') {
346
390
  cb = callback;
347
391
  }
348
392
  }
@@ -351,9 +395,11 @@ function createMySQLPool(config) {
351
395
  if (typeof paramsOrCallback === 'function') {
352
396
  cb = paramsOrCallback;
353
397
  }
354
- else if (paramsOrCallback !== undefined) {
355
- params = paramsOrCallback;
356
- if (callback !== undefined) {
398
+ else {
399
+ if (paramsOrCallback !== undefined && paramsOrCallback !== null) {
400
+ params = paramsOrCallback;
401
+ }
402
+ if (typeof callback === 'function') {
357
403
  cb = callback;
358
404
  }
359
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/compat/pg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/compat/pg.ts"],"names":[],"mappings":"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"}
package/dist/compat/pg.js CHANGED
@@ -39,6 +39,7 @@ const events_1 = require("events");
39
39
  const pgEscape = __importStar(require("../pg-escape"));
40
40
  const client_1 = require("../client");
41
41
  const errors_1 = require("./errors");
42
+ const transaction_sql_1 = require("./transaction-sql");
42
43
  function convertPgPlaceholders(sql, params = []) {
43
44
  const namedParams = {};
44
45
  const convertedSql = sql.replace(/\$(\d+)/g, (match, index) => {
@@ -54,7 +55,6 @@ function convertPgPlaceholders(sql, params = []) {
54
55
  }
55
56
  function inferCommand(sql) {
56
57
  var _a;
57
- const match = (_a = sql.trim().split(/\s+/)[0]) === null || _a === void 0 ? void 0 : _a.toUpperCase();
58
58
  const knownCommands = [
59
59
  'SELECT',
60
60
  'INSERT',
@@ -67,7 +67,23 @@ function inferCommand(sql) {
67
67
  'GRANT',
68
68
  'REVOKE'
69
69
  ];
70
- return knownCommands.includes(match) ? match : 'QUERY';
70
+ const first = (_a = sql.trim().split(/\s+/)[0]) === null || _a === void 0 ? void 0 : _a.toUpperCase();
71
+ if (first && knownCommands.includes(first))
72
+ return first;
73
+ if (first === 'WITH') {
74
+ let depth = 0;
75
+ const re = /\(|\)|\b(SELECT|INSERT|UPDATE|DELETE)\b/gi;
76
+ let m;
77
+ while ((m = re.exec(sql)) !== null) {
78
+ if (m[0] === '(')
79
+ depth++;
80
+ else if (m[0] === ')')
81
+ depth--;
82
+ else if (depth === 0)
83
+ return m[1].toUpperCase();
84
+ }
85
+ }
86
+ return 'QUERY';
71
87
  }
72
88
  function convertToPgResult(result, sql, rowMode) {
73
89
  if (result.records && Array.isArray(result.records)) {
@@ -136,40 +152,36 @@ function createPgClient(config) {
136
152
  values = params !== undefined ? params : sqlOrConfig.values || [];
137
153
  rowMode = sqlOrConfig.rowMode;
138
154
  }
139
- const upperSql = sql.trim().toUpperCase();
140
- if (upperSql === 'BEGIN' || upperSql.startsWith('BEGIN ')) {
141
- const txResult = await core.beginTransaction();
142
- transactionId = txResult.transactionId;
143
- return {
144
- rows: [],
145
- rowCount: 0,
146
- command: 'BEGIN',
147
- fields: []
148
- };
149
- }
150
- if (upperSql === 'COMMIT') {
151
- if (transactionId) {
152
- await core.commitTransaction({ transactionId });
153
- transactionId = undefined;
154
- }
155
- return {
156
- rows: [],
157
- rowCount: 0,
158
- command: 'COMMIT',
159
- fields: []
160
- };
161
- }
162
- if (upperSql === 'ROLLBACK') {
163
- if (transactionId) {
164
- await core.rollbackTransaction({ transactionId });
165
- transactionId = undefined;
155
+ const txn = (0, transaction_sql_1.classifyTransactionControl)(sql);
156
+ if (txn) {
157
+ const empty = (command) => ({ rows: [], rowCount: 0, command, fields: [] });
158
+ switch (txn.kind) {
159
+ case 'begin': {
160
+ const txResult = await core.beginTransaction();
161
+ transactionId = txResult.transactionId;
162
+ return empty('BEGIN');
163
+ }
164
+ case 'commit': {
165
+ if (transactionId) {
166
+ await core.commitTransaction({ transactionId });
167
+ transactionId = undefined;
168
+ }
169
+ return empty('COMMIT');
170
+ }
171
+ case 'rollback': {
172
+ if (transactionId) {
173
+ await core.rollbackTransaction({ transactionId });
174
+ transactionId = undefined;
175
+ }
176
+ return empty('ROLLBACK');
177
+ }
178
+ case 'setTransaction':
179
+ return empty('SET');
180
+ case 'savepoint':
181
+ case 'release':
182
+ case 'rollbackTo':
183
+ throw new Error(transaction_sql_1.NESTED_TRANSACTION_MESSAGE);
166
184
  }
167
- return {
168
- rows: [],
169
- rowCount: 0,
170
- command: 'ROLLBACK',
171
- fields: []
172
- };
173
185
  }
174
186
  const { sql: convertedSql, params: namedParams } = convertPgPlaceholders(sql, values);
175
187
  const queryOptions = {
@@ -224,7 +236,7 @@ function createPgClient(config) {
224
236
  if (typeof sqlOrConfig === 'object' && 'submit' in sqlOrConfig) {
225
237
  throw new Error('Query streams are not supported by RDS Data API');
226
238
  }
227
- let params = [];
239
+ let params;
228
240
  let cb;
229
241
  if (typeof sqlOrConfig === 'object' && 'text' in sqlOrConfig) {
230
242
  if (typeof paramsOrCallback === 'function') {
@@ -344,7 +356,7 @@ function createPgPool(config) {
344
356
  if (typeof sqlOrConfig === 'object' && 'submit' in sqlOrConfig) {
345
357
  throw new Error('Query streams are not supported by RDS Data API');
346
358
  }
347
- let params = [];
359
+ let params;
348
360
  let cb;
349
361
  if (typeof sqlOrConfig === 'object' && 'text' in sqlOrConfig) {
350
362
  if (typeof paramsOrCallback === 'function') {
@@ -0,0 +1,24 @@
1
+ import type { Engine } from './prisma-types';
2
+ export type Arity = 'scalar' | 'list';
3
+ export interface PrismaArgType {
4
+ scalarType: string;
5
+ arity: Arity;
6
+ dbType?: string;
7
+ }
8
+ export interface PrismaSqlQuery {
9
+ sql: string;
10
+ args: unknown[];
11
+ argTypes: PrismaArgType[];
12
+ }
13
+ export interface DataApiParam {
14
+ name: string;
15
+ value: Record<string, unknown>;
16
+ typeHint?: string;
17
+ cast?: string;
18
+ }
19
+ export interface BuiltQuery {
20
+ sql: string;
21
+ parameters: DataApiParam[];
22
+ }
23
+ export declare function buildQuery(query: PrismaSqlQuery, engine: Engine): BuiltQuery;
24
+ //# sourceMappingURL=prisma-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-params.d.ts","sourceRoot":"","sources":["../../src/compat/prisma-params.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AACrC,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AACD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B;AACD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,YAAY,EAAE,CAAA;CAC3B;AA+DD,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CA+C5E"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildQuery = buildQuery;
4
+ function escapeRe(s) {
5
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
6
+ }
7
+ const PG_EMPTY_ARRAY_CAST = {
8
+ int: 'bigint',
9
+ bigint: 'bigint',
10
+ float: 'double precision',
11
+ decimal: 'numeric',
12
+ boolean: 'boolean',
13
+ uuid: 'uuid',
14
+ datetime: 'timestamp',
15
+ string: 'text',
16
+ enum: 'text'
17
+ };
18
+ function buildScalarParam(name, value, argType) {
19
+ if (value === null || value === undefined) {
20
+ return { name, value: { isNull: true } };
21
+ }
22
+ switch (argType.scalarType) {
23
+ case 'int':
24
+ return { name, value: { longValue: Number(value) } };
25
+ case 'bigint': {
26
+ const n = typeof value === 'bigint' ? value : BigInt(value);
27
+ if (n > BigInt(Number.MAX_SAFE_INTEGER) || n < BigInt(Number.MIN_SAFE_INTEGER)) {
28
+ return { name, value: { stringValue: n.toString() } };
29
+ }
30
+ return { name, value: { longValue: Number(n) } };
31
+ }
32
+ case 'float':
33
+ return { name, value: { doubleValue: Number(value) } };
34
+ case 'decimal':
35
+ return { name, value: { stringValue: String(value) }, typeHint: 'DECIMAL' };
36
+ case 'boolean':
37
+ return { name, value: { booleanValue: Boolean(value) } };
38
+ case 'uuid':
39
+ return { name, value: { stringValue: String(value) }, typeHint: 'UUID' };
40
+ case 'json':
41
+ return {
42
+ name,
43
+ value: { stringValue: typeof value === 'string' ? value : JSON.stringify(value) },
44
+ typeHint: 'JSON'
45
+ };
46
+ case 'datetime': {
47
+ const d = value instanceof Date ? value : new Date(value);
48
+ const iso = d.toISOString().replace('T', ' ').replace('Z', '');
49
+ return { name, value: { stringValue: iso }, typeHint: 'TIMESTAMP' };
50
+ }
51
+ case 'bytes': {
52
+ const buf = typeof value === 'string' ? Buffer.from(value, 'base64') : Buffer.from(value);
53
+ return { name, value: { blobValue: buf } };
54
+ }
55
+ case 'enum':
56
+ case 'string':
57
+ default:
58
+ return { name, value: { stringValue: String(value) } };
59
+ }
60
+ }
61
+ function buildQuery(query, engine) {
62
+ let sql;
63
+ if (engine === 'pg') {
64
+ sql = query.sql.replace(/\$(\d+)/g, (_m, n) => `:p${n}`);
65
+ }
66
+ else {
67
+ let i = 0;
68
+ sql = query.sql.replace(/\?/g, () => `:p${++i}`);
69
+ }
70
+ const parameters = [];
71
+ query.args.forEach((arg, idx) => {
72
+ var _a, _b;
73
+ const argType = (_a = query.argTypes[idx]) !== null && _a !== void 0 ? _a : { scalarType: 'unknown', arity: 'scalar' };
74
+ const name = `p${idx + 1}`;
75
+ const isPgArray = engine === 'pg' && Array.isArray(arg) && argType.scalarType !== 'json';
76
+ if (isPgArray) {
77
+ const elements = arg;
78
+ const placeholder = `:p${idx + 1}`;
79
+ if (elements.length === 0) {
80
+ const cast = (_b = PG_EMPTY_ARRAY_CAST[argType.scalarType]) !== null && _b !== void 0 ? _b : 'text';
81
+ sql = sql.replace(new RegExp(escapeRe(placeholder) + '\\b', 'g'), `ARRAY[]::${cast}[]`);
82
+ return;
83
+ }
84
+ const names = elements.map((el, k) => {
85
+ const pname = `p${idx + 1}_${k}`;
86
+ parameters.push(buildScalarParam(pname, el, { ...argType, arity: 'scalar' }));
87
+ return `:${pname}`;
88
+ });
89
+ sql = sql.replace(new RegExp(escapeRe(placeholder) + '\\b', 'g'), `ARRAY[${names.join(', ')}]`);
90
+ return;
91
+ }
92
+ const param = buildScalarParam(name, arg, argType);
93
+ if (engine === 'pg' && argType.scalarType === 'json') {
94
+ param.cast = 'jsonb';
95
+ }
96
+ parameters.push(param);
97
+ });
98
+ return { sql, parameters };
99
+ }
@@ -0,0 +1,34 @@
1
+ export declare const ColumnType: {
2
+ readonly Int32: 0;
3
+ readonly Int64: 1;
4
+ readonly Float: 2;
5
+ readonly Double: 3;
6
+ readonly Numeric: 4;
7
+ readonly Boolean: 5;
8
+ readonly Character: 6;
9
+ readonly Text: 7;
10
+ readonly Date: 8;
11
+ readonly Time: 9;
12
+ readonly DateTime: 10;
13
+ readonly Json: 11;
14
+ readonly Enum: 12;
15
+ readonly Bytes: 13;
16
+ readonly Uuid: 15;
17
+ readonly Int32Array: 64;
18
+ readonly Int64Array: 65;
19
+ readonly FloatArray: 66;
20
+ readonly DoubleArray: 67;
21
+ readonly NumericArray: 68;
22
+ readonly BooleanArray: 69;
23
+ readonly CharacterArray: 70;
24
+ readonly TextArray: 71;
25
+ readonly DateArray: 72;
26
+ readonly TimeArray: 73;
27
+ readonly DateTimeArray: 74;
28
+ readonly JsonArray: 75;
29
+ readonly BytesArray: 77;
30
+ readonly UuidArray: 78;
31
+ };
32
+ export type Engine = 'pg' | 'mysql';
33
+ export declare function mapColumnType(typeName: string, engine: Engine): number;
34
+ //# sourceMappingURL=prisma-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-types.d.ts","sourceRoot":"","sources":["../../src/compat/prisma-types.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Bb,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAA;AAkGnC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -0,0 +1,132 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnType = void 0;
4
+ exports.mapColumnType = mapColumnType;
5
+ exports.ColumnType = {
6
+ Int32: 0,
7
+ Int64: 1,
8
+ Float: 2,
9
+ Double: 3,
10
+ Numeric: 4,
11
+ Boolean: 5,
12
+ Character: 6,
13
+ Text: 7,
14
+ Date: 8,
15
+ Time: 9,
16
+ DateTime: 10,
17
+ Json: 11,
18
+ Enum: 12,
19
+ Bytes: 13,
20
+ Uuid: 15,
21
+ Int32Array: 64,
22
+ Int64Array: 65,
23
+ FloatArray: 66,
24
+ DoubleArray: 67,
25
+ NumericArray: 68,
26
+ BooleanArray: 69,
27
+ CharacterArray: 70,
28
+ TextArray: 71,
29
+ DateArray: 72,
30
+ TimeArray: 73,
31
+ DateTimeArray: 74,
32
+ JsonArray: 75,
33
+ BytesArray: 77,
34
+ UuidArray: 78
35
+ };
36
+ const PG_ARRAY = {
37
+ _int2: exports.ColumnType.Int32Array,
38
+ _int4: exports.ColumnType.Int32Array,
39
+ _int8: exports.ColumnType.Int64Array,
40
+ _float4: exports.ColumnType.FloatArray,
41
+ _float8: exports.ColumnType.DoubleArray,
42
+ _numeric: exports.ColumnType.NumericArray,
43
+ _bool: exports.ColumnType.BooleanArray,
44
+ _text: exports.ColumnType.TextArray,
45
+ _varchar: exports.ColumnType.TextArray,
46
+ _bpchar: exports.ColumnType.TextArray,
47
+ _uuid: exports.ColumnType.UuidArray,
48
+ _json: exports.ColumnType.JsonArray,
49
+ _jsonb: exports.ColumnType.JsonArray,
50
+ _timestamp: exports.ColumnType.DateTimeArray,
51
+ _timestamptz: exports.ColumnType.DateTimeArray,
52
+ _date: exports.ColumnType.DateArray,
53
+ _time: exports.ColumnType.TimeArray,
54
+ _bytea: exports.ColumnType.BytesArray
55
+ };
56
+ const PG_SCALAR = {
57
+ int2: exports.ColumnType.Int32,
58
+ int4: exports.ColumnType.Int32,
59
+ serial: exports.ColumnType.Int32,
60
+ int8: exports.ColumnType.Int64,
61
+ bigserial: exports.ColumnType.Int64,
62
+ float4: exports.ColumnType.Float,
63
+ float8: exports.ColumnType.Double,
64
+ numeric: exports.ColumnType.Numeric,
65
+ money: exports.ColumnType.Numeric,
66
+ bool: exports.ColumnType.Boolean,
67
+ text: exports.ColumnType.Text,
68
+ varchar: exports.ColumnType.Text,
69
+ bpchar: exports.ColumnType.Text,
70
+ name: exports.ColumnType.Text,
71
+ citext: exports.ColumnType.Text,
72
+ char: exports.ColumnType.Character,
73
+ date: exports.ColumnType.Date,
74
+ time: exports.ColumnType.Time,
75
+ timetz: exports.ColumnType.Time,
76
+ timestamp: exports.ColumnType.DateTime,
77
+ timestamptz: exports.ColumnType.DateTime,
78
+ json: exports.ColumnType.Json,
79
+ jsonb: exports.ColumnType.Json,
80
+ uuid: exports.ColumnType.Uuid,
81
+ bytea: exports.ColumnType.Bytes
82
+ };
83
+ function mapPg(typeName) {
84
+ const t = typeName.toLowerCase();
85
+ if (t in PG_ARRAY)
86
+ return PG_ARRAY[t];
87
+ if (t in PG_SCALAR)
88
+ return PG_SCALAR[t];
89
+ return exports.ColumnType.Text;
90
+ }
91
+ function mapMysql(typeName) {
92
+ const raw = typeName.toUpperCase();
93
+ if (raw.startsWith('TINYINT(1)'))
94
+ return exports.ColumnType.Boolean;
95
+ const t = raw.replace(/\(.*$/, '');
96
+ const map = {
97
+ TINYINT: exports.ColumnType.Int32,
98
+ SMALLINT: exports.ColumnType.Int32,
99
+ MEDIUMINT: exports.ColumnType.Int32,
100
+ INT: exports.ColumnType.Int32,
101
+ INTEGER: exports.ColumnType.Int32,
102
+ BIGINT: exports.ColumnType.Int64,
103
+ FLOAT: exports.ColumnType.Float,
104
+ DOUBLE: exports.ColumnType.Double,
105
+ DECIMAL: exports.ColumnType.Numeric,
106
+ NUMERIC: exports.ColumnType.Numeric,
107
+ BIT: exports.ColumnType.Bytes,
108
+ CHAR: exports.ColumnType.Text,
109
+ VARCHAR: exports.ColumnType.Text,
110
+ TINYTEXT: exports.ColumnType.Text,
111
+ TEXT: exports.ColumnType.Text,
112
+ MEDIUMTEXT: exports.ColumnType.Text,
113
+ LONGTEXT: exports.ColumnType.Text,
114
+ ENUM: exports.ColumnType.Enum,
115
+ DATE: exports.ColumnType.Date,
116
+ TIME: exports.ColumnType.Time,
117
+ YEAR: exports.ColumnType.Int32,
118
+ DATETIME: exports.ColumnType.DateTime,
119
+ TIMESTAMP: exports.ColumnType.DateTime,
120
+ JSON: exports.ColumnType.Json,
121
+ BINARY: exports.ColumnType.Bytes,
122
+ VARBINARY: exports.ColumnType.Bytes,
123
+ TINYBLOB: exports.ColumnType.Bytes,
124
+ BLOB: exports.ColumnType.Bytes,
125
+ MEDIUMBLOB: exports.ColumnType.Bytes,
126
+ LONGBLOB: exports.ColumnType.Bytes
127
+ };
128
+ return t in map ? map[t] : exports.ColumnType.Text;
129
+ }
130
+ function mapColumnType(typeName, engine) {
131
+ return engine === 'pg' ? mapPg(typeName) : mapMysql(typeName);
132
+ }
@@ -0,0 +1,53 @@
1
+ import type { DataAPIClient, DataAPIClientConfig } from '../types';
2
+ import { type Engine } from './prisma-types';
3
+ import { type PrismaSqlQuery } from './prisma-params';
4
+ interface SqlResultSet {
5
+ columnNames: string[];
6
+ columnTypes: number[];
7
+ rows: unknown[][];
8
+ lastInsertId?: string;
9
+ }
10
+ declare class Queryable {
11
+ protected core: DataAPIClient;
12
+ protected engine: Engine;
13
+ protected transactionId?: string | undefined;
14
+ readonly provider: 'postgres' | 'mysql';
15
+ readonly adapterName = "data-api-client";
16
+ constructor(core: DataAPIClient, engine: Engine, transactionId?: string | undefined);
17
+ protected run(query: PrismaSqlQuery): Promise<any>;
18
+ queryRaw(query: PrismaSqlQuery): Promise<SqlResultSet>;
19
+ executeRaw(query: PrismaSqlQuery): Promise<number>;
20
+ }
21
+ declare class DataApiTransaction extends Queryable {
22
+ readonly options: {
23
+ usePhantomQuery: boolean;
24
+ };
25
+ constructor(core: DataAPIClient, engine: Engine, transactionId: string);
26
+ commit(): Promise<void>;
27
+ rollback(): Promise<void>;
28
+ createSavepoint(): Promise<void>;
29
+ rollbackToSavepoint(): Promise<void>;
30
+ releaseSavepoint(): Promise<void>;
31
+ }
32
+ declare class DataApiAdapter extends Queryable {
33
+ executeScript(script: string): Promise<void>;
34
+ startTransaction(): Promise<DataApiTransaction>;
35
+ getConnectionInfo(): {
36
+ supportsRelationJoins: boolean;
37
+ maxBindValues: number;
38
+ };
39
+ dispose(): Promise<void>;
40
+ }
41
+ declare class PrismaDataApiAdapterFactory {
42
+ private config;
43
+ private engine;
44
+ readonly provider: 'postgres' | 'mysql';
45
+ readonly adapterName = "data-api-client";
46
+ constructor(config: DataAPIClientConfig, engine: Engine);
47
+ connect(): Promise<DataApiAdapter>;
48
+ }
49
+ export declare function createPrismaPgAdapter(config: DataAPIClientConfig): PrismaDataApiAdapterFactory;
50
+ export declare function createPrismaMySQLAdapter(config: DataAPIClientConfig): PrismaDataApiAdapterFactory;
51
+ export declare const __AdapterForTest: typeof DataApiAdapter;
52
+ export {};
53
+ //# sourceMappingURL=prisma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/compat/prisma.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOjE,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,OAAO,EAAE,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,cAAM,SAAS;IAKX,SAAS,CAAC,IAAI,EAAE,aAAa;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM;IANlC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAA;IACvC,QAAQ,CAAC,WAAW,qBAAe;gBAGvB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,YAAA;cAKlB,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAWlD,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BtD,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAIzD;AAED,cAAM,kBAAmB,SAAQ,SAAS;IACxC,QAAQ,CAAC,OAAO;;MAA6B;gBACjC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAGhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAGzB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAGhC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGpC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC;AAED,cAAM,cAAe,SAAQ,SAAS;IAC9B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5C,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrD,iBAAiB;;;;IAIX,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,cAAM,2BAA2B;IAI7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAJhB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAA;IACvC,QAAQ,CAAC,WAAW,qBAAe;gBAEzB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,MAAM;IAIlB,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;CASzC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,2BAA2B,CAE9F;AACD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,2BAA2B,CAEjG;AAGD,eAAO,MAAM,gBAAgB,uBAAiB,CAAA"}