diff --git a/build/Dockerfile b/build/Dockerfile
index fc72538..c9af9c0 100644
--- a/build/Dockerfile
+++ b/build/Dockerfile
@@ -2,11 +2,24 @@
FROM node:18-bookworm as build-stage
# install required tools to build the application
-RUN apt-get update && apt-get install -y libxkbfile-dev libsecret-1-dev
+RUN apt-get update && \
+ apt-get install -y git jq libxkbfile-dev libsecret-1-dev
+
+WORKDIR /tmp
+RUN git clone --depth 1 https://github.com/eclipse-theia/theia-blueprint.git
WORKDIR /home/theia
-# Copy repository files
-COPY theia/. .
+RUN cp -r /tmp/theia-blueprint/* . && \
+ mv package.json package.json.orig
+COPY package.json.acend .
+COPY preload.html ./applications/browser/resources/preload.html
+COPY branding-util.tsx ./theia-extensions/product/src/browser/branding-util.tsx
+
+# customize package.json
+RUN jq -s '.[0] * .[1]' package.json.acend package.json.orig > package.json.tmp1 && \
+ jq 'del(.theiaPlugins."vscode-builtin-extensions-pack")' package.json.tmp1 > package.json.tmp2 && \
+ jq 'del(.theiaPlugins."vscjava.vscode-java-pack")' package.json.tmp2 > package.json.tmp3 && \
+ jq 'del(.theiaPlugins."vscjava.vscode-java-dependency")' package.json.tmp3 > package.json
# Remove unnecesarry files for the browser application
# Download plugins and build application production mode
diff --git a/build/branding-util.tsx b/build/branding-util.tsx
new file mode 100644
index 0000000..dbc5783
--- /dev/null
+++ b/build/branding-util.tsx
@@ -0,0 +1,131 @@
+/********************************************************************************
+ * Copyright (C) 2020 EclipseSource and others.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the Eclipse
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
+ * with the GNU Classpath Exception which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ ********************************************************************************/
+
+import { Key, KeyCode } from '@theia/core/lib/browser';
+import { WindowService } from '@theia/core/lib/browser/window/window-service';
+import * as React from 'react';
+
+export interface ExternalBrowserLinkProps {
+ text: string;
+ url: string;
+ windowService: WindowService;
+}
+
+function ExternalBrowserLink(props: ExternalBrowserLinkProps): JSX.Element {
+ return openExternalLink(props.url, props.windowService)}
+ onKeyDown={(e: React.KeyboardEvent) => {
+ if (Key.ENTER.keyCode === KeyCode.createKeyCode(e.nativeEvent).key?.keyCode) {
+ openExternalLink(props.url, props.windowService);
+ }
+ }}>
+ {props.text}
+ ;
+}
+
+function openExternalLink(url: string, windowService: WindowService): void {
+ windowService.openNewWindow(url, { external: true });
+}
+
+export function renderWhatIs(windowService: WindowService): React.ReactNode {
+ return
+
+ What is this Webshell?
+
+
+ This Webshell gives you everthing you need to work on our Labs.
+ All tools mentioned in the lab are integraded and preconfigured.
+ For more information ask your Trainer (the person in the front)!
+
+
;
+}
+
+export function renderWhatIsNot(): React.ReactNode {
+ return
+
+ What is it not?
+
+
+ As it used for our Tranings only it will be deleted after your Training has ended (plus 2 or 3 days).
+
+ Please see for
+ documentation how to customize Eclipse Theia Blueprint.
+
+
;
+}
+
+export function renderDownloads(): React.ReactNode {
+ return
+
+ Updates and Downloads
+
+
+ You can update Eclipse Theia Blueprint directly in this application by navigating to
+ File {'>'} Settings {'>'} Check for Updates… Moreover the application will check for updates
+ after each launch automatically.
+
+
+ Alternatively you can download the most recent version from the download page.
+
-
-
-
\ No newline at end of file
diff --git a/build/theia/applications/electron/scripts/after-pack.js b/build/theia/applications/electron/scripts/after-pack.js
deleted file mode 100755
index cd6239f..0000000
--- a/build/theia/applications/electron/scripts/after-pack.js
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env node
-
-const fs = require('fs');
-const path = require('path');
-const util = require('util');
-const child_process = require('child_process');
-const rimraf = require('rimraf');
-const sign_util = require('app-builder-lib/electron-osx-sign/util');
-const asyncRimraf = util.promisify(rimraf);
-
-const DELETE_PATHS = [
- 'Contents/Resources/app/node_modules/unzip-stream/aa.zip',
- 'Contents/Resources/app/node_modules/unzip-stream/testData*'
-];
-
-const signCommand = path.join(__dirname, 'sign.sh');
-const notarizeCommand = path.join(__dirname, 'notarize.sh');
-const entitlements = path.resolve(__dirname, '..', 'entitlements.plist');
-
-const signFile = file => {
- const stat = fs.lstatSync(file);
- const mode = stat.isFile() ? stat.mode : undefined;
-
- console.log(`Signing ${file}...`);
- child_process.spawnSync(signCommand, [
- path.basename(file),
- entitlements
- ], {
- cwd: path.dirname(file),
- maxBuffer: 1024 * 10000,
- env: process.env,
- stdio: 'inherit',
- encoding: 'utf-8'
- });
-
- if (mode) {
- console.log(`Setting attributes of ${file}...`);
- fs.chmodSync(file, mode);
- }
-};
-
-exports.default = async function (context) {
- const running_ci = process.env.BLUEPRINT_JENKINS_CI === 'true';
- const releaseDryRun = process.env.BLUEPRINT_JENKINS_RELEASE_DRYRUN === 'true';
- const branch = process.env.CHANGE_BRANCH;
- const running_on_mac = context.packager.platform.name === 'mac';
- const appPath = path.resolve(context.appOutDir, `${context.packager.appInfo.productFilename}.app`);
-
- // Remove anything we don't want in the final package
- for (const deletePath of DELETE_PATHS) {
- const resolvedPath = path.resolve(appPath, deletePath);
- console.log(`Deleting ${resolvedPath}...`);
- await asyncRimraf(resolvedPath);
- }
-
- // Only continue for macOS during CI
- if ((( branch === 'master' || releaseDryRun) && running_ci && running_on_mac)) {
- console.log('Detected Blueprint Release on Mac ' + releaseDryRun ? ' (dry-run)' : ''
- + ' - proceeding with signing and notarizing');
- } else {
- if (running_on_mac) {
- console.log('Not a release or dry-run requiring signing/notarizing - skipping');
- }
- return;
- }
-
- // Use app-builder-lib to find all binaries to sign, at this level it will include the final .app
- let childPaths = await sign_util.walkAsync(context.appOutDir);
-
- // Sign deepest first
- // From https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/electron-osx-sign/sign.js#L120
- childPaths = childPaths.sort((a, b) => {
- const aDepth = a.split(path.sep).length;
- const bDepth = b.split(path.sep).length;
- return bDepth - aDepth;
- });
-
- // Sign binaries
- childPaths.forEach(file => signFile(file, context.appOutDir));
-
- // Notarize app
- child_process.spawnSync(notarizeCommand, [
- path.basename(appPath),
- context.packager.appInfo.info._configuration.appId
- ], {
- cwd: path.dirname(appPath),
- maxBuffer: 1024 * 10000,
- env: process.env,
- stdio: 'inherit',
- encoding: 'utf-8'
- });
-};
diff --git a/build/theia/applications/electron/scripts/notarize.sh b/build/theia/applications/electron/scripts/notarize.sh
deleted file mode 100755
index 81af71f..0000000
--- a/build/theia/applications/electron/scripts/notarize.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/bash -x
-
-INPUT=$1
-APP_ID=$2
-NEEDS_UNZIP=false
-UUID_REGEX='"uuid"\s*:\s*"([^"]+)'
-STATUS_REGEX='"status"\s*:\s*"([^"]+)'
-
-# if folder, zip it
-if [ -d "${INPUT}" ]; then
- NEEDS_UNZIP=true
- zip -r -q -y unsigned.zip "${INPUT}"
- rm -rf "${INPUT}"
- INPUT=unsigned.zip
-fi
-
-# copy file to storage server
-scp -p "${INPUT}" genie.theia@projects-storage.eclipse.org:./
-rm -f "${INPUT}"
-
-# name to use on server
-REMOTE_NAME=${INPUT##*/}
-
-# notarize over ssh
-RESPONSE=$(ssh -q genie.theia@projects-storage.eclipse.org curl -X POST -F file=@"\"${REMOTE_NAME}\"" -F "'options={\"primaryBundleId\": \"${APP_ID}\", \"staple\": true};type=application/json'" https://cbi.eclipse.org/macos/xcrun/notarize)
-
-# fund uuid and status
-[[ $RESPONSE =~ $UUID_REGEX ]]
-UUID=${BASH_REMATCH[1]}
-[[ $RESPONSE =~ $STATUS_REGEX ]]
-STATUS=${BASH_REMATCH[1]}
-
-# poll progress
-echo " Progress: $RESPONSE"
-while [[ $STATUS == 'IN_PROGRESS' ]]; do
- sleep 120
- RESPONSE=$(ssh -q genie.theia@projects-storage.eclipse.org curl -s https://cbi.eclipse.org/macos/xcrun/${UUID}/status)
- [[ $RESPONSE =~ $STATUS_REGEX ]]
- STATUS=${BASH_REMATCH[1]}
- echo " Progress: $RESPONSE"
-done
-
-if [[ $STATUS != 'COMPLETE' ]]; then
- echo "Notarization failed: $RESPONSE"
- exit 1
-fi
-
-# download stapled result
-ssh -q genie.theia@projects-storage.eclipse.org curl -o "\"stapled-${REMOTE_NAME}\"" https://cbi.eclipse.org/macos/xcrun/${UUID}/download
-
-# copy stapled file back from server
-scp -T -p genie.theia@projects-storage.eclipse.org:"\"./stapled-${REMOTE_NAME}\"" "${INPUT}"
-
-# ensure storage server is clean
-ssh -q genie.theia@projects-storage.eclipse.org rm -f "\"${REMOTE_NAME}\"" "\"stapled-${REMOTE_NAME}\"" entitlements.plist
-
-# if unzip needed
-if [ "$NEEDS_UNZIP" = true ]; then
- unzip -qq "${INPUT}"
-
- if [ $? -ne 0 ]; then
- # echo contents if unzip failed
- output=$(cat $INPUT)
- echo "$output"
- exit 1
- fi
-
- rm -f "${INPUT}"
-fi
diff --git a/build/theia/applications/electron/scripts/sign.sh b/build/theia/applications/electron/scripts/sign.sh
deleted file mode 100755
index c690833..0000000
--- a/build/theia/applications/electron/scripts/sign.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash -x
-
-INPUT=$1
-ENTITLEMENTS=$2
-NEEDS_UNZIP=false
-
-# if folder, zip it
-if [ -d "${INPUT}" ]; then
- NEEDS_UNZIP=true
- zip -r -q -y unsigned.zip "${INPUT}"
- rm -rf "${INPUT}"
- INPUT=unsigned.zip
-fi
-
-# copy file to storage server
-scp -p "${INPUT}" genie.theia@projects-storage.eclipse.org:./
-rm -f "${INPUT}"
-
-# copy entitlements to storage server
-scp -p "${ENTITLEMENTS}" genie.theia@projects-storage.eclipse.org:./entitlements.plist
-
-# name to use on server
-REMOTE_NAME=${INPUT##*/}
-
-# sign over ssh
-# https://wiki.eclipse.org/IT_Infrastructure_Doc#Web_service
-ssh -q genie.theia@projects-storage.eclipse.org curl -f -o "\"signed-${REMOTE_NAME}\"" -F file=@"\"${REMOTE_NAME}\"" -F entitlements=@entitlements.plist https://cbi.eclipse.org/macos/codesign/sign
-
-# copy signed file back from server
-scp -T -p genie.theia@projects-storage.eclipse.org:"\"./signed-${REMOTE_NAME}\"" "${INPUT}"
-
-# ensure storage server is clean
-ssh -q genie.theia@projects-storage.eclipse.org rm -f "\"${REMOTE_NAME}\"" "\"signed-${REMOTE_NAME}\"" entitlements.plist
-
-# if unzip needed
-if [ "$NEEDS_UNZIP" = true ]; then
- unzip -qq "${INPUT}"
-
- if [ $? -ne 0 ]; then
- # echo contents if unzip failed
- output=$(cat $INPUT)
- echo "$output"
- exit 1
- fi
-
- rm -f "${INPUT}"
-fi
diff --git a/build/theia/applications/electron/scripts/theia-electron-main.js b/build/theia/applications/electron/scripts/theia-electron-main.js
deleted file mode 100644
index bf11aa8..0000000
--- a/build/theia/applications/electron/scripts/theia-electron-main.js
+++ /dev/null
@@ -1,16 +0,0 @@
-const path = require('path');
-const os = require('os');
-
-// Update to override the supported VS Code API version.
-// process.env.VSCODE_API_VERSION = '1.50.0'
-
-// Use a set of builtin plugins in our application.
-process.env.THEIA_DEFAULT_PLUGINS = `local-dir:${path.resolve(__dirname, '../', 'plugins')}`;
-
-// Lookup inside the user's home folder for more plugins, and accept user-defined paths.
-process.env.THEIA_PLUGINS = [
- process.env.THEIA_PLUGINS, `local-dir:${path.resolve(os.homedir(), '.theia-blueprint', 'plugins')}`,
-].filter(Boolean).join(',');
-
-// Handover to the auto-generated electron application handler.
-require('../lib/backend/electron-main.js');
diff --git a/build/theia/applications/electron/scripts/update-blockmap.ts b/build/theia/applications/electron/scripts/update-blockmap.ts
deleted file mode 100644
index 9c6887c..0000000
--- a/build/theia/applications/electron/scripts/update-blockmap.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2023 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { hideBin } from 'yargs/helpers';
-import yargs from 'yargs/yargs';
-import { executeAppBuilderAsJson } from 'app-builder-lib/out/util/appBuilder';
-// eslint-disable-next-line import/no-extraneous-dependencies
-import { BlockMapDataHolder } from 'builder-util-runtime';
-import { rmSync } from 'fs';
-import * as path from 'path';
-
-const BLOCK_MAP_FILE_SUFFIX = '.blockmap';
-
-const argv = yargs(hideBin(process.argv))
- .option('executable', { alias: 'e', type: 'string', default: 'TheiaBlueprint.exe', description: 'The executable for which the blockmap needs to be updated' })
- .version(false)
- .wrap(120)
- .parseSync();
-
-execute();
-
-async function execute(): Promise {
- const executable = argv.executable;
- const executablePath = path.resolve(
- __dirname,
- '../dist/',
- executable
- );
- const blockMapFile = `${executablePath}${BLOCK_MAP_FILE_SUFFIX}`;
- rmSync(blockMapFile, {
- force: true,
- });
- await executeAppBuilderAsJson(['blockmap', '--input', executablePath, '--output', blockMapFile]);
-};
diff --git a/build/theia/applications/electron/scripts/update-checksum.ts b/build/theia/applications/electron/scripts/update-checksum.ts
deleted file mode 100644
index a58c85f..0000000
--- a/build/theia/applications/electron/scripts/update-checksum.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2021 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-import * as crypto from 'crypto';
-import * as fs from 'fs';
-import * as jsyaml from 'js-yaml';
-import * as path from 'path';
-import { hideBin } from 'yargs/helpers';
-import yargs from 'yargs/yargs';
-
-const argv = yargs(hideBin(process.argv))
- .option('executable', { alias: 'e', type: 'string', default: 'TheiaBlueprint.AppImage', description: 'The executable for which the checksum needs to be updated' })
- .option('yaml', { alias: 'y', type: 'string', default: 'latest-linux.yml', description: 'The yaml file where the checksum needs to be updated' })
- .option('platform', { alias: 'p', type: 'string', default: 'linux', description: 'The OS platform' })
- .version(false)
- .wrap(120)
- .parseSync();
-
-execute();
-
-async function execute(): Promise {
- const executable = argv.executable;
- const yaml = argv.yaml;
- const platform = argv.platform;
-
- const executablePath = path.resolve(
- __dirname,
- '../dist/',
- executable
- );
-
- const yamlPath = path.resolve(
- __dirname,
- '../dist/',
- yaml
- );
-
- console.log('Exe: ' + executablePath + '; Yaml: ' + yamlPath + '; Platform: ' + platform);
-
- const hash = await hashFile(executablePath, 'sha512', 'base64', {});
- const size = fs.statSync(executablePath).size;
-
- const yamlContents: string = fs.readFileSync(yamlPath, { encoding: 'utf8' });
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- const latestYaml: any = jsyaml.safeLoad(yamlContents);
- latestYaml.sha512 = hash;
- latestYaml.path = updatedPath(latestYaml.path, latestYaml.version, platform);
- for (const file of latestYaml.files) {
- file.sha512 = hash;
- file.size = size;
- file.url = updatedPath(file.url, latestYaml.version, platform);
- }
-
- // line width -1 to avoid adding >- on long strings like a hash
- const newYamlContents = jsyaml.dump(latestYaml, { lineWidth: -1 });
- fs.writeFileSync(yamlPath, newYamlContents);
-}
-
-function hashFile(file: fs.PathLike, algorithm = 'sha512', encoding: BufferEncoding = 'base64', options: string | {
- flags?: string;
- encoding?: BufferEncoding;
- fd?: number;
- mode?: number;
- autoClose?: boolean;
- emitClose?: boolean;
- start?: number;
- end?: number;
- highWaterMark?: number;
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-}): Promise {
- return new Promise((resolve, reject) => {
- const hash = crypto.createHash(algorithm);
- hash.on('error', reject).setEncoding(encoding);
- fs.createReadStream(
- file,
- Object.assign({}, options, {
- highWaterMark: 1024 * 1024,
- })
- )
- .on('error', reject)
- .on('end', () => {
- hash.end();
- resolve(hash.read());
- })
- .pipe(
- hash,
- {
- end: false,
- }
- );
- });
-}
-
-function updatedPath(toUpdate: string, version: string, platform: string): string {
- const extensionIndex = toUpdate.lastIndexOf('.');
- return '../../' + version + '/' + platform + '/' + toUpdate.substring(0, extensionIndex) + '-' + version + toUpdate.substring(extensionIndex);
-}
diff --git a/build/theia/applications/electron/test/app.spec.js b/build/theia/applications/electron/test/app.spec.js
deleted file mode 100644
index 04d0b50..0000000
--- a/build/theia/applications/electron/test/app.spec.js
+++ /dev/null
@@ -1,135 +0,0 @@
-const os = require('os');
-const path = require('path');
-const { remote } = require('webdriverio');
-const { expect } = require('chai');
-
-const THEIA_LOAD_TIMEOUT = 15000; // 15 seconds
-
-function getBinaryPath() {
- const distFolder = path.join(__dirname, '..', 'dist');
- switch (os.platform()) {
- case 'linux':
- return path.join(
- distFolder,
- 'linux-unpacked',
- 'blueprint-electron-app'
- );
- case 'win32':
- return path.join(
- distFolder,
- 'win-unpacked',
- 'TheiaBlueprint.exe'
- );
- case 'darwin':
- return path.join(
- distFolder,
- 'mac',
- 'TheiaBlueprint.app',
- 'Contents',
- 'MacOS',
- 'TheiaBlueprint'
- );
- default:
- return undefined;
- }
-};
-
-// Utility for keyboard shortcuts that execute commands where
-// the key combination is the same on all platforms *except that*
-// the Command key is used instead of Control on MacOS. Note that
-// sometimes MacOS also uses Control. This is not handled, here
-function macSafeKeyCombo(keys) {
- if (os.platform() === 'darwin' && keys.includes('Control')) {
- // Puppeteer calls the Command key "Meta"
- return keys.map(k => k === 'Control' ? 'Meta' : k);
- }
- return keys;
-};
-
-describe('Theia App', function () {
- // In mocha, 'this' is a common context between sibling beforeEach, afterEach, it, etc methods within the same describe.
- // Each describe has its own context.
- beforeEach(async function () {
- const binary = getBinaryPath();
- if (!binary) {
- throw new Error('Tests are not supported for this platform.');
- }
-
- // Start app and store connection in context (this)
- this.browser = await remote({
- // Change to info to get detailed events of webdriverio
- logLevel: 'info',
- capabilities: {
- browserName: 'chrome',
- 'goog:chromeOptions': {
- // Path to built and packaged theia
- binary: binary,
- // Hand in workspace to load as runtime parameter
- args: [path.join(__dirname, 'workspace')],
- },
- },
- });
-
- const appShell = await this.browser.$('#theia-app-shell');
-
- // mocha waits for returned promise to resolve
- // Theia is loaded once the app shell is present
- return appShell.waitForExist({
- timeout: THEIA_LOAD_TIMEOUT,
- timeoutMsg: 'Theia took too long to load.',
- });
- });
-
- afterEach(async function () {
- try {
- await this.browser.closeWindow();
- } catch (err) {
- // Workaround: Puppeteer cannot properly connect to electron and throws an error.
- // However, the window is closed and that's all we want here.
- if (`${err}`.includes('Protocol error (Target.createTarget)')) {
- return;
- }
- // Rethrow for unexpected errors to fail test.
- throw err;
- }
- });
-
- it('Correct window title', async function () {
- const windowTitle = await this.browser.getTitle();
- expect(windowTitle).to.include('workspace');
- });
-
- it('Builtin extensions', async function () {
- // Wait a bit to make sure key handlers are registered.
- await new Promise(r => setTimeout(r, 2000));
-
- // Open extensions view
- await this.browser.keys(macSafeKeyCombo(['Control', 'Shift', 'x']));
- const builtinContainer = await this.browser.$(
- '#vsx-extensions-view-container--vsx-extensions\\:builtin'
- );
-
- // Expand builtin extensions
- const builtinHeader = await builtinContainer.$('.theia-header.header');
- await builtinHeader.moveTo({ xOffset: 1, yOffset: 1 });
- await builtinHeader.waitForDisplayed();
- await builtinHeader.waitForClickable();
- await builtinHeader.click();
-
- // Wait for expansion to finish
- const builtin = await this.browser.$(
- '#vsx-extensions\\:builtin .theia-TreeContainer'
- );
- await builtin.waitForExist();
-
- // Get names of all builtin extensions
- const extensions = await builtin.$$('.theia-vsx-extension .name');
- const extensionNames = await Promise.all(
- extensions.map(e => e.getText())
- );
-
- // Exemplary check a few extensions
- expect(extensionNames).to.include('Debugger for Java');
- expect(extensionNames).to.include('TypeScript Language Basics (built-in)');
- });
-});
diff --git a/build/theia/applications/electron/test/workspace/README.md b/build/theia/applications/electron/test/workspace/README.md
deleted file mode 100644
index e589628..0000000
--- a/build/theia/applications/electron/test/workspace/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Test Workspace
-
-This is the test workspace for E2E tests.
diff --git a/build/theia/applications/electron/tsconfig.eslint.json b/build/theia/applications/electron/tsconfig.eslint.json
deleted file mode 100644
index e5309d0..0000000
--- a/build/theia/applications/electron/tsconfig.eslint.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "noEmit": true
- },
- "include": [
- "./scripts",
- "./test"
- ]
- }
-
\ No newline at end of file
diff --git a/build/theia/applications/electron/tsconfig.json b/build/theia/applications/electron/tsconfig.json
deleted file mode 100644
index 44452b4..0000000
--- a/build/theia/applications/electron/tsconfig.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "../../configs/base.tsconfig",
- "include": [],
- "compilerOptions": {
- "composite": true,
- "esModuleInterop": true
- },
- "references": [
- {
- "path": "../../theia-extensions/launcher"
- },
- {
- "path": "../../theia-extensions/product"
- },
- {
- "path": "../../theia-extensions/updater"
- }
- ]
-}
diff --git a/build/theia/applications/electron/webpack.config.js b/build/theia/applications/electron/webpack.config.js
deleted file mode 100644
index 3ecda1b..0000000
--- a/build/theia/applications/electron/webpack.config.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * This file can be edited to customize webpack configuration.
- * To reset delete this file and rerun theia build again.
- */
-// @ts-check
-const config = require('./gen-webpack.config.js');
-const backend = require('./gen-webpack.node.config.js');
-
-/**
- * Expose bundled modules on window.theia.moduleName namespace, e.g.
- * window['theia']['@theia/core/lib/common/uri'].
- * Such syntax can be used by external code, for instance, for testing.
-config.module.rules.push({
- test: /\.js$/,
- loader: require.resolve('@theia/application-manager/lib/expose-loader')
-}); */
-
-if (process.platform !== 'win32') {
- // For some reason, blueprint wants to bundle the `.node` files directly without going through `@vscode/windows-ca-certs`
- backend.ignoredResources.add('@vscode/windows-ca-certs/build/Release/crypt32.node');
-}
-
-
-module.exports = [
- ...config,
- backend.config
-];
diff --git a/build/theia/configs/base.eslintrc.json b/build/theia/configs/base.eslintrc.json
deleted file mode 100644
index e44619d..0000000
--- a/build/theia/configs/base.eslintrc.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "sourceType": "module",
- "ecmaVersion": 6,
- "ecmaFeatures": {
- "jsx": true
- }
- },
- "plugins": [
- "@typescript-eslint",
- "@typescript-eslint/tslint",
- "import",
- "no-null"
- ],
- "env": {
- "browser": true,
- "mocha": true,
- "node": true
- },
- "ignorePatterns": [
- "node_modules",
- "lib"
- ]
-}
diff --git a/build/theia/configs/base.tsconfig.json b/build/theia/configs/base.tsconfig.json
deleted file mode 100644
index e325d20..0000000
--- a/build/theia/configs/base.tsconfig.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "compilerOptions": {
- "skipLibCheck": true,
- "declaration": true,
- "declarationMap": true,
- "noImplicitAny": true,
- "noEmitOnError": false,
- "noImplicitThis": true,
- "noUnusedLocals": true,
- "strictNullChecks": true,
- "experimentalDecorators": true,
- "emitDecoratorMetadata": true,
- "downlevelIteration": true,
- "resolveJsonModule": true,
- "module": "commonjs",
- "moduleResolution": "node",
- "target": "ES2017",
- "jsx": "react",
- "lib": [
- "ES2017",
- "ES2020.Promise",
- "dom"
- ],
- "sourceMap": true,
- "composite": true
- }
-}
diff --git a/build/theia/configs/build.eslintrc.json b/build/theia/configs/build.eslintrc.json
deleted file mode 100644
index c0a2c52..0000000
--- a/build/theia/configs/build.eslintrc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "extends": [
- "./base.eslintrc.json",
- "./errors.eslintrc.json"
- ]
-}
diff --git a/build/theia/configs/errors.eslintrc.json b/build/theia/configs/errors.eslintrc.json
deleted file mode 100644
index 4faa6e8..0000000
--- a/build/theia/configs/errors.eslintrc.json
+++ /dev/null
@@ -1,146 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/eslintrc",
- "rules": {
- "@typescript-eslint/consistent-type-definitions": "error",
- "@typescript-eslint/indent": "off",
- "@typescript-eslint/no-explicit-any": "error",
- "@typescript-eslint/quotes": [
- "error",
- "single",
- {
- "avoidEscape": true
- }
- ],
- "@typescript-eslint/semi": [
- "error",
- "always"
- ],
- "@typescript-eslint/type-annotation-spacing": "error",
- "arrow-body-style": [
- "error",
- "as-needed"
- ],
- "arrow-parens": [
- "error",
- "as-needed"
- ],
- "camelcase": "off",
- "comma-dangle": "off",
- "curly": "error",
- "eol-last": "error",
- "eqeqeq": [
- "error",
- "smart"
- ],
- "guard-for-in": "error",
- "id-blacklist": "off",
- "id-match": "off",
- "max-len": [
- "error",
- {
- "code": 180
- }
- ],
- "no-magic-numbers": "off",
- "no-multiple-empty-lines": [
- "error",
- {
- "max": 1
- }
- ],
- "no-new-wrappers": "error",
- "no-null/no-null": "error",
- "no-shadow": "off",
- "@typescript-eslint/no-shadow": [
- "error",
- {
- "hoist": "all"
- }
- ],
- "no-tabs": "error",
- "no-throw-literal": "error",
- "no-trailing-spaces": "error",
- "no-underscore-dangle": "off",
- "no-unused-expressions": "error",
- "no-var": "error",
- "no-void": "error",
- "one-var": [
- "error",
- "never"
- ],
- "prefer-const": [
- "error",
- {
- "destructuring": "all"
- }
- ],
- "radix": "off",
- "space-before-function-paren": [
- "error",
- {
- "anonymous": "always",
- "named": "never",
- "asyncArrow": "always"
- }
- ],
- "spaced-comment": [
- "error",
- "always",
- {
- "exceptions": [
- "*",
- "+",
- "-",
- "/"
- ]
- }
- ],
- "@typescript-eslint/tslint/config": [
- "error",
- {
- "rules": {
- "file-header": [
- true,
- "SPDX-License-Identifier: EPL-2\\.0 OR GPL-2\\.0 WITH Classpath-exception-2\\.0"
- ],
- "jsdoc-format": [
- true,
- "check-multiline-start"
- ],
- "one-line": [
- true,
- "check-open-brace",
- "check-catch",
- "check-else",
- "check-whitespace"
- ],
- "typedef": [
- true,
- "call-signature",
- "property-declaration"
- ],
- "whitespace": [
- true,
- "check-branch",
- "check-decl",
- "check-operator",
- "check-separator",
- "check-type"
- ]
- }
- }
- ],
- "import/no-extraneous-dependencies": "error"
- },
- "overrides": [
- {
- "files": [
- "dev-packages",
- "*.{spec,espec,slow-spec}.{js,ts}"
- ],
- "rules": {
- "import/no-extraneous-dependencies": "off"
- }
- }
- ]
-}
diff --git a/build/theia/configs/tsconfig.eslint.json b/build/theia/configs/tsconfig.eslint.json
deleted file mode 100644
index 3f55d8a..0000000
--- a/build/theia/configs/tsconfig.eslint.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "noEmit": true
- },
- "include": [
- "../scripts"
- ]
- }
-
\ No newline at end of file
diff --git a/build/theia/configs/warnings.eslintrc.json b/build/theia/configs/warnings.eslintrc.json
deleted file mode 100644
index 8403d0a..0000000
--- a/build/theia/configs/warnings.eslintrc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "plugins": [
- "deprecation"
- ],
- "rules": {
- "@typescript-eslint/await-thenable": "warn",
- "no-return-await": "warn",
- "deprecation/deprecation": "warn"
- }
-}
\ No newline at end of file
diff --git a/build/theia/configs/xss.eslintrc.json b/build/theia/configs/xss.eslintrc.json
deleted file mode 100644
index 11745db..0000000
--- a/build/theia/configs/xss.eslintrc.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "extends": ["plugin:no-unsanitized/DOM"],
- "plugins": ["no-unsanitized", "react"],
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true
- }
- },
- "rules": {
- "no-unsanitized/method": [
- "warn", {
- "escape": {
- "methods": ["DOMPurify.sanitize"]
- }
- }
- ],
- "no-unsanitized/property": [
- "warn", {
- "escape": {
- "methods": ["DOMPurify.sanitize"]
- }
- }
- ],
- "no-eval": "warn",
- "no-implied-eval": "warn",
- "react/no-danger-with-children": "warn",
- "react/no-danger": "warn"
- }
-}
diff --git a/build/theia/lerna.json b/build/theia/lerna.json
deleted file mode 100644
index 0e15258..0000000
--- a/build/theia/lerna.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "lerna": "4.0.0",
- "version": "0.0.0",
- "useWorkspaces": true,
- "npmClient": "yarn",
- "command": {
- "run": {
- "stream": true
- }
- }
-}
\ No newline at end of file
diff --git a/build/theia/package.json b/build/theia/package.json
deleted file mode 100644
index fc894bc..0000000
--- a/build/theia/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "private": true,
- "version": "1.40.0",
- "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0",
- "author": "Rob Moran ",
- "homepage": "https://github.com/eclipse-theia/theia-blueprint#readme",
- "bugs": {
- "url": "https://github.com/eclipse-theia/theia/issues"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/eclipse-theia/theia-blueprint.git"
- },
- "engines": {
- "yarn": ">=1.7.0 <2",
- "node": ">=12.14.1"
- },
- "devDependencies": {
- "@theia/cli": "1.41.0",
- "@typescript-eslint/eslint-plugin": "^4.25.0",
- "@typescript-eslint/eslint-plugin-tslint": "^4.25.0",
- "@typescript-eslint/parser": "^4.25.0",
- "eslint": "^7.27.0",
- "eslint-plugin-deprecation": "1.5.0",
- "eslint-plugin-import": "^2.23.3",
- "eslint-plugin-no-null": "^1.0.2",
- "eslint-plugin-no-unsanitized": "^3.1.5",
- "eslint-plugin-react": "^7.23.2",
- "lerna": "^6.0.1",
- "rimraf": "^2.7.1",
- "ts-node": "^10.0.0",
- "type-fest": "^0.21.0",
- "yargs": "17.7.2"
- },
- "scripts": {
- "clean": "lerna run clean && rimraf node_modules",
- "build": "yarn build:extensions && yarn build:applications",
- "build:dev": "yarn build:extensions && yarn build:applications:dev",
- "build:applications": "yarn build:extensions && lerna run --scope=\"blueprint*app\" build:prod --concurrency 1",
- "build:applications:dev": "yarn build:extensions && lerna run --scope=\"blueprint*app\" build --concurrency 1",
- "build:extensions": "lerna run --scope=\"blueprint*ext\" build",
- "download:plugins": "theia download:plugins --rate-limit=15 --parallel=false --ignore-errors",
- "package:applications": "lerna run --scope=\"blueprint*app\" package --concurrency 1",
- "package:applications:preview": "lerna run --scope=\"blueprint*app\" package:preview --concurrency 1",
- "package:applications:prod": "lerna run --scope=\"blueprint*app\" package:prod --concurrency 1",
- "watch": "lerna run --parallel watch",
- "test": "lerna run test",
- "electron": "yarn --cwd applications/electron",
- "browser": "yarn --cwd applications/browser",
- "update:next": "ts-node scripts/update-theia-to-next.ts && lerna run update:next",
- "lint": "eslint --ext js,jsx,ts,tsx scripts && lerna run lint",
- "lint:fix": "eslint --ext js,jsx,ts,tsx scripts --fix && lerna run lint:fix"
- },
- "theiaPluginsDir": "plugins",
- "theiaPlugins": {
- "json": "https://open-vsx.org/api/vscode/json/1.62.3/file/vscode.json-1.62.3.vsix",
- "yaml": "https://open-vsx.org/api/vscode/yaml/1.62.3/file/vscode.yaml-1.62.3.vsix",
- "shell": "https://open-vsx.org/api/vscode/shellscript/1.62.3/file/vscode.shellscript-1.62.3.vsix",
- "golang": "https://open-vsx.org/api/vscode/go/1.62.3/file/vscode.go-1.62.3.vsix",
- "python": "https://open-vsx.org/api/vscode/python/1.62.3/file/vscode.python-1.62.3.vsix",
- "docker": "https://open-vsx.org/api/vscode/docker/1.62.3/file/vscode.docker-1.62.3.vsix",
- "dockerfile": "https://open-vsx.org/api/jeff-hykin/better-dockerfile-syntax/1.0.2/file/jeff-hykin.better-dockerfile-syntax-1.0.2.vsix",
- "markdown": "https://open-vsx.org/api/vscode/markdown/1.62.3/file/vscode.markdown-1.62.3.vsix",
- "terraform": "https://open-vsx.org/api/4ops/terraform/0.2.1/file/4ops.terraform-0.2.1.vsix",
- "yaml.lint": "https://open-vsx.org/api/phil9909/ytt-lint/0.3.1/file/phil9909.ytt-lint-0.3.1.vsix"
- },
- "theiaPluginsExcludeIds": [
- "ms-vscode.js-debug-companion",
- "VisualStudioExptTeam.vscodeintellicode",
- "vscode.extension-editing",
- "vscode.builtin-notebook-renderers",
- "vscode.git",
- "vscode.git-ui",
- "vscode.github",
- "vscode.github-authentication",
- "vscode.microsoft-authentication"
- ],
- "workspaces": [
- "applications/*",
- "theia-extensions/*"
- ],
- "resolutions": {
- "@types/puppeteer": "^5.4.0",
- "@yarnpkg/parsers": "3.0.0-rc.50",
- "**/msgpackr": "1.9.9",
- "**/multer": "1.4.4-lts.1"
- }
-}
diff --git a/build/theia/scripts/update-theia-to-next.ts b/build/theia/scripts/update-theia-to-next.ts
deleted file mode 100644
index 15b184c..0000000
--- a/build/theia/scripts/update-theia-to-next.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2021 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-import * as fs from 'fs';
-import * as path from 'path';
-import { PackageJson } from 'type-fest';
-
-execute();
-
-async function execute(): Promise {
- const packageJsonPath = path.resolve(
- './',
- 'package.json'
- );
-
- console.log(`Updating ${packageJsonPath}...`);
-
- const packageJsonContents: string = fs.readFileSync(packageJsonPath, { encoding: 'utf8' });
- const packageJson: PackageJson = JSON.parse(packageJsonContents);
-
- console.log('...dependencies...');
- if (packageJson.dependencies) {
- updateTheiaVersions(packageJson.dependencies);
- }
- console.log('...done...');
-
- console.log('...devDependencies...');
- if (packageJson.devDependencies) {
- updateTheiaVersions(packageJson.devDependencies);
- }
- console.log('...done.');
-
- // note: "null" is valid as per `stringify()` signature
- // eslint-disable-next-line no-null/no-null
- fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
-}
-
-function updateTheiaVersions(dependencies: PackageJson.Dependency): void {
- for (const dependency in dependencies) {
- if (dependency.startsWith('@theia/')) {
- console.log(`...setting ${dependency} from ${dependencies[dependency]} to next...`);
- dependencies[dependency] = 'next';
- }
- }
-}
diff --git a/build/theia/theia-extensions/launcher/.eslintrc.js b/build/theia/theia-extensions/launcher/.eslintrc.js
deleted file mode 100644
index 1308994..0000000
--- a/build/theia/theia-extensions/launcher/.eslintrc.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** @type {import('eslint').Linter.Config} */
-module.exports = {
- extends: [
- '../../configs/build.eslintrc.json'
- ],
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: 'tsconfig.json'
- }
-};
diff --git a/build/theia/theia-extensions/launcher/package.json b/build/theia/theia-extensions/launcher/package.json
deleted file mode 100644
index 0d1f3ca..0000000
--- a/build/theia/theia-extensions/launcher/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "blueprint-launcher-ext",
- "version": "1.40.0",
- "keywords": [
- "theia-extension"
- ],
- "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0",
- "repository": {
- "type": "git",
- "url": "https://github.com/eclipse-theia/theia-blueprint.git"
- },
- "bugs": {
- "url": "https://github.com/eclipse-theia/theia-blueprint/issues"
- },
- "homepage": "https://github.com/eclipse-theia/theia-blueprint",
- "files": [
- "lib",
- "src"
- ],
- "dependencies": {
- "@theia/core": "1.41.0",
- "body-parser": "^1.17.2",
- "fs-extra": "^4.0.2",
- "@vscode/sudo-prompt": "9.3.1"
- },
- "devDependencies": {
- "rimraf": "^2.7.1",
- "typescript": "^4.5.5"
- },
- "scripts": {
- "clean": "rimraf lib *.tsbuildinfo",
- "build": "tsc -b",
- "lint": "eslint --ext js,jsx,ts,tsx src",
- "lint:fix": "eslint --ext js,jsx,ts,tsx src --fix",
- "watch": "tsc -w",
- "update:next": "ts-node ../../scripts/update-theia-to-next.ts"
- },
- "theiaExtensions": [
- {
- "frontendElectron": "lib/browser/create-launcher-frontend-module",
- "backend": "lib/node/launcher-backend-module"
- }
- ]
-}
diff --git a/build/theia/theia-extensions/launcher/src/browser/create-launcher-contribution.ts b/build/theia/theia-extensions/launcher/src/browser/create-launcher-contribution.ts
deleted file mode 100644
index 63d9f18..0000000
--- a/build/theia/theia-extensions/launcher/src/browser/create-launcher-contribution.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2022 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { ConfirmDialog, Dialog, FrontendApplication, FrontendApplicationContribution, StorageService } from '@theia/core/lib/browser';
-import { ILogger, MaybePromise } from '@theia/core/lib/common';
-import { nls } from '@theia/core/lib/common/nls';
-import { inject, injectable } from '@theia/core/shared/inversify';
-import { LauncherService } from './launcher-service';
-
-@injectable()
-export class CreateLauncherCommandContribution implements FrontendApplicationContribution {
-
- @inject(StorageService)
- protected readonly storageService: StorageService;
-
- @inject(ILogger)
- protected readonly logger: ILogger;
-
- @inject(LauncherService) private readonly launcherService: LauncherService;
-
- onStart(app: FrontendApplication): MaybePromise {
- this.launcherService.isInitialized().then(async initialized => {
- if (!initialized) {
- const messageContainer = document.createElement('div');
- // eslint-disable-next-line max-len
- messageContainer.textContent = nls.localizeByDefault("Would you like to install a shell command that launches the application?\nYou will be able to run Theia Blueprint from the command line by typing 'theia'.");
- messageContainer.setAttribute('style', 'white-space: pre-line');
- const details = document.createElement('p');
- details.textContent = 'Administrator privileges are required, you will need to enter your password next.';
- messageContainer.appendChild(details);
- const dialog = new ConfirmDialog({
- title: nls.localizeByDefault('Create launcher'),
- msg: messageContainer,
- ok: Dialog.YES,
- cancel: Dialog.NO
- });
- const install = await dialog.open();
- this.launcherService.createLauncher(!!install);
- this.logger.info('Initialized application launcher.');
- } else {
- this.logger.info('Application launcher was already initialized.');
- }
- });
- }
-}
diff --git a/build/theia/theia-extensions/launcher/src/browser/create-launcher-frontend-module.ts b/build/theia/theia-extensions/launcher/src/browser/create-launcher-frontend-module.ts
deleted file mode 100644
index 1fc1612..0000000
--- a/build/theia/theia-extensions/launcher/src/browser/create-launcher-frontend-module.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2022 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-import { CreateLauncherCommandContribution } from './create-launcher-contribution';
-import { ContainerModule } from '@theia/core/shared/inversify';
-import { LauncherService } from './launcher-service';
-import { FrontendApplicationContribution } from '@theia/core/lib/browser';
-
-export default new ContainerModule(bind => {
- bind(FrontendApplicationContribution).to(CreateLauncherCommandContribution);
- bind(LauncherService).toSelf().inSingletonScope();
-});
diff --git a/build/theia/theia-extensions/launcher/src/browser/launcher-service.ts b/build/theia/theia-extensions/launcher/src/browser/launcher-service.ts
deleted file mode 100644
index af202d9..0000000
--- a/build/theia/theia-extensions/launcher/src/browser/launcher-service.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2022 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { Endpoint } from '@theia/core/lib/browser';
-import { injectable } from '@theia/core/shared/inversify';
-
-@injectable()
-export class LauncherService {
-
- async isInitialized(): Promise {
- const response = await fetch(new Request(`${this.endpoint()}/initialized`), {
- body: undefined,
- method: 'GET'
- }).then(r => r.json());
- return !!response?.initialized;
- }
-
- async createLauncher(create: boolean): Promise {
- fetch(new Request(`${this.endpoint()}`), {
- body: JSON.stringify({ create }),
- method: 'PUT',
- headers: new Headers({ 'Content-Type': 'application/json' })
- });
- }
-
- protected endpoint(): string {
- const url = new Endpoint({ path: 'launcher' }).getRestUrl().toString();
- return url.endsWith('/') ? url.slice(0, -1) : url;
- }
-}
diff --git a/build/theia/theia-extensions/launcher/src/node/launcher-backend-module.ts b/build/theia/theia-extensions/launcher/src/node/launcher-backend-module.ts
deleted file mode 100644
index 4f9af35..0000000
--- a/build/theia/theia-extensions/launcher/src/node/launcher-backend-module.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2022 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { ContainerModule } from '@theia/core/shared/inversify';
-import { TheiaLauncherServiceEndpoint } from './launcher-endpoint';
-import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application';
-
-export default new ContainerModule(bind => {
- bind(TheiaLauncherServiceEndpoint).toSelf().inSingletonScope();
- bind(BackendApplicationContribution).toService(TheiaLauncherServiceEndpoint);
-});
diff --git a/build/theia/theia-extensions/launcher/src/node/launcher-endpoint.ts b/build/theia/theia-extensions/launcher/src/node/launcher-endpoint.ts
deleted file mode 100644
index 7738234..0000000
--- a/build/theia/theia-extensions/launcher/src/node/launcher-endpoint.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2022 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { inject, injectable } from '@theia/core/shared/inversify';
-import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application';
-import { Application, Router, Request, Response } from '@theia/core/shared/express';
-import { json } from 'body-parser';
-import { ILogger } from '@theia/core/lib/common';
-import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
-import * as sudo from '@vscode/sudo-prompt';
-import * as fs from 'fs-extra';
-import URI from '@theia/core/lib/common/uri';
-
-interface PathEntry {
- source: string;
- target: string;
-}
-
-@injectable()
-export class TheiaLauncherServiceEndpoint implements BackendApplicationContribution {
- protected static PATH = '/launcher';
- private LAUNCHER_LINK_SOURCE = '/usr/local/bin/theia';
-
- @inject(ILogger)
- protected readonly logger: ILogger;
-
- @inject(EnvVariablesServer)
- protected readonly envServer: EnvVariablesServer;
-
- configure(app: Application): void {
- const router = Router();
- router.put('/', (request, response) => this.createLauncher(request, response));
- router.get('/initialized', (request, response) => this.isInitialized(request, response));
- app.use(json());
- app.use(TheiaLauncherServiceEndpoint.PATH, router);
- }
-
- private async isInitialized(_request: Request, response: Response): Promise {
- if (!process.env.APPIMAGE) {
- // we are not running from an AppImage, so there's nothing to initialize
- // return true
- response.json({ initialized: true });
- }
- const storageFile = await this.getStorageFilePath();
- if (!storageFile) {
- throw new Error('Could not resolve path to storage file.');
- }
- if (!fs.existsSync(storageFile)) {
- response.json({ initialized: false });
- return;
- }
- const data = await this.readLauncherPathsFromStorage(storageFile);
- const initialized = !!data.find(entry => entry.source === this.LAUNCHER_LINK_SOURCE);
- response.json({ initialized });
- }
-
- private async getStorageFilePath(): Promise {
- const configDirUri = await this.envServer.getConfigDirUri();
- const globalStorageFolderUri = new URI(configDirUri).resolve('globalStorage/blueprint-launcher/paths.json');
- const globalStorageFolderFsPath = globalStorageFolderUri.path.fsPath();
- return globalStorageFolderFsPath;
- }
-
- private async readLauncherPathsFromStorage(storageFile: string): Promise {
- if (!fs.existsSync(storageFile)) {
- return [];
- }
- try {
- return await fs.readJSON(storageFile);
- } catch (error) {
- console.error('Failed to parse data from "', storageFile, '". Reason:', error);
- return [];
- }
- }
-
- private async getLogFilePath(): Promise {
- const configDirUri = await this.envServer.getConfigDirUri();
- const logFileUri = new URI(configDirUri).resolve('logs/launcher.log');
- return logFileUri.path.fsPath();
- }
-
- private async createLauncher(request: Request, response: Response): Promise {
- const shouldCreateLauncher = request.body.create;
- const launcher = this.LAUNCHER_LINK_SOURCE;
- const target = process.env.APPIMAGE;
- const logFile = await this.getLogFilePath();
- const command = `printf '%s\n' '#!/bin/bash' 'exec "${target}" \\$1 &> ${logFile} &' >${launcher} && chmod +x ${launcher}`;
- if (shouldCreateLauncher) {
- const targetExists = target && fs.existsSync(target);
- if (!targetExists) {
- throw new Error('Could not find application to launch');
- }
- sudo.exec(command, { name: 'Theia Blueprint' });
- }
-
- const storageFile = await this.getStorageFilePath();
- const data = fs.existsSync(storageFile) ? await this.readLauncherPathsFromStorage(storageFile) : [];
- fs.outputJSONSync(storageFile, [...data, { source: launcher, target: shouldCreateLauncher ? target : undefined }]);
-
- response.sendStatus(200);
- }
-}
diff --git a/build/theia/theia-extensions/launcher/tsconfig.json b/build/theia/theia-extensions/launcher/tsconfig.json
deleted file mode 100644
index 8a8bd31..0000000
--- a/build/theia/theia-extensions/launcher/tsconfig.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "../../configs/base.tsconfig",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "lib",
- "baseUrl": ".",
- "esModuleInterop": true
- },
- "include": ["src"]
-}
diff --git a/build/theia/theia-extensions/product/.eslintrc.js b/build/theia/theia-extensions/product/.eslintrc.js
deleted file mode 100644
index 1308994..0000000
--- a/build/theia/theia-extensions/product/.eslintrc.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** @type {import('eslint').Linter.Config} */
-module.exports = {
- extends: [
- '../../configs/build.eslintrc.json'
- ],
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: 'tsconfig.json'
- }
-};
diff --git a/build/theia/theia-extensions/product/icons/512-512.png b/build/theia/theia-extensions/product/icons/512-512.png
deleted file mode 100644
index d59605a..0000000
Binary files a/build/theia/theia-extensions/product/icons/512-512.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/package.json b/build/theia/theia-extensions/product/package.json
deleted file mode 100644
index a0d23a6..0000000
--- a/build/theia/theia-extensions/product/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "private": true,
- "name": "blueprint-product-ext",
- "version": "1.40.0",
- "description": "Eclipse Theia Blueprint Product Branding",
- "dependencies": {
- "@theia/core": "1.41.0",
- "@theia/getting-started": "1.41.0",
- "@theia/vsx-registry": "1.41.0",
- "@theia/workspace": "1.41.0",
- "inversify": "^6.0.1"
- },
- "devDependencies": {
- "rimraf": "^2.7.1",
- "tslint": "^5.12.0",
- "typescript": "^4.5.5"
- },
- "theiaExtensions": [
- {
- "frontend": "lib/browser/theia-blueprint-frontend-module",
- "electronMain": "lib/electron-main/theia-blueprint-main-module",
- "backend": "lib/node/theia-blueprint-backend-module"
- }
- ],
- "keywords": [
- "theia-extension"
- ],
- "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0",
- "repository": {
- "type": "git",
- "url": "https://github.com/eclipse-theia/theia-blueprint.git"
- },
- "bugs": {
- "url": "https://github.com/eclipse-theia/theia-blueprint/issues"
- },
- "homepage": "https://github.com/eclipse-theia/theia-blueprint",
- "files": [
- "lib",
- "src"
- ],
- "scripts": {
- "clean": "rimraf lib *.tsbuildinfo",
- "build": "tsc -b",
- "lint": "eslint --ext js,jsx,ts,tsx src",
- "lint:fix": "eslint --ext js,jsx,ts,tsx src --fix",
- "update:next": "ts-node ../../scripts/update-theia-to-next.ts"
- },
- "peerDependencies": {
- "react": "^16.8.0"
- }
-}
diff --git a/build/theia/theia-extensions/product/src/browser/branding-util.tsx b/build/theia/theia-extensions/product/src/browser/branding-util.tsx
deleted file mode 100644
index 2b91a0d..0000000
--- a/build/theia/theia-extensions/product/src/browser/branding-util.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2020 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { Key, KeyCode } from '@theia/core/lib/browser';
-import { WindowService } from '@theia/core/lib/browser/window/window-service';
-import * as React from 'react';
-
-export interface ExternalBrowserLinkProps {
- text: string;
- url: string;
- windowService: WindowService;
-}
-
-function ExternalBrowserLink(props: ExternalBrowserLinkProps): JSX.Element {
- return openExternalLink(props.url, props.windowService)}
- onKeyDown={(e: React.KeyboardEvent) => {
- if (Key.ENTER.keyCode === KeyCode.createKeyCode(e.nativeEvent).key?.keyCode) {
- openExternalLink(props.url, props.windowService);
- }
- }}>
- {props.text}
- ;
-}
-
-function openExternalLink(url: string, windowService: WindowService): void {
- windowService.openNewWindow(url, { external: true });
-}
-
-export function renderAboutYourTraining(windowService: WindowService): React.ReactNode {
- return
-
- About your Training
-
-
- Your teacher will provide you with all the necessary information on how to use your training environment.
-
- Visit to see what other trainings we provide.
-
-
;
-}
-
diff --git a/build/theia/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-blue.png b/build/theia/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-blue.png
deleted file mode 100644
index 666fda0..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-blue.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-white.png b/build/theia/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-white.png
deleted file mode 100644
index 9eff982..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-white.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/TheiaLogoLargeSize.png b/build/theia/theia-extensions/product/src/browser/icons/TheiaLogoLargeSize.png
deleted file mode 100644
index da6da02..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/TheiaLogoLargeSize.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/TheiaLogoLargeSizeWhite.png b/build/theia/theia-extensions/product/src/browser/icons/TheiaLogoLargeSizeWhite.png
deleted file mode 100644
index 01f019b..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/TheiaLogoLargeSizeWhite.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-black.png b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-black.png
deleted file mode 100644
index c6b3da0..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-black.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-black.svg b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-black.svg
deleted file mode 100644
index f6dd665..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-black.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-blue.png b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-blue.png
deleted file mode 100644
index c94aef5..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-blue.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-blue.svg b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-blue.svg
deleted file mode 100644
index c19dace..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-green.png b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-green.png
deleted file mode 100644
index 305e0b8..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-green.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-green.svg b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-green.svg
deleted file mode 100644
index cd9a8f3..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-green.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-red.png b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-red.png
deleted file mode 100644
index 98e516f..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-red.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-red.svg b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-red.svg
deleted file mode 100644
index 503e2f9..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-red.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-white.png b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-white.png
deleted file mode 100644
index af81bbb..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-white.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-white.svg b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-white.svg
deleted file mode 100644
index 0885446..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-yellow.png b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-yellow.png
deleted file mode 100644
index 61c063c..0000000
Binary files a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-yellow.png and /dev/null differ
diff --git a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-yellow.svg b/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-yellow.svg
deleted file mode 100644
index 03b7515..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/acend/AC-logo-rgb-yellow.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/icons/theia-logo-blueprint.svg b/build/theia/theia-extensions/product/src/browser/icons/theia-logo-blueprint.svg
deleted file mode 100644
index 503e2f9..0000000
--- a/build/theia/theia-extensions/product/src/browser/icons/theia-logo-blueprint.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/style/index.css b/build/theia/theia-extensions/product/src/browser/style/index.css
deleted file mode 100644
index e0d7056..0000000
--- a/build/theia/theia-extensions/product/src/browser/style/index.css
+++ /dev/null
@@ -1,82 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2020 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-:root {
- --theia-branding-logo: url(../icons/acend/AC-logo-rgb-black.png);
-}
-
-.gs-blue-header {
- color: #5088e7;
- text-transform: capitalize;
- font-weight: 600;
-}
-
-.gs-text-bold {
- font-weight: 600;
-}
-
-.gs-text-underline {
- text-decoration: underline;
-}
-
-.gs-float {
- float: right;
-}
-
-.gs-logo {
- background-image: var(--theia-branding-logo);
- background-position: center center;
- background-repeat: no-repeat;
- background-size: contain;
- width: 250px;
- height: 62;
- padding: 20px;
-}
-
-.gs-preference {
- margin-top: 20px;
- align-items: center;
- display: flex;
-}
-
-.ad-logo {
- background-image: var(--theia-branding-logo);
- background-position: center center;
- background-repeat: no-repeat;
- background-size: contain;
- width: 250px;
- height: 62;
- padding: 20px;
-}
-
-.ad-float {
- float: right;
-}
-
-.ad-container {
- padding: 20px;
- width: 1150px;
- height: 700;
-}
-
-ul.theia-aboutExtensions {
- height: 450px;
- overflow: hidden;
- overflow-y: scroll;
- list-style-type: none;
- padding: 0;
- margin-left: 10px;
- }
\ No newline at end of file
diff --git a/build/theia/theia-extensions/product/src/browser/theia-blueprint-about-dialog.tsx b/build/theia/theia-extensions/product/src/browser/theia-blueprint-about-dialog.tsx
deleted file mode 100644
index ebb1522..0000000
--- a/build/theia/theia-extensions/product/src/browser/theia-blueprint-about-dialog.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2020 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import * as React from 'react';
-import { AboutDialog, AboutDialogProps, ABOUT_CONTENT_CLASS } from '@theia/core/lib/browser/about-dialog';
-import { injectable, inject } from '@theia/core/shared/inversify';
-import { VSXEnvironment } from '@theia/vsx-registry/lib/common/vsx-environment';
-import { WindowService } from '@theia/core/lib/browser/window/window-service';
-
-@injectable()
-export class TheiaBlueprintAboutDialog extends AboutDialog {
-
- @inject(VSXEnvironment)
- protected readonly environment: VSXEnvironment;
-
- @inject(WindowService)
- protected readonly windowService: WindowService;
-
- protected vscodeApiVersion: string;
-
- constructor(
- @inject(AboutDialogProps) protected readonly props: AboutDialogProps
- ) {
- super(props);
- }
-
- protected async doInit(): Promise {
- this.vscodeApiVersion = await this.environment.getVscodeApiVersion();
- super.doInit();
- }
-
- protected render(): React.ReactNode {
- return
- {'VS Code API Version: ' + this.vscodeApiVersion}
-
-
;
- }
-}
diff --git a/build/theia/theia-extensions/product/src/browser/theia-blueprint-frontend-module.ts b/build/theia/theia-extensions/product/src/browser/theia-blueprint-frontend-module.ts
deleted file mode 100644
index 62c79f7..0000000
--- a/build/theia/theia-extensions/product/src/browser/theia-blueprint-frontend-module.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2020 TypeFox, EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import '../../src/browser/style/index.css';
-
-import { FrontendApplicationContribution, WidgetFactory, bindViewContribution, PreferenceContribution } from '@theia/core/lib/browser';
-import { AboutDialog } from '@theia/core/lib/browser/about-dialog';
-import { ContainerModule } from '@theia/core/shared/inversify';
-import { GettingStartedWidget } from '@theia/getting-started/lib/browser/getting-started-widget';
-import { TheiaBlueprintAboutDialog } from './theia-blueprint-about-dialog';
-import { TheiaBlueprintGettingStartedContribution } from './theia-blueprint-getting-started-contribution';
-import { TheiaBlueprintGettingStartedWidget } from './theia-blueprint-getting-started-widget';
-import { theiaBlueprintPreferenceSchema } from './theia-blueprint-preferences';
-
-export default new ContainerModule((bind, _unbind, isBound, rebind) => {
- bindViewContribution(bind, TheiaBlueprintGettingStartedContribution);
- bind(FrontendApplicationContribution).toService(TheiaBlueprintGettingStartedContribution);
- bind(TheiaBlueprintGettingStartedWidget).toSelf();
- bind(WidgetFactory).toDynamicValue(context => ({
- id: GettingStartedWidget.ID,
- createWidget: () => context.container.get(TheiaBlueprintGettingStartedWidget),
- })).inSingletonScope();
- if (isBound(AboutDialog)) {
- rebind(AboutDialog).to(TheiaBlueprintAboutDialog).inSingletonScope();
- } else {
- bind(AboutDialog).to(TheiaBlueprintAboutDialog).inSingletonScope();
- }
-
- bind(PreferenceContribution).toConstantValue({ schema: theiaBlueprintPreferenceSchema });
-});
diff --git a/build/theia/theia-extensions/product/src/browser/theia-blueprint-getting-started-contribution.ts b/build/theia/theia-extensions/product/src/browser/theia-blueprint-getting-started-contribution.ts
deleted file mode 100644
index 9037378..0000000
--- a/build/theia/theia-extensions/product/src/browser/theia-blueprint-getting-started-contribution.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2020 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import { AbstractViewContribution, FrontendApplication, FrontendApplicationContribution, PreferenceService } from '@theia/core/lib/browser';
-import { inject, injectable } from '@theia/core/shared/inversify';
-import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state';
-import { GettingStartedWidget } from '@theia/getting-started/lib/browser/getting-started-widget';
-import { TheiaBlueprintGettingStartedWidget } from './theia-blueprint-getting-started-widget';
-import { BlueprintPreferences } from './theia-blueprint-preferences';
-
-@injectable()
-export class TheiaBlueprintGettingStartedContribution extends AbstractViewContribution implements FrontendApplicationContribution {
-
- @inject(FrontendApplicationStateService)
- protected readonly stateService: FrontendApplicationStateService;
-
- @inject(PreferenceService)
- protected readonly preferenceService: PreferenceService;
-
- constructor() {
- super({
- widgetId: GettingStartedWidget.ID,
- widgetName: GettingStartedWidget.LABEL,
- defaultWidgetOptions: {
- area: 'main',
- }
- });
- }
-
- async onStart(app: FrontendApplication): Promise {
- this.stateService.reachedState('ready').then(
- () => this.preferenceService.ready.then(() => {
- const showWelcomePage: boolean = this.preferenceService.get(BlueprintPreferences.alwaysShowWelcomePage, true);
- if (showWelcomePage) {
- this.openView({ reveal: true, activate: true });
- }
- })
- );
- }
-}
diff --git a/build/theia/theia-extensions/product/src/browser/theia-blueprint-getting-started-widget.tsx b/build/theia/theia-extensions/product/src/browser/theia-blueprint-getting-started-widget.tsx
deleted file mode 100644
index 1e85de1..0000000
--- a/build/theia/theia-extensions/product/src/browser/theia-blueprint-getting-started-widget.tsx
+++ /dev/null
@@ -1,136 +0,0 @@
-/********************************************************************************
- * Copyright (C) 2020 EclipseSource and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the Eclipse
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
- * with the GNU Classpath Exception which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- ********************************************************************************/
-
-import * as React from 'react';
-import { inject, injectable } from '@theia/core/shared/inversify';
-import { renderAboutYourTraining } from './branding-util';
-import { GettingStartedWidget } from '@theia/getting-started/lib/browser/getting-started-widget';
-import { VSXEnvironment } from '@theia/vsx-registry/lib/common/vsx-environment';
-import { WindowService } from '@theia/core/lib/browser/window/window-service';
-import { Message, PreferenceService } from '@theia/core/lib/browser';
-import { BlueprintPreferences } from './theia-blueprint-preferences';
-
-@injectable()
-export class TheiaBlueprintGettingStartedWidget extends GettingStartedWidget {
-
- @inject(VSXEnvironment)
- protected readonly environment: VSXEnvironment;
-
- @inject(WindowService)
- protected readonly windowService: WindowService;
-
- @inject(PreferenceService)
- protected readonly preferenceService: PreferenceService;
-
- protected vscodeApiVersion: string;
-
- protected async doInit(): Promise {
- super.doInit();
- this.vscodeApiVersion = await this.environment.getVscodeApiVersion();
- await this.preferenceService.ready;
- this.update();
- }
-
- protected onActivateRequest(msg: Message): void {
- super.onActivateRequest(msg);
- const htmlElement = document.getElementById('alwaysShowWelcomePage');
- if (htmlElement) {
- htmlElement.focus();
- }
- }
-
- protected render(): React.ReactNode {
- return