@uql/core 3.1.1 → 3.1.3

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 (599) hide show
  1. package/CHANGELOG.md +136 -185
  2. package/{dist/README.md → README.md} +22 -27
  3. package/dist/browser/cc-BEf4wTUm.js +535 -0
  4. package/dist/browser/cc-BEf4wTUm.js.map +1 -0
  5. package/dist/browser/http/bus.d.ts +1 -0
  6. package/dist/browser/http/bus.d.ts.map +1 -0
  7. package/dist/browser/http/bus.js +1 -1
  8. package/dist/browser/http/bus.js.map +1 -0
  9. package/dist/browser/http/http.d.ts +1 -0
  10. package/dist/browser/http/http.d.ts.map +1 -0
  11. package/dist/browser/http/http.js +1 -1
  12. package/dist/browser/http/http.js.map +1 -0
  13. package/dist/browser/http/index.d.ts +1 -0
  14. package/dist/browser/http/index.d.ts.map +1 -0
  15. package/dist/browser/http/index.js +1 -1
  16. package/dist/browser/http/index.js.map +1 -0
  17. package/dist/browser/index.d.ts +1 -0
  18. package/dist/browser/index.d.ts.map +1 -0
  19. package/dist/browser/index.js +1 -1
  20. package/dist/browser/index.js.map +1 -0
  21. package/dist/browser/options.d.ts +1 -0
  22. package/dist/browser/options.d.ts.map +1 -0
  23. package/dist/browser/options.js +1 -1
  24. package/dist/browser/options.js.map +1 -0
  25. package/dist/browser/querier/genericClientRepository.d.ts +1 -0
  26. package/dist/browser/querier/genericClientRepository.d.ts.map +1 -0
  27. package/dist/browser/querier/genericClientRepository.js +1 -1
  28. package/dist/browser/querier/genericClientRepository.js.map +1 -0
  29. package/dist/browser/querier/httpQuerier.d.ts +1 -0
  30. package/dist/browser/querier/httpQuerier.d.ts.map +1 -0
  31. package/dist/browser/querier/httpQuerier.js +1 -1
  32. package/dist/browser/querier/httpQuerier.js.map +1 -0
  33. package/dist/browser/querier/index.d.ts +1 -0
  34. package/dist/browser/querier/index.d.ts.map +1 -0
  35. package/dist/browser/querier/index.js +1 -1
  36. package/dist/browser/querier/index.js.map +1 -0
  37. package/dist/browser/querier/querier.util.d.ts +1 -0
  38. package/dist/browser/querier/querier.util.d.ts.map +1 -0
  39. package/dist/browser/querier/querier.util.js +1 -1
  40. package/dist/browser/querier/querier.util.js.map +1 -0
  41. package/dist/browser/type/clientQuerier.d.ts +1 -0
  42. package/dist/browser/type/clientQuerier.d.ts.map +1 -0
  43. package/dist/browser/type/clientQuerier.js +1 -1
  44. package/dist/browser/type/clientQuerier.js.map +1 -0
  45. package/dist/browser/type/clientQuerierPool.d.ts +1 -0
  46. package/dist/browser/type/clientQuerierPool.d.ts.map +1 -0
  47. package/dist/browser/type/clientQuerierPool.js +1 -1
  48. package/dist/browser/type/clientQuerierPool.js.map +1 -0
  49. package/dist/browser/type/clientRepository.d.ts +1 -0
  50. package/dist/browser/type/clientRepository.d.ts.map +1 -0
  51. package/dist/browser/type/clientRepository.js +1 -1
  52. package/dist/browser/type/clientRepository.js.map +1 -0
  53. package/dist/browser/type/index.d.ts +1 -0
  54. package/dist/browser/type/index.d.ts.map +1 -0
  55. package/dist/browser/type/index.js +1 -1
  56. package/dist/browser/type/index.js.map +1 -0
  57. package/dist/browser/type/request.d.ts +1 -0
  58. package/dist/browser/type/request.d.ts.map +1 -0
  59. package/dist/browser/type/request.js +1 -1
  60. package/dist/browser/type/request.js.map +1 -0
  61. package/dist/dialect/abstractDialect.d.ts +1 -0
  62. package/dist/dialect/abstractDialect.d.ts.map +1 -0
  63. package/dist/dialect/abstractDialect.js +1 -1
  64. package/dist/dialect/abstractDialect.js.map +1 -0
  65. package/dist/dialect/abstractSqlDialect.d.ts +1 -0
  66. package/dist/dialect/abstractSqlDialect.d.ts.map +1 -0
  67. package/dist/dialect/abstractSqlDialect.js +1 -1
  68. package/dist/dialect/abstractSqlDialect.js.map +1 -0
  69. package/dist/dialect/index.d.ts +1 -0
  70. package/dist/dialect/index.d.ts.map +1 -0
  71. package/dist/dialect/index.js +1 -1
  72. package/dist/dialect/index.js.map +1 -0
  73. package/dist/dialect/queryContext.d.ts +1 -0
  74. package/dist/dialect/queryContext.d.ts.map +1 -0
  75. package/dist/dialect/queryContext.js +1 -1
  76. package/dist/dialect/queryContext.js.map +1 -0
  77. package/dist/entity/decorator/definition.d.ts +1 -0
  78. package/dist/entity/decorator/definition.d.ts.map +1 -0
  79. package/dist/entity/decorator/definition.js +1 -2
  80. package/dist/entity/decorator/definition.js.map +1 -0
  81. package/dist/entity/decorator/entity.d.ts +1 -0
  82. package/dist/entity/decorator/entity.d.ts.map +1 -0
  83. package/dist/entity/decorator/entity.js +1 -1
  84. package/dist/entity/decorator/entity.js.map +1 -0
  85. package/dist/entity/decorator/field.d.ts +1 -0
  86. package/dist/entity/decorator/field.d.ts.map +1 -0
  87. package/dist/entity/decorator/field.js +1 -1
  88. package/dist/entity/decorator/field.js.map +1 -0
  89. package/dist/entity/decorator/id.d.ts +1 -0
  90. package/dist/entity/decorator/id.d.ts.map +1 -0
  91. package/dist/entity/decorator/id.js +1 -1
  92. package/dist/entity/decorator/id.js.map +1 -0
  93. package/dist/entity/decorator/index.d.ts +1 -0
  94. package/dist/entity/decorator/index.d.ts.map +1 -0
  95. package/dist/entity/decorator/index.js +1 -1
  96. package/dist/entity/decorator/index.js.map +1 -0
  97. package/dist/entity/decorator/relation.d.ts +1 -0
  98. package/dist/entity/decorator/relation.d.ts.map +1 -0
  99. package/dist/entity/decorator/relation.js +1 -1
  100. package/dist/entity/decorator/relation.js.map +1 -0
  101. package/dist/entity/index.d.ts +1 -0
  102. package/dist/entity/index.d.ts.map +1 -0
  103. package/dist/entity/index.js +1 -1
  104. package/dist/entity/index.js.map +1 -0
  105. package/dist/express/index.d.ts +1 -0
  106. package/dist/express/index.d.ts.map +1 -0
  107. package/dist/express/index.js +1 -1
  108. package/dist/express/index.js.map +1 -0
  109. package/dist/express/querierMiddleware.d.ts +1 -0
  110. package/dist/express/querierMiddleware.d.ts.map +1 -0
  111. package/dist/express/querierMiddleware.js +1 -1
  112. package/dist/express/querierMiddleware.js.map +1 -0
  113. package/dist/express/query.util.d.ts +1 -0
  114. package/dist/express/query.util.d.ts.map +1 -0
  115. package/dist/express/query.util.js +1 -1
  116. package/dist/express/query.util.js.map +1 -0
  117. package/dist/index.d.ts +1 -1
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +1 -2
  120. package/dist/index.js.map +1 -0
  121. package/dist/maria/index.d.ts +1 -0
  122. package/dist/maria/index.d.ts.map +1 -0
  123. package/dist/maria/index.js +1 -1
  124. package/dist/maria/index.js.map +1 -0
  125. package/dist/maria/mariaDialect.d.ts +1 -0
  126. package/dist/maria/mariaDialect.d.ts.map +1 -0
  127. package/dist/maria/mariaDialect.js +1 -1
  128. package/dist/maria/mariaDialect.js.map +1 -0
  129. package/dist/maria/mariadbQuerier.d.ts +1 -0
  130. package/dist/maria/mariadbQuerier.d.ts.map +1 -0
  131. package/dist/maria/mariadbQuerier.js +1 -1
  132. package/dist/maria/mariadbQuerier.js.map +1 -0
  133. package/dist/maria/mariadbQuerierPool.d.ts +1 -0
  134. package/dist/maria/mariadbQuerierPool.d.ts.map +1 -0
  135. package/dist/maria/mariadbQuerierPool.js +1 -1
  136. package/dist/maria/mariadbQuerierPool.js.map +1 -0
  137. package/dist/migrate/cli.d.ts +1 -0
  138. package/dist/migrate/cli.d.ts.map +1 -0
  139. package/dist/migrate/cli.js +3 -3
  140. package/dist/migrate/cli.js.map +1 -0
  141. package/dist/migrate/generator/index.d.ts +1 -0
  142. package/dist/migrate/generator/index.d.ts.map +1 -0
  143. package/dist/migrate/generator/index.js +1 -1
  144. package/dist/migrate/generator/index.js.map +1 -0
  145. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +1 -0
  146. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -0
  147. package/dist/migrate/generator/mongoSchemaGenerator.js +1 -1
  148. package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -0
  149. package/dist/migrate/generator/mysqlSchemaGenerator.d.ts +1 -0
  150. package/dist/migrate/generator/mysqlSchemaGenerator.d.ts.map +1 -0
  151. package/dist/migrate/generator/mysqlSchemaGenerator.js +1 -1
  152. package/dist/migrate/generator/mysqlSchemaGenerator.js.map +1 -0
  153. package/dist/migrate/generator/postgresSchemaGenerator.d.ts +1 -0
  154. package/dist/migrate/generator/postgresSchemaGenerator.d.ts.map +1 -0
  155. package/dist/migrate/generator/postgresSchemaGenerator.js +1 -1
  156. package/dist/migrate/generator/postgresSchemaGenerator.js.map +1 -0
  157. package/dist/migrate/generator/sqliteSchemaGenerator.d.ts +1 -0
  158. package/dist/migrate/generator/sqliteSchemaGenerator.d.ts.map +1 -0
  159. package/dist/migrate/generator/sqliteSchemaGenerator.js +1 -1
  160. package/dist/migrate/generator/sqliteSchemaGenerator.js.map +1 -0
  161. package/dist/migrate/index.d.ts +1 -0
  162. package/dist/migrate/index.d.ts.map +1 -0
  163. package/dist/migrate/index.js +1 -1
  164. package/dist/migrate/index.js.map +1 -0
  165. package/dist/migrate/introspection/index.d.ts +1 -0
  166. package/dist/migrate/introspection/index.d.ts.map +1 -0
  167. package/dist/migrate/introspection/index.js +1 -1
  168. package/dist/migrate/introspection/index.js.map +1 -0
  169. package/dist/migrate/introspection/mongoIntrospector.d.ts +1 -0
  170. package/dist/migrate/introspection/mongoIntrospector.d.ts.map +1 -0
  171. package/dist/migrate/introspection/mongoIntrospector.js +1 -1
  172. package/dist/migrate/introspection/mongoIntrospector.js.map +1 -0
  173. package/dist/migrate/introspection/mysqlIntrospector.d.ts +1 -0
  174. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -0
  175. package/dist/migrate/introspection/mysqlIntrospector.js +1 -1
  176. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -0
  177. package/dist/migrate/introspection/postgresIntrospector.d.ts +1 -0
  178. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -0
  179. package/dist/migrate/introspection/postgresIntrospector.js +1 -1
  180. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -0
  181. package/dist/migrate/introspection/sqliteIntrospector.d.ts +1 -0
  182. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -0
  183. package/dist/migrate/introspection/sqliteIntrospector.js +1 -1
  184. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -0
  185. package/dist/migrate/migrator.d.ts +1 -0
  186. package/dist/migrate/migrator.d.ts.map +1 -0
  187. package/dist/migrate/migrator.js +1 -1
  188. package/dist/migrate/migrator.js.map +1 -0
  189. package/dist/migrate/schemaGenerator.d.ts +1 -0
  190. package/dist/migrate/schemaGenerator.d.ts.map +1 -0
  191. package/dist/migrate/schemaGenerator.js +1 -1
  192. package/dist/migrate/schemaGenerator.js.map +1 -0
  193. package/dist/migrate/storage/databaseStorage.d.ts +1 -0
  194. package/dist/migrate/storage/databaseStorage.d.ts.map +1 -0
  195. package/dist/migrate/storage/databaseStorage.js +1 -1
  196. package/dist/migrate/storage/databaseStorage.js.map +1 -0
  197. package/dist/migrate/storage/index.d.ts +1 -0
  198. package/dist/migrate/storage/index.d.ts.map +1 -0
  199. package/dist/migrate/storage/index.js +1 -1
  200. package/dist/migrate/storage/index.js.map +1 -0
  201. package/dist/migrate/storage/jsonStorage.d.ts +1 -0
  202. package/dist/migrate/storage/jsonStorage.d.ts.map +1 -0
  203. package/dist/migrate/storage/jsonStorage.js +1 -1
  204. package/dist/migrate/storage/jsonStorage.js.map +1 -0
  205. package/dist/migrate/type.d.ts +1 -0
  206. package/dist/migrate/type.d.ts.map +1 -0
  207. package/dist/migrate/type.js +1 -1
  208. package/dist/migrate/type.js.map +1 -0
  209. package/dist/mongo/index.d.ts +1 -0
  210. package/dist/mongo/index.d.ts.map +1 -0
  211. package/dist/mongo/index.js +1 -1
  212. package/dist/mongo/index.js.map +1 -0
  213. package/dist/mongo/mongoDialect.d.ts +1 -0
  214. package/dist/mongo/mongoDialect.d.ts.map +1 -0
  215. package/dist/mongo/mongoDialect.js +1 -1
  216. package/dist/mongo/mongoDialect.js.map +1 -0
  217. package/dist/mongo/mongodbQuerier.d.ts +1 -0
  218. package/dist/mongo/mongodbQuerier.d.ts.map +1 -0
  219. package/dist/mongo/mongodbQuerier.js +1 -1
  220. package/dist/mongo/mongodbQuerier.js.map +1 -0
  221. package/dist/mongo/mongodbQuerierPool.d.ts +1 -0
  222. package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -0
  223. package/dist/mongo/mongodbQuerierPool.js +1 -1
  224. package/dist/mongo/mongodbQuerierPool.js.map +1 -0
  225. package/dist/mysql/index.d.ts +1 -0
  226. package/dist/mysql/index.d.ts.map +1 -0
  227. package/dist/mysql/index.js +1 -1
  228. package/dist/mysql/index.js.map +1 -0
  229. package/dist/mysql/mysql2Querier.d.ts +1 -0
  230. package/dist/mysql/mysql2Querier.d.ts.map +1 -0
  231. package/dist/mysql/mysql2Querier.js +1 -1
  232. package/dist/mysql/mysql2Querier.js.map +1 -0
  233. package/dist/mysql/mysql2QuerierPool.d.ts +1 -0
  234. package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -0
  235. package/dist/mysql/mysql2QuerierPool.js +1 -1
  236. package/dist/mysql/mysql2QuerierPool.js.map +1 -0
  237. package/dist/mysql/mysqlDialect.d.ts +1 -0
  238. package/dist/mysql/mysqlDialect.d.ts.map +1 -0
  239. package/dist/mysql/mysqlDialect.js +1 -1
  240. package/dist/mysql/mysqlDialect.js.map +1 -0
  241. package/dist/namingStrategy/defaultNamingStrategy.d.ts +1 -0
  242. package/dist/namingStrategy/defaultNamingStrategy.d.ts.map +1 -0
  243. package/dist/namingStrategy/defaultNamingStrategy.js +1 -1
  244. package/dist/namingStrategy/defaultNamingStrategy.js.map +1 -0
  245. package/dist/namingStrategy/index.d.ts +1 -0
  246. package/dist/namingStrategy/index.d.ts.map +1 -0
  247. package/dist/namingStrategy/index.js +1 -1
  248. package/dist/namingStrategy/index.js.map +1 -0
  249. package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts +1 -0
  250. package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts.map +1 -0
  251. package/dist/namingStrategy/snakeCaseNamingStrategy.js +1 -1
  252. package/dist/namingStrategy/snakeCaseNamingStrategy.js.map +1 -0
  253. package/dist/options.d.ts +1 -0
  254. package/dist/options.d.ts.map +1 -0
  255. package/dist/options.js +1 -1
  256. package/dist/options.js.map +1 -0
  257. package/dist/postgres/index.d.ts +1 -0
  258. package/dist/postgres/index.d.ts.map +1 -0
  259. package/dist/postgres/index.js +1 -1
  260. package/dist/postgres/index.js.map +1 -0
  261. package/dist/postgres/pgQuerier.d.ts +1 -0
  262. package/dist/postgres/pgQuerier.d.ts.map +1 -0
  263. package/dist/postgres/pgQuerier.js +1 -1
  264. package/dist/postgres/pgQuerier.js.map +1 -0
  265. package/dist/postgres/pgQuerierPool.d.ts +1 -0
  266. package/dist/postgres/pgQuerierPool.d.ts.map +1 -0
  267. package/dist/postgres/pgQuerierPool.js +1 -1
  268. package/dist/postgres/pgQuerierPool.js.map +1 -0
  269. package/dist/postgres/postgresDialect.d.ts +1 -0
  270. package/dist/postgres/postgresDialect.d.ts.map +1 -0
  271. package/dist/postgres/postgresDialect.js +1 -1
  272. package/dist/postgres/postgresDialect.js.map +1 -0
  273. package/dist/querier/abstractQuerier.d.ts +1 -0
  274. package/dist/querier/abstractQuerier.d.ts.map +1 -0
  275. package/dist/querier/abstractQuerier.js +1 -1
  276. package/dist/querier/abstractQuerier.js.map +1 -0
  277. package/dist/querier/abstractQuerierPool.d.ts +1 -0
  278. package/dist/querier/abstractQuerierPool.d.ts.map +1 -0
  279. package/dist/querier/abstractQuerierPool.js +1 -1
  280. package/dist/querier/abstractQuerierPool.js.map +1 -0
  281. package/dist/querier/abstractSqlQuerier.d.ts +1 -0
  282. package/dist/querier/abstractSqlQuerier.d.ts.map +1 -0
  283. package/dist/querier/abstractSqlQuerier.js +1 -1
  284. package/dist/querier/abstractSqlQuerier.js.map +1 -0
  285. package/dist/querier/decorator/index.d.ts +1 -0
  286. package/dist/querier/decorator/index.d.ts.map +1 -0
  287. package/dist/querier/decorator/index.js +1 -1
  288. package/dist/querier/decorator/index.js.map +1 -0
  289. package/dist/querier/decorator/injectQuerier.d.ts +1 -0
  290. package/dist/querier/decorator/injectQuerier.d.ts.map +1 -0
  291. package/dist/querier/decorator/injectQuerier.js +1 -1
  292. package/dist/querier/decorator/injectQuerier.js.map +1 -0
  293. package/dist/querier/decorator/serialized.d.ts +1 -0
  294. package/dist/querier/decorator/serialized.d.ts.map +1 -0
  295. package/dist/querier/decorator/serialized.js +1 -1
  296. package/dist/querier/decorator/serialized.js.map +1 -0
  297. package/dist/querier/decorator/transactional.d.ts +1 -0
  298. package/dist/querier/decorator/transactional.d.ts.map +1 -0
  299. package/dist/querier/decorator/transactional.js +1 -1
  300. package/dist/querier/decorator/transactional.js.map +1 -0
  301. package/dist/querier/index.d.ts +1 -0
  302. package/dist/querier/index.d.ts.map +1 -0
  303. package/dist/querier/index.js +1 -1
  304. package/dist/querier/index.js.map +1 -0
  305. package/dist/repository/genericRepository.d.ts +1 -0
  306. package/dist/repository/genericRepository.d.ts.map +1 -0
  307. package/dist/repository/genericRepository.js +1 -1
  308. package/dist/repository/genericRepository.js.map +1 -0
  309. package/dist/repository/index.d.ts +1 -0
  310. package/dist/repository/index.d.ts.map +1 -0
  311. package/dist/repository/index.js +1 -1
  312. package/dist/repository/index.js.map +1 -0
  313. package/dist/sqlite/index.d.ts +1 -0
  314. package/dist/sqlite/index.d.ts.map +1 -0
  315. package/dist/sqlite/index.js +1 -1
  316. package/dist/sqlite/index.js.map +1 -0
  317. package/dist/sqlite/sqliteDialect.d.ts +1 -0
  318. package/dist/sqlite/sqliteDialect.d.ts.map +1 -0
  319. package/dist/sqlite/sqliteDialect.js +1 -1
  320. package/dist/sqlite/sqliteDialect.js.map +1 -0
  321. package/dist/sqlite/sqliteQuerier.d.ts +1 -0
  322. package/dist/sqlite/sqliteQuerier.d.ts.map +1 -0
  323. package/dist/sqlite/sqliteQuerier.js +1 -1
  324. package/dist/sqlite/sqliteQuerier.js.map +1 -0
  325. package/dist/sqlite/sqliteQuerierPool.d.ts +1 -0
  326. package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -0
  327. package/dist/sqlite/sqliteQuerierPool.js +1 -1
  328. package/dist/sqlite/sqliteQuerierPool.js.map +1 -0
  329. package/dist/type/entity.d.ts +1 -0
  330. package/dist/type/entity.d.ts.map +1 -0
  331. package/dist/type/entity.js +1 -1
  332. package/dist/type/entity.js.map +1 -0
  333. package/dist/type/index.d.ts +1 -0
  334. package/dist/type/index.d.ts.map +1 -0
  335. package/dist/type/index.js +1 -1
  336. package/dist/type/index.js.map +1 -0
  337. package/dist/type/migration.d.ts +1 -0
  338. package/dist/type/migration.d.ts.map +1 -0
  339. package/dist/type/migration.js +1 -1
  340. package/dist/type/migration.js.map +1 -0
  341. package/dist/type/namingStrategy.d.ts +1 -0
  342. package/dist/type/namingStrategy.d.ts.map +1 -0
  343. package/dist/type/namingStrategy.js +1 -1
  344. package/dist/type/namingStrategy.js.map +1 -0
  345. package/dist/type/querier.d.ts +1 -0
  346. package/dist/type/querier.d.ts.map +1 -0
  347. package/dist/type/querier.js +1 -1
  348. package/dist/type/querier.js.map +1 -0
  349. package/dist/type/querierPool.d.ts +1 -0
  350. package/dist/type/querierPool.d.ts.map +1 -0
  351. package/dist/type/querierPool.js +1 -1
  352. package/dist/type/querierPool.js.map +1 -0
  353. package/dist/type/query.d.ts +1 -0
  354. package/dist/type/query.d.ts.map +1 -0
  355. package/dist/type/query.js +1 -1
  356. package/dist/type/query.js.map +1 -0
  357. package/dist/type/repository.d.ts +1 -0
  358. package/dist/type/repository.d.ts.map +1 -0
  359. package/dist/type/repository.js +1 -1
  360. package/dist/type/repository.js.map +1 -0
  361. package/dist/type/universalQuerier.d.ts +1 -0
  362. package/dist/type/universalQuerier.d.ts.map +1 -0
  363. package/dist/type/universalQuerier.js +1 -1
  364. package/dist/type/universalQuerier.js.map +1 -0
  365. package/dist/type/utility.d.ts +1 -0
  366. package/dist/type/utility.d.ts.map +1 -0
  367. package/dist/type/utility.js +1 -1
  368. package/dist/type/utility.js.map +1 -0
  369. package/dist/util/dialect.util.d.ts +1 -0
  370. package/dist/util/dialect.util.d.ts.map +1 -0
  371. package/dist/util/dialect.util.js +1 -1
  372. package/dist/util/dialect.util.js.map +1 -0
  373. package/dist/util/index.d.ts +1 -0
  374. package/dist/util/index.d.ts.map +1 -0
  375. package/dist/util/index.js +1 -1
  376. package/dist/util/index.js.map +1 -0
  377. package/dist/util/object.util.d.ts +1 -0
  378. package/dist/util/object.util.d.ts.map +1 -0
  379. package/dist/util/object.util.js +1 -1
  380. package/dist/util/object.util.js.map +1 -0
  381. package/dist/util/raw.d.ts +1 -0
  382. package/dist/util/raw.d.ts.map +1 -0
  383. package/dist/util/raw.js +1 -1
  384. package/dist/util/raw.js.map +1 -0
  385. package/dist/util/sql.util.d.ts +1 -0
  386. package/dist/util/sql.util.d.ts.map +1 -0
  387. package/dist/util/sql.util.js +1 -1
  388. package/dist/util/sql.util.js.map +1 -0
  389. package/dist/util/string.util.d.ts +1 -0
  390. package/dist/util/string.util.d.ts.map +1 -0
  391. package/dist/util/string.util.js +1 -1
  392. package/dist/util/string.util.js.map +1 -0
  393. package/package.json +32 -26
  394. package/dist/CHANGELOG.md +0 -186
  395. package/dist/maria/mariaQuerierPool.test.d.ts +0 -5
  396. package/dist/maria/mariaQuerierPool.test.js +0 -19
  397. package/dist/maria/mariadbQuerier.test.d.ts +0 -4
  398. package/dist/maria/mariadbQuerier.test.js +0 -19
  399. package/dist/migrate/migrator-mongo.test.d.ts +0 -1
  400. package/dist/migrate/migrator-mongo.test.js +0 -54
  401. package/dist/migrate/migrator.test.d.ts +0 -1
  402. package/dist/migrate/migrator.test.js +0 -106
  403. package/dist/mongo/mongodbQuerier.test.d.ts +0 -1
  404. package/dist/mongo/mongodbQuerier.test.js +0 -36
  405. package/dist/mongo/mongodbQuerierPool.test.d.ts +0 -1
  406. package/dist/mongo/mongodbQuerierPool.test.js +0 -21
  407. package/dist/mysql/mysql2Querier.test.d.ts +0 -4
  408. package/dist/mysql/mysql2Querier.test.js +0 -16
  409. package/dist/mysql/mysql2QuerierPool.test.d.ts +0 -5
  410. package/dist/mysql/mysql2QuerierPool.test.js +0 -16
  411. package/dist/package.json +0 -131
  412. package/dist/postgres/pgQuerier.test.d.ts +0 -4
  413. package/dist/postgres/pgQuerier.test.js +0 -20
  414. package/dist/postgres/pgQuerierPool.test.d.ts +0 -5
  415. package/dist/postgres/pgQuerierPool.test.js +0 -23
  416. package/dist/querier/abstractQuerier-test.d.ts +0 -45
  417. package/dist/querier/abstractQuerier-test.js +0 -461
  418. package/dist/querier/abstractQuerierPool-test.d.ts +0 -9
  419. package/dist/querier/abstractQuerierPool-test.js +0 -18
  420. package/dist/querier/abstractSqlQuerier-test.d.ts +0 -9
  421. package/dist/querier/abstractSqlQuerier-test.js +0 -16
  422. package/dist/sqlite/sqliteQuerier.test.d.ts +0 -5
  423. package/dist/sqlite/sqliteQuerier.test.js +0 -19
  424. package/dist/sqlite/sqliteQuerierPool.test.d.ts +0 -5
  425. package/dist/sqlite/sqliteQuerierPool.test.js +0 -10
  426. package/dist/test/entityMock.d.ts +0 -164
  427. package/dist/test/entityMock.js +0 -554
  428. package/dist/test/index.d.ts +0 -3
  429. package/dist/test/index.js +0 -4
  430. package/dist/test/it.util.d.ts +0 -4
  431. package/dist/test/it.util.js +0 -55
  432. package/dist/test/spec.util.d.ts +0 -14
  433. package/dist/test/spec.util.js +0 -50
  434. package/src/@types/index.d.ts +0 -1
  435. package/src/@types/jest.d.ts +0 -6
  436. package/src/browser/http/bus.spec.ts +0 -22
  437. package/src/browser/http/bus.ts +0 -17
  438. package/src/browser/http/http.spec.ts +0 -70
  439. package/src/browser/http/http.ts +0 -55
  440. package/src/browser/http/index.ts +0 -2
  441. package/src/browser/index.ts +0 -4
  442. package/src/browser/options.spec.ts +0 -37
  443. package/src/browser/options.ts +0 -18
  444. package/src/browser/querier/genericClientRepository.spec.ts +0 -105
  445. package/src/browser/querier/genericClientRepository.ts +0 -49
  446. package/src/browser/querier/httpQuerier.ts +0 -82
  447. package/src/browser/querier/index.ts +0 -3
  448. package/src/browser/querier/querier.util.spec.ts +0 -35
  449. package/src/browser/querier/querier.util.ts +0 -18
  450. package/src/browser/type/clientQuerier.ts +0 -45
  451. package/src/browser/type/clientQuerierPool.ts +0 -5
  452. package/src/browser/type/clientRepository.ts +0 -22
  453. package/src/browser/type/index.ts +0 -4
  454. package/src/browser/type/request.ts +0 -25
  455. package/src/dialect/abstractDialect.ts +0 -28
  456. package/src/dialect/abstractSqlDialect-spec.ts +0 -1309
  457. package/src/dialect/abstractSqlDialect.ts +0 -805
  458. package/src/dialect/index.ts +0 -3
  459. package/src/dialect/namingStrategy.spec.ts +0 -52
  460. package/src/dialect/queryContext.ts +0 -69
  461. package/src/entity/decorator/definition.spec.ts +0 -736
  462. package/src/entity/decorator/definition.ts +0 -265
  463. package/src/entity/decorator/entity.ts +0 -8
  464. package/src/entity/decorator/field.ts +0 -9
  465. package/src/entity/decorator/id.ts +0 -9
  466. package/src/entity/decorator/index.ts +0 -5
  467. package/src/entity/decorator/relation.spec.ts +0 -41
  468. package/src/entity/decorator/relation.ts +0 -34
  469. package/src/entity/index.ts +0 -1
  470. package/src/express/@types/express.d.ts +0 -8
  471. package/src/express/@types/index.d.ts +0 -1
  472. package/src/express/index.ts +0 -2
  473. package/src/express/querierMiddleware.ts +0 -217
  474. package/src/express/query.util.spec.ts +0 -40
  475. package/src/express/query.util.ts +0 -21
  476. package/src/index.ts +0 -9
  477. package/src/maria/index.ts +0 -3
  478. package/src/maria/mariaDialect.spec.ts +0 -207
  479. package/src/maria/mariaDialect.ts +0 -42
  480. package/src/maria/mariaQuerierPool.test.ts +0 -23
  481. package/src/maria/mariadbQuerier.test.ts +0 -23
  482. package/src/maria/mariadbQuerier.ts +0 -45
  483. package/src/maria/mariadbQuerierPool.ts +0 -21
  484. package/src/migrate/cli.ts +0 -301
  485. package/src/migrate/generator/index.ts +0 -4
  486. package/src/migrate/generator/mongoSchemaGenerator.spec.ts +0 -112
  487. package/src/migrate/generator/mongoSchemaGenerator.ts +0 -115
  488. package/src/migrate/generator/mysqlSchemaGenerator.spec.ts +0 -34
  489. package/src/migrate/generator/mysqlSchemaGenerator.ts +0 -92
  490. package/src/migrate/generator/postgresSchemaGenerator.spec.ts +0 -44
  491. package/src/migrate/generator/postgresSchemaGenerator.ts +0 -127
  492. package/src/migrate/generator/sqliteSchemaGenerator.spec.ts +0 -33
  493. package/src/migrate/generator/sqliteSchemaGenerator.ts +0 -81
  494. package/src/migrate/index.ts +0 -41
  495. package/src/migrate/introspection/index.ts +0 -4
  496. package/src/migrate/introspection/mongoIntrospector.spec.ts +0 -75
  497. package/src/migrate/introspection/mongoIntrospector.ts +0 -47
  498. package/src/migrate/introspection/mysqlIntrospector.spec.ts +0 -113
  499. package/src/migrate/introspection/mysqlIntrospector.ts +0 -278
  500. package/src/migrate/introspection/postgresIntrospector.spec.ts +0 -112
  501. package/src/migrate/introspection/postgresIntrospector.ts +0 -329
  502. package/src/migrate/introspection/sqliteIntrospector.spec.ts +0 -112
  503. package/src/migrate/introspection/sqliteIntrospector.ts +0 -296
  504. package/src/migrate/migrator-mongo.test.ts +0 -54
  505. package/src/migrate/migrator.spec.ts +0 -255
  506. package/src/migrate/migrator.test.ts +0 -94
  507. package/src/migrate/migrator.ts +0 -719
  508. package/src/migrate/namingStrategy.spec.ts +0 -22
  509. package/src/migrate/schemaGenerator-advanced.spec.ts +0 -138
  510. package/src/migrate/schemaGenerator.spec.ts +0 -190
  511. package/src/migrate/schemaGenerator.ts +0 -478
  512. package/src/migrate/storage/databaseStorage.spec.ts +0 -69
  513. package/src/migrate/storage/databaseStorage.ts +0 -100
  514. package/src/migrate/storage/index.ts +0 -2
  515. package/src/migrate/storage/jsonStorage.ts +0 -58
  516. package/src/migrate/type.ts +0 -1
  517. package/src/mongo/index.ts +0 -3
  518. package/src/mongo/mongoDialect.spec.ts +0 -251
  519. package/src/mongo/mongoDialect.ts +0 -238
  520. package/src/mongo/mongodbQuerier.test.ts +0 -45
  521. package/src/mongo/mongodbQuerier.ts +0 -256
  522. package/src/mongo/mongodbQuerierPool.test.ts +0 -25
  523. package/src/mongo/mongodbQuerierPool.ts +0 -24
  524. package/src/mysql/index.ts +0 -3
  525. package/src/mysql/mysql2Querier.test.ts +0 -20
  526. package/src/mysql/mysql2Querier.ts +0 -49
  527. package/src/mysql/mysql2QuerierPool.test.ts +0 -20
  528. package/src/mysql/mysql2QuerierPool.ts +0 -21
  529. package/src/mysql/mysqlDialect.spec.ts +0 -20
  530. package/src/mysql/mysqlDialect.ts +0 -16
  531. package/src/namingStrategy/defaultNamingStrategy.ts +0 -18
  532. package/src/namingStrategy/index.spec.ts +0 -36
  533. package/src/namingStrategy/index.ts +0 -2
  534. package/src/namingStrategy/snakeCaseNamingStrategy.ts +0 -15
  535. package/src/options.spec.ts +0 -41
  536. package/src/options.ts +0 -18
  537. package/src/postgres/index.ts +0 -3
  538. package/src/postgres/manual-types.d.ts +0 -4
  539. package/src/postgres/pgQuerier.test.ts +0 -25
  540. package/src/postgres/pgQuerier.ts +0 -45
  541. package/src/postgres/pgQuerierPool.test.ts +0 -28
  542. package/src/postgres/pgQuerierPool.ts +0 -21
  543. package/src/postgres/postgresDialect.spec.ts +0 -428
  544. package/src/postgres/postgresDialect.ts +0 -144
  545. package/src/querier/abstractQuerier-test.ts +0 -584
  546. package/src/querier/abstractQuerier.ts +0 -353
  547. package/src/querier/abstractQuerierPool-test.ts +0 -20
  548. package/src/querier/abstractQuerierPool.ts +0 -18
  549. package/src/querier/abstractSqlQuerier-spec.ts +0 -979
  550. package/src/querier/abstractSqlQuerier-test.ts +0 -21
  551. package/src/querier/abstractSqlQuerier.ts +0 -138
  552. package/src/querier/decorator/index.ts +0 -3
  553. package/src/querier/decorator/injectQuerier.spec.ts +0 -74
  554. package/src/querier/decorator/injectQuerier.ts +0 -45
  555. package/src/querier/decorator/serialized.spec.ts +0 -98
  556. package/src/querier/decorator/serialized.ts +0 -13
  557. package/src/querier/decorator/transactional.spec.ts +0 -240
  558. package/src/querier/decorator/transactional.ts +0 -56
  559. package/src/querier/index.ts +0 -4
  560. package/src/repository/genericRepository.spec.ts +0 -111
  561. package/src/repository/genericRepository.ts +0 -74
  562. package/src/repository/index.ts +0 -1
  563. package/src/sqlite/index.ts +0 -3
  564. package/src/sqlite/manual-types.d.ts +0 -4
  565. package/src/sqlite/sqliteDialect.spec.ts +0 -155
  566. package/src/sqlite/sqliteDialect.ts +0 -76
  567. package/src/sqlite/sqliteQuerier.spec.ts +0 -36
  568. package/src/sqlite/sqliteQuerier.test.ts +0 -21
  569. package/src/sqlite/sqliteQuerier.ts +0 -37
  570. package/src/sqlite/sqliteQuerierPool.test.ts +0 -12
  571. package/src/sqlite/sqliteQuerierPool.ts +0 -38
  572. package/src/test/entityMock.ts +0 -375
  573. package/src/test/index.ts +0 -3
  574. package/src/test/it.util.ts +0 -69
  575. package/src/test/spec.util.ts +0 -57
  576. package/src/type/entity.ts +0 -218
  577. package/src/type/index.ts +0 -9
  578. package/src/type/migration.ts +0 -241
  579. package/src/type/namingStrategy.ts +0 -17
  580. package/src/type/querier.ts +0 -143
  581. package/src/type/querierPool.ts +0 -26
  582. package/src/type/query.ts +0 -506
  583. package/src/type/repository.ts +0 -142
  584. package/src/type/universalQuerier.ts +0 -133
  585. package/src/type/utility.ts +0 -21
  586. package/src/util/dialect.util-extra.spec.ts +0 -96
  587. package/src/util/dialect.util.spec.ts +0 -23
  588. package/src/util/dialect.util.ts +0 -134
  589. package/src/util/index.ts +0 -5
  590. package/src/util/object.util.spec.ts +0 -29
  591. package/src/util/object.util.ts +0 -27
  592. package/src/util/raw.ts +0 -11
  593. package/src/util/sql.util-extra.spec.ts +0 -17
  594. package/src/util/sql.util.spec.ts +0 -208
  595. package/src/util/sql.util.ts +0 -104
  596. package/src/util/string.util.spec.ts +0 -46
  597. package/src/util/string.util.ts +0 -35
  598. package/tsconfig.build.json +0 -5
  599. package/tsconfig.json +0 -8
