@codylabs/nestjs-common 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/decorators/index.d.ts +8 -0
- package/dist/decorators/index.js +25 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/is-boolean-field.decorator.d.ts +2 -0
- package/dist/decorators/is-boolean-field.decorator.js +25 -0
- package/dist/decorators/is-boolean-field.decorator.js.map +1 -0
- package/dist/decorators/is-date-field.decorator.d.ts +2 -0
- package/dist/decorators/is-date-field.decorator.js +37 -0
- package/dist/decorators/is-date-field.decorator.js.map +1 -0
- package/dist/decorators/is-enum-field.decorator.d.ts +2 -0
- package/dist/decorators/is-enum-field.decorator.js +23 -0
- package/dist/decorators/is-enum-field.decorator.js.map +1 -0
- package/dist/decorators/is-nested-field.decorator.d.ts +2 -0
- package/dist/decorators/is-nested-field.decorator.js +25 -0
- package/dist/decorators/is-nested-field.decorator.js.map +1 -0
- package/dist/decorators/is-number-field.decorator.d.ts +2 -0
- package/dist/decorators/is-number-field.decorator.js +51 -0
- package/dist/decorators/is-number-field.decorator.js.map +1 -0
- package/dist/decorators/is-string-field.decorator.d.ts +2 -0
- package/dist/decorators/is-string-field.decorator.js +74 -0
- package/dist/decorators/is-string-field.decorator.js.map +1 -0
- package/dist/decorators/min-max-length.decorator.d.ts +2 -0
- package/dist/decorators/min-max-length.decorator.js +26 -0
- package/dist/decorators/min-max-length.decorator.js.map +1 -0
- package/dist/decorators/transform.decorator.d.ts +4 -0
- package/dist/decorators/transform.decorator.js +25 -0
- package/dist/decorators/transform.decorator.js.map +1 -0
- package/dist/filters/http-exception.filter.d.ts +4 -0
- package/dist/filters/http-exception.filter.js +30 -0
- package/dist/filters/http-exception.filter.js.map +1 -0
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.js +19 -0
- package/dist/filters/index.js.map +1 -0
- package/dist/filters/unprocessable-entity-exception.filter.d.ts +5 -0
- package/dist/filters/unprocessable-entity-exception.filter.js +43 -0
- package/dist/filters/unprocessable-entity-exception.filter.js.map +1 -0
- package/dist/guards/and.guard.d.ts +3 -0
- package/dist/guards/and.guard.js +43 -0
- package/dist/guards/and.guard.js.map +1 -0
- package/dist/guards/index.d.ts +3 -0
- package/dist/guards/index.js +20 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/guards/or.guard.d.ts +3 -0
- package/dist/guards/or.guard.js +42 -0
- package/dist/guards/or.guard.js.map +1 -0
- package/dist/guards/sequential.guard.d.ts +3 -0
- package/dist/guards/sequential.guard.js +42 -0
- package/dist/guards/sequential.guard.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/interceptors/index.d.ts +1 -0
- package/dist/interceptors/index.js +18 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/update-selective-validation.interceptor.d.ts +7 -0
- package/dist/interceptors/update-selective-validation.interceptor.js +52 -0
- package/dist/interceptors/update-selective-validation.interceptor.js.map +1 -0
- package/dist/interfaces/guard.interface.d.ts +10 -0
- package/dist/interfaces/guard.interface.js +3 -0
- package/dist/interfaces/guard.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +2 -0
- package/dist/interfaces/index.js +19 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/validator.interface.d.ts +38 -0
- package/dist/interfaces/validator.interface.js +3 -0
- package/dist/interfaces/validator.interface.js.map +1 -0
- package/dist/pipes/abstract-validation.pipe.d.ts +11 -0
- package/dist/pipes/abstract-validation.pipe.js +42 -0
- package/dist/pipes/abstract-validation.pipe.js.map +1 -0
- package/dist/pipes/index.d.ts +3 -0
- package/dist/pipes/index.js +20 -0
- package/dist/pipes/index.js.map +1 -0
- package/dist/pipes/required.pipe.d.ts +4 -0
- package/dist/pipes/required.pipe.js +30 -0
- package/dist/pipes/required.pipe.js.map +1 -0
- package/dist/pipes/snowflake-id-param-validation.pipe.d.ts +8 -0
- package/dist/pipes/snowflake-id-param-validation.pipe.js +45 -0
- package/dist/pipes/snowflake-id-param-validation.pipe.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utils/decorator.util.d.ts +1 -0
- package/dist/utils/decorator.util.js +36 -0
- package/dist/utils/decorator.util.js.map +1 -0
- package/dist/utils/guard.util.d.ts +6 -0
- package/dist/utils/guard.util.js +35 -0
- package/dist/utils/guard.util.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/validators/index.d.ts +5 -0
- package/dist/validators/index.js +22 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/is-after.validator.d.ts +2 -0
- package/dist/validators/is-after.validator.js +43 -0
- package/dist/validators/is-after.validator.js.map +1 -0
- package/dist/validators/is-date-format.validator.d.ts +3 -0
- package/dist/validators/is-date-format.validator.js +54 -0
- package/dist/validators/is-date-format.validator.js.map +1 -0
- package/dist/validators/is-equal-to.validator.d.ts +2 -0
- package/dist/validators/is-equal-to.validator.js +36 -0
- package/dist/validators/is-equal-to.validator.js.map +1 -0
- package/dist/validators/is-greater-than.validator.d.ts +2 -0
- package/dist/validators/is-greater-than.validator.js +36 -0
- package/dist/validators/is-greater-than.validator.js.map +1 -0
- package/dist/validators/is-lower-than.validator.d.ts +2 -0
- package/dist/validators/is-lower-than.validator.js +36 -0
- package/dist/validators/is-lower-than.validator.js.map +1 -0
- package/package.json +36 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
export * from './is-boolean-field.decorator';
|
2
|
+
export * from './is-date-field.decorator';
|
3
|
+
export * from './is-enum-field.decorator';
|
4
|
+
export * from './is-nested-field.decorator';
|
5
|
+
export * from './is-number-field.decorator';
|
6
|
+
export * from './is-string-field.decorator';
|
7
|
+
export * from './min-max-length.decorator';
|
8
|
+
export * from './transform.decorator';
|
@@ -0,0 +1,25 @@
|
|
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("./is-boolean-field.decorator"), exports);
|
18
|
+
__exportStar(require("./is-date-field.decorator"), exports);
|
19
|
+
__exportStar(require("./is-enum-field.decorator"), exports);
|
20
|
+
__exportStar(require("./is-nested-field.decorator"), exports);
|
21
|
+
__exportStar(require("./is-number-field.decorator"), exports);
|
22
|
+
__exportStar(require("./is-string-field.decorator"), exports);
|
23
|
+
__exportStar(require("./min-max-length.decorator"), exports);
|
24
|
+
__exportStar(require("./transform.decorator"), exports);
|
25
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,8DAA4C;AAC5C,8DAA4C;AAC5C,8DAA4C;AAC5C,6DAA2C;AAC3C,wDAAsC"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { BooleanFieldOptions } from '../interfaces';
|
2
|
+
export declare const IsBooleanField: (booleanFieldOptions?: BooleanFieldOptions) => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IsBooleanField = void 0;
|
4
|
+
const class_validator_1 = require("class-validator");
|
5
|
+
const utils_1 = require("../utils");
|
6
|
+
const transform_decorator_1 = require("./transform.decorator");
|
7
|
+
const IsBooleanField = (booleanFieldOptions) => {
|
8
|
+
const options = {
|
9
|
+
each: false,
|
10
|
+
required: true,
|
11
|
+
arrayMinSize: 0,
|
12
|
+
arrayMaxSize: Number.MAX_SAFE_INTEGER,
|
13
|
+
...booleanFieldOptions,
|
14
|
+
};
|
15
|
+
const decoratorsToApply = [
|
16
|
+
(0, class_validator_1.IsBoolean)({
|
17
|
+
each: options.each,
|
18
|
+
message: 'The value must be a boolean',
|
19
|
+
}),
|
20
|
+
(0, transform_decorator_1.ToBoolean)(),
|
21
|
+
];
|
22
|
+
return (0, utils_1.applyCommonDecorators)(options, decoratorsToApply);
|
23
|
+
};
|
24
|
+
exports.IsBooleanField = IsBooleanField;
|
25
|
+
//# sourceMappingURL=is-boolean-field.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-boolean-field.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-boolean-field.decorator.ts"],"names":[],"mappings":";;;AAAA,qDAA4C;AAG5C,oCAAiD;AACjD,+DAAkD;AAE3C,MAAM,cAAc,GAAG,CAAC,mBAAyC,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAwB;QACnC,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,MAAM,CAAC,gBAAgB;QACrC,GAAG,mBAAmB;KACvB,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,IAAA,2BAAS,EAAC;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,6BAA6B;SACvC,CAAC;QACF,IAAA,+BAAS,GAAE;KACZ,CAAC;IAEF,OAAO,IAAA,6BAAqB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAlBW,QAAA,cAAc,kBAkBzB"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IsDateField = void 0;
|
4
|
+
const class_validator_1 = require("class-validator");
|
5
|
+
const utils_1 = require("../utils");
|
6
|
+
const IsDateField = (dateFieldOptions) => {
|
7
|
+
const options = {
|
8
|
+
each: false,
|
9
|
+
required: true,
|
10
|
+
arrayMinSize: 0,
|
11
|
+
arrayMaxSize: Number.MAX_SAFE_INTEGER,
|
12
|
+
lessThan: false,
|
13
|
+
greaterThan: false,
|
14
|
+
...dateFieldOptions,
|
15
|
+
};
|
16
|
+
const decoratorsToApply = [
|
17
|
+
(0, class_validator_1.IsDateString)({
|
18
|
+
strict: true,
|
19
|
+
}, {
|
20
|
+
each: options.each,
|
21
|
+
message: 'The value must be a valid date string',
|
22
|
+
}),
|
23
|
+
];
|
24
|
+
if (options.greaterThan) {
|
25
|
+
decoratorsToApply.push((0, class_validator_1.MinDate)(options.date, {
|
26
|
+
message: `The date must be after ${options.date}`,
|
27
|
+
}));
|
28
|
+
}
|
29
|
+
if (options.lessThan) {
|
30
|
+
decoratorsToApply.push((0, class_validator_1.MaxDate)(options.date, {
|
31
|
+
message: `The date must be before ${options.date}`,
|
32
|
+
}));
|
33
|
+
}
|
34
|
+
return (0, utils_1.applyCommonDecorators)(options, decoratorsToApply);
|
35
|
+
};
|
36
|
+
exports.IsDateField = IsDateField;
|
37
|
+
//# sourceMappingURL=is-date-field.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-date-field.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-date-field.decorator.ts"],"names":[],"mappings":";;;AAAA,qDAAiE;AAGjE,oCAAiD;AAE1C,MAAM,WAAW,GAAG,CAAC,gBAAmC,EAAE,EAAE;IACjE,MAAM,OAAO,GAAqB;QAChC,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,MAAM,CAAC,gBAAgB;QACrC,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,GAAG,gBAAgB;KACpB,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,IAAA,8BAAY,EACV;YACE,MAAM,EAAE,IAAI;SACb,EACD;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,uCAAuC;SACjD,CACF;KACF,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,iBAAiB,CAAC,IAAI,CACpB,IAAA,yBAAO,EAAC,OAAO,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,0BAA0B,OAAO,CAAC,IAAI,EAAE;SAClD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,iBAAiB,CAAC,IAAI,CACpB,IAAA,yBAAO,EAAC,OAAO,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,2BAA2B,OAAO,CAAC,IAAI,EAAE;SACnD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,6BAAqB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAxCW,QAAA,WAAW,eAwCtB"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { EnumFieldOptions } from '../interfaces';
|
2
|
+
export declare const IsEnumField: (entity: Record<string, string>, enumFieldOptions?: EnumFieldOptions) => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IsEnumField = void 0;
|
4
|
+
const class_validator_1 = require("class-validator");
|
5
|
+
const utils_1 = require("../utils");
|
6
|
+
const IsEnumField = (entity, enumFieldOptions) => {
|
7
|
+
const options = {
|
8
|
+
each: false,
|
9
|
+
required: true,
|
10
|
+
arrayMinSize: 0,
|
11
|
+
arrayMaxSize: Number.MAX_SAFE_INTEGER,
|
12
|
+
...enumFieldOptions,
|
13
|
+
};
|
14
|
+
const decoratorsToApply = [
|
15
|
+
(0, class_validator_1.IsEnum)(entity, {
|
16
|
+
each: options.each,
|
17
|
+
message: 'The value must be a valid enum value',
|
18
|
+
}),
|
19
|
+
];
|
20
|
+
return (0, utils_1.applyCommonDecorators)(options, decoratorsToApply);
|
21
|
+
};
|
22
|
+
exports.IsEnumField = IsEnumField;
|
23
|
+
//# sourceMappingURL=is-enum-field.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-enum-field.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-enum-field.decorator.ts"],"names":[],"mappings":";;;AAAA,qDAAyC;AAGzC,oCAAiD;AAE1C,MAAM,WAAW,GAAG,CAAC,MAA8B,EAAE,gBAAmC,EAAE,EAAE;IACjG,MAAM,OAAO,GAAqB;QAChC,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,MAAM,CAAC,gBAAgB;QACrC,GAAG,gBAAgB;KACpB,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,IAAA,wBAAM,EAAC,MAAM,EAAE;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,sCAAsC;SAChD,CAAC;KACH,CAAC;IAEF,OAAO,IAAA,6BAAqB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAjBW,QAAA,WAAW,eAiBtB"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { NestedFieldOptions } from '../interfaces';
|
2
|
+
export declare const IsNestedField: (entity: any, nestedFieldOptions?: NestedFieldOptions) => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IsNestedField = void 0;
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
5
|
+
const class_validator_1 = require("class-validator");
|
6
|
+
const utils_1 = require("../utils");
|
7
|
+
const IsNestedField = (entity, nestedFieldOptions) => {
|
8
|
+
const options = {
|
9
|
+
required: true,
|
10
|
+
each: false,
|
11
|
+
arrayMinSize: 0,
|
12
|
+
arrayMaxSize: Number.MAX_SAFE_INTEGER,
|
13
|
+
...nestedFieldOptions,
|
14
|
+
};
|
15
|
+
const decoratorsToApply = [
|
16
|
+
(0, class_validator_1.ValidateNested)({
|
17
|
+
each: options.each,
|
18
|
+
message: 'The value must be a valid nested object',
|
19
|
+
}),
|
20
|
+
(0, class_transformer_1.Type)(() => entity),
|
21
|
+
];
|
22
|
+
return (0, utils_1.applyCommonDecorators)(options, decoratorsToApply);
|
23
|
+
};
|
24
|
+
exports.IsNestedField = IsNestedField;
|
25
|
+
//# sourceMappingURL=is-nested-field.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-nested-field.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-nested-field.decorator.ts"],"names":[],"mappings":";;;AAAA,yDAAyC;AACzC,qDAAiD;AAGjD,oCAAiD;AAE1C,MAAM,aAAa,GAAG,CAAC,MAAW,EAAE,kBAAuC,EAAE,EAAE;IACpF,MAAM,OAAO,GAAuB;QAClC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,MAAM,CAAC,gBAAgB;QACrC,GAAG,kBAAkB;KACtB,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,IAAA,gCAAc,EAAC;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,yCAAyC;SACnD,CAAC;QACF,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;KACnB,CAAC;IAEF,OAAO,IAAA,6BAAqB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IsNumberField = void 0;
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
5
|
+
const class_validator_1 = require("class-validator");
|
6
|
+
const utils_1 = require("../utils");
|
7
|
+
const IsNumberField = (numberFieldOptions) => {
|
8
|
+
const options = {
|
9
|
+
min: 1,
|
10
|
+
required: true,
|
11
|
+
each: false,
|
12
|
+
max: Number.MAX_SAFE_INTEGER,
|
13
|
+
arrayMinSize: 0,
|
14
|
+
arrayMaxSize: Number.MAX_SAFE_INTEGER,
|
15
|
+
int: true,
|
16
|
+
positive: true,
|
17
|
+
...numberFieldOptions,
|
18
|
+
};
|
19
|
+
const decoratorsToApply = [
|
20
|
+
(0, class_transformer_1.Type)(() => Number),
|
21
|
+
(0, class_validator_1.Min)(options.min, {
|
22
|
+
each: options.each,
|
23
|
+
message: `The value must be at least ${options.min}`,
|
24
|
+
}),
|
25
|
+
(0, class_validator_1.Max)(options.max, {
|
26
|
+
each: options.each,
|
27
|
+
message: `The value must be no more than ${options.max}`,
|
28
|
+
}),
|
29
|
+
];
|
30
|
+
if (options.int) {
|
31
|
+
decoratorsToApply.push((0, class_validator_1.IsInt)({
|
32
|
+
each: options.each,
|
33
|
+
message: 'The value must be an integer',
|
34
|
+
}));
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
decoratorsToApply.push((0, class_validator_1.IsNumber)({}, {
|
38
|
+
each: options.each,
|
39
|
+
message: 'The value must be a number',
|
40
|
+
}));
|
41
|
+
}
|
42
|
+
if (options.positive) {
|
43
|
+
decoratorsToApply.push((0, class_validator_1.IsPositive)({
|
44
|
+
each: options.each,
|
45
|
+
message: 'The value must be positive',
|
46
|
+
}));
|
47
|
+
}
|
48
|
+
return (0, utils_1.applyCommonDecorators)(options, decoratorsToApply);
|
49
|
+
};
|
50
|
+
exports.IsNumberField = IsNumberField;
|
51
|
+
//# sourceMappingURL=is-number-field.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-number-field.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-number-field.decorator.ts"],"names":[],"mappings":";;;AAAA,yDAAyC;AACzC,qDAAwE;AAGxE,oCAAiD;AAE1C,MAAM,aAAa,GAAG,CAAC,kBAAuC,EAAE,EAAE;IACvE,MAAM,OAAO,GAAuB;QAClC,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,MAAM,CAAC,gBAAgB;QAC5B,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,MAAM,CAAC,gBAAgB;QACrC,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,IAAI;QACd,GAAG,kBAAkB;KACtB,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QAClB,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,8BAA8B,OAAO,CAAC,GAAG,EAAE;SACrD,CAAC;QACF,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,kCAAkC,OAAO,CAAC,GAAG,EAAE;SACzD,CAAC;KACH,CAAC;IAEF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,iBAAiB,CAAC,IAAI,CACpB,IAAA,uBAAK,EAAC;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,8BAA8B;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,IAAI,CACpB,IAAA,0BAAQ,EACN,EAAE,EACF;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,4BAA4B;SACtC,CACF,CACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,iBAAiB,CAAC,IAAI,CACpB,IAAA,4BAAU,EAAC;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,4BAA4B;SACtC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,6BAAqB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAtDW,QAAA,aAAa,iBAsDxB"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IsStringField = void 0;
|
4
|
+
const helper_fns_1 = require("@codylabs/helper-fns");
|
5
|
+
const class_validator_1 = require("class-validator");
|
6
|
+
const class_transformer_1 = require("class-transformer");
|
7
|
+
const utils_1 = require("../utils");
|
8
|
+
const min_max_length_decorator_1 = require("./min-max-length.decorator");
|
9
|
+
const transform_decorator_1 = require("./transform.decorator");
|
10
|
+
const IsStringField = (stringFieldOptions) => {
|
11
|
+
const options = {
|
12
|
+
required: true,
|
13
|
+
numberString: false,
|
14
|
+
base64: false,
|
15
|
+
url: false,
|
16
|
+
email: false,
|
17
|
+
each: false,
|
18
|
+
trim: false,
|
19
|
+
minLength: 1,
|
20
|
+
maxLength: Number.MAX_SAFE_INTEGER,
|
21
|
+
arrayMinSize: 0,
|
22
|
+
arrayMaxSize: Number.MAX_SAFE_INTEGER,
|
23
|
+
...stringFieldOptions,
|
24
|
+
};
|
25
|
+
const decoratorsToApply = [];
|
26
|
+
if (options.numberString) {
|
27
|
+
decoratorsToApply.push((0, class_validator_1.IsNumberString)({}, {
|
28
|
+
each: options.each,
|
29
|
+
message: 'The value must be a number string',
|
30
|
+
}));
|
31
|
+
}
|
32
|
+
else if (options.base64) {
|
33
|
+
decoratorsToApply.push((0, class_validator_1.IsBase64)({}, {
|
34
|
+
each: options.each,
|
35
|
+
message: 'The value must be a base64 string',
|
36
|
+
}));
|
37
|
+
}
|
38
|
+
else if (options.url) {
|
39
|
+
decoratorsToApply.push((0, class_validator_1.IsUrl)({}, {
|
40
|
+
each: options.each,
|
41
|
+
message: 'The value must be a URL',
|
42
|
+
}));
|
43
|
+
}
|
44
|
+
else if (options.email) {
|
45
|
+
decoratorsToApply.push((0, class_transformer_1.Transform)(({ value }) => value.toLowerCase(), { toClassOnly: true }), (0, class_transformer_1.Transform)(({ value }) => (typeof value === 'string' ? (0, helper_fns_1.normalizeEmail)(value) : value), {
|
46
|
+
toClassOnly: true,
|
47
|
+
}), (0, class_validator_1.IsEmail)({}, {
|
48
|
+
each: options.each,
|
49
|
+
message: 'The value must be a valid email address',
|
50
|
+
}));
|
51
|
+
}
|
52
|
+
else {
|
53
|
+
decoratorsToApply.push((0, class_validator_1.IsString)({
|
54
|
+
each: options.each,
|
55
|
+
message: 'The value must be a string',
|
56
|
+
}));
|
57
|
+
}
|
58
|
+
decoratorsToApply.push((0, min_max_length_decorator_1.MinMaxLength)({
|
59
|
+
minLength: options.minLength,
|
60
|
+
maxLength: options.maxLength,
|
61
|
+
each: options.each,
|
62
|
+
}));
|
63
|
+
if (options.regex) {
|
64
|
+
decoratorsToApply.push((0, class_validator_1.Matches)(options.regex, {
|
65
|
+
message: 'The value does not match the required pattern',
|
66
|
+
}));
|
67
|
+
}
|
68
|
+
if (options.trim) {
|
69
|
+
decoratorsToApply.push((0, transform_decorator_1.Trim)());
|
70
|
+
}
|
71
|
+
return (0, utils_1.applyCommonDecorators)(options, decoratorsToApply);
|
72
|
+
};
|
73
|
+
exports.IsStringField = IsStringField;
|
74
|
+
//# sourceMappingURL=is-string-field.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-string-field.decorator.js","sourceRoot":"","sources":["../../src/decorators/is-string-field.decorator.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.MinMaxLength = void 0;
|
4
|
+
const common_1 = require("@nestjs/common");
|
5
|
+
const class_validator_1 = require("class-validator");
|
6
|
+
const MinMaxLength = (minMaxLengthOptions) => {
|
7
|
+
const options = {
|
8
|
+
minLength: 1,
|
9
|
+
maxLength: 500,
|
10
|
+
each: false,
|
11
|
+
...minMaxLengthOptions,
|
12
|
+
};
|
13
|
+
const decoratorsToApply = [
|
14
|
+
(0, class_validator_1.MinLength)(options.minLength, {
|
15
|
+
each: options.each,
|
16
|
+
message: `The value must be at least ${options.minLength} characters long`,
|
17
|
+
}),
|
18
|
+
(0, class_validator_1.MaxLength)(options.maxLength, {
|
19
|
+
each: options.each,
|
20
|
+
message: `The value must be no more than ${options.maxLength} characters long`,
|
21
|
+
}),
|
22
|
+
];
|
23
|
+
return (0, common_1.applyDecorators)(...decoratorsToApply);
|
24
|
+
};
|
25
|
+
exports.MinMaxLength = MinMaxLength;
|
26
|
+
//# sourceMappingURL=min-max-length.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"min-max-length.decorator.js","sourceRoot":"","sources":["../../src/decorators/min-max-length.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAiD;AACjD,qDAAuD;AAIhD,MAAM,YAAY,GAAG,CAAC,mBAAyC,EAAE,EAAE;IACxE,MAAM,OAAO,GAAG;QACd,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,KAAK;QACX,GAAG,mBAAmB;KACvB,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,IAAA,2BAAS,EAAC,OAAO,CAAC,SAAS,EAAE;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,8BAA8B,OAAO,CAAC,SAAS,kBAAkB;SAC3E,CAAC;QACF,IAAA,2BAAS,EAAC,OAAO,CAAC,SAAS,EAAE;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,kCAAkC,OAAO,CAAC,SAAS,kBAAkB;SAC/E,CAAC;KACH,CAAC;IAEF,OAAO,IAAA,wBAAe,EAAC,GAAG,iBAAiB,CAAC,CAAC;AAC/C,CAAC,CAAC;AApBW,QAAA,YAAY,gBAoBvB"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ToNumber = exports.ToArray = exports.ToBoolean = exports.Trim = void 0;
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
5
|
+
const trimValue = (value) => value.trim().replace(/\s\s+/g, ' ');
|
6
|
+
const toBooleanValue = (value) => (value === 'true' ? true : value === 'false' ? false : value);
|
7
|
+
const toNumberValue = (value) => (Number.isNaN(Number(value)) ? value : Number(value));
|
8
|
+
const Trim = () => (0, class_transformer_1.Transform)((parameters) => {
|
9
|
+
const value = parameters.value;
|
10
|
+
return Array.isArray(value) ? value.map(trimValue) : trimValue(value);
|
11
|
+
});
|
12
|
+
exports.Trim = Trim;
|
13
|
+
const ToBoolean = () => (0, class_transformer_1.Transform)((parameters) => toBooleanValue(parameters.value), {
|
14
|
+
toClassOnly: true,
|
15
|
+
});
|
16
|
+
exports.ToBoolean = ToBoolean;
|
17
|
+
const ToArray = () => (0, class_transformer_1.Transform)((parameters) => (Array.isArray(parameters.value) ? parameters.value : [parameters.value]), {
|
18
|
+
toClassOnly: true,
|
19
|
+
});
|
20
|
+
exports.ToArray = ToArray;
|
21
|
+
const ToNumber = () => (0, class_transformer_1.Transform)((parameters) => toNumberValue(parameters.value), {
|
22
|
+
toClassOnly: true,
|
23
|
+
});
|
24
|
+
exports.ToNumber = ToNumber;
|
25
|
+
//# sourceMappingURL=transform.decorator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transform.decorator.js","sourceRoot":"","sources":["../../src/decorators/transform.decorator.ts"],"names":[],"mappings":";;;AAAA,yDAA8C;AAE9C,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACxG,MAAM,aAAa,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAErF,MAAM,IAAI,GAAG,GAAG,EAAE,CACvB,IAAA,6BAAS,EAAC,CAAC,UAAU,EAAE,EAAE;IACvB,MAAM,KAAK,GAAG,UAAU,CAAC,KAA0B,CAAC;IAEpD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AALQ,QAAA,IAAI,QAKZ;AAEE,MAAM,SAAS,GAAG,GAAG,EAAE,CAC5B,IAAA,6BAAS,EAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;IAC1D,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAHQ,QAAA,SAAS,aAGjB;AAEE,MAAM,OAAO,GAAG,GAAG,EAAE,CAC1B,IAAA,6BAAS,EAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;IACnG,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAHQ,QAAA,OAAO,WAGf;AAEE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAC3B,IAAA,6BAAS,EAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;IACzD,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAHQ,QAAA,QAAQ,YAGhB"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
+
exports.HttpExceptionFilter = void 0;
|
10
|
+
const common_1 = require("@nestjs/common");
|
11
|
+
let HttpExceptionFilter = class HttpExceptionFilter {
|
12
|
+
catch(exception, host) {
|
13
|
+
const ctx = host.switchToHttp();
|
14
|
+
const response = ctx.getResponse();
|
15
|
+
const status = exception.getStatus ? exception.getStatus() : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
16
|
+
const message = exception.message || common_1.HttpStatus[common_1.HttpStatus.INTERNAL_SERVER_ERROR];
|
17
|
+
response.status(status).json({
|
18
|
+
statusCode: status,
|
19
|
+
message,
|
20
|
+
error: {
|
21
|
+
stack: exception.stack,
|
22
|
+
},
|
23
|
+
});
|
24
|
+
}
|
25
|
+
};
|
26
|
+
exports.HttpExceptionFilter = HttpExceptionFilter;
|
27
|
+
exports.HttpExceptionFilter = HttpExceptionFilter = __decorate([
|
28
|
+
(0, common_1.Catch)(common_1.HttpException)
|
29
|
+
], HttpExceptionFilter);
|
30
|
+
//# sourceMappingURL=http-exception.filter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../src/filters/http-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAkG;AAI3F,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,KAAK,CAAC,SAAwB,EAAE,IAAmB;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAE7C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAU,CAAC,qBAAqB,CAAC;QAC9F,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,mBAAU,CAAC,mBAAU,CAAC,qBAAqB,CAAC,CAAC;QAElF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC3B,UAAU,EAAE,MAAM;YAClB,OAAO;YACP,KAAK,EAAE;gBACL,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,cAAK,EAAC,sBAAa,CAAC;GACR,mBAAmB,CAgB/B"}
|
@@ -0,0 +1,19 @@
|
|
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("./http-exception.filter"), exports);
|
18
|
+
__exportStar(require("./unprocessable-entity-exception.filter"), exports);
|
19
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,0EAAwD"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { ArgumentsHost, ExceptionFilter, UnprocessableEntityException } from '@nestjs/common';
|
2
|
+
export declare class UnprocessableEntityExceptionFilter implements ExceptionFilter<UnprocessableEntityException> {
|
3
|
+
catch(exception: UnprocessableEntityException, host: ArgumentsHost): void;
|
4
|
+
private processValidationErrors;
|
5
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
+
exports.UnprocessableEntityExceptionFilter = void 0;
|
10
|
+
const helper_fns_1 = require("@codylabs/helper-fns");
|
11
|
+
const common_1 = require("@nestjs/common");
|
12
|
+
let UnprocessableEntityExceptionFilter = class UnprocessableEntityExceptionFilter {
|
13
|
+
catch(exception, host) {
|
14
|
+
const ctx = host.switchToHttp();
|
15
|
+
const response = ctx.getResponse();
|
16
|
+
const statusCode = exception.getStatus();
|
17
|
+
const r = exception.getResponse();
|
18
|
+
const validationErrors = r.message;
|
19
|
+
this.processValidationErrors(validationErrors);
|
20
|
+
response.status(statusCode).json(r);
|
21
|
+
}
|
22
|
+
processValidationErrors(validationErrors) {
|
23
|
+
for (const validationError of validationErrors) {
|
24
|
+
if (validationError.children && !(0, helper_fns_1.isEmpty)(validationError.children)) {
|
25
|
+
this.processValidationErrors(validationError.children);
|
26
|
+
}
|
27
|
+
validationError.target = undefined;
|
28
|
+
validationError.children = undefined;
|
29
|
+
if (validationError.constraints) {
|
30
|
+
for (const [constraintKey, constraint] of Object.entries(validationError.constraints)) {
|
31
|
+
if (!constraint) {
|
32
|
+
validationError.constraints[constraintKey] = `error.fields.${(0, helper_fns_1.snake)(constraintKey)}`;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
};
|
39
|
+
exports.UnprocessableEntityExceptionFilter = UnprocessableEntityExceptionFilter;
|
40
|
+
exports.UnprocessableEntityExceptionFilter = UnprocessableEntityExceptionFilter = __decorate([
|
41
|
+
(0, common_1.Catch)(common_1.UnprocessableEntityException)
|
42
|
+
], UnprocessableEntityExceptionFilter);
|
43
|
+
//# sourceMappingURL=unprocessable-entity-exception.filter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unprocessable-entity-exception.filter.js","sourceRoot":"","sources":["../../src/filters/unprocessable-entity-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAsD;AACtD,2CAAqG;AAM9F,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAC7C,KAAK,CAAC,SAAuC,EAAE,IAAmB;QAChE,MAAM,GAAG,GAAsB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAa,GAAG,CAAC,WAAW,EAAY,CAAC;QACvD,MAAM,UAAU,GAAW,SAAS,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,EAAoC,CAAC;QACpE,MAAM,gBAAgB,GAAsB,CAAC,CAAC,OAAO,CAAC;QAEtD,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAE/C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAEO,uBAAuB,CAAC,gBAAmC;QACjE,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC/C,IAAI,eAAe,CAAC,QAAQ,IAAI,CAAC,IAAA,oBAAO,EAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACzD,CAAC;YAED,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC;YACnC,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC;YAErC,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC;gBAChC,KAAK,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,gBAAgB,IAAA,kBAAK,EAAC,aAAa,CAAC,EAAE,CAAC;oBACtF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AA/BY,gFAAkC;6CAAlC,kCAAkC;IAD9C,IAAA,cAAK,EAAC,qCAA4B,CAAC;GACvB,kCAAkC,CA+B9C"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
exports.AndGuard = void 0;
|
16
|
+
const common_1 = require("@nestjs/common");
|
17
|
+
const core_1 = require("@nestjs/core");
|
18
|
+
const rxjs_1 = require("rxjs");
|
19
|
+
const operators_1 = require("rxjs/operators");
|
20
|
+
const utils_1 = require("../utils");
|
21
|
+
const AndGuard = (guards, andGuardOptions) => {
|
22
|
+
let AndMixinGuard = class AndMixinGuard {
|
23
|
+
moduleRef;
|
24
|
+
guards = [];
|
25
|
+
constructor(moduleRef) {
|
26
|
+
this.moduleRef = moduleRef;
|
27
|
+
}
|
28
|
+
canActivate(context) {
|
29
|
+
this.guards = guards.map((guard) => this.moduleRef.get(guard, { strict: false }));
|
30
|
+
const canActivateReturns = this.guards.map((guard) => () => (0, utils_1.deferGuard)(guard, context));
|
31
|
+
const mapOperator = andGuardOptions?.sequential ? operators_1.concatMap : operators_1.mergeMap;
|
32
|
+
return (0, rxjs_1.from)(canActivateReturns).pipe(mapOperator((obs) => obs().pipe((0, utils_1.handleError)(andGuardOptions?.throwOnFirstError))), (0, operators_1.every)((val) => val === true), (0, operators_1.last)());
|
33
|
+
}
|
34
|
+
};
|
35
|
+
AndMixinGuard = __decorate([
|
36
|
+
__param(0, (0, common_1.Inject)(core_1.ModuleRef)),
|
37
|
+
__metadata("design:paramtypes", [core_1.ModuleRef])
|
38
|
+
], AndMixinGuard);
|
39
|
+
const Guard = (0, common_1.mixin)(AndMixinGuard);
|
40
|
+
return Guard;
|
41
|
+
};
|
42
|
+
exports.AndGuard = AndGuard;
|
43
|
+
//# sourceMappingURL=and.guard.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"and.guard.js","sourceRoot":"","sources":["../../src/guards/and.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoG;AACpG,uCAAyC;AACzC,+BAAwC;AACxC,8CAAkE;AAGlE,oCAAmD;AAE5C,MAAM,QAAQ,GAAG,CAAC,MAAiD,EAAE,eAAiC,EAAE,EAAE;IAC/G,IAAM,aAAa,GAAnB,MAAM,aAAa;QAKE;QAJX,MAAM,GAAkB,EAAE,CAAC;QAEnC,YAEmB,SAAoB;YAApB,cAAS,GAAT,SAAS,CAAW;QACpC,CAAC;QAEJ,WAAW,CAAC,OAAyB;YACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAElF,MAAM,kBAAkB,GAAqC,IAAI,CAAC,MAAM,CAAC,GAAG,CAC1E,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,KAAK,EAAE,OAAO,CAAC,CAC5C,CAAC;YACF,MAAM,WAAW,GAAG,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAC,oBAAQ,CAAC;YAEvE,OAAO,IAAA,WAAI,EAAC,kBAAkB,CAAC,CAAC,IAAI,CAClC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC,EACjF,IAAA,iBAAK,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAC5B,IAAA,gBAAI,GAAE,CACP,CAAC;QACJ,CAAC;KACF,CAAA;IAtBK,aAAa;QAId,WAAA,IAAA,eAAM,EAAC,gBAAS,CAAC,CAAA;yCACU,gBAAS;OALnC,aAAa,CAsBlB;IAED,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC;IAEnC,OAAO,KAA0B,CAAC;AACpC,CAAC,CAAC;AA5BW,QAAA,QAAQ,YA4BnB"}
|
@@ -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("./and.guard"), exports);
|
18
|
+
__exportStar(require("./or.guard"), exports);
|
19
|
+
__exportStar(require("./sequential.guard"), exports);
|
20
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B;AAC3B,qDAAmC"}
|