@stemy/backend 3.5.16 → 4.0.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/commands/clear-command.d.ts +6 -0
- package/commands/fixtures-command.d.ts +9 -0
- package/commands/index.d.ts +2 -0
- package/common-types.d.ts +29 -7
- package/esm2020/commands/clear-command.mjs +17 -0
- package/esm2020/commands/fixtures-command.mjs +23 -0
- package/esm2020/commands/index.mjs +7 -0
- package/esm2020/common-types.mjs +21 -0
- package/esm2020/public_api.mjs +379 -0
- package/esm2020/requests/asset-image-params.mjs +53 -0
- package/esm2020/rest-controllers/assets.controller.mjs +126 -0
- package/esm2020/rest-controllers/auth.controller.mjs +46 -0
- package/esm2020/rest-controllers/gallery.controller.mjs +21 -0
- package/esm2020/rest-controllers/progresses.controller.mjs +29 -0
- package/esm2020/rest-controllers/terminal-styles.mjs +67 -0
- package/esm2020/rest-controllers/terminal.controller.mjs +125 -0
- package/esm2020/rest-middlewares/container.middleware.mjs +20 -0
- package/esm2020/rest-middlewares/error-handler.middleware.mjs +74 -0
- package/esm2020/rest-middlewares/language.middleware.mjs +18 -0
- package/esm2020/rest-middlewares/request-ended.middleware.mjs +23 -0
- package/esm2020/rest-middlewares/request-started.middleware.mjs +22 -0
- package/esm2020/services/asset-processor.mjs +90 -0
- package/esm2020/services/asset-resolver.mjs +31 -0
- package/esm2020/services/assets.mjs +140 -0
- package/esm2020/services/backend-provider.mjs +22 -0
- package/esm2020/services/cache-processor.mjs +16 -0
- package/esm2020/services/cache.mjs +62 -0
- package/esm2020/services/configuration.mjs +65 -0
- package/esm2020/services/endpoint-provider.mjs +13 -0
- package/esm2020/services/entities/asset.mjs +43 -0
- package/esm2020/services/entities/base-entity.mjs +26 -0
- package/esm2020/services/entities/lazy-asset.mjs +73 -0
- package/esm2020/services/entities/progress.mjs +176 -0
- package/esm2020/services/entities/temp-asset.mjs +45 -0
- package/esm2020/services/fixtures.mjs +26 -0
- package/esm2020/services/gallery-cache.mjs +27 -0
- package/esm2020/services/gallery-image.mjs +37 -0
- package/esm2020/services/gallery.mjs +116 -0
- package/esm2020/services/id-generator.mjs +42 -0
- package/esm2020/services/job-manager.mjs +187 -0
- package/esm2020/services/lazy-assets.mjs +48 -0
- package/esm2020/services/logger.mjs +21 -0
- package/esm2020/services/mail-sender.mjs +36 -0
- package/esm2020/services/memory-cache.mjs +57 -0
- package/esm2020/services/mongo-connector.mjs +37 -0
- package/esm2020/services/open-api.mjs +114 -0
- package/esm2020/services/progresses.mjs +86 -0
- package/esm2020/services/template-renderer.mjs +64 -0
- package/esm2020/services/terminal-manager.mjs +77 -0
- package/esm2020/services/token-generator.mjs +35 -0
- package/esm2020/services/translation-provider.mjs +34 -0
- package/esm2020/services/translator.mjs +63 -0
- package/esm2020/services/user-manager.mjs +27 -0
- package/esm2020/socket-controllers/progress.controller.mjs +52 -0
- package/esm2020/socket-controllers/terminal.controller.mjs +48 -0
- package/esm2020/socket-controllers/terminal.mjs +85 -0
- package/esm2020/socket-middlewares/compression.middleware.mjs +14 -0
- package/esm2020/static.mjs +23 -0
- package/esm2020/utilities/decorators.mjs +52 -0
- package/esm2020/utilities/di-container.mjs +83 -0
- package/esm2020/utilities/empty-job.mjs +13 -0
- package/esm2020/utilities/lazy-asset-generator.mjs +35 -0
- package/esm2020/utilities/mongoose.mjs +216 -0
- package/esm2020/utils.mjs +693 -0
- package/esm2020/validators.mjs +46 -0
- package/fesm2015/{stemy-backend.js → stemy-backend.mjs} +1923 -2220
- package/fesm2015/stemy-backend.mjs.map +1 -0
- package/fesm2020/stemy-backend.mjs +4202 -0
- package/fesm2020/stemy-backend.mjs.map +1 -0
- package/{stemy-backend.d.ts → index.d.ts} +1 -0
- package/package.json +36 -23
- package/public_api.d.ts +3 -2
- package/rest-controllers/terminal-styles.d.ts +2 -0
- package/rest-controllers/terminal.controller.d.ts +10 -0
- package/services/asset-processor.d.ts +0 -3
- package/services/assets.d.ts +1 -0
- package/services/configuration.d.ts +2 -1
- package/services/entities/asset.d.ts +1 -0
- package/services/entities/temp-asset.d.ts +1 -0
- package/services/fixtures.d.ts +2 -2
- package/services/terminal-manager.d.ts +15 -0
- package/socket-controllers/terminal.controller.d.ts +13 -0
- package/socket-controllers/terminal.d.ts +20 -0
- package/utils.d.ts +7 -1
- package/bundles/stemy-backend.umd.js +0 -7081
- package/bundles/stemy-backend.umd.js.map +0 -1
- package/esm2015/common-types.js +0 -19
- package/esm2015/public_api.js +0 -359
- package/esm2015/requests/asset-image-params.js +0 -70
- package/esm2015/rest-controllers/assets.controller.js +0 -180
- package/esm2015/rest-controllers/auth.controller.js +0 -76
- package/esm2015/rest-controllers/gallery.controller.js +0 -37
- package/esm2015/rest-controllers/progresses.controller.js +0 -57
- package/esm2015/rest-middlewares/container.middleware.js +0 -32
- package/esm2015/rest-middlewares/error-handler.middleware.js +0 -99
- package/esm2015/rest-middlewares/language.middleware.js +0 -28
- package/esm2015/rest-middlewares/request-ended.middleware.js +0 -33
- package/esm2015/rest-middlewares/request-started.middleware.js +0 -32
- package/esm2015/rest-openapi.js +0 -44
- package/esm2015/services/asset-processor.js +0 -129
- package/esm2015/services/asset-resolver.js +0 -53
- package/esm2015/services/assets.js +0 -181
- package/esm2015/services/backend-provider.js +0 -32
- package/esm2015/services/cache-processor.js +0 -34
- package/esm2015/services/cache.js +0 -93
- package/esm2015/services/configuration.js +0 -69
- package/esm2015/services/endpoint-provider.js +0 -29
- package/esm2015/services/entities/asset.js +0 -60
- package/esm2015/services/entities/base-entity.js +0 -37
- package/esm2015/services/entities/lazy-asset.js +0 -90
- package/esm2015/services/entities/progress.js +0 -213
- package/esm2015/services/entities/temp-asset.js +0 -64
- package/esm2015/services/fixtures.js +0 -45
- package/esm2015/services/gallery-cache.js +0 -36
- package/esm2015/services/gallery-image.js +0 -48
- package/esm2015/services/gallery.js +0 -138
- package/esm2015/services/id-generator.js +0 -63
- package/esm2015/services/job-manager.js +0 -221
- package/esm2015/services/lazy-assets.js +0 -83
- package/esm2015/services/logger.js +0 -31
- package/esm2015/services/mail-sender.js +0 -58
- package/esm2015/services/memory-cache.js +0 -84
- package/esm2015/services/mongo-connector.js +0 -58
- package/esm2015/services/open-api.js +0 -140
- package/esm2015/services/progresses.js +0 -118
- package/esm2015/services/template-renderer.js +0 -89
- package/esm2015/services/token-generator.js +0 -55
- package/esm2015/services/translation-provider.js +0 -54
- package/esm2015/services/translator.js +0 -84
- package/esm2015/services/user-manager.js +0 -47
- package/esm2015/socket-controllers/progress.controller.js +0 -82
- package/esm2015/socket-middlewares/compression.middleware.js +0 -19
- package/esm2015/static.js +0 -33
- package/esm2015/utilities/decorators.js +0 -54
- package/esm2015/utilities/di-container.js +0 -84
- package/esm2015/utilities/empty-job.js +0 -29
- package/esm2015/utilities/lazy-asset-generator.js +0 -46
- package/esm2015/utilities/mongoose.js +0 -225
- package/esm2015/utils.js +0 -672
- package/esm2015/validators.js +0 -51
- package/fesm2015/stemy-backend.js.map +0 -1
- package/rest-openapi.d.ts +0 -3
- package/stemy-backend.metadata.json +0 -1
- /package/{esm2015/stemy-backend.js → esm2020/stemy-backend.mjs} +0 -0
- /package/{esm2015/utilities/base-doc.js → esm2020/utilities/base-doc.mjs} +0 -0
- /package/{esm2015/utilities/tree.js → esm2020/utilities/tree.mjs} +0 -0
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
import { injectable } from "tsyringe";
|
|
23
|
-
import { Authorized, Body, Controller, Get, HttpError, Param, Post, QueryParam, QueryParams, Res, UploadedFile } from "routing-controllers";
|
|
24
|
-
import { Assets } from "../services/assets";
|
|
25
|
-
import { AssetResolver } from "../services/asset-resolver";
|
|
26
|
-
import { AssetImageParams } from "../requests/asset-image-params";
|
|
27
|
-
let AssetsController = class AssetsController {
|
|
28
|
-
constructor(assets, assetResolver) {
|
|
29
|
-
this.assets = assets;
|
|
30
|
-
this.assetResolver = assetResolver;
|
|
31
|
-
}
|
|
32
|
-
upload(file) {
|
|
33
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
try {
|
|
35
|
-
const contentType = file.mimetype === "application/octet-stream" ? null : file.mimetype;
|
|
36
|
-
const asset = yield this.assets.writeBuffer(file.buffer, { filename: file.filename }, contentType);
|
|
37
|
-
return asset.toJSON();
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
const msg = (e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error";
|
|
41
|
-
throw new HttpError(400, `Asset can't be uploaded.\n${msg}`);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
uploadUrl(body) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
try {
|
|
48
|
-
const asset = yield this.assets.writeUrl(body.url, body);
|
|
49
|
-
return asset.toJSON();
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
const msg = (e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error";
|
|
53
|
-
throw new HttpError(400, `Asset can't be uploaded.\n${msg}`);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
getFile(id, lazy, res) {
|
|
58
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
const asset = yield this.getAsset("Asset", id, lazy, res);
|
|
60
|
-
return asset.download();
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
getImageRotation(id, params, res, rotation = 0) {
|
|
64
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
const asset = yield this.getAsset("Image", id, params.lazy, res);
|
|
66
|
-
if (rotation !== 0) {
|
|
67
|
-
params.rotation = params.rotation || rotation;
|
|
68
|
-
}
|
|
69
|
-
return asset.downloadImage(params);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
getImage(id, params, res) {
|
|
73
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
return this.getImageRotation(id, params, res);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
getFileByName(name, res) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const asset = yield this.getAssetByName("Asset", name, res);
|
|
80
|
-
return asset.download();
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
getImageByName(name, params, res) {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
const asset = yield this.getAssetByName("Image", name, res);
|
|
86
|
-
return asset.downloadImage(params);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
setAssetHeaders(type, asset, res) {
|
|
90
|
-
var _a, _b;
|
|
91
|
-
if ((_a = asset.metadata) === null || _a === void 0 ? void 0 : _a.classified) {
|
|
92
|
-
throw new HttpError(403, `${type} is classified, and can be only downloaded from a custom url.`);
|
|
93
|
-
}
|
|
94
|
-
const ext = (_b = asset.metadata) === null || _b === void 0 ? void 0 : _b.extension;
|
|
95
|
-
if (ext) {
|
|
96
|
-
res.header("content-disposition", `inline; filename=${asset.filename}.${ext}`);
|
|
97
|
-
}
|
|
98
|
-
if (asset.contentType) {
|
|
99
|
-
res.header("content-type", asset.contentType);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
getAsset(type, id, lazy, res) {
|
|
103
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
const asset = yield this.assetResolver.resolve(id, lazy);
|
|
105
|
-
if (!asset) {
|
|
106
|
-
throw new HttpError(404, `${type} with id: '${id}' not found.`);
|
|
107
|
-
}
|
|
108
|
-
this.setAssetHeaders(type, asset, res);
|
|
109
|
-
return asset;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
getAssetByName(type, filename, res) {
|
|
113
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
-
const asset = yield this.assets.find({ filename });
|
|
115
|
-
if (!asset) {
|
|
116
|
-
throw new HttpError(404, `${type} with filename: '${filename}' not found.`);
|
|
117
|
-
}
|
|
118
|
-
this.setAssetHeaders(type, asset, res);
|
|
119
|
-
return asset;
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
__decorate([
|
|
124
|
-
Authorized(),
|
|
125
|
-
Post(""),
|
|
126
|
-
__param(0, UploadedFile("file")),
|
|
127
|
-
__metadata("design:type", Function),
|
|
128
|
-
__metadata("design:paramtypes", [Object]),
|
|
129
|
-
__metadata("design:returntype", Promise)
|
|
130
|
-
], AssetsController.prototype, "upload", null);
|
|
131
|
-
__decorate([
|
|
132
|
-
Authorized(),
|
|
133
|
-
Post("url"),
|
|
134
|
-
__param(0, Body()),
|
|
135
|
-
__metadata("design:type", Function),
|
|
136
|
-
__metadata("design:paramtypes", [Object]),
|
|
137
|
-
__metadata("design:returntype", Promise)
|
|
138
|
-
], AssetsController.prototype, "uploadUrl", null);
|
|
139
|
-
__decorate([
|
|
140
|
-
Get("/:id"),
|
|
141
|
-
__param(0, Param("id")), __param(1, QueryParam("lazy")), __param(2, Res()),
|
|
142
|
-
__metadata("design:type", Function),
|
|
143
|
-
__metadata("design:paramtypes", [String, Boolean, Object]),
|
|
144
|
-
__metadata("design:returntype", Promise)
|
|
145
|
-
], AssetsController.prototype, "getFile", null);
|
|
146
|
-
__decorate([
|
|
147
|
-
Get("/image/:id/:rotation"),
|
|
148
|
-
__param(0, Param("id")), __param(1, QueryParams()), __param(2, Res()), __param(3, Param("rotation")),
|
|
149
|
-
__metadata("design:type", Function),
|
|
150
|
-
__metadata("design:paramtypes", [String, AssetImageParams, Object, Number]),
|
|
151
|
-
__metadata("design:returntype", Promise)
|
|
152
|
-
], AssetsController.prototype, "getImageRotation", null);
|
|
153
|
-
__decorate([
|
|
154
|
-
Get("/image/:id"),
|
|
155
|
-
__param(0, Param("id")), __param(1, QueryParams()), __param(2, Res()),
|
|
156
|
-
__metadata("design:type", Function),
|
|
157
|
-
__metadata("design:paramtypes", [String, AssetImageParams, Object]),
|
|
158
|
-
__metadata("design:returntype", Promise)
|
|
159
|
-
], AssetsController.prototype, "getImage", null);
|
|
160
|
-
__decorate([
|
|
161
|
-
Get("/by-name/:name"),
|
|
162
|
-
__param(0, Param("name")), __param(1, Res()),
|
|
163
|
-
__metadata("design:type", Function),
|
|
164
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
165
|
-
__metadata("design:returntype", Promise)
|
|
166
|
-
], AssetsController.prototype, "getFileByName", null);
|
|
167
|
-
__decorate([
|
|
168
|
-
Get("/by-name/image/:name"),
|
|
169
|
-
__param(0, Param("name")), __param(1, QueryParams()), __param(2, Res()),
|
|
170
|
-
__metadata("design:type", Function),
|
|
171
|
-
__metadata("design:paramtypes", [String, AssetImageParams, Object]),
|
|
172
|
-
__metadata("design:returntype", Promise)
|
|
173
|
-
], AssetsController.prototype, "getImageByName", null);
|
|
174
|
-
AssetsController = __decorate([
|
|
175
|
-
injectable(),
|
|
176
|
-
Controller("/assets"),
|
|
177
|
-
__metadata("design:paramtypes", [Assets, AssetResolver])
|
|
178
|
-
], AssetsController);
|
|
179
|
-
export { AssetsController };
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzdC1jb250cm9sbGVycy9hc3NldHMuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDSCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFVBQVUsRUFDVixHQUFHLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLFdBQVcsRUFDWCxHQUFHLEVBQ0gsWUFBWSxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztJQUluRCxnQkFBZ0IsU0FBaEIsZ0JBQWdCO0lBRXpCLFlBQXFCLE1BQWMsRUFBVyxhQUE0QjtRQUFyRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVcsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFFMUUsQ0FBQztJQUlLLE1BQU0sQ0FBdUIsSUFBeUI7O1lBQ3hELElBQUk7Z0JBQ0EsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUN4RixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNqRyxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUs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NkY1QjtTQTdGWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWRhYmxlfSBmcm9tIFwic3RyZWFtXCI7XHJcbmltcG9ydCB7UmVzcG9uc2V9IGZyb20gXCJleHByZXNzXCI7XHJcbmltcG9ydCB7aW5qZWN0YWJsZX0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBBdXRob3JpemVkLFxyXG4gICAgQm9keSxcclxuICAgIENvbnRyb2xsZXIsXHJcbiAgICBHZXQsXHJcbiAgICBIdHRwRXJyb3IsXHJcbiAgICBQYXJhbSxcclxuICAgIFBvc3QsXHJcbiAgICBRdWVyeVBhcmFtLFxyXG4gICAgUXVlcnlQYXJhbXMsXHJcbiAgICBSZXMsXHJcbiAgICBVcGxvYWRlZEZpbGVcclxufSBmcm9tIFwicm91dGluZy1jb250cm9sbGVyc1wiO1xyXG5pbXBvcnQge0lBc3NldH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge0Fzc2V0c30gZnJvbSBcIi4uL3NlcnZpY2VzL2Fzc2V0c1wiO1xyXG5pbXBvcnQge0Fzc2V0UmVzb2x2ZXJ9IGZyb20gXCIuLi9zZXJ2aWNlcy9hc3NldC1yZXNvbHZlclwiO1xyXG5pbXBvcnQge0Fzc2V0SW1hZ2VQYXJhbXN9IGZyb20gXCIuLi9yZXF1ZXN0cy9hc3NldC1pbWFnZS1wYXJhbXNcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQENvbnRyb2xsZXIoXCIvYXNzZXRzXCIpXHJcbmV4cG9ydCBjbGFzcyBBc3NldHNDb250cm9sbGVyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBhc3NldHM6IEFzc2V0cywgcmVhZG9ubHkgYXNzZXRSZXNvbHZlcjogQXNzZXRSZXNvbHZlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBAQXV0aG9yaXplZCgpXHJcbiAgICBAUG9zdChcIlwiKVxyXG4gICAgYXN5bmMgdXBsb2FkKEBVcGxvYWRlZEZpbGUoXCJmaWxlXCIpIGZpbGU6IEV4cHJlc3MuTXVsdGVyLkZpbGUpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IGZpbGUubWltZXR5cGUgPT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIgPyBudWxsIDogZmlsZS5taW1ldHlwZTtcclxuICAgICAgICAgICAgY29uc3QgYXNzZXQgPSBhd2FpdCB0aGlzLmFzc2V0cy53cml0ZUJ1ZmZlcihmaWxlLmJ1ZmZlciwge2ZpbGVuYW1lOiBmaWxlLmZpbGVuYW1lfSwgY29udGVudFR5cGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gYXNzZXQudG9KU09OKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlPy5tZXNzYWdlIHx8IGUgfHwgXCJVbmtub3duIGVycm9yXCI7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoNDAwLCBgQXNzZXQgY2FuJ3QgYmUgdXBsb2FkZWQuXFxuJHttc2d9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBBdXRob3JpemVkKClcclxuICAgIEBQb3N0KFwidXJsXCIpXHJcbiAgICBhc3luYyB1cGxvYWRVcmwoQEJvZHkoKSBib2R5OiBhbnkpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBhc3NldCA9IGF3YWl0IHRoaXMuYXNzZXRzLndyaXRlVXJsKGJvZHkudXJsLCBib2R5KTtcclxuICAgICAgICAgICAgcmV0dXJuIGFzc2V0LnRvSlNPTigpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZT8ubWVzc2FnZSB8fCBlIHx8IFwiVW5rbm93biBlcnJvclwiO1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKDQwMCwgYEFzc2V0IGNhbid0IGJlIHVwbG9hZGVkLlxcbiR7bXNnfWApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAR2V0KFwiLzppZFwiKVxyXG4gICAgYXN5bmMgZ2V0RmlsZShAUGFyYW0oXCJpZFwiKSBpZDogc3RyaW5nLCBAUXVlcnlQYXJhbShcImxhenlcIikgbGF6eTogYm9vbGVhbiwgQFJlcygpIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPFJlYWRhYmxlPiB7XHJcbiAgICAgICAgY29uc3QgYXNzZXQgPSBhd2FpdCB0aGlzLmdldEFzc2V0KFwiQXNzZXRcIiwgaWQsIGxhenksIHJlcyk7XHJcbiAgICAgICAgcmV0dXJuIGFzc2V0LmRvd25sb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEdldChcIi9pbWFnZS86aWQvOnJvdGF0aW9uXCIpXHJcbiAgICBhc3luYyBnZXRJbWFnZVJvdGF0aW9uKEBQYXJhbShcImlkXCIpIGlkOiBzdHJpbmcsIEBRdWVyeVBhcmFtcygpIHBhcmFtczogQXNzZXRJbWFnZVBhcmFtcywgQFJlcygpIHJlczogUmVzcG9uc2UsIEBQYXJhbShcInJvdGF0aW9uXCIpIHJvdGF0aW9uOiBudW1iZXIgPSAwKTogUHJvbWlzZTxSZWFkYWJsZT4ge1xyXG4gICAgICAgIGNvbnN0IGFzc2V0ID0gYXdhaXQgdGhpcy5nZXRBc3NldChcIkltYWdlXCIsIGlkLCBwYXJhbXMubGF6eSwgcmVzKTtcclxuICAgICAgICBpZiAocm90YXRpb24gIT09IDApIHtcclxuICAgICAgICAgICAgcGFyYW1zLnJvdGF0aW9uID0gcGFyYW1zLnJvdGF0aW9uIHx8IHJvdGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXNzZXQuZG93bmxvYWRJbWFnZShwYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIEBHZXQoXCIvaW1hZ2UvOmlkXCIpXHJcbiAgICBhc3luYyBnZXRJbWFnZShAUGFyYW0oXCJpZFwiKSBpZDogc3RyaW5nLCBAUXVlcnlQYXJhbXMoKSBwYXJhbXM6IEFzc2V0SW1hZ2VQYXJhbXMsIEBSZXMoKSByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxSZWFkYWJsZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUm90YXRpb24oaWQsIHBhcmFtcywgcmVzKTtcclxuICAgIH1cclxuXHJcbiAgICBAR2V0KFwiL2J5LW5hbWUvOm5hbWVcIilcclxuICAgIGFzeW5jIGdldEZpbGVCeU5hbWUoQFBhcmFtKFwibmFtZVwiKSBuYW1lOiBzdHJpbmcsIEBSZXMoKSByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxSZWFkYWJsZT4ge1xyXG4gICAgICAgIGNvbnN0IGFzc2V0ID0gYXdhaXQgdGhpcy5nZXRBc3NldEJ5TmFtZShcIkFzc2V0XCIsIG5hbWUsIHJlcyk7XHJcbiAgICAgICAgcmV0dXJuIGFzc2V0LmRvd25sb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEdldChcIi9ieS1uYW1lL2ltYWdlLzpuYW1lXCIpXHJcbiAgICBhc3luYyBnZXRJbWFnZUJ5TmFtZShAUGFyYW0oXCJuYW1lXCIpIG5hbWU6IHN0cmluZywgQFF1ZXJ5UGFyYW1zKCkgcGFyYW1zOiBBc3NldEltYWdlUGFyYW1zLCBAUmVzKCkgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8UmVhZGFibGU+IHtcclxuICAgICAgICBjb25zdCBhc3NldCA9IGF3YWl0IHRoaXMuZ2V0QXNzZXRCeU5hbWUoXCJJbWFnZVwiLCBuYW1lLCByZXMpO1xyXG4gICAgICAgIHJldHVybiBhc3NldC5kb3dubG9hZEltYWdlKHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldEFzc2V0SGVhZGVycyh0eXBlOiBzdHJpbmcsIGFzc2V0OiBJQXNzZXQsIHJlczogUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoYXNzZXQubWV0YWRhdGE/LmNsYXNzaWZpZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEh0dHBFcnJvcig0MDMsIGAke3R5cGV9IGlzIGNsYXNzaWZpZWQsIGFuZCBjYW4gYmUgb25seSBkb3dubG9hZGVkIGZyb20gYSBjdXN0b20gdXJsLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBleHQgPSBhc3NldC5tZXRhZGF0YT8uZXh0ZW5zaW9uO1xyXG4gICAgICAgIGlmIChleHQpIHtcclxuICAgICAgICAgICAgcmVzLmhlYWRlcihcImNvbnRlbnQtZGlzcG9zaXRpb25cIiwgYGlubGluZTsgZmlsZW5hbWU9JHthc3NldC5maWxlbmFtZX0uJHtleHR9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhc3NldC5jb250ZW50VHlwZSkge1xyXG4gICAgICAgICAgICByZXMuaGVhZGVyKFwiY29udGVudC10eXBlXCIsIGFzc2V0LmNvbnRlbnRUeXBlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIGdldEFzc2V0KHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZywgbGF6eTogYm9vbGVhbiwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgY29uc3QgYXNzZXQgPSBhd2FpdCB0aGlzLmFzc2V0UmVzb2x2ZXIucmVzb2x2ZShpZCwgbGF6eSk7XHJcbiAgICAgICAgaWYgKCFhc3NldCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKDQwNCwgYCR7dHlwZX0gd2l0aCBpZDogJyR7aWR9JyBub3QgZm91bmQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0QXNzZXRIZWFkZXJzKHR5cGUsIGFzc2V0LCByZXMpO1xyXG4gICAgICAgIHJldHVybiBhc3NldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QXNzZXRCeU5hbWUodHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nLCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxJQXNzZXQ+IHtcclxuICAgICAgICBjb25zdCBhc3NldCA9IGF3YWl0IHRoaXMuYXNzZXRzLmZpbmQoe2ZpbGVuYW1lfSk7XHJcbiAgICAgICAgaWYgKCFhc3NldCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKDQwNCwgYCR7dHlwZX0gd2l0aCBmaWxlbmFtZTogJyR7ZmlsZW5hbWV9JyBub3QgZm91bmQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0QXNzZXRIZWFkZXJzKHR5cGUsIGFzc2V0LCByZXMpO1xyXG4gICAgICAgIHJldHVybiBhc3NldDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
import { sign } from "jsonwebtoken";
|
|
23
|
-
import { injectable } from "tsyringe";
|
|
24
|
-
import { Authorized, Body, Controller, CurrentUser, Get, HttpError, Post, Res, UnauthorizedError } from "routing-controllers";
|
|
25
|
-
import { compare } from "bcrypt";
|
|
26
|
-
import { Configuration } from "../services/configuration";
|
|
27
|
-
import { UserManager } from "../services/user-manager";
|
|
28
|
-
let AuthController = class AuthController {
|
|
29
|
-
constructor(config, userManager) {
|
|
30
|
-
this.config = config;
|
|
31
|
-
this.userManager = userManager;
|
|
32
|
-
}
|
|
33
|
-
login(credentials, res) {
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
let user = null;
|
|
36
|
-
try {
|
|
37
|
-
user = yield this.userManager.getByCredentials(credentials);
|
|
38
|
-
}
|
|
39
|
-
catch (reason) {
|
|
40
|
-
throw new HttpError(401, reason);
|
|
41
|
-
}
|
|
42
|
-
const valid = !user ? false : yield compare(credentials.password, user.password);
|
|
43
|
-
if (valid !== true)
|
|
44
|
-
throw new UnauthorizedError(`message.login.error`);
|
|
45
|
-
return {
|
|
46
|
-
token: sign({ id: user._id || user.id }, this.config.resolve("jwtSecret")),
|
|
47
|
-
user: yield this.userManager.serialize(user)
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
getProfile(user) {
|
|
52
|
-
return this.userManager.serialize(user);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
__decorate([
|
|
56
|
-
Post("/login"),
|
|
57
|
-
__param(0, Body()), __param(1, Res()),
|
|
58
|
-
__metadata("design:type", Function),
|
|
59
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
60
|
-
__metadata("design:returntype", Promise)
|
|
61
|
-
], AuthController.prototype, "login", null);
|
|
62
|
-
__decorate([
|
|
63
|
-
Authorized(),
|
|
64
|
-
Get("/user"),
|
|
65
|
-
__param(0, CurrentUser()),
|
|
66
|
-
__metadata("design:type", Function),
|
|
67
|
-
__metadata("design:paramtypes", [Object]),
|
|
68
|
-
__metadata("design:returntype", void 0)
|
|
69
|
-
], AuthController.prototype, "getProfile", null);
|
|
70
|
-
AuthController = __decorate([
|
|
71
|
-
injectable(),
|
|
72
|
-
Controller(),
|
|
73
|
-
__metadata("design:paramtypes", [Configuration, UserManager])
|
|
74
|
-
], AuthController);
|
|
75
|
-
export { AuthController };
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc3QtY29udHJvbGxlcnMvYXV0aC5jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0gsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEVBQ1YsV0FBVyxFQUNYLEdBQUcsRUFDSCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSCxpQkFBaUIsRUFDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRS9CLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7SUFLeEMsY0FBYyxTQUFkLGNBQWM7SUFFdkIsWUFBcUIsTUFBcUIsRUFBVyxXQUF3QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBRyxDQUFDO0lBRzNFLEtBQUssQ0FBUyxXQUFnQixFQUFTLEdBQWE7O1lBQ3RELElBQUksSUFBSSxHQUFVLElBQUksQ0FBQztZQUN2QixJQUFJO2dCQUNBLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDL0Q7WUFBQyxPQUFPLE1BQU0sRUFBRTtnQkFDYixNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNwQztZQUNELE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pGLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQ2QsTUFBTSxJQUFJLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDdkQsT0FBTztnQkFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDL0MsQ0FBQztRQUNOLENBQUM7S0FBQTtJQUlELFVBQVUsQ0FBZ0IsSUFBVztRQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSixDQUFBO0FBckJHO0lBREMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNGLFdBQUEsSUFBSSxFQUFFLENBQUEsRUFBb0IsV0FBQSxHQUFHLEVBQUUsQ0FBQTs7OzsyQ0FjM0M7QUFJRDtJQUZDLFVBQVUsRUFBRTtJQUNaLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDRCxXQUFBLFdBQVcsRUFBRSxDQUFBOzs7O2dEQUV4QjtBQXpCUSxjQUFjO0lBRjFCLFVBQVUsRUFBRTtJQUNaLFVBQVUsRUFBRTtxQ0FHb0IsYUFBYSxFQUF3QixXQUFXO0dBRnBFLGNBQWMsQ0EwQjFCO1NBMUJZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Jlc3BvbnNlfSBmcm9tIFwiZXhwcmVzc1wiO1xyXG5pbXBvcnQge3NpZ259IGZyb20gXCJqc29ud2VidG9rZW5cIjtcclxuaW1wb3J0IHtpbmplY3RhYmxlfSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtcclxuICAgIEF1dGhvcml6ZWQsXHJcbiAgICBCb2R5LFxyXG4gICAgQ29udHJvbGxlcixcclxuICAgIEN1cnJlbnRVc2VyLFxyXG4gICAgR2V0LFxyXG4gICAgSHR0cEVycm9yLFxyXG4gICAgUG9zdCxcclxuICAgIFJlcyxcclxuICAgIFVuYXV0aG9yaXplZEVycm9yXHJcbn0gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnNcIjtcclxuaW1wb3J0IHtjb21wYXJlfSBmcm9tIFwiYmNyeXB0XCI7XHJcblxyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuLi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7VXNlck1hbmFnZXJ9IGZyb20gXCIuLi9zZXJ2aWNlcy91c2VyLW1hbmFnZXJcIjtcclxuaW1wb3J0IHtJVXNlcn0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5AQ29udHJvbGxlcigpXHJcbmV4cG9ydCBjbGFzcyBBdXRoQ29udHJvbGxlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29uZmlnOiBDb25maWd1cmF0aW9uLCByZWFkb25seSB1c2VyTWFuYWdlcjogVXNlck1hbmFnZXIpIHt9XHJcblxyXG4gICAgQFBvc3QoXCIvbG9naW5cIilcclxuICAgIGFzeW5jIGxvZ2luKEBCb2R5KCkgY3JlZGVudGlhbHM6IGFueSwgQFJlcygpIHJlczogUmVzcG9uc2UpIHtcclxuICAgICAgICBsZXQgdXNlcjogSVVzZXIgPSBudWxsO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldEJ5Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpO1xyXG4gICAgICAgIH0gY2F0Y2ggKHJlYXNvbikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKDQwMSwgcmVhc29uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsaWQgPSAhdXNlciA/IGZhbHNlIDogYXdhaXQgY29tcGFyZShjcmVkZW50aWFscy5wYXNzd29yZCwgdXNlci5wYXNzd29yZCk7XHJcbiAgICAgICAgaWYgKHZhbGlkICE9PSB0cnVlKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVW5hdXRob3JpemVkRXJyb3IoYG1lc3NhZ2UubG9naW4uZXJyb3JgKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0b2tlbjogc2lnbih7IGlkOiB1c2VyLl9pZCB8fCB1c2VyLmlkIH0sIHRoaXMuY29uZmlnLnJlc29sdmUoXCJqd3RTZWNyZXRcIikpLFxyXG4gICAgICAgICAgICB1c2VyOiBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLnNlcmlhbGl6ZSh1c2VyKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgQEF1dGhvcml6ZWQoKVxyXG4gICAgQEdldChcIi91c2VyXCIpXHJcbiAgICBnZXRQcm9maWxlKEBDdXJyZW50VXNlcigpIHVzZXI6IElVc2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuc2VyaWFsaXplKHVzZXIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
import { injectable } from "tsyringe";
|
|
14
|
-
import { Controller, Get, Param } from "routing-controllers";
|
|
15
|
-
import { GalleryCache } from "../services/gallery-cache";
|
|
16
|
-
let GalleryController = class GalleryController {
|
|
17
|
-
constructor(galleryCache) {
|
|
18
|
-
this.galleryCache = galleryCache;
|
|
19
|
-
}
|
|
20
|
-
getFile(id) {
|
|
21
|
-
return this.galleryCache.serve(id);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
__decorate([
|
|
25
|
-
Get("/:id"),
|
|
26
|
-
__param(0, Param("id")),
|
|
27
|
-
__metadata("design:type", Function),
|
|
28
|
-
__metadata("design:paramtypes", [String]),
|
|
29
|
-
__metadata("design:returntype", void 0)
|
|
30
|
-
], GalleryController.prototype, "getFile", null);
|
|
31
|
-
GalleryController = __decorate([
|
|
32
|
-
injectable(),
|
|
33
|
-
Controller("/gallery"),
|
|
34
|
-
__metadata("design:paramtypes", [GalleryCache])
|
|
35
|
-
], GalleryController);
|
|
36
|
-
export { GalleryController };
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc3QtY29udHJvbGxlcnMvZ2FsbGVyeS5jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0lBSTFDLGlCQUFpQixTQUFqQixpQkFBaUI7SUFFMUIsWUFBcUIsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFBSSxDQUFDO0lBR3BELE9BQU8sQ0FBYyxFQUFVO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKLENBQUE7QUFIRztJQURDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDSCxXQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTs7OztnREFFbkI7QUFQUSxpQkFBaUI7SUFGN0IsVUFBVSxFQUFFO0lBQ1osVUFBVSxDQUFDLFVBQVUsQ0FBQztxQ0FHZ0IsWUFBWTtHQUZ0QyxpQkFBaUIsQ0FRN0I7U0FSWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGV9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0NvbnRyb2xsZXIsIEdldCwgUGFyYW19IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzXCI7XHJcbmltcG9ydCB7R2FsbGVyeUNhY2hlfSBmcm9tIFwiLi4vc2VydmljZXMvZ2FsbGVyeS1jYWNoZVwiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5AQ29udHJvbGxlcihcIi9nYWxsZXJ5XCIpXHJcbmV4cG9ydCBjbGFzcyBHYWxsZXJ5Q29udHJvbGxlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgZ2FsbGVyeUNhY2hlOiBHYWxsZXJ5Q2FjaGUpIHsgfVxyXG5cclxuICAgIEBHZXQoXCIvOmlkXCIpXHJcbiAgICBnZXRGaWxlKEBQYXJhbShcImlkXCIpIGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nYWxsZXJ5Q2FjaGUuc2VydmUoaWQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
import { injectable } from "tsyringe";
|
|
23
|
-
import { Controller, Get, Param } from "routing-controllers";
|
|
24
|
-
import { Progresses } from "../services/progresses";
|
|
25
|
-
import { Configuration } from "../services/configuration";
|
|
26
|
-
let ProgressesController = class ProgressesController {
|
|
27
|
-
constructor(progresses, config) {
|
|
28
|
-
this.progresses = progresses;
|
|
29
|
-
this.config = config;
|
|
30
|
-
const mainEndpoint = this.config.resolve("mainEndpoint");
|
|
31
|
-
this.connectionType = !mainEndpoint ? "polling" : "socket";
|
|
32
|
-
}
|
|
33
|
-
getProgress(id) {
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const progress = yield this.progresses.get(id);
|
|
36
|
-
if (!progress)
|
|
37
|
-
return null;
|
|
38
|
-
const json = progress.toJSON();
|
|
39
|
-
json.connectionType = this.connectionType;
|
|
40
|
-
return json;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
__decorate([
|
|
45
|
-
Get("/:id"),
|
|
46
|
-
__param(0, Param("id")),
|
|
47
|
-
__metadata("design:type", Function),
|
|
48
|
-
__metadata("design:paramtypes", [String]),
|
|
49
|
-
__metadata("design:returntype", Promise)
|
|
50
|
-
], ProgressesController.prototype, "getProgress", null);
|
|
51
|
-
ProgressesController = __decorate([
|
|
52
|
-
injectable(),
|
|
53
|
-
Controller("/progresses"),
|
|
54
|
-
__metadata("design:paramtypes", [Progresses, Configuration])
|
|
55
|
-
], ProgressesController);
|
|
56
|
-
export { ProgressesController };
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Nlcy5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc3QtY29udHJvbGxlcnMvcHJvZ3Jlc3Nlcy5jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztJQUkzQyxvQkFBb0IsU0FBcEIsb0JBQW9CO0lBSTdCLFlBQXFCLFVBQXNCLEVBQVcsTUFBcUI7UUFBdEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFXLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDL0QsQ0FBQztJQUdLLFdBQVcsQ0FBYyxFQUFVOztZQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDMUMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUFBO0NBQ0osQ0FBQTtBQVBHO0lBREMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNPLFdBQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBOzs7O3VEQU03QjtBQWhCUSxvQkFBb0I7SUFGaEMsVUFBVSxFQUFFO0lBQ1osVUFBVSxDQUFDLGFBQWEsQ0FBQztxQ0FLVyxVQUFVLEVBQW1CLGFBQWE7R0FKbEUsb0JBQW9CLENBaUJoQztTQWpCWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGV9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0NvbnRyb2xsZXIsIEdldCwgUGFyYW19IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzXCI7XHJcbmltcG9ydCB7UHJvZ3Jlc3Nlc30gZnJvbSBcIi4uL3NlcnZpY2VzL3Byb2dyZXNzZXNcIjtcclxuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tIFwiLi4vc2VydmljZXMvY29uZmlndXJhdGlvblwiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5AQ29udHJvbGxlcihcIi9wcm9ncmVzc2VzXCIpXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc2VzQ29udHJvbGxlciB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbm5lY3Rpb25UeXBlOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgcHJvZ3Jlc3NlczogUHJvZ3Jlc3NlcywgcmVhZG9ubHkgY29uZmlnOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgY29uc3QgbWFpbkVuZHBvaW50ID0gdGhpcy5jb25maWcucmVzb2x2ZShcIm1haW5FbmRwb2ludFwiKTtcclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25UeXBlID0gIW1haW5FbmRwb2ludCA/IFwicG9sbGluZ1wiIDogXCJzb2NrZXRcIjtcclxuICAgIH1cclxuXHJcbiAgICBAR2V0KFwiLzppZFwiKVxyXG4gICAgYXN5bmMgZ2V0UHJvZ3Jlc3MoQFBhcmFtKFwiaWRcIikgaWQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHByb2dyZXNzID0gYXdhaXQgdGhpcy5wcm9ncmVzc2VzLmdldChpZCk7XHJcbiAgICAgICAgaWYgKCFwcm9ncmVzcykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY29uc3QganNvbiA9IHByb2dyZXNzLnRvSlNPTigpO1xyXG4gICAgICAgIGpzb24uY29ubmVjdGlvblR5cGUgPSB0aGlzLmNvbm5lY3Rpb25UeXBlO1xyXG4gICAgICAgIHJldHVybiBqc29uO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
import { inject, injectable } from "tsyringe";
|
|
14
|
-
import { Middleware } from "routing-controllers";
|
|
15
|
-
import { DI_CONTAINER } from "../common-types";
|
|
16
|
-
let ContainerMiddleware = class ContainerMiddleware {
|
|
17
|
-
constructor(container) {
|
|
18
|
-
this.container = container;
|
|
19
|
-
}
|
|
20
|
-
use(request, response, next) {
|
|
21
|
-
request.container = this.container;
|
|
22
|
-
next(null);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
ContainerMiddleware = __decorate([
|
|
26
|
-
injectable(),
|
|
27
|
-
Middleware({ type: "before" }),
|
|
28
|
-
__param(0, inject(DI_CONTAINER)),
|
|
29
|
-
__metadata("design:paramtypes", [Object])
|
|
30
|
-
], ContainerMiddleware);
|
|
31
|
-
export { ContainerMiddleware };
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzdC1taWRkbGV3YXJlcy9jb250YWluZXIubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQTZCLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxZQUFZLEVBQVcsTUFBTSxpQkFBaUIsQ0FBQztJQUsxQyxtQkFBbUIsU0FBbkIsbUJBQW1CO0lBRTVCLFlBQTJDLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO0lBRXpFLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBaUIsRUFBRSxRQUFhLEVBQUUsSUFBd0I7UUFDMUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7Q0FDSixDQUFBO0FBVlksbUJBQW1CO0lBRi9CLFVBQVUsRUFBRTtJQUNaLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUdkLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBOztHQUZ4QixtQkFBbUIsQ0FVL0I7U0FWWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgaW5qZWN0YWJsZX0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7RXhwcmVzc01pZGRsZXdhcmVJbnRlcmZhY2UsIE1pZGRsZXdhcmV9IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzXCI7XHJcbmltcG9ydCB7RElfQ09OVEFJTkVSLCBJUmVxdWVzdH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge0RlcGVuZGVuY3lDb250YWluZXJ9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5ATWlkZGxld2FyZSh7IHR5cGU6IFwiYmVmb3JlXCIgfSlcclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lck1pZGRsZXdhcmUgaW1wbGVtZW50cyBFeHByZXNzTWlkZGxld2FyZUludGVyZmFjZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQGluamVjdChESV9DT05UQUlORVIpIHJlYWRvbmx5IGNvbnRhaW5lcjogRGVwZW5kZW5jeUNvbnRhaW5lcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB1c2UocmVxdWVzdDogSVJlcXVlc3QsIHJlc3BvbnNlOiBhbnksIG5leHQ6IChlcnI/OiBhbnkpID0+IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHJlcXVlc3QuY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XHJcbiAgICAgICAgbmV4dChudWxsKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
import { injectable } from "tsyringe";
|
|
20
|
-
import { BadRequestError, Middleware } from "routing-controllers";
|
|
21
|
-
import { Translator } from "../services/translator";
|
|
22
|
-
import { Configuration } from "../services/configuration";
|
|
23
|
-
import { AxiosError } from "axios";
|
|
24
|
-
let ErrorHandlerMiddleware = class ErrorHandlerMiddleware {
|
|
25
|
-
constructor(configuration, translator) {
|
|
26
|
-
this.configuration = configuration;
|
|
27
|
-
this.translator = translator;
|
|
28
|
-
}
|
|
29
|
-
get isDev() {
|
|
30
|
-
return this.configuration.resolve("nodeEnv") === "development";
|
|
31
|
-
}
|
|
32
|
-
error(error, req, res, next) {
|
|
33
|
-
var _a;
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const result = yield this.getResult(error, req, res);
|
|
36
|
-
if (this.isDev) {
|
|
37
|
-
if (error instanceof AxiosError) {
|
|
38
|
-
console.log(`Axios error:`, result);
|
|
39
|
-
console.log(error.config.data);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
console.log(((_a = error.constructor) === null || _a === void 0 ? void 0 : _a.name) || "Error", result, res.statusCode);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
res.json(result);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
getResult(error, req, res) {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
const result = {};
|
|
51
|
-
if (error instanceof AxiosError) {
|
|
52
|
-
res.status(error.response.status);
|
|
53
|
-
result.message = error.message;
|
|
54
|
-
result.error = error.response.data;
|
|
55
|
-
result.headers = error.response.headers;
|
|
56
|
-
result.url = `${error.config.baseURL}${error.config.url}`;
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
59
|
-
if (error instanceof BadRequestError) {
|
|
60
|
-
res.status(400);
|
|
61
|
-
if (error.constructor.name === "ParamRequiredError") {
|
|
62
|
-
result.message = yield this.translator.getTranslation(req.language, "message.parameter-required.error");
|
|
63
|
-
result.param = error.message;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
result.message = error.message || (yield this.translator.getTranslation(req.language, "message.form-validation.error"));
|
|
67
|
-
result.errors = error["errors"];
|
|
68
|
-
if (error.stack && this.isDev) {
|
|
69
|
-
result.stack = error.stack;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
res.status(error.httpCode || 500);
|
|
75
|
-
if (error instanceof Error) {
|
|
76
|
-
if (error.name) {
|
|
77
|
-
result.name = error.name;
|
|
78
|
-
}
|
|
79
|
-
if (error.message) {
|
|
80
|
-
result.message = error.message;
|
|
81
|
-
}
|
|
82
|
-
if (error.stack && this.isDev) {
|
|
83
|
-
result.stack = error.stack;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else if (typeof error === "string") {
|
|
87
|
-
result.message = error;
|
|
88
|
-
}
|
|
89
|
-
return result;
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
ErrorHandlerMiddleware = __decorate([
|
|
94
|
-
injectable(),
|
|
95
|
-
Middleware({ type: "after" }),
|
|
96
|
-
__metadata("design:paramtypes", [Configuration, Translator])
|
|
97
|
-
], ErrorHandlerMiddleware);
|
|
98
|
-
export { ErrorHandlerMiddleware };
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc3QtbWlkZGxld2FyZXMvZXJyb3ItaGFuZGxlci5taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFDLGVBQWUsRUFBbUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJakcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sT0FBTyxDQUFDO0lBSXBCLHNCQUFzQixTQUF0QixzQkFBc0I7SUFNL0IsWUFBcUIsYUFBNEIsRUFBVyxVQUFzQjtRQUE3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFXLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFbEYsQ0FBQztJQU5ELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssYUFBYSxDQUFDO0lBQ25FLENBQUM7SUFNSyxLQUFLLENBQUMsS0FBVSxFQUFFLEdBQWEsRUFBRSxHQUFhLEVBQUUsSUFBd0I7OztZQUMxRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO29CQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxD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SSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FDQU9VLGFBQWEsRUFBdUIsVUFBVTtHQU56RSxzQkFBc0IsQ0FxRWxDO1NBckVZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZX0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7QmFkUmVxdWVzdEVycm9yLCBFeHByZXNzRXJyb3JNaWRkbGV3YXJlSW50ZXJmYWNlLCBNaWRkbGV3YXJlfSBmcm9tIFwicm91dGluZy1jb250cm9sbGVyc1wiO1xyXG5pbXBvcnQge1Jlc3BvbnNlfSBmcm9tIFwiZXhwcmVzc1wiO1xyXG5cclxuaW1wb3J0IHtJUmVxdWVzdH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge1RyYW5zbGF0b3J9IGZyb20gXCIuLi9zZXJ2aWNlcy90cmFuc2xhdG9yXCI7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbn0gZnJvbSBcIi4uL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtBeGlvc0Vycm9yfSBmcm9tIFwiYXhpb3NcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQE1pZGRsZXdhcmUoeyB0eXBlOiBcImFmdGVyXCIgfSlcclxuZXhwb3J0IGNsYXNzIEVycm9ySGFuZGxlck1pZGRsZXdhcmUgaW1wbGVtZW50cyBFeHByZXNzRXJyb3JNaWRkbGV3YXJlSW50ZXJmYWNlIHtcclxuXHJcbiAgICBnZXQgaXNEZXYoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5yZXNvbHZlKFwibm9kZUVudlwiKSA9PT0gXCJkZXZlbG9wbWVudFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24sIHJlYWRvbmx5IHRyYW5zbGF0b3I6IFRyYW5zbGF0b3IpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZXJyb3IoZXJyb3I6IGFueSwgcmVxOiBJUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogKGVycj86IGFueSkgPT4gYW55KSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRSZXN1bHQoZXJyb3IsIHJlcSwgcmVzKTtcclxuICAgICAgICBpZiAodGhpcy5pc0Rldikge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBeGlvc0Vycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgQXhpb3MgZXJyb3I6YCwgcmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmNvbmZpZy5kYXRhKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmNvbnN0cnVjdG9yPy5uYW1lIHx8IFwiRXJyb3JcIiwgcmVzdWx0LCByZXMuc3RhdHVzQ29kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzLmpzb24ocmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgZ2V0UmVzdWx0KGVycm9yLCByZXE6IElSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XHJcblxyXG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEF4aW9zRXJyb3IpIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1cyhlcnJvci5yZXNwb25zZS5zdGF0dXMpO1xyXG4gICAgICAgICAgICByZXN1bHQubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlc3VsdC5lcnJvciA9IGVycm9yLnJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgICAgIHJlc3VsdC5oZWFkZXJzID0gZXJyb3IucmVzcG9uc2UuaGVhZGVycztcclxuICAgICAgICAgICAgcmVzdWx0LnVybCA9IGAke2Vycm9yLmNvbmZpZy5iYXNlVVJMfSR7ZXJyb3IuY29uZmlnLnVybH1gO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQmFkUmVxdWVzdEVycm9yKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXMoNDAwKTtcclxuICAgICAgICAgICAgaWYgKGVycm9yLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiUGFyYW1SZXF1aXJlZEVycm9yXCIpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5tZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdG9yLmdldFRyYW5zbGF0aW9uKHJlcS5sYW5ndWFnZSwgXCJtZXNzYWdlLnBhcmFtZXRlci1yZXF1aXJlZC5lcnJvclwiKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wYXJhbSA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgYXdhaXQgdGhpcy50cmFuc2xhdG9yLmdldFRyYW5zbGF0aW9uKHJlcS5sYW5ndWFnZSwgXCJtZXNzYWdlLmZvcm0tdmFsaWRhdGlvbi5lcnJvclwiKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5lcnJvcnMgPSBlcnJvcltcImVycm9yc1wiXTtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGFjayAmJiB0aGlzLmlzRGV2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnN0YWNrID0gZXJyb3Iuc3RhY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlcy5zdGF0dXMoZXJyb3IuaHR0cENvZGUgfHwgNTAwKTtcclxuXHJcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5uYW1lID0gZXJyb3IubmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0Lm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGFjayAmJiB0aGlzLmlzRGV2KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQuc3RhY2sgPSBlcnJvci5zdGFjaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVycm9yID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5tZXNzYWdlID0gZXJyb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { injectable } from "tsyringe";
|
|
11
|
-
import { Middleware } from "routing-controllers";
|
|
12
|
-
import { Configuration } from "../services/configuration";
|
|
13
|
-
let LanguageMiddleware = class LanguageMiddleware {
|
|
14
|
-
constructor(config) {
|
|
15
|
-
this.config = config;
|
|
16
|
-
}
|
|
17
|
-
use(request, response, next) {
|
|
18
|
-
request.language = request.query.language || this.config.resolve("defaultLanguage");
|
|
19
|
-
next(null);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
LanguageMiddleware = __decorate([
|
|
23
|
-
injectable(),
|
|
24
|
-
Middleware({ type: "before" }),
|
|
25
|
-
__metadata("design:paramtypes", [Configuration])
|
|
26
|
-
], LanguageMiddleware);
|
|
27
|
-
export { LanguageMiddleware };
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXN0LW1pZGRsZXdhcmVzL2xhbmd1YWdlLm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQTZCLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTNFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztJQUkzQyxrQkFBa0IsU0FBbEIsa0JBQWtCO0lBRTNCLFlBQXFCLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFFMUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUFpQixFQUFFLFFBQWEsRUFBRSxJQUF3QjtRQUMxRCxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBa0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7Q0FFSixDQUFBO0FBWFksa0JBQWtCO0lBRjlCLFVBQVUsRUFBRTtJQUNaLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztxQ0FHRSxhQUFhO0dBRmpDLGtCQUFrQixDQVc5QjtTQVhZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZX0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7RXhwcmVzc01pZGRsZXdhcmVJbnRlcmZhY2UsIE1pZGRsZXdhcmV9IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzXCI7XHJcbmltcG9ydCB7SVJlcXVlc3R9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tIFwiLi4vc2VydmljZXMvY29uZmlndXJhdGlvblwiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5ATWlkZGxld2FyZSh7IHR5cGU6IFwiYmVmb3JlXCIgfSlcclxuZXhwb3J0IGNsYXNzIExhbmd1YWdlTWlkZGxld2FyZSBpbXBsZW1lbnRzIEV4cHJlc3NNaWRkbGV3YXJlSW50ZXJmYWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWc6IENvbmZpZ3VyYXRpb24pIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdXNlKHJlcXVlc3Q6IElSZXF1ZXN0LCByZXNwb25zZTogYW55LCBuZXh0OiAoZXJyPzogYW55KSA9PiBhbnkpOiB2b2lkIHtcclxuICAgICAgICByZXF1ZXN0Lmxhbmd1YWdlID0gcmVxdWVzdC5xdWVyeS5sYW5ndWFnZSBhcyBzdHJpbmcgfHwgdGhpcy5jb25maWcucmVzb2x2ZShcImRlZmF1bHRMYW5ndWFnZVwiKTtcclxuICAgICAgICBuZXh0KG51bGwpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { injectable } from "tsyringe";
|
|
11
|
-
import { Middleware } from "routing-controllers";
|
|
12
|
-
import moment from "moment";
|
|
13
|
-
import { Logger } from "../services/logger";
|
|
14
|
-
let RequestEndedMiddleware = class RequestEndedMiddleware {
|
|
15
|
-
constructor(logger) {
|
|
16
|
-
this.logger = logger;
|
|
17
|
-
}
|
|
18
|
-
use(request, response, next) {
|
|
19
|
-
request.ended = moment();
|
|
20
|
-
const diff = request.ended.diff(request.started);
|
|
21
|
-
const duration = moment.duration(diff);
|
|
22
|
-
this.logger.log("request-time", `Request '${request.id}' ended at: ${request.ended.format("YYYY-MM-DD HH:mm:ss")} [${request.method}] ${request.url}`);
|
|
23
|
-
this.logger.log("request-time", `Request '${request.id}' lasted: ${duration.asMilliseconds()}ms`);
|
|
24
|
-
next(null);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
RequestEndedMiddleware = __decorate([
|
|
28
|
-
injectable(),
|
|
29
|
-
Middleware({ type: "after" }),
|
|
30
|
-
__metadata("design:paramtypes", [Logger])
|
|
31
|
-
], RequestEndedMiddleware);
|
|
32
|
-
export { RequestEndedMiddleware };
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1lbmRlZC5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc3QtbWlkZGxld2FyZXMvcmVxdWVzdC1lbmRlZC5taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUE2QixVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0lBSTdCLHNCQUFzQixTQUF0QixzQkFBc0I7SUFFL0IsWUFBcUIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDbkMsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUFpQixFQUFFLFFBQWEsRUFBRSxJQUF3QjtRQUMxRCxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNYLGNBQWMsRUFDZCxZQUFZLE9BQU8sQ0FBQyxFQUFFLGVBQWUsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDeEgsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNYLGNBQWMsRUFDZCxZQUFZLE9BQU8sQ0FBQyxFQUFFLGFBQWEsUUFBUSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDO0NBRUosQ0FBQTtBQXBCWSxzQkFBc0I7SUFGbEMsVUFBVSxFQUFFO0lBQ1osVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FDQUdHLE1BQU07R0FGMUIsc0JBQXNCLENBb0JsQztTQXBCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGV9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0V4cHJlc3NNaWRkbGV3YXJlSW50ZXJmYWNlLCBNaWRkbGV3YXJlfSBmcm9tIFwicm91dGluZy1jb250cm9sbGVyc1wiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHtJUmVxdWVzdH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge0xvZ2dlcn0gZnJvbSBcIi4uL3NlcnZpY2VzL2xvZ2dlclwiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5ATWlkZGxld2FyZSh7IHR5cGU6IFwiYWZ0ZXJcIiB9KVxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdEVuZGVkTWlkZGxld2FyZSBpbXBsZW1lbnRzIEV4cHJlc3NNaWRkbGV3YXJlSW50ZXJmYWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBsb2dnZXI6IExvZ2dlcikge1xyXG4gICAgfVxyXG5cclxuICAgIHVzZShyZXF1ZXN0OiBJUmVxdWVzdCwgcmVzcG9uc2U6IGFueSwgbmV4dDogKGVycj86IGFueSkgPT4gYW55KTogdm9pZCB7XHJcbiAgICAgICAgcmVxdWVzdC5lbmRlZCA9IG1vbWVudCgpO1xyXG4gICAgICAgIGNvbnN0IGRpZmYgPSByZXF1ZXN0LmVuZGVkLmRpZmYocmVxdWVzdC5zdGFydGVkKTtcclxuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IG1vbWVudC5kdXJhdGlvbihkaWZmKTtcclxuICAgICAgICB0aGlzLmxvZ2dlci5sb2coXHJcbiAgICAgICAgICAgIFwicmVxdWVzdC10aW1lXCIsXHJcbiAgICAgICAgICAgIGBSZXF1ZXN0ICcke3JlcXVlc3QuaWR9JyBlbmRlZCBhdDogJHtyZXF1ZXN0LmVuZGVkLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3NcIil9IFske3JlcXVlc3QubWV0aG9kfV0gJHtyZXF1ZXN0LnVybH1gXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmxvZ2dlci5sb2coXHJcbiAgICAgICAgICAgIFwicmVxdWVzdC10aW1lXCIsXHJcbiAgICAgICAgICAgIGBSZXF1ZXN0ICcke3JlcXVlc3QuaWR9JyBsYXN0ZWQ6ICR7ZHVyYXRpb24uYXNNaWxsaXNlY29uZHMoKX1tc2BcclxuICAgICAgICApO1xyXG4gICAgICAgIG5leHQobnVsbCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|