@uql/core 3.7.13 → 3.8.1

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 (210) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/README.md +16 -8
  3. package/dist/browser/uql-browser.min.js +16 -15
  4. package/dist/browser/uql-browser.min.js.map +1 -1
  5. package/dist/dialect/abstractDialect.d.ts +7 -2
  6. package/dist/dialect/abstractDialect.d.ts.map +1 -1
  7. package/dist/dialect/abstractDialect.js +9 -1
  8. package/dist/dialect/abstractDialect.js.map +1 -1
  9. package/dist/dialect/abstractSqlDialect.d.ts +5 -6
  10. package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
  11. package/dist/dialect/abstractSqlDialect.js +14 -13
  12. package/dist/dialect/abstractSqlDialect.js.map +1 -1
  13. package/dist/dialect/dialectConfig.d.ts +17 -0
  14. package/dist/dialect/dialectConfig.d.ts.map +1 -0
  15. package/dist/dialect/dialectConfig.js +71 -0
  16. package/dist/dialect/dialectConfig.js.map +1 -0
  17. package/dist/dialect/index.d.ts +1 -0
  18. package/dist/dialect/index.d.ts.map +1 -1
  19. package/dist/dialect/index.js +1 -0
  20. package/dist/dialect/index.js.map +1 -1
  21. package/dist/entity/decorator/definition.d.ts.map +1 -1
  22. package/dist/entity/decorator/definition.js +2 -1
  23. package/dist/entity/decorator/definition.js.map +1 -1
  24. package/dist/entity/decorator/index-decorator.d.ts +36 -0
  25. package/dist/entity/decorator/index-decorator.d.ts.map +1 -0
  26. package/dist/entity/decorator/index-decorator.js +51 -0
  27. package/dist/entity/decorator/index-decorator.js.map +1 -0
  28. package/dist/entity/decorator/index.d.ts +1 -0
  29. package/dist/entity/decorator/index.d.ts.map +1 -1
  30. package/dist/entity/decorator/index.js +1 -0
  31. package/dist/entity/decorator/index.js.map +1 -1
  32. package/dist/maria/mariaDialect.d.ts +2 -1
  33. package/dist/maria/mariaDialect.d.ts.map +1 -1
  34. package/dist/maria/mariaDialect.js +3 -0
  35. package/dist/maria/mariaDialect.js.map +1 -1
  36. package/dist/migrate/builder/columnBuilder.d.ts +75 -0
  37. package/dist/migrate/builder/columnBuilder.d.ts.map +1 -0
  38. package/dist/migrate/builder/columnBuilder.js +149 -0
  39. package/dist/migrate/builder/columnBuilder.js.map +1 -0
  40. package/dist/migrate/builder/expressions.d.ts +87 -0
  41. package/dist/migrate/builder/expressions.d.ts.map +1 -0
  42. package/dist/migrate/builder/expressions.js +150 -0
  43. package/dist/migrate/builder/expressions.js.map +1 -0
  44. package/dist/migrate/builder/index.d.ts +6 -0
  45. package/dist/migrate/builder/index.d.ts.map +1 -0
  46. package/dist/migrate/builder/index.js +6 -0
  47. package/dist/migrate/builder/index.js.map +1 -0
  48. package/dist/migrate/builder/migrationBuilder.d.ts +73 -0
  49. package/dist/migrate/builder/migrationBuilder.d.ts.map +1 -0
  50. package/dist/migrate/builder/migrationBuilder.js +326 -0
  51. package/dist/migrate/builder/migrationBuilder.js.map +1 -0
  52. package/dist/migrate/builder/tableBuilder.d.ts +51 -0
  53. package/dist/migrate/builder/tableBuilder.d.ts.map +1 -0
  54. package/dist/migrate/builder/tableBuilder.js +278 -0
  55. package/dist/migrate/builder/tableBuilder.js.map +1 -0
  56. package/dist/migrate/builder/types.d.ts +462 -0
  57. package/dist/migrate/builder/types.d.ts.map +1 -0
  58. package/dist/migrate/builder/types.js +8 -0
  59. package/dist/migrate/builder/types.js.map +1 -0
  60. package/dist/migrate/cli.d.ts +4 -6
  61. package/dist/migrate/cli.d.ts.map +1 -1
  62. package/dist/migrate/cli.js +166 -23
  63. package/dist/migrate/cli.js.map +1 -1
  64. package/dist/migrate/codegen/entityCodeGenerator.d.ts +137 -0
  65. package/dist/migrate/codegen/entityCodeGenerator.d.ts.map +1 -0
  66. package/dist/migrate/codegen/entityCodeGenerator.js +401 -0
  67. package/dist/migrate/codegen/entityCodeGenerator.js.map +1 -0
  68. package/dist/migrate/codegen/entityMerger.d.ts +111 -0
  69. package/dist/migrate/codegen/entityMerger.d.ts.map +1 -0
  70. package/dist/migrate/codegen/entityMerger.js +291 -0
  71. package/dist/migrate/codegen/entityMerger.js.map +1 -0
  72. package/dist/migrate/codegen/index.d.ts +10 -0
  73. package/dist/migrate/codegen/index.d.ts.map +1 -0
  74. package/dist/migrate/codegen/index.js +14 -0
  75. package/dist/migrate/codegen/index.js.map +1 -0
  76. package/dist/migrate/codegen/migrationCodeGenerator.d.ts +62 -0
  77. package/dist/migrate/codegen/migrationCodeGenerator.d.ts.map +1 -0
  78. package/dist/migrate/codegen/migrationCodeGenerator.js +356 -0
  79. package/dist/migrate/codegen/migrationCodeGenerator.js.map +1 -0
  80. package/dist/migrate/codegen/smartRelationDetector.d.ts +48 -0
  81. package/dist/migrate/codegen/smartRelationDetector.d.ts.map +1 -0
  82. package/dist/migrate/codegen/smartRelationDetector.js +135 -0
  83. package/dist/migrate/codegen/smartRelationDetector.js.map +1 -0
  84. package/dist/migrate/drift/driftDetector.d.ts +81 -0
  85. package/dist/migrate/drift/driftDetector.d.ts.map +1 -0
  86. package/dist/migrate/drift/driftDetector.js +248 -0
  87. package/dist/migrate/drift/driftDetector.js.map +1 -0
  88. package/dist/migrate/drift/index.d.ts +7 -0
  89. package/dist/migrate/drift/index.d.ts.map +1 -0
  90. package/dist/migrate/drift/index.js +7 -0
  91. package/dist/migrate/drift/index.js.map +1 -0
  92. package/dist/migrate/generator/index.d.ts +1 -3
  93. package/dist/migrate/generator/index.d.ts.map +1 -1
  94. package/dist/migrate/generator/index.js +1 -3
  95. package/dist/migrate/generator/index.js.map +1 -1
  96. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +29 -3
  97. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -1
  98. package/dist/migrate/generator/mongoSchemaGenerator.js +86 -4
  99. package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -1
  100. package/dist/migrate/index.d.ts +7 -8
  101. package/dist/migrate/index.d.ts.map +1 -1
  102. package/dist/migrate/index.js +11 -9
  103. package/dist/migrate/index.js.map +1 -1
  104. package/dist/migrate/introspection/baseSqlIntrospector.d.ts +28 -0
  105. package/dist/migrate/introspection/baseSqlIntrospector.d.ts.map +1 -0
  106. package/dist/migrate/introspection/baseSqlIntrospector.js +135 -0
  107. package/dist/migrate/introspection/baseSqlIntrospector.js.map +1 -0
  108. package/dist/migrate/introspection/mongoIntrospector.d.ts +6 -0
  109. package/dist/migrate/introspection/mongoIntrospector.d.ts.map +1 -1
  110. package/dist/migrate/introspection/mongoIntrospector.js +54 -0
  111. package/dist/migrate/introspection/mongoIntrospector.js.map +1 -1
  112. package/dist/migrate/introspection/mysqlIntrospector.d.ts +2 -1
  113. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -1
  114. package/dist/migrate/introspection/mysqlIntrospector.js +8 -6
  115. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -1
  116. package/dist/migrate/introspection/postgresIntrospector.d.ts +2 -1
  117. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -1
  118. package/dist/migrate/introspection/postgresIntrospector.js +3 -1
  119. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -1
  120. package/dist/migrate/introspection/sqliteIntrospector.d.ts +2 -2
  121. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -1
  122. package/dist/migrate/introspection/sqliteIntrospector.js +3 -4
  123. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -1
  124. package/dist/migrate/migrator.d.ts +29 -0
  125. package/dist/migrate/migrator.d.ts.map +1 -1
  126. package/dist/migrate/migrator.js +31 -23
  127. package/dist/migrate/migrator.js.map +1 -1
  128. package/dist/migrate/schemaGenerator.d.ts +72 -22
  129. package/dist/migrate/schemaGenerator.d.ts.map +1 -1
  130. package/dist/migrate/schemaGenerator.js +385 -153
  131. package/dist/migrate/schemaGenerator.js.map +1 -1
  132. package/dist/migrate/sync/index.d.ts +7 -0
  133. package/dist/migrate/sync/index.d.ts.map +1 -0
  134. package/dist/migrate/sync/index.js +7 -0
  135. package/dist/migrate/sync/index.js.map +1 -0
  136. package/dist/migrate/sync/schemaSync.d.ts +132 -0
  137. package/dist/migrate/sync/schemaSync.d.ts.map +1 -0
  138. package/dist/migrate/sync/schemaSync.js +260 -0
  139. package/dist/migrate/sync/schemaSync.js.map +1 -0
  140. package/dist/mongo/mongoDialect.d.ts +2 -1
  141. package/dist/mongo/mongoDialect.d.ts.map +1 -1
  142. package/dist/mongo/mongoDialect.js +3 -0
  143. package/dist/mongo/mongoDialect.js.map +1 -1
  144. package/dist/mysql/mysqlDialect.d.ts +2 -0
  145. package/dist/mysql/mysqlDialect.d.ts.map +1 -1
  146. package/dist/mysql/mysqlDialect.js +3 -0
  147. package/dist/mysql/mysqlDialect.js.map +1 -1
  148. package/dist/postgres/postgresDialect.js +1 -1
  149. package/dist/postgres/postgresDialect.js.map +1 -1
  150. package/dist/schema/canonicalType.d.ts +42 -0
  151. package/dist/schema/canonicalType.d.ts.map +1 -0
  152. package/dist/schema/canonicalType.js +524 -0
  153. package/dist/schema/canonicalType.js.map +1 -0
  154. package/dist/schema/index.d.ts +28 -0
  155. package/dist/schema/index.d.ts.map +1 -0
  156. package/dist/schema/index.js +29 -0
  157. package/dist/schema/index.js.map +1 -0
  158. package/dist/schema/schemaAST.d.ts +155 -0
  159. package/dist/schema/schemaAST.d.ts.map +1 -0
  160. package/dist/schema/schemaAST.js +496 -0
  161. package/dist/schema/schemaAST.js.map +1 -0
  162. package/dist/schema/schemaASTBuilder.d.ts +58 -0
  163. package/dist/schema/schemaASTBuilder.d.ts.map +1 -0
  164. package/dist/schema/schemaASTBuilder.js +193 -0
  165. package/dist/schema/schemaASTBuilder.js.map +1 -0
  166. package/dist/schema/schemaASTDiffer.d.ts +84 -0
  167. package/dist/schema/schemaASTDiffer.d.ts.map +1 -0
  168. package/dist/schema/schemaASTDiffer.js +431 -0
  169. package/dist/schema/schemaASTDiffer.js.map +1 -0
  170. package/dist/schema/types.d.ts +347 -0
  171. package/dist/schema/types.d.ts.map +1 -0
  172. package/dist/schema/types.js +11 -0
  173. package/dist/schema/types.js.map +1 -0
  174. package/dist/sqlite/sqliteDialect.js +1 -1
  175. package/dist/sqlite/sqliteDialect.js.map +1 -1
  176. package/dist/sqlite/sqliteQuerierPool.js.map +1 -1
  177. package/dist/type/config.d.ts +6 -0
  178. package/dist/type/config.d.ts.map +1 -1
  179. package/dist/type/entity.d.ts +24 -0
  180. package/dist/type/entity.d.ts.map +1 -1
  181. package/dist/type/migration.d.ts +50 -4
  182. package/dist/type/migration.d.ts.map +1 -1
  183. package/dist/util/field.util.d.ts +0 -1
  184. package/dist/util/field.util.d.ts.map +1 -1
  185. package/dist/util/field.util.js +8 -2
  186. package/dist/util/field.util.js.map +1 -1
  187. package/dist/util/logger.d.ts.map +1 -1
  188. package/dist/util/logger.js +2 -1
  189. package/dist/util/logger.js.map +1 -1
  190. package/dist/util/string.util.d.ts +24 -0
  191. package/dist/util/string.util.d.ts.map +1 -1
  192. package/dist/util/string.util.js +57 -0
  193. package/dist/util/string.util.js.map +1 -1
  194. package/package.json +2 -2
  195. package/dist/migrate/generator/mysqlSchemaGenerator.d.ts +0 -15
  196. package/dist/migrate/generator/mysqlSchemaGenerator.d.ts.map +0 -1
  197. package/dist/migrate/generator/mysqlSchemaGenerator.js +0 -88
  198. package/dist/migrate/generator/mysqlSchemaGenerator.js.map +0 -1
  199. package/dist/migrate/generator/postgresSchemaGenerator.d.ts +0 -19
  200. package/dist/migrate/generator/postgresSchemaGenerator.d.ts.map +0 -1
  201. package/dist/migrate/generator/postgresSchemaGenerator.js +0 -115
  202. package/dist/migrate/generator/postgresSchemaGenerator.js.map +0 -1
  203. package/dist/migrate/generator/sqliteSchemaGenerator.d.ts +0 -16
  204. package/dist/migrate/generator/sqliteSchemaGenerator.d.ts.map +0 -1
  205. package/dist/migrate/generator/sqliteSchemaGenerator.js +0 -74
  206. package/dist/migrate/generator/sqliteSchemaGenerator.js.map +0 -1
  207. package/dist/migrate/type.d.ts +0 -2
  208. package/dist/migrate/type.d.ts.map +0 -1
  209. package/dist/migrate/type.js +0 -2
  210. package/dist/migrate/type.js.map +0 -1
