cabloy 5.1.49 → 5.1.51

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 (276) hide show
  1. package/.claude/skills/cabloy-backend-scaffold/SKILL.md +207 -0
  2. package/.claude/skills/cabloy-backend-scaffold/evals/evals.json +29 -0
  3. package/.claude/skills/cabloy-backend-scaffold/references/backend-thread-map.md +52 -0
  4. package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +39 -0
  5. package/.claude/skills/cabloy-contract-loop/SKILL.md +201 -0
  6. package/.claude/skills/cabloy-contract-loop/evals/evals.json +29 -0
  7. package/.claude/skills/cabloy-contract-loop/references/contract-loop-map.md +47 -0
  8. package/.claude/skills/cabloy-contract-loop/references/verification-checklist.md +32 -0
  9. package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +230 -0
  10. package/.claude/skills/cabloy-frontend-scaffold/evals/evals.json +35 -0
  11. package/.claude/skills/cabloy-frontend-scaffold/references/follow-up-checklist.md +41 -0
  12. package/.claude/skills/cabloy-frontend-scaffold/references/frontend-thread-map.md +54 -0
  13. package/.claude/skills/cabloy-workflow/SKILL.md +288 -0
  14. package/.claude/skills/cabloy-workflow/evals/evals.json +35 -0
  15. package/.claude/skills/cabloy-workflow/references/cli-strategy.md +39 -0
  16. package/.claude/skills/cabloy-workflow/references/edition-detection.md +29 -0
  17. package/.github/workflows/docs-pages.yml +54 -0
  18. package/.gitignore +1 -0
  19. package/CHANGELOG.md +46 -0
  20. package/CLAUDE.md +59 -0
  21. package/README.md +137 -0
  22. package/cabloy-docs/.vitepress/config.mjs +222 -0
  23. package/cabloy-docs/.vitepress/public/CNAME +1 -0
  24. package/cabloy-docs/.vitepress/theme/custom.css +64 -0
  25. package/cabloy-docs/.vitepress/theme/edition-badges.md +5 -0
  26. package/cabloy-docs/.vitepress/theme/index.js +5 -0
  27. package/cabloy-docs/ai/class-placement-rule.md +138 -0
  28. package/cabloy-docs/ai/cli-for-agents.md +56 -0
  29. package/cabloy-docs/ai/cli-to-skill-map.md +165 -0
  30. package/cabloy-docs/ai/docs-skills-rules-mapping.md +167 -0
  31. package/cabloy-docs/ai/edition-detection.md +30 -0
  32. package/cabloy-docs/ai/future-skill-roadmap.md +135 -0
  33. package/cabloy-docs/ai/global-bean-lookup.md +157 -0
  34. package/cabloy-docs/ai/introduction.md +62 -0
  35. package/cabloy-docs/ai/playbook-backend-module.md +111 -0
  36. package/cabloy-docs/ai/playbook-contract-regeneration.md +100 -0
  37. package/cabloy-docs/ai/playbook-frontend-page.md +99 -0
  38. package/cabloy-docs/ai/playbook-metadata-refresh.md +67 -0
  39. package/cabloy-docs/ai/repo-guidance.md +58 -0
  40. package/cabloy-docs/ai/rules-and-config.md +29 -0
  41. package/cabloy-docs/ai/skills.md +35 -0
  42. package/cabloy-docs/ai/verification.md +30 -0
  43. package/cabloy-docs/backend/aop-overview.md +128 -0
  44. package/cabloy-docs/backend/auth-guide.md +151 -0
  45. package/cabloy-docs/backend/backend-essentials.md +128 -0
  46. package/cabloy-docs/backend/broadcast-guide.md +138 -0
  47. package/cabloy-docs/backend/cache-guide.md +70 -0
  48. package/cabloy-docs/backend/captcha-guide.md +162 -0
  49. package/cabloy-docs/backend/cli.md +173 -0
  50. package/cabloy-docs/backend/config-guide.md +249 -0
  51. package/cabloy-docs/backend/controller-aop-guide.md +270 -0
  52. package/cabloy-docs/backend/controller-guide.md +347 -0
  53. package/cabloy-docs/backend/crud-workflow.md +118 -0
  54. package/cabloy-docs/backend/dto-guide.md +161 -0
  55. package/cabloy-docs/backend/dto-infer-generation.md +153 -0
  56. package/cabloy-docs/backend/dynamic-datasource-guide.md +70 -0
  57. package/cabloy-docs/backend/election-guide.md +141 -0
  58. package/cabloy-docs/backend/entity-guide.md +150 -0
  59. package/cabloy-docs/backend/error-guide.md +108 -0
  60. package/cabloy-docs/backend/event-guide.md +183 -0
  61. package/cabloy-docs/backend/external-aop-guide.md +149 -0
  62. package/cabloy-docs/backend/field-indexes.md +79 -0
  63. package/cabloy-docs/backend/foundation.md +281 -0
  64. package/cabloy-docs/backend/i18n-guide.md +211 -0
  65. package/cabloy-docs/backend/internal-aop-guide.md +181 -0
  66. package/cabloy-docs/backend/introduction.md +95 -0
  67. package/cabloy-docs/backend/jwt-guide.md +276 -0
  68. package/cabloy-docs/backend/logger-guide.md +223 -0
  69. package/cabloy-docs/backend/mail-guide.md +189 -0
  70. package/cabloy-docs/backend/menu-guide.md +80 -0
  71. package/cabloy-docs/backend/migration-and-changes.md +192 -0
  72. package/cabloy-docs/backend/model-guide.md +274 -0
  73. package/cabloy-docs/backend/multi-database-datasource.md +171 -0
  74. package/cabloy-docs/backend/multi-instance-and-instance-resolution.md +196 -0
  75. package/cabloy-docs/backend/openapi-guide.md +118 -0
  76. package/cabloy-docs/backend/orm-aggregate-group-guide.md +210 -0
  77. package/cabloy-docs/backend/orm-configuration-guide.md +165 -0
  78. package/cabloy-docs/backend/orm-guide.md +109 -0
  79. package/cabloy-docs/backend/orm-mutation-guide.md +195 -0
  80. package/cabloy-docs/backend/orm-select-guide.md +243 -0
  81. package/cabloy-docs/backend/queue-guide.md +271 -0
  82. package/cabloy-docs/backend/quickstart.md +141 -0
  83. package/cabloy-docs/backend/redis-guide.md +70 -0
  84. package/cabloy-docs/backend/redlock-guide.md +60 -0
  85. package/cabloy-docs/backend/relations-guide.md +250 -0
  86. package/cabloy-docs/backend/runtime-and-flavors.md +304 -0
  87. package/cabloy-docs/backend/schedule-guide.md +81 -0
  88. package/cabloy-docs/backend/scripts.md +116 -0
  89. package/cabloy-docs/backend/serialization-guide.md +192 -0
  90. package/cabloy-docs/backend/service-guide.md +166 -0
  91. package/cabloy-docs/backend/sharding-guide.md +49 -0
  92. package/cabloy-docs/backend/startup-guide.md +326 -0
  93. package/cabloy-docs/backend/transaction-guide.md +82 -0
  94. package/cabloy-docs/backend/unit-testing.md +209 -0
  95. package/cabloy-docs/backend/upload-guide.md +160 -0
  96. package/cabloy-docs/backend/user-access-guide.md +157 -0
  97. package/cabloy-docs/backend/validation-guide.md +80 -0
  98. package/cabloy-docs/backend/worker-guide.md +59 -0
  99. package/cabloy-docs/editions/cabloy-basic.md +25 -0
  100. package/cabloy-docs/editions/cabloy-start.md +24 -0
  101. package/cabloy-docs/editions/detection.md +31 -0
  102. package/cabloy-docs/editions/overview.md +44 -0
  103. package/cabloy-docs/frontend/api-guide.md +93 -0
  104. package/cabloy-docs/frontend/api-schema-guide.md +43 -0
  105. package/cabloy-docs/frontend/app-startup-guide.md +185 -0
  106. package/cabloy-docs/frontend/cli.md +78 -0
  107. package/cabloy-docs/frontend/component-guide.md +105 -0
  108. package/cabloy-docs/frontend/component-props-guide.md +97 -0
  109. package/cabloy-docs/frontend/component-v-model-guide.md +110 -0
  110. package/cabloy-docs/frontend/css-in-js-guide.md +151 -0
  111. package/cabloy-docs/frontend/design-principles.md +55 -0
  112. package/cabloy-docs/frontend/environment-config-guide.md +250 -0
  113. package/cabloy-docs/frontend/foundation.md +57 -0
  114. package/cabloy-docs/frontend/generic-component-guide.md +35 -0
  115. package/cabloy-docs/frontend/icon-engine-guide.md +88 -0
  116. package/cabloy-docs/frontend/introduction.md +32 -0
  117. package/cabloy-docs/frontend/ioc-and-beans.md +211 -0
  118. package/cabloy-docs/frontend/mock-guide.md +109 -0
  119. package/cabloy-docs/frontend/model-architecture.md +87 -0
  120. package/cabloy-docs/frontend/model-state-guide.md +70 -0
  121. package/cabloy-docs/frontend/module-scope.md +168 -0
  122. package/cabloy-docs/frontend/modules-and-suites.md +179 -0
  123. package/cabloy-docs/frontend/navigation-guards-guide.md +68 -0
  124. package/cabloy-docs/frontend/openapi-sdk-guide.md +102 -0
  125. package/cabloy-docs/frontend/page-guide.md +223 -0
  126. package/cabloy-docs/frontend/page-params-guide.md +87 -0
  127. package/cabloy-docs/frontend/page-query-guide.md +96 -0
  128. package/cabloy-docs/frontend/page-route-guide.md +147 -0
  129. package/cabloy-docs/frontend/quickstart.md +201 -0
  130. package/cabloy-docs/frontend/route-alias-guide.md +61 -0
  131. package/cabloy-docs/frontend/scripts.md +86 -0
  132. package/cabloy-docs/frontend/sdk-guide.md +45 -0
  133. package/cabloy-docs/frontend/server-data.md +74 -0
  134. package/cabloy-docs/frontend/ssr-client-only.md +40 -0
  135. package/cabloy-docs/frontend/ssr-env.md +51 -0
  136. package/cabloy-docs/frontend/ssr-init-data.md +46 -0
  137. package/cabloy-docs/frontend/ssr-overview.md +48 -0
  138. package/cabloy-docs/frontend/ssr-seo-meta.md +52 -0
  139. package/cabloy-docs/frontend/system-startup-guide.md +186 -0
  140. package/cabloy-docs/frontend/theme-guide.md +154 -0
  141. package/cabloy-docs/frontend/zod-guide.md +161 -0
  142. package/cabloy-docs/fullstack/edition-collaboration-differences.md +61 -0
  143. package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +64 -0
  144. package/cabloy-docs/fullstack/introduction.md +69 -0
  145. package/cabloy-docs/fullstack/openapi-to-sdk.md +116 -0
  146. package/cabloy-docs/fullstack/quickstart.md +86 -0
  147. package/cabloy-docs/fullstack/vona-zova-integration.md +86 -0
  148. package/cabloy-docs/index.md +73 -0
  149. package/cabloy-docs/package.json +16 -0
  150. package/cabloy-docs/pnpm-lock.yaml +1607 -0
  151. package/cabloy-docs/reference/backend-directory-structure.md +88 -0
  152. package/cabloy-docs/reference/cli-reference.md +49 -0
  153. package/cabloy-docs/reference/glossary.md +38 -0
  154. package/cabloy-docs/reference/package-map.md +105 -0
  155. package/cabloy-docs/reference/repo-scripts.md +36 -0
  156. package/package.json +4 -1
  157. package/scripts/init.ts +12 -0
  158. package/scripts/upgrade.ts +31 -3
  159. package/vona/README.md +3 -3
  160. package/vona/README.zh-CN.md +4 -4
  161. package/vona/packages-vona/vona/package.json +1 -1
  162. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +1 -1
  163. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/src/bean/summerCache.datasourceWrite.ts +2 -2
  164. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  165. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/package.json +1 -1
  166. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/src/bean/cacheRedis.captcha.ts +2 -2
  167. package/vona/src/suite-vendor/a-captcha/package.json +1 -1
  168. package/vona/src/suite-vendor/a-vona/modules/a-bean/cli/bean/metadata/generate.ts +5 -6
  169. package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +1 -1
  170. package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheMem/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  171. package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheRedis/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  172. package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +1 -1
  173. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/.metadata/index.ts +13 -2
  174. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/bean/bean.cache.ts +6 -7
  175. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheMemBase.ts → service/cacheMemBase_.ts} +3 -3
  176. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheRedisBase.ts → service/cacheRedisBase_.ts} +3 -3
  177. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +1 -1
  178. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.emailConfirm.ts +2 -2
  179. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.passwordReset.ts +2 -2
  180. package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +1 -1
  181. package/vona/src/suite-vendor/a-vona/modules/a-openapi/src/bean/summerCache.json.ts +2 -2
  182. package/vona/src/suite-vendor/a-vona/modules/a-orm/cli/databaseDialect/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  183. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  184. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/.metadata/index.ts +4 -3
  185. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.database.ts +3 -3
  186. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.model.ts +1 -1
  187. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/schedule.softDeletionPrune.ts +1 -1
  188. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/common/utils.ts +1 -1
  189. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/index.ts +1 -1
  190. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_cache.ts +1 -1
  191. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_meta.ts +1 -1
  192. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.modelBase.ts +0 -5
  193. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoAggregate.ts +1 -1
  194. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoCreate.ts +1 -1
  195. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +1 -1
  196. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGroup.ts +1 -1
  197. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +1 -1
  198. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoSelectAndCount.ts +1 -1
  199. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoUpdate.ts +1 -1
  200. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/index.ts +1 -0
  201. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/modelCacheBase.ts +3 -3
  202. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relations.ts +1 -1
  203. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsDynamic.ts +1 -1
  204. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsMutate.ts +1 -1
  205. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsStatic.ts +1 -1
  206. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheEntity_.ts +1 -1
  207. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheQuery_.ts +1 -1
  208. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/database.ts +2 -2
  209. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean/bean.databaseDialectBase.ts → service/databaseDialectBase_.ts} +38 -41
  210. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/db_.ts +2 -2
  211. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/relations_.ts +3 -3
  212. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/database.ts +0 -5
  213. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoGet.ts +1 -1
  214. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoMutate.ts +1 -1
  215. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoSelectAndCount.ts +1 -1
  216. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/model.ts +1 -1
  217. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelAggr.ts +1 -1
  218. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelCount.ts +1 -1
  219. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGeneral.ts +1 -1
  220. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGroup.ts +1 -1
  221. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelIncrement.ts +1 -1
  222. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relations.ts +1 -1
  223. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsColumns.ts +1 -1
  224. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDef.ts +1 -1
  225. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefDynamic.ts +1 -1
  226. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefMutate.ts +1 -1
  227. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsMutate.ts +1 -1
  228. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsTables.ts +1 -1
  229. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +1 -1
  230. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.betterSqlite3.ts +2 -2
  231. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.mysql.ts +2 -2
  232. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.pg.ts +2 -2
  233. package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
  234. package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/bean.permission.ts +109 -40
  235. package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permission.ts +2 -2
  236. package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +1 -1
  237. package/vona/src/suite-vendor/a-vona/modules/a-startup/src/bean/cacheRedis.startupDebounce.ts +2 -2
  238. package/vona/src/suite-vendor/a-vona/modules/a-summer/cli/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  239. package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +1 -1
  240. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/.metadata/index.ts +1 -1
  241. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/bean/bean.summer.ts +3 -3
  242. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localMem_.ts +3 -3
  243. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localRedis_.ts +3 -3
  244. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/{bean/bean.summerCacheBase.ts → service/summerCacheBase_.ts} +3 -3
  245. package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +1 -1
  246. package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.rapidoc.ts +2 -2
  247. package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.swagger.ts +2 -2
  248. package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +1 -1
  249. package/vona/src/suite-vendor/a-vona/modules/a-user/src/bean/cacheRedis.authToken.ts +2 -2
  250. package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +1 -1
  251. package/vona/src/suite-vendor/a-vona/modules/a-worker/src/bean/cacheRedis.workerAlive.ts +2 -2
  252. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  253. package/zova/README.md +4 -4
  254. package/zova/README.zh-CN.md +4 -4
  255. package/zova/packages-zova/zova/package.json +2 -2
  256. package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolTwo/controller.tsx +0 -2
  257. package/zova/src/suite/a-home/modules/home-base/src/config/locale/en-us.ts +1 -0
  258. package/zova/src/suite/a-home/modules/home-base/src/config/locale/zh-cn.ts +1 -0
  259. package/zova/src/suite/a-home/modules/home-base/src/page/errorNotFound/controller.tsx +8 -2
  260. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +1 -1
  261. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.header.tsx +1 -1
  262. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.locale.tsx +2 -5
  263. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.tabs.tsx +1 -4
  264. package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +1 -1
  265. package/zova/src/suite-vendor/a-zova/modules/a-router/src/bean/sys.router.ts +28 -6
  266. package/zova/src/suite-vendor/a-zova/modules/a-router/src/monkeySys.ts +15 -3
  267. package/zova/src/suite-vendor/a-zova/modules/a-router/src/types/router.ts +1 -0
  268. package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +1 -1
  269. package/zova/src/suite-vendor/a-zova/modules/a-routertabs/src/model/tabs.ts +4 -0
  270. package/zova/src/suite-vendor/a-zova/package.json +3 -3
  271. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud.ts +0 -0
  272. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_inner.ts +0 -0
  273. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_table.ts +0 -0
  274. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_knex.ts +0 -0
  275. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_utils.ts +0 -0
  276. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_view.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-user",
