@ignisia/sql 0.3.0 → 0.4.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 (104) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/column/index.js +2 -9
  3. package/dist/cjs/database/alter.d.cts +2 -2
  4. package/dist/cjs/database/column.d.cts +2 -2
  5. package/dist/cjs/database/contract.d.cts +2 -2
  6. package/dist/cjs/database/index.d.cts +2 -2
  7. package/dist/cjs/database/index.js +1 -1
  8. package/dist/cjs/database/table.d.cts +2 -2
  9. package/dist/cjs/database/types.d.cts +1 -1
  10. package/dist/cjs/database/wrapper.d.cts +3 -3
  11. package/dist/cjs/database/wrapper.js +1 -17
  12. package/dist/cjs/{index-CnQVnCEI.d.cts → index-CHxuUiO4.d.cts} +178 -98
  13. package/dist/cjs/{index-2jl8MRfX.d.cts → index-CZhrzE5r.d.cts} +2 -2
  14. package/dist/cjs/index.d.cts +2 -2
  15. package/dist/cjs/migration/index.d.cts +2 -2
  16. package/dist/cjs/migration/type.d.cts +2 -2
  17. package/dist/cjs/query/builder.d.cts +3 -3
  18. package/dist/cjs/query/builder.js +1 -1
  19. package/dist/cjs/query/condition/common.d.cts +41 -0
  20. package/dist/cjs/query/condition/common.js +62 -0
  21. package/dist/cjs/query/condition/core.d.cts +8 -0
  22. package/dist/cjs/query/condition/core.js +57 -0
  23. package/dist/cjs/query/condition/index.d.cts +10 -0
  24. package/dist/cjs/query/condition/index.js +33 -0
  25. package/dist/cjs/query/condition/not.d.cts +34 -0
  26. package/dist/cjs/query/condition/not.js +51 -0
  27. package/dist/cjs/query/condition/raw.d.cts +8 -0
  28. package/dist/cjs/query/condition/raw.js +54 -0
  29. package/dist/cjs/query/constants.d.cts +27 -1
  30. package/dist/cjs/query/constants.js +28 -2
  31. package/dist/cjs/query/contract.d.cts +2 -2
  32. package/dist/cjs/query/explain.d.cts +12 -0
  33. package/dist/cjs/query/explain.js +65 -0
  34. package/dist/cjs/query/helper.d.cts +3 -3
  35. package/dist/cjs/query/helper.js +1 -1
  36. package/dist/cjs/query/index.d.cts +2 -2
  37. package/dist/cjs/query/index.js +59 -64
  38. package/dist/cjs/query/join.d.cts +18 -6
  39. package/dist/cjs/query/join.js +38 -9
  40. package/dist/cjs/query/sql.d.cts +5 -3
  41. package/dist/cjs/query/sql.js +46 -15
  42. package/dist/cjs/query/types.d.cts +2 -2
  43. package/dist/cjs/query/utilities.d.cts +5 -4
  44. package/dist/cjs/query/utilities.js +73 -2
  45. package/dist/cjs/table/index.d.cts +3 -3
  46. package/dist/cjs/table/types.d.cts +2 -2
  47. package/dist/cjs/table/utilities.d.cts +2 -2
  48. package/dist/cjs/types.d.cts +5 -1
  49. package/dist/cjs/utilities.d.cts +2 -1
  50. package/dist/cjs/utilities.js +22 -0
  51. package/dist/esm/column/index.js +3 -10
  52. package/dist/esm/database/alter.d.ts +2 -2
  53. package/dist/esm/database/column.d.ts +2 -2
  54. package/dist/esm/database/contract.d.ts +2 -2
  55. package/dist/esm/database/index.d.ts +2 -2
  56. package/dist/esm/database/index.js +2 -2
  57. package/dist/esm/database/table.d.ts +2 -2
  58. package/dist/esm/database/types.d.ts +1 -1
  59. package/dist/esm/database/wrapper.d.ts +3 -3
  60. package/dist/esm/database/wrapper.js +1 -17
  61. package/dist/esm/{index-BdpoD4zk.d.ts → index-CjurLJdK.d.ts} +178 -98
  62. package/dist/esm/{index-BXOAxB_h.d.ts → index-DgOs61lH.d.ts} +2 -2
  63. package/dist/esm/index.d.ts +2 -2
  64. package/dist/esm/migration/index.d.ts +2 -2
  65. package/dist/esm/migration/type.d.ts +2 -2
  66. package/dist/esm/query/builder.d.ts +3 -3
  67. package/dist/esm/query/builder.js +1 -1
  68. package/dist/esm/query/condition/common.d.ts +41 -0
  69. package/dist/esm/query/condition/common.js +56 -0
  70. package/dist/esm/query/condition/core.d.ts +8 -0
  71. package/dist/esm/query/condition/core.js +55 -0
  72. package/dist/esm/query/condition/index.d.ts +10 -0
  73. package/dist/esm/query/condition/index.js +4 -0
  74. package/dist/esm/query/condition/not.d.ts +34 -0
  75. package/dist/esm/query/condition/not.js +46 -0
  76. package/dist/esm/query/condition/raw.d.ts +8 -0
  77. package/dist/esm/query/condition/raw.js +50 -0
  78. package/dist/esm/query/constants.d.ts +27 -1
  79. package/dist/esm/query/constants.js +27 -3
  80. package/dist/esm/query/contract.d.ts +2 -2
  81. package/dist/esm/query/explain.d.ts +12 -0
  82. package/dist/esm/query/explain.js +64 -0
  83. package/dist/esm/query/helper.d.ts +3 -3
  84. package/dist/esm/query/helper.js +2 -2
  85. package/dist/esm/query/index.d.ts +2 -2
  86. package/dist/esm/query/index.js +62 -67
  87. package/dist/esm/query/join.d.ts +18 -6
  88. package/dist/esm/query/join.js +37 -9
  89. package/dist/esm/query/sql.d.ts +5 -3
  90. package/dist/esm/query/sql.js +46 -17
  91. package/dist/esm/query/types.d.ts +2 -2
  92. package/dist/esm/query/utilities.d.ts +5 -4
  93. package/dist/esm/query/utilities.js +73 -3
  94. package/dist/esm/table/index.d.ts +3 -3
  95. package/dist/esm/table/types.d.ts +2 -2
  96. package/dist/esm/table/utilities.d.ts +2 -2
  97. package/dist/esm/types.d.ts +5 -1
  98. package/dist/esm/utilities.d.ts +2 -1
  99. package/dist/esm/utilities.js +22 -1
  100. package/package.json +8 -2
  101. package/dist/cjs/query/condition.d.cts +0 -8
  102. package/dist/cjs/query/condition.js +0 -109
  103. package/dist/esm/query/condition.d.ts +0 -8
  104. package/dist/esm/query/condition.js +0 -101
