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.
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__AdapterForTest = void 0;
4
+ exports.createPrismaPgAdapter = createPrismaPgAdapter;
5
+ exports.createPrismaMySQLAdapter = createPrismaMySQLAdapter;
6
+ const client_1 = require("../client");
7
+ const prisma_types_1 = require("./prisma-types");
8
+ const prisma_params_1 = require("./prisma-params");
9
+ const errors_1 = require("./errors");
10
+ const PROVIDER = { pg: 'postgres', mysql: 'mysql' };
11
+ const ADAPTER_NAME = 'data-api-client';
12
+ const NESTED_TX_MESSAGE = 'Nested transactions (savepoints) are not supported over the RDS Data API.';
13
+ class Queryable {
14
+ constructor(core, engine, transactionId) {
15
+ this.core = core;
16
+ this.engine = engine;
17
+ this.transactionId = transactionId;
18
+ this.adapterName = ADAPTER_NAME;
19
+ this.provider = PROVIDER[engine];
20
+ }
21
+ async run(query) {
22
+ const { sql, parameters } = (0, prisma_params_1.buildQuery)(query, this.engine);
23
+ const opts = { sql, parameters, hydrateColumnNames: false, includeResultMetadata: true };
24
+ if (this.transactionId)
25
+ opts.transactionId = this.transactionId;
26
+ try {
27
+ return await this.core.query(opts);
28
+ }
29
+ catch (e) {
30
+ throw (0, errors_1.mapToPrismaError)(e, this.engine);
31
+ }
32
+ }
33
+ async queryRaw(query) {
34
+ var _a, _b;
35
+ const result = await this.run(query);
36
+ const meta = (_a = result.columnMetadata) !== null && _a !== void 0 ? _a : [];
37
+ const columnTypes = meta.map((m) => { var _a; return (0, prisma_types_1.mapColumnType)((_a = m.typeName) !== null && _a !== void 0 ? _a : '', this.engine); });
38
+ const rawRows = (_b = result.records) !== null && _b !== void 0 ? _b : [];
39
+ const rows = rawRows.map((row) => row.map((cell, i) => {
40
+ if (columnTypes[i] === prisma_types_1.ColumnType.Json && cell !== null && typeof cell !== 'string') {
41
+ return JSON.stringify(cell);
42
+ }
43
+ return cell;
44
+ }));
45
+ return {
46
+ columnNames: meta.map((m) => { var _a, _b; return (_b = (_a = m.label) !== null && _a !== void 0 ? _a : m.name) !== null && _b !== void 0 ? _b : ''; }),
47
+ columnTypes,
48
+ rows,
49
+ lastInsertId: result.insertId !== undefined ? String(result.insertId) : undefined
50
+ };
51
+ }
52
+ async executeRaw(query) {
53
+ var _a;
54
+ const result = await this.run(query);
55
+ return (_a = result.numberOfRecordsUpdated) !== null && _a !== void 0 ? _a : 0;
56
+ }
57
+ }
58
+ class DataApiTransaction extends Queryable {
59
+ constructor(core, engine, transactionId) {
60
+ super(core, engine, transactionId);
61
+ this.options = { usePhantomQuery: false };
62
+ }
63
+ async commit() {
64
+ await this.core.commitTransaction({ transactionId: this.transactionId });
65
+ }
66
+ async rollback() {
67
+ await this.core.rollbackTransaction({ transactionId: this.transactionId });
68
+ }
69
+ async createSavepoint() {
70
+ throw new Error(NESTED_TX_MESSAGE);
71
+ }
72
+ async rollbackToSavepoint() {
73
+ throw new Error(NESTED_TX_MESSAGE);
74
+ }
75
+ async releaseSavepoint() {
76
+ throw new Error(NESTED_TX_MESSAGE);
77
+ }
78
+ }
79
+ class DataApiAdapter extends Queryable {
80
+ async executeScript(script) {
81
+ const statements = script
82
+ .split(';')
83
+ .map((s) => s.trim())
84
+ .filter((s) => s.length > 0);
85
+ for (const stmt of statements) {
86
+ await this.run({ sql: stmt, args: [], argTypes: [] });
87
+ }
88
+ }
89
+ async startTransaction() {
90
+ const res = await this.core.beginTransaction();
91
+ return new DataApiTransaction(this.core, this.engine, res.transactionId);
92
+ }
93
+ getConnectionInfo() {
94
+ return { supportsRelationJoins: false, maxBindValues: 1000 };
95
+ }
96
+ async dispose() {
97
+ }
98
+ }
99
+ class PrismaDataApiAdapterFactory {
100
+ constructor(config, engine) {
101
+ this.config = config;
102
+ this.engine = engine;
103
+ this.adapterName = ADAPTER_NAME;
104
+ this.provider = PROVIDER[engine];
105
+ }
106
+ async connect() {
107
+ const core = (0, client_1.init)({
108
+ ...this.config,
109
+ engine: this.engine,
110
+ formatOptions: { ...(this.config.formatOptions || {}), deserializeDate: false }
111
+ });
112
+ return new DataApiAdapter(core, this.engine);
113
+ }
114
+ }
115
+ function createPrismaPgAdapter(config) {
116
+ return new PrismaDataApiAdapterFactory(config, 'pg');
117
+ }
118
+ function createPrismaMySQLAdapter(config) {
119
+ return new PrismaDataApiAdapterFactory(config, 'mysql');
120
+ }
121
+ exports.__AdapterForTest = DataApiAdapter;
@@ -0,0 +1,21 @@
1
+ export type TransactionControl = {
2
+ kind: 'begin';
3
+ } | {
4
+ kind: 'commit';
5
+ } | {
6
+ kind: 'rollback';
7
+ } | {
8
+ kind: 'setTransaction';
9
+ } | {
10
+ kind: 'savepoint';
11
+ name: string;
12
+ } | {
13
+ kind: 'release';
14
+ name: string;
15
+ } | {
16
+ kind: 'rollbackTo';
17
+ name: string;
18
+ };
19
+ export declare const classifyTransactionControl: (sql: string) => TransactionControl | null;
20
+ export declare const NESTED_TRANSACTION_MESSAGE: string;
21
+ //# sourceMappingURL=transaction-sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-sql.d.ts","sourceRoot":"","sources":["../../src/compat/transaction-sql.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAexC,eAAO,MAAM,0BAA0B,GAAI,KAAK,MAAM,KAAG,kBAAkB,GAAG,IAwB7E,CAAA;AAGD,eAAO,MAAM,0BAA0B,QAEA,CAAA"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NESTED_TRANSACTION_MESSAGE = exports.classifyTransactionControl = void 0;
4
+ const normalize = (sql) => sql
5
+ .trim()
6
+ .replace(/;\s*$/, '')
7
+ .replace(/\s+/g, ' ')
8
+ .toUpperCase();
9
+ const classifyTransactionControl = (sql) => {
10
+ const n = normalize(sql);
11
+ if (n === 'BEGIN' || n.startsWith('BEGIN ') || n.startsWith('BEGIN TRANSACTION') || n.startsWith('START TRANSACTION')) {
12
+ return { kind: 'begin' };
13
+ }
14
+ if (n === 'COMMIT' || n === 'COMMIT WORK')
15
+ return { kind: 'commit' };
16
+ if (n === 'ROLLBACK' || n === 'ROLLBACK WORK')
17
+ return { kind: 'rollback' };
18
+ const savepoint = n.match(/^SAVEPOINT (.+)$/);
19
+ if (savepoint)
20
+ return { kind: 'savepoint', name: savepoint[1] };
21
+ const release = n.match(/^RELEASE SAVEPOINT (.+)$/);
22
+ if (release)
23
+ return { kind: 'release', name: release[1] };
24
+ const rollbackTo = n.match(/^ROLLBACK TO SAVEPOINT (.+)$/);
25
+ if (rollbackTo)
26
+ return { kind: 'rollbackTo', name: rollbackTo[1] };
27
+ if (n.startsWith('SET TRANSACTION'))
28
+ return { kind: 'setTransaction' };
29
+ return null;
30
+ };
31
+ exports.classifyTransactionControl = classifyTransactionControl;
32
+ exports.NESTED_TRANSACTION_MESSAGE = 'Nested transactions (SAVEPOINT) are not supported over the RDS Data API. ' +
33
+ 'Use a single top-level transaction.';
package/dist/params.d.ts CHANGED
@@ -13,7 +13,7 @@ export declare const processParams: (engine: string, sql: string, sqlParams: Rec
13
13
  processedParams: (FormattedParameter | FormattedParameter[])[];
14
14
  escapedSql: string;
15
15
  };