3
- "version": "5.1.10",
3
+ "version": "5.1.11",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,4 +1,4 @@
1
- import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
1
+ import { ServiceCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
2
2
 
3
3
  export type TCacheRedisAuthTokenKey = string;
4
4
  export type TCacheRedisAuthTokenData = string;
@@ -7,7 +7,7 @@ export type TCacheRedisAuthTokenData = string;
7
7
  ttl: 30 * 24 * 60 * 60 * 1000,
8
8
  disableTransactionCompensate: true,
9
9
  })
10
- export class CacheRedisAuthToken extends BeanCacheRedisBase<
10
+ export class CacheRedisAuthToken extends ServiceCacheRedisBase<
11
11
  TCacheRedisAuthTokenKey,
12
12
  TCacheRedisAuthTokenData
13
13
  > {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-worker",
3
- "version": "5.1.5",
3
+ "version": "5.1.6",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,4 +1,4 @@
1
- import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
1
+ import { ServiceCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
2
2
 
3
3
  export type TCacheRedisWorkerAliveKey = string;
4
4
  export type TCacheRedisWorkerAliveData = boolean;
@@ -8,7 +8,7 @@ export type TCacheRedisWorkerAliveData = boolean;
8
8
  disableTransactionCompensate: true,
9
9
  client: 'worker',
10
10
  })
