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.
- package/.claude/skills/cabloy-backend-scaffold/SKILL.md +207 -0
- package/.claude/skills/cabloy-backend-scaffold/evals/evals.json +29 -0
- package/.claude/skills/cabloy-backend-scaffold/references/backend-thread-map.md +52 -0
- package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +39 -0
- package/.claude/skills/cabloy-contract-loop/SKILL.md +201 -0
- package/.claude/skills/cabloy-contract-loop/evals/evals.json +29 -0
- package/.claude/skills/cabloy-contract-loop/references/contract-loop-map.md +47 -0
- package/.claude/skills/cabloy-contract-loop/references/verification-checklist.md +32 -0
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +230 -0
- package/.claude/skills/cabloy-frontend-scaffold/evals/evals.json +35 -0
- package/.claude/skills/cabloy-frontend-scaffold/references/follow-up-checklist.md +41 -0
- package/.claude/skills/cabloy-frontend-scaffold/references/frontend-thread-map.md +54 -0
- package/.claude/skills/cabloy-workflow/SKILL.md +292 -0
- package/.claude/skills/cabloy-workflow/evals/evals.json +35 -0
- package/.claude/skills/cabloy-workflow/references/cli-strategy.md +39 -0
- package/.claude/skills/cabloy-workflow/references/edition-detection.md +30 -0
- package/.github/workflows/docs-pages.yml +56 -0
- package/.gitignore +1 -0
- package/CHANGELOG.md +54 -0
- package/CLAUDE.md +59 -0
- package/README.md +152 -0
- package/cabloy-docs/.vitepress/config.mjs +255 -0
- package/cabloy-docs/.vitepress/public/CNAME +1 -0
- package/cabloy-docs/.vitepress/theme/custom.css +64 -0
- package/cabloy-docs/.vitepress/theme/edition-badges.md +5 -0
- package/cabloy-docs/.vitepress/theme/index.js +5 -0
- package/cabloy-docs/ai/class-placement-rule.md +139 -0
- package/cabloy-docs/ai/cli-for-agents.md +56 -0
- package/cabloy-docs/ai/cli-to-skill-map.md +165 -0
- package/cabloy-docs/ai/docs-skills-rules-mapping.md +168 -0
- package/cabloy-docs/ai/edition-consistency-checklist.md +150 -0
- package/cabloy-docs/ai/edition-detection.md +30 -0
- package/cabloy-docs/ai/future-skill-roadmap.md +135 -0
- package/cabloy-docs/ai/global-bean-lookup.md +158 -0
- package/cabloy-docs/ai/introduction.md +62 -0
- package/cabloy-docs/ai/playbook-backend-module.md +111 -0
- package/cabloy-docs/ai/playbook-contract-regeneration.md +100 -0
- package/cabloy-docs/ai/playbook-frontend-page.md +99 -0
- package/cabloy-docs/ai/playbook-metadata-refresh.md +67 -0
- package/cabloy-docs/ai/repo-guidance.md +58 -0
- package/cabloy-docs/ai/rules-and-config.md +29 -0
- package/cabloy-docs/ai/skills.md +37 -0
- package/cabloy-docs/ai/verification.md +31 -0
- package/cabloy-docs/ai/virtual-decorator-guidance.md +206 -0
- package/cabloy-docs/backend/aop-overview.md +128 -0
- package/cabloy-docs/backend/auth-guide.md +151 -0
- package/cabloy-docs/backend/backend-essentials.md +128 -0
- package/cabloy-docs/backend/broadcast-guide.md +138 -0
- package/cabloy-docs/backend/cache-guide.md +70 -0
- package/cabloy-docs/backend/captcha-guide.md +162 -0
- package/cabloy-docs/backend/cli.md +173 -0
- package/cabloy-docs/backend/config-guide.md +249 -0
- package/cabloy-docs/backend/controller-aop-guide.md +270 -0
- package/cabloy-docs/backend/controller-guide.md +347 -0
- package/cabloy-docs/backend/crud-workflow.md +118 -0
- package/cabloy-docs/backend/dto-guide.md +161 -0
- package/cabloy-docs/backend/dto-infer-generation.md +153 -0
- package/cabloy-docs/backend/dynamic-datasource-guide.md +70 -0
- package/cabloy-docs/backend/election-guide.md +141 -0
- package/cabloy-docs/backend/entity-guide.md +150 -0
- package/cabloy-docs/backend/error-guide.md +108 -0
- package/cabloy-docs/backend/event-guide.md +183 -0
- package/cabloy-docs/backend/external-aop-guide.md +149 -0
- package/cabloy-docs/backend/field-indexes.md +79 -0
- package/cabloy-docs/backend/foundation.md +281 -0
- package/cabloy-docs/backend/i18n-guide.md +211 -0
- package/cabloy-docs/backend/internal-aop-guide.md +181 -0
- package/cabloy-docs/backend/introduction.md +95 -0
- package/cabloy-docs/backend/jwt-guide.md +276 -0
- package/cabloy-docs/backend/logger-guide.md +223 -0
- package/cabloy-docs/backend/mail-guide.md +189 -0
- package/cabloy-docs/backend/menu-guide.md +80 -0
- package/cabloy-docs/backend/migration-and-changes.md +192 -0
- package/cabloy-docs/backend/model-guide.md +274 -0
- package/cabloy-docs/backend/multi-database-datasource.md +171 -0
- package/cabloy-docs/backend/multi-instance-and-instance-resolution.md +196 -0
- package/cabloy-docs/backend/openapi-guide.md +118 -0
- package/cabloy-docs/backend/orm-aggregate-group-guide.md +210 -0
- package/cabloy-docs/backend/orm-configuration-guide.md +165 -0
- package/cabloy-docs/backend/orm-guide.md +109 -0
- package/cabloy-docs/backend/orm-mutation-guide.md +195 -0
- package/cabloy-docs/backend/orm-select-guide.md +243 -0
- package/cabloy-docs/backend/queue-guide.md +271 -0
- package/cabloy-docs/backend/quickstart.md +141 -0
- package/cabloy-docs/backend/redis-guide.md +70 -0
- package/cabloy-docs/backend/redlock-guide.md +60 -0
- package/cabloy-docs/backend/relations-guide.md +250 -0
- package/cabloy-docs/backend/runtime-and-flavors.md +304 -0
- package/cabloy-docs/backend/schedule-guide.md +81 -0
- package/cabloy-docs/backend/scripts.md +116 -0
- package/cabloy-docs/backend/serialization-guide.md +192 -0
- package/cabloy-docs/backend/service-guide.md +166 -0
- package/cabloy-docs/backend/sharding-guide.md +49 -0
- package/cabloy-docs/backend/startup-guide.md +326 -0
- package/cabloy-docs/backend/transaction-guide.md +82 -0
- package/cabloy-docs/backend/unit-testing.md +209 -0
- package/cabloy-docs/backend/upload-guide.md +160 -0
- package/cabloy-docs/backend/user-access-guide.md +157 -0
- package/cabloy-docs/backend/validation-guide.md +80 -0
- package/cabloy-docs/backend/worker-guide.md +59 -0
- package/cabloy-docs/editions/cabloy-basic.md +26 -0
- package/cabloy-docs/editions/cabloy-start.md +55 -0
- package/cabloy-docs/editions/choosing-between-basic-and-start.md +84 -0
- package/cabloy-docs/editions/detection.md +31 -0
- package/cabloy-docs/editions/overview.md +107 -0
- package/cabloy-docs/frontend/api-guide.md +93 -0
- package/cabloy-docs/frontend/api-schema-guide.md +43 -0
- package/cabloy-docs/frontend/app-startup-guide.md +185 -0
- package/cabloy-docs/frontend/cli.md +78 -0
- package/cabloy-docs/frontend/component-guide.md +105 -0
- package/cabloy-docs/frontend/component-props-guide.md +97 -0
- package/cabloy-docs/frontend/component-v-model-guide.md +110 -0
- package/cabloy-docs/frontend/css-in-js-guide.md +151 -0
- package/cabloy-docs/frontend/design-principles.md +55 -0
- package/cabloy-docs/frontend/environment-config-guide.md +250 -0
- package/cabloy-docs/frontend/foundation.md +58 -0
- package/cabloy-docs/frontend/generic-component-guide.md +35 -0
- package/cabloy-docs/frontend/icon-engine-guide.md +88 -0
- package/cabloy-docs/frontend/introduction.md +33 -0
- package/cabloy-docs/frontend/ioc-and-beans.md +211 -0
- package/cabloy-docs/frontend/mock-guide.md +109 -0
- package/cabloy-docs/frontend/model-architecture.md +87 -0
- package/cabloy-docs/frontend/model-state-guide.md +70 -0
- package/cabloy-docs/frontend/module-scope.md +168 -0
- package/cabloy-docs/frontend/modules-and-suites.md +179 -0
- package/cabloy-docs/frontend/navigation-guards-guide.md +68 -0
- package/cabloy-docs/frontend/openapi-sdk-guide.md +102 -0
- package/cabloy-docs/frontend/page-guide.md +223 -0
- package/cabloy-docs/frontend/page-params-guide.md +87 -0
- package/cabloy-docs/frontend/page-query-guide.md +96 -0
- package/cabloy-docs/frontend/page-route-guide.md +147 -0
- package/cabloy-docs/frontend/quickstart.md +202 -0
- package/cabloy-docs/frontend/route-alias-guide.md +61 -0
- package/cabloy-docs/frontend/scripts.md +86 -0
- package/cabloy-docs/frontend/sdk-guide.md +45 -0
- package/cabloy-docs/frontend/server-data.md +74 -0
- package/cabloy-docs/frontend/ssr-client-only.md +40 -0
- package/cabloy-docs/frontend/ssr-env.md +51 -0
- package/cabloy-docs/frontend/ssr-init-data.md +46 -0
- package/cabloy-docs/frontend/ssr-overview.md +48 -0
- package/cabloy-docs/frontend/ssr-seo-meta.md +52 -0
- package/cabloy-docs/frontend/system-startup-guide.md +186 -0
- package/cabloy-docs/frontend/theme-guide.md +154 -0
- package/cabloy-docs/frontend/zod-guide.md +161 -0
- package/cabloy-docs/fullstack/cli.md +118 -0
- package/cabloy-docs/fullstack/comparison-with-other-frameworks.md +117 -0
- package/cabloy-docs/fullstack/edition-collaboration-differences.md +62 -0
- package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +64 -0
- package/cabloy-docs/fullstack/introduction.md +81 -0
- package/cabloy-docs/fullstack/openapi-to-sdk.md +116 -0
- package/cabloy-docs/fullstack/quickstart.md +89 -0
- package/cabloy-docs/fullstack/vona-zova-integration.md +86 -0
- package/cabloy-docs/fullstack/vscode-extensions.md +126 -0
- package/cabloy-docs/index.md +72 -0
- package/cabloy-docs/package.json +16 -0
- package/cabloy-docs/pnpm-lock.yaml +1607 -0
- package/cabloy-docs/reference/backend-directory-structure.md +88 -0
- package/cabloy-docs/reference/cli-reference.md +49 -0
- package/cabloy-docs/reference/glossary.md +38 -0
- package/cabloy-docs/reference/package-map.md +105 -0
- package/cabloy-docs/reference/repo-scripts.md +36 -0
- package/package.json +4 -1
- package/scripts/init.ts +12 -0
- package/scripts/upgrade.ts +31 -3
- package/vona/README.md +4 -4
- package/vona/README.zh-CN.md +4 -4
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/pnpm-lock.yaml +383 -38
- package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/src/bean/summerCache.datasourceWrite.ts +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/.metadata/index.ts +49 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/controller/memoryDiag.ts +97 -0
- package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
- package/vona/src/suite-vendor/a-captcha/modules/a-captcha/package.json +1 -1
- package/vona/src/suite-vendor/a-captcha/modules/a-captcha/src/bean/cacheRedis.captcha.ts +2 -2
- package/vona/src/suite-vendor/a-captcha/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-bean/cli/bean/metadata/generate.ts +5 -6
- package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheMem/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheRedis/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-cache/src/.metadata/index.ts +13 -2
- package/vona/src/suite-vendor/a-vona/modules/a-cache/src/bean/bean.cache.ts +6 -7
- package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheMemBase.ts → service/cacheMemBase_.ts} +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheRedisBase.ts → service/cacheRedisBase_.ts} +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.emailConfirm.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.passwordReset.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-openapi/src/bean/summerCache.json.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/cli/databaseDialect/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/.metadata/index.ts +4 -3
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.database.ts +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.model.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/schedule.softDeletionPrune.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/common/utils.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/index.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_cache.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_meta.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.modelBase.ts +0 -5
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoAggregate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoCreate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGroup.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoSelectAndCount.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoUpdate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/index.ts +1 -0
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/modelCacheBase.ts +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relations.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsDynamic.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsMutate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsStatic.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheEntity_.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheQuery_.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/database.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean/bean.databaseDialectBase.ts → service/databaseDialectBase_.ts} +38 -41
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/db_.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/relations_.ts +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/database.ts +0 -5
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoGet.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoMutate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoSelectAndCount.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/model.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelAggr.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelCount.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGeneral.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGroup.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelIncrement.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relations.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsColumns.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDef.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefDynamic.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefMutate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsMutate.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsTables.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.betterSqlite3.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.mysql.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.pg.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/bean.permission.ts +109 -40
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permission.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-startup/src/bean/cacheRedis.startupDebounce.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-summer/cli/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-summer/src/.metadata/index.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-summer/src/bean/bean.summer.ts +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localMem_.ts +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localRedis_.ts +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-summer/src/{bean/bean.summerCacheBase.ts → service/summerCacheBase_.ts} +3 -3
- package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.rapidoc.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.swagger.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-user/src/bean/cacheRedis.authToken.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-worker/src/bean/cacheRedis.workerAlive.ts +2 -2
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/README.md +5 -5
- package/zova/README.zh-CN.md +4 -4
- package/zova/package.original.json +4 -4
- package/zova/packages-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/package.json +2 -2
- package/zova/packages-utils/zova-jsx/package.json +2 -2
- package/zova/packages-utils/zova-vite/package.json +2 -2
- package/zova/packages-utils/zova-vite/templates/app/controller.tsx_ +3 -3
- package/zova/packages-zova/zova/package.json +3 -3
- package/zova/packages-zova/zova-core/package.json +2 -2
- package/zova/packages-zova/zova-core/src/bean/beanContainer.ts +3 -3
- package/zova/packages-zova/zova-core/src/bean/beanControllerPageBase.ts +1 -0
- package/zova/packages-zova/zova-core/src/core/component/module.ts +16 -16
- package/zova/packages-zova/zova-core/src/core/context/component.ts +35 -3
- package/zova/packages-zova/zova-core/src/core/context/util.ts +15 -11
- package/zova/pnpm-lock.yaml +1596 -1679
- package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/index.ts +11 -0
- package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/page/toolMinimal.ts +9 -0
- package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolMinimal/controller.tsx +11 -0
- package/zova/src/suite/a-demo/modules/demo-basic/src/routes.ts +10 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/service/storage.ts +4 -5
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/monkey.ts +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssr.ts +36 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssrMetaStore.ts +7 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/monkey.ts +3 -0
- package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/src/service/ssrHandler.ts +70 -29
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/package.json +6 -6
- /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud.ts +0 -0
- /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_inner.ts +0 -0
- /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_table.ts +0 -0
- /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_knex.ts +0 -0
- /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_utils.ts +0 -0
- /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_view.ts +0 -0
|
@@ -46,6 +46,7 @@ export * from '../page/routeQuery/controller.jsx';
|
|
|
46
46
|
export * from '../page/routeQueryB/controller.jsx';
|
|
47
47
|
export * from '../page/state/controller.jsx';
|
|
48
48
|
export * from '../page/style/controller.jsx';
|
|
49
|
+
export * from '../page/toolMinimal/controller.jsx';
|
|
49
50
|
export * from '../page/toolOne/controller.jsx';
|
|
50
51
|
export * from '../page/toolTwo/controller.jsx';
|
|
51
52
|
|
|
@@ -111,6 +112,11 @@ declare module 'zova-module-demo-basic' {
|
|
|
111
112
|
get scope(): ScopeModuleDemoBasic;
|
|
112
113
|
}
|
|
113
114
|
|
|
115
|
+
export interface ControllerPageToolMinimal {
|
|
116
|
+
/** @internal */
|
|
117
|
+
get scope(): ScopeModuleDemoBasic;
|
|
118
|
+
}
|
|
119
|
+
|
|
114
120
|
export interface ControllerPageToolOne {
|
|
115
121
|
/** @internal */
|
|
116
122
|
get scope(): ScopeModuleDemoBasic;
|
|
@@ -134,6 +140,7 @@ import { ControllerPageRouteQuery } from '../page/routeQuery/controller.jsx';
|
|
|
134
140
|
import { ControllerPageRouteQueryB } from '../page/routeQueryB/controller.jsx';
|
|
135
141
|
import { ControllerPageState } from '../page/state/controller.jsx';
|
|
136
142
|
import { ControllerPageStyle } from '../page/style/controller.jsx';
|
|
143
|
+
import { ControllerPageToolMinimal } from '../page/toolMinimal/controller.jsx';
|
|
137
144
|
import { ControllerPageToolOne } from '../page/toolOne/controller.jsx';
|
|
138
145
|
import { ControllerPageToolTwo } from '../page/toolTwo/controller.jsx';
|
|
139
146
|
import 'zova';
|
|
@@ -150,6 +157,7 @@ declare module 'zova' {
|
|
|
150
157
|
'demo-basic.controller.pageRouteQueryB': ControllerPageRouteQueryB;
|
|
151
158
|
'demo-basic.controller.pageState': ControllerPageState;
|
|
152
159
|
'demo-basic.controller.pageStyle': ControllerPageStyle;
|
|
160
|
+
'demo-basic.controller.pageToolMinimal': ControllerPageToolMinimal;
|
|
153
161
|
'demo-basic.controller.pageToolOne': ControllerPageToolOne;
|
|
154
162
|
'demo-basic.controller.pageToolTwo': ControllerPageToolTwo;
|
|
155
163
|
}
|
|
@@ -166,6 +174,7 @@ export * from './page/routeQueryB.js';
|
|
|
166
174
|
import { NSControllerPageRouteQueryB } from './page/routeQueryB.js';
|
|
167
175
|
export * from './page/state.js';
|
|
168
176
|
export * from './page/style.js';
|
|
177
|
+
export * from './page/toolMinimal.js';
|
|
169
178
|
export * from './page/toolOne.js';
|
|
170
179
|
import { NSControllerPageToolOne } from './page/toolOne.js';
|
|
171
180
|
export * from './page/toolTwo.js';
|
|
@@ -182,11 +191,13 @@ export interface IPagePathRecord {
|
|
|
182
191
|
'/demo/basic/routeQueryB': TypePagePathSchema<NSControllerPageRouteQueryB.ParamsInput,NSControllerPageRouteQueryB.QueryInput>;
|
|
183
192
|
'/demo/basic/state': TypePagePathSchema<undefined,undefined>;
|
|
184
193
|
'/demo/basic/style': TypePagePathSchema<undefined,undefined>;
|
|
194
|
+
'/demo/basic/toolMinimal': TypePagePathSchema<undefined,undefined>;
|
|
185
195
|
'/demo/basic/toolOne/:id?': TypePagePathSchema<NSControllerPageToolOne.ParamsInput,NSControllerPageToolOne.QueryInput>;
|
|
186
196
|
'/demo/basic/toolTwo/:id?': TypePagePathSchema<NSControllerPageToolTwo.ParamsInput,NSControllerPageToolTwo.QueryInput>;
|
|
187
197
|
}
|
|
188
198
|
export interface IPageNameRecord {
|
|
189
199
|
'demo-basic:routeParams': undefined;
|
|
200
|
+
'demo-basic:toolMinimal': undefined;
|
|
190
201
|
'demo-basic:toolOne': undefined;
|
|
191
202
|
'demo-basic:toolTwo': undefined;
|
|
192
203
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BeanControllerPageBase } from 'zova';
|
|
2
|
+
import { Controller } from 'zova-module-a-bean';
|
|
3
|
+
|
|
4
|
+
@Controller()
|
|
5
|
+
export class ControllerPageToolMinimal extends BeanControllerPageBase {
|
|
6
|
+
protected async __init__() {}
|
|
7
|
+
|
|
8
|
+
protected render() {
|
|
9
|
+
return <div>minimal</div>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -7,6 +7,7 @@ import { ZPageRouteQuery } from './.metadata/page/routeQuery.js';
|
|
|
7
7
|
import { ZPageRouteQueryB } from './.metadata/page/routeQueryB.js';
|
|
8
8
|
import { ZPageState } from './.metadata/page/state.js';
|
|
9
9
|
import { ZPageStyle } from './.metadata/page/style.js';
|
|
10
|
+
import { ZPageToolMinimal } from './.metadata/page/toolMinimal.js';
|
|
10
11
|
import { ZPageToolOne } from './.metadata/page/toolOne.js';
|
|
11
12
|
import { ZPageToolTwo } from './.metadata/page/toolTwo.js';
|
|
12
13
|
|
|
@@ -26,6 +27,15 @@ export const routes: IModuleRoute[] = [
|
|
|
26
27
|
},
|
|
27
28
|
},
|
|
28
29
|
{ path: 'routeQueryB', component: ZPageRouteQueryB, meta: { requiresAuth: false } },
|
|
30
|
+
{
|
|
31
|
+
name: 'toolMinimal',
|
|
32
|
+
path: 'toolMinimal',
|
|
33
|
+
component: ZPageToolMinimal,
|
|
34
|
+
meta: {
|
|
35
|
+
layout: 'empty',
|
|
36
|
+
requiresAuth: false,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
29
39
|
{
|
|
30
40
|
name: 'toolOne',
|
|
31
41
|
path: 'toolOne/:id?',
|
|
@@ -10,11 +10,10 @@ export class ServiceStorage extends BeanBase {
|
|
|
10
10
|
|
|
11
11
|
async moduleLoaded() {
|
|
12
12
|
// options
|
|
13
|
-
|
|
13
|
+
const options = deepExtend({}, this.scope.config.queryClientConfig.defaultOptions);
|
|
14
14
|
if (process.env.SERVER) {
|
|
15
|
-
options
|
|
16
|
-
|
|
17
|
-
});
|
|
15
|
+
options.queries ??= {};
|
|
16
|
+
options.queries.gcTime = Infinity;
|
|
18
17
|
}
|
|
19
18
|
// queryCache
|
|
20
19
|
const queryCache = new QueryCache();
|
|
@@ -39,7 +38,7 @@ export class ServiceStorage extends BeanBase {
|
|
|
39
38
|
},
|
|
40
39
|
});
|
|
41
40
|
}
|
|
42
|
-
this._queryClient
|
|
41
|
+
this._queryClient?.clear();
|
|
43
42
|
});
|
|
44
43
|
}
|
|
45
44
|
// client
|
|
@@ -22,7 +22,7 @@ export class Monkey extends BeanSimple implements IMonkeyModule, IMonkeyBeanInit
|
|
|
22
22
|
if (this._moduleSelf === module) {
|
|
23
23
|
await this._loadSdk();
|
|
24
24
|
this.ctx.util.instanceScope(() => {
|
|
25
|
-
|
|
25
|
+
watch(
|
|
26
26
|
() => {
|
|
27
27
|
return this.app.meta.locale.current;
|
|
28
28
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ComponentInternalInstance, Ref, VNode } from 'vue';
|
|
2
|
-
import type { Functionable } from 'zova';
|
|
2
|
+
import type { Functionable, ZovaContext } from 'zova';
|
|
3
3
|
|
|
4
4
|
import { includeBooleanAttr, isBooleanAttr, isString, stringifyStyle } from '@vue/shared';
|
|
5
5
|
import { defu } from 'defu';
|
|
@@ -23,6 +23,7 @@ const SymbolOnHydrateds = Symbol('SymbolOnHydrateds');
|
|
|
23
23
|
const SymbolOnHydratePropHasMismatches = Symbol('SymbolOnHydratePropHasMismatches');
|
|
24
24
|
const SymbolInstanceUpdates = Symbol('SymbolInstanceUpdates');
|
|
25
25
|
const SymbolHydratingCounter = Symbol('SymbolHydratingCounter');
|
|
26
|
+
const SymbolServerContexts = Symbol('SymbolServerContexts');
|
|
26
27
|
|
|
27
28
|
export class CtxSSR extends BeanSimple {
|
|
28
29
|
private [SymbolIsRuntimeSsrPreHydration]: Ref<boolean> = ref(false);
|
|
@@ -33,11 +34,15 @@ export class CtxSSR extends BeanSimple {
|
|
|
33
34
|
private [SymbolInstanceUpdates]: ComponentInternalInstance[] = [];
|
|
34
35
|
|
|
35
36
|
private [SymbolHydratingCounter]: number = 0;
|
|
37
|
+
private [SymbolServerContexts]: Set<ZovaContext> = new Set();
|
|
36
38
|
|
|
37
39
|
public metaStore: CtxSSRMetaStore;
|
|
38
40
|
|
|
39
41
|
/** @internal */
|
|
40
42
|
public initialize() {
|
|
43
|
+
if (process.env.SERVER) {
|
|
44
|
+
this._serverContextRegister();
|
|
45
|
+
}
|
|
41
46
|
// ssr state
|
|
42
47
|
this[SymbolSSRState] = this.sys.bean._getBeanSyncOnly('a-ssr.sys.ssrState');
|
|
43
48
|
// SymbolIsRuntimeSsrPreHydration
|
|
@@ -63,6 +68,26 @@ export class CtxSSR extends BeanSimple {
|
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
private _serverContextRegister(currentContext: ZovaContext = this.ctx) {
|
|
72
|
+
const serverContexts = this[SymbolServerContexts];
|
|
73
|
+
serverContexts.add(currentContext);
|
|
74
|
+
this.context.onRendered(() => {
|
|
75
|
+
serverContexts.delete(currentContext);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private _serverContextsDispose() {
|
|
80
|
+
const serverContexts = this[SymbolServerContexts];
|
|
81
|
+
for (const serverContext of serverContexts) {
|
|
82
|
+
if (serverContext.disposed) continue;
|
|
83
|
+
if (serverContext.bean && serverContext.bean !== serverContext.app?.bean) {
|
|
84
|
+
serverContext.bean.dispose();
|
|
85
|
+
}
|
|
86
|
+
serverContext.dispose();
|
|
87
|
+
}
|
|
88
|
+
serverContexts.clear();
|
|
89
|
+
}
|
|
90
|
+
|
|
66
91
|
get isRuntimeSsrPreHydration() {
|
|
67
92
|
return this[SymbolIsRuntimeSsrPreHydration].value;
|
|
68
93
|
}
|
|
@@ -265,4 +290,14 @@ export class CtxSSR extends BeanSimple {
|
|
|
265
290
|
}
|
|
266
291
|
return false;
|
|
267
292
|
}
|
|
293
|
+
|
|
294
|
+
/** @internal */
|
|
295
|
+
public _registerServerContext(currentContext: ZovaContext) {
|
|
296
|
+
this._serverContextRegister(currentContext);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/** @internal */
|
|
300
|
+
public _disposeServerContexts() {
|
|
301
|
+
this._serverContextsDispose();
|
|
302
|
+
}
|
|
268
303
|
}
|
|
@@ -32,13 +32,18 @@ export class CtxSSRMetaStore extends BeanSimple {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
private _onRenderedLast(err?: Error) {
|
|
35
|
-
|
|
35
|
+
const app = this.app;
|
|
36
|
+
try {
|
|
37
|
+
if (err) return;
|
|
38
|
+
|
|
36
39
|
const ssrContext = this.ctx.meta.$ssr.context;
|
|
37
40
|
this._injectContextState(ssrContext);
|
|
38
41
|
this._injectContextStateDefer(ssrContext);
|
|
39
42
|
this._injectServerMeta(ssrContext);
|
|
43
|
+
} finally {
|
|
44
|
+
this.ctx.meta.$ssr._disposeServerContexts();
|
|
45
|
+
app?.close();
|
|
40
46
|
}
|
|
41
|
-
this.app.close();
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
addMetaOptions(metaOptionsWrapper: SSRMetaOptionsWrapper) {
|
|
@@ -72,42 +72,83 @@ export class ServiceSsrHandler extends BeanBase {
|
|
|
72
72
|
onRenderedList.push(fn);
|
|
73
73
|
},
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
let renderFn;
|
|
76
|
+
let runtimePageContent = '';
|
|
77
|
+
let renderedError;
|
|
78
|
+
let onRenderedFlushed = false;
|
|
79
|
+
let renderedFinalized = false;
|
|
80
|
+
try {
|
|
81
|
+
// render
|
|
82
|
+
renderFn = await serverEntry(ssrContext);
|
|
83
|
+
const [runtimePageContentInner, err] = await catchError(() => {
|
|
84
|
+
return renderToString(renderFn, ssrContext);
|
|
85
|
+
});
|
|
86
|
+
if (runtimePageContentInner) {
|
|
87
|
+
runtimePageContent = runtimePageContentInner as string;
|
|
88
|
+
}
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
fn
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
const error = ssrContext._meta.renderError ?? err;
|
|
91
|
+
renderedError = error;
|
|
92
|
+
onRenderedList.forEach(fn => {
|
|
93
|
+
fn(error);
|
|
94
|
+
});
|
|
95
|
+
onRenderedFlushed = true;
|
|
96
|
+
cast(ssrContext).rendered(error);
|
|
97
|
+
renderedFinalized = true;
|
|
98
|
+
if (error) {
|
|
99
|
+
if (error instanceof Error) throw error;
|
|
100
|
+
return error;
|
|
101
|
+
}
|
|
90
102
|
|
|
91
|
-
|
|
103
|
+
ssrContext._meta.runtimePageContent = runtimePageContent;
|
|
104
|
+
|
|
105
|
+
// @vitejs/plugin-vue injects code into a component's setup() that registers
|
|
106
|
+
// itself on ctx.modules. After the render, ctx.modules would contain all the
|
|
107
|
+
// components that have been instantiated during this render call.
|
|
108
|
+
const modules = cast(ssrContext).modules;
|
|
109
|
+
if (modules) {
|
|
110
|
+
ssrContext._meta.endingHeadTags += this._renderModulesPreload_zova(modules, {
|
|
111
|
+
ssrContext,
|
|
112
|
+
});
|
|
113
|
+
ssrContext._meta.endingHeadTags += this._renderModulesPreload(modules, {
|
|
114
|
+
ssrContext,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
92
117
|
|
|
93
|
-
|
|
94
|
-
// itself on ctx.modules. After the render, ctx.modules would contain all the
|
|
95
|
-
// components that have been instantiated during this render call.
|
|
96
|
-
ssrContext._meta.endingHeadTags += this._renderModulesPreload_zova(cast(ssrContext).modules, {
|
|
97
|
-
ssrContext,
|
|
98
|
-
});
|
|
99
|
-
ssrContext._meta.endingHeadTags += this._renderModulesPreload(cast(ssrContext).modules, {
|
|
100
|
-
ssrContext,
|
|
101
|
-
});
|
|
118
|
+
const html = renderTemplate(ssrContext);
|
|
102
119
|
|
|
103
|
-
|
|
120
|
+
// transferCache
|
|
121
|
+
await this._renderTransferCache(options, route);
|
|
104
122
|
|
|
105
|
-
|
|
106
|
-
await this._renderTransferCache(options, route);
|
|
123
|
+
// todo: ssg
|
|
107
124
|
|
|
108
|
-
|
|
125
|
+
return html;
|
|
126
|
+
} finally {
|
|
127
|
+
const context = cast(ssrContext);
|
|
128
|
+
if (!onRenderedFlushed) {
|
|
129
|
+
onRenderedList.forEach(fn => {
|
|
130
|
+
fn(renderedError);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (!renderedFinalized && typeof context.rendered === 'function') {
|
|
134
|
+
context.rendered(renderedError);
|
|
135
|
+
}
|
|
136
|
+
onRenderedList.length = 0;
|
|
137
|
+
this._clearSsrContext(context);
|
|
138
|
+
renderFn = undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
109
141
|
|
|
110
|
-
|
|
142
|
+
private _clearSsrContext(context): void {
|
|
143
|
+
context.modules?.clear?.();
|
|
144
|
+
if (context.__qMetaList?.length) {
|
|
145
|
+
context.__qMetaList.length = 0;
|
|
146
|
+
}
|
|
147
|
+
context.state = undefined;
|
|
148
|
+
context.stateDefer = undefined;
|
|
149
|
+
context.performAction = undefined;
|
|
150
|
+
context.rendered = undefined;
|
|
151
|
+
context._meta = undefined;
|
|
111
152
|
}
|
|
112
153
|
|
|
113
154
|
public async ensureReady(handlerNonce: number) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-module-a-zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.61",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "zova",
|
|
6
6
|
"keywords": [
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@cabloy/word-utils": "^2.1.14",
|
|
44
44
|
"defu": "^6.1.7",
|
|
45
45
|
"luxon": "^3.7.2",
|
|
46
|
-
"zova-jsx": "^1.1.
|
|
46
|
+
"zova-jsx": "^1.1.55"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@cabloy/cli": "^3.1.14",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-suite-a-zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.93",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "zova",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,18 +21,18 @@
|
|
|
21
21
|
"zova-module-a-interceptor": "^5.1.22",
|
|
22
22
|
"zova-module-a-logger": "^5.1.20",
|
|
23
23
|
"zova-module-a-meta": "^5.1.15",
|
|
24
|
-
"zova-module-a-model": "^5.1.
|
|
25
|
-
"zova-module-a-openapi": "^5.1.
|
|
24
|
+
"zova-module-a-model": "^5.1.24",
|
|
25
|
+
"zova-module-a-openapi": "^5.1.31",
|
|
26
26
|
"zova-module-a-router": "^5.1.23",
|
|
27
27
|
"zova-module-a-routerstack": "^5.1.20",
|
|
28
28
|
"zova-module-a-routertabs": "^5.1.25",
|
|
29
|
-
"zova-module-a-ssr": "^5.1.
|
|
29
|
+
"zova-module-a-ssr": "^5.1.19",
|
|
30
30
|
"zova-module-a-ssrhmr": "^5.1.16",
|
|
31
|
-
"zova-module-a-ssrserver": "^5.1.
|
|
31
|
+
"zova-module-a-ssrserver": "^5.1.16",
|
|
32
32
|
"zova-module-a-style": "^5.1.25",
|
|
33
33
|
"zova-module-a-table": "^5.1.27",
|
|
34
34
|
"zova-module-a-zod": "^5.1.23",
|
|
35
|
-
"zova-module-a-zova": "^5.1.
|
|
35
|
+
"zova-module-a-zova": "^5.1.61"
|
|
36
36
|
},
|
|
37
37
|
"title": "a-zova"
|
|
38
38
|
}
|
/package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_knex.ts
RENAMED
|
File without changes
|
/package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_utils.ts
RENAMED
|
File without changes
|
/package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_view.ts
RENAMED
|
File without changes
|