@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.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/action-log/action-log.interface.d.ts +12 -0
- package/dist/action-log/action-log.interface.js +3 -0
- package/dist/action-log/action-log.interface.js.map +1 -0
- package/dist/action-log/action-log.module.d.ts +2 -0
- package/dist/action-log/action-log.module.js +23 -0
- package/dist/action-log/action-log.module.js.map +1 -0
- package/dist/action-log/action-log.service.d.ts +9 -0
- package/dist/action-log/action-log.service.js +35 -0
- package/dist/action-log/action-log.service.js.map +1 -0
- package/dist/action-log/index.d.ts +3 -0
- package/dist/action-log/index.js +20 -0
- package/dist/action-log/index.js.map +1 -0
- package/dist/app.decorator.d.ts +6 -0
- package/dist/app.decorator.js +11 -0
- package/dist/app.decorator.js.map +1 -0
- package/dist/app.dto.d.ts +24 -0
- package/dist/app.dto.js +113 -0
- package/dist/app.dto.js.map +1 -0
- package/dist/app.entity.d.ts +11 -0
- package/dist/app.entity.js +87 -0
- package/dist/app.entity.js.map +1 -0
- package/dist/app.interface.d.ts +33 -0
- package/dist/app.interface.js +39 -0
- package/dist/app.interface.js.map +1 -0
- package/dist/authentication/access/access.guard.d.ts +9 -0
- package/dist/authentication/access/access.guard.js +62 -0
- package/dist/authentication/access/access.guard.js.map +1 -0
- package/dist/authentication/access/access.interface.d.ts +4 -0
- package/dist/authentication/access/access.interface.js +9 -0
- package/dist/authentication/access/access.interface.js.map +1 -0
- package/dist/authentication/access/index.d.ts +2 -0
- package/dist/authentication/access/index.js +19 -0
- package/dist/authentication/access/index.js.map +1 -0
- package/dist/authentication/auth/auth.interface.d.ts +3 -0
- package/dist/authentication/auth/auth.interface.js +3 -0
- package/dist/authentication/auth/auth.interface.js.map +1 -0
- package/dist/authentication/auth/auth.module.d.ts +2 -0
- package/dist/authentication/auth/auth.module.js +23 -0
- package/dist/authentication/auth/auth.module.js.map +1 -0
- package/dist/authentication/auth/auth.service.d.ts +8 -0
- package/dist/authentication/auth/auth.service.js +31 -0
- package/dist/authentication/auth/auth.service.js.map +1 -0
- package/dist/authentication/auth/index.d.ts +3 -0
- package/dist/authentication/auth/index.js +20 -0
- package/dist/authentication/auth/index.js.map +1 -0
- package/dist/authentication/index.d.ts +3 -0
- package/dist/authentication/index.js +20 -0
- package/dist/authentication/index.js.map +1 -0
- package/dist/authentication/permission/index.d.ts +2 -0
- package/dist/authentication/permission/index.js +19 -0
- package/dist/authentication/permission/index.js.map +1 -0
- package/dist/authentication/permission/permission.guard.d.ts +9 -0
- package/dist/authentication/permission/permission.guard.js +46 -0
- package/dist/authentication/permission/permission.guard.js.map +1 -0
- package/dist/authentication/permission/permission.interface.d.ts +35 -0
- package/dist/authentication/permission/permission.interface.js +40 -0
- package/dist/authentication/permission/permission.interface.js.map +1 -0
- package/dist/base/base.interface.d.ts +42 -0
- package/dist/base/base.interface.js +3 -0
- package/dist/base/base.interface.js.map +1 -0
- package/dist/base/base.module.d.ts +2 -0
- package/dist/base/base.module.js +23 -0
- package/dist/base/base.module.js.map +1 -0
- package/dist/base/base.service.d.ts +29 -0
- package/dist/base/base.service.js +212 -0
- package/dist/base/base.service.js.map +1 -0
- package/dist/base/index.d.ts +2 -0
- package/dist/base/index.js +19 -0
- package/dist/base/index.js.map +1 -0
- package/dist/external/external.interface.d.ts +41 -0
- package/dist/external/external.interface.js +3 -0
- package/dist/external/external.interface.js.map +1 -0
- package/dist/external/external.module.d.ts +2 -0
- package/dist/external/external.module.js +24 -0
- package/dist/external/external.module.js.map +1 -0
- package/dist/external/external.service.d.ts +12 -0
- package/dist/external/external.service.js +77 -0
- package/dist/external/external.service.js.map +1 -0
- package/dist/external/index.d.ts +3 -0
- package/dist/external/index.js +20 -0
- package/dist/external/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/redis/index.d.ts +3 -0
- package/dist/redis/index.js +20 -0
- package/dist/redis/index.js.map +1 -0
- package/dist/redis/redis.interface.d.ts +4 -0
- package/dist/redis/redis.interface.js +3 -0
- package/dist/redis/redis.interface.js.map +1 -0
- package/dist/redis/redis.module.d.ts +2 -0
- package/dist/redis/redis.module.js +23 -0
- package/dist/redis/redis.module.js.map +1 -0
- package/dist/redis/redis.service.d.ts +10 -0
- package/dist/redis/redis.service.js +44 -0
- package/dist/redis/redis.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/util/error.util.d.ts +3 -0
- package/dist/util/error.util.js +45 -0
- package/dist/util/error.util.js.map +1 -0
- package/dist/util/format.util.d.ts +3 -0
- package/dist/util/format.util.js +11 -0
- package/dist/util/format.util.js.map +1 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.js +20 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/util.interface.d.ts +16 -0
- package/dist/util/util.interface.js +3 -0
- package/dist/util/util.interface.js.map +1 -0
- package/package.json +106 -0
|
@@ -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,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,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 @@
|
|
|
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
|
+
}
|