@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,8 +1,8 @@
1
1
  import 'bun';
2
- export { E as ExecOptions, M as MergeTimestampParanoid, x as TableOptions, y as TableOutput, a as TimestampOptions } from '../index-CnQVnCEI.cjs';
2
+ export { X as ExecOptions, M as MergeTimestampParanoid, U as TableOptions, V as TableOutput, f as TimestampOptions } from '../index-CHxuUiO4.cjs';
3
3
  import '../column/index.cjs';
4
4
  import './constants.cjs';
5
- import '../column/constants.cjs';
6
5
  import '../types.cjs';
7
6
  import '../query/constants.cjs';
7
+ import '../column/constants.cjs';
8
8
  import '../column/types.cjs';
@@ -1,8 +1,8 @@
1
1
  import '../column/constants.cjs';
2
2
  import '../column/index.cjs';
3
3
  import './constants.cjs';
4
- export { t as createdAt, w as defineColumns, v as deletedAt, u as updatedAt } from '../index-CnQVnCEI.cjs';
4
+ export { K as createdAt, O as defineColumns, N as deletedAt, L as updatedAt } from '../index-CHxuUiO4.cjs';
5
5
  import '../column/types.cjs';
6
+ import 'bun';
6
7
  import '../types.cjs';
7
8
  import '../query/constants.cjs';
8
- import 'bun';
@@ -1,3 +1,7 @@
1
1
  type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
2
+ type BuildTuple<N extends number, T extends unknown[] = []> = T['length'] extends N ? T : BuildTuple<N, [...T, unknown]>;
3
+ type Add<A extends number, B extends number, Result extends unknown[] = [...BuildTuple<A>, ...BuildTuple<B>]> = Result['length'] extends number ? Result['length'] : never;
4
+ type Subtract<A extends number, B extends number> = BuildTuple<A> extends [...BuildTuple<B>, ...infer Rest] ? Rest['length'] : never;
5
+ type Multiply<A extends number, B extends number, Result extends unknown[] = []> = B extends 0 ? Result['length'] : Multiply<A, Subtract<B, 1>, [...Result, ...BuildTuple<A>]>;
2
6
 
3
- export type { UnionToIntersection };
7
+ export type { Add, BuildTuple, Multiply, Subtract, UnionToIntersection };
@@ -1,4 +1,5 @@
1
1
  declare function deepClone<T>(obj: T): T;
2
+ declare function cloneDefinition<T extends Record<string, unknown>>(def: T): T;
2
3
  declare function quoteIdentifier<T extends string, U extends `"${T}"`>(identifier: T): U;
3
4
 
4
- export { deepClone, quoteIdentifier };
5
+ export { cloneDefinition, deepClone, quoteIdentifier };
@@ -13,9 +13,31 @@ function deepClone(obj) {
13
13
  }
14
14
  return obj;
15
15
  }
16
+ function cloneArray(arr) {
17
+ if (arr.length === 0) return [];
18
+ if (typeof arr[0] === "object" && arr[0] !== null) {
19
+ return arr.map((item) => ({ ...item }));
20
+ }
21
+ return arr.slice();
22
+ }
23
+ function cloneDefinition(def) {
24
+ const clone = {};
25
+ for (const key in def) {
26
+ const val = def[key];
27
+ if (val === null || typeof val !== "object") {
28
+ clone[key] = val;
29
+ } else if (Array.isArray(val)) {
30
+ clone[key] = cloneArray(val);
31
+ } else {
32
+ clone[key] = { ...val };
33
+ }
34
+ }
35
+ return clone;
36
+ }
16
37
  function quoteIdentifier(identifier) {
17
38
  return `"${identifier.replace(/"/g, '""')}"`;
18
39
  }
19
40
 
41
+ exports.cloneDefinition = cloneDefinition;
20
42
  exports.deepClone = deepClone;
21
43
  exports.quoteIdentifier = quoteIdentifier;
@@ -1,5 +1,5 @@
1
1
  import { Dialect } from '../table/constants.js';
2
- import { deepClone } from '../utilities.js';
2
+ import { cloneDefinition } from '../utilities.js';
3
3
  import { ColumnTypeMapping, AcceptedColumnTypes } from './constants.js';
