vona-module-a-orm 5.0.96 → 5.1.2

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 (367) hide show
  1. package/LICENSE +0 -0
  2. package/cli/entity/metadata/generate.ts +2 -1
  3. package/cli/model/metadata/generate.ts +6 -2
  4. package/cli/model/metadata/magic.ts +15 -6
  5. package/dist/.metadata/index.d.ts +1 -0
  6. package/dist/.metadata/index.d.ts.map +1 -0
  7. package/dist/.metadata/locales.d.ts +1 -0
  8. package/dist/.metadata/locales.d.ts.map +1 -0
  9. package/dist/.metadata/this.d.ts +1 -0
  10. package/dist/.metadata/this.d.ts.map +1 -0
  11. package/dist/bean/aopMethod.transaction.d.ts +2 -1
  12. package/dist/bean/aopMethod.transaction.d.ts.map +1 -0
  13. package/dist/bean/bean.database.d.ts +2 -1
  14. package/dist/bean/bean.database.d.ts.map +1 -0
  15. package/dist/bean/bean.databaseDialectBase.d.ts +2 -1
  16. package/dist/bean/bean.databaseDialectBase.d.ts.map +1 -0
  17. package/dist/bean/bean.model/bean.model_cache.d.ts +5 -1
  18. package/dist/bean/bean.model/bean.model_cache.d.ts.map +1 -0
  19. package/dist/bean/bean.model/bean.model_crud.d.ts +1 -0
  20. package/dist/bean/bean.model/bean.model_crud.d.ts.map +1 -0
  21. package/dist/bean/bean.model/bean.model_crud_inner.d.ts +3 -1
  22. package/dist/bean/bean.model/bean.model_crud_inner.d.ts.map +1 -0
  23. package/dist/bean/bean.model/bean.model_crud_table.d.ts +1 -0
  24. package/dist/bean/bean.model/bean.model_crud_table.d.ts.map +1 -0
  25. package/dist/bean/bean.model/bean.model_knex.d.ts +1 -0
  26. package/dist/bean/bean.model/bean.model_knex.d.ts.map +1 -0
  27. package/dist/bean/bean.model/bean.model_meta.d.ts +3 -2
  28. package/dist/bean/bean.model/bean.model_meta.d.ts.map +1 -0
  29. package/dist/bean/bean.model/bean.model_utils.d.ts +5 -3
  30. package/dist/bean/bean.model/bean.model_utils.d.ts.map +1 -0
  31. package/dist/bean/bean.model/bean.model_view.d.ts +1 -0
  32. package/dist/bean/bean.model/bean.model_view.d.ts.map +1 -0
  33. package/dist/bean/bean.model.d.ts +1 -0
  34. package/dist/bean/bean.model.d.ts.map +1 -0
  35. package/dist/bean/bean.modelBase.d.ts +1 -0
  36. package/dist/bean/bean.modelBase.d.ts.map +1 -0
  37. package/dist/bean/broadcast.columnsClear.d.ts +2 -1
  38. package/dist/bean/broadcast.columnsClear.d.ts.map +1 -0
  39. package/dist/bean/event.clientNameReal.d.ts +2 -1
  40. package/dist/bean/event.clientNameReal.d.ts.map +1 -0
  41. package/dist/bean/event.columnsClear.d.ts +2 -1
  42. package/dist/bean/event.columnsClear.d.ts.map +1 -0
  43. package/dist/bean/hmr.entity.d.ts +1 -0
  44. package/dist/bean/hmr.entity.d.ts.map +1 -0
  45. package/dist/bean/hmr.model.d.ts +1 -0
  46. package/dist/bean/hmr.model.d.ts.map +1 -0
  47. package/dist/bean/queue.doubleDelete.d.ts +2 -1
  48. package/dist/bean/queue.doubleDelete.d.ts.map +1 -0
  49. package/dist/bean/schedule.softDeletionPrune.d.ts +1 -0
  50. package/dist/bean/schedule.softDeletionPrune.d.ts.map +1 -0
  51. package/dist/common/buildWhere.d.ts +1 -0
  52. package/dist/common/buildWhere.d.ts.map +1 -0
  53. package/dist/common/checkWhere.d.ts +1 -0
  54. package/dist/common/checkWhere.d.ts.map +1 -0
  55. package/dist/common/index.d.ts +1 -0
  56. package/dist/common/index.d.ts.map +1 -0
  57. package/dist/common/utils.d.ts +2 -1
  58. package/dist/common/utils.d.ts.map +1 -0
  59. package/dist/config/config.d.ts +1 -0
  60. package/dist/config/config.d.ts.map +1 -0
  61. package/dist/config/errors.d.ts +1 -0
  62. package/dist/config/errors.d.ts.map +1 -0
  63. package/dist/config/locale/en-us.d.ts +1 -0
  64. package/dist/config/locale/en-us.d.ts.map +1 -0
  65. package/dist/config/locale/zh-cn.d.ts +1 -0
  66. package/dist/config/locale/zh-cn.d.ts.map +1 -0
  67. package/dist/extend/index.d.ts +1 -0
  68. package/dist/extend/index.d.ts.map +1 -0
  69. package/dist/extend/schemaBuilder.d.ts +1 -0
  70. package/dist/extend/schemaBuilder.d.ts.map +1 -0
  71. package/dist/extend/tableBuilder.d.ts +1 -0
  72. package/dist/extend/tableBuilder.d.ts.map +1 -0
  73. package/dist/index.d.ts +1 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +94 -15
  76. package/dist/index.js.map +1 -0
  77. package/dist/lib/const.d.ts +1 -0
  78. package/dist/lib/const.d.ts.map +1 -0
  79. package/dist/lib/databaseDialect.d.ts +1 -0
  80. package/dist/lib/databaseDialect.d.ts.map +1 -0
  81. package/dist/lib/dto/dto.d.ts +3 -0
  82. package/dist/lib/dto/dto.d.ts.map +1 -0
  83. package/dist/lib/dto/dtoAggregate.d.ts +3 -2
  84. package/dist/lib/dto/dtoAggregate.d.ts.map +1 -0
  85. package/dist/lib/dto/dtoCreate.d.ts +2 -1
  86. package/dist/lib/dto/dtoCreate.d.ts.map +1 -0
  87. package/dist/lib/dto/dtoGet.d.ts +2 -1
  88. package/dist/lib/dto/dtoGet.d.ts.map +1 -0
  89. package/dist/lib/dto/dtoGroup.d.ts +2 -1
  90. package/dist/lib/dto/dtoGroup.d.ts.map +1 -0
  91. package/dist/lib/dto/dtoListAndCount.d.ts +4 -0
  92. package/dist/lib/dto/dtoListAndCount.d.ts.map +1 -0
  93. package/dist/lib/dto/dtoMutate.d.ts +3 -2
  94. package/dist/lib/dto/dtoMutate.d.ts.map +1 -0
  95. package/dist/lib/dto/dtoQuery.d.ts +1 -0
  96. package/dist/lib/dto/dtoQuery.d.ts.map +1 -0
  97. package/dist/lib/dto/dtoQueryPage.d.ts +1 -0
  98. package/dist/lib/dto/dtoQueryPage.d.ts.map +1 -0
  99. package/dist/lib/dto/dtoSelectAndCount.d.ts +2 -1
  100. package/dist/lib/dto/dtoSelectAndCount.d.ts.map +1 -0
  101. package/dist/lib/dto/dtoUpdate.d.ts +2 -1
  102. package/dist/lib/dto/dtoUpdate.d.ts.map +1 -0
  103. package/dist/lib/dto/index.d.ts +1 -0
  104. package/dist/lib/dto/index.d.ts.map +1 -0
  105. package/dist/lib/entity.d.ts +1 -0
  106. package/dist/lib/entity.d.ts.map +1 -0
  107. package/dist/lib/index.d.ts +1 -0
  108. package/dist/lib/index.d.ts.map +1 -0
  109. package/dist/lib/model.d.ts +1 -0
  110. package/dist/lib/model.d.ts.map +1 -0
  111. package/dist/lib/modelCacheBase.d.ts +2 -1
  112. package/dist/lib/modelCacheBase.d.ts.map +1 -0
  113. package/dist/lib/relations.d.ts +5 -4
  114. package/dist/lib/relations.d.ts.map +1 -0
  115. package/dist/lib/relationsDynamic.d.ts +5 -4
  116. package/dist/lib/relationsDynamic.d.ts.map +1 -0
  117. package/dist/lib/relationsMutate.d.ts +4 -3
  118. package/dist/lib/relationsMutate.d.ts.map +1 -0
  119. package/dist/lib/relationsStatic.d.ts +1 -0
  120. package/dist/lib/relationsStatic.d.ts.map +1 -0
  121. package/dist/lib/utils.d.ts +1 -0
  122. package/dist/lib/utils.d.ts.map +1 -0
  123. package/dist/main.d.ts +2 -1
  124. package/dist/main.d.ts.map +1 -0
  125. package/dist/service/cacheEntity_.d.ts +1 -0
  126. package/dist/service/cacheEntity_.d.ts.map +1 -0
  127. package/dist/service/cacheQuery_.d.ts +1 -0
  128. package/dist/service/cacheQuery_.d.ts.map +1 -0
  129. package/dist/service/columnsCache_.d.ts +2 -1
  130. package/dist/service/columnsCache_.d.ts.map +1 -0
  131. package/dist/service/columns_.d.ts +2 -1
  132. package/dist/service/columns_.d.ts.map +1 -0
  133. package/dist/service/database.d.ts +2 -1
  134. package/dist/service/database.d.ts.map +1 -0
  135. package/dist/service/databaseAsyncLocalStorage_.d.ts +1 -0
  136. package/dist/service/databaseAsyncLocalStorage_.d.ts.map +1 -0
  137. package/dist/service/databaseClient_.d.ts +2 -1
  138. package/dist/service/databaseClient_.d.ts.map +1 -0
  139. package/dist/service/db_.d.ts +2 -1
  140. package/dist/service/db_.d.ts.map +1 -0
  141. package/dist/service/entityResolver_.d.ts +1 -0
  142. package/dist/service/entityResolver_.d.ts.map +1 -0
  143. package/dist/service/modelResolver_.d.ts +1 -0
  144. package/dist/service/modelResolver_.d.ts.map +1 -0
  145. package/dist/service/relations_.d.ts +2 -1
  146. package/dist/service/relations_.d.ts.map +1 -0
  147. package/dist/service/transactionAsyncLocalStorage_.d.ts +1 -0
  148. package/dist/service/transactionAsyncLocalStorage_.d.ts.map +1 -0
  149. package/dist/service/transactionConsistency/342/200/214_.d.ts +1 -0
  150. package/dist/service/transactionConsistency/342/200/214_.d.ts.map +1 -0
  151. package/dist/service/transactionFiber_.d.ts +1 -0
  152. package/dist/service/transactionFiber_.d.ts.map +1 -0
  153. package/dist/service/transactionState_.d.ts +2 -1
  154. package/dist/service/transactionState_.d.ts.map +1 -0
  155. package/dist/service/transaction_.d.ts +2 -1
  156. package/dist/service/transaction_.d.ts.map +1 -0
  157. package/dist/types/columns.d.ts +1 -0
  158. package/dist/types/columns.d.ts.map +1 -0
  159. package/dist/types/config.d.ts +1 -0
  160. package/dist/types/config.d.ts.map +1 -0
  161. package/dist/types/database.d.ts +1 -0
  162. package/dist/types/database.d.ts.map +1 -0
  163. package/dist/types/depth.d.ts +1 -0
  164. package/dist/types/depth.d.ts.map +1 -0
  165. package/dist/types/dialect.d.ts +1 -0
  166. package/dist/types/dialect.d.ts.map +1 -0
  167. package/dist/types/dto/dtoAggregate.d.ts +1 -0
  168. package/dist/types/dto/dtoAggregate.d.ts.map +1 -0
  169. package/dist/types/dto/dtoGet.d.ts +3 -2
  170. package/dist/types/dto/dtoGet.d.ts.map +1 -0
  171. package/dist/types/dto/dtoGroup.d.ts +1 -0
  172. package/dist/types/dto/dtoGroup.d.ts.map +1 -0
  173. package/dist/types/dto/dtoListAndCount.d.ts +8 -0
  174. package/dist/types/dto/dtoListAndCount.d.ts.map +1 -0
  175. package/dist/types/dto/dtoMutate.d.ts +8 -9
  176. package/dist/types/dto/dtoMutate.d.ts.map +1 -0
  177. package/dist/types/dto/dtoQueryBase.d.ts +1 -0
  178. package/dist/types/dto/dtoQueryBase.d.ts.map +1 -0
  179. package/dist/types/dto/dtoQueryPageBase.d.ts +1 -0
  180. package/dist/types/dto/dtoQueryPageBase.d.ts.map +1 -0
  181. package/dist/types/dto/dtoSelectAndCount.d.ts +2 -1
  182. package/dist/types/dto/dtoSelectAndCount.d.ts.map +1 -0
  183. package/dist/types/dto/index.d.ts +2 -0
  184. package/dist/types/dto/index.d.ts.map +1 -0
  185. package/dist/types/entity.d.ts +1 -0
  186. package/dist/types/entity.d.ts.map +1 -0
  187. package/dist/types/entityBase.d.ts +1 -0
  188. package/dist/types/entityBase.d.ts.map +1 -0
  189. package/dist/types/entityBaseEmpty.d.ts +1 -0
  190. package/dist/types/entityBaseEmpty.d.ts.map +1 -0
  191. package/dist/types/entityBaseInner.d.ts +1 -0
  192. package/dist/types/entityBaseInner.d.ts.map +1 -0
  193. package/dist/types/entityBaseSimple.d.ts +1 -0
  194. package/dist/types/entityBaseSimple.d.ts.map +1 -0
  195. package/dist/types/extra.d.ts +1 -0
  196. package/dist/types/extra.d.ts.map +1 -0
  197. package/dist/types/index.d.ts +2 -0
  198. package/dist/types/index.d.ts.map +1 -0
  199. package/dist/types/logger.d.ts +1 -0
  200. package/dist/types/logger.d.ts.map +1 -0
  201. package/dist/types/model.d.ts +3 -2
  202. package/dist/types/model.d.ts.map +1 -0
  203. package/dist/types/modelAggr.d.ts +2 -1
  204. package/dist/types/modelAggr.d.ts.map +1 -0
  205. package/dist/types/modelCount.d.ts +2 -1
  206. package/dist/types/modelCount.d.ts.map +1 -0
  207. package/dist/types/modelGeneral.d.ts +4 -3
  208. package/dist/types/modelGeneral.d.ts.map +1 -0
  209. package/dist/types/modelGroup.d.ts +2 -1
  210. package/dist/types/modelGroup.d.ts.map +1 -0
  211. package/dist/types/modelIncrement.d.ts +19 -0
  212. package/dist/types/modelIncrement.d.ts.map +1 -0
  213. package/dist/types/modelWhere.d.ts +2 -1
  214. package/dist/types/modelWhere.d.ts.map +1 -0
  215. package/dist/types/onion/databaseDialect.d.ts +1 -0
  216. package/dist/types/onion/databaseDialect.d.ts.map +1 -0
  217. package/dist/types/onion/entity.d.ts +1 -0
  218. package/dist/types/onion/entity.d.ts.map +1 -0
  219. package/dist/types/onion/index.d.ts +1 -0
  220. package/dist/types/onion/index.d.ts.map +1 -0
  221. package/dist/types/onion/model.d.ts +1 -0
  222. package/dist/types/onion/model.d.ts.map +1 -0
  223. package/dist/types/onion/table.d.ts +1 -0
  224. package/dist/types/onion/table.d.ts.map +1 -0
  225. package/dist/types/relations.d.ts +10 -11
  226. package/dist/types/relations.d.ts.map +1 -0
  227. package/dist/types/relationsAggr.d.ts +2 -1
  228. package/dist/types/relationsAggr.d.ts.map +1 -0
  229. package/dist/types/relationsColumns.d.ts +5 -4
  230. package/dist/types/relationsColumns.d.ts.map +1 -0
  231. package/dist/types/relationsDef.d.ts +5 -4
  232. package/dist/types/relationsDef.d.ts.map +1 -0
  233. package/dist/types/relationsDefDynamic.d.ts +6 -5
  234. package/dist/types/relationsDefDynamic.d.ts.map +1 -0
  235. package/dist/types/relationsDefMutate.d.ts +1 -0
  236. package/dist/types/relationsDefMutate.d.ts.map +1 -0
  237. package/dist/types/relationsGroup.d.ts +1 -0
  238. package/dist/types/relationsGroup.d.ts.map +1 -0
  239. package/dist/types/relationsMutate.d.ts +4 -3
  240. package/dist/types/relationsMutate.d.ts.map +1 -0
  241. package/dist/types/relationsTables.d.ts +1 -0
  242. package/dist/types/relationsTables.d.ts.map +1 -0
  243. package/dist/types/transaction.d.ts +1 -0
  244. package/dist/types/transaction.d.ts.map +1 -0
  245. package/dist-cli/entity/metadata/generate.js +1 -1
  246. package/dist-cli/model/metadata/generate.js +4 -2
  247. package/dist-cli/model/metadata/magic.js +2 -2
  248. package/package.json +40 -36
  249. package/src/.metadata/index.ts +348 -0
  250. package/src/.metadata/locales.ts +13 -0
  251. package/src/.metadata/this.ts +2 -0
  252. package/src/bean/aopMethod.transaction.ts +18 -0
  253. package/src/bean/bean.database.ts +57 -0
  254. package/src/bean/bean.databaseDialectBase.ts +149 -0
  255. package/src/bean/bean.model/bean.model_cache.ts +815 -0
  256. package/src/bean/bean.model/bean.model_crud.ts +46 -0
  257. package/src/bean/bean.model/bean.model_crud_inner.ts +281 -0
  258. package/src/bean/bean.model/bean.model_crud_table.ts +59 -0
  259. package/src/bean/bean.model/bean.model_knex.ts +60 -0
  260. package/src/bean/bean.model/bean.model_meta.ts +204 -0
  261. package/src/bean/bean.model/bean.model_utils.ts +275 -0
  262. package/src/bean/bean.model/bean.model_view.ts +129 -0
  263. package/src/bean/bean.model.ts +8 -0
  264. package/src/bean/bean.modelBase.ts +8 -0
  265. package/src/bean/broadcast.columnsClear.ts +24 -0
  266. package/src/bean/event.clientNameReal.ts +10 -0
  267. package/src/bean/event.columnsClear.ts +13 -0
  268. package/src/bean/hmr.entity.ts +12 -0
  269. package/src/bean/hmr.model.ts +16 -0
  270. package/src/bean/queue.doubleDelete.ts +29 -0
  271. package/src/bean/schedule.softDeletionPrune.ts +45 -0
  272. package/src/common/buildWhere.ts +238 -0
  273. package/src/common/checkWhere.ts +128 -0
  274. package/src/common/index.ts +3 -0
  275. package/src/common/utils.ts +74 -0
  276. package/src/config/config.ts +60 -0
  277. package/src/config/errors.ts +3 -0
  278. package/src/config/locale/en-us.ts +8 -0
  279. package/src/config/locale/zh-cn.ts +8 -0
  280. package/src/extend/index.ts +12 -0
  281. package/src/extend/schemaBuilder.ts +29 -0
  282. package/src/extend/tableBuilder.ts +87 -0
  283. package/src/index.ts +10 -0
  284. package/src/lib/const.ts +58 -0
  285. package/src/lib/databaseDialect.ts +7 -0
  286. package/src/lib/dto/dto.ts +21 -0
  287. package/src/lib/dto/dtoAggregate.ts +51 -0
  288. package/src/lib/dto/dtoCreate.ts +14 -0
  289. package/src/lib/dto/dtoGet.ts +159 -0
  290. package/src/lib/dto/dtoGroup.ts +57 -0
  291. package/src/lib/dto/dtoListAndCount.ts +16 -0
  292. package/src/lib/dto/dtoMutate.ts +82 -0
  293. package/src/lib/dto/dtoQuery.ts +9 -0
  294. package/src/lib/dto/dtoQueryPage.ts +9 -0
  295. package/src/lib/dto/dtoSelectAndCount.ts +20 -0
  296. package/src/lib/dto/dtoUpdate.ts +16 -0
  297. package/src/lib/dto/index.ts +1 -0
  298. package/src/lib/entity.ts +25 -0
  299. package/src/lib/index.ts +9 -0
  300. package/src/lib/model.ts +7 -0
  301. package/src/lib/modelCacheBase.ts +98 -0
  302. package/src/lib/relations.ts +118 -0
  303. package/src/lib/relationsDynamic.ts +75 -0
  304. package/src/lib/relationsMutate.ts +60 -0
  305. package/src/lib/relationsStatic.ts +18 -0
  306. package/src/lib/utils.ts +45 -0
  307. package/src/main.ts +79 -0
  308. package/src/service/cacheEntity_.ts +37 -0
  309. package/src/service/cacheQuery_.ts +20 -0
  310. package/src/service/columnsCache_.ts +69 -0
  311. package/src/service/columns_.ts +64 -0
  312. package/src/service/database.ts +126 -0
  313. package/src/service/databaseAsyncLocalStorage_.ts +29 -0
  314. package/src/service/databaseClient_.ts +124 -0
  315. package/src/service/db_.ts +77 -0
  316. package/src/service/entityResolver_.ts +25 -0
  317. package/src/service/modelResolver_.ts +19 -0
  318. package/src/service/relations_.ts +444 -0
  319. package/src/service/transactionAsyncLocalStorage_.ts +31 -0
  320. package/src/service/transactionConsistency/342/200/214_.ts +37 -0
  321. package/src/service/transactionFiber_.ts +42 -0
  322. package/src/service/transactionState_.ts +35 -0
  323. package/src/service/transaction_.ts +147 -0
  324. package/src/types/columns.ts +8 -0
  325. package/src/types/config.ts +23 -0
  326. package/src/types/database.ts +64 -0
  327. package/src/types/depth.ts +55 -0
  328. package/src/types/dialect.ts +17 -0
  329. package/src/types/dto/dtoAggregate.ts +3 -0
  330. package/src/types/dto/dtoGet.ts +23 -0
  331. package/src/types/dto/dtoGroup.ts +3 -0
  332. package/src/types/dto/dtoListAndCount.ts +7 -0
  333. package/src/types/dto/dtoMutate.ts +231 -0
  334. package/src/types/dto/dtoQueryBase.ts +18 -0
  335. package/src/types/dto/dtoQueryPageBase.ts +18 -0
  336. package/src/types/dto/dtoSelectAndCount.ts +11 -0
  337. package/src/types/dto/index.ts +8 -0
  338. package/src/types/entity.ts +15 -0
  339. package/src/types/entityBase.ts +11 -0
  340. package/src/types/entityBaseEmpty.ts +1 -0
  341. package/src/types/entityBaseInner.ts +18 -0
  342. package/src/types/entityBaseSimple.ts +9 -0
  343. package/src/types/extra.ts +23 -0
  344. package/src/types/index.ts +30 -0
  345. package/src/types/logger.ts +6 -0
  346. package/src/types/model.ts +152 -0
  347. package/src/types/modelAggr.ts +69 -0
  348. package/src/types/modelCount.ts +40 -0
  349. package/src/types/modelGeneral.ts +61 -0
  350. package/src/types/modelGroup.ts +48 -0
  351. package/src/types/modelIncrement.ts +50 -0
  352. package/src/types/modelWhere.ts +85 -0
  353. package/src/types/onion/databaseDialect.ts +22 -0
  354. package/src/types/onion/entity.ts +33 -0
  355. package/src/types/onion/index.ts +4 -0
  356. package/src/types/onion/model.ts +68 -0
  357. package/src/types/onion/table.ts +1 -0
  358. package/src/types/relations.ts +243 -0
  359. package/src/types/relationsAggr.ts +31 -0
  360. package/src/types/relationsColumns.ts +116 -0
  361. package/src/types/relationsDef.ts +152 -0
  362. package/src/types/relationsDefDynamic.ts +128 -0
  363. package/src/types/relationsDefMutate.ts +11 -0
  364. package/src/types/relationsGroup.ts +58 -0
  365. package/src/types/relationsMutate.ts +118 -0
  366. package/src/types/relationsTables.ts +38 -0
  367. package/src/types/transaction.ts +23 -0
