vona-cli-set-api 1.0.113 → 1.0.115

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 (74) hide show
  1. package/cli/templates/create/project/basic/boilerplate/.vscode/vona.code-snippets +72 -0
  2. package/cli/templates/create/project/basic/boilerplate/env/.env +1 -1
  3. package/cli/templates/create/project/basic/boilerplate/package.original.json +1 -1
  4. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/dist/.metadata/index.d.ts +8 -0
  5. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/.metadata/index.ts +12 -2
  6. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/tsconfig.build.tsbuildinfo +1 -1
  7. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/dist/.metadata/index.d.ts +8 -0
  8. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/.metadata/index.ts +12 -2
  9. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/tsconfig.build.tsbuildinfo +1 -1
  10. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/.metadata/index.d.ts +182 -38
  11. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/config/locale/en-us.d.ts +9 -0
  12. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/config/locale/zh-cn.d.ts +9 -0
  13. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/controller/passport.d.ts +1 -0
  14. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/dto/auth.d.ts +1 -1
  15. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/entity/role.d.ts +3 -2
  16. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/entity/roleUser.d.ts +8 -0
  17. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/entity/user.d.ts +3 -2
  18. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/entity/userRole.d.ts +2 -2
  19. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/model/role.d.ts +4 -1
  20. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/model/roleUser.d.ts +7 -0
  21. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/model/user.d.ts +4 -1
  22. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/model/userRole.d.ts +4 -1
  23. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/service/roleInnerAdapter.d.ts +1 -1
  24. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/dist/types/passport.d.ts +1 -1
  25. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/.metadata/index.ts +188 -44
  26. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/meta.index.ts +5 -5
  27. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/meta.version.ts +10 -8
  28. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/config/locale/en-us.ts +8 -0
  29. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/config/locale/zh-cn.ts +8 -0
  30. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/controller/passport.ts +6 -0
  31. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/dto/auth.ts +1 -1
  32. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/entity/role.ts +6 -5
  33. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/entity/roleUser.ts +14 -0
  34. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/entity/user.ts +7 -6
  35. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/authAdapter.ts +1 -1
  36. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/roleAdapter.ts +1 -1
  37. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/userAdapter.ts +1 -1
  38. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/model/role.ts +5 -2
  39. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/model/roleUser.ts +8 -0
  40. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/model/user.ts +12 -2
  41. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/roleInnerAdapter.ts +3 -3
  42. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/passport.ts +1 -1
  43. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/tsconfig.build.tsbuildinfo +1 -1
  44. package/cli/templates/init/lib/boilerplate/lib/index.ts +1 -0
  45. package/cli/templates/init/types/boilerplate/types/index.ts +1 -0
  46. package/cli/templates/tools/crud/boilerplate/src/controller/{{resourceName}}.ts_ +1 -1
  47. package/cli/templates/tools/crud/boilerplate/src/dto/{{resourceName}}Create.ts_ +3 -3
  48. package/cli/templates/tools/crud/boilerplate/src/dto/{{resourceName}}Update.ts_ +3 -3
  49. package/cli/templates/tools/crud/boilerplate/src/entity/{{resourceName}}.ts_ +4 -4
  50. package/cli/templates/tools/crud/boilerplate/src/model/{{resourceName}}.ts_ +5 -2
  51. package/cli/templates/tools/crud/boilerplate/src/service/{{resourceName}}.ts_ +1 -1
  52. package/cli/templates/tools/crud/snippets/2-meta.index.ts +2 -5
  53. package/cli/templates/tools/crud/snippets/2-meta.version.ts +3 -2
  54. package/dist/lib/bean/cli.init.lib.d.ts +8 -0
  55. package/dist/lib/bean/cli.init.lib.js +36 -0
  56. package/dist/lib/bean/cli.init.types.d.ts +8 -0
  57. package/dist/lib/bean/cli.init.types.js +36 -0
  58. package/dist/lib/bean/cli.tools.metadata.d.ts +1 -0
  59. package/dist/lib/bean/cli.tools.metadata.js +43 -20
  60. package/dist/lib/bean/toolsMetadata/generateOnions.js +10 -1
  61. package/dist/lib/bean/toolsMetadata/utils.js +2 -0
  62. package/dist/lib/beans.d.ts +4 -0
  63. package/dist/lib/beans.js +4 -0
  64. package/dist/lib/command/init.lib.d.ts +9 -0
  65. package/dist/lib/command/init.lib.js +10 -0
  66. package/dist/lib/command/init.types.d.ts +9 -0
  67. package/dist/lib/command/init.types.js +10 -0
  68. package/dist/lib/commands.d.ts +16 -0
  69. package/dist/lib/commands.js +4 -0
  70. package/package.json +5 -5
  71. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/entity/userRole.ts +0 -14
  72. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/model/userRole.ts +0 -5
  73. package/dist/lib/bean/toolsMetadata/generateBeans.d.ts +0 -2
  74. package/dist/lib/bean/toolsMetadata/generateBeans.js +0 -72
@@ -1,21 +1,20 @@
1
1
  /* eslint-disable */
2
- import type { TypeEntityMeta } from 'vona-module-a-database';
3
- import type { TypeControllerOptionsActions } from 'vona-module-a-openapi';
4
- import type { TypeEntityOptionsFields } from 'vona-module-a-openapi';
2
+ import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore,IModelRelationBelongsToMany } from 'vona-module-a-orm';
3
+ import type { TypeEntityOptionsFields,TypeControllerOptionsActions } from 'vona-module-a-openapi';
5
4
  /** entity: begin */
