@tacxou/nestjs_module_restools 0.0.11
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/.tsbuildinfo +1 -0
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/_abstracts/abstract.controller.d.ts +12 -0
- package/_abstracts/abstract.controller.js +15 -0
- package/_abstracts/abstract.controller.js.map +1 -0
- package/_abstracts/abstract.service.d.ts +21 -0
- package/_abstracts/abstract.service.js +38 -0
- package/_abstracts/abstract.service.js.map +1 -0
- package/_abstracts/index.d.ts +2 -0
- package/_abstracts/index.js +19 -0
- package/_abstracts/index.js.map +1 -0
- package/_decorators/index.d.ts +1 -0
- package/_decorators/index.js +18 -0
- package/_decorators/index.js.map +1 -0
- package/_decorators/real-ip.decorator.d.ts +1 -0
- package/_decorators/real-ip.decorator.js +45 -0
- package/_decorators/real-ip.decorator.js.map +1 -0
- package/_filters/index.d.ts +1 -0
- package/_filters/index.js +18 -0
- package/_filters/index.js.map +1 -0
- package/_filters/mongoose-validation.filter.d.ts +17 -0
- package/_filters/mongoose-validation.filter.js +84 -0
- package/_filters/mongoose-validation.filter.js.map +1 -0
- package/_pipes/dto-validation.pipe.d.ts +15 -0
- package/_pipes/dto-validation.pipe.js +60 -0
- package/_pipes/dto-validation.pipe.js.map +1 -0
- package/_pipes/index.d.ts +2 -0
- package/_pipes/index.js +19 -0
- package/_pipes/index.js.map +1 -0
- package/_pipes/object-id-validation.pipe.d.ts +6 -0
- package/_pipes/object-id-validation.pipe.js +56 -0
- package/_pipes/object-id-validation.pipe.js.map +1 -0
- package/_services/app.cluster.service.d.ts +8 -0
- package/_services/app.cluster.service.js +74 -0
- package/_services/app.cluster.service.js.map +1 -0
- package/_services/index.d.ts +1 -0
- package/_services/index.js +18 -0
- package/_services/index.js.map +1 -0
- package/_utils/memoize.util.d.ts +1 -0
- package/_utils/memoize.util.js +20 -0
- package/_utils/memoize.util.js.map +1 -0
- package/auth/_test/_strategies/local.strategy.d.ts +8 -0
- package/auth/_test/_strategies/local.strategy.js +34 -0
- package/auth/_test/_strategies/local.strategy.js.map +1 -0
- package/auth/_test/test-public.controller.d.ts +4 -0
- package/auth/_test/test-public.controller.js +46 -0
- package/auth/_test/test-public.controller.js.map +1 -0
- package/auth/_test/test.controller.d.ts +3 -0
- package/auth/_test/test.controller.js +33 -0
- package/auth/_test/test.controller.js.map +1 -0
- package/auth/_test/test.module.d.ts +2 -0
- package/auth/_test/test.module.js +30 -0
- package/auth/_test/test.module.js.map +1 -0
- package/auth/auth.guard.d.ts +2 -0
- package/auth/auth.guard.js +56 -0
- package/auth/auth.guard.js.map +1 -0
- package/auth/auth.spec.d.ts +1 -0
- package/auth/auth.spec.js +52 -0
- package/auth/auth.spec.js.map +1 -0
- package/auth/index.d.ts +2 -0
- package/auth/index.js +19 -0
- package/auth/index.js.map +1 -0
- package/auth/public.decorator.d.ts +2 -0
- package/auth/public.decorator.js +8 -0
- package/auth/public.decorator.js.map +1 -0
- package/index.d.ts +8 -0
- package/index.js +25 -0
- package/index.js.map +1 -0
- package/package.json +73 -0
- package/request-context/_test/test-context.d.ts +7 -0
- package/request-context/_test/test-context.js +11 -0
- package/request-context/_test/test-context.js.map +1 -0
- package/request-context/_test/test.controller.d.ts +6 -0
- package/request-context/_test/test.controller.js +37 -0
- package/request-context/_test/test.controller.js.map +1 -0
- package/request-context/_test/test.middleware.d.ts +6 -0
- package/request-context/_test/test.middleware.js +25 -0
- package/request-context/_test/test.middleware.js.map +1 -0
- package/request-context/_test/test.module.d.ts +4 -0
- package/request-context/_test/test.module.js +28 -0
- package/request-context/_test/test.module.js.map +1 -0
- package/request-context/_test/test.service.d.ts +5 -0
- package/request-context/_test/test.service.js +30 -0
- package/request-context/_test/test.service.js.map +1 -0
- package/request-context/index.d.ts +3 -0
- package/request-context/index.js +20 -0
- package/request-context/index.js.map +1 -0
- package/request-context/request-context.middleware.d.ts +4 -0
- package/request-context/request-context.middleware.js +21 -0
- package/request-context/request-context.middleware.js.map +1 -0
- package/request-context/request-context.module.d.ts +4 -0
- package/request-context/request-context.module.js +24 -0
- package/request-context/request-context.module.js.map +1 -0
- package/request-context/request-context.spec.d.ts +1 -0
- package/request-context/request-context.spec.js +35 -0
- package/request-context/request-context.spec.js.map +1 -0
- package/request-context/request-context.storage.d.ts +9 -0
- package/request-context/request-context.storage.js +16 -0
- package/request-context/request-context.storage.js.map +1 -0
- package/search-filter-schema/index.d.ts +2 -0
- package/search-filter-schema/index.js +19 -0
- package/search-filter-schema/index.js.map +1 -0
- package/search-filter-schema/search-filter-options.decorator.d.ts +34 -0
- package/search-filter-schema/search-filter-options.decorator.js +60 -0
- package/search-filter-schema/search-filter-options.decorator.js.map +1 -0
- package/search-filter-schema/search-filter-options.decorator.spec.d.ts +1 -0
- package/search-filter-schema/search-filter-options.decorator.spec.js +65 -0
- package/search-filter-schema/search-filter-options.decorator.spec.js.map +1 -0
- package/search-filter-schema/search-filter-schema.decorator.d.ts +32 -0
- package/search-filter-schema/search-filter-schema.decorator.js +238 -0
- package/search-filter-schema/search-filter-schema.decorator.js.map +1 -0
- package/search-filter-schema/search-filter-schema.decorator.spec.d.ts +1 -0
- package/search-filter-schema/search-filter-schema.decorator.spec.js +300 -0
- package/search-filter-schema/search-filter-schema.decorator.spec.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract.service.js","sourceRoot":"","sources":["../../src/_abstracts/abstract.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AAe7C,IAAe,eAAe,GAA9B,MAAe,eAAe;IAOnC,YAAsB,OAAgC;QACpD,IAAI,CAAC,SAAS,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,IAAc,OAAO;QAKnB,OAAO,IAAI,CAAC,IAAI,CAA6C;IAC/D,CAAC;IAED,IAAW,UAAU;QAEnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AA/BqB,0CAAe;0BAAf,eAAe;IADpC,IAAA,mBAAU,GAAE;;GACS,eAAe,CA+BpC"}
|
|
@@ -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("./abstract.service"), exports);
|
|
18
|
+
__exportStar(require("./abstract.controller"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_abstracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,wDAAqC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './real-ip.decorator';
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./real-ip.decorator"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,sDAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RealIp: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
@@ -0,0 +1,45 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.RealIp = void 0;
|
|
27
|
+
const common_1 = require("@nestjs/common");
|
|
28
|
+
let getClientIp;
|
|
29
|
+
(async () => {
|
|
30
|
+
try {
|
|
31
|
+
const requestIpModule = await Promise.resolve().then(() => __importStar(require('request-ip')));
|
|
32
|
+
getClientIp = requestIpModule.getClientIp;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
getClientIp = (_) => {
|
|
36
|
+
console.error("Le package 'request-ip' n'est pas installé. Veuillez l'installer pour utiliser le décorateur RealIp.");
|
|
37
|
+
return null;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
})();
|
|
41
|
+
exports.RealIp = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
42
|
+
const request = ctx.switchToHttp().getRequest();
|
|
43
|
+
return getClientIp(request);
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=real-ip.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"real-ip.decorator.js","sourceRoot":"","sources":["../../src/_decorators/real-ip.decorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuE;AAEvE,IAAI,WAA4C,CAAA;AAEhD,CAAC,KAAK,IAAI,EAAE;IACV,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,wDAAa,YAAY,GAAC,CAAA;QAClD,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,GAAG,CAAC,CAAM,EAAiB,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAA;YACrH,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC;AACH,CAAC,CAAC,EAAE,CAAA;AAES,QAAA,MAAM,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAa,EAAE,GAAqB,EAAE,EAAE;IAClF,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAA;IAC/C,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './mongoose-validation.filter';
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./mongoose-validation.filter"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Abstract, ArgumentsHost, Type } from '@nestjs/common';
|
|
2
|
+
type MongooseError = {
|
|
3
|
+
message: string;
|
|
4
|
+
errors?: Record<string, {
|
|
5
|
+
message: string;
|
|
6
|
+
constraints?: Record<string, string>;
|
|
7
|
+
property?: string;
|
|
8
|
+
}>;
|
|
9
|
+
path?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function MongooseValidationFilter<T = Type<any> | Abstract<any>>(exceptions?: Array<Type<any> | Abstract<any>>): {
|
|
12
|
+
new (): {
|
|
13
|
+
catch(exception: T & MongooseError, host: ArgumentsHost): void;
|
|
14
|
+
getValidationErrors(err: MongooseError): Record<string, any>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.MongooseValidationFilter = void 0;
|
|
33
|
+
const common_1 = require("@nestjs/common");
|
|
34
|
+
let Error;
|
|
35
|
+
(async () => {
|
|
36
|
+
try {
|
|
37
|
+
const mongooseModule = await Promise.resolve().then(() => __importStar(require('mongoose')));
|
|
38
|
+
Error = mongooseModule.Error;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
common_1.Logger.debug(`Mongoose module not found`, MongooseValidationFilter.name);
|
|
42
|
+
}
|
|
43
|
+
})();
|
|
44
|
+
function MongooseValidationFilter(exceptions) {
|
|
45
|
+
var MongooseValidationFilter_1;
|
|
46
|
+
let MongooseValidationFilter = MongooseValidationFilter_1 = class MongooseValidationFilter {
|
|
47
|
+
catch(exception, host) {
|
|
48
|
+
common_1.Logger.debug(exception['message'], MongooseValidationFilter_1.name);
|
|
49
|
+
const ctx = host.switchToHttp();
|
|
50
|
+
const request = ctx.getRequest();
|
|
51
|
+
const response = ctx.getResponse();
|
|
52
|
+
const debug = {};
|
|
53
|
+
if (process.env.NODE_ENV !== 'production' && request.query['debug']) {
|
|
54
|
+
debug['_exception'] = exception;
|
|
55
|
+
}
|
|
56
|
+
response.status(common_1.HttpStatus.NOT_ACCEPTABLE).json(common_1.HttpException.createBody(Object.assign({ statusCode: common_1.HttpStatus.NOT_ACCEPTABLE, message: exception['message'], validations: this.getValidationErrors(exception) }, debug), exception.constructor.name, common_1.HttpStatus.NOT_ACCEPTABLE));
|
|
57
|
+
}
|
|
58
|
+
getValidationErrors(err) {
|
|
59
|
+
const validations = {};
|
|
60
|
+
if (err instanceof Error.ValidationError) {
|
|
61
|
+
for (const key in err.errors) {
|
|
62
|
+
if (err.errors[key]['constraints']) {
|
|
63
|
+
Object.keys(err.errors[key]['constraints']).forEach((ckey) => {
|
|
64
|
+
const property = err.errors[key]['property'];
|
|
65
|
+
validations[`${key}.${property}`] = err.errors[key]['constraints'][ckey];
|
|
66
|
+
});
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
validations[key] = err.errors[key].message;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (err instanceof Error.CastError) {
|
|
73
|
+
validations[err.path] = err.message;
|
|
74
|
+
}
|
|
75
|
+
return validations;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
MongooseValidationFilter = MongooseValidationFilter_1 = __decorate([
|
|
79
|
+
(0, common_1.Catch)(...exceptions)
|
|
80
|
+
], MongooseValidationFilter);
|
|
81
|
+
return MongooseValidationFilter;
|
|
82
|
+
}
|
|
83
|
+
exports.MongooseValidationFilter = MongooseValidationFilter;
|
|
84
|
+
//# sourceMappingURL=mongoose-validation.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongoose-validation.filter.js","sourceRoot":"","sources":["../../src/_filters/mongoose-validation.filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ArgumentMetadata, HttpStatus, ValidationError, ValidationPipe, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
interface ValidationRecursive {
|
|
3
|
+
[key: string]: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class DtoValidationPipe extends ValidationPipe {
|
|
6
|
+
constructor(options?: ValidationPipeOptions);
|
|
7
|
+
transform(value: any, metadata: ArgumentMetadata): Promise<any>;
|
|
8
|
+
exceptionHandler(errors: ValidationError[]): {
|
|
9
|
+
statusCode: HttpStatus;
|
|
10
|
+
message: string;
|
|
11
|
+
validations: ValidationRecursive;
|
|
12
|
+
};
|
|
13
|
+
protected validationRecursive(error: ValidationError, prefix?: string): ValidationRecursive;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
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 DtoValidationPipe_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DtoValidationPipe = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
let DtoValidationPipe = DtoValidationPipe_1 = class DtoValidationPipe extends common_1.ValidationPipe {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(Object.assign({ transform: true, transformOptions: {
|
|
18
|
+
enableImplicitConversion: true,
|
|
19
|
+
}, exceptionFactory: (errors) => this.exceptionHandler(errors) }, options));
|
|
20
|
+
}
|
|
21
|
+
async transform(value, metadata) {
|
|
22
|
+
return (await super.transform(value, metadata)) || value;
|
|
23
|
+
}
|
|
24
|
+
exceptionHandler(errors) {
|
|
25
|
+
let validations = {};
|
|
26
|
+
for (const error of errors) {
|
|
27
|
+
validations = Object.assign(Object.assign({}, validations), this.validationRecursive(error));
|
|
28
|
+
}
|
|
29
|
+
const message = `Erreur de validation : ${Object.keys(validations).join(', ')}`.trim();
|
|
30
|
+
common_1.Logger.debug(`${message} (${JSON.stringify(validations)})`, DtoValidationPipe_1.name);
|
|
31
|
+
return {
|
|
32
|
+
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
33
|
+
message,
|
|
34
|
+
validations,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
validationRecursive(error, prefix = '') {
|
|
38
|
+
let validations = {};
|
|
39
|
+
if (error.constraints) {
|
|
40
|
+
validations[`${prefix + error.property}`] = Object.values(error.constraints)[0];
|
|
41
|
+
}
|
|
42
|
+
if (error.children.length > 0) {
|
|
43
|
+
for (const errorChild of error.children) {
|
|
44
|
+
if (errorChild.constraints) {
|
|
45
|
+
validations[`${prefix + error.property}.${errorChild.property}`] = Object.values(errorChild.constraints)[0];
|
|
46
|
+
}
|
|
47
|
+
if (errorChild.children.length > 0) {
|
|
48
|
+
validations = Object.assign(Object.assign({}, validations), this.validationRecursive(errorChild, `${prefix + error.property}.${errorChild.property}.`));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return validations;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.DtoValidationPipe = DtoValidationPipe;
|
|
56
|
+
exports.DtoValidationPipe = DtoValidationPipe = DtoValidationPipe_1 = __decorate([
|
|
57
|
+
(0, common_1.Injectable)(),
|
|
58
|
+
__metadata("design:paramtypes", [Object])
|
|
59
|
+
], DtoValidationPipe);
|
|
60
|
+
//# sourceMappingURL=dto-validation.pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto-validation.pipe.js","sourceRoot":"","sources":["../../src/_pipes/dto-validation.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAyI;AAOlI,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,uBAAc;IACnD,YAAmB,OAA+B;QAChD,KAAK,iBACH,SAAS,EAAE,IAAI,EACf,gBAAgB,EAAE;gBAChB,wBAAwB,EAAE,IAAI;aAC/B,EACD,gBAAgB,EAAE,CAAC,MAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAC3E,OAAO,EACV,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAC3D,OAAO,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC;IAC3D,CAAC;IAEM,gBAAgB,CAAC,MAAyB;QAC/C,IAAI,WAAW,GAAwB,EAAE,CAAA;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,WAAW,mCAAQ,WAAW,GAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAE,CAAA;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,0BAA0B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QACtF,eAAM,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,mBAAiB,CAAC,IAAI,CAAC,CAAA;QAEnF,OAAO;YACL,UAAU,EAAE,mBAAU,CAAC,WAAW;YAClC,OAAO;YACP,WAAW;SACZ,CAAA;IACH,CAAC;IAES,mBAAmB,CAAC,KAAsB,EAAE,MAAM,GAAG,EAAE;QAC/D,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,WAAW,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QACjF,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC3B,WAAW,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC7G,CAAC;gBACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,WAAW,mCAAQ,WAAW,GAAK,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAE,CAAA;gBACjI,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;CACF,CAAA;AAjDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;;GACA,iBAAiB,CAiD7B"}
|
package/_pipes/index.js
ADDED
|
@@ -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("./dto-validation.pipe"), exports);
|
|
18
|
+
__exportStar(require("./object-id-validation.pipe"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_pipes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,8DAA2C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ArgumentMetadata, PipeTransform } from '@nestjs/common';
|
|
2
|
+
declare let ObjectId: any;
|
|
3
|
+
export declare class ObjectIdValidationPipe implements PipeTransform<string, typeof ObjectId> {
|
|
4
|
+
transform(value: string | typeof ObjectId, _metadata: ArgumentMetadata): typeof ObjectId;
|
|
5
|
+
}
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.ObjectIdValidationPipe = void 0;
|
|
33
|
+
const common_1 = require("@nestjs/common");
|
|
34
|
+
let ObjectId;
|
|
35
|
+
(async () => {
|
|
36
|
+
try {
|
|
37
|
+
const mongooseModule = await Promise.resolve().then(() => __importStar(require('mongoose')));
|
|
38
|
+
ObjectId = mongooseModule.Types.ObjectId;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
common_1.Logger.debug(`Mongoose module not found`, ObjectIdValidationPipe.name);
|
|
42
|
+
}
|
|
43
|
+
})();
|
|
44
|
+
let ObjectIdValidationPipe = class ObjectIdValidationPipe {
|
|
45
|
+
transform(value, _metadata) {
|
|
46
|
+
if (!ObjectId.isValid(value)) {
|
|
47
|
+
throw new common_1.BadRequestException(`Invalid ObjectId <${value}>`);
|
|
48
|
+
}
|
|
49
|
+
return new ObjectId(value);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.ObjectIdValidationPipe = ObjectIdValidationPipe;
|
|
53
|
+
exports.ObjectIdValidationPipe = ObjectIdValidationPipe = __decorate([
|
|
54
|
+
(0, common_1.Injectable)()
|
|
55
|
+
], ObjectIdValidationPipe);
|
|
56
|
+
//# sourceMappingURL=object-id-validation.pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-id-validation.pipe.js","sourceRoot":"","sources":["../../src/_pipes/object-id-validation.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyG;AAEzG,IAAI,QAAa,CAAA;AACjB,CAAC,KAAK,IAAI,EAAE;IACV,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,wDAAa,UAAU,GAAC,CAAA;QAC/C,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACxE,CAAC;AACH,CAAC,CAAC,EAAE,CAAA;AAGG,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC1B,SAAS,CAAC,KAA+B,EAAE,SAA2B;QAC3E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,4BAAmB,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;CACF,CAAA;AAPY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CAOlC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.AppClusterService = void 0;
|
|
36
|
+
const node_cluster_1 = __importDefault(require("node:cluster"));
|
|
37
|
+
const os = __importStar(require("node:os"));
|
|
38
|
+
const common_1 = require("@nestjs/common");
|
|
39
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
40
|
+
const CLUSTER_DEFAULT_FORKS = os.cpus().length;
|
|
41
|
+
const DEFAULT_CLUSTER_OPTIONS = {
|
|
42
|
+
name: 'AppClusterService',
|
|
43
|
+
forks: CLUSTER_DEFAULT_FORKS
|
|
44
|
+
};
|
|
45
|
+
let AppClusterService = class AppClusterService {
|
|
46
|
+
static async clusterize(callback, options) {
|
|
47
|
+
options = Object.assign(Object.assign({}, DEFAULT_CLUSTER_OPTIONS), options);
|
|
48
|
+
if (!options.clusterize) {
|
|
49
|
+
await callback();
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (node_cluster_1.default.isPrimary) {
|
|
53
|
+
common_1.Logger.log(`Master server started on <${node_process_1.default.pid}> with pid <${options.forks}> forks 🏁`, options.name);
|
|
54
|
+
for (let i = 0; i < options.forks; i++) {
|
|
55
|
+
node_cluster_1.default.fork();
|
|
56
|
+
}
|
|
57
|
+
node_cluster_1.default.on('online', (worker) => {
|
|
58
|
+
common_1.Logger.log(`Worker ${worker.process['pid']} starting... 🟠`, options.name);
|
|
59
|
+
});
|
|
60
|
+
node_cluster_1.default.on('exit', (worker, code, signal) => {
|
|
61
|
+
common_1.Logger.error(`Worker ${worker.process['pid']} died. Restarting`, options.name);
|
|
62
|
+
node_cluster_1.default.fork();
|
|
63
|
+
});
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
common_1.Logger.log(`Worker server started on pid <${node_process_1.default.pid}> 🟢`, options.name);
|
|
67
|
+
await callback();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.AppClusterService = AppClusterService;
|
|
71
|
+
exports.AppClusterService = AppClusterService = __decorate([
|
|
72
|
+
(0, common_1.Injectable)()
|
|
73
|
+
], AppClusterService);
|
|
74
|
+
//# sourceMappingURL=app.cluster.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.cluster.service.js","sourceRoot":"","sources":["../../src/_services/app.cluster.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAkC;AAClC,4CAA6B;AAC7B,2CAAmD;AACnD,gEAAkC;AAElC,MAAM,qBAAqB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAA;AAE9C,MAAM,uBAAuB,GAAsB;IACjD,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,qBAAqB;CAC7B,CAAA;AASM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACrB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAA6B,EAAE,OAA2B;QACvF,OAAO,mCACF,uBAAuB,GACvB,OAAO,CACX,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,QAAQ,EAAE,CAAA;YAChB,OAAM;QACR,CAAC;QAED,IAAI,sBAAO,CAAC,SAAS,EAAE,CAAC;YACtB,eAAM,CAAC,GAAG,CAAC,6BAA6B,sBAAO,CAAC,GAAG,eAAe,OAAO,CAAC,KAAK,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAC1G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,sBAAO,CAAC,IAAI,EAAE,CAAA;YAChB,CAAC;YAED,sBAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC9B,eAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5E,CAAC,CAAC,CAAA;YAEF,sBAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC1C,eAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC9E,sBAAO,CAAC,IAAI,EAAE,CAAA;YAChB,CAAC,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,eAAM,CAAC,GAAG,CAAC,iCAAiC,sBAAO,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5E,MAAM,QAAQ,EAAE,CAAA;IAClB,CAAC;CACF,CAAA;AAhCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAgC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app.cluster.service';
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./app.cluster.service"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function memoize(fn: Function): (...args: any[]) => any;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.memoize = void 0;
|
|
4
|
+
const defaultKey = 'default';
|
|
5
|
+
function memoize(fn) {
|
|
6
|
+
const cache = {};
|
|
7
|
+
return (...args) => {
|
|
8
|
+
const n = args[0] || defaultKey;
|
|
9
|
+
if (n in cache) {
|
|
10
|
+
return cache[n];
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const result = fn(n === defaultKey ? undefined : n);
|
|
14
|
+
cache[n] = result;
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
exports.memoize = memoize;
|
|
20
|
+
//# sourceMappingURL=memoize.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.util.js","sourceRoot":"","sources":["../../src/_utils/memoize.util.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,SAAS,CAAA;AAE5B,SAAgB,OAAO,CAAC,EAAY;IAClC,MAAM,KAAK,GAAG,EAAE,CAAA;IAEhB,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAA;QAE/B,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnD,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;YACjB,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAdD,0BAcC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IVerifyOptions } from 'passport-local';
|
|
2
|
+
import { Request } from 'express';
|
|
3
|
+
declare const LocalStrategy_base: new (...args: any[]) => any;
|
|
4
|
+
export declare class LocalStrategy extends LocalStrategy_base {
|
|
5
|
+
constructor();
|
|
6
|
+
validate(_: Request, username: string, password: string, done: (error: any, user?: any, options?: IVerifyOptions) => void): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LocalStrategy = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const passport_1 = require("@nestjs/passport");
|
|
15
|
+
const passport_local_1 = require("passport-local");
|
|
16
|
+
let LocalStrategy = class LocalStrategy extends (0, passport_1.PassportStrategy)(passport_local_1.Strategy) {
|
|
17
|
+
constructor() {
|
|
18
|
+
super({
|
|
19
|
+
passReqToCallback: true,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async validate(_, username, password, done) {
|
|
23
|
+
if (username !== 'test' || password !== 'test') {
|
|
24
|
+
return done(new common_1.UnauthorizedException(), false);
|
|
25
|
+
}
|
|
26
|
+
return done(null, { username });
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.LocalStrategy = LocalStrategy;
|
|
30
|
+
exports.LocalStrategy = LocalStrategy = __decorate([
|
|
31
|
+
(0, common_1.Injectable)(),
|
|
32
|
+
__metadata("design:paramtypes", [])
|
|
33
|
+
], LocalStrategy);
|
|
34
|
+
//# sourceMappingURL=local.strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.strategy.js","sourceRoot":"","sources":["../../../../src/auth/_test/_strategies/local.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkE;AAClE,+CAAmD;AACnD,mDAAyD;AAIlD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,IAAA,2BAAgB,EAAC,yBAAQ,CAAC;IAC3D;QACE,KAAK,CAAC;YACJ,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,CAAU,EACV,QAAgB,EAChB,QAAgB,EAChB,IAAgE;QAEhE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,IAAI,8BAAqB,EAAE,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IACjC,CAAC;CACF,CAAA;AAlBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;;GACA,aAAa,CAkBzB"}
|