@theia/mini-browser 1.45.1 → 1.46.0-next.72

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.
Files changed (63) hide show
  1. package/README.md +45 -45
  2. package/lib/browser/environment/mini-browser-environment-module.d.ts +3 -3
  3. package/lib/browser/environment/mini-browser-environment-module.js +24 -24
  4. package/lib/browser/environment/mini-browser-environment.d.ts +25 -25
  5. package/lib/browser/environment/mini-browser-environment.js +95 -95
  6. package/lib/browser/environment/mini-browser-environment.js.map +1 -1
  7. package/lib/browser/location-mapper-service.d.ts +58 -58
  8. package/lib/browser/location-mapper-service.js +140 -140
  9. package/lib/browser/mini-browser-content-style.d.ts +17 -17
  10. package/lib/browser/mini-browser-content-style.js +36 -36
  11. package/lib/browser/mini-browser-content.d.ts +177 -177
  12. package/lib/browser/mini-browser-content.js +554 -554
  13. package/lib/browser/mini-browser-frontend-module.d.ts +4 -4
  14. package/lib/browser/mini-browser-frontend-module.js +70 -70
  15. package/lib/browser/mini-browser-frontend-security-warnings.d.ts +11 -11
  16. package/lib/browser/mini-browser-frontend-security-warnings.js +73 -73
  17. package/lib/browser/mini-browser-open-handler.d.ts +76 -76
  18. package/lib/browser/mini-browser-open-handler.js +292 -292
  19. package/lib/browser/mini-browser.d.ts +25 -25
  20. package/lib/browser/mini-browser.js +118 -118
  21. package/lib/common/mini-browser-endpoint.d.ts +12 -12
  22. package/lib/common/mini-browser-endpoint.js +31 -31
  23. package/lib/common/mini-browser-service.d.ts +14 -14
  24. package/lib/common/mini-browser-service.js +20 -20
  25. package/lib/electron-browser/environment/electron-mini-browser-environment-module.d.ts +3 -3
  26. package/lib/electron-browser/environment/electron-mini-browser-environment-module.js +25 -25
  27. package/lib/electron-browser/environment/electron-mini-browser-environment.d.ts +9 -9
  28. package/lib/electron-browser/environment/electron-mini-browser-environment.js +60 -60
  29. package/lib/electron-main/mini-browser-electron-main-contribution.d.ts +12 -12
  30. package/lib/electron-main/mini-browser-electron-main-contribution.js +54 -54
  31. package/lib/node/mini-browser-backend-module.d.ts +3 -3
  32. package/lib/node/mini-browser-backend-module.js +41 -41
  33. package/lib/node/mini-browser-backend-security-warnings.d.ts +5 -5
  34. package/lib/node/mini-browser-backend-security-warnings.js +51 -51
  35. package/lib/node/mini-browser-endpoint.d.ts +97 -97
  36. package/lib/node/mini-browser-endpoint.js +268 -268
  37. package/lib/node/mini-browser-endpoint.js.map +1 -1
  38. package/lib/node/mini-browser-ws-validator.d.ts +12 -12
  39. package/lib/node/mini-browser-ws-validator.js +69 -69
  40. package/lib/package.spec.js +18 -18
  41. package/package.json +5 -6
  42. package/src/browser/environment/mini-browser-environment-module.ts +24 -24
  43. package/src/browser/environment/mini-browser-environment.ts +87 -87
  44. package/src/browser/location-mapper-service.ts +150 -150
  45. package/src/browser/mini-browser-content-style.ts +32 -32
  46. package/src/browser/mini-browser-content.ts +630 -630
  47. package/src/browser/mini-browser-frontend-module.ts +86 -86
  48. package/src/browser/mini-browser-frontend-security-warnings.ts +59 -59
  49. package/src/browser/mini-browser-open-handler.ts +312 -312
  50. package/src/browser/mini-browser.ts +110 -110
  51. package/src/browser/pdfobject.d.ts +99 -99
  52. package/src/browser/style/index.css +157 -157
  53. package/src/browser/style/mini-browser.svg +17 -17
  54. package/src/common/mini-browser-endpoint.ts +28 -28
  55. package/src/common/mini-browser-service.ts +29 -29
  56. package/src/electron-browser/environment/electron-mini-browser-environment-module.ts +25 -25
  57. package/src/electron-browser/environment/electron-mini-browser-environment.ts +53 -53
  58. package/src/electron-main/mini-browser-electron-main-contribution.ts +42 -42
  59. package/src/node/mini-browser-backend-module.ts +41 -41
  60. package/src/node/mini-browser-backend-security-warnings.ts +45 -45
  61. package/src/node/mini-browser-endpoint.ts +315 -315
  62. package/src/node/mini-browser-ws-validator.ts +56 -56
  63. package/src/package.spec.ts +21 -21
