kysely 0.27.3 → 0.27.4

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 (211) hide show
  1. package/CONTRIBUTING.md +1 -1
  2. package/README.md +7 -7
  3. package/dist/cjs/dialect/dialect-adapter-base.d.ts +2 -1
  4. package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
  5. package/dist/cjs/dialect/dialect-adapter.d.ts +5 -0
  6. package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +1 -5
  7. package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
  8. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +46 -26
  9. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
  10. package/dist/cjs/dialect/mssql/mssql-driver.js +95 -36
  11. package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -1
  12. package/dist/cjs/driver/database-connection.d.ts +3 -1
  13. package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
  14. package/dist/cjs/dynamic/dynamic.d.ts +1 -1
  15. package/dist/cjs/dynamic/dynamic.js +1 -1
  16. package/dist/cjs/expression/expression-builder.d.ts +2 -2
  17. package/dist/cjs/expression/expression-builder.js +2 -3
  18. package/dist/cjs/expression/expression.js +2 -3
  19. package/dist/cjs/helpers/mssql.js +3 -4
  20. package/dist/cjs/helpers/mysql.d.ts +3 -3
  21. package/dist/cjs/helpers/mysql.js +6 -7
  22. package/dist/cjs/helpers/postgres.d.ts +4 -4
  23. package/dist/cjs/helpers/postgres.js +7 -8
  24. package/dist/cjs/helpers/sqlite.js +3 -4
  25. package/dist/cjs/index.d.ts +28 -21
  26. package/dist/cjs/index.js +28 -21
  27. package/dist/cjs/kysely.d.ts +1 -1
  28. package/dist/cjs/kysely.js +3 -3
  29. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
  30. package/dist/cjs/operation-node/case-node.d.ts +1 -1
  31. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  32. package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
  33. package/dist/cjs/operation-node/data-type-node.js +5 -3
  34. package/dist/cjs/operation-node/delete-query-node.d.ts +2 -0
  35. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
  36. package/dist/cjs/operation-node/having-node.d.ts +1 -1
  37. package/dist/cjs/operation-node/insert-query-node.d.ts +2 -0
  38. package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
  39. package/dist/cjs/operation-node/on-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/operation-node-source.js +1 -2
  41. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  42. package/dist/cjs/operation-node/operation-node-transformer.js +12 -0
  43. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  44. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  45. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  46. package/dist/cjs/operation-node/operator-node.d.ts +3 -3
  47. package/dist/cjs/operation-node/operator-node.js +8 -6
  48. package/dist/cjs/operation-node/output-node.d.ts +13 -0
  49. package/dist/cjs/operation-node/output-node.js +26 -0
  50. package/dist/cjs/operation-node/query-node.d.ts +11 -6
  51. package/dist/cjs/operation-node/query-node.js +9 -0
  52. package/dist/cjs/operation-node/select-query-node.d.ts +1 -0
  53. package/dist/cjs/operation-node/select-query-node.js +6 -0
  54. package/dist/cjs/operation-node/update-query-node.d.ts +2 -0
  55. package/dist/cjs/operation-node/where-node.d.ts +1 -1
  56. package/dist/cjs/parser/binary-operation-parser.js +5 -6
  57. package/dist/cjs/parser/data-type-parser.js +1 -2
  58. package/dist/cjs/parser/default-value-parser.js +1 -2
  59. package/dist/cjs/parser/expression-parser.js +3 -4
  60. package/dist/cjs/parser/fetch-parser.js +1 -2
  61. package/dist/cjs/parser/group-by-parser.js +1 -2
  62. package/dist/cjs/parser/identifier-parser.js +1 -2
  63. package/dist/cjs/parser/insert-values-parser.js +1 -2
  64. package/dist/cjs/parser/join-parser.js +1 -2
  65. package/dist/cjs/parser/merge-parser.js +2 -3
  66. package/dist/cjs/parser/on-commit-action-parse.js +1 -2
  67. package/dist/cjs/parser/on-modify-action-parser.js +1 -2
  68. package/dist/cjs/parser/order-by-parser.js +3 -4
  69. package/dist/cjs/parser/parse-utils.js +4 -5
  70. package/dist/cjs/parser/partition-by-parser.js +1 -2
  71. package/dist/cjs/parser/reference-parser.js +8 -9
  72. package/dist/cjs/parser/returning-parser.d.ts +4 -3
  73. package/dist/cjs/parser/select-parser.js +2 -3
  74. package/dist/cjs/parser/set-operation-parser.js +1 -2
  75. package/dist/cjs/parser/table-parser.js +4 -5
  76. package/dist/cjs/parser/top-parser.js +1 -2
  77. package/dist/cjs/parser/unary-operation-parser.js +3 -4
  78. package/dist/cjs/parser/update-set-parser.js +2 -3
  79. package/dist/cjs/parser/value-parser.js +4 -5
  80. package/dist/cjs/parser/with-parser.js +1 -2
  81. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +2 -2
  82. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +2 -2
  83. package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
  84. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
  85. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
  86. package/dist/cjs/query-builder/delete-query-builder.d.ts +89 -5
  87. package/dist/cjs/query-builder/delete-query-builder.js +19 -5
  88. package/dist/cjs/query-builder/function-module.d.ts +5 -5
  89. package/dist/cjs/query-builder/function-module.js +1 -2
  90. package/dist/cjs/query-builder/insert-query-builder.d.ts +95 -10
  91. package/dist/cjs/query-builder/insert-query-builder.js +25 -10
  92. package/dist/cjs/query-builder/merge-query-builder.d.ts +167 -3
  93. package/dist/cjs/query-builder/merge-query-builder.js +30 -1
  94. package/dist/cjs/query-builder/no-result-error.js +2 -2
  95. package/dist/cjs/query-builder/on-conflict-builder.d.ts +2 -2
  96. package/dist/cjs/query-builder/output-interface.d.ts +95 -0
  97. package/dist/cjs/query-builder/output-interface.js +2 -0
  98. package/dist/cjs/query-builder/returning-interface.d.ts +2 -0
  99. package/dist/cjs/query-builder/select-query-builder.d.ts +76 -11
  100. package/dist/cjs/query-builder/select-query-builder.js +7 -2
  101. package/dist/cjs/query-builder/update-query-builder.d.ts +95 -10
  102. package/dist/cjs/query-builder/update-query-builder.js +21 -7
  103. package/dist/cjs/query-builder/update-result.d.ts +9 -0
  104. package/dist/cjs/query-builder/update-result.js +9 -0
  105. package/dist/cjs/query-builder/where-interface.d.ts +1 -1
  106. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
  107. package/dist/cjs/query-compiler/default-query-compiler.js +25 -1
  108. package/dist/cjs/query-creator.d.ts +56 -3
  109. package/dist/cjs/query-creator.js +54 -1
  110. package/dist/cjs/raw-builder/raw-builder.js +1 -2
  111. package/dist/cjs/raw-builder/sql.d.ts +5 -5
  112. package/dist/cjs/schema/alter-column-builder.js +3 -0
  113. package/dist/cjs/schema/alter-table-add-index-builder.d.ts +1 -1
  114. package/dist/cjs/schema/alter-table-add-index-builder.js +1 -1
  115. package/dist/cjs/schema/alter-table-builder.js +1 -2
  116. package/dist/cjs/schema/column-definition-builder.d.ts +5 -0
  117. package/dist/cjs/schema/column-definition-builder.js +7 -0
  118. package/dist/cjs/util/assert.js +2 -3
  119. package/dist/cjs/util/compilable.js +1 -2
  120. package/dist/cjs/util/json-object-args.js +1 -2
  121. package/dist/cjs/util/log-once.js +1 -2
  122. package/dist/cjs/util/object-utils.js +38 -26
  123. package/dist/cjs/util/performance-now.js +1 -2
  124. package/dist/cjs/util/prevent-await.js +1 -2
  125. package/dist/cjs/util/query-id.js +1 -2
  126. package/dist/cjs/util/random-string.js +1 -2
  127. package/dist/cjs/util/require-all-props.js +1 -2
  128. package/dist/cjs/util/stack-trace-utils.js +1 -2
  129. package/dist/esm/dialect/dialect-adapter-base.d.ts +2 -1
  130. package/dist/esm/dialect/dialect-adapter-base.js +4 -1
  131. package/dist/esm/dialect/dialect-adapter.d.ts +5 -0
  132. package/dist/esm/dialect/mssql/mssql-adapter.d.ts +1 -5
  133. package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
  134. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +46 -26
  135. package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
  136. package/dist/esm/dialect/mssql/mssql-driver.js +95 -36
  137. package/dist/esm/dialect/postgres/postgres-introspector.js +1 -1
  138. package/dist/esm/driver/database-connection.d.ts +3 -1
  139. package/dist/esm/dynamic/dynamic.d.ts +1 -1
  140. package/dist/esm/dynamic/dynamic.js +1 -1
  141. package/dist/esm/expression/expression-builder.d.ts +2 -2
  142. package/dist/esm/helpers/mysql.d.ts +3 -3
  143. package/dist/esm/helpers/mysql.js +3 -3
  144. package/dist/esm/helpers/postgres.d.ts +4 -4
  145. package/dist/esm/helpers/postgres.js +4 -4
  146. package/dist/esm/index.d.ts +28 -21
  147. package/dist/esm/index.js +28 -21
  148. package/dist/esm/kysely.d.ts +1 -1
  149. package/dist/esm/kysely.js +1 -1
  150. package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
  151. package/dist/esm/operation-node/case-node.d.ts +1 -1
  152. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  153. package/dist/esm/operation-node/data-type-node.d.ts +2 -2
  154. package/dist/esm/operation-node/data-type-node.js +3 -1
  155. package/dist/esm/operation-node/delete-query-node.d.ts +2 -0
  156. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
  157. package/dist/esm/operation-node/having-node.d.ts +1 -1
  158. package/dist/esm/operation-node/insert-query-node.d.ts +2 -0
  159. package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
  160. package/dist/esm/operation-node/on-node.d.ts +1 -1
  161. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  162. package/dist/esm/operation-node/operation-node-transformer.js +12 -0
  163. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  164. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  165. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  166. package/dist/esm/operation-node/operator-node.d.ts +3 -3
  167. package/dist/esm/operation-node/operator-node.js +2 -0
  168. package/dist/esm/operation-node/output-node.d.ts +13 -0
  169. package/dist/esm/operation-node/output-node.js +24 -0
  170. package/dist/esm/operation-node/query-node.d.ts +11 -6
  171. package/dist/esm/operation-node/query-node.js +9 -0
  172. package/dist/esm/operation-node/select-query-node.d.ts +1 -0
  173. package/dist/esm/operation-node/select-query-node.js +6 -0
  174. package/dist/esm/operation-node/update-query-node.d.ts +2 -0
  175. package/dist/esm/operation-node/where-node.d.ts +1 -1
  176. package/dist/esm/parser/returning-parser.d.ts +4 -3
  177. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +2 -2
  178. package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
  179. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
  180. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
  181. package/dist/esm/query-builder/delete-query-builder.d.ts +89 -5
  182. package/dist/esm/query-builder/delete-query-builder.js +19 -5
  183. package/dist/esm/query-builder/function-module.d.ts +5 -5
  184. package/dist/esm/query-builder/insert-query-builder.d.ts +95 -10
  185. package/dist/esm/query-builder/insert-query-builder.js +25 -10
  186. package/dist/esm/query-builder/merge-query-builder.d.ts +167 -3
  187. package/dist/esm/query-builder/merge-query-builder.js +30 -1
  188. package/dist/esm/query-builder/on-conflict-builder.d.ts +2 -2
  189. package/dist/esm/query-builder/output-interface.d.ts +95 -0
  190. package/dist/esm/query-builder/output-interface.js +2 -0
  191. package/dist/esm/query-builder/returning-interface.d.ts +2 -0
  192. package/dist/esm/query-builder/select-query-builder.d.ts +76 -11
  193. package/dist/esm/query-builder/select-query-builder.js +6 -0
  194. package/dist/esm/query-builder/update-query-builder.d.ts +95 -10
  195. package/dist/esm/query-builder/update-query-builder.js +21 -7
  196. package/dist/esm/query-builder/update-result.d.ts +9 -0
  197. package/dist/esm/query-builder/update-result.js +9 -0
  198. package/dist/esm/query-builder/where-interface.d.ts +1 -1
  199. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
  200. package/dist/esm/query-compiler/default-query-compiler.js +25 -1
  201. package/dist/esm/query-creator.d.ts +56 -3
  202. package/dist/esm/query-creator.js +54 -1
  203. package/dist/esm/raw-builder/sql.d.ts +5 -5
  204. package/dist/esm/schema/alter-column-builder.js +3 -0
  205. package/dist/esm/schema/alter-table-add-index-builder.d.ts +1 -1
  206. package/dist/esm/schema/alter-table-add-index-builder.js +1 -1
  207. package/dist/esm/schema/alter-table-builder.js +1 -2
  208. package/dist/esm/schema/column-definition-builder.d.ts +5 -0
  209. package/dist/esm/schema/column-definition-builder.js +7 -0
  210. package/dist/esm/util/object-utils.js +18 -5
  211. package/package.json +7 -6
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsonBuildObject = exports.jsonObjectFrom = exports.jsonArrayFrom = void 0;
3
+ exports.jsonArrayFrom = jsonArrayFrom;
4
+ exports.jsonObjectFrom = jsonObjectFrom;
5
+ exports.jsonBuildObject = jsonBuildObject;
4
6
  const sql_js_1 = require("../raw-builder/sql.js");