@@ -0,0 +1,128 @@
1
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
+ import type { IModelRelationIncludeWrapper, IModelSelectParamsJoin, IModelSelectParamsOrder } from './model.ts';
3
+ import type { TypeModelSelectAggrParamsAggrs } from './modelAggr.ts';
4
+ import type { TypeModelColumn, TypeModelColumnsPatch, TypeModelColumnsStrict, TypeModelWhere } from './modelWhere.ts';
5
+ import type { IModelClassRecord } from './onion/model.ts';
6
+ import type { TypeModelClassLike, TypeModelOfModelLike, TypeModelsClassLikeGeneral, TypeSymbolKeyEntity } from './relations.ts';
7
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
8
+ import type { IModelRelationOptionsMetaWrapper } from './relationsDef.ts';
9
+ import type { TypeModelSelectGroupParamsColumnNames } from './relationsGroup.ts';
10
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
11
+
12
+ // export type TypeModelRelationDynamic<MODELSelf extends BeanModelMeta | undefined, MODELTarget extends BeanModelMeta> =
13
+ // IModelRelationHasOneDynamic<MODELTarget> |
14
+ // IModelRelationBelongsToDynamic<MODELSelf, MODELTarget> |
15
+ // IModelRelationHasManyDynamic<MODELTarget>;
16
+
17
+ // use optional ? for app config
18
+ export interface IModelRelationHasOneDynamic<
19
+ MODEL extends BeanModelMeta | keyof IModelClassRecord,
20
+ KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
21
+ OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined,
22
+ > {
23
+ type?: 'hasOne';
24
+ model?: TypeModelClassLike<MODEL>;
25
+ key?: KEY;
26
+ options?: OPTIONS;
27
+ }
28
+
29
+ export interface IModelRelationBelongsToDynamic<
30
+ MODELSelf extends BeanModelMeta | keyof IModelClassRecord,
31
+ MODEL extends BeanModelMeta | keyof IModelClassRecord,
32
+ OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined,
33
+ > {
34
+ type?: 'belongsTo';
35
+ model?: TypeModelClassLike<MODEL>;
36
+ key?: keyof TypeModelOfModelLike<MODELSelf>[TypeSymbolKeyEntity];
37
+ options?: OPTIONS;
38
+ }
39
+
40
+ export interface IModelRelationHasManyDynamic<
41
+ MODEL extends BeanModelMeta | keyof IModelClassRecord,
42
+ KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
43
+ OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined,
44
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
45
+ Group extends boolean | undefined = undefined,
46
+ > {
47
+ type?: 'hasMany';
48
+ model?: TypeModelClassLike<MODEL>;
49
+ key?: KEY;
50
+ options?: OPTIONS;
51
+ }
52
+
53
+ export interface IModelRelationBelongsToManyDynamic<
54
+ MODELMiddle extends BeanModelMeta | keyof IModelClassRecord,
55
+ MODEL extends BeanModelMeta | keyof IModelClassRecord,
56
+ OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined,
57
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
58
+ Group extends boolean | undefined = undefined,
59
+ > {
60
+ type?: 'belongsToMany';
61
+ modelMiddle?: TypeModelClassLike<MODELMiddle>;
62
+ model?: TypeModelClassLike<MODEL>;
63
+ keyFrom?: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity];
64
+ keyTo?: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity];
65
+ options?: OPTIONS;
66
+ }
67
+
68
+ export interface IModelRelationOptionsOneDynamic<MODEL extends BeanModelMeta>
69
+ extends IModelRelationOptionsMetaWrapper, IModelRelationIncludeWrapper<MODEL> {
70
+ columns?: TypeModelColumnsPatch<MODEL[TypeSymbolKeyEntity], TypeModelColumn<MODEL[TypeSymbolKeyEntity]>>;
71
+ }
72
+
73
+ export interface IModelRelationOptionsManyDynamic<
74
+ MODEL extends BeanModelMeta,
75
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
76
+ Group extends boolean | undefined = undefined,
77
+ >
78
+ extends
79
+ IModelRelationOptionsMetaWrapper,
80
+ IModelRelationIncludeWrapper<MODEL>,
81
+ Omit<IModelRelationOptionsManyDynamic_Raw<MODEL, false, TypeModelColumn<MODEL[TypeSymbolKeyEntity]>, ModelJoins, Group>, 'autoload'> {}
82
+
83
+ export type IModelRelationOptionsManyDynamic_Raw<
84
+ MODEL extends BeanModelMeta,
85
+ AUTOLOAD extends boolean = false,
86
+ COLUMNS extends TypeModelColumn<MODEL[TypeSymbolKeyEntity]> = TypeModelColumn<MODEL[TypeSymbolKeyEntity]>,
87
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
88
+ Group extends boolean | undefined = undefined,
89
+ > = IBuildModelRelationOptionsManyDynamic<
90
+ MODEL[TypeSymbolKeyEntity],
91
+ AUTOLOAD,
92
+ COLUMNS,
93
+ TypeEntityTableNamesOfGeneral<ModelJoins, MODEL>,
94
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, MODEL>,
95
+ TypeEntityTableColumnsOfGeneral<ModelJoins, MODEL>,
96
+ Group
97
+ >;
98
+
99
+ export interface IBuildModelRelationOptionsManyDynamic<
100
+ TRecord,
101
+ AUTOLOAD extends boolean = false,
102
+ COLUMNS extends TypeModelColumn<TRecord> = TypeModelColumn<TRecord>,
103
+ TableNames = undefined,
104
+ ColumnNames = keyof TRecord,
105
+ Columns extends {} | undefined = undefined,
106
+ Group extends boolean | undefined = undefined,
107
+ > extends IBuildModelSelectGeneralParamsBasicDynamic<TRecord, COLUMNS, TableNames, ColumnNames, Columns, Group> {
108
+ autoload?: AUTOLOAD;
109
+ }
110
+
111
+ export interface IBuildModelSelectGeneralParamsBasicDynamic<
112
+ TRecord,
113
+ COLUMNS extends TypeModelColumn<TRecord> = TypeModelColumn<TRecord>,
114
+ TableNames = undefined,
115
+ ColumnNames = keyof TRecord,
116
+ Columns extends {} | undefined = undefined,
117
+ Group extends boolean | undefined = undefined,
118
+ > {
119
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
120
+ columns?: TypeModelColumnsPatch<TRecord, COLUMNS>;
121
+ aggrs?: TypeModelSelectAggrParamsAggrs<TRecord>;
122
+ groups?: TypeModelColumnsStrict<TRecord>;
123
+ where?: TypeModelWhere<TRecord, Columns>;
124
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
125
+ orders?: Group extends true ? IModelSelectParamsOrder<TypeModelSelectGroupParamsColumnNames<TRecord>>[] : IModelSelectParamsOrder<ColumnNames>[];
126
+ limit?: number;
127
+ offset?: number;
128
+ }
@@ -0,0 +1,11 @@
1
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
+ import type { IModelRelationIncludeWrapper } from './model.ts';
3
+ import type { IModelRelationOptionsMetaWrapper } from './relationsDef.ts';
4
+
5
+ export interface IModelRelationOptionsOneMutate<MODEL extends BeanModelMeta>
6
+ extends IModelRelationOptionsMetaWrapper, IModelRelationIncludeWrapper<MODEL> {}
7
+
8
+ export interface IModelRelationOptionsManyMutate<MODEL extends BeanModelMeta>
9
+ extends IModelRelationOptionsMetaWrapper, IModelRelationIncludeWrapper<MODEL> {}
10
+
11
+ export interface IModelRelationOptionsBelongsToManyMutate<_MODEL extends BeanModelMeta> extends IModelRelationOptionsMetaWrapper {}
@@ -0,0 +1,58 @@
1
+ import type { TypeModelSelectAggrParamsAggrs } from './modelAggr.ts';
2
+ import type { TypeModelColumnsStrict } from './modelWhere.ts';
3
+ import type { TypeUtilGetParamsAggrs, TypeUtilGetParamsColumns, TypeUtilGetParamsGroups, TypeUtilGetRelationOptionsGroups } from './relations.ts';
4
+ import type {
5
+ TypeModelAggrRelationResultAggr,
6
+ TypeModelAggrRelationResultAggrs,
7
+ TypeRecordAggrsValues,
8
+ TypeRecordAggrsValuesToObject,
9
+ TypeUtilAggrPrepareColumns,
10
+ } from './relationsAggr.ts';
11
+
12
+ export type TypeModelGroupRelationResult<TRecord, TOptions> = TypeModelGroupRelationResultGroups<
13
+ TRecord,
14
+ TypeUtilGetParamsAggrs<TOptions>,
15
+ TypeUtilGetParamsGroups<TOptions>,
16
+ TypeUtilGetParamsColumns<TOptions>
17
+ >;
18
+
19
+ export type TypeModelGroupRelationResultGroups<TRecord, Aggrs, Groups, Columns> = Groups extends string | string[]
20
+ ? TypeModelGroupRelationResultGroupsObject<TRecord, Groups, Columns> &
21
+ (Aggrs extends {}
22
+ ? TypeRecordAggrsValuesToObject<
23
+ TypeRecordAggrsValues<{
24
+ [K in keyof Aggrs]: K extends string ? TypeModelAggrRelationResultAggr<K, TypeUtilAggrPrepareColumns<Aggrs[K]>> : never;
25
+ }>
26
+ >
27
+ : {})
28
+ : {}; // not use undefined
29
+
30
+ export type TypeModelGroupRelationResultGroupsObject<TRecord, Groups, Columns> = Columns extends string | string[]
31
+ ? { [K in TypeUtilAggrPrepareColumns<Columns>]: K extends keyof TRecord ? TRecord[K] : never }
32
+ : Groups extends string | string[]
33
+ ? { [K in TypeUtilAggrPrepareColumns<Groups>]: K extends keyof TRecord ? TRecord[K] : never }
34
+ : {};
35
+
36
+ export type TypeModelSelectGroupParamsColumnNames<
37
+ TRecord,
38
+ ColumnNames extends TypeModelColumnsStrict<TRecord> | undefined = TypeModelColumnsStrict<TRecord>,
39
+ Aggrs extends TypeModelSelectAggrParamsAggrs<TRecord> | undefined = TypeModelSelectAggrParamsAggrs<TRecord>,
40
+ > =
41
+ | (ColumnNames extends TypeModelColumnsStrict<TRecord> ? TypeUtilAggrPrepareColumns<ColumnNames> : never)
42
+ | (Aggrs extends TypeModelSelectAggrParamsAggrs<TRecord> ? keyof TypeModelAggrRelationResultAggrs<Aggrs> : never);
43
+
44
+ export type TypeModelSelectGroupParamsColumns<
45
+ TRecord,
46
+ ColumnNames extends TypeModelColumnsStrict<TRecord> | undefined = TypeModelColumnsStrict<TRecord>,
47
+ Aggrs extends TypeModelSelectAggrParamsAggrs<TRecord> | undefined = TypeModelSelectAggrParamsAggrs<TRecord>,
48
+ > = (TypeUtilAggrPrepareColumns<ColumnNames> extends string
49
+ ? { [K in TypeUtilAggrPrepareColumns<ColumnNames>]: K extends keyof TRecord ? TRecord[K] : never }
50
+ : {}) &
51
+ TypeModelAggrRelationResultAggrsToNumberType<TypeModelAggrRelationResultAggrs<Aggrs>>;
52
+
53
+ export type TypeModelAggrRelationResultAggrsToNumberType<Columns> = { [K in keyof Columns]: string }; // not use BigNumber or number | string
54
+
55
+ export type TypeUtilGetGroupsFromRelationAndIncludeWrapper<Relation, IncludeWrapper extends {} | undefined | unknown> =
56
+ TypeUtilGetParamsGroups<IncludeWrapper> extends string | string[]
57
+ ? TypeUtilGetParamsGroups<IncludeWrapper>
58
+ : TypeUtilGetRelationOptionsGroups<Relation>;
@@ -0,0 +1,118 @@
1
+ import type { TableIdentity } from 'table-identity';
2
+ import type { OmitNever } from 'vona';
3
+
4
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
5
+ import type { IDecoratorModelOptions } from './onion/model.ts';
6
+ import type {
7
+ TypeUtilGetModelOptions,
8
+ TypeUtilGetParamsInlcude,
9
+ TypeUtilGetParamsWith,
10
+ TypeUtilGetRelationEntity,
11
+ TypeUtilGetRelationModel,
12
+ TypeUtilGetRelationOptions,
13
+ TypeUtilGetRelationOptionsAutoload,
14
+ TypeUtilGetRelationType,
15
+ } from './relations.ts';
16
+ import type { IModelRelationOptionsMetaWrapper } from './relationsDef.ts';
17
+
18
+ export type TypeModelMutateParamsInclude<MODEL extends BeanModelMeta | undefined> = TypeModelMutateParamsIncludeByModelOptions<
19
+ TypeUtilGetModelOptions<MODEL>
20
+ >;
21
+
22
+ export type TypeModelMutateParamsIncludeByModelOptions<ModelOptions extends IDecoratorModelOptions | undefined> =
23
+ ModelOptions extends IDecoratorModelOptions
24
+ ? {
25
+ [relationName in keyof ModelOptions['relations']]?: TypeModelMutateParamsRelationOptions<ModelOptions['relations'][relationName]>;
26
+ }
27
+ : never;
28
+
29
+ export type TypeModelMutateParamsRelationOptions<Relation> =
30
+ | boolean
31
+ | (IModelRelationOptionsMetaWrapper & {
32
+ include?: TypeModelMutateParamsInclude<TypeUtilGetRelationModel<Relation>>;
33
+ with?: Record<string, unknown>;
34
+ });
35
+
36
+ export type TypeModelMutateRelationResultMergeInclude<
37
+ TModelOptions extends IDecoratorModelOptions,
38
+ TInclude extends {} | undefined | unknown,
39
+ TForInsertResult extends boolean | undefined = undefined,
40
+ > = {
41
+ [RelationName in keyof TModelOptions['relations']]: TInclude extends {} // not use ?: for OmitNever take effect
42
+ ? TInclude[RelationName] extends {} | boolean
43
+ ? TypeModelMutateRelationResultMergeIncludeWrapper<TModelOptions['relations'][RelationName], TInclude[RelationName], TForInsertResult>
44
+ : TypeModelMutateRelationResultMergeAutoload<TModelOptions['relations'][RelationName], TForInsertResult>
45
+ : TypeModelMutateRelationResultMergeAutoload<TModelOptions['relations'][RelationName], TForInsertResult>;
46
+ };
47
+
48
+ export type TypeModelMutateRelationResultMergeAutoload<Relation, TForInsertResult extends boolean | undefined = undefined> =
49
+ TypeUtilGetRelationOptionsAutoload<Relation> extends true ? TypeUtilMutateGetRelationEntityByType<Relation, undefined, TForInsertResult> : never;
50
+
51
+ export type TypeModelMutateRelationResultMergeIncludeWrapper<
52
+ Relation,
53
+ IncludeWrapper,
54
+ TForInsertResult extends boolean | undefined = undefined,
55
+ > = IncludeWrapper extends false
56
+ ? never
57
+ : IncludeWrapper extends true
58
+ ? TypeUtilMutateGetRelationEntityByType<Relation, undefined, TForInsertResult>
59
+ : IncludeWrapper extends {}
60
+ ? TypeUtilMutateGetRelationEntityByType<Relation, IncludeWrapper, TForInsertResult>
61
+ : never;
62
+
63
+ export type TypeUtilMutateGetRelationEntityByType<
64
+ Relation,
65
+ IncludeWrapper extends {} | undefined | unknown,
66
+ TForInsertResult extends boolean | undefined = undefined,
67
+ > = TypeUtilMutateGetEntityByType<
68
+ TypeUtilGetRelationEntity<Relation>,
69
+ TypeUtilGetRelationType<Relation>,
70
+ TypeUtilGetRelationModel<Relation>,
71
+ IncludeWrapper,
72
+ TForInsertResult
73
+ >;
74
+
75
+ export type TypeUtilMutateGetEntityByType<
76
+ TRecord,
77
+ TYPE,
78
+ TModel extends BeanModelMeta | undefined,
79
+ IncludeWrapper extends {} | undefined | unknown,
80
+ TForInsertResult extends boolean | undefined = undefined,
81
+ > = TYPE extends 'belongsTo'
82
+ ? never
83
+ : TYPE extends 'belongsToMany'
84
+ ? Array<{ id: TableIdentity; deleted?: boolean }> | undefined
85
+ : TYPE extends 'hasMany'
86
+ ? Array<TypeModelMutateRelationData<TRecord, TModel, IncludeWrapper, TForInsertResult>> | undefined
87
+ : TypeModelMutateRelationData<TRecord, TModel, IncludeWrapper, TForInsertResult> | undefined;
88
+
89
+ export type TypeModelMutateRelationResultMergeWith<
90
+ TWith extends {} | undefined | unknown,
91
+ TForInsertResult extends boolean | undefined = undefined,
92
+ > = TWith extends {} ? { [RelationName in keyof TWith]: TypeModelMutateRelationResultMergeWithRelation<TWith[RelationName], TForInsertResult> } : {};
93
+
94
+ export type TypeModelMutateRelationResultMergeWithRelation<
95
+ WithRelation,
96
+ TForInsertResult extends boolean | undefined = undefined,
97
+ > = WithRelation extends false
98
+ ? never
99
+ : WithRelation extends true
100
+ ? never
101
+ : WithRelation extends {}
102
+ ? TypeUtilMutateGetRelationEntityByType<WithRelation, TypeUtilGetRelationOptions<WithRelation>, TForInsertResult>
103
+ : never;
104
+
105
+ export type TypeModelMutateRelationData<
106
+ TRecord,
107
+ TModel extends BeanModelMeta | undefined,
108
+ TOptionsRelation,
109
+ TForInsertResult extends boolean | undefined = undefined,
110
+ > = (TForInsertResult extends true ? TRecord : Partial<TRecord>) &
111
+ (TModel extends BeanModelMeta
112
+ ? Partial<
113
+ OmitNever<
114
+ TypeModelMutateRelationResultMergeInclude<TypeUtilGetModelOptions<TModel>, TypeUtilGetParamsInlcude<TOptionsRelation>, TForInsertResult>
115
+ >
116
+ > &
117
+ Partial<OmitNever<TypeModelMutateRelationResultMergeWith<TypeUtilGetParamsWith<TOptionsRelation>, TForInsertResult>>>
118
+ : {});
@@ -0,0 +1,38 @@
1
+ import type { TypeConfirmArray, TypeRecordValues } from 'vona';
2
+
3
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
4
+ import type { IDecoratorModelOptions } from './onion/model.ts';
5
+ import type {
6
+ TypeModelOfModelLike,
7
+ TypeModelsClassLikeGeneral,
8
+ TypeSymbolKeyEntityMeta,
9
+ TypeUtilGetModelOptions,
10
+ TypeUtilGetRelationEntityMeta,
11
+ } from './relations.ts';
12
+
13
+ export type TypeEntityTableNames<EntityMeta extends { $table: string } | undefined> = EntityMeta extends { $table: infer TableName }
14
+ ? TableName
15
+ : never;
16
+
17
+ export type TypeEntityTableNamesOfModelOptions<TModelOptions extends IDecoratorModelOptions> = TModelOptions['relations'] extends {}
18
+ ? TypeRecordValues<{
19
+ [RelationName in keyof TModelOptions['relations']]: TypeEntityTableNames<
20
+ TypeUtilGetRelationEntityMeta<TModelOptions['relations'][RelationName]>
21
+ >;
22
+ }>
23
+ : never;
24
+
25
+ export type TypeEntityTableNamesOfModelJoins<TModelJoins extends TypeModelsClassLikeGeneral> = TypeEntityTableNames<
26
+ TypeModelOfModelLike<TypeConfirmArray<TModelJoins>[number]>[TypeSymbolKeyEntityMeta]
27
+ >;
28
+
29
+ export type TypeEntityTableNamesOfModelClass<TModel extends BeanModelMeta> = TypeEntityTableNamesOfModelOptions<TypeUtilGetModelOptions<TModel>>;
30
+
31
+ export type TypeEntityTableNamesOfGeneral<
32
+ TModelJoins extends TypeModelsClassLikeGeneral | undefined,
33
+ TModel extends BeanModelMeta | undefined,
34
+ > = TModel extends BeanModelMeta
35
+ ? TModelJoins extends TypeModelsClassLikeGeneral
36
+ ? TypeEntityTableNamesOfModelJoins<TModelJoins>
37
+ : TypeEntityTableNamesOfModelClass<TModel>
38
+ : undefined;
@@ -0,0 +1,23 @@
1
+ export const TransactionIsolationLevelsMap = {
2
+ DEFAULT: undefined,
3
+ READ_UNCOMMITTED: 'read uncommitted',
4
+ READ_COMMITTED: 'read committed',
5
+ REPEATABLE_READ: 'repeatable read',
6
+ SERIALIZABLE: 'serializable',
7
+ SNAPSHOT: 'snapshot',
8
+ };
9
+
10
+ export type TypeTransactionIsolationLevels = 'DEFAULT' | 'READ_UNCOMMITTED' | 'READ_COMMITTED' | 'REPEATABLE_READ' | 'SERIALIZABLE' | 'SNAPSHOT';
11
+
12
+ export type TypeTransactionPropagation = 'REQUIRED' | 'SUPPORTS' | 'MANDATORY' | 'REQUIRES_NEW' | 'NOT_SUPPORTED' | 'NEVER';
13
+
14
+ // export type TransactionPropagation=''
15
+ export interface ITransactionOptions {
16
+ isolationLevel?: TypeTransactionIsolationLevels;
17
+ readOnly?: boolean;
18
+ propagation?: TypeTransactionPropagation;
19
+ }
20
+
21
+ export interface ITransactionConsistencyCommitOptions {
22
+ ignoreIfNotInTransaction?: boolean;
23
+ }