cabloy 5.1.20 → 5.1.22

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 (227) hide show
  1. package/package.json +1 -1
  2. package/scripts/upgrade.ts +13 -5
  3. package/vona/pnpm-lock.yaml +72 -70
  4. package/vona/src/suite-vendor/a-auth/tsconfig.json +0 -3
  5. package/vona/src/suite-vendor/a-cabloy/tsconfig.json +0 -9
  6. package/vona/src/suite-vendor/a-captcha/tsconfig.json +0 -3
  7. package/vona/src/suite-vendor/a-vona/tsconfig.json +0 -3
  8. package/vona/src/suite/.gitkeep +0 -0
  9. package/vona/src/suite-vendor/.gitkeep +0 -0
  10. package/vona/src/suite-vendor/a-auth/modules/test-auth/package.json +0 -52
  11. package/vona/src/suite-vendor/a-auth/modules/test-auth/src/.metadata/index.ts +0 -74
  12. package/vona/src/suite-vendor/a-auth/modules/test-auth/src/.metadata/this.ts +0 -2
  13. package/vona/src/suite-vendor/a-auth/modules/test-auth/src/controller/passport.ts +0 -19
  14. package/vona/src/suite-vendor/a-auth/modules/test-auth/src/index.ts +0 -1
  15. package/vona/src/suite-vendor/a-auth/modules/test-auth/test/authOauth.test.ts +0 -55
  16. package/vona/src/suite-vendor/a-auth/modules/test-auth/test/authSimple.test.ts +0 -52
  17. package/vona/src/suite-vendor/a-auth/modules/test-auth/tsconfig.build.json +0 -11
  18. package/vona/src/suite-vendor/a-auth/modules/test-auth/tsconfig.json +0 -7
  19. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/package.json +0 -60
  20. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/src/.metadata/index.ts +0 -103
  21. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/src/.metadata/this.ts +0 -2
  22. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/src/bean/meta.status.ts +0 -15
  23. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/src/controller/status.ts +0 -44
  24. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/src/index.ts +0 -1
  25. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/test/datasource.test.ts +0 -51
  26. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/test/socket.test.ts +0 -48
  27. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/test/status.test.ts +0 -10
  28. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/tsconfig.build.json +0 -11
  29. package/vona/src/suite-vendor/a-cabloy/modules/test-cabloy/tsconfig.json +0 -7
  30. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/package.json +0 -63
  31. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/.metadata/index.ts +0 -377
  32. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/.metadata/locales.ts +0 -18
  33. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/.metadata/this.ts +0 -2
  34. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/bean/meta.version.ts +0 -49
  35. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/bean/ssrMenu.product.ts +0 -26
  36. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/config/locale/en-us.ts +0 -15
  37. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/config/locale/zh-cn.ts +0 -15
  38. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/controller/product.tsx +0 -64
  39. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/dto/productCreate.tsx +0 -40
  40. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/dto/productSelectReq.tsx +0 -25
  41. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/dto/productSelectRes.tsx +0 -11
  42. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/dto/productSelectResItem.tsx +0 -39
  43. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/dto/productUpdate.tsx +0 -30
  44. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/dto/productView.tsx +0 -25
  45. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/entity/product.tsx +0 -65
  46. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/index.ts +0 -2
  47. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/model/product.ts +0 -10
  48. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/src/service/product.ts +0 -37
  49. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/test/permission.test.ts +0 -19
  50. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/test/product.test.ts +0 -65
  51. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/tsconfig.build.json +0 -11
  52. package/vona/src/suite-vendor/a-cabloy/modules/test-rest/tsconfig.json +0 -7
  53. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/package.json +0 -60
  54. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/.metadata/index.ts +0 -161
  55. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/.metadata/locales.ts +0 -18
  56. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/.metadata/this.ts +0 -2
  57. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/config/locale/en-us.ts +0 -13
  58. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/config/locale/zh-cn.ts +0 -11
  59. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/controller/toolOne.ts +0 -43
  60. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/controller/toolTwo.ts +0 -37
  61. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/dto/testBody.ts +0 -10
  62. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/dto/testDetail.ts +0 -21
  63. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/dto/testParams.ts +0 -13
  64. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/dto/testQuery.ts +0 -12
  65. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/dto/testResult.tsx +0 -159
  66. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/src/index.ts +0 -2
  67. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/tsconfig.build.json +0 -11
  68. package/vona/src/suite-vendor/a-cabloy/modules/test-ssr/tsconfig.json +0 -7
  69. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/package.json +0 -52
  70. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/src/.metadata/index.ts +0 -99
  71. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/src/.metadata/this.ts +0 -2
  72. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/src/controller/captcha.ts +0 -18
  73. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/src/dto/signin.ts +0 -20
  74. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/src/index.ts +0 -1
  75. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/test/captcha.test.ts +0 -148
  76. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/tsconfig.build.json +0 -11
  77. package/vona/src/suite-vendor/a-captcha/modules/test-captcha/tsconfig.json +0 -7
  78. package/vona/src/suite-vendor/a-vona/modules/test-vona/assets/img/vona.png +0 -0
  79. package/vona/src/suite-vendor/a-vona/modules/test-vona/assets/static/img/vona.png +0 -0
  80. package/vona/src/suite-vendor/a-vona/modules/test-vona/assets/static/img/vona.svg +0 -3
  81. package/vona/src/suite-vendor/a-vona/modules/test-vona/package.json +0 -61
  82. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/.metadata/index.ts +0 -2181
  83. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/.metadata/locales.ts +0 -18
  84. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/.metadata/this.ts +0 -2
  85. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/aop.regExp.ts +0 -34
  86. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/aop.simple.ts +0 -80
  87. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/aopMethod.test.ts +0 -63
  88. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/bean.testCtx.ts +0 -59
  89. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/broadcast.test.ts +0 -24
  90. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/cacheMem.test.ts +0 -7
  91. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/cacheRedis.post.ts +0 -11
  92. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/cacheRedis.test.ts +0 -7
  93. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/event.helloEcho.ts +0 -13
  94. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/eventListener.helloEcho.ts +0 -24
  95. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/meta.asset.ts +0 -10
  96. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/meta.static.ts +0 -7
  97. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/meta.version.ts +0 -108
  98. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/queue.test.ts +0 -25
  99. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/schedule.test.ts +0 -13
  100. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/schedule.test3.ts +0 -13
  101. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/serializerTransform.email.ts +0 -35
  102. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/summerCache.caching.ts +0 -36
  103. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/bean/summerCache.test.ts +0 -36
  104. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/config/config.ts +0 -5
  105. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/config/locale/en-us.ts +0 -21
  106. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/config/locale/zh-cn.ts +0 -19
  107. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/bean.ts +0 -103
  108. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/cacheMem.ts +0 -64
  109. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/cacheRedis.ts +0 -56
  110. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/dtoTest.ts +0 -61
  111. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/guardPassport.ts +0 -26
  112. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/onion.ts +0 -103
  113. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/order.ts +0 -56
  114. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/passport.ts +0 -49
  115. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/performAction.ts +0 -19
  116. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/post.ts +0 -59
  117. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/queue.ts +0 -27
  118. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/serializer.ts +0 -40
  119. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/summer.ts +0 -130
  120. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/tail.ts +0 -33
  121. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/transaction.ts +0 -30
  122. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/controller/upload.ts +0 -61
  123. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/categoryTree.ts +0 -9
  124. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/orderCreate.ts +0 -13
  125. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/orderQuery.ts +0 -25
  126. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/orderQueryPage.ts +0 -24
  127. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/orderSelectRes.ts +0 -11
  128. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/orderSelectResItem.ts +0 -11
  129. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/orderUpdate.ts +0 -13
  130. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/postAggregate.ts +0 -17
  131. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/postCreate.ts +0 -11
  132. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/postGroup.ts +0 -14
  133. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/postSelectReq.ts +0 -36
  134. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/postSelectRes.ts +0 -11
  135. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/postSelectResItem.tsx +0 -28
  136. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/profile.ts +0 -15
  137. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/roleLazy.ts +0 -17
  138. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/serializerArray.ts +0 -39
  139. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/serializerLazy.ts +0 -31
  140. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/serializerSimple.ts +0 -112
  141. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/user.ts +0 -21
  142. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/userCreate.ts +0 -11
  143. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/userLazy.ts +0 -20
  144. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/dto/userUpdate.ts +0 -9
  145. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/category.ts +0 -16
  146. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/order.ts +0 -21
  147. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/post.ts +0 -21
  148. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/postContent.ts +0 -16
  149. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/product.ts +0 -27
  150. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/role.ts +0 -12
  151. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/roleUser.ts +0 -16
  152. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/test.ts +0 -24
  153. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/entity/user.ts +0 -18
  154. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/index.ts +0 -4
  155. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/lib/index.ts +0 -1
  156. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/lib/serializer.ts +0 -9
  157. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/category.ts +0 -22
  158. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/categoryChain.ts +0 -23
  159. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/order.ts +0 -33
  160. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/orderStats.ts +0 -29
  161. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/post.ts +0 -23
  162. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/postContent.ts +0 -23
  163. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/product.ts +0 -10
  164. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/role.ts +0 -23
  165. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/roleUser.ts +0 -10
  166. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/test.ts +0 -10
  167. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/testDynamicTable.ts +0 -23
  168. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/user.ts +0 -30
  169. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/userStats.ts +0 -22
  170. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/model/userStatsGroup.ts +0 -36
  171. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/aopMethod.ts +0 -38
  172. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/caching.ts +0 -89
  173. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/category.ts +0 -153
  174. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/order.ts +0 -67
  175. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/post.ts +0 -280
  176. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/product.ts +0 -5
  177. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/test.ts +0 -9
  178. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/testApp.ts +0 -13
  179. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/testClass.ts +0 -15
  180. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/testData.ts +0 -71
  181. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/transaction.ts +0 -20
  182. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/service/user.ts +0 -124
  183. package/vona/src/suite-vendor/a-vona/modules/test-vona/src/types/index.ts +0 -6
  184. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/aopMethod.test.ts +0 -21
  185. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/bean.test.ts +0 -16
  186. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/broadcast.test.ts +0 -17
  187. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/cache/cacheMem.test.ts +0 -10
  188. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/cache/cacheRedis.test.ts +0 -10
  189. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/cache/caching.test.ts +0 -61
  190. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/cache/summer.test.ts +0 -10
  191. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/database.test.ts +0 -132
  192. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/dtoAggregate.test.ts +0 -44
  193. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/dtoGet.test.ts +0 -82
  194. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/dtoGroup.test.ts +0 -44
  195. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/dtoLazy.test.ts +0 -53
  196. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/dtoMutate.test.ts +0 -56
  197. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/dtoQuery.test.ts +0 -70
  198. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelAggregate.test.ts +0 -222
  199. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelCache.test.ts +0 -37
  200. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelGeneral.test.ts +0 -18
  201. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelGroup.test.ts +0 -248
  202. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelMagic.test.ts +0 -37
  203. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelRelations.test.ts +0 -215
  204. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelRelationsJoins.test.ts +0 -58
  205. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelRelationsMutate.test.ts +0 -436
  206. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/modelWhere.test.ts +0 -173
  207. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/orm.test.ts +0 -22
  208. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/database/transaction.test.ts +0 -142
  209. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/event.test.ts +0 -14
  210. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/guardPassport.test.ts +0 -48
  211. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/instance.test.ts +0 -35
  212. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/jwt.test.ts +0 -28
  213. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/locale.test.ts +0 -64
  214. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/mail.test.ts +0 -14
  215. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/passport.test.ts +0 -69
  216. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/queue.test.ts +0 -11
  217. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/runtime.test.ts +0 -24
  218. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/serializer.test.ts +0 -82
  219. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/static.test.ts +0 -22
  220. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/tail.test.ts +0 -21
  221. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/upload.test.ts +0 -75
  222. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/utils/cabloyUtils.test.ts +0 -19
  223. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/utils/celjs.test.ts +0 -64
  224. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/utils/mappedTypes.test.ts +0 -73
  225. package/vona/src/suite-vendor/a-vona/modules/test-vona/test/utils/performAction.test.ts +0 -28
  226. package/vona/src/suite-vendor/a-vona/modules/test-vona/tsconfig.build.json +0 -11
  227. package/vona/src/suite-vendor/a-vona/modules/test-vona/tsconfig.json +0 -7
