@hichchi/nest-core 0.0.2 → 0.0.3
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/CHANGELOG.md +30 -15
- package/README.md +933 -487
- package/bootstrap/app-bootstrapper.js +24 -21
- package/bootstrap/app-bootstrapper.js.map +1 -1
- package/bootstrap/index.js +4 -1
- package/bootstrap/index.js.map +1 -1
- package/cache/cache.module.js +23 -20
- package/cache/cache.module.js.map +1 -1
- package/cache/index.js +5 -2
- package/cache/index.js.map +1 -1
- package/cache/services/cache.service.js +11 -8
- package/cache/services/cache.service.js.map +1 -1
- package/cache/services/index.js +4 -1
- package/cache/services/index.js.map +1 -1
- package/constants.js +4 -1
- package/constants.js.map +1 -1
- package/converters/error-message.converter.js +15 -11
- package/converters/error-message.converter.js.map +1 -1
- package/converters/index.js +5 -2
- package/converters/index.js.map +1 -1
- package/converters/json.converter.js +6 -2
- package/converters/json.converter.js.map +1 -1
- package/decorators/dto.decorator.js +6 -3
- package/decorators/dto.decorator.js.map +1 -1
- package/decorators/index.js +5 -2
- package/decorators/index.js.map +1 -1
- package/decorators/use-transform-interceptor.decorator.js +8 -5
- package/decorators/use-transform-interceptor.decorator.js.map +1 -1
- package/exceptions/implementation.exception.js +5 -1
- package/exceptions/implementation.exception.js.map +1 -1
- package/exceptions/index.js +5 -2
- package/exceptions/index.js.map +1 -1
- package/exceptions/redis-config.exception.js +6 -2
- package/exceptions/redis-config.exception.js.map +1 -1
- package/filters/http-exception.filter.js +12 -9
- package/filters/http-exception.filter.js.map +1 -1
- package/filters/index.js +4 -1
- package/filters/index.js.map +1 -1
- package/generators/index.js +4 -1
- package/generators/index.js.map +1 -1
- package/generators/paginated-response.js +5 -1
- package/generators/paginated-response.js.map +1 -1
- package/index.js +23 -18
- package/index.js.map +1 -1
- package/interceptors/index.js +4 -1
- package/interceptors/index.js.map +1 -1
- package/interceptors/transform.interceptor.js +14 -11
- package/interceptors/transform.interceptor.js.map +1 -1
- package/interfaces/index.js +7 -4
- package/interfaces/index.js.map +1 -1
- package/interfaces/multer-file.js +2 -1
- package/interfaces/multer-file.js.map +1 -1
- package/interfaces/redis-options.interface.js +2 -1
- package/interfaces/request-with-subdomain.js +3 -1
- package/interfaces/request-with-subdomain.js.map +1 -1
- package/interfaces/view-dto.interface.js +2 -1
- package/logger/enums/log-level.enum.js +5 -2
- package/logger/enums/log-level.enum.js.map +1 -1
- package/logger/index.js +8 -5
- package/logger/index.js.map +1 -1
- package/logger/interfaces/index.js +4 -1
- package/logger/interfaces/index.js.map +1 -1
- package/logger/interfaces/logger.interfaces.js +2 -1
- package/logger/services/index.js +4 -1
- package/logger/services/index.js.map +1 -1
- package/logger/services/logger.service.js +42 -39
- package/logger/services/logger.service.js.map +1 -1
- package/logger/transports/index.js +4 -1
- package/logger/transports/index.js.map +1 -1
- package/logger/transports/json-array-file-transport.js +19 -14
- package/logger/transports/json-array-file-transport.js.map +1 -1
- package/logger/types/index.js +4 -1
- package/logger/types/index.js.map +1 -1
- package/logger/types/logger.types.js +2 -1
- package/logger/utils/index.js +4 -1
- package/logger/utils/index.js.map +1 -1
- package/logger/utils/logger.utils.js +46 -37
- package/logger/utils/logger.utils.js.map +1 -1
- package/metadata/index.js +4 -1
- package/metadata/index.js.map +1 -1
- package/metadata/metadata-storage.js +11 -6
- package/metadata/metadata-storage.js.map +1 -1
- package/middlewares/index.js +6 -3
- package/middlewares/index.js.map +1 -1
- package/middlewares/json-body-parser.middleware.js +10 -7
- package/middlewares/json-body-parser.middleware.js.map +1 -1
- package/middlewares/row-body-parser.middleware.js +10 -7
- package/middlewares/row-body-parser.middleware.js.map +1 -1
- package/middlewares/subdomain.middleware.js +10 -7
- package/middlewares/subdomain.middleware.js.map +1 -1
- package/package.json +7 -6
- package/readme-top.md +7 -7
- package/services/axios-http.service.js +24 -21
- package/services/axios-http.service.js.map +1 -1
- package/services/index.js +4 -1
- package/services/index.js.map +1 -1
- package/tokens.js +5 -2
- package/tokens.js.map +1 -1
- package/transformers/boolean.transformer.js +6 -2
- package/transformers/boolean.transformer.js.map +1 -1
- package/transformers/date.transformer.js +4 -1
- package/transformers/date.transformer.js.map +1 -1
- package/transformers/file-form-field.transformer.js +4 -1
- package/transformers/file-form-field.transformer.js.map +1 -1
- package/transformers/file-or-text-form-field.transformer.js +4 -1
- package/transformers/file-or-text-form-field.transformer.js.map +1 -1
- package/transformers/index.js +8 -5
- package/transformers/index.js.map +1 -1
- package/transformers/multi-value-form-field.transformer.js +4 -1
- package/transformers/multi-value-form-field.transformer.js.map +1 -1
- package/utils/exception.utils.js +31 -28
- package/utils/exception.utils.js.map +1 -1
- package/utils/get-global.js +4 -1
- package/utils/get-global.js.map +1 -1
- package/utils/index.js +7 -4
- package/utils/index.js.map +1 -1
- package/utils/utils.js +6 -2
- package/utils/utils.js.map +1 -1
- package/utils/validation.utils.js +29 -23
- package/utils/validation.utils.js.map +1 -1
- package/validators/index.js +5 -2
- package/validators/index.js.map +1 -1
- package/validators/random-hex.validator.js +14 -8
- package/validators/random-hex.validator.js.map +1 -1
- package/validators/verify-token.validator.js +11 -7
- package/validators/verify-token.validator.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.utils.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/utils/validation.utils.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"validation.utils.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/utils/validation.utils.ts"],"names":[],"mappings":"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"}
|
package/validators/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./random-hex.validator"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./verify-token.validator"), exports);
|
|
3
6
|
//# sourceMappingURL=index.js.map
|
package/validators/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/validators/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/validators/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;AACvC,mEAAyC"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.IS_RANDOM_HEX_TOKEN = void 0;
|
|
5
|
+
exports.isRandomHexToken = isRandomHexToken;
|
|
6
|
+
exports.IsRandomHexToken = IsRandomHexToken;
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
const class_validator_1 = require("class-validator");
|
|
9
|
+
const isHexadecimal_1 = tslib_1.__importDefault(require("validator/lib/isHexadecimal"));
|
|
4
10
|
/**
|
|
5
11
|
* Token name for the random hexadecimal validator
|
|
6
12
|
*
|
|
7
13
|
* This constant is used as the validator name when registering the decorator
|
|
8
14
|
* with class-validator. It serves as an identifier for the validation rule.
|
|
9
15
|
*/
|
|
10
|
-
|
|
16
|
+
exports.IS_RANDOM_HEX_TOKEN = "IsRandomHexToken";
|
|
11
17
|
/**
|
|
12
18
|
* Validates if a value is a hexadecimal string of a specific length in bytes
|
|
13
19
|
*
|
|
@@ -30,10 +36,10 @@ export const IS_RANDOM_HEX_TOKEN = "IsRandomHexToken";
|
|
|
30
36
|
* // Returns false
|
|
31
37
|
* ```
|
|
32
38
|
*/
|
|
33
|
-
|
|
39
|
+
function isRandomHexToken(value, lengthInBytes) {
|
|
34
40
|
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
35
41
|
const expectedLength = lengthInBytes * 2; // hex chars count
|
|
36
|
-
return typeof value === "string" && value.length === expectedLength &&
|
|
42
|
+
return typeof value === "string" && value.length === expectedLength && (0, isHexadecimal_1.default)(value);
|
|
37
43
|
}
|
|
38
44
|
/**
|
|
39
45
|
* Decorator that validates if a property is a hexadecimal string of a specific length
|
|
@@ -65,10 +71,10 @@ export function isRandomHexToken(value, lengthInBytes) {
|
|
|
65
71
|
*
|
|
66
72
|
* @see {@link isRandomHexToken} The underlying validation function
|
|
67
73
|
*/
|
|
68
|
-
|
|
74
|
+
function IsRandomHexToken(lengthInBytes, validationOptions) {
|
|
69
75
|
return ((object, propertyName) => {
|
|
70
|
-
registerDecorator({
|
|
71
|
-
name: IS_RANDOM_HEX_TOKEN,
|
|
76
|
+
(0, class_validator_1.registerDecorator)({
|
|
77
|
+
name: exports.IS_RANDOM_HEX_TOKEN,
|
|
72
78
|
target: object.constructor,
|
|
73
79
|
propertyName,
|
|
74
80
|
constraints: [lengthInBytes],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random-hex.validator.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/validators/random-hex.validator.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"random-hex.validator.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/validators/random-hex.validator.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAmCrC,4CAIC;AAgCD,4CAqBC;;AA1FD,qDAA4F;AAC5F,wFAAiE;AAEjE;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,gBAAgB,CAAC,KAAc,EAAE,aAAqB;IAClE,+DAA+D;IAC/D,MAAM,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,kBAAkB;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,IAAI,IAAA,uBAAsB,EAAC,KAAK,CAAC,CAAC;AACzG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,gBAAgB,CAAC,aAAqB,EAAE,iBAAqC;IACzF,OAAO,CAAC,CAAC,MAAc,EAAE,YAAoB,EAAQ,EAAE;QACnD,IAAA,mCAAiB,EAAC;YACd,IAAI,EAAE,2BAAmB;YACzB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,WAAW,EAAE,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,CAAC,KAAc,EAAE,IAAyB;oBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAC;oBAC7C,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBACD,cAAc,CAAC,IAAyB;oBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAC;oBAC7C,+DAA+D;oBAC/D,OAAO,GAAG,IAAI,CAAC,QAAQ,cAAc,MAAM,GAAG,CAAC,+BAA+B,CAAC;gBACnF,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAsB,CAAC;AAC5B,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.IS_VERIFY_TOKEN = void 0;
|
|
5
|
+
exports.IsVerifyToken = IsVerifyToken;
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const random_hex_validator_1 = require("./random-hex.validator");
|
|
4
8
|
/**
|
|
5
9
|
* Token name for the verification token validator
|
|
6
10
|
*
|
|
7
11
|
* This constant is used as the validator name when registering the decorator
|
|
8
12
|
* with class-validator. It serves as an identifier for the validation rule.
|
|
9
13
|
*/
|
|
10
|
-
|
|
14
|
+
exports.IS_VERIFY_TOKEN = "isVerifyToken";
|
|
11
15
|
/**
|
|
12
16
|
* Decorator that validates if a property is a 32-character verification token
|
|
13
17
|
*
|
|
@@ -45,18 +49,18 @@ export const IS_VERIFY_TOKEN = "isVerifyToken";
|
|
|
45
49
|
*
|
|
46
50
|
* @see {@link isRandomHexToken} The underlying validation function
|
|
47
51
|
*/
|
|
48
|
-
|
|
52
|
+
function IsVerifyToken(validationOptions) {
|
|
49
53
|
const FIXED_LENGTH = 16;
|
|
50
54
|
return ((object, propertyName) => {
|
|
51
|
-
registerDecorator({
|
|
52
|
-
name: IS_VERIFY_TOKEN,
|
|
55
|
+
(0, class_validator_1.registerDecorator)({
|
|
56
|
+
name: exports.IS_VERIFY_TOKEN,
|
|
53
57
|
target: object.constructor,
|
|
54
58
|
propertyName,
|
|
55
59
|
constraints: [FIXED_LENGTH],
|
|
56
60
|
options: validationOptions,
|
|
57
61
|
validator: {
|
|
58
62
|
validate(value) {
|
|
59
|
-
return isRandomHexToken(value, FIXED_LENGTH);
|
|
63
|
+
return (0, random_hex_validator_1.isRandomHexToken)(value, FIXED_LENGTH);
|
|
60
64
|
},
|
|
61
65
|
defaultMessage(args) {
|
|
62
66
|
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-token.validator.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/validators/verify-token.validator.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"verify-token.validator.js","sourceRoot":"","sources":["../../../../libs/nest-core/src/validators/verify-token.validator.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAkDrC,sCAqBC;AArED,qDAA4F;AAC5F,iEAA0D;AAE1D;;;;;GAKG;AACU,QAAA,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAgB,aAAa,CAAC,iBAAqC;IAC/D,MAAM,YAAY,GAAG,EAAE,CAAC;IAExB,OAAO,CAAC,CAAC,MAAc,EAAE,YAAoB,EAAQ,EAAE;QACnD,IAAA,mCAAiB,EAAC;YACd,IAAI,EAAE,uBAAe;YACrB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,WAAW,EAAE,CAAC,YAAY,CAAC;YAC3B,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,CAAC,KAAc;oBACnB,OAAO,IAAA,uCAAgB,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACjD,CAAC;gBACD,cAAc,CAAC,IAAyB;oBACpC,+DAA+D;oBAC/D,OAAO,GAAG,IAAI,CAAC,QAAQ,cAAc,YAAY,GAAG,CAAC,+BAA+B,CAAC;gBACzF,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAsB,CAAC;AAC5B,CAAC"}
|