cabloy 5.1.95 → 5.1.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/.cabloy-version +1 -0
  2. package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +4 -1
  3. package/.claude/skills/cabloy-resource-field-update/SKILL.md +6 -3
  4. package/.github/workflows/vona-test-crud.yml +2 -0
  5. package/.github/workflows/vona-test-mysql.yml +2 -0
  6. package/.github/workflows/vona-test-pg.yml +2 -0
  7. package/.github/workflows/vona-test-sqlite3.yml +2 -0
  8. package/CHANGELOG.md +31 -0
  9. package/CLAUDE.md +1 -0
  10. package/cabloy-docs/ai/playbook-backend-module.md +6 -3
  11. package/cabloy-docs/fullstack/framework-performance.md +3 -3
  12. package/cabloy-docs/fullstack/quickstart.md +1 -1
  13. package/package.json +1 -1
  14. package/scripts/release.ts +27 -1
  15. package/vona/docker-compose-original/docker-compose-dockerfile-app +4 -0
  16. package/vona/docker-compose-original/docker-compose.original.yml +0 -1
  17. package/vona/env/.env +0 -1
  18. package/vona/env/.env.prod +0 -1
  19. package/vona/env/.env.prod.docker +0 -7
  20. package/vona/package.original.json +3 -3
  21. package/vona/packages-cli/cabloy-cli/package.json +2 -2
  22. package/vona/packages-cli/cli/package.json +1 -1
  23. package/vona/packages-cli/cli-set-api/package.json +2 -2
  24. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.bin.build.ts +70 -2
  25. package/vona/packages-utils/babel-plugin-vona-bean-module/package.json +2 -2
  26. package/vona/packages-utils/module-glob/package.json +2 -2
  27. package/vona/packages-utils/module-info-pro/package.json +2 -2
  28. package/vona/packages-utils/utils/package.json +2 -2
  29. package/vona/packages-vona/vona/package.json +1 -1
  30. package/vona/packages-vona/vona-core/package.json +2 -2
  31. package/vona/packages-vona/vona-core/src/lib/addon/addon.ts +77 -0
  32. package/vona/packages-vona/vona-core/src/lib/addon/index.ts +3 -0
  33. package/vona/packages-vona/vona-core/src/lib/addon/sharp.ts +46 -0
  34. package/vona/packages-vona/vona-core/src/lib/addon/sqlite3.ts +23 -0
  35. package/vona/packages-vona/vona-core/src/lib/index.ts +1 -0
  36. package/vona/packages-vona/vona-core/src/lib/utils/index.ts +0 -1
  37. package/vona/packages-vona/vona-core/src/lib/utils/util.ts +5 -0
  38. package/vona/packages-vona/vona-mock/package.json +2 -2
  39. package/vona/pnpm-lock.yaml +414 -64
  40. package/vona/src/backend/cli.ts +2 -5
  41. package/vona/src/backend/config/config/config.ts +0 -4
  42. package/vona/src/suite/a-demo/modules/demo-basic/src/bean/ssrMenu.admin.ts +1 -1
  43. package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +26 -0
  44. package/vona/src/suite/a-training/modules/training-record/src/bean/imageScene.sceneImage.ts +11 -0
  45. package/vona/src/suite/a-training/modules/training-record/src/bean/meta.version.ts +1 -0
  46. package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +1 -0
  47. package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +1 -0
  48. package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +12 -0
  49. package/vona/src/suite/a-training/modules/training-record/src/dto/recordView.tsx +12 -0
  50. package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +26 -1
  51. package/vona/src/suite/a-training/modules/training-record/src/index.ts +1 -0
  52. package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +27 -1
  53. package/vona/src/suite/a-training/modules/training-student/src/bean/imageScene.studentImage.ts +10 -0
  54. package/vona/src/suite/a-training/modules/training-student/src/bean/meta.version.ts +1 -0
  55. package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
  56. package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
  57. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +16 -2
  58. package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +1 -1
  59. package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectResItem.tsx +12 -0
  60. package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +1 -1
  61. package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +13 -1
  62. package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +26 -1
  63. package/vona/src/suite/a-training/modules/training-student/src/index.ts +1 -0
  64. package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +1 -0
  65. package/vona/src/suite-vendor/a-auth/modules/a-auth/package.json +1 -1
  66. package/vona/src/suite-vendor/a-auth/modules/a-auth/src/bean/bean.authProvider.ts +2 -5
  67. package/vona/src/suite-vendor/a-auth/package.json +1 -1
  68. package/vona/src/suite-vendor/a-image/modules/a-image/cli/imageProvider/boilerplate/{{sceneName}}.{{beanName}}.ts_ +23 -0
  69. package/vona/src/suite-vendor/a-image/modules/a-image/cli/imageScene/boilerplate/{{sceneName}}.{{beanName}}.ts_ +5 -0
  70. package/vona/src/suite-vendor/a-image/modules/a-image/package.json +68 -0
  71. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/index.ts +482 -0
  72. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/locales.ts +18 -0
  73. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/this.ts +2 -0
  74. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.image.ts +443 -0
  75. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageProvider.ts +55 -0
  76. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageUploadPolicy.ts +174 -0
  77. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.redlock.ts +11 -0
  78. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.version.ts +40 -0
  79. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/serializerTransform.resolveView.ts +44 -0
  80. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/serializerTransform.resolveViews.ts +44 -0
  81. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/config.ts +17 -0
  82. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/locale/en-us.ts +1 -0
  83. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/locale/zh-cn.ts +1 -0
  84. package/vona/src/suite-vendor/a-image/modules/a-image/src/controller/image.ts +165 -0
  85. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDeliveryRequest.ts +20 -0
  86. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadRequest.ts +36 -0
  87. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadResponse.ts +38 -0
  88. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageTransformOptions.tsx +42 -0
  89. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadResponse.ts +62 -0
  90. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadTokenRequest.ts +24 -0
  91. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadTokenResponse.ts +16 -0
  92. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadUrlRequest.ts +33 -0
  93. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageView.ts +46 -0
  94. package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/image.ts +58 -0
  95. package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/imageProvider.ts +24 -0
  96. package/vona/src/suite-vendor/a-image/modules/a-image/src/index.ts +4 -0
  97. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageProvider.ts +9 -0
  98. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageScene.ts +7 -0
  99. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageVariant.ts +46 -0
  100. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/index.ts +3 -0
  101. package/vona/src/suite-vendor/a-image/modules/a-image/src/model/image.ts +10 -0
  102. package/vona/src/suite-vendor/a-image/modules/a-image/src/model/imageProvider.ts +10 -0
  103. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/image.ts +208 -0
  104. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageProvider.ts +110 -0
  105. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageScene.ts +52 -0
  106. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/index.ts +3 -0
  107. package/vona/src/suite-vendor/a-image/modules/a-image/tsconfig.build.json +11 -0
  108. package/vona/src/suite-vendor/a-image/modules/a-image/tsconfig.json +7 -0
  109. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/package.json +49 -0
  110. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/.metadata/index.ts +89 -0
  111. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/.metadata/this.ts +2 -0
  112. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/bean/imageProvider.cloudflare.ts +155 -0
  113. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/index.ts +1 -0
  114. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/lib/cloudflareImageUrl.ts +112 -0
  115. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/service/imageCloudflare.ts +273 -0
  116. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/tsconfig.build.json +11 -0
  117. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/tsconfig.json +7 -0
  118. package/vona/src/suite-vendor/a-image/modules/image-native/package.json +63 -0
  119. package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/index.ts +114 -0
  120. package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/this.ts +2 -0
  121. package/vona/src/suite-vendor/a-image/modules/image-native/src/bean/imageProvider.native.ts +131 -0
  122. package/vona/src/suite-vendor/a-image/modules/image-native/src/config/config.ts +11 -0
  123. package/vona/src/suite-vendor/a-image/modules/image-native/src/index.ts +1 -0
  124. package/vona/src/suite-vendor/a-image/modules/image-native/src/monkey.ts +33 -0
  125. package/vona/src/suite-vendor/a-image/modules/image-native/src/service/imageNative.ts +291 -0
  126. package/vona/src/suite-vendor/a-image/modules/image-native/tsconfig.build.json +11 -0
  127. package/vona/src/suite-vendor/a-image/modules/image-native/tsconfig.json +7 -0
  128. package/vona/src/suite-vendor/a-image/package.json +14 -0
  129. package/vona/src/suite-vendor/a-image/tsconfig.base.json +4 -0
  130. package/vona/src/suite-vendor/a-image/tsconfig.json +16 -0
  131. package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +2 -2
  132. package/vona/src/suite-vendor/a-vona/modules/a-jwt/package.json +1 -1
  133. package/vona/src/suite-vendor/a-vona/modules/a-jwt/src/service/jwtClient.ts +5 -0
  134. package/vona/src/suite-vendor/a-vona/modules/a-jwt/src/types/jwt.ts +1 -0
  135. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/package.json +1 -1
  136. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/schema/makeSchemaLikes.ts +6 -3
  137. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/utils.ts +13 -7
  138. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  139. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/database.ts +0 -1
  140. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +9 -1
  141. package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +1 -1
  142. package/vona/src/suite-vendor/a-vona/modules/a-upload/src/bean/interceptor.upload.ts +39 -7
  143. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  144. package/zova/packages-cli/cli/package.json +3 -3
  145. package/zova/packages-cli/cli-set-front/package.json +9 -9
  146. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.generate.ts +20 -10
  147. package/zova/packages-utils/babel-plugin-zova-bean-module/package.json +2 -2
  148. package/zova/packages-utils/babel-plugin-zova-bean-use/package.json +2 -2
  149. package/zova/packages-utils/babel-plugin-zova-behavior/package.json +2 -2
  150. package/zova/packages-utils/babel-plugin-zova-component/package.json +2 -2
  151. package/zova/packages-utils/zova-jsx/package.json +3 -3
  152. package/zova/packages-utils/zova-vite/package.json +7 -7
  153. package/zova/packages-zova/zova/package.json +3 -3
  154. package/zova/packages-zova/zova-core/package.json +3 -3
  155. package/zova/pnpm-lock.yaml +77 -25
  156. package/zova/src/suite/a-home/modules/home-api/src/api/captcha.ts +3 -1
  157. package/zova/src/suite/a-home/modules/home-api/src/api/home.ts +3 -1
  158. package/zova/src/suite/a-home/modules/home-api/src/api/homeBaseMenu.ts +3 -1
  159. package/zova/src/suite/a-home/modules/home-api/src/api/homeBasePermission.ts +3 -1
  160. package/zova/src/suite/a-home/modules/home-api/src/api/homeUserPassport.ts +22 -20
  161. package/zova/src/suite/a-home/modules/home-api/src/api/openapi/schemas.ts +163 -53
  162. package/zova/src/suite/a-home/modules/home-api/src/api/openapi/types.ts +2060 -675
  163. package/zova/src/suite/a-home/modules/home-api/src/api/testSsrToolOne.ts +3 -1
  164. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/captcha.ts +3 -1
  165. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/home.ts +3 -1
  166. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeBaseMenu.ts +3 -1
  167. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeBasePermission.ts +3 -1
  168. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeUserPassport.ts +13 -11
  169. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/testSsrToolOne.ts +3 -1
  170. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +54 -16
  171. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +468 -8
  172. package/zova/src/suite/a-training/modules/training-student/src/apiSchema/trainingStudent.ts +3 -1
  173. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionUpdate.tsx +1 -1
  174. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/actionCreate/controller.tsx +1 -1
  175. package/zova/src/suite/cabloy-basic/modules/basic-details/src/service/detail.tsx +53 -1
  176. package/zova/src/suite/cabloy-basic/modules/basic-image/cli/openapi.config.ts +9 -0
  177. package/zova/src/suite/cabloy-basic/modules/basic-image/package.json +60 -0
  178. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/component/formFieldImage.ts +31 -0
  179. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/index.ts +191 -0
  180. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/locales.ts +7 -0
  181. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/this.ts +2 -0
  182. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/image.ts +104 -0
  183. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/baseURL.ts +5 -0
  184. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/index.ts +3 -0
  185. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/schemas.ts +262 -0
  186. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/types.ts +5159 -0
  187. package/zova/src/suite/cabloy-basic/modules/basic-image/src/apiSchema/image.ts +35 -0
  188. package/zova/src/suite/cabloy-basic/modules/basic-image/src/bean/tableCell.image.tsx +200 -0
  189. package/zova/src/suite/cabloy-basic/modules/basic-image/src/component/formFieldImage/controller.tsx +781 -0
  190. package/zova/src/suite/cabloy-basic/modules/basic-image/src/config/locale/en-us.ts +18 -0
  191. package/zova/src/suite/cabloy-basic/modules/basic-image/src/config/locale/zh-cn.ts +18 -0
  192. package/zova/src/suite/cabloy-basic/modules/basic-image/src/index.ts +4 -0
  193. package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/index.ts +2 -0
  194. package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/preview.ts +105 -0
  195. package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/previewDialog.tsx +190 -0
  196. package/zova/src/suite/cabloy-basic/modules/basic-image/src/types/image.ts +5 -0
  197. package/zova/src/suite/cabloy-basic/modules/basic-image/src/types/index.ts +1 -0
  198. package/zova/src/suite/cabloy-basic/modules/basic-image/tsconfig.build.json +13 -0
  199. package/zova/src/suite/cabloy-basic/modules/basic-image/tsconfig.json +5 -0
  200. package/zova/src/suite/cabloy-basic/package.json +1 -0
  201. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  202. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/image.ts +1 -0
  203. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/index.ts +1 -0
  204. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +5 -5
  205. package/zova/src/suite-vendor/a-zova/package.json +3 -3
  206. package/vona/packages-vona/vona-core/src/lib/utils/sqlite3.ts +0 -50
