uql-orm 0.9.4 → 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 +7 -0
  2. package/README.md +62 -683
  3. package/dist/browser/uql-browser.min.js +1380 -0
  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 -138
  483. package/dist/querier/abstractQuerier.d.ts.map +0 -1
  484. package/dist/querier/abstractQuerier.js +0 -426
  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 -162
  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 -700
  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,405 +0,0 @@
1
- /**
2
- * Entity Code Generator
3
- *
4
- * Generates TypeScript entity files from SchemaAST.
5
- * Supports:
6
- * - ES Module syntax
7
- * - TypeScript types
8
- * - Relations with proper decorators
9
- * - Indexes
10
- * - JSDoc comments for sync-added fields
11
- */
12
- import { canonicalToColumnType, canonicalToTypeScript } from '../../schema/canonicalType.js';
13
- import { camelCase, pascalCase, singularize } from '../../util/string.util.js';
14
- /**
15
- * Generates TypeScript entity code from SchemaAST.
16
- */
17
- export class EntityCodeGenerator {
18
- ast;
19
- options;
20
- constructor(ast, options = {}) {
21
- this.ast = ast;
22
- this.options = {
23
- uqlImportPath: options.uqlImportPath ?? 'uql-orm',
24
- addSyncComments: options.addSyncComments ?? true,
25
- classNameTransformer: options.classNameTransformer ?? this.defaultClassNameTransformer.bind(this),
26
- propertyNameTransformer: options.propertyNameTransformer ?? this.defaultPropertyNameTransformer.bind(this),
27
- includeRelations: options.includeRelations ?? true,
28
- includeIndexes: options.includeIndexes ?? true,
29
- singularize: options.singularize ?? this.defaultSingularize.bind(this),
30
- };
31
- }
32
- /**
33
- * Generate entities for all tables in the AST.
34
- */
35
- generateAll() {
36
- const entities = [];
37
- for (const table of this.ast.tables.values()) {
38
- entities.push(this.generateEntity(table));
39
- }
40
- return entities;
41
- }
42
- /**
43
- * Generate entity for a specific table.
44
- */
45
- generateForTable(tableName) {
46
- const table = this.ast.getTable(tableName);
47
- if (!table)
48
- return undefined;
49
- return this.generateEntity(table);
50
- }
51
- /**
52
- * Generate entity code for a table.
53
- */
54
- generateEntity(table) {
55
- const className = this.options.classNameTransformer(table.name);
56
- const fileName = `${className}.ts`;
57
- const imports = this.buildImports(table);
58
- const decorators = this.buildEntityDecorators(table);
59
- const fields = this.buildFields(table);
60
- const relations = this.options.includeRelations ? this.buildRelations(table) : '';
61
- const code = [imports, '', decorators, `export class ${className} {`, fields, relations, '}', ''].join('\n');
62
- return {
63
- className,
64
- tableName: table.name,
65
- code,
66
- fileName,
67
- };
68
- }
69
- /**
70
- * Build import statements.
71
- */
72
- buildImports(table) {
73
- const uqlImports = new Set(['Entity', 'Field']);
74
- const relatedImports = [];
75
- // Check for Id decorator
76
- for (const col of table.columns.values()) {
77
- if (col.isPrimaryKey) {
78
- uqlImports.add('Id');
79
- }
80
- }
81
- // Check for relation decorators
82
- if (this.options.includeRelations) {
83
- for (const rel of [...table.incomingRelations, ...table.outgoingRelations]) {
84
- uqlImports.add(this.getRelationDecoratorName(rel.type));
85
- uqlImports.add('Relation');
86
- const relatedTable = rel.from.table === table ? rel.to.table : rel.from.table;
87
- const relatedClassName = this.options.classNameTransformer(relatedTable.name);
88
- if (!relatedImports.includes(relatedClassName)) {
89
- relatedImports.push(relatedClassName);
90
- }
91
- }
92
- }
93
- // Check for composite index decorators
94
- if (this.options.includeIndexes) {
95
- const compositeIndexes = this.ast.getTableIndexes(table.name).filter((idx) => idx.columns.length > 1);
96
- if (compositeIndexes.length > 0) {
97
- uqlImports.add('Index');
98
- }
99
- }
100
- let code = `import { ${Array.from(uqlImports).sort().join(', ')} } from '${this.options.uqlImportPath}';\n`;
101
- // Add related entity imports
102
- for (const className of relatedImports.sort()) {
103
- code += `import { ${className} } from './${className}.js';\n`;
104
- }
105
- return code;
106
- }
107
- /**
108
- * Build entity decorators.
109
- */
110
- buildEntityDecorators(table) {
111
- const lines = [];
112
- // Add composite index decorators
113
- if (this.options.includeIndexes) {
114
- const compositeIndexes = this.ast.getTableIndexes(table.name).filter((idx) => idx.columns.length > 1);
115
- for (const idx of compositeIndexes) {
116
- const propNames = idx.columns.map((c) => `'${this.options.propertyNameTransformer(c.name)}'`).join(', ');
117
- const options = [];
118
- if (idx.name)
119
- options.push(`name: '${idx.name}'`);
120
- if (idx.unique)
121
- options.push('unique: true');
122
- const optStr = options.length > 0 ? `, { ${options.join(', ')} }` : '';
123
- lines.push(`@Index([${propNames}]${optStr})`);
124
- }
125
- }
126
- // Entity decorator
127
- lines.push(`@Entity({ name: '${table.name}' })`);
128
- return lines.join('\n');
129
- }
130
- /**
131
- * Build field definitions.
132
- */
133
- buildFields(table) {
134
- const lines = [];
135
- for (const col of table.columns.values()) {
136
- const fieldCode = this.buildField(col);
137
- lines.push(fieldCode);
138
- }
139
- return lines.join('\n\n');
140
- }
141
- /**
142
- * Build a single field definition.
143
- */
144
- buildField(col) {
145
- const lines = [];
146
- const propertyName = this.options.propertyNameTransformer(col.name);
147
- const tsType = canonicalToTypeScript(col.type);
148
- // JSDoc comment if enabled
149
- if (this.options.addSyncComments) {
150
- lines.push(' /**');
151
- lines.push(` * @sync-added ${new Date().toISOString().split('T')[0]}`);
152
- lines.push(` * Column: ${col.name} (${this.formatTypeDescription(col.type)})`);
153
- if (col.comment) {
154
- lines.push(` * ${col.comment}`);
155
- }
156
- lines.push(' */');
157
- }
158
- // Decorator
159
- if (col.isPrimaryKey) {
160
- const idOptions = this.buildIdOptions(col);
161
- lines.push(` @Id(${idOptions})`);
162
- }
163
- else {
164
- const fieldOptions = this.buildFieldOptions(col);
165
- lines.push(` @Field(${fieldOptions})`);
166
- }
167
- // Property
168
- const nullable = col.nullable ? '?' : '';
169
- lines.push(` ${propertyName}${nullable}: ${tsType};`);
170
- return lines.join('\n');
171
- }
172
- /**
173
- * Build Id decorator options.
174
- */
175
- buildIdOptions(col) {
176
- const options = [];
177
- if (col.name !== 'id') {
178
- options.push(`name: '${col.name}'`);
179
- }
180
- return options.length > 0 ? `{ ${options.join(', ')} }` : '';
181
- }
182
- /**
183
- * Build Field decorator options.
184
- */
185
- buildFieldOptions(col) {
186
- const options = [];
187
- // Column type
188
- const columnType = canonicalToColumnType(col.type);
189
- if (columnType) {
190
- options.push(`columnType: '${columnType}'`);
191
- }
192
- // Length
193
- if (col.type.length && col.type.category === 'string') {
194
- options.push(`length: ${col.type.length}`);
195
- }
196
- // Precision and scale
197
- if (col.type.precision) {
198
- options.push(`precision: ${col.type.precision}`);
199
- if (col.type.scale) {
200
- options.push(`scale: ${col.type.scale}`);
201
- }
202
- }
203
- // Nullable
204
- if (col.nullable) {
205
- options.push('nullable: true');
206
- }
207
- // Unique
208
- if (col.isUnique) {
209
- options.push('unique: true');
210
- }
211
- // Default value
212
- if (col.defaultValue !== undefined) {
213
- options.push(`defaultValue: ${this.formatDefaultValue(col.defaultValue)}`);
214
- }
215
- // Index (single column)
216
- if (this.options.includeIndexes) {
217
- const indexes = this.ast.getTableIndexes(col.table.name);
218
- const singleColIndex = indexes.find((idx) => idx.columns.length === 1 && idx.columns[0].name === col.name);
219
- if (singleColIndex) {
220
- options.push(`index: '${singleColIndex.name}'`);
221
- }
222
- }
223
- return options.length > 0 ? `{ ${options.join(', ')} }` : '';
224
- }
225
- /**
226
- * Build relation definitions.
227
- */
228
- buildRelations(table) {
229
- const lines = [];
230
- // Outgoing relations (this table has FK)
231
- for (const rel of table.outgoingRelations) {
232
- const relCode = this.buildOutgoingRelation(rel, table);
233
- lines.push(relCode);
234
- }
235
- // Incoming relations (other tables have FK to this)
236
- for (const rel of table.incomingRelations) {
237
- const relCode = this.buildIncomingRelation(rel, table);
238
- lines.push(relCode);
239
- }
240
- if (lines.length > 0) {
241
- return '\n' + lines.join('\n\n');
242
- }
243
- return '';
244
- }
245
- /**
246
- * Build outgoing relation (ManyToOne or OneToOne where this table has FK).
247
- */
248
- buildOutgoingRelation(rel, table) {
249
- const lines = [];
250
- const relatedClassName = this.options.classNameTransformer(rel.to.table.name);
251
- // Try to derive property name from FK column name (e.g., author_id -> author)
252
- let propertyName = '';
253
- const firstCol = rel.from.columns[0]?.name;
254
- if (firstCol && (firstCol.toLowerCase().endsWith('_id') || firstCol.toLowerCase().endsWith('id'))) {
255
- const baseName = firstCol.replace(/_?id$/i, '');
256
- propertyName = this.options.propertyNameTransformer(baseName);
257
- }
258
- else {
259
- propertyName = this.options.propertyNameTransformer(this.options.singularize(rel.to.table.name));
260
- }
261
- const decoratorName = this.getRelationDecoratorName(rel.type);
262
- // JSDoc
263
- if (this.options.addSyncComments) {
264
- lines.push(' /**');
265
- lines.push(` * @sync-added ${new Date().toISOString().split('T')[0]}`);
266
- lines.push(` * Relation to ${rel.to.table.name} via ${rel.from.columns.map((c) => c.name).join(', ')}`);
267
- if (rel.confidence !== undefined && rel.confidence < 1.0) {
268
- lines.push(` * Inferred (${(rel.confidence * 100).toFixed(0)}% confidence)`);
269
- }
270
- lines.push(' */');
271
- }
272
- // Decorator
273
- lines.push(` @${decoratorName}({ entity: () => ${relatedClassName} })`);
274
- // Property
275
- lines.push(` ${propertyName}?: Relation<${relatedClassName}>;`);
276
- return lines.join('\n');
277
- }
278
- /**
279
- * Build incoming relation (OneToMany where other tables have FK to this).
280
- */
281
- buildIncomingRelation(rel, table) {
282
- const lines = [];
283
- const relatedClassName = this.options.classNameTransformer(rel.from.table.name);
284
- const propertyName = this.options.propertyNameTransformer(rel.from.table.name);
285
- const inverseType = this.ast.getInverseRelationType(rel.type);
286
- const decoratorName = this.getRelationDecoratorName(inverseType);
287
- // JSDoc
288
- if (this.options.addSyncComments) {
289
- lines.push(' /**');
290
- lines.push(` * @sync-added ${new Date().toISOString().split('T')[0]}`);
291
- lines.push(` * Inverse relation from ${rel.from.table.name}`);
292
- lines.push(' */');
293
- }
294
- // Decorator - includes references to property name
295
- const inverseProp = this.options.propertyNameTransformer(this.options.singularize(table.name));
296
- lines.push(` @${decoratorName}({ entity: () => ${relatedClassName}, references: '${inverseProp}' })`);
297
- // Property
298
- if (inverseType === 'OneToMany' || inverseType === 'ManyToMany') {
299
- lines.push(` ${propertyName}?: Relation<${relatedClassName}[]>;`);
300
- }
301
- else {
302
- lines.push(` ${propertyName}?: Relation<${relatedClassName}>;`);
303
- }
304
- return lines.join('\n');
305
- }
306
- // ============================================================================
307
- // Helper Methods
308
- // ============================================================================
309
- /**
310
- * Get decorator name for relation type.
311
- */
312
- getRelationDecoratorName(type) {
313
- switch (type) {
314
- case 'OneToOne':
315
- return 'OneToOne';
316
- case 'OneToMany':
317
- return 'OneToMany';
318
- case 'ManyToOne':
319
- return 'ManyToOne';
320
- case 'ManyToMany':
321
- return 'ManyToMany';
322
- }
323
- }
324
- /**
325
- * Format type for description.
326
- */
327
- formatTypeDescription(type) {
328
- let desc = type.category.toUpperCase();
329
- if (type.size)
330
- desc = `${type.size.toUpperCase()}${desc}`;
331
- if (type.length)
332
- desc += `(${type.length})`;
333
- if (type.precision) {
334
- desc += `(${type.precision}`;
335
- if (type.scale)
336
- desc += `,${type.scale}`;
337
- desc += ')';
338
- }
339
- if (type.unsigned)
340
- desc += ' UNSIGNED';
341
- return desc;
342
- }
343
- /**
344
- * Format default value for code.
345
- */
346
- formatDefaultValue(value) {
347
- if (typeof value === 'string') {
348
- // Check for SQL expressions
349
- if (value.includes('(') ||
350
- value.toUpperCase() === 'CURRENT_TIMESTAMP' ||
351
- value.toUpperCase().includes('NEXTVAL')) {
352
- return `'${value}'`; // Keep as string for expressions
353
- }
354
- return `'${value.replace(/'/g, "\\'")}'`;
355
- }
356
- if (typeof value === 'boolean') {
357
- return value.toString();
358
- }
359
- if (typeof value === 'number') {
360
- return value.toString();
361
- }
362
- if (value === null) {
363
- return 'null';
364
- }
365
- return JSON.stringify(value);
366
- }
367
- /**
368
- * Default class name transformer: table_name -> TableName (PascalCase, singular).
369
- */
370
- defaultClassNameTransformer(tableName) {
371
- const singular = this.options.singularize(tableName);
372
- return this.toPascalCase(singular);
373
- }
374
- /**
375
- * Default property name transformer: column_name -> columnName (camelCase).
376
- */
377
- defaultPropertyNameTransformer(name) {
378
- return this.toCamelCase(name);
379
- }
380
- /**
381
- * Convert to PascalCase (delegates to shared utility).
382
- */
383
- toPascalCase(str) {
384
- return pascalCase(str);
385
- }
386
- /**
387
- * Convert to camelCase (delegates to shared utility).
388
- */
389
- toCamelCase(str) {
390
- return camelCase(str);
391
- }
392
- /**
393
- * Default singularize function (delegates to shared utility).
394
- */
395
- defaultSingularize(name) {
396
- return singularize(name);
397
- }
398
- }
399
- /**
400
- * Create an EntityCodeGenerator from SchemaAST.
401
- */
402
- export function createEntityCodeGenerator(ast, options) {
403
- return new EntityCodeGenerator(ast, options);
404
- }
405
- //# sourceMappingURL=entityCodeGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entityCodeGenerator.js","sourceRoot":"","sources":["../../../src/migrate/codegen/entityCodeGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,115 +0,0 @@
1
- /**
2
- * Entity Merger
3
- *
4
- * Merges generated entity code with existing TypeScript entity files.
5
- * Uses string-based parsing to add new fields with JSDoc comments.
6
- */
7
- import type { ColumnNode, RelationshipNode } from '../../schema/types.js';
8
- /**
9
- * Options for entity merging.
10
- */
11
- export interface EntityMergerOptions {
12
- /** Add JSDoc @sync-added comments to new fields */
13
- addSyncComments?: boolean;
14
- /** Mark removed fields with @deprecated instead of deleting */
15
- markRemovedAsDeprecated?: boolean;
16
- /** Custom property name transformer */
17
- propertyNameTransformer?: (columnName: string) => string;
18
- }
19
- /**
20
- * Represents a field to add to an entity.
21
- */
22
- export interface FieldToAdd {
23
- column: ColumnNode;
24
- propertyName: string;
25
- isRelation?: boolean;
26
- relation?: RelationshipNode;
27
- }
28
- /**
29
- * Represents a field to mark as deprecated.
30
- */
31
- export interface FieldToDeprecate {
32
- propertyName: string;
33
- reason: string;
34
- }
35
- /**
36
- * Result of entity merge operation.
37
- */
38
- export interface MergeResult {
39
- /** The merged source code */
40
- code: string;
41
- /** Number of fields added */
42
- fieldsAdded: number;
43
- /** Number of fields marked deprecated */
44
- fieldsDeprecated: number;
45
- /** Whether the file was modified */
46
- modified: boolean;
47
- }
48
- /**
49
- * Merges new fields from database schema into existing entity files.
50
- */
51
- export declare class EntityMerger {
52
- private readonly options;
53
- constructor(options?: EntityMergerOptions);
54
- /**
55
- * Merge new fields into existing entity source code.
56
- */
57
- merge(existingCode: string, fieldsToAdd: FieldToAdd[], fieldsToDeprecate?: FieldToDeprecate[]): MergeResult;
58
- /**
59
- * Extract existing property names from entity code.
60
- */
61
- private extractPropertyNames;
62
- /**
63
- * Find the position to insert new fields (before the last closing brace).
64
- */
65
- private findInsertPosition;
66
- /**
67
- * Count net brace depth change in a line.
68
- */
69
- private countBraces;
70
- /**
71
- * Generate code for new fields.
72
- */
73
- private generateFieldsCode;
74
- /**
75
- * Generate code for a column field.
76
- */
77
- private generateColumnField;
78
- /**
79
- * Generate code for a relation field.
80
- */
81
- private generateRelationField;
82
- /**
83
- * Mark a field as deprecated in the source code.
84
- */
85
- private markFieldAsDeprecated;
86
- /**
87
- * Build Field decorator options string.
88
- */
89
- private buildFieldOptions;
90
- /**
91
- * Format type for description.
92
- */
93
- private formatTypeDescription;
94
- /**
95
- * Get relation decorator name.
96
- */
97
- private getRelationDecoratorName;
98
- /**
99
- * Default property name transformer (delegates to shared utility).
100
- */
101
- private defaultPropertyNameTransformer;
102
- /**
103
- * Convert to PascalCase (delegates to shared utility).
104
- */
105
- private toPascalCase;
106
- /**
107
- * Singularize (delegates to shared utility).
108
- */
109
- private singularize;
110
- }
111
- /**
112
- * Create an EntityMerger instance.
113
- */
114
- export declare function createEntityMerger(options?: EntityMergerOptions): EntityMerger;
115
- //# sourceMappingURL=entityMerger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entityMerger.d.ts","sourceRoot":"","sources":["../../../src/migrate/codegen/entityMerger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAiB,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,uCAAuC;IACvC,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAE5C,OAAO,GAAE,mBAAwB;IAQ7C;;OAEG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAAE,gBAAgB,EAAO,GAAG,WAAW;IA6C/G;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAItC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;CAGpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAE9E"}