4
4
  import { columnProperty } from './utils.js';
5
5
 
@@ -20,14 +20,7 @@ var Column = class _Column {
20
20
  if ("values" in options) {
21
21
  this.enums = options.values;
22
22
  }
23
- this.definition = {
24
- autoIncrement: false,
25
- primaryKey: false,
26
- notNull: false,
27
- unique: false,
28
- comment: null,
29
- default: void 0
30
- };
23
+ this.definition = {};
31
24
  }
32
25
  static define(options) {
33
26
  return new _Column(options);
@@ -66,7 +59,7 @@ var Column = class _Column {
66
59
  ...this.length && { length: this.length },
67
60
  ...this.enums.length && { values: this.enums }
68
61
  });
69
- Object.assign(column.definition, deepClone(this.definition));
62
+ Object.assign(column.definition, cloneDefinition(this.definition));
70
63
  return column;
71
64
  }
72
65
  toQuery() {
@@ -1,7 +1,7 @@
1
- import { D as Database } from '../index-BXOAxB_h.js';
1
+ import { D as Database } from '../index-DgOs61lH.js';
2
2
  import { Column } from '../column/index.js';
3
3
  import { AcceptedColumnTypes } from '../column/constants.js';
4
- import { T as Table, D as DatabaseDefinition } from '../index-BdpoD4zk.js';
4
+ import { T as Table, D as DatabaseDefinition } from '../index-CjurLJdK.js';
5
5
  import { Dialect } from '../table/constants.js';
6
6
  import 'bun';
7
7
  import '../query/constants.js';
@@ -1,6 +1,6 @@
1
- import { D as Database } from '../index-BXOAxB_h.js';
1
+ import { D as Database } from '../index-DgOs61lH.js';
2
2
  import { Column } from '../column/index.js';
3
- import { T as Table, D as DatabaseDefinition } from '../index-BdpoD4zk.js';
3
+ import { T as Table, D as DatabaseDefinition } from '../index-CjurLJdK.js';
4
4
  import { Dialect } from '../table/constants.js';
5
5
  import 'bun';
6
6
  import '../query/constants.js';
@@ -1,7 +1,7 @@
1
- export { C as ColumnAlterationContract, T as TableAlterationContract } from '../index-BXOAxB_h.js';
1
+ export { C as ColumnAlterationContract, T as TableAlterationContract } from '../index-DgOs61lH.js';
2
2
  import '../column/index.js';
3
3
  import '../column/constants.js';
4
- import '../index-BdpoD4zk.js';
4
+ import '../index-CjurLJdK.js';
5
5
  import '../table/constants.js';
6
6
  import 'bun';
7
7
  import '../query/constants.js';
@@ -1,9 +1,9 @@
1
1
  import 'bun';
2
2
  import '../column/index.js';
3
- import '../index-BdpoD4zk.js';
3
+ import '../index-CjurLJdK.js';
4
4
  import '../query/constants.js';
5
5
  import '../table/constants.js';
6
- export { D as Database } from '../index-BXOAxB_h.js';
6
+ export { D as Database } from '../index-DgOs61lH.js';
7
7
  import '../column/constants.js';
8
8
  import '../column/types.js';
9
9
  import '../types.js';
@@ -1,6 +1,6 @@
1
1
  import '../table/index.js';
2
2
  import { Dialect } from '../table/constants.js';
3
- import { alterColumnType, setColumnDefault, dropColumnDefault, dropColumnNotNull } from './alter.js';
3
+ import { alterColumnType, setColumnDefault, dropColumnDefault, setColumnNotNull, dropColumnNotNull } from './alter.js';
4
4
  import { addColumn, renameColumn, dropColumn } from './column.js';
5
5
  import { createTable, renameTable, dropTable } from './table.js';
6
6
  import { DatabaseMysql, DatabasePsql, DatabaseSqlite } from './wrapper.js';
@@ -53,7 +53,7 @@ var Database = class _Database {
53
53
  this.dropColumnDefault = dropColumnDefault.bind(
54
54
  this
55
55
  );
56
- this.setColumnNotNull = setColumnDefault.bind(
56
+ this.setColumnNotNull = setColumnNotNull.bind(
57
57
  this
58
58
  );
59
59
  this.dropColumnNotNull = dropColumnNotNull.bind(
@@ -1,6 +1,6 @@
1
- import { D as Database } from '../index-BXOAxB_h.js';
1
+ import { D as Database } from '../index-DgOs61lH.js';
2
2
  import { Column } from '../column/index.js';
3
- import { T as Table, D as DatabaseDefinition, a as TimestampOptions, M as MergeTimestampParanoid } from '../index-BdpoD4zk.js';
3
+ import { T as Table, D as DatabaseDefinition, f as TimestampOptions, M as MergeTimestampParanoid } from '../index-CjurLJdK.js';
4
4
  import { Dialect } from '../table/constants.js';
5
5
  import 'bun';
6
6
  import '../query/constants.js';
@@ -1,6 +1,6 @@
1
1
  import 'bun';
2
2
  import '../column/index.js';
3
- export { D as DatabaseDefinition, b as DatabaseDialect, c as DatabaseExecOptions, i as DatabaseOptions, s as MysqlConfig, P as PostgresConfig, r as SqlConfig, S as SqlConfigMapping, d as SqliteConfig } from '../index-BdpoD4zk.js';
3
+ export { D as DatabaseDefinition, g as DatabaseDialect, h as DatabaseExecOptions, q as DatabaseOptions, i as MysqlConfig, P as PostgresConfig, J as SqlConfig, S as SqlConfigMapping, j as SqliteConfig } from '../index-CjurLJdK.js';
4
4
  import '../table/constants.js';
5
5
  import '../column/constants.js';
6
6
  import '../column/types.js';
@@ -1,6 +1,6 @@
1
1
  import { SQL, TransactionSQL } from 'bun';
2
2
  import { Dialect } from '../table/constants.js';
3
- import { S as SqlConfigMapping, b as DatabaseDialect, c as DatabaseExecOptions, P as PostgresConfig, d as SqliteConfig } from '../index-BdpoD4zk.js';
3
+ import { S as SqlConfigMapping, g as DatabaseDialect, h as DatabaseExecOptions, P as PostgresConfig, i as MysqlConfig, j as SqliteConfig } from '../index-CjurLJdK.js';
4
4
  import '../column/index.js';
5
5
  import '../column/constants.js';
6
6
  import '../column/types.js';
@@ -22,8 +22,8 @@ declare class BaseSql<DbDialect extends Dialect, Options extends SqlConfigMappin
22
22
  declare class DatabasePsql extends BaseSql<typeof Dialect.POSTGRES, PostgresConfig> {
23
23
  constructor(options: PostgresConfig);
24
24
  }
25
- declare class DatabaseMysql extends BaseSql<typeof Dialect.MYSQL, PostgresConfig> {
26
- constructor(options: PostgresConfig);
25
+ declare class DatabaseMysql extends BaseSql<typeof Dialect.MYSQL, MysqlConfig> {
26
+ constructor(options: MysqlConfig);
27
27
  }
28
28
  declare class DatabaseSqlite extends BaseSql<typeof Dialect.SQLITE, SqliteConfig> {
29
29
  constructor(options: SqliteConfig);
@@ -39,23 +39,7 @@ var BaseSql = class {
39
39
  if (!options.params) {
40
40
  return client.unsafe(options.sql);
41
41
  }
42
- const params = (options.params ?? []).map((param) => {
43
- if (param === null || typeof param === "string" || typeof param === "number" || typeof param === "boolean" || typeof param === "bigint") {
44
- return param;
45
- }
46
- if (param === void 0) {
47
- return null;
48
- }
49
- if (param instanceof Date) {
50
- return param.toISOString();
51
- }
52
- try {
53
- return JSON.stringify(param);
54
- } catch {
55
- return null;
56
- }
57
- });
58
- return client.unsafe(options.sql, params);
42
+ return client.unsafe(options.sql, options.params);
59
43
  }
60
44
  async transaction(fn) {
61
45
  return this.client.transaction(fn);