16
- export declare const formatParam: (n: string, v: ParameterValue, formatOptions: Required<FormatOptions>) => FormattedParameter;
16
+ export declare const formatParam: (n: string, v: ParameterValue, formatOptions: Required<FormatOptions>, explicitTypeHint?: string) => FormattedParameter;
17
17
  export declare const splitParams: (p: Record<string, ParameterValue>) => NamedParameter[];
18
18
  export declare const formatType: (name: string, value: ParameterValue, type: SupportedType | null | undefined, typeHint: string | undefined, formatOptions: Required<FormatOptions>) => FormattedParameter;
19
19
  //# sourceMappingURL=params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../src/params.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,EAAE,KAAG,UAAU,EAa5C,CAAA;AAGR,eAAO,MAAM,aAAa,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,MAAM,GAAG,SAS9D,CAAA;AAGf,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,OAKpC,CAAA;AAG/B,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,QAAQ,CAAC,aAAa,CAkBrE,CAAA;AAG1B,eAAO,MAAM,aAAa,GACxB,4BAA4B,cAAc,EAC1C,MAAM,GAAG,EAAE,KACV;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAK9D,CAAA;AAOD,eAAO,MAAM,eAAe,GAAI,QAAQ,UAAU,EAAE,KAAG,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EAavF,CAAA;AAGH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,WAAW,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,QAAQ,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EAAE,EAC7C,eAAe,QAAQ,CAAC,aAAa,CAAC,EACtC,MAAK,MAAU,KACd;IAAE,eAAe,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAsCtF,CAAA;AAGD,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,eAAe,QAAQ,CAAC,aAAa,CAAC,KAAG,kBACtC,CAAA;AAG7D,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAG,cAAc,EACiB,CAAA;AAG/F,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,OAAO,cAAc,EACrB,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,UAAU,MAAM,GAAG,SAAS,EAC5B,eAAe,QAAQ,CAAC,aAAa,CAAC,KACrC,kBAkBF,CAAA"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../src/params.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,EAAE,KAAG,UAAU,EAa5C,CAAA;AAGR,eAAO,MAAM,aAAa,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,MAAM,GAAG,SAS9D,CAAA;AAGf,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,OAKpC,CAAA;AAG/B,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,EAAE,MAAM,GAAG,EAAE,KAAG,QAAQ,CAAC,aAAa,CAkBrE,CAAA;AAG1B,eAAO,MAAM,aAAa,GACxB,4BAA4B,cAAc,EAC1C,MAAM,GAAG,EAAE,KACV;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAK9D,CAAA;AAgBD,eAAO,MAAM,eAAe,GAAI,QAAQ,UAAU,EAAE,KAAG,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EASvF,CAAA;AAGH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,WAAW,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,QAAQ,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,EAAE,EAC7C,eAAe,QAAQ,CAAC,aAAa,CAAC,EACtC,MAAK,MAAU,KACd;IAAE,eAAe,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAsCtF,CAAA;AAGD,eAAO,MAAM,WAAW,GACtB,GAAG,MAAM,EACT,GAAG,cAAc,EACjB,eAAe,QAAQ,CAAC,aAAa,CAAC,EACtC,mBAAmB,MAAM,KACxB,kBAAqG,CAAA;AAGxG,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAG,cAAc,EACiB,CAAA;AAG/F,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,OAAO,cAAc,EACrB,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,EACtC,UAAU,MAAM,GAAG,SAAS,EAC5B,eAAe,QAAQ,CAAC,aAAa,CAAC,KACrC,kBAkBF,CAAA"}
