cabloy 5.1.97 → 5.1.98

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 (122) hide show
  1. package/.cabloy-version +1 -1
  2. package/CHANGELOG.md +27 -0
  3. package/cabloy-docs/.vitepress/config.mjs +7 -0
  4. package/cabloy-docs/backend/image-guide.md +544 -0
  5. package/cabloy-docs/frontend/image-guide.md +512 -0
  6. package/cabloy-docs/frontend/introduction.md +2 -0
  7. package/cabloy-docs/frontend/ioc-and-beans.md +34 -3
  8. package/cabloy-docs/frontend/model-architecture.md +2 -0
  9. package/cabloy-docs/frontend/model-resource-owner-pattern.md +2 -0
  10. package/cabloy-docs/frontend/model-state-guide.md +2 -0
  11. package/cabloy-docs/frontend/reading-zova-for-vue-developers.md +10 -8
  12. package/cabloy-docs/frontend/server-data.md +2 -0
  13. package/cabloy-docs/frontend/state-architecture-for-vue-developers.md +218 -0
  14. package/cabloy-docs/frontend/system-startup-guide.md +2 -0
  15. package/cabloy-docs/frontend/zova-vs-vue3-comparison.md +11 -10
  16. package/cabloy-docs/fullstack/image-workflow.md +403 -0
  17. package/cabloy-docs/fullstack/introduction.md +1 -0
  18. package/package.json +1 -1
  19. package/vona/package.original.json +0 -1
  20. package/vona/packages-vona/vona/package.json +1 -1
  21. package/vona/pnpm-lock.yaml +424 -47
  22. package/vona/src/suite/cabloy-basic/modules/basic-siteadmin/src/bean/ssrSite.admin.ts +4 -0
  23. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/bean/ssrSite.web.ts +4 -0
  24. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/cli/ssrSite/boilerplate/{{sceneName}}.{{beanName}}.ts_ +3 -0
  25. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
  26. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/service/ssrHandler.ts +11 -2
  27. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/types/ssrSite.ts +6 -0
  28. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  29. package/vona/src/suite-vendor/a-file/modules/a-file/cli/fileProvider/boilerplate/{{sceneName}}.{{beanName}}.ts_ +23 -0
  30. package/vona/src/suite-vendor/a-file/modules/a-file/cli/fileScene/boilerplate/{{sceneName}}.{{beanName}}.ts_ +5 -0
  31. package/vona/src/suite-vendor/a-file/modules/a-file/package.json +66 -0
  32. package/vona/src/suite-vendor/a-file/modules/a-file/src/.metadata/index.ts +425 -0
  33. package/vona/src/suite-vendor/a-file/modules/a-file/src/.metadata/locales.ts +18 -0
  34. package/vona/src/suite-vendor/a-file/modules/a-file/src/.metadata/this.ts +2 -0
  35. package/vona/src/suite-vendor/a-file/modules/a-file/src/bean/bean.file.ts +322 -0
  36. package/vona/src/suite-vendor/a-file/modules/a-file/src/bean/bean.fileProvider.ts +62 -0
  37. package/vona/src/suite-vendor/a-file/modules/a-file/src/bean/bean.fileUploadPolicy.ts +196 -0
  38. package/vona/src/suite-vendor/a-file/modules/a-file/src/bean/meta.redlock.ts +11 -0
  39. package/vona/src/suite-vendor/a-file/modules/a-file/src/bean/meta.version.ts +38 -0
  40. package/vona/src/suite-vendor/a-file/modules/a-file/src/config/config.ts +16 -0
  41. package/vona/src/suite-vendor/a-file/modules/a-file/src/config/locale/en-us.ts +1 -0
  42. package/vona/src/suite-vendor/a-file/modules/a-file/src/config/locale/zh-cn.ts +1 -0
  43. package/vona/src/suite-vendor/a-file/modules/a-file/src/controller/file.ts +167 -0
  44. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileDirectUploadRequest.ts +33 -0
  45. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileDirectUploadResponse.ts +41 -0
  46. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileDownloadRequest.ts +12 -0
  47. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileUploadResponse.ts +59 -0
  48. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileUploadTokenRequest.ts +24 -0
  49. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileUploadTokenResponse.ts +16 -0
  50. package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileUploadUrlRequest.ts +33 -0
  51. package/vona/src/suite-vendor/a-file/modules/a-file/src/entity/file.ts +55 -0
  52. package/vona/src/suite-vendor/a-file/modules/a-file/src/entity/fileProvider.ts +24 -0
  53. package/vona/src/suite-vendor/a-file/modules/a-file/src/index.ts +4 -0
  54. package/vona/src/suite-vendor/a-file/modules/a-file/src/lib/fileProvider.ts +7 -0
  55. package/vona/src/suite-vendor/a-file/modules/a-file/src/lib/fileScene.ts +7 -0
  56. package/vona/src/suite-vendor/a-file/modules/a-file/src/lib/fileUploadValidation.ts +15 -0
  57. package/vona/src/suite-vendor/a-file/modules/a-file/src/lib/index.ts +3 -0
  58. package/vona/src/suite-vendor/a-file/modules/a-file/src/model/file.ts +10 -0
  59. package/vona/src/suite-vendor/a-file/modules/a-file/src/model/fileProvider.ts +10 -0
  60. package/vona/src/suite-vendor/a-file/modules/a-file/src/types/file.ts +144 -0
  61. package/vona/src/suite-vendor/a-file/modules/a-file/src/types/fileProvider.ts +111 -0
  62. package/vona/src/suite-vendor/a-file/modules/a-file/src/types/fileScene.ts +53 -0
  63. package/vona/src/suite-vendor/a-file/modules/a-file/src/types/index.ts +3 -0
  64. package/vona/src/suite-vendor/a-file/modules/a-file/tsconfig.build.json +11 -0
  65. package/vona/src/suite-vendor/a-file/modules/a-file/tsconfig.json +7 -0
  66. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/package.json +53 -0
  67. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/src/.metadata/index.ts +104 -0
  68. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/src/.metadata/this.ts +2 -0
  69. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/src/bean/fileProvider.cloudflare.ts +123 -0
  70. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/src/index.ts +1 -0
  71. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/src/service/fileCloudflare.ts +245 -0
  72. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/tsconfig.build.json +11 -0
  73. package/vona/src/suite-vendor/a-file/modules/file-cloudflare/tsconfig.json +7 -0
  74. package/vona/src/suite-vendor/a-file/modules/file-native/package.json +50 -0
  75. package/vona/src/suite-vendor/a-file/modules/file-native/src/.metadata/index.ts +111 -0
  76. package/vona/src/suite-vendor/a-file/modules/file-native/src/.metadata/this.ts +2 -0
  77. package/vona/src/suite-vendor/a-file/modules/file-native/src/bean/fileProvider.native.ts +125 -0
  78. package/vona/src/suite-vendor/a-file/modules/file-native/src/config/config.ts +7 -0
  79. package/vona/src/suite-vendor/a-file/modules/file-native/src/index.ts +1 -0
  80. package/vona/src/suite-vendor/a-file/modules/file-native/src/service/fileNative.ts +125 -0
  81. package/vona/src/suite-vendor/a-file/modules/file-native/tsconfig.build.json +11 -0
  82. package/vona/src/suite-vendor/a-file/modules/file-native/tsconfig.json +7 -0
  83. package/vona/src/suite-vendor/a-file/package.json +14 -0
  84. package/vona/src/suite-vendor/a-file/tsconfig.base.json +4 -0
  85. package/vona/src/suite-vendor/a-file/tsconfig.json +16 -0
  86. package/vona/src/suite-vendor/a-image/modules/a-image/package.json +4 -1
  87. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/index.ts +61 -3
  88. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.image.ts +336 -152
  89. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageProvider.ts +21 -14
  90. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageUploadPolicy.ts +59 -11
  91. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.index.ts +12 -0
  92. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.redlock.ts +1 -1
  93. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.version.ts +3 -0
  94. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/schedule.imageDraftPrune.ts +29 -0
  95. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/config.ts +3 -0
  96. package/vona/src/suite-vendor/a-image/modules/a-image/src/controller/image.ts +24 -54
  97. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadFinalizeRequest.ts +13 -0
  98. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadFinalizeResponse.ts +10 -0
  99. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadResponse.ts +10 -0
  100. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadResponse.ts +10 -1
  101. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageView.ts +10 -1
  102. package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/image.ts +10 -1
  103. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageUploadValidation.ts +15 -0
  104. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/index.ts +1 -0
  105. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/image.ts +18 -0
  106. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageProvider.ts +28 -2
  107. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/package.json +1 -1
  108. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/bean/imageProvider.cloudflare.ts +13 -1
  109. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/service/imageCloudflare.ts +26 -0
  110. package/vona/src/suite-vendor/a-image/modules/image-native/package.json +6 -2
  111. package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/index.ts +37 -0
  112. package/vona/src/suite-vendor/a-image/modules/image-native/src/bean/imageProvider.native.ts +21 -1
  113. package/vona/src/suite-vendor/a-image/modules/image-native/src/controller/image.ts +57 -0
  114. package/vona/src/suite-vendor/a-image/modules/image-native/src/service/imageNative.ts +142 -34
  115. package/vona/src/suite-vendor/a-image/package.json +1 -1
  116. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  117. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/entity.ts +2 -4
  118. package/vona/src/suite-vendor/a-vona/modules/a-ormutils/package.json +1 -1
  119. package/vona/src/suite-vendor/a-vona/modules/a-ormutils/src/lib/columns.ts +7 -3
  120. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  121. package/zova/pnpm-lock.yaml +389 -397
  122. package/zova/src/suite/cabloy-basic/modules/basic-image/src/component/formFieldImage/controller.tsx +0 -9
