cabloy 5.1.65 → 5.1.67

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 (340) hide show
  1. package/.claude/skills/cabloy-resource-field-update/SKILL.md +6 -0
  2. package/CHANGELOG.md +55 -0
  3. package/cabloy-docs/.vitepress/config.mjs +1 -1
  4. package/cabloy-docs/backend/crud-workflow.md +33 -0
  5. package/cabloy-docs/backend/master-detail-workflow.md +149 -0
  6. package/cabloy-docs/frontend/bean-scene-authoring.md +1 -1
  7. package/cabloy-docs/frontend/cli.md +12 -1
  8. package/cabloy-docs/frontend/command-scene-authoring.md +12 -1
  9. package/cabloy-docs/frontend/component-guide.md +10 -0
  10. package/cabloy-docs/frontend/permission-formscene-action-visibility-guide.md +69 -7
  11. package/cabloy-docs/frontend/table-cell-cookbook.md +10 -0
  12. package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions.md +83 -2
  13. package/cabloy-docs/reference/bean-scene-boilerplates.md +9 -4
  14. package/package.json +1 -1
  15. package/vona/packages-cli/cabloy-cli/package.json +1 -1
  16. package/vona/packages-cli/cabloy-cli/src/lib/local.helper.ts +38 -0
  17. package/vona/packages-cli/cli/package.json +1 -1
  18. package/vona/packages-cli/cli-set-api/cli/templates/create/module/boilerplate/_package.json +1 -1
  19. package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/<%=argv.detailDtoBaseName%>.tsx_ +18 -0
  20. package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/<%=argv.detailDtoMutateName%>.tsx_ +17 -0
  21. package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/<%=argv.detailDtoResItemName%>.tsx_ +60 -0
  22. package/vona/packages-cli/cli-set-api/cli/templates/tools/masterDetail/boilerplate/dto/<%=argv.detailDtoViewName%>.tsx_ +17 -0
  23. package/vona/packages-cli/cli-set-api/package.json +2 -2
  24. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.create.bean.ts +2 -6
  25. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.create.module.ts +3 -6
  26. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.create.suite.ts +1 -1
  27. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.create.test.ts +2 -6
  28. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.asset.ts +2 -6
  29. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.config.ts +2 -6
  30. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.constant.ts +2 -6
  31. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.error.ts +2 -6
  32. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.lib.ts +2 -6
  33. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.locale.ts +2 -6
  34. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.main.ts +2 -6
  35. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.monkey.ts +2 -6
  36. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.static.ts +2 -6
  37. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.init.types.ts +2 -6
  38. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.crud.ts +2 -6
  39. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.crudBasic.ts +2 -6
  40. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.crudStart.ts +2 -6
  41. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.masterDetail.ts +699 -0
  42. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.tools.metadata.ts +1 -2
  43. package/vona/packages-cli/cli-set-api/src/lib/beans.ts +2 -0
  44. package/vona/packages-cli/cli-set-api/src/lib/command/tools.masterDetail.ts +78 -0
  45. package/vona/packages-cli/cli-set-api/src/lib/commands.ts +2 -0
  46. package/vona/packages-vona/vona/package.json +1 -1
  47. package/vona/packages-vona/vona-core/package.json +1 -1
  48. package/vona/packages-vona/vona-core/src/lib/mappedClass/type.ts +1 -0
  49. package/vona/packages-vona/vona-core/src/lib/mappedClass/utils.ts +36 -14
  50. package/vona/packages-vona/vona-mock/package.json +1 -1
  51. package/vona/pnpm-lock.yaml +35 -11
  52. package/vona/src/suite/a-demo/modules/demo-basic/package.json +1 -1
  53. package/vona/src/suite/a-home/modules/home-base/package.json +1 -1
  54. package/vona/src/suite/a-home/modules/home-index/package.json +1 -1
  55. package/vona/src/suite/a-home/modules/home-user/package.json +1 -1
  56. package/vona/src/suite/a-training/modules/training-record/package.json +1 -1
  57. package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +232 -3
  58. package/vona/src/suite/a-training/modules/training-record/src/bean/ssrMenu.record.ts +29 -0
  59. package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +9 -1
  60. package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +9 -1
  61. package/vona/src/suite/a-training/modules/training-record/src/controller/record.ts +59 -0
  62. package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectBase.tsx +18 -0
  63. package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectMutate.tsx +17 -0
  64. package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectResItem.tsx +60 -0
  65. package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectView.tsx +17 -0
  66. package/vona/src/suite/a-training/modules/training-record/src/dto/recordCreate.tsx +45 -0
  67. package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectReq.tsx +38 -0
  68. package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectRes.tsx +11 -0
  69. package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +39 -0
  70. package/vona/src/suite/a-training/modules/training-record/src/dto/recordUpdate.tsx +45 -0
  71. package/vona/src/suite/a-training/modules/training-record/src/dto/recordView.tsx +42 -0
  72. package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +23 -6
  73. package/vona/src/suite/a-training/modules/training-record/src/model/record.ts +15 -2
  74. package/vona/src/suite/a-training/modules/training-record/src/service/record.ts +50 -0
  75. package/vona/src/suite/a-training/modules/training-record/test/record.test.ts +138 -0
  76. package/vona/src/suite/a-training/modules/training-recordsubject/package.json +53 -0
  77. package/vona/src/suite/a-training/modules/training-recordsubject/src/.metadata/index.ts +198 -0
  78. package/vona/src/suite/a-training/modules/training-recordsubject/src/.metadata/locales.ts +18 -0
  79. package/vona/src/suite/a-training/modules/training-recordsubject/src/.metadata/this.ts +2 -0
  80. package/vona/src/suite/a-training/modules/training-recordsubject/src/bean/meta.index.ts +12 -0
  81. package/vona/src/suite/a-training/modules/training-recordsubject/src/bean/meta.version.ts +21 -0
  82. package/vona/src/suite/a-training/modules/training-recordsubject/src/config/locale/en-us.ts +9 -0
  83. package/vona/src/suite/a-training/modules/training-recordsubject/src/config/locale/zh-cn.ts +9 -0
  84. package/vona/src/suite/a-training/modules/training-recordsubject/src/entity/subject.tsx +42 -0
  85. package/vona/src/suite/a-training/modules/training-recordsubject/src/index.ts +2 -0
  86. package/vona/src/suite/a-training/modules/training-recordsubject/src/model/subject.ts +10 -0
  87. package/vona/src/suite/a-training/modules/training-recordsubject/tsconfig.build.json +11 -0
  88. package/vona/src/suite/a-training/modules/training-recordsubject/tsconfig.json +7 -0
  89. package/vona/src/suite/a-training/modules/training-student/package.json +1 -1
  90. package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +8 -1
  91. package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +8 -1
  92. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +17 -2
  93. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordMutate.tsx +12 -17
  94. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordResItem.tsx +26 -5
  95. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordView.tsx +12 -14
  96. package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +6 -4
  97. package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectReq.tsx +3 -6
  98. package/vona/src/suite/a-training/modules/training-student/src/dto/studentSummary.tsx +1 -1
  99. package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +14 -1
  100. package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +14 -1
  101. package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +2 -4
  102. package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +22 -5
  103. package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +69 -15
  104. package/vona/src/suite/a-training/package.json +1 -0
  105. package/vona/src/suite/a-training/tsconfig.json +3 -0
  106. package/vona/src/suite/cabloy-basic/modules/basic-siteadmin/package.json +1 -1
  107. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/package.json +1 -1
  108. package/vona/src/suite-vendor/a-auth/modules/a-auth/package.json +2 -2
  109. package/vona/src/suite-vendor/a-auth/modules/auth-oauth/package.json +2 -2
  110. package/vona/src/suite-vendor/a-auth/modules/auth-simple/package.json +2 -2
  111. package/vona/src/suite-vendor/a-auth/package.json +2 -2
  112. package/vona/src/suite-vendor/a-cabloy/modules/a-cabloy/package.json +2 -2
  113. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +2 -2
  114. package/vona/src/suite-vendor/a-cabloy/modules/a-datasource/package.json +2 -2
  115. package/vona/src/suite-vendor/a-cabloy/modules/a-socket/package.json +2 -2
  116. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +2 -2
  117. package/vona/src/suite-vendor/a-cabloy/modules/a-ssrhmr/package.json +2 -2
  118. package/vona/src/suite-vendor/a-cabloy/modules/a-status/package.json +2 -2
  119. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  120. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/package.json +2 -2
  121. package/vona/src/suite-vendor/a-captcha/modules/captcha-simple/package.json +2 -2
  122. package/vona/src/suite-vendor/a-captcha/package.json +1 -1
  123. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/package.json +2 -2
  124. package/vona/src/suite-vendor/a-paypal/package.json +1 -1
  125. package/vona/src/suite-vendor/a-vona/modules/a-aspect/package.json +2 -2
  126. package/vona/src/suite-vendor/a-vona/modules/a-aspectutils/package.json +2 -2
  127. package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +2 -2
  128. package/vona/src/suite-vendor/a-vona/modules/a-beanmutate/package.json +2 -2
  129. package/vona/src/suite-vendor/a-vona/modules/a-body/package.json +2 -2
  130. package/vona/src/suite-vendor/a-vona/modules/a-broadcast/package.json +2 -2
  131. package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +2 -2
  132. package/vona/src/suite-vendor/a-vona/modules/a-caching/package.json +2 -2
  133. package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +2 -2
  134. package/vona/src/suite-vendor/a-vona/modules/a-election/package.json +2 -2
  135. package/vona/src/suite-vendor/a-vona/modules/a-error/package.json +2 -2
  136. package/vona/src/suite-vendor/a-vona/modules/a-event/package.json +2 -2
  137. package/vona/src/suite-vendor/a-vona/modules/a-executor/package.json +2 -2
  138. package/vona/src/suite-vendor/a-vona/modules/a-hmr/package.json +2 -2
  139. package/vona/src/suite-vendor/a-vona/modules/a-hmrbase/package.json +2 -2
  140. package/vona/src/suite-vendor/a-vona/modules/a-index/package.json +2 -2
  141. package/vona/src/suite-vendor/a-vona/modules/a-instance/package.json +2 -2
  142. package/vona/src/suite-vendor/a-vona/modules/a-jwt/package.json +2 -2
  143. package/vona/src/suite-vendor/a-vona/modules/a-locale/package.json +2 -2
  144. package/vona/src/suite-vendor/a-vona/modules/a-logger/package.json +2 -2
  145. package/vona/src/suite-vendor/a-vona/modules/a-mail/package.json +2 -2
  146. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +2 -2
  147. package/vona/src/suite-vendor/a-vona/modules/a-menu/package.json +2 -2
  148. package/vona/src/suite-vendor/a-vona/modules/a-meta/package.json +2 -2
  149. package/vona/src/suite-vendor/a-vona/modules/a-onion/package.json +2 -2
  150. package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +2 -2
  151. package/vona/src/suite-vendor/a-vona/modules/a-openapischema/package.json +2 -2
  152. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/package.json +2 -2
  153. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/const/decorator.ts +3 -1
  154. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/schema/makeSchemaLikes.ts +21 -17
  155. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/utils.ts +44 -2
  156. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +2 -2
  157. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +6 -2
  158. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +13 -4
  159. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/utils.ts +1 -1
  160. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/relations_.ts +37 -16
  161. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +2 -2
  162. package/vona/src/suite-vendor/a-vona/modules/a-ormutils/package.json +2 -2
  163. package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +2 -2
  164. package/vona/src/suite-vendor/a-vona/modules/a-play/package.json +2 -2
  165. package/vona/src/suite-vendor/a-vona/modules/a-printtip/package.json +2 -2
  166. package/vona/src/suite-vendor/a-vona/modules/a-queue/package.json +2 -2
  167. package/vona/src/suite-vendor/a-vona/modules/a-redis/package.json +2 -2
  168. package/vona/src/suite-vendor/a-vona/modules/a-redlock/package.json +2 -2
  169. package/vona/src/suite-vendor/a-vona/modules/a-runtime/package.json +2 -2
  170. package/vona/src/suite-vendor/a-vona/modules/a-schedule/package.json +2 -2
  171. package/vona/src/suite-vendor/a-vona/modules/a-security/package.json +2 -2
  172. package/vona/src/suite-vendor/a-vona/modules/a-serialization/package.json +2 -2
  173. package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +2 -2
  174. package/vona/src/suite-vendor/a-vona/modules/a-static/package.json +2 -2
  175. package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +2 -2
  176. package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +2 -2
  177. package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +2 -2
  178. package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +2 -2
  179. package/vona/src/suite-vendor/a-vona/modules/a-validation/package.json +2 -2
  180. package/vona/src/suite-vendor/a-vona/modules/a-version/package.json +2 -2
  181. package/vona/src/suite-vendor/a-vona/modules/a-vona/package.json +2 -2
  182. package/vona/src/suite-vendor/a-vona/modules/a-web/package.json +2 -2
  183. package/vona/src/suite-vendor/a-vona/modules/a-web/src/lib/decorator/bean.ts +26 -5
  184. package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +2 -2
  185. package/vona/src/suite-vendor/a-vona/modules/a-zod/package.json +2 -2
  186. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  187. package/zova/packages-cli/cli/package.json +3 -3
  188. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateDetailsActionBulk/controller.tsx_ +31 -0
  189. package/zova/packages-cli/cli-set-front/cli/templates/create/module/boilerplate/_package.json +1 -1
  190. package/zova/packages-cli/cli-set-front/cli/templates/rest/component.ts +21 -0
  191. package/zova/packages-cli/cli-set-front/cli/templates/rest/render.ts +4 -0
  192. package/zova/packages-cli/cli-set-front/package.json +3 -3
  193. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.create.bean.ts +2 -6
  194. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.create.mock.ts +2 -6
  195. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.create.module.ts +3 -6
  196. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.create.suite.ts +1 -1
  197. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.asset.ts +2 -6
  198. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.config.ts +2 -6
  199. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.constant.ts +2 -6
  200. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.error.ts +2 -6
  201. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.icon.ts +2 -6
  202. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.lib.ts +2 -6
  203. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.locale.ts +2 -6
  204. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.main.ts +2 -6
  205. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.mainSys.ts +2 -6
  206. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.monkey.ts +2 -6
  207. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.monkeySys.ts +2 -6
  208. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.init.types.ts +2 -6
  209. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.config.ts +1 -4
  210. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.generate.ts +2 -2
  211. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.anotherRender.ts +2 -6
  212. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.anotherStyle.ts +2 -6
  213. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.componentEmits.ts +2 -6
  214. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.componentGeneric.ts +2 -6
  215. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.componentModel.ts +2 -6
  216. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.componentProps.ts +2 -6
  217. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.componentSlots.ts +2 -6
  218. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.firstRender.ts +2 -6
  219. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.firstStyle.ts +2 -6
  220. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.pageParams.ts +2 -6
  221. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.pageQuery.ts +2 -6
  222. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.refactor.renameComponent.ts +2 -6
  223. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.tools.metadata.ts +1 -2
  224. package/zova/packages-cli/cli-set-front/src/lib/common/cliCreateComponent.ts +2 -6
  225. package/zova/packages-cli/cli-set-front/src/lib/common/cliCreatePage.ts +2 -6
  226. package/zova/packages-zova/zova/package.json +2 -2
  227. package/zova/pnpm-lock.yaml +695 -791
  228. package/zova/src/suite/a-demo/modules/demo-basic/package.json +1 -1
  229. package/zova/src/suite/a-demo/modules/demo-todo/package.json +1 -1
  230. package/zova/src/suite/a-devui/modules/devui-adapter/package.json +1 -1
  231. package/zova/src/suite/a-home/modules/home-api/package.json +1 -1
  232. package/zova/src/suite/a-home/modules/home-base/package.json +1 -1
  233. package/zova/src/suite/a-home/modules/home-icon/package.json +1 -1
  234. package/zova/src/suite/a-home/modules/home-indexadmin/package.json +1 -1
  235. package/zova/src/suite/a-home/modules/home-indexweb/package.json +1 -1
  236. package/zova/src/suite/a-home/modules/home-layoutadmin/package.json +1 -1
  237. package/zova/src/suite/a-home/modules/home-layoutempty/package.json +1 -1
  238. package/zova/src/suite/a-home/modules/home-layoutweb/package.json +1 -1
  239. package/zova/src/suite/a-home/modules/home-login/package.json +1 -1
  240. package/zova/src/suite/a-home/modules/home-passport/package.json +1 -1
  241. package/zova/src/suite/a-home/modules/home-theme/package.json +1 -1
  242. package/zova/src/suite/a-training/modules/training-student/package.json +3 -2
  243. package/zova/src/suite/cabloy-basic/modules/basic-adapter/package.json +1 -1
  244. package/zova/src/suite/cabloy-basic/modules/basic-app/package.json +1 -1
  245. package/zova/src/suite/cabloy-basic/modules/basic-app/src/bean/behavior.appModal.tsx +131 -13
  246. package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/config.ts +15 -0
  247. package/zova/src/suite/cabloy-basic/modules/basic-app/src/service/appModal.ts +23 -5
  248. package/zova/src/suite/cabloy-basic/modules/basic-app/src/types/appModal.ts +30 -4
  249. package/zova/src/suite/cabloy-basic/modules/basic-captcha/package.json +1 -1
  250. package/zova/src/suite/cabloy-basic/modules/basic-commands/package.json +1 -1
  251. package/zova/src/suite/cabloy-basic/modules/basic-commandssync/package.json +1 -1
  252. package/zova/src/suite/cabloy-basic/modules/basic-currency/package.json +1 -1
  253. package/zova/src/suite/cabloy-basic/modules/basic-date/package.json +1 -1
  254. package/zova/src/suite/cabloy-basic/modules/basic-details/package.json +7 -2
  255. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/blockForm.ts +31 -0
  256. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/index.ts +149 -2
  257. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/command.delete.tsx +47 -0
  258. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionDelete.tsx +52 -0
  259. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionOperationsRow.tsx +44 -6
  260. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionUpdate.tsx +73 -0
  261. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionView.tsx +64 -0
  262. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.lineNumber.tsx +30 -0
  263. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/actionCreate/controller.tsx +29 -5
  264. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockDetails/controller.tsx +28 -12
  265. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockForm/controller.tsx +53 -0
  266. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockTable/controller.tsx +7 -2
  267. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockToolbarBulk/controller.tsx +3 -1
  268. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/formFieldDetails/controller.tsx +24 -12
  269. package/zova/src/suite/cabloy-basic/modules/basic-details/src/config/locale/en-us.ts +4 -0
  270. package/zova/src/suite/cabloy-basic/modules/basic-details/src/config/locale/zh-cn.ts +4 -0
  271. package/zova/src/suite/cabloy-basic/modules/basic-details/src/index.ts +1 -0
  272. package/zova/src/suite/cabloy-basic/modules/basic-details/src/lib/index.ts +1 -0
  273. package/zova/src/suite/cabloy-basic/modules/basic-details/src/lib/utils.ts +12 -0
  274. package/zova/src/suite/cabloy-basic/modules/basic-details/src/service/detail.tsx +172 -0
  275. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/detail.ts +18 -0
  276. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/details.ts +11 -0
  277. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/dialogForm.ts +22 -0
  278. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/index.ts +2 -0
  279. package/zova/src/suite/cabloy-basic/modules/basic-form/package.json +1 -1
  280. package/zova/src/suite/cabloy-basic/modules/basic-input/package.json +1 -1
  281. package/zova/src/suite/cabloy-basic/modules/basic-page/package.json +1 -1
  282. package/zova/src/suite/cabloy-basic/modules/basic-pageentry/package.json +1 -1
  283. package/zova/src/suite/cabloy-basic/modules/basic-resource/package.json +52 -0
  284. package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/component/formFieldResourcePicker.ts +31 -0
  285. package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/index.ts +103 -0
  286. package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/this.ts +2 -0
  287. package/zova/src/suite/cabloy-basic/modules/basic-resource/src/bean/tableCell.resourcePicker.tsx +46 -0
  288. package/zova/src/suite/cabloy-basic/modules/basic-resource/src/component/formFieldResourcePicker/controller.tsx +157 -0
  289. package/zova/src/suite/cabloy-basic/modules/basic-resource/src/index.ts +1 -0
  290. package/zova/src/suite/cabloy-basic/modules/basic-resource/tsconfig.build.json +13 -0
  291. package/zova/src/suite/cabloy-basic/modules/basic-resource/tsconfig.json +5 -0
  292. package/zova/src/suite/cabloy-basic/modules/basic-select/package.json +1 -1
  293. package/zova/src/suite/cabloy-basic/modules/basic-table/package.json +1 -1
  294. package/zova/src/suite/cabloy-basic/modules/basic-text/package.json +1 -1
  295. package/zova/src/suite/cabloy-basic/package.json +1 -0
  296. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +2 -2
  297. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/page/entry/controller.tsx +1 -2
  298. package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
  299. package/zova/src/suite-vendor/a-zova/modules/a-api/package.json +2 -2
  300. package/zova/src/suite-vendor/a-zova/modules/a-app/package.json +2 -2
  301. package/zova/src/suite-vendor/a-zova/modules/a-bean/package.json +2 -2
  302. package/zova/src/suite-vendor/a-zova/modules/a-behavior/package.json +2 -2
  303. package/zova/src/suite-vendor/a-zova/modules/a-behaviors/package.json +2 -2
  304. package/zova/src/suite-vendor/a-zova/modules/a-boundary/package.json +2 -2
  305. package/zova/src/suite-vendor/a-zova/modules/a-command/cli/command/boilerplate/{{sceneName}}.{{beanName}}.tsx_ +6 -1
  306. package/zova/src/suite-vendor/a-zova/modules/a-command/cli/commandBulk/boilerplate/{{sceneName}}.{{beanName}}.tsx_ +6 -1
  307. package/zova/src/suite-vendor/a-zova/modules/a-command/cli/commandDetailsRow/boilerplate/{{sceneName}}.{{beanName}}.tsx_ +20 -0
  308. package/zova/src/suite-vendor/a-zova/modules/a-command/cli/commandRow/boilerplate/{{sceneName}}.{{beanName}}.tsx_ +6 -1
  309. package/zova/src/suite-vendor/a-zova/modules/a-command/package.json +4 -3
  310. package/zova/src/suite-vendor/a-zova/modules/a-command/src/types/command.ts +2 -0
  311. package/zova/src/suite-vendor/a-zova/modules/a-fetch/package.json +2 -2
  312. package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +2 -2
  313. package/zova/src/suite-vendor/a-zova/modules/a-form/src/component/form/controller.tsx +1 -0
  314. package/zova/src/suite-vendor/a-zova/modules/a-icon/package.json +2 -2
  315. package/zova/src/suite-vendor/a-zova/modules/a-interceptor/package.json +2 -2
  316. package/zova/src/suite-vendor/a-zova/modules/a-logger/package.json +2 -2
  317. package/zova/src/suite-vendor/a-zova/modules/a-meta/package.json +2 -2
  318. package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +2 -2
  319. package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useQuery.ts +2 -1
  320. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +3 -3
  321. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/lib/schema.ts +20 -4
  322. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/model/sdk.ts +4 -0
  323. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/action.ts +2 -1
  324. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/detail.ts +10 -0
  325. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/details.ts +4 -1
  326. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/index.ts +1 -0
  327. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/rest.ts +2 -0
  328. package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +2 -2
  329. package/zova/src/suite-vendor/a-zova/modules/a-routerstack/package.json +2 -2
  330. package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +2 -2
  331. package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +2 -2
  332. package/zova/src/suite-vendor/a-zova/modules/a-ssrhmr/package.json +2 -2
  333. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +2 -2
  334. package/zova/src/suite-vendor/a-zova/modules/a-style/package.json +2 -2
  335. package/zova/src/suite-vendor/a-zova/modules/a-table/cli/detailsActionRow/boilerplate/{{sceneName}}.{{beanName}}.tsx_ +24 -0
  336. package/zova/src/suite-vendor/a-zova/modules/a-table/package.json +4 -3
  337. package/zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx +5 -3
  338. package/zova/src/suite-vendor/a-zova/modules/a-zod/package.json +2 -2
  339. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +3 -3
  340. package/zova/src/suite-vendor/a-zova/package.json +26 -26
