vona-cli-set-api 1.0.176 → 1.0.179
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/templates/create/project/basic/boilerplate/package.original.json +1 -1
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/.metadata/index.ts +22 -45
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/eventListener.activate.ts +2 -3
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/eventListener.emailConfirmCallback.ts +2 -2
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/eventListener.register.ts +2 -3
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/zodRefine.usernameUnique.ts +1 -1
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/config/config.ts +0 -4
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/controller/passport.ts +2 -2
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/dto/passport.ts +1 -1
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/index.ts +0 -1
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/passportAdapter.ts +7 -8
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/{roleInnerAdapter.ts → roleAdapter.ts} +4 -5
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/{userInnerAdapter.ts → userAdapter.ts} +8 -9
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/index.ts +0 -3
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/passport.ts +0 -8
- package/package.json +2 -2
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/dto/auth.ts +0 -13
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/authAdapter.ts +0 -11
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/index.ts +0 -3
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/roleAdapter.ts +0 -15
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/userAdapter.ts +0 -40
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/authInnerAdapter.ts +0 -14
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/auth.ts +0 -3
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/role.ts +0 -5
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/user.ts +0 -11
|
@@ -214,35 +214,23 @@ declare module 'vona-module-a-orm' {
|
|
|
214
214
|
}
|
|
215
215
|
/** model: end */
|
|
216
216
|
/** service: begin */
|
|
217
|
-
export * from '../service/authInnerAdapter.ts';
|
|
218
217
|
export * from '../service/passportAdapter.ts';
|
|
219
|
-
export * from '../service/
|
|
220
|
-
export * from '../service/
|
|
218
|
+
export * from '../service/roleAdapter.ts';
|
|
219
|
+
export * from '../service/userAdapter.ts';
|
|
221
220
|
|
|
222
221
|
import 'vona';
|
|
223
222
|
declare module 'vona-module-a-bean' {
|
|
224
223
|
|
|
225
224
|
export interface IServiceRecord {
|
|
226
|
-
'home-user:
|
|
227
|
-
'home-user:
|
|
228
|
-
'home-user:
|
|
229
|
-
'home-user:userInnerAdapter': never;
|
|
225
|
+
'home-user:passportAdapter': never;
|
|
226
|
+
'home-user:roleAdapter': never;
|
|
227
|
+
'home-user:userAdapter': never;
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
|
|
233
231
|
}
|
|
234
232
|
declare module 'vona-module-home-user' {
|
|
235
233
|
|
|
236
|
-
export interface ServiceAuthInnerAdapter {
|
|
237
|
-
/** @internal */
|
|
238
|
-
get scope(): ScopeModuleHomeUser;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
export interface ServiceAuthInnerAdapter {
|
|
242
|
-
get $beanFullName(): 'home-user.service.authInnerAdapter';
|
|
243
|
-
get $onionName(): 'home-user:authInnerAdapter';
|
|
244
|
-
}
|
|
245
|
-
|
|
246
234
|
export interface ServicePassportAdapter {
|
|
247
235
|
/** @internal */
|
|
248
236
|
get scope(): ScopeModuleHomeUser;
|
|
@@ -253,37 +241,35 @@ declare module 'vona-module-home-user' {
|
|
|
253
241
|
get $onionName(): 'home-user:passportAdapter';
|
|
254
242
|
}
|
|
255
243
|
|
|
256
|
-
export interface
|
|
244
|
+
export interface ServiceRoleAdapter {
|
|
257
245
|
/** @internal */
|
|
258
246
|
get scope(): ScopeModuleHomeUser;
|
|
259
247
|
}
|
|
260
248
|
|
|
261
|
-
export interface
|
|
262
|
-
get $beanFullName(): 'home-user.service.
|
|
263
|
-
get $onionName(): 'home-user:
|
|
249
|
+
export interface ServiceRoleAdapter {
|
|
250
|
+
get $beanFullName(): 'home-user.service.roleAdapter';
|
|
251
|
+
get $onionName(): 'home-user:roleAdapter';
|
|
264
252
|
}
|
|
265
253
|
|
|
266
|
-
export interface
|
|
254
|
+
export interface ServiceUserAdapter {
|
|
267
255
|
/** @internal */
|
|
268
256
|
get scope(): ScopeModuleHomeUser;
|
|
269
257
|
}
|
|
270
258
|
|
|
271
|
-
export interface
|
|
272
|
-
get $beanFullName(): 'home-user.service.
|
|
273
|
-
get $onionName(): 'home-user:
|
|
259
|
+
export interface ServiceUserAdapter {
|
|
260
|
+
get $beanFullName(): 'home-user.service.userAdapter';
|
|
261
|
+
get $onionName(): 'home-user:userAdapter';
|
|
274
262
|
}
|
|
275
263
|
}
|
|
276
264
|
/** service: end */
|
|
277
265
|
/** service: begin */
|
|
278
|
-
import type { ServiceAuthInnerAdapter } from '../service/authInnerAdapter.ts';
|
|
279
266
|
import type { ServicePassportAdapter } from '../service/passportAdapter.ts';
|
|
280
|
-
import type {
|
|
281
|
-
import type {
|
|
267
|
+
import type { ServiceRoleAdapter } from '../service/roleAdapter.ts';
|
|
268
|
+
import type { ServiceUserAdapter } from '../service/userAdapter.ts';
|
|
282
269
|
export interface IModuleService {
|
|
283
|
-
'
|
|
284
|
-
'
|
|
285
|
-
'
|
|
286
|
-
'userInnerAdapter': ServiceUserInnerAdapter;
|
|
270
|
+
'passportAdapter': ServicePassportAdapter;
|
|
271
|
+
'roleAdapter': ServiceRoleAdapter;
|
|
272
|
+
'userAdapter': ServiceUserAdapter;
|
|
287
273
|
}
|
|
288
274
|
/** service: end */
|
|
289
275
|
/** service: begin */
|
|
@@ -291,10 +277,9 @@ export interface IModuleService {
|
|
|
291
277
|
import 'vona';
|
|
292
278
|
declare module 'vona' {
|
|
293
279
|
export interface IBeanRecordGeneral {
|
|
294
|
-
'home-user.service.
|
|
295
|
-
'home-user.service.
|
|
296
|
-
'home-user.service.
|
|
297
|
-
'home-user.service.userInnerAdapter': ServiceUserInnerAdapter;
|
|
280
|
+
'home-user.service.passportAdapter': ServicePassportAdapter;
|
|
281
|
+
'home-user.service.roleAdapter': ServiceRoleAdapter;
|
|
282
|
+
'home-user.service.userAdapter': ServiceUserAdapter;
|
|
298
283
|
}
|
|
299
284
|
}
|
|
300
285
|
/** service: end */
|
|
@@ -397,12 +382,10 @@ declare module 'vona-module-home-user' {
|
|
|
397
382
|
}
|
|
398
383
|
/** meta: end */
|
|
399
384
|
/** dto: begin */
|
|
400
|
-
export * from '../dto/auth.ts';
|
|
401
385
|
export * from '../dto/login.ts';
|
|
402
386
|
export * from '../dto/passport.ts';
|
|
403
387
|
export * from '../dto/passportJwt.ts';
|
|
404
388
|
export * from '../dto/register.ts';
|
|
405
|
-
import type { IDtoOptionsAuth } from '../dto/auth.ts';
|
|
406
389
|
import type { IDtoOptionsLogin } from '../dto/login.ts';
|
|
407
390
|
import type { IDtoOptionsPassport } from '../dto/passport.ts';
|
|
408
391
|
import type { IDtoOptionsPassportJwt } from '../dto/passportJwt.ts';
|
|
@@ -411,8 +394,7 @@ import 'vona';
|
|
|
411
394
|
declare module 'vona-module-a-web' {
|
|
412
395
|
|
|
413
396
|
export interface IDtoRecord {
|
|
414
|
-
'home-user:
|
|
415
|
-
'home-user:login': IDtoOptionsLogin;
|
|
397
|
+
'home-user:login': IDtoOptionsLogin;
|
|
416
398
|
'home-user:passport': IDtoOptionsPassport;
|
|
417
399
|
'home-user:passportJwt': IDtoOptionsPassportJwt;
|
|
418
400
|
'home-user:register': IDtoOptionsRegister;
|
|
@@ -425,17 +407,12 @@ declare module 'vona-module-home-user' {
|
|
|
425
407
|
}
|
|
426
408
|
/** dto: end */
|
|
427
409
|
/** dto: begin */
|
|
428
|
-
import type { DtoAuth } from '../dto/auth.ts';
|
|
429
410
|
import type { DtoLogin } from '../dto/login.ts';
|
|
430
411
|
import type { DtoPassport } from '../dto/passport.ts';
|
|
431
412
|
import type { DtoPassportJwt } from '../dto/passportJwt.ts';
|
|
432
413
|
import type { DtoRegister } from '../dto/register.ts';
|
|
433
414
|
declare module 'vona-module-home-user' {
|
|
434
415
|
|
|
435
|
-
export interface IDtoOptionsAuth {
|
|
436
|
-
fields?: TypeEntityOptionsFields<DtoAuth, IDtoOptionsAuth[TypeSymbolKeyFieldsMore]>;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
416
|
export interface IDtoOptionsLogin {
|
|
440
417
|
fields?: TypeEntityOptionsFields<DtoLogin, IDtoOptionsLogin[TypeSymbolKeyFieldsMore]>;
|
|
441
418
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IEventExecute, NextEvent } from 'vona-module-a-event';
|
|
2
|
-
import type { TypeEventActivateData, TypeEventActivateResult } from 'vona-module-a-user';
|
|
3
|
-
import type { IUser } from '../types/user.ts';
|
|
2
|
+
import type { IUserBase, TypeEventActivateData, TypeEventActivateResult } from 'vona-module-a-user';
|
|
4
3
|
import { BeanBase } from 'vona';
|
|
5
4
|
import { EventListener } from 'vona-module-a-event';
|
|
6
5
|
|
|
@@ -12,7 +11,7 @@ export class EventListenerActivate
|
|
|
12
11
|
extends BeanBase
|
|
13
12
|
implements IEventExecute<TypeEventData, TypeEventResult> {
|
|
14
13
|
async execute(data: TypeEventData, next: NextEvent<TypeEventData, TypeEventResult>): Promise<TypeEventResult> {
|
|
15
|
-
const user = data as
|
|
14
|
+
const user = data as IUserBase;
|
|
16
15
|
if (user.name === 'admin') {
|
|
17
16
|
// role: admin
|
|
18
17
|
const roleAdmin = await this.scope.model.role.get({ name: 'admin' });
|
|
@@ -16,8 +16,8 @@ export class EventListenerEmailConfirmCallback
|
|
|
16
16
|
return this.scope.locale.ConfirmationEmailExpired();
|
|
17
17
|
}
|
|
18
18
|
// activate
|
|
19
|
-
const user = await this.bean.
|
|
20
|
-
await this.bean.
|
|
19
|
+
const user = await this.bean.user.findOne({ id: data.userId });
|
|
20
|
+
await this.bean.user.activate(user!);
|
|
21
21
|
// ok
|
|
22
22
|
return this.scope.locale.ConfirmationEmailSucceeded();
|
|
23
23
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IEventExecute, NextEvent } from 'vona-module-a-event';
|
|
2
|
-
import type { TypeEventRegisterData, TypeEventRegisterResult } from 'vona-module-a-user';
|
|
3
|
-
import type { IUser } from '../types/user.ts';
|
|
2
|
+
import type { IUserBase, TypeEventRegisterData, TypeEventRegisterResult } from 'vona-module-a-user';
|
|
4
3
|
import { BeanBase } from 'vona';
|
|
5
4
|
import { EventListener } from 'vona-module-a-event';
|
|
6
5
|
|
|
@@ -13,7 +12,7 @@ export class EventListenerRegister
|
|
|
13
12
|
implements IEventExecute<TypeEventData, TypeEventResult> {
|
|
14
13
|
async execute(data: TypeEventData, next: NextEvent<TypeEventData, TypeEventResult>): Promise<TypeEventResult> {
|
|
15
14
|
// next: registered
|
|
16
|
-
const user = await next() as
|
|
15
|
+
const user = await next() as IUserBase;
|
|
17
16
|
// mail: activate
|
|
18
17
|
if (!data.autoActivate && user.email) {
|
|
19
18
|
await this.$scope.mailconfirm.service.mail.emailConfirm(user);
|
|
@@ -9,7 +9,7 @@ export interface IZodRefineOptionsUsernameUnique extends IDecoratorZodRefineOpti
|
|
|
9
9
|
@ZodRefine<IZodRefineOptionsUsernameUnique>()
|
|
10
10
|
export class ZodRefineUsernameUnique extends BeanBase implements IZodRefineExecute<TypeZodRefineUsernameUniqueData> {
|
|
11
11
|
async execute(value: TypeZodRefineUsernameUniqueData, refinementCtx: TypeRefinementCtx, _options: IZodRefineOptionsUsernameUnique) {
|
|
12
|
-
const user = await this.bean.
|
|
12
|
+
const user = await this.bean.user.findOneByName(value);
|
|
13
13
|
if (user) {
|
|
14
14
|
refinementCtx.addIssue({
|
|
15
15
|
code: 'custom',
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import type { VonaApplication } from 'vona';
|
|
2
|
-
import type { IServiceRecord } from 'vona-module-a-bean';
|
|
3
2
|
|
|
4
3
|
export function config(_app: VonaApplication) {
|
|
5
4
|
return {
|
|
6
5
|
passwordDefault: {
|
|
7
6
|
admin: '123456',
|
|
8
7
|
},
|
|
9
|
-
adapter: {
|
|
10
|
-
authInner: 'a-auth:authInnerAdapter' as keyof IServiceRecord,
|
|
11
|
-
},
|
|
12
8
|
};
|
|
13
9
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IAuthenticateOptions, IAuthProviderRecord } from 'vona-module-a-auth';
|
|
1
|
+
import type { DtoAuth, IAuthenticateOptions, IAuthProviderRecord } from 'vona-module-a-auth';
|
|
2
2
|
import type { IJwtToken } from 'vona-module-a-jwt';
|
|
3
3
|
import type { IDecoratorControllerOptions } from 'vona-module-a-web';
|
|
4
4
|
import type { EntityRole } from '../entity/role.ts';
|
|
@@ -128,7 +128,7 @@ export class ControllerPassport extends BeanBase {
|
|
|
128
128
|
if (!passport || !passport.auth) return;
|
|
129
129
|
return {
|
|
130
130
|
user: passport.user as EntityUser,
|
|
131
|
-
auth:
|
|
131
|
+
auth: passport.auth as DtoAuth,
|
|
132
132
|
roles: passport.roles as EntityRole[],
|
|
133
133
|
};
|
|
134
134
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import type { DtoAuth } from 'vona-module-a-auth';
|
|
1
2
|
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
2
3
|
import { Api, v } from 'vona-module-a-openapi';
|
|
3
4
|
import { Dto } from 'vona-module-a-web';
|
|
4
5
|
import { EntityRole } from 'vona-module-home-user';
|
|
5
6
|
import { EntityUser } from '../entity/user.ts';
|
|
6
|
-
import { DtoAuth } from './auth.ts';
|
|
7
7
|
|
|
8
8
|
export interface IDtoOptionsPassport extends IDecoratorDtoOptions {}
|
|
9
9
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import type { IPassportAdapter, IPassportBase } from 'vona-module-a-user';
|
|
2
|
-
import type {
|
|
2
|
+
import type { IPayloadData } from '../types/passport.ts';
|
|
3
3
|
import { BeanBase } from 'vona';
|
|
4
4
|
import { Service } from 'vona-module-a-bean';
|
|
5
|
-
import { $getRoleName } from 'vona-module-a-user';
|
|
6
5
|
|
|
7
6
|
@Service()
|
|
8
7
|
export class ServicePassportAdapter extends BeanBase implements IPassportAdapter {
|
|
9
|
-
async isAdmin(passport:
|
|
8
|
+
async isAdmin(passport: IPassportBase | undefined): Promise<boolean> {
|
|
10
9
|
if (!passport || !passport.roles) return false;
|
|
11
|
-
return passport.roles.some(item =>
|
|
10
|
+
return passport.roles.some(item => item.name === 'admin');
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
async setCurrent(passport:
|
|
13
|
+
async setCurrent(passport: IPassportBase | undefined): Promise<IPassportBase | undefined> {
|
|
15
14
|
return passport;
|
|
16
15
|
}
|
|
17
16
|
|
|
@@ -22,11 +21,11 @@ export class ServicePassportAdapter extends BeanBase implements IPassportAdapter
|
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
async deserialize(payloadData: IPayloadData): Promise<IPassportBase | undefined> {
|
|
25
|
-
const user = await this.bean.
|
|
24
|
+
const user = await this.bean.user.findOne({ id: payloadData.userId });
|
|
26
25
|
if (!user) return;
|
|
27
|
-
const auth = await this.bean.
|
|
26
|
+
const auth = await this.bean.auth.findOne({ id: payloadData.authId });
|
|
28
27
|
if (!auth) return;
|
|
29
|
-
const roles = await this.bean.
|
|
28
|
+
const roles = await this.bean.role.findAllByUserId(payloadData.userId);
|
|
30
29
|
return { user, auth, roles };
|
|
31
30
|
}
|
|
32
31
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type {
|
|
3
|
-
import type { IRole } from '../types/role.ts';
|
|
2
|
+
import type { IRoleAdapter, IRoleBase } from 'vona-module-a-user';
|
|
4
3
|
import { BeanBase } from 'vona';
|
|
5
4
|
import { Service } from 'vona-module-a-bean';
|
|
6
5
|
|
|
7
6
|
@Service()
|
|
8
|
-
export class
|
|
7
|
+
export class ServiceRoleAdapter extends BeanBase implements IRoleAdapter {
|
|
9
8
|
async findOneByName(name: string): Promise<IRoleBase | undefined> {
|
|
10
|
-
return await this.
|
|
9
|
+
return await this.scope.model.role.get({ name: { _eqI_: name } });
|
|
11
10
|
}
|
|
12
11
|
|
|
13
|
-
async findOne(role: Partial<
|
|
12
|
+
async findOne(role: Partial<IRoleBase>): Promise<IRoleBase | undefined> {
|
|
14
13
|
return await this.scope.model.role.get(role);
|
|
15
14
|
}
|
|
16
15
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { IAuthUserProfile,
|
|
3
|
-
import type { IUser } from '../types/user.ts';
|
|
2
|
+
import type { IAuthUserProfile, IUserAdapter, IUserBase } from 'vona-module-a-user';
|
|
4
3
|
import { BeanBase } from 'vona';
|
|
5
4
|
import { Service } from 'vona-module-a-bean';
|
|
6
5
|
|
|
7
6
|
@Service()
|
|
8
|
-
export class
|
|
9
|
-
async create(user: Partial<
|
|
7
|
+
export class ServiceUserAdapter extends BeanBase implements IUserAdapter {
|
|
8
|
+
async create(user: Partial<IUserBase>): Promise<IUserBase> {
|
|
10
9
|
return await this.scope.model.user.insert(user);
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -16,26 +15,26 @@ export class ServiceUserInnerAdapter extends BeanBase implements IUserInnerAdapt
|
|
|
16
15
|
email: profile.emails?.[0].value,
|
|
17
16
|
avatar: profile.photos?.[0].value,
|
|
18
17
|
locale: profile.locale || this.ctx.locale,
|
|
19
|
-
} as
|
|
18
|
+
} as IUserBase;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
async createAnonymous(): Promise<IUserBase> {
|
|
23
|
-
return { id: -1, name: 'anonymous', avatar: undefined, locale: undefined } as
|
|
22
|
+
return { id: -1, anonymous: true, name: 'anonymous', avatar: undefined, locale: undefined } as IUserBase;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
async findOneByName(name: string): Promise<IUserBase | undefined> {
|
|
27
26
|
return await this.scope.model.user.get({ name: { _eqI_: name } });
|
|
28
27
|
}
|
|
29
28
|
|
|
30
|
-
async findOne(user: Partial<
|
|
29
|
+
async findOne(user: Partial<IUserBase>): Promise<IUserBase | undefined> {
|
|
31
30
|
return await this.scope.model.user.get(user);
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
async update(user: Partial<
|
|
33
|
+
async update(user: Partial<IUserBase>): Promise<void> {
|
|
35
34
|
await this.scope.model.user.update(user);
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
async remove(user: Partial<
|
|
37
|
+
async remove(user: Partial<IUserBase>): Promise<void> {
|
|
39
38
|
await this.scope.model.user.delete(user);
|
|
40
39
|
}
|
|
41
40
|
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import type { TableIdentity } from 'table-identity';
|
|
2
2
|
import type { IPayloadDataBase } from 'vona-module-a-jwt';
|
|
3
|
-
import type { IPassportBase } from 'vona-module-a-user';
|
|
4
|
-
import type { IAuth } from './auth.ts';
|
|
5
|
-
import type { IUser } from './user.ts';
|
|
6
|
-
|
|
7
|
-
export interface IPassport extends IPassportBase {
|
|
8
|
-
user?: IUser;
|
|
9
|
-
auth?: IAuth;
|
|
10
|
-
}
|
|
11
3
|
|
|
12
4
|
export interface IPayloadData extends IPayloadDataBase {
|
|
13
5
|
userId: TableIdentity;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-cli-set-api",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.179",
|
|
5
5
|
"description": "vona cli-set-api",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"ts-node": "^10.9.2",
|
|
62
62
|
"urllib": "^4.6.11",
|
|
63
63
|
"uuid": "^11.1.0",
|
|
64
|
-
"vona-core": "^5.0.
|
|
64
|
+
"vona-core": "^5.0.50",
|
|
65
65
|
"why-is-node-running": "^3.2.2",
|
|
66
66
|
"yargs-parser": "^21.1.1"
|
|
67
67
|
},
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { IAuthBase } from 'vona-module-a-user';
|
|
3
|
-
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
4
|
-
import { Api, v } from 'vona-module-a-openapi';
|
|
5
|
-
import { Dto } from 'vona-module-a-web';
|
|
6
|
-
|
|
7
|
-
export interface IDtoOptionsAuth extends IDecoratorDtoOptions {}
|
|
8
|
-
|
|
9
|
-
@Dto<IDtoOptionsAuth>()
|
|
10
|
-
export class DtoAuth implements IAuthBase {
|
|
11
|
-
@Api.field(v.tableIdentity())
|
|
12
|
-
id: TableIdentity;
|
|
13
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { IAuthBase } from 'vona-module-a-user';
|
|
3
|
-
import type { IAuth } from '../types/auth.ts';
|
|
4
|
-
import { cast } from 'vona';
|
|
5
|
-
import { setAuthAdapter } from 'vona-module-a-user';
|
|
6
|
-
|
|
7
|
-
setAuthAdapter({ getAuthId });
|
|
8
|
-
|
|
9
|
-
function getAuthId(auth: IAuthBase): TableIdentity {
|
|
10
|
-
return cast<IAuth>(auth).id;
|
|
11
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { IRoleBase } from 'vona-module-a-user';
|
|
3
|
-
import type { IRole } from '../types/role.ts';
|
|
4
|
-
import { cast } from 'vona';
|
|
5
|
-
import { setRoleAdapter } from 'vona-module-a-user';
|
|
6
|
-
|
|
7
|
-
setRoleAdapter({ getRoleId, getRoleName });
|
|
8
|
-
|
|
9
|
-
function getRoleId(role: IRoleBase): TableIdentity {
|
|
10
|
-
return cast<IRole>(role).id;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function getRoleName(role: IRoleBase): string {
|
|
14
|
-
return cast<IRole>(role).name;
|
|
15
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { ILocaleInfos } from 'vona';
|
|
3
|
-
import type { IUserBase } from 'vona-module-a-user';
|
|
4
|
-
import type { IUser } from '../types/user.ts';
|
|
5
|
-
import { cast } from 'vona';
|
|
6
|
-
import { setUserAdapter } from 'vona-module-a-user';
|
|
7
|
-
|
|
8
|
-
setUserAdapter({ getUserId, getUserName, getUserAvatar, getUserEmail, getUserMobile, getUserActivated, getUserLocale, getUserAnonymous });
|
|
9
|
-
|
|
10
|
-
function getUserId(user: IUserBase): TableIdentity {
|
|
11
|
-
return cast<IUser>(user).id;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function getUserName(user: IUserBase): string {
|
|
15
|
-
return cast<IUser>(user).name;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function getUserAvatar(user: IUserBase): string | undefined {
|
|
19
|
-
return cast<IUser>(user).avatar;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function getUserEmail(user: IUserBase): string | undefined {
|
|
23
|
-
return cast<IUser>(user).email;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function getUserMobile(user: IUserBase): string | undefined {
|
|
27
|
-
return cast<IUser>(user).mobile;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function getUserActivated(user: IUserBase): boolean {
|
|
31
|
-
return cast<IUser>(user).activated;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function getUserLocale(user: IUserBase): keyof ILocaleInfos | undefined {
|
|
35
|
-
return cast<IUser>(user).locale;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function getUserAnonymous(user: IUserBase): boolean {
|
|
39
|
-
return cast<IUser>(user).id === -1;
|
|
40
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { IAuthBase, IAuthInnerAdapter } from 'vona-module-a-user';
|
|
2
|
-
import type { IAuth } from '../types/auth.ts';
|
|
3
|
-
import { BeanBase, beanFullNameFromOnionName } from 'vona';
|
|
4
|
-
import { Service } from 'vona-module-a-bean';
|
|
5
|
-
|
|
6
|
-
@Service()
|
|
7
|
-
export class ServiceAuthInnerAdapter extends BeanBase implements IAuthInnerAdapter {
|
|
8
|
-
async findOne(auth: Partial<IAuth>): Promise<IAuthBase | undefined> {
|
|
9
|
-
const beanFullName = beanFullNameFromOnionName(this.scope.config.adapter.authInner, 'service');
|
|
10
|
-
const beanAuth = this.bean._getBean<IAuthInnerAdapter>(beanFullName as never);
|
|
11
|
-
if (beanAuth) return await beanAuth.findOne(auth);
|
|
12
|
-
return auth as unknown as IAuthBase | undefined;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ILocaleInfos } from 'vona';
|
|
2
|
-
import type { IUserBase } from 'vona-module-a-user';
|
|
3
|
-
|
|
4
|
-
export interface IUser extends IUserBase {
|
|
5
|
-
name: string;
|
|
6
|
-
avatar?: string;
|
|
7
|
-
email?: string;
|
|
8
|
-
mobile?: string;
|
|
9
|
-
activated: boolean;
|
|
10
|
-
locale?: keyof ILocaleInfos | undefined;
|
|
11
|
-
}
|