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.
- package/README.md +175 -70
- package/dist/compat/errors.d.ts +1 -0
- package/dist/compat/errors.d.ts.map +1 -1
- package/dist/compat/errors.js +37 -0
- package/dist/compat/index.d.ts +2 -0
- package/dist/compat/index.d.ts.map +1 -1
- package/dist/compat/index.js +7 -1
- package/dist/compat/knex.d.ts +4 -0
- package/dist/compat/knex.d.ts.map +1 -0
- package/dist/compat/knex.js +34 -0
- package/dist/compat/mysql2.d.ts.map +1 -1
- package/dist/compat/mysql2.js +58 -12
- package/dist/compat/pg.d.ts.map +1 -1
- package/dist/compat/pg.js +49 -37
- package/dist/compat/prisma-params.d.ts +24 -0
- package/dist/compat/prisma-params.d.ts.map +1 -0
- package/dist/compat/prisma-params.js +99 -0
- package/dist/compat/prisma-types.d.ts +34 -0
- package/dist/compat/prisma-types.d.ts.map +1 -0
- package/dist/compat/prisma-types.js +132 -0
- package/dist/compat/prisma.d.ts +53 -0
- package/dist/compat/prisma.d.ts.map +1 -0
- package/dist/compat/prisma.js +121 -0
- package/dist/compat/transaction-sql.d.ts +21 -0
- package/dist/compat/transaction-sql.d.ts.map +1 -0
- package/dist/compat/transaction-sql.js +33 -0
- package/dist/params.d.ts +1 -1
- package/dist/params.d.ts.map +1 -1
- package/dist/params.js +9 -7
- package/dist/results.js +3 -3
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +38 -6
package/dist/compat/mysql2.js
CHANGED
|
@@ -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
|
|
141
|
-
|
|
142
|
-
|
|
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
|
|
152
|
-
|
|
153
|
-
|
|
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
|
|
344
|
-
|
|
345
|
-
|
|
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
|
|
355
|
-
|
|
356
|
-
|
|
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
|
}
|
package/dist/compat/pg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/compat/pg.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,KAAK,EAAE,mBAAmB,EAAoD,MAAM,UAAU,CAAA;AACrG,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
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
|
-
|
|
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
|
|
140
|
-
if (
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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"}
|