@@ -1,6 +1,6 @@
1
1
  import { TransactionSQL } from 'bun';
2
2
  import { Column } from './column/index.cjs';
3
- import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid, h as QuerHooks, b as DatabaseDialect, i as DatabaseOptions, f as QueryBuilder, j as QueryRunHooks } from './index-CnQVnCEI.cjs';
3
+ import { T as Table, D as DatabaseDefinition, f as TimestampOptions, M as MergeTimestampParanoid, p as QueryHooks, g as DatabaseDialect, q as DatabaseOptions, l as QueryBuilder, s as QueryRunHooks } from './index-CHxuUiO4.cjs';
4
4
  import { QueryHooksType } from './query/constants.cjs';
5
5
  import { Dialect } from './table/constants.cjs';
6
6
  import { AcceptedColumnTypes } from './column/constants.cjs';
@@ -77,7 +77,7 @@ interface ColumnAlterationContract<DbDialect extends Dialect, Tables extends Rec
77
77
  }
78
78
 
79
79
  declare class Database<DbDialect extends Dialect, Tables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<DatabaseDefinition<DbDialect>> = DatabaseDefinition<DbDialect>> {
80
- readonly hooks: Partial<QuerHooks>;
80
+ readonly hooks: Partial<QueryHooks>;
81
81
  readonly dialect: DbDialect;
82
82
  readonly defintion: Definition;
83
83
  readonly tables: Tables;
@@ -1,7 +1,7 @@
1
1
  export { Column } from './column/index.cjs';
2
- export { D as Database } from './index-2jl8MRfX.cjs';
2
+ export { D as Database } from './index-CZhrzE5r.cjs';
3
3
  export { Migration } from './migration/index.cjs';
4
- export { f as QueryBuilder, T as Table } from './index-CnQVnCEI.cjs';
4
+ export { l as QueryBuilder, T as Table } from './index-CHxuUiO4.cjs';
5
5
  import './table/constants.cjs';
6
6
  import './column/constants.cjs';
7
7
  import './column/types.cjs';
@@ -1,6 +1,6 @@
1
1
  import { Column } from '../column/index.cjs';
2
- import { D as Database } from '../index-2jl8MRfX.cjs';
3
- import { T as Table } from '../index-CnQVnCEI.cjs';
2
+ import { D as Database } from '../index-CZhrzE5r.cjs';
3
+ import { T as Table } from '../index-CHxuUiO4.cjs';
4
4
  import { Dialect } from '../table/constants.cjs';
5
5
  import { MigrationOptions, MigrationFn } from './type.cjs';
6
6
  import '../column/constants.cjs';
@@ -1,6 +1,6 @@
1
1
  import { Column } from '../column/index.cjs';
2
- import { D as Database } from '../index-2jl8MRfX.cjs';
3
- import { T as Table } from '../index-CnQVnCEI.cjs';
2
+ import { D as Database } from '../index-CZhrzE5r.cjs';
3
+ import { T as Table } from '../index-CHxuUiO4.cjs';
4
4
  import { Dialect } from '../table/constants.cjs';
5
5
  import '../column/constants.cjs';
6
6
  import '../column/types.cjs';
@@ -1,9 +1,9 @@
1
- import { T as Table, Q as QueryDefinition, C as ColumnSelector, e as StrictColumnSelector, f as QueryBuilder } from '../index-CnQVnCEI.cjs';
1
+ import { T as Table, Q as QueryDefinition, C as ColumnSelector, k as StrictColumnSelector, l as QueryBuilder } from '../index-CHxuUiO4.cjs';
2
2
  import { Column } from '../column/index.cjs';
3
- import '../column/constants.cjs';
3
+ import 'bun';
4
4
  import '../types.cjs';
5
5
  import './constants.cjs';
6
- import 'bun';
6
+ import '../column/constants.cjs';
7
7
  import '../table/constants.cjs';
8
8
  import '../column/types.cjs';
9
9
 
@@ -59,7 +59,7 @@ function buildUpdateQuery(q) {
59
59
  } else {
60
60
  q.definition.params = updateParams;
61
61
  }
62
- return `UPDATE ${q.table.name} SET ${keys.map((key) => `${key} = ?`.trim()).join(", ")}`;
62
+ return `UPDATE ${q.table.name} SET ${keys.map((key) => `${key} = ?`).join(", ")}`;
63
63
  }
