kysely 0.26.3 → 0.27.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.
Files changed (185) hide show
  1. package/dist/cjs/dialect/dialect-adapter-base.d.ts +8 -0
  2. package/dist/cjs/dialect/dialect-adapter-base.js +3 -0
  3. package/dist/cjs/dialect/dialect-adapter.d.ts +8 -0
  4. package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +78 -0
  5. package/dist/cjs/dialect/mssql/mssql-adapter.js +30 -0
  6. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +143 -0
  7. package/dist/cjs/dialect/mssql/mssql-dialect-config.js +2 -0
  8. package/dist/cjs/dialect/mssql/mssql-dialect.d.ts +70 -0
  9. package/dist/cjs/dialect/mssql/mssql-dialect.js +65 -0
  10. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +54 -0
  11. package/dist/cjs/dialect/mssql/mssql-driver.js +268 -0
  12. package/dist/cjs/dialect/mssql/mssql-introspector.d.ts +20 -0
  13. package/dist/cjs/dialect/mssql/mssql-introspector.js +97 -0
  14. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +11 -0
  15. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +64 -0
  16. package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +2 -0
  17. package/dist/cjs/dialect/mysql/mysql-query-compiler.js +28 -0
  18. package/dist/cjs/dialect/postgres/postgres-driver.js +1 -1
  19. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +1 -1
  20. package/dist/cjs/dialect/sqlite/sqlite-adapter.js +2 -1
  21. package/dist/cjs/dialect/sqlite/sqlite-dialect-config.d.ts +1 -0
  22. package/dist/cjs/dialect/sqlite/sqlite-driver.js +15 -2
  23. package/dist/cjs/driver/driver.d.ts +1 -1
  24. package/dist/cjs/driver/driver.js +1 -0
  25. package/dist/cjs/driver/runtime-driver.js +5 -1
  26. package/dist/cjs/driver/single-connection-provider.js +7 -8
  27. package/dist/cjs/expression/expression-builder.d.ts +66 -75
  28. package/dist/cjs/expression/expression-builder.js +8 -17
  29. package/dist/cjs/expression/expression-wrapper.d.ts +8 -8
  30. package/dist/cjs/helpers/mssql.d.ts +152 -0
  31. package/dist/cjs/helpers/mssql.js +160 -0
  32. package/dist/cjs/index.d.ts +7 -1
  33. package/dist/cjs/index.js +6 -0
  34. package/dist/cjs/migration/migrator.js +12 -16
  35. package/dist/cjs/operation-node/add-index-node.d.ts +21 -0
  36. package/dist/cjs/operation-node/add-index-node.js +31 -0
  37. package/dist/cjs/operation-node/alter-table-node.d.ts +5 -1
  38. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  39. package/dist/cjs/operation-node/column-update-node.d.ts +2 -3
  40. package/dist/cjs/operation-node/create-index-node.d.ts +1 -0
  41. package/dist/cjs/operation-node/create-table-node.d.ts +1 -0
  42. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  43. package/dist/cjs/operation-node/operation-node-transformer.js +17 -0
  44. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  45. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  46. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  47. package/dist/cjs/operation-node/operator-node.d.ts +3 -3
  48. package/dist/cjs/operation-node/operator-node.js +2 -0
  49. package/dist/cjs/operation-node/unique-constraint-node.d.ts +4 -1
  50. package/dist/cjs/operation-node/unique-constraint-node.js +8 -1
  51. package/dist/cjs/parser/binary-operation-parser.js +1 -1
  52. package/dist/cjs/parser/coalesce-parser.d.ts +12 -2
  53. package/dist/cjs/parser/reference-parser.d.ts +2 -1
  54. package/dist/cjs/parser/update-set-parser.d.ts +5 -2
  55. package/dist/cjs/parser/update-set-parser.js +13 -3
  56. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +4 -4
  57. package/dist/cjs/query-builder/case-builder.d.ts +5 -4
  58. package/dist/cjs/query-builder/delete-query-builder.d.ts +3 -3
  59. package/dist/cjs/query-builder/function-module.d.ts +96 -25
  60. package/dist/cjs/query-builder/function-module.js +17 -3
  61. package/dist/cjs/query-builder/having-interface.d.ts +3 -5
  62. package/dist/cjs/query-builder/insert-query-builder.d.ts +27 -9
  63. package/dist/cjs/query-builder/insert-query-builder.js +3 -3
  64. package/dist/cjs/query-builder/insert-result.d.ts +8 -1
  65. package/dist/cjs/query-builder/insert-result.js +8 -1
  66. package/dist/cjs/query-builder/json-path-builder.d.ts +3 -2
  67. package/dist/cjs/query-builder/json-path-builder.js +6 -3
  68. package/dist/cjs/query-builder/on-conflict-builder.d.ts +58 -16
  69. package/dist/cjs/query-builder/on-conflict-builder.js +1 -6
  70. package/dist/cjs/query-builder/over-builder.d.ts +2 -2
  71. package/dist/cjs/query-builder/select-query-builder.d.ts +38 -22
  72. package/dist/cjs/query-builder/update-query-builder.d.ts +20 -4
  73. package/dist/cjs/query-builder/update-query-builder.js +2 -2
  74. package/dist/cjs/query-builder/where-interface.d.ts +3 -3
  75. package/dist/cjs/query-compiler/default-query-compiler.d.ts +9 -1
  76. package/dist/cjs/query-compiler/default-query-compiler.js +65 -12
  77. package/dist/cjs/schema/alter-table-add-index-builder.d.ts +104 -0
  78. package/dist/cjs/schema/alter-table-add-index-builder.js +146 -0
  79. package/dist/cjs/schema/alter-table-builder.d.ts +41 -1
  80. package/dist/cjs/schema/alter-table-builder.js +59 -2
  81. package/dist/cjs/schema/column-definition-builder.d.ts +25 -0
  82. package/dist/cjs/schema/column-definition-builder.js +27 -0
  83. package/dist/cjs/schema/create-index-builder.d.ts +23 -0
  84. package/dist/cjs/schema/create-index-builder.js +30 -0
  85. package/dist/cjs/schema/create-table-builder.d.ts +28 -2
  86. package/dist/cjs/schema/create-table-builder.js +38 -3
  87. package/dist/cjs/schema/unique-constraint-builder.d.ts +14 -0
  88. package/dist/cjs/schema/unique-constraint-builder.js +24 -0
  89. package/dist/cjs/util/log.js +5 -1
  90. package/dist/cjs/util/object-utils.d.ts +1 -1
  91. package/dist/cjs/util/type-utils.d.ts +27 -19
  92. package/dist/esm/dialect/dialect-adapter-base.d.ts +8 -0
  93. package/dist/esm/dialect/dialect-adapter-base.js +3 -0
  94. package/dist/esm/dialect/dialect-adapter.d.ts +8 -0
  95. package/dist/esm/dialect/mssql/mssql-adapter.d.ts +78 -0
  96. package/dist/esm/dialect/mssql/mssql-adapter.js +27 -0
  97. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +143 -0
  98. package/dist/esm/dialect/mssql/mssql-dialect-config.js +2 -0
  99. package/dist/esm/dialect/mssql/mssql-dialect.d.ts +70 -0
  100. package/dist/esm/dialect/mssql/mssql-dialect.js +62 -0
  101. package/dist/esm/dialect/mssql/mssql-driver.d.ts +54 -0
  102. package/dist/esm/dialect/mssql/mssql-driver.js +265 -0
  103. package/dist/esm/dialect/mssql/mssql-introspector.d.ts +20 -0
  104. package/dist/esm/dialect/mssql/mssql-introspector.js +94 -0
  105. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +11 -0
  106. package/dist/esm/dialect/mssql/mssql-query-compiler.js +61 -0
  107. package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +2 -0
  108. package/dist/esm/dialect/mysql/mysql-query-compiler.js +28 -0
  109. package/dist/esm/dialect/postgres/postgres-driver.js +1 -1
  110. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +1 -1
  111. package/dist/esm/dialect/sqlite/sqlite-adapter.js +2 -1
  112. package/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts +1 -0
  113. package/dist/esm/dialect/sqlite/sqlite-driver.js +15 -2
  114. package/dist/esm/driver/driver.d.ts +1 -1
  115. package/dist/esm/driver/driver.js +1 -0
  116. package/dist/esm/driver/runtime-driver.js +5 -1
  117. package/dist/esm/driver/single-connection-provider.js +7 -8
  118. package/dist/esm/expression/expression-builder.d.ts +66 -75
  119. package/dist/esm/expression/expression-builder.js +10 -19
  120. package/dist/esm/expression/expression-wrapper.d.ts +8 -8
  121. package/dist/esm/helpers/mssql.d.ts +152 -0
  122. package/dist/esm/helpers/mssql.js +155 -0
  123. package/dist/esm/index.d.ts +7 -1
  124. package/dist/esm/index.js +6 -0
  125. package/dist/esm/migration/migrator.js +12 -16
  126. package/dist/esm/operation-node/add-index-node.d.ts +21 -0
  127. package/dist/esm/operation-node/add-index-node.js +29 -0
  128. package/dist/esm/operation-node/alter-table-node.d.ts +5 -1
  129. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  130. package/dist/esm/operation-node/column-update-node.d.ts +2 -3
  131. package/dist/esm/operation-node/create-index-node.d.ts +1 -0
  132. package/dist/esm/operation-node/create-table-node.d.ts +1 -0
  133. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  134. package/dist/esm/operation-node/operation-node-transformer.js +17 -0
  135. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  136. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  137. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  138. package/dist/esm/operation-node/operator-node.d.ts +3 -3
  139. package/dist/esm/operation-node/operator-node.js +2 -0
  140. package/dist/esm/operation-node/unique-constraint-node.d.ts +4 -1
  141. package/dist/esm/operation-node/unique-constraint-node.js +8 -1
  142. package/dist/esm/parser/binary-operation-parser.js +1 -1
  143. package/dist/esm/parser/coalesce-parser.d.ts +12 -2
  144. package/dist/esm/parser/reference-parser.d.ts +2 -1
  145. package/dist/esm/parser/update-set-parser.d.ts +5 -2
  146. package/dist/esm/parser/update-set-parser.js +10 -1
  147. package/dist/esm/query-builder/aggregate-function-builder.d.ts +4 -4
  148. package/dist/esm/query-builder/case-builder.d.ts +5 -4
  149. package/dist/esm/query-builder/delete-query-builder.d.ts +3 -3
  150. package/dist/esm/query-builder/function-module.d.ts +96 -25
  151. package/dist/esm/query-builder/function-module.js +17 -3
  152. package/dist/esm/query-builder/having-interface.d.ts +3 -5
  153. package/dist/esm/query-builder/insert-query-builder.d.ts +27 -9
  154. package/dist/esm/query-builder/insert-query-builder.js +4 -4
  155. package/dist/esm/query-builder/insert-result.d.ts +8 -1
  156. package/dist/esm/query-builder/insert-result.js +8 -1
  157. package/dist/esm/query-builder/json-path-builder.d.ts +3 -2
  158. package/dist/esm/query-builder/json-path-builder.js +6 -3
  159. package/dist/esm/query-builder/on-conflict-builder.d.ts +58 -16
  160. package/dist/esm/query-builder/on-conflict-builder.js +2 -7
  161. package/dist/esm/query-builder/over-builder.d.ts +2 -2
  162. package/dist/esm/query-builder/select-query-builder.d.ts +38 -22
  163. package/dist/esm/query-builder/update-query-builder.d.ts +20 -4
  164. package/dist/esm/query-builder/update-query-builder.js +3 -3
  165. package/dist/esm/query-builder/where-interface.d.ts +3 -3
  166. package/dist/esm/query-compiler/default-query-compiler.d.ts +9 -1
  167. package/dist/esm/query-compiler/default-query-compiler.js +65 -12
  168. package/dist/esm/schema/alter-table-add-index-builder.d.ts +104 -0
  169. package/dist/esm/schema/alter-table-add-index-builder.js +143 -0
  170. package/dist/esm/schema/alter-table-builder.d.ts +41 -1
  171. package/dist/esm/schema/alter-table-builder.js +59 -2
  172. package/dist/esm/schema/column-definition-builder.d.ts +25 -0
  173. package/dist/esm/schema/column-definition-builder.js +27 -0
  174. package/dist/esm/schema/create-index-builder.d.ts +23 -0
  175. package/dist/esm/schema/create-index-builder.js +30 -0
  176. package/dist/esm/schema/create-table-builder.d.ts +28 -2
  177. package/dist/esm/schema/create-table-builder.js +38 -3
  178. package/dist/esm/schema/unique-constraint-builder.d.ts +14 -0
  179. package/dist/esm/schema/unique-constraint-builder.js +21 -0
  180. package/dist/esm/util/log.js +5 -1
  181. package/dist/esm/util/object-utils.d.ts +1 -1
  182. package/dist/esm/util/type-utils.d.ts +27 -19
  183. package/helpers/mssql.d.ts +1 -0
  184. package/helpers/mssql.js +1 -0
  185. package/package.json +17 -6
