@stemy/backend 3.6.0 → 4.0.1
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/fixtures-command.d.ts +9 -0
- package/commands/index.d.ts +2 -0
- package/common-types.d.ts +11 -6
- 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/{esm2015/services/configuration.js → esm2020/services/configuration.mjs} +3 -15
- 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} +1638 -2403
- 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 -24
- package/public_api.d.ts +2 -2
- package/rest-controllers/terminal-styles.d.ts +2 -0
- package/rest-controllers/terminal.controller.d.ts +2 -0
- package/services/assets.d.ts +1 -0
- 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/utils.d.ts +3 -0
- package/bundles/stemy-backend.umd.js +0 -7553
- package/bundles/stemy-backend.umd.js.map +0 -1
- package/esm2015/common-types.js +0 -20
- package/esm2015/public_api.js +0 -380
- 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-controllers/terminal.controller.js +0 -151
- 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 -108
- 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/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 -88
- package/esm2015/services/terminal-manager.js +0 -94
- 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-controllers/terminal.controller.js +0 -83
- package/esm2015/socket-controllers/terminal.js +0 -98
- package/esm2015/socket-middlewares/compression.middleware.js +0 -19
- package/esm2015/static.js +0 -33
- package/esm2015/utilities/clear-command.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 -699
- 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/{utilities → commands}/clear-command.d.ts +0 -0
- /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,151 +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 { Controller, Get, Header } from "routing-controllers";
|
|
12
|
-
import { Configuration } from "../services/configuration";
|
|
13
|
-
let TerminalController = class TerminalController {
|
|
14
|
-
constructor(config) {
|
|
15
|
-
this.config = config;
|
|
16
|
-
this.serviceName = config.resolve("serviceName");
|
|
17
|
-
this.serviceUrl = config.resolve("serviceUrl");
|
|
18
|
-
}
|
|
19
|
-
terminal() {
|
|
20
|
-
return `
|
|
21
|
-
<!DOCTYPE html>
|
|
22
|
-
<html>
|
|
23
|
-
<head>
|
|
24
|
-
<meta charset="utf-8">
|
|
25
|
-
<title>${this.serviceName} console</title>
|
|
26
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/xterm@5.1.0/css/xterm.min.css"/>
|
|
27
|
-
<script type="text/javascript" src="${this.serviceUrl}/socket/socket.io.js"></script>
|
|
28
|
-
<style>
|
|
29
|
-
body {
|
|
30
|
-
margin: 0;
|
|
31
|
-
padding: 0;
|
|
32
|
-
background: #1e1e1e;
|
|
33
|
-
}
|
|
34
|
-
body * {
|
|
35
|
-
box-sizing: border-box;
|
|
36
|
-
}
|
|
37
|
-
#terminal {
|
|
38
|
-
margin: 40px;
|
|
39
|
-
background: black;
|
|
40
|
-
border: 1px solid #dedede;
|
|
41
|
-
border-radius: 5px;
|
|
42
|
-
overflow: hidden;
|
|
43
|
-
}
|
|
44
|
-
#terminal .xterm {
|
|
45
|
-
margin: 10px;
|
|
46
|
-
height: calc(100vh - 120px);
|
|
47
|
-
border-radius: 5px;
|
|
48
|
-
}
|
|
49
|
-
#terminal .xterm-viewport::-webkit-scrollbar {
|
|
50
|
-
width: 0.4em;
|
|
51
|
-
background-color: #222;
|
|
52
|
-
}
|
|
53
|
-
#terminal .xterm-viewport::-webkit-scrollbar-thumb {
|
|
54
|
-
background-color: #555;
|
|
55
|
-
}
|
|
56
|
-
</style>
|
|
57
|
-
</head>
|
|
58
|
-
<body>
|
|
59
|
-
<div id="terminal"></div>
|
|
60
|
-
<script type="module">
|
|
61
|
-
// Import terminal modules
|
|
62
|
-
import xterm from 'https://cdn.jsdelivr.net/npm/xterm@5.1.0/+esm';
|
|
63
|
-
import xtermFit from 'https://cdn.jsdelivr.net/npm/xterm-addon-fit@0.7.0/+esm';
|
|
64
|
-
// Initialize variables
|
|
65
|
-
var terminal = new xterm.Terminal();
|
|
66
|
-
var fitAddon = new xtermFit.FitAddon();
|
|
67
|
-
var socket = io("${this.serviceUrl}", {path: "/socket"});
|
|
68
|
-
var clear = function () {
|
|
69
|
-
terminal.clear();
|
|
70
|
-
terminal.reset();
|
|
71
|
-
// Prev line
|
|
72
|
-
terminal.write("\u001B[F");
|
|
73
|
-
}
|
|
74
|
-
// Initialize terminal
|
|
75
|
-
terminal.loadAddon(fitAddon);
|
|
76
|
-
terminal.open(document.getElementById('terminal'));
|
|
77
|
-
terminal.onData(function (data) {
|
|
78
|
-
socket.emit("terminal-data", data.charCodeAt(0) === 127 ? "\b" : data);
|
|
79
|
-
});
|
|
80
|
-
// Socket listeners
|
|
81
|
-
socket.on("terminal-data", function (data) {
|
|
82
|
-
if (data === "\x1bc") {
|
|
83
|
-
clear();
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
terminal.write(data);
|
|
87
|
-
});
|
|
88
|
-
socket.on("terminal-upload", function (data) {
|
|
89
|
-
var input = document.createElement("input");
|
|
90
|
-
input.type = "file";
|
|
91
|
-
input.accept = data.accept;
|
|
92
|
-
input.onchange = function () {
|
|
93
|
-
var file = input.files[0];
|
|
94
|
-
var reader = new FileReader();
|
|
95
|
-
reader.onload = function () {
|
|
96
|
-
console.log(reader.result);
|
|
97
|
-
socket.emit("terminal-upload", {
|
|
98
|
-
id: data.id,
|
|
99
|
-
label: file.name,
|
|
100
|
-
content: reader.result,
|
|
101
|
-
accept: data.accept
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
reader.onerror = function () {
|
|
105
|
-
console.error(reader.error);
|
|
106
|
-
socket.emit("terminal-upload", {
|
|
107
|
-
id: data.id,
|
|
108
|
-
label: file.name,
|
|
109
|
-
error: reader.error,
|
|
110
|
-
accept: data.accept
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
reader.readAsDataURL(file);
|
|
114
|
-
};
|
|
115
|
-
input.click();
|
|
116
|
-
});
|
|
117
|
-
socket.on("terminal-download", function (data) {
|
|
118
|
-
var link = document.createElement("a");
|
|
119
|
-
link.href = data.content;
|
|
120
|
-
link.download = data.filename;
|
|
121
|
-
link.click();
|
|
122
|
-
});
|
|
123
|
-
socket.on("connect", function () {
|
|
124
|
-
clear();
|
|
125
|
-
terminal.writeln("Welcome to ${this.serviceName} service's console!");
|
|
126
|
-
socket.emit("terminal-init");
|
|
127
|
-
});
|
|
128
|
-
socket.on("disconnect", function () {
|
|
129
|
-
clear();
|
|
130
|
-
terminal.writeln("Disconnected from ${this.serviceName} service's console.");
|
|
131
|
-
});
|
|
132
|
-
</script>
|
|
133
|
-
</body>
|
|
134
|
-
</html>
|
|
135
|
-
`;
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
__decorate([
|
|
139
|
-
Get(),
|
|
140
|
-
Header("Content-Type", "text/html"),
|
|
141
|
-
__metadata("design:type", Function),
|
|
142
|
-
__metadata("design:paramtypes", []),
|
|
143
|
-
__metadata("design:returntype", void 0)
|
|
144
|
-
], TerminalController.prototype, "terminal", null);
|
|
145
|
-
TerminalController = __decorate([
|
|
146
|
-
injectable(),
|
|
147
|
-
Controller("/console"),
|
|
148
|
-
__metadata("design:paramtypes", [Configuration])
|
|
149
|
-
], TerminalController);
|
|
150
|
-
export { TerminalController };
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXN0LWNvbnRyb2xsZXJzL3Rlcm1pbmFsLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7SUFJM0Msa0JBQWtCLFNBQWxCLGtCQUFrQjtJQU0zQixZQUFxQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUlELFFBQVE7UUFDSixPQUFPOzs7OztxQkFLTSxJQUFJLENBQUMsV0FBVzs7a0RBRWEsSUFBSSxDQUFDLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBd0M5QixJQUFJLENBQUMsVUFBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttREEwREMsSUFBSSxDQUFDLFdBQVc7Ozs7OzBEQUtULElBQUksQ0FBQyxXQUFXOzs7OztTQUtqRSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUE7QUF0SEc7SUFGQyxHQUFHLEVBQUU7SUFDTCxNQUFNLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQzs7OztrREFzSG5DO0FBbElRLGtCQUFrQjtJQUY5QixVQUFVLEVBQUU7SUFDWixVQUFVLENBQUMsVUFBVSxDQUFDO3FDQU9VLGFBQWE7R0FOakMsa0JBQWtCLENBbUk5QjtTQW5JWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGV9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0NvbnRyb2xsZXIsIEdldCwgSGVhZGVyfSBmcm9tIFwicm91dGluZy1jb250cm9sbGVyc1wiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuLi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uXCI7XHJcblxyXG5AaW5qZWN0YWJsZSgpXHJcbkBDb250cm9sbGVyKFwiL2NvbnNvbGVcIilcclxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsQ29udHJvbGxlciB7XHJcblxyXG4gICAgcHJvdGVjdGVkIHNlcnZpY2VOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgcHJvdGVjdGVkIHNlcnZpY2VVcmw6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWc6IENvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2VOYW1lID0gY29uZmlnLnJlc29sdmUoXCJzZXJ2aWNlTmFtZVwiKTtcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmwgPSBjb25maWcucmVzb2x2ZShcInNlcnZpY2VVcmxcIik7XHJcbiAgICB9XHJcblxyXG4gICAgQEdldCgpXHJcbiAgICBASGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sXCIpXHJcbiAgICB0ZXJtaW5hbCgpIHtcclxuICAgICAgICByZXR1cm4gYFxyXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxyXG4gICAgICAgIDxodG1sPlxyXG4gICAgICAgIDxoZWFkPlxyXG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cclxuICAgICAgICAgICAgPHRpdGxlPiR7dGhpcy5zZXJ2aWNlTmFtZX0gY29uc29sZTwvdGl0bGU+XHJcbiAgICAgICAgICAgIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS94dGVybUA1LjEuMC9jc3MveHRlcm0ubWluLmNzc1wiLz5cclxuICAgICAgICAgICAgPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgc3JjPVwiJHt0aGlzLnNlcnZpY2VVcmx9L3NvY2tldC9zb2NrZXQuaW8uanNcIj48L3NjcmlwdD5cclxuICAgICAgICAgICAgPHN0eWxlPlxyXG4gICAgICAgICAgICAgICAgYm9keSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlMWUxZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJvZHkgKiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICN0ZXJtaW5hbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWRlZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAjdGVybWluYWwgLnh0ZXJtIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTIwcHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICN0ZXJtaW5hbCAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMC40ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICN0ZXJtaW5hbCAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3N0eWxlPlxyXG4gICAgICAgIDwvaGVhZD5cclxuICAgICAgICA8Ym9keT5cclxuICAgICAgICAgICAgPGRpdiBpZD1cInRlcm1pbmFsXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxzY3JpcHQgdHlwZT1cIm1vZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgLy8gSW1wb3J0IHRlcm1pbmFsIG1vZHVsZXNcclxuICAgICAgICAgICAgICAgIGltcG9ydCB4dGVybSBmcm9tICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3h0ZXJtQDUuMS4wLytlc20nO1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0IHh0ZXJtRml0IGZyb20gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0veHRlcm0tYWRkb24tZml0QDAuNy4wLytlc20nO1xyXG4gICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YXJpYWJsZXNcclxuICAgICAgICAgICAgICAgIHZhciB0ZXJtaW5hbCA9IG5ldyB4dGVybS5UZXJtaW5hbCgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGZpdEFkZG9uID0gbmV3IHh0ZXJtRml0LkZpdEFkZG9uKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgc29ja2V0ID0gaW8oXCIke3RoaXMuc2VydmljZVVybH1cIiwge3BhdGg6IFwiL3NvY2tldFwifSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgY2xlYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGVybWluYWwuY2xlYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC5yZXNldCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFByZXYgbGluZVxyXG4gICAgICAgICAgICAgICAgICAgIHRlcm1pbmFsLndyaXRlKFwiXFx1MDAxQltGXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0ZXJtaW5hbFxyXG4gICAgICAgICAgICAgICAgdGVybWluYWwubG9hZEFkZG9uKGZpdEFkZG9uKTtcclxuICAgICAgICAgICAgICAgIHRlcm1pbmFsLm9wZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlcm1pbmFsJykpO1xyXG4gICAgICAgICAgICAgICAgdGVybWluYWwub25EYXRhKGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc29ja2V0LmVtaXQoXCJ0ZXJtaW5hbC1kYXRhXCIsIGRhdGEuY2hhckNvZGVBdCgwKSA9PT0gMTI3ID8gXCJcXGJcIiA6IGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAvLyBTb2NrZXQgbGlzdGVuZXJzXHJcbiAgICAgICAgICAgICAgICBzb2NrZXQub24oXCJ0ZXJtaW5hbC1kYXRhXCIsIGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgPT09IFwiXFx4MWJjXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC53cml0ZShkYXRhKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgc29ja2V0Lm9uKFwidGVybWluYWwtdXBsb2FkXCIsIGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlucHV0LnR5cGUgPSBcImZpbGVcIjtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQgPSBkYXRhLmFjY2VwdDtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGUgPSBpbnB1dC5maWxlc1swXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5lbWl0KFwidGVybWluYWwtdXBsb2FkXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogZGF0YS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlYWRlci5yZXN1bHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0OiBkYXRhLmFjY2VwdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZWFkZXIuZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LmVtaXQoXCJ0ZXJtaW5hbC11cGxvYWRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBkYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHJlYWRlci5lcnJvcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ6IGRhdGEuYWNjZXB0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dC5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBzb2NrZXQub24oXCJ0ZXJtaW5hbC1kb3dubG9hZFwiLCBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluay5ocmVmID0gZGF0YS5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmsuZG93bmxvYWQgPSBkYXRhLmZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgc29ja2V0Lm9uKFwiY29ubmVjdFwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xlYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC53cml0ZWxuKFwiV2VsY29tZSB0byAke3RoaXMuc2VydmljZU5hbWV9IHNlcnZpY2UncyBjb25zb2xlIVwiKTtcclxuICAgICAgICAgICAgICAgICAgICBzb2NrZXQuZW1pdChcInRlcm1pbmFsLWluaXRcIik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHNvY2tldC5vbihcImRpc2Nvbm5lY3RcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGVybWluYWwud3JpdGVsbihcIkRpc2Nvbm5lY3RlZCBmcm9tICR7dGhpcy5zZXJ2aWNlTmFtZX0gc2VydmljZSdzIGNvbnNvbGUuXCIpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIDwvc2NyaXB0PlxyXG4gICAgICAgIDwvYm9keT5cclxuICAgICAgICA8L2h0bWw+XHJcbiAgICAgICAgYDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -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=
|