@@ -1,112 +0,0 @@
1
- import { describe, expect, it } from 'bun:test';
2
- import { Entity, Field, Id } from '../../entity/index.js';
3
- import type { IndexSchema, TableSchema } from '../../type/index.js';
4
- import { MongoSchemaGenerator } from './mongoSchemaGenerator.js';
5
-
6
- @Entity()
7
- class MongoUser {
8
- @Id() id?: string;
9
- @Field({ index: true }) username?: string;
10
- @Field({ index: 'idx_email', unique: true }) email?: string;
11
- }
12
-
13
- describe('MongoSchemaGenerator', () => {
14
- const generator = new MongoSchemaGenerator();
15
-
16
- it('should generate createCollection statement', () => {
17
- const json = generator.generateCreateTable(MongoUser);
18
- const cmd = JSON.parse(json);
19
-
20
- expect(cmd).toMatchObject({
21
- action: 'createCollection',
22
- name: 'MongoUser',
23
- });
24
- expect(cmd.indexes).toHaveLength(2);
25
- expect(cmd.indexes).toContainEqual({
26
- name: 'idx_MongoUser_username',
27
- columns: ['username'],
28
- unique: false,
29
- });
30
- expect(cmd.indexes).toContainEqual({
31
- name: 'idx_email',
32
- columns: ['email'],
33
- unique: true,
34
- });
35
- });
36
-
37
- it('should generate dropCollection statement', () => {
38
- const json = generator.generateDropTable(MongoUser);
39
- const cmd = JSON.parse(json);
40
-
41
- expect(cmd).toMatchObject({
42
- action: 'dropCollection',
43
- name: 'MongoUser',
44
- });
45
- });
46
-
47
- it('should generate createIndex statement', () => {
48
- const json = generator.generateCreateIndex('MongoUser', {
49
- name: 'idx_test',
50
- columns: ['test'],
51
- unique: true,
52
- } as IndexSchema);
53
- const cmd = JSON.parse(json);
54
-
55
- expect(cmd).toMatchObject({
56
- action: 'createIndex',
57
- collection: 'MongoUser',
58
- name: 'idx_test',
59
- key: { test: 1 },
60
- options: { unique: true, name: 'idx_test' },
61
- });
62
- });
63
-
64
- it('should generate dropIndex statement', () => {
65
- const json = generator.generateDropIndex('MongoUser', 'idx_test');
66
- const cmd = JSON.parse(json);
67
-
68
- expect(cmd).toMatchObject({
69
- action: 'dropIndex',
70
- collection: 'MongoUser',
71
- name: 'idx_test',
72
- });
73
- });
74
-
75
- it('diffSchema should return create if currentSchema is undefined', () => {
76
- const diff = generator.diffSchema(MongoUser, undefined);
77
- expect(diff).toMatchObject({
78
- tableName: 'MongoUser',
79
- type: 'create',
80
- });
81
- });
82
-
83
- it('diffSchema should return alter if indexes are missing', () => {
84
- const currentSchema: TableSchema = {
85
- name: 'MongoUser',
86
- columns: [],
87
- indexes: [{ name: 'idx_MongoUser_username', columns: ['username'], unique: false }],
88
- };
89
-
90
- const diff = generator.diffSchema(MongoUser, currentSchema);
91
- expect(diff).toMatchObject({
92
- tableName: 'MongoUser',
93
- type: 'alter',
94
- });
95
- expect(diff?.indexesToAdd).toHaveLength(1);
96
- expect(diff?.indexesToAdd?.[0].name).toBe('idx_email');
97
- });
98
-
99
- it('diffSchema should return undefined if in sync', () => {
100
- const currentSchema: import('../../type/index.js').TableSchema = {
101
- name: 'MongoUser',
102
- columns: [],
103
- indexes: [
104
- { name: 'idx_MongoUser_username', columns: ['username'], unique: false },
105
- { name: 'idx_email', columns: ['email'], unique: true },
106
- ],
107
- };
108
-
109
- const diff = generator.diffSchema(MongoUser, currentSchema);
110
- expect(diff).toBeUndefined();
111
- });
112
- });
@@ -1,115 +0,0 @@
1
- import { AbstractDialect } from '../../dialect/index.js';
2
- import { getMeta } from '../../entity/index.js';
3
- import type { IndexSchema, SchemaDiff, SchemaGenerator, TableSchema, Type } from '../../type/index.js';
4
-
5
- export class MongoSchemaGenerator extends AbstractDialect implements SchemaGenerator {
6
- generateCreateTable<E>(entity: Type<E>): string {
7
- const meta = getMeta(entity);
8
- const collectionName = this.resolveTableName(entity, meta);
9
- const indexes: IndexSchema[] = [];
10
-
11
- for (const key in meta.fields) {
12
- const field = meta.fields[key];
13
- if (field.index) {
14
- const columnName = this.resolveColumnName(key, field);
15
- const indexName = typeof field.index === 'string' ? field.index : `idx_${collectionName}_${columnName}`;
16
- indexes.push({
17
- name: indexName,
18
- columns: [columnName],
19
- unique: !!field.unique,
20
- });
21
- }
22
- }
23
-
24
- return JSON.stringify({ action: 'createCollection', name: collectionName, indexes });
25
- }
26
-
27
- generateDropTable<E>(entity: Type<E>): string {
28
- const meta = getMeta(entity);
29
- const collectionName = this.resolveTableName(entity, meta);
30
- return JSON.stringify({ action: 'dropCollection', name: collectionName });
31
- }
32
-
33
- generateAlterTable(diff: SchemaDiff): string[] {
34
- const statements: string[] = [];
35
- if (diff.indexesToAdd?.length) {
36
- for (const index of diff.indexesToAdd) {
37
- statements.push(this.generateCreateIndex(diff.tableName, index));
38
- }
39
- }
40
- return statements;
41
- }
42
-
43
- generateAlterTableDown(diff: SchemaDiff): string[] {
44
- const statements: string[] = [];
45
- if (diff.indexesToAdd?.length) {
46
- for (const index of diff.indexesToAdd) {
47
- statements.push(this.generateDropIndex(diff.tableName, index.name));
48
- }
49
- }
50
- return statements;
51
- }
52
-
53
- generateCreateIndex(tableName: string, index: IndexSchema): string {
54
- const key: Record<string, number> = {};
55
- for (const col of index.columns) {
56
- key[col] = 1;
57
- }
58
- return JSON.stringify({
59
- action: 'createIndex',
60
- collection: tableName,
61
- name: index.name,
62
- key,
63
- options: { unique: index.unique, name: index.name },
64
- });
65
- }
66
-
67
- generateDropIndex(tableName: string, indexName: string): string {
68
- return JSON.stringify({
69
- action: 'dropIndex',
70
- collection: tableName,
71
- name: indexName,
72
- });
73
- }
74
-
75
- getSqlType(): string {
76
- return '';
77
- }
78
-
79
- diffSchema<E>(entity: Type<E>, currentSchema: TableSchema | undefined): SchemaDiff | undefined {
80
- const meta = getMeta(entity);
81
- const collectionName = this.resolveTableName(entity, meta);
82
-
83
- if (!currentSchema) {
84
- return { tableName: collectionName, type: 'create' };
85
- }
86
-
87
- const indexesToAdd: IndexSchema[] = [];
88
- const existingIndexes = new Set(currentSchema.indexes?.map((i: IndexSchema) => i.name) ?? []);
89
-
90
- for (const key in meta.fields) {
91
- const field = meta.fields[key];
92
- if (field.index) {
93
- const columnName = this.resolveColumnName(key, field);
94
- const indexName = typeof field.index === 'string' ? field.index : `idx_${collectionName}_${columnName}`;
95
- if (!existingIndexes.has(indexName)) {
96
- indexesToAdd.push({
97
- name: indexName,
98
- columns: [columnName],
99
- unique: !!field.unique,
100
- });
101
- }
102
- }
103
- }
104
-
105
- if (indexesToAdd.length === 0) {
106
- return undefined;
107
- }
108
-
109
- return {
110
- tableName: collectionName,
111
- type: 'alter',
112
- indexesToAdd,
113
- };
114
- }
115
- }
@@ -1,34 +0,0 @@
1
- import { describe, expect, it } from 'bun:test';
2
- import { MysqlSchemaGenerator } from './mysqlSchemaGenerator.js';
3
-
4
- describe('MysqlSchemaGenerator Specifics', () => {
5
- const generator = new MysqlSchemaGenerator();
6
-
7
- it('should map column types correctly', () => {
8
- expect(generator.getSqlType({ columnType: 'varchar', length: 100 }, String)).toBe('VARCHAR(100)');
9
- expect(generator.getSqlType({ columnType: 'text' }, String)).toBe('TEXT');
10
- expect(generator.getSqlType({ columnType: 'int' }, Number)).toBe('INT');
11
- expect(generator.getSqlType({ columnType: 'bigint' }, Number)).toBe('BIGINT');
12
- expect(generator.getSqlType({ type: Boolean }, Boolean)).toBe('TINYINT(1)');
13
- expect(generator.getSqlType({ columnType: 'decimal', precision: 10, scale: 2 }, Number)).toBe('DECIMAL(10, 2)');
14
- });
15
-
16
- it('should generate ALTER COLUMN statements', () => {
17
- const col = {
18
- name: 'age',
19
- type: 'INT',
20
- nullable: false,
21
- defaultValue: 18,
22
- isPrimaryKey: false,
23
- isAutoIncrement: false,
24
- isUnique: false,
25
- };
26
- const statements = generator.generateAlterColumnStatements('users', col, 'INT NOT NULL DEFAULT 18');
27
-
28
- expect(statements).toEqual(['ALTER TABLE `users` MODIFY COLUMN INT NOT NULL DEFAULT 18;']);
29
- });
30
-
31
- it('should get table options', () => {
32
- expect(generator.getTableOptions()).toContain('ENGINE=InnoDB');
33
- });
34
- });
@@ -1,92 +0,0 @@
1
- import type { ColumnSchema, ColumnType, FieldOptions } from '../../type/index.js';
2
- import { AbstractSchemaGenerator } from '../schemaGenerator.js';
3
-
4
- /**
5
- * MySQL/MariaDB-specific schema generator
6
- */
7
- export class MysqlSchemaGenerator extends AbstractSchemaGenerator {
8
- protected readonly serialPrimaryKeyType = 'INT AUTO_INCREMENT PRIMARY KEY';
9
-
10
- public override mapColumnType(columnType: ColumnType, field: FieldOptions): string {
11
- switch (columnType) {
12
- case 'int':
13
- return 'INT';
14
- case 'smallint':
15
- return 'SMALLINT';
16
- case 'bigint':
17
- return 'BIGINT';
18
- case 'float':
19
- return 'FLOAT';
20
- case 'double':
21
- case 'real':
22
- return 'DOUBLE';
23
- case 'decimal':
24
- case 'numeric':
25
- if (field.precision !== undefined) {
26
- if (field.scale !== undefined) {
27
- return `DECIMAL(${field.precision}, ${field.scale})`;
28
- }
29
- return `DECIMAL(${field.precision})`;
30
- }
31
- return 'DECIMAL(10, 2)';
32
- case 'boolean':
33
- return 'TINYINT(1)';
34
- case 'char':
35
- return `CHAR(${field.length ?? 1})`;
36
- case 'varchar':
37
- return `VARCHAR(${field.length ?? 255})`;
38
- case 'text':
39
- return 'TEXT';
40
- case 'uuid':
41
- return 'CHAR(36)';
42
- case 'date':
43
- return 'DATE';
44
- case 'time':
45
- return 'TIME';
46
- case 'timestamp':
47
- case 'timestamptz':
48
- return 'TIMESTAMP';
49
- case 'json':
50
- case 'jsonb':
51
- return 'JSON';
52
- case 'blob':
53
- case 'bytea':
54
- return 'BLOB';
55
- case 'vector':
56
- // MySQL doesn't have native vector support, use JSON
57
- return 'JSON';
58
- case 'serial':
59
- return 'INT AUTO_INCREMENT';
60
- case 'bigserial':
61
- return 'BIGINT AUTO_INCREMENT';
62
- default:
63
- return 'TEXT';
64
- }
65
- }
66
-
67
- public override getBooleanType(): string {
68
- return 'TINYINT(1)';
69
- }
70
-
71
- public override generateAlterColumnStatements(
72
- tableName: string,
73
- column: ColumnSchema,
74
- newDefinition: string,
75
- ): string[] {
76
- return [`ALTER TABLE ${this.escapeId(tableName)} MODIFY COLUMN ${newDefinition};`];
77
- }
78
-
79
- public override generateColumnComment(tableName: string, columnName: string, comment: string): string {
80
- const escapedComment = comment.replace(/'/g, "''");
81
- return ` COMMENT '${escapedComment}'`;
82
- }
83
-
84
- override getTableOptions<E>(): string {
85
- return ' ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci';
86
- }
87
-
88
- override generateDropIndex(tableName: string, indexName: string): string {
89
- // MySQL requires table name in DROP INDEX
90
- return `DROP INDEX ${this.escapeId(indexName)} ON ${this.escapeId(tableName)};`;
91
- }
92
- }
@@ -1,44 +0,0 @@
1
- import { describe, expect, it } from 'bun:test';
2
- import { PostgresSchemaGenerator } from './postgresSchemaGenerator.js';
3
-
4
- describe('PostgresSchemaGenerator Specifics', () => {
5
- const generator = new PostgresSchemaGenerator();
6
-
7
- it('should format default values correctly', () => {
8
- expect(generator.formatDefaultValue('test')).toBe("'test'");
9
- expect(generator.formatDefaultValue(123)).toBe('123');
10
- expect(generator.formatDefaultValue(true)).toBe('TRUE');
11
- expect(generator.formatDefaultValue(false)).toBe('FALSE');
12
- expect(generator.formatDefaultValue(null)).toBe('NULL');
13
- });
14
-
15
- it('should map column types correctly', () => {
16
- expect(generator.getSqlType({ columnType: 'varchar', length: 100 }, String)).toBe('VARCHAR(100)');
17
- expect(generator.getSqlType({ columnType: 'text' }, String)).toBe('TEXT');
18
- expect(generator.getSqlType({ columnType: 'int' }, Number)).toBe('INTEGER');
19
- expect(generator.getSqlType({ columnType: 'bigint' }, Number)).toBe('BIGINT');
20
- expect(generator.getSqlType({ type: Boolean }, Boolean)).toBe('BOOLEAN');
21
- expect(generator.getSqlType({ columnType: 'decimal', precision: 10, scale: 2 }, Number)).toBe('NUMERIC(10, 2)');
22
- });
23
-
24
- it('should generate DROP INDEX statement', () => {
25
- expect(generator.generateDropIndex('users', 'idx_test')).toBe('DROP INDEX IF EXISTS "idx_test";');
26
- });
27
-
28
- it('should generate ALTER COLUMN statements', () => {
29
- const col = {
30
- name: 'age',
31
- type: 'INTEGER',
32
- nullable: false,
33
- defaultValue: 18,
34
- isPrimaryKey: false,
35
- isAutoIncrement: false,
36
- isUnique: false,
37
- };
38
- const statements = generator.generateAlterColumnStatements('users', col, 'INTEGER');
39
-
40
- expect(statements).toContain('ALTER TABLE "users" ALTER COLUMN "age" TYPE INTEGER;');
41
- expect(statements).toContain('ALTER TABLE "users" ALTER COLUMN "age" SET NOT NULL;');
42
- expect(statements).toContain('ALTER TABLE "users" ALTER COLUMN "age" SET DEFAULT 18;');
43
- });
44
- });
@@ -1,127 +0,0 @@
1
- import type { ColumnSchema, ColumnType, FieldOptions, NamingStrategy } from '../../type/index.js';
2
- import { AbstractSchemaGenerator } from '../schemaGenerator.js';
3
-
4
- /**
5
- * PostgreSQL-specific schema generator
6
- */
7
- export class PostgresSchemaGenerator extends AbstractSchemaGenerator {
8
- protected readonly serialPrimaryKeyType = 'SERIAL PRIMARY KEY';
9
-
10
- constructor(namingStrategy?: NamingStrategy) {
11
- super(namingStrategy, '"');
12
- }
13
-
14
- public override mapColumnType(columnType: ColumnType, field: FieldOptions): string {
15
- switch (columnType) {
16
- case 'int':
17
- return 'INTEGER';
18
- case 'smallint':
19
- return 'SMALLINT';
20
- case 'bigint':
21
- return 'BIGINT';
22
- case 'float':
23
- case 'double':
24
- case 'real':
25
- return 'DOUBLE PRECISION';
26
- case 'decimal':
27
- case 'numeric':
28
- if (field.precision !== undefined) {
29
- if (field.scale !== undefined) {
30
- return `NUMERIC(${field.precision}, ${field.scale})`;
31
- }
32
- return `NUMERIC(${field.precision})`;
33
- }
34
- return 'NUMERIC';
35
- case 'boolean':
36
- return 'BOOLEAN';
37
- case 'char':
38
- return `CHAR(${field.length ?? 1})`;
39
- case 'varchar':
40
- return `VARCHAR(${field.length ?? 255})`;
41
- case 'text':
42
- return 'TEXT';
43
- case 'uuid':
44
- return 'UUID';
45
- case 'date':
46
- return 'DATE';
47
- case 'time':
48
- return 'TIME';
49
- case 'timestamp':
50
- return 'TIMESTAMP';
51
- case 'timestamptz':
52
- return 'TIMESTAMPTZ';
53
- case 'json':
54
- return 'JSON';
55
- case 'jsonb':
56
- return 'JSONB';
57
- case 'blob':
58
- case 'bytea':
59
- return 'BYTEA';
60
- case 'vector':
61
- if (field.length) {
62
- return `VECTOR(${field.length})`;
63
- }
64
- return 'VECTOR';
65
- case 'serial':
66
- return 'SERIAL';
67
- case 'bigserial':
68
- return 'BIGSERIAL';
69
- default:
70
- return 'TEXT';
71
- }
72
- }
73
-
74
- public override getBooleanType(): string {
75
- return 'BOOLEAN';
76
- }
77
-
78
- public override generateAlterColumnStatements(
79
- tableName: string,
80
- column: ColumnSchema,
81
- newDefinition: string,
82
- ): string[] {
83
- const statements: string[] = [];
84
- const escapedTableName = this.escapeId(tableName);
85
- const escapedColumnName = this.escapeId(column.name);
86
-
87
- // PostgreSQL uses separate ALTER COLUMN clauses for different changes
88
- // 1. Change type
89
- statements.push(`ALTER TABLE ${escapedTableName} ALTER COLUMN ${escapedColumnName} TYPE ${column.type};`);
90
-
91
- // 2. Change nullability
92
- if (column.nullable) {
93
- statements.push(`ALTER TABLE ${escapedTableName} ALTER COLUMN ${escapedColumnName} DROP NOT NULL;`);
94
- } else {
95
- statements.push(`ALTER TABLE ${escapedTableName} ALTER COLUMN ${escapedColumnName} SET NOT NULL;`);
96
- }
97
-
98
- // 3. Change default value
99
- if (column.defaultValue !== undefined) {
100
- statements.push(
101
- `ALTER TABLE ${escapedTableName} ALTER COLUMN ${escapedColumnName} SET DEFAULT ${this.formatDefaultValue(column.defaultValue)};`,
102
- );
103
- } else {
104
- statements.push(`ALTER TABLE ${escapedTableName} ALTER COLUMN ${escapedColumnName} DROP DEFAULT;`);
105
- }
106
-
107
- return statements;
108
- }
109
-
110
- public override generateColumnComment(tableName: string, columnName: string, comment: string): string {
111
- // PostgreSQL handles comments separately via COMMENT ON COLUMN
112
- return '';
113
- }
114
-
115
- /**
116
- * Generate COMMENT ON COLUMN statement for PostgreSQL
117
- */
118
- generateColumnCommentStatement(tableName: string, columnName: string, comment: string): string {
119
- const escapedComment = comment.replace(/'/g, "''");
120
- return `COMMENT ON COLUMN ${this.escapeId(tableName)}.${this.escapeId(columnName)} IS '${escapedComment}';`;
121
- }
122
-
123
- override generateDropIndex(tableName: string, indexName: string): string {
124
- // PostgreSQL doesn't require table name in DROP INDEX
125
- return `DROP INDEX IF EXISTS ${this.escapeId(indexName)};`;
126
- }
127
- }
@@ -1,33 +0,0 @@
1
- import { describe, expect, it } from 'bun:test';
2
- import { SqliteSchemaGenerator } from './sqliteSchemaGenerator.js';
3
-
4
- describe('SqliteSchemaGenerator Specifics', () => {
5
- const generator = new SqliteSchemaGenerator();
6
-
7
- it('should map column types correctly', () => {
8
- expect(generator.getSqlType({ columnType: 'varchar', length: 100 }, String)).toBe('TEXT');
9
- expect(generator.getSqlType({ columnType: 'int' }, Number)).toBe('INTEGER');
10
- expect(generator.getSqlType({ type: Boolean }, Boolean)).toBe('INTEGER');
11
- });
12
-
13
- it('should throw error on generateAlterColumnStatements', () => {
14
- const col = {
15
- name: 'age',
16
- type: 'INTEGER',
17
- nullable: false,
18
- isPrimaryKey: false,
19
- isAutoIncrement: false,
20
- isUnique: false,
21
- };
22
- expect(() => generator.generateAlterColumnStatements('users', col, 'INTEGER')).toThrow(
23
- 'SQLite does not support altering column',
24
- );
25
- });
26
-
27
- it('should format default values correctly', () => {
28
- expect(generator.formatDefaultValue('test')).toBe("'test'");
29
- expect(generator.formatDefaultValue(123)).toBe('123');
30
- expect(generator.formatDefaultValue(true)).toBe('1');
31
- expect(generator.formatDefaultValue(false)).toBe('0');
32
- });
33
- });
@@ -1,81 +0,0 @@
1
- import type { ColumnSchema, ColumnType, FieldOptions } from '../../type/index.js';
2
- import { AbstractSchemaGenerator } from '../schemaGenerator.js';
3
-
4
- /**
5
- * SQLite-specific schema generator
6
- */
7
- export class SqliteSchemaGenerator extends AbstractSchemaGenerator {
8
- protected readonly serialPrimaryKeyType = 'INTEGER PRIMARY KEY AUTOINCREMENT';
9
-
10
- public override mapColumnType(columnType: ColumnType, field: FieldOptions): string {
11
- // SQLite has dynamic typing, but we use type affinity
12
- switch (columnType) {
13
- case 'int':
14
- case 'smallint':
15
- case 'bigint':
16
- case 'serial':
17
- case 'bigserial':
18
- return 'INTEGER';
19
- case 'float':
20
- case 'double':
21
- case 'real':
22
- case 'decimal':
23
- case 'numeric':
24
- return 'REAL';
25
- case 'boolean':
26
- return 'INTEGER'; // SQLite uses 0/1 for booleans
27
- case 'char':
28
- case 'varchar':
29
- case 'text':
30
- case 'uuid':
31
- return 'TEXT';
32
- case 'date':
33
- case 'time':
34
- case 'timestamp':
35
- case 'timestamptz':
36
- return 'TEXT'; // SQLite stores dates as TEXT or INTEGER
37
- case 'json':
38
- case 'jsonb':
39
- return 'TEXT'; // SQLite stores JSON as TEXT
40
- case 'blob':
41
- case 'bytea':
42
- return 'BLOB';
43
- case 'vector':
44
- return 'TEXT'; // Store as JSON array
45
- default:
46
- return 'TEXT';
47
- }
48
- }
49
-
50
- public override getBooleanType(): string {
51
- return 'INTEGER';
52
- }
53
-
54
- public override generateAlterColumnStatements(
55
- tableName: string,
56
- column: ColumnSchema,
57
- newDefinition: string,
58
- ): string[] {
59
- // SQLite has very limited ALTER TABLE support
60
- // Column type changes require recreating the table
61
- throw new Error(
62
- `SQLite does not support altering column '${column.name}' in table '${tableName}'. ` +
63
- 'You need to recreate the table to change column types.',
64
- );
65
- }
66
-
67
- public override generateColumnComment(tableName: string, columnName: string, comment: string): string {
68
- return '';
69
- }
70
-
71
- override generateDropIndex(tableName: string, indexName: string): string {
72
- return `DROP INDEX IF EXISTS ${this.escapeId(indexName)};`;
73
- }
74
-
75
- override formatDefaultValue(value: unknown): string {
76
- if (typeof value === 'boolean') {
77
- return value ? '1' : '0';
78
- }
79
- return super.formatDefaultValue(value);
80
- }
81
- }
@@ -1,41 +0,0 @@
1
- // Core types
2
-
3
- // Re-export core types for convenience
4
- // Migration-specific types
5
- export type {
6
- ColumnSchema,
7
- Dialect,
8
- ForeignKeySchema,
9
- IndexSchema,
10
- Migration,
11
- MigrationDefinition,
12
- MigrationResult,
13
- MigrationStorage,
14
- MigratorOptions,
15
- MongoQuerier,
16
- SchemaDiff,
17
- SchemaGenerator,
18
- SchemaIntrospector,
19
- SqlDialect,
20
- SqlQuerier,
21
- SqlQueryDialect,
22
- TableSchema,
23
- } from '../type/index.js';
24
- export { isSqlQuerier } from '../type/index.js';
25
- export {
26
- MysqlSchemaGenerator,
27
- MysqlSchemaGenerator as MariadbSchemaGenerator,
28
- } from './generator/mysqlSchemaGenerator.js';
29
- export { PostgresSchemaGenerator } from './generator/postgresSchemaGenerator.js';
30
- export { SqliteSchemaGenerator } from './generator/sqliteSchemaGenerator.js';
31
- // Schema introspection
32
- export { MariadbSchemaIntrospector, MysqlSchemaIntrospector } from './introspection/mysqlIntrospector.js';
33
- export { PostgresSchemaIntrospector } from './introspection/postgresIntrospector.js';
34
- export { SqliteSchemaIntrospector } from './introspection/sqliteIntrospector.js';
35
- // Main migrator
36
- export { defineMigration, Migrator } from './migrator.js';
37
- // Schema generators
38
- export { AbstractSchemaGenerator } from './schemaGenerator.js';
39
- // Storage implementations
40
- export { DatabaseMigrationStorage } from './storage/databaseStorage.js';
41
- export { JsonMigrationStorage } from './storage/jsonStorage.js';
@@ -1,4 +0,0 @@
1
- export * from './mongoIntrospector.js';
2
- export { MariadbSchemaIntrospector, MysqlSchemaIntrospector } from './mysqlIntrospector.js';
3
- export * from './postgresIntrospector.js';
4
- export * from './sqliteIntrospector.js';