kysely 0.27.1 → 0.27.3

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 (161) hide show
  1. package/dist/cjs/dialect/database-introspector.d.ts +1 -0
  2. package/dist/cjs/dialect/mssql/mssql-introspector.js +13 -2
  3. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +4 -0
  4. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +8 -0
  5. package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -0
  6. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  7. package/dist/cjs/dialect/postgres/postgres-driver.js +2 -1
  8. package/dist/cjs/dialect/postgres/postgres-introspector.js +2 -0
  9. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
  10. package/dist/cjs/driver/database-connection.d.ts +1 -1
  11. package/dist/cjs/expression/expression-builder.d.ts +30 -4
  12. package/dist/cjs/expression/expression-builder.js +5 -0
  13. package/dist/cjs/index.d.ts +7 -1
  14. package/dist/cjs/index.js +6 -0
  15. package/dist/cjs/migration/migrator.d.ts +19 -2
  16. package/dist/cjs/migration/migrator.js +77 -43
  17. package/dist/cjs/operation-node/add-index-node.js +1 -1
  18. package/dist/cjs/operation-node/cast-node.d.ts +13 -0
  19. package/dist/cjs/operation-node/cast-node.js +19 -0
  20. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  21. package/dist/cjs/operation-node/data-type-node.d.ts +5 -1
  22. package/dist/cjs/operation-node/data-type-node.js +55 -1
  23. package/dist/cjs/operation-node/delete-query-node.d.ts +4 -0
  24. package/dist/cjs/operation-node/delete-query-node.js +12 -0
  25. package/dist/cjs/operation-node/fetch-node.d.ts +15 -0
  26. package/dist/cjs/operation-node/fetch-node.js +19 -0
  27. package/dist/cjs/operation-node/insert-query-node.d.ts +4 -1
  28. package/dist/cjs/operation-node/insert-query-node.js +5 -0
  29. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  30. package/dist/cjs/operation-node/matched-node.d.ts +13 -0
  31. package/dist/cjs/operation-node/matched-node.js +19 -0
  32. package/dist/cjs/operation-node/merge-query-node.d.ts +25 -0
  33. package/dist/cjs/operation-node/merge-query-node.js +45 -0
  34. package/dist/cjs/operation-node/operation-node-transformer.d.ts +10 -0
  35. package/dist/cjs/operation-node/operation-node-transformer.js +50 -0
  36. package/dist/cjs/operation-node/operation-node-visitor.d.ts +10 -0
  37. package/dist/cjs/operation-node/operation-node-visitor.js +5 -0
  38. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/query-node.d.ts +10 -3
  40. package/dist/cjs/operation-node/query-node.js +15 -1
  41. package/dist/cjs/operation-node/select-query-node.d.ts +5 -0
  42. package/dist/cjs/operation-node/select-query-node.js +6 -0
  43. package/dist/cjs/operation-node/top-node.d.ts +14 -0
  44. package/dist/cjs/operation-node/top-node.js +19 -0
  45. package/dist/cjs/operation-node/update-query-node.d.ts +7 -1
  46. package/dist/cjs/operation-node/update-query-node.js +11 -0
  47. package/dist/cjs/parser/binary-operation-parser.d.ts +1 -1
  48. package/dist/cjs/parser/binary-operation-parser.js +2 -2
  49. package/dist/cjs/parser/data-type-parser.js +7 -3
  50. package/dist/cjs/parser/fetch-parser.d.ts +2 -0
  51. package/dist/cjs/parser/fetch-parser.js +18 -0
  52. package/dist/cjs/parser/insert-values-parser.d.ts +3 -3
  53. package/dist/cjs/parser/merge-parser.d.ts +9 -0
  54. package/dist/cjs/parser/merge-parser.js +32 -0
  55. package/dist/cjs/parser/table-parser.d.ts +4 -3
  56. package/dist/cjs/parser/top-parser.d.ts +2 -0
  57. package/dist/cjs/parser/top-parser.js +20 -0
  58. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +4 -0
  59. package/dist/cjs/query-builder/delete-query-builder.d.ts +99 -0
  60. package/dist/cjs/query-builder/delete-query-builder.js +120 -0
  61. package/dist/cjs/query-builder/insert-query-builder.d.ts +73 -3
  62. package/dist/cjs/query-builder/insert-query-builder.js +242 -0
  63. package/dist/cjs/query-builder/merge-query-builder.d.ts +557 -0
  64. package/dist/cjs/query-builder/merge-query-builder.js +518 -0
  65. package/dist/cjs/query-builder/merge-result.d.ts +4 -0
  66. package/dist/cjs/query-builder/merge-result.js +10 -0
  67. package/dist/cjs/query-builder/select-query-builder.d.ts +102 -7
  68. package/dist/cjs/query-builder/select-query-builder.js +14 -0
  69. package/dist/cjs/query-builder/update-query-builder.d.ts +82 -3
  70. package/dist/cjs/query-builder/update-query-builder.js +98 -0
  71. package/dist/cjs/query-compiler/default-query-compiler.d.ts +10 -0
  72. package/dist/cjs/query-compiler/default-query-compiler.js +94 -10
  73. package/dist/cjs/query-compiler/query-compiler.d.ts +2 -1
  74. package/dist/cjs/query-creator.d.ts +40 -2
  75. package/dist/cjs/query-creator.js +9 -0
  76. package/dist/cjs/schema/alter-table-add-index-builder.js +6 -2
  77. package/dist/cjs/schema/column-definition-builder.d.ts +13 -1
  78. package/dist/cjs/schema/column-definition-builder.js +15 -1
  79. package/dist/cjs/util/infer-result.d.ts +2 -1
  80. package/dist/cjs/util/type-utils.d.ts +3 -2
  81. package/dist/esm/dialect/database-introspector.d.ts +1 -0
  82. package/dist/esm/dialect/mssql/mssql-introspector.js +13 -2
  83. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +4 -0
  84. package/dist/esm/dialect/mssql/mssql-query-compiler.js +8 -0
  85. package/dist/esm/dialect/mysql/mysql-introspector.js +2 -0
  86. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  87. package/dist/esm/dialect/postgres/postgres-driver.js +2 -1
  88. package/dist/esm/dialect/postgres/postgres-introspector.js +2 -0
  89. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  90. package/dist/esm/driver/database-connection.d.ts +1 -1
  91. package/dist/esm/expression/expression-builder.d.ts +30 -4
  92. package/dist/esm/expression/expression-builder.js +5 -0
  93. package/dist/esm/index.d.ts +7 -1
  94. package/dist/esm/index.js +6 -0
  95. package/dist/esm/migration/migrator.d.ts +19 -2
  96. package/dist/esm/migration/migrator.js +76 -42
  97. package/dist/esm/operation-node/add-index-node.js +1 -1
  98. package/dist/esm/operation-node/cast-node.d.ts +13 -0
  99. package/dist/esm/operation-node/cast-node.js +17 -0
  100. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  101. package/dist/esm/operation-node/data-type-node.d.ts +5 -1
  102. package/dist/esm/operation-node/data-type-node.js +53 -0
  103. package/dist/esm/operation-node/delete-query-node.d.ts +4 -0
  104. package/dist/esm/operation-node/delete-query-node.js +12 -0
  105. package/dist/esm/operation-node/fetch-node.d.ts +15 -0
  106. package/dist/esm/operation-node/fetch-node.js +17 -0
  107. package/dist/esm/operation-node/insert-query-node.d.ts +4 -1
  108. package/dist/esm/operation-node/insert-query-node.js +5 -0
  109. package/dist/esm/operation-node/join-node.d.ts +1 -1
  110. package/dist/esm/operation-node/matched-node.d.ts +13 -0
  111. package/dist/esm/operation-node/matched-node.js +17 -0
  112. package/dist/esm/operation-node/merge-query-node.d.ts +25 -0
  113. package/dist/esm/operation-node/merge-query-node.js +43 -0
  114. package/dist/esm/operation-node/operation-node-transformer.d.ts +10 -0
  115. package/dist/esm/operation-node/operation-node-transformer.js +50 -0
  116. package/dist/esm/operation-node/operation-node-visitor.d.ts +10 -0
  117. package/dist/esm/operation-node/operation-node-visitor.js +5 -0
  118. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  119. package/dist/esm/operation-node/query-node.d.ts +10 -3
  120. package/dist/esm/operation-node/query-node.js +15 -1
  121. package/dist/esm/operation-node/select-query-node.d.ts +5 -0
  122. package/dist/esm/operation-node/select-query-node.js +6 -0
  123. package/dist/esm/operation-node/top-node.d.ts +14 -0
  124. package/dist/esm/operation-node/top-node.js +17 -0
  125. package/dist/esm/operation-node/update-query-node.d.ts +7 -1
  126. package/dist/esm/operation-node/update-query-node.js +11 -0
  127. package/dist/esm/parser/binary-operation-parser.d.ts +1 -1
  128. package/dist/esm/parser/binary-operation-parser.js +2 -2
  129. package/dist/esm/parser/data-type-parser.js +8 -4
  130. package/dist/esm/parser/fetch-parser.d.ts +2 -0
  131. package/dist/esm/parser/fetch-parser.js +15 -0
  132. package/dist/esm/parser/insert-values-parser.d.ts +3 -3
  133. package/dist/esm/parser/merge-parser.d.ts +9 -0
  134. package/dist/esm/parser/merge-parser.js +28 -0
  135. package/dist/esm/parser/table-parser.d.ts +4 -3
  136. package/dist/esm/parser/top-parser.d.ts +2 -0
  137. package/dist/esm/parser/top-parser.js +17 -0
  138. package/dist/esm/plugin/with-schema/with-schema-transformer.js +4 -0
  139. package/dist/esm/query-builder/delete-query-builder.d.ts +99 -0
  140. package/dist/esm/query-builder/delete-query-builder.js +120 -0
  141. package/dist/esm/query-builder/insert-query-builder.d.ts +73 -3
  142. package/dist/esm/query-builder/insert-query-builder.js +242 -0
  143. package/dist/esm/query-builder/merge-query-builder.d.ts +557 -0
  144. package/dist/esm/query-builder/merge-query-builder.js +512 -0
  145. package/dist/esm/query-builder/merge-result.d.ts +4 -0
  146. package/dist/esm/query-builder/merge-result.js +7 -0
  147. package/dist/esm/query-builder/select-query-builder.d.ts +102 -7
  148. package/dist/esm/query-builder/select-query-builder.js +14 -0
  149. package/dist/esm/query-builder/update-query-builder.d.ts +82 -3
  150. package/dist/esm/query-builder/update-query-builder.js +98 -0
  151. package/dist/esm/query-compiler/default-query-compiler.d.ts +10 -0
  152. package/dist/esm/query-compiler/default-query-compiler.js +94 -10
  153. package/dist/esm/query-compiler/query-compiler.d.ts +2 -1
  154. package/dist/esm/query-creator.d.ts +40 -2
  155. package/dist/esm/query-creator.js +10 -1
  156. package/dist/esm/schema/alter-table-add-index-builder.js +7 -3
  157. package/dist/esm/schema/column-definition-builder.d.ts +13 -1
  158. package/dist/esm/schema/column-definition-builder.js +15 -1
  159. package/dist/esm/util/infer-result.d.ts +2 -1
  160. package/dist/esm/util/type-utils.d.ts +3 -2
  161. package/package.json +22 -21
