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,155 +0,0 @@
1
- /**
2
- * SchemaAST Class
3
- *
4
- * The main class for working with schema graphs.
5
- * Provides graph operations like navigation, validation, and topological sorting.
6
- */
7
- import type { ColumnNode, IndexNode, SchemaAST as ISchemaAST, RelationshipNode, RelationshipType, TableNode, ValidationError } from './types.js';
8
- /**
9
- * Schema AST - A graph representation of a database schema.
10
- *
11
- * Enables:
12
- * - Graph navigation (dependencies, dependents)
13
- * - Circular dependency detection
14
- * - Topological sorting for correct DDL order
15
- * - Smart relation inference
16
- * - Schema validation
17
- */
18
- export declare class SchemaAST implements ISchemaAST {
19
- readonly tables: Map<string, TableNode>;
20
- readonly relationships: RelationshipNode[];
21
- readonly indexes: IndexNode[];
22
- /**
23
- * Get a table by name.
24
- */
25
- getTable(name: string): TableNode | undefined;
26
- /**
27
- * Add a table to the schema.
28
- */
29
- addTable(table: TableNode): void;
30
- /**
31
- * Remove a table from the schema.
32
- */
33
- removeTable(name: string): boolean;
34
- /**
35
- * Get all table nodes.
36
- */
37
- getTables(): TableNode[];
38
- /**
39
- * Get all table names.
40
- */
41
- getTableNames(): string[];
42
- /**
43
- * Get all tables that depend on this table (have FKs pointing to it).
44
- * These are tables that reference this table's primary key.
45
- */
46
- getDependentTables(table: TableNode): TableNode[];
47
- /**
48
- * Get all tables this table depends on (has FKs to).
49
- * These are tables that this table references.
50
- */
51
- getDependencies(table: TableNode): TableNode[];
52
- /**
53
- * Get the relationship between two tables (if any).
54
- */
55
- getRelationship(from: TableNode, to: TableNode): RelationshipNode | undefined;
56
- /**
57
- * Get all relationships for a table.
58
- */
59
- getTableRelationships(table: TableNode): RelationshipNode[];
60
- /**
61
- * Get the column that a foreign key column references.
62
- */
63
- getReferencedColumn(fkColumn: ColumnNode): ColumnNode | undefined;
64
- /**
65
- * Detect circular foreign key dependencies.
66
- * Returns arrays of tables that form cycles.
67
- */
68
- detectCircularDependencies(): TableNode[][];
69
- /**
70
- * Check if there are any circular dependencies.
71
- */
72
- hasCircularDependencies(): boolean;
73
- /**
74
- * Get tables in correct order for CREATE (dependencies first).
75
- * Tables with no dependencies come first, then tables that depend on them, etc.
76
- */
77
- getCreateOrder(): TableNode[];
78
- /**
79
- * Get tables in correct order for DROP (dependents first).
80
- * Tables that depend on others come first, then the tables they depend on.
81
- */
82
- getDropOrder(): TableNode[];
83
- /**
84
- * Topological sort respecting FK dependencies.
85
- * Uses Kahn's algorithm for stable ordering.
86
- */
87
- private topologicalSort;
88
- /**
89
- * Validate schema integrity.
90
- * Checks for:
91
- * - Missing FK targets
92
- * - Circular dependencies
93
- * - Orphan columns
94
- * - Duplicate indexes
95
- */
96
- validate(): ValidationError[];
97
- /**
98
- * Check if the schema is valid (no validation errors).
99
- */
100
- isValid(): boolean;
101
- /**
102
- * Check if a table looks like a junction table (ManyToMany through).
103
- * Junction tables typically have:
104
- * - Exactly 2 foreign keys
105
- * - Few other columns (id, maybe timestamps)
106
- * - Primary key might be composite of the FKs
107
- */
108
- isJunctionTable(table: TableNode): boolean;
109
- /**
110
- * Infer relation type from schema structure.
111
- */
112
- inferRelationType(rel: RelationshipNode): RelationshipType;
113
- /**
114
- * Get the inverse relation type.
115
- */
116
- getInverseRelationType(type: RelationshipType): RelationshipType;
117
- /**
118
- * Add an index to the schema.
119
- */
120
- addIndex(index: IndexNode): void;
121
- /**
122
- * Get all indexes for a table.
123
- */
124
- getTableIndexes(tableName: string): IndexNode[];
125
- /**
126
- * Find an index by name.
127
- */
128
- getIndex(name: string): IndexNode | undefined;
129
- /**
130
- * Add a relationship to the schema.
131
- */
132
- addRelationship(rel: RelationshipNode): void;
133
- /**
134
- * Remove a relationship from the schema.
135
- */
136
- removeRelationship(name: string): boolean;
137
- /**
138
- * Create a deep clone of this schema.
139
- */
140
- clone(): SchemaAST;
141
- /**
142
- * Get statistics about the schema.
143
- */
144
- getStats(): {
145
- tableCount: number;
146
- columnCount: number;
147
- relationshipCount: number;
148
- indexCount: number;
149
- };
150
- /**
151
- * Convert schema to a plain object for serialization/debugging.
152
- */
153
- toJSON(): object;
154
- }
155
- //# sourceMappingURL=schemaAST.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaAST.d.ts","sourceRoot":"","sources":["../../src/schema/schemaAST.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,SAAS,IAAI,UAAU,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IACpD,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,CAAM;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAM;IAMnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKhC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAsBlC;;OAEG;IACH,SAAS,IAAI,SAAS,EAAE;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAQzB;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;IAIjD;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;IAI9C;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAI7E;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,EAAE;IAI3D;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAQjE;;;OAGG;IACH,0BAA0B,IAAI,SAAS,EAAE,EAAE;IAgC3C;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;;OAGG;IACH,cAAc,IAAI,SAAS,EAAE;IAI7B;;;OAGG;IACH,YAAY,IAAI,SAAS,EAAE;IAI3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA4BvB;;;;;;;OAOG;IACH,QAAQ,IAAI,eAAe,EAAE;IA0C7B;;OAEG;IACH,OAAO,IAAI,OAAO;IAQlB;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IA0B1C;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB;IAiB1D;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB;IAiBhE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAOhC;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAK/C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAQ7C;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAgB5C;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAgCzC;;OAEG;IACH,KAAK,IAAI,SAAS;IAyFlB;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB;IAcD;;OAEG;IACH,MAAM,IAAI,MAAM;CA4BjB"}
@@ -1,496 +0,0 @@
1
- /**
2
- * SchemaAST Class
3
- *
4
- * The main class for working with schema graphs.
5
- * Provides graph operations like navigation, validation, and topological sorting.
6
- */
7
- /**
8
- * Schema AST - A graph representation of a database schema.
9
- *
10
- * Enables:
11
- * - Graph navigation (dependencies, dependents)
12
- * - Circular dependency detection
13
- * - Topological sorting for correct DDL order
14
- * - Smart relation inference
15
- * - Schema validation
16
- */
17
- export class SchemaAST {
18
- tables = new Map();
19
- relationships = [];
20
- indexes = [];
21
- // ============================================================================
22
- // Table Operations
23
- // ============================================================================
24
- /**
25
- * Get a table by name.
26
- */
27
- getTable(name) {
28
- return this.tables.get(name);
29
- }
30
- /**
31
- * Add a table to the schema.
32
- */
33
- addTable(table) {
34
- table.schema = this;
35
- this.tables.set(table.name, table);
36
- }
37
- /**
38
- * Remove a table from the schema.
39
- */
40
- removeTable(name) {
41
- const table = this.tables.get(name);
42
- if (!table)
43
- return false;
44
- // Remove all relationships involving this table
45
- for (let i = this.relationships.length - 1; i >= 0; i--) {
46
- const rel = this.relationships[i];
47
- if (rel.from.table === table || rel.to.table === table) {
48
- this.relationships.splice(i, 1);
49
- }
50
- }
51
- // Remove all indexes for this table
52
- for (let i = this.indexes.length - 1; i >= 0; i--) {
53
- if (this.indexes[i].table === table) {
54
- this.indexes.splice(i, 1);
55
- }
56
- }
57
- return this.tables.delete(name);
58
- }
59
- /**
60
- * Get all table nodes.
61
- */
62
- getTables() {
63
- return Array.from(this.tables.values());
64
- }
65
- /**
66
- * Get all table names.
67
- */
68
- getTableNames() {
69
- return Array.from(this.tables.keys());
70
- }
71
- // ============================================================================
72
- // Graph Navigation
73
- // ============================================================================
74
- /**
75
- * Get all tables that depend on this table (have FKs pointing to it).
76
- * These are tables that reference this table's primary key.
77
- */
78
- getDependentTables(table) {
79
- return table.incomingRelations.map((r) => r.from.table);
80
- }
81
- /**
82
- * Get all tables this table depends on (has FKs to).
83
- * These are tables that this table references.
84
- */
85
- getDependencies(table) {
86
- return table.outgoingRelations.map((r) => r.to.table);
87
- }
88
- /**
89
- * Get the relationship between two tables (if any).
90
- */
91
- getRelationship(from, to) {
92
- return this.relationships.find((r) => r.from.table === from && r.to.table === to);
93
- }
94
- /**
95
- * Get all relationships for a table.
96
- */
97
- getTableRelationships(table) {
98
- return this.relationships.filter((r) => r.from.table === table || r.to.table === table);
99
- }
100
- /**
101
- * Get the column that a foreign key column references.
102
- */
103
- getReferencedColumn(fkColumn) {
104
- return fkColumn.references?.to.columns[0];
105
- }
106
- // ============================================================================
107
- // Graph Analysis
108
- // ============================================================================
109
- /**
110
- * Detect circular foreign key dependencies.
111
- * Returns arrays of tables that form cycles.
112
- */
113
- detectCircularDependencies() {
114
- const cycles = [];
115
- const visited = new Set();
116
- const stack = new Set();
117
- const dfs = (table, path) => {
118
- if (stack.has(table)) {
119
- const cycleStart = path.indexOf(table);
120
- if (cycleStart !== -1) {
121
- cycles.push(path.slice(cycleStart));
122
- }
123
- return;
124
- }
125
- if (visited.has(table))
126
- return;
127
- visited.add(table);
128
- stack.add(table);
129
- for (const dep of this.getDependencies(table)) {
130
- dfs(dep, [...path, table]);
131
- }
132
- stack.delete(table);
133
- };
134
- for (const table of this.tables.values()) {
135
- dfs(table, []);
136
- }
137
- return cycles;
138
- }
139
- /**
140
- * Check if there are any circular dependencies.
141
- */
142
- hasCircularDependencies() {
143
- return this.detectCircularDependencies().length > 0;
144
- }
145
- /**
146
- * Get tables in correct order for CREATE (dependencies first).
147
- * Tables with no dependencies come first, then tables that depend on them, etc.
148
- */
149
- getCreateOrder() {
150
- return this.topologicalSort();
151
- }
152
- /**
153
- * Get tables in correct order for DROP (dependents first).
154
- * Tables that depend on others come first, then the tables they depend on.
155
- */
156
- getDropOrder() {
157
- return this.topologicalSort().reverse();
158
- }
159
- /**
160
- * Topological sort respecting FK dependencies.
161
- * Uses Kahn's algorithm for stable ordering.
162
- */
163
- topologicalSort() {
164
- const result = [];
165
- const visited = new Set();
166
- const visit = (table) => {
167
- if (visited.has(table))
168
- return;
169
- visited.add(table);
170
- // Visit dependencies first (tables this table references)
171
- for (const dep of this.getDependencies(table)) {
172
- visit(dep);
173
- }
174
- result.push(table);
175
- };
176
- // Visit all tables
177
- for (const table of this.tables.values()) {
178
- visit(table);
179
- }
180
- return result;
181
- }
182
- // ============================================================================
183
- // Validation
184
- // ============================================================================
185
- /**
186
- * Validate schema integrity.
187
- * Checks for:
188
- * - Missing FK targets
189
- * - Circular dependencies
190
- * - Orphan columns
191
- * - Duplicate indexes
192
- */
193
- validate() {
194
- const errors = [];
195
- // Check all FK targets exist
196
- for (const rel of this.relationships) {
197
- if (!this.tables.has(rel.to.table.name)) {
198
- errors.push({
199
- type: 'missing_fk_target',
200
- message: `FK target table "${rel.to.table.name}" does not exist`,
201
- relationship: rel,
202
- });
203
- }
204
- }
205
- // Check for circular dependencies
206
- const cycles = this.detectCircularDependencies();
207
- for (const cycle of cycles) {
208
- errors.push({
209
- type: 'circular_dependency',
210
- message: `Circular FK: ${cycle.map((t) => t.name).join(' -> ')}`,
211
- tables: cycle,
212
- });
213
- }
214
- // Check for duplicate index names within same table
215
- for (const table of this.tables.values()) {
216
- const indexNames = new Set();
217
- for (const index of table.indexes) {
218
- if (indexNames.has(index.name)) {
219
- errors.push({
220
- type: 'duplicate_index',
221
- message: `Duplicate index name "${index.name}" in table "${table.name}"`,
222
- table,
223
- });
224
- }
225
- indexNames.add(index.name);
226
- }
227
- }
228
- return errors;
229
- }
230
- /**
231
- * Check if the schema is valid (no validation errors).
232
- */
233
- isValid() {
234
- return this.validate().length === 0;
235
- }
236
- // ============================================================================
237
- // Smart Relation Detection
238
- // ============================================================================
239
- /**
240
- * Check if a table looks like a junction table (ManyToMany through).
241
- * Junction tables typically have:
242
- * - Exactly 2 foreign keys
243
- * - Few other columns (id, maybe timestamps)
244
- * - Primary key might be composite of the FKs
245
- */
246
- isJunctionTable(table) {
247
- const fkCount = table.outgoingRelations.length;
248
- const columnCount = table.columns.size;
249
- // Must have exactly 2 FKs
250
- if (fkCount !== 2) {
251
- return false;
252
- }
253
- // Should have few columns (typically: id + 2 FKs + maybe timestamps)
254
- if (columnCount > 6) {
255
- return false;
256
- }
257
- // Check if name suggests a junction (contains both related table names)
258
- const relatedTables = table.outgoingRelations.map((r) => r.to.table.name.toLowerCase());
259
- const tableName = table.name.toLowerCase();
260
- // Common patterns: user_roles, post_tags, etc.
261
- const containsBothNames = relatedTables.every((name) => tableName.includes(name.replace(/s$/, '')) || tableName.includes(name));
262
- return containsBothNames || columnCount <= 5;
263
- }
264
- /**
265
- * Infer relation type from schema structure.
266
- */
267
- inferRelationType(rel) {
268
- const fromCol = rel.from.columns[0];
269
- // Check if source is junction table -> ManyToMany
270
- if (this.isJunctionTable(rel.from.table)) {
271
- return 'ManyToMany';
272
- }
273
- // Unique FK -> OneToOne
274
- if (fromCol?.isUnique) {
275
- return 'OneToOne';
276
- }
277
- // Default: ManyToOne (many rows can reference same target)
278
- return 'ManyToOne';
279
- }
280
- /**
281
- * Get the inverse relation type.
282
- */
283
- getInverseRelationType(type) {
284
- switch (type) {
285
- case 'OneToOne':
286
- return 'OneToOne';
287
- case 'OneToMany':
288
- return 'ManyToOne';
289
- case 'ManyToOne':
290
- return 'OneToMany';
291
- case 'ManyToMany':
292
- return 'ManyToMany';
293
- }
294
- }
295
- // ============================================================================
296
- // Index Operations
297
- // ============================================================================
298
- /**
299
- * Add an index to the schema.
300
- */
301
- addIndex(index) {
302
- this.indexes.push(index);
303
- if (!index.table.indexes.includes(index)) {
304
- index.table.indexes.push(index);
305
- }
306
- }
307
- /**
308
- * Get all indexes for a table.
309
- */
310
- getTableIndexes(tableName) {
311
- const table = this.tables.get(tableName);
312
- return table?.indexes ?? [];
313
- }
314
- /**
315
- * Find an index by name.
316
- */
317
- getIndex(name) {
318
- return this.indexes.find((i) => i.name === name);
319
- }
320
- // ============================================================================
321
- // Relationship Operations
322
- // ============================================================================
323
- /**
324
- * Add a relationship to the schema.
325
- */
326
- addRelationship(rel) {
327
- this.relationships.push(rel);
328
- // Update table links
329
- rel.from.table.outgoingRelations.push(rel);
330
- rel.to.table.incomingRelations.push(rel);
331
- // Update column links
332
- for (const col of rel.from.columns) {
333
- col.references = rel;
334
- }
335
- for (const col of rel.to.columns) {
336
- col.referencedBy.push(rel);
337
- }
338
- }
339
- /**
340
- * Remove a relationship from the schema.
341
- */
342
- removeRelationship(name) {
343
- const index = this.relationships.findIndex((r) => r.name === name);
344
- if (index === -1)
345
- return false;
346
- const rel = this.relationships[index];
347
- // Remove from table links
348
- const fromIdx = rel.from.table.outgoingRelations.indexOf(rel);
349
- if (fromIdx !== -1)
350
- rel.from.table.outgoingRelations.splice(fromIdx, 1);
351
- const toIdx = rel.to.table.incomingRelations.indexOf(rel);
352
- if (toIdx !== -1)
353
- rel.to.table.incomingRelations.splice(toIdx, 1);
354
- // Remove from column links
355
- for (const col of rel.from.columns) {
356
- if (col.references === rel) {
357
- col.references = undefined;
358
- }
359
- }
360
- for (const col of rel.to.columns) {
361
- const refIdx = col.referencedBy.indexOf(rel);
362
- if (refIdx !== -1)
363
- col.referencedBy.splice(refIdx, 1);
364
- }
365
- this.relationships.splice(index, 1);
366
- return true;
367
- }
368
- // ============================================================================
369
- // Utility Methods
370
- // ============================================================================
371
- /**
372
- * Create a deep clone of this schema.
373
- */
374
- clone() {
375
- const clone = new SchemaAST();
376
- // First pass: clone tables and columns (without links)
377
- for (const [name, table] of this.tables) {
378
- const clonedColumns = new Map();
379
- for (const [colName, col] of table.columns) {
380
- const clonedCol = {
381
- ...col,
382
- table: undefined, // Will be set below
383
- referencedBy: [],
384
- references: undefined,
385
- };
386
- clonedColumns.set(colName, clonedCol);
387
- }
388
- const clonedTable = {
389
- name,
390
- columns: clonedColumns,
391
- primaryKey: [],
392
- indexes: [],
393
- comment: table.comment,
394
- schema: clone,
395
- incomingRelations: [],
396
- outgoingRelations: [],
397
- };
398
- // Link columns to table
399
- for (const col of clonedColumns.values()) {
400
- col.table = clonedTable;
401
- }
402
- // Set primary key
403
- clonedTable.primaryKey = table.primaryKey
404
- .map((pk) => clonedColumns.get(pk.name))
405
- .filter(Boolean);
406
- clone.tables.set(name, clonedTable);
407
- }
408
- // Second pass: clone relationships
409
- for (const rel of this.relationships) {
410
- const fromTable = clone.tables.get(rel.from.table.name);
411
- const toTable = clone.tables.get(rel.to.table.name);
412
- if (!fromTable || !toTable)
413
- continue;
414
- const fromColumns = rel.from.columns
415
- .map((c) => fromTable.columns.get(c.name))
416
- .filter((c) => c !== undefined);
417
- const toColumns = rel.to.columns
418
- .map((c) => toTable.columns.get(c.name))
419
- .filter((c) => c !== undefined);
420
- const clonedRel = {
421
- ...rel,
422
- from: {
423
- table: fromTable,
424
- columns: fromColumns,
425
- },
426
- to: {
427
- table: toTable,
428
- columns: toColumns,
429
- },
430
- through: rel.through ? clone.tables.get(rel.through.name) : undefined,
431
- };
432
- clone.addRelationship(clonedRel);
433
- }
434
- // Third pass: clone indexes
435
- for (const idx of this.indexes) {
436
- const table = clone.tables.get(idx.table.name);
437
- if (!table)
438
- continue;
439
- const columns = idx.columns.map((c) => table.columns.get(c.name)).filter((c) => c !== undefined);
440
- const clonedIdx = {
441
- ...idx,
442
- table,
443
- columns,
444
- };
445
- clone.addIndex(clonedIdx);
446
- }
447
- return clone;
448
- }
449
- /**
450
- * Get statistics about the schema.
451
- */
452
- getStats() {
453
- let columnCount = 0;
454
- for (const table of this.tables.values()) {
455
- columnCount += table.columns.size;
456
- }
457
- return {
458
- tableCount: this.tables.size,
459
- columnCount,
460
- relationshipCount: this.relationships.length,
461
- indexCount: this.indexes.length,
462
- };
463
- }
464
- /**
465
- * Convert schema to a plain object for serialization/debugging.
466
- */
467
- toJSON() {
468
- return {
469
- tables: Array.from(this.tables.values()).map((t) => ({
470
- name: t.name,
471
- columns: Array.from(t.columns.values()).map((c) => ({
472
- name: c.name,
473
- type: c.type,
474
- nullable: c.nullable,
475
- isPrimaryKey: c.isPrimaryKey,
476
- isAutoIncrement: c.isAutoIncrement,
477
- isUnique: c.isUnique,
478
- })),
479
- indexes: t.indexes.map((i) => ({
480
- name: i.name,
481
- columns: i.columns.map((c) => c.name),
482
- unique: i.unique,
483
- })),
484
- })),
485
- relationships: this.relationships.map((r) => ({
486
- name: r.name,
487
- type: r.type,
488
- from: `${r.from.table.name}.${r.from.columns.map((c) => c.name).join(',')}`,
489
- to: `${r.to.table.name}.${r.to.columns.map((c) => c.name).join(',')}`,
490
- onDelete: r.onDelete,
491
- onUpdate: r.onUpdate,
492
- })),
493
- };
494
- }
495
- }
496
- //# sourceMappingURL=schemaAST.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaAST.js","sourceRoot":"","sources":["../../src/schema/schemaAST.ts"],"names":[],"mappings":"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"}