package/dist/params.js CHANGED
@@ -98,13 +98,15 @@ const prepareParams = ({ secretArn, resourceArn }, args) => {
98
98
  };
99
99
  exports.prepareParams = prepareParams;
100
100
  const omit = (obj, values) => Object.keys(obj).reduce((acc, x) => (values.includes(x) ? acc : Object.assign(acc, { [x]: obj[x] })), {});
101
+ const NAMED_PARAM_OPTIONAL_KEYS = new Set(['cast', 'typeHint']);
102
+ const isNamedParam = (p) => {
103
+ if (!('name' in p) || typeof p.value === 'undefined')
104
+ return false;
105
+ return Object.keys(p).every((k) => k === 'name' || k === 'value' || NAMED_PARAM_OPTIONAL_KEYS.has(k));
106
+ };
101
107
  const normalizeParams = (params) => params.reduce((acc, p) => Array.isArray(p)
102
108
  ? acc.concat([(0, exports.normalizeParams)(p)])
103
- : (Object.keys(p).length === 2 && 'name' in p && typeof p.value !== 'undefined') ||
104
- (Object.keys(p).length === 3 &&
105
- 'name' in p &&
106
- typeof p.value !== 'undefined' &&
107
- 'cast' in p)
109
+ : isNamedParam(p)
108
110
  ? acc.concat(p)
109
111
  : acc.concat(...(0, exports.splitParams)(p)), []);