@@ -33,19 +33,15 @@ import { KyselyTypeError } from './type-error.js';
33
33
  * // Columns == 'id' | 'name' | 'species'
34
34
  * ```
35
35
  */
36
- export type AnyColumn<DB, TB extends keyof DB> = [
37
- DB
38
- ] extends [unknown] ? {
36
+ export type AnyColumn<DB, TB extends keyof DB> = {
39
37
  [T in TB]: keyof DB[T];
40
- }[TB] & string : never;
38
+ }[TB] & string;
41
39
  /**
42
40
  * Extracts a column type.
43
41
  */
44
- export type ExtractColumnType<DB, TB extends keyof DB, C> = [
45
- DB
46
- ] extends [unknown] ? {
42
+ export type ExtractColumnType<DB, TB extends keyof DB, C> = {
47
43
  [T in TB]: C extends keyof DB[T] ? DB[T][C] : never;
48
- }[TB] : never;
44
+ }[TB];
49
45
  /**
50
46
  * Given a database type and a union of table names in that db, returns
51
47
  * a union type with all possible `table`.`column` combinations.
@@ -77,21 +73,17 @@ export type ExtractColumnType<DB, TB extends keyof DB, C> = [
77
73
  * // Columns == 'person.id' | 'pet.name' | 'pet.species'
78
74
  * ```