@@ -2,6 +2,9 @@ import SqlString from 'sqlstring';
2
2
  import { AbstractSqlDialect } from '../dialect/index.js';
3
3
  import { getMeta } from '../entity/index.js';
4
4
  export class MariaDialect extends AbstractSqlDialect {
5
+ constructor(namingStrategy) {
6
+ super('mariadb', namingStrategy);
7
+ }
5
8
  addValue(values, value) {
6
9
  if (value instanceof Date) {
7
10
  values.push(value);
@@ -1 +1 @@
1
- {"version":3,"file":"mariaDialect.js","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IACzC,QAAQ,CAAC,MAAiB,EAAE,KAAc;QACjD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEQ,MAAM,CAAI,GAAiB,EAAE,MAAe,EAAE,OAAgB,EAAE,IAAmB;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEQ,MAAM,CAAI,GAAiB,EAAE,MAAe,EAAE,aAAoC,EAAE,OAAU;QACrG,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAC/G,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,4BAA4B,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;YAC5B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEQ,MAAM,CAAC,KAAc;QAC5B,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"mariaDialect.js","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IAClD,YAAY,cAA+B;QACzC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnC,CAAC;IAEQ,QAAQ,CAAC,MAAiB,EAAE,KAAc;QACjD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEQ,MAAM,CAAI,GAAiB,EAAE,MAAe,EAAE,OAAgB,EAAE,IAAmB;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEQ,MAAM,CAAI,GAAiB,EAAE,MAAe,EAAE,aAAoC,EAAE,OAAU;QACrG,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAC/G,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,4BAA4B,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;YAC5B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEQ,MAAM,CAAC,KAAc;QAC5B,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Column Builder
3
+ *
4
+ * Fluent API for defining columns in migrations.
5
+ */
6
+ import type { CanonicalType, ForeignKeyAction } from '../../schema/types.js';
7
+ import type { BaseColumnOptions, FullColumnDefinition, IColumnBuilder, IForeignKeyBuilder } from './types.js';
8
+ /**
9
+ * Builder for column definitions with a fluent API.
10
+ * Columns are NOT NULL by default (safer).
11
+ */
12
+ export declare class ColumnBuilder implements IColumnBuilder, IForeignKeyBuilder {
13
+ private _name;
14
+ private _type;
15
+ private _nullable;
16
+ private _defaultValue?;
17
+ private _primaryKey;
18
+ private _autoIncrement;
19
+ private _unique;
20
+ private _comment?;
21
+ private _index?;
22
+ private _foreignKey?;
23
+ constructor(name: string, type: CanonicalType, options?: BaseColumnOptions);
24
+ /**
25
+ * Make the column nullable or not nullable.
26
+ */
27
+ nullable(value?: boolean): this;
28
+ /**
29
+ * Make the column NOT NULL.
30
+ */
31
+ notNullable(): this;
32
+ /**
33
+ * Set a default value for the column.
34
+ */
35
+ defaultValue(value: unknown): this;
36
+ /**
37
+ * Mark as primary key.
38
+ */
39
+ primaryKey(): this;
40
+ /**
41
+ * Enable auto-increment (for integer types).
42
+ */
43
+ autoIncrement(): this;
44
+ /**
45
+ * Add a unique constraint.
46
+ */
47
+ unique(): this;
48
+ /**
49
+ * Add a comment to the column.
50
+ */
51
+ comment(text: string): this;
52
+ /**
53
+ * Add an index on this column.
54
+ * @param name - Optional index name. If true, auto-generates name.
55
+ */
56
+ index(name?: string): this;
57
+ /**
58
+ * Add a foreign key reference.
59
+ * Returns a ForeignKeyBuilder for additional options.
60
+ */
61
+ references(table: string, column?: string): IForeignKeyBuilder;
62
+ /**
63
+ * Set ON DELETE action for foreign key.
64
+ */
65
+ onDelete(action: ForeignKeyAction): this;
66
+ /**
67
+ * Set ON UPDATE action for foreign key.
68
+ */
69
+ onUpdate(action: ForeignKeyAction): this;
70
+ /**
71
+ * Build and return the column definition.
72
+ */
73
+ build(): FullColumnDefinition;
74
+ }
75
+ //# sourceMappingURL=columnBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnBuilder.d.ts","sourceRoot":"","sources":["../../../src/migrate/builder/columnBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc,EAAE,kBAAkB;IACtE,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAC,CAAuB;gBAE/B,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,iBAAsB;IAuB9E;;OAEG;IACH,QAAQ,CAAC,KAAK,UAAO,GAAG,IAAI;IAK5B;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKlC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAK1B;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAO,GAAG,kBAAkB;IAU5D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAOxC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAOxC;;OAEG;IACH,KAAK,IAAI,oBAAoB;CAc9B"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Column Builder
3
+ *
4
+ * Fluent API for defining columns in migrations.
5
+ */
6
+ /**
7
+ * Builder for column definitions with a fluent API.
8
+ * Columns are NOT NULL by default (safer).
9
+ */
10
+ export class ColumnBuilder {
11
+ _name;
12
+ _type;
13
+ _nullable;
14
+ _defaultValue;
15
+ _primaryKey;
16
+ _autoIncrement;
17
+ _unique;
18
+ _comment;
19
+ _index;
20
+ _foreignKey;
21
+ constructor(name, type, options = {}) {
22
+ this._name = name;
23
+ this._type = type;
24
+ // Apply options with defaults (non-nullable by default)
25
+ this._nullable = options.nullable ?? false;
26
+ this._unique = options.unique ?? false;
27
+ this._primaryKey = options.primaryKey ?? false;
28
+ this._autoIncrement = options.autoIncrement ?? false;
29
+ this._defaultValue = options.defaultValue;
30
+ this._index = options.index;
31
+ this._comment = options.comment;
32
+ // Handle inline references option
33
+ if (options.references) {
34
+ this._foreignKey = {
35
+ table: options.references.table,
36
+ columns: [options.references.column ?? 'id'],
37
+ onDelete: options.references.onDelete ?? 'NO ACTION',
38
+ onUpdate: options.references.onUpdate ?? 'NO ACTION',
39
+ };
40
+ }
41
+ }
42
+ /**
43
+ * Make the column nullable or not nullable.
44
+ */
45
+ nullable(value = true) {
46
+ this._nullable = value;
47
+ return this;
48
+ }
49
+ /**
50
+ * Make the column NOT NULL.
51
+ */
52
+ notNullable() {
53
+ this._nullable = false;
54
+ return this;
55
+ }
56
+ /**
57
+ * Set a default value for the column.
58
+ */
59
+ defaultValue(value) {
60
+ this._defaultValue = value;
61
+ return this;
62
+ }
63
+ /**
64
+ * Mark as primary key.
65
+ */
66
+ primaryKey() {
67
+ this._primaryKey = true;
68
+ this._nullable = false;
69
+ return this;
70
+ }
71
+ /**
72
+ * Enable auto-increment (for integer types).
73
+ */
74
+ autoIncrement() {
75
+ this._autoIncrement = true;
76
+ return this;
77
+ }
78
+ /**
79
+ * Add a unique constraint.
80
+ */
81
+ unique() {
82
+ this._unique = true;
83
+ return this;
84
+ }
85
+ /**
86
+ * Add a comment to the column.
87
+ */
88
+ comment(text) {
89
+ this._comment = text;
90
+ return this;
91
+ }
92
+ /**
93
+ * Add an index on this column.
94
+ * @param name - Optional index name. If true, auto-generates name.
95
+ */
96
+ index(name) {
97
+ this._index = name ?? true;
98
+ return this;
99
+ }
100
+ /**
101
+ * Add a foreign key reference.
102
+ * Returns a ForeignKeyBuilder for additional options.
103
+ */
104
+ references(table, column = 'id') {
105
+ this._foreignKey = {
106
+ table,
107
+ columns: [column],
108
+ onDelete: 'NO ACTION',
109
+ onUpdate: 'NO ACTION',
110
+ };
111
+ return this;
112
+ }
113
+ /**
114
+ * Set ON DELETE action for foreign key.
115
+ */
116
+ onDelete(action) {
117
+ if (this._foreignKey) {
118
+ this._foreignKey.onDelete = action;
119
+ }
120
+ return this;
121
+ }
122
+ /**
123
+ * Set ON UPDATE action for foreign key.
124
+ */
125
+ onUpdate(action) {
126
+ if (this._foreignKey) {
127
+ this._foreignKey.onUpdate = action;
128
+ }
129
+ return this;
130
+ }
131
+ /**
132
+ * Build and return the column definition.
133
+ */
134
+ build() {
135
+ return {
136
+ name: this._name,
137
+ type: this._type,
138
+ nullable: this._nullable,
139
+ defaultValue: this._defaultValue,
140
+ primaryKey: this._primaryKey,
141
+ autoIncrement: this._autoIncrement,
142
+ unique: this._unique,
143
+ comment: this._comment,
144
+ index: this._index,
145
+ foreignKey: this._foreignKey,
146
+ };
147
+ }
148
+ }
149
+ //# sourceMappingURL=columnBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnBuilder.js","sourceRoot":"","sources":["../../../src/migrate/builder/columnBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * SQL Expressions
3
+ *
4
+ * Type-safe SQL expressions for default values and other uses.
5
+ * Provides a `t` helper with common expressions.
6
+ */
7
+ /**
8
+ * Represents a raw SQL expression (not a literal value).
9
+ */
10
+ export declare class SqlExpression {
11
+ readonly sql: string;
12
+ constructor(sql: string);
13
+ toString(): string;
14
+ /**
15
+ * Check if a value is a SQL expression.
16
+ */
17
+ static isExpression(value: unknown): value is SqlExpression;
18
+ }
19
+ /**
20
+ * Helper object for common SQL expressions.
21
+ * Use in migrations: `table.timestamp('createdAt').defaultValue(t.now())`
22
+ */
23
+ export declare const t: {
24
+ /**
25
+ * Current timestamp (NOW() or CURRENT_TIMESTAMP depending on dialect).
26
+ */
27
+ now(): SqlExpression;
28
+ /**
29
+ * Current date (CURRENT_DATE).
30
+ */
31
+ currentDate(): SqlExpression;
32
+ /**
33
+ * Current time (CURRENT_TIME).
34
+ */
35
+ currentTime(): SqlExpression;
36
+ /**
37
+ * NULL value.
38
+ */
39
+ null(): SqlExpression;
40
+ /**
41
+ * Boolean true.
42
+ */
43
+ true(): SqlExpression;
44
+ /**
45
+ * Boolean false.
46
+ */
47
+ false(): SqlExpression;
48
+ /**
49
+ * Generate UUID (Postgres: gen_random_uuid(), MySQL: UUID()).
50
+ */
51
+ uuid(): SqlExpression;
52
+ /**
53
+ * Auto-generate UUID for MySQL.
54
+ */
55
+ mysqlUuid(): SqlExpression;
56
+ /**
57
+ * Raw SQL expression.
58
+ * Use for custom expressions not covered by helpers.
59
+ */
60
+ raw(sql: string): SqlExpression;
61
+ /**
62
+ * String literal with proper escaping.
63
+ */
64
+ literal(value: string): SqlExpression;
65
+ /**
66
+ * Numeric literal.
67
+ */
68
+ number(value: number): SqlExpression;
69
+ /**
70
+ * Empty JSON object.
71
+ */
72
+ emptyObject(): SqlExpression;
73
+ /**
74
+ * Empty JSON array.
75
+ */
76
+ emptyArray(): SqlExpression;
77
+ /**
78
+ * MySQL: ON UPDATE CURRENT_TIMESTAMP.
79
+ */
80
+ onUpdateNow(): SqlExpression;
81
+ };
82
+ /**
83
+ * Format a default value for SQL.
84
+ * Handles SqlExpression vs literal values.
85
+ */
86
+ export declare function formatDefaultValue(value: unknown): string;
87
+ //# sourceMappingURL=expressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/migrate/builder/expressions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,aAAa;IACZ,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEhC,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa;CAG5D;AAED;;;GAGG;AACH,eAAO,MAAM,CAAC;IACZ;;OAEG;WACI,aAAa;IAIpB;;OAEG;mBACY,aAAa;IAI5B;;OAEG;mBACY,aAAa;IAI5B;;OAEG;YACK,aAAa;IAIrB;;OAEG;YACK,aAAa;IAIrB;;OAEG;aACM,aAAa;IAItB;;OAEG;YACK,aAAa;IAIrB;;OAEG;iBACU,aAAa;IAI1B;;;OAGG;aACM,MAAM,GAAG,aAAa;IAI/B;;OAEG;mBACY,MAAM,GAAG,aAAa;IAMrC;;OAEG;kBACW,MAAM,GAAG,aAAa;IAIpC;;OAEG;mBACY,aAAa;IAI5B;;OAEG;kBACW,aAAa;IAI3B;;OAEG;mBACY,aAAa;CAG7B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAkCzD"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * SQL Expressions
3
+ *
4
+ * Type-safe SQL expressions for default values and other uses.
5
+ * Provides a `t` helper with common expressions.
6
+ */
7
+ /**
8
+ * Represents a raw SQL expression (not a literal value).
9
+ */
10
+ export class SqlExpression {
11
+ sql;
12
+ constructor(sql) {
13
+ this.sql = sql;
14
+ }
15
+ toString() {
16
+ return this.sql;
17
+ }
18
+ /**
19
+ * Check if a value is a SQL expression.
20
+ */
21
+ static isExpression(value) {
22
+ return value instanceof SqlExpression;
23
+ }
24
+ }
25
+ /**
26
+ * Helper object for common SQL expressions.
27
+ * Use in migrations: `table.timestamp('createdAt').defaultValue(t.now())`
28
+ */
29
+ export const t = {
30
+ /**
31
+ * Current timestamp (NOW() or CURRENT_TIMESTAMP depending on dialect).
32
+ */
33
+ now() {
34
+ return new SqlExpression('CURRENT_TIMESTAMP');
35
+ },
36
+ /**
37
+ * Current date (CURRENT_DATE).
38
+ */
39
+ currentDate() {
40
+ return new SqlExpression('CURRENT_DATE');
41
+ },
42
+ /**
43
+ * Current time (CURRENT_TIME).
44
+ */
45
+ currentTime() {
46
+ return new SqlExpression('CURRENT_TIME');
47
+ },
48
+ /**
49
+ * NULL value.
50
+ */
51
+ null() {
52
+ return new SqlExpression('NULL');
53
+ },
54
+ /**
55
+ * Boolean true.
56
+ */
57
+ true() {
58
+ return new SqlExpression('TRUE');
59
+ },
60
+ /**
61
+ * Boolean false.
62
+ */
63
+ false() {
64
+ return new SqlExpression('FALSE');
65
+ },
66
+ /**
67
+ * Generate UUID (Postgres: gen_random_uuid(), MySQL: UUID()).
68
+ */
69
+ uuid() {
70
+ return new SqlExpression('gen_random_uuid()');
71
+ },
72
+ /**
73
+ * Auto-generate UUID for MySQL.
74
+ */
75
+ mysqlUuid() {
76
+ return new SqlExpression('UUID()');
77
+ },
78
+ /**
79
+ * Raw SQL expression.
80
+ * Use for custom expressions not covered by helpers.
81
+ */
82
+ raw(sql) {
83
+ return new SqlExpression(sql);
84
+ },
85
+ /**
86
+ * String literal with proper escaping.
87
+ */
88
+ literal(value) {
89
+ // Escape single quotes by doubling them
90
+ const escaped = value.replace(/'/g, "''");
91
+ return new SqlExpression(`'${escaped}'`);
92
+ },
93
+ /**
94
+ * Numeric literal.
95
+ */
96
+ number(value) {
97
+ return new SqlExpression(String(value));
98
+ },
99
+ /**
100
+ * Empty JSON object.
101
+ */
102
+ emptyObject() {
103
+ return new SqlExpression("'{}'::jsonb");
104
+ },
105
+ /**
106
+ * Empty JSON array.
107
+ */
108
+ emptyArray() {
109
+ return new SqlExpression("'[]'::jsonb");
110
+ },
111
+ /**
112
+ * MySQL: ON UPDATE CURRENT_TIMESTAMP.
113
+ */
114
+ onUpdateNow() {
115
+ return new SqlExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP');
116
+ },
117
+ };
118
+ /**
119
+ * Format a default value for SQL.
120
+ * Handles SqlExpression vs literal values.
121
+ */
122
+ export function formatDefaultValue(value) {
123
+ if (value === undefined || value === null) {
124
+ return 'NULL';
125
+ }
126
+ if (SqlExpression.isExpression(value)) {
127
+ return value.sql;
128
+ }
129
+ if (typeof value === 'string') {
130
+ // Escape single quotes
131
+ const escaped = value.replace(/'/g, "''");
132
+ return `'${escaped}'`;
133
+ }
134
+ if (typeof value === 'number') {
135
+ return String(value);
136
+ }
137
+ if (typeof value === 'boolean') {
138
+ return value ? 'TRUE' : 'FALSE';
139
+ }
140
+ if (value instanceof Date) {
141
+ return `'${value.toISOString()}'`;
142
+ }
143
+ if (typeof value === 'object') {
144
+ // JSON value
145
+ const json = JSON.stringify(value).replace(/'/g, "''");
146
+ return `'${json}'`;
147
+ }
148
+ return String(value);
149
+ }
150
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/migrate/builder/expressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './columnBuilder.js';
2
+ export * from './expressions.js';
3
+ export * from './migrationBuilder.js';
4
+ export * from './tableBuilder.js';
5
+ export * from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrate/builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './columnBuilder.js';
2
+ export * from './expressions.js';
3
+ export * from './migrationBuilder.js';
4
+ export * from './tableBuilder.js';
5
+ export * from './types.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrate/builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Migration Builder
3
+ *
4
+ * The main builder class for defining type-safe migrations.
5
+ * Records operations and generates SQL via the SchemaGenerator.
6
+ */
7
+ import type { ForeignKeyAction } from '../../schema/types.js';
8
+ import type { SchemaGenerator } from '../../type/migration.js';
9
+ import type { SqlQuerier } from '../../type/querier.js';
10
+ import type { AnyMigrationOperation, IAlterTableBuilder, IColumnBuilder, IMigrationBuilder, ITableBuilder } from './types.js';
11
+ /**
12
+ * Options for the migration builder.
13
+ */
14
+ export interface MigrationBuilderOptions {
15
+ /** Whether to execute SQL immediately or just record operations */
16
+ dryRun?: boolean;
17
+ }
18
+ /**
19
+ * Main migration builder with fluent API.
20
+ * Records operations and optionally executes them via a querier.
21
+ */
22
+ export declare class MigrationBuilder implements IMigrationBuilder {
23
+ private operations;
24
+ private querier?;
25
+ private sqlGenerator?;
26
+ private dryRun;
27
+ constructor(querier?: SqlQuerier, sqlGenerator?: SchemaGenerator, options?: MigrationBuilderOptions);
28
+ createTable(name: string, callback: (table: ITableBuilder) => void): Promise<void>;
29
+ dropTable(name: string, options?: {
30
+ ifExists?: boolean;
31
+ cascade?: boolean;
32
+ }): Promise<void>;
33
+ renameTable(oldName: string, newName: string): Promise<void>;
34
+ alterTable(name: string, callback: (table: IAlterTableBuilder) => void): Promise<void>;
35
+ addColumn(tableName: string, columnName: string, callback: (column: IColumnBuilder) => void): Promise<void>;
36
+ dropColumn(tableName: string, columnName: string): Promise<void>;
37
+ alterColumn(tableName: string, columnName: string, callback: (column: IColumnBuilder) => void): Promise<void>;
38
+ renameColumn(tableName: string, oldName: string, newName: string): Promise<void>;
39
+ createIndex(tableName: string, columns: string[], options?: {
40
+ name?: string;
41
+ unique?: boolean;
42
+ where?: string;
43
+ }): Promise<void>;
44
+ dropIndex(tableName: string, indexName: string): Promise<void>;
45
+ addForeignKey(tableName: string, columns: string[], target: {
46
+ table: string;
47
+ columns: string[];
48
+ }, options?: {
49
+ name?: string;
50
+ onDelete?: ForeignKeyAction;
51
+ onUpdate?: ForeignKeyAction;
52
+ }): Promise<void>;
53
+ dropForeignKey(tableName: string, constraintName: string): Promise<void>;
54
+ raw(sql: string): Promise<void>;
55
+ getOperations(): AnyMigrationOperation[];
56
+ /**
57
+ * Internal method to record an operation and optionally execute it.
58
+ * @internal
59
+ */
60
+ recordOperation(operation: AnyMigrationOperation): Promise<void>;
61
+ /**
62
+ * Internal method to record an operation synchronously (for builders).
63
+ * @internal
64
+ */
65
+ recordOperationSync(operation: AnyMigrationOperation): void;
66
+ private execute;
67
+ private operationToSql;
68
+ }
69
+ /**
70
+ * Create a migration builder for dry-run (recording only).
71
+ */
72
+ export declare function createDryRunBuilder(): MigrationBuilder;
73
+ //# sourceMappingURL=migrationBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrationBuilder.d.ts","sourceRoot":"","sources":["../../../src/migrate/builder/migrationBuilder.ts"],"names":[],"mappings":"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"}