vona-cli-set-api 1.0.12 → 1.0.24

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 (61) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/cli/templates/create/module/boilerplate/_package.json +0 -0
  4. package/cli/templates/create/module/boilerplate/src/index.ts_ +0 -0
  5. package/cli/templates/create/project/basic/boilerplate/.editorconfig +0 -0
  6. package/cli/templates/create/project/basic/boilerplate/.vscode/extensions.json +1 -1
  7. package/cli/templates/create/project/basic/boilerplate/env/.env +5 -1
  8. package/cli/templates/create/project/basic/boilerplate/eslint.config.mjs +0 -0
  9. package/cli/templates/create/project/basic/boilerplate/package.original.json +9 -4
  10. package/cli/templates/create/project/basic/boilerplate/src/backend/config/config/config.local.ts +5 -0
  11. package/cli/templates/create/project/basic/boilerplate/src/backend/config/config/config.test.ts +5 -0
  12. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/package.json +51 -0
  13. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/.metadata/index.ts +96 -0
  14. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/.metadata/this.ts +2 -0
  15. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/controller/menu.ts +17 -0
  16. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/index.ts +1 -0
  17. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/src/service/menu.ts +20 -0
  18. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/tsconfig.build.json +8 -0
  19. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/tsconfig.json +7 -0
  20. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/package.json +51 -0
  21. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/.metadata/index.ts +95 -0
  22. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/.metadata/this.ts +2 -0
  23. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/bean/meta.printTip.ts +13 -0
  24. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/config/locale/en-us.ts +4 -0
  25. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/config/locale/zh-cn.ts +4 -0
  26. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/controller/home.ts +18 -0
  27. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/src/index.ts +1 -0
  28. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/static/img/vona.png +0 -0
  29. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/tsconfig.build.json +8 -0
  30. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/tsconfig.json +7 -0
  31. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/package.json +52 -0
  32. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/.metadata/index.ts +275 -0
  33. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/.metadata/this.ts +2 -0
  34. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/bean/meta.version.ts +30 -0
  35. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/config/config.ts +13 -0
  36. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/controller/passport.ts +115 -0
  37. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/dto/auth.ts +13 -0
  38. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/dto/passport.ts +16 -0
  39. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/dto/passportJwt.ts +16 -0
  40. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/entity/user.ts +19 -0
  41. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/index.ts +3 -0
  42. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/authAdapter.ts +11 -0
  43. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/index.ts +2 -0
  44. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/lib/userAdapter.ts +28 -0
  45. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/model/user.ts +5 -0
  46. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/authInnerAdapter.ts +14 -0
  47. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/authTokenAdapter.ts +34 -0
  48. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/passportAdapter.ts +30 -0
  49. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/redisToken.ts +63 -0
  50. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/service/userInnerAdapter.ts +35 -0
  51. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/auth.ts +3 -0
  52. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/index.ts +3 -0
  53. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/passport.ts +16 -0
  54. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/src/types/user.ts +8 -0
  55. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/tsconfig.build.json +8 -0
  56. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/tsconfig.json +7 -0
  57. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/package.json +15 -0
  58. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/tsconfig.base.json +4 -0
  59. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/tsconfig.json +16 -0
  60. package/cli/templates/create/suite/modules/.gitkeep +0 -0
  61. package/package.json +13 -16