5
7
  const json_object_args_js_1 = require("../util/json-object-args.js");
6
8
  /**
7
9
  * A MySQL helper for aggregating a subquery into a JSON array.
8
10
  *
9
11
  * NOTE: This helper is only guaranteed to fully work with the built-in `MysqlDialect`.
10
- * While the produced SQL is compatible with all MySQL databases, some 3rd party dialects
12
+ * While the produced SQL is compatible with all MySQL databases, some third-party dialects
11
13
  * may not parse the nested JSON into arrays. In these cases you can use the built in
12
14
  * `ParseJSONResultsPlugin` to parse the results.
13
15
  *
@@ -52,14 +54,13 @@ const json_object_args_js_1 = require("../util/json-object-args.js");
52
54
  function jsonArrayFrom(expr) {
53
55
  return (0, sql_js_1.sql) `(select cast(coalesce(json_arrayagg(json_object(${sql_js_1.sql.join(getMysqlJsonObjectArgs(expr.toOperationNode(), 'agg'))})), '[]') as json) from ${expr} as agg)`;
54
56
  }
55
- exports.jsonArrayFrom = jsonArrayFrom;
56
57
  /**
57
58
  * A MySQL helper for turning a subquery into a JSON object.
58
59
  *
59
60
  * The subquery must only return one row.
60
61
  *
61
62
  * NOTE: This helper is only guaranteed to fully work with the built-in `MysqlDialect`.
62
- * While the produced SQL is compatible with all MySQL databases, some 3rd party dialects
63
+ * While the produced SQL is compatible with all MySQL databases, some third-party dialects
63
64
  * may not parse the nested JSON into objects. In these cases you can use the built in
64
65
  * `ParseJSONResultsPlugin` to parse the results.
65
66
  *
@@ -104,12 +105,11 @@ exports.jsonArrayFrom = jsonArrayFrom;
104
105
  function jsonObjectFrom(expr) {
105
106
  return (0, sql_js_1.sql) `(select json_object(${sql_js_1.sql.join(getMysqlJsonObjectArgs(expr.toOperationNode(), 'obj'))}) from ${expr} as obj)`;
106
107
  }
107
- exports.jsonObjectFrom = jsonObjectFrom;
108
108
  /**
109
109
  * The MySQL `json_object` function.
110
110
  *
111
111
  * NOTE: This helper is only guaranteed to fully work with the built-in `MysqlDialect`.
112
- * While the produced SQL is compatible with all MySQL databases, some 3rd party dialects
112
+ * While the produced SQL is compatible with all MySQL databases, some third-party dialects
113
113
  * may not parse the nested JSON into objects. In these cases you can use the built in
114
114
  * `ParseJSONResultsPlugin` to parse the results.
115
115
  *
@@ -148,7 +148,6 @@ exports.jsonObjectFrom = jsonObjectFrom;
148
148
  function jsonBuildObject(obj) {
149
149
  return (0, sql_js_1.sql) `json_object(${sql_js_1.sql.join(Object.keys(obj).flatMap((k) => [sql_js_1.sql.lit(k), obj[k]]))})`;
150
150
  }
151
- exports.jsonBuildObject = jsonBuildObject;
152
151
  function getMysqlJsonObjectArgs(node, table) {
153
152
  try {
154
153
  return (0, json_object_args_js_1.getJsonObjectArgs)(node, table);
@@ -15,7 +15,7 @@ import { Simplify } from '../util/type-utils.js';
15
15
  * Please keep in mind that the helpers under the `kysely/helpers` folder, including
16
16
  * `jsonArrayFrom`, are not guaranteed to work with third party dialects. In order for
17
17
  * them to work, the dialect must automatically parse the `json` data type into
18
- * javascript JSON values like objects and arrays. Some dialects might simply return
18
+ * JavaScript JSON values like objects and arrays. Some dialects might simply return
19
19
  * the data as a JSON string. In these cases you can use the built in `ParseJSONResultsPlugin`
20
20
  * to parse the results.
21
21
  *
@@ -65,9 +65,9 @@ export declare function jsonArrayFrom<O>(expr: Expression<O>): RawBuilder<Simpli
65
65
  * use the `jsonObjectFrom` helper to fetch person's favorite pet along with the person's id.
66
66
  *
67
67
  * Please keep in mind that the helpers under the `kysely/helpers` folder, including
68
- * `jsonObjectFrom`, are not guaranteed to work with 3rd party dialects. In order for
68
+ * `jsonObjectFrom`, are not guaranteed to work with third-party dialects. In order for
69
69
  * them to work, the dialect must automatically parse the `json` data type into
70
- * javascript JSON values like objects and arrays. Some dialects might simply return
70
+ * JavaScript JSON values like objects and arrays. Some dialects might simply return
71
71
  * the data as a JSON string. In these cases you can use the built in `ParseJSONResultsPlugin`
72
72
  * to parse the results.
73
73
  *
@@ -107,7 +107,7 @@ export declare function jsonObjectFrom<O>(expr: Expression<O>): RawBuilder<Simpl
107
107
  * The PostgreSQL `json_build_object` function.
108
108
  *
109
109
  * NOTE: This helper is only guaranteed to fully work with the built-in `PostgresDialect`.
110
- * While the produced SQL is compatible with all PostgreSQL databases, some 3rd party dialects
110
+ * While the produced SQL is compatible with all PostgreSQL databases, some third-party dialects
111
111
  * may not parse the nested JSON into objects. In these cases you can use the built in
112
112
  * `ParseJSONResultsPlugin` to parse the results.
113
113
  *
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsonBuildObject = exports.jsonObjectFrom = exports.jsonArrayFrom = void 0;
3
+ exports.jsonArrayFrom = jsonArrayFrom;
4
+ exports.jsonObjectFrom = jsonObjectFrom;
5
+ exports.jsonBuildObject = jsonBuildObject;
4
6
  const sql_js_1 = require("../raw-builder/sql.js");
5
7
  /**
6
8
  * A postgres helper for aggregating a subquery (or other expression) into a JSONB array.
@@ -16,7 +18,7 @@ const sql_js_1 = require("../raw-builder/sql.js");
16
18
  * Please keep in mind that the helpers under the `kysely/helpers` folder, including
17
19
  * `jsonArrayFrom`, are not guaranteed to work with third party dialects. In order for
18
20
  * them to work, the dialect must automatically parse the `json` data type into
19
- * javascript JSON values like objects and arrays. Some dialects might simply return
21
+ * JavaScript JSON values like objects and arrays. Some dialects might simply return
20
22
  * the data as a JSON string. In these cases you can use the built in `ParseJSONResultsPlugin`
21
23
  * to parse the results.
22
24
  *
@@ -54,7 +56,6 @@ const sql_js_1 = require("../raw-builder/sql.js");
54
56
  function jsonArrayFrom(expr) {
55
57
  return (0, sql_js_1.sql) `(select coalesce(json_agg(agg), '[]') from ${expr} as agg)`;
56
58
  }
57
- exports.jsonArrayFrom = jsonArrayFrom;
58
59
  /**
59
60
  * A postgres helper for turning a subquery (or other expression) into a JSON object.
60
61
  *
@@ -69,9 +70,9 @@ exports.jsonArrayFrom = jsonArrayFrom;
69
70
  * use the `jsonObjectFrom` helper to fetch person's favorite pet along with the person's id.
70
71
  *
71
72
  * Please keep in mind that the helpers under the `kysely/helpers` folder, including
72
- * `jsonObjectFrom`, are not guaranteed to work with 3rd party dialects. In order for
73
+ * `jsonObjectFrom`, are not guaranteed to work with third-party dialects. In order for
73
74
  * them to work, the dialect must automatically parse the `json` data type into
74
- * javascript JSON values like objects and arrays. Some dialects might simply return
75
+ * JavaScript JSON values like objects and arrays. Some dialects might simply return
75
76
  * the data as a JSON string. In these cases you can use the built in `ParseJSONResultsPlugin`
76
77
  * to parse the results.
77
78
  *
@@ -109,12 +110,11 @@ exports.jsonArrayFrom = jsonArrayFrom;
109
110
  function jsonObjectFrom(expr) {
110
111
  return (0, sql_js_1.sql) `(select to_json(obj) from ${expr} as obj)`;
111
112
  }
112
- exports.jsonObjectFrom = jsonObjectFrom;
113
113
  /**
114
114
  * The PostgreSQL `json_build_object` function.
115
115
  *
116
116
  * NOTE: This helper is only guaranteed to fully work with the built-in `PostgresDialect`.
117
- * While the produced SQL is compatible with all PostgreSQL databases, some 3rd party dialects
117
+ * While the produced SQL is compatible with all PostgreSQL databases, some third-party dialects
118
118
  * may not parse the nested JSON into objects. In these cases you can use the built in
119
119
  * `ParseJSONResultsPlugin` to parse the results.
120
120
  *
@@ -153,4 +153,3 @@ exports.jsonObjectFrom = jsonObjectFrom;
153
153
  function jsonBuildObject(obj) {
154
154
  return (0, sql_js_1.sql) `json_build_object(${sql_js_1.sql.join(Object.keys(obj).flatMap((k) => [sql_js_1.sql.lit(k), obj[k]]))})`;
155
155
  }
156
- exports.jsonBuildObject = jsonBuildObject;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsonBuildObject = exports.jsonObjectFrom = exports.jsonArrayFrom = void 0;
3
+ exports.jsonArrayFrom = jsonArrayFrom;
4
+ exports.jsonObjectFrom = jsonObjectFrom;
5
+ exports.jsonBuildObject = jsonBuildObject;
4
6
  const sql_js_1 = require("../raw-builder/sql.js");
5
7
  const json_object_args_js_1 = require("../util/json-object-args.js");
6
8
  /**
@@ -59,7 +61,6 @@ const json_object_args_js_1 = require("../util/json-object-args.js");
59
61
  function jsonArrayFrom(expr) {
60
62
  return (0, sql_js_1.sql) `(select coalesce(json_group_array(json_object(${sql_js_1.sql.join(getSqliteJsonObjectArgs(expr.toOperationNode(), 'agg'))})), '[]') from ${expr} as agg)`;
61
63
  }
62
- exports.jsonArrayFrom = jsonArrayFrom;
63
64
  /**
64
65
  * A SQLite helper for turning a subquery into a JSON object.
65
66
  *
@@ -118,7 +119,6 @@ exports.jsonArrayFrom = jsonArrayFrom;
118
119
  function jsonObjectFrom(expr) {
119
120
  return (0, sql_js_1.sql) `(select json_object(${sql_js_1.sql.join(getSqliteJsonObjectArgs(expr.toOperationNode(), 'obj'))}) from ${expr} as obj)`;
120
121
  }
121
- exports.jsonObjectFrom = jsonObjectFrom;
122
122
  /**
123
123
  * The SQLite `json_object` function.
124
124
  *
@@ -169,7 +169,6 @@ exports.jsonObjectFrom = jsonObjectFrom;
169
169
  function jsonBuildObject(obj) {
170
170
  return (0, sql_js_1.sql) `json_object(${sql_js_1.sql.join(Object.keys(obj).flatMap((k) => [sql_js_1.sql.lit(k), obj[k]]))})`;
171
171
  }
172
- exports.jsonBuildObject = jsonBuildObject;
173
172
  function getSqliteJsonObjectArgs(node, table) {
174
173
  try {
175
174
  return (0, json_object_args_js_1.getJsonObjectArgs)(node, table);
@@ -5,6 +5,7 @@ export { ExpressionBuilder, expressionBuilder, } from './expression/expression-b
5
5
  export * from './expression/expression-wrapper.js';
6
6
  export * from './query-builder/where-interface.js';
7
7
  export * from './query-builder/returning-interface.js';
8
+ export * from './query-builder/output-interface.js';
8
9
  export * from './query-builder/having-interface.js';
9
10
  export * from './query-builder/select-query-builder.js';
10
11
  export * from './query-builder/insert-query-builder.js';
@@ -91,17 +92,21 @@ export * from './plugin/with-schema/with-schema-plugin.js';
91
92
  export * from './plugin/parse-json-results/parse-json-results-plugin.js';
92
93
  export * from './operation-node/add-column-node.js';
93
94
  export * from './operation-node/add-constraint-node.js';
95
+ export * from './operation-node/add-index-node.js';
96
+ export * from './operation-node/aggregate-function-node.js';
94
97
  export * from './operation-node/alias-node.js';
95
98
  export * from './operation-node/alter-column-node.js';
96
99
  export * from './operation-node/alter-table-node.js';
97
100
  export * from './operation-node/and-node.js';
101
+ export * from './operation-node/binary-operation-node.js';
98
102
  export * from './operation-node/case-node.js';
103
+ export * from './operation-node/cast-node.js';
99
104
  export * from './operation-node/check-constraint-node.js';
100
105
  export * from './operation-node/column-definition-node.js';
101
106
  export * from './operation-node/column-node.js';
102
107
  export * from './operation-node/column-update-node.js';
103
- export * from './operation-node/common-table-expression-node.js';
104
108
  export * from './operation-node/common-table-expression-name-node.js';
109
+ export * from './operation-node/common-table-expression-node.js';
105
110
  export * from './operation-node/constraint-node.js';
106
111
  export * from './operation-node/create-index-node.js';
107
112
  export * from './operation-node/create-schema-node.js';
@@ -109,6 +114,7 @@ export * from './operation-node/create-table-node.js';
109
114
  export * from './operation-node/create-type-node.js';
110
115
  export * from './operation-node/create-view-node.js';
111
116
  export * from './operation-node/data-type-node.js';
117
+ export * from './operation-node/default-insert-value-node.js';
112
118
  export * from './operation-node/default-value-node.js';
113
119
  export * from './operation-node/delete-query-node.js';
114
120
  export * from './operation-node/drop-column-node.js';
@@ -118,8 +124,11 @@ export * from './operation-node/drop-schema-node.js';
118
124
  export * from './operation-node/drop-table-node.js';
119
125
  export * from './operation-node/drop-type-node.js';
120
126
  export * from './operation-node/drop-view-node.js';
127
+ export * from './operation-node/explain-node.js';
128
+ export * from './operation-node/fetch-node.js';
121
129
  export * from './operation-node/foreign-key-constraint-node.js';
122
130
  export * from './operation-node/from-node.js';
131
+ export * from './operation-node/function-node.js';
123
132
  export * from './operation-node/generated-node.js';
124
133
  export * from './operation-node/group-by-item-node.js';
125
134
  export * from './operation-node/group-by-node.js';
@@ -127,8 +136,14 @@ export * from './operation-node/having-node.js';
127
136
  export * from './operation-node/identifier-node.js';
128
137
  export * from './operation-node/insert-query-node.js';
129
138
  export * from './operation-node/join-node.js';
139
+ export * from './operation-node/json-operator-chain-node.js';
140
+ export * from './operation-node/json-path-leg-node.js';
141
+ export * from './operation-node/json-path-node.js';
142
+ export * from './operation-node/json-reference-node.js';
130
143
  export * from './operation-node/limit-node.js';
131
144
  export * from './operation-node/list-node.js';
145
+ export * from './operation-node/matched-node.js';
146
+ export * from './operation-node/merge-query-node.js';
132
147
  export * from './operation-node/modify-column-node.js';
133
148
  export * from './operation-node/offset-node.js';
134
149
  export * from './operation-node/on-conflict-node.js';
@@ -142,7 +157,11 @@ export * from './operation-node/operator-node.js';
142
157
  export * from './operation-node/or-node.js';
143
158
  export * from './operation-node/order-by-item-node.js';
144
159
  export * from './operation-node/order-by-node.js';
160
+ export * from './operation-node/output-node.js';
161
+ export * from './operation-node/over-node.js';
145
162
  export * from './operation-node/parens-node.js';
163
+ export * from './operation-node/partition-by-item-node.js';
164
+ export * from './operation-node/partition-by-node.js';
146
165
  export * from './operation-node/primary-constraint-node.js';
147
166
  export * from './operation-node/primitive-value-list-node.js';
148
167
  export * from './operation-node/query-node.js';
@@ -151,38 +170,26 @@ export * from './operation-node/reference-node.js';
151
170
  export * from './operation-node/references-node.js';
152
171
  export * from './operation-node/rename-column-node.js';
153
172
  export * from './operation-node/returning-node.js';
173
+ export * from './operation-node/schemable-identifier-node.js';
154
174
  export * from './operation-node/select-all-node.js';
155
- export * from './operation-node/select-query-node.js';
175
+ export * from './operation-node/select-modifier-node.js';
156
176
  export * from './operation-node/select-query-node.js';
157
177
  export * from './operation-node/selection-node.js';
178
+ export * from './operation-node/set-operation-node.js';
179
+ export * from './operation-node/simple-reference-expression-node.js';
158
180
  export * from './operation-node/table-node.js';
181
+ export * from './operation-node/top-node.js';
182
+ export * from './operation-node/tuple-node.js';
183
+ export * from './operation-node/unary-operation-node.js';
159
184
  export * from './operation-node/unique-constraint-node.js';
160
185
  export * from './operation-node/update-query-node.js';
186
+ export * from './operation-node/using-node.js';
161
187
  export * from './operation-node/value-list-node.js';
162
188
  export * from './operation-node/value-node.js';
163
189
  export * from './operation-node/values-node.js';
164
190
  export * from './operation-node/when-node.js';
165
191
  export * from './operation-node/where-node.js';
166
192
  export * from './operation-node/with-node.js';
167
- export * from './operation-node/explain-node.js';
168
- export * from './operation-node/default-insert-value-node.js';
169
- export * from './operation-node/aggregate-function-node.js';
170
- export * from './operation-node/over-node.js';
171
- export * from './operation-node/partition-by-node.js';
172
- export * from './operation-node/partition-by-item-node.js';
173
- export * from './operation-node/set-operation-node.js';
174
- export * from './operation-node/binary-operation-node.js';
175
- export * from './operation-node/unary-operation-node.js';
176
- export * from './operation-node/using-node.js';
177
- export * from './operation-node/json-reference-node.js';
178
- export * from './operation-node/json-path-leg-node.js';
179
- export * from './operation-node/json-path-node.js';
180
- export * from './operation-node/json-operator-chain-node.js';
181
- export * from './operation-node/tuple-node.js';
182
- export * from './operation-node/merge-query-node.js';
183
- export * from './operation-node/matched-node.js';
184
- export * from './operation-node/fetch-node.js';
185
- export * from './operation-node/top-node.js';
186
193
  export * from './util/column-type.js';
187
194
  export * from './util/compilable.js';
188
195
  export * from './util/explainable.js';
package/dist/cjs/index.js CHANGED
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "expressionBuilder", { enumerable: true, get: fun
23
23
  __exportStar(require("./expression/expression-wrapper.js"), exports);
24
24
  __exportStar(require("./query-builder/where-interface.js"), exports);
25
25
  __exportStar(require("./query-builder/returning-interface.js"), exports);
26
+ __exportStar(require("./query-builder/output-interface.js"), exports);
26
27
  __exportStar(require("./query-builder/having-interface.js"), exports);
27
28
  __exportStar(require("./query-builder/select-query-builder.js"), exports);
28
29
  __exportStar(require("./query-builder/insert-query-builder.js"), exports);
@@ -109,17 +110,21 @@ __exportStar(require("./plugin/with-schema/with-schema-plugin.js"), exports);
109
110
  __exportStar(require("./plugin/parse-json-results/parse-json-results-plugin.js"), exports);
110
111
  __exportStar(require("./operation-node/add-column-node.js"), exports);
111
112
  __exportStar(require("./operation-node/add-constraint-node.js"), exports);
113
+ __exportStar(require("./operation-node/add-index-node.js"), exports);
114
+ __exportStar(require("./operation-node/aggregate-function-node.js"), exports);
112
115
  __exportStar(require("./operation-node/alias-node.js"), exports);
113
116
  __exportStar(require("./operation-node/alter-column-node.js"), exports);
114
117
  __exportStar(require("./operation-node/alter-table-node.js"), exports);
115
118
  __exportStar(require("./operation-node/and-node.js"), exports);
119
+ __exportStar(require("./operation-node/binary-operation-node.js"), exports);
116
120
  __exportStar(require("./operation-node/case-node.js"), exports);
121
+ __exportStar(require("./operation-node/cast-node.js"), exports);
117
122
  __exportStar(require("./operation-node/check-constraint-node.js"), exports);
118
123
  __exportStar(require("./operation-node/column-definition-node.js"), exports);
119
124
  __exportStar(require("./operation-node/column-node.js"), exports);
120
125
  __exportStar(require("./operation-node/column-update-node.js"), exports);
121
- __exportStar(require("./operation-node/common-table-expression-node.js"), exports);
122
126
  __exportStar(require("./operation-node/common-table-expression-name-node.js"), exports);
127
+ __exportStar(require("./operation-node/common-table-expression-node.js"), exports);
123
128
  __exportStar(require("./operation-node/constraint-node.js"), exports);
124
129
  __exportStar(require("./operation-node/create-index-node.js"), exports);
125
130
  __exportStar(require("./operation-node/create-schema-node.js"), exports);
@@ -127,6 +132,7 @@ __exportStar(require("./operation-node/create-table-node.js"), exports);
127
132
  __exportStar(require("./operation-node/create-type-node.js"), exports);
128
133
  __exportStar(require("./operation-node/create-view-node.js"), exports);
129
134
  __exportStar(require("./operation-node/data-type-node.js"), exports);
135
+ __exportStar(require("./operation-node/default-insert-value-node.js"), exports);
130
136
  __exportStar(require("./operation-node/default-value-node.js"), exports);
131
137
  __exportStar(require("./operation-node/delete-query-node.js"), exports);
132
138
  __exportStar(require("./operation-node/drop-column-node.js"), exports);
@@ -136,8 +142,11 @@ __exportStar(require("./operation-node/drop-schema-node.js"), exports);
136
142
  __exportStar(require("./operation-node/drop-table-node.js"), exports);
137
143
  __exportStar(require("./operation-node/drop-type-node.js"), exports);
138
144
  __exportStar(require("./operation-node/drop-view-node.js"), exports);
145
+ __exportStar(require("./operation-node/explain-node.js"), exports);
146
+ __exportStar(require("./operation-node/fetch-node.js"), exports);
139
147
  __exportStar(require("./operation-node/foreign-key-constraint-node.js"), exports);
140
148
  __exportStar(require("./operation-node/from-node.js"), exports);
149
+ __exportStar(require("./operation-node/function-node.js"), exports);
141
150
  __exportStar(require("./operation-node/generated-node.js"), exports);
142
151
  __exportStar(require("./operation-node/group-by-item-node.js"), exports);
143
152
  __exportStar(require("./operation-node/group-by-node.js"), exports);
@@ -145,8 +154,14 @@ __exportStar(require("./operation-node/having-node.js"), exports);
145
154
  __exportStar(require("./operation-node/identifier-node.js"), exports);
146
155
  __exportStar(require("./operation-node/insert-query-node.js"), exports);
147
156
  __exportStar(require("./operation-node/join-node.js"), exports);
157
+ __exportStar(require("./operation-node/json-operator-chain-node.js"), exports);
158
+ __exportStar(require("./operation-node/json-path-leg-node.js"), exports);
159
+ __exportStar(require("./operation-node/json-path-node.js"), exports);
160
+ __exportStar(require("./operation-node/json-reference-node.js"), exports);
148
161
  __exportStar(require("./operation-node/limit-node.js"), exports);
149
162
  __exportStar(require("./operation-node/list-node.js"), exports);
163
+ __exportStar(require("./operation-node/matched-node.js"), exports);
164
+ __exportStar(require("./operation-node/merge-query-node.js"), exports);
150
165
  __exportStar(require("./operation-node/modify-column-node.js"), exports);
151
166
  __exportStar(require("./operation-node/offset-node.js"), exports);
152
167
  __exportStar(require("./operation-node/on-conflict-node.js"), exports);
@@ -160,7 +175,11 @@ __exportStar(require("./operation-node/operator-node.js"), exports);
160
175
  __exportStar(require("./operation-node/or-node.js"), exports);
161
176
  __exportStar(require("./operation-node/order-by-item-node.js"), exports);
162
177
  __exportStar(require("./operation-node/order-by-node.js"), exports);
178
+ __exportStar(require("./operation-node/output-node.js"), exports);
179
+ __exportStar(require("./operation-node/over-node.js"), exports);
163
180
  __exportStar(require("./operation-node/parens-node.js"), exports);
181
+ __exportStar(require("./operation-node/partition-by-item-node.js"), exports);
182
+ __exportStar(require("./operation-node/partition-by-node.js"), exports);
164
183
  __exportStar(require("./operation-node/primary-constraint-node.js"), exports);
165
184
  __exportStar(require("./operation-node/primitive-value-list-node.js"), exports);
166
185
  __exportStar(require("./operation-node/query-node.js"), exports);
@@ -169,38 +188,26 @@ __exportStar(require("./operation-node/reference-node.js"), exports);
169
188
  __exportStar(require("./operation-node/references-node.js"), exports);
170
189
  __exportStar(require("./operation-node/rename-column-node.js"), exports);
171
190
  __exportStar(require("./operation-node/returning-node.js"), exports);
191
+ __exportStar(require("./operation-node/schemable-identifier-node.js"), exports);
172
192
  __exportStar(require("./operation-node/select-all-node.js"), exports);
173
- __exportStar(require("./operation-node/select-query-node.js"), exports);
193
+ __exportStar(require("./operation-node/select-modifier-node.js"), exports);
174
194
  __exportStar(require("./operation-node/select-query-node.js"), exports);
175
195
  __exportStar(require("./operation-node/selection-node.js"), exports);
196
+ __exportStar(require("./operation-node/set-operation-node.js"), exports);
197
+ __exportStar(require("./operation-node/simple-reference-expression-node.js"), exports);
176
198
  __exportStar(require("./operation-node/table-node.js"), exports);
199
+ __exportStar(require("./operation-node/top-node.js"), exports);
200
+ __exportStar(require("./operation-node/tuple-node.js"), exports);
201
+ __exportStar(require("./operation-node/unary-operation-node.js"), exports);
177
202
  __exportStar(require("./operation-node/unique-constraint-node.js"), exports);
178
203
  __exportStar(require("./operation-node/update-query-node.js"), exports);
204
+ __exportStar(require("./operation-node/using-node.js"), exports);
179
205
  __exportStar(require("./operation-node/value-list-node.js"), exports);
180
206
  __exportStar(require("./operation-node/value-node.js"), exports);
181
207
  __exportStar(require("./operation-node/values-node.js"), exports);
182
208
  __exportStar(require("./operation-node/when-node.js"), exports);
183
209
  __exportStar(require("./operation-node/where-node.js"), exports);
184
210
  __exportStar(require("./operation-node/with-node.js"), exports);
185
- __exportStar(require("./operation-node/explain-node.js"), exports);
186
- __exportStar(require("./operation-node/default-insert-value-node.js"), exports);
187
- __exportStar(require("./operation-node/aggregate-function-node.js"), exports);
188
- __exportStar(require("./operation-node/over-node.js"), exports);
189
- __exportStar(require("./operation-node/partition-by-node.js"), exports);
190
- __exportStar(require("./operation-node/partition-by-item-node.js"), exports);
191
- __exportStar(require("./operation-node/set-operation-node.js"), exports);
192
- __exportStar(require("./operation-node/binary-operation-node.js"), exports);
193
- __exportStar(require("./operation-node/unary-operation-node.js"), exports);
194
- __exportStar(require("./operation-node/using-node.js"), exports);
195
- __exportStar(require("./operation-node/json-reference-node.js"), exports);
196
- __exportStar(require("./operation-node/json-path-leg-node.js"), exports);
197
- __exportStar(require("./operation-node/json-path-node.js"), exports);
198
- __exportStar(require("./operation-node/json-operator-chain-node.js"), exports);
199
- __exportStar(require("./operation-node/tuple-node.js"), exports);
200
- __exportStar(require("./operation-node/merge-query-node.js"), exports);
201
- __exportStar(require("./operation-node/matched-node.js"), exports);
202
- __exportStar(require("./operation-node/fetch-node.js"), exports);
203
- __exportStar(require("./operation-node/top-node.js"), exports);
204
211
  __exportStar(require("./util/column-type.js"), exports);
205
212
  __exportStar(require("./util/compilable.js"), exports);
206
213
  __exportStar(require("./util/explainable.js"), exports);
@@ -20,7 +20,7 @@ import { DrainOuterGeneric } from './util/type-utils.js';
20
20
  * The main Kysely class.
21
21
  *
22
22
  * You should create one instance of `Kysely` per database using the {@link Kysely}
23
- * constructor. Each `Kysely` instance maintains it's own connection pool.
23
+ * constructor. Each `Kysely` instance maintains its own connection pool.
24
24
  *
25
25
  * ### Examples
26
26
  *
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransactionBuilder = exports.ConnectionBuilder = exports.isKyselyProps = exports.Transaction = exports.Kysely = void 0;
3
+ exports.TransactionBuilder = exports.ConnectionBuilder = exports.Transaction = exports.Kysely = void 0;
4
+ exports.isKyselyProps = isKyselyProps;
4
5
  const schema_js_1 = require("./schema/schema.js");
5
6
  const dynamic_js_1 = require("./dynamic/dynamic.js");
6
7
  const default_connection_provider_js_1 = require("./driver/default-connection-provider.js");
@@ -23,7 +24,7 @@ const with_schema_plugin_js_1 = require("./plugin/with-schema/with-schema-plugin
23
24
  * The main Kysely class.
24
25
  *
25
26
  * You should create one instance of `Kysely` per database using the {@link Kysely}
26
- * constructor. Each `Kysely` instance maintains it's own connection pool.
27
+ * constructor. Each `Kysely` instance maintains its own connection pool.
27
28
  *
28
29
  * ### Examples
29
30
  *
@@ -373,7 +374,6 @@ function isKyselyProps(obj) {
373
374
  (0, object_utils_js_1.isObject)(obj.executor) &&
374
375
  (0, object_utils_js_1.isObject)(obj.dialect));
375
376
  }
376
- exports.isKyselyProps = isKyselyProps;
377
377
  class ConnectionBuilder {
378
378
  #props;
379
379
  constructor(props) {
@@ -17,5 +17,5 @@ export interface AlterColumnNode extends OperationNode {
17
17
  */