@@ -1,13 +0,0 @@
1
- import { BeanBase } from 'vona';
2
- import { Service } from 'vona-module-a-bean';
3
-
4
- @Service()
5
- export class ServiceTestApp extends BeanBase {
6
- actionSync({ a, b }: any) {
7
- return a + b;
8
- }
9
-
10
- async actionAsync({ a, b }: any) {
11
- return Promise.resolve(a + b);
12
- }
13
- }
@@ -1,15 +0,0 @@
1
- import { BeanBase } from 'vona';
2
- import { Service } from 'vona-module-a-bean';
3
-
4
- class ClassBeanBase extends BeanBase {
5
- actionSync({ a, b }: any) {
6
- return a + b;
7
- }
8
- }
9
-
10
- @Service()
11
- export class ServiceTestClass extends ClassBeanBase {
12
- async actionAsync({ a, b }: any) {
13
- return Promise.resolve(a + b);
14
- }
15
- }
@@ -1,71 +0,0 @@
1
- import type { EntityRole } from 'vona-module-home-user';
2
-
3
- import { BeanBase } from 'vona';
4
- import { Service } from 'vona-module-a-bean';
5
-
6
- import type { EntityPost } from '../entity/post.ts';
7
- import type { EntityPostContent } from '../entity/postContent.ts';
8
- import type { EntityUser } from '../entity/user.ts';
9
-
10
- export interface ITestData {
11
- userTom: EntityUser;
12
- userJimmy: EntityUser;
13
- roleFamily: EntityRole;
14
- roleFriend: EntityRole;
15
- postApple: EntityPost;
16
- postPear: EntityPost;
17
- postContentApple: EntityPostContent;
18
- }
19
-
20
- @Service()
21
- export class ServiceTestData extends BeanBase {
22
- async create(prefix: string): Promise<ITestData> {
23
- const scopeTest = this.scope;
24
- const userTom = await scopeTest.model.user.insert({ name: `${prefix}:tom` });
25
- const userJimmy = await scopeTest.model.user.insert({ name: `${prefix}:jimmy` });
26
- const roleFamily = await scopeTest.model.role.insert({ name: `${prefix}:family` });
27
- const roleFriend = await scopeTest.model.role.insert({ name: `${prefix}:friend` });
28
- await scopeTest.model.roleUser.insertBulk([
29
- { userId: userTom.id, roleId: roleFamily.id },
30
- { userId: userTom.id, roleId: roleFriend.id },
31
- { userId: userJimmy.id, roleId: roleFamily.id },
32
- ]);
33
- const postApple = await scopeTest.model.post.insert({
34
- title: `${prefix}:postApple`,
35
- userId: userTom.id,
36
- });
37
- const postPear = await scopeTest.model.post.insert({
38
- title: `${prefix}:postPear`,
39
- userId: userTom.id,
40
- });
41
- const postContentApple = await scopeTest.model.postContent.insert({
42
- content: `${prefix}:postContentApple`,
43
- postId: postApple.id,
44
- });
45
- // ok
46
- return {
47
- userTom,
48
- userJimmy,
49
- roleFamily,
50
- roleFriend,
51
- postApple,
52
- postPear,
53
- postContentApple,
54
- };
55
- }
56
-
57
- async drop(data: ITestData) {
58
- const { userTom, userJimmy, roleFamily, roleFriend, postApple, postPear, postContentApple } =
59
- data;
60
- const scopeTest = this.scope;
61
- await scopeTest.model.postContent.delete({ id: postContentApple.id });
62
- await scopeTest.model.post.delete({ id: postApple.id });
63
- await scopeTest.model.post.delete({ id: postPear.id });
64
- await scopeTest.model.roleUser.delete({ userId: userTom.id });
65
- await scopeTest.model.roleUser.delete({ userId: userJimmy.id });
66
- await scopeTest.model.role.delete({ id: roleFamily.id });
67
- await scopeTest.model.role.delete({ id: roleFriend.id });
68
- await scopeTest.model.user.delete({ id: userTom.id });
69
- await scopeTest.model.user.delete({ id: userJimmy.id });
70
- }
71
- }
@@ -1,20 +0,0 @@
1
- import { BeanBase } from 'vona';
2
- import { Service } from 'vona-module-a-bean';
3
- import { Core } from 'vona-module-a-core';
4
-
5
- const tableNameFail = '__tempTransactionFail';
6
- const tableNameSuccess = '__tempTransactionSuccess';
7
-
8
- @Service()
9
- export class ServiceTransaction extends BeanBase {
10
- @Core.transaction()
11
- async fail(item: object) {
12
- await this.bean.model.update(`${tableNameFail}` as any, item);
13
- await this.bean.model.update(`${tableNameFail}error` as any, item);
14
- }
15
-
16
- @Core.transaction()
17
- async success(item: object) {
18
- await this.bean.model.update(tableNameSuccess as any, item);
19
- }
20
- }
@@ -1,124 +0,0 @@
1
- import { BeanBase } from 'vona';
2
- import { Service } from 'vona-module-a-bean';
3
- import { $relationDynamic } from 'vona-module-a-orm';
4
-
5
- import { ModelRole } from '../model/role.ts';
6
- import { ModelRoleUser } from '../model/roleUser.ts';
7
-
8
- @Service()
9
- export class ServiceUser extends BeanBase {
10
- async userStats() {
11
- const userStats = await this.scope.model.user.aggregate({
12
- aggrs: {
13
- count: '*',
14
- sum: 'scores',
15
- max: 'age',
16
- min: 'age',
17
- },
18
- where: {
19
- scores: { _gt_: 30 },
20
- },
21
- });
22
- return userStats;
23
- }
24
-
25
- async findUsers() {
26
- const users = await this.scope.model.user.select({
27
- where: {
28
- age: { _gt_: 18 },
29
- },
30
- });
31
- return users;
32
- }
33
-
34
- async relationBelongsToMany() {
35
- // insert: roles
36
- const roles = await this.scope.model.role.insertBulk([
37
- { name: 'role-family' },
38
- { name: 'role-friend' },
39
- ]);
40
- const roleIdFamily = roles[0].id;
41
- const roleIdFriend = roles[1].id;
42
- // insert: user
43
- const userCreate = await this.scope.model.user.insert(
44
- {
45
- name: 'Tom',
46
- roles: [
47
- {
48
- id: roleIdFamily,
49
- },
50
- ],
51
- },
52
- {
53
- with: {
54
- roles: $relationDynamic.belongsToMany(
55
- () => ModelRoleUser,
56
- () => ModelRole,
57
- 'userId',
58
- 'roleId',
59
- ),
60
- },
61
- },
62
- );
63
- // get: user
64
- await this.scope.model.user.get(
65
- {
66
- id: userCreate.id,
67
- },
68
- {
69
- with: {
70
- roles: $relationDynamic.belongsToMany(
71
- () => ModelRoleUser,
72
- () => ModelRole,
73
- 'userId',
74
- 'roleId',
75
- {
76
- columns: ['id', 'name'],
77
- },
78
- ),
79
- },
80
- },
81
- );
82
- // update: user
83
- await this.scope.model.user.update(
84
- {
85
- id: userCreate.id,
86
- roles: [
87
- // delete
88
- { id: roleIdFamily, deleted: true },
89
- // insert
90
- { id: roleIdFriend },
91
- ],
92
- },
93
- {
94
- with: {
95
- roles: $relationDynamic.belongsToMany(
96
- () => ModelRoleUser,
97
- () => ModelRole,
98
- 'userId',
99
- 'roleId',
100
- {
101
- columns: ['id', 'name'],
102
- },
103
- ),
104
- },
105
- },
106
- );
107
- // delete: user
108
- await this.scope.model.user.delete(
109
- {
110
- id: userCreate.id,
111
- },
112
- {
113
- with: {
114
- roles: $relationDynamic.belongsToMany(
115
- () => ModelRoleUser,
116
- () => ModelRole,
117
- 'userId',
118
- 'roleId',
119
- ),
120
- },
121
- },
122
- );
123
- }
124
- }
@@ -1,6 +0,0 @@
1
- declare module 'vona-module-a-orm' {
2
- export interface IDatabaseClientRecord {
3
- // 'user-pg': never;
4
- // 'order-mysql': never;
5
- }
6
- }
@@ -1,21 +0,0 @@
1
- import assert from 'node:assert';
2
- import { describe, it } from 'node:test';
3
- import { app } from 'vona-mock';
4
-
5
- describe('aopMethod.test.ts', () => {
6
- it('action:aopMethod', async () => {
7
- await app.bean.executor.mockCtx(async () => {
8
- // scope
9
- const scopeTest = app.scope('test-vona');
10
- let result = scopeTest.service.aopMethod.testSyncBase();
11
- assert.equal(result, '-+hello+-');
12
- result = scopeTest.service.aopMethod.testSync();
13
- assert.equal(result, '-+hello+-');
14
- result = await scopeTest.service.aopMethod.testAsync();
15
- assert.equal(result, '-+hello+-');
16
- scopeTest.service.aopMethod.name = '-+vona+-';
17
- result = scopeTest.service.aopMethod.name;
18
- assert.equal(result, '-+vona+-');
19
- });
20
- });
21
- });
@@ -1,16 +0,0 @@
1
- import { describe, it } from 'node:test';
2
- import { app } from 'vona-mock';
3
-
4
- describe('bean.test.ts', () => {
5
- it('action:bean', async () => {
6
- await app.bean.executor.mockCtx(async () => {
7
- await app.bean.executor.performAction('get', '/test/vona/bean/test');
8
- });
9
- });
10
-
11
- it('action:service', async () => {
12
- await app.bean.executor.mockCtx(async () => {
13
- await app.bean.executor.performAction('get', '/test/vona/bean/service');
14
- });
15
- });
16
- });
@@ -1,17 +0,0 @@
1
- import assert from 'node:assert';
2
- import { describe, it } from 'node:test';
3
- import { app } from 'vona-mock';
4
-
5
- describe('broadcast.test.ts', () => {
6
- it('action:broadcast', async () => {
7
- await app.bean.executor.mockCtx(async () => {
8
- app.scope('test-vona').broadcast.test.emit(
9
- { message: 'hello' },
10
- {
11
- locale: 'zh-cn',
12
- },
13
- );
14
- assert.equal(app.ctx.instanceName, '');
15
- });
16
- });
17
- });
@@ -1,10 +0,0 @@
1
- import { describe, it } from 'node:test';
2
- import { app } from 'vona-mock';
3
-
4
- describe('cacheMem.test.ts', () => {
5
- it('action:cacheMem', async () => {
6
- await app.bean.executor.mockCtx(async () => {
7
- await app.bean.executor.performAction('post', '/test/vona/cacheMem');
8
- });
9
- });
10
- });
@@ -1,10 +0,0 @@
1
- import { describe, it } from 'node:test';
2
- import { app } from 'vona-mock';
3
-
4
- describe('cacheRedis.test.ts', () => {
5
- it('action:cacheRedis', async () => {
6
- await app.bean.executor.mockCtx(async () => {
7
- await app.bean.executor.performAction('post', '/test/vona/cacheRedis');
8
- });
9
- });
10
- });
@@ -1,61 +0,0 @@
1
- import assert from 'node:assert';
2
- import { describe, it } from 'node:test';
3
- import { app } from 'vona-mock';
4
-
5
- describe('caching.test.ts', () => {
6
- it('action:caching', async () => {
7
- await app.bean.executor.mockCtx(async () => {
8
- const scopeTest = app.scope('test-vona');
9
- // get: cacheKeyFn(string)
10
- const res = await scopeTest.service.caching.get(2);
11
- assert.equal(res.id, 2);
12
- // get: cacheKeyFn(function)
13
- const res2 = await scopeTest.service.caching.get2(2);
14
- assert.equal(res.id, res2.id);
15
- // get: cacheKey(celjs expression)
16
- const res3 = await scopeTest.service.caching.get3(2);
17
- assert.equal(res.id, res3.id);
18
- // get: cacheKey(default)
19
- const res4 = await scopeTest.service.caching.get4(2);
20
- assert.equal(res.id, res4.id);
21
- // get: cacheKey(default) not hit cache
22
- const res5 = await scopeTest.service.caching.get4(5);
23
- assert.equal(res5, undefined);
24
- // set: cacheKeyFn/cacheValueFn
25
- await scopeTest.service.caching.set(2, { ...res, name: `${res.name}!` });
26
- // get again
27
- const res6 = await scopeTest.service.caching.get4(2);
28
- assert.equal(res.id, res6.id);
29
- assert.equal(`${res.name}!`, res6.name);
30
- // set: cacheKey/cacheValue
31
- await scopeTest.service.caching.set2(2, { ...res, name: `${res.name}!` });
32
- // get again
33
- const res7 = await scopeTest.service.caching.get4(2);
34
- assert.equal(res.id, res7.id);
35
- assert.equal(`${res.name}!`, res7.name);
36
- // set: no cacheValue/cacheValueFn
37
- await scopeTest.service.caching.set3(2, { ...res, name: `${res.name}!` });
38
- // get again
39
- const res8 = await scopeTest.service.caching.get4(2);
40
- assert.equal(res.id, res8.id);
41
- assert.equal(`${res.name}!`, res8.name);
42
- // del
43
- await scopeTest.service.caching.del(2);
44
- // get again
45
- const res9 = await scopeTest.service.caching.get4(2);
46
- assert.equal(res9, undefined);
47
- // cache again
48
- const res10_1 = await scopeTest.service.caching.get(2);
49
- assert.equal(res10_1, undefined);
50
- await scopeTest.service.caching.del(2);
51
- const res10_2 = await scopeTest.service.caching.get(2);
52
- assert.equal(res10_2.id, 2);
53
- const res11 = await scopeTest.service.caching.get4(2);
54
- assert.equal(res11.id, 2);
55
- // clear
56
- await scopeTest.service.caching.clear();
57
- const res12 = await scopeTest.service.caching.get4(2);
58
- assert.equal(res12, undefined);
59
- });
60
- });
61
- });
@@ -1,10 +0,0 @@
1
- import { describe, it } from 'node:test';
2
- import { app } from 'vona-mock';
3
-
4
- describe('summer.test.ts', () => {
5
- it('action:summer', async () => {
6
- await app.bean.executor.mockCtx(async () => {
7
- await app.bean.executor.performAction('post', '/test/vona/summer');
8
- });
9
- });
10
- });
@@ -1,132 +0,0 @@
1
- import { catchError } from '@cabloy/utils';
2
- import { DateTime } from 'luxon';
3
- import assert from 'node:assert';
4
- import { describe, it } from 'node:test';
5
- import { app } from 'vona-mock';
6
-
7
- describe('database.test.ts', () => {
8
- it('action:database:switchClient', async () => {
9
- await app.bean.executor.mockCtx(async () => {
10
- const scopeDatabase = app.scope('a-orm');
11
- const defaultClientName = scopeDatabase.service.database.getDefaultClientName();
12
- // current
13
- assert.equal(app.ctx.db.clientName, defaultClientName);
14
- // switch
15
- const clientNames = Object.keys(app.config.database.clients);
16
- const clientName2 = clientNames.find(item => item !== defaultClientName);
17
- await app.bean.database.switchDb(
18
- async () => {
19
- assert.equal(app.ctx.db.clientName, clientName2);
20
- },
21
- { clientName: clientName2 as any },
22
- );
23
- // restore
24
- assert.equal(app.ctx.db.clientName, defaultClientName);
25
- });
26
- });
27
- it('action:model:clientName', async () => {
28
- await app.bean.executor.mockCtx(async () => {
29
- // scope
30
- const scopeTest = app.scope('test-vona');
31
- const modelTest = scopeTest.model.test;
32
- assert.equal(modelTest.options.client, 'default');
33
- const modelTest2 = scopeTest.model.test;
34
- assert.equal(modelTest, modelTest2);
35
- });
36
- });
37
- it('action:model:clientNameDynamic:transaction:fail', async () => {
38
- await app.bean.executor.mockCtx(async () => {
39
- // scope
40
- const scopeTest = app.scope('test-vona');
41
- const entityTest = await scopeTest.model.test.insert({ title: 'clientNameDynamic:fail' });
42
- assert.equal(entityTest.title, 'clientNameDynamic:fail');
43
- await catchError(async () => {
44
- const db = app.bean.database.getDb({ clientName: 'default' });
45
- await db.transaction.begin(async () => {
46
- const modelTest = scopeTest.model.test.newInstance(db);
47
- assert.equal(modelTest.options.client, 'default');
48
- await modelTest.update({ id: entityTest.id, title: 'clientNameDynamic:fail_1' });
49
- throw new Error('rollback');
50
- });
51
- });
52
- const entityTest2 = await scopeTest.model.test.get({ id: entityTest.id });
53
- assert.equal(entityTest2?.title, 'clientNameDynamic:fail');
54
- // delete
55
- await scopeTest.model.test.delete({ id: entityTest.id });
56
- });
57
- });
58
- it('action:model:clientNameDynamic:transaction:success', async () => {
59
- await app.bean.executor.mockCtx(async () => {
60
- // scope
61
- const scopeTest = app.scope('test-vona');
62
- const entityTest = await scopeTest.model.test.insert({ title: 'clientNameDynamic:success' });
63
- assert.equal(entityTest.title, 'clientNameDynamic:success');
64
- const db = app.bean.database.getDb({ clientName: 'default' });
65
- await db.transaction.begin(async () => {
66
- const modelTest = scopeTest.model.test.newInstance(db);
67
- assert.equal(modelTest.options.client, 'default');
68
- await modelTest.update({ id: entityTest.id, title: 'clientNameDynamic:success_1' });
69
- });
70
- const entityTest2 = await scopeTest.model.test.get({ id: entityTest.id });
71
- assert.equal(entityTest2?.title, 'clientNameDynamic:success_1');
72
- // delete
73
- await scopeTest.model.test.delete({ id: entityTest.id });
74
- });
75
- });
76
- it('action:database:transaction:compensate', async () => {
77
- await app.bean.executor.mockCtx(async () => {
78
- // scope
79
- const scopeTest = app.scope('test-vona');
80
- const entityTest = await scopeTest.model.test.insert({
81
- title: 'transaction:compensate:fail',
82
- });
83
- assert.equal(entityTest.title, 'transaction:compensate:fail');
84
- await catchError(async () => {
85
- const db = app.bean.database.getDb({ clientName: 'default' });
86
- await db.transaction.begin(async () => {
87
- const modelTest = scopeTest.model.test.newInstance(db);
88
- assert.equal(modelTest.options.client, 'default');
89
- await modelTest.update({ id: entityTest.id, title: 'transaction:compensate:fail_1' });
90
- // let cache take effect
91
- await modelTest.get({ id: entityTest.id });
92
- throw new Error('rollback');
93
- });
94
- });
95
- const entityTest2 = await scopeTest.model.test.get({ id: entityTest.id });
96
- assert.equal(entityTest2?.title, 'transaction:compensate:fail');
97
- // delete
98
- await scopeTest.model.test.delete({ id: entityTest.id });
99
- });
100
- });
101
- it('action:model:dynamicTableName', async () => {
102
- await app.bean.executor.mockCtx(async () => {
103
- // scope
104
- const scopeTest = app.scope('test-vona');
105
- const entityTest = scopeTest.entity.test;
106
- const modelTest = scopeTest.model.testDynamicTable;
107
- // tableName
108
- const tableName = `${entityTest.$table}_${DateTime.now().toFormat('yyyyMMdd')}`;
109
- // create table
110
- await app.bean.model.createTable(tableName, table => {
111
- table.basicFields();
112
- table.string(entityTest.title, 255);
113
- table.string(entityTest.description, 255);
114
- });
115
- // insert
116
- const item = await modelTest.insert({ title: 'title', description: 'description' });
117
- // get
118
- const item2 = await modelTest.get({ id: item.id });
119
- assert.equal(item2?.id, item.id);
120
- // get by tableName
121
- const item3 = await app.bean.model.get(tableName as any, { id: item.id });
122
- assert.equal(item3.id, item.id);
123
- // delete
124
- await modelTest.delete({ id: item.id });
125
- // get by tableName
126
- const item4 = await app.bean.model.get(tableName as any, { id: item.id });
127
- assert.equal(item4, undefined);
128
- // drop table
129
- await app.bean.model.dropTable(tableName);
130
- });
131
- });
132
- });
@@ -1,44 +0,0 @@
1
- import type { TypeDecoratorRules } from 'vona-module-a-openapiutils';
2
- import type z from 'zod';
3
-
4
- import assert from 'node:assert';
5
- import { describe, it } from 'node:test';
6
- import { app } from 'vona-mock';
7
- import { getTargetDecoratorRules } from 'vona-module-a-openapiutils';
8
- import { $Dto } from 'vona-module-a-orm';
9
- import { ModelUserStats } from 'vona-module-test-vona';
10
-
11
- describe('dtoAggregate.test.ts', () => {
12
- it('action:dtoAggregate', async () => {
13
- await app.bean.executor.mockCtx(async () => {
14
- // aggr
15
- const DtoUserAggr = $Dto.aggregate('test-vona:user', {
16
- count: ['*', 'age'],
17
- sum: ['age'],
18
- avg: 'age',
19
- // max: 'age',
20
- // min: 'age',
21
- });
22
- let rules: TypeDecoratorRules;
23
- rules = getTargetDecoratorRules(DtoUserAggr.prototype);
24
- assert.equal(rules.count_all?.type === 'optional', true);
25
- const rule_count_all = (rules.count_all as z.ZodOptional)?.def.innerType as z.ZodString;
26
- assert.equal(rule_count_all.type === 'string', true);
27
- assert.equal(rules.count_age?.type === 'optional', true);
28
- assert.equal(rules.sum_age?.type === 'optional', true);
29
- assert.equal(rules.avg_age?.type === 'optional', true);
30
- assert.equal(rules.max_age, undefined);
31
- assert.equal(rules.min_age, undefined);
32
- // aggr: usersStats: posts: autoload
33
- const DtoUserStats = $Dto.get(() => ModelUserStats, {
34
- columns: 'name',
35
- include: { roles: true },
36
- });
37
- rules = getTargetDecoratorRules(DtoUserStats.prototype);
38
- assert.equal(rules.name?.type === 'string', true);
39
- assert.equal(rules.iid, undefined);
40
- assert.equal(rules.posts?.type === 'optional', true);
41
- assert.equal(rules.roles?.type === 'optional', true);
42
- });
43
- });
44
- });
@@ -1,82 +0,0 @@
1
- import type { TypeDecoratorRules } from 'vona-module-a-openapiutils';
2
-
3
- import assert from 'node:assert';
4
- import { describe, it } from 'node:test';
5
- import { app } from 'vona-mock';
6
- import { getTargetDecoratorRules } from 'vona-module-a-openapiutils';
7
- import { $Dto, $relationDynamic } from 'vona-module-a-orm';
8
- import {
9
- ModelPost,
10
- ModelPostContent,
11
- ModelRole,
12
- ModelRoleUser,
13
- ModelUser,
14
- } from 'vona-module-test-vona';
15
-
16
- describe('dtoGet.test.ts', () => {
17
- it('action:dtoGet', async () => {
18
- await app.bean.executor.mockCtx(async () => {
19
- const DtoPostNew = $Dto.get(ModelPost, {
20
- columns: ['id', 'title', 'userId'],
21
- include: {
22
- postContent: {
23
- columns: ['id', 'content'],
24
- include: {
25
- post: { include: { user: { columns: ['id'] } } },
26
- },
27
- with: {
28
- post3: $relationDynamic.belongsTo(
29
- () => ModelPostContent,
30
- () => ModelPost,
31
- 'postId',
32
- {
33
- include: {
34
- postContent: true,
35
- },
36
- },
37
- ),
38
- },
39
- },
40
- },
41
- with: {
42
- user3: $relationDynamic.belongsTo(ModelPost, () => ModelUser, 'userId', {
43
- include: { posts: true },
44
- with: {
45
- roles: $relationDynamic.belongsToMany(
46
- () => ModelRoleUser,
47
- () => ModelRole,
48
- 'userId',
49
- 'roleId',
50
- ),
51
- },
52
- columns: ['id', 'name'],
53
- }),
54
- },
55
- });
56
- const rules: TypeDecoratorRules = getTargetDecoratorRules(DtoPostNew.prototype);
57
- assert.equal(rules.id?.type === 'pipe', true);
58
- assert.equal(rules.title?.type === 'string', true);
59
- assert.equal(rules.userId?.type === 'pipe', true);
60
- assert.equal(rules.iid, undefined);
61
- assert.equal(rules.postContent?.type === 'optional', true);
62
- assert.equal(rules.user?.type === 'optional', true);
63
- assert.equal(rules.user3?.type === 'optional', true);
64
- });
65
- });
66
- it('action:dtoGet:categoryTree', async () => {
67
- await app.bean.executor.mockCtx(async () => {
68
- const DtoCategoryTree = $Dto.get('test-vona:category', {
69
- columns: ['id', 'name'],
70
- include: { children: { columns: ['id'] } },
71
- });
72
- const rules: TypeDecoratorRules = getTargetDecoratorRules(DtoCategoryTree.prototype);
73
- assert.equal(rules.children?.type === 'pipe', true);
74
- assert.equal(rules.iid, undefined);
75
- const DtoCategoryChain = $Dto.get('test-vona:categoryChain', {
76
- columns: ['id', 'name', 'categoryIdParent'],
77
- });
78
- const _apiJson = await app.bean.openapi.generateJsonOfClass(DtoCategoryChain);
79
- // console.log(JSON.stringify(apiJson.components));
80
- });
81
- });
82
- });