uql-orm 0.1.0

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 (540) hide show
  1. package/CHANGELOG.md +521 -0
  2. package/LICENSE.md +22 -0
  3. package/README.md +560 -0
  4. package/dist/browser/cc-BEf4wTUm.js +535 -0
  5. package/dist/browser/cc-BEf4wTUm.js.map +1 -0
  6. package/dist/browser/http/bus.d.ts +4 -0
  7. package/dist/browser/http/bus.d.ts.map +1 -0
  8. package/dist/browser/http/bus.js +14 -0
  9. package/dist/browser/http/bus.js.map +1 -0
  10. package/dist/browser/http/http.d.ts +7 -0
  11. package/dist/browser/http/http.d.ts.map +1 -0
  12. package/dist/browser/http/http.js +45 -0
  13. package/dist/browser/http/http.js.map +1 -0
  14. package/dist/browser/http/index.d.ts +3 -0
  15. package/dist/browser/http/index.d.ts.map +1 -0
  16. package/dist/browser/http/index.js +3 -0
  17. package/dist/browser/http/index.js.map +1 -0
  18. package/dist/browser/index.d.ts +5 -0
  19. package/dist/browser/index.d.ts.map +1 -0
  20. package/dist/browser/index.js +5 -0
  21. package/dist/browser/index.js.map +1 -0
  22. package/dist/browser/options.d.ts +5 -0
  23. package/dist/browser/options.d.ts.map +1 -0
  24. package/dist/browser/options.js +14 -0
  25. package/dist/browser/options.js.map +1 -0
  26. package/dist/browser/querier/httpQuerier.d.ts +20 -0
  27. package/dist/browser/querier/httpQuerier.d.ts.map +1 -0
  28. package/dist/browser/querier/httpQuerier.js +68 -0
  29. package/dist/browser/querier/httpQuerier.js.map +1 -0
  30. package/dist/browser/querier/index.d.ts +3 -0
  31. package/dist/browser/querier/index.d.ts.map +1 -0
  32. package/dist/browser/querier/index.js +3 -0
  33. package/dist/browser/querier/index.js.map +1 -0
  34. package/dist/browser/querier/querier.util.d.ts +3 -0
  35. package/dist/browser/querier/querier.util.d.ts.map +1 -0
  36. package/dist/browser/querier/querier.util.js +17 -0
  37. package/dist/browser/querier/querier.util.js.map +1 -0
  38. package/dist/browser/type/clientQuerier.d.ts +24 -0
  39. package/dist/browser/type/clientQuerier.d.ts.map +1 -0
  40. package/dist/browser/type/clientQuerier.js +2 -0
  41. package/dist/browser/type/clientQuerier.js.map +1 -0
  42. package/dist/browser/type/clientQuerierPool.d.ts +5 -0
  43. package/dist/browser/type/clientQuerierPool.d.ts.map +1 -0
  44. package/dist/browser/type/clientQuerierPool.js +2 -0
  45. package/dist/browser/type/clientQuerierPool.js.map +1 -0
  46. package/dist/browser/type/index.d.ts +4 -0
  47. package/dist/browser/type/index.d.ts.map +1 -0
  48. package/dist/browser/type/index.js +4 -0
  49. package/dist/browser/type/index.js.map +1 -0
  50. package/dist/browser/type/request.d.ts +29 -0
  51. package/dist/browser/type/request.d.ts.map +1 -0
  52. package/dist/browser/type/request.js +2 -0
  53. package/dist/browser/type/request.js.map +1 -0
  54. package/dist/browser/uql-browser.min.js +4818 -0
  55. package/dist/browser/uql-browser.min.js.map +1 -0
  56. package/dist/d1/d1Querier.d.ts +45 -0
  57. package/dist/d1/d1Querier.d.ts.map +1 -0
  58. package/dist/d1/d1Querier.js +31 -0
  59. package/dist/d1/d1Querier.js.map +1 -0
  60. package/dist/d1/d1QuerierPool.d.ts +10 -0
  61. package/dist/d1/d1QuerierPool.d.ts.map +1 -0
  62. package/dist/d1/d1QuerierPool.js +16 -0
  63. package/dist/d1/d1QuerierPool.js.map +1 -0
  64. package/dist/d1/index.d.ts +3 -0
  65. package/dist/d1/index.d.ts.map +1 -0
  66. package/dist/d1/index.js +3 -0
  67. package/dist/d1/index.js.map +1 -0
  68. package/dist/dialect/abstractDialect.d.ts +22 -0
  69. package/dist/dialect/abstractDialect.d.ts.map +1 -0
  70. package/dist/dialect/abstractDialect.js +37 -0
  71. package/dist/dialect/abstractDialect.js.map +1 -0
  72. package/dist/dialect/abstractSqlDialect.d.ts +140 -0
  73. package/dist/dialect/abstractSqlDialect.d.ts.map +1 -0
  74. package/dist/dialect/abstractSqlDialect.js +957 -0
  75. package/dist/dialect/abstractSqlDialect.js.map +1 -0
  76. package/dist/dialect/dialectConfig.d.ts +23 -0
  77. package/dist/dialect/dialectConfig.d.ts.map +1 -0
  78. package/dist/dialect/dialectConfig.js +96 -0
  79. package/dist/dialect/dialectConfig.js.map +1 -0
  80. package/dist/dialect/index.d.ts +5 -0
  81. package/dist/dialect/index.d.ts.map +1 -0
  82. package/dist/dialect/index.js +5 -0
  83. package/dist/dialect/index.js.map +1 -0
  84. package/dist/dialect/queryContext.d.ts +49 -0
  85. package/dist/dialect/queryContext.d.ts.map +1 -0
  86. package/dist/dialect/queryContext.js +65 -0
  87. package/dist/dialect/queryContext.js.map +1 -0
  88. package/dist/entity/decorator/definition.d.ts +11 -0
  89. package/dist/entity/decorator/definition.d.ts.map +1 -0
  90. package/dist/entity/decorator/definition.js +247 -0
  91. package/dist/entity/decorator/definition.js.map +1 -0
  92. package/dist/entity/decorator/entity.d.ts +3 -0
  93. package/dist/entity/decorator/entity.d.ts.map +1 -0
  94. package/dist/entity/decorator/entity.js +7 -0
  95. package/dist/entity/decorator/entity.js.map +1 -0
  96. package/dist/entity/decorator/field.d.ts +3 -0
  97. package/dist/entity/decorator/field.d.ts.map +1 -0
  98. package/dist/entity/decorator/field.js +8 -0
  99. package/dist/entity/decorator/field.js.map +1 -0
  100. package/dist/entity/decorator/hook.d.ts +8 -0
  101. package/dist/entity/decorator/hook.d.ts.map +1 -0
  102. package/dist/entity/decorator/hook.js +15 -0
  103. package/dist/entity/decorator/hook.js.map +1 -0
  104. package/dist/entity/decorator/id.d.ts +3 -0
  105. package/dist/entity/decorator/id.d.ts.map +1 -0
  106. package/dist/entity/decorator/id.js +8 -0
  107. package/dist/entity/decorator/id.js.map +1 -0
  108. package/dist/entity/decorator/index-decorator.d.ts +36 -0
  109. package/dist/entity/decorator/index-decorator.d.ts.map +1 -0
  110. package/dist/entity/decorator/index-decorator.js +52 -0
  111. package/dist/entity/decorator/index-decorator.js.map +1 -0
  112. package/dist/entity/decorator/index.d.ts +8 -0
  113. package/dist/entity/decorator/index.d.ts.map +1 -0
  114. package/dist/entity/decorator/index.js +8 -0
  115. package/dist/entity/decorator/index.js.map +1 -0
  116. package/dist/entity/decorator/relation.d.ts +9 -0
  117. package/dist/entity/decorator/relation.d.ts.map +1 -0
  118. package/dist/entity/decorator/relation.js +20 -0
  119. package/dist/entity/decorator/relation.js.map +1 -0
  120. package/dist/entity/index.d.ts +2 -0
  121. package/dist/entity/index.d.ts.map +1 -0
  122. package/dist/entity/index.js +2 -0
  123. package/dist/entity/index.js.map +1 -0
  124. package/dist/express/index.d.ts +3 -0
  125. package/dist/express/index.d.ts.map +1 -0
  126. package/dist/express/index.js +3 -0
  127. package/dist/express/index.js.map +1 -0
  128. package/dist/express/querierMiddleware.d.ts +26 -0
  129. package/dist/express/querierMiddleware.d.ts.map +1 -0
  130. package/dist/express/querierMiddleware.js +149 -0
  131. package/dist/express/querierMiddleware.js.map +1 -0
  132. package/dist/express/query.util.d.ts +7 -0
  133. package/dist/express/query.util.d.ts.map +1 -0
  134. package/dist/express/query.util.js +28 -0
  135. package/dist/express/query.util.js.map +1 -0
  136. package/dist/index.d.ts +8 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +8 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/libsql/index.d.ts +3 -0
  141. package/dist/libsql/index.d.ts.map +1 -0
  142. package/dist/libsql/index.js +3 -0
  143. package/dist/libsql/index.js.map +1 -0
  144. package/dist/libsql/libsqlQuerier.d.ts +17 -0
  145. package/dist/libsql/libsqlQuerier.d.ts.map +1 -0
  146. package/dist/libsql/libsqlQuerier.js +71 -0
  147. package/dist/libsql/libsqlQuerier.js.map +1 -0
  148. package/dist/libsql/libsqlQuerierPool.d.ts +12 -0
  149. package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -0
  150. package/dist/libsql/libsqlQuerierPool.js +19 -0
  151. package/dist/libsql/libsqlQuerierPool.js.map +1 -0
  152. package/dist/maria/index.d.ts +4 -0
  153. package/dist/maria/index.d.ts.map +1 -0
  154. package/dist/maria/index.js +4 -0
  155. package/dist/maria/index.js.map +1 -0
  156. package/dist/maria/mariaDialect.d.ts +10 -0
  157. package/dist/maria/mariaDialect.d.ts.map +1 -0
  158. package/dist/maria/mariaDialect.js +41 -0
  159. package/dist/maria/mariaDialect.js.map +1 -0
  160. package/dist/maria/mariadbQuerier.d.ts +10 -0
  161. package/dist/maria/mariadbQuerier.d.ts.map +1 -0
  162. package/dist/maria/mariadbQuerier.js +20 -0
  163. package/dist/maria/mariadbQuerier.js.map +1 -0
  164. package/dist/maria/mariadbQuerierPool.d.ts +11 -0
  165. package/dist/maria/mariadbQuerierPool.d.ts.map +1 -0
  166. package/dist/maria/mariadbQuerierPool.js +17 -0
  167. package/dist/maria/mariadbQuerierPool.js.map +1 -0
  168. package/dist/migrate/bin.d.ts +3 -0
  169. package/dist/migrate/bin.d.ts.map +1 -0
  170. package/dist/migrate/bin.js +7 -0
  171. package/dist/migrate/bin.js.map +1 -0
  172. package/dist/migrate/builder/columnBuilder.d.ts +79 -0
  173. package/dist/migrate/builder/columnBuilder.d.ts.map +1 -0
  174. package/dist/migrate/builder/columnBuilder.js +159 -0
  175. package/dist/migrate/builder/columnBuilder.js.map +1 -0
  176. package/dist/migrate/builder/expressions.d.ts +87 -0
  177. package/dist/migrate/builder/expressions.d.ts.map +1 -0
  178. package/dist/migrate/builder/expressions.js +150 -0
  179. package/dist/migrate/builder/expressions.js.map +1 -0
  180. package/dist/migrate/builder/index.d.ts +6 -0
  181. package/dist/migrate/builder/index.d.ts.map +1 -0
  182. package/dist/migrate/builder/index.js +6 -0
  183. package/dist/migrate/builder/index.js.map +1 -0
  184. package/dist/migrate/builder/migrationBuilder.d.ts +109 -0
  185. package/dist/migrate/builder/migrationBuilder.d.ts.map +1 -0
  186. package/dist/migrate/builder/migrationBuilder.js +463 -0
  187. package/dist/migrate/builder/migrationBuilder.js.map +1 -0
  188. package/dist/migrate/builder/tableBuilder.d.ts +51 -0
  189. package/dist/migrate/builder/tableBuilder.d.ts.map +1 -0
  190. package/dist/migrate/builder/tableBuilder.js +291 -0
  191. package/dist/migrate/builder/tableBuilder.js.map +1 -0
  192. package/dist/migrate/builder/types.d.ts +466 -0
  193. package/dist/migrate/builder/types.d.ts.map +1 -0
  194. package/dist/migrate/builder/types.js +8 -0
  195. package/dist/migrate/builder/types.js.map +1 -0
  196. package/dist/migrate/cli-config.d.ts +3 -0
  197. package/dist/migrate/cli-config.d.ts.map +1 -0
  198. package/dist/migrate/cli-config.js +35 -0
  199. package/dist/migrate/cli-config.js.map +1 -0
  200. package/dist/migrate/cli.d.ts +16 -0
  201. package/dist/migrate/cli.d.ts.map +1 -0
  202. package/dist/migrate/cli.js +394 -0
  203. package/dist/migrate/cli.js.map +1 -0
  204. package/dist/migrate/codegen/entityCodeGenerator.d.ts +137 -0
  205. package/dist/migrate/codegen/entityCodeGenerator.d.ts.map +1 -0
  206. package/dist/migrate/codegen/entityCodeGenerator.js +405 -0
  207. package/dist/migrate/codegen/entityCodeGenerator.js.map +1 -0
  208. package/dist/migrate/codegen/entityMerger.d.ts +115 -0
  209. package/dist/migrate/codegen/entityMerger.d.ts.map +1 -0
  210. package/dist/migrate/codegen/entityMerger.js +294 -0
  211. package/dist/migrate/codegen/entityMerger.js.map +1 -0
  212. package/dist/migrate/codegen/index.d.ts +10 -0
  213. package/dist/migrate/codegen/index.d.ts.map +1 -0
  214. package/dist/migrate/codegen/index.js +14 -0
  215. package/dist/migrate/codegen/index.js.map +1 -0
  216. package/dist/migrate/codegen/migrationCodeGenerator.d.ts +62 -0
  217. package/dist/migrate/codegen/migrationCodeGenerator.d.ts.map +1 -0
  218. package/dist/migrate/codegen/migrationCodeGenerator.js +356 -0
  219. package/dist/migrate/codegen/migrationCodeGenerator.js.map +1 -0
  220. package/dist/migrate/codegen/smartRelationDetector.d.ts +48 -0
  221. package/dist/migrate/codegen/smartRelationDetector.d.ts.map +1 -0
  222. package/dist/migrate/codegen/smartRelationDetector.js +135 -0
  223. package/dist/migrate/codegen/smartRelationDetector.js.map +1 -0
  224. package/dist/migrate/drift/driftDetector.d.ts +81 -0
  225. package/dist/migrate/drift/driftDetector.d.ts.map +1 -0
  226. package/dist/migrate/drift/driftDetector.js +248 -0
  227. package/dist/migrate/drift/driftDetector.js.map +1 -0
  228. package/dist/migrate/drift/index.d.ts +7 -0
  229. package/dist/migrate/drift/index.d.ts.map +1 -0
  230. package/dist/migrate/drift/index.js +7 -0
  231. package/dist/migrate/drift/index.js.map +1 -0
  232. package/dist/migrate/generator/index.d.ts +3 -0
  233. package/dist/migrate/generator/index.d.ts.map +1 -0
  234. package/dist/migrate/generator/index.js +3 -0
  235. package/dist/migrate/generator/index.js.map +1 -0
  236. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +39 -0
  237. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -0
  238. package/dist/migrate/generator/mongoSchemaGenerator.js +183 -0
  239. package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -0
  240. package/dist/migrate/index.d.ts +13 -0
  241. package/dist/migrate/index.d.ts.map +1 -0
  242. package/dist/migrate/index.js +20 -0
  243. package/dist/migrate/index.js.map +1 -0
  244. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts +77 -0
  245. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts.map +1 -0
  246. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js +156 -0
  247. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js.map +1 -0
  248. package/dist/migrate/introspection/baseSqlIntrospector.d.ts +28 -0
  249. package/dist/migrate/introspection/baseSqlIntrospector.d.ts.map +1 -0
  250. package/dist/migrate/introspection/baseSqlIntrospector.js +135 -0
  251. package/dist/migrate/introspection/baseSqlIntrospector.js.map +1 -0
  252. package/dist/migrate/introspection/index.d.ts +6 -0
  253. package/dist/migrate/introspection/index.d.ts.map +1 -0
  254. package/dist/migrate/introspection/index.js +6 -0
  255. package/dist/migrate/introspection/index.js.map +1 -0
  256. package/dist/migrate/introspection/mongoIntrospector.d.ts +15 -0
  257. package/dist/migrate/introspection/mongoIntrospector.d.ts.map +1 -0
  258. package/dist/migrate/introspection/mongoIntrospector.js +100 -0
  259. package/dist/migrate/introspection/mongoIntrospector.js.map +1 -0
  260. package/dist/migrate/introspection/mysqlIntrospector.d.ts +59 -0
  261. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -0
  262. package/dist/migrate/introspection/mysqlIntrospector.js +175 -0
  263. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -0
  264. package/dist/migrate/introspection/postgresIntrospector.d.ts +55 -0
  265. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -0
  266. package/dist/migrate/introspection/postgresIntrospector.js +226 -0
  267. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -0
  268. package/dist/migrate/introspection/sqliteIntrospector.d.ts +60 -0
  269. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -0
  270. package/dist/migrate/introspection/sqliteIntrospector.js +180 -0
  271. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -0
  272. package/dist/migrate/migrator.d.ts +176 -0
  273. package/dist/migrate/migrator.d.ts.map +1 -0
  274. package/dist/migrate/migrator.js +624 -0
  275. package/dist/migrate/migrator.js.map +1 -0
  276. package/dist/migrate/schemaGenerator.d.ts +132 -0
  277. package/dist/migrate/schemaGenerator.d.ts.map +1 -0
  278. package/dist/migrate/schemaGenerator.js +628 -0
  279. package/dist/migrate/schemaGenerator.js.map +1 -0
  280. package/dist/migrate/storage/databaseStorage.d.ts +25 -0
  281. package/dist/migrate/storage/databaseStorage.d.ts.map +1 -0
  282. package/dist/migrate/storage/databaseStorage.js +77 -0
  283. package/dist/migrate/storage/databaseStorage.js.map +1 -0
  284. package/dist/migrate/storage/index.d.ts +3 -0
  285. package/dist/migrate/storage/index.d.ts.map +1 -0
  286. package/dist/migrate/storage/index.js +3 -0
  287. package/dist/migrate/storage/index.js.map +1 -0
  288. package/dist/migrate/storage/jsonStorage.d.ts +16 -0
  289. package/dist/migrate/storage/jsonStorage.d.ts.map +1 -0
  290. package/dist/migrate/storage/jsonStorage.js +43 -0
  291. package/dist/migrate/storage/jsonStorage.js.map +1 -0
  292. package/dist/migrate/sync/index.d.ts +7 -0
  293. package/dist/migrate/sync/index.d.ts.map +1 -0
  294. package/dist/migrate/sync/index.js +7 -0
  295. package/dist/migrate/sync/index.js.map +1 -0
  296. package/dist/migrate/sync/schemaSync.d.ts +132 -0
  297. package/dist/migrate/sync/schemaSync.d.ts.map +1 -0
  298. package/dist/migrate/sync/schemaSync.js +260 -0
  299. package/dist/migrate/sync/schemaSync.js.map +1 -0
  300. package/dist/mongo/index.d.ts +4 -0
  301. package/dist/mongo/index.d.ts.map +1 -0
  302. package/dist/mongo/index.js +4 -0
  303. package/dist/mongo/index.js.map +1 -0
  304. package/dist/mongo/mongoDialect.d.ts +47 -0
  305. package/dist/mongo/mongoDialect.d.ts.map +1 -0
  306. package/dist/mongo/mongoDialect.js +299 -0
  307. package/dist/mongo/mongoDialect.js.map +1 -0
  308. package/dist/mongo/mongodbQuerier.d.ts +32 -0
  309. package/dist/mongo/mongodbQuerier.d.ts.map +1 -0
  310. package/dist/mongo/mongodbQuerier.js +267 -0
  311. package/dist/mongo/mongodbQuerier.js.map +1 -0
  312. package/dist/mongo/mongodbQuerierPool.d.ts +11 -0
  313. package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -0
  314. package/dist/mongo/mongodbQuerierPool.js +20 -0
  315. package/dist/mongo/mongodbQuerierPool.js.map +1 -0
  316. package/dist/mysql/index.d.ts +4 -0
  317. package/dist/mysql/index.d.ts.map +1 -0
  318. package/dist/mysql/index.js +4 -0
  319. package/dist/mysql/index.js.map +1 -0
  320. package/dist/mysql/mysql2Querier.d.ts +14 -0
  321. package/dist/mysql/mysql2Querier.d.ts.map +1 -0
  322. package/dist/mysql/mysql2Querier.js +25 -0
  323. package/dist/mysql/mysql2Querier.js.map +1 -0
  324. package/dist/mysql/mysql2QuerierPool.d.ts +11 -0
  325. package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -0
  326. package/dist/mysql/mysql2QuerierPool.js +17 -0
  327. package/dist/mysql/mysql2QuerierPool.js.map +1 -0
  328. package/dist/mysql/mysqlDialect.d.ts +19 -0
  329. package/dist/mysql/mysqlDialect.d.ts.map +1 -0
  330. package/dist/mysql/mysqlDialect.js +97 -0
  331. package/dist/mysql/mysqlDialect.js.map +1 -0
  332. package/dist/namingStrategy/defaultNamingStrategy.d.ts +10 -0
  333. package/dist/namingStrategy/defaultNamingStrategy.d.ts.map +1 -0
  334. package/dist/namingStrategy/defaultNamingStrategy.js +15 -0
  335. package/dist/namingStrategy/defaultNamingStrategy.js.map +1 -0
  336. package/dist/namingStrategy/index.d.ts +3 -0
  337. package/dist/namingStrategy/index.d.ts.map +1 -0
  338. package/dist/namingStrategy/index.js +3 -0
  339. package/dist/namingStrategy/index.js.map +1 -0
  340. package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts +9 -0
  341. package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts.map +1 -0
  342. package/dist/namingStrategy/snakeCaseNamingStrategy.js +14 -0
  343. package/dist/namingStrategy/snakeCaseNamingStrategy.js.map +1 -0
  344. package/dist/neon/index.d.ts +3 -0
  345. package/dist/neon/index.d.ts.map +1 -0
  346. package/dist/neon/index.js +3 -0
  347. package/dist/neon/index.js.map +1 -0
  348. package/dist/neon/neonQuerier.d.ts +10 -0
  349. package/dist/neon/neonQuerier.d.ts.map +1 -0
  350. package/dist/neon/neonQuerier.js +20 -0
  351. package/dist/neon/neonQuerier.js.map +1 -0
  352. package/dist/neon/neonQuerierPool.d.ts +11 -0
  353. package/dist/neon/neonQuerierPool.d.ts.map +1 -0
  354. package/dist/neon/neonQuerierPool.js +17 -0
  355. package/dist/neon/neonQuerierPool.js.map +1 -0
  356. package/dist/options.d.ts +5 -0
  357. package/dist/options.d.ts.map +1 -0
  358. package/dist/options.js +14 -0
  359. package/dist/options.js.map +1 -0
  360. package/dist/postgres/index.d.ts +4 -0
  361. package/dist/postgres/index.d.ts.map +1 -0
  362. package/dist/postgres/index.js +4 -0
  363. package/dist/postgres/index.js.map +1 -0
  364. package/dist/postgres/pgQuerier.d.ts +10 -0
  365. package/dist/postgres/pgQuerier.d.ts.map +1 -0
  366. package/dist/postgres/pgQuerier.js +20 -0
  367. package/dist/postgres/pgQuerier.js.map +1 -0
  368. package/dist/postgres/pgQuerierPool.d.ts +11 -0
  369. package/dist/postgres/pgQuerierPool.d.ts.map +1 -0
  370. package/dist/postgres/pgQuerierPool.js +17 -0
  371. package/dist/postgres/pgQuerierPool.js.map +1 -0
  372. package/dist/postgres/postgresDialect.d.ts +36 -0
  373. package/dist/postgres/postgresDialect.d.ts.map +1 -0
  374. package/dist/postgres/postgresDialect.js +201 -0
  375. package/dist/postgres/postgresDialect.js.map +1 -0
  376. package/dist/querier/abstractPoolQuerier.d.ts +13 -0
  377. package/dist/querier/abstractPoolQuerier.d.ts.map +1 -0
  378. package/dist/querier/abstractPoolQuerier.js +25 -0
  379. package/dist/querier/abstractPoolQuerier.js.map +1 -0
  380. package/dist/querier/abstractQuerier.d.ts +109 -0
  381. package/dist/querier/abstractQuerier.d.ts.map +1 -0
  382. package/dist/querier/abstractQuerier.js +378 -0
  383. package/dist/querier/abstractQuerier.js.map +1 -0
  384. package/dist/querier/abstractQuerierPool.d.ts +23 -0
  385. package/dist/querier/abstractQuerierPool.d.ts.map +1 -0
  386. package/dist/querier/abstractQuerierPool.js +28 -0
  387. package/dist/querier/abstractQuerierPool.js.map +1 -0
  388. package/dist/querier/abstractSqlQuerier.d.ts +38 -0
  389. package/dist/querier/abstractSqlQuerier.d.ts.map +1 -0
  390. package/dist/querier/abstractSqlQuerier.js +169 -0
  391. package/dist/querier/abstractSqlQuerier.js.map +1 -0
  392. package/dist/querier/decorator/index.d.ts +5 -0
  393. package/dist/querier/decorator/index.d.ts.map +1 -0
  394. package/dist/querier/decorator/index.js +5 -0
  395. package/dist/querier/decorator/index.js.map +1 -0
  396. package/dist/querier/decorator/injectQuerier.d.ts +4 -0
  397. package/dist/querier/decorator/injectQuerier.d.ts.map +1 -0
  398. package/dist/querier/decorator/injectQuerier.js +33 -0
  399. package/dist/querier/decorator/injectQuerier.js.map +1 -0
  400. package/dist/querier/decorator/log.d.ts +7 -0
  401. package/dist/querier/decorator/log.d.ts.map +1 -0
  402. package/dist/querier/decorator/log.js +27 -0
  403. package/dist/querier/decorator/log.js.map +1 -0
  404. package/dist/querier/decorator/serialized.d.ts +7 -0
  405. package/dist/querier/decorator/serialized.d.ts.map +1 -0
  406. package/dist/querier/decorator/serialized.js +14 -0
  407. package/dist/querier/decorator/serialized.js.map +1 -0
  408. package/dist/querier/decorator/transactional.d.ts +6 -0
  409. package/dist/querier/decorator/transactional.d.ts.map +1 -0
  410. package/dist/querier/decorator/transactional.js +48 -0
  411. package/dist/querier/decorator/transactional.js.map +1 -0
  412. package/dist/querier/index.d.ts +5 -0
  413. package/dist/querier/index.d.ts.map +1 -0
  414. package/dist/querier/index.js +5 -0
  415. package/dist/querier/index.js.map +1 -0
  416. package/dist/schema/canonicalType.d.ts +42 -0
  417. package/dist/schema/canonicalType.d.ts.map +1 -0
  418. package/dist/schema/canonicalType.js +524 -0
  419. package/dist/schema/canonicalType.js.map +1 -0
  420. package/dist/schema/index.d.ts +28 -0
  421. package/dist/schema/index.d.ts.map +1 -0
  422. package/dist/schema/index.js +29 -0
  423. package/dist/schema/index.js.map +1 -0
  424. package/dist/schema/schemaAST.d.ts +155 -0
  425. package/dist/schema/schemaAST.d.ts.map +1 -0
  426. package/dist/schema/schemaAST.js +496 -0
  427. package/dist/schema/schemaAST.js.map +1 -0
  428. package/dist/schema/schemaASTBuilder.d.ts +58 -0
  429. package/dist/schema/schemaASTBuilder.d.ts.map +1 -0
  430. package/dist/schema/schemaASTBuilder.js +224 -0
  431. package/dist/schema/schemaASTBuilder.js.map +1 -0
  432. package/dist/schema/schemaASTDiffer.d.ts +84 -0
  433. package/dist/schema/schemaASTDiffer.d.ts.map +1 -0
  434. package/dist/schema/schemaASTDiffer.js +431 -0
  435. package/dist/schema/schemaASTDiffer.js.map +1 -0
  436. package/dist/schema/types.d.ts +347 -0
  437. package/dist/schema/types.d.ts.map +1 -0
  438. package/dist/schema/types.js +11 -0
  439. package/dist/schema/types.js.map +1 -0
  440. package/dist/sqlite/abstractSqliteQuerier.d.ts +6 -0
  441. package/dist/sqlite/abstractSqliteQuerier.d.ts.map +1 -0
  442. package/dist/sqlite/abstractSqliteQuerier.js +13 -0
  443. package/dist/sqlite/abstractSqliteQuerier.js.map +1 -0
  444. package/dist/sqlite/index.d.ts +4 -0
  445. package/dist/sqlite/index.d.ts.map +1 -0
  446. package/dist/sqlite/index.js +4 -0
  447. package/dist/sqlite/index.js.map +1 -0
  448. package/dist/sqlite/sqliteDialect.d.ts +42 -0
  449. package/dist/sqlite/sqliteDialect.d.ts.map +1 -0
  450. package/dist/sqlite/sqliteDialect.js +129 -0
  451. package/dist/sqlite/sqliteDialect.js.map +1 -0
  452. package/dist/sqlite/sqliteQuerier.d.ts +12 -0
  453. package/dist/sqlite/sqliteQuerier.d.ts.map +1 -0
  454. package/dist/sqlite/sqliteQuerier.js +25 -0
  455. package/dist/sqlite/sqliteQuerier.js.map +1 -0
  456. package/dist/sqlite/sqliteQuerierPool.d.ts +13 -0
  457. package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -0
  458. package/dist/sqlite/sqliteQuerierPool.js +34 -0
  459. package/dist/sqlite/sqliteQuerierPool.js.map +1 -0
  460. package/dist/type/config.d.ts +46 -0
  461. package/dist/type/config.d.ts.map +1 -0
  462. package/dist/type/config.js +2 -0
  463. package/dist/type/config.js.map +1 -0
  464. package/dist/type/entity.d.ts +289 -0
  465. package/dist/type/entity.d.ts.map +1 -0
  466. package/dist/type/entity.js +5 -0
  467. package/dist/type/entity.js.map +1 -0
  468. package/dist/type/index.d.ts +11 -0
  469. package/dist/type/index.d.ts.map +1 -0
  470. package/dist/type/index.js +11 -0
  471. package/dist/type/index.js.map +1 -0
  472. package/dist/type/logger.d.ts +61 -0
  473. package/dist/type/logger.d.ts.map +1 -0
  474. package/dist/type/logger.js +2 -0
  475. package/dist/type/logger.js.map +1 -0
  476. package/dist/type/migration.d.ts +268 -0
  477. package/dist/type/migration.d.ts.map +1 -0
  478. package/dist/type/migration.js +2 -0
  479. package/dist/type/migration.js.map +1 -0
  480. package/dist/type/namingStrategy.d.ts +18 -0
  481. package/dist/type/namingStrategy.d.ts.map +1 -0
  482. package/dist/type/namingStrategy.js +2 -0
  483. package/dist/type/namingStrategy.js.map +1 -0
  484. package/dist/type/querier.d.ts +154 -0
  485. package/dist/type/querier.d.ts.map +1 -0
  486. package/dist/type/querier.js +11 -0
  487. package/dist/type/querier.js.map +1 -0
  488. package/dist/type/querierPool.d.ts +31 -0
  489. package/dist/type/querierPool.d.ts.map +1 -0
  490. package/dist/type/querierPool.js +2 -0
  491. package/dist/type/querierPool.js.map +1 -0
  492. package/dist/type/query.d.ts +475 -0
  493. package/dist/type/query.d.ts.map +1 -0
  494. package/dist/type/query.js +11 -0
  495. package/dist/type/query.js.map +1 -0
  496. package/dist/type/universalQuerier.d.ts +120 -0
  497. package/dist/type/universalQuerier.d.ts.map +1 -0
  498. package/dist/type/universalQuerier.js +2 -0
  499. package/dist/type/universalQuerier.js.map +1 -0
  500. package/dist/type/utility.d.ts +33 -0
  501. package/dist/type/utility.d.ts.map +1 -0
  502. package/dist/type/utility.js +2 -0
  503. package/dist/type/utility.js.map +1 -0
  504. package/dist/util/dialect.util.d.ts +13 -0
  505. package/dist/util/dialect.util.d.ts.map +1 -0
  506. package/dist/util/dialect.util.js +82 -0
  507. package/dist/util/dialect.util.js.map +1 -0
  508. package/dist/util/field.util.d.ts +14 -0
  509. package/dist/util/field.util.d.ts.map +1 -0
  510. package/dist/util/field.util.js +57 -0
  511. package/dist/util/field.util.js.map +1 -0
  512. package/dist/util/hook.util.d.ts +15 -0
  513. package/dist/util/hook.util.d.ts.map +1 -0
  514. package/dist/util/hook.util.js +20 -0
  515. package/dist/util/hook.util.js.map +1 -0
  516. package/dist/util/index.d.ts +9 -0
  517. package/dist/util/index.d.ts.map +1 -0
  518. package/dist/util/index.js +9 -0
  519. package/dist/util/index.js.map +1 -0
  520. package/dist/util/logger.d.ts +34 -0
  521. package/dist/util/logger.d.ts.map +1 -0
  522. package/dist/util/logger.js +129 -0
  523. package/dist/util/logger.js.map +1 -0
  524. package/dist/util/object.util.d.ts +8 -0
  525. package/dist/util/object.util.d.ts.map +1 -0
  526. package/dist/util/object.util.js +19 -0
  527. package/dist/util/object.util.js.map +1 -0
  528. package/dist/util/raw.d.ts +9 -0
  529. package/dist/util/raw.d.ts.map +1 -0
  530. package/dist/util/raw.js +11 -0
  531. package/dist/util/raw.js.map +1 -0
  532. package/dist/util/sql.util.d.ts +22 -0
  533. package/dist/util/sql.util.d.ts.map +1 -0
  534. package/dist/util/sql.util.js +88 -0
  535. package/dist/util/sql.util.js.map +1 -0
  536. package/dist/util/string.util.d.ts +29 -0
  537. package/dist/util/string.util.d.ts.map +1 -0
  538. package/dist/util/string.util.js +91 -0
  539. package/dist/util/string.util.js.map +1 -0
  540. package/package.json +146 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/type/utility.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { type CascadeType, type EntityMeta, type FieldKey, type FieldOptions, type OnFieldCallback, QueryRaw, type QuerySelect, type QuerySortMap, type QueryWhere, type QueryWhereMap, type RelationKey } from '../type/index.js';
