cabloy 5.1.95 → 5.1.97
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/.cabloy-version +1 -0
- package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +4 -1
- package/.claude/skills/cabloy-resource-field-update/SKILL.md +6 -3
- package/.github/workflows/vona-test-crud.yml +2 -0
- package/.github/workflows/vona-test-mysql.yml +2 -0
- package/.github/workflows/vona-test-pg.yml +2 -0
- package/.github/workflows/vona-test-sqlite3.yml +2 -0
- package/CHANGELOG.md +38 -0
- package/CLAUDE.md +1 -0
- package/cabloy-docs/ai/playbook-backend-module.md +6 -3
- package/cabloy-docs/fullstack/framework-performance.md +3 -3
- package/cabloy-docs/fullstack/quickstart.md +1 -1
- package/package.json +1 -1
- package/scripts/release.ts +27 -1
- package/vona/docker-compose-original/docker-compose-dockerfile-app +4 -0
- package/vona/docker-compose-original/docker-compose.original.yml +0 -1
- package/vona/env/.env +0 -1
- package/vona/env/.env.prod +0 -1
- package/vona/env/.env.prod.docker +0 -7
- package/vona/package.original.json +3 -3
- package/vona/packages-cli/cabloy-cli/package.json +2 -2
- package/vona/packages-cli/cli/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.build.ts +70 -2
- package/vona/packages-utils/babel-plugin-vona-bean-module/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/utils/package.json +2 -2
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/packages-vona/vona-core/package.json +2 -2
- package/vona/packages-vona/vona-core/src/lib/addon/addon.ts +77 -0
- package/vona/packages-vona/vona-core/src/lib/addon/index.ts +3 -0
- package/vona/packages-vona/vona-core/src/lib/addon/sharp.ts +46 -0
- package/vona/packages-vona/vona-core/src/lib/addon/sqlite3.ts +23 -0
- package/vona/packages-vona/vona-core/src/lib/index.ts +1 -0
- package/vona/packages-vona/vona-core/src/lib/utils/index.ts +0 -1
- package/vona/packages-vona/vona-core/src/lib/utils/util.ts +5 -0
- package/vona/packages-vona/vona-mock/package.json +2 -2
- package/vona/pnpm-lock.yaml +441 -62
- package/vona/pnpm-workspace.yaml +1 -1
- package/vona/src/backend/cli.ts +2 -5
- package/vona/src/backend/config/config/config.ts +0 -4
- package/vona/src/suite/a-demo/modules/demo-basic/src/bean/ssrMenu.admin.ts +1 -1
- package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +26 -0
- package/vona/src/suite/a-training/modules/training-record/src/bean/imageScene.sceneImage.ts +11 -0
- package/vona/src/suite/a-training/modules/training-record/src/bean/meta.version.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +12 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordView.tsx +12 -0
- package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +26 -1
- package/vona/src/suite/a-training/modules/training-record/src/index.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +27 -1
- package/vona/src/suite/a-training/modules/training-student/src/bean/imageScene.studentImage.ts +10 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/meta.version.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +16 -2
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +1 -1
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectResItem.tsx +12 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +1 -1
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +13 -1
- package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +26 -1
- package/vona/src/suite/a-training/modules/training-student/src/index.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +1 -0
- package/vona/src/suite-vendor/a-auth/modules/a-auth/package.json +1 -1
- package/vona/src/suite-vendor/a-auth/modules/a-auth/src/bean/bean.authProvider.ts +2 -5
- package/vona/src/suite-vendor/a-auth/package.json +1 -1
- package/vona/src/suite-vendor/a-image/modules/a-image/cli/imageProvider/boilerplate/{{sceneName}}.{{beanName}}.ts_ +23 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/cli/imageScene/boilerplate/{{sceneName}}.{{beanName}}.ts_ +5 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/package.json +68 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/index.ts +482 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/locales.ts +18 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/this.ts +2 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.image.ts +443 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageProvider.ts +55 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageUploadPolicy.ts +174 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.redlock.ts +11 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.version.ts +40 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/serializerTransform.resolveView.ts +44 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/serializerTransform.resolveViews.ts +44 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/config/config.ts +17 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/config/locale/en-us.ts +1 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/config/locale/zh-cn.ts +1 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/controller/image.ts +165 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDeliveryRequest.ts +20 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadRequest.ts +36 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadResponse.ts +38 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageTransformOptions.tsx +42 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadResponse.ts +62 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadTokenRequest.ts +24 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadTokenResponse.ts +16 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadUrlRequest.ts +33 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageView.ts +46 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/image.ts +58 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/imageProvider.ts +24 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/index.ts +4 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageProvider.ts +9 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageScene.ts +7 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageVariant.ts +46 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/index.ts +3 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/model/image.ts +10 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/model/imageProvider.ts +10 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/types/image.ts +208 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageProvider.ts +110 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageScene.ts +52 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/types/index.ts +3 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/tsconfig.build.json +11 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/tsconfig.json +7 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/package.json +49 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/.metadata/index.ts +89 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/.metadata/this.ts +2 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/bean/imageProvider.cloudflare.ts +155 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/index.ts +1 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/lib/cloudflareImageUrl.ts +112 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/service/imageCloudflare.ts +273 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/tsconfig.build.json +11 -0
- package/vona/src/suite-vendor/a-image/modules/image-cloudflare/tsconfig.json +7 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/package.json +63 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/index.ts +114 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/this.ts +2 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/bean/imageProvider.native.ts +131 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/config/config.ts +11 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/index.ts +1 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/monkey.ts +33 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/src/service/imageNative.ts +291 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/tsconfig.build.json +11 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/tsconfig.json +7 -0
- package/vona/src/suite-vendor/a-image/package.json +14 -0
- package/vona/src/suite-vendor/a-image/tsconfig.base.json +4 -0
- package/vona/src/suite-vendor/a-image/tsconfig.json +16 -0
- package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-jwt/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-jwt/src/service/jwtClient.ts +5 -0
- package/vona/src/suite-vendor/a-vona/modules/a-jwt/src/types/jwt.ts +1 -0
- package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/schema/makeSchemaLikes.ts +6 -3
- package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/utils.ts +13 -7
- 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/types/database.ts +0 -1
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +9 -1
- package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-upload/src/bean/interceptor.upload.ts +39 -7
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/packages-cli/cli/package.json +3 -3
- package/zova/packages-cli/cli-set-front/package.json +9 -9
- package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.generate.ts +20 -10
- package/zova/packages-utils/babel-plugin-zova-bean-module/package.json +2 -2
- package/zova/packages-utils/babel-plugin-zova-bean-use/package.json +2 -2
- package/zova/packages-utils/babel-plugin-zova-behavior/package.json +2 -2
- package/zova/packages-utils/babel-plugin-zova-component/package.json +2 -2
- package/zova/packages-utils/zova-jsx/package.json +3 -3
- package/zova/packages-utils/zova-vite/package.json +7 -7
- package/zova/packages-zova/zova/package.json +3 -3
- package/zova/packages-zova/zova-core/package.json +3 -3
- package/zova/pnpm-lock.yaml +126 -74
- package/zova/src/suite/a-home/modules/home-api/src/api/captcha.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/api/home.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/api/homeBaseMenu.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/api/homeBasePermission.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/api/homeUserPassport.ts +22 -20
- package/zova/src/suite/a-home/modules/home-api/src/api/openapi/schemas.ts +163 -53
- package/zova/src/suite/a-home/modules/home-api/src/api/openapi/types.ts +2060 -675
- package/zova/src/suite/a-home/modules/home-api/src/api/testSsrToolOne.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/apiSchema/captcha.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/apiSchema/home.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeBaseMenu.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeBasePermission.ts +3 -1
- package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeUserPassport.ts +13 -11
- package/zova/src/suite/a-home/modules/home-api/src/apiSchema/testSsrToolOne.ts +3 -1
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +54 -16
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +468 -8
- package/zova/src/suite/a-training/modules/training-student/src/apiSchema/trainingStudent.ts +3 -1
- package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionUpdate.tsx +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/actionCreate/controller.tsx +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-details/src/service/detail.tsx +53 -1
- package/zova/src/suite/cabloy-basic/modules/basic-image/cli/openapi.config.ts +9 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/package.json +60 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/component/formFieldImage.ts +31 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/index.ts +191 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/locales.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/this.ts +2 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/image.ts +104 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/baseURL.ts +5 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/index.ts +3 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/schemas.ts +262 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/types.ts +5159 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/apiSchema/image.ts +35 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/bean/tableCell.image.tsx +200 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/component/formFieldImage/controller.tsx +781 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/config/locale/en-us.ts +18 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/config/locale/zh-cn.ts +18 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/index.ts +4 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/index.ts +2 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/preview.ts +105 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/previewDialog.tsx +190 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/types/image.ts +5 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/types/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/tsconfig.build.json +13 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/tsconfig.json +5 -0
- package/zova/src/suite/cabloy-basic/package.json +1 -0
- 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/types/image.ts +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/index.ts +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +5 -5
- package/zova/src/suite-vendor/a-zova/package.json +3 -3
- package/vona/packages-vona/vona-core/src/lib/utils/sqlite3.ts +0 -50
- /package/vona/patches/{zova-core@5.1.75.patch → zova-core@5.1.76.patch} +0 -0
package/.cabloy-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5.1.97
|
|
@@ -15,7 +15,10 @@ After generating or extending a backend thread, check which follow-up layers app
|
|
|
15
15
|
- OpenAPI metadata
|
|
16
16
|
- inferred DTO opportunities
|
|
17
17
|
- frontend contract impact
|
|
18
|
-
- `@Api.field(...)` / `$makeSchema(...)` ordering
|
|
18
|
+
- `@Api.field(...)` / `$makeSchema(...)` ordering: framework guards now preserve previously attached OpenAPI metadata across schema rebuilds, but structure-shaping schemaLike is still order-sensitive
|
|
19
|
+
- when an explicit zod/custom schema or other structure-defining schemaLike is present, put that structure-defining schemaLike last because `makeSchemaLikes(...)` applies arguments right-to-left and later structure changes can otherwise alter or replace the intended schema
|
|
20
|
+
- treat `v.object(...)`, `v.array(...)`, `v.optional()`, `v.nullable()`, `v.default(...)`, and preprocess/transform wrappers as structure-shaping rather than metadata-only
|
|
21
|
+
- after touching structure-shaping schemaLike, verify the emitted schema/OpenAPI result explicitly
|
|
19
22
|
|
|
20
23
|
## Persistence follow-up
|
|
21
24
|
|
|
@@ -158,9 +158,12 @@ For enum-like numeric or string values, prefer an explicit constrained schema su
|
|
|
158
158
|
|
|
159
159
|
Ordering rule:
|
|
160
160
|
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
161
|
+
- framework-level guarding now preserves previously attached OpenAPI metadata across schema rebuilds, so metadata-only helpers are less order-sensitive than before
|
|
162
|
+
- this only removes **metadata-loss order pitfalls**; it does **not** make all `schemaLike` arguments fully order-independent
|
|
163
|
+
- when an explicit zod/custom schema or other structure-shaping schemaLike is passed into `@Api.field(...)`, keep that structure-defining schemaLike as the **last argument** unless a local pattern clearly requires otherwise
|
|
164
|
+
- treat helpers such as `v.object(...)`, `v.array(...)`, `v.optional()`, `v.nullable()`, `v.default(...)`, and preprocess/transform wrappers as structure-shaping, not metadata-only
|
|
165
|
+
- keep helper metadata such as `v.xxx(...)` and `ZovaRender.xxx(...)` before the final structure-defining schemaLike
|
|
166
|
+
- after edits involving structure-shaping schemaLike, verify the emitted schema/OpenAPI result instead of assuming reorder is safe
|
|
164
167
|
|
|
165
168
|
Then check whether DTOs are already inferred through patterns such as:
|
|
166
169
|
|
|
@@ -38,5 +38,7 @@ jobs:
|
|
|
38
38
|
working-directory: vona
|
|
39
39
|
- run: DATABASE_DEFAULT_CLIENT=mysql DATABASE_CLIENT_MYSQL_HOST=127.0.0.1 DATABASE_CLIENT_MYSQL_PASSWORD=root npm run build -- --flavor=ci
|
|
40
40
|
working-directory: vona
|
|
41
|
+
- run: pnpm -C ./dist/ci install
|
|
42
|
+
working-directory: vona
|
|
41
43
|
- run: DATABASE_DEFAULT_CLIENT=mysql DATABASE_CLIENT_MYSQL_HOST=127.0.0.1 DATABASE_CLIENT_MYSQL_PASSWORD=root npm run play -- --mode=prod --flavor=ci
|
|
42
44
|
working-directory: vona
|
|
@@ -38,5 +38,7 @@ jobs:
|
|
|
38
38
|
working-directory: vona
|
|
39
39
|
- run: DATABASE_DEFAULT_CLIENT=pg npm run build -- --flavor=ci
|
|
40
40
|
working-directory: vona
|
|
41
|
+
- run: pnpm -C ./dist/ci install
|
|
42
|
+
working-directory: vona
|
|
41
43
|
- run: DATABASE_DEFAULT_CLIENT=pg npm run play -- --mode=prod --flavor=ci
|
|
42
44
|
working-directory: vona
|
|
@@ -31,5 +31,7 @@ jobs:
|
|
|
31
31
|
working-directory: vona
|
|
32
32
|
- run: DATABASE_DEFAULT_CLIENT=sqlite3 npm run build -- --flavor=ci
|
|
33
33
|
working-directory: vona
|
|
34
|
+
- run: pnpm -C ./dist/ci install
|
|
35
|
+
working-directory: vona
|
|
34
36
|
- run: DATABASE_DEFAULT_CLIENT=sqlite3 npm run play -- --mode=prod --flavor=ci
|
|
35
37
|
working-directory: vona
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.1.97
|
|
4
|
+
|
|
5
|
+
### Improvements
|
|
6
|
+
|
|
7
|
+
- Refresh the Zova lockfile after compensation rerun preparation.
|
|
8
|
+
- Refresh the Vona `zova-core` patch for v5.1.76.
|
|
9
|
+
|
|
10
|
+
## 5.1.96
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- Integrate Cloudflare image provider with signed image delivery.
|
|
15
|
+
- Add scene-based image upload flow.
|
|
16
|
+
- Secure image upload token flow and support imageId-based training images.
|
|
17
|
+
- Restore `expiresIn` support for image upload tokens.
|
|
18
|
+
- Add basic-image table cell thumbnails.
|
|
19
|
+
- Add basic-image student field integration.
|
|
20
|
+
- Add the `a-image` upload API contract.
|
|
21
|
+
- Align image variants with transform options.
|
|
22
|
+
- Add the `a-image` suite scaffold and tests.
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
- Sync nested detail image previews after dialog submission.
|
|
27
|
+
- Preserve OpenAPI metadata across schema rebuilds.
|
|
28
|
+
- Correct basic-image upload and preview URLs.
|
|
29
|
+
- Tighten image upload constraints.
|
|
30
|
+
|
|
31
|
+
### Improvements
|
|
32
|
+
|
|
33
|
+
- Strengthen image variant typing.
|
|
34
|
+
- Move basic-image types into `src/types`.
|
|
35
|
+
- Generate the basic-image OpenAPI SDK.
|
|
36
|
+
- Skip redundant OpenAPI metadata merges.
|
|
37
|
+
- Configure the default image upload provider.
|
|
38
|
+
- Extract shared base options for image provider clients.
|
|
39
|
+
- Remove the unused native signed URL helper.
|
|
40
|
+
|
|
3
41
|
## 5.1.95
|
|
4
42
|
|
|
5
43
|
### Improvements
|
package/CLAUDE.md
CHANGED
|
@@ -65,6 +65,7 @@ Before inventing a custom implementation path:
|
|
|
65
65
|
- `src/bean` defines the global shorthand surface; classes that should not appear in `IBeanRecordGlobal` should move to `src/lib` or `src/service` rather than being filtered by `@Virtual()`.
|
|
66
66
|
- When backend code references `this.bean.xxx`, `ctx.bean.xxx`, or `app.bean.xxx`, use `IBeanRecordGlobal` and module `src/.metadata/index.ts` as the first static lookup surface; use `IBeanRecordGeneral` or `src/service` only when the target is not a global shorthand.
|
|
67
67
|
- When adding a persisted field to an existing backend resource, ask the user whether `vonaModule.fileVersion` should be incremented before changing `meta.version.ts` or the module schema path. If yes, add a new migration version and bump `fileVersion`. If no, keep the current `fileVersion` and fold the schema change into the current version path. Do not assume the versioning strategy without confirmation.
|
|
68
|
+
- For `@Api.field(...)` and related schemaLike composition, framework guards now preserve previously attached OpenAPI metadata across schema rebuilds, but structure-shaping schemaLike is still order-sensitive. Treat `v.object(...)`, `v.array(...)`, `v.optional()`, `v.nullable()`, `v.default(...)`, and preprocess/transform wrappers as structure-shaping; keep the final structure-defining schemaLike last and verify emitted schema/OpenAPI output after such edits.
|
|
68
69
|
|
|
69
70
|
## Verification expectations
|
|
70
71
|
|
|
@@ -68,9 +68,12 @@ Depending on the feature, extend the generated code with the right framework-lev
|
|
|
68
68
|
|
|
69
69
|
When refining entity or DTO fields that use `@Api.field(...)`, apply this framework-specific guardrail:
|
|
70
70
|
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
71
|
+
- framework-level guarding now preserves previously attached OpenAPI metadata across schema rebuilds, so metadata-only helpers are less order-sensitive than before
|
|
72
|
+
- this only removes **metadata-loss order pitfalls**; it does **not** make all `schemaLike` arguments fully order-independent
|
|
73
|
+
- if you include an explicit zod schema such as `z.number().int().min(1)`, or another structure-shaping schemaLike, place that structure-defining schemaLike as the **last argument**
|
|
74
|
+
- treat helpers such as `v.object(...)`, `v.array(...)`, `v.optional()`, `v.nullable()`, `v.default(...)`, and preprocess/transform wrappers as structure-shaping rather than metadata-only
|
|
75
|
+
- keep helper metadata such as `v.xxx(...)` and `ZovaRender.xxx(...)` before the final structure-defining schemaLike
|
|
76
|
+
- after edits involving structure-shaping schemaLike, verify the emitted schema/OpenAPI result instead of assuming reorder is safe
|
|
74
77
|
|
|
75
78
|
Relevant docs:
|
|
76
79
|
|
|
@@ -42,17 +42,17 @@ For the current public explanation of this backend capability, see [Cache Guide]
|
|
|
42
42
|
|
|
43
43
|
This is the kind of result Cabloy is designed to support: a framework that stays operationally calm even when the system keeps running for long periods.
|
|
44
44
|
|
|
45
|
-
One internally generated project was kept running continuously for **
|
|
45
|
+
One internally generated project was kept running continuously for **21 days**. At one representative PM2 snapshot, the process looked like this:
|
|
46
46
|
|
|
47
47
|
```text
|
|
48
48
|
┌────┬─────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
|
|
49
49
|
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
|
|
50
50
|
├────┼─────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
|
|
51
|
-
│ 0 │ cabloy_*** │ default │ N/A │ cluster │ 226947 │
|
|
51
|
+
│ 0 │ cabloy_*** │ default │ N/A │ cluster │ 226947 │ 21D │ 17 │ online │ 0% │ 435.0mb │ ubuntu │ disabled │
|
|
52
52
|
└────┴─────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
For this
|
|
55
|
+
For this 21-day continuous run, the observed result was **0 memory leak**.
|
|
56
56
|
|
|
57
57
|
The value of this example is not that it is a synthetic micro-benchmark. The value is that it reflects a real long-running project process with a clear, inspectable runtime footprint.
|
|
58
58
|
|
package/package.json
CHANGED
package/scripts/release.ts
CHANGED
|
@@ -37,6 +37,7 @@ const ZOVA_CORE_PACKAGE_JSON_PATH = resolve(
|
|
|
37
37
|
'package.json',
|
|
38
38
|
);
|
|
39
39
|
const PACKAGE_JSON_PATH = resolve(ROOT_DIR, 'package.json');
|
|
40
|
+
const CABLOY_VERSION_PATH = resolve(ROOT_DIR, '.cabloy-version');
|
|
40
41
|
const CHANGELOG_PATH = resolve(ROOT_DIR, 'CHANGELOG.md');
|
|
41
42
|
const ZOVA_CORE_PATCH_TARGETS = [
|
|
42
43
|
'dist/bean/resource/error/errorGlobal.d.ts',
|
|
@@ -95,6 +96,23 @@ function writePackageJson(pkg: Record<string, any>): void {
|
|
|
95
96
|
writeFileSync(PACKAGE_JSON_PATH, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
96
97
|
}
|
|
97
98
|
|
|
99
|
+
function readCabloyVersion(): string | null {
|
|
100
|
+
if (!existsSync(CABLOY_VERSION_PATH)) return null;
|
|
101
|
+
const version = readFileSync(CABLOY_VERSION_PATH, 'utf-8').trim();
|
|
102
|
+
if (!version) return null;
|
|
103
|
+
if (!isValidVersion(version)) {
|
|
104
|
+
throw new Error(`Invalid Cabloy version marker: ${version}`);
|
|
105
|
+
}
|
|
106
|
+
return version;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function writeCabloyVersion(version: string): void {
|
|
110
|
+
if (!isValidVersion(version)) {
|
|
111
|
+
throw new Error(`Invalid Cabloy version: ${version}`);
|
|
112
|
+
}
|
|
113
|
+
writeFileSync(CABLOY_VERSION_PATH, `${version}\n`);
|
|
114
|
+
}
|
|
115
|
+
|
|
98
116
|
function isValidVersion(version: string): boolean {
|
|
99
117
|
return /^\d+\.\d+\.\d+$/.test(version);
|
|
100
118
|
}
|
|
@@ -612,6 +630,7 @@ async function versionBump(
|
|
|
612
630
|
): Promise<string> {
|
|
613
631
|
const pkg = readPackageJson();
|
|
614
632
|
const currentVersion = pkg.version;
|
|
633
|
+
const currentCabloyVersion = readCabloyVersion();
|
|
615
634
|
const lastTag = getLastTag();
|
|
616
635
|
|
|
617
636
|
// Check for changes since last tag
|
|
@@ -629,6 +648,12 @@ async function versionBump(
|
|
|
629
648
|
}
|
|
630
649
|
}
|
|
631
650
|
|
|
651
|
+
if (currentCabloyVersion && currentCabloyVersion !== currentVersion) {
|
|
652
|
+
throw new Error(
|
|
653
|
+
`Version mismatch before release: package.json=${currentVersion}, .cabloy-version=${currentCabloyVersion}`,
|
|
654
|
+
);
|
|
655
|
+
}
|
|
656
|
+
|
|
632
657
|
const newVersion = bumpVersion(currentVersion, bumpType);
|
|
633
658
|
// eslint-disable-next-line
|
|
634
659
|
console.log(`\n📦 Version bump: ${currentVersion} → ${newVersion}`);
|
|
@@ -636,10 +661,11 @@ async function versionBump(
|
|
|
636
661
|
pkg.version = newVersion;
|
|
637
662
|
if (!dryRun) {
|
|
638
663
|
writePackageJson(pkg);
|
|
664
|
+
writeCabloyVersion(newVersion);
|
|
639
665
|
}
|
|
640
666
|
|
|
641
667
|
const tag = `${TAG_PREFIX}${newVersion}`;
|
|
642
|
-
exec('git add package.json', dryRun);
|
|
668
|
+
exec('git add package.json .cabloy-version', dryRun);
|
|
643
669
|
exec(`git commit -m "chore: release v${newVersion}"`, dryRun);
|
|
644
670
|
exec(`git tag ${tag}`, dryRun);
|
|
645
671
|
exec('git push', dryRun);
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
FROM node:24
|
|
2
2
|
|
|
3
|
+
RUN corepack enable && corepack prepare pnpm@11.5.2 --activate
|
|
4
|
+
|
|
3
5
|
RUN mkdir -p /opt/node/app/dist
|
|
4
6
|
WORKDIR /opt/node/app
|
|
5
7
|
|
|
8
|
+
COPY ./dist/docker /opt/node/app/dist/docker
|
|
6
9
|
COPY ./scripts /opt/node/app/scripts
|
|
7
10
|
|
|
11
|
+
RUN pnpm -C ./dist/docker install
|
|
8
12
|
RUN chmod +x /opt/node/app/scripts/*.sh
|
|
9
13
|
|
|
10
14
|
# start
|
package/vona/env/.env
CHANGED
|
@@ -56,7 +56,6 @@ TEST_PATTERNS_IGNORE = '**/test-vona/test/cache/cacheMem.test.ts,**/test-vona/te
|
|
|
56
56
|
DATABASE_DEFAULT_CLIENT = 'sqlite3' # sqlite3/pg/mysql
|
|
57
57
|
|
|
58
58
|
DATABASE_CLIENT_SQLITE3_FILENAME =
|
|
59
|
-
DATABASE_CLIENT_SQLITE3_NATIVEBINDING = false
|
|
60
59
|
|
|
61
60
|
DATABASE_CLIENT_PG_HOST = 127.0.0.1
|
|
62
61
|
DATABASE_CLIENT_PG_PORT = 5432
|
package/vona/env/.env.prod
CHANGED
|
@@ -3,17 +3,10 @@
|
|
|
3
3
|
SERVER_KEYS = vona__1596889048291_2867
|
|
4
4
|
SERVER_WORKERS = 1
|
|
5
5
|
|
|
6
|
-
# build
|
|
7
|
-
|
|
8
|
-
BUILD_MINIFY = false
|
|
9
|
-
BUILD_COPY_DIST = ./docker-compose/output/dist
|
|
10
|
-
|
|
11
6
|
# database
|
|
12
7
|
|
|
13
8
|
DATABASE_DEFAULT_CLIENT = 'pg' # sqlite3/pg/mysql
|
|
14
9
|
|
|
15
|
-
DATABASE_CLIENT_SQLITE3_NATIVEBINDING = false
|
|
16
|
-
|
|
17
10
|
DATABASE_CLIENT_PG_HOST = pg # see: docker-compose.yml
|
|
18
11
|
DATABASE_CLIENT_PG_PORT = 5432
|
|
19
12
|
DATABASE_CLIENT_PG_USER = postgres
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"tsc": "npm run prerun && npm run vona :bin:tsc",
|
|
29
29
|
"build": "npm run prerun && npm run vona :bin:build -- --flavor=normal",
|
|
30
30
|
"build:docker": "npm run prerun && npm run vona :bin:build -- --flavor=docker",
|
|
31
|
-
"start": "node ./dist/normal/bootstrap.js",
|
|
32
|
-
"start:one": "cross-env SERVER_WORKERS=1 node ./dist/normal/bootstrap.js",
|
|
33
|
-
"start:docker": "cross-env SERVER_WORKERS=1 node ./dist/docker/bootstrap.js",
|
|
31
|
+
"start": "pnpm -C ./dist/normal install && node ./dist/normal/bootstrap.js",
|
|
32
|
+
"start:one": "pnpm -C ./dist/normal install && cross-env SERVER_WORKERS=1 node ./dist/normal/bootstrap.js",
|
|
33
|
+
"start:docker": "pnpm -C ./dist/docker install && cross-env SERVER_WORKERS=1 node ./dist/docker/bootstrap.js",
|
|
34
34
|
"prerun": "npm run vona :tools:deps",
|
|
35
35
|
"format": "oxfmt --check",
|
|
36
36
|
"format:fix": "oxfmt --write",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cabloy/cli",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.28",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "@cabloy/cli",
|
|
6
6
|
"keywords": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@babel/parser": "^7.29.2",
|
|
39
39
|
"@cabloy/module-glob": "workspace:^",
|
|
40
|
-
"@cabloy/module-info": "^2.0.
|
|
40
|
+
"@cabloy/module-info": "^2.0.3",
|
|
41
41
|
"@cabloy/process-helper": "workspace:^",
|
|
42
42
|
"@cabloy/utils": "workspace:^",
|
|
43
43
|
"@cabloy/word-utils": "^2.1.8",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-cli-set-api",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.126",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "vona cli-set-api",
|
|
6
6
|
"keywords": [
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@cabloy/dotenv": "workspace:^",
|
|
47
47
|
"@cabloy/extend": "workspace:^",
|
|
48
48
|
"@cabloy/module-glob": "workspace:^",
|
|
49
|
-
"@cabloy/module-info": "^2.0.
|
|
49
|
+
"@cabloy/module-info": "^2.0.3",
|
|
50
50
|
"@cabloy/utils": "workspace:^",
|
|
51
51
|
"@cabloy/word-utils": "^2.1.8",
|
|
52
52
|
"@lcov-viewer/cli": "^1.3.0",
|
|
@@ -93,7 +93,8 @@ export class CliBinBuild extends BeanCliBase {
|
|
|
93
93
|
const { env, modulesMeta } = await generateVonaMeta(configMeta, configOptions);
|
|
94
94
|
const outDir = path.join(projectPath, getOutDir());
|
|
95
95
|
await rimraf(outDir);
|
|
96
|
-
await this._rollup(projectPath, env, outDir);
|
|
96
|
+
const { externals, allowBuilds } = await this._rollup(projectPath, env, modulesMeta, outDir);
|
|
97
|
+
await this._packageJson(projectPath, outDir, externals, allowBuilds);
|
|
97
98
|
await this._assets(projectPath, modulesMeta, outDir);
|
|
98
99
|
// custom
|
|
99
100
|
await this._custom(projectPath, env, outDir);
|
|
@@ -122,6 +123,37 @@ export class CliBinBuild extends BeanCliBase {
|
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
|
|
126
|
+
async _packageJson(
|
|
127
|
+
_projectPath: string,
|
|
128
|
+
outDir: string,
|
|
129
|
+
externals: Record<string, string>,
|
|
130
|
+
allowBuilds: Record<string, boolean>,
|
|
131
|
+
) {
|
|
132
|
+
// package.json
|
|
133
|
+
const dependencies: Record<string, string> = {};
|
|
134
|
+
for (const name of Object.keys(externals).sort()) {
|
|
135
|
+
const version = externals[name];
|
|
136
|
+
if (!version) throw new Error(`external dependency version not found: ${name}`);
|
|
137
|
+
dependencies[name] = version;
|
|
138
|
+
}
|
|
139
|
+
const pkgContent = {
|
|
140
|
+
type: 'module',
|
|
141
|
+
dependencies,
|
|
142
|
+
};
|
|
143
|
+
await fse.writeFile(
|
|
144
|
+
path.join(outDir, 'package.json'),
|
|
145
|
+
`${JSON.stringify(pkgContent, null, 2)}\n`,
|
|
146
|
+
);
|
|
147
|
+
// pnpm-workspace.yaml
|
|
148
|
+
const nativeBuildDepsAllowList = Object.keys(allowBuilds);
|
|
149
|
+
const content = [
|
|
150
|
+
'allowBuilds:',
|
|
151
|
+
...nativeBuildDepsAllowList.map(name => ` ${name}: true`),
|
|
152
|
+
'',
|
|
153
|
+
].join('\n');
|
|
154
|
+
await fse.writeFile(path.join(outDir, 'pnpm-workspace.yaml'), content);
|
|
155
|
+
}
|
|
156
|
+
|
|
125
157
|
async _custom(projectPath: string, env: NodeJS.ProcessEnv, outDir: string) {
|
|
126
158
|
// custom
|
|
127
159
|
const jsFile = path.join(projectPath, 'src/backend/cli.ts');
|
|
@@ -156,7 +188,12 @@ export class CliBinBuild extends BeanCliBase {
|
|
|
156
188
|
await rimraf(`${assetsPath}/**/.DS_Store`, { glob: true });
|
|
157
189
|
}
|
|
158
190
|
|
|
159
|
-
async _rollup(
|
|
191
|
+
async _rollup(
|
|
192
|
+
projectPath: string,
|
|
193
|
+
env: NodeJS.ProcessEnv,
|
|
194
|
+
modulesMeta: Awaited<ReturnType<typeof glob>>,
|
|
195
|
+
outDir: string,
|
|
196
|
+
) {
|
|
160
197
|
const aliasEntries: aliasImport.Alias[] = [];
|
|
161
198
|
const dialectDrivers = (process.env.BUILD_DIALECT_DRIVERS || '').split(',');
|
|
162
199
|
for (const name of __dialectDriversAll) {
|
|
@@ -167,6 +204,34 @@ export class CliBinBuild extends BeanCliBase {
|
|
|
167
204
|
const sourceMap = process.env.BUILD_SOURCEMAP === 'true';
|
|
168
205
|
|
|
169
206
|
const replaceValues = generateConfigDefine(env, ['NODE_ENV', 'META_MODE', 'META_FLAVOR']);
|
|
207
|
+
for (const relativeName in modulesMeta.modules) {
|
|
208
|
+
const module = modulesMeta.modules[relativeName];
|
|
209
|
+
const replacesModule = module.package.vonaModule?.bundle?.replaces;
|
|
210
|
+
if (!replacesModule) continue;
|
|
211
|
+
for (const replaceModule of replacesModule) {
|
|
212
|
+
replaceValues[replaceModule[0]] = replaceModule[1];
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const externals: Record<string, string> = {};
|
|
217
|
+
for (const relativeName in modulesMeta.modules) {
|
|
218
|
+
const module = modulesMeta.modules[relativeName];
|
|
219
|
+
const externalsModule = module.package.vonaModule?.bundle?.externals;
|
|
220
|
+
if (!externalsModule) continue;
|
|
221
|
+
for (const external of externalsModule) {
|
|
222
|
+
externals[external] = module.package.dependencies[external];
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
const allowBuilds: Record<string, true> = {};
|
|
227
|
+
for (const relativeName in modulesMeta.modules) {
|
|
228
|
+
const module = modulesMeta.modules[relativeName];
|
|
229
|
+
const allowBuildsModule = module.package.vonaModule?.bundle?.allowBuilds;
|
|
230
|
+
if (!allowBuildsModule) continue;
|
|
231
|
+
for (const allowBuild of allowBuildsModule) {
|
|
232
|
+
allowBuilds[allowBuild] = true;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
170
235
|
|
|
171
236
|
const babelPluginVonaBeanModule = getAbsolutePathOfModule('babel-plugin-vona-bean-module', '');
|
|
172
237
|
const babelPluginTransformTypescriptMetadata = getAbsolutePathOfModule(
|
|
@@ -235,6 +300,7 @@ export class CliBinBuild extends BeanCliBase {
|
|
|
235
300
|
const inputOptions: RollupOptions = {
|
|
236
301
|
input: path.join(projectPath, '.vona/bootstrap.ts'),
|
|
237
302
|
plugins,
|
|
303
|
+
external: Object.keys(externals),
|
|
238
304
|
onLog: (level: LogLevel, log: RollupLog, defaultHandler: LogOrStringHandler) => {
|
|
239
305
|
if (
|
|
240
306
|
log.code === 'CIRCULAR_DEPENDENCY' &&
|
|
@@ -276,5 +342,7 @@ export class CliBinBuild extends BeanCliBase {
|
|
|
276
342
|
await bundle.close();
|
|
277
343
|
}
|
|
278
344
|
}
|
|
345
|
+
|
|
346
|
+
return { externals, allowBuilds };
|
|
279
347
|
}
|
|
280
348
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babel-plugin-vona-bean-module",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "babel-plugin-vona-bean-module",
|
|
6
6
|
"keywords": [
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@babel/core": "^7.29.0",
|
|
41
41
|
"@babel/traverse": "^7.29.0",
|
|
42
|
-
"@cabloy/module-info": "^2.0.
|
|
42
|
+
"@cabloy/module-info": "^2.0.3",
|
|
43
43
|
"@cabloy/word-utils": "^2.1.8"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cabloy/module-glob",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.17",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "cabloy module-glob",
|
|
6
6
|
"keywords": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"postpack": "clean-package restore"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@cabloy/module-info": "^2.0.
|
|
37
|
+
"@cabloy/module-info": "^2.0.3",
|
|
38
38
|
"@cabloy/utils": "workspace:^",
|
|
39
39
|
"boxen": "^4.2.0",
|
|
40
40
|
"chalk": "^3.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cabloy/module-info-pro",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "cabloy module-info-pro",
|
|
6
6
|
"keywords": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"postpack": "clean-package restore"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@cabloy/module-info": "^2.0.
|
|
37
|
+
"@cabloy/module-info": "^2.0.3",
|
|
38
38
|
"stack-utils": "^2.0.6"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cabloy/utils",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.26",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "cabloy utils",
|
|
6
6
|
"keywords": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"postpack": "clean-package restore"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@cabloy/module-info": "^2.0.
|
|
37
|
+
"@cabloy/module-info": "^2.0.3",
|
|
38
38
|
"@cabloy/word-utils": "^2.1.8",
|
|
39
39
|
"@marcbachmann/cel-js": "^7.6.0",
|
|
40
40
|
"object-hash": "^3.0.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.68",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "Vona is an intuitive, elegant and powerful Node.js framework for rapidly developing enterprise applications of any size",
|
|
6
6
|
"keywords": [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-core",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.31",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "vona",
|
|
6
6
|
"keywords": [
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@cabloy/extend": "workspace:^",
|
|
40
40
|
"@cabloy/json5": "workspace:^",
|
|
41
41
|
"@cabloy/localeutil": "workspace:^",
|
|
42
|
-
"@cabloy/module-info": "^2.0.
|
|
42
|
+
"@cabloy/module-info": "^2.0.3",
|
|
43
43
|
"@cabloy/module-info-pro": "workspace:^",
|
|
44
44
|
"@cabloy/type-fest": "^5.3.1",
|
|
45
45
|
"@cabloy/utils": "workspace:^",
|