@@ -22,5 +22,9 @@ export interface ISsrSiteOptionsAdmin extends IDecoratorSsrSiteOptions<
22
22
  @SsrSite<ISsrSiteOptionsAdmin>({
23
23
  publicPath: 'admin',
24
24
  bundlePath: 'ssr-cabloyBasicAdmin-5.0.0',
25
+ diagnostics: {
26
+ siteName: 'admin',
27
+ buildCommand: 'npm run build:zova:admin',
28
+ },
25
29
  })
26
30
  export class SsrSiteAdmin extends BeanSsrSiteBase<ISsrSiteOptionsAdmin> {}
@@ -22,5 +22,9 @@ export interface ISsrSiteOptionsWeb extends IDecoratorSsrSiteOptions<
22
22
  @SsrSite<ISsrSiteOptionsWeb>({
23
23
  publicPath: '',
24
24
  bundlePath: 'ssr-cabloyBasicWeb-5.0.0',
25
+ diagnostics: {
26
+ siteName: 'web',
27
+ buildCommand: 'npm run build:zova:web',
28
+ },
25
29
  })
26
30
  export class SsrSiteWeb extends BeanSsrSiteBase<ISsrSiteOptionsWeb> {}
@@ -18,5 +18,8 @@ export interface ISsrSiteOptions<%=argv.beanNameCapitalize%> extends IDecoratorS
18
18
  @SsrSite<ISsrSiteOptions<%=argv.beanNameCapitalize%>>({
19
19
  publicPath: 'some',
20
20
  bundlePath: 'front-bundle-path',
21
+ diagnostics: {
22
+ siteName: 'some',
23
+ },
21
24
  })