64
64
  function buildDeleteQuery(q) {
65
65
  return `DELETE FROM ${q.table.name}`;
@@ -0,0 +1,41 @@
1
+ import { T as Table, Q as QueryDefinition, C as ColumnSelector, k as StrictColumnSelector, W as WhereValue, l as QueryBuilder, n as QueryTransformerContract, o as QueryConditionContract } from '../../index-CHxuUiO4.cjs';
2
+ import { Column } from '../../column/index.cjs';
3
+ import { AcceptedOperator } from '../constants.cjs';
4
+ import 'bun';
5
+ import '../../types.cjs';
6
+ import '../../column/constants.cjs';
7
+ import '../../table/constants.cjs';
8
+ import '../../column/types.cjs';
9
+
10
+ declare function where<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
11
+ where: string[];
12
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
13
+ where: string[];
14
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
15
+ where: string[];
16
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
17
+ declare function or<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
18
+ where: string[];
19
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
20
+ where: string[];
21
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
22
+ where: string[];
23
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
24
+ declare function on<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Operator extends typeof AcceptedOperator.EQ | typeof AcceptedOperator.NE>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, columnA: ColName, operator: Operator, columnB: ColName): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
25
+ where: string[];
26
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
27
+ where: string[];
28
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
29
+ where: string[];
30
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
31
+ declare function having<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
32
+ having: string[];
33
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
34
+ having: string[];
35
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
36
+ having: string[];
37
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
38
+ declare function whereGroup<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>>;
39
+ declare function orGroup<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>>;
40
+
41
+ export { having, on, or, orGroup, where, whereGroup };
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ var constants = require('../constants');
4
+ var core = require('./core');
5
+
6
+ function where(column, operator, value) {
7
+ return core.addCondition(
8
+ this,
9
+ constants.ConditionClause.WHERE,
10
+ column,
11
+ operator,
12
+ value || null,
13
+ constants.LogicalOperator.AND,
14
+ false
15
+ );
16
+ }
17
+ function or(column, operator, value) {
18
+ return core.addCondition(
19
+ this,
20
+ constants.ConditionClause.WHERE,
21
+ column,
22
+ operator,
23
+ value || null,
24
+ constants.LogicalOperator.OR,
25
+ false
26
+ );
27
+ }
28
+ function on(columnA, operator, columnB) {
29
+ return core.addCondition(
30
+ this,
31
+ constants.ConditionClause.WHERE,
32
+ columnA,
33
+ operator,
34
+ columnB,
35
+ constants.LogicalOperator.ON,
36
+ false
37
+ );
38
+ }
39
+ function having(column, operator, value) {
40
+ return core.addCondition(
41
+ this,
42
+ constants.ConditionClause.HAVING,
43
+ column,
44
+ operator,
45
+ value,
46
+ constants.LogicalOperator.AND,
47
+ false
48
+ );
49
+ }
50
+ function whereGroup(callback) {
51
+ return core.addGroupCondition(this, constants.LogicalOperator.AND, callback, false);
52
+ }
53
+ function orGroup(callback) {
54
+ return core.addGroupCondition(this, constants.LogicalOperator.OR, callback, false);
55
+ }
56
+
57
+ exports.having = having;
58
+ exports.on = on;
59
+ exports.or = or;
60
+ exports.orGroup = orGroup;
61
+ exports.where = where;
62
+ exports.whereGroup = whereGroup;
@@ -0,0 +1,8 @@
1
+ export { a as addCondition, b as addGroupCondition } from '../../index-CHxuUiO4.cjs';
2
+ import '../../column/index.cjs';
3
+ import '../constants.cjs';
4
+ import 'bun';
5
+ import '../../types.cjs';
6
+ import '../../column/constants.cjs';
7
+ import '../../table/constants.cjs';
8
+ import '../../column/types.cjs';
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ var __ = require('..');
4
+ var constants = require('../constants');
5
+ var utilities = require('../utilities');
6
+
7
+ function addCondition(query, clause, column, operator, value, logical, negate) {
8
+ if (!query.table.dialect) {
9
+ throw new Error("No DB Dialect defined");
10
+ }
11
+ const isOn = logical === constants.LogicalOperator.ON;
12
+ const validClause = clause.toLowerCase();
13
+ let condition = utilities.getCondition(query.table.dialect, column, operator, value);
14
+ if (isOn) {
15
+ condition = condition.replace("?", value);
16
+ }
17
+ if (!query.definition[validClause]) query.definition[validClause] = [];
18
+ const logicalPrefix = query.definition[validClause].length > 0 ? isOn ? constants.LogicalOperator.AND : logical : "";
19
+ const not = negate ? "NOT " : "";
20
+ query.definition[validClause].push(
21
+ `${logicalPrefix} ${not}${condition}`.trim()
22
+ );
23
+ if (operator === constants.AcceptedOperator.IS_NULL || operator === constants.AcceptedOperator.IS_NOT_NULL) {
24
+ return query;
25
+ }
26
+ if (!query.definition.params) query.definition.params = [];
27
+ if (!isOn) {
28
+ if (operator === constants.AcceptedOperator.STARTS_WITH) {
29
+ query.definition.params.push(`${value}%`);
30
+ } else if (operator === constants.AcceptedOperator.ENDS_WITH) {
31
+ query.definition.params.push(`%${value}`);
32
+ } else if (Array.isArray(value)) {
33
+ query.definition.params.push(...value);
34
+ } else {
35
+ query.definition.params.push(value);
36
+ }
37
+ }
38
+ return query;
39
+ }
40
+ function addGroupCondition(query, logical, callback, negate) {
41
+ const sub = callback(new __.QueryBuilder(query.table));
42
+ const subDef = sub.definition;
43
+ if (!subDef.where?.length) return query;
44
+ const not = negate ? "NOT " : "";
45
+ const grouped = `${not}(${subDef.where.join(" ")})`;
46
+ if (!query.definition.where) query.definition.where = [];
47
+ const logicalPrefix = query.definition.where.length > 0 ? logical : "";
48
+ query.definition.where.push(`${logicalPrefix} ${grouped}`.trim());
49
+ if (subDef.params?.length) {
50
+ if (!query.definition.params) query.definition.params = [];
51
+ query.definition.params.push(...subDef.params);
52
+ }
53
+ return query;
54
+ }
55
+
56
+ exports.addCondition = addCondition;
57
+ exports.addGroupCondition = addGroupCondition;
@@ -0,0 +1,10 @@
1
+ export { having, on, or, orGroup, where, whereGroup } from './common.cjs';
2
+ export { a as addCondition, b as addGroupCondition, c as addRawCondition, e as rawHaving, d as rawOr, r as rawWhere } from '../../index-CHxuUiO4.cjs';
3
+ export { havingNot, orNot, orNotGroup, whereNot, whereNotGroup } from './not.cjs';
4
+ import '../../column/index.cjs';
5
+ import '../../table/constants.cjs';
6
+ import '../../column/constants.cjs';
7
+ import '../../column/types.cjs';
8
+ import '../constants.cjs';
9
+ import 'bun';
10
+ import '../../types.cjs';
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var common = require('./common');
4
+ var core = require('./core');
5
+ var not = require('./not');
6
+ var raw = require('./raw');
7
+
8
+
9
+
10
+ Object.keys(common).forEach(function (k) {
11
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
12
+ enumerable: true,
13
+ get: function () { return common[k]; }
14
+ });
15
+ });
16
+ Object.keys(core).forEach(function (k) {
17
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
18
+ enumerable: true,
19
+ get: function () { return core[k]; }
20
+ });
21
+ });
22
+ Object.keys(not).forEach(function (k) {
23
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
24
+ enumerable: true,
25
+ get: function () { return not[k]; }
26
+ });
27
+ });
28
+ Object.keys(raw).forEach(function (k) {
29
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
30
+ enumerable: true,
31
+ get: function () { return raw[k]; }
32
+ });
33
+ });
@@ -0,0 +1,34 @@
1
+ import { T as Table, Q as QueryDefinition, C as ColumnSelector, k as StrictColumnSelector, W as WhereValue, l as QueryBuilder, n as QueryTransformerContract, o as QueryConditionContract } from '../../index-CHxuUiO4.cjs';
2
+ import { Column } from '../../column/index.cjs';
3
+ import { AcceptedOperator } from '../constants.cjs';
4
+ import 'bun';
5
+ import '../../types.cjs';
6
+ import '../../column/constants.cjs';
7
+ import '../../table/constants.cjs';
8
+ import '../../column/types.cjs';
9
+
10
+ declare function whereNot<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
11
+ where: string[];
12
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
13
+ where: string[];
14
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
15
+ where: string[];
16
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
17
+ declare function havingNot<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
18
+ having: string[];
19
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
20
+ having: string[];
21
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "having"> & {
22
+ having: string[];
23
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
24
+ declare function orNot<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>, ColName extends StrictAllowedColumn, Col extends ColName extends `${infer TableAlias}.${infer TableColumn}` ? TableAlias extends Alias ? TableRef['columns'][TableColumn] : JoinedTables[TableAlias]['columns'][TableColumn] : never, Operator extends AcceptedOperator, Value extends WhereValue<Col>[Operator]>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, column: ColName, operator: Operator, value?: Value): QueryBuilder<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
25
+ where: string[];
26
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>, QueryTransformerContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
27
+ where: string[];
28
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>, QueryConditionContract<Alias, TableRef, JoinedTables, Omit<Definition, "where"> & {
29
+ where: string[];
30
+ }, ColumnSelector<Alias, TableRef, JoinedTables>, StrictColumnSelector<Alias, TableRef, JoinedTables>>>;
31
+ declare function whereNotGroup<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>>;
32
+ declare function orNotGroup<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(this: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, callback: (q: QueryBuilder<Alias, TableRef, JoinedTables>) => QueryBuilder<Alias, TableRef, JoinedTables>): QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn, QueryTransformerContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, QueryConditionContract<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>>;
33
+
34
+ export { havingNot, orNot, orNotGroup, whereNot, whereNotGroup };
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ require('..');
4
+ var constants = require('../constants');
5
+ var core = require('./core');
6
+
7
+ function whereNot(column, operator, value) {
8
+ return core.addCondition(
9
+ this,
10
+ constants.ConditionClause.WHERE,
11
+ column,
12
+ operator,
13
+ value || null,
14
+ constants.LogicalOperator.AND,
15
+ true
16
+ );
17
+ }
18
+ function havingNot(column, operator, value) {
19
+ return core.addCondition(
20
+ this,
21
+ constants.ConditionClause.HAVING,
22
+ column,
23
+ operator,
24
+ value,
25
+ constants.LogicalOperator.AND,
26
+ true
27
+ );
28
+ }
29
+ function orNot(column, operator, value) {
30
+ return core.addCondition(
31
+ this,
32
+ constants.ConditionClause.WHERE,
33
+ column,
34
+ operator,
35
+ value || null,
36
+ constants.LogicalOperator.OR,
37
+ true
38
+ );
39
+ }
40
+ function whereNotGroup(callback) {
41
+ return core.addGroupCondition(this, constants.LogicalOperator.AND, callback, true);
42
+ }
43
+ function orNotGroup(callback) {
44
+ return core.addGroupCondition(this, constants.LogicalOperator.OR, callback, true);
45
+ }
46
+
47
+ exports.havingNot = havingNot;
48
+ exports.orNot = orNot;
49
+ exports.orNotGroup = orNotGroup;
50
+ exports.whereNot = whereNot;
51
+ exports.whereNotGroup = whereNotGroup;
@@ -0,0 +1,8 @@
1
+ export { c as addRawCondition, e as rawHaving, d as rawOr, r as rawWhere } from '../../index-CHxuUiO4.cjs';
2
+ import '../../column/index.cjs';
3
+ import '../constants.cjs';
4
+ import 'bun';
5
+ import '../../types.cjs';
6
+ import '../../column/constants.cjs';
7
+ import '../../table/constants.cjs';
8
+ import '../../column/types.cjs';
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var constants = require('../constants');
4
+ var helper = require('../helper');
5
+
6
+ function addRawCondition(query, clause, column, logical, params) {
7
+ const validClause = clause.toLowerCase();
8
+ if (!query.definition[validClause]) query.definition[validClause] = [];
9
+ const condition = column(helper.rawCol);
10
+ const logicalPrefix = query.definition[validClause].length > 0 ? logical : "";
11
+ query.definition[validClause].push(`${logicalPrefix} ${condition}`.trim());
12
+ if (!query.definition.params) query.definition.params = [];
13
+ if (typeof params === "undefined") {
14
+ return query;
15
+ }
16
+ if (Array.isArray(params)) {
17
+ query.definition.params.push(...params);
18
+ } else {
19
+ query.definition.params.push(params);
20
+ }
21
+ return query;
22
+ }
23
+ function rawWhere(column, params) {
24
+ return addRawCondition(
25
+ this,
26
+ constants.ConditionClause.WHERE,
27
+ column,
28
+ constants.LogicalOperator.AND,
29
+ params
30
+ );
31
+ }
32
+ function rawOr(column, params) {
33
+ return addRawCondition(
34
+ this,
35
+ constants.ConditionClause.WHERE,
36
+ column,
37
+ constants.LogicalOperator.OR,
38
+ params
39
+ );
40
+ }
41
+ function rawHaving(column, params) {
42
+ return addRawCondition(
43
+ this,
44
+ constants.ConditionClause.HAVING,
45
+ column,
46
+ constants.LogicalOperator.AND,
47
+ params
48
+ );
49
+ }
50
+
51
+ exports.addRawCondition = addRawCondition;
52
+ exports.rawHaving = rawHaving;
53
+ exports.rawOr = rawOr;
54
+ exports.rawWhere = rawWhere;
@@ -1,6 +1,7 @@
1
1
  declare const LogicalOperator: {
2
2
  readonly AND: "AND";
3
3
  readonly OR: "OR";
4
+ readonly ON: "ON";
4
5
  };