@@ -0,0 +1,77 @@
1
+ import fse from 'fs-extra';
2
+ import { createRequire } from 'node:module';
3
+ import path from 'node:path';
4
+
5
+ import { resolverSharp, resolverSharpLibvips } from './sharp.ts';
6
+ import { resolverSqlite3 } from './sqlite3.ts';
7
+
8
+ export type TypeCopyAddonOptionsResolver = (addonName: string, projectPath: string) => string;
9
+ export interface ICopyAddonOptions {
10
+ addonName: string;
11
+ resolver?: TypeCopyAddonOptionsResolver;
12
+ projectPath: string;
13
+ outDir: string;
14
+ env: NodeJS.ProcessEnv;
15
+ }
16
+
17
+ export function getPlatformArch() {
18
+ const platform = process.platform;
19
+ const arch = process.arch;
20
+ return `${platform}-${arch}`;
21
+ }
22
+
23
+ export async function copyAddon({
24
+ addonName,
25
+ resolver,
26
+ projectPath,
27
+ outDir,
28
+ env,
29
+ }: ICopyAddonOptions) {
30
+ const envName = `BUILD_ADDON_${addonName}`.toUpperCase();
31
+ const envValue = env[envName];
32
+ if (envValue === 'false') return;
33
+ // manual
34
+ const addonDirSrc = path.join(projectPath, 'src/backend/addon', addonName);
35
+ if (fse.existsSync(addonDirSrc)) {
36
+ const addonDirDest = path.join(outDir, 'addon', addonName);
37
+ await fse.copy(addonDirSrc, addonDirDest);
38
+ }
39
+ // auto
40
+ const envAutoName = `BUILD_ADDON_AUTO_${addonName}`.toUpperCase();
41
+ const envAutoValue = env[envAutoName];
42
+ if (envAutoValue === 'false') return;
43
+ const platformArch = getPlatformArch();
44
+ const addonFile = _resolverAddonFile(addonName, projectPath, resolver);
45
+ if (addonFile) {
46
+ const fileDest = path.join(outDir, 'addon', addonName, `${platformArch}.node`);
47
+ await fse.copy(addonFile, fileDest);
48
+ }
49
+ }
50
+
51
+ export function requireAddon(addonName: string) {
52
+ const addonFile = resolveAddon(addonName);
53
+ const require = createRequire(import.meta.url);
54
+ return require(addonFile);
55
+ }
56
+
57
+ export function resolveAddon(addonName: string) {
58
+ const platformArch = getPlatformArch();
59
+ const addonFile = path.join(import.meta.dirname, 'addon', addonName, `${platformArch}.node`);
60
+ return addonFile;
61
+ }
62
+
63
+ function _resolverAddonFile(
64
+ addonName: string,
65
+ projectPath: string,
66
+ resolver?: TypeCopyAddonOptionsResolver,
67
+ ): string | undefined {
68
+ const addonFile = resolver?.(addonName, projectPath);
69
+ if (addonFile) return addonFile;
70
+ if (addonName === 'sqlite3') {
71
+ return resolverSqlite3(projectPath);
72
+ } else if (addonName === 'sharp') {
73
+ return resolverSharp(projectPath);
74
+ } else if (addonName === 'sharpLibvips') {
75
+ return resolverSharpLibvips(projectPath);
76
+ }
77
+ }
@@ -0,0 +1,3 @@
1
+ export * from './sqlite3.ts';
2
+ export * from './addon.ts';
3
+ export * from './sharp.ts';
@@ -0,0 +1,46 @@
1
+ import fs from 'node:fs';
2
+ import { createRequire } from 'node:module';
3
+ import path from 'node:path';
4
+ import { getPlatformArch } from 'vona';
5
+
6
+ import { pathToHref } from '../utils/util.ts';
7
+
8
+ export function resolverSharp(projectPath: string) {
9
+ // src
10
+ const require = createRequire(pathToHref(path.join(projectPath, '/')));
11
+ const sharpPath = require.resolve('sharp');
12
+ const requireSharp = createRequire(pathToHref(sharpPath));
13
+ const modulePath = requireSharp.resolve(`@img/sharp-${getPlatformArch()}/sharp.node`);
14
+ const libPath = path.join(path.dirname(modulePath), 'lib');
15
+ const fileName = fs.readdirSync(libPath).find(item => item.endsWith('.node'));
16
+ if (!fileName) {
17
+ throw new Error(`Sharp native binding not found: ${libPath}`);
18
+ }
19
+ return path.join(libPath, fileName);
20
+ }
21
+
22
+ export function resolverSharpLibvips(projectPath: string) {
23
+ // src
24
+ const require = createRequire(pathToHref(path.join(projectPath, '/')));
25
+ const sharpPath = require.resolve('sharp');
26
+ const requireSharp = createRequire(pathToHref(sharpPath));
27
+ const modulePath = requireSharp.resolve(`@img/sharp-libvips-${getPlatformArch()}/package`);
28
+ const libPath = path.join(path.dirname(modulePath), 'lib');
29
+ const fileName = fs.readdirSync(libPath).find(_matchSharpLibvipsFileName);
30
+ if (!fileName) {
31
+ // eslint-disable-next-line
32
+ console.log(fs.readdirSync(libPath));
33
+ throw new Error(`Sharp libvips native binding not found: ${libPath}`);
34
+ }
35
+ return path.join(libPath, fileName);
36
+ }
37
+
38
+ function _matchSharpLibvipsFileName(fileName: string) {
39
+ if (process.platform === 'darwin') {
40
+ return fileName.endsWith('.dylib');
41
+ }
42
+ if (process.platform === 'win32') {
43
+ return /\.dll$/i.test(fileName);
44
+ }
45
+ return /\.so(?:\..+)?$/.test(fileName);
46
+ }
@@ -0,0 +1,23 @@
1
+ import fse from 'fs-extra';
2
+ import { createRequire } from 'node:module';
3
+ import path from 'node:path';
4
+
5
+ import type { VonaApplication } from '../core/application.ts';
6
+
7
+ import { getHomeVonaAppDir } from '../core/config.ts';
8
+ import { pathToHref } from '../utils/util.ts';
9
+
10
+ export function getSqlite3DatabaseNameDefault(app: VonaApplication) {
11
+ const mode = app.meta.env.META_MODE;
12
+ if (mode !== 'prod') return '';
13
+ const dbPath = path.join(getHomeVonaAppDir(app), 'sqlite3');
14
+ fse.ensureDirSync(dbPath);
15
+ return path.join(dbPath, `${app.name}.db`);
16
+ }
17
+
18
+ export function resolverSqlite3(projectPath: string) {
19
+ // src
20
+ const require = createRequire(pathToHref(path.join(projectPath, '/')));
21
+ const modulePath = require.resolve('better-sqlite3/package.json');
22
+ return path.join(path.dirname(modulePath), 'build/Release/better_sqlite3.node');
23
+ }
@@ -4,3 +4,4 @@ export * from './decorator/index.ts';
4
4
  export * from './framework/index.ts';