110
112
  exports.normalizeParams = normalizeParams;
@@ -129,7 +131,7 @@ const processParams = (engine, sql, sqlParams, params, formatOptions, row = 0) =
129
131
  const regex = new RegExp(':' + p.name + '\\b', 'g');
130
132
  sql = sql.replace(regex, `:${p.name}::jsonb`);
131
133
  }
132
- acc.push((0, exports.formatParam)(p.name, p.value, formatOptions));
134
+ acc.push((0, exports.formatParam)(p.name, p.value, formatOptions, p.typeHint));
133
135
  }
134
136
  else if (row === 0) {
135
137
  const regex = new RegExp('::' + p.name + '\\b', 'g');
@@ -148,7 +150,7 @@ const processParams = (engine, sql, sqlParams, params, formatOptions, row = 0) =
148
150
  };
149
151
  };
150
152
  exports.processParams = processParams;
151
- const formatParam = (n, v, formatOptions) => (0, exports.formatType)(n, v, (0, utils_1.getType)(v), (0, utils_1.getTypeHint)(v), formatOptions);
153
+ const formatParam = (n, v, formatOptions, explicitTypeHint) => (0, exports.formatType)(n, v, (0, utils_1.getType)(v), explicitTypeHint !== null && explicitTypeHint !== void 0 ? explicitTypeHint : (0, utils_1.getTypeHint)(v), formatOptions);
152
154
  exports.formatParam = formatParam;
153
155
  const splitParams = (p) => Object.keys(p).reduce((arr, x) => arr.concat({ name: x, value: p[x] }), []);
154
156
  exports.splitParams = splitParams;
package/dist/results.js CHANGED
@@ -23,13 +23,13 @@ const formatRecords = (recs, columns, hydrate, formatOptions) => {
23
23
  if (field.isNull === true) {
24
24
  return hydrate
25
25
  ? Object.assign(acc, { [fmap[i].label]: null })
26
- : acc.concat(null);
26
+ : [...acc, null];
27
27
  }
28
28
  else if (fmap[i] && fmap[i].field) {
29
29
  const value = (0, exports.formatRecordValue)(field[fmap[i].field], fmap[i].typeName, formatOptions);
30
30
  return hydrate
31
31
  ? Object.assign(acc, { [fmap[i].label]: value })
32
- : acc.concat(value);
32
+ : [...acc, value];
33
33
  }
34
34
  else {
35
35
  Object.keys(field).map((type) => {
@@ -40,7 +40,7 @@ const formatRecords = (recs, columns, hydrate, formatOptions) => {
40
40
  const value = (0, exports.formatRecordValue)(field[fmap[i].field], fmap[i].typeName, formatOptions);
41
41
  return hydrate
42
42
  ? Object.assign(acc, { [fmap[i].label]: value })
43
- : acc.concat(value);
43
+ : [...acc, value];
44
44
  }
45
45
  }, hydrate ? {} : []);
46
46
  })
package/dist/types.d.ts CHANGED
@@ -44,6 +44,7 @@ export interface NamedParameter {
44
44
  name: string;
45
45
  value: ParameterValue;
46
46
  cast?: string;
47
+ typeHint?: string;
47
48
  }
48
49
  export type Parameters = Record<string, ParameterValue> | NamedParameter[];
49
50
  export interface QueryOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-api-client",
3
- "version": "2.2.0",
3
+ "version": "2.4.0",
4
4
  "description": "A lightweight wrapper that simplifies working with the Amazon Aurora Serverless Data API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,6 +20,16 @@
20
20
  "import": "./dist/compat/mysql2.js",
21
21
  "require": "./dist/compat/mysql2.js"
22
22
  },
