uql-orm 0.9.3 → 0.9.5

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 (657) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README.md +62 -683
  3. package/dist/browser/uql-browser.min.js +4791 -2940
  4. package/dist/browser/uql-browser.min.js.map +1 -1
  5. package/package.json +4 -4
  6. package/dist/browser/http/bus.d.ts +0 -4
  7. package/dist/browser/http/bus.d.ts.map +0 -1
  8. package/dist/browser/http/bus.js +0 -14
  9. package/dist/browser/http/bus.js.map +0 -1
  10. package/dist/browser/http/http.d.ts +0 -7
  11. package/dist/browser/http/http.d.ts.map +0 -1
  12. package/dist/browser/http/http.js +0 -45
  13. package/dist/browser/http/http.js.map +0 -1
  14. package/dist/browser/http/index.d.ts +0 -3
  15. package/dist/browser/http/index.d.ts.map +0 -1
  16. package/dist/browser/http/index.js +0 -3
  17. package/dist/browser/http/index.js.map +0 -1
  18. package/dist/browser/index.d.ts +0 -5
  19. package/dist/browser/index.d.ts.map +0 -1
  20. package/dist/browser/index.js +0 -5
  21. package/dist/browser/index.js.map +0 -1
  22. package/dist/browser/options.d.ts +0 -5
  23. package/dist/browser/options.d.ts.map +0 -1
  24. package/dist/browser/options.js +0 -14
  25. package/dist/browser/options.js.map +0 -1
  26. package/dist/browser/querier/httpQuerier.d.ts +0 -20
  27. package/dist/browser/querier/httpQuerier.d.ts.map +0 -1
  28. package/dist/browser/querier/httpQuerier.js +0 -68
  29. package/dist/browser/querier/httpQuerier.js.map +0 -1
  30. package/dist/browser/querier/index.d.ts +0 -3
  31. package/dist/browser/querier/index.d.ts.map +0 -1
  32. package/dist/browser/querier/index.js +0 -3
  33. package/dist/browser/querier/index.js.map +0 -1
  34. package/dist/browser/querier/querier.util.d.ts +0 -3
  35. package/dist/browser/querier/querier.util.d.ts.map +0 -1
  36. package/dist/browser/querier/querier.util.js +0 -17
  37. package/dist/browser/querier/querier.util.js.map +0 -1
  38. package/dist/browser/type/clientQuerier.d.ts +0 -24
  39. package/dist/browser/type/clientQuerier.d.ts.map +0 -1
  40. package/dist/browser/type/clientQuerier.js +0 -2
  41. package/dist/browser/type/clientQuerier.js.map +0 -1
  42. package/dist/browser/type/clientQuerierPool.d.ts +0 -5
  43. package/dist/browser/type/clientQuerierPool.d.ts.map +0 -1
  44. package/dist/browser/type/clientQuerierPool.js +0 -2
  45. package/dist/browser/type/clientQuerierPool.js.map +0 -1
  46. package/dist/browser/type/index.d.ts +0 -4
  47. package/dist/browser/type/index.d.ts.map +0 -1
  48. package/dist/browser/type/index.js +0 -4
  49. package/dist/browser/type/index.js.map +0 -1
  50. package/dist/browser/type/request.d.ts +0 -29
  51. package/dist/browser/type/request.d.ts.map +0 -1
  52. package/dist/browser/type/request.js +0 -2
  53. package/dist/browser/type/request.js.map +0 -1
  54. package/dist/bunSql/bunSql.util.d.ts +0 -30
  55. package/dist/bunSql/bunSql.util.d.ts.map +0 -1
  56. package/dist/bunSql/bunSql.util.js +0 -101
  57. package/dist/bunSql/bunSql.util.js.map +0 -1
  58. package/dist/bunSql/bunSqlPostgresDialect.d.ts +0 -12
  59. package/dist/bunSql/bunSqlPostgresDialect.d.ts.map +0 -1
  60. package/dist/bunSql/bunSqlPostgresDialect.js +0 -21
  61. package/dist/bunSql/bunSqlPostgresDialect.js.map +0 -1
  62. package/dist/bunSql/bunSqlQuerier.d.ts +0 -14
  63. package/dist/bunSql/bunSqlQuerier.d.ts.map +0 -1
  64. package/dist/bunSql/bunSqlQuerier.js +0 -37
  65. package/dist/bunSql/bunSqlQuerier.js.map +0 -1
  66. package/dist/bunSql/bunSqlQuerierPool.d.ts +0 -19
  67. package/dist/bunSql/bunSqlQuerierPool.d.ts.map +0 -1
  68. package/dist/bunSql/bunSqlQuerierPool.js +0 -58
  69. package/dist/bunSql/bunSqlQuerierPool.js.map +0 -1
  70. package/dist/bunSql/bunSqliteDialect.d.ts +0 -7
  71. package/dist/bunSql/bunSqliteDialect.d.ts.map +0 -1
  72. package/dist/bunSql/bunSqliteDialect.js +0 -7
  73. package/dist/bunSql/bunSqliteDialect.js.map +0 -1
  74. package/dist/bunSql/index.d.ts +0 -5
  75. package/dist/bunSql/index.d.ts.map +0 -1
  76. package/dist/bunSql/index.js +0 -5
  77. package/dist/bunSql/index.js.map +0 -1
  78. package/dist/cockroachdb/cockroachDialect.d.ts +0 -15
  79. package/dist/cockroachdb/cockroachDialect.d.ts.map +0 -1
  80. package/dist/cockroachdb/cockroachDialect.js +0 -14
  81. package/dist/cockroachdb/cockroachDialect.js.map +0 -1
  82. package/dist/cockroachdb/crdbQuerier.d.ts +0 -9
  83. package/dist/cockroachdb/crdbQuerier.d.ts.map +0 -1
  84. package/dist/cockroachdb/crdbQuerier.js +0 -7
  85. package/dist/cockroachdb/crdbQuerier.js.map +0 -1
  86. package/dist/cockroachdb/crdbQuerierPool.d.ts +0 -14
  87. package/dist/cockroachdb/crdbQuerierPool.d.ts.map +0 -1
  88. package/dist/cockroachdb/crdbQuerierPool.js +0 -18
  89. package/dist/cockroachdb/crdbQuerierPool.js.map +0 -1
  90. package/dist/cockroachdb/index.d.ts +0 -4
  91. package/dist/cockroachdb/index.d.ts.map +0 -1
  92. package/dist/cockroachdb/index.js +0 -4
  93. package/dist/cockroachdb/index.js.map +0 -1
  94. package/dist/d1/d1Querier.d.ts +0 -46
  95. package/dist/d1/d1Querier.d.ts.map +0 -1
  96. package/dist/d1/d1Querier.js +0 -30
  97. package/dist/d1/d1Querier.js.map +0 -1
  98. package/dist/d1/d1QuerierPool.d.ts +0 -11
  99. package/dist/d1/d1QuerierPool.d.ts.map +0 -1
  100. package/dist/d1/d1QuerierPool.js +0 -17
  101. package/dist/d1/d1QuerierPool.js.map +0 -1
  102. package/dist/d1/d1SqliteDialect.d.ts +0 -10
  103. package/dist/d1/d1SqliteDialect.d.ts.map +0 -1
  104. package/dist/d1/d1SqliteDialect.js +0 -10
  105. package/dist/d1/d1SqliteDialect.js.map +0 -1
  106. package/dist/d1/index.d.ts +0 -4
  107. package/dist/d1/index.d.ts.map +0 -1
  108. package/dist/d1/index.js +0 -4
  109. package/dist/d1/index.js.map +0 -1
  110. package/dist/dialect/abstractDialect.d.ts +0 -32
  111. package/dist/dialect/abstractDialect.d.ts.map +0 -1
  112. package/dist/dialect/abstractDialect.js +0 -39
  113. package/dist/dialect/abstractDialect.js.map +0 -1
  114. package/dist/dialect/abstractSqlDialect.d.ts +0 -233
  115. package/dist/dialect/abstractSqlDialect.d.ts.map +0 -1
  116. package/dist/dialect/abstractSqlDialect.js +0 -1332
  117. package/dist/dialect/abstractSqlDialect.js.map +0 -1
  118. package/dist/dialect/index.d.ts +0 -9
  119. package/dist/dialect/index.d.ts.map +0 -1
  120. package/dist/dialect/index.js +0 -9
  121. package/dist/dialect/index.js.map +0 -1
  122. package/dist/dialect/jsonArrayElemMatchUtils.d.ts +0 -10
  123. package/dist/dialect/jsonArrayElemMatchUtils.d.ts.map +0 -1
  124. package/dist/dialect/jsonArrayElemMatchUtils.js +0 -24
  125. package/dist/dialect/jsonArrayElemMatchUtils.js.map +0 -1
  126. package/dist/dialect/mysqlLikeSqlDialect.d.ts +0 -36
  127. package/dist/dialect/mysqlLikeSqlDialect.d.ts.map +0 -1
  128. package/dist/dialect/mysqlLikeSqlDialect.js +0 -84
  129. package/dist/dialect/mysqlLikeSqlDialect.js.map +0 -1
  130. package/dist/dialect/queryContext.d.ts +0 -49
  131. package/dist/dialect/queryContext.d.ts.map +0 -1
  132. package/dist/dialect/queryContext.js +0 -65
  133. package/dist/dialect/queryContext.js.map +0 -1
  134. package/dist/entity/decorator/entity.d.ts +0 -3
  135. package/dist/entity/decorator/entity.d.ts.map +0 -1
  136. package/dist/entity/decorator/entity.js +0 -7
  137. package/dist/entity/decorator/entity.js.map +0 -1
  138. package/dist/entity/decorator/field.d.ts +0 -3
  139. package/dist/entity/decorator/field.d.ts.map +0 -1
  140. package/dist/entity/decorator/field.js +0 -8
  141. package/dist/entity/decorator/field.js.map +0 -1
  142. package/dist/entity/decorator/hook.d.ts +0 -8
  143. package/dist/entity/decorator/hook.d.ts.map +0 -1
  144. package/dist/entity/decorator/hook.js +0 -15
  145. package/dist/entity/decorator/hook.js.map +0 -1
  146. package/dist/entity/decorator/id.d.ts +0 -3
  147. package/dist/entity/decorator/id.d.ts.map +0 -1
  148. package/dist/entity/decorator/id.js +0 -8
  149. package/dist/entity/decorator/id.js.map +0 -1
  150. package/dist/entity/decorator/index-decorator.d.ts +0 -37
  151. package/dist/entity/decorator/index-decorator.d.ts.map +0 -1
  152. package/dist/entity/decorator/index-decorator.js +0 -27
  153. package/dist/entity/decorator/index-decorator.js.map +0 -1
  154. package/dist/entity/decorator/index.d.ts +0 -8
  155. package/dist/entity/decorator/index.d.ts.map +0 -1
  156. package/dist/entity/decorator/index.js +0 -8
  157. package/dist/entity/decorator/index.js.map +0 -1
  158. package/dist/entity/decorator/relation.d.ts +0 -9
  159. package/dist/entity/decorator/relation.d.ts.map +0 -1
  160. package/dist/entity/decorator/relation.js +0 -20
  161. package/dist/entity/decorator/relation.js.map +0 -1
  162. package/dist/entity/index.d.ts +0 -2
  163. package/dist/entity/index.d.ts.map +0 -1
  164. package/dist/entity/index.js +0 -2
  165. package/dist/entity/index.js.map +0 -1
  166. package/dist/entity/metadata/definition.d.ts +0 -16
  167. package/dist/entity/metadata/definition.d.ts.map +0 -1
  168. package/dist/entity/metadata/definition.js +0 -309
  169. package/dist/entity/metadata/definition.js.map +0 -1
  170. package/dist/entity/test-helpers.d.ts +0 -4
  171. package/dist/entity/test-helpers.d.ts.map +0 -1
  172. package/dist/entity/test-helpers.js +0 -15
  173. package/dist/entity/test-helpers.js.map +0 -1
  174. package/dist/express/index.d.ts +0 -3
  175. package/dist/express/index.d.ts.map +0 -1
  176. package/dist/express/index.js +0 -3
  177. package/dist/express/index.js.map +0 -1
  178. package/dist/express/querierMiddleware.d.ts +0 -26
  179. package/dist/express/querierMiddleware.d.ts.map +0 -1
  180. package/dist/express/querierMiddleware.js +0 -143
  181. package/dist/express/querierMiddleware.js.map +0 -1
  182. package/dist/express/query.util.d.ts +0 -7
  183. package/dist/express/query.util.d.ts.map +0 -1
  184. package/dist/express/query.util.js +0 -27
  185. package/dist/express/query.util.js.map +0 -1
  186. package/dist/index.d.ts +0 -8
  187. package/dist/index.d.ts.map +0 -1
  188. package/dist/index.js +0 -8
  189. package/dist/index.js.map +0 -1
  190. package/dist/libsql/index.d.ts +0 -4
  191. package/dist/libsql/index.d.ts.map +0 -1
  192. package/dist/libsql/index.js +0 -4
  193. package/dist/libsql/index.js.map +0 -1
  194. package/dist/libsql/libsqlDialect.d.ts +0 -10
  195. package/dist/libsql/libsqlDialect.d.ts.map +0 -1
  196. package/dist/libsql/libsqlDialect.js +0 -10
  197. package/dist/libsql/libsqlDialect.js.map +0 -1
  198. package/dist/libsql/libsqlQuerier.d.ts +0 -24
  199. package/dist/libsql/libsqlQuerier.d.ts.map +0 -1
  200. package/dist/libsql/libsqlQuerier.js +0 -76
  201. package/dist/libsql/libsqlQuerier.js.map +0 -1
  202. package/dist/libsql/libsqlQuerierPool.d.ts +0 -20
  203. package/dist/libsql/libsqlQuerierPool.d.ts.map +0 -1
  204. package/dist/libsql/libsqlQuerierPool.js +0 -40
  205. package/dist/libsql/libsqlQuerierPool.js.map +0 -1
  206. package/dist/maria/index.d.ts +0 -4
  207. package/dist/maria/index.d.ts.map +0 -1
  208. package/dist/maria/index.js +0 -4
  209. package/dist/maria/index.js.map +0 -1
  210. package/dist/maria/mariaDialect.d.ts +0 -16
  211. package/dist/maria/mariaDialect.d.ts.map +0 -1
  212. package/dist/maria/mariaDialect.js +0 -56
  213. package/dist/maria/mariaDialect.js.map +0 -1
  214. package/dist/maria/mariadbQuerier.d.ts +0 -12
  215. package/dist/maria/mariadbQuerier.d.ts.map +0 -1
  216. package/dist/maria/mariadbQuerier.js +0 -31
  217. package/dist/maria/mariadbQuerier.js.map +0 -1
  218. package/dist/maria/mariadbQuerierPool.d.ts +0 -14
  219. package/dist/maria/mariadbQuerierPool.d.ts.map +0 -1
  220. package/dist/maria/mariadbQuerierPool.js +0 -18
  221. package/dist/maria/mariadbQuerierPool.js.map +0 -1
  222. package/dist/migrate/acquireQuerierForMigrations.d.ts +0 -9
  223. package/dist/migrate/acquireQuerierForMigrations.d.ts.map +0 -1
  224. package/dist/migrate/acquireQuerierForMigrations.js +0 -10
  225. package/dist/migrate/acquireQuerierForMigrations.js.map +0 -1
  226. package/dist/migrate/assertCliConfig.d.ts +0 -6
  227. package/dist/migrate/assertCliConfig.d.ts.map +0 -1
  228. package/dist/migrate/assertCliConfig.js +0 -31
  229. package/dist/migrate/assertCliConfig.js.map +0 -1
  230. package/dist/migrate/bin.d.ts +0 -3
  231. package/dist/migrate/bin.d.ts.map +0 -1
  232. package/dist/migrate/bin.js +0 -7
  233. package/dist/migrate/bin.js.map +0 -1
  234. package/dist/migrate/builder/columnBuilder.d.ts +0 -79
  235. package/dist/migrate/builder/columnBuilder.d.ts.map +0 -1
  236. package/dist/migrate/builder/columnBuilder.js +0 -159
  237. package/dist/migrate/builder/columnBuilder.js.map +0 -1
  238. package/dist/migrate/builder/expressions.d.ts +0 -87
  239. package/dist/migrate/builder/expressions.d.ts.map +0 -1
  240. package/dist/migrate/builder/expressions.js +0 -150
  241. package/dist/migrate/builder/expressions.js.map +0 -1
  242. package/dist/migrate/builder/index.d.ts +0 -6
  243. package/dist/migrate/builder/index.d.ts.map +0 -1
  244. package/dist/migrate/builder/index.js +0 -6
  245. package/dist/migrate/builder/index.js.map +0 -1
  246. package/dist/migrate/builder/migrationBuilder.d.ts +0 -110
  247. package/dist/migrate/builder/migrationBuilder.d.ts.map +0 -1
  248. package/dist/migrate/builder/migrationBuilder.js +0 -470
  249. package/dist/migrate/builder/migrationBuilder.js.map +0 -1
  250. package/dist/migrate/builder/splitSqlStatements.d.ts +0 -18
  251. package/dist/migrate/builder/splitSqlStatements.d.ts.map +0 -1
  252. package/dist/migrate/builder/splitSqlStatements.js +0 -44
  253. package/dist/migrate/builder/splitSqlStatements.js.map +0 -1
  254. package/dist/migrate/builder/tableBuilder.d.ts +0 -51
  255. package/dist/migrate/builder/tableBuilder.d.ts.map +0 -1
  256. package/dist/migrate/builder/tableBuilder.js +0 -291
  257. package/dist/migrate/builder/tableBuilder.js.map +0 -1
  258. package/dist/migrate/builder/types.d.ts +0 -466
  259. package/dist/migrate/builder/types.d.ts.map +0 -1
  260. package/dist/migrate/builder/types.js +0 -8
  261. package/dist/migrate/builder/types.js.map +0 -1
  262. package/dist/migrate/cli-config.d.ts +0 -3
  263. package/dist/migrate/cli-config.d.ts.map +0 -1
  264. package/dist/migrate/cli-config.js +0 -35
  265. package/dist/migrate/cli-config.js.map +0 -1
  266. package/dist/migrate/cli.d.ts +0 -20
  267. package/dist/migrate/cli.d.ts.map +0 -1
  268. package/dist/migrate/cli.js +0 -398
  269. package/dist/migrate/cli.js.map +0 -1
  270. package/dist/migrate/codegen/entityCodeGenerator.d.ts +0 -137
  271. package/dist/migrate/codegen/entityCodeGenerator.d.ts.map +0 -1
  272. package/dist/migrate/codegen/entityCodeGenerator.js +0 -405
  273. package/dist/migrate/codegen/entityCodeGenerator.js.map +0 -1
  274. package/dist/migrate/codegen/entityMerger.d.ts +0 -115
  275. package/dist/migrate/codegen/entityMerger.d.ts.map +0 -1
  276. package/dist/migrate/codegen/entityMerger.js +0 -294
  277. package/dist/migrate/codegen/entityMerger.js.map +0 -1
  278. package/dist/migrate/codegen/index.d.ts +0 -11
  279. package/dist/migrate/codegen/index.d.ts.map +0 -1
  280. package/dist/migrate/codegen/index.js +0 -15
  281. package/dist/migrate/codegen/index.js.map +0 -1
  282. package/dist/migrate/codegen/migrationCodeGenerator.d.ts +0 -62
  283. package/dist/migrate/codegen/migrationCodeGenerator.d.ts.map +0 -1
  284. package/dist/migrate/codegen/migrationCodeGenerator.js +0 -356
  285. package/dist/migrate/codegen/migrationCodeGenerator.js.map +0 -1
  286. package/dist/migrate/codegen/migrationFile.d.ts +0 -29
  287. package/dist/migrate/codegen/migrationFile.d.ts.map +0 -1
  288. package/dist/migrate/codegen/migrationFile.js +0 -48
  289. package/dist/migrate/codegen/migrationFile.js.map +0 -1
  290. package/dist/migrate/codegen/smartRelationDetector.d.ts +0 -48
  291. package/dist/migrate/codegen/smartRelationDetector.d.ts.map +0 -1
  292. package/dist/migrate/codegen/smartRelationDetector.js +0 -135
  293. package/dist/migrate/codegen/smartRelationDetector.js.map +0 -1
  294. package/dist/migrate/drift/driftDetector.d.ts +0 -80
  295. package/dist/migrate/drift/driftDetector.d.ts.map +0 -1
  296. package/dist/migrate/drift/driftDetector.js +0 -247
  297. package/dist/migrate/drift/driftDetector.js.map +0 -1
  298. package/dist/migrate/drift/index.d.ts +0 -7
  299. package/dist/migrate/drift/index.d.ts.map +0 -1
  300. package/dist/migrate/drift/index.js +0 -7
  301. package/dist/migrate/drift/index.js.map +0 -1
  302. package/dist/migrate/generator/index.d.ts +0 -3
  303. package/dist/migrate/generator/index.d.ts.map +0 -1
  304. package/dist/migrate/generator/index.js +0 -3
  305. package/dist/migrate/generator/index.js.map +0 -1
  306. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +0 -48
  307. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +0 -1
  308. package/dist/migrate/generator/mongoSchemaGenerator.js +0 -188
  309. package/dist/migrate/generator/mongoSchemaGenerator.js.map +0 -1
  310. package/dist/migrate/index.d.ts +0 -16
  311. package/dist/migrate/index.d.ts.map +0 -1
  312. package/dist/migrate/index.js +0 -23
  313. package/dist/migrate/index.js.map +0 -1
  314. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts +0 -77
  315. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts.map +0 -1
  316. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js +0 -156
  317. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js.map +0 -1
  318. package/dist/migrate/introspection/baseSqlIntrospector.d.ts +0 -26
  319. package/dist/migrate/introspection/baseSqlIntrospector.d.ts.map +0 -1
  320. package/dist/migrate/introspection/baseSqlIntrospector.js +0 -132
  321. package/dist/migrate/introspection/baseSqlIntrospector.js.map +0 -1
  322. package/dist/migrate/introspection/index.d.ts +0 -6
  323. package/dist/migrate/introspection/index.d.ts.map +0 -1
  324. package/dist/migrate/introspection/index.js +0 -6
  325. package/dist/migrate/introspection/index.js.map +0 -1
  326. package/dist/migrate/introspection/mongoIntrospector.d.ts +0 -15
  327. package/dist/migrate/introspection/mongoIntrospector.d.ts.map +0 -1
  328. package/dist/migrate/introspection/mongoIntrospector.js +0 -100
  329. package/dist/migrate/introspection/mongoIntrospector.js.map +0 -1
  330. package/dist/migrate/introspection/mysqlIntrospector.d.ts +0 -59
  331. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +0 -1
  332. package/dist/migrate/introspection/mysqlIntrospector.js +0 -175
  333. package/dist/migrate/introspection/mysqlIntrospector.js.map +0 -1
  334. package/dist/migrate/introspection/postgresIntrospector.d.ts +0 -55
  335. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +0 -1
  336. package/dist/migrate/introspection/postgresIntrospector.js +0 -226
  337. package/dist/migrate/introspection/postgresIntrospector.js.map +0 -1
  338. package/dist/migrate/introspection/sqliteIntrospector.d.ts +0 -60
  339. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +0 -1
  340. package/dist/migrate/introspection/sqliteIntrospector.js +0 -188
  341. package/dist/migrate/introspection/sqliteIntrospector.js.map +0 -1
  342. package/dist/migrate/migrator.d.ts +0 -168
  343. package/dist/migrate/migrator.d.ts.map +0 -1
  344. package/dist/migrate/migrator.js +0 -614
  345. package/dist/migrate/migrator.js.map +0 -1
  346. package/dist/migrate/schemaGenerator.d.ts +0 -142
  347. package/dist/migrate/schemaGenerator.d.ts.map +0 -1
  348. package/dist/migrate/schemaGenerator.js +0 -693
  349. package/dist/migrate/schemaGenerator.js.map +0 -1
  350. package/dist/migrate/schemaGeneratorAsync.d.ts +0 -9
  351. package/dist/migrate/schemaGeneratorAsync.d.ts.map +0 -1
  352. package/dist/migrate/schemaGeneratorAsync.js +0 -13
  353. package/dist/migrate/schemaGeneratorAsync.js.map +0 -1
  354. package/dist/migrate/storage/databaseStorage.d.ts +0 -25
  355. package/dist/migrate/storage/databaseStorage.d.ts.map +0 -1
  356. package/dist/migrate/storage/databaseStorage.js +0 -78
  357. package/dist/migrate/storage/databaseStorage.js.map +0 -1
  358. package/dist/migrate/storage/index.d.ts +0 -3
  359. package/dist/migrate/storage/index.d.ts.map +0 -1
  360. package/dist/migrate/storage/index.js +0 -3
  361. package/dist/migrate/storage/index.js.map +0 -1
  362. package/dist/migrate/storage/jsonStorage.d.ts +0 -16
  363. package/dist/migrate/storage/jsonStorage.d.ts.map +0 -1
  364. package/dist/migrate/storage/jsonStorage.js +0 -43
  365. package/dist/migrate/storage/jsonStorage.js.map +0 -1
  366. package/dist/migrate/sync/index.d.ts +0 -7
  367. package/dist/migrate/sync/index.d.ts.map +0 -1
  368. package/dist/migrate/sync/index.js +0 -7
  369. package/dist/migrate/sync/index.js.map +0 -1
  370. package/dist/migrate/sync/schemaSync.d.ts +0 -132
  371. package/dist/migrate/sync/schemaSync.d.ts.map +0 -1
  372. package/dist/migrate/sync/schemaSync.js +0 -260
  373. package/dist/migrate/sync/schemaSync.js.map +0 -1
  374. package/dist/mongo/index.d.ts +0 -6
  375. package/dist/mongo/index.d.ts.map +0 -1
  376. package/dist/mongo/index.js +0 -6
  377. package/dist/mongo/index.js.map +0 -1
  378. package/dist/mongo/mongoDialect.d.ts +0 -83
  379. package/dist/mongo/mongoDialect.d.ts.map +0 -1
  380. package/dist/mongo/mongoDialect.js +0 -418
  381. package/dist/mongo/mongoDialect.js.map +0 -1
  382. package/dist/mongo/mongodbNativeDialect.d.ts +0 -10
  383. package/dist/mongo/mongodbNativeDialect.d.ts.map +0 -1
  384. package/dist/mongo/mongodbNativeDialect.js +0 -10
  385. package/dist/mongo/mongodbNativeDialect.js.map +0 -1
  386. package/dist/mongo/mongodbQuerier.d.ts +0 -46
  387. package/dist/mongo/mongodbQuerier.d.ts.map +0 -1
  388. package/dist/mongo/mongodbQuerier.js +0 -344
  389. package/dist/mongo/mongodbQuerier.js.map +0 -1
  390. package/dist/mongo/mongodbQuerierPool.d.ts +0 -12
  391. package/dist/mongo/mongodbQuerierPool.d.ts.map +0 -1
  392. package/dist/mongo/mongodbQuerierPool.js +0 -19
  393. package/dist/mongo/mongodbQuerierPool.js.map +0 -1
  394. package/dist/mysql/index.d.ts +0 -5
  395. package/dist/mysql/index.d.ts.map +0 -1
  396. package/dist/mysql/index.js +0 -5
  397. package/dist/mysql/index.js.map +0 -1
  398. package/dist/mysql/mysql2Dialect.d.ts +0 -10
  399. package/dist/mysql/mysql2Dialect.d.ts.map +0 -1
  400. package/dist/mysql/mysql2Dialect.js +0 -10
  401. package/dist/mysql/mysql2Dialect.js.map +0 -1
  402. package/dist/mysql/mysql2Querier.d.ts +0 -12
  403. package/dist/mysql/mysql2Querier.d.ts.map +0 -1
  404. package/dist/mysql/mysql2Querier.js +0 -34
  405. package/dist/mysql/mysql2Querier.js.map +0 -1
  406. package/dist/mysql/mysql2QuerierPool.d.ts +0 -12
  407. package/dist/mysql/mysql2QuerierPool.d.ts.map +0 -1
  408. package/dist/mysql/mysql2QuerierPool.js +0 -18
  409. package/dist/mysql/mysql2QuerierPool.js.map +0 -1
  410. package/dist/mysql/mysqlDialect.d.ts +0 -6
  411. package/dist/mysql/mysqlDialect.d.ts.map +0 -1
  412. package/dist/mysql/mysqlDialect.js +0 -6
  413. package/dist/mysql/mysqlDialect.js.map +0 -1
  414. package/dist/namingStrategy/defaultNamingStrategy.d.ts +0 -10
  415. package/dist/namingStrategy/defaultNamingStrategy.d.ts.map +0 -1
  416. package/dist/namingStrategy/defaultNamingStrategy.js +0 -15
  417. package/dist/namingStrategy/defaultNamingStrategy.js.map +0 -1
  418. package/dist/namingStrategy/index.d.ts +0 -3
  419. package/dist/namingStrategy/index.d.ts.map +0 -1
  420. package/dist/namingStrategy/index.js +0 -3
  421. package/dist/namingStrategy/index.js.map +0 -1
  422. package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts +0 -9
  423. package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts.map +0 -1
  424. package/dist/namingStrategy/snakeCaseNamingStrategy.js +0 -14
  425. package/dist/namingStrategy/snakeCaseNamingStrategy.js.map +0 -1
  426. package/dist/neon/index.d.ts +0 -4
  427. package/dist/neon/index.d.ts.map +0 -1
  428. package/dist/neon/index.js +0 -4
  429. package/dist/neon/index.js.map +0 -1
  430. package/dist/neon/neonDialect.d.ts +0 -11
  431. package/dist/neon/neonDialect.d.ts.map +0 -1
  432. package/dist/neon/neonDialect.js +0 -11
  433. package/dist/neon/neonDialect.js.map +0 -1
  434. package/dist/neon/neonQuerier.d.ts +0 -6
  435. package/dist/neon/neonQuerier.d.ts.map +0 -1
  436. package/dist/neon/neonQuerier.js +0 -4
  437. package/dist/neon/neonQuerier.js.map +0 -1
  438. package/dist/neon/neonQuerierPool.d.ts +0 -11
  439. package/dist/neon/neonQuerierPool.d.ts.map +0 -1
  440. package/dist/neon/neonQuerierPool.js +0 -15
  441. package/dist/neon/neonQuerierPool.js.map +0 -1
  442. package/dist/options.d.ts +0 -5
  443. package/dist/options.d.ts.map +0 -1
  444. package/dist/options.js +0 -14
  445. package/dist/options.js.map +0 -1
  446. package/dist/postgres/abstractPgQuerier.d.ts +0 -24
  447. package/dist/postgres/abstractPgQuerier.d.ts.map +0 -1
  448. package/dist/postgres/abstractPgQuerier.js +0 -33
  449. package/dist/postgres/abstractPgQuerier.js.map +0 -1
  450. package/dist/postgres/abstractPgQuerierPool.d.ts +0 -15
  451. package/dist/postgres/abstractPgQuerierPool.d.ts.map +0 -1
  452. package/dist/postgres/abstractPgQuerierPool.js +0 -10
  453. package/dist/postgres/abstractPgQuerierPool.js.map +0 -1
  454. package/dist/postgres/index.d.ts +0 -6
  455. package/dist/postgres/index.d.ts.map +0 -1
  456. package/dist/postgres/index.js +0 -6
  457. package/dist/postgres/index.js.map +0 -1
  458. package/dist/postgres/pgDialect.d.ts +0 -13
  459. package/dist/postgres/pgDialect.d.ts.map +0 -1
  460. package/dist/postgres/pgDialect.js +0 -14
  461. package/dist/postgres/pgDialect.js.map +0 -1
  462. package/dist/postgres/pgQuerier.d.ts +0 -6
  463. package/dist/postgres/pgQuerier.d.ts.map +0 -1
  464. package/dist/postgres/pgQuerier.js +0 -4
  465. package/dist/postgres/pgQuerier.js.map +0 -1
  466. package/dist/postgres/pgQuerierPool.d.ts +0 -11
  467. package/dist/postgres/pgQuerierPool.d.ts.map +0 -1
  468. package/dist/postgres/pgQuerierPool.js +0 -15
  469. package/dist/postgres/pgQuerierPool.js.map +0 -1
  470. package/dist/postgres/postgresDialect.d.ts +0 -48
  471. package/dist/postgres/postgresDialect.d.ts.map +0 -1
  472. package/dist/postgres/postgresDialect.js +0 -222
  473. package/dist/postgres/postgresDialect.js.map +0 -1
  474. package/dist/postgres/postgresWireDriverCapabilities.d.ts +0 -15
  475. package/dist/postgres/postgresWireDriverCapabilities.d.ts.map +0 -1
  476. package/dist/postgres/postgresWireDriverCapabilities.js +0 -15
  477. package/dist/postgres/postgresWireDriverCapabilities.js.map +0 -1
  478. package/dist/querier/abstractPoolQuerier.d.ts +0 -14
  479. package/dist/querier/abstractPoolQuerier.d.ts.map +0 -1
  480. package/dist/querier/abstractPoolQuerier.js +0 -31
  481. package/dist/querier/abstractPoolQuerier.js.map +0 -1
  482. package/dist/querier/abstractQuerier.d.ts +0 -141
  483. package/dist/querier/abstractQuerier.d.ts.map +0 -1
  484. package/dist/querier/abstractQuerier.js +0 -431
  485. package/dist/querier/abstractQuerier.js.map +0 -1
  486. package/dist/querier/abstractQuerierPool.d.ts +0 -27
  487. package/dist/querier/abstractQuerierPool.d.ts.map +0 -1
  488. package/dist/querier/abstractQuerierPool.js +0 -31
  489. package/dist/querier/abstractQuerierPool.js.map +0 -1
  490. package/dist/querier/abstractSqlQuerier.d.ts +0 -53
  491. package/dist/querier/abstractSqlQuerier.d.ts.map +0 -1
  492. package/dist/querier/abstractSqlQuerier.js +0 -256
  493. package/dist/querier/abstractSqlQuerier.js.map +0 -1
  494. package/dist/querier/decorator/index.d.ts +0 -5
  495. package/dist/querier/decorator/index.d.ts.map +0 -1
  496. package/dist/querier/decorator/index.js +0 -5
  497. package/dist/querier/decorator/index.js.map +0 -1
  498. package/dist/querier/decorator/injectQuerier.d.ts +0 -4
  499. package/dist/querier/decorator/injectQuerier.d.ts.map +0 -1
  500. package/dist/querier/decorator/injectQuerier.js +0 -34
  501. package/dist/querier/decorator/injectQuerier.js.map +0 -1
  502. package/dist/querier/decorator/log.d.ts +0 -7
  503. package/dist/querier/decorator/log.d.ts.map +0 -1
  504. package/dist/querier/decorator/log.js +0 -27
  505. package/dist/querier/decorator/log.js.map +0 -1
  506. package/dist/querier/decorator/serialized.d.ts +0 -7
  507. package/dist/querier/decorator/serialized.d.ts.map +0 -1
  508. package/dist/querier/decorator/serialized.js +0 -14
  509. package/dist/querier/decorator/serialized.js.map +0 -1
  510. package/dist/querier/decorator/transactional.d.ts +0 -7
  511. package/dist/querier/decorator/transactional.d.ts.map +0 -1
  512. package/dist/querier/decorator/transactional.js +0 -49
  513. package/dist/querier/decorator/transactional.js.map +0 -1
  514. package/dist/querier/index.d.ts +0 -5
  515. package/dist/querier/index.d.ts.map +0 -1
  516. package/dist/querier/index.js +0 -5
  517. package/dist/querier/index.js.map +0 -1
  518. package/dist/schema/canonicalType.d.ts +0 -54
  519. package/dist/schema/canonicalType.d.ts.map +0 -1
  520. package/dist/schema/canonicalType.js +0 -571
  521. package/dist/schema/canonicalType.js.map +0 -1
  522. package/dist/schema/index.d.ts +0 -26
  523. package/dist/schema/index.d.ts.map +0 -1
  524. package/dist/schema/index.js +0 -27
  525. package/dist/schema/index.js.map +0 -1
  526. package/dist/schema/schemaAST.d.ts +0 -155
  527. package/dist/schema/schemaAST.d.ts.map +0 -1
  528. package/dist/schema/schemaAST.js +0 -496
  529. package/dist/schema/schemaAST.js.map +0 -1
  530. package/dist/schema/schemaASTBuilder.d.ts +0 -58
  531. package/dist/schema/schemaASTBuilder.d.ts.map +0 -1
  532. package/dist/schema/schemaASTBuilder.js +0 -228
  533. package/dist/schema/schemaASTBuilder.js.map +0 -1
  534. package/dist/schema/schemaASTDiffer.d.ts +0 -84
  535. package/dist/schema/schemaASTDiffer.d.ts.map +0 -1
  536. package/dist/schema/schemaASTDiffer.js +0 -431
  537. package/dist/schema/schemaASTDiffer.js.map +0 -1
  538. package/dist/schema/types.d.ts +0 -348
  539. package/dist/schema/types.d.ts.map +0 -1
  540. package/dist/schema/types.js +0 -11
  541. package/dist/schema/types.js.map +0 -1
  542. package/dist/sqlite/abstractSqliteQuerier.d.ts +0 -4
  543. package/dist/sqlite/abstractSqliteQuerier.d.ts.map +0 -1
  544. package/dist/sqlite/abstractSqliteQuerier.js +0 -4
  545. package/dist/sqlite/abstractSqliteQuerier.js.map +0 -1
  546. package/dist/sqlite/betterSqlite3Dialect.d.ts +0 -10
  547. package/dist/sqlite/betterSqlite3Dialect.d.ts.map +0 -1
  548. package/dist/sqlite/betterSqlite3Dialect.js +0 -10
  549. package/dist/sqlite/betterSqlite3Dialect.js.map +0 -1
  550. package/dist/sqlite/index.d.ts +0 -6
  551. package/dist/sqlite/index.d.ts.map +0 -1
  552. package/dist/sqlite/index.js +0 -6
  553. package/dist/sqlite/index.js.map +0 -1
  554. package/dist/sqlite/sqliteDialect.d.ts +0 -36
  555. package/dist/sqlite/sqliteDialect.d.ts.map +0 -1
  556. package/dist/sqlite/sqliteDialect.js +0 -155
  557. package/dist/sqlite/sqliteDialect.js.map +0 -1
  558. package/dist/sqlite/sqliteQuerier.d.ts +0 -14
  559. package/dist/sqlite/sqliteQuerier.d.ts.map +0 -1
  560. package/dist/sqlite/sqliteQuerier.js +0 -30
  561. package/dist/sqlite/sqliteQuerier.js.map +0 -1
  562. package/dist/sqlite/sqliteQuerierPool.d.ts +0 -14
  563. package/dist/sqlite/sqliteQuerierPool.d.ts.map +0 -1
  564. package/dist/sqlite/sqliteQuerierPool.js +0 -36
  565. package/dist/sqlite/sqliteQuerierPool.js.map +0 -1
  566. package/dist/type/config.d.ts +0 -43
  567. package/dist/type/config.d.ts.map +0 -1
  568. package/dist/type/config.js +0 -2
  569. package/dist/type/config.js.map +0 -1
  570. package/dist/type/entity.d.ts +0 -332
  571. package/dist/type/entity.d.ts.map +0 -1
  572. package/dist/type/entity.js +0 -5
  573. package/dist/type/entity.js.map +0 -1
  574. package/dist/type/index.d.ts +0 -12
  575. package/dist/type/index.d.ts.map +0 -1
  576. package/dist/type/index.js +0 -12
  577. package/dist/type/index.js.map +0 -1
  578. package/dist/type/logger.d.ts +0 -61
  579. package/dist/type/logger.d.ts.map +0 -1
  580. package/dist/type/logger.js +0 -2
  581. package/dist/type/logger.js.map +0 -1
  582. package/dist/type/migration.d.ts +0 -267
  583. package/dist/type/migration.d.ts.map +0 -1
  584. package/dist/type/migration.js +0 -2
  585. package/dist/type/migration.js.map +0 -1
  586. package/dist/type/migratorDialect.d.ts +0 -10
  587. package/dist/type/migratorDialect.d.ts.map +0 -1
  588. package/dist/type/migratorDialect.js +0 -16
  589. package/dist/type/migratorDialect.js.map +0 -1
  590. package/dist/type/namingStrategy.d.ts +0 -18
  591. package/dist/type/namingStrategy.d.ts.map +0 -1
  592. package/dist/type/namingStrategy.js +0 -2
  593. package/dist/type/namingStrategy.js.map +0 -1
  594. package/dist/type/querier.d.ts +0 -167
  595. package/dist/type/querier.d.ts.map +0 -1
  596. package/dist/type/querier.js +0 -11
  597. package/dist/type/querier.js.map +0 -1
  598. package/dist/type/querierPool.d.ts +0 -62
  599. package/dist/type/querierPool.d.ts.map +0 -1
  600. package/dist/type/querierPool.js +0 -2
  601. package/dist/type/querierPool.js.map +0 -1
  602. package/dist/type/query.d.ts +0 -703
  603. package/dist/type/query.d.ts.map +0 -1
  604. package/dist/type/query.js +0 -11
  605. package/dist/type/query.js.map +0 -1
  606. package/dist/type/universalQuerier.d.ts +0 -136
  607. package/dist/type/universalQuerier.d.ts.map +0 -1
  608. package/dist/type/universalQuerier.js +0 -2
  609. package/dist/type/universalQuerier.js.map +0 -1
  610. package/dist/type/utility.d.ts +0 -37
  611. package/dist/type/utility.d.ts.map +0 -1
  612. package/dist/type/utility.js +0 -2
  613. package/dist/type/utility.js.map +0 -1
  614. package/dist/util/ansiSqlLiteral.d.ts +0 -21
  615. package/dist/util/ansiSqlLiteral.d.ts.map +0 -1
  616. package/dist/util/ansiSqlLiteral.js +0 -101
  617. package/dist/util/ansiSqlLiteral.js.map +0 -1
  618. package/dist/util/dialect.util.d.ts +0 -31
  619. package/dist/util/dialect.util.d.ts.map +0 -1
  620. package/dist/util/dialect.util.js +0 -113
  621. package/dist/util/dialect.util.js.map +0 -1
  622. package/dist/util/field.util.d.ts +0 -14
  623. package/dist/util/field.util.d.ts.map +0 -1
  624. package/dist/util/field.util.js +0 -57
  625. package/dist/util/field.util.js.map +0 -1
  626. package/dist/util/hook.util.d.ts +0 -15
  627. package/dist/util/hook.util.d.ts.map +0 -1
  628. package/dist/util/hook.util.js +0 -20
  629. package/dist/util/hook.util.js.map +0 -1
  630. package/dist/util/index.d.ts +0 -10
  631. package/dist/util/index.d.ts.map +0 -1
  632. package/dist/util/index.js +0 -10
  633. package/dist/util/index.js.map +0 -1
  634. package/dist/util/logger.d.ts +0 -34
  635. package/dist/util/logger.d.ts.map +0 -1
  636. package/dist/util/logger.js +0 -129
  637. package/dist/util/logger.js.map +0 -1
  638. package/dist/util/object.util.d.ts +0 -10
  639. package/dist/util/object.util.d.ts.map +0 -1
  640. package/dist/util/object.util.js +0 -29
  641. package/dist/util/object.util.js.map +0 -1
  642. package/dist/util/raw.d.ts +0 -18
  643. package/dist/util/raw.d.ts.map +0 -1
  644. package/dist/util/raw.js +0 -20
  645. package/dist/util/raw.js.map +0 -1
  646. package/dist/util/relationQuery.util.d.ts +0 -25
  647. package/dist/util/relationQuery.util.d.ts.map +0 -1
  648. package/dist/util/relationQuery.util.js +0 -101
  649. package/dist/util/relationQuery.util.js.map +0 -1
  650. package/dist/util/sql.util.d.ts +0 -50
  651. package/dist/util/sql.util.d.ts.map +0 -1
  652. package/dist/util/sql.util.js +0 -141
  653. package/dist/util/sql.util.js.map +0 -1
  654. package/dist/util/string.util.d.ts +0 -29
  655. package/dist/util/string.util.d.ts.map +0 -1
  656. package/dist/util/string.util.js +0 -93
  657. package/dist/util/string.util.js.map +0 -1