5
5
  export * from './mappedClass/index.ts';
6
6
  export * from './utils/index.ts';
7
+ export * from './addon/index.ts';
@@ -2,7 +2,6 @@ import { zodExtendOpenApi } from './zod-openapi.ts';
2
2
 
3
3
  export * from './protocolKey.ts';
4
4
  export * from './retry.ts';
5
- export * from './sqlite3.ts';
6
5
  export * from './util.ts';
7
6
 
8
7
  zodExtendOpenApi();
@@ -30,6 +30,7 @@ import type { IBeanSceneRecord } from '../decorator/interface/beanOptions.ts';
30
30
  import type { ZodLocaleErrors } from './zod-enhance.ts';
31
31
 
32
32
  import { cast } from '../../types/index.ts';
33
+ import { requireAddon } from '../addon/addon.ts';
33
34
  import { BeanSimple } from '../bean/beanSimple.ts';
34
35
  import { zodSetLocaleErrors } from './zod-enhance.ts';
35
36
 
@@ -306,6 +307,10 @@ export class AppUtil extends BeanSimple {
306
307
  setLocaleErrors(localeErrors: ZodLocaleErrors, localeDefault?: string) {
307
308
  return zodSetLocaleErrors(this.app, localeErrors, localeDefault);
308
309
  }
310
+
311
+ requireAddon(addonName: string) {
312
+ return requireAddon(addonName);
313
+ }
309
314
  }
310
315
 
311
316
  export function compose(chains, adapter?) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-mock",
3
- "version": "6.1.30",
3
+ "version": "6.1.31",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona mock",
6
6
  "keywords": [
@@ -34,7 +34,7 @@
34
34
  "postpack": "clean-package restore"
35
35
  },
36
36
  "dependencies": {
37
- "@cabloy/module-info": "^2.0.0",
37
+ "@cabloy/module-info": "^2.0.3",
38
38
  "@cabloy/module-info-pro": "workspace:^",
39
39
  "vona-core": "workspace:^"
40
40
  },