@sqb/builder 5.0.2 → 5.0.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 (55) hide show
  1. package/package.json +1 -1
  2. package/serialize-context.js +1 -0
  3. package/sql/delete.js +3 -0
  4. package/sql/elements/base-field.js +1 -0
  5. package/sql/elements/case.js +4 -0
  6. package/sql/elements/coalesce.js +1 -0
  7. package/sql/elements/count.js +1 -0
  8. package/sql/elements/field.js +2 -1
  9. package/sql/elements/group-column.js +1 -0
  10. package/sql/elements/join-cross.js +1 -0
  11. package/sql/elements/join-full-outer.js +1 -0
  12. package/sql/elements/join-inner.js +1 -0
  13. package/sql/elements/join-left-outer.js +1 -0
  14. package/sql/elements/join-left.js +1 -0
  15. package/sql/elements/join-outer.js +1 -0
  16. package/sql/elements/join-right-outer.js +1 -0
  17. package/sql/elements/join-right.js +1 -0
  18. package/sql/elements/lower.js +1 -0
  19. package/sql/elements/max.js +1 -0
  20. package/sql/elements/min.js +1 -0
  21. package/sql/elements/order-column.js +1 -0
  22. package/sql/elements/param.js +2 -1
  23. package/sql/elements/raw.js +1 -0
  24. package/sql/elements/returning-column.js +1 -0
  25. package/sql/elements/sequence.js +1 -0
  26. package/sql/elements/string-agg.js +1 -0
  27. package/sql/elements/table-name.js +1 -0
  28. package/sql/elements/upper.js +1 -0
  29. package/sql/insert.js +3 -0
  30. package/sql/operators/between.js +1 -0
  31. package/sql/operators/comp-operator.js +1 -0
  32. package/sql/operators/eq.js +1 -0
  33. package/sql/operators/exists.js +1 -0
  34. package/sql/operators/gt.js +1 -0
  35. package/sql/operators/gte.js +1 -0
  36. package/sql/operators/i-like.js +1 -0
  37. package/sql/operators/in.js +1 -0
  38. package/sql/operators/is-not.js +1 -0
  39. package/sql/operators/is.js +1 -0
  40. package/sql/operators/like.js +2 -0
  41. package/sql/operators/logical-operator.js +2 -0
  42. package/sql/operators/lt.js +1 -0
  43. package/sql/operators/lte.js +1 -0
  44. package/sql/operators/ne.js +1 -0
  45. package/sql/operators/not-between.js +1 -0
  46. package/sql/operators/not-i-like.js +1 -0
  47. package/sql/operators/not-in.js +1 -0
  48. package/sql/operators/not-like.js +1 -0
  49. package/sql/operators/not.js +2 -0
  50. package/sql/operators/operator.js +1 -0
  51. package/sql/returning-query.js +1 -0
  52. package/sql/select.js +5 -0
  53. package/sql/union.js +1 -0
  54. package/sql/update.js +3 -0
  55. package/types.js +1 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sqb/builder",
3
3
  "description": "Extensible multi-dialect SQL query builder written with TypeScript",
4
- "version": "5.0.2",
4
+ "version": "5.0.4",
5
5
  "author": "Panates",
6
6
  "license": "Apache-2.0",
