vona-cli-set-api 1.0.482 → 1.0.484
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/.vscode/vona.code-snippets +12 -0
- package/cli/templates/create/project/basic/boilerplate/_.gitignore +1 -1
- 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-base/package.json +1 -1
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/service/menu.ts +1 -1
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/.metadata/index.js +24 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/.metadata/index.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/.metadata/locales.js +11 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/.metadata/locales.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/.metadata/this.js +3 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/.metadata/this.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/bean/meta.printTip.js +16 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/bean/meta.printTip.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/config/locale/en-us.js +5 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/config/locale/en-us.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/config/locale/zh-cn.js +5 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/config/locale/zh-cn.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/controller/home.js +24 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/controller/home.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/index.js +3 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/src/index.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/test/home.test.js +12 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/test/home.test.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-index/tsconfig.tsbuildinfo +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/.metadata/index.js +73 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/.metadata/index.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/.metadata/locales.js +11 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/.metadata/locales.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/.metadata/this.js +3 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/.metadata/this.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.activate.js +24 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.activate.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.emailConfirmCallback.js +21 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.emailConfirmCallback.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.passwordResetCallback.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.passwordResetCallback.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.register.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/eventListener.register.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/meta.index.js +17 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/meta.index.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/meta.version.js +56 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/meta.version.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/zodRefine.emailUnique.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/zodRefine.emailUnique.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/zodRefine.passwordConfirm.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/zodRefine.passwordConfirm.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/zodRefine.usernameUnique.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/bean/zodRefine.usernameUnique.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/config/config.js +8 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/config/config.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/config/locale/en-us.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/config/locale/en-us.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/config/locale/zh-cn.js +19 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/config/locale/zh-cn.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/controller/passport.js +175 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/controller/passport.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/login.js +26 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/login.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/passport.js +28 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/passport.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/passportJwt.js +22 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/passportJwt.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/register.js +38 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/dto/register.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/entity/role.js +16 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/entity/role.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/entity/roleUser.js +20 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/entity/roleUser.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/entity/user.js +47 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/entity/user.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/index.js +4 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/index.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/model/role.js +10 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/model/role.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/model/roleUser.js +10 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/model/roleUser.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/model/user.js +20 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/model/user.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/service/passportAdapter.js +35 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/service/passportAdapter.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/service/roleAdapter.js +20 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/service/roleAdapter.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/service/userAdapter.js +40 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/service/userAdapter.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/auth.js +2 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/auth.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/index.js +6 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/index.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/jwt.js +2 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/jwt.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/passport.js +2 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/passport.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/role.js +2 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/role.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/user.js +2 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/src/types/user.js.map +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/.rollup.cache/Volumes/my-data/cabloy/vona/src/suite/a-home/modules/home-user/tsconfig.tsbuildinfo +1 -0
- package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/package.json +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
+
import { BeanBase } from 'vona';
|
|
3
|
+
import { Core } from 'vona-module-a-core';
|
|
4
|
+
import { DtoJwtToken } from 'vona-module-a-jwt';
|
|
5
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
6
|
+
import { Passport } from 'vona-module-a-user';
|
|
7
|
+
import { Arg, Controller, Web } from 'vona-module-a-web';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { DtoLogin } from "../dto/login.js";
|
|
10
|
+
import { DtoPassport } from "../dto/passport.js";
|
|
11
|
+
import { DtoPassportJwt } from "../dto/passportJwt.js";
|
|
12
|
+
import { DtoRegister } from "../dto/register.js";
|
|
13
|
+
let ControllerPassport = class ControllerPassport extends BeanBase {
|
|
14
|
+
current() {
|
|
15
|
+
return this._combineDtoPassport();
|
|
16
|
+
}
|
|
17
|
+
async logout() {
|
|
18
|
+
return await this.bean.passport.signout();
|
|
19
|
+
}
|
|
20
|
+
async register(data) {
|
|
21
|
+
const jwt = await this.bean.authSimple.authenticate(data, 'register', 'default');
|
|
22
|
+
return this._combineDtoPassportJwt(jwt);
|
|
23
|
+
}
|
|
24
|
+
async login(data) {
|
|
25
|
+
const jwt = await this.bean.authSimple.authenticate(data, 'login', 'default');
|
|
26
|
+
return this._combineDtoPassportJwt(jwt);
|
|
27
|
+
}
|
|
28
|
+
async loginOauth(module, providerName, clientName, redirect) {
|
|
29
|
+
// only support oauth, so not return jwt to client
|
|
30
|
+
await this.bean.auth.authenticate(`${module}:${providerName}`, {
|
|
31
|
+
state: { intention: 'login', redirect },
|
|
32
|
+
clientName,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async associate(module, providerName, clientName, redirect) {
|
|
36
|
+
const jwt = await this.bean.auth.authenticate(`${module}:${providerName}`, {
|
|
37
|
+
state: { intention: 'associate', redirect },
|
|
38
|
+
clientName,
|
|
39
|
+
});
|
|
40
|
+
return this._combineDtoPassportJwt(jwt);
|
|
41
|
+
}
|
|
42
|
+
async migrate(module, providerName, clientName, redirect) {
|
|
43
|
+
const jwt = await this.bean.auth.authenticate(`${module}:${providerName}`, {
|
|
44
|
+
state: { intention: 'migrate', redirect },
|
|
45
|
+
clientName,
|
|
46
|
+
});
|
|
47
|
+
return this._combineDtoPassportJwt(jwt);
|
|
48
|
+
}
|
|
49
|
+
async refreshAuthToken(refreshToken) {
|
|
50
|
+
return await this.bean.passport.refreshAuthToken(refreshToken);
|
|
51
|
+
}
|
|
52
|
+
async createPassportJwtFromOauthCode(code) {
|
|
53
|
+
const jwt = await this.bean.passport.createAuthTokenFromOauthCode(code);
|
|
54
|
+
return this._combineDtoPassportJwt(jwt);
|
|
55
|
+
}
|
|
56
|
+
async createTempAuthToken(path) {
|
|
57
|
+
return await this.bean.passport.createTempAuthToken({ path });
|
|
58
|
+
}
|
|
59
|
+
_combineDtoPassportJwt(jwt) {
|
|
60
|
+
if (!jwt)
|
|
61
|
+
this.app.throw(403);
|
|
62
|
+
return {
|
|
63
|
+
passport: this._combineDtoPassport(),
|
|
64
|
+
jwt: jwt,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
_combineDtoPassport() {
|
|
68
|
+
const passport = this.bean.passport.current;
|
|
69
|
+
if (!passport || !passport.auth)
|
|
70
|
+
return;
|
|
71
|
+
return {
|
|
72
|
+
user: passport.user,
|
|
73
|
+
auth: passport.auth,
|
|
74
|
+
roles: passport.roles,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
__decorate([
|
|
79
|
+
Web.get('current'),
|
|
80
|
+
Passport.public(),
|
|
81
|
+
Api.body(v.optional(), v.object(DtoPassport)),
|
|
82
|
+
__metadata("design:type", Function),
|
|
83
|
+
__metadata("design:paramtypes", []),
|
|
84
|
+
__metadata("design:returntype", Object)
|
|
85
|
+
], ControllerPassport.prototype, "current", null);
|
|
86
|
+
__decorate([
|
|
87
|
+
Web.post('logout'),
|
|
88
|
+
__metadata("design:type", Function),
|
|
89
|
+
__metadata("design:paramtypes", []),
|
|
90
|
+
__metadata("design:returntype", Promise)
|
|
91
|
+
], ControllerPassport.prototype, "logout", null);
|
|
92
|
+
__decorate([
|
|
93
|
+
Web.post('register'),
|
|
94
|
+
Passport.public(),
|
|
95
|
+
Core.captchaVerify({ scene: 'a-captchasimple:simple' }),
|
|
96
|
+
Api.body(v.object(DtoPassportJwt)),
|
|
97
|
+
__param(0, Arg.body()),
|
|
98
|
+
__metadata("design:type", Function),
|
|
99
|
+
__metadata("design:paramtypes", [DtoRegister]),
|
|
100
|
+
__metadata("design:returntype", Promise)
|
|
101
|
+
], ControllerPassport.prototype, "register", null);
|
|
102
|
+
__decorate([
|
|
103
|
+
Web.post('login'),
|
|
104
|
+
Passport.public(),
|
|
105
|
+
Core.captchaVerify({ scene: 'a-captchasimple:simple' }),
|
|
106
|
+
Api.body(v.object(DtoPassportJwt)),
|
|
107
|
+
__param(0, Arg.body()),
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", [DtoLogin]),
|
|
110
|
+
__metadata("design:returntype", Promise)
|
|
111
|
+
], ControllerPassport.prototype, "login", null);
|
|
112
|
+
__decorate([
|
|
113
|
+
Web.get('login/:module/:providerName/:clientName?'),
|
|
114
|
+
Passport.public(),
|
|
115
|
+
__param(0, Arg.param('module')),
|
|
116
|
+
__param(1, Arg.param('providerName')),
|
|
117
|
+
__param(2, Arg.param('clientName', z.string().optional())),
|
|
118
|
+
__param(3, Arg.query('redirect', v.optional())),
|
|
119
|
+
__metadata("design:type", Function),
|
|
120
|
+
__metadata("design:paramtypes", [String, String, Object, String]),
|
|
121
|
+
__metadata("design:returntype", Promise)
|
|
122
|
+
], ControllerPassport.prototype, "loginOauth", null);
|
|
123
|
+
__decorate([
|
|
124
|
+
Web.get('associate/:module/:providerName/:clientName?'),
|
|
125
|
+
Api.body(v.object(DtoPassportJwt)),
|
|
126
|
+
__param(0, Arg.param('module')),
|
|
127
|
+
__param(1, Arg.param('providerName')),
|
|
128
|
+
__param(2, Arg.param('clientName', z.string().optional())),
|
|
129
|
+
__param(3, Arg.query('redirect', v.optional())),
|
|
130
|
+
__metadata("design:type", Function),
|
|
131
|
+
__metadata("design:paramtypes", [String, String, Object, String]),
|
|
132
|
+
__metadata("design:returntype", Promise)
|
|
133
|
+
], ControllerPassport.prototype, "associate", null);
|
|
134
|
+
__decorate([
|
|
135
|
+
Web.get('migrate/:module/:providerName/:clientName?'),
|
|
136
|
+
Api.body(v.object(DtoPassportJwt)),
|
|
137
|
+
__param(0, Arg.param('module')),
|
|
138
|
+
__param(1, Arg.param('providerName')),
|
|
139
|
+
__param(2, Arg.param('clientName', z.string().optional())),
|
|
140
|
+
__param(3, Arg.query('redirect', v.optional())),
|
|
141
|
+
__metadata("design:type", Function),
|
|
142
|
+
__metadata("design:paramtypes", [String, String, Object, String]),
|
|
143
|
+
__metadata("design:returntype", Promise)
|
|
144
|
+
], ControllerPassport.prototype, "migrate", null);
|
|
145
|
+
__decorate([
|
|
146
|
+
Web.post('refreshAuthToken'),
|
|
147
|
+
Passport.public(),
|
|
148
|
+
Api.body(v.object(DtoJwtToken)),
|
|
149
|
+
__param(0, Arg.body('refreshToken')),
|
|
150
|
+
__metadata("design:type", Function),
|
|
151
|
+
__metadata("design:paramtypes", [String]),
|
|
152
|
+
__metadata("design:returntype", Promise)
|
|
153
|
+
], ControllerPassport.prototype, "refreshAuthToken", null);
|
|
154
|
+
__decorate([
|
|
155
|
+
Web.post('createPassportJwtFromOauthCode'),
|
|
156
|
+
Passport.public(),
|
|
157
|
+
Api.body(v.object(DtoPassportJwt)),
|
|
158
|
+
__param(0, Arg.body('code')),
|
|
159
|
+
__metadata("design:type", Function),
|
|
160
|
+
__metadata("design:paramtypes", [String]),
|
|
161
|
+
__metadata("design:returntype", Promise)
|
|
162
|
+
], ControllerPassport.prototype, "createPassportJwtFromOauthCode", null);
|
|
163
|
+
__decorate([
|
|
164
|
+
Web.post('createTempAuthToken'),
|
|
165
|
+
Api.body(z.string()),
|
|
166
|
+
__param(0, Arg.query('path', v.optional())),
|
|
167
|
+
__metadata("design:type", Function),
|
|
168
|
+
__metadata("design:paramtypes", [String]),
|
|
169
|
+
__metadata("design:returntype", Promise)
|
|
170
|
+
], ControllerPassport.prototype, "createTempAuthToken", null);
|
|
171
|
+
ControllerPassport = __decorate([
|
|
172
|
+
Controller('passport')
|
|
173
|
+
], ControllerPassport);
|
|
174
|
+
export { ControllerPassport };
|
|
175
|
+
//# sourceMappingURL=passport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passport.js","sourceRoot":"","sources":["passport.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DtoAuth, IAuthenticateOptions, IAuthProviderRecord } from 'vona-module-a-auth';\nimport type { IJwtToken } from 'vona-module-a-jwt';\nimport type { IDecoratorControllerOptions } from 'vona-module-a-web';\nimport type { EntityRole } from '../entity/role.ts';\nimport type { EntityUser } from '../entity/user.ts';\nimport { BeanBase } from 'vona';\nimport { Core } from 'vona-module-a-core';\nimport { DtoJwtToken } from 'vona-module-a-jwt';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Passport } from 'vona-module-a-user';\nimport { Arg, Controller, Web } from 'vona-module-a-web';\nimport { z } from 'zod';\nimport { DtoLogin } from '../dto/login.ts';\nimport { DtoPassport } from '../dto/passport.ts';\nimport { DtoPassportJwt } from '../dto/passportJwt.ts';\nimport { DtoRegister } from '../dto/register.ts';\n\nexport interface IControllerOptionsPassport extends IDecoratorControllerOptions {}\n\n@Controller<IControllerOptionsPassport>('passport')\nexport class ControllerPassport extends BeanBase {\n @Web.get('current')\n @Passport.public()\n @Api.body(v.optional(), v.object(DtoPassport))\n current(): DtoPassport | undefined {\n return this._combineDtoPassport();\n }\n\n @Web.post('logout')\n async logout() {\n return await this.bean.passport.signout();\n }\n\n @Web.post('register')\n @Passport.public()\n @Core.captchaVerify({ scene: 'a-captchasimple:simple' })\n @Api.body(v.object(DtoPassportJwt))\n async register(@Arg.body() data: DtoRegister) {\n const jwt = await this.bean.authSimple.authenticate(data, 'register', 'default');\n return this._combineDtoPassportJwt(jwt);\n }\n\n @Web.post('login')\n @Passport.public()\n @Core.captchaVerify({ scene: 'a-captchasimple:simple' })\n @Api.body(v.object(DtoPassportJwt))\n async login(@Arg.body() data: DtoLogin): Promise<DtoPassportJwt> {\n const jwt = await this.bean.authSimple.authenticate(data, 'login', 'default');\n return this._combineDtoPassportJwt(jwt);\n }\n\n @Web.get('login/:module/:providerName/:clientName?')\n @Passport.public()\n async loginOauth<T extends keyof IAuthProviderRecord>(\n @Arg.param('module') module: string,\n @Arg.param('providerName') providerName: string,\n @Arg.param('clientName', z.string().optional()) clientName?: IAuthenticateOptions<IAuthProviderRecord[T]>['clientName'],\n @Arg.query('redirect', v.optional()) redirect?: string,\n ) {\n // only support oauth, so not return jwt to client\n await this.bean.auth.authenticate(`${module}:${providerName}` as T, {\n state: { intention: 'login', redirect },\n clientName,\n });\n }\n\n @Web.get('associate/:module/:providerName/:clientName?')\n @Api.body(v.object(DtoPassportJwt))\n async associate<T extends keyof IAuthProviderRecord>(\n @Arg.param('module') module: string,\n @Arg.param('providerName') providerName: string,\n @Arg.param('clientName', z.string().optional()) clientName?: IAuthenticateOptions<IAuthProviderRecord[T]>['clientName'],\n @Arg.query('redirect', v.optional()) redirect?: string,\n ): Promise<DtoPassportJwt> {\n const jwt = await this.bean.auth.authenticate(`${module}:${providerName}` as T, {\n state: { intention: 'associate', redirect },\n clientName,\n });\n return this._combineDtoPassportJwt(jwt);\n }\n\n @Web.get('migrate/:module/:providerName/:clientName?')\n @Api.body(v.object(DtoPassportJwt))\n async migrate<T extends keyof IAuthProviderRecord>(\n @Arg.param('module') module: string,\n @Arg.param('providerName') providerName: string,\n @Arg.param('clientName', z.string().optional()) clientName?: IAuthenticateOptions<IAuthProviderRecord[T]>['clientName'],\n @Arg.query('redirect', v.optional()) redirect?: string,\n ): Promise<DtoPassportJwt> {\n const jwt = await this.bean.auth.authenticate(`${module}:${providerName}` as T, {\n state: { intention: 'migrate', redirect },\n clientName,\n });\n return this._combineDtoPassportJwt(jwt);\n }\n\n @Web.post('refreshAuthToken')\n @Passport.public()\n @Api.body(v.object(DtoJwtToken))\n async refreshAuthToken(@Arg.body('refreshToken') refreshToken: string): Promise<DtoJwtToken> {\n return await this.bean.passport.refreshAuthToken(refreshToken);\n }\n\n @Web.post('createPassportJwtFromOauthCode')\n @Passport.public()\n @Api.body(v.object(DtoPassportJwt))\n async createPassportJwtFromOauthCode(@Arg.body('code') code: string): Promise<DtoPassportJwt> {\n const jwt = await this.bean.passport.createAuthTokenFromOauthCode(code);\n return this._combineDtoPassportJwt(jwt);\n }\n\n @Web.post('createTempAuthToken')\n @Api.body(z.string())\n async createTempAuthToken(@Arg.query('path', v.optional()) path?: string): Promise<string> {\n return await this.bean.passport.createTempAuthToken({ path });\n }\n\n private _combineDtoPassportJwt(jwt?: IJwtToken): DtoPassportJwt {\n if (!jwt) this.app.throw(403);\n return {\n passport: this._combineDtoPassport()!,\n jwt: jwt as DtoJwtToken,\n };\n }\n\n private _combineDtoPassport(): DtoPassport | undefined {\n const passport = this.bean.passport.current;\n if (!passport || !passport.auth) return;\n return {\n user: passport.user as EntityUser,\n auth: passport.auth as DtoAuth,\n roles: passport.roles as EntityRole[],\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { DtoCaptchaVerify } from 'vona-module-a-captcha';
|
|
3
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
4
|
+
import { Dto } from 'vona-module-a-web';
|
|
5
|
+
let DtoLogin = class DtoLogin {
|
|
6
|
+
username;
|
|
7
|
+
password;
|
|
8
|
+
captcha;
|
|
9
|
+
};
|
|
10
|
+
__decorate([
|
|
11
|
+
Api.field(v.min(3), v.trim()),
|
|
12
|
+
__metadata("design:type", String)
|
|
13
|
+
], DtoLogin.prototype, "username", void 0);
|
|
14
|
+
__decorate([
|
|
15
|
+
Api.field(v.min(6)),
|
|
16
|
+
__metadata("design:type", String)
|
|
17
|
+
], DtoLogin.prototype, "password", void 0);
|
|
18
|
+
__decorate([
|
|
19
|
+
Api.field(v.captcha({ scene: 'a-captchasimple:simple' })),
|
|
20
|
+
__metadata("design:type", DtoCaptchaVerify)
|
|
21
|
+
], DtoLogin.prototype, "captcha", void 0);
|
|
22
|
+
DtoLogin = __decorate([
|
|
23
|
+
Dto()
|
|
24
|
+
], DtoLogin);
|
|
25
|
+
export { DtoLogin };
|
|
26
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["login.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAKjC,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAEnB,QAAQ,CAAS;IAGjB,QAAQ,CAAS;IAGjB,OAAO,CAAmB;CAC3B,CAAA;AAPC;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;;0CACb;AAGjB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;0CACH;AAGjB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;8BACjD,gBAAgB;yCAAC;AARf,QAAQ;IADpB,GAAG,EAAoB;GACX,QAAQ,CASpB","sourcesContent":["import type { IDecoratorDtoOptions } from 'vona-module-a-web';\nimport { DtoCaptchaVerify } from 'vona-module-a-captcha';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Dto } from 'vona-module-a-web';\n\nexport interface IDtoOptionsLogin extends IDecoratorDtoOptions {}\n\n@Dto<IDtoOptionsLogin>()\nexport class DtoLogin {\n @Api.field(v.min(3), v.trim())\n username: string;\n\n @Api.field(v.min(6))\n password: string;\n\n @Api.field(v.captcha({ scene: 'a-captchasimple:simple' }))\n captcha: DtoCaptchaVerify;\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { DtoAuth } from 'vona-module-a-auth';
|
|
3
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
4
|
+
import { Dto } from 'vona-module-a-web';
|
|
5
|
+
import { EntityRole } from 'vona-module-home-user';
|
|
6
|
+
import { EntityUser } from "../entity/user.js";
|
|
7
|
+
let DtoPassport = class DtoPassport {
|
|
8
|
+
user;
|
|
9
|
+
auth;
|
|
10
|
+
roles;
|
|
11
|
+
};
|
|
12
|
+
__decorate([
|
|
13
|
+
Api.field(),
|
|
14
|
+
__metadata("design:type", EntityUser)
|
|
15
|
+
], DtoPassport.prototype, "user", void 0);
|
|
16
|
+
__decorate([
|
|
17
|
+
Api.field(),
|
|
18
|
+
__metadata("design:type", DtoAuth)
|
|
19
|
+
], DtoPassport.prototype, "auth", void 0);
|
|
20
|
+
__decorate([
|
|
21
|
+
Api.field(v.array(EntityRole)),
|
|
22
|
+
__metadata("design:type", Array)
|
|
23
|
+
], DtoPassport.prototype, "roles", void 0);
|
|
24
|
+
DtoPassport = __decorate([
|
|
25
|
+
Dto()
|
|
26
|
+
], DtoPassport);
|
|
27
|
+
export { DtoPassport };
|
|
28
|
+
//# sourceMappingURL=passport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passport.js","sourceRoot":"","sources":["passport.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKxC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEtB,IAAI,CAAa;IAGjB,IAAI,CAAU;IAGd,KAAK,CAAe;CACrB,CAAA;AAPC;IADC,GAAG,CAAC,KAAK,EAAE;8BACN,UAAU;yCAAC;AAGjB;IADC,GAAG,CAAC,KAAK,EAAE;8BACN,OAAO;yCAAC;AAGd;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;0CACX;AART,WAAW;IADvB,GAAG,EAAuB;GACd,WAAW,CASvB","sourcesContent":["import type { IDecoratorDtoOptions } from 'vona-module-a-web';\nimport { DtoAuth } from 'vona-module-a-auth';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Dto } from 'vona-module-a-web';\nimport { EntityRole } from 'vona-module-home-user';\nimport { EntityUser } from '../entity/user.ts';\n\nexport interface IDtoOptionsPassport extends IDecoratorDtoOptions {}\n\n@Dto<IDtoOptionsPassport>()\nexport class DtoPassport {\n @Api.field()\n user: EntityUser;\n\n @Api.field()\n auth: DtoAuth;\n\n @Api.field(v.array(EntityRole))\n roles: EntityRole[];\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { DtoJwtToken } from 'vona-module-a-jwt';
|
|
3
|
+
import { Api } from 'vona-module-a-openapiutils';
|
|
4
|
+
import { Dto } from 'vona-module-a-web';
|
|
5
|
+
import { DtoPassport } from "./passport.js";
|
|
6
|
+
let DtoPassportJwt = class DtoPassportJwt {
|
|
7
|
+
passport;
|
|
8
|
+
jwt;
|
|
9
|
+
};
|
|
10
|
+
__decorate([
|
|
11
|
+
Api.field(),
|
|
12
|
+
__metadata("design:type", DtoPassport)
|
|
13
|
+
], DtoPassportJwt.prototype, "passport", void 0);
|
|
14
|
+
__decorate([
|
|
15
|
+
Api.field(),
|
|
16
|
+
__metadata("design:type", DtoJwtToken)
|
|
17
|
+
], DtoPassportJwt.prototype, "jwt", void 0);
|
|
18
|
+
DtoPassportJwt = __decorate([
|
|
19
|
+
Dto()
|
|
20
|
+
], DtoPassportJwt);
|
|
21
|
+
export { DtoPassportJwt };
|
|
22
|
+
//# sourceMappingURL=passportJwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passportJwt.js","sourceRoot":"","sources":["passportJwt.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKrC,IAAM,cAAc,GAApB,MAAM,cAAc;IAEzB,QAAQ,CAAc;IAGtB,GAAG,CAAc;CAClB,CAAA;AAJC;IADC,GAAG,CAAC,KAAK,EAAE;8BACF,WAAW;gDAAC;AAGtB;IADC,GAAG,CAAC,KAAK,EAAE;8BACP,WAAW;2CAAC;AALN,cAAc;IAD1B,GAAG,EAA0B;GACjB,cAAc,CAM1B","sourcesContent":["import type { IDecoratorDtoOptions } from 'vona-module-a-web';\nimport { DtoJwtToken } from 'vona-module-a-jwt';\nimport { Api } from 'vona-module-a-openapiutils';\nimport { Dto } from 'vona-module-a-web';\nimport { DtoPassport } from './passport.ts';\n\nexport interface IDtoOptionsPassportJwt extends IDecoratorDtoOptions {}\n\n@Dto<IDtoOptionsPassportJwt>()\nexport class DtoPassportJwt {\n @Api.field()\n passport: DtoPassport;\n\n @Api.field()\n jwt: DtoJwtToken;\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { DtoCaptchaVerify } from 'vona-module-a-captcha';
|
|
3
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
4
|
+
import { Dto } from 'vona-module-a-web';
|
|
5
|
+
let DtoRegister = class DtoRegister {
|
|
6
|
+
username;
|
|
7
|
+
email;
|
|
8
|
+
password;
|
|
9
|
+
passwordConfirm;
|
|
10
|
+
captcha;
|
|
11
|
+
};
|
|
12
|
+
__decorate([
|
|
13
|
+
Api.field(v.refine('home-user:usernameUnique'), v.min(3), v.trim()),
|
|
14
|
+
__metadata("design:type", String)
|
|
15
|
+
], DtoRegister.prototype, "username", void 0);
|
|
16
|
+
__decorate([
|
|
17
|
+
Api.field(v.refine('home-user:emailUnique'), v.email(), v.trim()),
|
|
18
|
+
__metadata("design:type", String)
|
|
19
|
+
], DtoRegister.prototype, "email", void 0);
|
|
20
|
+
__decorate([
|
|
21
|
+
Api.field(v.min(6), v.max(20)),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], DtoRegister.prototype, "password", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
Api.field(v.min(6), v.max(20)),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], DtoRegister.prototype, "passwordConfirm", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
Api.field(v.captcha({ scene: 'a-captchasimple:simple' })),
|
|
30
|
+
__metadata("design:type", DtoCaptchaVerify)
|
|
31
|
+
], DtoRegister.prototype, "captcha", void 0);
|
|
32
|
+
DtoRegister = __decorate([
|
|
33
|
+
Dto({
|
|
34
|
+
pipes: v.refine('home-user:passwordConfirm'),
|
|
35
|
+
})
|
|
36
|
+
], DtoRegister);
|
|
37
|
+
export { DtoRegister };
|
|
38
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["register.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAOjC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEtB,QAAQ,CAAS;IAGjB,KAAK,CAAS;IAGd,QAAQ,CAAS;IAGjB,eAAe,CAAS;IAGxB,OAAO,CAAmB;CAC3B,CAAA;AAbC;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;;6CACnD;AAGjB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;;0CACpD;AAGd;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;6CACd;AAGjB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;oDACP;AAGxB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;8BACjD,gBAAgB;4CAAC;AAdf,WAAW;IAHvB,GAAG,CAAsB;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC;KAC7C,CAAC;GACW,WAAW,CAevB","sourcesContent":["import type { IDecoratorDtoOptions } from 'vona-module-a-web';\nimport { DtoCaptchaVerify } from 'vona-module-a-captcha';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Dto } from 'vona-module-a-web';\n\nexport interface IDtoOptionsRegister extends IDecoratorDtoOptions {}\n\n@Dto<IDtoOptionsRegister>({\n pipes: v.refine('home-user:passwordConfirm'),\n})\nexport class DtoRegister {\n @Api.field(v.refine('home-user:usernameUnique'), v.min(3), v.trim())\n username: string;\n\n @Api.field(v.refine('home-user:emailUnique'), v.email(), v.trim())\n email: string;\n\n @Api.field(v.min(6), v.max(20))\n password: string;\n\n @Api.field(v.min(6), v.max(20))\n passwordConfirm: string;\n\n @Api.field(v.captcha({ scene: 'a-captchasimple:simple' }))\n captcha: DtoCaptchaVerify;\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
3
|
+
import { Entity, EntityBase } from 'vona-module-a-orm';
|
|
4
|
+
import { $locale } from "../.metadata/locales.js";
|
|
5
|
+
let EntityRole = class EntityRole extends EntityBase {
|
|
6
|
+
name;
|
|
7
|
+
};
|
|
8
|
+
__decorate([
|
|
9
|
+
Api.field(v.title($locale('RoleName'))),
|
|
10
|
+
__metadata("design:type", String)
|
|
11
|
+
], EntityRole.prototype, "name", void 0);
|
|
12
|
+
EntityRole = __decorate([
|
|
13
|
+
Entity('homeRole', { openapi: { title: $locale('Role') } })
|
|
14
|
+
], EntityRole);
|
|
15
|
+
export { EntityRole };
|
|
16
|
+
//# sourceMappingURL=role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["role.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAK3C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAExC,IAAI,CAAS;CACd,CAAA;AADC;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;;wCAC3B;AAFF,UAAU;IADtB,MAAM,CAAqB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;GACnE,UAAU,CAGtB","sourcesContent":["import type { IDecoratorEntityOptions } from 'vona-module-a-orm';\nimport type { IRole } from 'vona-module-a-user';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Entity, EntityBase } from 'vona-module-a-orm';\nimport { $locale } from '../.metadata/locales.ts';\n\nexport interface IEntityOptionsRole extends IDecoratorEntityOptions {}\n\n@Entity<IEntityOptionsRole>('homeRole', { openapi: { title: $locale('Role') } })\nexport class EntityRole extends EntityBase implements IRole {\n @Api.field(v.title($locale('RoleName')))\n name: string;\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
3
|
+
import { Entity, EntityBase } from 'vona-module-a-orm';
|
|
4
|
+
let EntityRoleUser = class EntityRoleUser extends EntityBase {
|
|
5
|
+
userId;
|
|
6
|
+
roleId;
|
|
7
|
+
};
|
|
8
|
+
__decorate([
|
|
9
|
+
Api.field(v.tableIdentity()),
|
|
10
|
+
__metadata("design:type", Object)
|
|
11
|
+
], EntityRoleUser.prototype, "userId", void 0);
|
|
12
|
+
__decorate([
|
|
13
|
+
Api.field(v.tableIdentity()),
|
|
14
|
+
__metadata("design:type", Object)
|
|
15
|
+
], EntityRoleUser.prototype, "roleId", void 0);
|
|
16
|
+
EntityRoleUser = __decorate([
|
|
17
|
+
Entity('homeRoleUser')
|
|
18
|
+
], EntityRoleUser);
|
|
19
|
+
export { EntityRoleUser };
|
|
20
|
+
//# sourceMappingURL=roleUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roleUser.js","sourceRoot":"","sources":["roleUser.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKhD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAE5C,MAAM,CAAgB;IAGtB,MAAM,CAAgB;CACvB,CAAA;AAJC;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;;8CACP;AAGtB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;;8CACP;AALX,cAAc;IAD1B,MAAM,CAAyB,cAAc,CAAC;GAClC,cAAc,CAM1B","sourcesContent":["import type { TableIdentity } from 'table-identity';\nimport type { IDecoratorEntityOptions } from 'vona-module-a-orm';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Entity, EntityBase } from 'vona-module-a-orm';\n\nexport interface IEntityOptionsRoleUser extends IDecoratorEntityOptions {}\n\n@Entity<IEntityOptionsRoleUser>('homeRoleUser')\nexport class EntityRoleUser extends EntityBase {\n @Api.field(v.tableIdentity())\n userId: TableIdentity;\n\n @Api.field(v.tableIdentity())\n roleId: TableIdentity;\n}\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
3
|
+
import { Entity, EntityBase } from 'vona-module-a-orm';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { $locale } from "../.metadata/locales.js";
|
|
6
|
+
let EntityUser = class EntityUser extends EntityBase {
|
|
7
|
+
name;
|
|
8
|
+
avatar;
|
|
9
|
+
email;
|
|
10
|
+
mobile;
|
|
11
|
+
activated;
|
|
12
|
+
locale;
|
|
13
|
+
tz;
|
|
14
|
+
};
|
|
15
|
+
__decorate([
|
|
16
|
+
Api.field(v.title($locale('UserName'))),
|
|
17
|
+
__metadata("design:type", String)
|
|
18
|
+
], EntityUser.prototype, "name", void 0);
|
|
19
|
+
__decorate([
|
|
20
|
+
Api.field(v.title($locale('UserAvatar')), v.optional()),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], EntityUser.prototype, "avatar", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
Api.field(v.title($locale('UserEmail')), v.optional()),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], EntityUser.prototype, "email", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
Api.field(v.title($locale('UserMobile')), v.optional()),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], EntityUser.prototype, "mobile", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
Api.field(v.title($locale('UserActivated')), v.default(false)),
|
|
33
|
+
__metadata("design:type", Boolean)
|
|
34
|
+
], EntityUser.prototype, "activated", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Api.field(v.title($locale('UserLocale')), z.string().optional()),
|
|
37
|
+
__metadata("design:type", Object)
|
|
38
|
+
], EntityUser.prototype, "locale", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
Api.field(v.title($locale('UserTz')), v.optional()),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], EntityUser.prototype, "tz", void 0);
|
|
43
|
+
EntityUser = __decorate([
|
|
44
|
+
Entity('homeUser', { openapi: { title: $locale('User') } })
|
|
45
|
+
], EntityUser);
|
|
46
|
+
export { EntityUser };
|
|
47
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["user.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAK3C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAExC,IAAI,CAAS;IAGb,MAAM,CAAU;IAGhB,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,SAAS,CAAW;IAGpB,MAAM,CAAmC;IAGzC,EAAE,CAAU;CACb,CAAA;AAnBC;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;;wCAC3B;AAGb;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;;0CACxC;AAGhB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;;yCACxC;AAGf;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;;0CACxC;AAGhB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;6CAC3C;AAGpB;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;;0CACxB;AAGzC;IADC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;;sCACxC;AApBD,UAAU;IADtB,MAAM,CAAqB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;GACnE,UAAU,CAqBtB","sourcesContent":["import type { ILocaleRecord } from 'vona';\nimport type { IDecoratorEntityOptions } from 'vona-module-a-orm';\nimport type { IUser } from 'vona-module-a-user';\nimport { Api, v } from 'vona-module-a-openapiutils';\nimport { Entity, EntityBase } from 'vona-module-a-orm';\nimport { z } from 'zod';\nimport { $locale } from '../.metadata/locales.ts';\n\nexport interface IEntityOptionsUser extends IDecoratorEntityOptions {}\n\n@Entity<IEntityOptionsUser>('homeUser', { openapi: { title: $locale('User') } })\nexport class EntityUser extends EntityBase implements IUser {\n @Api.field(v.title($locale('UserName')))\n name: string;\n\n @Api.field(v.title($locale('UserAvatar')), v.optional())\n avatar?: string;\n\n @Api.field(v.title($locale('UserEmail')), v.optional())\n email?: string;\n\n @Api.field(v.title($locale('UserMobile')), v.optional())\n mobile?: string;\n\n @Api.field(v.title($locale('UserActivated')), v.default(false))\n activated?: boolean;\n\n @Api.field(v.title($locale('UserLocale')), z.string().optional())\n locale?: keyof ILocaleRecord | undefined;\n\n @Api.field(v.title($locale('UserTz')), v.optional())\n tz?: string;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './.metadata/index.ts';\nexport * from './.metadata/locales.ts';\nexport * from './types/index.ts';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BeanModelBase, Model } from 'vona-module-a-orm';
|
|
3
|
+
import { EntityRole } from "../entity/role.js";
|
|
4
|
+
let ModelRole = class ModelRole extends BeanModelBase {
|
|
5
|
+
};
|
|
6
|
+
ModelRole = __decorate([
|
|
7
|
+
Model({ entity: EntityRole })
|
|
8
|
+
], ModelRole);
|
|
9
|
+
export { ModelRole };
|
|
10
|
+
//# sourceMappingURL=role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["role.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKxC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,aAAyB;CAAG,CAAA;AAA9C,SAAS;IADrB,KAAK,CAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;GACpC,SAAS,CAAqC","sourcesContent":["import type { IDecoratorModelOptions } from 'vona-module-a-orm';\nimport { BeanModelBase, Model } from 'vona-module-a-orm';\nimport { EntityRole } from '../entity/role.ts';\n\nexport interface IModelOptionsRole extends IDecoratorModelOptions<EntityRole> {}\n\n@Model<IModelOptionsRole>({ entity: EntityRole })\nexport class ModelRole extends BeanModelBase<EntityRole> {}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BeanModelBase, Model } from 'vona-module-a-orm';
|
|
3
|
+
import { EntityRoleUser } from "../entity/roleUser.js";
|
|
4
|
+
let ModelRoleUser = class ModelRoleUser extends BeanModelBase {
|
|
5
|
+
};
|
|
6
|
+
ModelRoleUser = __decorate([
|
|
7
|
+
Model({ entity: EntityRoleUser })
|
|
8
|
+
], ModelRoleUser);
|
|
9
|
+
export { ModelRoleUser };
|
|
10
|
+
//# sourceMappingURL=roleUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roleUser.js","sourceRoot":"","sources":["roleUser.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKhD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,aAA6B;CAAG,CAAA;AAAtD,aAAa;IADzB,KAAK,CAAwB,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;GAC5C,aAAa,CAAyC","sourcesContent":["import type { IDecoratorModelOptions } from 'vona-module-a-orm';\nimport { BeanModelBase, Model } from 'vona-module-a-orm';\nimport { EntityRoleUser } from '../entity/roleUser.ts';\n\nexport interface IModelOptionsRoleUser extends IDecoratorModelOptions<EntityRoleUser> {}\n\n@Model<IModelOptionsRoleUser>({ entity: EntityRoleUser })\nexport class ModelRoleUser extends BeanModelBase<EntityRoleUser> {}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { $relation, BeanModelBase, Model } from 'vona-module-a-orm';
|
|
3
|
+
import { EntityUser } from "../entity/user.js";
|
|
4
|
+
import { ModelRole } from "./role.js";
|
|
5
|
+
import { ModelRoleUser } from "./roleUser.js";
|
|
6
|
+
let ModelUser = class ModelUser extends BeanModelBase {
|
|
7
|
+
getByEmailEqI(email) {
|
|
8
|
+
return this.get({ email: { _eqI_: email } });
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
ModelUser = __decorate([
|
|
12
|
+
Model({
|
|
13
|
+
entity: EntityUser,
|
|
14
|
+
relations: {
|
|
15
|
+
roles: $relation.belongsToMany(() => ModelRoleUser, () => ModelRole, 'userId', 'roleId'),
|
|
16
|
+
},
|
|
17
|
+
})
|
|
18
|
+
], ModelUser);
|
|
19
|
+
export { ModelUser };
|
|
20
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["user.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUvC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,aAAyB;IACtD,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AAJY,SAAS;IANrB,KAAK,CAAoB;QACxB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE;YACT,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACzF;KACF,CAAC;GACW,SAAS,CAIrB","sourcesContent":["import type { IDecoratorModelOptions } from 'vona-module-a-orm';\nimport { $relation, BeanModelBase, Model } from 'vona-module-a-orm';\nimport { EntityUser } from '../entity/user.ts';\nimport { ModelRole } from './role.ts';\nimport { ModelRoleUser } from './roleUser.ts';\n\nexport interface IModelOptionsUser extends IDecoratorModelOptions<EntityUser> {}\n\n@Model<IModelOptionsUser>({\n entity: EntityUser,\n relations: {\n roles: $relation.belongsToMany(() => ModelRoleUser, () => ModelRole, 'userId', 'roleId'),\n },\n})\nexport class ModelUser extends BeanModelBase<EntityUser> {\n getByEmailEqI(email: string) {\n return this.get({ email: { _eqI_: email } });\n }\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BeanBase } from 'vona';
|
|
3
|
+
import { Service } from 'vona-module-a-bean';
|
|
4
|
+
let ServicePassportAdapter = class ServicePassportAdapter extends BeanBase {
|
|
5
|
+
async isAdmin(passport) {
|
|
6
|
+
if (!passport)
|
|
7
|
+
return false;
|
|
8
|
+
if (passport.roles?.some(role => role.name === 'admin'))
|
|
9
|
+
return true;
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
async setCurrent(passport) {
|
|
13
|
+
return passport;
|
|
14
|
+
}
|
|
15
|
+
async serialize(passport) {
|
|
16
|
+
const userId = passport.user.id;
|
|
17
|
+
const authId = passport.auth.id;
|
|
18
|
+
return { userId, authId };
|
|
19
|
+
}
|
|
20
|
+
async deserialize(payloadData) {
|
|
21
|
+
const user = await this.bean.user.findOneById(payloadData.userId);
|
|
22
|
+
if (!user)
|
|
23
|
+
return;
|
|
24
|
+
const auth = await this.bean.auth.findOne({ id: payloadData.authId });
|
|
25
|
+
if (!auth)
|
|
26
|
+
return;
|
|
27
|
+
const roles = await this.bean.role.findAllByUserId(payloadData.userId);
|
|
28
|
+
return { user, auth, roles };
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
ServicePassportAdapter = __decorate([
|
|
32
|
+
Service()
|
|
33
|
+
], ServicePassportAdapter);
|
|
34
|
+
export { ServicePassportAdapter };
|
|
35
|
+
//# sourceMappingURL=passportAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passportAdapter.js","sourceRoot":"","sources":["passportAdapter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGtC,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,QAAQ;IAClD,KAAK,CAAC,OAAO,CAAC,QAA+B;QAC3C,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAA+B;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAmB;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAK,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmC;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AAzBY,sBAAsB;IADlC,OAAO,EAAE;GACG,sBAAsB,CAyBlC","sourcesContent":["import type { IPassport, IPassportAdapter } from 'vona-module-a-user';\nimport type { IPayloadDataOfPassport } from '../types/jwt.ts';\nimport { BeanBase } from 'vona';\nimport { Service } from 'vona-module-a-bean';\n\n@Service()\nexport class ServicePassportAdapter extends BeanBase implements IPassportAdapter {\n async isAdmin(passport: IPassport | undefined): Promise<boolean> {\n if (!passport) return false;\n if (passport.roles?.some(role => role.name === 'admin')) return true;\n return false;\n }\n\n async setCurrent(passport: IPassport | undefined): Promise<IPassport | undefined> {\n return passport;\n }\n\n async serialize(passport: IPassport): Promise<IPayloadDataOfPassport> {\n const userId = passport.user!.id;\n const authId = passport.auth!.id;\n return { userId, authId };\n }\n\n async deserialize(payloadData: IPayloadDataOfPassport): Promise<IPassport | undefined> {\n const user = await this.bean.user.findOneById(payloadData.userId);\n if (!user) return;\n const auth = await this.bean.auth.findOne({ id: payloadData.authId });\n if (!auth) return;\n const roles = await this.bean.role.findAllByUserId(payloadData.userId);\n return { user, auth, roles };\n }\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BeanBase } from 'vona';
|
|
3
|
+
import { Service } from 'vona-module-a-bean';
|
|
4
|
+
let ServiceRoleAdapter = class ServiceRoleAdapter extends BeanBase {
|
|
5
|
+
async findOneByName(name) {
|
|
6
|
+
return await this.scope.model.role.getByNameEqI(name);
|
|
7
|
+
}
|
|
8
|
+
async findOne(role) {
|
|
9
|
+
return await this.scope.model.role.get(role);
|
|
10
|
+
}
|
|
11
|
+
async findAllByUserId(userId) {
|
|
12
|
+
const user = await this.scope.model.user.get({ id: userId }, { include: { roles: true } });
|
|
13
|
+
return user?.roles;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
ServiceRoleAdapter = __decorate([
|
|
17
|
+
Service()
|
|
18
|
+
], ServiceRoleAdapter);
|
|
19
|
+
export { ServiceRoleAdapter };
|
|
20
|
+
//# sourceMappingURL=roleAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roleAdapter.js","sourceRoot":"","sources":["roleAdapter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGtC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,QAAQ;IAC9C,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAqB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,EAAE,KAAK,CAAC;IACrB,CAAC;CACF,CAAA;AAbY,kBAAkB;IAD9B,OAAO,EAAE;GACG,kBAAkB,CAa9B","sourcesContent":["import type { TableIdentity } from 'table-identity';\nimport type { IRole, IRoleAdapter } from 'vona-module-a-user';\nimport { BeanBase } from 'vona';\nimport { Service } from 'vona-module-a-bean';\n\n@Service()\nexport class ServiceRoleAdapter extends BeanBase implements IRoleAdapter {\n async findOneByName(name: string): Promise<IRole | undefined> {\n return await this.scope.model.role.getByNameEqI(name);\n }\n\n async findOne(role: Partial<IRole>): Promise<IRole | undefined> {\n return await this.scope.model.role.get(role);\n }\n\n async findAllByUserId(userId: TableIdentity): Promise<IRole[] | undefined> {\n const user = await this.scope.model.user.get({ id: userId }, { include: { roles: true } });\n return user?.roles;\n }\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BeanBase } from 'vona';
|
|
3
|
+
import { Service } from 'vona-module-a-bean';
|
|
4
|
+
let ServiceUserAdapter = class ServiceUserAdapter extends BeanBase {
|
|
5
|
+
async create(user) {
|
|
6
|
+
return await this.scope.model.user.insert(user);
|
|
7
|
+
}
|
|
8
|
+
async userOfProfile(profile) {
|
|
9
|
+
return {
|
|
10
|
+
name: profile.username,
|
|
11
|
+
email: profile.emails?.[0].value,
|
|
12
|
+
avatar: profile.photos?.[0].value,
|
|
13
|
+
locale: profile.locale || this.ctx.locale,
|
|
14
|
+
tz: this.ctx.tz,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
async createAnonymous() {
|
|
18
|
+
return { id: -1, anonymous: true, name: 'anonymous' };
|
|
19
|
+
}
|
|
20
|
+
async findOneByName(name) {
|
|
21
|
+
return await this.scope.model.user.getByNameEqI(name);
|
|
22
|
+
}
|
|
23
|
+
async findOne(user) {
|
|
24
|
+
return await this.scope.model.user.get(user);
|
|
25
|
+
}
|
|
26
|
+
async update(user) {
|
|
27
|
+
await this.scope.model.user.update(user);
|
|
28
|
+
}
|
|
29
|
+
async remove(user) {
|
|
30
|
+
await this.scope.model.user.delete(user);
|
|
31
|
+
}
|
|
32
|
+
async setActivated(id, activated) {
|
|
33
|
+
await this.scope.model.user.update({ id, activated });
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
ServiceUserAdapter = __decorate([
|
|
37
|
+
Service()
|
|
38
|
+
], ServiceUserAdapter);
|
|
39
|
+
export { ServiceUserAdapter };
|
|
40
|
+
//# sourceMappingURL=userAdapter.js.map
|