kysely 0.21.5 → 0.22.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 (133) hide show
  1. package/README.md +3 -2
  2. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  3. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
  4. package/dist/cjs/index.d.ts +10 -4
  5. package/dist/cjs/index.js +8 -2
  6. package/dist/cjs/kysely.d.ts +3 -3
  7. package/dist/cjs/kysely.js +3 -3
  8. package/dist/cjs/migration/file-migration-provider.js +7 -2
  9. package/dist/cjs/operation-node/aggregate-function-node.d.ts +22 -0
  10. package/dist/cjs/operation-node/aggregate-function-node.js +31 -0
  11. package/dist/cjs/operation-node/alias-node.d.ts +2 -1
  12. package/dist/cjs/operation-node/default-insert-value-node.d.ts +11 -0
  13. package/dist/cjs/operation-node/{union-node.js → default-insert-value-node.js} +5 -7
  14. package/dist/cjs/operation-node/group-by-node.d.ts +1 -1
  15. package/dist/cjs/operation-node/group-by-node.js +3 -3
  16. package/dist/cjs/operation-node/insert-query-node.d.ts +2 -1
  17. package/dist/cjs/operation-node/operation-node-transformer.d.ts +12 -2
  18. package/dist/cjs/operation-node/operation-node-transformer.js +43 -5
  19. package/dist/cjs/operation-node/operation-node-utils.d.ts +2 -1
  20. package/dist/cjs/operation-node/operation-node-visitor.d.ts +12 -2
  21. package/dist/cjs/operation-node/operation-node-visitor.js +6 -1
  22. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  23. package/dist/cjs/operation-node/over-node.d.ts +19 -0
  24. package/dist/cjs/operation-node/over-node.js +35 -0
  25. package/dist/cjs/operation-node/partition-by-item-node.d.ts +14 -0
  26. package/dist/cjs/operation-node/partition-by-item-node.js +18 -0
  27. package/dist/cjs/operation-node/partition-by-node.d.ts +14 -0
  28. package/dist/cjs/operation-node/partition-by-node.js +24 -0
  29. package/dist/cjs/operation-node/select-query-node.d.ts +3 -3
  30. package/dist/cjs/operation-node/select-query-node.js +4 -4
  31. package/dist/cjs/operation-node/set-operation-node.d.ts +18 -0
  32. package/dist/cjs/operation-node/set-operation-node.js +20 -0
  33. package/dist/cjs/operation-node/value-list-node.d.ts +3 -1
  34. package/dist/cjs/parser/complex-expression-parser.d.ts +6 -4
  35. package/dist/cjs/parser/group-by-parser.d.ts +1 -1
  36. package/dist/cjs/parser/group-by-parser.js +2 -2
  37. package/dist/cjs/parser/insert-values-parser.js +13 -4
  38. package/dist/cjs/parser/parse-utils.d.ts +2 -0
  39. package/dist/cjs/parser/parse-utils.js +9 -1
  40. package/dist/cjs/parser/partition-by-parser.d.ts +6 -0
  41. package/dist/cjs/parser/partition-by-parser.js +9 -0
  42. package/dist/cjs/parser/reference-parser.d.ts +2 -1
  43. package/dist/cjs/parser/select-parser.d.ts +4 -3
  44. package/dist/cjs/parser/set-operation-parser.d.ts +5 -0
  45. package/dist/cjs/parser/set-operation-parser.js +8 -0
  46. package/dist/cjs/parser/value-parser.d.ts +2 -1
  47. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +117 -0
  48. package/dist/cjs/query-builder/aggregate-function-builder.js +146 -0
  49. package/dist/cjs/query-builder/expression-builder.d.ts +3 -3
  50. package/dist/cjs/query-builder/expression-builder.js +3 -3
  51. package/dist/cjs/query-builder/{function-builder.d.ts → function-module.d.ts} +49 -42
  52. package/dist/cjs/query-builder/{function-builder.js → function-module.js} +70 -59
  53. package/dist/cjs/query-builder/over-builder.d.ts +59 -0
  54. package/dist/cjs/query-builder/over-builder.js +50 -0
  55. package/dist/cjs/query-builder/select-query-builder.d.ts +63 -3
  56. package/dist/cjs/query-builder/select-query-builder.js +83 -3
  57. package/dist/cjs/query-compiler/default-query-compiler.d.ts +12 -2
  58. package/dist/cjs/query-compiler/default-query-compiler.js +44 -14
  59. package/dist/cjs/raw-builder/sql.d.ts +13 -5
  60. package/dist/cjs/raw-builder/sql.js +6 -0
  61. package/dist/cjs/util/object-utils.d.ts +1 -0
  62. package/dist/cjs/util/object-utils.js +5 -1
  63. package/dist/cjs/util/type-utils.d.ts +5 -1
  64. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  65. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
  66. package/dist/esm/index.d.ts +10 -4
  67. package/dist/esm/index.js +8 -2
  68. package/dist/esm/kysely.d.ts +3 -3
  69. package/dist/esm/kysely.js +3 -3
  70. package/dist/esm/migration/file-migration-provider.js +7 -2
  71. package/dist/esm/operation-node/aggregate-function-node.d.ts +22 -0
  72. package/dist/esm/operation-node/aggregate-function-node.js +29 -0
  73. package/dist/esm/operation-node/alias-node.d.ts +2 -1
  74. package/dist/esm/operation-node/default-insert-value-node.d.ts +11 -0
  75. package/dist/esm/operation-node/default-insert-value-node.js +15 -0
  76. package/dist/esm/operation-node/group-by-node.d.ts +1 -1
  77. package/dist/esm/operation-node/group-by-node.js +3 -3
  78. package/dist/esm/operation-node/insert-query-node.d.ts +2 -1
  79. package/dist/esm/operation-node/operation-node-transformer.d.ts +12 -2
  80. package/dist/esm/operation-node/operation-node-transformer.js +43 -5
  81. package/dist/esm/operation-node/operation-node-utils.d.ts +2 -1
  82. package/dist/esm/operation-node/operation-node-visitor.d.ts +12 -2
  83. package/dist/esm/operation-node/operation-node-visitor.js +6 -1
  84. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  85. package/dist/esm/operation-node/over-node.d.ts +19 -0
  86. package/dist/esm/operation-node/over-node.js +33 -0
  87. package/dist/esm/operation-node/partition-by-item-node.d.ts +14 -0
  88. package/dist/esm/operation-node/partition-by-item-node.js +16 -0
  89. package/dist/esm/operation-node/partition-by-node.d.ts +14 -0
  90. package/dist/esm/operation-node/partition-by-node.js +22 -0
  91. package/dist/esm/operation-node/select-query-node.d.ts +3 -3
  92. package/dist/esm/operation-node/select-query-node.js +4 -4
  93. package/dist/esm/operation-node/set-operation-node.d.ts +18 -0
  94. package/dist/esm/operation-node/set-operation-node.js +18 -0
  95. package/dist/esm/operation-node/value-list-node.d.ts +3 -1
  96. package/dist/esm/parser/complex-expression-parser.d.ts +6 -4
  97. package/dist/esm/parser/group-by-parser.d.ts +1 -1
  98. package/dist/esm/parser/group-by-parser.js +2 -2
  99. package/dist/esm/parser/insert-values-parser.js +14 -5
  100. package/dist/esm/parser/parse-utils.d.ts +2 -0
  101. package/dist/esm/parser/parse-utils.js +7 -0
  102. package/dist/esm/parser/partition-by-parser.d.ts +6 -0
  103. package/dist/esm/parser/partition-by-parser.js +6 -0
  104. package/dist/esm/parser/reference-parser.d.ts +2 -1
  105. package/dist/esm/parser/select-parser.d.ts +4 -3
  106. package/dist/esm/parser/set-operation-parser.d.ts +5 -0
  107. package/dist/esm/parser/set-operation-parser.js +5 -0
  108. package/dist/esm/parser/value-parser.d.ts +2 -1
  109. package/dist/esm/query-builder/aggregate-function-builder.d.ts +117 -0
  110. package/dist/esm/query-builder/aggregate-function-builder.js +142 -0
  111. package/dist/esm/query-builder/expression-builder.d.ts +3 -3
  112. package/dist/esm/query-builder/expression-builder.js +3 -3
  113. package/dist/esm/query-builder/{function-builder.d.ts → function-module.d.ts} +49 -42
  114. package/dist/esm/query-builder/{function-builder.js → function-module.js} +69 -58
  115. package/dist/esm/query-builder/over-builder.d.ts +59 -0
  116. package/dist/esm/query-builder/over-builder.js +47 -0
  117. package/dist/esm/query-builder/select-query-builder.d.ts +63 -3
  118. package/dist/esm/query-builder/select-query-builder.js +83 -3
  119. package/dist/esm/query-compiler/default-query-compiler.d.ts +12 -2
  120. package/dist/esm/query-compiler/default-query-compiler.js +44 -14
  121. package/dist/esm/raw-builder/sql.d.ts +13 -5
  122. package/dist/esm/raw-builder/sql.js +6 -0
  123. package/dist/esm/util/object-utils.d.ts +1 -0
  124. package/dist/esm/util/object-utils.js +3 -0
  125. package/dist/esm/util/type-utils.d.ts +5 -1
  126. package/package.json +4 -1
  127. package/dist/cjs/operation-node/union-node.d.ts +0 -16
  128. package/dist/cjs/parser/union-parser.d.ts +0 -5
  129. package/dist/cjs/parser/union-parser.js +0 -8
  130. package/dist/esm/operation-node/union-node.d.ts +0 -16
  131. package/dist/esm/operation-node/union-node.js +0 -17
  132. package/dist/esm/parser/union-parser.d.ts +0 -5
  133. package/dist/esm/parser/union-parser.js +0 -5