22
25
  export class SsrSite<%=argv.beanNameCapitalize%> extends BeanSsrSiteBase<ISsrSiteOptions<%=argv.beanNameCapitalize%>> {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-ssr",
3
- "version": "5.1.21",
3
+ "version": "5.1.24",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -51,8 +51,9 @@ export class ServiceSsrHandler extends BeanBase {
51
51
  private async _prepareHandler() {
52
52
  // handler
53
53
  const fileHandler = path.join(this._siteAssetDir, 'handler.js');
54
- if (!fse.existsSync(fileHandler))
55
- throw new Error(`The bundlePath of ssr site not exists: ${this._siteAssetDir}`);
54
+ if (!fse.existsSync(fileHandler)) {
55
+ throw new Error(this._createMissingBundleMessage());
56
+ }
56
57
  // import
57
58
  const fileUrl = `${pathToHref(fileHandler)}?${this._handlerNonce}`;
58
59
  const handlerInstance = await import(fileUrl);
@@ -65,4 +66,12 @@ export class ServiceSsrHandler extends BeanBase {
65
66
  // ok
66
67
  return ssrHandler;
67
68
  }
69
+
70
+ private _createMissingBundleMessage() {
71
+ const diagnostics = this._siteOptions.diagnostics;
72
+ const siteName = diagnostics?.siteName ?? String(this._siteOptions.publicPath || 'unknown');
73
+ const buildCommand = diagnostics?.buildCommand;
74
+ const commandHint = buildCommand ? ` Run "${buildCommand}" at the repository root.` : '';
75
+ return `Missing SSR bundle for site ${siteName}: ${this._siteAssetDir}.${commandHint}`;
76
+ }
68
77
  }
@@ -50,6 +50,11 @@ export interface ISsrSitePublicPathRecord {}
50
50
 
51
51
  export interface ISsrSiteRecord {}
52
52
 
53
+ export interface ISsrSiteDiagnosticsOptions {
54
+ siteName?: string;
55
+ buildCommand?: string;
56
+ }
57
+
53
58
  export type TypeMergePagesAndPagesData<Pages extends {} = {}, PagesData extends {} = {}> = {
54
59
  // @ts-ignore: ignore
55
60
  [K in keyof Pages]: Pages[K] & { data?: PagesData[K] };
@@ -65,6 +70,7 @@ export interface IDecoratorSsrSiteOptions<
65
70
  IOnionOptionsMatch<TypeOnionOptionsMatchRule<keyof IInstanceRecord>> {
66
71
  publicPath: keyof ISsrSitePublicPathRecord;
67
72
  bundlePath: string;
73
+ diagnostics?: ISsrSiteDiagnosticsOptions;
68
74
  envServer?: ZovaConfigEnv;
69
75
  envClient?: ZovaConfigEnv;
70
76
  apiType: 'performAction' | 'api' | 'dev';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-suite-a-cabloy",
3
- "version": "5.1.36",
3
+ "version": "5.1.39",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "author": "",
@@ -0,0 +1,23 @@
1
+ import type {
2
+ IDecoratorFileProviderOptions,
3
+ IFileProviderClientOptions,
4
+ IFileProviderClientRecord,
5
+ IFileProviderExecute,
6
+ } from 'vona-module-a-file';
7
+
8
+ import { BeanBase } from 'vona';
9
+ import { FileProvider } from 'vona-module-a-file';
10
+
11
+ export interface IFileProvider<%=argv.beanNameCapitalize%>ClientRecord extends IFileProviderClientRecord {}
12
+
13
+ export interface IFileProvider<%=argv.beanNameCapitalize%>ClientOptions extends IFileProviderClientOptions {}
14
+
15
+ export interface IFileProviderOptions<%=argv.beanNameCapitalize%> extends IDecoratorFileProviderOptions<
16
+ IFileProvider<%=argv.beanNameCapitalize%>ClientRecord,
17
+ IFileProvider<%=argv.beanNameCapitalize%>ClientOptions
18
+ > {}
19
+
20
+ @FileProvider<IFileProviderOptions<%=argv.beanNameCapitalize%>>({
21
+ base: {},
22
+ })
23
+ export class FileProvider<%=argv.beanNameCapitalize%> extends BeanBase implements IFileProviderExecute {}
@@ -0,0 +1,5 @@
1
+ import { BeanBase } from 'vona';
2
+ import { FileScene } from 'vona-module-a-file';
3
+
4
+ @FileScene()
5
+ export class FileScene<%=argv.beanNameCapitalize%> extends BeanBase {}
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "vona-module-a-file",
3
+ "version": "5.0.3",
4
+ "description": "",
5
+ "keywords": [
6
+ "Vona Module"
7
+ ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
15
+ "exports": {
16
+ ".": {
17
+ "types": [
18
+ "./src/index.ts",
19
+ "./dist/index.d.ts"
20
+ ],
21
+ "import": "./src/index.ts",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "./package.json": "./package.json"
25
+ },
26
+ "scripts": {
27
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
28
+ "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
29
+ "prepublishOnly": "npm run tsc:publish",
30
+ "prepack": "clean-package",
31
+ "postpack": "clean-package restore"
32
+ },
33
+ "devDependencies": {
34
+ "clean-package": "^2.2.0",
35
+ "rimraf": "^6.1.3"
36
+ },
37
+ "clean-package": {
38
+ "indent": 2,
39
+ "remove": [
40
+ "clean-package",
41
+ "devDependencies",
42
+ "exports.\\..import"
43
+ ]
44
+ },
45
+ "title": "a-file",
46
+ "vonaModule": {
47
+ "fileVersion": 1,
48
+ "dependencies": {
49
+ "a-orm": "5.0.0",
50
+ "a-upload": "5.0.0",
51
+ "a-user": "5.0.0",
52
+ "a-web": "5.0.0"
53
+ },
54
+ "onions": {
55
+ "fileProvider": {
56
+ "optionsGlobalInterfaceName": "IDecoratorFileProviderOptions",
57
+ "optionsGlobalInterfaceFrom": "vona-module-a-file",
58
+ "scopeResource": true
59
+ },
60
+ "fileScene": {
61
+ "optionsGlobalInterfaceName": "IDecoratorFileSceneOptions",
62
+ "optionsGlobalInterfaceFrom": "vona-module-a-file"
63
+ }
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,425 @@
1
+ // eslint-disable
2
+ import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore } from 'vona-module-a-orm';
3
+ import type { TypeEntityOptionsFields,TypeControllerOptionsActions } from 'vona-module-a-openapi';
4
+ import type { TableIdentity } from 'table-identity';
5
+ /** entity: begin */
6
+ export * from '../entity/file.ts';
7
+ export * from '../entity/fileProvider.ts';
8
+ import type { IEntityOptionsFile } from '../entity/file.ts';
9
+ import type { IEntityOptionsFileProvider } from '../entity/fileProvider.ts';
10
+ import 'vona-module-a-orm';
11
+ declare module 'vona-module-a-orm' {
12
+
13
+ export interface IEntityRecord {
14
+ 'a-file:file': IEntityOptionsFile;
15
+ 'a-file:fileProvider': IEntityOptionsFileProvider;
16
+ }
17
+
18
+
19
+ }
20
+ declare module 'vona-module-a-file' {
21
+
22
+ }
23
+ /** entity: end */
24
+ /** entity: begin */
25
+ import type { EntityFile } from '../entity/file.ts';
26
+ import type { EntityFileProvider } from '../entity/fileProvider.ts';
27
+ export interface IModuleEntity {
28
+ 'file': EntityFileMeta;
29
+ 'fileProvider': EntityFileProviderMeta;
30
+ }
31
+ /** entity: end */
32
+ /** entity: begin */
33
+ export type EntityFileTableName = 'aFile';
34
+ export type EntityFileProviderTableName = 'aFileProvider';
35
+ export type EntityFileMeta=TypeEntityMeta<EntityFile,EntityFileTableName>;
36
+ export type EntityFileProviderMeta=TypeEntityMeta<EntityFileProvider,EntityFileProviderTableName>;
37
+ declare module 'vona-module-a-orm' {
38
+ export interface ITableRecord {
39
+ 'aFile': EntityFileMeta;
40
+ 'aFileProvider': EntityFileProviderMeta;
41
+ }
42
+ }
43
+ declare module 'vona-module-a-file' {
44
+
45
+ export interface IEntityOptionsFile {
46
+ fields?: TypeEntityOptionsFields<EntityFile, IEntityOptionsFile[TypeSymbolKeyFieldsMore]>;
47
+ }
48
+
49
+ export interface IEntityOptionsFileProvider {
50
+ fields?: TypeEntityOptionsFields<EntityFileProvider, IEntityOptionsFileProvider[TypeSymbolKeyFieldsMore]>;
51
+ }
52
+ }
53
+ /** entity: end */
54
+ /** model: begin */
55
+ export * from '../model/file.ts';
56
+ export * from '../model/fileProvider.ts';
57
+ import type { IModelOptionsFile } from '../model/file.ts';
58
+ import type { IModelOptionsFileProvider } from '../model/fileProvider.ts';
59
+ import 'vona-module-a-orm';
60
+ declare module 'vona-module-a-orm' {
61
+
62
+ export interface IModelRecord {
63
+ 'a-file:file': IModelOptionsFile;
64
+ 'a-file:fileProvider': IModelOptionsFileProvider;
65
+ }
66
+
67
+
68
+ }
69
+ declare module 'vona-module-a-file' {
70
+
71
+ export interface ModelFile {
72
+ /** @internal */
73
+ get scope(): ScopeModuleAFile;
74
+ }
75
+
76
+ export interface ModelFile {
77
+ get $beanFullName(): 'a-file.model.file';
78
+ get $onionName(): 'a-file:file';
79
+ get $onionOptions(): IModelOptionsFile;
80
+ }
81
+
82
+ export interface ModelFileProvider {
83
+ /** @internal */
84
+ get scope(): ScopeModuleAFile;
85
+ }
86
+
87
+ export interface ModelFileProvider {
88
+ get $beanFullName(): 'a-file.model.fileProvider';
89
+ get $onionName(): 'a-file:fileProvider';
90
+ get $onionOptions(): IModelOptionsFileProvider;
91
+ }
92
+ }
93
+ /** model: end */
94
+ /** model: begin */
95
+ import type { ModelFile } from '../model/file.ts';
96
+ import type { ModelFileProvider } from '../model/fileProvider.ts';
97
+ export interface IModuleModel {
98
+ 'file': ModelFile;
99
+ 'fileProvider': ModelFileProvider;
100
+ }
101
+ /** model: end */
102
+ /** model: begin */
103
+
104
+ import 'vona';
105
+ declare module 'vona' {
106
+ export interface IBeanRecordGeneral {
107
+ 'a-file.model.file': ModelFile;
108
+ 'a-file.model.fileProvider': ModelFileProvider;
109
+ }
110
+ }
111
+ /** model: end */
112
+ /** model: begin */
113
+ import type { IModelGetOptions, IModelMethodOptions, IModelSelectParams, TypeModelSelectAndCount, TypeModelRelationResult, TypeModelWhere, IModelInsertOptions, TypeModelMutateRelationData, IModelDeleteOptions, IModelUpdateOptions, IModelMutateOptions, IModelSelectCountParams, IModelIncrementParams, IModelSelectAggrParams, TypeModelAggrRelationResult, IModelSelectGroupParams, TypeModelGroupRelationResult } from 'vona-module-a-orm';
114
+ import { SymbolKeyEntity, SymbolKeyEntityMeta, SymbolKeyModelOptions } from 'vona-module-a-orm';
115
+ declare module 'vona-module-a-file' {
116
+
117
+ export interface ModelFile {
118
+ [SymbolKeyEntity]: EntityFile;
119
+ [SymbolKeyEntityMeta]: EntityFileMeta;
120
+ [SymbolKeyModelOptions]: IModelOptionsFile;
121
+ get<T extends IModelGetOptions<EntityFile,ModelFile>>(where: TypeModelWhere<EntityFile>, options?: T): Promise<TypeModelRelationResult<EntityFile, ModelFile, T> | undefined>;
122
+ mget<T extends IModelGetOptions<EntityFile,ModelFile>>(ids: TableIdentity[], options?: T): Promise<TypeModelRelationResult<EntityFile, ModelFile, T>[]>;
123
+ selectAndCount<T extends IModelSelectParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelSelectAndCount<EntityFile, ModelFile, T>>;
124
+ select<T extends IModelSelectParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityFile, ModelFile, T>[]>;
125
+ insert<T extends IModelInsertOptions<EntityFile,ModelFile>>(data?: TypeModelMutateRelationData<EntityFile,ModelFile, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T, true>>;
126
+ insertBulk<T extends IModelInsertOptions<EntityFile,ModelFile>>(items: TypeModelMutateRelationData<EntityFile,ModelFile, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T, true>[]>;
127
+ update<T extends IModelUpdateOptions<EntityFile,ModelFile>>(data: TypeModelMutateRelationData<EntityFile,ModelFile, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T>>;
128
+ updateBulk<T extends IModelUpdateOptions<EntityFile,ModelFile>>(items: TypeModelMutateRelationData<EntityFile,ModelFile, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T>[]>;
129
+ delete<T extends IModelDeleteOptions<EntityFile,ModelFile>>(where?: TypeModelWhere<EntityFile>, options?: T): Promise<void>;
130
+ deleteBulk<T extends IModelDeleteOptions<EntityFile,ModelFile>>(ids: TableIdentity[], options?: T): Promise<void>;
131
+ mutate<T extends IModelMutateOptions<EntityFile,ModelFile>>(data?: TypeModelMutateRelationData<EntityFile,ModelFile, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T>>;
132
+ mutateBulk<T extends IModelMutateOptions<EntityFile,ModelFile>>(items: TypeModelMutateRelationData<EntityFile,ModelFile, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T>[]>;
133
+ count<T extends IModelSelectCountParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<string | undefined>;
134
+ increment<T extends IModelIncrementParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<number>;
135
+ decrement<T extends IModelIncrementParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<number>;
136
+ aggregate<T extends IModelSelectAggrParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelAggrRelationResult<T>>;
137
+ group<T extends IModelSelectGroupParams<EntityFile,ModelFile,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelGroupRelationResult<EntityFile, T>[]>;
138
+ getById<T extends IModelGetOptions<EntityFile,ModelFile>>(id: TableIdentity, options?: T): Promise<TypeModelRelationResult<EntityFile, ModelFile, T> | undefined>;
139
+ updateById<T extends IModelUpdateOptions<EntityFile,ModelFile>>(id: TableIdentity, data: TypeModelMutateRelationData<EntityFile,ModelFile, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFile,ModelFile, T>>;
140
+ deleteById<T extends IModelDeleteOptions<EntityFile,ModelFile>>(id: TableIdentity, options?: T): Promise<void>;
141
+ }
142
+ export interface ModelFileProvider {
143
+ [SymbolKeyEntity]: EntityFileProvider;
144
+ [SymbolKeyEntityMeta]: EntityFileProviderMeta;
145
+ [SymbolKeyModelOptions]: IModelOptionsFileProvider;
146
+ get<T extends IModelGetOptions<EntityFileProvider,ModelFileProvider>>(where: TypeModelWhere<EntityFileProvider>, options?: T): Promise<TypeModelRelationResult<EntityFileProvider, ModelFileProvider, T> | undefined>;
147
+ mget<T extends IModelGetOptions<EntityFileProvider,ModelFileProvider>>(ids: TableIdentity[], options?: T): Promise<TypeModelRelationResult<EntityFileProvider, ModelFileProvider, T>[]>;
148
+ selectAndCount<T extends IModelSelectParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelSelectAndCount<EntityFileProvider, ModelFileProvider, T>>;
149
+ select<T extends IModelSelectParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityFileProvider, ModelFileProvider, T>[]>;
150
+ insert<T extends IModelInsertOptions<EntityFileProvider,ModelFileProvider>>(data?: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T, true>>;
151
+ insertBulk<T extends IModelInsertOptions<EntityFileProvider,ModelFileProvider>>(items: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T, true>[]>;
152
+ update<T extends IModelUpdateOptions<EntityFileProvider,ModelFileProvider>>(data: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>>;
153
+ updateBulk<T extends IModelUpdateOptions<EntityFileProvider,ModelFileProvider>>(items: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>[]>;
154
+ delete<T extends IModelDeleteOptions<EntityFileProvider,ModelFileProvider>>(where?: TypeModelWhere<EntityFileProvider>, options?: T): Promise<void>;
155
+ deleteBulk<T extends IModelDeleteOptions<EntityFileProvider,ModelFileProvider>>(ids: TableIdentity[], options?: T): Promise<void>;
156
+ mutate<T extends IModelMutateOptions<EntityFileProvider,ModelFileProvider>>(data?: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>>;
157
+ mutateBulk<T extends IModelMutateOptions<EntityFileProvider,ModelFileProvider>>(items: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>[]>;
158
+ count<T extends IModelSelectCountParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<string | undefined>;
159
+ increment<T extends IModelIncrementParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<number>;
160
+ decrement<T extends IModelIncrementParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<number>;
161
+ aggregate<T extends IModelSelectAggrParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelAggrRelationResult<T>>;
162
+ group<T extends IModelSelectGroupParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelGroupRelationResult<EntityFileProvider, T>[]>;
163
+ getById<T extends IModelGetOptions<EntityFileProvider,ModelFileProvider>>(id: number, options?: T): Promise<TypeModelRelationResult<EntityFileProvider, ModelFileProvider, T> | undefined>;
164
+ updateById<T extends IModelUpdateOptions<EntityFileProvider,ModelFileProvider>>(id: number, data: TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>, options?: T): Promise<TypeModelMutateRelationData<EntityFileProvider,ModelFileProvider, T>>;
165
+ deleteById<T extends IModelDeleteOptions<EntityFileProvider,ModelFileProvider>>(id: number, options?: T): Promise<void>;
166
+ getByDisabled<T extends IModelGetOptions<EntityFileProvider,ModelFileProvider>>(disabled?: boolean, options?: T): Promise<TypeModelRelationResult<EntityFileProvider, ModelFileProvider, T> | undefined>;
167
+ selectByDisabled<T extends IModelSelectParams<EntityFileProvider,ModelFileProvider,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(disabled?: boolean, params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityFileProvider, ModelFileProvider, T>[]>;
168
+ }
169
+ }
170
+ declare module 'vona-module-a-orm' {
171
+ export interface IModelClassRecord {
172
+ 'a-file:file': ModelFile;
173
+ 'a-file:fileProvider': ModelFileProvider;
174
+ }
175
+ }
176
+ /** model: end */
177
+ /** bean: begin */
178
+ export * from '../bean/bean.file.ts';
179
+ export * from '../bean/bean.fileProvider.ts';
180
+ export * from '../bean/bean.fileUploadPolicy.ts';
181
+
182
+ import 'vona';
183
+ declare module 'vona' {
184
+
185
+
186
+ }
187
+ declare module 'vona-module-a-file' {
188
+
189
+ export interface BeanFile {
190
+ /** @internal */
191
+ get scope(): ScopeModuleAFile;
192
+ }
193
+
194
+ export interface BeanFileProvider {
195
+ /** @internal */
196
+ get scope(): ScopeModuleAFile;
197
+ }
198
+
199
+ export interface BeanFileUploadPolicy {
200
+ /** @internal */
201
+ get scope(): ScopeModuleAFile;
202
+ }
203
+ }
204
+ /** bean: end */
205
+ /** bean: begin */
206
+ import type { BeanFile } from '../bean/bean.file.ts';
207
+ import type { BeanFileProvider } from '../bean/bean.fileProvider.ts';
208
+ import type { BeanFileUploadPolicy } from '../bean/bean.fileUploadPolicy.ts';
209
+ import 'vona';
210
+ declare module 'vona' {
211
+ export interface IBeanRecordGlobal {
212
+ 'file': BeanFile;
213
+ 'fileProvider': BeanFileProvider;
214
+ 'fileUploadPolicy': BeanFileUploadPolicy;
215
+ }
216
+ }
217
+ /** bean: end */
218
+ /** meta: begin */
219
+ export * from '../bean/meta.redlock.ts';
220
+ export * from '../bean/meta.version.ts';
221
+
222
+ import 'vona-module-a-meta';
223
+ declare module 'vona-module-a-meta' {
224
+
225
+ export interface IMetaRecord {
226
+ 'a-file:redlock': never;
227
+ 'a-file:version': never;
228
+ }
229
+
230
+
231
+ }
232
+ declare module 'vona-module-a-file' {
233
+
234
+ export interface MetaRedlock {
235
+ /** @internal */
236
+ get scope(): ScopeModuleAFile;
237
+ }
238
+
239
+ export interface MetaRedlock {
240
+ get $beanFullName(): 'a-file.meta.redlock';
241
+ get $onionName(): 'a-file:redlock';
242
+
243
+ }
244
+
245
+ export interface MetaVersion {
246
+ /** @internal */
247
+ get scope(): ScopeModuleAFile;
248
+ }
249
+
250
+ export interface MetaVersion {
251
+ get $beanFullName(): 'a-file.meta.version';
252
+ get $onionName(): 'a-file:version';
253
+
254
+ }
255
+ }
256
+ /** meta: end */
257
+ /** meta redlock: begin */
258
+ import type { MetaRedlock } from '../bean/meta.redlock.ts';
259
+ /** meta redlock: end */
260
+ /** dto: begin */
261
+ export * from '../dto/fileDirectUploadRequest.ts';
262
+ export * from '../dto/fileDirectUploadResponse.ts';
263
+ export * from '../dto/fileDownloadRequest.ts';
264
+ export * from '../dto/fileUploadResponse.ts';
265
+ export * from '../dto/fileUploadTokenRequest.ts';
266
+ export * from '../dto/fileUploadTokenResponse.ts';
267
+ export * from '../dto/fileUploadUrlRequest.ts';
268
+ import type { IDtoOptionsFileDirectUploadRequest } from '../dto/fileDirectUploadRequest.ts';
269
+ import type { IDtoOptionsFileDirectUploadResponse } from '../dto/fileDirectUploadResponse.ts';
270
+ import type { IDtoOptionsFileDownloadRequest } from '../dto/fileDownloadRequest.ts';
271
+ import type { IDtoOptionsFileUploadResponse } from '../dto/fileUploadResponse.ts';
272
+ import type { IDtoOptionsFileUploadTokenRequest } from '../dto/fileUploadTokenRequest.ts';
273
+ import type { IDtoOptionsFileUploadTokenResponse } from '../dto/fileUploadTokenResponse.ts';
274
+ import type { IDtoOptionsFileUploadUrlRequest } from '../dto/fileUploadUrlRequest.ts';
275
+ import 'vona-module-a-web';
276
+ declare module 'vona-module-a-web' {
277
+
278
+ export interface IDtoRecord {
279
+ 'a-file:fileDirectUploadRequest': IDtoOptionsFileDirectUploadRequest;
280
+ 'a-file:fileDirectUploadResponse': IDtoOptionsFileDirectUploadResponse;
281
+ 'a-file:fileDownloadRequest': IDtoOptionsFileDownloadRequest;
282
+ 'a-file:fileUploadResponse': IDtoOptionsFileUploadResponse;
283
+ 'a-file:fileUploadTokenRequest': IDtoOptionsFileUploadTokenRequest;
284
+ 'a-file:fileUploadTokenResponse': IDtoOptionsFileUploadTokenResponse;
285
+ 'a-file:fileUploadUrlRequest': IDtoOptionsFileUploadUrlRequest;
286
+ }
287
+
288
+
289
+ }
290
+ declare module 'vona-module-a-file' {
291
+
292
+ }
293
+ /** dto: end */
294
+ /** dto: begin */
295
+ import type { DtoFileDirectUploadRequest } from '../dto/fileDirectUploadRequest.ts';
296
+ import type { DtoFileDirectUploadResponse } from '../dto/fileDirectUploadResponse.ts';
297
+ import type { DtoFileDownloadRequest } from '../dto/fileDownloadRequest.ts';
298
+ import type { DtoFileUploadResponse } from '../dto/fileUploadResponse.ts';
299
+ import type { DtoFileUploadTokenRequest } from '../dto/fileUploadTokenRequest.ts';
300
+ import type { DtoFileUploadTokenResponse } from '../dto/fileUploadTokenResponse.ts';
301
+ import type { DtoFileUploadUrlRequest } from '../dto/fileUploadUrlRequest.ts';
302
+ declare module 'vona-module-a-file' {
303
+
304
+ export interface IDtoOptionsFileDirectUploadRequest {
305
+ fields?: TypeEntityOptionsFields<DtoFileDirectUploadRequest, IDtoOptionsFileDirectUploadRequest[TypeSymbolKeyFieldsMore]>;
306
+ }
307
+
308
+ export interface IDtoOptionsFileDirectUploadResponse {
309
+ fields?: TypeEntityOptionsFields<DtoFileDirectUploadResponse, IDtoOptionsFileDirectUploadResponse[TypeSymbolKeyFieldsMore]>;
310
+ }
311
+
312
+ export interface IDtoOptionsFileDownloadRequest {
313
+ fields?: TypeEntityOptionsFields<DtoFileDownloadRequest, IDtoOptionsFileDownloadRequest[TypeSymbolKeyFieldsMore]>;
314
+ }
315
+
316
+ export interface IDtoOptionsFileUploadResponse {
317
+ fields?: TypeEntityOptionsFields<DtoFileUploadResponse, IDtoOptionsFileUploadResponse[TypeSymbolKeyFieldsMore]>;
318
+ }
319
+
320
+ export interface IDtoOptionsFileUploadTokenRequest {
321
+ fields?: TypeEntityOptionsFields<DtoFileUploadTokenRequest, IDtoOptionsFileUploadTokenRequest[TypeSymbolKeyFieldsMore]>;
322
+ }
323
+
324
+ export interface IDtoOptionsFileUploadTokenResponse {
325
+ fields?: TypeEntityOptionsFields<DtoFileUploadTokenResponse, IDtoOptionsFileUploadTokenResponse[TypeSymbolKeyFieldsMore]>;
326
+ }
327
+
328
+ export interface IDtoOptionsFileUploadUrlRequest {
329
+ fields?: TypeEntityOptionsFields<DtoFileUploadUrlRequest, IDtoOptionsFileUploadUrlRequest[TypeSymbolKeyFieldsMore]>;
330
+ }
331
+ }
332
+ /** dto: end */
333
+ /** controller: begin */
334
+ export * from '../controller/file.ts';
335
+ import type { IControllerOptionsFile } from '../controller/file.ts';
336
+ import 'vona-module-a-web';
337
+ declare module 'vona-module-a-web' {
338
+
339
+ export interface IControllerRecord {
340
+ 'a-file:file': IControllerOptionsFile;
341
+ }
342
+
343
+
344
+ }
345
+ declare module 'vona-module-a-file' {
346
+
347
+ export interface ControllerFile {
348
+ /** @internal */
349
+ get scope(): ScopeModuleAFile;
350
+ }
351
+
352
+ export interface ControllerFile {
353
+ get $beanFullName(): 'a-file.controller.file';
354
+ get $onionName(): 'a-file:file';
355
+ get $onionOptions(): IControllerOptionsFile;
356
+ }
357
+ }
358
+ /** controller: end */
359
+ /** controller: begin */
360
+ // @ts-ignore ignore
361
+ import type { ControllerFile } from '../controller/file.ts';
362
+ declare module 'vona-module-a-file' {
363
+
364
+ export interface IControllerOptionsFile {
365
+ actions?: TypeControllerOptionsActions<ControllerFile>;
366
+ }
367
+ }
368
+ declare module 'vona-module-a-web' {
369
+ export interface IApiPathPostRecord{
370
+ '/file/upload-token': undefined;
371
+ '/file/upload': undefined;
372
+ '/file/direct-upload': undefined;
373
+ '/file/upload-url': undefined;
374
+ }
375
+ export interface IApiPathGetRecord{
376
+ '/file/download/:fileId': undefined;
377
+ }
378
+
379
+ }
380
+
381
+ /** controller: end */
382
+ /** config: begin */
383
+ export * from '../config/config.ts';
384
+ import type { config } from '../config/config.ts';
385
+ /** config: end */
386
+ /** locale: begin */
387
+ import { locales } from './locales.ts';
388
+ /** locale: end */
389
+ /** scope: begin */
390
+ import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig, type TypeModuleLocales, type TypeLocaleBase } from 'vona';
391
+ import { Scope } from 'vona-module-a-bean';
392
+
393
+ @Scope()
394
+ export class ScopeModuleAFile extends BeanScopeBase {}
395
+
396
+ export interface ScopeModuleAFile {
397
+ util: BeanScopeUtil;
398
+ config: TypeModuleConfig<typeof config>;
399
+ locale: TypeModuleLocales<(typeof locales)[TypeLocaleBase]>;
400
+ entity: IModuleEntity;
401
+ model: IModuleModel;
402
+ redlock: MetaRedlock;
403
+ }
404
+
405
+ import 'vona';
406
+ declare module 'vona' {
407
+ export interface IBeanScopeRecord {
408
+ 'a-file': ScopeModuleAFile;
409
+ }
410
+
411
+ export interface IBeanScopeContainer {
412
+ file: ScopeModuleAFile;
413
+ }
414
+
415
+ export interface IBeanScopeConfig {
416
+ 'a-file': ReturnType<typeof config>;
417
+ }
418
+
419
+ export interface IBeanScopeLocale {
420
+ 'a-file': (typeof locales)[TypeLocaleBase];
421
+ }
422
+
423
+
424
+ }
425
+ /** scope: end */
@@ -0,0 +1,18 @@
1
+ import type { TypeLocaleBase } from 'vona';
2
+
3
+ import { $makeLocaleMagic } from 'vona';
4
+
5
+ import locale_en_us from '../config/locale/en-us.ts';
6
+ import locale_zh_cn from '../config/locale/zh-cn.ts';
7
+
8
+ export const locales = {
9
+ 'en-us': locale_en_us,
10
+ 'zh-cn': locale_zh_cn,
11
+ };
12
+
13
+ export function $locale<K extends keyof (typeof locales)[TypeLocaleBase]>(
14
+ key: K,
15
+ ...args: any[]
16
+ ): any {
17
+ return $makeLocaleMagic(`a-file::${key}`, ...args);
18
+ }
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-file';
2
+ export { ScopeModuleAFile as ScopeModule } from './index.ts';