@@ -26,6 +26,7 @@ import { CliToolsCrud } from './bean/cli.tools.crud.ts';
26
26
  import { CliToolsCrudBasic } from './bean/cli.tools.crudBasic.ts';
27
27
  import { CliToolsCrudStart } from './bean/cli.tools.crudStart.ts';
28
28
  import { CliToolsDeps } from './bean/cli.tools.deps.ts';
29
+ import { CliToolsMasterDetail } from './bean/cli.tools.masterDetail.ts';
29
30
  import { CliToolsMetadata } from './bean/cli.tools.metadata.ts';
30
31
 
31
32
  export const beans = {
@@ -58,4 +59,5 @@ export const beans = {
58
59
  'tools.crudBasic': CliToolsCrudBasic,
59
60
  'tools.crudStart': CliToolsCrudStart,
60
61
  'tools.crud': CliToolsCrud,
62
+ 'tools.masterDetail': CliToolsMasterDetail,
61
63
  };
@@ -0,0 +1,78 @@
1
+ export default {
2
+ bean: 'tools.masterDetail',
3
+ info: {
4
+ version: '5.0.0',
5
+ title: 'Cli: Tools: Master Detail',
6
+ usage:
7
+ 'npm run vona :tools:masterDetail resourceName -- [--module=] [--detailModule=] [--detailResourceName=] [--relationName=] [--fk=] [--detailMode=aggregate|standalone]',
8
+ },
9
+ options: {
10
+ module: {
11
+ description: 'master module relative name, such as training-student',
12
+ type: 'string',
13
+ },
14
+ detailModule: {
15
+ description: 'detail module relative name, such as training-record',
16
+ type: 'string',
17
+ },
18
+ detailResourceName: {
19
+ description: 'detail resource name',
20
+ type: 'string',
21
+ },
22
+ relationName: {
23
+ description: 'master relation name',
24
+ type: 'string',
25
+ },
26
+ fk: {
27
+ description: 'detail foreign key field name',
28
+ type: 'string',
29
+ },
30
+ detailMode: {
31
+ description: 'detail mode: aggregate or standalone',
32
+ type: 'string',
33
+ },
34
+ },
35
+ groups: {
36
+ default: {
37
+ questions: {
38
+ resourceName: {
39
+ type: 'input',
40
+ message: 'master resourceName',
41
+ initial: {
42
+ expression: 'arg0',
43
+ },
44
+ required: true,
45
+ },
46
+ module: {
47
+ type: 'input',
48
+ message: 'master module relative name (for example training-student)',
49
+ required: true,
50
+ },
51
+ detailModule: {
52
+ type: 'input',
53
+ message: 'detail module relative name (for example training-record)',
54
+ required: true,
55
+ },
56
+ detailResourceName: {
57
+ type: 'input',
58
+ message: 'detail resourceName',
59
+ required: true,
60
+ },
61
+ relationName: {
62
+ type: 'input',
63
+ message: 'master relation name',
64
+ },
65
+ fk: {
66
+ type: 'input',
67
+ message: 'detail foreign key field name',
68
+ },
69
+ detailMode: {
70
+ type: 'input',
71
+ message: 'detail mode (aggregate|standalone)',
72
+ initial: 'aggregate',
73
+ required: true,
74
+ },
75
+ },
76
+ },
77
+ },
78
+ };
@@ -26,6 +26,7 @@ import toolsCrud from './command/tools.crud.ts';
26
26
  import toolsCrudBasic from './command/tools.crudBasic.ts';
27
27
  import toolsCrudStart from './command/tools.crudStart.ts';
28
28
  import toolsDeps from './command/tools.deps.ts';
29
+ import toolsMasterDetail from './command/tools.masterDetail.ts';
29
30
  import toolsMetadata from './command/tools.metadata.ts';
30
31
 
31
32
  export const commands = {
@@ -68,5 +69,6 @@ export const commands = {
68
69
  crudBasic: toolsCrudBasic,
69
70
  crudStart: toolsCrudStart,
70
71
  crud: toolsCrud,
72
+ masterDetail: toolsMasterDetail,
71
73
  },
72
74
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona",
3
- "version": "5.1.49",
3
+ "version": "5.1.56",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "Vona is an intuitive, elegant and powerful Node.js framework for rapidly developing enterprise applications of any size",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-core",
3
- "version": "5.1.23",
3
+ "version": "5.1.24",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona",
6
6
  "keywords": [
@@ -5,5 +5,6 @@ export const SymbolMappedClassMetadataKeys = Symbol('SymbolMappedClassMetakeys')
5
5
  export type MappedClassMetadataKeys = Record<MetadataKey, IMappedClassMetadataOptions | undefined>;
6
6
 
7
7
  export interface IMappedClassMetadataOptions {
8
+ replace?: boolean;
8
9
  partialClass?: Function;
9
10
  }
@@ -81,22 +81,44 @@ export function copyMetadataOfClasses(target: object, sources: object[], transfo
81
81
  setMappedClassMetadataKeys(target, metadataKeys);
82
82
  //
83
83
  for (const metadataKey of Object.getOwnPropertySymbols(metadataKeys)) {
84
- const metadataKeyOptions = metadataKeys[metadataKey];
85
- const rulesNew = {};
86
- for (const source of sources) {
87
- const rules = appMetadata.getMetadata(metadataKey, source);
88
- if (!rules) continue;
89
- if (!transform) {
90
- Object.assign(rulesNew, rules);
91
- } else {
92
- for (const key in rules) {
93
- const ruleNew = transform(rules, key, metadataKeyOptions);
94
- if (ruleNew !== undefined) {
95
- rulesNew[key] = ruleNew;
96
- }
84
+ const metadataKeyOptions: IMappedClassMetadataOptions = metadataKeys[metadataKey];
85
+ if (metadataKeyOptions.replace) {
86
+ _copyMetadataOfClassesReplace(metadataKey, target, sources);
87
+ } else {
88
+ _copyMetadataOfClassesMap(metadataKey, metadataKeyOptions, target, sources, transform);
89
+ }
90
+ }
91
+ }
92
+
93
+ function _copyMetadataOfClassesReplace(metadataKey: symbol, target: object, sources: object[]) {
94
+ let valueNew;
95
+ for (const source of sources) {
96
+ valueNew = appMetadata.getMetadata(metadataKey, source);
97
+ }
98
+ appMetadata.defineMetadata(metadataKey, valueNew, target);
99
+ }
100
+
101
+ function _copyMetadataOfClassesMap(
102
+ metadataKey: symbol,
103
+ metadataKeyOptions: IMappedClassMetadataOptions,
104
+ target: object,
105
+ sources: object[],
106
+ transform?: Function,
107
+ ) {
108
+ const rulesNew = {};
109
+ for (const source of sources) {
110
+ const rules = appMetadata.getMetadata(metadataKey, source);
111
+ if (!rules) continue;
112
+ if (!transform) {
113
+ Object.assign(rulesNew, rules);
114
+ } else {
115
+ for (const key in rules) {
116
+ const ruleNew = transform(rules, key, metadataKeyOptions);
117
+ if (ruleNew !== undefined) {
118
+ rulesNew[key] = ruleNew;
97
119
  }
98
120
  }
99
121
  }
100
- appMetadata.defineMetadata(metadataKey, rulesNew, target);
101
122
  }
123
+ appMetadata.defineMetadata(metadataKey, rulesNew, target);
102
124
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-mock",
3
- "version": "6.1.23",
3
+ "version": "6.1.24",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona mock",
6
6
  "keywords": [
@@ -349,6 +349,9 @@ importers:
349
349
  vona-module-training-record:
350
350
  specifier: workspace:^
351
351
  version: link:src/suite/a-training/modules/training-record
352
+ vona-module-training-recordsubject:
353
+ specifier: workspace:^
354
+ version: link:src/suite/a-training/modules/training-recordsubject
352
355
  vona-module-training-student:
353
356
  specifier: workspace:^
354
357
  version: link:src/suite/a-training/modules/training-student
@@ -2389,6 +2392,9 @@ importers:
2389
2392
  vona-module-training-record:
2390
2393
  specifier: ^5.0.0
2391
2394
  version: link:modules/training-record
2395
+ vona-module-training-recordsubject:
2396
+ specifier: ^5.0.0
2397
+ version: link:modules/training-recordsubject
2392
2398
  vona-module-training-student:
2393
2399
  specifier: ^5.0.0
2394
2400
  version: link:modules/training-student
@@ -2402,6 +2408,15 @@ importers:
2402
2408
  specifier: ^6.1.3
2403
2409
  version: 6.1.3
2404
2410
 
2411
+ src/suite/a-training/modules/training-recordsubject:
2412
+ devDependencies:
2413
+ clean-package:
2414
+ specifier: ^2.2.0
2415
+ version: 2.2.0
2416
+ rimraf:
2417
+ specifier: ^6.1.3
2418
+ version: 6.1.3
2419
+
2405
2420
  src/suite/a-training/modules/training-student:
2406
2421
  devDependencies:
2407
2422
  clean-package:
@@ -7421,6 +7436,9 @@ packages:
7421
7436
  zova-module-a-openapi@5.1.35:
7422
7437
  resolution: {integrity: sha512-DT7KUxOpLAWfCvXkBvE4VPfTv+2zlMEGQuFg5QI00GNaSCEs7fmB4nNWDf6cZRr4OBTXOzYAmfgDoM4q19/V9g==}
7423
7438
 
7439
+ zova-module-a-openapi@5.1.36:
7440
+ resolution: {integrity: sha512-Sm5U1Im3kIumriz6w9xtab9QK2p8atAINIQIiP9Bcu46M2OA7gWDWR/jfdty2/G+nDBOn54+3yxHEWQZ9raCiQ==}
7441
+
7424
7442
  zova-module-a-router@5.1.26:
7425
7443
  resolution: {integrity: sha512-TMNPX62+haeqNk0KejrH6ID5HLdi6CngRC7B1XsnjqKR8E0eQJL1YxxrPkaf4AQQKc9c9BHjRdL6EEZFqintiQ==}
7426
7444
 
@@ -7466,14 +7484,14 @@ packages:
7466
7484
  zova-suite-a-zova@5.1.102:
7467
7485
  resolution: {integrity: sha512-R5HB45pBHN9lZhWRmCuWH0DSMcDb6iBsgCQojxSZNsD8ttSCvWyu2FwNAmCQFguwEuPyZw8ZZndwr/8HAU3IxQ==}
7468
7486
 
7469
- zova-suite-a-zova@5.1.104:
7470
- resolution: {integrity: sha512-PO30MMsQOznp6yq04yn3m2Lse4DxFl6MLyVWEhhrDcqTlyl67L/kNV2cEBmyW8MWoEX0SbEbHYmVZKOTie7lmg==}
7487
+ zova-suite-a-zova@5.1.105:
7488
+ resolution: {integrity: sha512-34A9uB8A0rPBW6akpYl2nCSzck7jEi+D9PQJwDVx5Ms01sLhzdQk9QIf3Ux3uxoa4nmAnyDEtxKgvPSoUdpgPQ==}
7471
7489
 
7472
7490
  zova@5.1.103:
7473
7491
  resolution: {integrity: sha512-AR+Pk9hozKvB6/R/fZ4WPtKX4I0TJxmHx8Ao8dpLovlXhacYi50dUHOTxUQDavwspkWjMDinNqjQWo2MpAVc9g==}
7474
7492
 
7475
- zova@5.1.105:
7476
- resolution: {integrity: sha512-rE5TH1AhEr9fp6uhMCSuW83UhMjHGHqDq9iXm3nmzU95HbwBVO/uInCSklypeQ0ahvaJnl8MXKg6viinvix3lg==}
7493
+ zova@5.1.106:
7494
+ resolution: {integrity: sha512-zRNxKjKZi9yxBpWixQmz/OVdmh4KzZwpGSD1r6fk6q0jrU4JmfJ7VETNlN4PsSPZ3/Bu3Z9MwlmI/nCbNV9cFg==}
7477
7495
 
7478
7496
  zwitch@1.0.5:
7479
7497
  resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
@@ -13045,6 +13063,12 @@ snapshots:
13045
13063
  openapi3-ts: 4.6.0
13046
13064
  typestyle: 2.4.0
13047
13065
 
13066
+ zova-module-a-openapi@5.1.36:
13067
+ dependencies:
13068
+ '@cabloy/json-schema-to-zod': 2.6.4
13069
+ openapi3-ts: 4.6.0
13070
+ typestyle: 2.4.0
13071
+
13048
13072
  zova-module-a-router@5.1.26: {}
13049
13073
 
13050
13074
  zova-module-a-routerstack@5.1.23: {}
@@ -13117,7 +13141,7 @@ snapshots:
13117
13141
  table-identity: link:packages-utils/table-identity
13118
13142
  vue: 3.5.38(typescript@5.9.3)
13119
13143
  zod: '@cabloy/zod@4.3.6'
13120
- zova: 5.1.105(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13144
+ zova: 5.1.106(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13121
13145
  zova-jsx: 1.1.63(typescript@5.9.3)
13122
13146
  zova-module-a-api: 5.1.18
13123
13147
  zova-module-a-bean: 5.1.28
@@ -13127,7 +13151,7 @@ snapshots:
13127
13151
  zova-module-a-icon: 5.1.23
13128
13152
  zova-module-a-interceptor: 5.1.26
13129
13153
  zova-module-a-model: 5.1.27(vue@3.5.38(typescript@5.9.3))
13130
- zova-module-a-openapi: 5.1.35
13154
+ zova-module-a-openapi: 5.1.36
13131
13155
  zova-module-a-router: 5.1.26
13132
13156
  zova-module-a-routertabs: 5.1.29
13133
13157
  zova-module-a-ssr: 5.1.23
@@ -13187,7 +13211,7 @@ snapshots:
13187
13211
  zova-module-a-logger: 5.1.23
13188
13212
  zova-module-a-meta: 5.1.18
13189
13213
  zova-module-a-model: 5.1.27(vue@3.5.38(typescript@5.9.3))
13190
- zova-module-a-openapi: 5.1.34
13214
+ zova-module-a-openapi: 5.1.35
13191
13215
  zova-module-a-router: 5.1.26
13192
13216
  zova-module-a-routerstack: 5.1.23
13193
13217
  zova-module-a-routertabs: 5.1.29
@@ -13205,7 +13229,7 @@ snapshots:
13205
13229
  - typescript
13206
13230
  - vue
13207
13231
 
13208
- zova-suite-a-zova@5.1.104(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13232
+ zova-suite-a-zova@5.1.105(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13209
13233
  dependencies:
13210
13234
  zova-module-a-api: 5.1.18
13211
13235
  zova-module-a-app: 5.1.21
@@ -13221,7 +13245,7 @@ snapshots:
13221
13245
  zova-module-a-logger: 5.1.23
13222
13246
  zova-module-a-meta: 5.1.18
13223
13247
  zova-module-a-model: 5.1.27(vue@3.5.38(typescript@5.9.3))
13224
- zova-module-a-openapi: 5.1.35
13248
+ zova-module-a-openapi: 5.1.36
13225
13249
  zova-module-a-router: 5.1.26
13226
13250
  zova-module-a-routerstack: 5.1.23
13227
13251
  zova-module-a-routertabs: 5.1.29
@@ -13250,10 +13274,10 @@ snapshots:
13250
13274
  - typescript
13251
13275
  - vue
13252
13276
 
13253
- zova@5.1.105(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13277
+ zova@5.1.106(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13254
13278
  dependencies:
13255
13279
  zova-core: 5.1.57(typescript@5.9.3)
13256
- zova-suite-a-zova: 5.1.104(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13280
+ zova-suite-a-zova: 5.1.105(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13257
13281
  transitivePeerDependencies:
13258
13282
  - '@vue/composition-api'
13259
13283
  - debug
@@ -28,7 +28,7 @@
28
28
  "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
29
29
  "prepublishOnly": "npm run tsc:publish",
30
30
  "prepack": "clean-package",
31
- "postpack": "clean-package restore && npm run clean"
31
+ "postpack": "clean-package restore"
32
32
  },
33
33
  "dependencies": {},
34
34
  "devDependencies": {
@@ -29,7 +29,7 @@
29
29
  "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
30
30
  "prepublishOnly": "npm run tsc:publish",
31
31
  "prepack": "clean-package",
32
- "postpack": "clean-package restore && npm run clean"
32
+ "postpack": "clean-package restore"
33
33
  },
34
34
  "devDependencies": {
35
35
  "clean-package": "^2.2.0",
@@ -29,7 +29,7 @@
29
29
  "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
30
30
  "prepublishOnly": "npm run tsc:publish",
31
31
  "prepack": "clean-package",
32
- "postpack": "clean-package restore && npm run clean"
32
+ "postpack": "clean-package restore"
33
33
  },
34
34
  "devDependencies": {
35
35
  "clean-package": "^2.2.0",
@@ -29,7 +29,7 @@
29
29
  "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
30
30
  "prepublishOnly": "npm run tsc:publish",
31
31
  "prepack": "clean-package",
32
- "postpack": "clean-package restore && npm run clean"
32
+ "postpack": "clean-package restore"
33
33
  },
34
34
  "devDependencies": {
35
35
  "clean-package": "^2.2.0",
@@ -28,7 +28,7 @@
28
28
  "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
29
29
  "prepublishOnly": "npm run tsc:publish",
30
30
  "prepack": "clean-package",
31
- "postpack": "clean-package restore && npm run clean"
31
+ "postpack": "clean-package restore"
32
32
  },
33
33
  "dependencies": {},
34
34
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  // eslint-disable
2
- import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore } from 'vona-module-a-orm';
3
- import type { TypeEntityOptionsFields } from 'vona-module-a-openapi';
2
+ import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore,IModelRelationBelongsTo,IModelRelationHasMany } from 'vona-module-a-orm';
3
+ import type { TypeEntityOptionsFields,TypeControllerOptionsActions } from 'vona-module-a-openapi';
4
4
  import type { TableIdentity } from 'table-identity';
5
5
  /** entity: begin */
6
6
  export * from '../entity/record.tsx';
@@ -84,7 +84,12 @@ declare module 'vona' {
84
84
  import type { IModelGetOptions, IModelMethodOptions, IModelSelectParams, TypeModelSelectAndCount, TypeModelRelationResult, TypeModelWhere, IModelInsertOptions, TypeModelMutateRelationData, IModelDeleteOptions, IModelUpdateOptions, IModelMutateOptions, IModelSelectCountParams, IModelIncrementParams, IModelSelectAggrParams, TypeModelAggrRelationResult, IModelSelectGroupParams, TypeModelGroupRelationResult } from 'vona-module-a-orm';
85
85
  import { SymbolKeyEntity, SymbolKeyEntityMeta, SymbolKeyModelOptions } from 'vona-module-a-orm';
86
86
  declare module 'vona-module-training-record' {
87
-
87
+ export interface IModelOptionsRecord {
88
+ relations: {
89
+ student: IModelRelationBelongsTo<'training-record:record', 'training-student:student', false, 'id'|'name'>;
90
+ trainingRecordSubjects: IModelRelationHasMany<'training-recordsubject:subject', 'recordId', false, 'id'|'name'|'score'|'description', undefined, undefined, undefined>;
91
+ };
92
+ }
88
93
  export interface ModelRecord {
89
94
  [SymbolKeyEntity]: EntityRecord;
90
95
  [SymbolKeyEntityMeta]: EntityRecordMeta;
@@ -121,6 +126,47 @@ declare module 'vona-module-a-orm' {
121
126
  }
122
127
  }
123
128
  /** model: end */
129
+ /** service: begin */
130
+ export * from '../service/record.ts';
131
+
132
+ import 'vona-module-a-bean';
133
+ declare module 'vona-module-a-bean' {
134
+
135
+ export interface IServiceRecord {
136
+ 'training-record:record': never;
137
+ }
138
+
139
+
140
+ }
141
+ declare module 'vona-module-training-record' {
142
+
143
+ export interface ServiceRecord {
144
+ /** @internal */
145
+ get scope(): ScopeModuleTrainingRecord;
146
+ }
147
+
148
+ export interface ServiceRecord {
149
+ get $beanFullName(): 'training-record.service.record';
150
+ get $onionName(): 'training-record:record';
151
+
152
+ }
153
+ }
154
+ /** service: end */
155
+ /** service: begin */
156
+ import type { ServiceRecord } from '../service/record.ts';
157
+ export interface IModuleService {
158
+ 'record': ServiceRecord;
159
+ }
160
+ /** service: end */
161
+ /** service: begin */
162
+
163
+ import 'vona';
164
+ declare module 'vona' {
165
+ export interface IBeanRecordGeneral {
166
+ 'training-record.service.record': ServiceRecord;
167
+ }
168
+ }
169
+ /** service: end */
124
170
  /** meta: begin */
125
171
  export * from '../bean/meta.index.ts';
126
172
  export * from '../bean/meta.version.ts';
@@ -160,6 +206,188 @@ declare module 'vona-module-training-record' {
160
206
  }
161
207
  }
162
208
  /** meta: end */
209
+ /** dto: begin */
210
+ export * from '../dto/detailRecordSubjectBase.tsx';
211
+ export * from '../dto/detailRecordSubjectMutate.tsx';
212
+ export * from '../dto/detailRecordSubjectResItem.tsx';
213
+ export * from '../dto/detailRecordSubjectView.tsx';
214
+ export * from '../dto/recordCreate.tsx';
215
+ export * from '../dto/recordSelectReq.tsx';
216
+ export * from '../dto/recordSelectRes.tsx';
217
+ export * from '../dto/recordSelectResItem.tsx';
218
+ export * from '../dto/recordUpdate.tsx';
219
+ export * from '../dto/recordView.tsx';
220
+ import type { IDtoOptionsDetailRecordSubjectBase } from '../dto/detailRecordSubjectBase.tsx';
221
+ import type { IDtoOptionsDetailRecordSubjectMutate } from '../dto/detailRecordSubjectMutate.tsx';
222
+ import type { IDtoOptionsDetailRecordSubjectResItem } from '../dto/detailRecordSubjectResItem.tsx';
223
+ import type { IDtoOptionsDetailRecordSubjectView } from '../dto/detailRecordSubjectView.tsx';
224
+ import type { IDtoOptionsRecordCreate } from '../dto/recordCreate.tsx';
225
+ import type { IDtoOptionsRecordSelectReq } from '../dto/recordSelectReq.tsx';
226
+ import type { IDtoOptionsRecordSelectRes } from '../dto/recordSelectRes.tsx';
227
+ import type { IDtoOptionsRecordSelectResItem } from '../dto/recordSelectResItem.tsx';
228
+ import type { IDtoOptionsRecordUpdate } from '../dto/recordUpdate.tsx';
229
+ import type { IDtoOptionsRecordView } from '../dto/recordView.tsx';
230
+ import 'vona-module-a-web';
231
+ declare module 'vona-module-a-web' {
232
+
233
+ export interface IDtoRecord {
234
+ 'training-record:detailRecordSubjectBase': IDtoOptionsDetailRecordSubjectBase;
235
+ 'training-record:detailRecordSubjectMutate': IDtoOptionsDetailRecordSubjectMutate;
236
+ 'training-record:detailRecordSubjectResItem': IDtoOptionsDetailRecordSubjectResItem;
237
+ 'training-record:detailRecordSubjectView': IDtoOptionsDetailRecordSubjectView;
238
+ 'training-record:recordCreate': IDtoOptionsRecordCreate;
239
+ 'training-record:recordSelectReq': IDtoOptionsRecordSelectReq;
240
+ 'training-record:recordSelectRes': IDtoOptionsRecordSelectRes;
241
+ 'training-record:recordSelectResItem': IDtoOptionsRecordSelectResItem;
242
+ 'training-record:recordUpdate': IDtoOptionsRecordUpdate;
243
+ 'training-record:recordView': IDtoOptionsRecordView;
244
+ }
245
+
246
+
247
+ }
248
+ declare module 'vona-module-training-record' {
249
+
250
+ }
251
+ /** dto: end */
252
+ /** dto: begin */
253
+ import type { DtoDetailRecordSubjectBase } from '../dto/detailRecordSubjectBase.tsx';
254
+ import type { DtoDetailRecordSubjectMutate } from '../dto/detailRecordSubjectMutate.tsx';
255
+ import type { DtoDetailRecordSubjectResItem } from '../dto/detailRecordSubjectResItem.tsx';
256
+ import type { DtoDetailRecordSubjectView } from '../dto/detailRecordSubjectView.tsx';
257
+ import type { DtoRecordCreate } from '../dto/recordCreate.tsx';
258
+ import type { DtoRecordSelectReq } from '../dto/recordSelectReq.tsx';
259
+ import type { DtoRecordSelectRes } from '../dto/recordSelectRes.tsx';
260
+ import type { DtoRecordSelectResItem } from '../dto/recordSelectResItem.tsx';
261
+ import type { DtoRecordUpdate } from '../dto/recordUpdate.tsx';
262
+ import type { DtoRecordView } from '../dto/recordView.tsx';
263
+ declare module 'vona-module-training-record' {
264
+
265
+ export interface IDtoOptionsDetailRecordSubjectBase {
266
+ fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectBase, IDtoOptionsDetailRecordSubjectBase[TypeSymbolKeyFieldsMore]>;
267
+ }
268
+
269
+ export interface IDtoOptionsDetailRecordSubjectMutate {
270
+ fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectMutate, IDtoOptionsDetailRecordSubjectMutate[TypeSymbolKeyFieldsMore]>;
271
+ }
272
+
273
+ export interface IDtoOptionsDetailRecordSubjectResItem {
274
+ fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectResItem, IDtoOptionsDetailRecordSubjectResItem[TypeSymbolKeyFieldsMore]>;
275
+ }
276
+
277
+ export interface IDtoOptionsDetailRecordSubjectView {
278
+ fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectView, IDtoOptionsDetailRecordSubjectView[TypeSymbolKeyFieldsMore]>;
279
+ }
280
+
281
+ export interface IDtoOptionsRecordCreate {
282
+ fields?: TypeEntityOptionsFields<DtoRecordCreate, IDtoOptionsRecordCreate[TypeSymbolKeyFieldsMore]>;
283
+ }
284
+
285
+ export interface IDtoOptionsRecordSelectReq {
286
+ fields?: TypeEntityOptionsFields<DtoRecordSelectReq, IDtoOptionsRecordSelectReq[TypeSymbolKeyFieldsMore]>;
287
+ }
288
+
289
+ export interface IDtoOptionsRecordSelectRes {
290
+ fields?: TypeEntityOptionsFields<DtoRecordSelectRes, IDtoOptionsRecordSelectRes[TypeSymbolKeyFieldsMore]>;
291
+ }
292
+
293
+ export interface IDtoOptionsRecordSelectResItem {
294
+ fields?: TypeEntityOptionsFields<DtoRecordSelectResItem, IDtoOptionsRecordSelectResItem[TypeSymbolKeyFieldsMore]>;
295
+ }
296
+
297
+ export interface IDtoOptionsRecordUpdate {
298
+ fields?: TypeEntityOptionsFields<DtoRecordUpdate, IDtoOptionsRecordUpdate[TypeSymbolKeyFieldsMore]>;
299
+ }
300
+
301
+ export interface IDtoOptionsRecordView {
302
+ fields?: TypeEntityOptionsFields<DtoRecordView, IDtoOptionsRecordView[TypeSymbolKeyFieldsMore]>;
303
+ }
304
+ }
305
+ /** dto: end */
306
+ /** controller: begin */
307
+ export * from '../controller/record.ts';
308
+ import type { IControllerOptionsRecord } from '../controller/record.ts';
309
+ import 'vona-module-a-web';
310
+ declare module 'vona-module-a-web' {
311
+
312
+ export interface IControllerRecord {
313
+ 'training-record:record': IControllerOptionsRecord;
314
+ }
315
+
316
+
317
+ }
318
+ declare module 'vona-module-training-record' {
319
+
320
+ export interface ControllerRecord {
321
+ /** @internal */
322
+ get scope(): ScopeModuleTrainingRecord;
323
+ }
324
+
325
+ export interface ControllerRecord {
326
+ get $beanFullName(): 'training-record.controller.record';
327
+ get $onionName(): 'training-record:record';
328
+ get $onionOptions(): IControllerOptionsRecord;
329
+ }
330
+ }
331
+ /** controller: end */
332
+ /** controller: begin */
333
+ // @ts-ignore ignore
334
+ import type { ControllerRecord } from '../controller/record.ts';
335
+ declare module 'vona-module-training-record' {
336
+
337
+ export interface IControllerOptionsRecord {
338
+ actions?: TypeControllerOptionsActions<ControllerRecord>;
339
+ }
340
+ }
341
+ declare module 'vona-module-a-web' {
342
+ export interface IApiPathPostRecord{
343
+ '/training/record': undefined;
344
+ }
345
+ export interface IApiPathGetRecord{
346
+ '/training/record': undefined;
347
+ '/training/record/:id': undefined;
348
+ }
349
+ export interface IApiPathPatchRecord{
350
+ '/training/record/:id': undefined;
351
+ }
352
+ export interface IApiPathDeleteRecord{
353
+ '/training/record/:id': undefined;
354
+ }
355
+
356
+ }
357
+ import 'vona-module-a-openapi';
358
+ declare module 'vona-module-a-openapi' {
359
+ export interface IResourceRecord {
360
+ 'training-record:record': never;
361
+ }
362
+ }
363
+
364
+ /** controller: end */
365
+ /** ssrMenu: begin */
366
+ export * from '../bean/ssrMenu.record.ts';
367
+ import type { ISsrMenuOptionsRecord } from '../bean/ssrMenu.record.ts';
368
+ import 'vona-module-a-ssr';
369
+ declare module 'vona-module-a-ssr' {
370
+
371
+ export interface ISsrMenuRecord {
372
+ 'training-record:record': ISsrMenuOptionsRecord;
373
+ }
374
+
375
+
376
+ }
377
+ declare module 'vona-module-training-record' {
378
+
379
+ export interface SsrMenuRecord {
380
+ /** @internal */
381
+ get scope(): ScopeModuleTrainingRecord;
382
+ }
383
+
384
+ export interface SsrMenuRecord {
385
+ get $beanFullName(): 'training-record.ssrMenu.record';
386
+ get $onionName(): 'training-record:record';
387
+ get $onionOptions(): ISsrMenuOptionsRecord;
388
+ }
389
+ }
390
+ /** ssrMenu: end */
163
391
  /** locale: begin */
164
392
  import { locales } from './locales.ts';
165
393
  /** locale: end */
@@ -175,6 +403,7 @@ export interface ScopeModuleTrainingRecord {
175
403
  locale: TypeModuleLocales<(typeof locales)[TypeLocaleBase]>;
176
404
  entity: IModuleEntity;
177
405
  model: IModuleModel;
406
+ service: IModuleService;
178
407
  }
179
408
 
180
409
  import 'vona';