@tsed/platform-exceptions 6.88.0 → 6.91.0
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/lib/{components → cjs/components}/ErrorFilter.d.ts +0 -0
- package/lib/cjs/components/ErrorFilter.js +48 -0
- package/lib/cjs/components/ErrorFilter.js.map +1 -0
- package/lib/{components → cjs/components}/ExceptionFilter.d.ts +0 -0
- package/lib/cjs/components/ExceptionFilter.js +23 -0
- package/lib/cjs/components/ExceptionFilter.js.map +1 -0
- package/lib/{components → cjs/components}/MongooseErrorFilter.d.ts +0 -0
- package/lib/cjs/components/MongooseErrorFilter.js +17 -0
- package/lib/cjs/components/MongooseErrorFilter.js.map +1 -0
- package/lib/{components → cjs/components}/StringErrorFilter.d.ts +0 -0
- package/lib/cjs/components/StringErrorFilter.js +16 -0
- package/lib/cjs/components/StringErrorFilter.js.map +1 -0
- package/lib/{decorators → cjs/decorators}/catch.d.ts +0 -0
- package/lib/cjs/decorators/catch.js +23 -0
- package/lib/cjs/decorators/catch.js.map +1 -0
- package/lib/{domain → cjs/domain}/ExceptionFiltersContainer.d.ts +0 -0
- package/lib/cjs/domain/ExceptionFiltersContainer.js +16 -0
- package/lib/cjs/domain/ExceptionFiltersContainer.js.map +1 -0
- package/lib/{domain → cjs/domain}/ExceptionSchema.d.ts +0 -0
- package/lib/cjs/domain/ExceptionSchema.js +36 -0
- package/lib/cjs/domain/ExceptionSchema.js.map +1 -0
- package/lib/{errors → cjs/errors}/ResourceNotFound.d.ts +0 -0
- package/lib/cjs/errors/ResourceNotFound.js +12 -0
- package/lib/cjs/errors/ResourceNotFound.js.map +1 -0
- package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
- package/lib/cjs/index.js +19 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/ExceptionFilterMethods.d.ts +0 -0
- package/lib/cjs/interfaces/ExceptionFilterMethods.js +3 -0
- package/lib/cjs/interfaces/ExceptionFilterMethods.js.map +1 -0
- package/lib/{services → cjs/services}/PlatformExceptions.d.ts +0 -0
- package/lib/cjs/services/PlatformExceptions.js +55 -0
- package/lib/cjs/services/PlatformExceptions.js.map +1 -0
- package/lib/esm/components/ErrorFilter.js +45 -0
- package/lib/esm/components/ErrorFilter.js.map +1 -0
- package/lib/esm/components/ExceptionFilter.js +20 -0
- package/lib/esm/components/ExceptionFilter.js.map +1 -0
- package/lib/esm/components/MongooseErrorFilter.js +14 -0
- package/lib/esm/components/MongooseErrorFilter.js.map +1 -0
- package/lib/esm/components/StringErrorFilter.js +13 -0
- package/lib/esm/components/StringErrorFilter.js.map +1 -0
- package/lib/esm/decorators/catch.js +19 -0
- package/lib/esm/decorators/catch.js.map +1 -0
- package/lib/esm/domain/ExceptionFiltersContainer.js +12 -0
- package/lib/esm/domain/ExceptionFiltersContainer.js.map +1 -0
- package/lib/esm/domain/ExceptionSchema.js +33 -0
- package/lib/esm/domain/ExceptionSchema.js.map +1 -0
- package/lib/esm/errors/ResourceNotFound.js +8 -0
- package/lib/esm/errors/ResourceNotFound.js.map +1 -0
- package/lib/esm/index.js +16 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/interfaces/ExceptionFilterMethods.js +2 -0
- package/lib/esm/interfaces/ExceptionFilterMethods.js.map +1 -0
- package/lib/esm/services/PlatformExceptions.js +52 -0
- package/lib/esm/services/PlatformExceptions.js.map +1 -0
- package/lib/types/components/ErrorFilter.d.ts +15 -0
- package/lib/types/components/ExceptionFilter.d.ts +6 -0
- package/lib/types/components/MongooseErrorFilter.d.ts +5 -0
- package/lib/types/components/StringErrorFilter.d.ts +5 -0
- package/lib/types/decorators/catch.d.ts +7 -0
- package/lib/types/domain/ExceptionFiltersContainer.d.ts +14 -0
- package/lib/types/domain/ExceptionSchema.d.ts +1 -0
- package/lib/types/errors/ResourceNotFound.d.ts +5 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/interfaces/ExceptionFilterMethods.d.ts +4 -0
- package/lib/types/services/PlatformExceptions.d.ts +15 -0
- package/package.json +18 -14
- package/tsconfig.compile.esm.json +23 -0
- package/lib/index.js +0 -248
- package/lib/index.js.map +0 -1
- package/lib/index.modern.js +0 -224
- package/lib/index.modern.js.map +0 -1
package/lib/index.modern.js
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from 'tslib';
|
|
2
|
-
import { registerProvider, Inject, InjectorService, Injectable } from '@tsed/di';
|
|
3
|
-
import * as Exceptions from '@tsed/exceptions';
|
|
4
|
-
import { Exception, BadRequest, NotFound } from '@tsed/exceptions';
|
|
5
|
-
import { Env, nameOf, classOf, ancestorsOf } from '@tsed/core';
|
|
6
|
-
import { object, string, from, number, array, getStatusConstant, defineStatusModel } from '@tsed/schema';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
// tslint:disable-next-line:variable-name
|
|
12
|
-
const ExceptionFiltersContainer = new Map();
|
|
13
|
-
/**
|
|
14
|
-
* @ignore
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
function registerExceptionType(type, token) {
|
|
18
|
-
ExceptionFiltersContainer.set(type, token);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Register a new class to handle an specific exception.
|
|
23
|
-
* @decorator
|
|
24
|
-
* @param types
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
function Catch(...types) {
|
|
28
|
-
return target => {
|
|
29
|
-
types.forEach(type => {
|
|
30
|
-
registerExceptionType(type, target);
|
|
31
|
-
});
|
|
32
|
-
registerProvider({
|
|
33
|
-
provide: target,
|
|
34
|
-
useClass: target
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const toHTML = (message = "") => message.replace(/\n/gi, "<br />");
|
|
40
|
-
|
|
41
|
-
let StringErrorFilter = class StringErrorFilter {
|
|
42
|
-
catch(error, ctx) {
|
|
43
|
-
ctx.response.status(404).body(toHTML(error));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
StringErrorFilter = __decorate([Catch(String)], StringErrorFilter);
|
|
48
|
-
|
|
49
|
-
function _extends() {
|
|
50
|
-
_extends = Object.assign || function (target) {
|
|
51
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
52
|
-
var source = arguments[i];
|
|
53
|
-
|
|
54
|
-
for (var key in source) {
|
|
55
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
56
|
-
target[key] = source[key];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return target;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
return _extends.apply(this, arguments);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
let ErrorFilter = class ErrorFilter {
|
|
68
|
-
catch(error, ctx) {
|
|
69
|
-
const {
|
|
70
|
-
response,
|
|
71
|
-
logger,
|
|
72
|
-
env
|
|
73
|
-
} = ctx;
|
|
74
|
-
const err = this.mapError(error, env);
|
|
75
|
-
logger.error({
|
|
76
|
-
error: _extends({}, err, {
|
|
77
|
-
stack: error.stack
|
|
78
|
-
})
|
|
79
|
-
});
|
|
80
|
-
response.setHeaders(this.getHeaders(error)).status(err.status).contentType("application/json").body(env === Env.PROD ? "InternalServerError" : err);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
mapError(error, env) {
|
|
84
|
-
var _error$origin;
|
|
85
|
-
|
|
86
|
-
return {
|
|
87
|
-
name: ((_error$origin = error.origin) == null ? void 0 : _error$origin.name) || error.name,
|
|
88
|
-
message: error.message,
|
|
89
|
-
status: error.status || 500,
|
|
90
|
-
errors: this.getErrors(error),
|
|
91
|
-
stack: env === Env.DEV ? error.stack : undefined
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
getErrors(error) {
|
|
96
|
-
return [error, error.origin].filter(Boolean).reduce((errs, {
|
|
97
|
-
errors
|
|
98
|
-
}) => {
|
|
99
|
-
return errs.concat(errors).filter(Boolean);
|
|
100
|
-
}, []);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
getHeaders(error) {
|
|
104
|
-
return [error, error.origin].filter(Boolean).reduce((obj, {
|
|
105
|
-
headers
|
|
106
|
-
}) => {
|
|
107
|
-
return _extends({}, obj, headers || {});
|
|
108
|
-
}, {});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
};
|
|
112
|
-
ErrorFilter = __decorate([Catch(Error)], ErrorFilter);
|
|
113
|
-
|
|
114
|
-
let ExceptionFilter = class ExceptionFilter extends ErrorFilter {
|
|
115
|
-
catch(error, ctx) {
|
|
116
|
-
const {
|
|
117
|
-
response,
|
|
118
|
-
logger,
|
|
119
|
-
env
|
|
120
|
-
} = ctx;
|
|
121
|
-
const err = this.mapError(error, env);
|
|
122
|
-
logger.error({
|
|
123
|
-
error: err,
|
|
124
|
-
stack: error.stack
|
|
125
|
-
});
|
|
126
|
-
response.setHeaders(this.getHeaders(error)).contentType("application/json").status(error.status).body(err);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
};
|
|
130
|
-
ExceptionFilter = __decorate([Catch(Exception)], ExceptionFilter);
|
|
131
|
-
|
|
132
|
-
let MongooseErrorFilter = class MongooseErrorFilter extends ErrorFilter {
|
|
133
|
-
catch(error, ctx) {
|
|
134
|
-
return super.catch(new BadRequest(error.message, error), ctx);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
};
|
|
138
|
-
MongooseErrorFilter = __decorate([Catch("MongooseError", "MongoError")], MongooseErrorFilter);
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* @ignore
|
|
142
|
-
*/
|
|
143
|
-
|
|
144
|
-
const ErrorSchema = object({
|
|
145
|
-
name: string().required().description("The error name"),
|
|
146
|
-
message: string().required().description("An error message")
|
|
147
|
-
}).label("GenericError").unknown();
|
|
148
|
-
from(Exception).properties({
|
|
149
|
-
name: string().required().description("The error name"),
|
|
150
|
-
message: string().required().description("An error message"),
|
|
151
|
-
status: number().required().description("The status code of the exception"),
|
|
152
|
-
errors: array().items(ErrorSchema).description("A list of related errors"),
|
|
153
|
-
stack: string().description("The stack trace (only in development mode)")
|
|
154
|
-
}); // Auto load models for all Exceptions
|
|
155
|
-
|
|
156
|
-
Object.values(Exceptions).forEach(target => {
|
|
157
|
-
if (target !== Exception && target.STATUS) {
|
|
158
|
-
if (target.STATUS > 302) {
|
|
159
|
-
const name = getStatusConstant(target.STATUS);
|
|
160
|
-
from(target).properties({
|
|
161
|
-
name: string().required().example(name).default(name).description("The error name"),
|
|
162
|
-
status: number().required().example(target.STATUS).default(target.STATUS).description("The status code of the exception")
|
|
163
|
-
});
|
|
164
|
-
defineStatusModel(target.STATUS, target);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
class ResourceNotFound extends NotFound {
|
|
170
|
-
constructor(url) {
|
|
171
|
-
super(`Resource "${url}" not found`);
|
|
172
|
-
this.url = url;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Catch all errors and return the json error with the right status code when it's possible.
|
|
179
|
-
*
|
|
180
|
-
* @platform
|
|
181
|
-
*/
|
|
182
|
-
|
|
183
|
-
let PlatformExceptions = class PlatformExceptions {
|
|
184
|
-
constructor() {
|
|
185
|
-
this.types = new Map();
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
$onInit() {
|
|
189
|
-
ExceptionFiltersContainer.forEach((token, type) => {
|
|
190
|
-
this.types.set(type, this.injector.get(token));
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
catch(error, ctx) {
|
|
195
|
-
const name = nameOf(classOf(error));
|
|
196
|
-
|
|
197
|
-
if (name && this.types.has(name)) {
|
|
198
|
-
return this.types.get(name).catch(error, ctx);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
const target = ancestorsOf(error).reverse().find(target => this.types.has(target));
|
|
202
|
-
|
|
203
|
-
if (target) {
|
|
204
|
-
return this.types.get(target).catch(error, ctx);
|
|
205
|
-
} // default
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return this.types.get(Error).catch(error, ctx);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
resourceNotFound(ctx) {
|
|
212
|
-
return this.catch(new ResourceNotFound(ctx.request.url), ctx);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
__decorate([Inject(), __metadata("design:type", InjectorService)], PlatformExceptions.prototype, "injector", void 0);
|
|
218
|
-
|
|
219
|
-
PlatformExceptions = __decorate([Injectable({
|
|
220
|
-
imports: [ErrorFilter, ExceptionFilter, MongooseErrorFilter, StringErrorFilter]
|
|
221
|
-
})], PlatformExceptions);
|
|
222
|
-
|
|
223
|
-
export { Catch, ErrorFilter, ExceptionFilter, ExceptionFiltersContainer, MongooseErrorFilter, PlatformExceptions, ResourceNotFound, StringErrorFilter, registerExceptionType };
|
|
224
|
-
//# sourceMappingURL=index.modern.js.map
|
package/lib/index.modern.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/domain/ExceptionFiltersContainer.ts","../src/decorators/catch.ts","../src/components/StringErrorFilter.ts","../src/components/ErrorFilter.ts","../src/components/ExceptionFilter.ts","../src/components/MongooseErrorFilter.ts","../src/domain/ExceptionSchema.ts","../src/errors/ResourceNotFound.ts","../src/services/PlatformExceptions.ts"],"sourcesContent":["import {Type} from \"@tsed/core\";\nimport type {ExceptionFilterMethods} from \"../interfaces/ExceptionFilterMethods\";\n/**\n * @ignore\n */\nexport type ExceptionFilterKey = Type<any> | Symbol | string;\n/**\n * @ignore\n */\n// tslint:disable-next-line:variable-name\nexport const ExceptionFiltersContainer = new Map<ExceptionFilterKey, Type<ExceptionFilterMethods>>();\n/**\n * @ignore\n */\nexport function registerExceptionType(type: ExceptionFilterKey, token: Type<ExceptionFilterMethods>) {\n ExceptionFiltersContainer.set(type, token);\n}\n","import {Type} from \"@tsed/core\";\nimport {registerProvider} from \"@tsed/di\";\nimport {registerExceptionType} from \"../domain/ExceptionFiltersContainer\";\n\n/**\n * Register a new class to handle an specific exception.\n * @decorator\n * @param types\n */\nexport function Catch(...types: (Type<Error | any> | string)[]) {\n return (target: any) => {\n types.forEach((type) => {\n registerExceptionType(type, target as any);\n });\n registerProvider({\n provide: target,\n useClass: target\n });\n };\n}\n","import {BaseContext} from \"@tsed/di\";\nimport {Catch} from \"../decorators/catch\";\nimport type {ExceptionFilterMethods} from \"../interfaces/ExceptionFilterMethods\";\n\nconst toHTML = (message = \"\") => message.replace(/\\n/gi, \"<br />\");\n\n@Catch(String)\nexport class StringErrorFilter implements ExceptionFilterMethods {\n catch(error: string, ctx: BaseContext): void {\n ctx.response.status(404).body(toHTML(error));\n }\n}\n","import {Env} from \"@tsed/core\";\nimport {BaseContext} from \"@tsed/di\";\nimport {Catch} from \"../decorators/catch\";\nimport type {ExceptionFilterMethods} from \"../interfaces/ExceptionFilterMethods\";\n\n@Catch(Error)\nexport class ErrorFilter implements ExceptionFilterMethods {\n catch(error: any, ctx: BaseContext): void {\n const {response, logger, env} = ctx;\n const err = this.mapError(error, env);\n\n logger.error({\n error: {...err, stack: error.stack}\n });\n\n response\n .setHeaders(this.getHeaders(error))\n .status(err.status)\n .contentType(\"application/json\")\n .body(env === Env.PROD ? \"InternalServerError\" : err);\n }\n\n mapError(error: any, env?: Env) {\n return {\n name: error.origin?.name || error.name,\n message: error.message,\n status: error.status || 500,\n errors: this.getErrors(error),\n stack: env === Env.DEV ? error.stack : undefined\n };\n }\n\n protected getErrors(error: any) {\n return [error, error.origin].filter(Boolean).reduce((errs, {errors}: any) => {\n return errs.concat(errors).filter(Boolean);\n }, []);\n }\n\n protected getHeaders(error: any) {\n return [error, error.origin].filter(Boolean).reduce((obj, {headers}: any) => {\n return {\n ...obj,\n ...(headers || {})\n };\n }, {});\n }\n}\n","import {BaseContext} from \"@tsed/di\";\nimport {Exception} from \"@tsed/exceptions\";\nimport {Catch} from \"../decorators/catch\";\nimport {ErrorFilter} from \"./ErrorFilter\";\n\n@Catch(Exception)\nexport class ExceptionFilter extends ErrorFilter {\n catch(error: Exception, ctx: BaseContext) {\n const {response, logger, env} = ctx;\n const err = this.mapError(error, env);\n logger.error({\n error: err,\n stack: error.stack\n });\n\n response.setHeaders(this.getHeaders(error)).contentType(\"application/json\").status(error.status).body(err);\n }\n}\n","import {BaseContext} from \"@tsed/di\";\nimport {BadRequest} from \"@tsed/exceptions\";\nimport {Catch} from \"../decorators/catch\";\nimport {ErrorFilter} from \"./ErrorFilter\";\n\n@Catch(\"MongooseError\", \"MongoError\")\nexport class MongooseErrorFilter extends ErrorFilter {\n catch(error: Error, ctx: BaseContext) {\n return super.catch(new BadRequest(error.message, error), ctx);\n }\n}\n","import * as Exceptions from \"@tsed/exceptions\";\nimport {Exception} from \"@tsed/exceptions\";\nimport {array, defineStatusModel, from, getStatusConstant, number, object, string} from \"@tsed/schema\";\n\n/**\n * @ignore\n */\nconst ErrorSchema = object({\n name: string().required().description(\"The error name\"),\n message: string().required().description(\"An error message\")\n})\n .label(\"GenericError\")\n .unknown();\n\nfrom(Exception).properties({\n name: string().required().description(\"The error name\"),\n message: string().required().description(\"An error message\"),\n status: number().required().description(\"The status code of the exception\"),\n errors: array().items(ErrorSchema).description(\"A list of related errors\"),\n stack: string().description(\"The stack trace (only in development mode)\")\n});\n\n// Auto load models for all Exceptions\nObject.values(Exceptions).forEach((target: any) => {\n if (target !== Exception && target.STATUS) {\n if (target.STATUS > 302) {\n const name = getStatusConstant(target.STATUS);\n from(target).properties({\n name: string().required().example(name).default(name).description(\"The error name\"),\n status: number().required().example(target.STATUS).default(target.STATUS).description(\"The status code of the exception\")\n });\n\n defineStatusModel(target.STATUS, target);\n }\n }\n});\n","import {NotFound} from \"@tsed/exceptions\";\n\nexport class ResourceNotFound extends NotFound {\n readonly url: string;\n\n constructor(url: string) {\n super(`Resource \"${url}\" not found`);\n\n this.url = url;\n }\n}\n","import {ancestorsOf, classOf, nameOf} from \"@tsed/core\";\nimport {BaseContext, Inject, Injectable, InjectorService} from \"@tsed/di\";\nimport {ErrorFilter} from \"../components/ErrorFilter\";\nimport {ExceptionFilter} from \"../components/ExceptionFilter\";\nimport {MongooseErrorFilter} from \"../components/MongooseErrorFilter\";\nimport {StringErrorFilter} from \"../components/StringErrorFilter\";\nimport {ExceptionFilterKey, ExceptionFiltersContainer} from \"../domain/ExceptionFiltersContainer\";\nimport {ResourceNotFound} from \"../errors/ResourceNotFound\";\nimport {ExceptionFilterMethods} from \"../interfaces/ExceptionFilterMethods\";\n\n/**\n * Catch all errors and return the json error with the right status code when it's possible.\n *\n * @platform\n */\n@Injectable({\n imports: [ErrorFilter, ExceptionFilter, MongooseErrorFilter, StringErrorFilter]\n})\nexport class PlatformExceptions {\n types: Map<ExceptionFilterKey, ExceptionFilterMethods> = new Map();\n\n @Inject()\n injector: InjectorService;\n\n $onInit() {\n ExceptionFiltersContainer.forEach((token, type) => {\n this.types.set(type, this.injector.get(token)!);\n });\n }\n\n catch(error: unknown, ctx: BaseContext) {\n const name = nameOf(classOf(error));\n\n if (name && this.types.has(name)) {\n return this.types.get(name)!.catch(error, ctx);\n }\n\n const target = ancestorsOf(error)\n .reverse()\n .find((target) => this.types.has(target));\n\n if (target) {\n return this.types.get(target)!.catch(error, ctx);\n }\n\n // default\n return this.types.get(Error)!.catch(error, ctx);\n }\n\n resourceNotFound(ctx: BaseContext) {\n return this.catch(new ResourceNotFound(ctx.request.url), ctx);\n }\n}\n"],"names":["ExceptionFiltersContainer","Map","registerExceptionType","type","token","set","Catch","types","target","forEach","registerProvider","provide","useClass","toHTML","message","replace","StringErrorFilter","catch","error","ctx","response","status","body","String","ErrorFilter","logger","env","err","mapError","stack","setHeaders","getHeaders","contentType","Env","PROD","name","origin","errors","getErrors","DEV","undefined","filter","Boolean","reduce","errs","concat","obj","headers","Error","ExceptionFilter","Exception","MongooseErrorFilter","BadRequest","ErrorSchema","object","string","required","description","label","unknown","from","properties","number","array","items","Object","values","Exceptions","STATUS","getStatusConstant","example","default","defineStatusModel","ResourceNotFound","NotFound","constructor","url","PlatformExceptions","$onInit","injector","get","nameOf","classOf","has","ancestorsOf","reverse","find","resourceNotFound","request","__decorate","Inject","InjectorService","Injectable","imports"],"mappings":"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"}
|