2
+ export type CallbackKey = keyof Pick<FieldOptions, 'onInsert' | 'onUpdate' | 'onDelete'>;
3
+ export declare function filterFieldKeys<E>(meta: EntityMeta<E>, payload: E, callbackKey: CallbackKey): FieldKey<E>[];
4
+ export declare function getFieldCallbackValue(val: OnFieldCallback): import("../type/utility.js").Scalar | QueryRaw;
5
+ export declare function fillOnFields<E>(meta: EntityMeta<E>, payload: E | E[], callbackKey: CallbackKey): E[];
6
+ export declare function filterPersistableRelationKeys<E>(meta: EntityMeta<E>, payload: E, action: CascadeType): RelationKey<E>[];
7
+ export declare function isCascadable(action: CascadeType, configuration?: boolean | CascadeType): boolean;
8
+ export declare function filterRelationKeys<E>(meta: EntityMeta<E>, select?: QuerySelect<E>): RelationKey<E>[];
9
+ export declare function isSelectingRelations<E>(meta: EntityMeta<E>, select?: QuerySelect<E>): boolean;
10
+ export declare function buildSortMap<E>(sort: QuerySortMap<E> | undefined): QuerySortMap<E>;
11
+ export declare function augmentWhere<E>(meta: EntityMeta<E>, target?: QueryWhere<E>, source?: QueryWhere<E>): QueryWhere<E>;
12
+ export declare function buildQueryWhereAsMap<E>(meta: EntityMeta<E>, filter?: QueryWhere<E>): QueryWhereMap<E>;
13
+ //# sourceMappingURL=dialect.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.util.d.ts","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EAIjB,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;AAEzF,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAM3G;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,kDAEzD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,CAWpG;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GAClB,WAAW,CAAC,CAAC,CAAC,EAAE,CAMlB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAKhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAGpG;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAG7F;AASD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAElF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,MAAM,GAAE,UAAU,CAAC,CAAC,CAAM,EAC1B,MAAM,GAAE,UAAU,CAAC,CAAC,CAAM,GACzB,UAAU,CAAC,CAAC,CAAC,CAOf;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,UAAU,CAAC,CAAC,CAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAUzG"}
@@ -0,0 +1,82 @@
1
+ import { QueryRaw, } from '../type/index.js';
2
+ import { getKeys } from './object.util.js';
3
+ export function filterFieldKeys(meta, payload, callbackKey) {
4
+ const persistableKeys = Object.keys(payload).filter((key) => {
5
+ const fieldOpts = meta.fields[key];
6
+ return fieldOpts && !fieldOpts.virtual && (callbackKey !== 'onUpdate' || (fieldOpts.updatable ?? true));
7
+ });
8
+ return persistableKeys;
9
+ }
10
+ export function getFieldCallbackValue(val) {
11
+ return typeof val === 'function' ? val() : val;
12
+ }
13
+ export function fillOnFields(meta, payload, callbackKey) {
14
+ const payloads = Array.isArray(payload) ? payload : [payload];
15
+ const keys = getKeys(meta.fields).filter((key) => meta.fields[key]?.[callbackKey]);
16
+ return payloads.map((it) => {
17
+ for (const key of keys) {
18
+ if (it[key] === undefined) {
19
+ it[key] = getFieldCallbackValue(meta.fields[key][callbackKey]);
20
+ }
21
+ }
22
+ return it;
23
+ });
24
+ }
25
+ export function filterPersistableRelationKeys(meta, payload, action) {
26
+ const keys = Object.keys(payload);
27
+ return keys.filter((key) => {
28
+ const relOpts = meta.relations[key];
29
+ return relOpts && isCascadable(action, relOpts.cascade);
30
+ });
31
+ }
32
+ export function isCascadable(action, configuration) {
33
+ if (typeof configuration === 'boolean') {
34
+ return configuration;
35
+ }
36
+ return configuration === action;
37
+ }
38
+ export function filterRelationKeys(meta, select) {
39
+ const keys = filterPositiveKeys(select);
40
+ return keys.filter((key) => key in meta.relations);
41
+ }
42
+ export function isSelectingRelations(meta, select) {
43
+ const keys = filterPositiveKeys(select);
44
+ return keys.some((key) => key in meta.relations);
45
+ }
46
+ function filterPositiveKeys(select) {
47
+ if (!select) {
48
+ return [];
49
+ }
50
+ return getKeys(select).filter((key) => select[key]);
51
+ }
52
+ export function buildSortMap(sort) {
53
+ return (sort ?? {});
54
+ }
55
+ export function augmentWhere(meta, target = {}, source = {}) {
56
+ const targetComparison = buildQueryWhereAsMap(meta, target);
57
+ const sourceComparison = buildQueryWhereAsMap(meta, source);
58
+ return {
59
+ ...targetComparison,
60
+ ...sourceComparison,
61
+ };
62
+ }
63
+ export function buildQueryWhereAsMap(meta, filter = {}) {
64
+ if (filter instanceof QueryRaw) {
65
+ return { $and: [filter] };
66
+ }
67
+ if (isIdValue(filter)) {
68
+ return {
69
+ [meta.id]: filter,
70
+ };
71
+ }
72
+ return filter;
73
+ }
74
+ function isIdValue(filter) {
75
+ const type = typeof filter;
76
+ return (type === 'string' ||
77
+ type === 'number' ||
78
+ type === 'bigint' ||
79
+ typeof filter.toHexString === 'function' ||
80
+ Array.isArray(filter));
81
+ }
82
+ //# sourceMappingURL=dialect.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.util.js","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { FieldOptions } from '../type/index.js';
2
+ /**
3
+ * Checks if a field type is numeric (Number, BigInt, or explicit numeric logical types)
4
+ */
5
+ export declare function isNumericType(type: unknown): boolean;
6
+ /**
7
+ * Checks if a field type is JSON
8
+ */
9
+ export declare function isJsonType(type: unknown): boolean;
10
+ /**
11
+ * Checks if a field should be treated as auto-incrementing.
12
+ */
13
+ export declare function isAutoIncrement(field: FieldOptions, isPrimaryKey: boolean): boolean;
14
+ //# sourceMappingURL=field.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.util.d.ts","sourceRoot":"","sources":["../../src/util/field.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,kBAAkB,CAAC;AA0BxF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAKjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CASnF"}
@@ -0,0 +1,57 @@
1
+ const NUMERIC_COLUMN_TYPES = {
2
+ int: true,
3
+ integer: true,
4
+ tinyint: true,
5
+ smallint: true,
6
+ bigint: true,
7
+ float: true,
8
+ float4: true,
9
+ float8: true,
10
+ double: true,
11
+ 'double precision': true,
12
+ decimal: true,
13
+ numeric: true,
14
+ real: true,
15
+ serial: true,
16
+ smallserial: true,
17
+ bigserial: true,
18
+ };
19
+ const JSON_COLUMN_TYPES = {
20
+ json: true,
21
+ jsonb: true,
22
+ };
23
+ /**
24
+ * Checks if a field type is numeric (Number, BigInt, or explicit numeric logical types)
25
+ */
26
+ export function isNumericType(type) {
27
+ if (type === Number || type === BigInt)
28
+ return true;
29
+ if (typeof type === 'string') {
30
+ return type.toLowerCase() in NUMERIC_COLUMN_TYPES;
31
+ }
32
+ return false;
33
+ }
34
+ /**
35
+ * Checks if a field type is JSON
36
+ */
37
+ export function isJsonType(type) {
38
+ if (typeof type === 'string') {
39
+ return type.toLowerCase() in JSON_COLUMN_TYPES;
40
+ }
41
+ return false;
42
+ }
43
+ /**
44
+ * Checks if a field should be treated as auto-incrementing.
45
+ */
46
+ export function isAutoIncrement(field, isPrimaryKey) {
47
+ if (field.autoIncrement === false)
48
+ return false;
49
+ if (field.autoIncrement)
50
+ return true;
51
+ const colType = field.columnType?.toLowerCase();
52
+ if (colType === 'serial' || colType === 'smallserial' || colType === 'bigserial')
53
+ return true;
54
+ const isNumeric = isNumericType(field.type);
55
+ return isPrimaryKey && isNumeric && !field.onInsert && !field.columnType;
56
+ }
57
+ //# sourceMappingURL=field.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.util.js","sourceRoot":"","sources":["../../src/util/field.util.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG;IAC3B,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;CACmC,CAAC;AAErD,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACoC,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,oBAAoB,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,iBAAiB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAE,YAAqB;IACxE,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IAChD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9F,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,YAAY,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { HookEvent, Querier, Type } from '../type/index.js';
2
+ /**
3
+ * Context passed to lifecycle hooks, providing access to the active querier
4
+ * so hooks can perform DB operations within the same transaction.
5
+ */
6
+ export type HookContext = {
7
+ readonly querier: Querier;
8
+ };
9
+ /**
10
+ * Run all registered hooks for the given event on each payload.
11
+ * Hooks are invoked with `this` bound to the payload via `call`,
12
+ * so mutations go directly to the original object.
13
+ */
14
+ export declare function runHooks<E extends object>(entity: Type<E>, event: HookEvent, payloads: E[], ctx: HookContext): Promise<void>;
15
+ //# sourceMappingURL=hook.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.util.d.ts","sourceRoot":"","sources":["../../src/util/hook.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EACf,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,EAAE,EACb,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -0,0 +1,20 @@
1
+ import { getMeta } from '../entity/decorator/index.js';
2
+ /**
3
+ * Run all registered hooks for the given event on each payload.
4
+ * Hooks are invoked with `this` bound to the payload via `call`,
5
+ * so mutations go directly to the original object.
6
+ */
7
+ export async function runHooks(entity, event, payloads, ctx) {
8
+ const meta = getMeta(entity);
9
+ const registrations = meta.hooks?.[event];
10
+ if (!registrations?.length)
11
+ return;
12
+ for (const payload of payloads) {
13
+ for (const { methodName } of registrations) {
14
+ const result = entity.prototype[methodName].call(payload, ctx);
15
+ if (result instanceof Promise)
16
+ await result;
17
+ }
18
+ }
19
+ }
20
+ //# sourceMappingURL=hook.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.util.js","sourceRoot":"","sources":["../../src/util/hook.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAWvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAe,EACf,KAAgB,EAChB,QAAa,EACb,GAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,aAAa,EAAE,MAAM;QAAE,OAAO;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,aAAa,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC/D,IAAI,MAAM,YAAY,OAAO;gBAAE,MAAM,MAAM,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './dialect.util.js';
2
+ export * from './field.util.js';
3
+ export * from './hook.util.js';
4
+ export * from './logger.js';
5
+ export * from './object.util.js';
6
+ export * from './raw.js';
7
+ export * from './sql.util.js';
8
+ export * from './string.util.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './dialect.util.js';
2
+ export * from './field.util.js';
3
+ export * from './hook.util.js';
4
+ export * from './logger.js';
5
+ export * from './object.util.js';
6
+ export * from './raw.js';
7
+ export * from './sql.util.js';
8
+ export * from './string.util.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { Logger, LoggingOptions } from '../type/logger.js';
2
+ import type { SlowQueryOptions } from '../type/querier.js';
3
+ /**
4
+ * Default implementation of the Logger interface using console methods.
5
+ */
6
+ export declare class DefaultLogger implements Logger {
7
+ logQuery(query: string, values?: unknown[], duration?: number): void;
8
+ logSlowQuery(query: string, values?: unknown[], duration?: number, logParams?: boolean): void;
9
+ logWarn(message: string): void;
10
+ logError(message: string, error?: unknown): void;
11
+ logInfo(message: string): void;
12
+ logSchema(message: string): void;
13
+ logMigration(message: string): void;
14
+ logSkippedMigration(message: string): void;
15
+ }
16
+ /**
17
+ * A wrapper class that implements the Logger interface and handles different logging options.
18
+ */
19
+ export declare class LoggerWrapper implements Logger {
20
+ private readonly slowQuery?;
21
+ private readonly levels;
22
+ private readonly logger?;
23
+ private readonly loggerFunction?;
24
+ constructor(options: LoggingOptions, slowQuery?: SlowQueryOptions | undefined);
25
+ logQuery(query: string, values?: unknown[], duration?: number): void;
26
+ logWarn(message: string): void;
27
+ logError(message: string, error?: unknown): void;
28
+ logInfo(message: string): void;
29
+ logSchema(message: string): void;
30
+ logMigration(message: string): void;
31
+ logSkippedMigration(message: string): void;
32
+ private log;
33
+ }
34
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,cAAc,EAAY,MAAM,mBAAmB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3D;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,IAAI;IAM1F,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAIhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG3C;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAOxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAN7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;gBAG/C,OAAO,EAAE,cAAc,EACN,SAAS,CAAC,EAAE,gBAAgB,YAAA;IAuB/C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBpE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAIhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,GAAG;CAYZ"}
@@ -0,0 +1,129 @@
1
+ const DEFAULT_LOG_LEVELS = [
2
+ 'query',
3
+ 'info',
4
+ 'warn',
5
+ 'error',
6
+ 'schema',
7
+ 'migration',
8
+ 'skippedMigration',
9
+ ];
10
+ /**
11
+ * Default implementation of the Logger interface using console methods.
12
+ */
13
+ export class DefaultLogger {
14
+ logQuery(query, values, duration) {
15
+ const time = duration !== undefined ? ` [${duration}ms]` : '';
16
+ const params = values?.length ? ` -- ${JSON.stringify(values)}` : '';
17
+ console.log(`\x1b[36mquery:\x1b[0m ${query}${params}\x1b[32m${time}\x1b[0m`);
18
+ }
19
+ logSlowQuery(query, values, duration, logParams = true) {
20
+ const time = duration !== undefined ? ` [${duration}ms]` : '';
21
+ const params = logParams && values?.length ? ` -- ${JSON.stringify(values)}` : '';
22
+ console.warn(`\x1b[33mslow query:\x1b[0m ${query}${params}\x1b[31m${time}\x1b[0m`);
23
+ }
24
+ logWarn(message) {
25
+ console.warn(`\x1b[33mwarn:\x1b[0m ${message}`);
26
+ }
27
+ logError(message, error) {
28
+ console.error(`\x1b[31merror:\x1b[0m ${message}`, error);
29
+ }
30
+ logInfo(message) {
31
+ console.info(`\x1b[34minfo:\x1b[0m ${message}`);
32
+ }
33
+ logSchema(message) {
34
+ console.log(`\x1b[35mschema:\x1b[0m ${message}`);
35
+ }
36
+ logMigration(message) {
37
+ console.log(`\x1b[32mmigration:\x1b[0m ${message}`);
38
+ }
39
+ logSkippedMigration(message) {
40
+ console.info(`\x1b[33mskipped migration:\x1b[0m ${message}`);
41
+ }
42
+ }
43
+ /**
44
+ * A wrapper class that implements the Logger interface and handles different logging options.
45
+ */
46
+ export class LoggerWrapper {
47
+ slowQuery;
48
+ levels;
49
+ logger;
50
+ loggerFunction;
51
+ constructor(options, slowQuery) {
52
+ this.slowQuery = slowQuery;
53
+ this.levels = new Set();
54
+ if (options === true) {
55
+ this.levels = new Set(DEFAULT_LOG_LEVELS);
56
+ this.logger = new DefaultLogger();
57
+ }
58
+ else if (Array.isArray(options)) {
59
+ this.levels = new Set(options);
60
+ this.logger = new DefaultLogger();
61
+ }
62
+ else if (typeof options === 'function') {
63
+ this.levels = new Set(DEFAULT_LOG_LEVELS);
64
+ this.loggerFunction = options;
65
+ }
66
+ else if (options && typeof options === 'object') {
67
+ this.levels = new Set(DEFAULT_LOG_LEVELS);
68
+ this.logger = options;
69
+ }
70
+ if (slowQuery !== undefined && !this.logger && !this.loggerFunction) {
71
+ this.logger = new DefaultLogger();
72
+ }
73
+ }
74
+ logQuery(query, values, duration) {
75
+ if (this.slowQuery !== undefined && duration !== undefined && duration >= this.slowQuery.threshold) {
76
+ const logParams = this.slowQuery.logParams !== false;
77
+ if (this.logger?.logSlowQuery) {
78
+ this.logger.logSlowQuery(query, values, duration, logParams);
79
+ return;
80
+ }
81
+ if (this.loggerFunction) {
82
+ this.loggerFunction(query, logParams ? values : undefined, duration);
83
+ return;
84
+ }
85
+ // If slowQuery threshold is met but no specific slowQuery logger exists,
86
+ // it falls through to the standard logQuery below.
87
+ }
88
+ if (this.levels.has('query')) {
89
+ if (this.logger?.logQuery) {
90
+ this.logger.logQuery(query, values, duration);
91
+ }
92
+ else if (this.loggerFunction) {
93
+ this.loggerFunction(query, values, duration);
94
+ }
95
+ }
96
+ }
97
+ logWarn(message) {
98
+ this.log('warn', message);
99
+ }
100
+ logError(message, error) {
101
+ this.log('error', message, error);
102
+ }
103
+ logInfo(message) {
104
+ this.log('info', message);
105
+ }
106
+ logSchema(message) {
107
+ this.log('schema', message);
108
+ }
109
+ logMigration(message) {
110
+ this.log('migration', message);
111
+ }
112
+ logSkippedMigration(message) {
113
+ this.log('skippedMigration', message);
114
+ }
115
+ log(level, message, error) {
116
+ if (this.levels.has(level)) {
117
+ const method = `log${level.charAt(0).toUpperCase()}${level.slice(1)}`;
118
+ const args = error !== undefined ? [message, error] : [message];
119
+ if (this.logger?.[method]) {
120
+ const logFn = this.logger[method];
121
+ logFn(...args);
122
+ }
123
+ else if (this.loggerFunction) {
124
+ this.loggerFunction(...args);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { FieldKey, FieldOptions } from '../type/index.js';
2
+ export declare function clone<T>(value: T): T;
3
+ export declare function hasKeys(obj: unknown): boolean;
4
+ export declare function getKeys<T extends object>(obj: T): (keyof T & string)[];
5
+ export declare function getFieldKeys<E>(fields: {
6
+ [K in FieldKey<E>]?: FieldOptions;
7
+ }): FieldKey<E>[];
8
+ //# sourceMappingURL=object.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.util.d.ts","sourceRoot":"","sources":["../../src/util/object.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE/D,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQpC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE7C;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAEtE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,MAAM,EAAE;KACL,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY;CAClC,GACA,QAAQ,CAAC,CAAC,CAAC,EAAE,CAEf"}
@@ -0,0 +1,19 @@
1
+ export function clone(value) {
2
+ if (typeof value !== 'object' || value === null) {
3
+ return value;
4
+ }
5
+ if (Array.isArray(value)) {
6
+ return value.map((it) => clone(it));
7
+ }
8
+ return { ...value };
9
+ }
10
+ export function hasKeys(obj) {
11
+ return typeof obj === 'object' && obj !== null ? Object.keys(obj).length > 0 : false;
12
+ }
13
+ export function getKeys(obj) {
14
+ return obj ? Object.keys(obj) : [];
15
+ }
16
+ export function getFieldKeys(fields) {
17
+ return getKeys(fields).filter((field) => fields[field].eager ?? true);
18
+ }
19
+ //# sourceMappingURL=object.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.util.js","sourceRoot":"","sources":["../../src/util/object.util.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,KAAK,CAAI,KAAQ;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAiB,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,OAAO,CAAmB,GAAM;IAC9C,OAAO,GAAG,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAEC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type QueryRawFn, type Scalar } from '../type/index.js';
2
+ /**
3
+ * Allow using any raw value that shouldn't be automatically escaped by the ORM.
4
+ * @param value the raw value
5
+ * @param alias optional alias
6
+ * @returns a QueryRaw instance
7
+ */
8
+ export declare function raw(value: Scalar | QueryRawFn, alias?: string): any;
9
+ //# sourceMappingURL=raw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/util/raw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAEnE"}
@@ -0,0 +1,11 @@
1
+ import { QueryRaw } from '../type/index.js';
2
+ /**
3
+ * Allow using any raw value that shouldn't be automatically escaped by the ORM.
4
+ * @param value the raw value
5
+ * @param alias optional alias
6
+ * @returns a QueryRaw instance
7
+ */
8
+ export function raw(value, alias) {
9
+ return new QueryRaw(value, alias);
10
+ }
11
+ //# sourceMappingURL=raw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/util/raw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgC,MAAM,kBAAkB,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,KAA0B,EAAE,KAAc;IAC5D,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { QueryUpdateResult, RawRow } from '../type/index.js';
2
+ export declare function flatObject<E extends object>(obj: E, pre?: string): E;
3
+ export declare function unflatObjects<T extends object>(objects: RawRow[]): T[];
4
+ export declare function obtainAttrsPaths<T extends object>(row: T): {
5
+ [k: string]: string[];
6
+ };
7
+ /**
8
+ * Escape a SQL identifier (table name, column name, etc.)
9
+ * @param val the identifier to escape
10
+ * @param escapeIdChar the escape character to use (e.g. ` or ")
11
+ * @param forbidQualified whether to forbid qualified identifiers (containing dots)
12
+ * @param addDot whether to add a dot suffix
13
+ */
14
+ export declare function escapeSqlId(val: string, escapeIdChar?: '`' | '"', forbidQualified?: boolean, addDot?: boolean): string;
15
+ /**
16
+ * Extract INSERT result IDs from raw database rows.
17
+ *
18
+ * UQL's SQL dialect always aliases the entity's ID column to `id` in RETURNING clauses,
19
+ * so the result rows always contain an `id` property regardless of the entity's @Id() key name.
20
+ */
21
+ export declare function extractInsertResult(rows: RawRow[], changes?: number): QueryUpdateResult;
22
+ //# sourceMappingURL=sql.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.util.d.ts","sourceRoot":"","sources":["../../src/util/sql.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGnF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAKpE;AASD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAqCtE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC;;EAexD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,GAAG,GAAG,GAAS,EAC7B,eAAe,CAAC,EAAE,OAAO,EACzB,MAAM,CAAC,EAAE,OAAO,GACf,MAAM,CAkBR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAGvF"}
@@ -0,0 +1,88 @@
1
+ import { getKeys, hasKeys } from './object.util.js';
2
+ export function flatObject(obj, pre) {
3
+ return getKeys(obj).reduce((acc, key) => flatObjectEntry(acc, key, obj[key], typeof obj[key] === 'object' ? '' : pre), {});
4
+ }
5
+ function flatObjectEntry(map, key, val, pre) {
6
+ const prefix = pre ? `${pre}.${key}` : key;
7
+ return typeof val === 'object'
8
+ ? getKeys(val).reduce((acc, prop) => flatObjectEntry(acc, prop, val[prop], prefix), map)
9
+ : { ...map, [prefix]: val };
10
+ }
11
+ export function unflatObjects(objects) {
12
+ if (!Array.isArray(objects) || !objects.length) {
13
+ return objects;
14
+ }
15
+ const attrsPaths = obtainAttrsPaths(objects[0]);
16
+ if (!hasKeys(attrsPaths)) {
17
+ return objects;
18
+ }
19
+ return objects.map((row) => {
20
+ const dto = {};
21
+ for (const col in row) {
22
+ if (row[col] === null) {
23
+ continue;
24
+ }
25
+ const attrPath = attrsPaths[col];
26
+ if (attrPath) {
27
+ const target = attrPath.slice(0, -1).reduce((acc, key) => {
28
+ if (typeof acc[key] !== 'object') {
29
+ acc[key] = {};
30
+ }
31
+ return acc[key];
32
+ }, dto);
33
+ target[attrPath[attrPath.length - 1]] = row[col];
34
+ }
35
+ else {
36
+ dto[col] = row[col];
37
+ }
38
+ }
39
+ return dto;
40
+ });
41
+ }
42
+ export function obtainAttrsPaths(row) {
43
+ return getKeys(row).reduce((acc, col) => {
44
+ // Support both dot notation (legacy) and underscore notation (new)
45
+ if (col.includes('.')) {
46
+ acc[col] = col.split('.');
47
+ }
48
+ else if (col.includes('_') && col !== col.toUpperCase()) {
49
+ // Convert underscore to dot notation for nested paths
50
+ // Skip all-uppercase (like UPPER_CASE constants)
51
+ acc[col] = col.split('_');
52
+ }
53
+ return acc;
54
+ }, {});
55
+ }
56
+ /**
57
+ * Escape a SQL identifier (table name, column name, etc.)
58
+ * @param val the identifier to escape
59
+ * @param escapeIdChar the escape character to use (e.g. ` or ")
60
+ * @param forbidQualified whether to forbid qualified identifiers (containing dots)
61
+ * @param addDot whether to add a dot suffix
62
+ */
63
+ export function escapeSqlId(val, escapeIdChar = '`', forbidQualified, addDot) {
64
+ if (!val) {
65
+ return '';
66
+ }
67
+ if (!forbidQualified && val.includes('.')) {
68
+ const result = val
69
+ .split('.')
70
+ .map((it) => escapeSqlId(it, escapeIdChar, true))
71
+ .join('.');
72
+ return addDot ? result + '.' : result;
73
+ }
74
+ const escaped = escapeIdChar + val.replace(new RegExp(escapeIdChar, 'g'), escapeIdChar + escapeIdChar) + escapeIdChar;
75
+ const suffix = addDot ? '.' : '';
76
+ return escaped + suffix;
77
+ }
78
+ /**
79
+ * Extract INSERT result IDs from raw database rows.
80
+ *
81
+ * UQL's SQL dialect always aliases the entity's ID column to `id` in RETURNING clauses,
82
+ * so the result rows always contain an `id` property regardless of the entity's @Id() key name.
83
+ */
84
+ export function extractInsertResult(rows, changes) {
85
+ const ids = rows.map((r) => r['id']);
86
+ return { changes, ids, firstId: ids?.[0] };
87
+ }
88
+ //# sourceMappingURL=sql.util.js.map