@@ -1,269 +1,269 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2018 TypeFox and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
- 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;
21
- return c > 3 && r && Object.defineProperty(target, key, r), r;
22
- };
23
- var __metadata = (this && this.__metadata) || function (k, v) {
24
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.SvgHandler = exports.PdfHandler = exports.ImageHandler = exports.HtmlHandler = exports.MiniBrowserEndpoint = exports.MiniBrowserEndpointHandler = void 0;
28
- const vhost = require('vhost');
29
- const express = require("@theia/core/shared/express");
30
- const fs = require("@theia/core/shared/fs-extra");
31
- const mime_types_1 = require("mime-types");
32
- const inversify_1 = require("@theia/core/shared/inversify");
33
- const file_uri_1 = require("@theia/core/lib/node/file-uri");
34
- const logger_1 = require("@theia/core/lib/common/logger");
35
- const contribution_provider_1 = require("@theia/core/lib/common/contribution-provider");
36
- const mini_browser_endpoint_1 = require("../common/mini-browser-endpoint");
37
- /**
38
- * Endpoint handler contribution for the `MiniBrowserEndpoint`.
39
- */
40
- exports.MiniBrowserEndpointHandler = Symbol('MiniBrowserEndpointHandler');
41
- let MiniBrowserEndpoint = class MiniBrowserEndpoint {
42
- constructor() {
43
- this.handlers = new Map();
44
- }
45
- configure(app) {
46
- this.attachRequestHandlerPromise = this.attachRequestHandler(app);
47
- }
48
- async onStart() {
49
- await Promise.all(Array.from(this.getContributions(), async (handler) => {
50
- const extensions = await handler.supportedExtensions();
51
- for (const extension of (Array.isArray(extensions) ? extensions : [extensions]).map(e => e.toLocaleLowerCase())) {
52
- const existingHandler = this.handlers.get(extension);
53
- if (!existingHandler || handler.priority > existingHandler.priority) {
54
- this.handlers.set(extension, handler);
55
- }
56
- }
57
- }));
58
- await this.attachRequestHandlerPromise;
59
- }
60
- async supportedFileExtensions() {
61
- return Array.from(this.handlers.entries(), ([extension, handler]) => ({ extension, priority: handler.priority() }));
62
- }
63
- async attachRequestHandler(app) {
64
- const miniBrowserApp = express();
65
- miniBrowserApp.get('*', async (request, response) => this.response(await this.getUri(request), response));
66
- app.use(mini_browser_endpoint_1.MiniBrowserEndpoint.PATH, vhost(await this.getVirtualHostRegExp(), miniBrowserApp));
67
- }
68
- async response(uri, response) {
69
- const exists = await fs.pathExists(file_uri_1.FileUri.fsPath(uri));
70
- if (!exists) {
71
- return this.missingResourceHandler()(uri, response);
72
- }
73
- const statWithContent = await this.readContent(uri);
74
- try {
75
- if (!statWithContent.stat.isDirectory()) {
76
- const extension = uri.split('.').pop();
77
- if (!extension) {
78
- return this.defaultHandler()(statWithContent, response);
79
- }
80
- const handler = this.handlers.get(extension.toString().toLocaleLowerCase());
81
- if (!handler) {
82
- return this.defaultHandler()(statWithContent, response);
83
- }
84
- return handler.respond(statWithContent, response);
85
- }
86
- }
87
- catch (e) {
88
- return this.errorHandler()(e, uri, response);
89
- }
90
- return this.defaultHandler()(statWithContent, response);
91
- }
92
- getContributions() {
93
- return this.contributions.getContributions();
94
- }
95
- getUri(request) {
96
- return file_uri_1.FileUri.create(request.path).toString(true);
97
- }
98
- async readContent(uri) {
99
- const fsPath = file_uri_1.FileUri.fsPath(uri);
100
- const [stat, content] = await Promise.all([fs.stat(fsPath), fs.readFile(fsPath, 'utf8')]);
101
- return { stat: Object.assign(stat, { uri }), content };
102
- }
103
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
- errorHandler() {
105
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
- return async (error, uri, response) => {
107
- const details = error.toString ? error.toString() : error;
108
- this.logger.error(`Error occurred while handling request for ${uri}. Details: ${details}`);
109
- if (error instanceof Error) {
110
- let message = error.message;
111
- if (error.stack) {
112
- message += `\n${error.stack}`;
113
- }
114
- this.logger.error(message);
115
- }
116
- else if (typeof error === 'string') {
117
- this.logger.error(error);
118
- }
119
- else {
120
- this.logger.error(`${error}`);
121
- }
122
- return response.send(500);
123
- };
124
- }
125
- missingResourceHandler() {
126
- return async (uri, response) => {
127
- this.logger.error(`Cannot handle missing resource. URI: ${uri}.`);
128
- return response.sendStatus(404);
129
- };
130
- }
131
- defaultHandler() {
132
- return async (statWithContent, response) => {
133
- const { content } = statWithContent;
134
- const mimeType = (0, mime_types_1.lookup)(file_uri_1.FileUri.fsPath(statWithContent.stat.uri));
135
- if (!mimeType) {
136
- this.logger.warn(`Cannot handle unexpected resource. URI: ${statWithContent.stat.uri}.`);
137
- response.contentType('application/octet-stream');
138
- }
139
- else {
140
- response.contentType(mimeType);
141
- }
142
- return response.send(content);
143
- };
144
- }
145
- async getVirtualHostRegExp() {
146
- const pattern = process.env[mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_ENV] || mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_DEFAULT;
147
- const vhostRe = pattern
148
- .replace(/\./g, '\\.')
149
- .replace('{{uuid}}', '.+')
150
- .replace('{{hostname}}', '.+');
151
- return new RegExp(vhostRe, 'i');
152
- }
153
- };
154
- __decorate([
155
- (0, inversify_1.inject)(logger_1.ILogger),
156
- __metadata("design:type", Object)
157
- ], MiniBrowserEndpoint.prototype, "logger", void 0);
158
- __decorate([
159
- (0, inversify_1.inject)(contribution_provider_1.ContributionProvider),
160
- (0, inversify_1.named)(exports.MiniBrowserEndpointHandler),
161
- __metadata("design:type", Object)
162
- ], MiniBrowserEndpoint.prototype, "contributions", void 0);
163
- MiniBrowserEndpoint = __decorate([
164
- (0, inversify_1.injectable)()
165
- ], MiniBrowserEndpoint);
166
- exports.MiniBrowserEndpoint = MiniBrowserEndpoint;
167
- // See `EditorManager#canHandle`.
168
- const CODE_EDITOR_PRIORITY = 100;
169
- /**
170
- * Endpoint handler contribution for HTML files.
171
- */
172
- let HtmlHandler = class HtmlHandler {
173
- supportedExtensions() {
174
- return ['html', 'xhtml', 'htm'];
175
- }
176
- priority() {
177
- // Prefer Code Editor over Mini Browser
178
- // https://github.com/eclipse-theia/theia/issues/2051
179
- return 1;
180
- }
181
- respond(statWithContent, response) {
182
- response.contentType('text/html');
183
- return response.send(statWithContent.content);
184
- }
185
- };
186
- HtmlHandler = __decorate([
187
- (0, inversify_1.injectable)()
188
- ], HtmlHandler);
189
- exports.HtmlHandler = HtmlHandler;
190
- /**
191
- * Handler for JPG resources.
192
- */
193
- let ImageHandler = class ImageHandler {
194
- supportedExtensions() {
195
- return ['jpg', 'jpeg', 'png', 'bmp', 'gif'];
196
- }
197
- priority() {
198
- return CODE_EDITOR_PRIORITY + 1;
199
- }
200
- respond(statWithContent, response) {
201
- fs.readFile(file_uri_1.FileUri.fsPath(statWithContent.stat.uri), (error, data) => {
202
- if (error) {
203
- throw error;
204
- }
205
- response.contentType('image/jpeg');
206
- response.send(data);
207
- });
208
- return response;
209
- }
210
- };
211
- ImageHandler = __decorate([
212
- (0, inversify_1.injectable)()
213
- ], ImageHandler);
214
- exports.ImageHandler = ImageHandler;
215
- /**
216
- * PDF endpoint handler.
217
- */
218
- let PdfHandler = class PdfHandler {
219
- supportedExtensions() {
220
- return 'pdf';
221
- }
222
- priority() {
223
- return CODE_EDITOR_PRIORITY + 1;
224
- }
225
- respond(statWithContent, response) {
226
- // https://stackoverflow.com/questions/11598274/display-pdf-in-browser-using-express-js
227
- const encodeRFC5987ValueChars = (input) => encodeURIComponent(input).
228
- // Note that although RFC3986 reserves "!", RFC5987 does not, so we do not need to escape it.
229
- replace(/['()]/g, escape). // i.e., %27 %28 %29
230
- replace(/\*/g, '%2A').
231
- // The following are not required for percent-encoding per RFC5987, so we can allow for a little better readability over the wire: |`^.
232
- replace(/%(?:7C|60|5E)/g, unescape);
233
- const fileName = file_uri_1.FileUri.create(statWithContent.stat.uri).path.base;
234
- fs.readFile(file_uri_1.FileUri.fsPath(statWithContent.stat.uri), (error, data) => {
235
- if (error) {
236
- throw error;
237
- }
238
- // Change `inline` to `attachment` if you would like to force downloading the PDF instead of previewing in the browser.
239
- response.setHeader('Content-disposition', `inline; filename*=UTF-8''${encodeRFC5987ValueChars(fileName)}`);
240
- response.contentType('application/pdf');
241
- response.send(data);
242
- });
243
- return response;
244
- }
245
- };
246
- PdfHandler = __decorate([
247
- (0, inversify_1.injectable)()
248
- ], PdfHandler);
249
- exports.PdfHandler = PdfHandler;
250
- /**
251
- * Endpoint contribution for SVG resources.
252
- */
253
- let SvgHandler = class SvgHandler {
254
- supportedExtensions() {
255
- return 'svg';
256
- }
257
- priority() {
258
- return 1;
259
- }
260
- respond(statWithContent, response) {
261
- response.contentType('image/svg+xml');
262
- return response.send(statWithContent.content);
263
- }
264
- };
265
- SvgHandler = __decorate([
266
- (0, inversify_1.injectable)()
267
- ], SvgHandler);
268
- exports.SvgHandler = SvgHandler;
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2018 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ 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;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.SvgHandler = exports.PdfHandler = exports.ImageHandler = exports.HtmlHandler = exports.MiniBrowserEndpoint = exports.MiniBrowserEndpointHandler = void 0;
28
+ const vhost = require('vhost');
29
+ const express = require("@theia/core/shared/express");
30
+ const fs = require("@theia/core/shared/fs-extra");
31
+ const mime_types_1 = require("mime-types");
32
+ const inversify_1 = require("@theia/core/shared/inversify");
33
+ const file_uri_1 = require("@theia/core/lib/common/file-uri");
34
+ const logger_1 = require("@theia/core/lib/common/logger");
35
+ const contribution_provider_1 = require("@theia/core/lib/common/contribution-provider");
36
+ const mini_browser_endpoint_1 = require("../common/mini-browser-endpoint");
37
+ /**
38
+ * Endpoint handler contribution for the `MiniBrowserEndpoint`.
39
+ */
40
+ exports.MiniBrowserEndpointHandler = Symbol('MiniBrowserEndpointHandler');
41
+ let MiniBrowserEndpoint = class MiniBrowserEndpoint {
42
+ constructor() {
43
+ this.handlers = new Map();
44
+ }
45
+ configure(app) {
46
+ this.attachRequestHandlerPromise = this.attachRequestHandler(app);
47
+ }
48
+ async onStart() {
49
+ await Promise.all(Array.from(this.getContributions(), async (handler) => {
50
+ const extensions = await handler.supportedExtensions();
51
+ for (const extension of (Array.isArray(extensions) ? extensions : [extensions]).map(e => e.toLocaleLowerCase())) {
52
+ const existingHandler = this.handlers.get(extension);
53
+ if (!existingHandler || handler.priority > existingHandler.priority) {
54
+ this.handlers.set(extension, handler);
55
+ }
56
+ }
57
+ }));
58
+ await this.attachRequestHandlerPromise;
59
+ }
60
+ async supportedFileExtensions() {
61
+ return Array.from(this.handlers.entries(), ([extension, handler]) => ({ extension, priority: handler.priority() }));
62
+ }
63
+ async attachRequestHandler(app) {
64
+ const miniBrowserApp = express();
65
+ miniBrowserApp.get('*', async (request, response) => this.response(await this.getUri(request), response));
66
+ app.use(mini_browser_endpoint_1.MiniBrowserEndpoint.PATH, vhost(await this.getVirtualHostRegExp(), miniBrowserApp));
67
+ }
68
+ async response(uri, response) {
69
+ const exists = await fs.pathExists(file_uri_1.FileUri.fsPath(uri));
70
+ if (!exists) {
71
+ return this.missingResourceHandler()(uri, response);
72
+ }
73
+ const statWithContent = await this.readContent(uri);
74
+ try {
75
+ if (!statWithContent.stat.isDirectory()) {
76
+ const extension = uri.split('.').pop();
77
+ if (!extension) {
78
+ return this.defaultHandler()(statWithContent, response);
79
+ }
80
+ const handler = this.handlers.get(extension.toString().toLocaleLowerCase());
81
+ if (!handler) {
82
+ return this.defaultHandler()(statWithContent, response);
83
+ }
84
+ return handler.respond(statWithContent, response);
85
+ }
86
+ }
87
+ catch (e) {
88
+ return this.errorHandler()(e, uri, response);
89
+ }
90
+ return this.defaultHandler()(statWithContent, response);
91
+ }
92
+ getContributions() {
93
+ return this.contributions.getContributions();
94
+ }
95
+ getUri(request) {
96
+ return file_uri_1.FileUri.create(request.path).toString(true);
97
+ }
98
+ async readContent(uri) {
99
+ const fsPath = file_uri_1.FileUri.fsPath(uri);
100
+ const [stat, content] = await Promise.all([fs.stat(fsPath), fs.readFile(fsPath, 'utf8')]);
101
+ return { stat: Object.assign(stat, { uri }), content };
102
+ }
103
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
+ errorHandler() {
105
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
+ return async (error, uri, response) => {
107
+ const details = error.toString ? error.toString() : error;
108
+ this.logger.error(`Error occurred while handling request for ${uri}. Details: ${details}`);
109
+ if (error instanceof Error) {
110
+ let message = error.message;
111
+ if (error.stack) {
112
+ message += `\n${error.stack}`;
113
+ }
114
+ this.logger.error(message);
115
+ }
116
+ else if (typeof error === 'string') {
117
+ this.logger.error(error);
118
+ }
119
+ else {
120
+ this.logger.error(`${error}`);
121
+ }
122
+ return response.send(500);
123
+ };
124
+ }
125
+ missingResourceHandler() {
126
+ return async (uri, response) => {
127
+ this.logger.error(`Cannot handle missing resource. URI: ${uri}.`);
128
+ return response.sendStatus(404);
129
+ };
130
+ }
131
+ defaultHandler() {
132
+ return async (statWithContent, response) => {
133
+ const { content } = statWithContent;
134
+ const mimeType = (0, mime_types_1.lookup)(file_uri_1.FileUri.fsPath(statWithContent.stat.uri));
135
+ if (!mimeType) {
136
+ this.logger.warn(`Cannot handle unexpected resource. URI: ${statWithContent.stat.uri}.`);
137
+ response.contentType('application/octet-stream');
138
+ }
139
+ else {
140
+ response.contentType(mimeType);
141
+ }
142
+ return response.send(content);
143
+ };
144
+ }
145
+ async getVirtualHostRegExp() {
146
+ const pattern = process.env[mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_ENV] || mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_DEFAULT;
147
+ const vhostRe = pattern
148
+ .replace(/\./g, '\\.')
149
+ .replace('{{uuid}}', '.+')
150
+ .replace('{{hostname}}', '.+');
151
+ return new RegExp(vhostRe, 'i');
152
+ }
153
+ };
154
+ __decorate([
155
+ (0, inversify_1.inject)(logger_1.ILogger),
156
+ __metadata("design:type", Object)
157
+ ], MiniBrowserEndpoint.prototype, "logger", void 0);
158
+ __decorate([
159
+ (0, inversify_1.inject)(contribution_provider_1.ContributionProvider),
160
+ (0, inversify_1.named)(exports.MiniBrowserEndpointHandler),
161
+ __metadata("design:type", Object)
162
+ ], MiniBrowserEndpoint.prototype, "contributions", void 0);
163
+ MiniBrowserEndpoint = __decorate([
164
+ (0, inversify_1.injectable)()
165
+ ], MiniBrowserEndpoint);
166
+ exports.MiniBrowserEndpoint = MiniBrowserEndpoint;
167
+ // See `EditorManager#canHandle`.
168
+ const CODE_EDITOR_PRIORITY = 100;
169
+ /**
170
+ * Endpoint handler contribution for HTML files.
171
+ */
172
+ let HtmlHandler = class HtmlHandler {
173
+ supportedExtensions() {
174
+ return ['html', 'xhtml', 'htm'];
175
+ }
176
+ priority() {
177
+ // Prefer Code Editor over Mini Browser
178
+ // https://github.com/eclipse-theia/theia/issues/2051
179
+ return 1;
180
+ }
181
+ respond(statWithContent, response) {
182
+ response.contentType('text/html');
183
+ return response.send(statWithContent.content);
184
+ }
185
+ };
186
+ HtmlHandler = __decorate([
187
+ (0, inversify_1.injectable)()
188
+ ], HtmlHandler);
189
+ exports.HtmlHandler = HtmlHandler;
190
+ /**
191
+ * Handler for JPG resources.
192
+ */
193
+ let ImageHandler = class ImageHandler {
194
+ supportedExtensions() {
195
+ return ['jpg', 'jpeg', 'png', 'bmp', 'gif'];
196
+ }
197
+ priority() {
198
+ return CODE_EDITOR_PRIORITY + 1;
199
+ }
200
+ respond(statWithContent, response) {
201
+ fs.readFile(file_uri_1.FileUri.fsPath(statWithContent.stat.uri), (error, data) => {
202
+ if (error) {
203
+ throw error;
204
+ }
205
+ response.contentType('image/jpeg');
206
+ response.send(data);
207
+ });
208
+ return response;
209
+ }
210
+ };
211
+ ImageHandler = __decorate([
212
+ (0, inversify_1.injectable)()
213
+ ], ImageHandler);
214
+ exports.ImageHandler = ImageHandler;
215
+ /**
216
+ * PDF endpoint handler.
217
+ */
218
+ let PdfHandler = class PdfHandler {
219
+ supportedExtensions() {
220
+ return 'pdf';
221
+ }
222
+ priority() {
223
+ return CODE_EDITOR_PRIORITY + 1;
224
+ }
225
+ respond(statWithContent, response) {
226
+ // https://stackoverflow.com/questions/11598274/display-pdf-in-browser-using-express-js
227
+ const encodeRFC5987ValueChars = (input) => encodeURIComponent(input).
228
+ // Note that although RFC3986 reserves "!", RFC5987 does not, so we do not need to escape it.
229
+ replace(/['()]/g, escape). // i.e., %27 %28 %29
230
+ replace(/\*/g, '%2A').
231
+ // The following are not required for percent-encoding per RFC5987, so we can allow for a little better readability over the wire: |`^.
232
+ replace(/%(?:7C|60|5E)/g, unescape);
233
+ const fileName = file_uri_1.FileUri.create(statWithContent.stat.uri).path.base;
234
+ fs.readFile(file_uri_1.FileUri.fsPath(statWithContent.stat.uri), (error, data) => {
235
+ if (error) {
236
+ throw error;
237
+ }
238
+ // Change `inline` to `attachment` if you would like to force downloading the PDF instead of previewing in the browser.
239
+ response.setHeader('Content-disposition', `inline; filename*=UTF-8''${encodeRFC5987ValueChars(fileName)}`);
240
+ response.contentType('application/pdf');
241
+ response.send(data);
242
+ });
243
+ return response;
244
+ }
245
+ };
246
+ PdfHandler = __decorate([
247
+ (0, inversify_1.injectable)()
248
+ ], PdfHandler);
249
+ exports.PdfHandler = PdfHandler;
250
+ /**
251
+ * Endpoint contribution for SVG resources.
252
+ */
253
+ let SvgHandler = class SvgHandler {
254
+ supportedExtensions() {
255
+ return 'svg';
256
+ }
257
+ priority() {
258
+ return 1;
259
+ }
260
+ respond(statWithContent, response) {
261
+ response.contentType('image/svg+xml');
262
+ return response.send(statWithContent.content);
263
+ }
264
+ };
265
+ SvgHandler = __decorate([
266
+ (0, inversify_1.injectable)()
267
+ ], SvgHandler);
268
+ exports.SvgHandler = SvgHandler;
269
269
  //# sourceMappingURL=mini-browser-endpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mini-browser-endpoint.js","sourceRoot":"","sources":["../../src/node/mini-browser-endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mini-browser-endpoint.js","sourceRoot":"","sources":["../../src/node/mini-browser-endpoint.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- /// <reference types="node" />
2
- import { WsRequestValidatorContribution } from '@theia/core/lib/node/ws-request-validators';
3
- import * as http from 'http';
4
- /**
5
- * Prevents explicit WebSocket connections from the mini-browser virtual host.
6
- */
7
- export declare class MiniBrowserWsRequestValidator implements WsRequestValidatorContribution {
8
- protected miniBrowserHostRe: RegExp;
9
- protected serveSameOrigin: boolean;
10
- protected init(): void;
11
- allowWsUpgrade(request: http.IncomingMessage): Promise<boolean>;
12
- }
1
+ /// <reference types="node" />
2
+ import { WsRequestValidatorContribution } from '@theia/core/lib/node/ws-request-validators';
3
+ import * as http from 'http';
4
+ /**
5
+ * Prevents explicit WebSocket connections from the mini-browser virtual host.
6
+ */
7
+ export declare class MiniBrowserWsRequestValidator implements WsRequestValidatorContribution {
8
+ protected miniBrowserHostRe: RegExp;
9
+ protected serveSameOrigin: boolean;
10
+ protected init(): void;
11
+ allowWsUpgrade(request: http.IncomingMessage): Promise<boolean>;
12
+ }
13
13
  //# sourceMappingURL=mini-browser-ws-validator.d.ts.map