cabloy 5.1.52 → 5.1.54
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-frontend-scaffold/SKILL.md +10 -0
- package/.github/workflows/docs-pages.yml +1 -1
- package/.github/workflows/vona-cov-pg.yml +1 -1
- package/.github/workflows/vona-test-crud.yml +1 -1
- package/.github/workflows/vona-test-mysql.yml +1 -1
- package/.github/workflows/vona-test-pg.yml +1 -1
- package/.github/workflows/vona-test-sqlite3.yml +1 -1
- package/.github/workflows/vona-tsc.yml +1 -1
- package/.github/workflows/zova-ui.yml +1 -1
- package/CHANGELOG.md +33 -0
- package/CLAUDE.md +3 -0
- package/README.md +8 -8
- package/cabloy-docs/.vitepress/config.mjs +144 -50
- package/cabloy-docs/ai/introduction.md +44 -0
- package/cabloy-docs/backend/model-guide.md +7 -0
- package/cabloy-docs/backend/orm-mutation-guide.md +10 -0
- package/cabloy-docs/backend/orm-select-guide.md +7 -6
- package/cabloy-docs/backend/quickstart.md +9 -9
- package/cabloy-docs/editions/cabloy-start.md +3 -3
- package/cabloy-docs/editions/choosing-between-basic-and-start.md +5 -5
- package/cabloy-docs/editions/overview.md +34 -3
- package/cabloy-docs/frontend/css-in-js-guide.md +1 -1
- package/cabloy-docs/frontend/environment-config-guide.md +28 -0
- package/cabloy-docs/frontend/foundation.md +1 -1
- package/cabloy-docs/frontend/introduction.md +69 -1
- package/cabloy-docs/frontend/navigation-guards-guide.md +1 -1
- package/cabloy-docs/frontend/quickstart.md +1 -0
- package/cabloy-docs/frontend/scripts.md +1 -1
- package/cabloy-docs/frontend/ssr-env.md +23 -0
- package/cabloy-docs/frontend/theme-guide.md +140 -7
- package/cabloy-docs/fullstack/cli.md +6 -6
- package/cabloy-docs/fullstack/edition-collaboration-differences.md +1 -1
- package/cabloy-docs/fullstack/introduction.md +39 -1
- package/cabloy-docs/fullstack/quickstart.md +8 -8
- package/cabloy-docs/fullstack/vona-zova-integration.md +1 -1
- package/cabloy-docs/index.md +1 -1
- package/cabloy-docs/pnpm-workspace.yaml +2 -0
- package/cabloy-docs/reference/cli-reference.md +65 -20
- package/cabloy-docs/reference/frontend-directory-structure.md +125 -0
- package/cabloy-docs/reference/introduction.md +47 -0
- package/cabloy-docs/reference/package-map.md +2 -0
- package/cabloy-docs/reference/repo-scripts.md +5 -3
- package/package.json +3 -3
- package/scripts/init.ts +18 -0
- package/vona/README.md +5 -5
- package/vona/README.zh-CN.md +5 -5
- package/vona/package.original.json +1 -6
- package/vona/packages-cli/cabloy-cli/package.json +2 -2
- package/vona/packages-cli/cli/README.md +56 -0
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli/src/bin/vona.ts +0 -26
- package/vona/packages-cli/cli-set-api/README.md +48 -0
- package/vona/packages-cli/cli-set-api/cli/templates/create/module/boilerplate/_package.json +1 -1
- package/vona/packages-cli/cli-set-api/package.json +2 -2
- package/vona/packages-cli/cli-set-api/src/lib/bean/cli.bin.test.ts +16 -5
- package/vona/packages-cli/cli-set-api/src/lib/command/bin.build.ts +2 -2
- package/vona/packages-cli/cli-set-api/src/lib/command/bin.buildGeneral.ts +1 -1
- package/vona/packages-cli/cli-set-api/src/lib/command/bin.buildModule.ts +1 -1
- package/vona/packages-cli/cli-set-api/src/lib/command/bin.play.ts +2 -1
- package/vona/packages-cli/cli-set-api/src/lib/command/bin.test.ts +1 -1
- package/vona/packages-utils/cascade-extend/package.json +2 -2
- package/vona/packages-utils/compose/package.json +2 -2
- package/vona/packages-utils/deps/package.json +2 -2
- package/vona/packages-utils/dotenv/package.json +2 -2
- package/vona/packages-utils/extend/package.json +2 -2
- package/vona/packages-utils/json5/package.json +2 -2
- package/vona/packages-utils/lint/package.json +1 -1
- package/vona/packages-utils/lint/src/oxc/lint.ts +1 -4
- package/vona/packages-utils/lint/src/oxc/lintVue.ts +1 -4
- package/vona/packages-utils/localeutil/package.json +2 -2
- package/vona/packages-utils/module-glob/package.json +2 -2
- package/vona/packages-utils/module-info-pro/package.json +2 -2
- package/vona/packages-utils/password-hash-salt/package.json +2 -2
- package/vona/packages-utils/process-helper/package.json +2 -2
- package/vona/packages-utils/socket/package.json +2 -2
- package/vona/packages-utils/table-identity/package.json +2 -2
- package/vona/packages-utils/utils/package.json +2 -2
- package/vona/packages-utils/zod-errors-custom/package.json +2 -2
- package/vona/packages-utils/zod-openapi/package.json +2 -2
- package/vona/packages-utils/zod-query/package.json +2 -2
- package/vona/packages-vona/vona/package.json +2 -2
- package/vona/packages-vona/vona-core/package.json +2 -2
- package/vona/packages-vona/vona-mock/package.json +2 -2
- package/vona/packages-vona/vona-shared/package.json +2 -2
- package/vona/pnpm-lock.yaml +1520 -1826
- package/vona/pnpm-workspace.yaml +28 -7
- package/vona/src/suite/a-demo/modules/demo-basic/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-base/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-index/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-user/package.json +1 -1
- package/vona/src/suite/cabloy-basic/modules/basic-siteadmin/package.json +1 -1
- package/vona/src/suite/cabloy-basic/modules/basic-siteweb/package.json +1 -1
- package/vona/src/suite-vendor/a-auth/modules/a-auth/package.json +2 -2
- package/vona/src/suite-vendor/a-auth/modules/auth-oauth/package.json +2 -2
- package/vona/src/suite-vendor/a-auth/modules/auth-simple/package.json +2 -2
- package/vona/src/suite-vendor/a-auth/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-cabloy/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-datasource/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-socket/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssrhmr/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-status/package.json +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 +2 -2
- package/vona/src/suite-vendor/a-captcha/modules/captcha-simple/package.json +2 -2
- package/vona/src/suite-vendor/a-captcha/package.json +1 -1
- package/vona/src/suite-vendor/a-paypal/modules/a-paypal/package.json +2 -2
- package/vona/src/suite-vendor/a-paypal/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-aspect/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-aspectutils/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-beanmutate/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-body/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-broadcast/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-caching/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-election/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-error/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-event/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-executor/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-hmr/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-hmrbase/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-index/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-instance/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-jwt/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-locale/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-logger/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-mail/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-menu/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-meta/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-onion/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapischema/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/common/buildWhere.ts +8 -9
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/bean.model/bean.model_cache.ts +15 -9
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelWhere.ts +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-ormutils/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-play/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-printtip/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-queue/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-redis/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-redlock/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-runtime/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-schedule/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-security/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-serialization/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-static/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-validation/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-version/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-vona/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-web/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-zod/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/package.original.json +2 -15
- package/zova/packages-cli/cli/README.md +58 -0
- package/zova/packages-cli/cli/package.json +4 -4
- package/zova/packages-cli/cli/src/bin/zova.ts +0 -25
- package/zova/packages-cli/cli-set-front/README.md +50 -0
- package/zova/packages-cli/cli-set-front/cli/templates/create/module/boilerplate/_package.json +1 -1
- package/zova/packages-cli/cli-set-front/package.json +7 -7
- package/zova/packages-cli/cli-set-front/src/lib/bean/cli.bin.buildRest.ts +49 -15
- package/zova/packages-cli/cli-set-front/src/lib/bean/cli.tools.metadata.ts +1 -1
- package/zova/packages-cli/cli-set-front/src/lib/bean/toolsMetadata/generateConfig.ts +2 -12
- package/zova/packages-cli/cli-set-front/src/lib/beans.ts +0 -4
- package/zova/packages-cli/cli-set-front/src/lib/command/bin.buildModule.ts +1 -1
- package/zova/packages-cli/cli-set-front/src/lib/command/bin.buildRest.ts +1 -1
- package/zova/packages-utils/logger/package.json +3 -3
- package/zova/packages-utils/zova-jsx/package.json +6 -6
- package/zova/packages-utils/zova-openapi/package.json +2 -2
- package/zova/packages-utils/zova-vite/package.json +6 -6
- package/zova/packages-zova/zova/package.json +4 -4
- package/zova/packages-zova/zova-core/package.json +13 -13
- package/zova/packages-zova/zova-core/src/core/sys/config.ts +1 -1
- package/zova/pnpm-lock.yaml +427 -375
- package/zova/pnpm-workspace.yaml +21 -0
- package/zova/src/front/config/config/config.ts +1 -1
- package/zova/src/suite/a-demo/modules/demo-basic/package.json +1 -1
- package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-demo/modules/demo-todo/package.json +1 -1
- package/zova/src/suite/a-devui/modules/devui-adapter/package.json +1 -1
- package/zova/src/suite/a-devui/modules/devui-adapter/src/bean/meta.themeHandler.ts +1 -0
- package/zova/src/suite/a-home/modules/home-api/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-base/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-base/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-base/src/service/routerGuards.ts +1 -1
- package/zova/src/suite/a-home/modules/home-base/src/service/ssrLayout.ts +1 -0
- package/zova/src/suite/a-home/modules/home-icon/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-indexadmin/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-indexweb/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutadmin/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutadmin/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-layoutempty/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutweb/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutweb/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +2 -2
- package/zova/src/suite/a-home/modules/home-login/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-login/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-passport/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-passport/src/model/passport.ts +2 -2
- package/zova/src/suite/a-home/modules/home-theme/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-adapter/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-captcha/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-captcha/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-commands/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-commandssync/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-currency/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-date/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-form/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-form/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-input/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-page/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-select/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-table/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-table/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-text/package.json +1 -1
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +2 -2
- package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-api/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-app/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-bean/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-behavior/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-behaviors/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-boundary/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-command/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-fetch/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-icon/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-interceptor/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-interceptor/src/bean/interceptor.jwt.ts +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-logger/package.json +3 -3
- package/zova/src/suite-vendor/a-zova/modules/a-meta/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +3 -3
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-routerstack/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssrMetaStore.ts +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-ssrhmr/package.json +3 -3
- package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-style/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-style/src/bean/bean.theme.ts +6 -3
- package/zova/src/suite-vendor/a-zova/modules/a-table/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-zod/package.json +5 -5
- package/zova/src/suite-vendor/a-zova/modules/a-zod/src/.metadata/locales.ts +0 -15
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +9 -9
- package/zova/src/suite-vendor/a-zova/package.json +26 -26
- package/zova/packages-cli/cli-set-front/src/lib/command/init.legacy.ts +0 -10
- package/zova/packages-cli/cli-set-front/src/lib/command/refactor.componentEmits.ts +0 -33
- package/zova/packages-cli/cli-set-front/src/lib/command/refactor.componentSlots.ts +0 -33
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
# CLI Reference
|
|
2
2
|
|
|
3
|
-
This page is the
|
|
3
|
+
This page is the fast orientation map for the two main Cabloy CLI entrypoints. Use it first when you need to answer three questions quickly:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
1. Should this workflow use Vona or Zova?
|
|
6
|
+
2. Which command families already exist?
|
|
7
|
+
3. Where is the authoritative command definition for a specific command?
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
## Quick routing
|
|
10
|
+
|
|
11
|
+
### Use Vona for backend workflows
|
|
12
|
+
|
|
13
|
+
Run from the repo root:
|
|
8
14
|
|
|
9
15
|
```bash
|
|
10
16
|
npm run vona :
|
|
@@ -12,38 +18,77 @@ npm run vona :create
|
|
|
12
18
|
npm run vona :tools
|
|
13
19
|
```
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- `bin:*`
|
|
18
|
-
- `create:*`
|
|
19
|
-
- `init:*`
|
|
20
|
-
- `tools:*`
|
|
21
|
+
Choose Vona for backend-oriented work such as suites, modules, beans, metadata, runtime assets, tests, and backend build or dev tasks.
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
### Use Zova for frontend workflows
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
Run from the repo root:
|
|
25
26
|
|
|
26
27
|
```bash
|
|
27
28
|
npm run zova :
|
|
28
29
|
npm run zova :create
|
|
29
30
|
npm run zova :refactor
|
|
31
|
+
npm run zova :openapi
|
|
30
32
|
```
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
Choose Zova for frontend-oriented work such as pages, components, frontend beans, refactors, generated frontend metadata, and OpenAPI-to-SDK generation.
|
|
35
|
+
|
|
36
|
+
## Source of truth
|
|
37
|
+
|
|
38
|
+
The shared root scripts live in `package.json`:
|
|
39
|
+
|
|
40
|
+
- `npm run vona`
|
|
41
|
+
- `npm run zova`
|
|
42
|
+
|
|
43
|
+
Those scripts enter thin CLI launchers and then hand off to the real command catalogs:
|
|
44
|
+
|
|
45
|
+
- Vona entrypoint: `vona/packages-cli/cli/src/bin/vona.ts`
|
|
46
|
+
- Zova entrypoint: `zova/packages-cli/cli/src/bin/zova.ts`
|
|
47
|
+
- Vona command registry: `vona/packages-cli/cli-set-api/src/lib/commands.ts`
|
|
48
|
+
- Zova command registry: `zova/packages-cli/cli-set-front/src/lib/commands.ts`
|
|
49
|
+
|
|
50
|
+
When you need the authoritative command-family map, inspect the two `commands.ts` files first.
|
|
51
|
+
|
|
52
|
+
## Command families
|
|
33
53
|
|
|
34
|
-
|
|
35
|
-
- `create:*`
|
|
36
|
-
- `init:*`
|
|
37
|
-
- `refactor:*`
|
|
38
|
-
- `tools:*`
|
|
39
|
-
- `openapi:*`
|
|
54
|
+
### Vona families
|
|
40
55
|
|
|
41
|
-
|
|
56
|
+
- `bin:*` — backend runtime and build tasks
|
|
57
|
+
- `create:*` — create suites, modules, beans, and tests
|
|
58
|
+
- `init:*` — initialize backend source artifacts
|
|
59
|
+
- `tools:*` — metadata, dependency, and CRUD-related tools
|
|
42
60
|
|
|
43
|
-
|
|
61
|
+
### Zova families
|
|
62
|
+
|
|
63
|
+
- `bin:*` — frontend build tasks
|
|
64
|
+
- `create:*` — create suites, modules, pages, components, mocks, and beans
|
|
65
|
+
- `init:*` — initialize frontend source artifacts
|
|
66
|
+
- `refactor:*` — frontend refactor workflows
|
|
67
|
+
- `tools:*` — metadata and dependency tools
|
|
68
|
+
- `openapi:*` — OpenAPI config and SDK generation workflows
|
|
69
|
+
|
|
70
|
+
## Fast path to a specific command
|
|
71
|
+
|
|
72
|
+
For a specific command, use this navigation path:
|
|
73
|
+
|
|
74
|
+
1. choose `npm run vona` or `npm run zova`
|
|
75
|
+
2. inspect the relevant `commands.ts` registry
|
|
76
|
+
3. open the matching command module in `src/lib/command/`
|
|
77
|
+
4. read `info.title`, `info.usage`, and `options`
|
|
78
|
+
|
|
79
|
+
Representative command modules:
|
|
80
|
+
|
|
81
|
+
- `vona/packages-cli/cli-set-api/src/lib/command/bin.play.ts`
|
|
82
|
+
- `zova/packages-cli/cli-set-front/src/lib/command/tools.metadata.ts`
|
|
83
|
+
|
|
84
|
+
This is the preferred path for both humans and AI agents because it follows the real registration flow instead of relying on scattered examples.
|
|
85
|
+
|
|
86
|
+
## Related guides
|
|
44
87
|
|
|
45
88
|
Use this page together with:
|
|
46
89
|
|
|
47
90
|
- [Backend Quickstart](/backend/quickstart)
|
|
48
91
|
- [Frontend (Zova)](/frontend/introduction)
|
|
49
92
|
- [Backend OpenAPI to Frontend SDK](/fullstack/openapi-to-sdk)
|
|
93
|
+
|
|
94
|
+
If the public CLI surface is enough, prefer it over file-level implementation details. Drop to the source files only when you need the authoritative registry or per-command metadata.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Frontend Directory Structure
|
|
2
|
+
|
|
3
|
+
This page gives a compact reference view of the frontend tree under `zova/`.
|
|
4
|
+
|
|
5
|
+
## Why this page exists
|
|
6
|
+
|
|
7
|
+
The package map explains the architectural meaning of package, module, and suite boundaries.
|
|
8
|
+
|
|
9
|
+
This page complements that by showing the practical frontend tree layout used in the Cabloy repository.
|
|
10
|
+
|
|
11
|
+
## Simplified frontend tree
|
|
12
|
+
|
|
13
|
+
Representative frontend structure:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
zova/
|
|
17
|
+
├── packages-cli/
|
|
18
|
+
├── packages-utils/
|
|
19
|
+
├── packages-zova/
|
|
20
|
+
├── env/
|
|
21
|
+
├── public/
|
|
22
|
+
├── src-ssr/
|
|
23
|
+
└── src/
|
|
24
|
+
├── boot/
|
|
25
|
+
├── css/
|
|
26
|
+
├── front/
|
|
27
|
+
│ ├── config/
|
|
28
|
+
│ └── typing/
|
|
29
|
+
├── module/
|
|
30
|
+
├── module-vendor/
|
|
31
|
+
├── suite/
|
|
32
|
+
└── suite-vendor/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Meaning of the main directories
|
|
36
|
+
|
|
37
|
+
| Path | Meaning |
|
|
38
|
+
| ------------------------- | ---------------------------------------------- |
|
|
39
|
+
| `zova/packages-cli/` | Zova CLI entrypoints and command sets |
|
|
40
|
+
| `zova/packages-utils/` | shared frontend-side utilities |
|
|
41
|
+
| `zova/packages-zova/` | framework packages |
|
|
42
|
+
| `zova/env/` | frontend env files and runtime/build inputs |
|
|
43
|
+
| `zova/public/` | public static assets |
|
|
44
|
+
| `zova/src-ssr/` | SSR entrypoints and SSR-related project source |
|
|
45
|
+
| `zova/src/boot/` | app bootstrapping and startup registration |
|
|
46
|
+
| `zova/src/css/` | project-level CSS and theme entry assets |
|
|
47
|
+
| `zova/src/front/config/` | project-level frontend config overrides |
|
|
48
|
+
| `zova/src/front/typing/` | project-level frontend type definitions |
|
|
49
|
+
| `zova/src/module/` | first-party standalone frontend modules |
|
|
50
|
+
| `zova/src/module-vendor/` | vendor-provided standalone frontend modules |
|
|
51
|
+
| `zova/src/suite/` | first-party frontend suites and their modules |
|
|
52
|
+
| `zova/src/suite-vendor/` | vendor-provided frontend suites and modules |
|
|
53
|
+
|
|
54
|
+
## Project-level frontend areas
|
|
55
|
+
|
|
56
|
+
Within the frontend application layer, contributors should also know these practical areas:
|
|
57
|
+
|
|
58
|
+
| Path | Meaning |
|
|
59
|
+
| ------------------------ | -------------------------------------------------- |
|
|
60
|
+
| `zova/env/` | frontend env files and runtime/build inputs |
|
|
61
|
+
| `zova/public/` | project-level public static assets |
|
|
62
|
+
| `zova/src-ssr/` | project-level SSR entry and SSR middleware wiring |
|
|
63
|
+
| `zova/src/boot/` | project-level boot registration and startup hooks |
|
|
64
|
+
| `zova/src/css/` | project-level CSS, theme, and style entry assets |
|
|
65
|
+
| `zova/src/front/config/` | project-level frontend config and override surface |
|
|
66
|
+
| `zova/src/front/typing/` | project-level frontend typing definitions |
|
|
67
|
+
|
|
68
|
+
## Edition note
|
|
69
|
+
|
|
70
|
+
The high-level Zova tree above is intentionally stable across Cabloy Basic and Cabloy Start.
|
|
71
|
+
|
|
72
|
+
A practical rule is:
|
|
73
|
+
|
|
74
|
+
- use the shared tree as the structural reference
|
|
75
|
+
- treat suite names and UI-layer examples as edition-sensitive details
|
|
76
|
+
- in Cabloy Basic, public examples may include suites such as `cabloy-basic` and `a-devui`
|
|
77
|
+
- in Cabloy Start, examples may include suites such as `cabloy-start` and `a-vuetify`
|
|
78
|
+
|
|
79
|
+
Cabloy Start is a sibling repository, not a subdirectory of this monorepo.
|
|
80
|
+
|
|
81
|
+
## Practical development reading of the tree
|
|
82
|
+
|
|
83
|
+
A useful rule is:
|
|
84
|
+
|
|
85
|
+
- start in `zova/src/module/` when the work belongs to a standalone frontend module
|
|
86
|
+
- start in `zova/src/suite/` when the work belongs to a suite-composed business area
|
|
87
|
+
- inspect `zova/packages-cli/` when the task is about command discovery, generation behavior, or refactor behavior
|
|
88
|
+
- inspect `zova/src/front/config/` when the task is about project-level frontend config overrides rather than module-local defaults
|
|
89
|
+
- inspect `zova/src/boot/` or `zova/src-ssr/` when the task is about startup flow or SSR behavior
|
|
90
|
+
- inspect `zova/src/css/` and `zova/public/` when the task is about project-level styling or static assets
|
|
91
|
+
|
|
92
|
+
A practical generator-oriented reading is:
|
|
93
|
+
|
|
94
|
+
- `create:*` commands choose the structural target before placing frontend resources
|
|
95
|
+
- `init:*` commands create project-level or module-level support assets
|
|
96
|
+
- `refactor:*` commands reshape existing frontend patterns without requiring manual rework from scratch
|
|
97
|
+
- `openapi:*` commands affect generated SDK-related frontend surfaces
|
|
98
|
+
|
|
99
|
+
## Relationship to other reference pages
|
|
100
|
+
|
|
101
|
+
Read this page together with:
|
|
102
|
+
|
|
103
|
+
- [Package Map](/reference/package-map)
|
|
104
|
+
- [Frontend (Zova)](/frontend/introduction)
|
|
105
|
+
- [Modules and Suites](/frontend/modules-and-suites)
|
|
106
|
+
- [Environment and Config Guide](/frontend/environment-config-guide)
|
|
107
|
+
- [App Startup Guide](/frontend/app-startup-guide)
|
|
108
|
+
- [System Startup Guide](/frontend/system-startup-guide)
|
|
109
|
+
- [Frontend CLI](/frontend/cli)
|
|
110
|
+
|
|
111
|
+
A practical split is:
|
|
112
|
+
|
|
113
|
+
- [Frontend (Zova)](/frontend/introduction) is the broader frontend hub
|
|
114
|
+
- [Package Map](/reference/package-map) explains architecture boundaries and package metadata
|
|
115
|
+
- this page explains the practical directory tree contributors navigate
|
|
116
|
+
|
|
117
|
+
## Implementation checks for frontend file-location changes
|
|
118
|
+
|
|
119
|
+
When changing frontend code, ask:
|
|
120
|
+
|
|
121
|
+
1. does this change belong to a standalone module, a suite-contained module, or a project-level frontend area?
|
|
122
|
+
2. is the task about generation behavior under `packages-cli/`, startup behavior under `src/boot` or `src-ssr`, or feature code under `src/`?
|
|
123
|
+
3. should the example use a shared structural path, a Cabloy Basic example, or a public Cabloy Start example note?
|
|
124
|
+
|
|
125
|
+
That helps keep frontend file references aligned with the actual monorepo layout.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Reference
|
|
2
|
+
|
|
3
|
+
This page is the reference hub for shared monorepo commands, package lookup, directory lookup, and shared terminology.
|
|
4
|
+
|
|
5
|
+
## What Reference is responsible for
|
|
6
|
+
|
|
7
|
+
- shared monorepo command entrypoints
|
|
8
|
+
- CLI lookup and command-surface discovery
|
|
9
|
+
- package lookup across the repository
|
|
10
|
+
- backend and frontend directory lookup
|
|
11
|
+
- shared terminology and glossary support
|
|
12
|
+
|
|
13
|
+
## How to approach reference work
|
|
14
|
+
|
|
15
|
+
For contributor and automation workflows in this repository, prefer this order:
|
|
16
|
+
|
|
17
|
+
1. inspect the root `package.json` when you need the shared workflow entrypoints
|
|
18
|
+
2. inspect the CLI reference before inferring command families from memory
|
|
19
|
+
3. use package and directory lookup pages when the task is about locating code, modules, or shared terms
|
|
20
|
+
4. pair Reference pages with Backend, Frontend, or Fullstack guides when lookup alone is not enough
|
|
21
|
+
|
|
22
|
+
## Reference reading paths
|
|
23
|
+
|
|
24
|
+
Use Reference as the lookup area for shared commands, package discovery, directory lookup, and shared terminology.
|
|
25
|
+
|
|
26
|
+
### Workflow entry path
|
|
27
|
+
|
|
28
|
+
Start here when you first need the shared monorepo command surface:
|
|
29
|
+
|
|
30
|
+
- [Repo Scripts](/reference/repo-scripts)
|
|
31
|
+
- [CLI Reference](/reference/cli-reference)
|
|
32
|
+
- [Fullstack CLI](/fullstack/cli)
|
|
33
|
+
|
|
34
|
+
### Structure and lookup path
|
|
35
|
+
|
|
36
|
+
Use this path when you need to find where packages, backend directories, frontend directories, or shared terms live:
|
|
37
|
+
|
|
38
|
+
- [Package Map](/reference/package-map)
|
|
39
|
+
- [Backend Directory Structure](/reference/backend-directory-structure)
|
|
40
|
+
- [Frontend Directory Structure](/reference/frontend-directory-structure)
|
|
41
|
+
- [Glossary](/reference/glossary)
|
|
42
|
+
|
|
43
|
+
## Edition impact
|
|
44
|
+
|
|
45
|
+
Cabloy Start keeps the same high-level workflow pattern while using different frontend flavors such as `cabloyStartAdmin` and `cabloyStartWeb`, plus its own SSR site baselines and project assets in the licensed private repository.
|
|
46
|
+
|
|
47
|
+
When documenting or automating flavor-specific commands, always confirm the active repo first.
|
|
@@ -96,6 +96,8 @@ For the broader backend entry path, also see [Backend (Vona)](/backend/introduct
|
|
|
96
96
|
|
|
97
97
|
For the frontend architectural meaning of modules, suites, scope-driven resources, and runtime/startup structure, see `/frontend/modules-and-suites`, `/frontend/module-scope`, `/frontend/ioc-and-beans`, `/frontend/environment-config-guide`, `/frontend/app-startup-guide`, and `/frontend/system-startup-guide`.
|
|
98
98
|
|
|
99
|
+
For the practical frontend directory tree contributors navigate, also see [Frontend Directory Structure](/reference/frontend-directory-structure).
|
|
100
|
+
|
|
99
101
|
## Sibling edition
|
|
100
102
|
|
|
101
103
|
- `cabloy-start` is a separate sibling repository, not a subdirectory of this monorepo.
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Repo Scripts
|
|
2
2
|
|
|
3
|
+
Use this page when you need the compact lookup surface for the shared root scripts exposed by the Cabloy Basic monorepo.
|
|
4
|
+
|
|
5
|
+
For the broader Reference landing page, see [Reference Introduction](/reference/introduction).
|
|
6
|
+
|
|
3
7
|
The root `package.json` is the first reference point for shared monorepo workflows.
|
|
4
8
|
|
|
5
9
|
## Current shared entrypoints in Cabloy Basic
|
|
@@ -21,9 +25,7 @@ The root `package.json` is the first reference point for shared monorepo workflo
|
|
|
21
25
|
|
|
22
26
|
## Edition-sensitive note
|
|
23
27
|
|
|
24
|
-
Cabloy Start keeps the same high-level pattern while using different frontend flavors such as `cabloyStartAdmin` and `cabloyStartWeb`, plus its own
|
|
25
|
-
|
|
26
|
-
### Documentation and automation guidance
|
|
28
|
+
Cabloy Start keeps the same high-level pattern while using different frontend flavors such as `cabloyStartAdmin` and `cabloyStartWeb`, plus its own SSR site baselines and project assets in the licensed private repository.
|
|
27
29
|
|
|
28
30
|
When documenting or automating flavor-specific commands, always confirm the active repo first.
|
|
29
31
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cabloy",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.54",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "A Node.js fullstack framework",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"type": "module",
|
|
23
23
|
"scripts": {
|
|
24
|
-
"init": "
|
|
24
|
+
"init": "node scripts/init.ts",
|
|
25
25
|
"upgrade": "node scripts/upgrade.ts",
|
|
26
26
|
"upgrade:dry-run": "node scripts/upgrade.ts --dry-run",
|
|
27
27
|
"vona": "node ./vona/packages-cli/cli/src/bin/vona.ts --projectPath=vona",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"engines": {
|
|
78
78
|
"node": ">=24.4.0"
|
|
79
79
|
},
|
|
80
|
-
"packageManager": "pnpm@
|
|
80
|
+
"packageManager": "pnpm@11.5.2"
|
|
81
81
|
}
|
package/scripts/init.ts
CHANGED
|
@@ -18,6 +18,7 @@ const ROOT_DIR = resolve(__dirname, '..');
|
|
|
18
18
|
const VONA_DIR = resolve(ROOT_DIR, 'vona');
|
|
19
19
|
const ZOVA_DIR = resolve(ROOT_DIR, 'zova');
|
|
20
20
|
const CABLOY_DOCS_DIR = resolve(ROOT_DIR, 'cabloy-docs');
|
|
21
|
+
const PNPM_VERSION = '11.5.2';
|
|
21
22
|
|
|
22
23
|
// --- Helpers ---
|
|
23
24
|
|
|
@@ -39,6 +40,21 @@ function exec(cmd: string, cwd = ROOT_DIR): void {
|
|
|
39
40
|
execSync(cmd, { stdio: 'inherit', cwd });
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
function execQuiet(cmd: string, cwd = ROOT_DIR): string {
|
|
44
|
+
return execSync(cmd, { stdio: 'pipe', cwd }).toString();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function checkPnpm(): void {
|
|
48
|
+
const version = execQuiet('pnpm --version').trimEnd();
|
|
49
|
+
const [major, minor, patch] = version.split('.').map(item => Number.parseInt(item, 10) || 0);
|
|
50
|
+
const lowerMajor = major < 11;
|
|
51
|
+
const lowerMinor = major === 11 && minor < 5;
|
|
52
|
+
const lowerPatch = major === 11 && minor === 5 && patch < 2;
|
|
53
|
+
if (lowerMajor || lowerMinor || lowerPatch) {
|
|
54
|
+
throw new Error(`pnpm should >= ${PNPM_VERSION}, current: ${version}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
42
58
|
function deleteGitkeepFiles(dir: string): void {
|
|
43
59
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
44
60
|
const fullPath = resolve(dir, entry.name);
|
|
@@ -215,6 +231,8 @@ function initCabloyDocs(): void {
|
|
|
215
231
|
|
|
216
232
|
// --- Main ---
|
|
217
233
|
|
|
234
|
+
checkPnpm();
|
|
235
|
+
exec('pnpm install --no-frozen-lockfile');
|
|
218
236
|
setAppName();
|
|
219
237
|
generateEnvProdLocal();
|
|
220
238
|
generateEnvProdDockerLocal();
|
package/vona/README.md
CHANGED
|
@@ -52,11 +52,11 @@ The Web and Admin of Cabloy Store are built by one codebase
|
|
|
52
52
|
|
|
53
53
|
### General
|
|
54
54
|
|
|
55
|
-
| Name | Version
|
|
56
|
-
| ---------- |
|
|
57
|
-
| pnpm | >=
|
|
58
|
-
| Nodejs | >=24.8.0
|
|
59
|
-
| Typescript | >=5.9.3
|
|
55
|
+
| Name | Version |
|
|
56
|
+
| ---------- | -------- |
|
|
57
|
+
| pnpm | >=11.5.2 |
|
|
58
|
+
| Nodejs | >=24.8.0 |
|
|
59
|
+
| Typescript | >=5.9.3 |
|
|
60
60
|
|
|
61
61
|
### Backend(Vona)
|
|
62
62
|
|
package/vona/README.zh-CN.md
CHANGED
|
@@ -52,11 +52,11 @@ Vona 采用前后端分离的架构。前端使用 Zova 框架,将构建生成
|
|
|
52
52
|
|
|
53
53
|
### 通用
|
|
54
54
|
|
|
55
|
-
| 名称 | 版本
|
|
56
|
-
| ---------- |
|
|
57
|
-
| pnpm | >=
|
|
58
|
-
| Nodejs | >=24.8.0
|
|
59
|
-
| Typescript | >=5.9.3
|
|
55
|
+
| 名称 | 版本 |
|
|
56
|
+
| ---------- | -------- |
|
|
57
|
+
| pnpm | >=11.5.2 |
|
|
58
|
+
| Nodejs | >=24.8.0 |
|
|
59
|
+
| Typescript | >=5.9.3 |
|
|
60
60
|
|
|
61
61
|
### 后端(Vona)
|
|
62
62
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "vona",
|
|
3
3
|
"private": true,
|
|
4
4
|
"type": "module",
|
|
5
|
-
"packageManager": "pnpm@
|
|
5
|
+
"packageManager": "pnpm@11.5.2",
|
|
6
6
|
"description": "Vona is an intuitive, elegant and powerful Node.js framework for rapidly developing enterprise applications of any size",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -50,10 +50,5 @@
|
|
|
50
50
|
"textlint-rule-period-in-list-item": "^1.0.1",
|
|
51
51
|
"oxfmt": "^0.45.0",
|
|
52
52
|
"oxlint": "^1.65.0"
|
|
53
|
-
},
|
|
54
|
-
"pnpm": {
|
|
55
|
-
"overrides": {
|
|
56
|
-
"zod": "npm:@cabloy/zod@4.3.6"
|
|
57
|
-
}
|
|
58
53
|
}
|
|
59
54
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cabloy/cli",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.17",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "@cabloy/cli",
|
|
6
6
|
"keywords": [
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"clean": "rimraf dist tsconfig.tsbuildinfo",
|
|
32
|
-
"tsc:publish": "npm run clean && vona :bin:buildGeneral && tsc",
|
|
32
|
+
"tsc:publish": "npm run clean && node ../cli/src/bin/vona.ts :bin:buildGeneral && tsc",
|
|
33
33
|
"prepublishOnly": "npm run tsc:publish",
|
|
34
34
|
"prepack": "clean-package",
|
|
35
35
|
"postpack": "clean-package restore"
|
|
@@ -1 +1,57 @@
|
|
|
1
1
|
# vona-cli
|
|
2
|
+
|
|
3
|
+
This package is the thin Vona CLI entrypoint.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
From the monorepo root, `npm run vona` resolves to this package and launches the backend-oriented CLI flow.
|
|
8
|
+
|
|
9
|
+
Primary entrypoint:
|
|
10
|
+
|
|
11
|
+
- `src/bin/vona.ts`
|
|
12
|
+
|
|
13
|
+
This entrypoint stays intentionally small. It handles top-level argument parsing, the special `play` dispatch path, and handoff to the Vona command runtime.
|
|
14
|
+
|
|
15
|
+
## Source of truth
|
|
16
|
+
|
|
17
|
+
Do not treat this package as the full command catalog. The authoritative Vona command-family registry lives in:
|
|
18
|
+
|
|
19
|
+
- `../../packages-cli/cli-set-api/src/lib/commands.ts`
|
|
20
|
+
|
|
21
|
+
Inspect that file first when you need to know:
|
|
22
|
+
|
|
23
|
+
- which command families exist
|
|
24
|
+
- which command names are registered
|
|
25
|
+
- which command module implements each entry
|
|
26
|
+
|
|
27
|
+
Current top-level families include:
|
|
28
|
+
|
|
29
|
+
- `bin`
|
|
30
|
+
- `create`
|
|
31
|
+
- `init`
|
|
32
|
+
- `tools`
|
|
33
|
+
|
|
34
|
+
## Where command details live
|
|
35
|
+
|
|
36
|
+
Each command module in `../../packages-cli/cli-set-api/src/lib/command/` provides the main CLI-facing metadata, including:
|
|
37
|
+
|
|
38
|
+
- `info.title`
|
|
39
|
+
- `info.usage`
|
|
40
|
+
- `options`
|
|
41
|
+
|
|
42
|
+
Representative example:
|
|
43
|
+
|
|
44
|
+
- `../../packages-cli/cli-set-api/src/lib/command/bin.play.ts`
|
|
45
|
+
|
|
46
|
+
## Recommended navigation path
|
|
47
|
+
|
|
48
|
+
1. start from `npm run vona`
|
|
49
|
+
2. inspect `src/bin/vona.ts` only for top-level dispatch behavior
|
|
50
|
+
3. inspect `cli-set-api/src/lib/commands.ts` for the authoritative catalog
|
|
51
|
+
4. inspect the specific command module for usage and options
|
|
52
|
+
|
|
53
|
+
## Canonical public reference
|
|
54
|
+
|
|
55
|
+
For the compact top-level overview shared across Vona and Zova, start with:
|
|
56
|
+
|
|
57
|
+
- `../../../cabloy-docs/reference/cli-reference.md`
|
|
@@ -1,36 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { parseProjectPath } from '@cabloy/cli';
|
|
4
|
-
import { ProcessHelper } from '@cabloy/process-helper';
|
|
5
4
|
import mri from 'mri';
|
|
6
|
-
import semver from 'semver';
|
|
7
5
|
|
|
8
6
|
import { playAttach } from '../play.ts';
|
|
9
7
|
import { VonaCommand } from '../start.ts';
|
|
10
8
|
|
|
11
|
-
const pnpm_version = '10.19.0';
|
|
12
|
-
|
|
13
|
-
const processHelper = new ProcessHelper(process.cwd());
|
|
14
|
-
|
|
15
9
|
main();
|
|
16
10
|
|
|
17
|
-
async function checkPnpm() {
|
|
18
|
-
const res = await processHelper.spawnCmd({
|
|
19
|
-
cmd: 'pnpm',
|
|
20
|
-
args: ['--version'],
|
|
21
|
-
options: {
|
|
22
|
-
stdio: 'pipe',
|
|
23
|
-
shell: true,
|
|
24
|
-
dummy: true,
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
const version = res.trimEnd();
|
|
28
|
-
const lt = semver.lt(version, pnpm_version);
|
|
29
|
-
if (lt) {
|
|
30
|
-
throw new Error(`pnpm should >= ${pnpm_version}, current: ${version}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
11
|
async function main() {
|
|
35
12
|
const rawArgv = process.argv.slice(2);
|
|
36
13
|
const _args = mri(rawArgv, {
|
|
@@ -58,9 +35,6 @@ async function main() {
|
|
|
58
35
|
if (isPlayAttach) {
|
|
59
36
|
await playAttach(projectPath, args);
|
|
60
37
|
} else {
|
|
61
|
-
if (!isPlay) {
|
|
62
|
-
await checkPnpm();
|
|
63
|
-
}
|
|
64
38
|
new VonaCommand(args).start();
|
|
65
39
|
}
|
|
66
40
|
}
|
|
@@ -1 +1,49 @@
|
|
|
1
1
|
# vona-cli-set-api
|
|
2
|
+
|
|
3
|
+
This package contains the authoritative Vona command catalog for backend-oriented CLI workflows.
|
|
4
|
+
|
|
5
|
+
## Source of truth
|
|
6
|
+
|
|
7
|
+
The top-level command-family registry lives in:
|
|
8
|
+
|
|
9
|
+
- `src/lib/commands.ts`
|
|
10
|
+
|
|
11
|
+
Inspect this file first when you need to answer:
|
|
12
|
+
|
|
13
|
+
- which Vona command families exist
|
|
14
|
+
- which command names are registered
|
|
15
|
+
- which command module implements each entry
|
|
16
|
+
|
|
17
|
+
Current families include:
|
|
18
|
+
|
|
19
|
+
- `default`
|
|
20
|
+
- `bin`
|
|
21
|
+
- `create`
|
|
22
|
+
- `init`
|
|
23
|
+
- `tools`
|
|
24
|
+
|
|
25
|
+
## Command metadata surface
|
|
26
|
+
|
|
27
|
+
Each command module under `src/lib/command/` provides the main CLI-facing metadata for that command, typically including:
|
|
28
|
+
|
|
29
|
+
- `bean`
|
|
30
|
+
- `info.title`
|
|
31
|
+
- `info.usage`
|
|
32
|
+
- `options`
|
|
33
|
+
|
|
34
|
+
Representative example:
|
|
35
|
+
|
|
36
|
+
- `src/lib/command/bin.play.ts`
|
|
37
|
+
|
|
38
|
+
## Recommended navigation path
|
|
39
|
+
|
|
40
|
+
1. run `npm run vona`
|
|
41
|
+
2. inspect `../cli/src/bin/vona.ts` for entry dispatch only
|
|
42
|
+
3. inspect `src/lib/commands.ts` for the authoritative family map
|
|
43
|
+
4. inspect the specific command module for usage and options
|
|
44
|
+
|
|
45
|
+
## Public reference
|
|
46
|
+
|
|
47
|
+
For the compact top-level overview shared across Vona and Zova, see:
|
|
48
|
+
|
|
49
|
+
- `../../../cabloy-docs/reference/cli-reference.md`
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"files": ["assets", "dist", "src"],
|
|
23
23
|
"scripts": {
|
|
24
24
|
"clean": "rimraf dist tsconfig.build.tsbuildinfo",
|
|
25
|
-
"tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
25
|
+
"tsc:publish": "npm run clean && node <%=argv.suite?'../../../../../':'../../../'%>packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
26
26
|
"prepublishOnly": "npm run tsc:publish",
|
|
27
27
|
"prepack": "clean-package",
|
|
28
28
|
"postpack": "clean-package restore && npm run clean"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-cli-set-api",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.106",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "vona cli-set-api",
|
|
6
6
|
"keywords": [
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"clean": "rimraf dist dist-cli dist-toolsIsolate tsconfig.build.tsbuildinfo tsconfig.cli.tsbuildinfo tsconfig.isolate.tsbuildinfo",
|
|
36
|
-
"tsc:publish": "npm run clean && vona :bin:buildGeneral && tsc -p tsconfig.build.json && tsc -p tsconfig.cli.json && tsc -p tsconfig.isolate.json",
|
|
36
|
+
"tsc:publish": "npm run clean && node ../cli/src/bin/vona.ts :bin:buildGeneral && tsc -p tsconfig.build.json && tsc -p tsconfig.cli.json && tsc -p tsconfig.isolate.json",
|
|
37
37
|
"prepublishOnly": "npm run tsc:publish",
|
|
38
38
|
"prepack": "clean-package",
|
|
39
39
|
"postpack": "clean-package restore && npm run clean"
|