@@ -0,0 +1,63 @@
1
+ import type { IUserBase } from 'vona-module-a-user';
2
+ import type { IPayloadData } from '../types/passport.ts';
3
+ import { BeanBase } from 'vona';
4
+ import { Service } from 'vona-module-a-web';
5
+
6
+ @Service()
7
+ export class ServiceRedisToken extends BeanBase {
8
+ private get redisAuth() {
9
+ return this.bean.redis.get('auth');
10
+ }
11
+
12
+ async verify(payloadData: IPayloadData) {
13
+ const payloadData2 = await this.retrieve(payloadData);
14
+ if (!payloadData2) return false;
15
+ if (payloadData2.token !== payloadData.token) return false;
16
+ return true;
17
+ }
18
+
19
+ async retrieve(payloadData: IPayloadData): Promise<IPayloadData | undefined> {
20
+ const key = this._getAuthRedisKey(payloadData);
21
+ if (!key) return;
22
+ const token = await this.redisAuth.get(key);
23
+ if (!token) return;
24
+ return { ...payloadData, token };
25
+ }
26
+
27
+ async create(payloadData: IPayloadData) {
28
+ const key = this._getAuthRedisKey(payloadData);
29
+ if (!key || !payloadData.token) return this.app.throw(401);
30
+ await this.redisAuth.set(key, payloadData.token, 'EX', this.scope.config.redisToken.maxAge);
31
+ }
32
+
33
+ async refresh(payloadData: IPayloadData) {
34
+ const key = this._getAuthRedisKey(payloadData);
35
+ if (!key) return this.app.throw(401);
36
+ await this.redisAuth.expire(key, this.scope.config.redisToken.maxAge);
37
+ }
38
+
39
+ async remove(payloadData: IPayloadData) {
40
+ const key = this._getAuthRedisKey(payloadData);
41
+ if (!key) return;
42
+ await this.redisAuth.del(key);
43
+ }
44
+
45
+ async removeAll(user: IUserBase) {
46
+ const keyPrefix = this.redisAuth.options.keyPrefix;
47
+ const keyPattern = this._getAuthRedisKeyPattern(user, keyPrefix);
48
+ const keys = await this.redisAuth.keys(keyPattern);
49
+ for (const fullKey of keys) {
50
+ const key = keyPrefix ? fullKey.substring(keyPrefix.length) : fullKey;
51
+ await this.redisAuth.del(key);
52
+ }
53
+ }
54
+
55
+ private _getAuthRedisKey(payloadData: IPayloadData) {
56
+ if (!this.ctx.instance) return;
57
+ return `authToken:${this.ctx.instance.id}:${payloadData.userId}:${payloadData.authId}`;
58
+ }
59
+
60
+ private _getAuthRedisKeyPattern(user: IUserBase, keyPrefix: string | undefined) {
61
+ return `${keyPrefix ?? ''}authToken:${this.ctx.instance.id}:${user.id}:*`;
62
+ }
63
+ }
@@ -0,0 +1,35 @@
1
+ import type { IAuthUserProfile, IUserBase, IUserInnerAdapter } from 'vona-module-a-user';
2
+ import type { IUser } from '../types/user.ts';
3
+ import { BeanBase } from 'vona';
4
+ import { Service } from 'vona-module-a-web';
5
+
6
+ @Service()
7
+ export class ServiceUserInnerAdapter extends BeanBase implements IUserInnerAdapter {
8
+ async createByProfile(profile: IAuthUserProfile): Promise<IUserBase> {
9
+ return await this.scope.model.user.insert({
10
+ name: profile.username!,
11
+ avatar: profile.photos?.[0].value,
12
+ locale: undefined,
13
+ });
14
+ }
15
+
16
+ async createAnonymous(): Promise<IUserBase> {
17
+ return { id: -1, name: 'anonymous', avatar: undefined, locale: undefined } as IUserBase;
18
+ }
19
+
20
+ async getByName(name: string): Promise<IUserBase | undefined> {
21
+ return await this.get({ name });
22
+ }
23
+
24
+ async get(user: Partial<IUser>): Promise<IUserBase | undefined> {
25
+ return await this.scope.model.user.get(user);
26
+ }
27
+
28
+ async update(user: Partial<IUser>): Promise<void> {
29
+ await this.scope.model.user.update(user);
30
+ }
31
+
32
+ async delete(user: Partial<IUser>): Promise<void> {
33
+ await this.scope.model.user.delete(user);
34
+ }
35
+ }
@@ -0,0 +1,3 @@
1
+ import type { IAuthBase } from 'vona-module-a-user';
2
+
3
+ export interface IAuth extends IAuthBase {}
@@ -0,0 +1,3 @@
1
+ export * from './auth.ts';
2
+ export * from './passport.ts';
3
+ export * from './user.ts';
@@ -0,0 +1,16 @@
1
+ import type { TableIdentity } from 'vona-module-a-database';
2
+ import type { IPayloadDataBase } from 'vona-module-a-jwt';
3
+ import type { IPassportBase } from 'vona-module-a-user';
4
+ import type { IAuth } from './auth.ts';
5
+ import type { IUser } from './user.ts';
6
+
7
+ export interface IPassport extends IPassportBase {
8
+ user?: IUser;
9
+ auth?: IAuth;
10
+ }
11
+
12
+ export interface IPayloadData extends IPayloadDataBase {
13
+ userId: TableIdentity;
14
+ authId: TableIdentity;
15
+ token?: string;
16
+ }
@@ -0,0 +1,8 @@
1
+ import type { ILocaleInfos } from 'vona';
2
+ import type { IUserBase } from 'vona-module-a-user';
3
+
4
+ export interface IUser extends IUserBase {
5
+ name: string;
6
+ avatar?: string;
7
+ locale?: keyof ILocaleInfos | undefined;
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../tsconfig.base",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist"
6
+ },
7
+ "include": ["src", "src/.metadata/*.ts", "src/**/*.json"]
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "../../tsconfig.base",
3
+ "compilerOptions": {
4
+ "noEmit": true
5
+ },
6
+ "include": ["src", "src/.metadata/*.ts", "src/**/*.json", "test"]
7
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "vona-suite-a-home",
3
+ "type": "module",
4
+ "version": "5.0.0",
5
+ "title": "a-home",
6
+ "description": "",
7
+ "author": "zhennann",
8
+ "files": [
9
+ ],
10
+ "dependencies": {
11
+ "vona-module-home-base": "workspace:^",
12
+ "vona-module-home-index": "workspace:^",
13
+ "vona-module-home-user": "workspace:^"
14
+ }
15
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "../../../tsconfig.base.json",
3
+ "compilerOptions": {}
4
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "../../../tsconfig.base.json",
3
+ "compilerOptions": {},
4
+ "references": [
5
+ {
6
+ "path": "modules/home-base/tsconfig.build.json"
7
+ },
8
+ {
9
+ "path": "modules/home-index/tsconfig.build.json"
10
+ },
11
+ {
12
+ "path": "modules/home-user/tsconfig.build.json"
13
+ }
14
+ ],
15
+ "exclude": ["modules"]
16
+ }
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-cli-set-api",
3
3
  "type": "module",
