@theia/mini-browser 1.67.0-next.56 → 1.67.0-next.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/environment/mini-browser-environment-module.d.ts +4 -0
- package/lib/browser/environment/mini-browser-environment-module.d.ts.map +1 -0
- package/lib/browser/environment/mini-browser-environment-module.js +25 -0
- package/lib/browser/environment/mini-browser-environment-module.js.map +1 -0
- package/lib/browser/environment/mini-browser-environment.d.ts +26 -0
- package/lib/browser/environment/mini-browser-environment.d.ts.map +1 -0
- package/lib/browser/environment/mini-browser-environment.js +88 -0
- package/lib/browser/environment/mini-browser-environment.js.map +1 -0
- package/lib/browser/location-mapper-service.d.ts +59 -0
- package/lib/browser/location-mapper-service.d.ts.map +1 -0
- package/lib/browser/location-mapper-service.js +133 -0
- package/lib/browser/location-mapper-service.js.map +1 -0
- package/lib/browser/mini-browser-content-style.d.ts +18 -0
- package/lib/browser/mini-browser-content-style.d.ts.map +1 -0
- package/lib/browser/mini-browser-content-style.js +37 -0
- package/lib/browser/mini-browser-content-style.js.map +1 -0
- package/lib/browser/mini-browser-content.d.ts +178 -0
- package/lib/browser/mini-browser-content.d.ts.map +1 -0
- package/lib/browser/mini-browser-content.js +543 -0
- package/lib/browser/mini-browser-content.js.map +1 -0
- package/lib/browser/mini-browser-frontend-module.d.ts +5 -0
- package/lib/browser/mini-browser-frontend-module.d.ts.map +1 -0
- package/lib/browser/mini-browser-frontend-module.js +71 -0
- package/lib/browser/mini-browser-frontend-module.js.map +1 -0
- package/lib/browser/mini-browser-frontend-security-warnings.d.ts +12 -0
- package/lib/browser/mini-browser-frontend-security-warnings.d.ts.map +1 -0
- package/lib/browser/mini-browser-frontend-security-warnings.js +66 -0
- package/lib/browser/mini-browser-frontend-security-warnings.js.map +1 -0
- package/lib/browser/mini-browser-open-handler.d.ts +77 -0
- package/lib/browser/mini-browser-open-handler.d.ts.map +1 -0
- package/lib/browser/mini-browser-open-handler.js +285 -0
- package/lib/browser/mini-browser-open-handler.js.map +1 -0
- package/lib/browser/mini-browser.d.ts +26 -0
- package/lib/browser/mini-browser.d.ts.map +1 -0
- package/lib/browser/mini-browser.js +111 -0
- package/lib/browser/mini-browser.js.map +1 -0
- package/lib/common/mini-browser-endpoint.d.ts +13 -0
- package/lib/common/mini-browser-endpoint.d.ts.map +1 -0
- package/lib/common/mini-browser-endpoint.js +32 -0
- package/lib/common/mini-browser-endpoint.js.map +1 -0
- package/lib/common/mini-browser-service.d.ts +15 -0
- package/lib/common/mini-browser-service.d.ts.map +1 -0
- package/lib/common/mini-browser-service.js +21 -0
- package/lib/common/mini-browser-service.js.map +1 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment-module.d.ts +4 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment-module.d.ts.map +1 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment-module.js +26 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment-module.js.map +1 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment.d.ts +10 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment.d.ts.map +1 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment.js +53 -0
- package/lib/electron-browser/environment/electron-mini-browser-environment.js.map +1 -0
- package/lib/electron-main/mini-browser-electron-main-contribution.d.ts +13 -0
- package/lib/electron-main/mini-browser-electron-main-contribution.d.ts.map +1 -0
- package/lib/electron-main/mini-browser-electron-main-contribution.js +47 -0
- package/lib/electron-main/mini-browser-electron-main-contribution.js.map +1 -0
- package/lib/node/mini-browser-backend-module.d.ts +4 -0
- package/lib/node/mini-browser-backend-module.d.ts.map +1 -0
- package/lib/node/mini-browser-backend-module.js +42 -0
- package/lib/node/mini-browser-backend-module.js.map +1 -0
- package/lib/node/mini-browser-backend-security-warnings.d.ts +6 -0
- package/lib/node/mini-browser-backend-security-warnings.d.ts.map +1 -0
- package/lib/node/mini-browser-backend-security-warnings.js +47 -0
- package/lib/node/mini-browser-backend-security-warnings.js.map +1 -0
- package/lib/node/mini-browser-endpoint.d.ts +98 -0
- package/lib/node/mini-browser-endpoint.d.ts.map +1 -0
- package/lib/node/mini-browser-endpoint.js +261 -0
- package/lib/node/mini-browser-endpoint.js.map +1 -0
- package/lib/node/mini-browser-ws-validator.d.ts +13 -0
- package/lib/node/mini-browser-ws-validator.d.ts.map +1 -0
- package/lib/node/mini-browser-ws-validator.js +62 -0
- package/lib/node/mini-browser-ws-validator.js.map +1 -0
- package/lib/package.spec.d.ts +1 -0
- package/lib/package.spec.d.ts.map +1 -0
- package/lib/package.spec.js +19 -0
- package/lib/package.spec.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mini-browser can now serve content on its own host/origin.
|
|
3
|
+
*
|
|
4
|
+
* The virtual host can be configured with this `THEIA_MINI_BROWSER_HOST_PATTERN`
|
|
5
|
+
* environment variable. `{{hostname}}` represents the current host, and `{{uuid}}`
|
|
6
|
+
* will be replace by a random uuid value.
|
|
7
|
+
*/
|
|
8
|
+
export declare namespace MiniBrowserEndpoint {
|
|
9
|
+
const PATH = "/mini-browser";
|
|
10
|
+
const HOST_PATTERN_ENV = "THEIA_MINI_BROWSER_HOST_PATTERN";
|
|
11
|
+
const HOST_PATTERN_DEFAULT = "{{uuid}}.mini-browser.{{hostname}}";
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=mini-browser-endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-endpoint.d.ts","sourceRoot":"","sources":["../../src/common/mini-browser-endpoint.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,IAAI,kBAAkB,CAAC;IAC7B,MAAM,gBAAgB,oCAAoC,CAAC;IAC3D,MAAM,oBAAoB,uCAAuC,CAAC;CAC5E"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 Ericsson 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MiniBrowserEndpoint = void 0;
|
|
19
|
+
/**
|
|
20
|
+
* The mini-browser can now serve content on its own host/origin.
|
|
21
|
+
*
|
|
22
|
+
* The virtual host can be configured with this `THEIA_MINI_BROWSER_HOST_PATTERN`
|
|
23
|
+
* environment variable. `{{hostname}}` represents the current host, and `{{uuid}}`
|
|
24
|
+
* will be replace by a random uuid value.
|
|
25
|
+
*/
|
|
26
|
+
var MiniBrowserEndpoint;
|
|
27
|
+
(function (MiniBrowserEndpoint) {
|
|
28
|
+
MiniBrowserEndpoint.PATH = '/mini-browser';
|
|
29
|
+
MiniBrowserEndpoint.HOST_PATTERN_ENV = 'THEIA_MINI_BROWSER_HOST_PATTERN';
|
|
30
|
+
MiniBrowserEndpoint.HOST_PATTERN_DEFAULT = '{{uuid}}.mini-browser.{{hostname}}';
|
|
31
|
+
})(MiniBrowserEndpoint || (exports.MiniBrowserEndpoint = MiniBrowserEndpoint = {}));
|
|
32
|
+
//# sourceMappingURL=mini-browser-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-endpoint.js","sourceRoot":"","sources":["../../src/common/mini-browser-endpoint.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF;;;;;;GAMG;AACH,IAAiB,mBAAmB,CAInC;AAJD,WAAiB,mBAAmB;IACnB,wBAAI,GAAG,eAAe,CAAC;IACvB,oCAAgB,GAAG,iCAAiC,CAAC;IACrD,wCAAoB,GAAG,oCAAoC,CAAC;AAC7E,CAAC,EAJgB,mBAAmB,mCAAnB,mBAAmB,QAInC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const MiniBrowserServicePath = "/services/mini-browser-service";
|
|
2
|
+
export declare const MiniBrowserService: unique symbol;
|
|
3
|
+
export interface MiniBrowserService {
|
|
4
|
+
/**
|
|
5
|
+
* Resolves to an array of file extensions - priority pairs supported by the `Mini Browser`.
|
|
6
|
+
*
|
|
7
|
+
* The file extensions start without the leading dot (`.`) and should be treated in a case-insensitive way. This means,
|
|
8
|
+
* if the `Mini Browser` supports `['jpg']`, then it can open the `MyPicture.JPG` file.
|
|
9
|
+
*/
|
|
10
|
+
supportedFileExtensions(): Promise<Readonly<{
|
|
11
|
+
extension: string;
|
|
12
|
+
priority: number;
|
|
13
|
+
}>[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=mini-browser-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-service.d.ts","sourceRoot":"","sources":["../../src/common/mini-browser-service.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,sBAAsB,mCAAmC,CAAC;AACvE,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,MAAM,WAAW,kBAAkB;IAE/B;;;;;OAKG;IACH,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,CAAC;CAE3F"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MiniBrowserService = exports.MiniBrowserServicePath = void 0;
|
|
19
|
+
exports.MiniBrowserServicePath = '/services/mini-browser-service';
|
|
20
|
+
exports.MiniBrowserService = Symbol('MiniBrowserService');
|
|
21
|
+
//# sourceMappingURL=mini-browser-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-service.js","sourceRoot":"","sources":["../../src/common/mini-browser-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEnE,QAAA,sBAAsB,GAAG,gCAAgC,CAAC;AAC1D,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-mini-browser-environment-module.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/environment/electron-mini-browser-environment-module.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAI/D,wBAGG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 Ericsson 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
19
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
20
|
+
const mini_browser_environment_1 = require("../../browser/environment/mini-browser-environment");
|
|
21
|
+
const electron_mini_browser_environment_1 = require("./electron-mini-browser-environment");
|
|
22
|
+
exports.default = new inversify_1.ContainerModule(bind => {
|
|
23
|
+
bind(mini_browser_environment_1.MiniBrowserEnvironment).to(electron_mini_browser_environment_1.ElectronMiniBrowserEnvironment).inSingletonScope();
|
|
24
|
+
bind(browser_1.FrontendApplicationContribution).toService(mini_browser_environment_1.MiniBrowserEnvironment);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=electron-mini-browser-environment-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-mini-browser-environment-module.js","sourceRoot":"","sources":["../../../src/electron-browser/environment/electron-mini-browser-environment-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,qDAA0E;AAC1E,4DAA+D;AAC/D,iGAA4F;AAC5F,2FAAqF;AAErF,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,iDAAsB,CAAC,CAAC,EAAE,CAAC,kEAA8B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACnF,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,iDAAsB,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Endpoint } from '@theia/core/lib/browser';
|
|
2
|
+
import { ElectronSecurityToken } from '@theia/core/lib/electron-common/electron-token';
|
|
3
|
+
import { MiniBrowserEnvironment } from '../../browser/environment/mini-browser-environment';
|
|
4
|
+
import '@theia/core/lib/electron-common/electron-api';
|
|
5
|
+
export declare class ElectronMiniBrowserEnvironment extends MiniBrowserEnvironment {
|
|
6
|
+
protected readonly electronSecurityToken: ElectronSecurityToken;
|
|
7
|
+
getEndpoint(uuid: string, hostname?: string): Endpoint;
|
|
8
|
+
protected getDefaultHostname(): string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=electron-mini-browser-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-mini-browser-environment.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/environment/electron-mini-browser-environment.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAE5F,OAAO,8CAA8C,CAAC;AAEtD,qBACa,8BAA+B,SAAQ,sBAAsB;IAGtE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEvD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;cAO5C,kBAAkB,IAAI,MAAM;CAelD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 Ericsson 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ElectronMiniBrowserEnvironment = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const electron_token_1 = require("@theia/core/lib/electron-common/electron-token");
|
|
21
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const mini_browser_environment_1 = require("../../browser/environment/mini-browser-environment");
|
|
23
|
+
require("@theia/core/lib/electron-common/electron-api");
|
|
24
|
+
let ElectronMiniBrowserEnvironment = class ElectronMiniBrowserEnvironment extends mini_browser_environment_1.MiniBrowserEnvironment {
|
|
25
|
+
getEndpoint(uuid, hostname) {
|
|
26
|
+
const endpoint = super.getEndpoint(uuid, hostname);
|
|
27
|
+
window.electronTheiaCore.attachSecurityToken(endpoint.getRestUrl().toString(true));
|
|
28
|
+
return endpoint;
|
|
29
|
+
}
|
|
30
|
+
getDefaultHostname() {
|
|
31
|
+
const query = self.location.search
|
|
32
|
+
.substring(1) // remove leading `?`
|
|
33
|
+
.split('&')
|
|
34
|
+
.map(entry => entry
|
|
35
|
+
.split('=', 2)
|
|
36
|
+
.map(element => decodeURIComponent(element)));
|
|
37
|
+
for (const [key, value] of query) {
|
|
38
|
+
if (key === 'port') {
|
|
39
|
+
return `localhost:${value}`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
throw new Error('could not resolve Electron\'s backend port');
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.ElectronMiniBrowserEnvironment = ElectronMiniBrowserEnvironment;
|
|
46
|
+
tslib_1.__decorate([
|
|
47
|
+
(0, inversify_1.inject)(electron_token_1.ElectronSecurityToken),
|
|
48
|
+
tslib_1.__metadata("design:type", Object)
|
|
49
|
+
], ElectronMiniBrowserEnvironment.prototype, "electronSecurityToken", void 0);
|
|
50
|
+
exports.ElectronMiniBrowserEnvironment = ElectronMiniBrowserEnvironment = tslib_1.__decorate([
|
|
51
|
+
(0, inversify_1.injectable)()
|
|
52
|
+
], ElectronMiniBrowserEnvironment);
|
|
53
|
+
//# sourceMappingURL=electron-mini-browser-environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-mini-browser-environment.js","sourceRoot":"","sources":["../../../src/electron-browser/environment/electron-mini-browser-environment.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAIhF,mFAAuF;AACvF,4DAAkE;AAClE,iGAA4F;AAE5F,wDAAsD;AAG/C,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,iDAAsB;IAK7D,WAAW,CAAC,IAAY,EAAE,QAAiB;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEkB,kBAAkB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC7B,SAAS,CAAC,CAAC,CAAC,CAAC,qBAAqB;aAClC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;aACd,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;aACb,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAC/C,CAAC;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACjB,OAAO,aAAa,KAAK,EAAE,CAAC;YAChC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;CACJ,CAAA;AA3BY,wEAA8B;AAGpB;IADlB,IAAA,kBAAM,EAAC,sCAAqB,CAAC;;6EACkC;yCAHvD,8BAA8B;IAD1C,IAAA,sBAAU,GAAE;GACA,8BAA8B,CA2B1C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ElectronMainApplication, ElectronMainApplicationContribution } from '@theia/core/lib/electron-main/electron-main-application';
|
|
2
|
+
import { ElectronSecurityTokenService } from '@theia/core/lib/electron-main/electron-security-token-service';
|
|
3
|
+
/**
|
|
4
|
+
* Since the mini-browser might serve content from a new origin,
|
|
5
|
+
* we need to attach the ElectronSecurityToken for the Electron
|
|
6
|
+
* backend to accept HTTP requests.
|
|
7
|
+
*/
|
|
8
|
+
export declare class MiniBrowserElectronMainContribution implements ElectronMainApplicationContribution {
|
|
9
|
+
protected readonly electronSecurityTokenService: ElectronSecurityTokenService;
|
|
10
|
+
onStart(app: ElectronMainApplication): Promise<void>;
|
|
11
|
+
protected getMiniBrowserEndpoint(port: number): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=mini-browser-electron-main-contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-electron-main-contribution.d.ts","sourceRoot":"","sources":["../../src/electron-main/mini-browser-electron-main-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,uBAAuB,EAAE,mCAAmC,EAAE,MAAM,yDAAyD,CAAC;AACvI,OAAO,EAAE,4BAA4B,EAAE,MAAM,+DAA+D,CAAC;AAI7G;;;;GAIG;AACH,qBACa,mCAAoC,YAAW,mCAAmC;IAG3F,SAAS,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B,CAAC;IAExE,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAIzD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 Ericsson 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MiniBrowserElectronMainContribution = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const electron_security_token_service_1 = require("@theia/core/lib/electron-main/electron-security-token-service");
|
|
21
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const mini_browser_endpoint_1 = require("../common/mini-browser-endpoint");
|
|
23
|
+
/**
|
|
24
|
+
* Since the mini-browser might serve content from a new origin,
|
|
25
|
+
* we need to attach the ElectronSecurityToken for the Electron
|
|
26
|
+
* backend to accept HTTP requests.
|
|
27
|
+
*/
|
|
28
|
+
let MiniBrowserElectronMainContribution = class MiniBrowserElectronMainContribution {
|
|
29
|
+
async onStart(app) {
|
|
30
|
+
const url = this.getMiniBrowserEndpoint(await app.backendPort);
|
|
31
|
+
await this.electronSecurityTokenService.setElectronSecurityTokenCookie(url);
|
|
32
|
+
}
|
|
33
|
+
getMiniBrowserEndpoint(port) {
|
|
34
|
+
var _a;
|
|
35
|
+
const pattern = (_a = process.env[mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_ENV]) !== null && _a !== void 0 ? _a : mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_DEFAULT;
|
|
36
|
+
return 'http://' + pattern.replace('{{hostname}}', `localhost:${port}`);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.MiniBrowserElectronMainContribution = MiniBrowserElectronMainContribution;
|
|
40
|
+
tslib_1.__decorate([
|
|
41
|
+
(0, inversify_1.inject)(electron_security_token_service_1.ElectronSecurityTokenService),
|
|
42
|
+
tslib_1.__metadata("design:type", electron_security_token_service_1.ElectronSecurityTokenService)
|
|
43
|
+
], MiniBrowserElectronMainContribution.prototype, "electronSecurityTokenService", void 0);
|
|
44
|
+
exports.MiniBrowserElectronMainContribution = MiniBrowserElectronMainContribution = tslib_1.__decorate([
|
|
45
|
+
(0, inversify_1.injectable)()
|
|
46
|
+
], MiniBrowserElectronMainContribution);
|
|
47
|
+
//# sourceMappingURL=mini-browser-electron-main-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-electron-main-contribution.js","sourceRoot":"","sources":["../../src/electron-main/mini-browser-electron-main-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,mHAA6G;AAC7G,4DAAkE;AAClE,2EAAsE;AAEtE;;;;GAIG;AAEI,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAK5C,KAAK,CAAC,OAAO,CAAC,GAA4B;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,4BAA4B,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAES,sBAAsB,CAAC,IAAY;;QACzC,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,2CAAmB,CAAC,gBAAgB,CAAC,mCAAI,2CAAmB,CAAC,oBAAoB,CAAC;QAC9G,OAAO,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;CACJ,CAAA;AAdY,kFAAmC;AAGzB;IADlB,IAAA,kBAAM,EAAC,8DAA4B,CAAC;sCACY,8DAA4B;yFAAC;8CAHrE,mCAAmC;IAD/C,IAAA,sBAAU,GAAE;GACA,mCAAmC,CAc/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/mini-browser-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAU/D,wBAcG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
19
|
+
const contribution_provider_1 = require("@theia/core/lib/common/contribution-provider");
|
|
20
|
+
const backend_application_1 = require("@theia/core/lib/node/backend-application");
|
|
21
|
+
const common_1 = require("@theia/core/lib/common");
|
|
22
|
+
const mini_browser_service_1 = require("../common/mini-browser-service");
|
|
23
|
+
const mini_browser_endpoint_1 = require("./mini-browser-endpoint");
|
|
24
|
+
const ws_request_validators_1 = require("@theia/core/lib/node/ws-request-validators");
|
|
25
|
+
const mini_browser_ws_validator_1 = require("./mini-browser-ws-validator");
|
|
26
|
+
const mini_browser_backend_security_warnings_1 = require("./mini-browser-backend-security-warnings");
|
|
27
|
+
exports.default = new inversify_1.ContainerModule(bind => {
|
|
28
|
+
bind(mini_browser_endpoint_1.MiniBrowserEndpoint).toSelf().inSingletonScope();
|
|
29
|
+
bind(backend_application_1.BackendApplicationContribution).toService(mini_browser_endpoint_1.MiniBrowserEndpoint);
|
|
30
|
+
bind(mini_browser_ws_validator_1.MiniBrowserWsRequestValidator).toSelf().inSingletonScope();
|
|
31
|
+
bind(ws_request_validators_1.WsRequestValidatorContribution).toService(mini_browser_ws_validator_1.MiniBrowserWsRequestValidator);
|
|
32
|
+
bind(mini_browser_service_1.MiniBrowserService).toService(mini_browser_endpoint_1.MiniBrowserEndpoint);
|
|
33
|
+
bind(common_1.ConnectionHandler).toDynamicValue(context => new common_1.RpcConnectionHandler(mini_browser_service_1.MiniBrowserServicePath, () => context.container.get(mini_browser_service_1.MiniBrowserService))).inSingletonScope();
|
|
34
|
+
(0, contribution_provider_1.bindContributionProvider)(bind, mini_browser_endpoint_1.MiniBrowserEndpointHandler);
|
|
35
|
+
bind(mini_browser_endpoint_1.MiniBrowserEndpointHandler).to(mini_browser_endpoint_1.HtmlHandler).inSingletonScope();
|
|
36
|
+
bind(mini_browser_endpoint_1.MiniBrowserEndpointHandler).to(mini_browser_endpoint_1.ImageHandler).inSingletonScope();
|
|
37
|
+
bind(mini_browser_endpoint_1.MiniBrowserEndpointHandler).to(mini_browser_endpoint_1.PdfHandler).inSingletonScope();
|
|
38
|
+
bind(mini_browser_endpoint_1.MiniBrowserEndpointHandler).to(mini_browser_endpoint_1.SvgHandler).inSingletonScope();
|
|
39
|
+
bind(mini_browser_backend_security_warnings_1.MiniBrowserBackendSecurityWarnings).toSelf().inSingletonScope();
|
|
40
|
+
bind(backend_application_1.BackendApplicationContribution).toService(mini_browser_backend_security_warnings_1.MiniBrowserBackendSecurityWarnings);
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=mini-browser-backend-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-backend-module.js","sourceRoot":"","sources":["../../src/node/mini-browser-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA+D;AAC/D,wFAAwF;AACxF,kFAA0F;AAC1F,mDAAiF;AACjF,yEAA4F;AAC5F,mEAA6I;AAC7I,sFAA4F;AAC5F,2EAA4E;AAC5E,qGAA8F;AAE9F,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,2CAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,2CAAmB,CAAC,CAAC;IACpE,IAAI,CAAC,yDAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,yDAA6B,CAAC,CAAC;IAC9E,IAAI,CAAC,yCAAkB,CAAC,CAAC,SAAS,CAAC,2CAAmB,CAAC,CAAC;IACxD,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,6BAAoB,CAAC,6CAAsB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,yCAAkB,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxK,IAAA,gDAAwB,EAAC,IAAI,EAAE,kDAA0B,CAAC,CAAC;IAC3D,IAAI,CAAC,kDAA0B,CAAC,CAAC,EAAE,CAAC,mCAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,kDAA0B,CAAC,CAAC,EAAE,CAAC,oCAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,kDAA0B,CAAC,CAAC,EAAE,CAAC,kCAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,kDAA0B,CAAC,CAAC,EAAE,CAAC,kCAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACnE,IAAI,CAAC,2EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,2EAAkC,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BackendApplicationContribution } from '@theia/core/lib/node';
|
|
2
|
+
export declare class MiniBrowserBackendSecurityWarnings implements BackendApplicationContribution {
|
|
3
|
+
initialize(): void;
|
|
4
|
+
protected checkHostPattern(): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=mini-browser-backend-security-warnings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-backend-security-warnings.d.ts","sourceRoot":"","sources":["../../src/node/mini-browser-backend-security-warnings.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAKtE,qBACa,kCAAmC,YAAW,8BAA8B;IAErF,UAAU,IAAI,IAAI;cAIF,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBpD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 Ericsson 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MiniBrowserBackendSecurityWarnings = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const backend_application_config_provider_1 = require("@theia/core/lib/node/backend-application-config-provider");
|
|
21
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const mini_browser_endpoint_1 = require("../common/mini-browser-endpoint");
|
|
23
|
+
let MiniBrowserBackendSecurityWarnings = class MiniBrowserBackendSecurityWarnings {
|
|
24
|
+
initialize() {
|
|
25
|
+
this.checkHostPattern();
|
|
26
|
+
}
|
|
27
|
+
async checkHostPattern() {
|
|
28
|
+
if (backend_application_config_provider_1.BackendApplicationConfigProvider.get()['warnOnPotentiallyInsecureHostPattern'] === false) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const envHostPattern = process.env[mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_ENV];
|
|
32
|
+
if (envHostPattern && envHostPattern !== mini_browser_endpoint_1.MiniBrowserEndpoint.HOST_PATTERN_DEFAULT) {
|
|
33
|
+
console.warn(`\
|
|
34
|
+
MINI BROWSER SECURITY WARNING
|
|
35
|
+
|
|
36
|
+
Changing the @theia/mini-browser host pattern can lead to security vulnerabilities.
|
|
37
|
+
Current pattern: "${envHostPattern}"
|
|
38
|
+
Please read @theia/mini-browser/README.md for more information.
|
|
39
|
+
`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.MiniBrowserBackendSecurityWarnings = MiniBrowserBackendSecurityWarnings;
|
|
44
|
+
exports.MiniBrowserBackendSecurityWarnings = MiniBrowserBackendSecurityWarnings = tslib_1.__decorate([
|
|
45
|
+
(0, inversify_1.injectable)()
|
|
46
|
+
], MiniBrowserBackendSecurityWarnings);
|
|
47
|
+
//# sourceMappingURL=mini-browser-backend-security-warnings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-backend-security-warnings.js","sourceRoot":"","sources":["../../src/node/mini-browser-backend-security-warnings.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,kHAA4G;AAC5G,4DAA0D;AAC1D,2EAAsE;AAG/D,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAE3C,UAAU;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,gBAAgB;QAC5B,IAAI,sEAAgC,CAAC,GAAG,EAAE,CAAC,sCAAsC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3F,OAAO;QACX,CAAC;QACD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,2CAAmB,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,cAAc,IAAI,cAAc,KAAK,2CAAmB,CAAC,oBAAoB,EAAE,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC;;;;4BAIG,cAAc;;CAEzC,CACY,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AAtBY,gFAAkC;6CAAlC,kCAAkC;IAD9C,IAAA,sBAAU,GAAE;GACA,kCAAkC,CAsB9C"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="express" />
|
|
3
|
+
import * as fs from '@theia/core/shared/fs-extra';
|
|
4
|
+
import { Application, Request, Response } from '@theia/core/shared/express';
|
|
5
|
+
import { ILogger } from '@theia/core/lib/common/logger';
|
|
6
|
+
import { MaybePromise } from '@theia/core/lib/common/types';
|
|
7
|
+
import { ContributionProvider } from '@theia/core/lib/common/contribution-provider';
|
|
8
|
+
import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application';
|
|
9
|
+
import { MiniBrowserService } from '../common/mini-browser-service';
|
|
10
|
+
/**
|
|
11
|
+
* The return type of the `FileSystem#resolveContent` method.
|
|
12
|
+
*/
|
|
13
|
+
export interface FileStatWithContent {
|
|
14
|
+
/**
|
|
15
|
+
* The file stat.
|
|
16
|
+
*/
|
|
17
|
+
readonly stat: fs.Stats & {
|
|
18
|
+
uri: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* The content of the file as a UTF-8 encoded string.
|
|
22
|
+
*/
|
|
23
|
+
readonly content: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Endpoint handler contribution for the `MiniBrowserEndpoint`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MiniBrowserEndpointHandler: unique symbol;
|
|
29
|
+
export interface MiniBrowserEndpointHandler {
|
|
30
|
+
/**
|
|
31
|
+
* Returns with or resolves to the file extensions supported by the current `mini-browser` endpoint handler.
|
|
32
|
+
* The file extension must not start with the leading `.` (dot). For instance; `'html'` or `['jpg', 'jpeg']`.
|
|
33
|
+
* The file extensions are case insensitive.
|
|
34
|
+
*/
|
|
35
|
+
supportedExtensions(): MaybePromise<string | string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Returns a number representing the priority between all the available handlers for the same file extension.
|
|
38
|
+
*/
|
|
39
|
+
priority(): number;
|
|
40
|
+
/**
|
|
41
|
+
* Responds back to the sender.
|
|
42
|
+
*/
|
|
43
|
+
respond(statWithContent: FileStatWithContent, response: Response): MaybePromise<Response>;
|
|
44
|
+
}
|
|
45
|
+
export declare class MiniBrowserEndpoint implements BackendApplicationContribution, MiniBrowserService {
|
|
46
|
+
private attachRequestHandlerPromise;
|
|
47
|
+
protected readonly logger: ILogger;
|
|
48
|
+
protected readonly contributions: ContributionProvider<MiniBrowserEndpointHandler>;
|
|
49
|
+
protected readonly handlers: Map<string, MiniBrowserEndpointHandler>;
|
|
50
|
+
configure(app: Application): void;
|
|
51
|
+
onStart(): Promise<void>;
|
|
52
|
+
supportedFileExtensions(): Promise<Readonly<{
|
|
53
|
+
extension: string;
|
|
54
|
+
priority: number;
|
|
55
|
+
}>[]>;
|
|
56
|
+
protected attachRequestHandler(app: Application): Promise<void>;
|
|
57
|
+
protected response(uri: string, response: Response): Promise<Response>;
|
|
58
|
+
protected getContributions(): MiniBrowserEndpointHandler[];
|
|
59
|
+
protected getUri(request: Request): MaybePromise<string>;
|
|
60
|
+
protected readContent(uri: string): Promise<FileStatWithContent>;
|
|
61
|
+
protected errorHandler(): (error: any, uri: string, response: Response) => MaybePromise<Response>;
|
|
62
|
+
protected missingResourceHandler(): (uri: string, response: Response) => MaybePromise<Response>;
|
|
63
|
+
protected defaultHandler(): (statWithContent: FileStatWithContent, response: Response) => MaybePromise<Response>;
|
|
64
|
+
protected getVirtualHostRegExp(): Promise<RegExp>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Endpoint handler contribution for HTML files.
|
|
68
|
+
*/
|
|
69
|
+
export declare class HtmlHandler implements MiniBrowserEndpointHandler {
|
|
70
|
+
supportedExtensions(): string[];
|
|
71
|
+
priority(): number;
|
|
72
|
+
respond(statWithContent: FileStatWithContent, response: Response): MaybePromise<Response>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Handler for JPG resources.
|
|
76
|
+
*/
|
|
77
|
+
export declare class ImageHandler implements MiniBrowserEndpointHandler {
|
|
78
|
+
supportedExtensions(): string[];
|
|
79
|
+
priority(): number;
|
|
80
|
+
respond(statWithContent: FileStatWithContent, response: Response): MaybePromise<Response>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* PDF endpoint handler.
|
|
84
|
+
*/
|
|
85
|
+
export declare class PdfHandler implements MiniBrowserEndpointHandler {
|
|
86
|
+
supportedExtensions(): string;
|
|
87
|
+
priority(): number;
|
|
88
|
+
respond(statWithContent: FileStatWithContent, response: Response): MaybePromise<Response>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Endpoint contribution for SVG resources.
|
|
92
|
+
*/
|
|
93
|
+
export declare class SvgHandler implements MiniBrowserEndpointHandler {
|
|
94
|
+
supportedExtensions(): string;
|
|
95
|
+
priority(): number;
|
|
96
|
+
respond(statWithContent: FileStatWithContent, response: Response): MaybePromise<Response>;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=mini-browser-endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-browser-endpoint.d.ts","sourceRoot":"","sources":["../../src/node/mini-browser-endpoint.ts"],"names":[],"mappings":"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"}
|