79
75
  */
80
- export type AnyColumnWithTable<DB, TB extends keyof DB> = DrainOuterGeneric<{
81
- [T in TB]: T extends string ? keyof DB[T] extends string ? `${T}.${keyof DB[T]}` : never : never;
82
- }[TB]>;
76
+ export type AnyColumnWithTable<DB, TB extends keyof DB> = {
77
+ [T in TB]: `${T & string}.${keyof DB[T] & string}`;
78
+ }[TB];
83
79
  /**
84
80
  * Just like {@link AnyColumn} but with a ` as <string>` suffix.
85
81
  */
86
- export type AnyAliasedColumn<DB, TB extends keyof DB> = DrainOuterGeneric<{
87
- [T in TB]: T extends string ? keyof DB[T] extends string ? `${keyof DB[T]} as ${string}` : never : never;
88
- }[TB]>;
82
+ export type AnyAliasedColumn<DB, TB extends keyof DB> = `${AnyColumn<DB, TB>} as ${string}`;
89
83
  /**
90
84
  * Just like {@link AnyColumnWithTable} but with a ` as <string>` suffix.
91
85
  */
92
- export type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = DrainOuterGeneric<{
93
- [T in TB]: T extends string ? keyof DB[T] extends string ? `${T}.${keyof DB[T]} as ${string}` : never : never;
94
- }[TB]>;
86
+ export type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = `${AnyColumnWithTable<DB, TB>} as ${string}`;
95
87
  /**
96
88
  * Extracts the item type of an array.
97
89
  */
