kysely 0.28.5 → 0.28.7

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 CHANGED
@@ -7,7 +7,6 @@
7
7
  [![Pull Requests](https://img.shields.io/github/issues-pr-closed/kysely-org/kysely?label=PRs&logo=github&style=flat)](https://github.com/kysely-org/kysely/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc)
8
8
  ![GitHub contributors](https://img.shields.io/github/contributors/kysely-org/kysely)
9
9
  [![Downloads](https://img.shields.io/npm/dw/kysely?logo=npm)](https://www.npmjs.com/package/kysely)
10
- [![Bundle Size](https://img.shields.io/bundlephobia/minzip/kysely?label=size&logo=npm)](https://bundlephobia.com/package/kysely)
11
10
 
12
11
  ###### Join the discussion ⠀⠀⠀⠀⠀⠀⠀
13
12
  [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=flat&logo=discord&logoColor=white)](https://discord.gg/xyBJ3GwvAm)
@@ -43,7 +43,7 @@ export interface MysqlPoolConnection {
43
43
  }
44
44
  export interface MysqlStreamOptions {
45
45
  highWaterMark?: number;
46
- objectMode?: boolean;
46
+ objectMode?: true;
47
47
  }
48
48
  export interface MysqlStream<T> {
49
49
  [Symbol.asyncIterator](): AsyncIterableIterator<T>;
@@ -108,7 +108,7 @@ export interface ExpressionBuilder<DB, TB extends keyof DB> {
108
108
  * )
109
109
  * ```
110
110
  */
111
- <RE extends ReferenceExpression<DB, TB>, OP extends BinaryOperatorExpression, VE extends OperandValueExpressionOrList<DB, TB, RE>>(lhs: RE, op: OP, rhs: VE): ExpressionWrapper<DB, TB, OP extends ComparisonOperator ? SqlBool : ExtractTypeFromReferenceExpression<DB, TB, RE>>;
111
+ <RE extends ReferenceExpression<DB, TB>, OP extends BinaryOperatorExpression, VE extends OperandValueExpressionOrList<DB, TB, RE>>(lhs: RE, op: OP, rhs: VE): ExpressionWrapper<DB, TB, OP extends ComparisonOperator ? SqlBool : OP extends Expression<infer T> ? unknown extends T ? SqlBool : T : ExtractTypeFromReferenceExpression<DB, TB, RE>>;
112
112
  /**
113
113
  * Returns a copy of `this` expression builder, for destructuring purposes.
114
114
  *
@@ -50,6 +50,8 @@ export * from './schema/refresh-materialized-view-builder.js';
50
50
  export * from './schema/drop-view-builder.js';
51
51
  export * from './schema/alter-column-builder.js';
52
52
  export * from './dynamic/dynamic.js';
53
+ export * from './dynamic/dynamic-reference-builder.js';
54
+ export * from './dynamic/dynamic-table-builder.js';
53
55
  export * from './driver/driver.js';
54
56
  export * from './driver/database-connection.js';
55
57
  export * from './driver/connection-provider.js';
package/dist/cjs/index.js CHANGED
@@ -68,6 +68,8 @@ __exportStar(require("./schema/refresh-materialized-view-builder.js"), exports);
68
68
  __exportStar(require("./schema/drop-view-builder.js"), exports);
69
69
  __exportStar(require("./schema/alter-column-builder.js"), exports);
70
70
  __exportStar(require("./dynamic/dynamic.js"), exports);
71
+ __exportStar(require("./dynamic/dynamic-reference-builder.js"), exports);
72
+ __exportStar(require("./dynamic/dynamic-table-builder.js"), exports);
71
73
  __exportStar(require("./driver/driver.js"), exports);
72
74
  __exportStar(require("./driver/database-connection.js"), exports);
73
75
  __exportStar(require("./driver/connection-provider.js"), exports);
@@ -21,6 +21,9 @@ import { ControlledConnection } from './util/provide-controlled-connection.js';
21
21
  declare global {
22
22
  interface AsyncDisposable {
23
23
  }
24
+ interface SymbolConstructor {
25
+ readonly asyncDispose: unique symbol;
26
+ }
24
27
  }
25
28
  /**
26
29
  * The main Kysely class.
@@ -570,14 +570,18 @@ class TransactionBuilder {
570
570
  ...kyselyProps,
571
571
  executor,
572
572
  });
573
+ let transactionBegun = false;
573
574
  try {
574
575
  await this.#props.driver.beginTransaction(connection, settings);
576
+ transactionBegun = true;
575
577
  const result = await callback(transaction);
576
578
  await this.#props.driver.commitTransaction(connection);
577
579
  return result;
578
580
  }
579
581
  catch (error) {
580
- await this.#props.driver.rollbackTransaction(connection);
582
+ if (transactionBegun) {
583
+ await this.#props.driver.rollbackTransaction(connection);
584
+ }
581
585
  throw error;
582
586
  }
583
587
  });
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WithSchemaTransformer = void 0;
4
4
  const alias_node_js_1 = require("../../operation-node/alias-node.js");
5
5
  const identifier_node_js_1 = require("../../operation-node/identifier-node.js");
6
+ const join_node_js_1 = require("../../operation-node/join-node.js");
6
7
  const list_node_js_1 = require("../../operation-node/list-node.js");
7
8
  const operation_node_transformer_js_1 = require("../../operation-node/operation-node-transformer.js");
8
9
  const schemable_identifier_node_js_1 = require("../../operation-node/schemable-identifier-node.js");
@@ -133,7 +134,12 @@ class WithSchemaTransformer extends operation_node_transformer_js_1.OperationNod
133
134
  }
134
135
  }
135
136
  if ('using' in node && node.using) {
136
- this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);
137
+ if (join_node_js_1.JoinNode.is(node.using)) {
138
+ this.#collectSchemableIdsFromTableExpr(node.using.table, schemableIds);
139
+ }
140
+ else {
141
+ this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);
142
+ }
137
143
  }
138
144
  return schemableIds;
139
145
  }
@@ -43,7 +43,7 @@ export interface MysqlPoolConnection {
43
43
  }
44
44
  export interface MysqlStreamOptions {
45
45
  highWaterMark?: number;
46
- objectMode?: boolean;
46
+ objectMode?: true;
47
47
  }
48
48
  export interface MysqlStream<T> {
49
49
  [Symbol.asyncIterator](): AsyncIterableIterator<T>;
@@ -108,7 +108,7 @@ export interface ExpressionBuilder<DB, TB extends keyof DB> {
108
108
  * )
109
109
  * ```
110
110
  */
111
- <RE extends ReferenceExpression<DB, TB>, OP extends BinaryOperatorExpression, VE extends OperandValueExpressionOrList<DB, TB, RE>>(lhs: RE, op: OP, rhs: VE): ExpressionWrapper<DB, TB, OP extends ComparisonOperator ? SqlBool : ExtractTypeFromReferenceExpression<DB, TB, RE>>;
111
+ <RE extends ReferenceExpression<DB, TB>, OP extends BinaryOperatorExpression, VE extends OperandValueExpressionOrList<DB, TB, RE>>(lhs: RE, op: OP, rhs: VE): ExpressionWrapper<DB, TB, OP extends ComparisonOperator ? SqlBool : OP extends Expression<infer T> ? unknown extends T ? SqlBool : T : ExtractTypeFromReferenceExpression<DB, TB, RE>>;
112
112
  /**
113
113
  * Returns a copy of `this` expression builder, for destructuring purposes.
114
114
  *
@@ -50,6 +50,8 @@ export * from './schema/refresh-materialized-view-builder.js';
50
50
  export * from './schema/drop-view-builder.js';
51
51
  export * from './schema/alter-column-builder.js';
52
52
  export * from './dynamic/dynamic.js';
53
+ export * from './dynamic/dynamic-reference-builder.js';
54
+ export * from './dynamic/dynamic-table-builder.js';
53
55
  export * from './driver/driver.js';
54
56
  export * from './driver/database-connection.js';
55
57
  export * from './driver/connection-provider.js';
package/dist/esm/index.js CHANGED
@@ -51,6 +51,8 @@ export * from './schema/refresh-materialized-view-builder.js';
51
51
  export * from './schema/drop-view-builder.js';
52
52
  export * from './schema/alter-column-builder.js';
53
53
  export * from './dynamic/dynamic.js';
54
+ export * from './dynamic/dynamic-reference-builder.js';
55
+ export * from './dynamic/dynamic-table-builder.js';
54
56
  export * from './driver/driver.js';
55
57
  export * from './driver/database-connection.js';
56
58
  export * from './driver/connection-provider.js';
@@ -21,6 +21,9 @@ import { ControlledConnection } from './util/provide-controlled-connection.js';
21
21
  declare global {
22
22
  interface AsyncDisposable {
23
23
  }
24
+ interface SymbolConstructor {
25
+ readonly asyncDispose: unique symbol;
26
+ }
24
27
  }
25
28
  /**
26
29
  * The main Kysely class.
@@ -564,14 +564,18 @@ export class TransactionBuilder {
564
564
  ...kyselyProps,
565
565
  executor,
566
566
  });
567
+ let transactionBegun = false;
567
568
  try {
568
569
  await this.#props.driver.beginTransaction(connection, settings);
570
+ transactionBegun = true;
569
571
  const result = await callback(transaction);
570
572
  await this.#props.driver.commitTransaction(connection);
571
573
  return result;
572
574
  }
573
575
  catch (error) {
574
- await this.#props.driver.rollbackTransaction(connection);
576
+ if (transactionBegun) {
577
+ await this.#props.driver.rollbackTransaction(connection);
578
+ }
575
579
  throw error;
576
580
  }
577
581
  });
@@ -1,6 +1,7 @@
1
1
  /// <reference types="./with-schema-transformer.d.ts" />
2
2
  import { AliasNode } from '../../operation-node/alias-node.js';
3
3
  import { IdentifierNode } from '../../operation-node/identifier-node.js';
4
+ import { JoinNode } from '../../operation-node/join-node.js';
4
5
  import { ListNode } from '../../operation-node/list-node.js';
5
6
  import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
6
7
  import { SchemableIdentifierNode } from '../../operation-node/schemable-identifier-node.js';
@@ -131,7 +132,12 @@ export class WithSchemaTransformer extends OperationNodeTransformer {
131
132
  }
132
133
  }
133
134
  if ('using' in node && node.using) {
134
- this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);
135
+ if (JoinNode.is(node.using)) {
136
+ this.#collectSchemableIdsFromTableExpr(node.using.table, schemableIds);
137
+ }
138
+ else {
139
+ this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);
140
+ }
135
141
  }
136
142
  return schemableIds;
137
143
  }
package/package.json CHANGED
@@ -1,11 +1,29 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.28.5",
3
+ "version": "0.28.7",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git://github.com/kysely-org/kysely.git"
8
8
  },
9
+ "homepage": "https://kysely.dev",
10
+ "keywords": [
11
+ "query",
12
+ "builder",
13
+ "query builder",
14
+ "sql",
15
+ "typescript",
16
+ "postgres",
17
+ "postgresql",
18
+ "mysql",
19
+ "sqlite",
20
+ "mssql",
21
+ "ms sql server",
22
+ "sql server",
23
+ "type-safe",
24
+ "type-safety",
25
+ "plugins"
26
+ ],
9
27
  "engines": {
10
28
  "node": ">=20.0.0"
11
29
  },
@@ -57,36 +75,37 @@
57
75
  "Igal Klebanov <igalklebanov@gmail.com>"
58
76
  ],
59
77
  "devDependencies": {
60
- "@arethetypeswrong/cli": "^0.17.4",
61
- "@ark/attest": "^0.46.0",
78
+ "@arethetypeswrong/cli": "^0.18.2",
79
+ "@ark/attest": "^0.49.0",
62
80
  "@types/better-sqlite3": "^7.6.13",
63
81
  "@types/chai": "^5.0.1",
64
82
  "@types/chai-as-promised": "^8.0.2",
65
83
  "@types/mocha": "^10.0.10",
66
- "@types/node": "^22.15.3",
67
- "@types/pg": "^8.11.14",
84
+ "@types/node": "^24.3.3",
85
+ "@types/pg": "^8.15.5",
68
86
  "@types/pg-cursor": "^2.7.2",
69
- "@types/semver": "^7.7.0",
87
+ "@types/semver": "^7.7.1",
70
88
  "@types/sinon": "^17.0.4",
71
- "@types/tedious": "^4.0.9",
72
- "better-sqlite3": "^11.9.1",
73
- "chai": "^5.2.0",
74
- "chai-as-promised": "^8.0.1",
75
- "esbuild": "^0.25.3",
89
+ "better-sqlite3": "^12.2.0",
90
+ "chai": "^6.0.1",
91
+ "chai-as-promised": "^8.0.2",
92
+ "esbuild": "^0.25.9",
76
93
  "lodash": "^4.17.21",
77
- "mocha": "^11.2.2",
78
- "mysql2": "^3.14.1",
94
+ "mocha": "^11.7.2",
95
+ "mysql2": "^3.14.5",
79
96
  "pathe": "^2.0.3",
80
97
  "pg": "^8.15.6",
81
98
  "pg-cursor": "^2.14.6",
82
- "playwright": "^1.52.0",
99
+ "pkg-types": "^2.3.0",
100
+ "playwright": "^1.55.0",
83
101
  "prettier": "^3.5.3",
84
102
  "semver": "^7.7.1",
85
- "sinon": "^20.0.0",
103
+ "sinon": "^21.0.0",
104
+ "std-env": "^3.9.0",
86
105
  "tarn": "^3.0.2",
87
106
  "tedious": "^19.0.0",
88
- "tsd": "^0.32.0",
89
- "typescript": "^5.8.3"
107
+ "tsd": "^0.33.0",
108
+ "typescript": "~5.9.2"
90
109
  },
91
110
  "scripts": {
92
111
  "clean": "rm -rf dist & rm -rf test/node/dist & rm -rf test/browser/bundle.js & rm -rf helpers",
@@ -99,7 +118,7 @@
99
118
  "test:browser": "pnpm build && pnpm test:browser:build && node test/browser/test.js",
100
119
  "test:bun": "pnpm build && bun link && cd test/bun && bun install && bun run test",
101
120
  "test:cloudflare-workers": "pnpm build && pnpm -r test --filter kysely-cloudflare-workers-test",
102
- "test:deno": "deno run --allow-env --allow-read --allow-net test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net test/deno/cdn.test.ts",
121
+ "test:deno": "deno run --allow-env --allow-read --allow-net --no-lock test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net --no-lock test/deno/cdn.test.ts",
103
122
  "test:typings": "tsd test/typings",
104
123
  "test:esmimports": "node scripts/check-esm-imports.js",
105
124
  "test:esbuild": "esbuild --bundle --platform=node --external:pg-native dist/esm/index.js --outfile=/dev/null",
@@ -115,6 +134,7 @@
115
134
  "script:add-deno-type-references": "node scripts/add-deno-type-references.js",
116
135
  "script:align-site-version": "node --experimental-strip-types scripts/align-site-version.mts",
117
136
  "script:generate-site-examples": "node scripts/generate-site-examples.js",
137
+ "script:exclude-test-files-for-backwards-compat": "node --experimental-strip-types scripts/exclude-test-files-for-backwards-compat.mts",
118
138
  "version": "pnpm script:align-site-version && git add ."
119
139
  }
120
140
  }