11
- export class CacheRedisWorkerAlive extends BeanCacheRedisBase<
11
+ export class CacheRedisWorkerAlive extends ServiceCacheRedisBase<
12
12
  TCacheRedisWorkerAliveKey,
13
13
  TCacheRedisWorkerAliveData
14
14
  > {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-suite-a-vona",
3
- "version": "5.1.33",
3
+ "version": "5.1.34",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "author": "",
package/zova/README.md CHANGED
@@ -4,7 +4,7 @@ English | [简体中文](./README.zh-CN.md)
4
4
 
5
5
  Zova: The Intuitive Frontend Framework = Vue3 Reactive + React TSX + Angular IOC
6
6
 
7
- - Built-in out-of-the-box SSR solution, building `SSR/SPA/Website/Admin-Dashboard` in one codebase
7
+ - Built-in out-of-the-box SSR solution, building `SSR/SPA/Web/Admin` in one codebase
8
8
  - Supports dual-layer tabs navigation, enabling efficient page switching while maintaining page state
9
9
  - Dynamically render CRUD list pages, entry pages, and search forms, while demonstrating best practices for Tanstack Table, Tanstack Form, and Tanstack Query
10
10
 
@@ -39,10 +39,10 @@ Zova can be used with any UI library and comes with built-in project templates f
39
39
 
40
40
  ## Demo Online 2
41
41
 
42
- The Website and Admin-Dashboard of Cabloy Store are built by one codebase
42
+ The Web and Admin of Cabloy Store are built by one codebase
43
43
 
44
- - Website: [https://cabloy.com](https://cabloy.com)
45
- - Admin-Dashboard: [https://cabloy.com/admin](https://cabloy.com/admin)
44
+ - Web: [https://cabloy.com](https://cabloy.com)
45
+ - Admin: [https://cabloy.com/admin](https://cabloy.com/admin)
46
46
 
47
47
  ## GIF Demo
48
48
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Zova: 直观的前端框架 = Vue3 响应式 + React TSX + Angular IOC
6
6
 
7
- - 内置开箱即用的 SSR 解决方案,可在同一个代码库中实现`SSR/SPA/Web网站/Admin中后台`
7
+ - 内置开箱即用的 SSR 解决方案,可在同一个代码库中实现`SSR/SPA/Web/Admin`
8
8
  - 支持双层页签导航,实现高效页面切换,并保持页面状态
9
9
  - 可动态渲染 CRUD 的列表页、条目页、搜索表单,并且提供了`Tanstack Table/Tanstack Form/Tanstack Query`的最佳实践
10
10
  - 提供强大的 IOC + AOP 能力,让系统具有无与伦比的可扩展性和可维护性
@@ -40,10 +40,10 @@ Zova 可以搭配任何 UI 库使用,并且内置了几款 UI 库的项目模
40
40
 
41
41
  ## 在线演示2
42
42
 
43
- 使用同一套代码实现 Cabloy Store 的`Web网站`和`Admin中后台`
43
+ 使用同一套代码实现 Cabloy Store 的`Web`和`Admin`
44
44
 
45
- - Web 网站:[https://cabloy.com](https://cabloy.com)
46
- - Admin 中后台:[https://cabloy.com/admin](https://cabloy.com/admin)
45
+ - Web[https://cabloy.com](https://cabloy.com)
46
+ - Admin[https://cabloy.com/admin](https://cabloy.com/admin)
47
47
 
48
48
  ## 动图演示
49
49
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova",
3
- "version": "5.1.92",
3
+ "version": "5.1.93",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "A vue3 framework with ioc",
6
6
  "keywords": [
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "zova-core": "^5.1.48",
49
- "zova-suite-a-zova": "^5.1.91"
49
+ "zova-suite-a-zova": "^5.1.92"
50
50
  },
51
51
  "devDependencies": {
52
52
  "clean-package": "^2.2.0",
@@ -1,4 +1,3 @@
1
- import { RouterLink } from '@cabloy/vue-router';
2
1
  import { z } from 'zod';
3
2
  import { BeanControllerPageBase, Use } from 'zova';
4
3
  import { Controller } from 'zova-module-a-bean';
@@ -27,7 +26,6 @@ export class ControllerPageToolTwo extends BeanControllerPageBase {
27
26
  <div>{`id: ${pageData?.id}`}</div>
28
27
  <div>{`name: ${pageData?.name}`}</div>
29
28
  <div>{`married: ${pageData?.married}`}</div>
30
- <RouterLink to={this.sys.env.ROUTER_PAGE_HOME}>Go Home</RouterLink>
31
29
  </div>
32
30
  );
33
31
  }
@@ -1,5 +1,6 @@
1
1
  export default {
2
2
  Home: 'Home',
3
+ GoHome: 'Go Home',
3
4
  LanguageEnglish: 'English',
4
5
  LanguageChinese: 'Chinese',
5
6
  };
@@ -1,5 +1,6 @@
1
1
  export default {
2
2
  Home: '主页',
3
+ GoHome: '返回首页',
3
4
  LanguageEnglish: '英语',
4
5
  LanguageChinese: '简体中文',
5
6
  };
@@ -1,4 +1,3 @@
1
- import { RouterLink } from '@cabloy/vue-router';
2
1
  import { classes } from 'typestyle';
3
2
  import { BeanControllerPageBase } from 'zova';
4
3
  import { Controller } from 'zova-module-a-bean';
@@ -26,7 +25,14 @@ export class ControllerPageErrorNotFound extends BeanControllerPageBase {
26
25
  <div>
27
26
  <div class={this.cTitle}>404</div>
28
27
  <div class={this.cDescription}>Oops. Nothing here...</div>
29
- <RouterLink to={this.sys.env.ROUTER_PAGE_HOME}>Go Home</RouterLink>
28
+ <button
29
+ class="btn btn-primary"
30
+ onClick={() => {
31
+ this.app.$gotoHome();
32
+ }}
33
+ >
34
+ {this.scope.locale.GoHome()}
35
+ </button>
30
36
  </div>
31
37
  </div>
32
38
  );
@@ -92,7 +92,7 @@ export class ControllerLayoutWeb extends BeanControllerBase {
92
92
  return this.$$modelMenu.retrieveMenus().data;
93
93
  },
94
94
  () => {
95
- this.$$modelTabs.updateAllTabInfos(this._getInitialTabs());
95
+ this.$$modelTabs.resetAllTabInfos();
96
96
  },
97
97
  );
98
98
  }
@@ -17,7 +17,7 @@ export class RenderHeader extends BeanRenderBase {
17
17
  <button
18
18
  class="btn btn-square btn-ghost"
19
19
  onClick={() => {
20
- this.app.$gotoHome({ params: { locale: true } });
20
+ this.app.$gotoHome();
21
21
  }}
22
22
  >
23
23
  <ZIcon name=":social:cabloy" width={24}></ZIcon>
@@ -22,13 +22,10 @@ export class RenderLocale extends BeanRenderBase {
22
22
  <a
23
23
  onClick={event => {
24
24
  if (metaLocale) {
25
- const fullPath = this.$router.resolveName(currentRoute.name as any, {
26
- params: Object.assign({}, currentRoute.params, {
27
- locale: key === this.sys.config.locale.default ? '' : key,
28
- }),
25
+ this.app.$gotoPage(currentRoute.matched[0].path, {
26
+ params: { ...currentRoute.params, locale: key },
29
27
  query: currentRoute.query,
30
28
  });
31
- this.$router.push(fullPath);
32
29
  } else {
33
30
  this.$$serviceLocale.setLocale(key as any);
34
31
  }
@@ -16,7 +16,6 @@ export class RenderTabs extends BeanRenderBase {
16
16
  public renderTabs(): VNode | undefined {
17
17
  const $$modelTabs = this.$$modelTabs;
18
18
  if (!$$modelTabs) return;
19
-
20
19
  const domTabs = $$modelTabs.tabs.map(tab => {
21
20
  return this._renderMenuItem(tab.info as TypeMenuItem, true, tab.tabKey);
22
21
  });
@@ -144,9 +143,7 @@ export class RenderTabs extends BeanRenderBase {
144
143
 
145
144
  private _isMenuLeafCurrent(item: TypeMenuLeaf): boolean {
146
145
  if (item.external || !item.link) return false;
147
- const currentRoute = this.$currentRoute;
148
- if (!currentRoute) return false;
149
- return currentRoute.fullPath === item.link;
146
+ return this.$router.checkActiveOfFullPath(item.link);
150
147
  }
151
148
 
152
149
  private _getMenuItemKey(item: TypeMenuItem): string {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-module-a-router",
3
- "version": "5.1.22",
3
+ "version": "5.1.23",
4
4
  "gitHead": "09d901d17140a80ee0764211b441cda72fd94663",
5
5
  "description": "router",
6
6
  "keywords": [
@@ -1,6 +1,7 @@
1
1
  import type {
2
2
  RouteLocationMatched,
3
3
  RouteLocationNormalizedLoaded,
4
+ RouteLocationNormalizedLoadedGeneric,
4
5
  RouteLocationResolvedGeneric,
5
6
  Router,
6
7
  RouterOptions,
@@ -18,7 +19,7 @@ import {
18
19
  import { BeanBase, cast, deepExtend } from 'zova';
19
20
  import { Sys } from 'zova-module-a-bean';
20
21
 
21
- import { getRealRouteName, getRouteMatched, isRouterName } from '../lib/utils.js';
22
+ import { getCurrentRoute, getRealRouteName, getRouteMatched, isRouterName } from '../lib/utils.js';
22
23
  import {
23
24
  IModuleRoute,
24
25
  IModuleRouteComponent,
@@ -98,11 +99,10 @@ export class SysRouter extends BeanBase {
98
99
  ) {
99
100
  const query = options?.query;
100
101
  let params = options?.params;
101
- if (cast(params)?.locale === true) {
102
- const locale =
103
- this.app.meta.locale.current === this.sys.config.locale.default
104
- ? undefined
105
- : this.app.meta.locale.current;
102
+ const paramsLocale = cast(params)?.locale;
103
+ if (paramsLocale !== undefined) {
104
+ const localeCurrent = paramsLocale === true ? this.app.meta.locale.current : paramsLocale;
105
+ const locale = localeCurrent === this.sys.config.locale.default ? undefined : localeCurrent;
106
106
  params = Object.assign({}, params, { locale });
107
107
  }
108
108
  const pagePath = combineParamsAndQuery(path, { params, query });
@@ -144,6 +144,28 @@ export class SysRouter extends BeanBase {
144
144
  return this.sys.meta.module.exists(moduleName);
145
145
  }
146
146
 
147
+ public checkActiveOfFullPath(
148
+ fullPath: string,
149
+ currentRoute?: RouteLocationNormalizedLoadedGeneric,
150
+ ): boolean {
151
+ if (!currentRoute) {
152
+ currentRoute = getCurrentRoute(this.ctx)?.value;
153
+ }
154
+ if (!currentRoute) return false;
155
+ if (currentRoute.fullPath === fullPath) return true;
156
+ if (!currentRoute.matched || currentRoute.matched.length === 0) return false;
157
+ return currentRoute.matched.some(routeAlias => {
158
+ const fullPathAlias = this.getPagePath(
159
+ routeAlias.path as never,
160
+ {
161
+ params: currentRoute.params,
162
+ query: currentRoute.query,
163
+ } as never,
164
+ );
165
+ return fullPathAlias === fullPath;
166
+ });
167
+ }
168
+
147
169
  public async ensureRoute(pagePath: string) {
148
170
  // try to resolve, support alias route
149
171
  let route = this._vueRouterSys.resolve(pagePath);
@@ -57,7 +57,7 @@ export class MonkeySys
57
57
  if (options?.returnTo) {
58
58
  const returnTo =
59
59
  typeof options?.returnTo === 'string' ? options?.returnTo : app.$getCurrentPagePath();
60
- if (returnTo !== app.sys.env.ROUTER_PAGE_HOME) {
60
+ if (returnTo !== app.$getPagePathHome()) {
61
61
  query[app.sys.env.ROUTER_KEY_RETURNTO] = returnTo;
62
62
  }
63
63
  }
@@ -81,7 +81,8 @@ export class MonkeySys
81
81
  }
82
82
  };
83
83
  app.$gotoHome = (options?: IGotoPageOptions) => {
84
- return app.$gotoPage(app.sys.env.ROUTER_PAGE_HOME, options);
84
+ const pagePath = app.$getPagePathHome(options);
85
+ return app.$gotoPage(pagePath, { ...options, params: undefined });
85
86
  };
86
87
  app.$gotoLogin = (returnTo?: string, cause?: string) => {
87
88
  if (!returnTo && cast(app.meta.$router.currentRoute)?.path === app.sys.env.ROUTER_PAGE_LOGIN)
@@ -102,7 +103,7 @@ export class MonkeySys
102
103
  const pagePath =
103
104
  returnTo ||
104
105
  cast(app.meta.$router.currentRoute)?.query?.[app.sys.env.ROUTER_KEY_RETURNTO] ||
105
- app.sys.env.ROUTER_PAGE_HOME;
106
+ app.$getPagePathHome();
106
107
  return pagePath;
107
108
  };
108
109
  app.$getCurrentPagePath = (): string | undefined => {
@@ -114,5 +115,16 @@ export class MonkeySys
114
115
  }
115
116
  return cast(app.meta.$router.currentRoute)?.fullPath;
116
117
  };
118
+ app.$getPagePathHome = (options?: IGotoPageOptions): string => {
119
+ let params = options?.params;
120
+ if (params?.locale === undefined) {
121
+ params = Object.assign({}, params, { locale: true });
122
+ }
123
+ // not handle options?.query
124
+ return app.meta.$router.getPagePath(
125
+ app.sys.env.ROUTER_PAGE_HOME as never,
126
+ { params } as never,
127
+ );
128
+ };
117
129
  }
118
130
  }
@@ -55,6 +55,7 @@ declare module 'zova' {
55
55
  $gotoReturnTo(returnTo?: string): TypeGotoPageResult;
56
56
  $getReturnTo(returnTo?: string): string;
57
57
  $getCurrentPagePath(): string | undefined;
58
+ $getPagePathHome(options?: IGotoPageOptions): string;
58
59
  }
59
60
 
60
61
  export interface AppMeta {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-module-a-routertabs",
3
- "version": "5.1.24",
3
+ "version": "5.1.25",
4
4
  "gitHead": "09d901d17140a80ee0764211b441cda72fd94663",
5
5
  "description": "routertabs",
6
6
  "keywords": [
@@ -183,6 +183,10 @@ export class ModelTabs extends BeanModelBase {
183
183
  return true;
184
184
  }
185
185
 
186
+ resetAllTabInfos() {
187
+ this.tabs = this._getInitialTabs() as RouteTab[];
188
+ }
189
+
186
190
  updateAllTabInfos(tabInitials?: RouteTabInitial[]) {
187
191
  for (const tab of this.tabs) {
188
192
  const tabInitial = tabInitials?.find(item => item.tabKey === tab.tabKey);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-suite-a-zova",
3
- "version": "5.1.91",
3
+ "version": "5.1.92",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "zova",
6
6
  "license": "MIT",
@@ -23,9 +23,9 @@
23
23
  "zova-module-a-meta": "^5.1.15",
24
24
  "zova-module-a-model": "^5.1.23",
25
25
  "zova-module-a-openapi": "^5.1.30",
26
- "zova-module-a-router": "^5.1.22",
26
+ "zova-module-a-router": "^5.1.23",
27
27
  "zova-module-a-routerstack": "^5.1.20",
28
- "zova-module-a-routertabs": "^5.1.24",
28
+ "zova-module-a-routertabs": "^5.1.25",
29
29
  "zova-module-a-ssr": "^5.1.18",
30
30
  "zova-module-a-ssrhmr": "^5.1.16",
31
31
  "zova-module-a-ssrserver": "^5.1.15",