cabloy 5.1.50 → 5.1.52

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 (300) 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 +292 -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 +30 -0
  17. package/.github/workflows/docs-pages.yml +56 -0
  18. package/.gitignore +1 -0
  19. package/CHANGELOG.md +54 -0
  20. package/CLAUDE.md +59 -0
  21. package/README.md +152 -0
  22. package/cabloy-docs/.vitepress/config.mjs +255 -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 +139 -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 +168 -0
  31. package/cabloy-docs/ai/edition-consistency-checklist.md +150 -0
  32. package/cabloy-docs/ai/edition-detection.md +30 -0
  33. package/cabloy-docs/ai/future-skill-roadmap.md +135 -0
  34. package/cabloy-docs/ai/global-bean-lookup.md +158 -0
  35. package/cabloy-docs/ai/introduction.md +62 -0
  36. package/cabloy-docs/ai/playbook-backend-module.md +111 -0
  37. package/cabloy-docs/ai/playbook-contract-regeneration.md +100 -0
  38. package/cabloy-docs/ai/playbook-frontend-page.md +99 -0
  39. package/cabloy-docs/ai/playbook-metadata-refresh.md +67 -0
  40. package/cabloy-docs/ai/repo-guidance.md +58 -0
  41. package/cabloy-docs/ai/rules-and-config.md +29 -0
  42. package/cabloy-docs/ai/skills.md +37 -0
  43. package/cabloy-docs/ai/verification.md +31 -0
  44. package/cabloy-docs/ai/virtual-decorator-guidance.md +206 -0
  45. package/cabloy-docs/backend/aop-overview.md +128 -0
  46. package/cabloy-docs/backend/auth-guide.md +151 -0
  47. package/cabloy-docs/backend/backend-essentials.md +128 -0
  48. package/cabloy-docs/backend/broadcast-guide.md +138 -0
  49. package/cabloy-docs/backend/cache-guide.md +70 -0
  50. package/cabloy-docs/backend/captcha-guide.md +162 -0
  51. package/cabloy-docs/backend/cli.md +173 -0
  52. package/cabloy-docs/backend/config-guide.md +249 -0
  53. package/cabloy-docs/backend/controller-aop-guide.md +270 -0
  54. package/cabloy-docs/backend/controller-guide.md +347 -0
  55. package/cabloy-docs/backend/crud-workflow.md +118 -0
  56. package/cabloy-docs/backend/dto-guide.md +161 -0
  57. package/cabloy-docs/backend/dto-infer-generation.md +153 -0
  58. package/cabloy-docs/backend/dynamic-datasource-guide.md +70 -0
  59. package/cabloy-docs/backend/election-guide.md +141 -0
  60. package/cabloy-docs/backend/entity-guide.md +150 -0
  61. package/cabloy-docs/backend/error-guide.md +108 -0
  62. package/cabloy-docs/backend/event-guide.md +183 -0
  63. package/cabloy-docs/backend/external-aop-guide.md +149 -0
  64. package/cabloy-docs/backend/field-indexes.md +79 -0
  65. package/cabloy-docs/backend/foundation.md +281 -0
  66. package/cabloy-docs/backend/i18n-guide.md +211 -0
  67. package/cabloy-docs/backend/internal-aop-guide.md +181 -0
  68. package/cabloy-docs/backend/introduction.md +95 -0
  69. package/cabloy-docs/backend/jwt-guide.md +276 -0
  70. package/cabloy-docs/backend/logger-guide.md +223 -0
  71. package/cabloy-docs/backend/mail-guide.md +189 -0
  72. package/cabloy-docs/backend/menu-guide.md +80 -0
  73. package/cabloy-docs/backend/migration-and-changes.md +192 -0
  74. package/cabloy-docs/backend/model-guide.md +274 -0
  75. package/cabloy-docs/backend/multi-database-datasource.md +171 -0
  76. package/cabloy-docs/backend/multi-instance-and-instance-resolution.md +196 -0
  77. package/cabloy-docs/backend/openapi-guide.md +118 -0
  78. package/cabloy-docs/backend/orm-aggregate-group-guide.md +210 -0
  79. package/cabloy-docs/backend/orm-configuration-guide.md +165 -0
  80. package/cabloy-docs/backend/orm-guide.md +109 -0
  81. package/cabloy-docs/backend/orm-mutation-guide.md +195 -0
  82. package/cabloy-docs/backend/orm-select-guide.md +243 -0
  83. package/cabloy-docs/backend/queue-guide.md +271 -0
  84. package/cabloy-docs/backend/quickstart.md +141 -0
  85. package/cabloy-docs/backend/redis-guide.md +70 -0
  86. package/cabloy-docs/backend/redlock-guide.md +60 -0
  87. package/cabloy-docs/backend/relations-guide.md +250 -0
  88. package/cabloy-docs/backend/runtime-and-flavors.md +304 -0
  89. package/cabloy-docs/backend/schedule-guide.md +81 -0
  90. package/cabloy-docs/backend/scripts.md +116 -0
  91. package/cabloy-docs/backend/serialization-guide.md +192 -0
  92. package/cabloy-docs/backend/service-guide.md +166 -0
  93. package/cabloy-docs/backend/sharding-guide.md +49 -0
  94. package/cabloy-docs/backend/startup-guide.md +326 -0
  95. package/cabloy-docs/backend/transaction-guide.md +82 -0
  96. package/cabloy-docs/backend/unit-testing.md +209 -0
  97. package/cabloy-docs/backend/upload-guide.md +160 -0
  98. package/cabloy-docs/backend/user-access-guide.md +157 -0
  99. package/cabloy-docs/backend/validation-guide.md +80 -0
  100. package/cabloy-docs/backend/worker-guide.md +59 -0
  101. package/cabloy-docs/editions/cabloy-basic.md +26 -0
  102. package/cabloy-docs/editions/cabloy-start.md +55 -0
  103. package/cabloy-docs/editions/choosing-between-basic-and-start.md +84 -0
  104. package/cabloy-docs/editions/detection.md +31 -0
  105. package/cabloy-docs/editions/overview.md +107 -0
  106. package/cabloy-docs/frontend/api-guide.md +93 -0
  107. package/cabloy-docs/frontend/api-schema-guide.md +43 -0
  108. package/cabloy-docs/frontend/app-startup-guide.md +185 -0
  109. package/cabloy-docs/frontend/cli.md +78 -0
  110. package/cabloy-docs/frontend/component-guide.md +105 -0
  111. package/cabloy-docs/frontend/component-props-guide.md +97 -0
  112. package/cabloy-docs/frontend/component-v-model-guide.md +110 -0
  113. package/cabloy-docs/frontend/css-in-js-guide.md +151 -0
  114. package/cabloy-docs/frontend/design-principles.md +55 -0
  115. package/cabloy-docs/frontend/environment-config-guide.md +250 -0
  116. package/cabloy-docs/frontend/foundation.md +58 -0
  117. package/cabloy-docs/frontend/generic-component-guide.md +35 -0
  118. package/cabloy-docs/frontend/icon-engine-guide.md +88 -0
  119. package/cabloy-docs/frontend/introduction.md +33 -0
  120. package/cabloy-docs/frontend/ioc-and-beans.md +211 -0
  121. package/cabloy-docs/frontend/mock-guide.md +109 -0
  122. package/cabloy-docs/frontend/model-architecture.md +87 -0
  123. package/cabloy-docs/frontend/model-state-guide.md +70 -0
  124. package/cabloy-docs/frontend/module-scope.md +168 -0
  125. package/cabloy-docs/frontend/modules-and-suites.md +179 -0
  126. package/cabloy-docs/frontend/navigation-guards-guide.md +68 -0
  127. package/cabloy-docs/frontend/openapi-sdk-guide.md +102 -0
  128. package/cabloy-docs/frontend/page-guide.md +223 -0
  129. package/cabloy-docs/frontend/page-params-guide.md +87 -0
  130. package/cabloy-docs/frontend/page-query-guide.md +96 -0
  131. package/cabloy-docs/frontend/page-route-guide.md +147 -0
  132. package/cabloy-docs/frontend/quickstart.md +202 -0
  133. package/cabloy-docs/frontend/route-alias-guide.md +61 -0
  134. package/cabloy-docs/frontend/scripts.md +86 -0
  135. package/cabloy-docs/frontend/sdk-guide.md +45 -0
  136. package/cabloy-docs/frontend/server-data.md +74 -0
  137. package/cabloy-docs/frontend/ssr-client-only.md +40 -0
  138. package/cabloy-docs/frontend/ssr-env.md +51 -0
  139. package/cabloy-docs/frontend/ssr-init-data.md +46 -0
  140. package/cabloy-docs/frontend/ssr-overview.md +48 -0
  141. package/cabloy-docs/frontend/ssr-seo-meta.md +52 -0
  142. package/cabloy-docs/frontend/system-startup-guide.md +186 -0
  143. package/cabloy-docs/frontend/theme-guide.md +154 -0
  144. package/cabloy-docs/frontend/zod-guide.md +161 -0
  145. package/cabloy-docs/fullstack/cli.md +118 -0
  146. package/cabloy-docs/fullstack/comparison-with-other-frameworks.md +117 -0
  147. package/cabloy-docs/fullstack/edition-collaboration-differences.md +62 -0
  148. package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +64 -0
  149. package/cabloy-docs/fullstack/introduction.md +81 -0
  150. package/cabloy-docs/fullstack/openapi-to-sdk.md +116 -0
  151. package/cabloy-docs/fullstack/quickstart.md +89 -0
  152. package/cabloy-docs/fullstack/vona-zova-integration.md +86 -0
  153. package/cabloy-docs/fullstack/vscode-extensions.md +126 -0
  154. package/cabloy-docs/index.md +72 -0
  155. package/cabloy-docs/package.json +16 -0
  156. package/cabloy-docs/pnpm-lock.yaml +1607 -0
  157. package/cabloy-docs/reference/backend-directory-structure.md +88 -0
  158. package/cabloy-docs/reference/cli-reference.md +49 -0
  159. package/cabloy-docs/reference/glossary.md +38 -0
  160. package/cabloy-docs/reference/package-map.md +105 -0
  161. package/cabloy-docs/reference/repo-scripts.md +36 -0
  162. package/package.json +4 -1
  163. package/scripts/init.ts +12 -0
  164. package/scripts/upgrade.ts +31 -3
  165. package/vona/README.md +4 -4
  166. package/vona/README.zh-CN.md +4 -4
  167. package/vona/packages-vona/vona/package.json +1 -1
  168. package/vona/pnpm-lock.yaml +383 -38
  169. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +1 -1
  170. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/src/bean/summerCache.datasourceWrite.ts +2 -2
  171. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
  172. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/.metadata/index.ts +49 -1
  173. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/controller/memoryDiag.ts +97 -0
  174. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  175. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/package.json +1 -1
  176. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/src/bean/cacheRedis.captcha.ts +2 -2
  177. package/vona/src/suite-vendor/a-captcha/package.json +1 -1
  178. package/vona/src/suite-vendor/a-vona/modules/a-bean/cli/bean/metadata/generate.ts +5 -6
  179. package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +1 -1
  180. package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheMem/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  181. package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheRedis/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  182. package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +1 -1
  183. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/.metadata/index.ts +13 -2
  184. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/bean/bean.cache.ts +6 -7
  185. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheMemBase.ts → service/cacheMemBase_.ts} +3 -3
  186. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheRedisBase.ts → service/cacheRedisBase_.ts} +3 -3
  187. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +1 -1
  188. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.emailConfirm.ts +2 -2
  189. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.passwordReset.ts +2 -2
  190. package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +1 -1
  191. package/vona/src/suite-vendor/a-vona/modules/a-openapi/src/bean/summerCache.json.ts +2 -2
  192. package/vona/src/suite-vendor/a-vona/modules/a-orm/cli/databaseDialect/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  193. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  194. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/.metadata/index.ts +4 -3
  195. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.database.ts +3 -3
  196. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.model.ts +1 -1
  197. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/schedule.softDeletionPrune.ts +1 -1
  198. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/common/utils.ts +1 -1
  199. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/index.ts +1 -1
  200. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_cache.ts +1 -1
  201. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_meta.ts +1 -1
  202. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.modelBase.ts +0 -5
  203. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoAggregate.ts +1 -1
  204. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoCreate.ts +1 -1
  205. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +1 -1
  206. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGroup.ts +1 -1
  207. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +1 -1
  208. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoSelectAndCount.ts +1 -1
  209. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoUpdate.ts +1 -1
  210. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/index.ts +1 -0
  211. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/modelCacheBase.ts +3 -3
  212. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relations.ts +1 -1
  213. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsDynamic.ts +1 -1
  214. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsMutate.ts +1 -1
  215. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsStatic.ts +1 -1
  216. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheEntity_.ts +1 -1
  217. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheQuery_.ts +1 -1
  218. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/database.ts +2 -2
  219. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean/bean.databaseDialectBase.ts → service/databaseDialectBase_.ts} +38 -41
  220. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/db_.ts +2 -2
  221. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/relations_.ts +3 -3
  222. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/database.ts +0 -5
  223. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoGet.ts +1 -1
  224. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoMutate.ts +1 -1
  225. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoSelectAndCount.ts +1 -1
  226. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/model.ts +1 -1
  227. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelAggr.ts +1 -1
  228. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelCount.ts +1 -1
  229. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGeneral.ts +1 -1
  230. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGroup.ts +1 -1
  231. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelIncrement.ts +1 -1
  232. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relations.ts +1 -1
  233. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsColumns.ts +1 -1
  234. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDef.ts +1 -1
  235. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefDynamic.ts +1 -1
  236. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefMutate.ts +1 -1
  237. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsMutate.ts +1 -1
  238. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsTables.ts +1 -1
  239. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +1 -1
  240. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.betterSqlite3.ts +2 -2
  241. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.mysql.ts +2 -2
  242. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.pg.ts +2 -2
  243. package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
  244. package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/bean.permission.ts +109 -40
  245. package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permission.ts +2 -2
  246. package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +1 -1
  247. package/vona/src/suite-vendor/a-vona/modules/a-startup/src/bean/cacheRedis.startupDebounce.ts +2 -2
  248. package/vona/src/suite-vendor/a-vona/modules/a-summer/cli/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  249. package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +1 -1
  250. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/.metadata/index.ts +1 -1
  251. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/bean/bean.summer.ts +3 -3
  252. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localMem_.ts +3 -3
  253. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localRedis_.ts +3 -3
  254. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/{bean/bean.summerCacheBase.ts → service/summerCacheBase_.ts} +3 -3
  255. package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +1 -1
  256. package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.rapidoc.ts +2 -2
  257. package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.swagger.ts +2 -2
  258. package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +1 -1
  259. package/vona/src/suite-vendor/a-vona/modules/a-user/src/bean/cacheRedis.authToken.ts +2 -2
  260. package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +1 -1
  261. package/vona/src/suite-vendor/a-vona/modules/a-worker/src/bean/cacheRedis.workerAlive.ts +2 -2
  262. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  263. package/zova/README.md +5 -5
  264. package/zova/README.zh-CN.md +4 -4
  265. package/zova/package.original.json +4 -4
  266. package/zova/packages-cli/cli/package.json +2 -2
  267. package/zova/packages-cli/cli-set-front/package.json +2 -2
  268. package/zova/packages-utils/zova-jsx/package.json +2 -2
  269. package/zova/packages-utils/zova-vite/package.json +2 -2
  270. package/zova/packages-utils/zova-vite/templates/app/controller.tsx_ +3 -3
  271. package/zova/packages-zova/zova/package.json +3 -3
  272. package/zova/packages-zova/zova-core/package.json +2 -2
  273. package/zova/packages-zova/zova-core/src/bean/beanContainer.ts +3 -3
  274. package/zova/packages-zova/zova-core/src/bean/beanControllerPageBase.ts +1 -0
  275. package/zova/packages-zova/zova-core/src/core/component/module.ts +16 -16
  276. package/zova/packages-zova/zova-core/src/core/context/component.ts +35 -3
  277. package/zova/packages-zova/zova-core/src/core/context/util.ts +15 -11
  278. package/zova/pnpm-lock.yaml +1596 -1679
  279. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/index.ts +11 -0
  280. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/page/toolMinimal.ts +9 -0
  281. package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolMinimal/controller.tsx +11 -0
  282. package/zova/src/suite/a-demo/modules/demo-basic/src/routes.ts +10 -0
  283. package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +1 -1
  284. package/zova/src/suite-vendor/a-zova/modules/a-model/src/service/storage.ts +4 -5
  285. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  286. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/monkey.ts +1 -1
  287. package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +1 -1
  288. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssr.ts +36 -1
  289. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssrMetaStore.ts +7 -2
  290. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/monkey.ts +3 -0
  291. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +1 -1
  292. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/src/service/ssrHandler.ts +70 -29
  293. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
  294. package/zova/src/suite-vendor/a-zova/package.json +6 -6
  295. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud.ts +0 -0
  296. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_inner.ts +0 -0
  297. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_table.ts +0 -0
  298. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_knex.ts +0 -0
  299. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_utils.ts +0 -0
  300. /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-datasharding",