6
5
  export * from '../entity/role.ts';
6
+ export * from '../entity/roleUser.ts';
7
7
  export * from '../entity/user.ts';
8
- export * from '../entity/userRole.ts';
9
8
  import type { IEntityOptionsRole } from '../entity/role.ts';
9
+ import type { IEntityOptionsRoleUser } from '../entity/roleUser.ts';
10
10
  import type { IEntityOptionsUser } from '../entity/user.ts';
11
- import type { IEntityOptionsUserRole } from '../entity/userRole.ts';
12
11
  import 'vona';
13
- declare module 'vona-module-a-database' {
12
+ declare module 'vona-module-a-orm' {
14
13
 
15
14
  export interface IEntityRecord {
16
- 'home-user:role': Omit<IEntityOptionsRole, '_fieldsMore_'>;
17
- 'home-user:user': Omit<IEntityOptionsUser, '_fieldsMore_'>;
18
- 'home-user:userRole': Omit<IEntityOptionsUserRole, '_fieldsMore_'>;
15
+ 'home-user:role': IEntityOptionsRole;
16
+ 'home-user:roleUser': IEntityOptionsRoleUser;
17
+ 'home-user:user': IEntityOptionsUser;
19
18
  }
20
19
 
21
20
 
@@ -26,52 +25,57 @@ declare module 'vona-module-home-user' {
26
25
  /** entity: end */
27
26
  /** entity: begin */
28
27
  import type { EntityRole } from '../entity/role.ts';
28
+ import type { EntityRoleUser } from '../entity/roleUser.ts';
29
29
  import type { EntityUser } from '../entity/user.ts';
30
- import type { EntityUserRole } from '../entity/userRole.ts';
31
30
  export interface IModuleEntity {
32
- 'role': TypeEntityMeta<EntityRole,EntityRoleTableName>;
33
- 'user': TypeEntityMeta<EntityUser,EntityUserTableName>;
34
- 'userRole': TypeEntityMeta<EntityUserRole,EntityUserRoleTableName>;
31
+ 'role': EntityRoleMeta;
32
+ 'roleUser': EntityRoleUserMeta;
33
+ 'user': EntityUserMeta;
35
34
  }
36
35
  /** entity: end */
37
36
  /** entity: begin */
38
37
  export type EntityRoleTableName = 'homeRole';
38
+ export type EntityRoleUserTableName = 'homeRoleUser';
39
39
  export type EntityUserTableName = 'homeUser';
40
- export type EntityUserRoleTableName = 'homeUserRole';
41
- declare module 'vona-module-a-database' {
40
+ export type EntityRoleMeta=TypeEntityMeta<EntityRole,EntityRoleTableName>;
41
+ export type EntityRoleUserMeta=TypeEntityMeta<EntityRoleUser,EntityRoleUserTableName>;
42
+ export type EntityUserMeta=TypeEntityMeta<EntityUser,EntityUserTableName>;
43
+ declare module 'vona-module-a-orm' {
42
44
  export interface ITableRecord {
43
45
  'homeRole': never;
46
+ 'homeRoleUser': never;
44
47
  'homeUser': never;
45
- 'homeUserRole': never;
46
48
  }
47
49
  }
48
50
  declare module 'vona-module-home-user' {
49
51
 
50
52
  export interface IEntityOptionsRole {
51
- fields?: TypeEntityOptionsFields<EntityRole, IEntityOptionsRole['_fieldsMore_']>;
53
+ fields?: TypeEntityOptionsFields<EntityRole, IEntityOptionsRole[TypeSymbolKeyFieldsMore]>;
52
54
  }
53
55
 
54
- export interface IEntityOptionsUser {
55
- fields?: TypeEntityOptionsFields<EntityUser, IEntityOptionsUser['_fieldsMore_']>;
56
+ export interface IEntityOptionsRoleUser {
57
+ fields?: TypeEntityOptionsFields<EntityRoleUser, IEntityOptionsRoleUser[TypeSymbolKeyFieldsMore]>;
56
58
  }
57
59
 
58
- export interface IEntityOptionsUserRole {
59
- fields?: TypeEntityOptionsFields<EntityUserRole, IEntityOptionsUserRole['_fieldsMore_']>;
60
+ export interface IEntityOptionsUser {
61
+ fields?: TypeEntityOptionsFields<EntityUser, IEntityOptionsUser[TypeSymbolKeyFieldsMore]>;
60
62
  }
61
63
  }
62
64
  /** entity: end */
63
65
  /** model: begin */
64
66
  export * from '../model/role.ts';
67
+ export * from '../model/roleUser.ts';
65
68
  export * from '../model/user.ts';
66
- export * from '../model/userRole.ts';
67
-
68
- import { type IDecoratorModelOptions } from 'vona-module-a-database';
69
- declare module 'vona-module-a-database' {
69
+ import type { IModelOptionsRole } from '../model/role.ts';
70
+ import type { IModelOptionsRoleUser } from '../model/roleUser.ts';
71
+ import type { IModelOptionsUser } from '../model/user.ts';
72
+ import 'vona';
73
+ declare module 'vona-module-a-orm' {
70
74
 
71
75
  export interface IModelRecord {
72
- 'home-user:role': IDecoratorModelOptions;
73
- 'home-user:user': IDecoratorModelOptions;
74
- 'home-user:userRole': IDecoratorModelOptions;
76
+ 'home-user:role': IModelOptionsRole;
77
+ 'home-user:roleUser': IModelOptionsRoleUser;
78
+ 'home-user:user': IModelOptionsUser;
75
79
  }
76
80
 
77
81
 
@@ -83,25 +87,115 @@ declare module 'vona-module-home-user' {
83
87
  get scope(): ScopeModuleHomeUser;
84
88
  }
85
89
 
86
- export interface ModelUser {
90
+ export interface ModelRole {
91
+ get $beanFullName(): 'home-user.model.role';
92
+ get $onionName(): 'home-user:role';
93
+ }
94
+
95
+ export interface ModelRoleUser {
87
96
  /** @internal */
88
97
  get scope(): ScopeModuleHomeUser;
89
98
  }
90
99
 
91
- export interface ModelUserRole {
100
+ export interface ModelRoleUser {
101
+ get $beanFullName(): 'home-user.model.roleUser';
102
+ get $onionName(): 'home-user:roleUser';
103
+ }
104
+
105
+ export interface ModelUser {
92
106
  /** @internal */
93
107
  get scope(): ScopeModuleHomeUser;
94
- }
108
+ }
109
+
110
+ export interface ModelUser {
111
+ get $beanFullName(): 'home-user.model.user';
112
+ get $onionName(): 'home-user:user';
113
+ }
95
114
  }
96
115
  /** model: end */
97
116
  /** model: begin */
98
117
  import type { ModelRole } from '../model/role.ts';
118
+ import type { ModelRoleUser } from '../model/roleUser.ts';
99
119
  import type { ModelUser } from '../model/user.ts';
100
- import type { ModelUserRole } from '../model/userRole.ts';
101
120
  export interface IModuleModel {
102
121
  'role': ModelRole;
122
+ 'roleUser': ModelRoleUser;
103
123
  'user': ModelUser;
104
- 'userRole': ModelUserRole;
124
+ }
125
+ /** model: end */
126
+ /** model: begin */
127
+ import type { IModelGetOptions, IModelMethodOptions, IModelSelectParams, TableIdentity, TypeModelRelationResult, TypeModelWhere, IModelInsertOptions, TypeModelMutateRelationData, IModelDeleteOptions, IModelUpdateOptions, IModelMutateOptions, IModelSelectCountParams, IModelSelectAggrParams, TypeModelAggrRelationResult, IModelSelectGroupParams, TypeModelGroupRelationResult } from 'vona-module-a-orm';
128
+ import { SymbolKeyEntity, SymbolKeyEntityMeta, SymbolKeyModelOptions } from 'vona-module-a-orm';
129
+ declare module 'vona-module-home-user' {
130
+ export interface IModelOptionsUser {
131
+ relations: {
132
+ roles: IModelRelationBelongsToMany<ModelRoleUser, ModelRole, false, 'id'|'name',undefined,undefined,undefined>;
133
+ };
134
+ }
135
+ export interface ModelRole {
136
+ [SymbolKeyEntity]: EntityRole;
137
+ [SymbolKeyEntityMeta]: EntityRoleMeta;
138
+ [SymbolKeyModelOptions]: IModelOptionsRole;
139
+ get<T extends IModelGetOptions<EntityRole,ModelRole>>(where: TypeModelWhere<EntityRole>, options?: T): Promise<TypeModelRelationResult<EntityRole, ModelRole, T> | undefined>;
140
+ mget<T extends IModelGetOptions<EntityRole,ModelRole>>(ids: TableIdentity[], options?: T): Promise<TypeModelRelationResult<EntityRole, ModelRole, T>[]>;
141
+ select<T extends IModelSelectParams<EntityRole,ModelRole,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityRole, ModelRole, T>[]>;
142
+ insert<T extends IModelInsertOptions<EntityRole,ModelRole>>(data?: TypeModelMutateRelationData<EntityRole,ModelRole, T>, options?: T): Promise<Required<TypeModelMutateRelationData<EntityRole,ModelRole, T>>>;
143
+ insertBulk<T extends IModelInsertOptions<EntityRole,ModelRole>>(items: TypeModelMutateRelationData<EntityRole,ModelRole, T>[], options?: T): Promise<Required<TypeModelMutateRelationData<EntityRole,ModelRole, T>>[]>;
144
+ update<T extends IModelUpdateOptions<EntityRole,ModelRole>>(data: TypeModelMutateRelationData<EntityRole,ModelRole, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRole,ModelRole, T>>;
145
+ updateBulk<T extends IModelUpdateOptions<EntityRole,ModelRole>>(items: TypeModelMutateRelationData<EntityRole,ModelRole, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRole,ModelRole, T>[]>;
146
+ delete<T extends IModelDeleteOptions<EntityRole,ModelRole>>(where?: TypeModelWhere<EntityRole>, options?: T): Promise<void>;
147
+ deleteBulk<T extends IModelDeleteOptions<EntityRole,ModelRole>>(ids: TableIdentity[], options?: T): Promise<void>;
148
+ mutate<T extends IModelMutateOptions<EntityRole,ModelRole>>(data?: TypeModelMutateRelationData<EntityRole,ModelRole, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRole,ModelRole, T>>;
149
+ mutateBulk<T extends IModelMutateOptions<EntityRole,ModelRole>>(items: TypeModelMutateRelationData<EntityRole,ModelRole, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRole,ModelRole, T>[]>;
150
+ count<T extends IModelSelectCountParams<EntityRole,ModelRole,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<BigNumber | undefined>;
151
+ aggregate<T extends IModelSelectAggrParams<EntityRole,ModelRole,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelAggrRelationResult<T>>;
152
+ group<T extends IModelSelectGroupParams<EntityRole,ModelRole,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelGroupRelationResult<EntityRole, T>[]>;
153
+ }
154
+ export interface ModelRoleUser {
155
+ [SymbolKeyEntity]: EntityRoleUser;
156
+ [SymbolKeyEntityMeta]: EntityRoleUserMeta;
157
+ [SymbolKeyModelOptions]: IModelOptionsRoleUser;
158
+ get<T extends IModelGetOptions<EntityRoleUser,ModelRoleUser>>(where: TypeModelWhere<EntityRoleUser>, options?: T): Promise<TypeModelRelationResult<EntityRoleUser, ModelRoleUser, T> | undefined>;
159
+ mget<T extends IModelGetOptions<EntityRoleUser,ModelRoleUser>>(ids: TableIdentity[], options?: T): Promise<TypeModelRelationResult<EntityRoleUser, ModelRoleUser, T>[]>;
160
+ select<T extends IModelSelectParams<EntityRoleUser,ModelRoleUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityRoleUser, ModelRoleUser, T>[]>;
161
+ insert<T extends IModelInsertOptions<EntityRoleUser,ModelRoleUser>>(data?: TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>, options?: T): Promise<Required<TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>>>;
162
+ insertBulk<T extends IModelInsertOptions<EntityRoleUser,ModelRoleUser>>(items: TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>[], options?: T): Promise<Required<TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>>[]>;
163
+ update<T extends IModelUpdateOptions<EntityRoleUser,ModelRoleUser>>(data: TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>>;
164
+ updateBulk<T extends IModelUpdateOptions<EntityRoleUser,ModelRoleUser>>(items: TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>[]>;
165
+ delete<T extends IModelDeleteOptions<EntityRoleUser,ModelRoleUser>>(where?: TypeModelWhere<EntityRoleUser>, options?: T): Promise<void>;
166
+ deleteBulk<T extends IModelDeleteOptions<EntityRoleUser,ModelRoleUser>>(ids: TableIdentity[], options?: T): Promise<void>;
167
+ mutate<T extends IModelMutateOptions<EntityRoleUser,ModelRoleUser>>(data?: TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>>;
168
+ mutateBulk<T extends IModelMutateOptions<EntityRoleUser,ModelRoleUser>>(items: TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRoleUser,ModelRoleUser, T>[]>;
169
+ count<T extends IModelSelectCountParams<EntityRoleUser,ModelRoleUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<BigNumber | undefined>;
170
+ aggregate<T extends IModelSelectAggrParams<EntityRoleUser,ModelRoleUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelAggrRelationResult<T>>;
171
+ group<T extends IModelSelectGroupParams<EntityRoleUser,ModelRoleUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelGroupRelationResult<EntityRoleUser, T>[]>;
172
+ }
173
+ export interface ModelUser {
174
+ [SymbolKeyEntity]: EntityUser;
175
+ [SymbolKeyEntityMeta]: EntityUserMeta;
176
+ [SymbolKeyModelOptions]: IModelOptionsUser;
177
+ get<T extends IModelGetOptions<EntityUser,ModelUser>>(where: TypeModelWhere<EntityUser>, options?: T): Promise<TypeModelRelationResult<EntityUser, ModelUser, T> | undefined>;
178
+ mget<T extends IModelGetOptions<EntityUser,ModelUser>>(ids: TableIdentity[], options?: T): Promise<TypeModelRelationResult<EntityUser, ModelUser, T>[]>;
179
+ select<T extends IModelSelectParams<EntityUser,ModelUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityUser, ModelUser, T>[]>;
180
+ insert<T extends IModelInsertOptions<EntityUser,ModelUser>>(data?: TypeModelMutateRelationData<EntityUser,ModelUser, T>, options?: T): Promise<Required<TypeModelMutateRelationData<EntityUser,ModelUser, T>>>;
181
+ insertBulk<T extends IModelInsertOptions<EntityUser,ModelUser>>(items: TypeModelMutateRelationData<EntityUser,ModelUser, T>[], options?: T): Promise<Required<TypeModelMutateRelationData<EntityUser,ModelUser, T>>[]>;
182
+ update<T extends IModelUpdateOptions<EntityUser,ModelUser>>(data: TypeModelMutateRelationData<EntityUser,ModelUser, T>, options?: T): Promise<TypeModelMutateRelationData<EntityUser,ModelUser, T>>;
183
+ updateBulk<T extends IModelUpdateOptions<EntityUser,ModelUser>>(items: TypeModelMutateRelationData<EntityUser,ModelUser, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityUser,ModelUser, T>[]>;
184
+ delete<T extends IModelDeleteOptions<EntityUser,ModelUser>>(where?: TypeModelWhere<EntityUser>, options?: T): Promise<void>;
185
+ deleteBulk<T extends IModelDeleteOptions<EntityUser,ModelUser>>(ids: TableIdentity[], options?: T): Promise<void>;
186
+ mutate<T extends IModelMutateOptions<EntityUser,ModelUser>>(data?: TypeModelMutateRelationData<EntityUser,ModelUser, T>, options?: T): Promise<TypeModelMutateRelationData<EntityUser,ModelUser, T>>;
187
+ mutateBulk<T extends IModelMutateOptions<EntityUser,ModelUser>>(items: TypeModelMutateRelationData<EntityUser,ModelUser, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityUser,ModelUser, T>[]>;
188
+ count<T extends IModelSelectCountParams<EntityUser,ModelUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<BigNumber | undefined>;
189
+ aggregate<T extends IModelSelectAggrParams<EntityUser,ModelUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelAggrRelationResult<T>>;
190
+ group<T extends IModelSelectGroupParams<EntityUser,ModelUser,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelGroupRelationResult<EntityUser, T>[]>;
191
+ }
192
+ }
193
+ declare module 'vona-module-a-orm' {
194
+ export interface IModelClassRecord {
195
+ 'home-user:role': ModelRole;
196
+ 'home-user:roleUser': ModelRoleUser;
197
+ 'home-user:user': ModelUser;
198
+ }
105
199
  }
106
200
  /** model: end */
107
201
  /** service: begin */
@@ -129,20 +223,40 @@ declare module 'vona-module-home-user' {
129
223
  get scope(): ScopeModuleHomeUser;
130
224
  }
131
225
 
226
+ export interface ServiceAuthInnerAdapter {
227
+ get $beanFullName(): 'home-user.service.authInnerAdapter';
228
+ get $onionName(): 'home-user:authInnerAdapter';
229
+ }
230
+
132
231
  export interface ServicePassportAdapter {
133
232
  /** @internal */
134
233
  get scope(): ScopeModuleHomeUser;
135
234
  }
136
235
 
236
+ export interface ServicePassportAdapter {
237
+ get $beanFullName(): 'home-user.service.passportAdapter';
238
+ get $onionName(): 'home-user:passportAdapter';
239
+ }
240
+
137
241
  export interface ServiceRoleInnerAdapter {
138
242
  /** @internal */
139
243
  get scope(): ScopeModuleHomeUser;
140
244
  }
141
245
 
246
+ export interface ServiceRoleInnerAdapter {
247
+ get $beanFullName(): 'home-user.service.roleInnerAdapter';
248
+ get $onionName(): 'home-user:roleInnerAdapter';
249
+ }
250
+
142
251
  export interface ServiceUserInnerAdapter {
143
252
  /** @internal */
144
253
  get scope(): ScopeModuleHomeUser;
145
- }
254
+ }
255
+
256
+ export interface ServiceUserInnerAdapter {
257
+ get $beanFullName(): 'home-user.service.userInnerAdapter';
258
+ get $onionName(): 'home-user:userInnerAdapter';
259
+ }
146
260
  }
147
261
  /** service: end */
148
262
  /** service: begin */
@@ -190,10 +304,20 @@ declare module 'vona-module-home-user' {
190
304
  get scope(): ScopeModuleHomeUser;
191
305
  }
192
306
 
307
+ export interface MetaIndex {
308
+ get $beanFullName(): 'home-user.meta.index';
309
+ get $onionName(): 'home-user:index';
310
+ }
311
+
193
312
  export interface MetaVersion {
194
313
  /** @internal */
195
314
  get scope(): ScopeModuleHomeUser;
196
- }
315
+ }
316
+
317
+ export interface MetaVersion {
318
+ get $beanFullName(): 'home-user.meta.version';
319
+ get $onionName(): 'home-user:version';
320
+ }
197
321
  }
198
322
  /** meta: end */
199
323
  /** dto: begin */
@@ -207,9 +331,9 @@ import 'vona';
207
331
  declare module 'vona-module-a-web' {
208
332
 
209
333
  export interface IDtoRecord {
210
- 'home-user:auth': Omit<IDtoOptionsAuth, '_fieldsMore_'>;
211
- 'home-user:passport': Omit<IDtoOptionsPassport, '_fieldsMore_'>;
212
- 'home-user:passportJwt': Omit<IDtoOptionsPassportJwt, '_fieldsMore_'>;
334
+ 'home-user:auth': IDtoOptionsAuth;
335
+ 'home-user:passport': IDtoOptionsPassport;
336
+ 'home-user:passportJwt': IDtoOptionsPassportJwt;
213
337
  }
214
338
 
215
339
 
@@ -225,15 +349,15 @@ import type { DtoPassportJwt } from '../dto/passportJwt.ts';
225
349
  declare module 'vona-module-home-user' {
226
350
 
227
351
  export interface IDtoOptionsAuth {
228
- fields?: TypeEntityOptionsFields<DtoAuth, IDtoOptionsAuth['_fieldsMore_']>;
352
+ fields?: TypeEntityOptionsFields<DtoAuth, IDtoOptionsAuth[TypeSymbolKeyFieldsMore]>;
229
353
  }
230
354
 
231
355
  export interface IDtoOptionsPassport {
232
- fields?: TypeEntityOptionsFields<DtoPassport, IDtoOptionsPassport['_fieldsMore_']>;
356
+ fields?: TypeEntityOptionsFields<DtoPassport, IDtoOptionsPassport[TypeSymbolKeyFieldsMore]>;
233
357
  }
234
358
 
235
359
  export interface IDtoOptionsPassportJwt {
236
- fields?: TypeEntityOptionsFields<DtoPassportJwt, IDtoOptionsPassportJwt['_fieldsMore_']>;
360
+ fields?: TypeEntityOptionsFields<DtoPassportJwt, IDtoOptionsPassportJwt[TypeSymbolKeyFieldsMore]>;
237
361
  }
238
362
  }
239
363
  /** dto: end */
@@ -254,7 +378,12 @@ declare module 'vona-module-home-user' {
254
378
  export interface ControllerPassport {
255
379
  /** @internal */
256
380
  get scope(): ScopeModuleHomeUser;
257
- }
381
+ }
382
+
383
+ export interface ControllerPassport {
384
+ get $beanFullName(): 'home-user.controller.passport';
385
+ get $onionName(): 'home-user:passport';
386
+ }
258
387
  }
259
388
  /** controller: end */
260
389
  /** controller: begin */
@@ -278,6 +407,7 @@ export interface IApiPathPostRecord{
278
407
  '/home/user/passport/login': undefined;
279
408
  '/home/user/passport/refreshAuthToken': undefined;
280
409
  '/home/user/passport/createPassportJwtFromOauthCode': undefined;
410
+ '/home/user/passport/createTempAuthToken': undefined;
281
411
  }
282
412
 
283
413
  }
@@ -286,8 +416,16 @@ export interface IApiPathPostRecord{
286
416
  export * from '../config/config.ts';
287
417
  import type { config } from '../config/config.ts';
288
418
  /** config: end */
419
+ /** locale: begin */
420
+ import locale_en_us from '../config/locale/en-us.ts';
421
+ import locale_zh_cn from '../config/locale/zh-cn.ts';
422
+ export const locales = {
423
+ 'en-us': locale_en_us,
424
+ 'zh-cn': locale_zh_cn,
425
+ };
426
+ /** locale: end */
289
427
  /** scope: begin */
290
- import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig } from 'vona';
428
+ import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig, type TypeModuleLocales, type TypeLocaleBase } from 'vona';
291
429
  import { Scope } from 'vona-module-a-bean';
292
430
 
293
431
  @Scope()
@@ -296,6 +434,7 @@ export class ScopeModuleHomeUser extends BeanScopeBase {}
296
434
  export interface ScopeModuleHomeUser {
297
435
  util: BeanScopeUtil;
298
436
  config: TypeModuleConfig<typeof config>;
437
+ locale: TypeModuleLocales<(typeof locales)[TypeLocaleBase]>;
299
438
  entity: IModuleEntity;
300
439
  model: IModuleModel;
301
440
  service: IModuleService;
@@ -315,7 +454,12 @@ declare module 'vona' {
315
454
  'home-user': ReturnType<typeof config>;
316
455
  }
317
456
 
318
-
457
+ export interface IBeanScopeLocale {
458
+ 'home-user': (typeof locales)[TypeLocaleBase];
459
+ }
319
460
  }
320
461
 
462
+ export function $locale<K extends keyof (typeof locales)[TypeLocaleBase]>(key: K): `home-user::${K}` {
463
+ return `home-user::${key}`;
464
+ }
321
465
  /** scope: end */
@@ -1,16 +1,16 @@
1
1
  import type { IMetaOptionsIndex } from 'vona-module-a-index';
2
2
  import { BeanBase } from 'vona';
3
- import { $tableColumns } from 'vona-module-a-database';
4
3
  import { Meta } from 'vona-module-a-meta';
4
+ import { $tableColumns } from 'vona-module-a-orm';
5
5
  import { EntityRole } from '../entity/role.ts';
6
+ import { EntityRoleUser } from '../entity/roleUser.ts';
6
7
  import { EntityUser } from '../entity/user.ts';
7
- import { EntityUserRole } from '../entity/userRole.ts';
8
8
 
9
9
  @Meta<IMetaOptionsIndex>({
10
10
  indexes: {
11
- ...$tableColumns(() => EntityUser, entity => entity.name),
12
- ...$tableColumns(() => EntityRole, entity => entity.name),
13
- ...$tableColumns(() => EntityUserRole, entity => [entity.userId, entity.roleId]),
11
+ ...$tableColumns(() => EntityUser, 'name'),
12
+ ...$tableColumns(() => EntityRole, 'name'),
13
+ ...$tableColumns(() => EntityRoleUser, ['userId', 'roleId']),
14
14
  },
15
15
  })
16
16
  export class MetaIndex extends BeanBase {}
@@ -9,20 +9,22 @@ export class MetaVersion extends BeanBase implements IMetaVersionUpdate, IMetaVe
9
9
  // homeRole
10
10
  const entityRole = this.scope.entity.role;
11
11
  await this.bean.model.createTable(entityRole.$table, table => {
12
+ table.comment(entityRole.$comment.$table);
12
13
  table.basicFields();
13
- table.string(entityRole.name, 255);
14
+ table.string(entityRole.name, 255).comment(entityRole.$comment.name);
14
15
  });
15
16
  // homeUser
16
17
  const entityUser = this.scope.entity.user;
17
18
  await this.bean.model.createTable(entityUser.$table, table => {
19
+ table.comment(entityUser.$comment.$table);
18
20
  table.basicFields();
19
- table.string(entityUser.name, 255);
20
- table.string(entityUser.avatar, 255);
21
- table.string(entityUser.locale, 255);
21
+ table.string(entityUser.name, 255).comment(entityUser.$comment.name);
22
+ table.string(entityUser.avatar, 255).comment(entityUser.$comment.avatar);
23
+ table.string(entityUser.locale, 255).comment(entityUser.$comment.locale);
22
24
  });
23
- // homeUserRole
24
- const entityUserRole = this.scope.entity.userRole;
25
- await this.bean.model.createTable(entityUserRole.$table, table => {
25
+ // homeRoleUser
26
+ const entityRoleUser = this.scope.entity.roleUser;
27
+ await this.bean.model.createTable(entityRoleUser.$table, table => {
26
28
  table.basicFields();
27
29
  table.tableIdentity('userId');
28
30
  table.tableIdentity('roleId');
@@ -43,7 +45,7 @@ export class MetaVersion extends BeanBase implements IMetaVersionUpdate, IMetaVe
43
45
  locale: undefined,
44
46
  });
45
47
  // userRole: admin
46
- await this.scope.model.userRole.insert({
48
+ await this.scope.model.roleUser.insert({
47
49
  userId: userAdmin.id,
48
50
  roleId: roleAdmin.id,
49
51
  });
@@ -0,0 +1,8 @@
1
+ export default {
2
+ Role: 'Role',
3
+ RoleName: 'Role Name',
4
+ User: 'User',
5
+ UserName: 'User Name',
6
+ UserAvatar: 'Avatar',
7
+ UserLocale: 'Language',
8
+ };
@@ -0,0 +1,8 @@
1
+ export default {
2
+ Role: '角色',
3
+ RoleName: '角色名',
4
+ User: '用户',
5
+ UserName: '用户名',
6
+ UserAvatar: '头像',
7
+ UserLocale: '语言',
8
+ };
@@ -98,6 +98,12 @@ export class ControllerPassport extends BeanBase {
98
98
  return this._combineDtoPassportJwt(jwt);
99
99
  }
100
100
 
101
+ @Web.post('createTempAuthToken')
102
+ @Api.body(z.string())
103
+ async createTempAuthToken(@Arg.query('path', v.optional()) path?: string): Promise<string> {
104
+ return await this.bean.passport.createTempAuthToken({ path });
105
+ }
106
+
101
107
  private _combineDtoPassportJwt(jwt?: IJwtToken): DtoPassportJwt {
102
108
  if (!jwt) this.app.throw(403);
103
109
  return {
@@ -1,4 +1,4 @@
1
- import type { TableIdentity } from 'vona-module-a-database';
1
+ import type { TableIdentity } from 'vona-module-a-orm';
2
2
  import type { IAuthBase } from 'vona-module-a-user';
3
3
  import type { IDecoratorDtoOptions } from 'vona-module-a-web';
4
4
  import { Api, v } from 'vona-module-a-openapi';
@@ -1,11 +1,12 @@
1
- import type { IDecoratorEntityOptions } from 'vona-module-a-database';
2
- import { Entity, EntityBase } from 'vona-module-a-database';
3
- import { Api } from 'vona-module-a-openapi';
1
+ import type { IDecoratorEntityOptions } from 'vona-module-a-orm';
2
+ import { Api, v } from 'vona-module-a-openapi';
3
+ import { Entity, EntityBase } from 'vona-module-a-orm';
4
+ import { $locale } from '../.metadata/index.ts';
4
5
 
5
6
  export interface IEntityOptionsRole extends IDecoratorEntityOptions {}
6
7
 
7
- @Entity<IEntityOptionsRole>('homeRole')
8
+ @Entity<IEntityOptionsRole>('homeRole', { openapi: { title: $locale('Role') } })
8
9
  export class EntityRole extends EntityBase {
9
- @Api.field()
10
+ @Api.field(v.title($locale('RoleName')))
10
11
  name: string;
11
12
  }
@@ -0,0 +1,14 @@
1
+ import type { IDecoratorEntityOptions, TableIdentity } from 'vona-module-a-orm';
2
+ import { Api, v } from 'vona-module-a-openapi';
3
+ import { Entity, EntityBase } from 'vona-module-a-orm';
4
+
5
+ export interface IEntityOptionsRoleUser extends IDecoratorEntityOptions {}
6
+
7
+ @Entity<IEntityOptionsRoleUser>('homeRoleUser')
8
+ export class EntityRoleUser extends EntityBase {
9
+ @Api.field(v.tableIdentity())
10
+ userId: TableIdentity;
11
+
12
+ @Api.field(v.tableIdentity())
13
+ roleId: TableIdentity;
14
+ }
@@ -1,19 +1,20 @@
1
1
  import type { ILocaleInfos } from 'vona';
2
- import type { IDecoratorEntityOptions } from 'vona-module-a-database';
3
- import { Entity, EntityBase } from 'vona-module-a-database';
2
+ import type { IDecoratorEntityOptions } from 'vona-module-a-orm';
4
3
  import { Api, v } from 'vona-module-a-openapi';
4
+ import { Entity, EntityBase } from 'vona-module-a-orm';
5
5
  import { z } from 'zod';
6
+ import { $locale } from '../.metadata/index.ts';
6
7
 
7
8
  export interface IEntityOptionsUser extends IDecoratorEntityOptions {}
8
9
 
9
- @Entity<IEntityOptionsUser>('homeUser')
10
+ @Entity<IEntityOptionsUser>('homeUser', { openapi: { title: $locale('User') } })
10
11
  export class EntityUser extends EntityBase {
11
- @Api.field()
12
+ @Api.field(v.title($locale('UserName')))
12
13
  name: string;
13
14
 
14
- @Api.field(v.optional())
15
+ @Api.field(v.title($locale('UserAvatar')), v.optional())
15
16
  avatar?: string;
16
17
 
17
- @Api.field(z.string().optional())
18
+ @Api.field(v.title($locale('UserLocale')), z.string().optional())
18
19
  locale?: keyof ILocaleInfos | undefined;
19
20
  }
@@ -1,4 +1,4 @@
1
- import type { TableIdentity } from 'vona-module-a-database';
1
+ import type { TableIdentity } from 'vona-module-a-orm';
2
2
  import type { IAuthBase } from 'vona-module-a-user';
3
3
  import type { IAuth } from '../types/auth.ts';
4
4
  import { cast } from 'vona';
@@ -1,4 +1,4 @@
1
- import type { TableIdentity } from 'vona-module-a-database';
1
+ import type { TableIdentity } from 'vona-module-a-orm';
2
2
  import type { IRoleBase } from 'vona-module-a-user';
3
3
  import type { IRole } from '../types/role.ts';
4
4
  import { cast } from 'vona';
@@ -1,5 +1,5 @@
1
1
  import type { ILocaleInfos } from 'vona';
2
- import type { TableIdentity } from 'vona-module-a-database';
2
+ import type { TableIdentity } from 'vona-module-a-orm';
3
3
  import type { IUserBase } from 'vona-module-a-user';
4
4
  import type { IUser } from '../types/user.ts';
5
5
  import { cast } from 'vona';
@@ -1,5 +1,8 @@
1
- import { BeanModelBase, Model } from 'vona-module-a-database';
1
+ import type { IDecoratorModelOptions } from 'vona-module-a-orm';
2
+ import { BeanModelBase, Model } from 'vona-module-a-orm';
2
3
  import { EntityRole } from '../entity/role.ts';
3
4
 
4
- @Model({ entity: EntityRole })
5
+ export interface IModelOptionsRole extends IDecoratorModelOptions<EntityRole> {}
6
+
7
+ @Model<IModelOptionsRole>({ entity: EntityRole })
5
8
  export class ModelRole extends BeanModelBase<EntityRole> {}
@@ -0,0 +1,8 @@
1
+ import type { IDecoratorModelOptions } from 'vona-module-a-orm';
2
+ import { BeanModelBase, Model } from 'vona-module-a-orm';
3
+ import { EntityRoleUser } from '../entity/roleUser.ts';
4
+
5
+ export interface IModelOptionsRoleUser extends IDecoratorModelOptions<EntityRoleUser> {}
6
+
7
+ @Model<IModelOptionsRoleUser>({ entity: EntityRoleUser })
8
+ export class ModelRoleUser extends BeanModelBase<EntityRoleUser> {}
@@ -1,5 +1,15 @@
1
- import { BeanModelBase, Model } from 'vona-module-a-database';
1
+ import type { IDecoratorModelOptions } from 'vona-module-a-orm';
2
+ import { $relation, BeanModelBase, Model } from 'vona-module-a-orm';
2
3
  import { EntityUser } from '../entity/user.ts';
4
+ import { ModelRole } from './role.ts';
5
+ import { ModelRoleUser } from './roleUser.ts';
3
6
 
4
- @Model({ entity: EntityUser })
7
+ export interface IModelOptionsUser extends IDecoratorModelOptions<EntityUser> {}
8
+
9
+ @Model<IModelOptionsUser>({
10
+ entity: EntityUser,
11
+ relations: {
12
+ roles: $relation.belongsToMany(() => ModelRoleUser, () => ModelRole, 'userId', 'roleId', { columns: ['id', 'name'] }),
13
+ },
14
+ })
5
15
  export class ModelUser extends BeanModelBase<EntityUser> {}
@@ -14,8 +14,8 @@ export class ServiceRoleInnerAdapter extends BeanBase implements IRoleInnerAdapt
14
14
  return await this.scope.model.role.get(role);
15
15
  }
16
16
 
17
- async findAllByUserId(userId: TableIdentity): Promise<IRoleBase[]> {
18
- const userRoles = await this.scope.model.userRole.select({ where: { userId } });
19
- return await this.scope.model.role.select({ where: { id: userRoles.map(item => item.roleId) } });
17
+ async findAllByUserId(userId: TableIdentity): Promise<IRoleBase[] | undefined> {
18
+ const user = await this.scope.model.user.get({ id: userId }, { include: { roles: true } });
19
+ return user?.roles;
20
20
  }
21
21
  }
@@ -1,5 +1,5 @@
1
- import type { TableIdentity } from 'vona-module-a-database';
2
1
  import type { IPayloadDataBase } from 'vona-module-a-jwt';
2
+ import type { TableIdentity } from 'vona-module-a-orm';
3
3
  import type { IPassportBase } from 'vona-module-a-user';
4
4
  import type { IAuth } from './auth.ts';
5
5
  import type { IUser } from './user.ts';