@bearei/server-common 0.0.1

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 (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/action-log/action-log.interface.d.ts +12 -0
  4. package/dist/action-log/action-log.interface.js +3 -0
  5. package/dist/action-log/action-log.interface.js.map +1 -0
  6. package/dist/action-log/action-log.module.d.ts +2 -0
  7. package/dist/action-log/action-log.module.js +23 -0
  8. package/dist/action-log/action-log.module.js.map +1 -0
  9. package/dist/action-log/action-log.service.d.ts +9 -0
  10. package/dist/action-log/action-log.service.js +35 -0
  11. package/dist/action-log/action-log.service.js.map +1 -0
  12. package/dist/action-log/index.d.ts +3 -0
  13. package/dist/action-log/index.js +20 -0
  14. package/dist/action-log/index.js.map +1 -0
  15. package/dist/app.decorator.d.ts +6 -0
  16. package/dist/app.decorator.js +11 -0
  17. package/dist/app.decorator.js.map +1 -0
  18. package/dist/app.dto.d.ts +24 -0
  19. package/dist/app.dto.js +113 -0
  20. package/dist/app.dto.js.map +1 -0
  21. package/dist/app.entity.d.ts +11 -0
  22. package/dist/app.entity.js +87 -0
  23. package/dist/app.entity.js.map +1 -0
  24. package/dist/app.interface.d.ts +33 -0
  25. package/dist/app.interface.js +39 -0
  26. package/dist/app.interface.js.map +1 -0
  27. package/dist/authentication/access/access.guard.d.ts +9 -0
  28. package/dist/authentication/access/access.guard.js +62 -0
  29. package/dist/authentication/access/access.guard.js.map +1 -0
  30. package/dist/authentication/access/access.interface.d.ts +4 -0
  31. package/dist/authentication/access/access.interface.js +9 -0
  32. package/dist/authentication/access/access.interface.js.map +1 -0
  33. package/dist/authentication/access/index.d.ts +2 -0
  34. package/dist/authentication/access/index.js +19 -0
  35. package/dist/authentication/access/index.js.map +1 -0
  36. package/dist/authentication/auth/auth.interface.d.ts +3 -0
  37. package/dist/authentication/auth/auth.interface.js +3 -0
  38. package/dist/authentication/auth/auth.interface.js.map +1 -0
  39. package/dist/authentication/auth/auth.module.d.ts +2 -0
  40. package/dist/authentication/auth/auth.module.js +23 -0
  41. package/dist/authentication/auth/auth.module.js.map +1 -0
  42. package/dist/authentication/auth/auth.service.d.ts +8 -0
  43. package/dist/authentication/auth/auth.service.js +31 -0
  44. package/dist/authentication/auth/auth.service.js.map +1 -0
  45. package/dist/authentication/auth/index.d.ts +3 -0
  46. package/dist/authentication/auth/index.js +20 -0
  47. package/dist/authentication/auth/index.js.map +1 -0
  48. package/dist/authentication/index.d.ts +3 -0
  49. package/dist/authentication/index.js +20 -0
  50. package/dist/authentication/index.js.map +1 -0
  51. package/dist/authentication/permission/index.d.ts +2 -0
  52. package/dist/authentication/permission/index.js +19 -0
  53. package/dist/authentication/permission/index.js.map +1 -0
  54. package/dist/authentication/permission/permission.guard.d.ts +9 -0
  55. package/dist/authentication/permission/permission.guard.js +46 -0
  56. package/dist/authentication/permission/permission.guard.js.map +1 -0
  57. package/dist/authentication/permission/permission.interface.d.ts +35 -0
  58. package/dist/authentication/permission/permission.interface.js +40 -0
  59. package/dist/authentication/permission/permission.interface.js.map +1 -0
  60. package/dist/base/base.interface.d.ts +42 -0
  61. package/dist/base/base.interface.js +3 -0
  62. package/dist/base/base.interface.js.map +1 -0
  63. package/dist/base/base.module.d.ts +2 -0
  64. package/dist/base/base.module.js +23 -0
  65. package/dist/base/base.module.js.map +1 -0
  66. package/dist/base/base.service.d.ts +29 -0
  67. package/dist/base/base.service.js +212 -0
  68. package/dist/base/base.service.js.map +1 -0
  69. package/dist/base/index.d.ts +2 -0
  70. package/dist/base/index.js +19 -0
  71. package/dist/base/index.js.map +1 -0
  72. package/dist/external/external.interface.d.ts +41 -0
  73. package/dist/external/external.interface.js +3 -0
  74. package/dist/external/external.interface.js.map +1 -0
  75. package/dist/external/external.module.d.ts +2 -0
  76. package/dist/external/external.module.js +24 -0
  77. package/dist/external/external.module.js.map +1 -0
  78. package/dist/external/external.service.d.ts +12 -0
  79. package/dist/external/external.service.js +77 -0
  80. package/dist/external/external.service.js.map +1 -0
  81. package/dist/external/index.d.ts +3 -0
  82. package/dist/external/index.js +20 -0
  83. package/dist/external/index.js.map +1 -0
  84. package/dist/index.d.ts +8 -0
  85. package/dist/index.js +25 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/redis/index.d.ts +3 -0
  88. package/dist/redis/index.js +20 -0
  89. package/dist/redis/index.js.map +1 -0
  90. package/dist/redis/redis.interface.d.ts +4 -0
  91. package/dist/redis/redis.interface.js +3 -0
  92. package/dist/redis/redis.interface.js.map +1 -0
  93. package/dist/redis/redis.module.d.ts +2 -0
  94. package/dist/redis/redis.module.js +23 -0
  95. package/dist/redis/redis.module.js.map +1 -0
  96. package/dist/redis/redis.service.d.ts +10 -0
  97. package/dist/redis/redis.service.js +44 -0
  98. package/dist/redis/redis.service.js.map +1 -0
  99. package/dist/tsconfig.build.tsbuildinfo +1 -0
  100. package/dist/util/error.util.d.ts +3 -0
  101. package/dist/util/error.util.js +45 -0
  102. package/dist/util/error.util.js.map +1 -0
  103. package/dist/util/format.util.d.ts +3 -0
  104. package/dist/util/format.util.js +11 -0
  105. package/dist/util/format.util.js.map +1 -0
  106. package/dist/util/index.d.ts +3 -0
  107. package/dist/util/index.js +20 -0
  108. package/dist/util/index.js.map +1 -0
  109. package/dist/util/util.interface.d.ts +16 -0
  110. package/dist/util/util.interface.js +3 -0
  111. package/dist/util/util.interface.js.map +1 -0
  112. package/package.json +106 -0
@@ -0,0 +1,3 @@
1
+ import { APIError } from '../app.interface';
2
+ import { ThrowErrorOptions } from './util.interface';
3
+ export declare const throwError: (options: ThrowErrorOptions) => (apiError: APIError) => never;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.throwError = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const app_interface_1 = require("../app.interface");
6
+ const throwError = (options) => (apiError) => {
7
+ const errorFunctionMap = {
8
+ [app_interface_1.APIError.UNAUTHORIZED]: ({ message = 'Unauthorized', code = 401000 }) => new common_1.default.UnauthorizedException({
9
+ code,
10
+ error: 'Unauthorized',
11
+ message,
12
+ statusCode: common_1.default.HttpStatus.UNAUTHORIZED
13
+ }),
14
+ [app_interface_1.APIError.FORBIDDEN]: ({ message = 'Forbidden', code = 403000 }) => new common_1.default.ForbiddenException({
15
+ code,
16
+ error: 'Forbidden',
17
+ message,
18
+ statusCode: common_1.default.HttpStatus.FORBIDDEN
19
+ }),
20
+ [app_interface_1.APIError.NOT_FOUND]: ({ message = 'Not Found', code = 404000 }) => new common_1.default.NotFoundException({
21
+ code,
22
+ error: 'Not Found',
23
+ message,
24
+ statusCode: common_1.default.HttpStatus.NOT_FOUND
25
+ }),
26
+ [app_interface_1.APIError.UNPROCESSABLE_ENTITY]: ({ message = 'Unprocessable Entity', code = 422000 }) => new common_1.default.UnprocessableEntityException({
27
+ code,
28
+ error: 'Unprocessable Entity',
29
+ message,
30
+ statusCode: common_1.default.HttpStatus.UNPROCESSABLE_ENTITY
31
+ }),
32
+ [app_interface_1.APIError.INTERNAL_SERVER_ERROR]: ({ message = 'Internal Server Error', code = 500000 }) => new common_1.default.InternalServerErrorException({
33
+ code,
34
+ error: 'Internal Server Error',
35
+ message,
36
+ statusCode: common_1.default.HttpStatus.INTERNAL_SERVER_ERROR
37
+ }),
38
+ [app_interface_1.APIError.HTTP_EXCEPTION]: ({ response, status }) => new common_1.default.HttpException({ ...response }, status, {
39
+ cause: Object.assign(new Error(), response)
40
+ })
41
+ };
42
+ throw errorFunctionMap[apiError](options);
43
+ };
44
+ exports.throwError = throwError;
45
+ //# sourceMappingURL=error.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.util.js","sourceRoot":"","sources":["../../src/util/error.util.ts"],"names":[],"mappings":";;;AAAA,2CAAmC;AACnC,oDAAyC;AAGlC,MAAM,UAAU,GAAG,CAAC,OAA0B,EAAE,EAAE,CAAC,CAAC,QAAkB,EAAE,EAAE;IAC7E,MAAM,gBAAgB,GAAG;QACrB,CAAC,wBAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAC,OAAO,GAAG,cAAc,EAAE,IAAI,GAAG,MAAM,EAAoB,EAAE,EAAE,CACtF,IAAI,gBAAM,CAAC,qBAAqB,CAAC;YAC7B,IAAI;YACJ,KAAK,EAAE,cAAc;YACrB,OAAO;YACP,UAAU,EAAE,gBAAM,CAAC,UAAU,CAAC,YAAY;SAC7C,CAAC;QACN,CAAC,wBAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAC,OAAO,GAAG,WAAW,EAAE,IAAI,GAAG,MAAM,EAAoB,EAAE,EAAE,CAChF,IAAI,gBAAM,CAAC,kBAAkB,CAAC;YAC1B,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,OAAO;YACP,UAAU,EAAE,gBAAM,CAAC,UAAU,CAAC,SAAS;SAC1C,CAAC;QACN,CAAC,wBAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAC,OAAO,GAAG,WAAW,EAAE,IAAI,GAAG,MAAM,EAAoB,EAAE,EAAE,CAChF,IAAI,gBAAM,CAAC,iBAAiB,CAAC;YACzB,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,OAAO;YACP,UAAU,EAAE,gBAAM,CAAC,UAAU,CAAC,SAAS;SAC1C,CAAC;QACN,CAAC,wBAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAC,OAAO,GAAG,sBAAsB,EAAE,IAAI,GAAG,MAAM,EAAoB,EAAE,EAAE,CACtG,IAAI,gBAAM,CAAC,4BAA4B,CAAC;YACpC,IAAI;YACJ,KAAK,EAAE,sBAAsB;YAC7B,OAAO;YACP,UAAU,EAAE,gBAAM,CAAC,UAAU,CAAC,oBAAoB;SACrD,CAAC;QACN,CAAC,wBAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAC,OAAO,GAAG,uBAAuB,EAAE,IAAI,GAAG,MAAM,EAAoB,EAAE,EAAE,CACxG,IAAI,gBAAM,CAAC,4BAA4B,CAAC;YACpC,IAAI;YACJ,KAAK,EAAE,uBAAuB;YAC9B,OAAO;YACP,UAAU,EAAE,gBAAM,CAAC,UAAU,CAAC,qBAAqB;SACtD,CAAC;QACN,CAAC,wBAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAoB,EAAE,EAAE,CACjE,IAAI,gBAAM,CAAC,aAAa,CAAC,EAAC,GAAG,QAAQ,EAAC,EAAE,MAAM,EAAE;YAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,QAAQ,CAAC;SAC9C,CAAC;KACT,CAAA;IAED,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC,CAAA;AA5CY,QAAA,UAAU,cA4CtB"}
@@ -0,0 +1,3 @@
1
+ import { APIHeaders } from '../app.interface';
2
+ export declare const formatMobile: (mobile: string) => (regionCode?: string) => string;
3
+ export declare const formatToken: (headers: APIHeaders) => string | undefined;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatToken = exports.formatMobile = void 0;
4
+ const formatMobile = (mobile) => (regionCode = '') => `+${regionCode} ${mobile}`;
5
+ exports.formatMobile = formatMobile;
6
+ const formatToken = (headers) => {
7
+ const [type, token] = headers['authorization']?.split(' ') ?? [];
8
+ return type === 'Bearer' ? token : undefined;
9
+ };
10
+ exports.formatToken = formatToken;
11
+ //# sourceMappingURL=format.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.util.js","sourceRoot":"","sources":["../../src/util/format.util.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GACrB,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAChB,IAAI,UAAU,IAAI,MAAM,EAAE,CAAA;AAHrB,QAAA,YAAY,gBAGS;AAE3B,MAAM,WAAW,GAAG,CAAC,OAAmB,EAAsB,EAAE;IACnE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAEhE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB"}
@@ -0,0 +1,3 @@
1
+ export * from './error.util';
2
+ export * from './format.util';
3
+ export * from './util.interface';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./error.util"), exports);
18
+ __exportStar(require("./format.util"), exports);
19
+ __exportStar(require("./util.interface"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,gDAA6B;AAC7B,mDAAgC"}
@@ -0,0 +1,16 @@
1
+ import { ManipulateType } from 'dayjs';
2
+ export interface ThrowErrorOptions {
3
+ code?: number | string;
4
+ message?: string;
5
+ response?: Record<string, unknown>;
6
+ status?: number;
7
+ }
8
+ export interface HashPasswordOptions {
9
+ interval: number;
10
+ saltRound?: number;
11
+ unit: ManipulateType;
12
+ }
13
+ export interface HashedPassword {
14
+ expiredAt: Date;
15
+ hashedPassword: string;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=util.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.interface.js","sourceRoot":"","sources":["../../src/util/util.interface.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,106 @@
1
+ {
2
+ "name": "@bearei/server-common",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "author": "bearei <bear_ei@outlook.com>",
9
+ "description": "Common components of the bearei project's NestJS service",
10
+ "license": "MIT",
11
+ "scripts": {
12
+ "build": "yarn clean && nest build",
13
+ "clean": "shx rm -rf dist",
14
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
15
+ "start": "nest start",
16
+ "start:dev": "nest start --watch",
17
+ "start:debug": "nest start --debug --watch",
18
+ "start:prod": "node dist/main",
19
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
20
+ "test": "jest",
21
+ "test:watch": "jest --watch",
22
+ "test:cov": "jest --coverage",
23
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
24
+ "test:e2e": "jest --config ./test/jest-e2e.json",
25
+ "publish": "yarn lint && yarn build && yarn npm publish --access public"
26
+ },
27
+ "dependencies": {
28
+ "@fastify/helmet": "^11.1.1",
29
+ "@nestjs/axios": "^3.0.3",
30
+ "@nestjs/common": "^10.0.0",
31
+ "@nestjs/config": "^3.2.3",
32
+ "@nestjs/core": "^10.0.0",
33
+ "@nestjs/platform-express": "^10.0.0",
34
+ "@nestjs/platform-fastify": "^10.4.1",
35
+ "@nestjs/typeorm": "^10.0.2",
36
+ "axios": "^1.7.4",
37
+ "class-transformer": "^0.5.1",
38
+ "class-validator": "^0.14.1",
39
+ "dayjs": "^1.11.12",
40
+ "ioredis": "^5.4.1",
41
+ "nanoid": "^5.0.7",
42
+ "reflect-metadata": "^0.2.0",
43
+ "rxjs": "^7.8.1",
44
+ "typeorm": "^0.3.20"
45
+ },
46
+ "devDependencies": {
47
+ "@eslint/js": "^9.9.0",
48
+ "@nestjs/cli": "^10.0.0",
49
+ "@nestjs/schematics": "^10.0.0",
50
+ "@nestjs/testing": "^10.0.0",
51
+ "@types/express": "^4.17.17",
52
+ "@types/jest": "^29.5.2",
53
+ "@types/node": "^20.3.1",
54
+ "@types/supertest": "^6.0.0",
55
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
56
+ "@typescript-eslint/parser": "^7.0.0",
57
+ "eslint": "^9.9.0",
58
+ "eslint-config-prettier": "^9.0.0",
59
+ "eslint-plugin-prettier": "^5.0.0",
60
+ "globals": "^15.9.0",
61
+ "jest": "^29.5.0",
62
+ "prettier": "^3.0.0",
63
+ "shx": "^0.3.4",
64
+ "source-map-support": "^0.5.21",
65
+ "supertest": "^7.0.0",
66
+ "ts-jest": "^29.1.0",
67
+ "ts-loader": "^9.4.3",
68
+ "ts-node": "^10.9.1",
69
+ "tsconfig-paths": "^4.2.0",
70
+ "typescript": "^5.1.3",
71
+ "typescript-eslint": "^8.1.0"
72
+ },
73
+ "jest": {
74
+ "moduleFileExtensions": [
75
+ "js",
76
+ "json",
77
+ "ts"
78
+ ],
79
+ "rootDir": "src",
80
+ "testRegex": ".*\\.spec\\.ts$",
81
+ "transform": {
82
+ "^.+\\.(t|j)s$": "ts-jest"
83
+ },
84
+ "collectCoverageFrom": [
85
+ "**/*.(t|j)s"
86
+ ],
87
+ "coverageDirectory": "../coverage",
88
+ "testEnvironment": "node"
89
+ },
90
+ "packageManager": "yarn@4.4.0",
91
+ "files": [
92
+ "dist",
93
+ "!dist/app.controller.d.ts",
94
+ "!dist/app.controller.js.map",
95
+ "!dist/app.controller.js",
96
+ "!dist/app.module.d.ts",
97
+ "!dist/app.module.js.map",
98
+ "!dist/app.module.js",
99
+ "!dist/app.service.d.ts",
100
+ "!dist/app.service.js.map",
101
+ "!dist/app.service.js",
102
+ "!dist/main.d.ts",
103
+ "!dist/main.js.map",
104
+ "!dist/main.js"
105
+ ]
106
+ }