18
18
  export declare const AlterColumnNode: Readonly<{
19
19
  is(node: OperationNode): node is AlterColumnNode;
20
- create<T extends "dataType" | "dataTypeExpression" | "setDefault" | "dropDefault" | "setNotNull" | "dropNotNull">(column: string, prop: T, value: Required<AlterColumnNodeProps>[T]): AlterColumnNode;
20
+ create<T extends keyof AlterColumnNodeProps>(column: string, prop: T, value: Required<AlterColumnNodeProps>[T]): AlterColumnNode;
21
21
  }>;
@@ -15,5 +15,5 @@ export declare const CaseNode: Readonly<{
15
15
  create(value?: OperationNode): CaseNode;
16
16
  cloneWithWhen(caseNode: CaseNode, when: WhenNode): CaseNode;
17
17
  cloneWithThen(caseNode: CaseNode, then: OperationNode): CaseNode;
18
- cloneWith(caseNode: CaseNode, props: Partial<Pick<CaseNode, 'else' | 'isStatement'>>): CaseNode;
18
+ cloneWith(caseNode: CaseNode, props: Partial<Pick<CaseNode, "else" | "isStatement">>): CaseNode;
19
19
  }>;
@@ -22,6 +22,7 @@ export interface ColumnDefinitionNode extends OperationNode {
22
22
  readonly endModifiers?: ReadonlyArray<OperationNode>;
23
23
  readonly nullsNotDistinct?: boolean;
24
24
  readonly identity?: boolean;
25
+ readonly ifNotExists?: boolean;
25
26
  }
