@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,296 +0,0 @@
1
- import type {
2
- ColumnSchema,
3
- ForeignKeySchema,
4
- IndexSchema,
5
- QuerierPool,
6
- SchemaIntrospector,
7
- SqlQuerier,
8
- TableSchema,
9
- } from '../../type/index.js';
10
- import { isSqlQuerier } from '../../type/index.js';
11
-
12
- /**
13
- * SQLite schema introspector
14
- */
15
- export class SqliteSchemaIntrospector implements SchemaIntrospector {
16
- constructor(private readonly querierPool: QuerierPool) {}
17
-
18
- async getTableSchema(tableName: string): Promise<TableSchema | undefined> {
19
- const querier = await this.getQuerier();
20
-
21
- try {
22
- const exists = await this.tableExistsInternal(querier, tableName);
23
- if (!exists) {
24
- return undefined;
25
- }
26
-
27
- const [columns, indexes, foreignKeys, primaryKey] = await Promise.all([
28
- this.getColumns(querier, tableName),
29
- this.getIndexes(querier, tableName),
30
- this.getForeignKeys(querier, tableName),
31
- this.getPrimaryKey(querier, tableName),
32
- ]);
33
-
34
- return {
35
- name: tableName,
36
- columns,
37
- primaryKey,
38
- indexes,
39
- foreignKeys,
40
- };
41
- } finally {
42
- await querier.release();
43
- }
44
- }
45
-
46
- async getTableNames(): Promise<string[]> {
47
- const querier = await this.getQuerier();
48
-
49
- try {
50
- const sql = /*sql*/ `
51
- SELECT name
52
- FROM sqlite_master
53
- WHERE type = 'table'
54
- AND name NOT LIKE 'sqlite_%'
55
- ORDER BY name
56
- `;
57
-
58
- const results = await querier.all<{ name: string }>(sql);
59
- return results.map((r: any) => r.name);
60
- } finally {
61
- await querier.release();
62
- }
63
- }
64
-
65
- async tableExists(tableName: string): Promise<boolean> {
66
- const querier = await this.getQuerier();
67
-
68
- try {
69
- return this.tableExistsInternal(querier, tableName);
70
- } finally {
71
- await querier.release();
72
- }
73
- }
74
-
75
- private async tableExistsInternal(querier: SqlQuerier, tableName: string): Promise<boolean> {
76
- const sql = /*sql*/ `
77
- SELECT COUNT(*) as count
78
- FROM sqlite_master
79
- WHERE type = 'table'
80
- AND name = ?
81
- `;
82
-
83
- const results = await querier.all<{ count: number }>(sql, [tableName]);
84
- return (results[0]?.count ?? 0) > 0;
85
- }
86
-
87
- private async getQuerier(): Promise<SqlQuerier> {
88
- const querier = await this.querierPool.getQuerier();
89
-
90
- if (!isSqlQuerier(querier)) {
91
- await querier.release();
92
- throw new Error('SqliteSchemaIntrospector requires a SQL-based querier');
93
- }
94
-
95
- return querier;
96
- }
97
-
98
- private async getColumns(querier: SqlQuerier, tableName: string): Promise<ColumnSchema[]> {
99
- // SQLite uses PRAGMA for table info
100
- const sql = `PRAGMA table_info(${this.escapeId(tableName)})`;
101
-
102
- const results = await querier.all<{
103
- cid: number;
104
- name: string;
105
- type: string;
106
- notnull: number;
107
- dflt_value: string | null;
108
- pk: number;
109
- }>(sql);
110
-
111
- // Get unique columns from indexes
112
- const uniqueColumns = await this.getUniqueColumns(querier, tableName);
113
-
114
- return results.map((row: any) => ({
115
- name: row.name,
116
- type: this.normalizeType(row.type),
117
- nullable: row.notnull === 0,
118
- defaultValue: this.parseDefaultValue(row.dflt_value),
119
- isPrimaryKey: row.pk > 0,
120
- isAutoIncrement: row.pk > 0 && row.type.toUpperCase() === 'INTEGER',
121
- isUnique: uniqueColumns.has(row.name),
122
- length: this.extractLength(row.type),
123
- precision: undefined,
124
- scale: undefined,
125
- comment: undefined, // SQLite doesn't support column comments
126
- }));
127
- }
128
-
129
- private async getUniqueColumns(querier: SqlQuerier, tableName: string): Promise<Set<string>> {
130
- const sql = `PRAGMA index_list(${this.escapeId(tableName)})`;
131
-
132
- const indexes = await querier.all<{
133
- seq: number;
134
- name: string;
135
- unique: number;
136
- origin: string;
137
- partial: number;
138
- }>(sql);
139
-
140
- const uniqueColumns = new Set<string>();
141
-
142
- for (const index of indexes) {
143
- if (index.unique && index.origin === 'u') {
144
- const indexInfo = await querier.all<{ name: string }>(`PRAGMA index_info(${this.escapeId(index.name)})`);
145
- // Only single-column unique constraints
146
- if (indexInfo.length === 1) {
147
- uniqueColumns.add(indexInfo[0].name);
148
- }
149
- }
150
- }
151
-
152
- return uniqueColumns;
153
- }
154
-
155
- private async getIndexes(querier: SqlQuerier, tableName: string): Promise<IndexSchema[]> {
156
- const sql = `PRAGMA index_list(${this.escapeId(tableName)})`;
157
-
158
- const indexes = await querier.all<{
159
- seq: number;
160
- name: string;
161
- unique: number;
162
- origin: string;
163
- partial: number;
164
- }>(sql);
165
-
166
- const result: IndexSchema[] = [];
167
-
168
- for (const index of indexes) {
169
- // Skip auto-generated indexes (primary key, unique constraints)
170
- if (index.origin !== 'c') {
171
- continue;
172
- }
173
-
174
- const columns = await querier.all<{ name: string }>(`PRAGMA index_info(${this.escapeId(index.name)})`);
175
-
176
- result.push({
177
- name: index.name,
178
- columns: columns.map((c: any) => c.name),
179
- unique: Boolean(index.unique),
180
- });
181
- }
182
-
183
- return result;
184
- }
185
-
186
- private async getForeignKeys(querier: SqlQuerier, tableName: string): Promise<ForeignKeySchema[]> {
187
- const sql = `PRAGMA foreign_key_list(${this.escapeId(tableName)})`;
188
-
189
- const results = await querier.all<{
190
- id: number;
191
- seq: number;
192
- table: string;
193
- from: string;
194
- to: string;
195
- on_update: string;
196
- on_delete: string;
197
- match: string;
198
- }>(sql);
199
-
200
- // Group by id to handle composite foreign keys
201
- const grouped = new Map<number, typeof results>();
202
- for (const row of results) {
203
- const existing = grouped.get(row.id) ?? [];
204
- existing.push(row);
205
- grouped.set(row.id, existing);
206
- }
207
-
208
- return Array.from(grouped.entries()).map(([id, rows]) => {
209
- const first = rows[0];
210
- return {
211
- name: `fk_${tableName}_${id}`,
212
- columns: rows.map((r: any) => r.from),
213
- referencedTable: first.table,
214
- referencedColumns: rows.map((r: any) => r.to),
215
- onDelete: this.normalizeReferentialAction(first.on_delete),
216
- onUpdate: this.normalizeReferentialAction(first.on_update),
217
- };
218
- });
219
- }
220
-
221
- private async getPrimaryKey(querier: SqlQuerier, tableName: string): Promise<string[] | undefined> {
222
- const sql = `PRAGMA table_info(${this.escapeId(tableName)})`;
223
-
224
- const results = await querier.all<{
225
- cid: number;
226
- name: string;
227
- type: string;
228
- notnull: number;
229
- dflt_value: string | null;
230
- pk: number;
231
- }>(sql);
232
-
233
- const pkColumns = results.filter((r: any) => r.pk > 0).sort((a: any, b: any) => a.pk - b.pk);
234
-
235
- if (pkColumns.length === 0) {
236
- return undefined;
237
- }
238
-
239
- return pkColumns.map((r: any) => r.name);
240
- }
241
-
242
- private escapeId(identifier: string): string {
243
- return `\`${identifier.replace(/`/g, '``')}\``;
244
- }
245
-
246
- private normalizeType(type: string): string {
247
- // Extract base type without length/precision
248
- const match = type.match(/^([A-Za-z]+)/);
249
- return match ? match[1].toUpperCase() : type.toUpperCase();
250
- }
251
-
252
- private extractLength(type: string): number | undefined {
253
- const match = type.match(/\((\d+)\)/);
254
- return match ? Number.parseInt(match[1], 10) : undefined;
255
- }
256
-
257
- private parseDefaultValue(defaultValue: string | null): unknown {
258
- if (defaultValue === null) {
259
- return undefined;
260
- }
261
-
262
- // Check for common patterns
263
- if (defaultValue === 'NULL') {
264
- return null;
265
- }
266
- if (defaultValue === 'CURRENT_TIMESTAMP' || defaultValue === 'CURRENT_DATE' || defaultValue === 'CURRENT_TIME') {
267
- return defaultValue;
268
- }
269
- if (/^'.*'$/.test(defaultValue)) {
270
- return defaultValue.slice(1, -1);
271
- }
272
- if (/^-?\d+$/.test(defaultValue)) {
273
- return Number.parseInt(defaultValue, 10);
274
- }
275
- if (/^-?\d+\.\d+$/.test(defaultValue)) {
276
- return Number.parseFloat(defaultValue);
277
- }
278
-
279
- return defaultValue;
280
- }
281
-
282
- private normalizeReferentialAction(action: string): 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION' | undefined {
283
- switch (action.toUpperCase()) {
284
- case 'CASCADE':
285
- return 'CASCADE';
286
- case 'SET NULL':
287
- return 'SET NULL';
288
- case 'RESTRICT':
289
- return 'RESTRICT';
290
- case 'NO ACTION':
291
- return 'NO ACTION';
292
- default:
293
- return undefined;
294
- }
295
- }
296
- }
@@ -1,54 +0,0 @@
1
- import { beforeEach, describe, expect, it, jest } from 'bun:test';
2
- import { Entity, Field, Id } from '../entity/index.js';
3
- import type { QuerierPool } from '../type/index.js';
4
- import { Migrator } from './migrator.js';
5
-
6
- @Entity()
7
- class SyncMongoUser {
8
- @Id() id?: string;
9
- @Field({ index: true }) name?: string;
10
- }
11
-
12
- describe('Migrator autoSync MongoDB Integration', () => {
13
- let migrator: Migrator;
14
- let pool: QuerierPool;
15
- let db: any;
16
-
17
- beforeEach(() => {
18
- db = {
19
- listCollections: jest.fn<any>().mockReturnValue({
20
- toArray: jest.fn<any>().mockResolvedValue([]),
21
- }),
22
- createCollection: jest.fn<any>().mockResolvedValue({}),
23
- collection: jest.fn<any>().mockReturnValue({
24
- indexes: jest.fn<any>().mockResolvedValue([]),
25
- createIndex: jest.fn<any>().mockResolvedValue({}),
26
- }),
27
- };
28
-
29
- const querier = {
30
- db,
31
- release: jest.fn<any>().mockResolvedValue(undefined),
32
- };
33
-
34
- pool = {
35
- getQuerier: jest.fn<any>().mockResolvedValue(querier),
36
- dialect: 'mongodb',
37
- } as unknown as QuerierPool;
38
-
39
- migrator = new Migrator(pool, {
40
- entities: [SyncMongoUser],
41
- });
42
- });
43
-
44
- it('should generate createCollection and createIndex for MongoDB', async () => {
45
- await migrator.autoSync({ logging: true });
46
-
47
- expect(db.createCollection).toHaveBeenCalledWith('SyncMongoUser');
48
- expect(db.collection).toHaveBeenCalledWith('SyncMongoUser');
49
- expect(db.collection('SyncMongoUser').createIndex).toHaveBeenCalledWith(
50
- { name: 1 },
51
- expect.objectContaining({ name: 'idx_SyncMongoUser_name' }),
52
- );
53
- });
54
- });
@@ -1,255 +0,0 @@
1
- import { beforeEach, describe, expect, it, jest, mock } from 'bun:test';
2
- import { Entity, Id } from '../entity/index.js';
3
- import type { Migration, MigrationStorage, QuerierPool, SqlQuerier } from '../type/index.js';
4
- import { MongoSchemaGenerator } from './generator/mongoSchemaGenerator.js';
5
- import { MysqlSchemaGenerator } from './generator/mysqlSchemaGenerator.js';
6
- import { PostgresSchemaGenerator } from './generator/postgresSchemaGenerator.js';
7
- import { SqliteSchemaGenerator } from './generator/sqliteSchemaGenerator.js';
8
- import { MongoSchemaIntrospector } from './introspection/mongoIntrospector.js';
9
- import { MysqlSchemaIntrospector } from './introspection/mysqlIntrospector.js';
10
- import { PostgresSchemaIntrospector } from './introspection/postgresIntrospector.js';
11
- import { SqliteSchemaIntrospector } from './introspection/sqliteIntrospector.js';
12
- import { Migrator } from './migrator.js';
13
-
14
- mock.module('node:fs/promises', () => ({
15
- readdir: jest.fn<any>().mockResolvedValue([]) as any,
16
- mkdir: jest.fn<any>().mockResolvedValue(undefined) as any,
17
- writeFile: jest.fn<any>().mockResolvedValue(undefined) as any,
18
- }));
19
-
20
- describe('Migrator Core Methods', () => {
21
- let migrator: Migrator;
22
- let storage: MigrationStorage;
23
- let pool: QuerierPool;
24
- let querier: SqlQuerier;
25
- let mockExecuted: ReturnType<typeof jest.fn>;
26
-
27
- beforeEach(() => {
28
- querier = {
29
- beginTransaction: jest.fn<any>().mockResolvedValue(undefined),
30
- commitTransaction: jest.fn<any>().mockResolvedValue(undefined),
31
- rollbackTransaction: jest.fn<any>().mockResolvedValue(undefined),
32
- release: jest.fn<any>().mockResolvedValue(undefined),
33
- all: jest.fn<any>().mockResolvedValue([]),
34
- run: jest.fn<any>().mockResolvedValue({}),
35
- dialect: {
36
- escapeIdChar: '"',
37
- },
38
- } as any;
39
-
40
- pool = {
41
- getQuerier: jest.fn<any>().mockResolvedValue(querier),
42
- dialect: 'postgres',
43
- } as any;
44
-
45
- mockExecuted = jest.fn<any>().mockResolvedValue([]);
46
- storage = {
47
- executed: mockExecuted,
48
- logWithQuerier: jest.fn<any>().mockResolvedValue(undefined),
49
- unlogWithQuerier: jest.fn<any>().mockResolvedValue(undefined),
50
- ensureStorage: jest.fn<any>().mockResolvedValue(undefined),
51
- } as any;
52
-
53
- migrator = new Migrator(pool, { storage });
54
-
55
- // Mock getMigrations to return some dummy migrations
56
- const mockMigrations: Migration[] = [
57
- {
58
- name: '20250101000000_m1',
59
- up: jest.fn<any>().mockResolvedValue(undefined),
60
- down: jest.fn<any>().mockResolvedValue(undefined),
61
- },
62
- {
63
- name: '20250102000000_m2',
64
- up: jest.fn<any>().mockResolvedValue(undefined),
65
- down: jest.fn<any>().mockResolvedValue(undefined),
66
- },
67
- {
68
- name: '20250103000000_m3',
69
- up: jest.fn<any>().mockResolvedValue(undefined),
70
- down: jest.fn<any>().mockResolvedValue(undefined),
71
- },
72
- ];
73
- jest.spyOn(migrator, 'getMigrations').mockResolvedValue(mockMigrations);
74
- });
75
-
76
- it('pending should return non-executed migrations', async () => {
77
- mockExecuted.mockResolvedValue(['20250101000000_m1']);
78
-
79
- const pending = await migrator.pending();
80
-
81
- expect(pending).toHaveLength(2);
82
- expect(pending[0].name).toBe('20250102000000_m2');
83
- expect(pending[1].name).toBe('20250103000000_m3');
84
- });
85
-
86
- it('up should run all pending migrations', async () => {
87
- mockExecuted.mockResolvedValue(['20250101000000_m1']);
88
-
89
- const results = await migrator.up();
90
-
91
- expect(results).toHaveLength(2);
92
- expect(results[0].name).toBe('20250102000000_m2');
93
- expect(results[1].name).toBe('20250103000000_m3');
94
-
95
- const migrations = await migrator.getMigrations();
96
- expect(migrations[1].up).toHaveBeenCalled();
97
- expect(migrations[2].up).toHaveBeenCalled();
98
- expect(storage.logWithQuerier).toHaveBeenCalledTimes(2);
99
- });
100
-
101
- it('up to a specific migration', async () => {
102
- mockExecuted.mockResolvedValue([]);
103
-
104
- const results = await migrator.up({ to: '20250102000000_m2' });
105
-
106
- expect(results).toHaveLength(2);
107
- expect(results[0].name).toBe('20250101000000_m1');
108
- expect(results[1].name).toBe('20250102000000_m2');
109
- });
110
-
111
- it('down should rollback the last migration', async () => {
112
- mockExecuted.mockResolvedValue(['20250101000000_m1', '20250102000000_m2']);
113
-
114
- const results = await migrator.down({ step: 1 });
115
-
116
- expect(results).toHaveLength(1);
117
- expect(results[0].name).toBe('20250102000000_m2');
118
-
119
- const migrations = await migrator.getMigrations();
120
- expect(migrations[1].down).toHaveBeenCalled();
121
- expect(storage.unlogWithQuerier).toHaveBeenCalledTimes(1);
122
- });
123
-
124
- it('down to a specific migration', async () => {
125
- mockExecuted.mockResolvedValue(['20250101000000_m1', '20250102000000_m2', '20250103000000_m3']);
126
-
127
- // From current state to m1 (inclusive), so roll back m3 and m2
128
- const results = await migrator.down({ to: '20250102000000_m2' });
129
-
130
- expect(results).toHaveLength(2);
131
- expect(results[0].name).toBe('20250103000000_m3');
132
- expect(results[1].name).toBe('20250102000000_m2');
133
- });
134
-
135
- it('generateFromEntities should create a migration file', async () => {
136
- @Entity()
137
- class DummyEntity {
138
- @Id() id?: number;
139
- }
140
-
141
- migrator = new Migrator(pool, { entities: [DummyEntity] });
142
- jest.spyOn(migrator, 'getMigrations').mockResolvedValue([]);
143
-
144
- const generator = {
145
- resolveTableName: jest.fn<any>().mockReturnValue('DiffUser'),
146
- diffSchema: jest.fn<any>().mockReturnValue({
147
- tableName: 'DiffUser',
148
- type: 'alter',
149
- columnsToAdd: [{ name: 'age', type: 'INTEGER' }],
150
- }),
151
- generateAlterTable: jest.fn<any>().mockReturnValue(['ALTER TABLE "DiffUser" ADD COLUMN "age" INTEGER;']),
152
- generateAlterTableDown: jest.fn<any>().mockReturnValue(['ALTER TABLE "DiffUser" DROP COLUMN "age";']),
153
- };
154
- migrator.setSchemaGenerator(generator as any);
155
-
156
- const introspector = {
157
- getTableSchema: jest.fn<any>().mockResolvedValue({ name: 'DiffUser', columns: [] }),
158
- getTableNames: jest.fn<any>().mockResolvedValue([]),
159
- tableExists: jest.fn<any>().mockResolvedValue(true),
160
- };
161
- migrator.schemaIntrospector = introspector as any;
162
-
163
- const { mkdir, writeFile } = await import('node:fs/promises');
164
-
165
- const filePath = await migrator.generateFromEntities('add_age');
166
-
167
- expect(filePath).not.toBe('');
168
- expect(filePath).toContain('add_age.ts');
169
- expect(mkdir).toHaveBeenCalled();
170
- expect(writeFile).toHaveBeenCalledWith(
171
- expect.any(String),
172
- expect.stringContaining('ALTER TABLE "DiffUser" ADD COLUMN "age" INTEGER;'),
173
- 'utf-8',
174
- );
175
- });
176
-
177
- it('status should return pending and executed migrations', async () => {
178
- mockExecuted.mockResolvedValue(['20250101000000_m1']);
179
-
180
- const status = await migrator.status();
181
-
182
- expect(status.pending).toEqual(['20250102000000_m2', '20250103000000_m3']);
183
- expect(status.executed).toEqual(['20250101000000_m1']);
184
- });
185
-
186
- it('sync should call autoSync by default', async () => {
187
- const autoSyncSpy = jest.spyOn(migrator, 'autoSync').mockResolvedValue(undefined);
188
- await migrator.sync();
189
- expect(autoSyncSpy).toHaveBeenCalledWith({ safe: true });
190
- });
191
-
192
- it('syncForce should drop and create tables', async () => {
193
- @Entity()
194
- class SyncEntity {
195
- @Id() id?: number;
196
- }
197
- migrator = new Migrator(pool, { entities: [SyncEntity] });
198
-
199
- const generator = {
200
- resolveTableName: jest.fn<any>().mockReturnValue('SyncEntity'),
201
- generateDropTable: jest.fn<any>().mockReturnValue('DROP TABLE "SyncEntity"'),
202
- generateCreateTable: jest.fn<any>().mockReturnValue('CREATE TABLE "SyncEntity"'),
203
- generateAlterTable: jest.fn<any>(),
204
- generateAlterTableDown: jest.fn<any>(),
205
- diffSchema: jest.fn<any>(),
206
- };
207
- migrator.setSchemaGenerator(generator as any);
208
-
209
- await migrator.syncForce();
210
-
211
- expect(querier.run).toHaveBeenCalledWith('DROP TABLE "SyncEntity"');
212
- expect(querier.run).toHaveBeenCalledWith('CREATE TABLE "SyncEntity"');
213
- expect(querier.commitTransaction).toHaveBeenCalled();
214
- });
215
-
216
- describe('Dialect Auto-Inference', () => {
217
- it('should infer Postgres generator and introspector', () => {
218
- const m = new Migrator(pool);
219
- expect((m as any).schemaGenerator).toBeInstanceOf(PostgresSchemaGenerator);
220
- expect((m as any).schemaIntrospector).toBeInstanceOf(PostgresSchemaIntrospector);
221
- });
222
-
223
- it('should infer MySQL generator and introspector', () => {
224
- const mysqlPool = { ...pool, dialect: 'mysql' };
225
- const m = new Migrator(mysqlPool as any);
226
- expect((m as any).schemaGenerator).toBeInstanceOf(MysqlSchemaGenerator);
227
- expect((m as any).schemaIntrospector).toBeInstanceOf(MysqlSchemaIntrospector);
228
- });
229
-
230
- it('should infer SQLite generator and introspector', () => {
231
- const sqlitePool = { ...pool, dialect: 'sqlite' };
232
- const m = new Migrator(sqlitePool as any);
233
- expect((m as any).schemaGenerator).toBeInstanceOf(SqliteSchemaGenerator);
234
- expect((m as any).schemaIntrospector).toBeInstanceOf(SqliteSchemaIntrospector);
235
- });
236
-
237
- it('should infer MongoDB generator and introspector', () => {
238
- const mongoPool = { ...pool, dialect: 'mongodb' };
239
- const m = new Migrator(mongoPool as any);
240
- expect((m as any).schemaGenerator).toBeInstanceOf(MongoSchemaGenerator);
241
- expect((m as any).schemaIntrospector).toBeInstanceOf(MongoSchemaIntrospector);
242
- });
243
-
244
- it('should allow overriding dialect in options', () => {
245
- const m = new Migrator(pool, { dialect: 'mysql' });
246
- expect((m as any).schemaGenerator).toBeInstanceOf(MysqlSchemaGenerator);
247
- });
248
-
249
- it('should allow overriding generator in options', () => {
250
- const customGenerator = {} as any;
251
- const m = new Migrator(pool, { dialect: 'postgres', schemaGenerator: customGenerator });
252
- expect((m as any).schemaGenerator).toBe(customGenerator);
253
- });
254
- });
255
- });
@@ -1,94 +0,0 @@
1
- import { beforeEach, describe, expect, it, jest } from 'bun:test';
2
- import { Entity, Field, Id } from '../entity/index.js';
3
- import type { QuerierPool, SqlQuerier, TableSchema } from '../type/index.js';
4
- import { Migrator } from './migrator.js';
5
-
6
- @Entity()
7
- class SyncUser {
8
- @Id() id?: number;
9
- @Field() name?: string;
10
- }
11
-
12
- @Entity()
13
- class SyncProfile {
14
- @Id() id?: number;
15
- @Field() bio?: string;
16
- @Field({ reference: () => SyncUser }) userId?: number;
17
- }
18
-
19
- describe('Migrator autoSync Integration', () => {
20
- let migrator: Migrator;
21
- let pool: QuerierPool;
22
-
23
- beforeEach(() => {
24
- // Mock pool and querier for testing
25
- const querier = {
26
- run: jest.fn<any>().mockResolvedValue({}),
27
- all: jest.fn<any>().mockResolvedValue([]),
28
- beginTransaction: jest.fn<any>().mockResolvedValue(undefined),
29
- commitTransaction: jest.fn<any>().mockResolvedValue(undefined),
30
- rollbackTransaction: jest.fn<any>().mockResolvedValue(undefined),
31
- release: jest.fn<any>().mockResolvedValue(undefined),
32
- dialect: {
33
- escapeIdChar: '"',
34
- placeholder: jest.fn<any>().mockReturnValue('?'),
35
- },
36
- };
37
- pool = {
38
- getQuerier: jest.fn<any>().mockResolvedValue(querier),
39
- dialect: 'postgres',
40
- } as unknown as QuerierPool;
41
-
42
- migrator = new Migrator(pool, {
43
- entities: [SyncUser, SyncProfile],
44
- });
45
- });
46
-
47
- it('should generate create statements for new tables', async () => {
48
- // Mock introspector to return nothing
49
- const introspector = {
50
- getTableSchema: jest.fn<any>().mockResolvedValue(undefined),
51
- getTableNames: jest.fn<any>().mockResolvedValue([]),
52
- tableExists: jest.fn<any>().mockResolvedValue(false),
53
- };
54
- migrator.schemaIntrospector = introspector as any;
55
-
56
- await migrator.autoSync({ logging: true });
57
-
58
- const querier = (await pool.getQuerier()) as SqlQuerier;
59
- expect(querier.run).toHaveBeenCalledWith(expect.stringContaining('CREATE TABLE "SyncUser"'));
60
- expect(querier.run).toHaveBeenCalledWith(expect.stringContaining('CREATE TABLE "SyncProfile"'));
61
- });
62
-
63
- it('should generate alter statements for missing columns', async () => {
64
- // Mock introspector to return existing table with one column missing
65
- const introspector = {
66
- getTableSchema: jest.fn<any>().mockImplementation((name: any) => {
67
- if (name === 'SyncUser') {
68
- return Promise.resolve({
69
- name: 'SyncUser',
70
- columns: [
71
- {
72
- name: 'id',
73
- type: 'INTEGER',
74
- nullable: false,
75
- isPrimaryKey: true,
76
- isAutoIncrement: true,
77
- isUnique: false,
78
- },
79
- ],
80
- } as TableSchema);
81
- }
82
- return Promise.resolve(undefined);
83
- }),
84
- };
85
- migrator.schemaIntrospector = introspector as any;
86
-
87
- await migrator.autoSync({ logging: true });
88
-
89
- const querier = (await pool.getQuerier()) as SqlQuerier;
90
- expect(querier.run).toHaveBeenCalledWith(
91
- expect.stringContaining('ALTER TABLE "SyncUser" ADD COLUMN "name" VARCHAR(255)'),
92
- );
93
- });
94
- });