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.
Files changed (100) hide show
  1. package/cli/templates/create/project/basic/boilerplate/.vscode/vona.code-snippets +12 -0
  2. package/cli/templates/create/project/basic/boilerplate/_.gitignore +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/package.json +1 -1
  5. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/service/menu.ts +1 -1
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/package.json +1 -1
  99. package/dist/index.js +1 -1
  100. 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,4 @@
1
+ export * from "./.metadata/index.js";
2
+ export * from "./.metadata/locales.js";
3
+ export * from "./types/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -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