23
+ "./compat/knex": {
24
+ "types": "./dist/compat/knex.d.ts",
25
+ "import": "./dist/compat/knex.js",
26
+ "require": "./dist/compat/knex.js"
27
+ },
28
+ "./compat/prisma": {
29
+ "types": "./dist/compat/prisma.d.ts",
30
+ "import": "./dist/compat/prisma.js",
31
+ "require": "./dist/compat/prisma.js"
32
+ },
23
33
  "./compat": {
24
34
  "types": "./dist/compat/index.d.ts",
25
35
  "import": "./dist/compat/index.js",
@@ -49,7 +59,15 @@
49
59
  "test:int:orm:drizzle": "npm run build && vitest run integration-tests/drizzle-pg.int.test.ts && vitest run integration-tests/drizzle-mysql.int.test.ts",
50
60
  "test:int:orm:drizzle:pg": "npm run build && vitest run integration-tests/drizzle-pg.int.test.ts",
51
61
  "test:int:orm:drizzle:mysql": "npm run build && vitest run integration-tests/drizzle-mysql.int.test.ts",
52
- "test:int:orm:knex": "npm run build && vitest run integration-tests/knex-mysql.int.test.ts",
62
+ "test:int:orm:knex": "npm run build && vitest run integration-tests/knex-mysql.int.test.ts integration-tests/knex-pg.int.test.ts integration-tests/knex-mysql-querybuilder.int.test.ts integration-tests/knex-pg-querybuilder.int.test.ts",
63
+ "test:int:orm:knex:pg": "npm run build && vitest run integration-tests/knex-pg.int.test.ts integration-tests/knex-pg-querybuilder.int.test.ts",
64
+ "test:int:orm:knex:mysql": "npm run build && vitest run integration-tests/knex-mysql.int.test.ts integration-tests/knex-mysql-querybuilder.int.test.ts",
65
+ "test:int:orm:prisma": "npm run build && vitest run integration-tests/prisma-pg.int.test.ts integration-tests/prisma-mysql.int.test.ts",
66
+ "test:int:orm:prisma:pg": "npm run build && vitest run integration-tests/prisma-pg.int.test.ts",
67
+ "test:int:orm:prisma:mysql": "npm run build && vitest run integration-tests/prisma-mysql.int.test.ts",
68
+ "test:int:orm:prisma:coverage": "npm run test:int:orm:prisma:coverage:pg && npm run test:int:orm:prisma:coverage:mysql",
69
+ "test:int:orm:prisma:coverage:pg": "npm run build && prisma generate --schema integration-tests/prisma/schema-pg-coverage.prisma && vitest run integration-tests/prisma-pg-coverage.int.test.ts",
70
+ "test:int:orm:prisma:coverage:mysql": "npm run build && prisma generate --schema integration-tests/prisma/schema-mysql-coverage.prisma && vitest run integration-tests/prisma-mysql-coverage.int.test.ts",
53
71
  "test-ci": "npm run build && eslint src && vitest run src/",
54
72
  "lint": "eslint src",
55
73
  "prepublishOnly": "npm run build"
@@ -75,12 +93,14 @@
75
93
  },
76
94
  "devDependencies": {
77
95
  "@aws-sdk/client-rds-data": "^3.1048.0",
96
+ "@prisma/client": "^7.8.0",
97
+ "@prisma/driver-adapter-utils": "^7.8.0",
78
98
  "@types/node": "^24.6.2",
79
99
  "@types/pg": "^8.15.5",
80
100
  "@types/sqlstring": "^2.3.2",
81
101
  "@typescript-eslint/eslint-plugin": "^8.45.0",
82
102
  "@typescript-eslint/parser": "^8.45.0",
83
- "@vitest/ui": "^3.2.4",
103
+ "@vitest/ui": "^4.1.8",
84
104
  "drizzle-orm": "^0.45.2",
85
105
  "eslint": "^8.12.0",
86
106
  "eslint-config-prettier": "^8.5.0",
@@ -88,22 +108,34 @@
88
108
  "kysely": "^0.28.7",
89
109
  "pg": "^8.16.3",
90
110
  "prettier": "^2.6.2",
111
+ "prisma": "^7.8.0",
91
112
  "tsx": "^4.20.6",
92
113
  "typescript": "^5.9.3",
93
- "vitest": "^3.2.4"
114
+ "vitest": "^4.1.8"
94
115
  },
95
116
  "dependencies": {
96
117
  "sqlstring": "^2.3.2"
97
118
  },
98
119
  "peerDependencies": {
99
- "@aws-sdk/client-rds-data": "^3.1048.0"
120
+ "@aws-sdk/client-rds-data": "^3.1048.0",
121
+ "@prisma/driver-adapter-utils": "^7.0.0",
122
+ "knex": "^3.0.0"
100
123
  },
101
124
  "peerDependenciesMeta": {
102
125
  "@aws-sdk/client-rds-data": {
103
126
  "optional": true
127
+ },
128
+ "knex": {
129
+ "optional": true
130
+ },
131
+ "@prisma/driver-adapter-utils": {
132
+ "optional": true
104
133
  }
105
134
  },
106
135
  "files": [
107
136
  "dist"
108
- ]
137
+ ],
138
+ "engines": {
139
+ "node": ">=20"
140
+ }
109
141
  }