@@ -19,6 +19,12 @@ export const sql = Object.assign((sqlFragments, ...parameters) => {
19
19
  rawNode: RawNode.createWithChild(parseStringReference(columnReference)),
20
20
  });
21
21
  },
22
+ value(value) {
23
+ return new RawBuilder({
24
+ queryId: createQueryId(),
25
+ rawNode: RawNode.createWithChild(parseValueExpression(value)),
26
+ });
27
+ },
22
28
  table(tableReference) {
23
29
  return new RawBuilder({
24
30
  queryId: createQueryId(),
@@ -1,4 +1,5 @@
1
1
  export declare function isEmpty(obj: ArrayLike<unknown> | string | object): boolean;
2
+ export declare function isUndefined(obj: unknown): obj is undefined;
2
3
  export declare function isString(obj: unknown): obj is string;
3
4
  export declare function isNumber(obj: unknown): obj is number;
4
5
  export declare function isBoolean(obj: unknown): obj is boolean;
@@ -8,6 +8,9 @@ export function isEmpty(obj) {
8
8
  }
9
9
  return false;
10
10
  }
11
+ export function isUndefined(obj) {
12
+ return obj === undefined;
13
+ }
11
14
  export function isString(obj) {
12
15
  return typeof obj === 'string';
13
16
  }
@@ -4,6 +4,7 @@ import { ExpressionBuilder } from '../query-builder/expression-builder.js';
4
4
  import { InsertResult } from '../query-builder/insert-result.js';
5
5
  import { DeleteResult } from '../query-builder/delete-result.js';
6
6
  import { UpdateResult } from '../query-builder/update-result.js';
7
+ import { AggregateFunctionBuilder, AliasedAggregateFunctionBuilder } from '../query-builder/aggregate-function-builder.js';
7
8
  /**
8
9
  * Given an object type, extracts the union of all value types.
9
10
  */
@@ -102,10 +103,13 @@ export declare type AnySelectQueryBuilder = SelectQueryBuilder<any, any, any>;
102
103
  export declare type AnyAliasedQueryBuilder = AliasedQueryBuilder<any, any, any, any>;
103
104
  export declare type AnyRawBuilder = RawBuilder<any>;
104
105
  export declare type AnyAliasedRawBuilder = AliasedRawBuilder<any, any>;
106
+ export declare type AnyAliasedAggregateFunctionBuilder = AliasedAggregateFunctionBuilder<any, any, any, any>;
105
107
  export declare type SelectQueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnySelectQueryBuilder;
106
108
  export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedQueryBuilder;
107
- export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyRawBuilder;
109
+ export declare type RawBuilderFactory<DB, TB extends keyof DB, O = any> = (qb: ExpressionBuilder<DB, TB>) => RawBuilder<O>;
108
110
  export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedRawBuilder;
111
+ export declare type AggregateFunctionBuilderFactory<DB, TB extends keyof DB, O = unknown> = (qb: ExpressionBuilder<DB, TB>) => AggregateFunctionBuilder<DB, TB, O>;
112
+ export declare type AliasedAggregateFunctionBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedAggregateFunctionBuilder;
109
113
  export declare type SingleResultType<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : O | undefined;
110
114
  export declare type UnknownRow = Record<string, unknown>;
111
115
  export declare type Nullable<T> = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.21.5",
3
+ "version": "0.22.0",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,6 +41,9 @@
41
41
  },
42
42
  "author": "Sami Koskimäki <sami@jakso.me>",
43
43
  "license": "MIT",
44
+ "contributors": [
45
+ "Igal Klebanov <igalklebanov@gmail.com>"
46
+ ],
44
47
  "devDependencies": {
45
48
  "@types/better-sqlite3": "^7.5.0",
46
49
  "@types/chai": "^4.3.1",
@@ -1,16 +0,0 @@
1
- import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
- import { SelectQueryNode } from './select-query-node.js';
4
- export declare type UnionExpressionNode = SelectQueryNode | RawNode;
5
- export interface UnionNode extends OperationNode {
6
- readonly kind: 'UnionNode';
7
- readonly union: UnionExpressionNode;
8
- readonly all: boolean;
9
- }
10
- /**
11
- * @internal
12
- */
13
- export declare const UnionNode: Readonly<{
14
- is(node: OperationNode): node is UnionNode;
15
- create(union: UnionExpressionNode, all: boolean): UnionNode;
16
- }>;
@@ -1,5 +0,0 @@
1
- import { UnionNode } from '../operation-node/union-node.js';
2
- import { SelectQueryBuilder } from '../query-builder/select-query-builder.js';
3
- import { RawBuilder } from '../raw-builder/raw-builder.js';
4
- export declare type UnionExpression<DB, O> = SelectQueryBuilder<DB, any, O> | RawBuilder<O>;
5
- export declare function parseUnion(union: UnionExpression<any, any>, all: boolean): UnionNode;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseUnion = void 0;
4
- const union_node_js_1 = require("../operation-node/union-node.js");
5
- function parseUnion(union, all) {
6
- return union_node_js_1.UnionNode.create(union.toOperationNode(), all);
7
- }
8
- exports.parseUnion = parseUnion;
@@ -1,16 +0,0 @@
1
- import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
- import { SelectQueryNode } from './select-query-node.js';
4
- export declare type UnionExpressionNode = SelectQueryNode | RawNode;
5
- export interface UnionNode extends OperationNode {
6
- readonly kind: 'UnionNode';
7
- readonly union: UnionExpressionNode;
8
- readonly all: boolean;
9
- }
10
- /**
11
- * @internal
12
- */
13
- export declare const UnionNode: Readonly<{
14
- is(node: OperationNode): node is UnionNode;
15
- create(union: UnionExpressionNode, all: boolean): UnionNode;
16
- }>;
@@ -1,17 +0,0 @@
1
- /// <reference types="./union-node.d.ts" />
2
- import { freeze } from '../util/object-utils.js';
3
- /**
4
- * @internal
5
- */
6
- export const UnionNode = freeze({
7
- is(node) {
8
- return node.kind === 'UnionNode';
9
- },
10
- create(union, all) {
11
- return freeze({
12
- kind: 'UnionNode',
13
- union,
14
- all,
15
- });
16
- },
17
- });
@@ -1,5 +0,0 @@
1
- import { UnionNode } from '../operation-node/union-node.js';
2
- import { SelectQueryBuilder } from '../query-builder/select-query-builder.js';
3
- import { RawBuilder } from '../raw-builder/raw-builder.js';
4
- export declare type UnionExpression<DB, O> = SelectQueryBuilder<DB, any, O> | RawBuilder<O>;
5
- export declare function parseUnion(union: UnionExpression<any, any>, all: boolean): UnionNode;
@@ -1,5 +0,0 @@
1
- /// <reference types="./union-parser.d.ts" />
2
- import { UnionNode } from '../operation-node/union-node.js';
3
- export function parseUnion(union, all) {
4
- return UnionNode.create(union.toOperationNode(), all);
5
- }