26
27
  /**
27
28
  * @internal
@@ -1,7 +1,7 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- declare const SIMPLE_COLUMN_DATA_TYPES: readonly ["varchar", "char", "text", "integer", "int2", "int4", "int8", "smallint", "bigint", "boolean", "real", "double precision", "float4", "float8", "decimal", "numeric", "binary", "bytea", "date", "datetime", "time", "timetz", "timestamp", "timestamptz", "serial", "bigserial", "uuid", "json", "jsonb", "blob"];
2
+ declare const SIMPLE_COLUMN_DATA_TYPES: readonly ["varchar", "char", "text", "integer", "int2", "int4", "int8", "smallint", "bigint", "boolean", "real", "double precision", "float4", "float8", "decimal", "numeric", "binary", "bytea", "date", "datetime", "time", "timetz", "timestamp", "timestamptz", "serial", "bigserial", "uuid", "json", "jsonb", "blob", "varbinary"];
3
3
  type SimpleColumnDataType = (typeof SIMPLE_COLUMN_DATA_TYPES)[number];
4
- export type ColumnDataType = SimpleColumnDataType | `varchar(${number})` | `char(${number})` | `decimal(${number}, ${number})` | `numeric(${number}, ${number})` | `binary(${number})` | `datetime(${number})` | `time(${number})` | `timetz(${number})` | `timestamp(${number})` | `timestamptz(${number})`;
4
+ export type ColumnDataType = SimpleColumnDataType | `varchar(${number})` | `char(${number})` | `decimal(${number}, ${number})` | `numeric(${number}, ${number})` | `binary(${number})` | `datetime(${number})` | `time(${number})` | `timetz(${number})` | `timestamp(${number})` | `timestamptz(${number})` | `varbinary(${number})`;
5
5
  export type DataTypeParams = Omit<DataTypeNode, 'kind' | 'dataType'>;
6
6
  export interface DataTypeNode extends OperationNode {
7
7
  readonly kind: 'DataTypeNode';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isColumnDataType = exports.DataTypeNode = void 0;
3
+ exports.DataTypeNode = void 0;
4
+ exports.isColumnDataType = isColumnDataType;
4
5
  const object_utils_js_1 = require("../util/object-utils.js");
5
6
  const SIMPLE_COLUMN_DATA_TYPES = [
6
7
  'varchar',
@@ -33,6 +34,7 @@ const SIMPLE_COLUMN_DATA_TYPES = [
33
34
  'json',
34
35
  'jsonb',
35
36
  'blob',
37
+ 'varbinary',
36
38
  ];
37
39
  const COLUMN_DATA_TYPE_REGEX = [
38
40
  /^varchar\(\d+\)$/,
@@ -42,9 +44,10 @@ const COLUMN_DATA_TYPE_REGEX = [
42
44
  /^binary\(\d+\)$/,
43
45
  /^datetime\(\d+\)$/,
44
46
  /^time\(\d+\)$/,
45
- /^timez\(\d+\)$/,
47
+ /^timetz\(\d+\)$/,
46
48
  /^timestamp\(\d+\)$/,
47
49
  /^timestamptz\(\d+\)$/,
50
+ /^varbinary\(\d+\)$/,
48
51
  ];
49
52
  /**
50
53
  * @internal
@@ -69,4 +72,3 @@ function isColumnDataType(dataType) {
69
72
  }
70
73
  return false;
71
74
  }
72
- exports.isColumnDataType = isColumnDataType;
@@ -10,6 +10,7 @@ import { OrderByItemNode } from './order-by-item-node.js';
10
10
  import { ExplainNode } from './explain-node.js';
11
11
  import { UsingNode } from './using-node.js';
12
12
  import { TopNode } from './top-node.js';
13
+ import { OutputNode } from './output-node.js';
13
14
  export interface DeleteQueryNode extends OperationNode {
14
15
  readonly kind: 'DeleteQueryNode';
15
16
  readonly from: FromNode;
@@ -22,6 +23,7 @@ export interface DeleteQueryNode extends OperationNode {
22
23
  readonly limit?: LimitNode;
23
24
  readonly explain?: ExplainNode;
24
25
  readonly top?: TopNode;
26
+ readonly output?: OutputNode;
25
27
  }
26
28
  /**
27
29
  * @internal
@@ -19,10 +19,10 @@ export declare const ForeignKeyConstraintNode: Readonly<{
19
19
  is(node: OperationNode): node is ForeignKeyConstraintNode;
20
20
  create(sourceColumns: ReadonlyArray<ColumnNode>, targetTable: TableNode, targetColumns: ReadonlyArray<ColumnNode>, constraintName?: string): ForeignKeyConstraintNode;
21
21
  cloneWith(node: ForeignKeyConstraintNode, props: ForeignKeyConstraintNodeProps): Readonly<{
22
- name?: IdentifierNode | undefined;
23
- onDelete?: "no action" | "restrict" | "cascade" | "set null" | "set default" | undefined;
24
- onUpdate?: "no action" | "restrict" | "cascade" | "set null" | "set default" | undefined;
25
- kind: 'ForeignKeyConstraintNode';
22
+ name?: IdentifierNode;
23
+ onDelete?: OnModifyForeignAction;
24
+ onUpdate?: OnModifyForeignAction;
25
+ kind: "ForeignKeyConstraintNode";
26
26
  columns: ReadonlyArray<ColumnNode>;
27
27
  references: ReferencesNode;
28
28
  }>;
@@ -9,5 +9,5 @@ export interface HavingNode extends OperationNode {
9
9
  export declare const HavingNode: Readonly<{
10
10
  is(node: OperationNode): node is HavingNode;
11
11
  create(filter: OperationNode): HavingNode;
12
- cloneWithOperation(havingNode: HavingNode, operator: 'And' | 'Or', operation: OperationNode): HavingNode;
12
+ cloneWithOperation(havingNode: HavingNode, operator: "And" | "Or", operation: OperationNode): HavingNode;
13
13
  }>;
@@ -3,6 +3,7 @@ import { ExplainNode } from './explain-node.js';
3
3
  import { OnConflictNode } from './on-conflict-node.js';
4
4
  import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
5
5
  import { OperationNode } from './operation-node.js';
6
+ import { OutputNode } from './output-node.js';
6
7
  import { ReturningNode } from './returning-node.js';
7
8
  import { TableNode } from './table-node.js';
8
9
  import { TopNode } from './top-node.js';
@@ -22,6 +23,7 @@ export interface InsertQueryNode extends OperationNode {
22
23
  readonly explain?: ExplainNode;
23
24
  readonly defaultValues?: boolean;
24
25
  readonly top?: TopNode;
26
+ readonly output?: OutputNode;
25
27
  }
26
28
  /**
27
29
  * @internal
@@ -1,6 +1,7 @@
1
1
  import { AliasNode } from './alias-node.js';
2
2
  import { JoinNode } from './join-node.js';
3
3
  import { OperationNode } from './operation-node.js';
4
+ import { OutputNode } from './output-node.js';
4
5
  import { TableNode } from './table-node.js';
5
6
  import { TopNode } from './top-node.js';
6
7
  import { WhenNode } from './when-node.js';
@@ -12,6 +13,7 @@ export interface MergeQueryNode extends OperationNode {
12
13
  readonly whens?: ReadonlyArray<WhenNode>;
13
14
  readonly with?: WithNode;
14
15
  readonly top?: TopNode;
16
+ readonly output?: OutputNode;
15
17
  }
16
18
  /**
17
19
  * @internal
@@ -9,5 +9,5 @@ export interface OnNode extends OperationNode {
9
9
  export declare const OnNode: Readonly<{
10
10
  is(node: OperationNode): node is OnNode;
11
11
  create(filter: OperationNode): OnNode;
12
- cloneWithOperation(onNode: OnNode, operator: 'And' | 'Or', operation: OperationNode): OnNode;
12
+ cloneWithOperation(onNode: OnNode, operator: "And" | "Or", operation: OperationNode): OnNode;
13
13
  }>;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isOperationNodeSource = void 0;
3
+ exports.isOperationNodeSource = isOperationNodeSource;
4
4
  const object_utils_js_1 = require("../util/object-utils.js");
5
5
  function isOperationNodeSource(obj) {
6
6
  return (0, object_utils_js_1.isObject)(obj) && (0, object_utils_js_1.isFunction)(obj.toOperationNode);
7
7
  }
8
- exports.isOperationNodeSource = isOperationNodeSource;