3
- "version": "5.1.5",
3
+ "version": "5.1.6",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,7 +1,7 @@
1
1
  import type { TableIdentity } from 'table-identity';
2
2
  import type { IDatabaseClientRecord } from 'vona-module-a-orm';
3
3
 
4
- import { BeanSummerCacheBase, SummerCache } from 'vona-module-a-summer';
4
+ import { ServiceSummerCacheBase, SummerCache } from 'vona-module-a-summer';
5
5
 
6
6
  export type TSummerCacheDatasourceWriteKey = TableIdentity;
7
7
  export type TSummerCacheDatasourceWriteData = keyof IDatabaseClientRecord;
@@ -14,7 +14,7 @@ export type TSummerCacheDatasourceWriteData = keyof IDatabaseClientRecord;
14
14
  ttl: 3 * 1000, // 3s
15
15
  },
16
16
  })
17
- export class SummerCacheDatasourceWrite extends BeanSummerCacheBase<
17
+ export class SummerCacheDatasourceWrite extends ServiceSummerCacheBase<
18
18
  TSummerCacheDatasourceWriteKey,
19
19
  TSummerCacheDatasourceWriteData
20
20
  > {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-ssr",
3
- "version": "5.1.14",
3
+ "version": "5.1.15",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,4 +1,5 @@
1
1
  // eslint-disable
2
+ import type { TypeControllerOptionsActions } from 'vona-module-a-openapi';
2
3
  /** interceptor: begin */
3
4
  export * from '../bean/interceptor.ssrRedirect.ts';
4
5
  export * from '../bean/interceptor.ssrRender.ts';
@@ -83,13 +84,60 @@ declare module 'vona-module-a-ssr' {
83
84
  /** bean: end */
84
85
  /** bean: begin */
85
86
  import type { BeanSsr } from '../bean/bean.ssr.ts';
86
- import 'vona';
87
+ import 'vona';
87
88
  declare module 'vona' {
88
89
  export interface IBeanRecordGlobal {
89
90
  'ssr': BeanSsr;
90
91
  }
91
92
  }
92
93
  /** bean: end */
94
+ /** controller: begin */
95
+ export * from '../controller/memoryDiag.ts';
96
+ import type { IControllerOptionsMemoryDiag } from '../controller/memoryDiag.ts';
97
+ import 'vona-module-a-web';
98
+ declare module 'vona-module-a-web' {
99
+
100
+ export interface IControllerRecord {
101
+ 'a-ssr:memoryDiag': IControllerOptionsMemoryDiag;
102
+ }
103
+
104
+
105
+ }
106
+ declare module 'vona-module-a-ssr' {
107
+
108
+ export interface ControllerMemoryDiag {
109
+ /** @internal */
110
+ get scope(): ScopeModuleASsr;
111
+ }
112
+
113
+ export interface ControllerMemoryDiag {
114
+ get $beanFullName(): 'a-ssr.controller.memoryDiag';
115
+ get $onionName(): 'a-ssr:memoryDiag';
116
+ get $onionOptions(): IControllerOptionsMemoryDiag;
117
+ }
118
+ }
119
+ /** controller: end */
120
+ /** controller: begin */
121
+ // @ts-ignore ignore
122
+ import type { ControllerMemoryDiag } from '../controller/memoryDiag.ts';
123
+ declare module 'vona-module-a-ssr' {
124
+
125
+ export interface IControllerOptionsMemoryDiag {
126
+ actions?: TypeControllerOptionsActions<ControllerMemoryDiag>;
127
+ }
128
+ }
129
+ declare module 'vona-module-a-web' {
130
+ export interface IApiPathGetRecord{
131
+ '/ssr/memoryDiag/stats': undefined;
132
+ }
133
+ export interface IApiPathPostRecord{
134
+ '/ssr/memoryDiag/gc': undefined;
135
+ '/ssr/memoryDiag/heapSnapshot': undefined;
136
+ }
137
+
138
+ }
139
+
140
+ /** controller: end */
93
141
  /** service: begin */
94
142
  export * from '../service/devProxy.ts';
95
143
  export * from '../service/ssr.ts';
@@ -0,0 +1,97 @@
1
+ import type { IDecoratorControllerOptions } from 'vona-module-a-web';
2
+
3
+ import inspector from 'node:inspector';
4
+ import v8 from 'node:v8';
5
+ import { BeanBase } from 'vona';
6
+ import { Passport } from 'vona-module-a-user';
7
+ import { Controller, Web } from 'vona-module-a-web';
8
+
9
+ const HEADER_MEMORY_DIAG_TOKEN = 'x-ssr-memory-diag-token';
10
+ const ENV_MEMORY_DIAG_TOKEN = 'SSR_MEMORY_DIAG_TOKEN';
11
+
12
+ export interface IControllerOptionsMemoryDiag extends IDecoratorControllerOptions {}
13
+
14
+ @Controller<IControllerOptionsMemoryDiag>('memoryDiag', {
15
+ exclude: true,
16
+ })
17
+ export class ControllerMemoryDiag extends BeanBase {
18
+ @Web.get('stats')
19
+ @Passport.public()
20
+ async stats() {
21
+ this._checkAccess();
22
+ const mem = process.memoryUsage();
23
+ const heap = v8.getHeapStatistics();
24
+ return {
25
+ pid: process.pid,
26
+ timestamp: Date.now(),
27
+ memoryUsage: {
28
+ rss: mem.rss,
29
+ heapTotal: mem.heapTotal,
30
+ heapUsed: mem.heapUsed,
31
+ external: mem.external,
32
+ arrayBuffers: mem.arrayBuffers,
33
+ },
34
+ heapStatistics: {
35
+ used_heap_size: heap.used_heap_size,
36
+ total_heap_size: heap.total_heap_size,
37
+ total_available_size: heap.total_available_size,
38
+ heap_size_limit: heap.heap_size_limit,
39
+ malloced_memory: heap.malloced_memory,
40
+ number_of_native_contexts: heap.number_of_native_contexts,
41
+ number_of_detached_contexts: heap.number_of_detached_contexts,
42
+ },
43
+ };
44
+ }
45
+
46
+ @Web.post('gc')
47
+ @Passport.public()
48
+ async forceGc() {
49
+ this._checkAccess();
50
+ const session = new inspector.Session();
51
+ session.connect();
52
+ try {
53
+ await this._postHeapProfiler(session, 'HeapProfiler.enable');
54
+ await this._postHeapProfiler(session, 'HeapProfiler.collectGarbage');
55
+ } finally {
56
+ session.disconnect();
57
+ }
58
+ return await this.stats();
59
+ }
60
+
61
+ @Web.post('heapSnapshot')
62
+ @Passport.public()
63
+ async heapSnapshot() {
64
+ this._checkAccess();
65
+ const fileName = v8.writeHeapSnapshot(
66
+ `/tmp/heapdump-${process.pid}-${Date.now()}.heapsnapshot`,
67
+ );
68
+ return { pid: process.pid, file: fileName };
69
+ }
70
+
71
+ private _postHeapProfiler(session: inspector.Session, method: string): Promise<void> {
72
+ return new Promise<void>(function postHeapProfiler(resolve, reject) {
73
+ session.post(method, function onPost(err) {
74
+ if (err) {
75
+ reject(err);
76
+ return;
77
+ }
78
+ resolve();
79
+ });
80
+ });
81
+ }
82
+
83
+ private _checkAccess() {
84
+ const token = process.env[ENV_MEMORY_DIAG_TOKEN];
85
+ if (!token) {
86
+ if (!this.app.meta.isDev && !this.app.meta.isTest) {
87
+ this.app.throw(403);
88
+ }
89
+ return;
90
+ }
91
+
92
+ const tokenHeader = this.ctx.get(HEADER_MEMORY_DIAG_TOKEN);
93
+ if (tokenHeader !== token) {
94
+ this.app.throw(403);
95
+ }
96
+ }
97
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-suite-a-cabloy",
3
- "version": "5.1.28",
3
+ "version": "5.1.30",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "author": "",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-captcha",
3
- "version": "5.1.6",
3
+ "version": "5.1.7",
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
  import type { ICaptchaDataCache } from '../types/captcha.ts';
4
4
 
@@ -6,7 +6,7 @@ export type TCacheRedisCaptchaKey = string;
6
6
  export type TCacheRedisCaptchaData = ICaptchaDataCache;
7
7
 
8
8
  @CacheRedis({ disableTransactionCompensate: true })
9
- export class CacheRedisCaptcha extends BeanCacheRedisBase<
9
+ export class CacheRedisCaptcha extends ServiceCacheRedisBase<
10
10
  TCacheRedisCaptchaKey,
11
11
  TCacheRedisCaptchaData
12
12
  > {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-suite-a-captcha",
3
- "version": "5.1.10",
3
+ "version": "5.1.11",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "author": "",
@@ -5,20 +5,19 @@ export default async function (options: IMetadataCustomGenerateOptions): Promise
5
5
  const contentImports: string[] = [];
6
6
  const contentRecordsGlobal: string[] = [];
7
7
  for (const globFile of globFiles) {
8
- const { className, beanName, fileNameJSRelative, isIgnore, isVirtual } = globFile;
9
- if (isIgnore || isVirtual) continue;
10
- const beanFullName = beanName;
8
+ const { className, beanName, fileNameJSRelative, isIgnore } = globFile;
9
+ if (isIgnore) continue;
11
10
  contentImports.push(`import type { ${className} } from '${fileNameJSRelative}';`);
12
- contentRecordsGlobal.push(`'${beanFullName}': ${className};`);
11
+ contentRecordsGlobal.push(` '${beanName}': ${className};`);
13
12
  }
14
13
  if (contentImports.length === 0) return '';
15
14
  // combine
16
15
  const content = `/** ${sceneName}: begin */
17
16
  ${contentImports.join('\n')}
18
- import 'vona';
17
+ import 'vona';
19
18
  declare module 'vona' {
20
19
  export interface IBeanRecordGlobal {
21
- ${contentRecordsGlobal.join('\n')}
20
+ ${contentRecordsGlobal.join('\n')}
22
21
  }
23
22
  }
24
23
  /** ${sceneName}: end */
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-bean",
3
- "version": "5.1.5",
3
+ "version": "5.1.6",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,8 +1,8 @@
1
- import { BeanCacheMemBase, CacheMem } from 'vona-module-a-cache';
1
+ import { ServiceCacheMemBase, CacheMem } from 'vona-module-a-cache';
2
2
 
3
3
  export type TCacheMem<%=argv.beanNameCapitalize%>Key = any;
4
4
  export type TCacheMem<%=argv.beanNameCapitalize%>Data = any;
5
5
 
6
6
  @CacheMem()
7
7
  export class CacheMem<%=argv.beanNameCapitalize%>
8
- extends BeanCacheMemBase<TCacheMem<%=argv.beanNameCapitalize%>Key, TCacheMem<%=argv.beanNameCapitalize%>Data> {}
8
+ extends ServiceCacheMemBase<TCacheMem<%=argv.beanNameCapitalize%>Key, TCacheMem<%=argv.beanNameCapitalize%>Data> {}
@@ -1,8 +1,8 @@
1
- import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
1
+ import { ServiceCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
2
2
 
3
3
  export type TCacheRedis<%=argv.beanNameCapitalize%>Key = any;
4
4
  export type TCacheRedis<%=argv.beanNameCapitalize%>Data = any;
5
5
 
6
6
  @CacheRedis()
7
7
  export class CacheRedis<%=argv.beanNameCapitalize%>
8
- extends BeanCacheRedisBase<TCacheRedis<%=argv.beanNameCapitalize%>Key, TCacheRedis<%=argv.beanNameCapitalize%>Data> {}
8
+ extends ServiceCacheRedisBase<TCacheRedis<%=argv.beanNameCapitalize%>Key, TCacheRedis<%=argv.beanNameCapitalize%>Data> {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-cache",
3
- "version": "5.1.5",
3
+ "version": "5.1.6",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,8 +1,6 @@
1
1
  // eslint-disable
2
2
  /** bean: begin */
3
3
  export * from '../bean/bean.cache.ts';
4
- export * from '../bean/bean.cacheMemBase.ts';
5
- export * from '../bean/bean.cacheRedisBase.ts';
6
4
 
7
5
  import 'vona';
8
6
  declare module 'vona' {
@@ -26,6 +24,19 @@ declare module 'vona' {
26
24
  }
27
25
  }
28
26
  /** bean: end */
27
+ /** service: begin */
28
+ export * from '../service/cacheMemBase_.ts';
29
+ export * from '../service/cacheRedisBase_.ts';
30
+
31
+ import 'vona-module-a-bean';
32
+ declare module 'vona-module-a-bean' {
33
+
34
+
35
+ }
36
+ declare module 'vona-module-a-cache' {
37
+
38
+ }
39
+ /** service: end */
29
40
  /** broadcast: begin */
30
41
  export * from '../bean/broadcast.memClear.ts';
31
42
  export * from '../bean/broadcast.memDel.ts';
@@ -4,28 +4,27 @@ import { Bean } from 'vona-module-a-bean';
4
4
  import type { IDecoratorCacheMemOptions } from '../types/cacheMem.ts';
5
5
  import type { IDecoratorCacheRedisOptions } from '../types/cacheRedis.ts';
6
6
 
7
- import { BeanCacheMemBase } from './bean.cacheMemBase.ts';
8
- import { BeanCacheRedisBase } from './bean.cacheRedisBase.ts';
9
-
7
+ import { ServiceCacheMemBase } from '../service/cacheMemBase_.ts';
8
+ import { ServiceCacheRedisBase } from '../service/cacheRedisBase_.ts';
10
9
  @Bean()
11
10
  export class BeanCache extends BeanBase {
12
11
  mem<KEY, DATA>(
13
12
  cacheName: string,
14
13
  cacheOptions?: IDecoratorCacheMemOptions,
15
- ): BeanCacheMemBase<KEY, DATA> {
14
+ ): ServiceCacheMemBase<KEY, DATA> {
16
15
  if (cacheName.includes('.cacheMem.')) {
17
16
  return this.app.bean._getBeanSelector(cacheName as any, undefined, cacheOptions);
18
17
  }
19
- return this.app.bean._getBeanSelector(BeanCacheMemBase, cacheName, cacheOptions);
18
+ return this.app.bean._getBeanSelector(ServiceCacheMemBase, cacheName, cacheOptions);
20
19
  }
21
20
 
22
21
  redis<KEY, DATA>(
23
22
  cacheName: string,
24
23
  cacheOptions?: IDecoratorCacheRedisOptions,
25
- ): BeanCacheRedisBase<KEY, DATA> {
24
+ ): ServiceCacheRedisBase<KEY, DATA> {
26
25
  if (cacheName.includes('.cacheRedis.')) {
27
26
  return this.app.bean._getBeanSelector(cacheName as any, undefined, cacheOptions);
28
27
  }
29
- return this.app.bean._getBeanSelector(BeanCacheRedisBase, cacheName, cacheOptions);
28
+ return this.app.bean._getBeanSelector(ServiceCacheRedisBase, cacheName, cacheOptions);
30
29
  }
31
30
  }
@@ -1,6 +1,6 @@
1
1
  import { LRUCache } from 'lru-cache';
2
2
  import { Virtual } from 'vona';
3
- import { Bean } from 'vona-module-a-bean';
3
+ import { Service } from 'vona-module-a-bean';
4
4
 
5
5
  import type { ICacheMemGetOptions, ICacheMemSetOptions } from '../types/cache.ts';
6
6
  import type { IDecoratorCacheMemOptions } from '../types/cacheMem.ts';
@@ -8,9 +8,9 @@ import type { IDecoratorCacheMemOptions } from '../types/cacheMem.ts';
8
8
  import { CacheBase } from '../common/cacheBase.ts';
9
9
  import { getCacheMemories } from '../lib/const.ts';
10
10
 
11
- @Bean()
11
+ @Service()
12
12
  @Virtual()
13
- export class BeanCacheMemBase<KEY = any, DATA = any> extends CacheBase<
13
+ export class ServiceCacheMemBase<KEY = any, DATA = any> extends CacheBase<
14
14
  IDecoratorCacheMemOptions,
15
15
  KEY
16
16
  > {
@@ -1,16 +1,16 @@
1
1
  import type { Redis } from 'ioredis';
2
2
 
3
3
  import { Virtual } from 'vona';
4
- import { Bean } from 'vona-module-a-bean';
4
+ import { Service } from 'vona-module-a-bean';
5
5
 
6
6
  import type { ICacheRedisGetOptions, ICacheRedisSetOptions } from '../types/cache.ts';
7
7
  import type { IDecoratorCacheRedisOptions } from '../types/cacheRedis.ts';
8
8
 
9
9
  import { CacheBase } from '../common/cacheBase.ts';
10
10
 
11
- @Bean()
11
+ @Service()
12
12
  @Virtual()
13
- export class BeanCacheRedisBase<KEY = any, DATA = any> extends CacheBase<
13
+ export class ServiceCacheRedisBase<KEY = any, DATA = any> extends CacheBase<
14
14
  IDecoratorCacheRedisOptions,
15
15
  KEY
16
16
  > {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-mailconfirm",
3
- "version": "5.1.5",
3
+ "version": "5.1.6",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  import type { TableIdentity } from 'table-identity';
2
2
 
3
- import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
3
+ import { ServiceCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
4
4
 
5
5
  export type TCacheRedisEmailConfirmKey = string;
6
6
  export interface TCacheRedisEmailConfirmData {
@@ -11,7 +11,7 @@ export interface TCacheRedisEmailConfirmData {
11
11
  @CacheRedis({
12
12
  ttl: 30 * 60 * 1000, // 30 minutes
13
13
  })
14
- export class CacheRedisEmailConfirm extends BeanCacheRedisBase<
14
+ export class CacheRedisEmailConfirm extends ServiceCacheRedisBase<
15
15
  TCacheRedisEmailConfirmKey,
16
16
  TCacheRedisEmailConfirmData
17
17
  > {}
@@ -1,6 +1,6 @@
1
1
  import type { TableIdentity } from 'table-identity';
2
2
 
3
- import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
3
+ import { ServiceCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
4
4
 
5
5
  export type TCacheRedisPasswordResetKey = string;
6
6
  export interface TCacheRedisPasswordResetData {
@@ -10,7 +10,7 @@ export interface TCacheRedisPasswordResetData {
10
10
  @CacheRedis({
11
11
  ttl: 30 * 60 * 1000, // 30 minutes
12
12
  })
13
- export class CacheRedisPasswordReset extends BeanCacheRedisBase<
13
+ export class CacheRedisPasswordReset extends ServiceCacheRedisBase<
14
14
  TCacheRedisPasswordResetKey,
15
15
  TCacheRedisPasswordResetData
16
16
  > {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-openapi",
3
- "version": "5.1.8",
3
+ "version": "5.1.9",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,13 +1,13 @@
1
1
  import type { ISummerCacheGet, TSummerCacheActionOptions } from 'vona-module-a-summer';
2
2
 
3
- import { BeanSummerCacheBase, SummerCache } from 'vona-module-a-summer';
3
+ import { ServiceSummerCacheBase, SummerCache } from 'vona-module-a-summer';
4
4
 
5
5
  export type TSummerCacheJsonKey = any;
6
6
  export type TSummerCacheJsonData = any;
7
7
 
8
8
  @SummerCache({ preset: 'mem' })
9
9
  export class SummerCacheJson
10
- extends BeanSummerCacheBase<TSummerCacheJsonKey, TSummerCacheJsonData>
10
+ extends ServiceSummerCacheBase<TSummerCacheJsonKey, TSummerCacheJsonData>
11
11
  implements ISummerCacheGet<TSummerCacheJsonKey, TSummerCacheJsonData>
12
12
  {
13
13
  async getNative(
@@ -1,7 +1,7 @@
1
1
  import type { IDecoratorDatabaseDialectOptions } from 'vona-module-a-orm';
2
- import { BeanDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
2
+ import { ServiceDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
3
3
 
4
4
  export interface IDatabaseDialectOptions<%=argv.beanNameCapitalize%> extends IDecoratorDatabaseDialectOptions {}
5
5
 
6
6
  @DatabaseDialect<IDatabaseDialectOptions<%=argv.beanNameCapitalize%>>()
7
- export class DatabaseDialect<%=argv.beanNameCapitalize%> extends BeanDatabaseDialectBase {}
7
+ export class DatabaseDialect<%=argv.beanNameCapitalize%> extends ServiceDatabaseDialectBase {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-orm",
3
- "version": "5.1.8",
3
+ "version": "5.1.9",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "db",
6
6
  "keywords": [
@@ -27,9 +27,7 @@ declare module 'vona-module-a-orm' {
27
27
  /** aopMethod: end */
28
28
  /** bean: begin */
29
29
  export * from '../bean/bean.database.ts';
30
- export * from '../bean/bean.databaseDialectBase.ts';
31
30
  export * from '../bean/bean.model.ts';
32
- export * from '../bean/bean.modelBase.ts';
33
31
 
34
32
  import 'vona';
35
33
  declare module 'vona' {
@@ -46,10 +44,12 @@ declare module 'vona-module-a-orm' {
46
44
  /** bean: end */
47
45
  /** bean: begin */
48
46
  import type { BeanDatabase } from '../bean/bean.database.ts';
49
- import 'vona';
47
+ import type { BeanModel } from '../bean/bean.model.ts';
48
+ import 'vona';
50
49
  declare module 'vona' {
51
50
  export interface IBeanRecordGlobal {
52
51
  'database': BeanDatabase;
52
+ 'model': BeanModel;
53
53
  }
54
54
  }
55
55
  /** bean: end */
@@ -61,6 +61,7 @@ export * from '../service/columns_.ts';
61
61
  export * from '../service/database.ts';
62
62
  export * from '../service/databaseAsyncLocalStorage_.ts';
63
63
  export * from '../service/databaseClient_.ts';
64
+ export * from '../service/databaseDialectBase_.ts';
64
65
  export * from '../service/db_.ts';
65
66
  export * from '../service/entityResolver_.ts';
66
67
  export * from '../service/modelResolver_.ts';
@@ -9,7 +9,7 @@ import type {
9
9
  IDatabaseClientRecord,
10
10
  IDbInfo,
11
11
  } from '../types/database.ts';
12
- import type { BeanDatabaseDialectBase } from './bean.databaseDialectBase.ts';
12
+ import type { ServiceDatabaseDialectBase } from '../service/databaseDialectBase_.ts';
13
13
 
14
14
  import { ServiceDatabaseAsyncLocalStorage } from '../service/databaseAsyncLocalStorage_.ts';
15
15
  import { ServiceDatabaseClient } from '../service/databaseClient_.ts';
@@ -44,13 +44,13 @@ export class BeanDatabase extends BeanBase {
44
44
  return this.getClient(dbInfoOrClientName, clientConfig).db;
45
45
  }
46
46
 
47
- getDialect(client: keyof IDatabaseClientDialectRecord): BeanDatabaseDialectBase {
47
+ getDialect(client: keyof IDatabaseClientDialectRecord): ServiceDatabaseDialectBase {
48
48
  if (!client) throw new Error('database dialect not specified');
49
49
  const beanFullName = beanFullNameFromOnionName(
50
50
  this.scope.config.dialects[client],
51
51
  'databaseDialect',
52
52
  );
53
- const dialect = this.app.bean._getBean(beanFullName) as BeanDatabaseDialectBase;
53
+ const dialect = this.app.bean._getBean(beanFullName) as ServiceDatabaseDialectBase;
54
54
  if (!dialect) throw new Error(`database dialect not found: ${client}`);
55
55
  return dialect;
56
56
  }
@@ -1,7 +1,7 @@
1
1
  import { Virtual } from 'vona';
2
2
  import { Bean } from 'vona-module-a-bean';
3
3
 
4
- import { BeanModelCrudTable } from './bean.model/bean.model_crud_table.ts';
4
+ import { BeanModelCrudTable } from '../lib/bean.model/bean.model_crud_table.ts';
5
5
 
6
6
  @Bean()
7
7
  @Virtual()
@@ -5,7 +5,7 @@ import { BeanBase } from 'vona';
5
5
  import { Schedule } from 'vona-module-a-schedule';
6
6
 
7
7
  import type { IModelRecord, ISoftDeletionPrune } from '../types/onion/model.ts';
8
- import type { BeanModelCache } from './bean.model/bean.model_cache.ts';
8
+ import type { BeanModelCache } from '../lib/bean.model/bean.model_cache.ts';
9
9
 
10
10
  @Schedule({ repeat: { every: 24 * 3600 * 1000 } })
11
11
  export class ScheduleSoftDeletionPrune extends BeanBase implements IScheduleExecute {
@@ -3,7 +3,7 @@ import type { Constructable } from 'vona';
3
3
  import { appResource, beanFullNameFromOnionName } from 'vona';
4
4
  import { prepareClassType } from 'vona-module-a-openapiutils';
5
5
 
6
- import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
6
+ import type { BeanModelMeta } from '../lib/bean.model/bean.model_meta.ts';
7
7
  import type { TypeModelColumn, TypeModelColumns } from '../types/modelWhere.ts';
8
8
  import type { IDecoratorModelOptions, IModelClassRecord } from '../types/onion/model.ts';
9
9
 
@@ -3,7 +3,7 @@ import 'bignumber.js';
3
3
  export * from './.metadata/index.ts';
4
4
 
5
5
  export * from './.metadata/locales.ts';
6
- export * from './bean/bean.model/bean.model_meta.ts';
6
+ export * from './lib/bean.model/bean.model_meta.ts';
7
7
  export * from './common/index.ts';
8
8
  export * from './extend/index.ts';
9
9
  export * from './lib/index.ts';
@@ -31,7 +31,7 @@ import type {
31
31
  TypeModelsClassLikeGeneral,
32
32
  TypeModelWhere,
33
33
  } from '../../types/index.ts';
34
- import type { TypeQueueDoubleDeleteJobData } from '../queue.doubleDelete.ts';
34
+ import type { TypeQueueDoubleDeleteJobData } from '../../bean/queue.doubleDelete.ts';
35
35
 
36
36
  import { getTargetColumnName } from '../../common/utils.ts';
37
37
  import { getCacheModelsClear } from '../../lib/const.ts';
@@ -15,7 +15,7 @@ import type {
15
15
  TypeModelOptionsTable,
16
16
  TypeModelRelationOptionsMetaClient,
17
17
  } from '../../types/index.ts';
18
- import type { BeanModel } from '../bean.model.ts';
18
+ import type { BeanModel } from '../../bean/bean.model.ts';
19
19
 
20
20
  import { getTableOrTableAlias, prepareClassModel } from '../../common/utils.ts';
21
21
  import { SymbolKeyEntity, SymbolKeyEntityMeta, SymbolKeyModelOptions } from '../../types/index.ts';
@@ -1,8 +1,3 @@
1
- import { Virtual } from 'vona';
2
- import { Bean } from 'vona-module-a-bean';
3
-
4
1
  import { BeanModelCache } from './bean.model/bean.model_cache.ts';
5
2
 
6
- @Bean()
7
- @Virtual()
8
3
  export class BeanModelBase<TRecord extends {} = any> extends BeanModelCache<TRecord> {}