@@ -1,693 +0,0 @@
1
- import { AbstractSqlDialect } from '../dialect/index.js';
2
- import { getMeta } from '../entity/index.js';
3
- import { areTypesEqual, canonicalToSql, fieldOptionsToCanonical, isVectorCategory, sqlToCanonical, } from '../schema/canonicalType.js';
4
- import { SchemaASTBuilder } from '../schema/schemaASTBuilder.js';
5
- import { escapeSqlId, getKeys, isAutoIncrement } from '../util/index.js';
6
- import { formatDefaultValue } from './builder/expressions.js';
7
- /** Maps UQL distance metric names to inline DDL keywords (e.g. MariaDB `DISTANCE=euclidean`). */
8
- const INLINE_VECTOR_DISTANCE_MAP = { cosine: 'cosine', l2: 'euclidean' };
9
- /**
10
- * Unified SQL schema generator.
11
- * Parameterized by dialect to handle Postgres, MySQL, MariaDB, and SQLite.
12
- */
13
- export class SqlSchemaGenerator {
14
- dialect;
15
- defaultForeignKeyAction;
16
- constructor(dialect, defaultForeignKeyAction = 'NO ACTION') {
17
- this.dialect = dialect;
18
- this.defaultForeignKeyAction = defaultForeignKeyAction;
19
- }
20
- get namingStrategy() {
21
- return this.dialect.namingStrategy;
22
- }
23
- get features() {
24
- return this.dialect.features;
25
- }
26
- resolveTableName(entity, meta) {
27
- return this.dialect.resolveTableName(entity, meta);
28
- }
29
- resolveColumnName(key, field) {
30
- return this.dialect.resolveColumnName(key, field);
31
- }
32
- /**
33
- * Escape an identifier (table name, column name, etc.)
34
- */
35
- escapeId(identifier) {
36
- return escapeSqlId(identifier, this.dialect.quoteChar);
37
- }
38
- /**
39
- * Primary key type for auto-increment integer IDs
40
- */
41
- get serialPrimaryKeyType() {
42
- return this.dialect.serialPrimaryKey;
43
- }
44
- // ============================================================================
45
- // CanonicalType Integration (Unified Type System)
46
- // ============================================================================
47
- /**
48
- * Convert FieldOptions to CanonicalType using the unified type system.
49
- */
50
- getCanonicalType(field, fieldType) {
51
- return fieldOptionsToCanonical(field, fieldType);
52
- }
53
- /**
54
- * Convert CanonicalType to SQL type string for this dialect.
55
- * Also handles legacy string types for backward compatibility.
56
- */
57
- canonicalTypeToSql(type) {
58
- // Handle legacy string types
59
- if (typeof type === 'string') {
60
- return type;
61
- }
62
- return canonicalToSql(type, this.dialect);
63
- }
64
- // ============================================================================
65
- // SchemaGenerator Implementation
66
- // ============================================================================
67
- generateCreateTable(entity, options = {}) {
68
- const builder = new SchemaASTBuilder(this.dialect.namingStrategy);
69
- const ast = builder.fromEntities([entity]);
70
- const tableNode = ast.getTables()[0];
71
- return this.generateCreateTableFromNode(tableNode, options);
72
- }
73
- generateDropTable(entity) {
74
- const meta = getMeta(entity);
75
- const tableName = this.dialect.resolveTableName(entity, meta);
76
- return `DROP TABLE IF EXISTS ${this.escapeId(tableName)};`;
77
- }
78
- generateAlterTable(diff) {
79
- const statements = [];
80
- const tableName = this.escapeId(diff.tableName);
81
- // Add new columns
82
- if (diff.columnsToAdd?.length) {
83
- for (const column of diff.columnsToAdd) {
84
- const colDef = this.generateColumnDefinitionFromSchema(column);
85
- statements.push(`ALTER TABLE ${tableName} ADD COLUMN ${colDef};`);
86
- }
87
- }
88
- // Alter existing columns
89
- if (diff.columnsToAlter?.length) {
90
- for (const { to } of diff.columnsToAlter) {
91
- const colDef = this.generateColumnDefinitionFromSchema(to);
92
- const colStatements = this.generateAlterColumnStatements(diff.tableName, to, colDef);
93
- statements.push(...colStatements);
94
- }
95
- }
96
- // Drop columns
97
- if (diff.columnsToDrop?.length) {
98
- for (const columnName of diff.columnsToDrop) {
99
- statements.push(`ALTER TABLE ${tableName} DROP COLUMN ${this.escapeId(columnName)};`);
100
- }
101
- }
102
- // Add indexes
103
- if (diff.indexesToAdd?.length) {
104
- for (const index of diff.indexesToAdd) {
105
- statements.push(this.generateCreateIndex(diff.tableName, index));
106
- }
107
- }
108
- // Drop indexes
109
- if (diff.indexesToDrop?.length) {
110
- for (const indexName of diff.indexesToDrop) {
111
- statements.push(this.generateDropIndex(diff.tableName, indexName));
112
- }
113
- }
114
- return statements;
115
- }
116
- generateAlterTableDown(diff) {
117
- const statements = [];
118
- const tableName = this.escapeId(diff.tableName);
119
- // Reverse column additions by dropping them
120
- if (diff.columnsToAdd?.length) {
121
- for (const column of diff.columnsToAdd) {
122
- statements.push(`ALTER TABLE ${tableName} DROP COLUMN ${this.escapeId(column.name)};`);
123
- }
124
- }
125
- // Reverse column alterations by restoring original schema
126
- if (diff.columnsToAlter?.length) {
127
- for (const { from } of diff.columnsToAlter) {
128
- const colDef = this.generateColumnDefinitionFromSchema(from, { includePrimaryKey: false });
129
- const colStatements = this.generateAlterColumnStatements(diff.tableName, from, colDef);
130
- statements.push(...colStatements);
131
- }
132
- }
133
- // Reverse index additions by dropping them
134
- if (diff.indexesToAdd?.length) {
135
- for (const index of diff.indexesToAdd) {
136
- statements.push(this.generateDropIndex(diff.tableName, index.name));
137
- }
138
- }
139
- if (diff.columnsToDrop?.length || diff.indexesToDrop?.length) {
140
- statements.push(`-- TODO: Manual reversal needed for dropped columns/indexes`);
141
- }
142
- return statements;
143
- }
144
- generateCreateIndex(tableName, index, options = {}) {
145
- const unique = index.unique ? 'UNIQUE ' : '';
146
- const ifNotExists = (options.ifNotExists ?? this.features.indexIfNotExists) ? 'IF NOT EXISTS ' : '';
147
- const opsClassMap = this.dialect.vectorOpsClass;
148
- const hasOpsClass = opsClassMap && (index.type === 'hnsw' || index.type === 'ivfflat');
149
- // For pgvector indexes: append operator class to the column
150
- const columns = index.columns
151
- .map((c) => {
152
- const escaped = this.escapeId(c);
153
- if (hasOpsClass && index.distance) {
154
- const opsClass = opsClassMap[index.distance];
155
- return opsClass ? `${escaped} ${opsClass}` : escaped;
156
- }
157
- return escaped;
158
- })
159
- .join(', ');
160
- const using = index.type ? ` USING ${index.type}` : '';
161
- // Build WITH params for vector indexes with operator class support
162
- let withClause = '';
163
- if (hasOpsClass) {
164
- const withParams = [];
165
- if (index.m !== undefined)
166
- withParams.push(`m = ${index.m}`);
167
- if (index.efConstruction !== undefined)
168
- withParams.push(`ef_construction = ${index.efConstruction}`);
169
- if (index.lists !== undefined)
170
- withParams.push(`lists = ${index.lists}`);
171
- withClause = withParams.length > 0 ? ` WITH (${withParams.join(', ')})` : '';
172
- }
173
- return `CREATE ${unique}INDEX ${ifNotExists}${this.escapeId(index.name)} ON ${this.escapeId(tableName)}${using} (${columns})${withClause};`;
174
- }
175
- generateDropIndex(tableName, indexName) {
176
- if (this.dialect.dropIndexSyntax === 'on-table') {
177
- return `DROP INDEX ${this.escapeId(indexName)} ON ${this.escapeId(tableName)};`;
178
- }
179
- return `DROP INDEX IF EXISTS ${this.escapeId(indexName)};`;
180
- }
181
- /**
182
- * Generate column definition from a ColumnSchema object
183
- */
184
- generateColumnDefinitionFromSchema(column, options = {}) {
185
- const { includePrimaryKey = true, includeUnique = true } = options;
186
- let type = column.type;
187
- if (!type.includes('(')) {
188
- if (column.precision !== undefined) {
189
- if (column.scale !== undefined) {
190
- type += `(${column.precision}, ${column.scale})`;
191
- }
192
- else {
193
- type += `(${column.precision})`;
194
- }
195
- }
196
- else if (column.length !== undefined) {
197
- type += `(${column.length})`;
198
- }
199
- }
200
- if (!includePrimaryKey) {
201
- type = type.replace(/\s+PRIMARY\s+KEY/i, '');
202
- }
203
- let definition = `${this.escapeId(column.name)} ${type}`;
204
- if (includePrimaryKey && column.isPrimaryKey && !type.includes('PRIMARY KEY')) {
205
- definition += ' PRIMARY KEY';
206
- }
207
- if (!column.nullable && !column.isPrimaryKey) {
208
- definition += ' NOT NULL';
209
- }
210
- if (includeUnique && column.isUnique && !column.isPrimaryKey) {
211
- definition += ' UNIQUE';
212
- }
213
- if (column.defaultValue !== undefined) {
214
- definition += ` DEFAULT ${this.formatDefaultValue(column.defaultValue)}`;
215
- }
216
- if (column.comment) {
217
- definition += this.generateColumnComment(column.name, column.comment);
218
- }
219
- return definition;
220
- }
221
- getSqlType(field, fieldType) {
222
- // If field has a reference, inherit type from the target primary key
223
- if (field.references) {
224
- const refEntity = field.references();
225
- const refMeta = getMeta(refEntity);
226
- const refIdField = refMeta.fields[refMeta.id];
227
- return this.getSqlType({ ...refIdField, references: undefined, isId: undefined, autoIncrement: false }, refIdField.type);
228
- }
229
- // Get canonical type and convert to SQL
230
- const canonical = this.getCanonicalType(field, fieldType);
231
- // Special case for serial primary keys
232
- if (isAutoIncrement(field, field.isId === true)) {
233
- return this.dialect.serialPrimaryKey;
234
- }
235
- return this.canonicalTypeToSql(canonical);
236
- }
237
- /**
238
- * Get the boolean type for this database
239
- */
240
- getBooleanType() {
241
- return this.canonicalTypeToSql({ category: 'boolean' });
242
- }
243
- /**
244
- * Generate ALTER COLUMN statements (database-specific)
245
- */
246
- generateAlterColumnStatements(tableName, column, newDefinition) {
247
- const table = this.escapeId(tableName);
248
- const colName = this.escapeId(column.name);
249
- if (this.dialect.alterColumnSyntax === 'none') {
250
- throw new Error(`${this.dialect}: Cannot alter column "${column.name}" - you must recreate the table. ` +
251
- `This database does not support ALTER COLUMN.`);
252
- }
253
- if (this.dialect.alterColumnStrategy === 'separate-clauses') {
254
- const statements = [];
255
- // Separate ALTER COLUMN clauses for different changes (Postgres)
256
- statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} TYPE ${column.type};`);
257
- if (column.nullable) {
258
- statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} DROP NOT NULL;`);
259
- }
260
- else {
261
- statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} SET NOT NULL;`);
262
- }
263
- if (column.defaultValue !== undefined) {
264
- statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} SET DEFAULT ${this.formatDefaultValue(column.defaultValue)};`);
265
- }
266
- else {
267
- statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} DROP DEFAULT;`);
268
- }
269
- return statements;
270
- }
271
- return [`ALTER TABLE ${table} ${this.dialect.alterColumnSyntax} ${newDefinition};`];
272
- }
273
- /**
274
- * Get table options (e.g., ENGINE for MySQL)
275
- */
276
- getTableOptions(_meta) {
277
- return this.dialect.tableOptions ? ` ${this.dialect.tableOptions}` : '';
278
- }
279
- /**
280
- * Generate column comment clause (if supported)
281
- */
282
- generateColumnComment(columnName, comment) {
283
- if (this.features.columnComment) {
284
- const escapedComment = comment.replace(/'/g, "''");
285
- return ` COMMENT '${escapedComment}'`;
286
- }
287
- return '';
288
- }
289
- /**
290
- * Format a default value for SQL
291
- */
292
- formatDefaultValue(value) {
293
- if (this.dialect.booleanLiteral === 'integer' && typeof value === 'boolean') {
294
- return value ? '1' : '0';
295
- }
296
- return formatDefaultValue(value);
297
- }
298
- /**
299
- * Compare an entity with a database table node and return the differences.
300
- */
301
- diffSchema(entity, currentTable) {
302
- const meta = getMeta(entity);
303
- if (!currentTable) {
304
- return {
305
- tableName: this.dialect.resolveTableName(entity, meta),
306
- type: 'create',
307
- };
308
- }
309
- const columnsToAdd = [];
310
- const columnsToAlter = [];
311
- const columnsToDrop = [];
312
- const currentColumns = new Map(currentTable.columns);
313
- const fieldKeys = getKeys(meta.fields);
314
- for (const key of fieldKeys) {
315
- const field = meta.fields[key];
316
- if (!field || field.virtual)
317
- continue;
318
- const columnName = this.dialect.resolveColumnName(key, field);
319
- const currentColumn = currentColumns.get(columnName);
320
- if (!currentColumn) {
321
- columnsToAdd.push(this.fieldToColumnSchema(key, field, meta));
322
- }
323
- else {
324
- const desiredColumn = this.fieldToColumnSchema(key, field, meta);
325
- const currentColumnSchema = this.columnNodeToSchema(currentColumn);
326
- if (this.columnsNeedAlteration(currentColumnSchema, desiredColumn)) {
327
- columnsToAlter.push({ from: currentColumnSchema, to: desiredColumn });
328
- }
329
- }
330
- currentColumns.delete(columnName);
331
- }
332
- for (const [name] of currentColumns) {
333
- columnsToDrop.push(name);
334
- }
335
- if (columnsToAdd.length === 0 && columnsToAlter.length === 0 && columnsToDrop.length === 0) {
336
- return undefined;
337
- }
338
- return {
339
- tableName: this.dialect.resolveTableName(entity, meta),
340
- type: 'alter',
341
- columnsToAdd: columnsToAdd.length > 0 ? columnsToAdd : undefined,
342
- columnsToAlter: columnsToAlter.length > 0 ? columnsToAlter : undefined,
343
- columnsToDrop: columnsToDrop.length > 0 ? columnsToDrop : undefined,
344
- };
345
- }
346
- columnNodeToSchema(col) {
347
- return {
348
- name: col.name,
349
- type: this.canonicalTypeToSql(col.type),
350
- nullable: col.nullable,
351
- defaultValue: col.defaultValue,
352
- isPrimaryKey: col.isPrimaryKey,
353
- isAutoIncrement: col.isAutoIncrement,
354
- isUnique: col.isUnique,
355
- comment: col.comment,
356
- };
357
- }
358
- /**
359
- * Convert field options to ColumnSchema
360
- */
361
- fieldToColumnSchema(fieldKey, field, meta) {
362
- const isPrimaryKey = field.isId === true && meta.id === fieldKey;
363
- return {
364
- name: this.dialect.resolveColumnName(fieldKey, field),
365
- type: this.getSqlType(field, field.type),
366
- nullable: field.nullable ?? !isPrimaryKey,
367
- defaultValue: field.defaultValue,
368
- isPrimaryKey,
369
- isAutoIncrement: isAutoIncrement(field, isPrimaryKey),
370
- isUnique: field.unique ?? false,
371
- length: field.length,
372
- precision: field.precision,
373
- scale: field.scale,
374
- comment: field.comment,
375
- };
376
- }
377
- /**
378
- * Check if two columns differ enough to require alteration
379
- */
380
- columnsNeedAlteration(current, desired) {
381
- if (current.isPrimaryKey && desired.isPrimaryKey) {
382
- return false;
383
- }
384
- if (current.isPrimaryKey !== desired.isPrimaryKey)
385
- return true;
386
- if (current.nullable !== desired.nullable)
387
- return true;
388
- if (current.isUnique !== desired.isUnique)
389
- return true;
390
- if (!this.isTypeEqual(current, desired))
391
- return true;
392
- if (!this.isDefaultValueEqual(current.defaultValue, desired.defaultValue))
393
- return true;
394
- return false;
395
- }
396
- /**
397
- * Compare two column types for equality using the canonical type system
398
- */
399
- isTypeEqual(current, desired) {
400
- const typeA = sqlToCanonical(current.type);
401
- const typeB = sqlToCanonical(desired.type);
402
- return areTypesEqual(typeA, typeB);
403
- }
404
- /**
405
- * Compare two default values for equality
406
- */
407
- isDefaultValueEqual(current, desired) {
408
- if (current === desired)
409
- return true;
410
- if (current === undefined || desired === undefined)
411
- return current === desired;
412
- const normalize = (val) => {
413
- if (val === null)
414
- return 'null';
415
- if (typeof val === 'string') {
416
- let s = val.replace(/::[a-z_]+(\s+[a-z_]+)*(\[\])?$/i, '');
417
- s = s.replace(/^'(.*)'$/, '$1');
418
- if (s.toLowerCase() === 'null')
419
- return 'null';
420
- return s;
421
- }
422
- return typeof val === 'object' ? JSON.stringify(val) : String(val);
423
- };
424
- return normalize(current) === normalize(desired);
425
- }
426
- // ============================================================================
427
- // SchemaAST Support Methods
428
- // ============================================================================
429
- generateCreateTableFromNode(table, options = {}) {
430
- const columns = [];
431
- const constraints = [];
432
- for (const col of table.columns.values()) {
433
- const colDef = this.generateColumnFromNode(col);
434
- columns.push(colDef);
435
- }
436
- if (table.primaryKey.length > 1) {
437
- const pkCols = table.primaryKey.map((c) => this.escapeId(c.name)).join(', ');
438
- constraints.push(`PRIMARY KEY (${pkCols})`);
439
- }
440
- for (const rel of table.outgoingRelations) {
441
- if (rel.from.columns.length > 0) {
442
- const fromCols = rel.from.columns.map((c) => this.escapeId(c.name)).join(', ');
443
- const toCols = rel.to.columns.map((c) => this.escapeId(c.name)).join(', ');
444
- const constraintName = rel.name ? `CONSTRAINT ${this.escapeId(rel.name)} ` : '';
445
- constraints.push(`${constraintName}FOREIGN KEY (${fromCols}) REFERENCES ${this.escapeId(rel.to.table.name)} (${toCols})` +
446
- ` ON DELETE ${rel.onDelete ?? this.defaultForeignKeyAction} ON UPDATE ${rel.onUpdate ?? this.defaultForeignKeyAction}`);
447
- }
448
- }
449
- const ifNotExists = options.ifNotExists && this.features.ifNotExists ? 'IF NOT EXISTS ' : '';
450
- let createSql = `CREATE TABLE ${ifNotExists}${this.escapeId(table.name)} (\n`;
451
- createSql += columns.map((col) => ` ${col}`).join(',\n');
452
- if (constraints.length > 0) {
453
- createSql += ',\n';
454
- createSql += constraints.map((c) => ` ${c}`).join(',\n');
455
- }
456
- const isInlineVectorIdx = this.features.vectorIndexStyle === 'inline';
457
- const vectorIndexes = isInlineVectorIdx ? table.indexes.filter((idx) => idx.type === 'vector') : [];
458
- const regularIndexes = isInlineVectorIdx ? table.indexes.filter((idx) => idx.type !== 'vector') : table.indexes;
459
- if (vectorIndexes.length > 0) {
460
- createSql += ',\n';
461
- createSql += vectorIndexes.map((idx) => ` ${this.generateInlineVectorIndex(idx)}`).join(',\n');
462
- }
463
- createSql += '\n)';
464
- if (this.dialect.tableOptions) {
465
- createSql += ` ${this.dialect.tableOptions}`;
466
- }
467
- createSql += ';';
468
- const statements = [];
469
- if (this.dialect.vectorExtension) {
470
- const hasVectorCol = [...table.columns.values()].some((c) => isVectorCategory(c.type.category));
471
- if (hasVectorCol) {
472
- statements.push(`CREATE EXTENSION IF NOT EXISTS ${this.dialect.vectorExtension};`);
473
- }
474
- }
475
- statements.push(createSql);
476
- for (const idx of regularIndexes) {
477
- statements.push(this.generateCreateIndexFromNode(idx));
478
- }
479
- return statements;
480
- }
481
- /**
482
- * Generate a column definition from a ColumnNode.
483
- */
484
- generateColumnFromNode(col) {
485
- const colName = this.escapeId(col.name);
486
- let sqlType = this.canonicalTypeToSql(col.type);
487
- if (col.isPrimaryKey && col.isAutoIncrement) {
488
- sqlType = this.serialPrimaryKeyType;
489
- }
490
- let def = `${colName} ${sqlType}`;
491
- if (!col.nullable && !col.isPrimaryKey) {
492
- def += ' NOT NULL';
493
- }
494
- if (col.isPrimaryKey && col.table.primaryKey.length === 1 && !sqlType.includes('PRIMARY KEY')) {
495
- def += ' PRIMARY KEY';
496
- }
497
- if (col.isUnique && !col.isPrimaryKey) {
498
- def += ' UNIQUE';
499
- }
500
- if (col.defaultValue !== undefined) {
501
- def += ` DEFAULT ${this.formatDefaultValue(col.defaultValue)}`;
502
- }
503
- if (col.comment) {
504
- def += this.generateColumnComment(col.name, col.comment);
505
- }
506
- return def;
507
- }
508
- /**
509
- * Generate an inline VECTOR INDEX clause for use inside CREATE TABLE.
510
- * Syntax: `VECTOR INDEX (col) M=n DISTANCE=metric`
511
- */
512
- generateInlineVectorIndex(index) {
513
- const columns = index.columns.map((c) => this.escapeId(c.name)).join(', ');
514
- let clause = `VECTOR INDEX (${columns})`;
515
- if (index.m !== undefined) {
516
- clause += ` M=${index.m}`;
517
- }
518
- if (index.distance) {
519
- const metric = INLINE_VECTOR_DISTANCE_MAP[index.distance] ?? 'euclidean';
520
- clause += ` DISTANCE=${metric}`;
521
- }
522
- return clause;
523
- }
524
- /**
525
- * Generate CREATE INDEX SQL from an IndexNode.
526
- * Delegates to `generateCreateIndex` for unified SQL assembly.
527
- */
528
- generateCreateIndexFromNode(index, options = { ifNotExists: false }) {
529
- return this.generateCreateIndex(index.table.name, {
530
- name: index.name,
531
- columns: index.columns.map((c) => c.name),
532
- unique: index.unique,
533
- type: index.type,
534
- distance: index.distance,
535
- m: index.m,
536
- efConstruction: index.efConstruction,
537
- lists: index.lists,
538
- }, options);
539
- }
540
- /**
541
- * Generate DROP TABLE SQL from a TableNode.
542
- */
543
- generateDropTableFromNode(table, options = {}) {
544
- const ifExists = options.ifExists ? 'IF EXISTS ' : '';
545
- return `DROP TABLE ${ifExists}${this.escapeId(table.name)};`;
546
- }
547
- // ============================================================================
548
- // Phase 3: Builder Operation Methods (Moved forward for unification)
549
- // ============================================================================
550
- generateCreateTableFromDefinition(table, options = {}) {
551
- const tableNode = this.tableDefinitionToNode(table);
552
- return this.generateCreateTableFromNode(tableNode, options);
553
- }
554
- generateDropTableSql(tableName, options) {
555
- const ifExists = options?.ifExists ? 'IF EXISTS ' : '';
556
- // Use dialect-specific cascade support from config
557
- const cascade = options?.cascade && this.features.dropTableCascade ? ' CASCADE' : '';
558
- return `DROP TABLE ${ifExists}${this.escapeId(tableName)}${cascade};`;
559
- }
560
- generateRenameTableSql(oldName, newName) {
561
- if (this.dialect.renameTableSyntax === 'rename-table') {
562
- return `RENAME TABLE ${this.escapeId(oldName)} TO ${this.escapeId(newName)};`;
563
- }
564
- return `ALTER TABLE ${this.escapeId(oldName)} RENAME TO ${this.escapeId(newName)};`;
565
- }
566
- generateAddColumnSql(tableName, column) {
567
- const colSql = this.generateColumnFromNode(this.fullColumnDefinitionToNode(column, tableName));
568
- return `ALTER TABLE ${this.escapeId(tableName)} ADD COLUMN ${colSql};`;
569
- }
570
- generateAlterColumnSql(tableName, columnName, column) {
571
- const colSql = this.generateColumnFromNode(this.fullColumnDefinitionToNode(column, tableName));
572
- return this.generateAlterColumnStatements(tableName, { name: columnName, type: '' }, colSql).join('\n');
573
- }
574
- generateDropColumnSql(tableName, columnName) {
575
- return `ALTER TABLE ${this.escapeId(tableName)} DROP COLUMN ${this.escapeId(columnName)};`;
576
- }
577
- generateRenameColumnSql(tableName, oldName, newName) {
578
- return `ALTER TABLE ${this.escapeId(tableName)} RENAME COLUMN ${this.escapeId(oldName)} TO ${this.escapeId(newName)};`;
579
- }
580
- generateCreateIndexSql(tableName, index) {
581
- return this.generateCreateIndex(tableName, index);
582
- }
583
- generateDropIndexSql(tableName, indexName) {
584
- return this.generateDropIndex(tableName, indexName);
585
- }
586
- generateAddForeignKeySql(tableName, foreignKey) {
587
- const fkCols = foreignKey.columns.map((c) => this.escapeId(c)).join(', ');
588
- const refCols = foreignKey.referencesColumns.map((c) => this.escapeId(c)).join(', ');
589
- const constraintName = foreignKey.name
590
- ? this.escapeId(foreignKey.name)
591
- : this.escapeId(`fk_${tableName}_${foreignKey.columns.join('_')}`);
592
- if (!this.features.foreignKeyAlter) {
593
- throw new Error(`Dialect ${this.dialect} does not support adding foreign keys to existing tables`);
594
- }
595
- return (`ALTER TABLE ${this.escapeId(tableName)} ADD CONSTRAINT ${constraintName} ` +
596
- `FOREIGN KEY (${fkCols}) REFERENCES ${this.escapeId(foreignKey.referencesTable)} (${refCols}) ` +
597
- `ON DELETE ${foreignKey.onDelete ?? this.defaultForeignKeyAction} ON UPDATE ${foreignKey.onUpdate ?? this.defaultForeignKeyAction};`);
598
- }
599
- generateDropForeignKeySql(tableName, constraintName) {
600
- return `ALTER TABLE ${this.escapeId(tableName)} ${this.dialect.dropForeignKeySyntax} ${this.escapeId(constraintName)};`;
601
- }
602
- tableDefinitionToNode(def) {
603
- const columns = new Map();
604
- const pkNodes = [];
605
- const table = {
606
- name: def.name,
607
- columns,
608
- primaryKey: [], // placeholder
609
- indexes: [],
610
- schema: { tables: new Map(), relationships: [], indexes: [] },
611
- incomingRelations: [],
612
- outgoingRelations: [],
613
- comment: def.comment,
614
- };
615
- for (const colDef of def.columns) {
616
- const node = this.fullColumnDefinitionToNode(colDef, def.name);
617
- node.table = table;
618
- columns.set(node.name, node);
619
- if (node.isPrimaryKey) {
620
- pkNodes.push(node);
621
- }
622
- }
623
- const finalPrimaryKey = def.primaryKey
624
- ? def.primaryKey.map((name) => columns.get(name)).filter((c) => c !== undefined)
625
- : pkNodes;
626
- table.primaryKey = finalPrimaryKey;
627
- for (const idxDef of def.indexes) {
628
- const indexNode = {
629
- name: idxDef.name,
630
- table,
631
- columns: idxDef.columns.map((name) => columns.get(name)).filter((c) => c !== undefined),
632
- unique: idxDef.unique,
633
- };
634
- table.indexes.push(indexNode);
635
- }
636
- for (const fkDef of def.foreignKeys) {
637
- const relNode = {
638
- name: fkDef.name ?? `fk_${def.name}_${fkDef.columns.join('_')}`,
639
- type: 'ManyToOne', // Builder default
640
- from: {
641
- table,
642
- columns: fkDef.columns.map((name) => columns.get(name)).filter((c) => c !== undefined),
643
- },
644
- to: {
645
- table: { name: fkDef.referencesTable },
646
- columns: fkDef.referencesColumns.map((name) => ({ name })),
647
- },
648
- onDelete: fkDef.onDelete,
649
- onUpdate: fkDef.onUpdate,
650
- };
651
- table.outgoingRelations.push(relNode);
652
- }
653
- return table;
654
- }
655
- fullColumnDefinitionToNode(col, tableName) {
656
- return {
657
- name: col.name,
658
- type: col.type,
659
- nullable: col.nullable,
660
- defaultValue: col.defaultValue,
661
- isPrimaryKey: col.primaryKey,
662
- isAutoIncrement: col.autoIncrement,
663
- isUnique: col.unique,
664
- comment: col.comment,
665
- table: { name: tableName },
666
- referencedBy: [],
667
- references: col.foreignKey
668
- ? {
669
- name: `fk_${tableName}_${col.name}`,
670
- type: 'ManyToOne',
671
- from: { table: { name: tableName }, columns: [] },
672
- to: {
673
- table: { name: col.foreignKey.table },
674
- columns: col.foreignKey.columns.map((name) => ({ name })),
675
- },
676
- onDelete: col.foreignKey.onDelete,
677
- onUpdate: col.foreignKey.onUpdate,
678
- }
679
- : undefined,
680
- };
681
- }
682
- }
683
- /**
684
- * Synchronous factory for SQL schema generators only.
685
- * For MongoDB, use `createSchemaGeneratorAsync` from `./schemaGeneratorAsync.js` so the optional `mongodb` peer is not loaded at import time.
686
- */
687
- export function createSchemaGenerator(dialect, namingStrategy, defaultForeignKeyAction) {
688
- if (!(dialect instanceof AbstractSqlDialect)) {
689
- return undefined;
690
- }
691
- return new SqlSchemaGenerator(dialect, defaultForeignKeyAction);
692
- }
693
- //# sourceMappingURL=schemaGenerator.js.map