@@ -123,9 +115,25 @@ export type IsAny<T> = 0 extends T & 1 ? true : false;
123
115
  * Evaluates to `true` if the types `T` and `U` are equal.
124
116
  */
125
117
  export type Equals<T, U> = (<G>() => G extends T ? 1 : 2) extends <G>() => G extends U ? 1 : 2 ? true : false;
126
- export type NarrowPartial<S, T> = DrainOuterGeneric<T extends object ? {
127
- [K in keyof S & string]: K extends keyof T ? T[K] extends S[K] ? T[K] : KyselyTypeError<`$narrowType() call failed: passed type does not exist in '${K}'s type union`> : S[K];
118
+ export type NarrowPartial<O, T> = DrainOuterGeneric<T extends object ? {
119
+ [K in keyof O & string]: K extends keyof T ? T[K] extends NotNull ? Exclude<O[K], null> : T[K] extends O[K] ? T[K] : KyselyTypeError<`$narrowType() call failed: passed type does not exist in '${K}'s type union`> : O[K];
128
120
  } : never>;
121
+ /**
122
+ * A type constant for marking a column as not null. Can be used with `$narrowPartial`.
123
+ *
124
+ * Example:
125
+ *
126
+ * ```ts
127
+ * const person = await db.selectFrom('person')
128
+ * .where('nullable_column', 'is not', null)
129
+ * .selectAll()
130
+ * .$narrowType<{ nullable_column: NotNull }>()
131
+ * .executeTakeFirstOrThrow()
132
+ * ```
133
+ */
134
+ export type NotNull = {
135
+ readonly __notNull__: unique symbol;
136
+ };
129
137
  export type SqlBool = boolean | 0 | 1;
130
138
  /**
131
139
  * Utility to reduce depth of TypeScript's internal type instantiation stack.
@@ -0,0 +1 @@
1
+ export * from '../dist/cjs/helpers/mssql.js'
@@ -0,0 +1 @@
1
+ module.exports = require('../dist/cjs/helpers/mssql.js')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.26.3",
3
+ "version": "0.27.0",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,6 +27,11 @@
27
27
  "require": "./dist/cjs/helpers/mysql.js",
28
28
  "default": "./dist/cjs/helpers/mysql.js"
29
29
  },
30
+ "./helpers/mssql": {
31
+ "import": "./dist/esm/helpers/mssql.js",
32
+ "require": "./dist/cjs/helpers/mssql.js",
33
+ "default": "./dist/cjs/helpers/mssql.js"
34
+ },
30
35
  "./helpers/sqlite": {
31
36
  "import": "./dist/esm/helpers/sqlite.js",
32
37
  "require": "./dist/cjs/helpers/sqlite.js",
@@ -37,10 +42,11 @@
37
42
  "clean": "rm -rf dist & rm -rf test/node/dist & rm -rf test/browser/bundle.js & rm -rf helpers",
38
43
  "test": "npm run build && npm run test:node:build && concurrently -n node,typings,esmimports \"npm run test:node\" \"npm run test:typings\" \"npm run test:esmimports\"",
39
44
  "test:node:build": "tsc -p test/node",
40
- "test:node": "concurrently -n postgres,mysql,sqlite \"npm run test:node:postgres\" \"npm run test:node:mysql\" \"npm run test:node:sqlite\"",
41
- "test:node:postgres": "DIALECT=postgres npm run test:node:run",
42
- "test:node:mysql": "DIALECT=mysql npm run test:node:run",
43
- "test:node:sqlite": "DIALECT=sqlite npm run test:node:run",
45
+ "test:node": "concurrently -n postgres,mysql,mssql,sqlite \"npm run test:node:postgres\" \"npm run test:node:mysql\" \"npm run test:node:mssql\" \"npm run test:node:sqlite\"",
46
+ "test:node:postgres": "cross-env DIALECT=postgres npm run test:node:run",
47
+ "test:node:mysql": "cross-env DIALECT=mysql npm run test:node:run",
48
+ "test:node:mssql": "cross-env DIALECT=mssql npm run test:node:run",
49
+ "test:node:sqlite": "cross-env DIALECT=sqlite npm run test:node:run",
44
50
  "test:node:run": "mocha --reporter min --timeout 15000 test/node/dist/**/*.test.js",
45
51
  "test:browser:build": "rm -rf test/browser/bundle.js && esbuild test/browser/main.ts --bundle --outfile=test/browser/bundle.js",
46
52
  "test:browser": "npm run build && npm run test:browser:build && node test/browser/test.js",
@@ -63,6 +69,7 @@
63
69
  "author": "Sami Koskimäki <sami@jakso.me>",
64
70
  "license": "MIT",
65
71
  "contributors": [
72
+ "Sami Koskimäki <sami@jakso.me>",
66
73
  "Igal Klebanov <igalklebanov@gmail.com>"
67
74
  ],
68
75
  "devDependencies": {
@@ -75,11 +82,13 @@
75
82
  "@types/pg": "^8.10.2",
76
83
  "@types/pg-cursor": "^2.7.0",
77
84
  "@types/sinon": "^10.0.15",
85
+ "@types/tedious": "^4.0.9",
78
86
  "better-sqlite3": "^8.4.0",
79
87
  "chai": "^4.3.7",
80
88
  "chai-as-promised": "^7.1.1",
81
89
  "chai-subset": "^1.6.0",
82
90
  "concurrently": "^8.1.0",
91
+ "cross-env": "^7.0.3",
83
92
  "esbuild": "^0.17.19",
84
93
  "mocha": "^10.2.0",
85
94
  "mysql2": "^3.3.3",
@@ -88,7 +97,9 @@
88
97
  "playwright": "^1.34.3",
89
98
  "prettier": "^2.8.8",
90
99
  "sinon": "^15.1.0",
100
+ "tarn": "^3.0.2",
101
+ "tedious": "^16.4.0",
91
102
  "tsd": "^0.28.1",
92
- "typescript": "^5.1.6"
103
+ "typescript": "^5.2.2"
93
104
  }
94
105
  }