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.
- 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 +288 -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 +29 -0
- package/.github/workflows/docs-pages.yml +54 -0
- package/.gitignore +1 -0
- package/CHANGELOG.md +46 -0
- package/CLAUDE.md +59 -0
- package/README.md +137 -0
- package/cabloy-docs/.vitepress/config.mjs +222 -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 +138 -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 +167 -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 +157 -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 +35 -0
- package/cabloy-docs/ai/verification.md +30 -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 +25 -0
- package/cabloy-docs/editions/cabloy-start.md +24 -0
- package/cabloy-docs/editions/detection.md +31 -0
- package/cabloy-docs/editions/overview.md +44 -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 +57 -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 +32 -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 +201 -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/edition-collaboration-differences.md +61 -0
- package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +64 -0
- package/cabloy-docs/fullstack/introduction.md +69 -0
- package/cabloy-docs/fullstack/openapi-to-sdk.md +116 -0
- package/cabloy-docs/fullstack/quickstart.md +86 -0
- package/cabloy-docs/fullstack/vona-zova-integration.md +86 -0
- package/cabloy-docs/index.md +73 -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 +3 -3
- package/vona/README.zh-CN.md +4 -4
- package/vona/packages-vona/vona/package.json +1 -1
- 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/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 +4 -4
- package/zova/README.zh-CN.md +4 -4
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolTwo/controller.tsx +0 -2
- package/zova/src/suite/a-home/modules/home-base/src/config/locale/en-us.ts +1 -0
- package/zova/src/suite/a-home/modules/home-base/src/config/locale/zh-cn.ts +1 -0
- package/zova/src/suite/a-home/modules/home-base/src/page/errorNotFound/controller.tsx +8 -2
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +1 -1
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.header.tsx +1 -1
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.locale.tsx +2 -5
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.tabs.tsx +1 -4
- package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/bean/sys.router.ts +28 -6
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/monkeySys.ts +15 -3
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/types/router.ts +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/src/model/tabs.ts +4 -0
- package/zova/src/suite-vendor/a-zova/package.json +3 -3
- /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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
10
|
+
export class CacheRedisAuthToken extends ServiceCacheRedisBase<
|
|
11
11
|
TCacheRedisAuthTokenKey,
|
|
12
12
|
TCacheRedisAuthTokenData
|
|
13
13
|
> {}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
11
|
+
export class CacheRedisWorkerAlive extends ServiceCacheRedisBase<
|
|
12
12
|
TCacheRedisWorkerAliveKey,
|
|
13
13
|
TCacheRedisWorkerAliveData
|
|
14
14
|
> {}
|
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/
|
|
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
|
|
42
|
+
The Web and Admin of Cabloy Store are built by one codebase
|
|
43
43
|
|
|
44
|
-
-
|
|
45
|
-
- 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
|
|
package/zova/README.zh-CN.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Zova: 直观的前端框架 = Vue3 响应式 + React TSX + Angular IOC
|
|
6
6
|
|
|
7
|
-
- 内置开箱即用的 SSR 解决方案,可在同一个代码库中实现`SSR/SPA/Web
|
|
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
|
|
43
|
+
使用同一套代码实现 Cabloy Store 的`Web`和`Admin`
|
|
44
44
|
|
|
45
|
-
- Web
|
|
46
|
-
- 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.
|
|
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.
|
|
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,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
|
-
<
|
|
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
|
);
|
package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.locale.tsx
CHANGED
|
@@ -22,13 +22,10 @@ export class RenderLocale extends BeanRenderBase {
|
|
|
22
22
|
<a
|
|
23
23
|
onClick={event => {
|
|
24
24
|
if (metaLocale) {
|
|
25
|
-
|
|
26
|
-
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
|
}
|
package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.tabs.tsx
CHANGED
|
@@ -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
|
-
|
|
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,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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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 {
|
|
@@ -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.
|
|
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.
|
|
26
|
+
"zova-module-a-router": "^5.1.23",
|
|
27
27
|
"zova-module-a-routerstack": "^5.1.20",
|
|
28
|
-
"zova-module-a-routertabs": "^5.1.
|
|
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",
|
/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
|