@@ -24,6 +24,16 @@ export class ColumnDefinitionBuilder {
24
24
  autoIncrement() {
25
25
  return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
26
26
  }
27
+ /**
28
+ * Makes the column an identity column.
29
+ *
30
+ * This only works on some dialects like MS SQL Server (MSSQL).
31
+ *
32
+ * For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
33
+ */
34
+ identity() {
35
+ return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { identity: true }));
36
+ }
27
37
  /**
28
38
  * Makes the column the primary key.
29
39
  *
@@ -191,7 +201,11 @@ export class ColumnDefinitionBuilder {
191
201
  }));
192
202
  }
193
203
  /**
194
- * Adds the `generated always as identity` specifier on supported dialects.
204
+ * Adds the `generated always as identity` specifier.
205
+ *
206
+ * This only works on some dialects like PostgreSQL.
207
+ *
208
+ * For MS SQL Server (MSSQL)'s identity column use {@link identity}.
195
209
  */
196
210
  generatedAlwaysAsIdentity() {
197
211
  return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
@@ -1,5 +1,6 @@
1
1
  import { DeleteResult } from '../query-builder/delete-result.js';
2
2
  import { InsertResult } from '../query-builder/insert-result.js';
3
+ import { MergeResult } from '../query-builder/merge-result.js';
3
4
  import { UpdateResult } from '../query-builder/update-result.js';
4
5
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
5
6
  import { Compilable } from './compilable.js';
@@ -43,5 +44,5 @@ import { Simplify } from './type-utils.js';
43
44
  * ```
44
45
  */
45
46
  export type InferResult<C extends Compilable<any> | CompiledQuery<any>> = C extends Compilable<infer O> ? ResolveResult<O> : C extends CompiledQuery<infer O> ? ResolveResult<O> : never;
46
- type ResolveResult<O> = O extends InsertResult | UpdateResult | DeleteResult ? O : Simplify<O>[];
47
+ type ResolveResult<O> = O extends InsertResult | UpdateResult | DeleteResult | MergeResult ? O : Simplify<O>[];
47
48
  export {};
@@ -2,6 +2,7 @@ import { InsertResult } from '../query-builder/insert-result.js';
2
2
  import { DeleteResult } from '../query-builder/delete-result.js';
3
3
  import { UpdateResult } from '../query-builder/update-result.js';
4
4
  import { KyselyTypeError } from './type-error.js';
5
+ import { MergeResult } from '../query-builder/merge-result.js';
5
6
  /**
6
7
  * Given a database type and a union of table names in that db, returns
7
8
  * a union type with all possible column names.
@@ -88,8 +89,8 @@ export type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = `${AnyColumnWit
88
89
  * Extracts the item type of an array.
89
90
  */
90
91
  export type ArrayItemType<T> = T extends ReadonlyArray<infer I> ? I : never;
91
- export type SimplifySingleResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : Simplify<O> | undefined;
92
- export type SimplifyResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : Simplify<O>;
92
+ export type SimplifySingleResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : O extends MergeResult ? O : Simplify<O> | undefined;
93
+ export type SimplifyResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : O extends MergeResult ? O : Simplify<O>;
93
94
  export type Simplify<T> = DrainOuterGeneric<{
94
95
  [K in keyof T]: T[K];
95
96
  } & {}>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.27.1",
3
+ "version": "0.27.3",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
@@ -53,7 +53,7 @@
53
53
  "test:esmimports": "node scripts/check-esm-imports.js",
54
54
  "test:esbuild": "esbuild --bundle --platform=node --external:pg-native dist/esm/index.js --outfile=/dev/null",
55
55
  "prettier": "prettier --write 'src/**/*.ts' 'test/**/*.ts'",
56
- "build": "npm run clean && npm run build:esm && npm run build:cjs && npm run script:module-fixup && npm run script:copy-interface-doc",
56
+ "build": "npm run clean && (npm run build:esm & npm run build:cjs) && npm run script:module-fixup && npm run script:copy-interface-doc",
57
57
  "build:esm": "tsc -p tsconfig.json && npm run script:add-deno-type-references",
58
58
  "build:cjs": "tsc -p tsconfig-cjs.json",
59
59
  "script:module-fixup": "node scripts/module-fixup.js",
@@ -69,31 +69,32 @@
69
69
  "Igal Klebanov <igalklebanov@gmail.com>"
70
70
  ],
71
71
  "devDependencies": {
72
- "@types/better-sqlite3": "^7.6.4",
73
- "@types/chai": "^4.3.5",
74
- "@types/chai-as-promised": "^7.1.5",
75
- "@types/chai-subset": "^1.3.3",
76
- "@types/mocha": "^10.0.1",
72
+ "@types/better-sqlite3": "^7.6.8",
73
+ "@types/chai": "^4.3.11",
74
+ "@types/chai-as-promised": "^7.1.8",
75
+ "@types/chai-subset": "^1.3.5",
76
+ "@types/mocha": "^10.0.6",
77
77
  "@types/node": "^18.15.11",
78
- "@types/pg": "^8.10.2",
79
- "@types/pg-cursor": "^2.7.0",
80
- "@types/sinon": "^10.0.15",
78
+ "@types/pg": "^8.10.9",
79
+ "@types/pg-cursor": "^2.7.2",
80
+ "@types/sinon": "^17.0.2",
81
81
  "@types/tedious": "^4.0.9",
82
- "better-sqlite3": "^8.4.0",
83
- "chai": "^4.3.7",
82
+ "better-sqlite3": "^9.2.2",
83
+ "chai": "^4.4.0",
84
84
  "chai-as-promised": "^7.1.1",
85
85
  "chai-subset": "^1.6.0",
86
- "esbuild": "^0.17.19",
86
+ "esbuild": "^0.19.11",
87
+ "lodash": "^4.17.21",
87
88
  "mocha": "^10.2.0",
88
- "mysql2": "^3.3.3",
89
- "pg": "^8.11.0",
90
- "pg-cursor": "^2.10.0",
91
- "playwright": "^1.34.3",
92
- "prettier": "^2.8.8",
93
- "sinon": "^15.1.0",
89
+ "mysql2": "^3.6.5",
90
+ "pg": "^8.11.3",
91
+ "pg-cursor": "^2.10.3",
92
+ "playwright": "^1.40.1",
93
+ "prettier": "^3.1.1",
94
+ "sinon": "^17.0.1",
94
95
  "tarn": "^3.0.2",
95
96
  "tedious": "^16.4.0",
96
- "tsd": "^0.28.1",
97
- "typescript": "^5.2.2"
97
+ "tsd": "^0.30.3",
98
+ "typescript": "^5.4.2"
98
99
  }
99
100
  }