@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,265 +0,0 @@
1
- import 'reflect-metadata';
2
- import type {
3
- EntityMeta,
4
- EntityOptions,
5
- FieldKey,
6
- FieldOptions,
7
- IdKey,
8
- Key,
9
- RelationKey,
10
- RelationKeyMap,
11
- RelationOptions,
12
- Type,
13
- } from '../../type/index.js';
14
- import { getKeys, hasKeys, lowerFirst, upperFirst } from '../../util/index.js';
15
-
16
- const holder = globalThis;
17
- const metaKey = '@uql/core/entity/decorator';
18
- const metas: Map<Type<unknown>, EntityMeta<any>> = holder[metaKey] ?? new Map();
19
- holder[metaKey] = metas;
20
-
21
- export function defineField<E>(entity: Type<E>, key: string, opts: FieldOptions = {}): EntityMeta<E> {
22
- const meta = ensureMeta(entity);
23
- if (!opts.type) {
24
- const type = inferType(entity, key);
25
- opts = { ...opts, type };
26
- }
27
- meta.fields[key] = { ...meta.fields[key], ...{ name: key, ...opts } };
28
- return meta;
29
- }
30
-
31
- export function defineId<E>(entity: Type<E>, key: string, opts: FieldOptions): EntityMeta<E> {
32
- const meta = ensureMeta(entity);
33
- const id = getIdKey(meta);
34
- if (id) {
35
- console.info(`Overriding ID property for '${entity.name}' from '${id}' to '${key}'`);
36
- delete meta.fields[id];
37
- }
38
- return defineField(entity, key, { ...opts, isId: true });
39
- }
40
-
41
- export function defineRelation<E>(entity: Type<E>, key: string, opts: RelationOptions<E>): EntityMeta<E> {
42
- if (!opts.entity) {
43
- const inferredType = inferEntityType(entity, key);
44
- opts.entity = () => inferredType;
45
- }
46
- const meta = ensureMeta(entity);
47
- meta.relations[key] = { ...meta.relations[key], ...opts };
48
- return meta;
49
- }
50
-
51
- export function defineEntity<E>(entity: Type<E>, opts: EntityOptions = {}): EntityMeta<E> {
52
- const meta = ensureMeta(entity);
53
-
54
- if (!hasKeys(meta.fields)) {
55
- throw TypeError(`'${entity.name}' must have fields`);
56
- }
57
-
58
- const onDeleteKeys = getKeys(meta.fields).filter((key) => meta.fields[key].onDelete) as FieldKey<E>[];
59
-
60
- if (onDeleteKeys.length > 1) {
61
- throw TypeError(`'${entity.name}' must have one field with 'onDelete' as maximum`);
62
- }
63
-
64
- if (opts.softDelete) {
65
- if (!onDeleteKeys.length) {
66
- throw TypeError(`'${entity.name}' must have one field with 'onDelete' to enable 'softDelete'`);
67
- }
68
- meta.softDelete = onDeleteKeys[0];
69
- }
70
-
71
- meta.name = opts.name ?? entity.name;
72
- let proto: FunctionConstructor = Object.getPrototypeOf(entity.prototype);
73
-
74
- while (proto.constructor !== Object) {
75
- const parentMeta = ensureMeta(proto.constructor as Type<E>);
76
- extendMeta(meta, parentMeta);
77
- proto = Object.getPrototypeOf(proto);
78
- }
79
-
80
- const id = getIdKey(meta);
81
- if (!id) {
82
- throw TypeError(`'${entity.name}' must have one field decorated with @Id`);
83
- }
84
- meta.id = id;
85
-
86
- return meta;
87
- }
88
-
89
- export function getEntities(): Type<unknown>[] {
90
- return [...metas.entries()].reduce((acc, [key, val]) => {
91
- if (val.id) {
92
- acc.push(key);
93
- }
94
- return acc;
95
- }, []);
96
- }
97
-
98
- function ensureMeta<E>(entity: Type<E>): EntityMeta<E> {
99
- let meta = metas.get(entity);
100
- if (meta) {
101
- return meta;
102
- }
103
- meta = { entity, fields: {}, relations: {} };
104
- metas.set(entity, meta);
105
- return meta;
106
- }
107
-
108
- export function getMeta<E>(entity: Type<E>): EntityMeta<E> {
109
- const meta = metas.get(entity);
110
- if (!meta) {
111
- throw TypeError(`'${entity.name}' is not an entity`);
112
- }
113
- if (meta.processed) {
114
- return meta;
115
- }
116
- meta.processed = true;
117
- return fillRelations(meta);
118
- }
119
-
120
- function fillRelations<E>(meta: EntityMeta<E>): EntityMeta<E> {
121
- for (const relKey in meta.relations) {
122
- const relOpts = meta.relations[relKey as RelationKey<E>];
123
-
124
- if (relOpts.references) {
125
- // references were manually specified
126
- continue;
127
- }
128
-
129
- if (relOpts.mappedBy) {
130
- fillInverseSideRelations(relOpts);
131
- continue;
132
- }
133
-
134
- const relEntity = relOpts.entity();
135
- const relMeta = ensureMeta(relEntity);
136
-
137
- if (relOpts.cardinality === 'mm') {
138
- const idName = meta.fields[meta.id].name;
139
- const relIdName = relMeta.fields[relMeta.id].name;
140
- const source = lowerFirst(meta.name) + upperFirst(idName);
141
- const target = lowerFirst(relMeta.name) + upperFirst(relIdName);
142
- relOpts.references = [
143
- { local: source, foreign: meta.id },
144
- { local: target, foreign: relMeta.id },
145
- ];
146
- } else {
147
- relOpts.references = [{ local: `${relKey}Id`, foreign: relMeta.id }];
148
- }
149
-
150
- if (relOpts.through) {
151
- fillThroughRelations(relOpts.through());
152
- }
153
- }
154
-
155
- return meta;
156
- }
157
-
158
- function fillInverseSideRelations<E>(relOpts: RelationOptions<E>): void {
159
- const relEntity = relOpts.entity();
160
- const relMeta = getMeta(relEntity);
161
- relOpts.mappedBy = getMappedByRelationKey(relOpts);
162
-
163
- if (relMeta.fields[relOpts.mappedBy as FieldKey<E>]) {
164
- relOpts.references = [{ local: relMeta.id, foreign: relOpts.mappedBy }];
165
- return;
166
- }
167
-
168
- const mappedByRelation = relMeta.relations[relOpts.mappedBy as RelationKey<E>];
169
-
170
- if (relOpts.cardinality === 'm1' || relOpts.cardinality === 'mm') {
171
- relOpts.references = mappedByRelation.references.slice().reverse();
172
- relOpts.through = mappedByRelation.through;
173
- return;
174
- }
175
-
176
- relOpts.references = mappedByRelation.references.map(({ local, foreign }) => ({
177
- local: foreign,
178
- foreign: local,
179
- }));
180
- }
181
-
182
- function fillThroughRelations<E>(entity: Type<E>): void {
183
- const meta = ensureMeta(entity);
184
- meta.relations = getKeys(meta.fields).reduce((relations, key) => {
185
- const { reference } = meta.fields[key as FieldKey<E>];
186
- if (reference) {
187
- const relEntity = reference();
188
- const relMeta = ensureMeta(relEntity);
189
- const relKey = key.slice(0, -relMeta.id.length);
190
- const relOpts: RelationOptions = {
191
- entity: reference,
192
- cardinality: 'm1',
193
- references: [{ local: key, foreign: relMeta.id }],
194
- };
195
- relations[relKey] = relOpts;
196
- }
197
- return relations;
198
- }, {});
199
- }
200
-
201
- function getMappedByRelationKey<E>(relOpts: RelationOptions<E>): Key<E> {
202
- if (typeof relOpts.mappedBy === 'function') {
203
- const relEntity = relOpts.entity();
204
- const relMeta = ensureMeta(relEntity);
205
- const keyMap = getRelationKeyMap(relMeta);
206
- return relOpts.mappedBy(keyMap);
207
- }
208
- return relOpts.mappedBy;
209
- }
210
-
211
- function getRelationKeyMap<E>(meta: EntityMeta<E>): RelationKeyMap<E> {
212
- return getKeys(meta.fields)
213
- .concat(getKeys(meta.relations))
214
- .reduce(
215
- (acc, key) => {
216
- acc[key] = key;
217
- return acc;
218
- },
219
- {} as RelationKeyMap<E>,
220
- );
221
- }
222
-
223
- function getIdKey<E>(meta: EntityMeta<E>): IdKey<E> {
224
- const id = getKeys(meta.fields).find((key) => meta.fields[key]?.isId);
225
- return id as IdKey<E>;
226
- }
227
-
228
- function extendMeta<E>(target: EntityMeta<E>, source: EntityMeta<E>): void {
229
- const sourceFields = { ...source.fields };
230
- const targetId = getIdKey(target);
231
- if (targetId) {
232
- const sourceId = getIdKey(source);
233
- if (sourceId) {
234
- delete sourceFields[sourceId];
235
- }
236
- }
237
- target.fields = { ...sourceFields, ...target.fields };
238
- target.relations = { ...source.relations, ...target.relations };
239
- }
240
-
241
- function inferType<E>(entity: Type<E>, key: string): any {
242
- return Reflect.getMetadata('design:type', entity.prototype, key);
243
- }
244
-
245
- function inferEntityType<E>(entity: Type<E>, key: string): Type<any> {
246
- const inferredType = inferType(entity, key);
247
- const isValidType = isValidEntityType(inferredType);
248
- if (!isValidType) {
249
- console.log('****', entity, key, inferredType);
250
- throw TypeError(`'${entity.name}.${key}' type was auto-inferred with invalid type '${inferredType?.name}'`);
251
- }
252
- return inferredType;
253
- }
254
-
255
- export function isValidEntityType(type: unknown): type is Type<unknown> {
256
- return (
257
- typeof type === 'function' &&
258
- type !== Boolean &&
259
- type !== String &&
260
- type !== Number &&
261
- type !== BigInt &&
262
- type !== Date &&
263
- type !== Symbol
264
- );
265
- }
@@ -1,8 +0,0 @@
1
- import type { EntityOptions, Type } from '../../type/index.js';
2
- import { defineEntity } from './definition.js';
3
-
4
- export function Entity<E>(opts?: EntityOptions) {
5
- return (entity: Type<E>): void => {
6
- defineEntity(entity, opts);
7
- };
8
- }
@@ -1,9 +0,0 @@
1
- import type { FieldOptions, Type } from '../../type/index.js';
2
- import { defineField } from './definition.js';
3
-
4
- export function Field<E>(opts?: FieldOptions) {
5
- return (target: object, key: string): void => {
6
- const entity = target.constructor as Type<E>;
7
- defineField(entity, key, opts);
8
- };
9
- }
@@ -1,9 +0,0 @@
1
- import type { FieldOptions, Type } from '../../type/index.js';
2
- import { defineId } from './definition.js';
3
-
4
- export function Id<E>(opts?: Omit<FieldOptions, 'isId'>) {
5
- return (target: object, key: string): void => {
6
- const entity = target.constructor as Type<E>;
7
- defineId(entity, key, opts);
8
- };
9
- }
@@ -1,5 +0,0 @@
1
- export { getEntities, getMeta } from './definition.js';
2
- export * from './entity.js';
3
- export * from './field.js';
4
- export * from './id.js';
5
- export * from './relation.js';
@@ -1,41 +0,0 @@
1
- import { expect, it } from 'bun:test';
2
- import { ManyToOne } from './relation.js';
3
-
4
- it('invalid auto-inferred type', () => {
5
- expect(() => {
6
- class SomeEntity {
7
- @ManyToOne()
8
- idTwo: number;
9
- }
10
- }).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'Number'`);
11
- expect(() => {
12
- class SomeEntity {
13
- @ManyToOne()
14
- idTwo: string;
15
- }
16
- }).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'String'`);
17
- expect(() => {
18
- class SomeEntity {
19
- @ManyToOne()
20
- idTwo: boolean;
21
- }
22
- }).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'Boolean'`);
23
- expect(() => {
24
- class SomeEntity {
25
- @ManyToOne()
26
- idTwo: object;
27
- }
28
- }).not.toThrow();
29
- expect(() => {
30
- class SomeEntity {
31
- @ManyToOne()
32
- idTwo: null;
33
- }
34
- }).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'undefined'`);
35
- expect(() => {
36
- class SomeEntity {
37
- @ManyToOne()
38
- idTwo: undefined;
39
- }
40
- }).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'undefined'`);
41
- });
@@ -1,34 +0,0 @@
1
- import type {
2
- RelationManyToManyOptions,
3
- RelationManyToOneOptions,
4
- RelationOneToManyOptions,
5
- RelationOneToOneOptions,
6
- RelationOptions,
7
- Type,
8
- } from '../../type/index.js';
9
- import { defineRelation } from './definition.js';
10
-
11
- function Relation<E>(opts: RelationOptions<E>) {
12
- return (target: object, key: string) => {
13
- const entity = target.constructor as Type<E>;
14
- defineRelation(entity, key, opts);
15
- };
16
- }
17
-
18
- type RelationReturn = ReturnType<typeof Relation>;
19
-
20
- export function OneToOne<E>(opts?: RelationOneToOneOptions<E>): RelationReturn {
21
- return Relation({ cardinality: '11', ...opts });
22
- }
23
-
24
- export function ManyToOne<E>(opts?: RelationManyToOneOptions<E>): RelationReturn {
25
- return Relation({ cardinality: 'm1', ...opts });
26
- }
27
-
28
- export function OneToMany<E>(opts: RelationOneToManyOptions<E>): RelationReturn {
29
- return Relation({ cardinality: '1m', ...opts });
30
- }
31
-
32
- export function ManyToMany<E>(opts: RelationManyToManyOptions<E>): RelationReturn {
33
- return Relation({ cardinality: 'mm', ...opts });
34
- }
@@ -1 +0,0 @@
1
- export * from './decorator/index.js';
@@ -1,8 +0,0 @@
1
- import 'express';
2
- import type { Query } from '../../type/query.js';
3
-
4
- declare module 'express' {
5
- export interface Request {
6
- query?: Query;
7
- }
8
- }
@@ -1 +0,0 @@
1
- import './express';
@@ -1,2 +0,0 @@
1
- export * from './querierMiddleware.js';
2
- export * from './query.util.js';
@@ -1,217 +0,0 @@
1
- import { Router as expressRouter, type Request, type Router } from 'express';
2
- import { getEntities, getMeta } from '../entity/index.js';
3
- import { getQuerier } from '../index.js';
4
- import type { EntityMeta, IdValue, Query, Type } from '../type/index.js';
5
- import { kebabCase } from '../util/index.js';
6
- import { parseQuery } from './query.util.js';
7
-
8
- export function querierMiddleware(opts: MiddlewareOptions = {}): Router {
9
- const router = expressRouter();
10
-
11
- const { include, exclude, ...extra } = opts;
12
-
13
- let entities = include ?? getEntities();
14
-
15
- if (exclude) {
16
- entities = entities.filter((entity) => !opts.exclude.includes(entity));
17
- }
18
-
19
- if (!entities.length) {
20
- throw new TypeError('no entities for the uql express middleware');
21
- }
22
-
23
- for (const entity of entities) {
24
- const path = kebabCase(entity.name);
25
- const subRouter = buildQuerierRouter(entity, extra);
26
- router.use('/' + path, subRouter);
27
- }
28
-
29
- return router;
30
- }
31
-
32
- export function buildQuerierRouter<E>(entity: Type<E>, opts: ExtraOptions): Router {
33
- const meta = getMeta(entity);
34
- const router = expressRouter();
35
-
36
- router.use((req, res, next) => {
37
- pre(req, meta, opts);
38
- next();
39
- });
40
-
41
- router.get('/one', async (req, res, next) => {
42
- const q = req.query as Query<E>;
43
- const querier = await getQuerier();
44
- try {
45
- const data = await querier.findOne(entity, q);
46
- res.json({ data, count: data ? 1 : 0 });
47
- } catch (err: any) {
48
- next(err);
49
- }
50
- });
51
-
52
- router.get('/:id', async (req, res, next) => {
53
- const id = req.params.id as IdValue<E>;
54
- const q = req.query as Query<E>;
55
- q.$where ??= {};
56
- if (Array.isArray(q.$where)) {
57
- q.$where.push(id);
58
- } else {
59
- q.$where[meta.id as string] = id;
60
- }
61
- const querier = await getQuerier();
62
- try {
63
- const data = await querier.findOne(entity, q);
64
- res.json({ data, count: data ? 1 : 0 });
65
- } catch (err: any) {
66
- next(err);
67
- }
68
- });
69
-
70
- router.get('/', async (req, res, next) => {
71
- const q = req.query as Query<E>;
72
- const querier = await getQuerier();
73
- try {
74
- const findManyPromise = querier.findMany(entity, q);
75
- const countPromise = req.query.count ? querier.count(entity, q) : undefined;
76
- const [data, count] = await Promise.all([findManyPromise, countPromise]);
77
- res.json({ data, count });
78
- } catch (err: any) {
79
- next(err);
80
- }
81
- });
82
-
83
- router.get('/count', async (req, res, next) => {
84
- const q = req.query as Query<E>;
85
- const querier = await getQuerier();
86
- try {
87
- const count = await querier.count(entity, q);
88
- res.json({ data: count, count });
89
- } catch (err: any) {
90
- next(err);
91
- }
92
- });
93
-
94
- router.post('/', async (req, res, next) => {
95
- const payload = req.body as E;
96
- const querier = await getQuerier();
97
- try {
98
- await querier.beginTransaction();
99
- const id = await querier.insertOne(entity, payload);
100
- await querier.commitTransaction();
101
- res.json({ data: id, count: id ? 1 : 0 });
102
- } catch (err: any) {
103
- await querier.rollbackTransaction();
104
- next(err);
105
- } finally {
106
- await querier.release();
107
- }
108
- });
109
-
110
- router.patch('/:id', async (req, res, next) => {
111
- const payload = req.body as E;
112
- const id = req.params.id as IdValue<E>;
113
- const q = req.query as Query<E>;
114
- q.$where ??= {};
115
- if (Array.isArray(q.$where)) {
116
- q.$where.push(id);
117
- } else {
118
- q.$where[meta.id as string] = id;
119
- }
120
- const querier = await getQuerier();
121
- try {
122
- await querier.beginTransaction();
123
- const count = await querier.updateMany(entity, q, payload);
124
- await querier.commitTransaction();
125
- res.json({ data: req.params.id, count });
126
- } catch (err: any) {
127
- await querier.rollbackTransaction();
128
- next(err);
129
- } finally {
130
- await querier.release();
131
- }
132
- });
133
-
134
- router.delete('/:id', async (req, res, next) => {
135
- const id = req.params.id as IdValue<E>;
136
- const q = req.query as Query<E>;
137
- q.$where ??= {};
138
- if (Array.isArray(q.$where)) {
139
- q.$where.push(id);
140
- } else {
141
- q.$where[meta.id as string] = id;
142
- }
143
- const querier = await getQuerier();
144
- try {
145
- await querier.beginTransaction();
146
- const count = await querier.deleteMany(entity, q, {
147
- softDelete: !!req.query.softDelete,
148
- });
149
- await querier.commitTransaction();
150
- res.json({ data: req.params.id, count });
151
- } catch (err: any) {
152
- await querier.rollbackTransaction();
153
- next(err);
154
- } finally {
155
- await querier.release();
156
- }
157
- });
158
-
159
- router.delete('/', async (req, res, next) => {
160
- const q = req.query as Query<E>;
161
- const querier = await getQuerier();
162
- let ids: IdValue<E>[] = [];
163
- let count = 0;
164
- try {
165
- await querier.beginTransaction();
166
- const founds = await querier.findMany(entity, q);
167
- if (founds.length) {
168
- ids = founds.map((found) => found[meta.id]);
169
- count = await querier.deleteMany(entity, { $where: ids }, { softDelete: !!req.query.softDelete });
170
- }
171
- await querier.commitTransaction();
172
- res.json({ data: ids, count });
173
- } catch (err: any) {
174
- await querier.rollbackTransaction();
175
- next(err);
176
- } finally {
177
- await querier.release();
178
- }
179
- });
180
-
181
- return router;
182
- }
183
-
184
- function pre(req: Request, meta: EntityMeta<any>, extra: ExtraOptions) {
185
- const method = req.method;
186
- parseQuery(req);
187
- extra.pre?.(req, meta);
188
- if (method === 'POST' || method === 'PATCH' || method === 'PUT') {
189
- extra.preSave?.(req, meta);
190
- } else if (method === 'GET' || method === 'DELETE') {
191
- extra.preFilter?.(req, meta);
192
- }
193
- }
194
-
195
- type ExtraOptions = {
196
- /**
197
- * Allow augment any kind of request before it runs
198
- */
199
- readonly pre?: Pre;
200
- /**
201
- * Allow augment a saving request (POST, PATCH, PUT) before it runs
202
- */
203
- readonly preSave?: PreSave;
204
- /**
205
- * Allow augment a filtering request (GET, PUT, DELETE) before it runs
206
- */
207
- readonly preFilter?: PreFilter;
208
- };
209
-
210
- type MiddlewareOptions = {
211
- readonly include?: Type<unknown>[];
212
- readonly exclude?: Type<unknown>[];
213
- } & ExtraOptions;
214
-
215
- type Pre = <E = unknown>(req: Request, meta: EntityMeta<E>) => void;
216
- type PreSave = <E = unknown>(req: Request, meta: EntityMeta<E>) => void;
217
- type PreFilter = <E = unknown>(req: Request, meta: EntityMeta<E>) => void;
@@ -1,40 +0,0 @@
1
- import { expect, it } from 'bun:test';
2
- import type { Request } from 'express';
3
- import type { Item } from '../test/index.js';
4
- import type { Query, QueryStringified } from '../type/index.js';
5
- import { parseQuery } from './query.util.js';
6
-
7
- it('parseQuery -- empty', () => {
8
- const req1 = {} as Request;
9
- parseQuery(req1);
10
- expect(req1).toMatchObject({ query: { $where: {} } });
11
- const req2 = { query: undefined as object } as Request;
12
- parseQuery(req2);
13
- expect(req2).toMatchObject({ query: { $where: {} } });
14
- });
15
-
16
- it('parseQuery stringified', () => {
17
- const queryStr = {
18
- $select:
19
- '{ "id": true, "name": true, "measureUnit": {"$select":{"id":true, "name":true}}, "tax": {"$select":{"id":true, "name":true}} }',
20
- $where: '{ "name": "lorem", "companyId": 40 }',
21
- $sort: '{ "name": -1, "companyId": 1 }',
22
- $skip: '200',
23
- $limit: '100',
24
- } satisfies QueryStringified;
25
- const query = {
26
- $select: {
27
- id: true,
28
- name: true,
29
- measureUnit: { $select: { id: true, name: true } },
30
- tax: { $select: { id: true, name: true } },
31
- },
32
- $where: { name: 'lorem', companyId: 40 },
33
- $sort: { name: -1, companyId: 1 },
34
- $skip: 200,
35
- $limit: 100,
36
- } satisfies Query<Item>;
37
- const req = { query: queryStr } as unknown as Request;
38
- parseQuery(req);
39
- expect(req).toMatchObject({ query });
40
- });
@@ -1,21 +0,0 @@
1
- import type { Request } from 'express';
2
- import type { Query, QueryStringified } from '../type/index.js';
3
-
4
- export function parseQuery(req: Request) {
5
- req.query ??= {};
6
- const qmsSrc: QueryStringified = req.query;
7
- const qm = qmsSrc as unknown as Query<unknown>;
8
- if (qmsSrc.$select) {
9
- qm.$select = JSON.parse(qmsSrc.$select);
10
- }
11
- qm.$where = qmsSrc.$where ? JSON.parse(qmsSrc.$where) : {};
12
- if (qmsSrc.$sort) {
13
- qm.$sort = JSON.parse(qmsSrc.$sort);
14
- }
15
- if (qmsSrc.$skip) {
16
- qm.$skip = Number(qmsSrc.$skip);
17
- }
18
- if (qmsSrc.$limit) {
19
- qm.$limit = Number(qmsSrc.$limit);
20
- }
21
- }
package/src/index.ts DELETED
@@ -1,9 +0,0 @@
1
- export * from './dialect/index.js';
2
- export * from './entity/index.js';
3
- export * from './migrate/index.js';
4
- export * from './namingStrategy/index.js';
5
- export * from './options.js';
6
- export * from './querier/index.js';
7
- export * from './repository/index.js';
8
- export * from './type/index.js';
9
- export * from './util/index.js';
@@ -1,3 +0,0 @@
1
- export * from './mariaDialect.js';
2
- export * from './mariadbQuerier.js';
3
- export * from './mariadbQuerierPool.js';