5
6
  type LogicalOperator = (typeof LogicalOperator)[keyof typeof LogicalOperator];
6
7
  declare const ConditionClause: {
@@ -25,6 +26,12 @@ declare const AcceptedOperator: {
25
26
  readonly IS_NOT_NULL: "isNotNull";
26
27
  readonly BETWEEN: "between";
27
28
  readonly NOT_BETWEEN: "notBetween";
29
+ readonly STARTS_WITH: "startsWith";
30
+ readonly ENDS_WITH: "endsWith";
31
+ readonly REG_EXP: "regExp";
32
+ readonly NOT_REG_EXP: "notRegExp";
33
+ readonly RLIKE: "rlike";
34
+ readonly NOT_RLIKE: "notRlike";
28
35
  };
29
36
  type AcceptedOperator = (typeof AcceptedOperator)[keyof typeof AcceptedOperator];
30
37
  declare const QueryType: {
@@ -51,6 +58,8 @@ declare const AcceptedJoin: {
51
58
  readonly INNER: "INNER";
52
59
  readonly LEFT: "LEFT";
53
60
  readonly RIGHT: "RIGHT";
61
+ readonly FULL: "FULL OUTER";
62
+ readonly CROSS: "CROSS";
54
63
  readonly NATURAL: "NATURAL";
55
64
  };
56
65
  type AcceptedJoin = (typeof AcceptedJoin)[keyof typeof AcceptedJoin];
@@ -59,5 +68,22 @@ declare const QueryHooksType: {
59
68
  readonly BEFORE: "before";
60
69
  };
61
70
  type QueryHooksType = (typeof QueryHooksType)[keyof typeof QueryHooksType];
71
+ declare const ExplainFormat: {
72
+ readonly JSON: "JSON";
73
+ readonly TEXT: "TEXT";
74
+ readonly YAML: "YAML";
75
+ readonly XML: "XML";
76
+ };
77
+ type ExplainFormat = (typeof ExplainFormat)[keyof typeof ExplainFormat];
78
+ declare const ExplainClause: {
79
+ readonly FORMAT: "FORMAT";
80
+ readonly ANALYZE: "ANALYZE";
81
+ readonly VERBOSE: "VERBOSE";
82
+ readonly COSTS: "COSTS";
83
+ readonly BUFFERS: "BUFFERS";
84
+ readonly SUMMARY: "SUMMARY";
85
+ readonly TIMING: "TIMING";
86
+ };
87
+ type ExplainClause = (typeof ExplainClause)[keyof typeof ExplainClause];
62
88
 
63
- export { AcceptedJoin, AcceptedOperator, AggregationFunction, ConditionClause, LogicalOperator, OrderBy, QueryHooksType, QueryType };
89
+ export { AcceptedJoin, AcceptedOperator, AggregationFunction, ConditionClause, ExplainClause, ExplainFormat, LogicalOperator, OrderBy, QueryHooksType, QueryType };
@@ -2,7 +2,8 @@
2
2
 
3
3
  const LogicalOperator = {
4
4
  AND: "AND",
5
- OR: "OR"
5
+ OR: "OR",
6
+ ON: "ON"
6
7
  };
7
8
  const ConditionClause = {
8
9
  WHERE: "WHERE",
@@ -24,7 +25,13 @@ const AcceptedOperator = {
24
25
  IS_NULL: "isNull",
25
26
  IS_NOT_NULL: "isNotNull",
26
27
  BETWEEN: "between",
27
- NOT_BETWEEN: "notBetween"
28
+ NOT_BETWEEN: "notBetween",
29
+ STARTS_WITH: "startsWith",
30
+ ENDS_WITH: "endsWith",
31
+ REG_EXP: "regExp",
32
+ NOT_REG_EXP: "notRegExp",
33
+ RLIKE: "rlike",
34
+ NOT_RLIKE: "notRlike"
28
35
  };
29
36
  const QueryType = {
30
37
  SELECT: "SELECT",
@@ -47,17 +54,36 @@ const AcceptedJoin = {
47
54
  INNER: "INNER",
48
55
  LEFT: "LEFT",
49
56
  RIGHT: "RIGHT",
57
+ FULL: "FULL OUTER",
58
+ CROSS: "CROSS",
50
59
  NATURAL: "NATURAL"
51
60
  };
52
61
  const QueryHooksType = {
53
62
  AFTER: "after",
54
63
  BEFORE: "before"
55
64
  };
65
+ const ExplainFormat = {
66
+ JSON: "JSON",
67
+ TEXT: "TEXT",
68
+ YAML: "YAML",
69
+ XML: "XML"
70
+ };
71
+ const ExplainClause = {
72
+ FORMAT: "FORMAT",
73
+ ANALYZE: "ANALYZE",
74
+ VERBOSE: "VERBOSE",
75
+ COSTS: "COSTS",
76
+ BUFFERS: "BUFFERS",
77
+ SUMMARY: "SUMMARY",
78
+ TIMING: "TIMING"
79
+ };
56
80
 
57
81
  exports.AcceptedJoin = AcceptedJoin;
58
82
  exports.AcceptedOperator = AcceptedOperator;
59
83
  exports.AggregationFunction = AggregationFunction;
60
84
  exports.ConditionClause = ConditionClause;
85
+ exports.ExplainClause = ExplainClause;
86
+ exports.ExplainFormat = ExplainFormat;
61
87
  exports.LogicalOperator = LogicalOperator;
62
88
  exports.OrderBy = OrderBy;
63
89
  exports.QueryHooksType = QueryHooksType;
@@ -1,8 +1,8 @@
1
1
  import 'bun';
2
- export { Y as QueryConditionContract, X as QueryTransformerContract } from '../index-CnQVnCEI.cjs';
2
+ export { o as QueryConditionContract, n as QueryTransformerContract } from '../index-CHxuUiO4.cjs';
3
3
  import '../column/index.cjs';
4
4
  import '../table/constants.cjs';
5
5
  import './constants.cjs';
6
- import '../column/constants.cjs';
7
6
  import '../types.cjs';
7
+ import '../column/constants.cjs';
8
8
  import '../column/types.cjs';
@@ -0,0 +1,12 @@
1
+ import { T as Table, Q as QueryDefinition, C as ColumnSelector, k as StrictColumnSelector, l as QueryBuilder, E as ExplainOptions } from '../index-CHxuUiO4.cjs';
2
+ import { Column } from '../column/index.cjs';
3
+ import 'bun';
4
+ import '../types.cjs';
5
+ import './constants.cjs';
6
+ import '../column/constants.cjs';
7
+ import '../table/constants.cjs';
8
+ import '../column/types.cjs';
9
+
10
+ declare function buildExplainQuery<Alias extends string, TableRef extends Table<string, Record<string, Column>>, JoinedTables extends Record<string, Table<string, Record<string, Column>>>, Definition extends Partial<QueryDefinition<Alias, TableRef, JoinedTables>>, AllowedColumn extends ColumnSelector<Alias, TableRef, JoinedTables>, StrictAllowedColumn extends StrictColumnSelector<Alias, TableRef, JoinedTables>>(q: QueryBuilder<Alias, TableRef, JoinedTables, Definition, AllowedColumn, StrictAllowedColumn>, options: Partial<ExplainOptions>): string;
11
+
12
+ export { buildExplainQuery };