4
- "version": "1.0.12",
4
+ "version": "1.0.24",
5
5
  "description": "vona cli-set-api",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -27,23 +27,15 @@
27
27
  "dist",
28
28
  "templates"
29
29
  ],
30
- "scripts": {
31
- "lint": "eslint .",
32
- "clean": "rimraf dist tsconfig.tsbuildinfo",
33
- "tsc:publish": "npm run clean && tsc",
34
- "prepublishOnly": "npm run tsc:publish",
35
- "prepack": "clean-package",
36
- "postpack": "clean-package restore"
37
- },
38
30
  "dependencies": {
39
31
  "@babel/plugin-proposal-decorators": "^7.25.9",
40
32
  "@babel/plugin-transform-class-properties": "^7.25.9",
41
33
  "@babel/plugin-transform-typescript": "^7.26.8",
42
- "@cabloy/cli": "^3.0.16",
43
- "@cabloy/dotenv": "^1.1.3",
44
- "@cabloy/extend": "^3.1.3",
45
- "@cabloy/module-glob": "^5.2.4",
46
- "@cabloy/module-info": "^1.3.11",
34
+ "@cabloy/cli": "^3.0.19",
35
+ "@cabloy/dotenv": "^1.1.6",
36
+ "@cabloy/extend": "^3.1.6",
37
+ "@cabloy/module-glob": "^5.2.7",
38
+ "@cabloy/module-info": "^1.3.14",
47
39
  "@cabloy/word-utils": "^2.0.1",
48
40
  "@rollup/plugin-alias": "^5.1.1",
49
41
  "@rollup/plugin-babel": "^6.0.4",
@@ -71,5 +63,10 @@
71
63
  "why-is-node-running": "^3.2.2",
72
64
  "yargs-parser": "^21.1.1"
73
65
  },
74
- "gitHead": "df34902798a7fa93b09c494ef0ff86fe07598c83"
75
- }
66
+ "gitHead": "0eab9dc4a5622caffe89e7b1b3f02c08ccbc4c4b",
67
+ "scripts": {
68
+ "lint": "eslint .",
69
+ "clean": "rimraf dist tsconfig.tsbuildinfo",
70
+ "tsc:publish": "npm run clean && tsc"
71
+ }
72
+ }