7
7
  "dependencies": {
@@ -1,6 +1,7 @@
1
1
  import { SerializationType } from './enums.js';
2
2
  import { SerializerRegistry } from './extensions.js';
3
3
  import { SqlElement } from './serializable.js';
4
+ import { Query } from './sql/index.js';
4
5
  import { isLogicalOperator, isQuery, isSerializable } from './type-guards.js';
5
6
  export class SerializeContext {
6
7
  rootQuery;
package/sql/delete.js CHANGED
@@ -1,7 +1,10 @@
1
1
  import { SerializationType } from '../enums.js';
2
+ import { SerializeContext } from '../serialize-context.js';
2
3
  import { isRaw } from '../type-guards.js';
4
+ import { Raw } from './elements/raw.js';
3
5
  import { TableName } from './elements/table-name.js';
4
6
  import { And } from './operators/and.js';
7
+ import { LogicalOperator } from './operators/logical-operator.js';
5
8
  import { Query } from './query.js';
6
9
  class DeleteClass extends Query {
7
10
  _table;
@@ -1,3 +1,4 @@
1
+ import { DataType } from '../../enums.js';
1
2
  import { SqlElement } from '../../serializable.js';
2
3
  export const BaseField = function () {
3
4
  if (!(this instanceof BaseField))
@@ -1,6 +1,10 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  import { And } from '../operators/and.js';
5
+ import { LogicalOperator } from '../operators/logical-operator.js';
6
+ import { Operator } from '../operators/operator.js';
7
+ import { Raw } from './raw.js';
4
8
  class CaseClass extends SqlElement {
5
9
  _expressions;
6
10
  _elseValue;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class CoalesceClass extends SqlElement {
4
5
  _expressions;
5
6
  _alias;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class CountClass extends SqlElement {
4
5
  _alias;
5
6
  get _type() {
@@ -1,4 +1,5 @@
1
- import { SerializationType } from '../../enums.js';
1
+ import { DataType, SerializationType } from '../../enums.js';
2
+ import { SerializeContext } from '../../serialize-context.js';
2
3
  import { BaseField } from './base-field.js';
3
4
  const TABLE_COLUMN_PATTERN = /^ *((?:[a-zA-Z_][\w$_]*\.){0,2}) *([0-9a-zA-Z_][\w$_]*|\*) *(?:as)? *([a-zA-Z_][\w$_]*)?$/;
4
5
  class FieldClass extends BaseField {
@@ -1,4 +1,5 @@
1
1
  import { SerializationType } from '../../enums.js';
2
+ import { SerializeContext } from '../../serialize-context.js';
2
3
  import { BaseField } from './base-field.js';
3
4
  const GROUP_COLUMN_PATTERN = /^((?:[a-zA-Z][\w$]*\.){0,2})([\w$]*)$/;
4
5
  class GroupColumnClass extends BaseField {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class CrossJoinClass extends Join {
4
5
  }
5
6
  export const CrossJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class FullOuterJoinClass extends Join {
4
5
  }
5
6
  export const FullOuterJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class InnerJoinClass extends Join {
4
5
  }
5
6
  export const InnerJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class LeftOuterJoinClass extends Join {
4
5
  }
5
6
  export const LeftOuterJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class LeftJoinClass extends Join {
4
5
  }
5
6
  export const LeftJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class OuterJoinClass extends Join {
4
5
  }
5
6
  export const OuterJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class RightOuterJoinClass extends Join {
4
5
  }
5
6
  export const RightOuterJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { JoinType } from '../../enums.js';
2
2
  import { Join } from './join.js';
3
+ import { TableName } from './table-name.js';
3
4
  class RightJoinClass extends Join {
4
5
  }
5
6
  export const RightJoin = function (table) {
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class LowerClass extends SqlElement {
4
5
  _expression;
5
6
  _alias;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class MaxClass extends SqlElement {
4
5
  _expression;
5
6
  _alias;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class MinClass extends SqlElement {
4
5
  _expression;
5
6
  _alias;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  import { BaseField } from './base-field.js';
4
5
  const ORDER_COLUMN_PATTERN = /^([-+])?((?:[a-zA-Z_][\w$]*\.){0,2})([a-zA-Z_][\w$]*|\*) *(asc|dsc|desc|ascending|descending)?$/i;
5
6
  class OrderColumnClass extends BaseField {
@@ -1,5 +1,6 @@
1
- import { SerializationType } from '../../enums.js';
1
+ import { DataType, SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class ParamClass extends SqlElement {
4
5
  _name;
5
6
  _dataType;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class RawClass extends SqlElement {
4
5
  _text;
5
6
  get _type() {
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  import { BaseField } from './base-field.js';
4
5
  const RETURNING_COLUMN_PATTERN = /^([a-zA-Z_]\w*) *(?:as)? *(\w+)?$/;
5
6
  class ReturningColumnClass extends BaseField {
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class SequenceClass extends SqlElement {
4
5
  _expression;
5
6
  _next;
@@ -1,6 +1,7 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { printArray } from '../../helpers.js';
3
3
  import { SqlElement } from '../../serializable.js';
4
+ import { SerializeContext } from '../../serialize-context.js';
4
5
  import { Field } from './field.js';
5
6
  import { OrderColumn } from './order-column.js';
6
7
  class StringAggClass extends SqlElement {
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class TableNameClass extends SqlElement {
4
5
  schema;
5
6
  table;
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  class UpperClass extends SqlElement {
4
5
  _expression;
5
6
  _alias;
package/sql/insert.js CHANGED
@@ -1,10 +1,13 @@
1
1
  import { SerializationType } from '../enums.js';
2
2
  import { printArray } from '../helpers.js';
3
3
  import { SqlElement } from '../serializable.js';
4
+ import { SerializeContext } from '../serialize-context.js';
4
5
  import { isRaw, isSelect, isSerializable } from '../type-guards.js';
6
+ import { Raw } from './elements/raw.js';
5
7
  import { TableName } from './elements/table-name.js';
6
8
  import { Query } from './query.js';
7
9
  import { ReturningQuery } from './returning-query.js';
10
+ import { Select } from './select.js';
8
11
  class InsertClass extends ReturningQuery {
9
12
  _table;
10
13
  _input;
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SerializeContext } from '../../serialize-context.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class BetweenClass extends CompOperator {
4
5
  _serialize(ctx) {
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../../enums.js';
2
2
  import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
3
4
  import { Field, Param } from '../elements/index.js';
4
5
  import { Operator } from './operator.js';
5
6
  const EXPRESSION_PATTERN = /^([\w\\.$]+)(\[])?/;
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class EqClass extends CompOperator {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SerializeContext } from '../../serialize-context.js';
2
3
  import { isRaw, isSelect } from '../../type-guards.js';
3
4
  import { CompOperator } from './comp-operator.js';
4
5
  class ExistsClass extends CompOperator {
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class GtClass extends CompOperator {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class GteClass extends CompOperator {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  import { Like } from './like.js';
4
5
  class ILikeClass extends Like {
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SerializeContext } from '../../serialize-context.js';
2
3
  import { isSerializable } from '../../type-guards.js';
3
4
  import { CompOperator } from './comp-operator.js';
4
5
  class InClass extends CompOperator {
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { Is } from './is.js';
3
4
  class IsNotClass extends Is {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class IsClass extends CompOperator {
4
5
  }
@@ -1,4 +1,6 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
2
4
  import { CompOperator } from './comp-operator.js';
3
5
  class LikeClass extends CompOperator {
4
6
  __serialize(ctx, o) {
@@ -1,6 +1,8 @@
1
1
  import isPlainObject from 'putil-isplainobject';
2
2
  import { SerializationType } from '../../enums.js';
3
3
  import { printArray } from '../../helpers.js';
4
+ import { SqlElement } from '../../serializable.js';
5
+ import { SerializeContext } from '../../serialize-context.js';
4
6
  import { isCompOperator, isLogicalOperator, isNot, isRaw, } from '../../type-guards.js';
5
7
  import { Operator } from './operator.js';
6
8
  // noinspection RegExpUnnecessaryNonCapturingGroup
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class LtClass extends CompOperator {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class LteClass extends CompOperator {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { CompOperator } from './comp-operator.js';
3
4
  class NeClass extends CompOperator {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { Between } from './between.js';
3
4
  class NotBetweenClass extends Between {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { ILike } from './i-like.js';
3
4
  class NotILikeClass extends ILike {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { In } from './in.js';
3
4
  class NotInClass extends In {
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { OperatorType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
2
3
  import { Like } from './like.js';
3
4
  class NotLikeClass extends Like {
4
5
  }
@@ -1,4 +1,6 @@
1
1
  import { OperatorType, SerializationType } from '../../enums.js';
2
+ import { SqlElement } from '../../serializable.js';
3
+ import { SerializeContext } from '../../serialize-context.js';
2
4
  import { Operator } from '../operators/operator.js';
3
5
  class NotClass extends Operator {
4
6
  get _type() {
@@ -1,3 +1,4 @@
1
+ import { OperatorType } from '../../enums.js';
1
2
  import { SqlElement } from '../../serializable.js';
2
3
  export const Operator = function () {
3
4
  if (!(this instanceof Operator))
@@ -1,5 +1,6 @@
1
1
  import { SerializationType } from '../enums.js';
2
2
  import { printArray } from '../helpers.js';
3
+ import { SerializeContext } from '../serialize-context.js';
3
4
  import { ReturningColumn } from './elements/returning-column.js';
4
5
  import { Query } from './query.js';
5
6
  class ReturningQueryClass extends Query {
package/sql/select.js CHANGED
@@ -2,12 +2,17 @@ import { splitString } from 'fast-tokenizer';
2
2
  import { coerceToInt } from 'putil-varhelpers';
3
3
  import { SerializationType } from '../enums.js';
4
4
  import { printArray } from '../helpers.js';
5
+ import { SqlElement } from '../serializable.js';
6
+ import { SerializeContext } from '../serialize-context.js';
5
7
  import { isJoin } from '../type-guards.js';
6
8
  import { Field } from './elements/field.js';
7
9
  import { GroupColumn } from './elements/group-column.js';
10
+ import { Join } from './elements/join.js';
8
11
  import { OrderColumn } from './elements/order-column.js';
12
+ import { Raw } from './elements/raw.js';
9
13
  import { TableName } from './elements/table-name.js';
10
14
  import { And } from './operators/and.js';
15
+ import { LogicalOperator } from './operators/logical-operator.js';
11
16
  import { Query } from './query.js';
12
17
  class SelectClass extends Query {
13
18
  _tables;
package/sql/union.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { SerializationType } from '../enums.js';
2
+ import { SerializeContext } from '../serialize-context.js';
2
3
  import { Query } from './query.js';
3
4
  class UnionClass extends Query {
4
5
  _queries;
package/sql/update.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import { SerializationType } from '../enums.js';
2
2
  import { printArray } from '../helpers.js';
3
3
  import { SqlElement } from '../serializable.js';
4
+ import { SerializeContext } from '../serialize-context.js';
4
5
  import { isRaw } from '../type-guards.js';
6
+ import { Raw } from './elements/raw.js';
5
7
  import { TableName } from './elements/table-name.js';
6
8
  import { And } from './operators/and.js';
9
+ import { LogicalOperator } from './operators/logical-operator.js';
7
10
  import { Query } from './query.js';
8
11
  import { ReturningQuery } from './returning-query.js';
9
12
  class UpdateClass extends ReturningQuery {
package/types.js CHANGED
@@ -1 +1 @@
1
- export {};
1
+ import { DataType, SerializationType } from './enums.js';