diff --git a/.gitignore b/.gitignore index e622e8e7..7318d50a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,10 +8,12 @@ build/ src-gen/ *webpack.config.js .DS_Store -/workspace/static -.DS_Store # switching from `electron` to `browser` in dev mode. .browser_modules -# LS logs -inols*.log -yarn-error.log +yarn*.log +# For the VS Code extensions used by Theia. +plugins +# generated JS/TS for the gRPC API +arduino-ide-extension/src/node/cli-protocol +# the config files for the CLI +arduino-ide-extension/data/cli/config diff --git a/.vscode/launch.json b/.vscode/launch.json index 28b2c89a..bb76b436 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -36,7 +36,8 @@ "--hostname=localhost", "--no-cluster", "--remote-debugging-port=9222", - "--no-app-auto-install" + "--no-app-auto-install", + "--plugins=local-dir:plugins" ], "env": { "NODE_ENV": "development" @@ -61,7 +62,8 @@ "--hostname=0.0.0.0", "--port=3000", "--no-cluster", - "--no-app-auto-install" + "--no-app-auto-install", + "--plugins=local-dir:plugins" ], "windows": { "env": { @@ -85,24 +87,20 @@ { "type": "node", "request": "launch", - "name": "App (Browser - Debug CLI daemon)", - "program": "${workspaceRoot}/browser-app/src-gen/backend/main.js", + "protocol": "inspector", + "name": "Run Test [current]", + "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha", "args": [ - "--hostname=0.0.0.0", - "--port=3000", - "--no-cluster", - "--no-app-auto-install", - "--debug-cli=true" + "--require", + "reflect-metadata/Reflect", + "--no-timeouts", + "--colors", + "**/${fileBasenameNoExtension}.js" ], "env": { - "NODE_ENV": "development" + "TS_NODE_PROJECT": "${workspaceRoot}/tsconfig.json" }, "sourceMaps": true, - "outFiles": [ - "${workspaceRoot}/browser-app/src-gen/backend/*.js", - "${workspaceRoot}/browser-app/lib/**/*.js", - "${workspaceRoot}/arduino-ide-extension/lib/**/*.js" - ], "smartStep": true, "internalConsoleOptions": "openOnSessionStart", "outputCapture": "std" diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 80a54749..6e6db053 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,48 +1,80 @@ { - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "Arduino Editor - Start Browser Example", - "type": "shell", - "command": "yarn --cwd ./browser-app start", - "group": "build", - "presentation": { - "reveal": "always", - "panel": "new", - "clear": true - } - }, - { - "label": "Arduino Editor - Watch Theia Extension", - "type": "shell", - "command": "yarn --cwd ./arduino-ide-extension watch", - "group": "build", - "presentation": { - "reveal": "always", - "panel": "new", - "clear": false - } - }, - { - "label": "Arduino Editor - Watch Browser Example", - "type": "shell", - "command": "yarn --cwd ./browser-app watch", - "group": "build", - "presentation": { - "reveal": "always", - "panel": "new", - "clear": false - } - }, - { - "label": "Arduino Editor - Watch All", - "type": "shell", - "dependsOn": [ - "Arduino Editor - Watch Theia Extension", - "Arduino Editor - Watch Browser Example" - ] - } - ] -} \ No newline at end of file + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Arduino Pro IDE - Start Browser App", + "type": "shell", + "command": "yarn --cwd ./browser-app start", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new", + "clear": true + } + }, + { + "label": "Arduino Pro IDE - Watch IDE Extension", + "type": "shell", + "command": "yarn --cwd ./arduino-ide-extension watch", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new", + "clear": false + } + }, + { + "label": "Arduino Pro IDE - Watch Debugger Extension", + "type": "shell", + "command": "yarn --cwd ./arduino-debugger-extension watch", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new", + "clear": false + } + }, + { + "label": "Arduino Pro IDE - Watch Browser App", + "type": "shell", + "command": "yarn --cwd ./browser-app watch", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new", + "clear": false + } + }, + { + "label": "Arduino Pro IDE - Watch Electron App", + "type": "shell", + "command": "yarn --cwd ./electron-app watch", + "group": "build", + "presentation": { + "reveal": "always", + "panel": "new", + "clear": false + } + }, + { + "label": "Arduino Pro IDE - Watch All [Browser]", + "type": "shell", + "dependsOn": [ + "Arduino Pro IDE - Watch IDE Extension", + "Arduino Pro IDE - Watch Debugger Extension", + "Arduino Pro IDE - Watch Browser App" + ] + }, + { + "label": "Arduino Pro IDE - Watch All [Electron]", + "type": "shell", + "dependsOn": [ + "Arduino Pro IDE - Watch IDE Extension", + "Arduino Pro IDE - Watch Debugger Extension", + "Arduino Pro IDE - Watch Electron App" + ] + } + ] +} diff --git a/arduino-debugger-extension/package.json b/arduino-debugger-extension/package.json index da7a78dc..aba9fe39 100644 --- a/arduino-debugger-extension/package.json +++ b/arduino-debugger-extension/package.json @@ -1,14 +1,14 @@ { "name": "arduino-debugger-extension", - "version": "0.0.5", + "version": "0.0.6", "description": "An extension for debugging Arduino programs", "license": "MIT", "engines": { - "node": ">=10.10.0" + "node": ">=10.11.0 <12" }, "dependencies": { "@theia/debug": "next", - "arduino-ide-extension": "0.0.5", + "arduino-ide-extension": "0.0.6", "cdt-gdb-adapter": "^0.0.14", "vscode-debugadapter": "^1.26.0", "vscode-debugprotocol": "^1.26.0" @@ -20,21 +20,14 @@ "build": "tsc && yarn lint", "watch": "tsc -w" }, - "devDependencies": { - "rimraf": "^2.6.1", - "tslint": "^5.5.0", - "typescript": "3.5.1" - }, "files": [ "lib", - "src", - "build", - "data" + "src" ], "theiaExtensions": [ { - "backend": "lib/node/backend-module", - "frontend": "lib/browser/frontend-module" + "backend": "lib/node/arduino-debug-backend-module", + "frontend": "lib/browser/arduino-debug-frontend-module" } ] } diff --git a/arduino-debugger-extension/src/browser/frontend-module.ts b/arduino-debugger-extension/src/browser/arduino-debug-frontend-module.ts similarity index 99% rename from arduino-debugger-extension/src/browser/frontend-module.ts rename to arduino-debugger-extension/src/browser/arduino-debug-frontend-module.ts index 1270812a..792b2a12 100644 --- a/arduino-debugger-extension/src/browser/frontend-module.ts +++ b/arduino-debugger-extension/src/browser/arduino-debug-frontend-module.ts @@ -10,7 +10,6 @@ import { ArduinoDebugSessionManager } from './arduino-debug-session-manager'; import '../../src/browser/style/index.css'; - export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(ArduinoVariableResolver).toSelf().inSingletonScope(); bind(VariableContribution).toService(ArduinoVariableResolver); diff --git a/arduino-debugger-extension/src/node/arduino-debug-adapter-contribution.ts b/arduino-debugger-extension/src/node/arduino-debug-adapter-contribution.ts index 9f6ee487..164b4be4 100644 --- a/arduino-debugger-extension/src/node/arduino-debug-adapter-contribution.ts +++ b/arduino-debugger-extension/src/node/arduino-debug-adapter-contribution.ts @@ -3,7 +3,7 @@ import { injectable, inject } from 'inversify'; import { DebugAdapterContribution, DebugAdapterExecutable } from '@theia/debug/lib/common/debug-model'; import { DebugConfiguration } from '@theia/debug/lib/common/debug-configuration'; import { IJSONSchema } from '@theia/core/lib/common/json-schema'; -import { ArduinoCli } from 'arduino-ide-extension/lib/node/arduino-cli'; +import { ArduinoDaemonImpl } from 'arduino-ide-extension/lib/node/arduino-daemon-impl'; @injectable() export class ArduinoDebugAdapterContribution implements DebugAdapterContribution { @@ -12,7 +12,7 @@ export class ArduinoDebugAdapterContribution implements DebugAdapterContribution readonly label = 'Arduino'; readonly languages = ['c', 'cpp', 'ino']; - @inject(ArduinoCli) arduinoCli: ArduinoCli; + @inject(ArduinoDaemonImpl) daemon: ArduinoDaemonImpl; getSchemaAttributes(): IJSONSchema[] { return [ @@ -66,7 +66,7 @@ export class ArduinoDebugAdapterContribution implements DebugAdapterContribution const startFunction = config.pauseAtMain ? 'main' : 'setup'; const res: ActualDebugConfig = { ...config, - arduinoCli: await this.arduinoCli.getExecPath(), + arduinoCli: await this.daemon.getExecPath(), fqbn: '${fqbn}', uploadPort: '${port}', initCommands: [ diff --git a/arduino-debugger-extension/src/node/backend-module.ts b/arduino-debugger-extension/src/node/arduino-debug-backend-module.ts similarity index 100% rename from arduino-debugger-extension/src/node/backend-module.ts rename to arduino-debugger-extension/src/node/arduino-debug-backend-module.ts diff --git a/arduino-ide-extension/data/cli/schema/arduino-cli.schema.json b/arduino-ide-extension/data/cli/schema/arduino-cli.schema.json new file mode 100644 index 00000000..08a9490b --- /dev/null +++ b/arduino-ide-extension/data/cli/schema/arduino-cli.schema.json @@ -0,0 +1,117 @@ +{ + "$id": "http://arduino.cc/arduino-cli.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "Arduino CLI Configuration", + "properties": { + "board_manager": { + "type": "object", + "description": "Board Manager Configuration", + "properties": { + "additional_urls": { + "type": "array", + "description": "If your board requires 3rd party core packages to work, you can list the URLs to additional package indexes in the Arduino CLI configuration file.", + "items": { + "type": "string", + "description": "URL pointing to the 3rd party core package index JSON.", + "pattern": "^(.*)$" + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "daemon": { + "type": "object", + "description": "CLI Daemon Configuration", + "properties": { + "port": { + "type": [ + "string", + "number" + ], + "description": "The CLI daemon port where the gRPC clients can connect to.", + "pattern": "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$", + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "directories": { + "type": "object", + "description": "Directories Configuration", + "properties": { + "data": { + "type": "string", + "description": "Path to the the data folder where core packages will be stored.", + "pattern": "^(.*)$" + }, + "downloads": { + "type": "string", + "description": "Path to the staging folder.", + "pattern": "^(.*)$" + }, + "user": { + "type": "string", + "description": "Path to the sketchbooks.", + "pattern": "^(.*)$" + } + }, + "additionalProperties": false + }, + "logging": { + "type": "object", + "description": "Logging Configuration", + "properties": { + "file": { + "type": "string", + "description": "Path to the file where logs will be written.", + "pattern": "^(.*)$" + }, + "format": { + "type": "string", + "description": "The output format for the logs, can be 'text' or 'json'", + "enum": [ + "text", + "json" + ] + }, + "level": { + "type": "string", + "description": "Messages with this level and above will be logged.", + "enum": [ + "trace", + "debug", + "info", + "warning", + "error", + "fatal", + "panic" + ] + } + }, + "additionalProperties": false + }, + "telemetry": { + "type": "object", + "description": "Telemetry Configuration", + "properties": { + "addr": { + "type": "string", + "description": "Address to the telemetry endpoint. Must be a full address with host, address, and port. For instance, ':9090' represents 'localhost:9090'", + "pattern": "^(.*)$" + }, + "enabled": { + "type": "boolean", + "description": "Whether the telemetry is enabled or not." + }, + "additionalProperties": false + }, + "additionalProperties": false + } + }, + "// TODOs": [ + "additionalProperties should be true. See the new telemetry entry" + ], + "additionalProperties": false +} diff --git a/arduino-ide-extension/package.json b/arduino-ide-extension/package.json index 6450ba8f..95c60e1a 100644 --- a/arduino-ide-extension/package.json +++ b/arduino-ide-extension/package.json @@ -1,13 +1,24 @@ { "name": "arduino-ide-extension", - "version": "0.0.5", + "version": "0.0.6", "description": "An extension for Theia building the Arduino IDE", "license": "MIT", "engines": { - "node": ">=10.10.0" + "node": ">=10.11.0 <12" + }, + "scripts": { + "prepare": "yarn download-cli && yarn generate-protocol && yarn download-ls && yarn run clean && yarn run build", + "clean": "rimraf lib", + "download-cli": "node ./scripts/download-cli.js", + "download-ls": "node ./scripts/download-ls.js", + "generate-protocol": "node ./scripts/generate-protocol.js", + "lint": "tslint -c ./tslint.json --project ./tsconfig.json", + "build": "tsc && ncp ./src/node/cli-protocol/ ./lib/node/cli-protocol/ && yarn lint", + "watch": "tsc -w", + "test": "mocha \"./lib/test/**/*.test.js\"", + "test:watch": "mocha --watch --watch-files lib \"./lib/test/**/*.test.js\"" }, "dependencies": { - "@grpc/grpc-js": "^0.6.12", "@theia/application-package": "next", "@theia/core": "next", "@theia/cpp": "next", @@ -23,13 +34,25 @@ "@theia/terminal": "next", "@theia/workspace": "next", "@types/dateformat": "^3.0.1", - "@types/google-protobuf": "^3.7.1", + "@types/deepmerge": "^2.2.0", + "@types/glob": "^5.0.35", + "@types/google-protobuf": "^3.7.2", + "@types/js-yaml": "^3.12.2", + "@types/lodash.debounce": "^4.0.6", "@types/ps-tree": "^1.1.0", "@types/react-select": "^3.0.0", + "@types/sinon": "^7.5.2", "@types/which": "^1.3.1", + "ajv": "^6.5.3", "css-element-queries": "^1.2.0", "dateformat": "^3.0.3", - "google-protobuf": "^3.11.0", + "deepmerge": "^4.2.2", + "fuzzy": "^0.1.3", + "glob": "^7.1.6", + "google-protobuf": "^3.11.4", + "grpc": "^1.24.2", + "lodash.debounce": "^4.0.8", + "js-yaml": "^3.13.1", "p-queue": "^5.0.0", "ps-tree": "^1.2.0", "react-select": "^3.0.4", @@ -39,31 +62,11 @@ "upath": "^1.1.2", "which": "^1.3.1" }, - "scripts": { - "prepare": "yarn download-cli && yarn download-ls && yarn run clean && yarn run build", - "clean": "rimraf lib", - "download-cli": "node ./scripts/download-cli.js", - "download-ls": "node ./scripts/download-ls.js", - "generate-protocol": "node ./scripts/generate-protocol.js", - "lint": "tslint -c ./tslint.json --project ./tsconfig.json", - "build": "tsc && ncp ./src/node/cli-protocol/ ./lib/node/cli-protocol/ && yarn lint", - "watch": "tsc -w", - "test": "mocha \"./test/**/*.test.ts\"" - }, - "mocha": { - "require": [ - "ts-node/register", - "reflect-metadata/Reflect" - ], - "reporter": "spec", - "colors": true, - "watch-extensions": "ts,tsx", - "timeout": 10000 - }, "devDependencies": { "@types/chai": "^4.2.7", "@types/chai-string": "^1.4.2", "@types/mocha": "^5.2.7", + "@types/temp": "^0.8.34", "chai": "^4.2.0", "chai-string": "^1.5.0", "decompress": "^4.2.0", @@ -75,14 +78,22 @@ "mocha": "^7.0.0", "moment": "^2.24.0", "ncp": "^2.0.0", - "rimraf": "^2.6.1", + "protoc": "1.0.4", "shelljs": "^0.8.3", - "ts-node": "^8.6.2", - "tslint": "^5.5.0", - "typescript": "3.5.3", + "sinon": "^9.0.1", + "temp": "^0.9.1", "uuid": "^3.2.1", "yargs": "^11.1.0" }, + "mocha": { + "require": [ + "reflect-metadata/Reflect" + ], + "reporter": "spec", + "colors": true, + "watch-extensions": "js", + "timeout": 10000 + }, "files": [ "lib", "src", @@ -91,12 +102,15 @@ ], "theiaExtensions": [ { - "backend": "lib/node/arduino-backend-module", - "frontend": "lib/browser/arduino-frontend-module" + "backend": "lib/node/arduino-ide-backend-module", + "frontend": "lib/browser/arduino-ide-frontend-module" }, { "frontend": "lib/browser/menu/browser-arduino-menu-module", - "frontendElectron": "lib/electron-browser/electron-arduino-menu-module" + "frontendElectron": "lib/electron-browser/menu/electron-arduino-menu-module" + }, + { + "frontend": "lib/browser/boards/quick-open/boards-quick-open-module" } ] } diff --git a/arduino-ide-extension/scripts/generate-protocol.js b/arduino-ide-extension/scripts/generate-protocol.js index 82aa0415..6e4f489e 100644 --- a/arduino-ide-extension/scripts/generate-protocol.js +++ b/arduino-ide-extension/scripts/generate-protocol.js @@ -2,30 +2,15 @@ (async () => { - const DEFAULT_VERSION = 'nightly'; // '0.3.7-alpha.preview'; - const os = require('os'); const path = require('path'); + const glob = require('glob'); const { v4 } = require('uuid'); const shell = require('shelljs'); + const protoc = path.dirname(require('protoc/protoc')); + shell.env.PATH = `${shell.env.PATH}${path.delimiter}${protoc}`; shell.env.PATH = `${shell.env.PATH}${path.delimiter}${path.join(__dirname, '..', 'node_modules', '.bin')}`; - const yargs = require('yargs') - .option('cli-version', { - alias: 'cv', - default: DEFAULT_VERSION, - choices: [ - // 'latest', // TODO: How do we get the source for `latest`. Currently, `latest` is the `0.3.7-alpha.preview`. - 'nightly' - ], - describe: `The version of the 'arduino-cli' to download. Specify either an existing version or use 'nightly'. Defaults to ${DEFAULT_VERSION}.` - }) - .version(false).parse(); - const version = yargs['cli-version']; - if (version !== 'nightly') { - shell.echo(`Only 'nightly' version is supported.`); - shell.exit(1); - } const repository = path.join(os.tmpdir(), `${v4()}-arduino-cli`); if (shell.mkdir('-p', repository).code !== 0) { shell.exit(1); @@ -34,11 +19,22 @@ if (shell.exec(`git clone https://github.com/arduino/arduino-cli.git ${repository}`).code !== 0) { shell.exit(1); } - if (version !== 'nightly') { - if (shell.exec(`git -C ${repository} checkout tags/${version} -b ${version}`).code !== 0) { + + const { platform } = process; + const build = path.join(__dirname, '..', 'build'); + const cli = path.join(build, `arduino-cli${platform === 'win32' ? '.exe' : ''}`); + const rawVersion = shell.exec(`${cli} version`).trim(); + if (!rawVersion) { + shell.echo(`Could not retrieve the CLI version from ${cli}.`); + shell.exit(1); + } + const version = rawVersion.substring(rawVersion.lastIndexOf('Commit:') + 'Commit:'.length).trim(); + if (version) { + if (shell.exec(`git -C ${repository} checkout ${version} -b ${version}`).code !== 0) { shell.exit(1); } } + shell.echo('Generating TS/JS API from:'); if (shell.exec(`git -C ${repository} rev-parse --abbrev-ref HEAD`).code !== 0) { shell.exit(1); @@ -55,27 +51,41 @@ const rpc = path.join(repository, 'rpc'); const out = path.join(__dirname, '..', 'src', 'node', 'cli-protocol'); + shell.mkdir('-p', out); + + const protos = await new Promise(resolve => + glob('**/*.proto', { cwd: rpc }, (error, matches) => { + if (error) { + shell.echo(error.stack); + resolve([]); + return; + } + resolve(matches.map(filename => path.join(rpc, filename))); + })); + if (!protos || protos.length === 0) { + shell.echo(`Could not find any .proto files under ${rpc}.`); + shell.exit(1); + } + // Generate JS code from the `.proto` files. if (shell.exec(`grpc_tools_node_protoc \ --js_out=import_style=commonjs,binary:${out} \ --grpc_out=${out} \ --plugin=protoc-gen-grpc=${plugin} \ -I ${rpc} \ -${path.join(rpc, '/**/*.proto')}`).code !== 0) { +${protos.join(' ')}`).code !== 0) { shell.exit(1); } // Generate the `.d.ts` files for JS. if (shell.exec(`protoc \ ---plugin=protoc-gen-ts=${path.resolve(__dirname, '..', 'node_modules', '.bin', 'protoc-gen-ts')} \ +--plugin=protoc-gen-ts=${path.resolve(__dirname, '..', 'node_modules', '.bin', `protoc-gen-ts${platform === 'win32' ? '.cmd' : ''}`)} \ --ts_out=${out} \ -I ${rpc} \ -${path.join(rpc, '/**/*.proto')}`).code !== 0) { +${protos.join(' ')}`).code !== 0) { shell.exit(1); } - const { patch } = require('./patch-grpc-js'); - patch([out]) shell.echo('Done.'); -})(); \ No newline at end of file +})(); diff --git a/arduino-ide-extension/scripts/patch-grpc-js.js b/arduino-ide-extension/scripts/patch-grpc-js.js deleted file mode 100644 index 999003ac..00000000 --- a/arduino-ide-extension/scripts/patch-grpc-js.js +++ /dev/null @@ -1,38 +0,0 @@ -// Use `@grpc/grpc-js` instead of `grpc` at runtime. -// https://github.com/grpc/grpc-node/issues/624 -// https://github.com/grpc/grpc-node/issues/931 - -const fs = require('fs'); -const path = require('path'); - -module.exports.patch = function (roots = [path.join(__dirname, '..', 'src', 'node')]) { - console.info('🔧 <<< Patching code...'); - patch(roots); - console.info('👌 <<< Done. The code has been patched.'); -}; - -function patch(paths) { - for (const p of paths) { - const exist = fs.existsSync(p); - if (exist) { - const stat = fs.statSync(p); - if (stat.isDirectory()) { - console.info(`🔧 >>> Scanning code in ${p}...`); - patch(fs.readdirSync(p).map(name => path.join(p, name))); - } else { - let content = fs.readFileSync(p, { encoding: 'utf8' }); - if (content.indexOf("require('grpc')") !== -1) { - console.info(`Updated require('grpc') to require('@grpc/grpc-js') in ${p}.`); - fs.writeFileSync(p, content.replace("require('grpc')", "require('@grpc/grpc-js')")); - } - content = fs.readFileSync(p, { encoding: 'utf8' }); - if (content.indexOf('import * as grpc from "grpc"') !== -1) { - console.info(`Updated import * as grpc from "grpc" to import * as grpc from "@grpc/grpc-js" in ${p}.`); - fs.writeFileSync(p, content.replace('import * as grpc from "grpc"', 'import * as grpc from "@grpc/grpc-js"')); - } - } - } else { - console.warn(`${p} does not exist. Skipping.`); - } - } -} \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/arduino-commands.ts b/arduino-ide-extension/src/browser/arduino-commands.ts index 94376fe5..95853ae1 100644 --- a/arduino-ide-extension/src/browser/arduino-commands.ts +++ b/arduino-ide-extension/src/browser/arduino-commands.ts @@ -2,6 +2,8 @@ import { Command } from '@theia/core/lib/common/command'; export namespace ArduinoCommands { + const category = 'Arduino'; + export const VERIFY: Command = { id: 'arduino-verify', label: 'Verify Sketch' @@ -24,8 +26,9 @@ export namespace ArduinoCommands { export const SHOW_OPEN_CONTEXT_MENU: Command = { id: 'arduino-show-open-context-menu', - label: 'Open Sketch' - } + label: 'Open Sketch', + category + }; export const OPEN_FILE_NAVIGATOR: Command = { id: 'arduino-open-file-navigator' @@ -40,19 +43,26 @@ export namespace ArduinoCommands { } export const NEW_SKETCH: Command = { - id: "arduino-new-sketch", + id: 'arduino-new-sketch', label: 'New Sketch', - category: 'File' + category } export const OPEN_BOARDS_DIALOG: Command = { - id: "arduino-open-boards-dialog" + id: 'arduino-open-boards-dialog' } export const TOGGLE_ADVANCED_MODE: Command = { - id: "arduino-toggle-advanced-mode" + id: 'arduino-toggle-advanced-mode' } export const TOGGLE_ADVANCED_MODE_TOOLBAR: Command = { id: "arduino-toggle-advanced-mode-toolbar" } + + export const OPEN_CLI_CONFIG: Command = { + id: 'arduino-open-cli-config', + label: 'Open CLI Configuration', + category + }; + } diff --git a/arduino-ide-extension/src/browser/arduino-daemon-client-impl.ts b/arduino-ide-extension/src/browser/arduino-daemon-client-impl.ts new file mode 100644 index 00000000..f638bee9 --- /dev/null +++ b/arduino-ide-extension/src/browser/arduino-daemon-client-impl.ts @@ -0,0 +1,53 @@ +import { injectable, inject } from 'inversify'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { Event, Emitter } from '@theia/core/lib/common/event'; +import { MessageService } from '@theia/core/lib/common/message-service'; +import { ArduinoDaemonClient } from '../common/protocol'; + +@injectable() +export class ArduinoDaemonClientImpl implements ArduinoDaemonClient { + + @inject(ILogger) + protected readonly logger: ILogger; + + @inject(MessageService) + protected readonly messageService: MessageService; + + protected readonly onStartedEmitter = new Emitter(); + protected readonly onStoppedEmitter = new Emitter(); + protected _isRunning = false; + + notifyStopped(): void { + if (this._isRunning) { + this._isRunning = false; + this.onStoppedEmitter.fire(); + this.info('The CLI daemon process has stopped.'); + } + } + + notifyStarted(): void { + if (!this._isRunning) { + this._isRunning = true; + this.onStartedEmitter.fire(); + this.info('The CLI daemon process has started.'); + } + } + + get onDaemonStarted(): Event { + return this.onStartedEmitter.event; + } + + get onDaemonStopped(): Event { + return this.onStoppedEmitter.event; + } + + get isRunning(): boolean { + return this._isRunning; + } + + protected info(message: string): void { + this.messageService.info(message, { timeout: 3000 }); + this.logger.info(message); + } + +} diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index 897a1b1c..1da26c29 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -5,10 +5,8 @@ import { EditorWidget } from '@theia/editor/lib/browser/editor-widget'; import { MessageService } from '@theia/core/lib/common/message-service'; import { CommandContribution, CommandRegistry, Command, CommandHandler } from '@theia/core/lib/common/command'; import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar'; -import { BoardsService } from '../common/protocol/boards-service'; +import { BoardsService, BoardsServiceClient, CoreService, Sketch, SketchesService, ToolOutputServiceClient } from '../common/protocol'; import { ArduinoCommands } from './arduino-commands'; -import { CoreService } from '../common/protocol/core-service'; -import { WorkspaceServiceExt } from './workspace-service-ext'; import { BoardsServiceClientImpl } from './boards/boards-service-client-impl'; import { WorkspaceRootUriAwareCommandHandler, WorkspaceCommands } from '@theia/workspace/lib/browser/workspace-commands'; import { SelectionService, MenuContribution, MenuModelRegistry, MAIN_MENU_BAR, MenuPath } from '@theia/core'; @@ -16,12 +14,10 @@ import { ArduinoToolbar } from './toolbar/arduino-toolbar'; import { EditorManager, EditorMainMenu } from '@theia/editor/lib/browser'; import { ContextMenuRenderer, Widget, StatusBar, StatusBarAlignment, FrontendApplicationContribution, - FrontendApplication, KeybindingContribution, KeybindingRegistry + FrontendApplication, KeybindingContribution, KeybindingRegistry, OpenerService, open } from '@theia/core/lib/browser'; import { OpenFileDialogProps, FileDialogService } from '@theia/filesystem/lib/browser/file-dialog'; import { FileSystem, FileStat } from '@theia/filesystem/lib/common'; -import { Sketch, SketchesService } from '../common/protocol/sketches-service'; -import { ToolOutputServiceClient } from '../common/protocol/tool-output-service'; import { CommonCommands, CommonMenus } from '@theia/core/lib/browser/common-frontend-contribution'; import { FileSystemCommands } from '@theia/filesystem/lib/browser/filesystem-frontend-contribution'; import { FileDownloadCommands } from '@theia/filesystem/lib/browser/download/file-download-command-contribution'; @@ -44,6 +40,10 @@ import { FileNavigatorCommands } from '@theia/navigator/lib/browser/navigator-co import { EditorMode } from './editor-mode'; import { ColorContribution } from '@theia/core/lib/browser/color-application-contribution'; import { ColorRegistry } from '@theia/core/lib/browser/color-registry'; +import { ArduinoDaemon } from '../common/protocol/arduino-daemon'; +import { ConfigService } from '../common/protocol/config-service'; +import { BoardsConfigStore } from './boards/boards-config-store'; +import { MainMenuManager } from './menu/main-menu-manager'; export namespace ArduinoMenus { export const SKETCH = [...MAIN_MENU_BAR, '3_sketch']; @@ -70,14 +70,15 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut @inject(CoreService) protected readonly coreService: CoreService; - @inject(WorkspaceServiceExt) - protected readonly workspaceServiceExt: WorkspaceServiceExt; - @inject(ToolOutputServiceClient) protected readonly toolOutputServiceClient: ToolOutputServiceClient; @inject(BoardsServiceClientImpl) - protected readonly boardsServiceClient: BoardsServiceClientImpl; + protected readonly boardsServiceClientImpl: BoardsServiceClientImpl; + + // Unused but do not remove it. It's required by DI, otherwise `init` method is not called. + @inject(BoardsServiceClient) + protected readonly boardsServiceClient: BoardsServiceClient; @inject(SelectionService) protected readonly selectionService: SelectionService; @@ -136,29 +137,36 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut @inject(EditorMode) protected readonly editorMode: EditorMode; + @inject(ArduinoDaemon) + protected readonly daemon: ArduinoDaemon; + + @inject(OpenerService) + protected readonly openerService: OpenerService; + + @inject(ConfigService) + protected readonly configService: ConfigService; + + @inject(BoardsConfigStore) + protected readonly boardsConfigStore: BoardsConfigStore; + + @inject(MainMenuManager) + protected readonly mainMenuManager: MainMenuManager; + protected application: FrontendApplication; protected wsSketchCount: number = 0; // TODO: this does not belong here, does it? @postConstruct() protected async init(): Promise { - // This is a hack. Otherwise, the backend services won't bind. - await this.workspaceServiceExt.roots(); - const updateStatusBar = (config: BoardsConfig.Config) => { this.statusBar.setElement('arduino-selected-board', { alignment: StatusBarAlignment.RIGHT, text: BoardsConfig.Config.toString(config) }); } - this.boardsServiceClient.onBoardsConfigChanged(updateStatusBar); - updateStatusBar(this.boardsServiceClient.boardsConfig); + this.boardsServiceClientImpl.onBoardsConfigChanged(updateStatusBar); + updateStatusBar(this.boardsServiceClientImpl.boardsConfig); this.registerSketchesInMenu(this.menuRegistry); - - Promise.all([ - this.boardsService.getAttachedBoards(), - this.boardsService.getAvailablePorts() - ]).then(([{ boards }, { ports }]) => this.boardsServiceClient.tryReconnect(boards, ports)); } onStart(app: FrontendApplication): void { @@ -206,8 +214,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut render: () => , + boardsServiceClient={this.boardsServiceClientImpl} />, isVisible: widget => ArduinoToolbar.is(widget) && widget.side === 'left', priority: 2 }); @@ -272,10 +279,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut }); registry.registerCommand(ArduinoCommands.TOGGLE_COMPILE_FOR_DEBUG, { - execute: () => { - this.editorMode.toggleCompileForDebug(); - this.editorMode.menuContentChanged.fire(); - }, + execute: () => this.editorMode.toggleCompileForDebug(), isToggled: () => this.editorMode.compileForDebug }); @@ -305,13 +309,11 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut }); registry.registerCommand(ArduinoCommands.OPEN_FILE_NAVIGATOR, { - isEnabled: () => true, execute: () => this.doOpenFile() }); registry.registerCommand(ArduinoCommands.OPEN_SKETCH, { - isEnabled: () => true, - execute: (sketch: Sketch) => { + execute: async (sketch: Sketch) => { this.workspaceService.open(new URI(sketch.uri)); } }); @@ -340,11 +342,10 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut })); registry.registerCommand(ArduinoCommands.OPEN_BOARDS_DIALOG, { - isEnabled: () => true, execute: async () => { const boardsConfig = await this.boardsConfigDialog.open(); if (boardsConfig) { - this.boardsServiceClient.boardsConfig = boardsConfig; + this.boardsServiceClientImpl.boardsConfig = boardsConfig; } } }); @@ -358,6 +359,10 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut isToggled: () => this.editorMode.proMode, execute: () => this.editorMode.toggleProMode() }); + + registry.registerCommand(ArduinoCommands.OPEN_CLI_CONFIG, { + execute: () => this.configService.getCliConfigFileUri().then(uri => open(this.openerService, new URI(uri))) + }); } protected async verify() { @@ -372,18 +377,18 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut } try { - const { boardsConfig } = this.boardsServiceClient; + const { boardsConfig } = this.boardsServiceClientImpl; if (!boardsConfig || !boardsConfig.selectedBoard) { throw new Error('No boards selected. Please select a board.'); } if (!boardsConfig.selectedBoard.fqbn) { - throw new Error(`No core is installed for ${boardsConfig.selectedBoard.name}. Please install the board.`); + throw new Error(`No core is installed for the '${boardsConfig.selectedBoard.name}' board. Please install the core.`); } - // Reveal the Output view asynchronously (don't await it) + const fqbn = await this.boardsConfigStore.appendConfigToFqbn(boardsConfig.selectedBoard.fqbn); this.outputContribution.openView({ reveal: true }); await this.coreService.compile({ - uri: uri.toString(), - board: boardsConfig.selectedBoard, + sketchUri: uri.toString(), + fqbn, optimizeForDebug: this.editorMode.compileForDebug }); } catch (e) { @@ -408,7 +413,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut } try { - const { boardsConfig } = this.boardsServiceClient; + const { boardsConfig } = this.boardsServiceClientImpl; if (!boardsConfig || !boardsConfig.selectedBoard) { throw new Error('No boards selected. Please select a board.'); } @@ -416,11 +421,14 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut if (!selectedPort) { throw new Error('No ports selected. Please select a port.'); } - // Reveal the Output view asynchronously (don't await it) + if (!boardsConfig.selectedBoard.fqbn) { + throw new Error(`No core is installed for the '${boardsConfig.selectedBoard.name}' board. Please install the core.`); + } this.outputContribution.openView({ reveal: true }); + const fqbn = await this.boardsConfigStore.appendConfigToFqbn(boardsConfig.selectedBoard.fqbn); await this.coreService.upload({ - uri: uri.toString(), - board: boardsConfig.selectedBoard, + sketchUri: uri.toString(), + fqbn, port: selectedPort.address, optimizeForDebug: this.editorMode.compileForDebug }); @@ -495,6 +503,10 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut registry.registerMenuAction([...CommonMenus.FILE, '0_new_sketch'], { commandId: ArduinoCommands.NEW_SKETCH.id }); + + registry.registerMenuAction([...CommonMenus.FILE_SETTINGS_SUBMENU, '3_settings_cli'], { + commandId: ArduinoCommands.OPEN_CLI_CONFIG.id + }); } protected getMenuId(menuPath: string[]): string { diff --git a/arduino-ide-extension/src/browser/arduino-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts similarity index 72% rename from arduino-ide-extension/src/browser/arduino-frontend-module.ts rename to arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts index a6b2dc72..d444d55d 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -15,11 +15,9 @@ import { ArduinoLanguageGrammarContribution } from './language/arduino-language- import { LibraryService, LibraryServicePath } from '../common/protocol/library-service'; import { BoardsService, BoardsServicePath, BoardsServiceClient } from '../common/protocol/boards-service'; import { SketchesService, SketchesServicePath } from '../common/protocol/sketches-service'; -import { CoreService, CoreServicePath } from '../common/protocol/core-service'; +import { CoreService, CoreServicePath, CoreServiceClient } from '../common/protocol/core-service'; import { BoardsListWidget } from './boards/boards-list-widget'; import { BoardsListWidgetFrontendContribution } from './boards/boards-widget-frontend-contribution'; -import { WorkspaceServiceExt, WorkspaceServiceExtPath } from './workspace-service-ext'; -import { WorkspaceServiceExtImpl } from './workspace-service-ext-impl'; import { ToolOutputServiceClient } from '../common/protocol/tool-output-service'; import { ToolOutputService } from '../common/protocol/tool-output-service'; import { ToolOutputServiceClientImpl } from './tool-output/client-service-impl'; @@ -52,13 +50,11 @@ import { ArduinoSearchInWorkspaceContribution } from './customization/arduino-se import { LibraryListWidgetFrontendContribution } from './library/library-widget-frontend-contribution'; import { MonitorServiceClientImpl } from './monitor/monitor-service-client-impl'; import { MonitorServicePath, MonitorService, MonitorServiceClient } from '../common/protocol/monitor-service'; -import { ConfigService, ConfigServicePath } from '../common/protocol/config-service'; +import { ConfigService, ConfigServicePath, ConfigServiceClient } from '../common/protocol/config-service'; import { MonitorWidget } from './monitor/monitor-widget'; import { MonitorViewContribution } from './monitor/monitor-view-contribution'; import { MonitorConnection } from './monitor/monitor-connection'; import { MonitorModel } from './monitor/monitor-model'; -import { MonacoEditorProvider } from '@theia/monaco/lib/browser/monaco-editor-provider'; -import { ArduinoMonacoEditorProvider } from './editor/arduino-monaco-editor-provider'; import { TabBarDecoratorService } from '@theia/core/lib/browser/shell/tab-bar-decorator'; import { ArduinoTabBarDecoratorService } from './shell/arduino-tab-bar-decorator'; import { ProblemManager } from '@theia/markers/lib/browser'; @@ -71,6 +67,17 @@ import { EditorMode } from './editor-mode'; import { ListItemRenderer } from './components/component-list/list-item-renderer'; import { ColorContribution } from '@theia/core/lib/browser/color-application-contribution'; import { MonacoThemingService } from '@theia/monaco/lib/browser/monaco-theming-service'; +import { ArduinoDaemonClientImpl } from './arduino-daemon-client-impl'; +import { ArduinoDaemonClient, ArduinoDaemonPath, ArduinoDaemon } from '../common/protocol/arduino-daemon'; +import { EditorManager } from '@theia/editor/lib/browser'; +import { ArduinoEditorManager } from './editor/arduino-editor-manager'; +import { ArduinoFrontendConnectionStatusService, ArduinoApplicationConnectionStatusContribution } from './customization/arduino-connection-status-service'; +import { FrontendConnectionStatusService, ApplicationConnectionStatusContribution } from '@theia/core/lib/browser/connection-status-service'; +import { ConfigServiceClientImpl } from './config-service-client-impl'; +import { CoreServiceClientImpl } from './core-service-client-impl'; +import { BoardsDetailsMenuUpdater } from './boards/boards-details-menu-updater'; +import { BoardsConfigStore } from './boards/boards-config-store'; +import { ILogger } from '@theia/core'; const ElementQueries = require('css-element-queries/src/ElementQueries'); @@ -119,7 +126,17 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un bind(SketchesService).toDynamicValue(context => WebSocketConnectionProvider.createProxy(context.container, SketchesServicePath)).inSingletonScope(); // Config service - bind(ConfigService).toDynamicValue(context => WebSocketConnectionProvider.createProxy(context.container, ConfigServicePath)).inSingletonScope(); + bind(ConfigService).toDynamicValue(context => { + const connection = context.container.get(WebSocketConnectionProvider); + const client = context.container.get(ConfigServiceClientImpl); + return connection.createProxy(ConfigServicePath, client); + }).inSingletonScope(); + bind(ConfigServiceClientImpl).toSelf().inSingletonScope(); + bind(ConfigServiceClient).toDynamicValue(context => { + const client = context.container.get(ConfigServiceClientImpl); + WebSocketConnectionProvider.createProxy(context.container, ConfigServicePath, client); + return client; + }).inSingletonScope(); // Boards service bind(BoardsService).toDynamicValue(context => { @@ -130,13 +147,29 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un // Boards service client to receive and delegate notifications from the backend. bind(BoardsServiceClientImpl).toSelf().inSingletonScope(); bind(FrontendApplicationContribution).toService(BoardsServiceClientImpl); - bind(BoardsServiceClient).toDynamicValue(context => { + bind(BoardsServiceClient).toDynamicValue(async context => { const client = context.container.get(BoardsServiceClientImpl); + const service = context.container.get(BoardsService); + const [attachedBoards, availablePorts] = await Promise.all([ + service.getAttachedBoards(), + service.getAvailablePorts() + ]); + client.init({ attachedBoards, availablePorts }); WebSocketConnectionProvider.createProxy(context.container, BoardsServicePath, client); return client; }).inSingletonScope(); - // boards auto-installer + // To be able to track, and update the menu based on the core settings (aka. board details) of the currently selected board. + bind(FrontendApplicationContribution).to(BoardsDetailsMenuUpdater).inSingletonScope(); + bind(BoardsConfigStore).toSelf().inSingletonScope(); + bind(FrontendApplicationContribution).toService(BoardsConfigStore); + // Logger for the Arduino daemon + bind(ILogger).toDynamicValue(ctx => { + const parentLogger = ctx.container.get(ILogger); + return parentLogger.child('store'); + }).inSingletonScope().whenTargetNamed('store'); + + // Boards auto-installer bind(BoardsAutoInstaller).toSelf().inSingletonScope(); bind(FrontendApplicationContribution).toService(BoardsAutoInstaller); @@ -157,9 +190,18 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un }) // Core service - bind(CoreService) - .toDynamicValue(context => WebSocketConnectionProvider.createProxy(context.container, CoreServicePath)) - .inSingletonScope(); + bind(CoreService).toDynamicValue(context => { + const connection = context.container.get(WebSocketConnectionProvider); + const client = context.container.get(CoreServiceClientImpl); + return connection.createProxy(CoreServicePath, client); + }).inSingletonScope(); + // Core service client to receive and delegate notifications when the index or the library index has been updated. + bind(CoreServiceClientImpl).toSelf().inSingletonScope(); + bind(CoreServiceClient).toDynamicValue(context => { + const client = context.container.get(CoreServiceClientImpl); + WebSocketConnectionProvider.createProxy(context.container, CoreServicePath, client); + return client; + }).inSingletonScope(); // Tool output service client bind(ToolOutputServiceClientImpl).toSelf().inSingletonScope(); @@ -169,18 +211,7 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un return client; }).inSingletonScope(); - // The workspace service extension - bind(WorkspaceServiceExt).to(WorkspaceServiceExtImpl).inSingletonScope().onActivation(({ container }, workspaceServiceExt: WorkspaceServiceExt) => { - WebSocketConnectionProvider.createProxy(container, WorkspaceServiceExtPath, workspaceServiceExt); - // Eagerly active the core, library, and boards services. - container.get(CoreService); - container.get(LibraryService); - container.get(BoardsService); - container.get(SketchesService); - return workspaceServiceExt; - }); - - // Serial Monitor + // Serial monitor bind(MonitorModel).toSelf().inSingletonScope(); bind(FrontendApplicationContribution).toService(MonitorModel); bind(MonitorWidget).toSelf(); @@ -190,14 +221,14 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un id: MonitorWidget.ID, createWidget: () => context.container.get(MonitorWidget) })); - // Frontend binding for the monitor service + // Frontend binding for the serial monitor service bind(MonitorService).toDynamicValue(context => { const connection = context.container.get(WebSocketConnectionProvider); const client = context.container.get(MonitorServiceClientImpl); return connection.createProxy(MonitorServicePath, client); }).inSingletonScope(); bind(MonitorConnection).toSelf().inSingletonScope(); - // Monitor service client to receive and delegate notifications from the backend. + // Serial monitor service client to receive and delegate notifications from the backend. bind(MonitorServiceClientImpl).toSelf().inSingletonScope(); bind(MonitorServiceClient).toDynamicValue(context => { const client = context.container.get(MonitorServiceClientImpl); @@ -211,6 +242,8 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un // Customizing default Theia layout based on the editor mode: `pro-mode` or `classic`. bind(EditorMode).toSelf().inSingletonScope(); bind(FrontendApplicationContribution).toService(EditorMode); + + // Layout and shell customizations. rebind(OutlineViewContribution).to(ArduinoOutlineViewContribution).inSingletonScope(); rebind(ProblemContribution).to(ArduinoProblemContribution).inSingletonScope(); rebind(FileNavigatorContribution).to(ArduinoNavigatorContribution).inSingletonScope(); @@ -222,9 +255,15 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un rebind(SearchInWorkspaceFrontendContribution).to(ArduinoSearchInWorkspaceContribution).inSingletonScope(); rebind(FrontendApplication).to(ArduinoFrontendApplication).inSingletonScope(); - // Monaco customizations - bind(ArduinoMonacoEditorProvider).toSelf().inSingletonScope(); - rebind(MonacoEditorProvider).toService(ArduinoMonacoEditorProvider); + // Show a disconnected status bar, when the daemon is not available + bind(ArduinoApplicationConnectionStatusContribution).toSelf().inSingletonScope(); + rebind(ApplicationConnectionStatusContribution).toService(ArduinoApplicationConnectionStatusContribution); + bind(ArduinoFrontendConnectionStatusService).toSelf().inSingletonScope(); + rebind(FrontendConnectionStatusService).toService(ArduinoFrontendConnectionStatusService); + + // Editor customizations. Sets the editor to `readOnly` if under the data dir. + bind(ArduinoEditorManager).toSelf().inSingletonScope(); + rebind(EditorManager).toService(ArduinoEditorManager); // Decorator customizations bind(ArduinoTabBarDecoratorService).toSelf().inSingletonScope(); @@ -241,4 +280,17 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un // Customized layout restorer that can restore the state in async way: https://github.com/eclipse-theia/theia/issues/6579 bind(ArduinoShellLayoutRestorer).toSelf().inSingletonScope(); rebind(ShellLayoutRestorer).toService(ArduinoShellLayoutRestorer); + + // Arduino daemon client. Receives notifications from the backend if the CLI daemon process has been restarted. + bind(ArduinoDaemon).toDynamicValue(context => { + const connection = context.container.get(WebSocketConnectionProvider); + const client = context.container.get(ArduinoDaemonClientImpl); + return connection.createProxy(ArduinoDaemonPath, client); + }).inSingletonScope(); + bind(ArduinoDaemonClientImpl).toSelf().inSingletonScope(); + bind(ArduinoDaemonClient).toDynamicValue(context => { + const client = context.container.get(ArduinoDaemonClientImpl); + WebSocketConnectionProvider.createProxy(context.container, ArduinoDaemonPath, client); + return client; + }).inSingletonScope(); }); diff --git a/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts b/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts index 8581b6f3..cb0c340d 100644 --- a/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts +++ b/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts @@ -35,9 +35,9 @@ export class BoardsAutoInstaller implements FrontendApplicationContribution { protected ensureCoreExists(config: BoardsConfig.Config): void { const { selectedBoard } = config; if (selectedBoard) { - this.boardsService.search({}).then(({ items }) => { - const candidates = items - .filter(item => item.boards.some(board => Board.sameAs(board, selectedBoard))) + this.boardsService.search({}).then(packages => { + const candidates = packages + .filter(pkg => pkg.boards.some(board => Board.sameAs(board, selectedBoard))) .filter(({ installable, installedVersion }) => installable && !installedVersion); for (const candidate of candidates) { // tslint:disable-next-line:max-line-length diff --git a/arduino-ide-extension/src/browser/boards/boards-config-dialog-widget.tsx b/arduino-ide-extension/src/browser/boards/boards-config-dialog-widget.tsx index 70ff3133..b08157b3 100644 --- a/arduino-ide-extension/src/browser/boards/boards-config-dialog-widget.tsx +++ b/arduino-ide-extension/src/browser/boards/boards-config-dialog-widget.tsx @@ -5,6 +5,8 @@ import { ReactWidget, Message } from '@theia/core/lib/browser'; import { BoardsService } from '../../common/protocol/boards-service'; import { BoardsConfig } from './boards-config'; import { BoardsServiceClientImpl } from './boards-service-client-impl'; +import { CoreServiceClientImpl } from '../core-service-client-impl'; +import { ArduinoDaemonClientImpl } from '../arduino-daemon-client-impl'; @injectable() export class BoardsConfigDialogWidget extends ReactWidget { @@ -15,6 +17,12 @@ export class BoardsConfigDialogWidget extends ReactWidget { @inject(BoardsServiceClientImpl) protected readonly boardsServiceClient: BoardsServiceClientImpl; + @inject(CoreServiceClientImpl) + protected readonly coreServiceClient: CoreServiceClientImpl; + + @inject(ArduinoDaemonClientImpl) + protected readonly daemonClient: ArduinoDaemonClientImpl; + protected readonly onBoardConfigChangedEmitter = new Emitter(); readonly onBoardConfigChanged = this.onBoardConfigChangedEmitter.event; @@ -38,6 +46,8 @@ export class BoardsConfigDialogWidget extends ReactWidget { ; @@ -51,5 +61,4 @@ export class BoardsConfigDialogWidget extends ReactWidget { (this.focusNode || this.node).focus(); } - } diff --git a/arduino-ide-extension/src/browser/boards/boards-config-store.ts b/arduino-ide-extension/src/browser/boards/boards-config-store.ts new file mode 100644 index 00000000..8967174c --- /dev/null +++ b/arduino-ide-extension/src/browser/boards/boards-config-store.ts @@ -0,0 +1,161 @@ +import { injectable, inject, named } from 'inversify'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { MaybePromise } from '@theia/core/lib/common/types'; +import { Event, Emitter } from '@theia/core/lib/common/event'; +import { deepClone, notEmpty } from '@theia/core/lib/common/objects'; +import { FrontendApplicationContribution, LocalStorageService } from '@theia/core/lib/browser'; +import { BoardsService, ConfigOption, Installable, BoardDetails } from '../../common/protocol'; +import { BoardsServiceClientImpl } from './boards-service-client-impl'; + +@injectable() +export class BoardsConfigStore implements FrontendApplicationContribution { + + @inject(ILogger) + @named('store') + protected readonly logger: ILogger; + + @inject(BoardsService) + protected readonly boardsService: BoardsService; + + @inject(BoardsServiceClientImpl) + protected readonly boardsServiceClient: BoardsServiceClientImpl; + + @inject(LocalStorageService) + protected readonly storageService: LocalStorageService; + + protected readonly onChangedEmitter = new Emitter(); + + onStart(): void { + this.boardsServiceClient.onBoardsPackageInstalled(async ({ pkg }) => { + const { installedVersion: version } = pkg; + if (!version) { + return; + } + let shouldFireChanged = false; + for (const fqbn of pkg.boards.map(({ fqbn }) => fqbn).filter(notEmpty).filter(fqbn => !!fqbn)) { + const key = this.getStorageKey(fqbn, version); + let data = await this.storageService.getData(key); + if (!data || !data.length) { + const details = await this.getBoardDetailsSafe(fqbn); + if (details) { + data = details.configOptions; + if (data.length) { + await this.storageService.setData(key, data); + shouldFireChanged = true; + } + } + } + } + if (shouldFireChanged) { + this.fireChanged(); + } + }); + } + + get onChanged(): Event { + return this.onChangedEmitter.event; + } + + async appendConfigToFqbn( + fqbn: string, + boardsPackageVersion: MaybePromise = this.getBoardsPackageVersion(fqbn)): Promise { + + const configOptions = await this.getConfig(fqbn, boardsPackageVersion); + return ConfigOption.decorate(fqbn, configOptions); + } + + async getConfig( + fqbn: string, + boardsPackageVersion: MaybePromise = this.getBoardsPackageVersion(fqbn)): Promise { + + const version = await boardsPackageVersion; + if (!version) { + return []; + } + const key = this.getStorageKey(fqbn, version); + let configOptions = await this.storageService.getData(key, undefined); + if (configOptions) { + return configOptions; + } + + const details = await this.getBoardDetailsSafe(fqbn); + if (!details) { + return []; + } + + configOptions = details.configOptions; + await this.storageService.setData(key, configOptions); + return configOptions; + } + + async setSelected( + { fqbn, option, selectedValue }: { fqbn: string, option: string, selectedValue: string }, + boardsPackageVersion: MaybePromise = this.getBoardsPackageVersion(fqbn)): Promise { + + const configOptions = deepClone(await this.getConfig(fqbn, boardsPackageVersion)); + const configOption = configOptions.find(c => c.option === option); + if (!configOption) { + return false; + } + let updated = false; + for (const value of configOption.values) { + if (value.value === selectedValue) { + (value as any).selected = true; + updated = true; + } else { + (value as any).selected = false; + } + } + if (!updated) { + return false; + } + const version = await boardsPackageVersion; + if (!version) { + return false; + } + await this.setConfig({ fqbn, configOptions, version }); + this.fireChanged(); + return true; + } + + protected async setConfig( + { fqbn, configOptions, version }: { fqbn: string, configOptions: ConfigOption[], version: Installable.Version }): Promise { + + const key = this.getStorageKey(fqbn, version); + return this.storageService.setData(key, configOptions); + } + + protected getStorageKey(fqbn: string, version: Installable.Version): string { + return `.arduinoProIDE-configOptions-${version}-${fqbn}`; + } + + protected async getBoardDetailsSafe(fqbn: string): Promise { + try { + const details = this.boardsService.getBoardDetails({ fqbn }); + return details; + } catch (err) { + if (err instanceof Error && err.message.includes('loading board data') && err.message.includes('is not installed')) { + this.logger.warn(`The boards package is not installed for board with FQBN: ${fqbn}`); + } else { + this.logger.error(`An unexpected error occurred while retrieving the board details for ${fqbn}.`, err); + } + return undefined; + } + } + + protected fireChanged(): void { + this.onChangedEmitter.fire(); + } + + protected async getBoardsPackageVersion(fqbn: string): Promise { + if (!fqbn) { + return undefined; + } + const boardsPackage = await this.boardsService.getContainerBoardPackage({ fqbn }); + if (!boardsPackage) { + return undefined; + } + return boardsPackage.installedVersion; + } + +} diff --git a/arduino-ide-extension/src/browser/boards/boards-config.tsx b/arduino-ide-extension/src/browser/boards/boards-config.tsx index ec5e375a..59a380a9 100644 --- a/arduino-ide-extension/src/browser/boards/boards-config.tsx +++ b/arduino-ide-extension/src/browser/boards/boards-config.tsx @@ -1,7 +1,9 @@ import * as React from 'react'; import { DisposableCollection } from '@theia/core'; -import { BoardsService, Board, Port, AttachedSerialBoard, AttachedBoardsChangeEvent } from '../../common/protocol/boards-service'; +import { BoardsService, Board, Port, AttachedBoardsChangeEvent } from '../../common/protocol/boards-service'; import { BoardsServiceClientImpl } from './boards-service-client-impl'; +import { CoreServiceClientImpl } from '../core-service-client-impl'; +import { ArduinoDaemonClientImpl } from '../arduino-daemon-client-impl'; export namespace BoardsConfig { @@ -13,6 +15,8 @@ export namespace BoardsConfig { export interface Props { readonly boardsService: BoardsService; readonly boardsServiceClient: BoardsServiceClientImpl; + readonly coreServiceClient: CoreServiceClientImpl; + readonly daemonClient: ArduinoDaemonClientImpl; readonly onConfigChange: (config: Config) => void; readonly onFocusNodeSet: (element: HTMLElement | undefined) => void; } @@ -21,6 +25,7 @@ export namespace BoardsConfig { searchResults: Array; knownPorts: Port[]; showAllPorts: boolean; + query: string; } } @@ -31,11 +36,11 @@ export abstract class Item extends React.Component<{ selected: boolean, onClick: (item: T) => void, missing?: boolean, - detail?: string + details?: string }> { render(): React.ReactNode { - const { selected, label, missing, detail } = this.props; + const { selected, label, missing, details } = this.props; const classNames = ['item']; if (selected) { classNames.push('selected'); @@ -43,11 +48,11 @@ export abstract class Item extends React.Component<{ if (missing === true) { classNames.push('missing') } - return
+ return
{label}
- {!detail ? '' :
{detail}
} + {!details ? '' :
{details}
} {!selected ? '' :
}
; } @@ -70,19 +75,25 @@ export class BoardsConfig extends React.Component this.updatePorts(ports)); - const { boardsServiceClient: client } = this.props; + this.props.boardsService.getAvailablePorts().then(ports => this.updatePorts(ports)); + const { boardsServiceClient, coreServiceClient, daemonClient } = this.props; this.toDispose.pushAll([ - client.onBoardsChanged(event => this.updatePorts(event.newState.ports, AttachedBoardsChangeEvent.diff(event).detached.ports)), - client.onBoardsConfigChanged(({ selectedBoard, selectedPort }) => { + boardsServiceClient.onAttachedBoardsChanged(event => this.updatePorts(event.newState.ports, AttachedBoardsChangeEvent.diff(event).detached.ports)), + boardsServiceClient.onBoardsConfigChanged(({ selectedBoard, selectedPort }) => { this.setState({ selectedBoard, selectedPort }, () => this.fireConfigChanged()); - }) + }), + boardsServiceClient.onBoardsPackageInstalled(() => this.updateBoards(this.state.query)), + boardsServiceClient.onBoardsPackageUninstalled(() => this.updateBoards(this.state.query)), + coreServiceClient.onIndexUpdated(() => this.updateBoards(this.state.query)), + daemonClient.onDaemonStarted(() => this.updateBoards(this.state.query)), + daemonClient.onDaemonStopped(() => this.setState({ searchResults: [] })) ]); } @@ -100,11 +111,12 @@ export class BoardsConfig extends React.Component this.setState({ searchResults })); + this.setState({ query }); + this.queryBoards({ query }).then(searchResults => this.setState({ searchResults })); } protected updatePorts = (ports: Port[] = [], removedPorts: Port[] = []) => { - this.queryPorts(Promise.resolve({ ports })).then(({ knownPorts }) => { + this.queryPorts(Promise.resolve(ports)).then(({ knownPorts }) => { let { selectedPort } = this.state; // If the currently selected port is not available anymore, unset the selected port. if (removedPorts.some(port => Port.equals(port, selectedPort))) { @@ -114,35 +126,17 @@ export class BoardsConfig extends React.Component }> => { - const { boardsService } = this.props; - const query = (options.query || '').toLocaleLowerCase(); - return new Promise<{ searchResults: Array }>(resolve => { - boardsService.search(options) - .then(({ items }) => items - .map(item => item.boards.map(board => ({ ...board, packageName: item.name }))) - .reduce((acc, curr) => acc.concat(curr), []) - .filter(board => board.name.toLocaleLowerCase().indexOf(query) !== -1) - .sort(Board.compare)) - .then(searchResults => resolve({ searchResults })); - }); + protected queryBoards = (options: { query?: string } = {}): Promise> => { + return this.props.boardsService.searchBoards(options); } - protected get attachedBoards(): Promise<{ boards: Board[] }> { - return this.props.boardsService.getAttachedBoards(); - } - - protected get availablePorts(): Promise<{ ports: Port[] }> { + protected get availablePorts(): Promise { return this.props.boardsService.getAvailablePorts(); } - protected queryPorts = (availablePorts: Promise<{ ports: Port[] }> = this.availablePorts) => { - return new Promise<{ knownPorts: Port[] }>(resolve => { - availablePorts - .then(({ ports }) => ports - .sort(Port.compare)) - .then(knownPorts => resolve({ knownPorts })); - }); + protected queryPorts = async (availablePorts: Promise = this.availablePorts) => { + const ports = await availablePorts; + return { knownPorts: ports.sort(Port.compare) }; } protected toggleFilterPorts = () => { @@ -184,41 +178,20 @@ export class BoardsConfig extends React.Component(); - for (const { name } of searchResults) { - const counter = distinctBoardNames.get(name) || 0; - distinctBoardNames.set(name, counter + 1); - } - - // Due to the non-unique board names, we have to check the package name as well. - const selected = (board: Board & { packageName: string }) => { - if (!!selectedBoard) { - if (Board.equals(board, selectedBoard)) { - if ('packageName' in selectedBoard) { - return board.packageName === (selectedBoard as any).packageName; - } - return true; - } - } - return false; - } - return
- {this.state.searchResults.map(board => + {Board.decorateBoards(selectedBoard, searchResults).map(board => key={`${board.name}-${board.packageName}`} item={board} label={board.name} - detail={(distinctBoardNames.get(board.name) || 0) > 1 ? ` - ${board.packageName}` : undefined} - selected={selected(board)} + details={board.details} + selected={board.selected} onClick={this.selectBoard} - missing={!Board.installed(board)} + missing={board.missing} />)}
; @@ -266,9 +239,9 @@ export namespace BoardsConfig { export namespace Config { - export function sameAs(config: Config, other: Config | AttachedSerialBoard): boolean { + export function sameAs(config: Config, other: Config | Board): boolean { const { selectedBoard, selectedPort } = config; - if (AttachedSerialBoard.is(other)) { + if (Board.is(other)) { return !!selectedBoard && Board.equals(other, selectedBoard) && Port.sameAs(selectedPort, other.port); diff --git a/arduino-ide-extension/src/browser/boards/boards-details-menu-updater.ts b/arduino-ide-extension/src/browser/boards/boards-details-menu-updater.ts new file mode 100644 index 00000000..c9df896c --- /dev/null +++ b/arduino-ide-extension/src/browser/boards/boards-details-menu-updater.ts @@ -0,0 +1,91 @@ +import { inject, injectable } from 'inversify'; +import { CommandRegistry } from '@theia/core/lib/common/command'; +import { MenuModelRegistry, MenuNode } from '@theia/core/lib/common/menu'; +import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable'; +import { BoardsServiceClientImpl } from './boards-service-client-impl'; +import { Board, ConfigOption } from '../../common/protocol'; +import { FrontendApplicationContribution } from '@theia/core/lib/browser'; +import { ArduinoMenus } from '../arduino-frontend-contribution'; +import { BoardsConfigStore } from './boards-config-store'; +import { MainMenuManager } from '../menu/main-menu-manager'; + +@injectable() +export class BoardsDetailsMenuUpdater implements FrontendApplicationContribution { + + @inject(CommandRegistry) + protected readonly commandRegistry: CommandRegistry; + + @inject(MenuModelRegistry) + protected readonly menuRegistry: MenuModelRegistry; + + @inject(MainMenuManager) + protected readonly mainMenuManager: MainMenuManager; + + @inject(BoardsConfigStore) + protected readonly boardsConfigStore: BoardsConfigStore; + + @inject(BoardsServiceClientImpl) + protected readonly boardsServiceClient: BoardsServiceClientImpl; + + protected readonly toDisposeOnBoardChange = new DisposableCollection(); + + onStart(): void { + this.boardsConfigStore.onChanged(() => this.updateMenuActions(this.boardsServiceClient.boardsConfig.selectedBoard)); + this.boardsServiceClient.onBoardsConfigChanged(({ selectedBoard }) => this.updateMenuActions(selectedBoard)); + this.updateMenuActions(this.boardsServiceClient.boardsConfig.selectedBoard); + } + + protected async updateMenuActions(selectedBoard: Board | undefined): Promise { + if (selectedBoard) { + this.toDisposeOnBoardChange.dispose(); + this.mainMenuManager.update(); + const { fqbn } = selectedBoard; + if (fqbn) { + const configOptions = await this.boardsConfigStore.getConfig(fqbn); + const boardsConfigMenuPath = [...ArduinoMenus.TOOLS, 'z_boardsConfig']; // `z_` is for ordering. + for (const { label, option, values } of configOptions.sort(ConfigOption.LABEL_COMPARATOR)) { + const menuPath = [...boardsConfigMenuPath, `${option}`]; + const commands = new Map() + for (const value of values) { + const id = `${fqbn}-${option}--${value.value}`; + const command = { id }; + const selectedValue = value.value; + const handler = { + execute: () => this.boardsConfigStore.setSelected({ fqbn, option, selectedValue }), + isToggled: () => value.selected + }; + commands.set(id, Object.assign(this.commandRegistry.registerCommand(command, handler), { label: value.label })); + } + this.menuRegistry.registerSubmenu(menuPath, label); + this.toDisposeOnBoardChange.pushAll([ + ...commands.values(), + Disposable.create(() => this.unregisterSubmenu(menuPath)), // We cannot dispose submenu entries: https://github.com/eclipse-theia/theia/issues/7299 + ...Array.from(commands.keys()).map((commandId, index) => { + const { label } = commands.get(commandId)!; + this.menuRegistry.registerMenuAction(menuPath, { commandId, order: String(index), label }); + return Disposable.create(() => this.menuRegistry.unregisterMenuAction(commandId)); + }) + ]); + } + this.mainMenuManager.update(); + } + } + } + + protected unregisterSubmenu(menuPath: string[]): void { + if (menuPath.length < 2) { + throw new Error(`Expected at least two item as a menu-path. Got ${JSON.stringify(menuPath)} instead.`); + } + const toRemove = menuPath[menuPath.length - 1]; + const parentMenuPath = menuPath.slice(0, menuPath.length - 1); + // This is unsafe. Calling `getMenu` with a non-existing menu-path will result in a new menu creation. + // https://github.com/eclipse-theia/theia/issues/7300 + const parent = this.menuRegistry.getMenu(parentMenuPath); + const index = parent.children.findIndex(({ id }) => id === toRemove); + if (index === -1) { + throw new Error(`Could not find menu with menu-path: ${JSON.stringify(menuPath)}.`); + } + (parent.children as Array).splice(index, 1); + } + +} diff --git a/arduino-ide-extension/src/browser/boards/boards-list-widget.ts b/arduino-ide-extension/src/browser/boards/boards-list-widget.ts index 0caf24b0..54947d62 100644 --- a/arduino-ide-extension/src/browser/boards/boards-list-widget.ts +++ b/arduino-ide-extension/src/browser/boards/boards-list-widget.ts @@ -1,17 +1,17 @@ import { inject, injectable } from 'inversify'; -import { BoardPackage, BoardsService } from '../../common/protocol/boards-service'; +import { BoardsPackage, BoardsService } from '../../common/protocol/boards-service'; import { ListWidget } from '../components/component-list/list-widget'; import { ListItemRenderer } from '../components/component-list/list-item-renderer'; @injectable() -export class BoardsListWidget extends ListWidget { +export class BoardsListWidget extends ListWidget { static WIDGET_ID = 'boards-list-widget'; static WIDGET_LABEL = 'Boards Manager'; constructor( @inject(BoardsService) protected service: BoardsService, - @inject(ListItemRenderer) protected itemRenderer: ListItemRenderer) { + @inject(ListItemRenderer) protected itemRenderer: ListItemRenderer) { super({ id: BoardsListWidget.WIDGET_ID, @@ -19,7 +19,7 @@ export class BoardsListWidget extends ListWidget { iconClass: 'fa fa-microchip', searchable: service, installable: service, - itemLabel: (item: BoardPackage) => item.name, + itemLabel: (item: BoardsPackage) => item.name, itemRenderer }); } diff --git a/arduino-ide-extension/src/browser/boards/boards-service-client-impl.ts b/arduino-ide-extension/src/browser/boards/boards-service-client-impl.ts index 60309f9c..aa18b5ea 100644 --- a/arduino-ide-extension/src/browser/boards/boards-service-client-impl.ts +++ b/arduino-ide-extension/src/browser/boards/boards-service-client-impl.ts @@ -1,12 +1,13 @@ -import { injectable, inject } from 'inversify'; +import { injectable, inject, optional } from 'inversify'; import { Emitter } from '@theia/core/lib/common/event'; import { ILogger } from '@theia/core/lib/common/logger'; import { MessageService } from '@theia/core/lib/common/message-service'; -import { LocalStorageService } from '@theia/core/lib/browser/storage-service'; +import { StorageService } from '@theia/core/lib/browser/storage-service'; import { FrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application'; import { RecursiveRequired } from '../../common/types'; -import { BoardsServiceClient, AttachedBoardsChangeEvent, BoardInstalledEvent, AttachedSerialBoard, Board, Port, BoardUninstalledEvent } from '../../common/protocol/boards-service'; +import { BoardsServiceClient, AttachedBoardsChangeEvent, BoardInstalledEvent, Board, Port, BoardUninstalledEvent } from '../../common/protocol'; import { BoardsConfig } from './boards-config'; +import { naturalCompare } from '../../common/utils'; @injectable() export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApplicationContribution { @@ -14,16 +15,18 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp @inject(ILogger) protected logger: ILogger; + @optional() @inject(MessageService) protected messageService: MessageService; - @inject(LocalStorageService) - protected storageService: LocalStorageService; + @inject(StorageService) + protected storageService: StorageService; - protected readonly onBoardInstalledEmitter = new Emitter(); - protected readonly onBoardUninstalledEmitter = new Emitter(); + protected readonly onBoardsPackageInstalledEmitter = new Emitter(); + protected readonly onBoardsPackageUninstalledEmitter = new Emitter(); protected readonly onAttachedBoardsChangedEmitter = new Emitter(); - protected readonly onSelectedBoardsConfigChangedEmitter = new Emitter(); + protected readonly onBoardsConfigChangedEmitter = new Emitter(); + protected readonly onAvailableBoardsChangedEmitter = new Emitter(); /** * Used for the auto-reconnecting. Sometimes, the attached board gets disconnected after uploading something to it. @@ -34,35 +37,51 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp */ protected latestValidBoardsConfig: RecursiveRequired | undefined = undefined; protected _boardsConfig: BoardsConfig.Config = {}; + protected _attachedBoards: Board[] = []; // This does not contain the `Unknown` boards. They're visible from the available ports only. + protected _availablePorts: Port[] = []; + protected _availableBoards: AvailableBoard[] = []; - readonly onBoardsChanged = this.onAttachedBoardsChangedEmitter.event; - readonly onBoardInstalled = this.onBoardInstalledEmitter.event; - readonly onBoardUninstalled = this.onBoardUninstalledEmitter.event; - readonly onBoardsConfigChanged = this.onSelectedBoardsConfigChangedEmitter.event; + /** + * Event when the state of the attached/detached boards has changed. For instance, the user have detached a physical board. + */ + readonly onAttachedBoardsChanged = this.onAttachedBoardsChangedEmitter.event; + readonly onBoardsPackageInstalled = this.onBoardsPackageInstalledEmitter.event; + readonly onBoardsPackageUninstalled = this.onBoardsPackageUninstalledEmitter.event; + /** + * Unlike `onAttachedBoardsChanged` this even fires when the user modifies the selected board in the IDE.\ + * This even also fires, when the boards package was not available for the currently selected board, + * and the user installs the board package. Note: installing a board package will set the `fqbn` of the + * currently selected board.\ + * This even also emitted when the board package for the currently selected board was uninstalled. + */ + readonly onBoardsConfigChanged = this.onBoardsConfigChangedEmitter.event; + readonly onAvailableBoardsChanged = this.onAvailableBoardsChangedEmitter.event; async onStart(): Promise { return this.loadState(); } - notifyAttachedBoardsChanged(event: AttachedBoardsChangeEvent): void { - this.logger.info('Attached boards and available ports changed: ', JSON.stringify(event)); - const { detached, attached } = AttachedBoardsChangeEvent.diff(event); - const { selectedPort, selectedBoard } = this.boardsConfig; - this.onAttachedBoardsChangedEmitter.fire(event); - // Dynamically unset the port if is not available anymore. A port can be "detached" when removing a board. - if (detached.ports.some(port => Port.equals(selectedPort, port))) { - this.boardsConfig = { - selectedBoard, - selectedPort: undefined - }; - } - // Try to reconnect. - this.tryReconnect(attached.boards, attached.ports); + /** + * When the FE connects to the BE, the BE stets the known boards and ports.\ + * This is a DI workaround for not being able to inject the service into the client. + */ + init({ attachedBoards, availablePorts }: { attachedBoards: Board[], availablePorts: Port[] }): void { + this._attachedBoards = attachedBoards; + this._availablePorts = availablePorts; + this.reconcileAvailableBoards().then(() => this.tryReconnect()); } - async tryReconnect(attachedBoards: Board[], availablePorts: Port[]): Promise { + notifyAttachedBoardsChanged(event: AttachedBoardsChangeEvent): void { + this.logger.info('Attached boards and available ports changed: ', JSON.stringify(event)); + this._attachedBoards = event.newState.boards; + this.onAttachedBoardsChangedEmitter.fire(event); + this._availablePorts = event.newState.ports; + this.reconcileAvailableBoards().then(() => this.tryReconnect()); + } + + protected async tryReconnect(): Promise { if (this.latestValidBoardsConfig && !this.canUploadTo(this.boardsConfig)) { - for (const board of attachedBoards.filter(AttachedSerialBoard.is)) { + for (const board of this.availableBoards.filter(({ state }) => state !== AvailableBoard.State.incomplete)) { if (this.latestValidBoardsConfig.selectedBoard.fqbn === board.fqbn && this.latestValidBoardsConfig.selectedBoard.name === board.name && Port.sameAs(this.latestValidBoardsConfig.selectedPort, board.port)) { @@ -73,13 +92,13 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp } // If we could not find an exact match, we compare the board FQBN-name pairs and ignore the port, as it might have changed. // See documentation on `latestValidBoardsConfig`. - for (const board of attachedBoards.filter(AttachedSerialBoard.is)) { + for (const board of this.availableBoards.filter(({ state }) => state !== AvailableBoard.State.incomplete)) { if (this.latestValidBoardsConfig.selectedBoard.fqbn === board.fqbn && this.latestValidBoardsConfig.selectedBoard.name === board.name) { this.boardsConfig = { ...this.latestValidBoardsConfig, - selectedPort: availablePorts.find(port => Port.sameAs(port, board.port)) + selectedPort: board.port }; return true; } @@ -90,21 +109,52 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp notifyBoardInstalled(event: BoardInstalledEvent): void { this.logger.info('Board installed: ', JSON.stringify(event)); - this.onBoardInstalledEmitter.fire(event); + this.onBoardsPackageInstalledEmitter.fire(event); + const { selectedBoard } = this.boardsConfig; + const { installedVersion, id } = event.pkg; + if (selectedBoard) { + const installedBoard = event.pkg.boards.find(({ name }) => name === selectedBoard.name); + if (installedBoard && (!selectedBoard.fqbn || selectedBoard.fqbn === installedBoard.fqbn)) { + this.logger.info(`Board package ${id}[${installedVersion}] was installed. Updating the FQBN of the currently selected ${selectedBoard.name} board. [FQBN: ${installedBoard.fqbn}]`); + this.boardsConfig = { + ...this.boardsConfig, + selectedBoard: installedBoard + }; + } + } } notifyBoardUninstalled(event: BoardUninstalledEvent): void { this.logger.info('Board uninstalled: ', JSON.stringify(event)); - this.onBoardUninstalledEmitter.fire(event); + this.onBoardsPackageUninstalledEmitter.fire(event); + const { selectedBoard } = this.boardsConfig; + if (selectedBoard && selectedBoard.fqbn) { + const uninstalledBoard = event.pkg.boards.find(({ name }) => name === selectedBoard.name); + if (uninstalledBoard && uninstalledBoard.fqbn === selectedBoard.fqbn) { + this.logger.info(`Board package ${event.pkg.id} was uninstalled. Discarding the FQBN of the currently selected ${selectedBoard.name} board.`); + const selectedBoardWithoutFqbn = { + name: selectedBoard.name + // No FQBN + }; + this.boardsConfig = { + ...this.boardsConfig, + selectedBoard: selectedBoardWithoutFqbn + }; + } + } } set boardsConfig(config: BoardsConfig.Config) { + this.doSetBoardsConfig(config); + this.saveState().finally(() => this.reconcileAvailableBoards().finally(() => this.onBoardsConfigChangedEmitter.fire(this._boardsConfig))); + } + + protected doSetBoardsConfig(config: BoardsConfig.Config): void { this.logger.info('Board config changed: ', JSON.stringify(config)); this._boardsConfig = config; if (this.canUploadTo(this._boardsConfig)) { this.latestValidBoardsConfig = this._boardsConfig; } - this.saveState().then(() => this.onSelectedBoardsConfigChangedEmitter.fire(this._boardsConfig)); } get boardsConfig(): BoardsConfig.Config { @@ -123,7 +173,7 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp } if (!config.selectedBoard) { - if (!options.silent) { + if (!options.silent && this.messageService) { this.messageService.warn('No boards selected.', { timeout: 3000 }); } return false; @@ -133,7 +183,7 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp } /** - * `true` if the `canVerify` and the `config.selectedPort` is also set with FQBN, hence can upload to board. Otherwise, `false`. + * `true` if `canVerify`, the board has an FQBN and the `config.selectedPort` is also set, hence can upload to board. Otherwise, `false`. */ canUploadTo( config: BoardsConfig.Config | undefined = this.boardsConfig, @@ -145,14 +195,14 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp const { name } = config.selectedBoard; if (!config.selectedPort) { - if (!options.silent) { + if (!options.silent && this.messageService) { this.messageService.warn(`No ports selected for board: '${name}'.`, { timeout: 3000 }); } return false; } if (!config.selectedBoard.fqbn) { - if (!options.silent) { + if (!options.silent && this.messageService) { this.messageService.warn(`The FQBN is not available for the selected board ${name}. Do you have the corresponding core installed?`, { timeout: 3000 }); } return false; @@ -161,8 +211,93 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp return true; } - protected saveState(): Promise { - return this.storageService.setData('latest-valid-boards-config', this.latestValidBoardsConfig); + get availableBoards(): AvailableBoard[] { + return this._availableBoards; + } + + protected async reconcileAvailableBoards(): Promise { + const attachedBoards = this._attachedBoards; + const availablePorts = this._availablePorts; + // Unset the port on the user's config, if it is not available anymore. + if (this.boardsConfig.selectedPort && !availablePorts.some(port => Port.sameAs(port, this.boardsConfig.selectedPort))) { + this.doSetBoardsConfig({ selectedBoard: this.boardsConfig.selectedBoard, selectedPort: undefined }); + this.onBoardsConfigChangedEmitter.fire(this._boardsConfig); + } + const boardsConfig = this.boardsConfig; + const currentAvailableBoards = this._availableBoards; + const availableBoards: AvailableBoard[] = []; + const availableBoardPorts = availablePorts.filter(Port.isBoardPort); + const attachedSerialBoards = attachedBoards.filter(({ port }) => !!port); + + for (const boardPort of availableBoardPorts) { + let state = AvailableBoard.State.incomplete; // Initial pessimism. + let board = attachedSerialBoards.find(({ port }) => Port.sameAs(boardPort, port)); + if (board) { + state = AvailableBoard.State.recognized; + } else { + // If the selected board is not recognized because it is a 3rd party board: https://github.com/arduino/arduino-cli/issues/623 + // We still want to show it without the red X in the boards toolbar: https://github.com/arduino/arduino-pro-ide/issues/198#issuecomment-599355836 + const lastSelectedBoard = await this.getLastSelectedBoardOnPort(boardPort); + if (lastSelectedBoard) { + board = { + ...lastSelectedBoard, + port: boardPort + }; + state = AvailableBoard.State.guessed; + } + } + if (!board) { + availableBoards.push({ name: 'Unknown', port: boardPort, state }); + } else { + const selected = BoardsConfig.Config.sameAs(boardsConfig, board); + availableBoards.push({ ...board, state, selected, port: boardPort }); + } + } + + if (boardsConfig.selectedBoard && !availableBoards.some(({ selected }) => selected)) { + availableBoards.push({ + ...boardsConfig.selectedBoard, + port: boardsConfig.selectedPort, + selected: true, + state: AvailableBoard.State.incomplete + }); + } + + const sortedAvailableBoards = availableBoards.sort(AvailableBoard.compare); + let hasChanged = sortedAvailableBoards.length !== currentAvailableBoards.length; + for (let i = 0; !hasChanged && i < sortedAvailableBoards.length; i++) { + hasChanged = AvailableBoard.compare(sortedAvailableBoards[i], currentAvailableBoards[i]) !== 0; + } + if (hasChanged) { + this._availableBoards = sortedAvailableBoards; + this.onAvailableBoardsChangedEmitter.fire(this._availableBoards); + } + } + + protected async getLastSelectedBoardOnPort(port: Port | string | undefined): Promise { + if (!port) { + return undefined; + } + const key = this.getLastSelectedBoardOnPortKey(port); + return this.storageService.getData(key); + } + + protected async saveState(): Promise { + // We save the port with the selected board name/FQBN, to be able to guess a better board name. + // Required when the attached board belongs to a 3rd party boards package, and neither the name, nor + // the FQBN can be retrieved with a `board list` command. + // https://github.com/arduino/arduino-cli/issues/623 + const { selectedBoard, selectedPort } = this.boardsConfig; + if (selectedBoard && selectedPort) { + const key = this.getLastSelectedBoardOnPortKey(selectedPort); + await this.storageService.setData(key, selectedBoard); + } + await this.storageService.setData('latest-valid-boards-config', this.latestValidBoardsConfig); + } + + protected getLastSelectedBoardOnPortKey(port: Port | string): string { + // TODO: we lose the port's `protocol` info (`serial`, `network`, etc.) here if the `port` is a `string`. + return `last-selected-board-on-port:${typeof port === 'string' ? port : Port.toString(port)}`; } protected async loadState(): Promise { @@ -176,3 +311,74 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp } } + +/** + * Representation of a ready-to-use board, either the user has configured it or was automatically recognized by the CLI. + * An available board was not necessarily recognized by the CLI (e.g.: it is a 3rd party board) or correctly configured but ready for `verify`. + * If it has the selected board and a associated port, it can be used for `upload`. We render an available board for the user + * when it has the `port` set. + */ +export interface AvailableBoard extends Board { + readonly state: AvailableBoard.State; + readonly selected?: boolean; + readonly port?: Port; +} + +export namespace AvailableBoard { + + export enum State { + /** + * Retrieved from the CLI via the `board list` command. + */ + 'recognized', + /** + * Guessed the name/FQBN of the board from the available board ports (3rd party). + */ + 'guessed', + /** + * We do not know anything about this board, probably a 3rd party. The user has not selected a board for this port yet. + */ + 'incomplete' + } + + export function is(board: any): board is AvailableBoard { + return Board.is(board) && 'state' in board; + } + + export function hasPort(board: AvailableBoard): board is AvailableBoard & { port: Port } { + return !!board.port; + } + + export const compare = (left: AvailableBoard, right: AvailableBoard) => { + if (left.selected && !right.selected) { + return -1; + } + if (right.selected && !left.selected) { + return 1; + } + let result = naturalCompare(left.name, right.name); + if (result !== 0) { + return result; + } + if (left.fqbn && right.fqbn) { + result = naturalCompare(left.fqbn, right.fqbn); + if (result !== 0) { + return result; + } + } + if (left.port && right.port) { + result = Port.compare(left.port, right.port); + if (result !== 0) { + return result; + } + } + if (!!left.selected && !right.selected) { + return -1; + } + if (!!right.selected && !left.selected) { + return 1; + } + return left.state - right.state; + } + +} diff --git a/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx b/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx index 7afea70e..5e34e1fb 100644 --- a/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx +++ b/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx @@ -1,10 +1,11 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; -import { CommandRegistry, DisposableCollection } from '@theia/core'; -import { BoardsService, Board, AttachedSerialBoard, Port } from '../../common/protocol/boards-service'; -import { ArduinoCommands } from '../arduino-commands'; -import { BoardsServiceClientImpl } from './boards-service-client-impl'; +import { CommandRegistry } from '@theia/core/lib/common/command'; +import { DisposableCollection } from '@theia/core/lib/common/disposable'; +import { Port } from '../../common/protocol'; import { BoardsConfig } from './boards-config'; +import { ArduinoCommands } from '../arduino-commands'; +import { BoardsServiceClientImpl, AvailableBoard } from './boards-service-client-impl'; export interface BoardsDropDownListCoords { readonly top: number; @@ -16,14 +17,9 @@ export interface BoardsDropDownListCoords { export namespace BoardsDropDown { export interface Props { readonly coords: BoardsDropDownListCoords | 'hidden'; - readonly items: Item[]; + readonly items: Array void, port: Port }>; readonly openBoardsConfig: () => void; } - export interface Item { - readonly label: string; - readonly selected: boolean; - readonly onClick: () => void; - } } export class BoardsDropDown extends React.Component { @@ -51,48 +47,30 @@ export class BoardsDropDown extends React.Component { if (coords === 'hidden') { return ''; } - items.push({ - label: 'Select Other Board & Port', - selected: false, - onClick: () => this.props.openBoardsConfig() - }) return
- {items.map(this.renderItem)} + {this.renderItem({ + label: 'Select Other Board & Port', + onClick: () => this.props.openBoardsConfig() + })} + {items.map(({ name, port, selected, onClick }) => ({ label: `${name} at ${Port.toString(port)}`, selected, onClick })).map(this.renderItem)}
} - protected renderItem(item: BoardsDropDown.Item): React.ReactNode { - const { label, selected, onClick } = item; + protected renderItem({ label, selected, onClick }: { label: string, selected?: boolean, onClick: () => void }): React.ReactNode { return
{label}
- {selected ? : ''} + {selected ? : ''}
} } -export namespace BoardsToolBarItem { - - export interface Props { - readonly boardService: BoardsService; - readonly boardsServiceClient: BoardsServiceClientImpl; - readonly commands: CommandRegistry; - } - - export interface State { - boardsConfig: BoardsConfig.Config; - attachedBoards: Board[]; - availablePorts: Port[]; - coords: BoardsDropDownListCoords | 'hidden'; - } -} - export class BoardsToolBarItem extends React.Component { static TOOLBAR_ID: 'boards-toolbar'; @@ -102,10 +80,9 @@ export class BoardsToolBarItem extends React.Component this.setState({ boardsConfig })), - client.onBoardsChanged(({ newState }) => this.setState({ attachedBoards: newState.boards, availablePorts: newState.ports })) - ]); - Promise.all([ - boardService.getAttachedBoards(), - boardService.getAvailablePorts() - ]).then(([{boards: attachedBoards}, { ports: availablePorts }]) => { - this.setState({ attachedBoards, availablePorts }) - }); + this.props.boardsServiceClient.onAvailableBoardsChanged(availableBoards => this.setState({ availableBoards })); } componentWillUnmount(): void { @@ -146,7 +113,7 @@ export class BoardsToolBarItem extends React.Component availablePorts.some(port => Port.sameAs(port, board.port))) - .filter(board => BoardsConfig.Config.sameAs(boardsConfig, board)).shift(); - - const items = attachedBoards.filter(AttachedSerialBoard.is).map(board => ({ - label: `${board.name} at ${board.port}`, - selected: configuredBoard === board, - onClick: () => { - this.props.boardsServiceClient.boardsConfig = { - selectedBoard: board, - selectedPort: availablePorts.find(port => Port.sameAs(port, board.port)) - } + const decorator = (() => { + const selectedBoard = availableBoards.find(({ selected }) => selected); + if (!selectedBoard || !selectedBoard.port) { + return 'fa fa-times notAttached' } - })); + if (selectedBoard.state === AvailableBoard.State.guessed) { + return 'fa fa-exclamation-triangle guessed' + } + return '' + })(); return
- +
{title}
- +
({ + ...board, + onClick: () => { + if (board.state === AvailableBoard.State.incomplete) { + this.props.boardsServiceClient.boardsConfig = { + selectedPort: board.port + }; + this.openDialog(); + } else { + this.props.boardsServiceClient.boardsConfig = { + selectedBoard: board, + selectedPort: board.port + } + } + } + }))} openBoardsConfig={this.openDialog}>
; @@ -200,3 +178,16 @@ export class BoardsToolBarItem extends React.Component { +export class BoardsListWidgetFrontendContribution extends ListWidgetFrontendContribution { static readonly OPEN_MANAGER = `${BoardsListWidget.WIDGET_ID}:toggle`; diff --git a/arduino-ide-extension/src/browser/boards/quick-open/boards-quick-open-module.ts b/arduino-ide-extension/src/browser/boards/quick-open/boards-quick-open-module.ts new file mode 100644 index 00000000..1d1f6e07 --- /dev/null +++ b/arduino-ide-extension/src/browser/boards/quick-open/boards-quick-open-module.ts @@ -0,0 +1,16 @@ +import { ContainerModule } from 'inversify'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { CommandContribution } from '@theia/core/lib/common/command'; +import { QuickOpenContribution } from '@theia/core/lib/browser/quick-open'; +import { KeybindingContribution } from '@theia/core/lib/browser/keybinding'; +import { BoardsQuickOpenService } from './boards-quick-open-service'; + +export default new ContainerModule(bind => { + bind(BoardsQuickOpenService).toSelf().inSingletonScope(); + bind(CommandContribution).toService(BoardsQuickOpenService); + bind(KeybindingContribution).toService(BoardsQuickOpenService); + bind(QuickOpenContribution).toService(BoardsQuickOpenService); + bind(ILogger).toDynamicValue(({ container }) => container.get(ILogger).child('boards-quick-open')) + .inSingletonScope() + .whenTargetNamed('boards-quick-open'); +}); diff --git a/arduino-ide-extension/src/browser/boards/quick-open/boards-quick-open-service.ts b/arduino-ide-extension/src/browser/boards/quick-open/boards-quick-open-service.ts new file mode 100644 index 00000000..27a21819 --- /dev/null +++ b/arduino-ide-extension/src/browser/boards/quick-open/boards-quick-open-service.ts @@ -0,0 +1,309 @@ +import * as fuzzy from 'fuzzy'; +import { inject, injectable, postConstruct, named } from 'inversify'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { CommandContribution, CommandRegistry, Command } from '@theia/core/lib/common/command'; +import { KeybindingContribution, KeybindingRegistry } from '@theia/core/lib/browser/keybinding'; +import { QuickOpenItem, QuickOpenModel, QuickOpenMode, QuickOpenGroupItem } from '@theia/core/lib/common/quick-open-model'; +import { + QuickOpenService, + QuickOpenHandler, + QuickOpenOptions, + QuickOpenItemOptions, + QuickOpenContribution, + QuickOpenActionProvider, + QuickOpenHandlerRegistry, + QuickOpenGroupItemOptions +} from '@theia/core/lib/browser/quick-open'; +import { naturalCompare } from '../../../common/utils'; +import { BoardsService, Port, Board, ConfigOption, ConfigValue } from '../../../common/protocol'; +import { CoreServiceClientImpl } from '../../core-service-client-impl'; +import { BoardsConfigStore } from '../boards-config-store'; +import { BoardsServiceClientImpl, AvailableBoard } from '../boards-service-client-impl'; + +@injectable() +export class BoardsQuickOpenService implements QuickOpenContribution, QuickOpenModel, QuickOpenHandler, CommandContribution, KeybindingContribution, Command { + + readonly id = 'arduino-boards-quick-open'; + readonly prefix = '|'; + readonly description = 'Configure Available Boards'; + readonly label: 'Configure Available Boards'; + + @inject(ILogger) + @named('boards-quick-open') + protected readonly logger: ILogger; + + @inject(QuickOpenService) + protected readonly quickOpenService: QuickOpenService; + + @inject(BoardsService) + protected readonly boardsService: BoardsService; + + @inject(BoardsServiceClientImpl) + protected readonly boardsServiceClient: BoardsServiceClientImpl; + + @inject(BoardsConfigStore) + protected readonly configStore: BoardsConfigStore; + + @inject(CoreServiceClientImpl) + protected coreServiceClient: CoreServiceClientImpl; + + protected isOpen: boolean = false; + protected currentQuery: string = ''; + // Attached boards plus the user's config. + protected availableBoards: AvailableBoard[] = []; + // Only for the `selected` one from the `availableBoards`. Note: the `port` of the `selected` is optional. + protected boardConfigs: ConfigOption[] = []; + protected allBoards: Board.Detailed[] = [] + protected selectedBoard?: (AvailableBoard & { port: Port }); + + // `init` name is used by the `QuickOpenHandler`. + @postConstruct() + protected postConstruct(): void { + this.coreServiceClient.onIndexUpdated(() => this.update(this.availableBoards)); + this.boardsServiceClient.onAvailableBoardsChanged(availableBoards => this.update(availableBoards)); + this.update(this.boardsServiceClient.availableBoards); + } + + registerCommands(registry: CommandRegistry): void { + registry.registerCommand(this, { execute: () => this.open() }); + } + + registerKeybindings(registry: KeybindingRegistry): void { + registry.registerKeybinding({ command: this.id, keybinding: 'ctrlCmd+k ctrlCmd+b' }); + } + + registerQuickOpenHandlers(registry: QuickOpenHandlerRegistry): void { + registry.registerHandler(this); + } + + getModel(): QuickOpenModel { + return this; + } + + getOptions(): QuickOpenOptions { + let placeholder = ''; + if (!this.selectedBoard) { + placeholder += 'No board selected.'; + } + placeholder += 'Type to filter boards'; + if (this.boardConfigs.length) { + placeholder += ' or use the ↓↑ keys to adjust the board settings...'; + } else { + placeholder += '...'; + } + return { + placeholder, + fuzzyMatchLabel: true, + onClose: () => this.isOpen = false + }; + } + + open(): void { + this.isOpen = true; + this.quickOpenService.open(this, this.getOptions()); + } + + onType( + lookFor: string, + acceptor: (items: QuickOpenItem[], actionProvider?: QuickOpenActionProvider) => void): void { + + this.currentQuery = lookFor; + const fuzzyFilter = this.fuzzyFilter(lookFor); + const availableBoards = this.availableBoards.filter(AvailableBoard.hasPort).filter(({ name }) => fuzzyFilter(name)); + const toAccept: QuickOpenItem[] = []; + + // Show the selected attached in a different group. + if (this.selectedBoard && fuzzyFilter(this.selectedBoard.name)) { + toAccept.push(this.toQuickItem(this.selectedBoard, { groupLabel: 'Selected Board' })); + } + + // Filter the selected from the attached ones. + toAccept.push(...availableBoards.filter(board => board !== this.selectedBoard).map((board, i) => { + let group: QuickOpenGroupItemOptions | undefined = undefined; + if (i === 0) { + // If no `selectedBoard`, then this item is the top one, no borders required. + group = { groupLabel: 'Attached Boards', showBorder: !!this.selectedBoard }; + } + return this.toQuickItem(board, group); + })); + + // Show the config only if the `input` is empty. + if (!lookFor.trim().length) { + toAccept.push(...this.boardConfigs.map((config, i) => { + let group: QuickOpenGroupItemOptions | undefined = undefined; + if (i === 0) { + group = { groupLabel: 'Board Settings', showBorder: true }; + } + return this.toQuickItem(config, group); + })); + } else { + toAccept.push(...this.allBoards.filter(({ name }) => fuzzyFilter(name)).map((board, i) => { + let group: QuickOpenGroupItemOptions | undefined = undefined; + if (i === 0) { + group = { groupLabel: 'Boards', showBorder: true }; + } + return this.toQuickItem(board, group); + })); + } + + acceptor(toAccept); + } + + private fuzzyFilter(lookFor: string): (inputString: string) => boolean { + const shouldFilter = !!lookFor.trim().length; + return (inputString: string) => shouldFilter ? fuzzy.test(lookFor.toLocaleLowerCase(), inputString.toLocaleLowerCase()) : true; + } + + protected async update(availableBoards: AvailableBoard[]): Promise { + // `selectedBoard` is not an attached board, we need to show the board settings for it (TODO: clarify!) + const selectedBoard = availableBoards.filter(AvailableBoard.hasPort).find(({ selected }) => selected); + const [configs, boards] = await Promise.all([ + selectedBoard && selectedBoard.fqbn ? this.configStore.getConfig(selectedBoard.fqbn) : Promise.resolve([]), + this.boardsService.searchBoards({}) + ]); + this.allBoards = Board.decorateBoards(selectedBoard, boards) + .filter(board => !availableBoards.some(availableBoard => Board.sameAs(availableBoard, board))); + this.availableBoards = availableBoards; + this.boardConfigs = configs; + this.selectedBoard = selectedBoard; + + if (this.isOpen) { + // Hack, to update the state without closing and reopening the quick open widget. + (this.quickOpenService as any).onType(this.currentQuery); + } + } + + protected toQuickItem(item: BoardsQuickOpenService.Item, group?: QuickOpenGroupItemOptions): QuickOpenItem { + let options: QuickOpenItemOptions; + if (AvailableBoard.is(item)) { + const description = `on ${Port.toString(item.port)}` + options = { + label: `${item.name}`, + description, + descriptionHighlights: [ + { + start: 0, + end: description.length + } + ], + run: this.toRun(() => this.boardsServiceClient.boardsConfig = ({ selectedBoard: item, selectedPort: item.port })) + }; + } else if (ConfigOption.is(item)) { + const selected = item.values.find(({ selected }) => selected); + const value = selected ? selected.label : 'Not set'; + const label = `${item.label}: ${value}`; + options = { + label, + // Intended to match the value part of a board setting. + // NOTE: this does not work, as `fuzzyMatchLabel: true` is set. Manual highlighting is ignored, apparently. + labelHighlights: [ + { + start: label.length - value.length, + end: label.length + } + ], + run: (mode) => { + if (mode === QuickOpenMode.OPEN) { + this.setConfig(item); + return false; + } + return true; + } + }; + if (!selected) { + options.description = 'Not set'; + }; + } else { + options = { + label: `${item.name}`, + description: `${item.missing ? '' : `[installed with '${item.packageName}']`}`, + run: (mode) => { + if (mode === QuickOpenMode.OPEN) { + this.selectBoard(item); + return false; + } + return true; + } + }; + } + if (group) { + return new QuickOpenGroupItem({ ...options, ...group }); + } else { + return new QuickOpenItem(options); + } + } + + protected toRun(run: (() => void)): ((mode: QuickOpenMode) => boolean) { + return (mode) => { + if (mode !== QuickOpenMode.OPEN) { + return false; + } + run(); + return true; + }; + } + + protected async selectBoard(board: Board): Promise { + const allPorts = this.availableBoards.filter(AvailableBoard.hasPort).map(({ port }) => port).sort(Port.compare); + const toItem = (port: Port) => new QuickOpenItem({ + label: Port.toString(port, { useLabel: true }), + run: this.toRun(() => { + this.boardsServiceClient.boardsConfig = { + selectedBoard: board, + selectedPort: port + }; + }) + }); + const options = { + placeholder: `Select a port for '${board.name}'. Press 'Enter' to confirm or 'Escape' to cancel.`, + fuzzyMatchLabel: true + } + this.quickOpenService.open({ + onType: (lookFor, acceptor) => { + const fuzzyFilter = this.fuzzyFilter(lookFor); + acceptor(allPorts.filter(({ address }) => fuzzyFilter(address)).map(toItem)); + } + }, options); + } + + protected async setConfig(config: ConfigOption): Promise { + const toItem = (value: ConfigValue) => new QuickOpenItem({ + label: value.label, + iconClass: value.selected ? 'fa fa-check' : '', + run: this.toRun(() => { + if (!this.selectedBoard) { + this.logger.warn(`Could not alter the boards settings. No board selected. ${JSON.stringify(config)}`); + return; + } + if (!this.selectedBoard.fqbn) { + this.logger.warn(`Could not alter the boards settings. The selected board does not have a FQBN. ${JSON.stringify(this.selectedBoard)}`); + return; + } + const { fqbn } = this.selectedBoard; + this.configStore.setSelected({ + fqbn, + option: config.option, + selectedValue: value.value + }); + }) + }); + const options = { + placeholder: `Configure '${config.label}'. Press 'Enter' to confirm or 'Escape' to cancel.`, + fuzzyMatchLabel: true + } + this.quickOpenService.open({ + onType: (lookFor, acceptor) => { + const fuzzyFilter = this.fuzzyFilter(lookFor); + acceptor(config.values + .filter(({ label }) => fuzzyFilter(label)) + .sort((left, right) => naturalCompare(left.label, right.label)) + .map(toItem)); + } + }, options); + } + +} + +export namespace BoardsQuickOpenService { + export type Item = AvailableBoard & { port: Port } | Board.Detailed | ConfigOption; +} diff --git a/arduino-ide-extension/src/browser/components/component-list/filterable-list-container.tsx b/arduino-ide-extension/src/browser/components/component-list/filterable-list-container.tsx index 4c717149..5b52720d 100644 --- a/arduino-ide-extension/src/browser/components/component-list/filterable-list-container.tsx +++ b/arduino-ide-extension/src/browser/components/component-list/filterable-list-container.tsx @@ -65,19 +65,14 @@ export class FilterableListContainer extends React.C /> } - protected handleFilterTextChange = (filterText: string) => { + protected handleFilterTextChange = (filterText: string = this.state.filterText) => { this.setState({ filterText }); this.search(filterText); } protected search(query: string): void { const { searchable } = this.props; - searchable.search({ query: query.trim() }).then(result => { - const { items } = result; - this.setState({ - items: this.sort(items) - }); - }); + searchable.search({ query: query.trim() }).then(items => this.setState({ items: this.sort(items) })); } protected sort(items: T[]): T[] { @@ -91,7 +86,7 @@ export class FilterableListContainer extends React.C dialog.open(); try { await installable.install({ item, version }); - const { items } = await searchable.search({ query: this.state.filterText }); + const items = await searchable.search({ query: this.state.filterText }); this.setState({ items: this.sort(items) }); } finally { dialog.close(); @@ -113,7 +108,7 @@ export class FilterableListContainer extends React.C dialog.open(); try { await installable.uninstall({ item }); - const { items } = await searchable.search({ query: this.state.filterText }); + const items = await searchable.search({ query: this.state.filterText }); this.setState({ items: this.sort(items) }); } finally { dialog.close(); @@ -132,7 +127,7 @@ export namespace FilterableListContainer { readonly itemRenderer: ListItemRenderer; readonly resolveContainer: (element: HTMLElement) => void; readonly resolveFocus: (element: HTMLElement | undefined) => void; - readonly filterTextChangeEvent: Event; + readonly filterTextChangeEvent: Event; } export interface State { diff --git a/arduino-ide-extension/src/browser/components/component-list/list-widget.tsx b/arduino-ide-extension/src/browser/components/component-list/list-widget.tsx index 0a55edf2..d2bc7a08 100644 --- a/arduino-ide-extension/src/browser/components/component-list/list-widget.tsx +++ b/arduino-ide-extension/src/browser/components/component-list/list-widget.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { injectable, postConstruct } from 'inversify'; +import { injectable, postConstruct, inject } from 'inversify'; import { Message } from '@phosphor/messaging'; import { Deferred } from '@theia/core/lib/common/promise-util'; import { Emitter } from '@theia/core/lib/common/event'; @@ -10,16 +10,24 @@ import { Searchable } from '../../../common/protocol/searchable'; import { ArduinoComponent } from '../../../common/protocol/arduino-component'; import { FilterableListContainer } from './filterable-list-container'; import { ListItemRenderer } from './list-item-renderer'; +import { CoreServiceClientImpl } from '../../core-service-client-impl'; +import { ArduinoDaemonClientImpl } from '../../arduino-daemon-client-impl'; @injectable() export abstract class ListWidget extends ReactWidget { + @inject(CoreServiceClientImpl) + protected readonly coreServiceClient: CoreServiceClientImpl; + + @inject(ArduinoDaemonClientImpl) + protected readonly daemonClient: ArduinoDaemonClientImpl; + /** * Do not touch or use it. It is for setting the focus on the `input` after the widget activation. */ protected focusNode: HTMLElement | undefined; protected readonly deferredContainer = new Deferred(); - protected readonly filterTextChangeEmitter = new Emitter(); + protected readonly filterTextChangeEmitter = new Emitter(); constructor(protected options: ListWidget.Options) { super(); @@ -40,6 +48,11 @@ export abstract class ListWidget extends ReactWidget @postConstruct() protected init(): void { this.update(); + this.toDispose.pushAll([ + this.coreServiceClient.onIndexUpdated(() => this.refresh(undefined)), + this.daemonClient.onDaemonStarted(() => this.refresh(undefined)), + this.daemonClient.onDaemonStopped(() => this.refresh(undefined)) + ]); } protected getScrollContainer(): MaybePromise { @@ -69,10 +82,14 @@ export abstract class ListWidget extends ReactWidget installable={this.options.installable} itemLabel={this.options.itemLabel} itemRenderer={this.options.itemRenderer} - filterTextChangeEvent={this.filterTextChangeEmitter.event}/>; + filterTextChangeEvent={this.filterTextChangeEmitter.event} />; } - refresh(filterText: string): void { + /** + * If `filterText` is defined, sets the filter text to the argument. + * If it is `undefined`, updates the view state by re-running the search with the current `filterText` term. + */ + refresh(filterText: string | undefined): void { this.deferredContainer.promise.then(() => this.filterTextChangeEmitter.fire(filterText)); } diff --git a/arduino-ide-extension/src/browser/config-service-client-impl.ts b/arduino-ide-extension/src/browser/config-service-client-impl.ts new file mode 100644 index 00000000..e8ca9cf9 --- /dev/null +++ b/arduino-ide-extension/src/browser/config-service-client-impl.ts @@ -0,0 +1,52 @@ +import { injectable, inject } from 'inversify'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { Event, Emitter } from '@theia/core/lib/common/event'; +import { CommandService } from '@theia/core/lib/common/command'; +import { MessageService } from '@theia/core/lib/common/message-service'; +import { ConfigServiceClient, Config } from '../common/protocol'; +import { ArduinoCommands } from './arduino-commands'; + +@injectable() +export class ConfigServiceClientImpl implements ConfigServiceClient { + + @inject(CommandService) + protected readonly commandService: CommandService; + + @inject(ILogger) + protected readonly logger: ILogger; + + @inject(MessageService) + protected readonly messageService: MessageService; + + protected readonly onConfigChangedEmitter = new Emitter(); + protected invalidConfigPopup: Promise | undefined; + + notifyConfigChanged(config: Config): void { + this.invalidConfigPopup = undefined; + this.info(`The CLI configuration has been successfully reloaded.`); + this.onConfigChangedEmitter.fire(config); + } + + notifyInvalidConfig(): void { + if (!this.invalidConfigPopup) { + this.invalidConfigPopup = this.messageService.error(`Your CLI configuration is invalid. Do you want to correct it now?`, 'No', 'Yes') + .then(answer => { + if (answer === 'Yes') { + this.commandService.executeCommand(ArduinoCommands.OPEN_CLI_CONFIG.id) + } + this.invalidConfigPopup = undefined; + }) + + } + } + + get onConfigChanged(): Event { + return this.onConfigChangedEmitter.event; + } + + protected info(message: string): void { + this.messageService.info(message, { timeout: 3000 }); + this.logger.info(message); + } + +} diff --git a/arduino-ide-extension/src/browser/core-service-client-impl.ts b/arduino-ide-extension/src/browser/core-service-client-impl.ts new file mode 100644 index 00000000..9f2f3690 --- /dev/null +++ b/arduino-ide-extension/src/browser/core-service-client-impl.ts @@ -0,0 +1,36 @@ +import { injectable, inject } from 'inversify'; +import { Emitter, Event } from '@theia/core/lib/common/event'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { MessageService } from '@theia/core/lib/common/message-service'; +import { LocalStorageService } from '@theia/core/lib/browser/storage-service'; +import { CoreServiceClient } from '../common/protocol'; + +@injectable() +export class CoreServiceClientImpl implements CoreServiceClient { + + @inject(ILogger) + protected logger: ILogger; + + @inject(MessageService) + protected messageService: MessageService; + + @inject(LocalStorageService) + protected storageService: LocalStorageService; + + protected readonly onIndexUpdatedEmitter = new Emitter(); + + notifyIndexUpdated(): void { + this.info('Index has been updated.'); + this.onIndexUpdatedEmitter.fire(); + } + + get onIndexUpdated(): Event { + return this.onIndexUpdatedEmitter.event; + } + + protected info(message: string): void { + this.messageService.info(message, { timeout: 3000 }); + this.logger.info(message); + } + +} diff --git a/arduino-ide-extension/src/browser/customization/arduino-connection-status-service.ts b/arduino-ide-extension/src/browser/customization/arduino-connection-status-service.ts new file mode 100644 index 00000000..addff7d7 --- /dev/null +++ b/arduino-ide-extension/src/browser/customization/arduino-connection-status-service.ts @@ -0,0 +1,51 @@ +import { inject, injectable, postConstruct } from 'inversify'; +import { Disposable } from '@theia/core/lib/common/disposable'; +import { StatusBarAlignment } from '@theia/core/lib/browser/status-bar/status-bar'; +import { FrontendConnectionStatusService, ApplicationConnectionStatusContribution, ConnectionStatus } from '@theia/core/lib/browser/connection-status-service'; +import { ArduinoDaemonClientImpl } from '../arduino-daemon-client-impl'; + +@injectable() +export class ArduinoFrontendConnectionStatusService extends FrontendConnectionStatusService { + + @inject(ArduinoDaemonClientImpl) + protected readonly daemonClient: ArduinoDaemonClientImpl; + + @postConstruct() + protected init(): void { + this.schedulePing(); + this.wsConnectionProvider.onIncomingMessageActivity(() => { + // natural activity + this.updateStatus(this.daemonClient.isRunning); + this.schedulePing(); + }); + } + +} + +@injectable() +export class ArduinoApplicationConnectionStatusContribution extends ApplicationConnectionStatusContribution { + + @inject(ArduinoDaemonClientImpl) + protected readonly daemonClient: ArduinoDaemonClientImpl; + + protected onStateChange(state: ConnectionStatus): void { + if (!this.daemonClient.isRunning && state === ConnectionStatus.ONLINE) { + return; + } + super.onStateChange(state); + } + + protected handleOffline(): void { + const { isRunning } = this.daemonClient; + this.statusBar.setElement('connection-status', { + alignment: StatusBarAlignment.LEFT, + text: isRunning ? 'Offline' : '$(bolt) CLI Daemon Offline', + tooltip: isRunning ? 'Cannot connect to the backend.' : 'Cannot connect to the CLI daemon.', + priority: 5000 + }); + this.toDisposeOnOnline.push(Disposable.create(() => this.statusBar.removeElement('connection-status'))); + document.body.classList.add('theia-mod-offline'); + this.toDisposeOnOnline.push(Disposable.create(() => document.body.classList.remove('theia-mod-offline'))); + } + +} diff --git a/arduino-ide-extension/src/browser/editor-mode.ts b/arduino-ide-extension/src/browser/editor-mode.ts index c697edd4..2b9afb7e 100644 --- a/arduino-ide-extension/src/browser/editor-mode.ts +++ b/arduino-ide-extension/src/browser/editor-mode.ts @@ -1,16 +1,17 @@ -import { injectable } from 'inversify'; -import { Emitter } from '@theia/core/lib/common/event'; +import { injectable, inject } from 'inversify'; import { ApplicationShell, FrontendApplicationContribution, FrontendApplication, Widget } from '@theia/core/lib/browser'; -import { OutputWidget } from '@theia/output/lib/browser/output-widget'; import { EditorWidget } from '@theia/editor/lib/browser'; -import { ArduinoShellLayoutRestorer } from './shell/arduino-shell-layout-restorer'; +import { OutputWidget } from '@theia/output/lib/browser/output-widget'; +import { MainMenuManager } from './menu/main-menu-manager'; import { BoardsListWidget } from './boards/boards-list-widget'; import { LibraryListWidget } from './library/library-list-widget'; +import { ArduinoShellLayoutRestorer } from './shell/arduino-shell-layout-restorer'; @injectable() export class EditorMode implements FrontendApplicationContribution { - readonly menuContentChanged = new Emitter(); + @inject(MainMenuManager) + protected readonly mainMenuManager: MainMenuManager; protected app: FrontendApplication; @@ -62,6 +63,7 @@ export class EditorMode implements FrontendApplicationContribution { const oldState = this.compileForDebug; const newState = !oldState; window.localStorage.setItem(EditorMode.COMPILE_FOR_DEBUG_KEY, String(newState)); + this.mainMenuManager.update(); } } diff --git a/arduino-ide-extension/src/browser/editor/arduino-editor-manager.ts b/arduino-ide-extension/src/browser/editor/arduino-editor-manager.ts new file mode 100644 index 00000000..30c33932 --- /dev/null +++ b/arduino-ide-extension/src/browser/editor/arduino-editor-manager.ts @@ -0,0 +1,37 @@ +import { inject, injectable } from 'inversify'; +import URI from '@theia/core/lib/common/uri'; +import { EditorManager, EditorOpenerOptions } from '@theia/editor/lib/browser/editor-manager'; +import { ConfigService } from '../../common/protocol/config-service'; +import { EditorWidget } from '@theia/editor/lib/browser'; +import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor'; + +@injectable() +export class ArduinoEditorManager extends EditorManager { + + @inject(ConfigService) + protected readonly configService: ConfigService; + + async open(uri: URI, options?: EditorOpenerOptions): Promise { + const [widget, readOnly] = await Promise.all([super.open(uri, options), this.isReadOnly(uri)]); + if (readOnly) { + const { editor } = widget; + if (editor instanceof MonacoEditor) { + const codeEditor = editor.getControl(); + codeEditor.updateOptions({ readOnly }); + } + } + return widget; + } + + protected async isReadOnly(uri: URI): Promise { + const [config, configFileUri] = await Promise.all([ + this.configService.getConfiguration(), + this.configService.getCliConfigFileUri() + ]); + if (new URI(configFileUri).toString(true) === uri.toString(true)) { + return false; + } + return new URI(config.dataDirUri).isEqualOrParent(uri) + } + +} diff --git a/arduino-ide-extension/src/browser/editor/arduino-monaco-editor-provider.ts b/arduino-ide-extension/src/browser/editor/arduino-monaco-editor-provider.ts deleted file mode 100644 index ff170637..00000000 --- a/arduino-ide-extension/src/browser/editor/arduino-monaco-editor-provider.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { inject, injectable } from 'inversify'; -import URI from '@theia/core/lib/common/uri'; -import { DisposableCollection } from '@theia/core/lib/common/disposable'; -import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor'; -import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model'; -import { MonacoEditorProvider } from '@theia/monaco/lib/browser/monaco-editor-provider'; -import { ConfigService } from '../../common/protocol/config-service'; - -@injectable() -export class ArduinoMonacoEditorProvider extends MonacoEditorProvider { - - @inject(ConfigService) - protected readonly configService: ConfigService; - protected dataDirUri: string | undefined; - - protected async getModel(uri: URI, toDispose: DisposableCollection): Promise { - // `createMonacoEditorOptions` is not `async` so we ask the `dataDirUri` here. - // https://github.com/eclipse-theia/theia/issues/6234 - const { dataDirUri } = await this.configService.getConfiguration() - this.dataDirUri = dataDirUri; - return super.getModel(uri, toDispose); - } - - protected createMonacoEditorOptions(model: MonacoEditorModel): MonacoEditor.IOptions { - const options = this.createOptions(this.preferencePrefixes, model.uri, model.languageId); - options.model = model.textEditorModel; - options.readOnly = model.readOnly; - if (this.dataDirUri) { - options.readOnly = new URI(this.dataDirUri).isEqualOrParent(new URI(model.uri)); - } - return options; - } - -} \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/language/arduino-language-client-contribution.ts b/arduino-ide-extension/src/browser/language/arduino-language-client-contribution.ts index b22fdf00..dd2176c6 100644 --- a/arduino-ide-extension/src/browser/language/arduino-language-client-contribution.ts +++ b/arduino-ide-extension/src/browser/language/arduino-language-client-contribution.ts @@ -2,7 +2,6 @@ import { injectable, inject, postConstruct } from 'inversify'; import { BaseLanguageClientContribution } from '@theia/languages/lib/browser'; import { BoardsServiceClientImpl } from '../boards/boards-service-client-impl'; import { BoardsConfig } from '../boards/boards-config'; -import { Board, BoardPackage } from '../../common/protocol/boards-service'; @injectable() export class ArduinoLanguageClientContribution extends BaseLanguageClientContribution { @@ -26,18 +25,6 @@ export class ArduinoLanguageClientContribution extends BaseLanguageClientContrib @postConstruct() protected init() { this.boardsServiceClient.onBoardsConfigChanged(this.selectBoard.bind(this)); - const restartIfAffected = (pkg: BoardPackage) => { - if (!this.boardConfig) { - this.restart(); - return; - } - const { selectedBoard } = this.boardConfig; - if (selectedBoard && pkg.boards.some(board => Board.sameAs(board, selectedBoard))) { - this.restart(); - } - } - this.boardsServiceClient.onBoardInstalled(({ pkg }) => restartIfAffected(pkg)); - this.boardsServiceClient.onBoardUninstalled(({ pkg }) => restartIfAffected(pkg)); } selectBoard(config: BoardsConfig.Config): void { diff --git a/arduino-ide-extension/src/browser/menu/arduino-browser-main-menu-factory.ts b/arduino-ide-extension/src/browser/menu/arduino-browser-main-menu-factory.ts new file mode 100644 index 00000000..e7970c79 --- /dev/null +++ b/arduino-ide-extension/src/browser/menu/arduino-browser-main-menu-factory.ts @@ -0,0 +1,22 @@ +import { injectable } from 'inversify'; +import { BrowserMainMenuFactory, MenuBarWidget } from '@theia/core/lib/browser/menu/browser-menu-plugin'; +import { MainMenuManager } from './main-menu-manager'; + +@injectable() +export class ArduinoBrowserMainMenuFactory extends BrowserMainMenuFactory implements MainMenuManager { + + protected menuBar: MenuBarWidget | undefined; + + createMenuBar(): MenuBarWidget { + this.menuBar = super.createMenuBar(); + return this.menuBar; + } + + update() { + if (this.menuBar) { + this.menuBar.clearMenus(); + this.fillMenuBar(this.menuBar); + } + } + +} diff --git a/arduino-ide-extension/src/browser/menu/browser-arduino-menu-module.ts b/arduino-ide-extension/src/browser/menu/browser-arduino-menu-module.ts index 61c8d073..11fe0589 100644 --- a/arduino-ide-extension/src/browser/menu/browser-arduino-menu-module.ts +++ b/arduino-ide-extension/src/browser/menu/browser-arduino-menu-module.ts @@ -1,10 +1,14 @@ -import { BrowserMenuBarContribution } from '@theia/core/lib/browser/menu/browser-menu-plugin'; -import { ArduinoMenuContribution } from './arduino-menu-contribution'; -import { ContainerModule, interfaces } from 'inversify'; - import '../../../src/browser/style/browser-menu.css' +import { ContainerModule } from 'inversify'; +import { BrowserMenuBarContribution, BrowserMainMenuFactory } from '@theia/core/lib/browser/menu/browser-menu-plugin'; +import { MainMenuManager } from './main-menu-manager'; +import { ArduinoMenuContribution } from './arduino-menu-contribution'; +import { ArduinoBrowserMainMenuFactory } from './arduino-browser-main-menu-factory'; -export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Unbind) => { - unbind(BrowserMenuBarContribution); - bind(BrowserMenuBarContribution).to(ArduinoMenuContribution).inSingletonScope(); + +export default new ContainerModule((bind, unbind, isBound, rebind) => { + bind(ArduinoBrowserMainMenuFactory).toSelf().inSingletonScope(); + bind(MainMenuManager).toService(ArduinoBrowserMainMenuFactory); + rebind(BrowserMainMenuFactory).toService(ArduinoBrowserMainMenuFactory); + rebind(BrowserMenuBarContribution).to(ArduinoMenuContribution).inSingletonScope(); }); diff --git a/arduino-ide-extension/src/browser/menu/main-menu-manager.ts b/arduino-ide-extension/src/browser/menu/main-menu-manager.ts new file mode 100644 index 00000000..868b88d7 --- /dev/null +++ b/arduino-ide-extension/src/browser/menu/main-menu-manager.ts @@ -0,0 +1,8 @@ +export const MainMenuManager = Symbol('MainMenuManager'); +export interface MainMenuManager { + /** + * Call this method if you have changed the content of the main menu (updated a toggle flag, removed/added new groups or menu items) + * and you want to re-render it from scratch. Works for electron too. + */ + update(): void; +} diff --git a/arduino-ide-extension/src/browser/monitor/monitor-connection.ts b/arduino-ide-extension/src/browser/monitor/monitor-connection.ts index 1f588f2f..e8986b4b 100644 --- a/arduino-ide-extension/src/browser/monitor/monitor-connection.ts +++ b/arduino-ide-extension/src/browser/monitor/monitor-connection.ts @@ -4,7 +4,7 @@ import { MessageService } from '@theia/core/lib/common/message-service'; import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state'; import { MonitorService, MonitorConfig, MonitorError, Status, MonitorReadEvent } from '../../common/protocol/monitor-service'; import { BoardsServiceClientImpl } from '../boards/boards-service-client-impl'; -import { Port, Board, BoardsService, AttachedSerialBoard, AttachedBoardsChangeEvent } from '../../common/protocol/boards-service'; +import { Port, Board, BoardsService, AttachedBoardsChangeEvent } from '../../common/protocol/boards-service'; import { MonitorServiceClientImpl } from './monitor-service-client-impl'; import { BoardsConfig } from '../boards/boards-config'; import { MonitorModel } from './monitor-model'; @@ -110,12 +110,12 @@ export class MonitorConnection { } }); this.boardsServiceClient.onBoardsConfigChanged(this.handleBoardConfigChange.bind(this)); - this.boardsServiceClient.onBoardsChanged(event => { + this.boardsServiceClient.onAttachedBoardsChanged(event => { if (this.autoConnect && this.connected) { const { boardsConfig } = this.boardsServiceClient; if (this.boardsServiceClient.canUploadTo(boardsConfig, { silent: false })) { const { attached } = AttachedBoardsChangeEvent.diff(event); - if (attached.boards.some(board => AttachedSerialBoard.is(board) && BoardsConfig.Config.sameAs(boardsConfig, board))) { + if (attached.boards.some(board => !!board.port && BoardsConfig.Config.sameAs(boardsConfig, board))) { const { selectedBoard: board, selectedPort: port } = boardsConfig; const { baudRate } = this.monitorModel; this.disconnect() @@ -225,7 +225,7 @@ export class MonitorConnection { if (this.boardsServiceClient.canUploadTo(boardsConfig, { silent: false })) { // Instead of calling `getAttachedBoards` and filtering for `AttachedSerialBoard` we have to check the available ports. // The connected board might be unknown. See: https://github.com/arduino/arduino-pro-ide/issues/127#issuecomment-563251881 - this.boardsService.getAvailablePorts().then(({ ports }) => { + this.boardsService.getAvailablePorts().then(ports => { if (ports.some(port => Port.equals(port, boardsConfig.selectedPort))) { new Promise(resolve => { // First, disconnect if connected. diff --git a/arduino-ide-extension/src/browser/monitor/monitor-widget.tsx b/arduino-ide-extension/src/browser/monitor/monitor-widget.tsx index 42f454f3..2fb0916f 100644 --- a/arduino-ide-extension/src/browser/monitor/monitor-widget.tsx +++ b/arduino-ide-extension/src/browser/monitor/monitor-widget.tsx @@ -178,7 +178,7 @@ export class MonitorWidget extends ReactWidget { this.monitorModel.lineEnding = option.value; } - protected readonly onChangeBaudRate = async (option: SelectOption) => { + protected readonly onChangeBaudRate = (option: SelectOption) => { this.monitorModel.baudRate = option.value; } @@ -288,17 +288,20 @@ export class SerialMonitorOutput extends React.Component { - chunk += data; - const eolIndex = chunk.indexOf('\n'); - if (eolIndex !== -1) { - const line = chunk.substring(0, eolIndex + 1); - chunk = chunk.slice(eolIndex + 1); - const content = `${this.state.content}${this.state.timestamp ? `${dateFormat(new Date(), 'H:M:ss.l')} -> ` : ''}${line}`; - this.setState({ content }); + const rawLines = data.split('\n'); + const lines: string[] = [] + const timestamp = () => this.state.timestamp ? `${dateFormat(new Date(), 'H:M:ss.l')} -> ` : ''; + for (let i = 0; i < rawLines.length; i++) { + if (i === 0 && this.state.content.length !== 0) { + lines.push(rawLines[i]); + } else { + lines.push(timestamp() + rawLines[i]); + } } + const content = this.state.content + lines.join('\n'); + this.setState({ content }); }), this.props.clearConsoleEvent(() => this.setState({ content: '' })), this.props.monitorModel.onChange(({ property }) => { diff --git a/arduino-ide-extension/src/browser/style/board-select-dialog.css b/arduino-ide-extension/src/browser/style/board-select-dialog.css index 9833fb62..72c251da 100644 --- a/arduino-ide-extension/src/browser/style/board-select-dialog.css +++ b/arduino-ide-extension/src/browser/style/board-select-dialog.css @@ -97,7 +97,7 @@ div#select-board-dialog .selectBoardContainer .body .list .item.selected i { margin-left: auto; } -#select-board-dialog .selectBoardContainer .body .list .item .detail { +#select-board-dialog .selectBoardContainer .body .list .item .details { font-size: var(--theia-ui-font-size1); opacity: var(--theia-mod-disabled-opacity); width: 155px; /* used heuristics for the calculation */ @@ -169,6 +169,13 @@ button.theia-button.main { margin: 0 5px; } +.arduino-boards-toolbar-item-container .arduino-boards-toolbar-item .inner-container .guessed { + width: 10px; + height: 10px; + color: var(--theia-warningBackground); + margin: 0 5px; +} + .arduino-boards-toolbar-item-container { display: flex; align-items: center; diff --git a/arduino-ide-extension/src/browser/style/list-widget.css b/arduino-ide-extension/src/browser/style/list-widget.css index 3bc39438..ab65b4f0 100644 --- a/arduino-ide-extension/src/browser/style/list-widget.css +++ b/arduino-ide-extension/src/browser/style/list-widget.css @@ -46,7 +46,7 @@ See above: `.filterable-list-container .items-container > div:nth-child(odd|event)`. We have to increase `z-index` of the scroll-bar thumb. Otherwise, the thumb is not visible. https://github.com/arduino/arduino-pro-ide/issues/82 */ -.arduino-list-widget .ps__rail-y > .ps__thumb-y { +.arduino-list-widget .filterable-list-container .items-container .ps__rail-y { z-index: 1; } diff --git a/arduino-ide-extension/src/browser/workspace-service-ext-impl.ts b/arduino-ide-extension/src/browser/workspace-service-ext-impl.ts deleted file mode 100644 index 444317c0..00000000 --- a/arduino-ide-extension/src/browser/workspace-service-ext-impl.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service'; -import { WorkspaceServiceExt } from './workspace-service-ext'; - -/** - * This is a workaround to be able to inject the workspace service to the backend with its service path. - */ -@injectable() -export class WorkspaceServiceExtImpl implements WorkspaceServiceExt { - - @inject(WorkspaceService) - protected readonly delegate: WorkspaceService; - - async roots(): Promise { - const stats = await this.delegate.roots; - return stats.map(stat => stat.uri); - } - -} \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/workspace-service-ext.ts b/arduino-ide-extension/src/browser/workspace-service-ext.ts deleted file mode 100644 index 8d77fbac..00000000 --- a/arduino-ide-extension/src/browser/workspace-service-ext.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const WorkspaceServiceExtPath = '/services/workspace-service-ext'; -export const WorkspaceServiceExt = Symbol('WorkspaceServiceExt'); -export interface WorkspaceServiceExt { - roots(): Promise; -} diff --git a/arduino-ide-extension/src/common/protocol/arduino-daemon.ts b/arduino-ide-extension/src/common/protocol/arduino-daemon.ts new file mode 100644 index 00000000..c1a5d63e --- /dev/null +++ b/arduino-ide-extension/src/common/protocol/arduino-daemon.ts @@ -0,0 +1,13 @@ +import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory'; + +export const ArduinoDaemonClient = Symbol('ArduinoDaemonClient'); +export interface ArduinoDaemonClient { + notifyStarted(): void; + notifyStopped(): void; +} + +export const ArduinoDaemonPath = '/services/arduino-daemon'; +export const ArduinoDaemon = Symbol('ArduinoDaemon'); +export interface ArduinoDaemon extends JsonRpcServer { + isRunning(): Promise; +} diff --git a/arduino-ide-extension/src/common/protocol/boards-service.ts b/arduino-ide-extension/src/common/protocol/boards-service.ts index d7f0b631..df660801 100644 --- a/arduino-ide-extension/src/common/protocol/boards-service.ts +++ b/arduino-ide-extension/src/common/protocol/boards-service.ts @@ -1,10 +1,9 @@ import { isWindows, isOSX } from '@theia/core/lib/common/os'; import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory'; +import { naturalCompare } from './../utils'; import { Searchable } from './searchable'; import { Installable } from './installable'; -import { Detailable } from './detailable'; import { ArduinoComponent } from './arduino-component'; -const naturalCompare: (left: string, right: string) => number = require('string-natural-compare').caseInsensitive; export interface AttachedBoardsChangeEvent { readonly oldState: Readonly<{ boards: Board[], ports: Port[] }>; @@ -22,21 +21,24 @@ export namespace AttachedBoardsChangeEvent { ports: Port[] } }> { - const diff = (left: T[], right: T[]) => { - return left.filter(item => right.indexOf(item) === -1); + // In `lefts` AND not in `rights`. + const diff = (lefts: T[], rights: T[], sameAs: (left: T, right: T) => boolean) => { + return lefts.filter(left => rights.findIndex(right => sameAs(left, right)) === -1); } const { boards: newBoards } = event.newState; const { boards: oldBoards } = event.oldState; const { ports: newPorts } = event.newState; const { ports: oldPorts } = event.oldState; + const boardSameAs = (left: Board, right: Board) => Board.sameAs(left, right); + const portSameAs = (left: Port, right: Port) => Port.sameAs(left, right); return { detached: { - boards: diff(oldBoards, newBoards), - ports: diff(oldPorts, newPorts) + boards: diff(oldBoards, newBoards, boardSameAs), + ports: diff(oldPorts, newPorts, portSameAs) }, attached: { - boards: diff(newBoards, oldBoards), - ports: diff(newPorts, oldPorts) + boards: diff(newBoards, oldBoards, boardSameAs), + ports: diff(newPorts, oldPorts, portSameAs) } }; } @@ -44,11 +46,11 @@ export namespace AttachedBoardsChangeEvent { } export interface BoardInstalledEvent { - readonly pkg: Readonly; + readonly pkg: Readonly; } export interface BoardUninstalledEvent { - readonly pkg: Readonly; + readonly pkg: Readonly; } export const BoardsServiceClient = Symbol('BoardsServiceClient'); @@ -60,9 +62,13 @@ export interface BoardsServiceClient { export const BoardsServicePath = '/services/boards-service'; export const BoardsService = Symbol('BoardsService'); -export interface BoardsService extends Installable, Searchable, Detailable, JsonRpcServer { - getAttachedBoards(): Promise<{ boards: Board[] }>; - getAvailablePorts(): Promise<{ ports: Port[] }>; +export interface BoardsService extends Installable, Searchable, JsonRpcServer { + getAttachedBoards(): Promise; + getAvailablePorts(): Promise; + getBoardDetails(options: { fqbn: string }): Promise; + getBoardPackage(options: { id: string }): Promise; + getContainerBoardPackage(options: { fqbn: string }): Promise; + searchBoards(options: { query?: string }): Promise>; } export interface Port { @@ -103,7 +109,7 @@ export namespace Port { if (!isBoardPort(left) && isBoardPort(right)) { return 1; } - let result = left.protocol.toLocaleLowerCase().localeCompare(right.protocol.toLocaleLowerCase()); + let result = naturalCompare(left.protocol.toLocaleLowerCase(), right.protocol.toLocaleLowerCase()); if (result !== 0) { return result; } @@ -111,7 +117,7 @@ export namespace Port { if (result !== 0) { return result; } - return (left.label || '').localeCompare(right.label || ''); + return naturalCompare(left.label || '', right.label || ''); } export function equals(left: Port | undefined, right: Port | undefined): boolean { @@ -160,38 +166,119 @@ export namespace Port { return false; } - export function sameAs(left: Port | undefined, right: string | undefined) { + export function sameAs(left: Port | undefined, right: Port | string | undefined) { if (left && right) { if (left.protocol !== 'serial') { - console.log(`Unexpected protocol for port: ${JSON.stringify(left)}. Ignoring protocol, comparing addresses with ${right}.`); + console.log(`Unexpected protocol for 'left' port: ${JSON.stringify(left)}. Ignoring 'protocol', comparing 'addresses' with ${JSON.stringify(right)}.`); } - return left.address === right; + if (typeof right === 'string') { + return left.address === right; + } + if (right.protocol !== 'serial') { + console.log(`Unexpected protocol for 'right' port: ${JSON.stringify(right)}. Ignoring 'protocol', comparing 'addresses' with ${JSON.stringify(left)}.`); + } + return left.address === right.address; } return false; } } -export interface BoardPackage extends ArduinoComponent { - id: string; - boards: Board[]; +export interface BoardsPackage extends ArduinoComponent { + readonly id: string; + readonly boards: Board[]; } export interface Board { - name: string - fqbn?: string + readonly name: string; + readonly fqbn?: string; + readonly port?: Port; } -export interface BoardDetails extends Board { - fqbn: string; - - requiredTools: Tool[]; +export interface BoardDetails { + readonly fqbn: string; + readonly requiredTools: Tool[]; + readonly configOptions: ConfigOption[]; } export interface Tool { readonly packager: string; readonly name: string; - readonly version: string; + readonly version: Installable.Version; +} + +export interface ConfigOption { + readonly option: string; + readonly label: string; + readonly values: ConfigValue[]; +} +export namespace ConfigOption { + + export function is(arg: any): arg is ConfigOption { + return !!arg && 'option' in arg && 'label' in arg && 'values' in arg + && typeof arg['option'] === 'string' && typeof arg['label'] === 'string' && Array.isArray(arg['values']) + } + + /** + * Appends the configuration options to the `fqbn` argument. + * Throws an error if the `fqbn` does not have the `segment(':'segment)*` format. + * The provided output format is always segment(':'segment)*(':'option'='value(','option'='value)*)? + * Validation can be disabled with the `{ validation: false }` option. + */ + export function decorate(fqbn: string, configOptions: ConfigOption[], { validate } = { validate: true }): string { + if (validate) { + if (!isValidFqbn(fqbn)) { + throw new ConfigOptionError(`${fqbn} is not a valid FQBN.`); + } + if (isValidFqbnWithOptions(fqbn)) { + throw new ConfigOptionError(`${fqbn} is already decorated with the configuration options.`); + } + } + + if (!configOptions.length) { + return fqbn; + } + + const toValue = (values: ConfigValue[]) => { + const selectedValue = values.find(({ selected }) => selected); + if (!selectedValue) { + console.warn(`None of the config values was selected. Values were: ${JSON.stringify(values)}`); + return undefined; + } + return selectedValue.value; + }; + const options = configOptions + .map(({ option, values }) => [option, toValue(values)]) + .filter(([, value]) => !!value) + .map(([option, value]) => `${option}=${value}`) + .join(','); + + return `${fqbn}:${options}`; + } + + export function isValidFqbn(fqbn: string): boolean { + return /^\w+(:\w+)*$/.test(fqbn); + } + + export function isValidFqbnWithOptions(fqbn: string): boolean { + return /^\w+(:\w+)*(:\w+=\w+(,\w+=\w+)*)$/.test(fqbn); + } + + export class ConfigOptionError extends Error { + constructor(message: string) { + super(message); + Object.setPrototypeOf(this, ConfigOptionError.prototype); + } + } + + export const LABEL_COMPARATOR = (left: ConfigOption, right: ConfigOption) => naturalCompare(left.label.toLocaleLowerCase(), right.label.toLocaleLowerCase()); + +} + +export interface ConfigValue { + readonly label: string; + readonly value: string; + readonly selected: boolean; } export namespace Board { @@ -216,9 +303,9 @@ export namespace Board { } export function compare(left: Board, right: Board): number { - let result = left.name.localeCompare(right.name); + let result = naturalCompare(left.name, right.name); if (result === 0) { - result = (left.fqbn || '').localeCompare(right.fqbn || ''); + result = naturalCompare(left.fqbn || '', right.fqbn || ''); } return result; } @@ -232,25 +319,37 @@ export namespace Board { return `${board.name}${fqbn}`; } -} + export type Detailed = Board & Readonly<{ selected: boolean, missing: boolean, packageName: string, details?: string }>; + export function decorateBoards( + selectedBoard: Board | undefined, + boards: Array): Array { + // Board names are not unique. We show the corresponding core name as a detail. + // https://github.com/arduino/arduino-cli/pull/294#issuecomment-513764948 + const distinctBoardNames = new Map(); + for (const { name } of boards) { + const counter = distinctBoardNames.get(name) || 0; + distinctBoardNames.set(name, counter + 1); + } -export interface AttachedSerialBoard extends Board { - port: string; -} - -export namespace AttachedSerialBoard { - export function is(b: Board | any): b is AttachedSerialBoard { - return !!b && 'port' in b; + // Due to the non-unique board names, we have to check the package name as well. + const selected = (board: Board & { packageName: string }) => { + if (!!selectedBoard) { + if (Board.equals(board, selectedBoard)) { + if ('packageName' in selectedBoard) { + return board.packageName === (selectedBoard as any).packageName; + } + return true; + } + } + return false; + } + return boards.map(board => ({ + ...board, + details: (distinctBoardNames.get(board.name) || 0) > 1 ? ` - ${board.packageName}` : undefined, + selected: selected(board), + missing: !installed(board) + })); } -} -export interface AttachedNetworkBoard extends Board { - address: string; - port: string; -} -export namespace AttachedNetworkBoard { - export function is(b: Board): b is AttachedNetworkBoard { - return 'address' in b && 'port' in b; - } } diff --git a/arduino-ide-extension/src/common/protocol/config-service.ts b/arduino-ide-extension/src/common/protocol/config-service.ts index 10cc977d..65d84eab 100644 --- a/arduino-ide-extension/src/common/protocol/config-service.ts +++ b/arduino-ide-extension/src/common/protocol/config-service.ts @@ -1,14 +1,25 @@ +import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory'; + +export const ConfigServiceClient = Symbol('ConfigServiceClient'); +export interface ConfigServiceClient { + notifyConfigChanged(config: Config): void; + notifyInvalidConfig(): void; +} + export const ConfigServicePath = '/services/config-service'; export const ConfigService = Symbol('ConfigService'); - -export interface ConfigService { +export interface ConfigService extends JsonRpcServer { getVersion(): Promise; getConfiguration(): Promise; + getCliConfigFileUri(): Promise; + getConfigurationFileSchemaUri(): Promise; isInDataDir(uri: string): Promise; isInSketchDir(uri: string): Promise; } export interface Config { - sketchDirUri: string; - dataDirUri: string; + readonly sketchDirUri: string; + readonly dataDirUri: string; + readonly downloadsDirUri: string; + readonly additionalUrls: string[]; } diff --git a/arduino-ide-extension/src/common/protocol/core-service.ts b/arduino-ide-extension/src/common/protocol/core-service.ts index 9b6b2b90..97662cb9 100644 --- a/arduino-ide-extension/src/common/protocol/core-service.ts +++ b/arduino-ide-extension/src/common/protocol/core-service.ts @@ -1,28 +1,31 @@ -import { Board } from "./boards-service"; +import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory'; + +export const CoreServiceClient = Symbol('CoreServiceClient'); +export interface CoreServiceClient { + notifyIndexUpdated(): void; +} export const CoreServicePath = '/services/core-service'; export const CoreService = Symbol('CoreService'); -export interface CoreService { +export interface CoreService extends JsonRpcServer { compile(options: CoreService.Compile.Options): Promise; upload(options: CoreService.Upload.Options): Promise; } export namespace CoreService { - export namespace Upload { + export namespace Compile { export interface Options { - readonly uri: string; - readonly board: Board; - readonly port: string; + readonly sketchUri: string; + readonly fqbn: string; readonly optimizeForDebug: boolean; } } - export namespace Compile { - export interface Options { - readonly uri: string; - readonly board: Board; - readonly optimizeForDebug: boolean; + export namespace Upload { + export interface Options extends Compile.Options { + readonly port: string; } } + } diff --git a/arduino-ide-extension/src/common/protocol/detailable.ts b/arduino-ide-extension/src/common/protocol/detailable.ts deleted file mode 100644 index 456dd626..00000000 --- a/arduino-ide-extension/src/common/protocol/detailable.ts +++ /dev/null @@ -1,10 +0,0 @@ - -export interface Detailable { - detail(options: Detailable.Options): Promise<{ item?: T }>; -} - -export namespace Detailable { - export interface Options { - readonly id: string; - } -} \ No newline at end of file diff --git a/arduino-ide-extension/src/common/protocol/index.ts b/arduino-ide-extension/src/common/protocol/index.ts new file mode 100644 index 00000000..83c20492 --- /dev/null +++ b/arduino-ide-extension/src/common/protocol/index.ts @@ -0,0 +1,11 @@ +export * from './arduino-component'; +export * from './arduino-daemon'; +export * from './boards-service'; +export * from './config-service'; +export * from './core-service'; +export * from './installable'; +export * from './library-service'; +export * from './monitor-service'; +export * from './searchable'; +export * from './sketches-service'; +export * from './tool-output-service'; diff --git a/arduino-ide-extension/src/common/protocol/installable.ts b/arduino-ide-extension/src/common/protocol/installable.ts index ae7334d2..4bf90759 100644 --- a/arduino-ide-extension/src/common/protocol/installable.ts +++ b/arduino-ide-extension/src/common/protocol/installable.ts @@ -1,4 +1,4 @@ -const naturalCompare: (left: string, right: string) => number = require('string-natural-compare').caseInsensitive; +import { naturalCompare } from './../utils'; import { ArduinoComponent } from './arduino-component'; export interface Installable { diff --git a/arduino-ide-extension/src/common/protocol/searchable.ts b/arduino-ide-extension/src/common/protocol/searchable.ts index f4e996b9..483e12dd 100644 --- a/arduino-ide-extension/src/common/protocol/searchable.ts +++ b/arduino-ide-extension/src/common/protocol/searchable.ts @@ -1,5 +1,5 @@ export interface Searchable { - search(options: Searchable.Options): Promise<{ items: T[] }>; + search(options: Searchable.Options): Promise; } export namespace Searchable { export interface Options { @@ -8,4 +8,4 @@ export namespace Searchable { */ readonly query?: string; } -} \ No newline at end of file +} diff --git a/arduino-ide-extension/src/common/utils.ts b/arduino-ide-extension/src/common/utils.ts new file mode 100644 index 00000000..77dbaf54 --- /dev/null +++ b/arduino-ide-extension/src/common/utils.ts @@ -0,0 +1 @@ +export const naturalCompare: (left: string, right: string) => number = require('string-natural-compare').caseInsensitive; diff --git a/arduino-ide-extension/src/electron-browser/electron-arduino-menu-contribution.ts b/arduino-ide-extension/src/electron-browser/electron-arduino-menu-contribution.ts deleted file mode 100644 index 4559c6d7..00000000 --- a/arduino-ide-extension/src/electron-browser/electron-arduino-menu-contribution.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as electron from 'electron'; -import { injectable, inject, postConstruct } from 'inversify'; -import { isOSX } from '@theia/core/lib/common/os'; -import { ElectronMenuContribution } from '@theia/core/lib/electron-browser/menu/electron-menu-contribution'; -import { EditorMode } from '../browser/editor-mode'; - -@injectable() -export class ElectronArduinoMenuContribution extends ElectronMenuContribution { - - @inject(EditorMode) - protected readonly editorMode: EditorMode; - - @postConstruct() - protected init(): void { - this.editorMode.menuContentChanged.event(() => { - const createdMenuBar = this.factory.createMenuBar(); - if (isOSX) { - electron.remote.Menu.setApplicationMenu(createdMenuBar); - } else { - electron.remote.getCurrentWindow().setMenu(createdMenuBar); - } - }); - } - - protected hideTopPanel(): void { - // NOOP - // We reuse the `div` for the Arduino toolbar. - } - -} diff --git a/arduino-ide-extension/src/electron-browser/menu/electron-arduino-menu-contribution.ts b/arduino-ide-extension/src/electron-browser/menu/electron-arduino-menu-contribution.ts new file mode 100644 index 00000000..251e89ec --- /dev/null +++ b/arduino-ide-extension/src/electron-browser/menu/electron-arduino-menu-contribution.ts @@ -0,0 +1,17 @@ +import { injectable } from 'inversify'; +import { ElectronMenuContribution } from '@theia/core/lib/electron-browser/menu/electron-menu-contribution'; +import { MainMenuManager } from '../../browser/menu/main-menu-manager'; + +@injectable() +export class ElectronArduinoMenuContribution extends ElectronMenuContribution implements MainMenuManager { + + protected hideTopPanel(): void { + // NOOP + // We reuse the `div` for the Arduino toolbar. + } + + update(): void { + (this as any).setMenu(); + } + +} diff --git a/arduino-ide-extension/src/electron-browser/electron-arduino-menu-module.ts b/arduino-ide-extension/src/electron-browser/menu/electron-arduino-menu-module.ts similarity index 76% rename from arduino-ide-extension/src/electron-browser/electron-arduino-menu-module.ts rename to arduino-ide-extension/src/electron-browser/menu/electron-arduino-menu-module.ts index b53fc8c4..2849d103 100644 --- a/arduino-ide-extension/src/electron-browser/electron-arduino-menu-module.ts +++ b/arduino-ide-extension/src/electron-browser/menu/electron-arduino-menu-module.ts @@ -1,8 +1,10 @@ import { ContainerModule } from 'inversify'; import { ElectronMenuContribution } from '@theia/core/lib/electron-browser/menu/electron-menu-contribution' import { ElectronArduinoMenuContribution } from './electron-arduino-menu-contribution'; +import { MainMenuManager } from '../../browser/menu/main-menu-manager'; export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(ElectronArduinoMenuContribution).toSelf().inSingletonScope(); + bind(MainMenuManager).toService(ElectronArduinoMenuContribution); rebind(ElectronMenuContribution).to(ElectronArduinoMenuContribution); }); diff --git a/arduino-ide-extension/src/node/arduino-cli-contribution.ts b/arduino-ide-extension/src/node/arduino-cli-contribution.ts deleted file mode 100644 index 148b92b5..00000000 --- a/arduino-ide-extension/src/node/arduino-cli-contribution.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { injectable } from 'inversify'; -import { Argv, Arguments } from 'yargs'; -import { CliContribution } from '@theia/core/lib/node'; - -@injectable() -export class ArduinoCliContribution implements CliContribution { - - protected _debugCli = false - - configure(conf: Argv): void { - conf.option('debug-cli', { - description: 'Can be specified if the CLI daemon process was started externally.', - type: 'boolean', - default: false, - nargs: 1 - }); - } - - setArguments(args: Arguments): void { - this._debugCli = args['debug-cli']; - } - - get debugCli(): boolean { - return this._debugCli; - } - -} diff --git a/arduino-ide-extension/src/node/arduino-cli.ts b/arduino-ide-extension/src/node/arduino-cli.ts deleted file mode 100644 index 8b67e44c..00000000 --- a/arduino-ide-extension/src/node/arduino-cli.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { injectable, inject } from 'inversify'; -import { ILogger } from '@theia/core'; -import { FileUri } from '@theia/core/lib/node/file-uri'; -import { Config } from '../common/protocol/config-service'; -import { spawnCommand, getExecPath } from './exec-util'; - -@injectable() -export class ArduinoCli { - - @inject(ILogger) - protected logger: ILogger; - - private execPath: string | undefined; - - async getExecPath(): Promise { - if (this.execPath) { - return this.execPath; - } - const path = await getExecPath('arduino-cli', this.logger, 'version'); - this.execPath = path; - return path; - } - - async getVersion(): Promise { - const execPath = await this.getExecPath(); - return spawnCommand(`"${execPath}"`, ['version'], this.logger); - } - - async getDefaultConfig(): Promise { - const execPath = await this.getExecPath(); - const result = await spawnCommand(`"${execPath}"`, ['config', 'dump', '--format', 'json'], this.logger); - const { directories } = JSON.parse(result); - if (!directories) { - throw new Error(`Could not parse config. 'directories' was missing from: ${result}`); - } - const { user, data } = directories; - if (!user) { - throw new Error(`Could not parse config. 'user' was missing from: ${result}`); - } - if (!data) { - throw new Error(`Could not parse config. 'data' was missing from: ${result}`); - } - return { - sketchDirUri: FileUri.create(user).toString(), - dataDirUri: FileUri.create(data).toString() - }; - } - -} diff --git a/arduino-ide-extension/src/node/arduino-daemon-impl.ts b/arduino-ide-extension/src/node/arduino-daemon-impl.ts new file mode 100644 index 00000000..791a2ec5 --- /dev/null +++ b/arduino-ide-extension/src/node/arduino-daemon-impl.ts @@ -0,0 +1,267 @@ +import { join } from 'path'; +import { inject, injectable, named } from 'inversify'; +import { spawn, ChildProcess } from 'child_process'; +import { FileUri } from '@theia/core/lib/node/file-uri'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { Deferred } from '@theia/core/lib/common/promise-util'; +import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable'; +import { Event, Emitter } from '@theia/core/lib/common/event'; +import { environment } from '@theia/application-package/lib/environment'; +import { EnvVariablesServer } from '@theia/core/lib/common/env-variables'; +import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application'; +import { ArduinoDaemon, ArduinoDaemonClient, ToolOutputServiceServer } from '../common/protocol'; +import { DaemonLog } from './daemon-log'; +import { CLI_CONFIG } from './cli-config'; +import { getExecPath, spawnCommand } from './exec-util'; + +@injectable() +export class ArduinoDaemonImpl implements ArduinoDaemon, BackendApplicationContribution { + + @inject(ILogger) + @named('daemon') + protected readonly logger: ILogger + + @inject(ToolOutputServiceServer) + protected readonly toolOutputService: ToolOutputServiceServer; + + @inject(EnvVariablesServer) + protected readonly envVariablesServer: EnvVariablesServer; + + protected readonly clients: Array = []; + protected readonly toDispose = new DisposableCollection(); + protected readonly onDaemonStartedEmitter = new Emitter(); + protected readonly onDaemonStoppedEmitter = new Emitter(); + + protected _running = false; + protected _ready = new Deferred(); + protected _execPath: string | undefined; + + // Backend application lifecycle. + + onStart(): void { + this.startDaemon(); + } + + onStop(): void { + this.dispose(); + } + + // JSON-RPC proxy + + setClient(client: ArduinoDaemonClient | undefined): void { + if (client) { + if (this._running) { + client.notifyStarted() + } else { + client.notifyStopped(); + } + this.clients.push(client); + } + } + + dispose(): void { + this.toDispose.dispose(); + this.clients.length = 0; + } + + disposeClient(client: ArduinoDaemonClient): void { + const index = this.clients.indexOf(client); + if (index === -1) { + this.logger.warn('Could not dispose client. It was not registered or was already disposed.'); + } else { + this.clients.splice(index, 1); + } + } + + // Daemon API + + async isRunning(): Promise { + return Promise.resolve(this._running); + } + + async startDaemon(): Promise { + try { + this.toDispose.dispose(); // This will `kill` the previously started daemon process, if any. + const cliPath = await this.getExecPath(); + this.onData(`Starting daemon from ${cliPath}...`); + const daemon = await this.spawnDaemonProcess(); + // Watchdog process for terminating the daemon process when the backend app terminates. + spawn(process.execPath, [join(__dirname, 'daemon-watcher.js'), String(process.pid), String(daemon.pid)], { + env: environment.electron.runAsNodeEnv(), + detached: true, + stdio: 'ignore', + windowsHide: true + }).unref(); + + this.toDispose.pushAll([ + Disposable.create(() => daemon.kill()), + Disposable.create(() => this.fireDaemonStopped()), + ]); + this.fireDaemonStarted(); + this.onData('Daemon is running.'); + } catch (err) { + this.onData('Failed to start the daemon.'); + this.onError(err); + let i = 5; // TODO: make this better + while (i) { + this.onData(`Restarting daemon in ${i} seconds...`); + await new Promise(resolve => setTimeout(resolve, 1000)); + i--; + } + this.onData('Restarting daemon now...'); + return this.startDaemon(); + } + } + + async stopDaemon(): Promise { + this.toDispose.dispose(); + } + + get onDaemonStarted(): Event { + return this.onDaemonStartedEmitter.event; + } + + get onDaemonStopped(): Event { + return this.onDaemonStoppedEmitter.event; + } + + get ready(): Promise { + return this._ready.promise; + } + + async getExecPath(): Promise { + if (this._execPath) { + return this._execPath; + } + this._execPath = await getExecPath('arduino-cli', this.onError.bind(this), 'version'); + return this._execPath; + } + + async getVersion(): Promise { + const execPath = await this.getExecPath(); + return spawnCommand(`"${execPath}"`, ['version'], this.onError.bind(this)); + } + + protected async getSpawnArgs(): Promise { + const configDirUri = await this.envVariablesServer.getConfigDirUri(); + const cliConfigPath = join(FileUri.fsPath(configDirUri), CLI_CONFIG); + return ['daemon', '--config-file', `"${cliConfigPath}"`, '-v', '--log-format', 'json']; + } + + protected async spawnDaemonProcess(): Promise { + const [cliPath, args] = await Promise.all([this.getExecPath(), this.getSpawnArgs()]); + const ready = new Deferred(); + const options = { shell: true }; + const daemon = spawn(`"${cliPath}"`, args, options); + + // If the process exists right after the daemon gRPC server has started (due to an invalid port, unknown address, TCP port in use, etc.) + // we have no idea about the root cause unless we sniff into the first data package and dispatch the logic on that. Note, we get a exit code 1. + let grpcServerIsReady = false; + + daemon.stdout.on('data', data => { + const message = data.toString(); + this.onData(message); + if (!grpcServerIsReady) { + const error = DaemonError.parse(message); + if (error) { + ready.reject(error); + } + if (message.includes('Daemon is listening on TCP port')) { + grpcServerIsReady = true; + ready.resolve(daemon); + } + } + }); + daemon.stderr.on('data', data => { + const message = data.toString(); + this.onData(data.toString()); + const error = DaemonError.parse(message); + ready.reject(error ? error : new Error(data.toString().trim())); + }); + daemon.on('exit', (code, signal) => { + if (code === 0 || signal === 'SIGINT' || signal === 'SIGKILL') { + this.onData('Daemon has stopped.'); + } else { + this.onData(`Daemon exited with ${typeof code === 'undefined' ? `signal '${signal}'` : `exit code: ${code}`}.`, { useOutput: false }); + } + }); + daemon.on('error', error => { + this.onError(error); + ready.reject(error); + }); + return ready.promise; + } + + protected fireDaemonStarted(): void { + this._running = true; + this._ready.resolve(); + this.onDaemonStartedEmitter.fire(); + for (const client of this.clients) { + client.notifyStarted(); + } + } + + protected fireDaemonStopped(): void { + if (!this._running) { + return; + } + this._running = false; + this._ready.reject(); // Reject all pending. + this._ready = new Deferred(); + this.onDaemonStoppedEmitter.fire(); + for (const client of this.clients) { + client.notifyStopped(); + } + } + + protected onData(message: string, options: { useOutput: boolean } = { useOutput: true }): void { + if (options.useOutput) { + this.toolOutputService.publishNewOutput('daemon', DaemonLog.toPrettyString(message)); + } + DaemonLog.log(this.logger, message); + } + + protected onError(error: any): void { + this.logger.error(error); + } + +} + +export class DaemonError extends Error { + + constructor(message: string, public readonly code: number, public readonly details?: string) { + super(message); + Object.setPrototypeOf(this, DaemonError.prototype); + } + +} + +export namespace DaemonError { + + export const ADDRESS_IN_USE = 0; + export const UNKNOWN_ADDRESS = 2; + export const INVALID_PORT = 4; + export const UNKNOWN = 8; + + export function parse(log: string): DaemonError | undefined { + const raw = log.toLocaleLowerCase(); + if (raw.includes('failed to listen')) { + if (raw.includes('address already in use') || (raw.includes('bind')) && raw.includes('only one usage of each socket address')) { + return new DaemonError('Failed to listen on TCP port. Address already in use.', DaemonError.ADDRESS_IN_USE); + } + if (raw.includes('is unknown name') || (raw.includes('tcp/') && (raw.includes('is an invalid port')))) { + return new DaemonError('Failed to listen on TCP port. Unknown address.', DaemonError.UNKNOWN_ADDRESS); + } + if (raw.includes('is an invalid port')) { + return new DaemonError('Failed to listen on TCP port. Invalid port.', DaemonError.INVALID_PORT); + } + } + // Based on the CLI logging: `failed to serve`, and any other FATAL errors. + // https://github.com/arduino/arduino-cli/blob/11abbee8a9f027d087d4230f266a87217677d423/cli/daemon/daemon.go#L89-L94 + if (raw.includes('failed to serve') && (raw.includes('"fatal"') || raw.includes('fata'))) { + return new DaemonError('Unexpected CLI start error.', DaemonError.UNKNOWN, log); + } + return undefined; + } + +} diff --git a/arduino-ide-extension/src/node/arduino-daemon.ts b/arduino-ide-extension/src/node/arduino-daemon.ts deleted file mode 100644 index fc843562..00000000 --- a/arduino-ide-extension/src/node/arduino-daemon.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { join } from 'path'; -import { exec, spawn, SpawnOptions } from 'child_process'; -import { inject, injectable, named } from 'inversify'; -import { ILogger } from '@theia/core/lib/common/logger'; -import { BackendApplicationContribution } from '@theia/core/lib/node'; -import { Deferred } from '@theia/core/lib/common/promise-util'; -import { environment } from '@theia/application-package/lib/environment'; -import { DaemonLog } from './daemon-log'; -import { ToolOutputServiceServer } from '../common/protocol/tool-output-service'; -import { ArduinoCliContribution } from './arduino-cli-contribution'; -import { ArduinoCli } from './arduino-cli'; - -@injectable() -export class ArduinoDaemon implements BackendApplicationContribution { - - @inject(ILogger) - @named('daemon') - protected readonly logger: ILogger - - @inject(ArduinoCli) - protected readonly cli: ArduinoCli; - - @inject(ArduinoCliContribution) - protected readonly cliContribution: ArduinoCliContribution; - - @inject(ToolOutputServiceServer) - protected readonly toolOutputService: ToolOutputServiceServer; - - protected isReady = new Deferred(); - - async onStart() { - try { - if (!this.cliContribution.debugCli) { - const executable = await this.cli.getExecPath(); - const version = await this.cli.getVersion(); - this.logger.info(`>>> Starting ${version.toLocaleLowerCase()} daemon from ${executable}...`); - const daemon = exec(`"${executable}" daemon -v --log-level info --format json --log-format json`, - { encoding: 'utf8', maxBuffer: 1024 * 1024 }, (err, stdout, stderr) => { - if (err || stderr) { - console.log(err || new Error(stderr)); - return; - } - console.log(stdout); - }); - const options: SpawnOptions = { - env: environment.electron.runAsNodeEnv(), - detached: true, - stdio: 'ignore' - } - const command = process.execPath; - const cp = spawn(command, [join(__dirname, 'daemon-watcher.js'), String(process.pid), String(daemon.pid)], options); - cp.unref(); - - if (daemon.stdout) { - daemon.stdout.on('data', data => { - this.toolOutputService.publishNewOutput('daemon', DaemonLog.toPrettyString(data.toString())); - DaemonLog.log(this.logger, data.toString()); - }); - } - if (daemon.stderr) { - daemon.stderr.on('data', data => { - this.toolOutputService.publishNewOutput('daemon error', DaemonLog.toPrettyString(data.toString())); - DaemonLog.log(this.logger, data.toString()); - }); - } - if (daemon.stderr) { - daemon.on('exit', (code, signal) => DaemonLog.log(this.logger, `Daemon exited with code: ${code}. Signal was: ${signal}.`)); - } - } - - await new Promise(resolve => setTimeout(resolve, 2000)); - this.isReady.resolve(); - if (!this.cliContribution.debugCli) { - this.logger.info(`<<< The 'arduino-cli' daemon is up and running.`); - } else { - this.logger.info(`Assuming the 'arduino-cli' already runs in debug mode.`); - } - } catch (error) { - this.isReady.reject(error || new Error('failed to start arduino-cli')); - } - } - -} diff --git a/arduino-ide-extension/src/node/arduino-env-variables-server.ts b/arduino-ide-extension/src/node/arduino-env-variables-server.ts new file mode 100644 index 00000000..34f2a264 --- /dev/null +++ b/arduino-ide-extension/src/node/arduino-env-variables-server.ts @@ -0,0 +1,12 @@ +import { join } from 'path'; +import { homedir } from 'os'; +import { injectable } from 'inversify'; +import { EnvVariablesServerImpl } from '@theia/core/lib/node/env-variables/env-variables-server'; +import { FileUri } from '@theia/core/lib/node/file-uri'; + +@injectable() +export class ArduinoEnvVariablesServer extends EnvVariablesServerImpl { + + protected readonly configDirUri = FileUri.create(join(homedir(), '.arduinoProIDE')).toString(); + +} diff --git a/arduino-ide-extension/src/node/arduino-backend-module.ts b/arduino-ide-extension/src/node/arduino-ide-backend-module.ts similarity index 68% rename from arduino-ide-extension/src/node/arduino-backend-module.ts rename to arduino-ide-extension/src/node/arduino-ide-backend-module.ts index 66f7a5e5..a62daa12 100644 --- a/arduino-ide-extension/src/node/arduino-backend-module.ts +++ b/arduino-ide-extension/src/node/arduino-ide-backend-module.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import * as os from 'os'; import { join } from 'path'; import { ContainerModule } from 'inversify'; -import { ArduinoDaemon } from './arduino-daemon'; +import { ArduinoDaemonImpl } from './arduino-daemon-impl'; import { ILogger } from '@theia/core/lib/common/logger'; import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application'; import { LanguageServerContribution } from '@theia/languages/lib/node'; @@ -12,11 +12,9 @@ import { BoardsService, BoardsServicePath, BoardsServiceClient } from '../common import { LibraryServiceImpl } from './library-service-impl'; import { BoardsServiceImpl } from './boards-service-impl'; import { CoreServiceImpl } from './core-service-impl'; -import { CoreService, CoreServicePath } from '../common/protocol/core-service'; +import { CoreService, CoreServicePath, CoreServiceClient } from '../common/protocol/core-service'; import { ConnectionContainerModule } from '@theia/core/lib/node/messaging/connection-container-module'; -import { WorkspaceServiceExtPath, WorkspaceServiceExt } from '../browser/workspace-service-ext'; -import { CoreClientProviderImpl } from './core-client-provider-impl'; -import { CoreClientProviderPath, CoreClientProvider } from './core-client-provider'; +import { CoreClientProvider } from './core-client-provider'; import { ToolOutputService, ToolOutputServiceClient, ToolOutputServiceServer } from '../common/protocol/tool-output-service'; import { ConnectionHandler, JsonRpcConnectionHandler } from '@theia/core'; import { ToolOutputServiceServerImpl } from './tool-output-service-impl'; @@ -24,26 +22,47 @@ import { DefaultWorkspaceServerExt } from './default-workspace-server-ext'; import { WorkspaceServer } from '@theia/workspace/lib/common'; import { SketchesServiceImpl } from './sketches-service-impl'; import { SketchesService, SketchesServicePath } from '../common/protocol/sketches-service'; -import { ConfigService, ConfigServicePath } from '../common/protocol/config-service'; +import { ConfigService, ConfigServicePath, ConfigServiceClient } from '../common/protocol/config-service'; +import { ArduinoDaemon, ArduinoDaemonPath, ArduinoDaemonClient } from '../common/protocol/arduino-daemon'; import { MonitorServiceImpl } from './monitor/monitor-service-impl'; import { MonitorService, MonitorServicePath, MonitorServiceClient } from '../common/protocol/monitor-service'; import { MonitorClientProvider } from './monitor/monitor-client-provider'; -import { ArduinoCli } from './arduino-cli'; -import { ArduinoCliContribution } from './arduino-cli-contribution'; -import { CliContribution } from '@theia/core/lib/node'; import { ConfigServiceImpl } from './config-service-impl'; +import { ArduinoHostedPluginReader } from './arduino-plugin-reader'; +import { HostedPluginReader } from '@theia/plugin-ext/lib/hosted/node/plugin-reader'; +import { ConfigFileValidator } from './config-file-validator'; +import { EnvVariablesServer } from '@theia/core/lib/common/env-variables'; +import { ArduinoEnvVariablesServer } from './arduino-env-variables-server'; export default new ContainerModule((bind, unbind, isBound, rebind) => { - // Theia backend CLI contribution. - bind(ArduinoCliContribution).toSelf().inSingletonScope(); - bind(CliContribution).toService(ArduinoCliContribution); - - // Provides the path of the Arduino CLI. - bind(ArduinoCli).toSelf().inSingletonScope(); + rebind(EnvVariablesServer).to(ArduinoEnvVariablesServer).inSingletonScope(); + bind(ConfigFileValidator).toSelf().inSingletonScope(); + // XXX: The config service must start earlier than the daemon, hence the binding order does matter. + // Shared config service + bind(ConfigServiceImpl).toSelf().inSingletonScope(); + bind(ConfigService).toService(ConfigServiceImpl); + bind(BackendApplicationContribution).toService(ConfigServiceImpl); + bind(ConnectionHandler).toDynamicValue(context => + new JsonRpcConnectionHandler(ConfigServicePath, client => { + const server = context.container.get(ConfigServiceImpl); + server.setClient(client); + client.onDidCloseConnection(() => server.disposeClient(client)); + return server; + }) + ).inSingletonScope(); // Shared daemon - bind(ArduinoDaemon).toSelf().inSingletonScope(); - bind(BackendApplicationContribution).toService(ArduinoDaemon); + bind(ArduinoDaemonImpl).toSelf().inSingletonScope(); + bind(ArduinoDaemon).toService(ArduinoDaemonImpl); + bind(BackendApplicationContribution).toService(ArduinoDaemonImpl); + bind(ConnectionHandler).toDynamicValue(context => + new JsonRpcConnectionHandler(ArduinoDaemonPath, async client => { + const server = context.container.get(ArduinoDaemonImpl); + server.setClient(client); + client.onDidCloseConnection(() => server.disposeClient(client)); + return server; + }) + ).inSingletonScope(); // Language server bind(ArduinoLanguageServerContribution).toSelf().inSingletonScope(); @@ -65,16 +84,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { }); bind(ConnectionContainerModule).toConstantValue(sketchesServiceConnectionModule); - // Config service - bind(ConfigServiceImpl).toSelf().inSingletonScope(); - bind(ConfigService).toService(ConfigServiceImpl); - const configServiceConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => { - bindBackendService(ConfigServicePath, ConfigService); - }); - bind(ConnectionContainerModule).toConstantValue(configServiceConnectionModule); - // Boards service - const boardsServiceConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => { + const boardsServiceConnectionModule = ConnectionContainerModule.create(async ({ bind, bindBackendService }) => { bind(BoardsServiceImpl).toSelf().inSingletonScope(); bind(BoardsService).toService(BoardsServiceImpl); bindBackendService(BoardsServicePath, BoardsService, (service, client) => { @@ -85,26 +96,25 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { }); bind(ConnectionContainerModule).toConstantValue(boardsServiceConnectionModule); - // Arduino core client provider per Theia connection. - const coreClientProviderConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => { - bind(CoreClientProviderImpl).toSelf().inSingletonScope(); - bind(CoreClientProvider).toService(CoreClientProviderImpl); - bindBackendService(CoreClientProviderPath, CoreClientProvider); - }); - bind(ConnectionContainerModule).toConstantValue(coreClientProviderConnectionModule); + // Shared Arduino core client provider service for the backend. + bind(CoreClientProvider).toSelf().inSingletonScope(); // Core service -> `verify` and `upload`. One per Theia connection. const connectionConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => { bind(CoreServiceImpl).toSelf().inSingletonScope(); bind(CoreService).toService(CoreServiceImpl); bindBackendService(BoardsServicePath, BoardsService); - bindBackendService(CoreClientProviderPath, CoreClientProvider); - bindBackendService(CoreServicePath, CoreService); + bindBackendService(CoreServicePath, CoreService, (service, client) => { + service.setClient(client); + client.onDidCloseConnection(() => service.dispose()); + return service; + }); }); bind(ConnectionContainerModule).toConstantValue(connectionConnectionModule); // Tool output service -> feedback from the daemon, compile and flash - bind(ToolOutputServiceServer).to(ToolOutputServiceServerImpl).inSingletonScope(); + bind(ToolOutputServiceServerImpl).toSelf().inSingletonScope(); + bind(ToolOutputServiceServer).toService(ToolOutputServiceServerImpl); bind(ConnectionHandler).toDynamicValue(context => new JsonRpcConnectionHandler(ToolOutputService.SERVICE_PATH, client => { const server = context.container.get(ToolOutputServiceServer); @@ -114,13 +124,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { }) ).inSingletonScope(); - // Bind the workspace service extension to the backend per Theia connection. - // So that we can access the workspace roots of the frontend. - const workspaceServiceExtConnectionModule = ConnectionContainerModule.create(({ bindFrontendService }) => { - bindFrontendService(WorkspaceServiceExtPath, WorkspaceServiceExt); - }); - bind(ConnectionContainerModule).toConstantValue(workspaceServiceExtConnectionModule); - // Logger for the Arduino daemon bind(ILogger).toDynamicValue(ctx => { const parentLogger = ctx.container.get(ILogger); @@ -133,6 +136,12 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { return parentLogger.child('discovery'); }).inSingletonScope().whenTargetNamed('discovery'); + // Logger for the CLI config service. From the CLI config (FS path aware), we make a URI-aware app config. + bind(ILogger).toDynamicValue(ctx => { + const parentLogger = ctx.container.get(ILogger); + return parentLogger.child('config'); + }).inSingletonScope().whenTargetNamed('config'); + // Default workspace server extension to initialize and use a fallback workspace. // If nothing was set previously. bind(DefaultWorkspaceServerExt).toSelf().inSingletonScope(); @@ -173,4 +182,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { process.env.CPP_CLANGD_COMMAND = clangdCommand; } } + + bind(ArduinoHostedPluginReader).toSelf().inSingletonScope(); + rebind(HostedPluginReader).toService(ArduinoHostedPluginReader); }); diff --git a/arduino-ide-extension/src/node/arduino-plugin-reader.ts b/arduino-ide-extension/src/node/arduino-plugin-reader.ts new file mode 100644 index 00000000..7a0f995d --- /dev/null +++ b/arduino-ide-extension/src/node/arduino-plugin-reader.ts @@ -0,0 +1,47 @@ +import { injectable, inject } from 'inversify'; +import { HostedPluginReader } from '@theia/plugin-ext/lib/hosted/node/plugin-reader'; +import { PluginPackage, PluginContribution } from '@theia/plugin-ext/lib/common/plugin-protocol'; +import { CLI_CONFIG } from './cli-config'; +import { ConfigServiceImpl } from './config-service-impl'; + +@injectable() +export class ArduinoHostedPluginReader extends HostedPluginReader { + + @inject(ConfigServiceImpl) + protected readonly configService: ConfigServiceImpl; + protected cliConfigSchemaUri: string; + + async onStart(): Promise { + this.cliConfigSchemaUri = await this.configService.getConfigurationFileSchemaUri(); + } + + readContribution(plugin: PluginPackage): PluginContribution | undefined { + const scanner = this.scanner.getScanner(plugin); + const contribution = scanner.getContribution(plugin); + if (!contribution) { + return contribution; + } + if (plugin.name === 'vscode-yaml' && plugin.publisher === 'redhat' && contribution.configuration) { + // Use the schema for the Arduino CLI. + const { configuration } = contribution; + for (const config of configuration) { + if (typeof config.properties['yaml.schemas'] === 'undefined') { + config.properties['yaml.schemas'] = {}; + } + config.properties['yaml.schemas'].default = { + [this.cliConfigSchemaUri]: [CLI_CONFIG] + }; + } + } else if (plugin.name === 'cpp' && plugin.publisher === 'vscode' && contribution.languages) { + // Do not associate `.ino` files with the VS Code built-in extension for C++. + // https://github.com/eclipse-theia/theia/issues/7533#issuecomment-611055328 + for (const language of contribution.languages) { + if (language.extensions) { + language.extensions = language.extensions.filter(ext => ext !== '.ino'); + } + } + } + return contribution; + } + +} diff --git a/arduino-ide-extension/src/node/boards-service-impl.ts b/arduino-ide-extension/src/node/boards-service-impl.ts index e668d13f..a5074d23 100644 --- a/arduino-ide-extension/src/node/boards-service-impl.ts +++ b/arduino-ide-extension/src/node/boards-service-impl.ts @@ -1,11 +1,7 @@ -import * as PQueue from 'p-queue'; import { injectable, inject, postConstruct, named } from 'inversify'; import { ILogger } from '@theia/core/lib/common/logger'; import { Deferred } from '@theia/core/lib/common/promise-util'; -import { - BoardsService, AttachedSerialBoard, BoardPackage, Board, AttachedNetworkBoard, BoardsServiceClient, - Port, BoardDetails, Tool -} from '../common/protocol/boards-service'; +import { BoardsService, BoardsPackage, Board, BoardsServiceClient, Port, BoardDetails, Tool, ConfigOption, ConfigValue } from '../common/protocol'; import { PlatformSearchReq, PlatformSearchResp, PlatformInstallReq, PlatformInstallResp, PlatformListReq, PlatformListResp, Platform, PlatformUninstallResp, PlatformUninstallReq @@ -38,68 +34,71 @@ export class BoardsServiceImpl implements BoardsService { * Stores the state of the currently discovered and attached boards. * This state is updated via periodical polls. If there diff, a change event will be sent out to the frontend. */ - protected attachedBoards: { boards: Board[] } = { boards: [] }; - protected availablePorts: { ports: Port[] } = { ports: [] }; + protected attachedBoards: Board[] = []; + protected availablePorts: Port[] = []; protected started = new Deferred(); protected client: BoardsServiceClient | undefined; - protected readonly queue = new PQueue({ autoStart: true, concurrency: 1 }); @postConstruct() protected async init(): Promise { this.discoveryTimer = setInterval(() => { this.discoveryLogger.trace('Discovering attached boards and available ports...'); - this.doGetAttachedBoardsAndAvailablePorts().then(({ boards, ports }) => { - const update = (oldBoards: Board[], newBoards: Board[], oldPorts: Port[], newPorts: Port[], message: string) => { - this.attachedBoards = { boards: newBoards }; - this.availablePorts = { ports: newPorts }; - this.discoveryLogger.info(`${message} - Discovered boards: ${JSON.stringify(newBoards)} and available ports: ${JSON.stringify(newPorts)}`); - if (this.client) { - this.client.notifyAttachedBoardsChanged({ - oldState: { - boards: oldBoards, - ports: oldPorts - }, - newState: { - boards: newBoards, - ports: newPorts + this.doGetAttachedBoardsAndAvailablePorts() + .then(({ boards, ports }) => { + const update = (oldBoards: Board[], newBoards: Board[], oldPorts: Port[], newPorts: Port[], message: string) => { + this.attachedBoards = newBoards; + this.availablePorts = newPorts; + this.discoveryLogger.info(`${message} - Discovered boards: ${JSON.stringify(newBoards)} and available ports: ${JSON.stringify(newPorts)}`); + if (this.client) { + this.client.notifyAttachedBoardsChanged({ + oldState: { + boards: oldBoards, + ports: oldPorts + }, + newState: { + boards: newBoards, + ports: newPorts + } + }); + } + } + const sortedBoards = boards.sort(Board.compare); + const sortedPorts = ports.sort(Port.compare); + this.discoveryLogger.trace(`Discovery done. Boards: ${JSON.stringify(sortedBoards)}. Ports: ${sortedPorts}`); + if (!this.discoveryInitialized) { + update([], sortedBoards, [], sortedPorts, 'Initialized attached boards and available ports.'); + this.discoveryInitialized = true; + this.started.resolve(); + } else { + Promise.all([ + this.getAttachedBoards(), + this.getAvailablePorts() + ]).then(([currentBoards, currentPorts]) => { + this.discoveryLogger.trace(`Updating discovered boards... ${JSON.stringify(currentBoards)}`); + if (currentBoards.length !== sortedBoards.length || currentPorts.length !== sortedPorts.length) { + update(currentBoards, sortedBoards, currentPorts, sortedPorts, 'Updated discovered boards and available ports.'); + return; } + // `currentBoards` is already sorted. + for (let i = 0; i < sortedBoards.length; i++) { + if (Board.compare(sortedBoards[i], currentBoards[i]) !== 0) { + update(currentBoards, sortedBoards, currentPorts, sortedPorts, 'Updated discovered boards.'); + return; + } + } + for (let i = 0; i < sortedPorts.length; i++) { + if (Port.compare(sortedPorts[i], currentPorts[i]) !== 0) { + update(currentBoards, sortedBoards, currentPorts, sortedPorts, 'Updated discovered boards.'); + return; + } + } + this.discoveryLogger.trace('No new boards were discovered.'); }); } - } - const sortedBoards = boards.sort(Board.compare); - const sortedPorts = ports.sort(Port.compare); - this.discoveryLogger.trace(`Discovery done. Boards: ${JSON.stringify(sortedBoards)}. Ports: ${sortedPorts}`); - if (!this.discoveryInitialized) { - update([], sortedBoards, [], sortedPorts, 'Initialized attached boards and available ports.'); - this.discoveryInitialized = true; - this.started.resolve(); - } else { - Promise.all([ - this.getAttachedBoards(), - this.getAvailablePorts() - ]).then(([{ boards: currentBoards }, { ports: currentPorts }]) => { - this.discoveryLogger.trace(`Updating discovered boards... ${JSON.stringify(currentBoards)}`); - if (currentBoards.length !== sortedBoards.length || currentPorts.length !== sortedPorts.length) { - update(currentBoards, sortedBoards, currentPorts, sortedPorts, 'Updated discovered boards and available ports.'); - return; - } - // `currentBoards` is already sorted. - for (let i = 0; i < sortedBoards.length; i++) { - if (Board.compare(sortedBoards[i], currentBoards[i]) !== 0) { - update(currentBoards, sortedBoards, currentPorts, sortedPorts, 'Updated discovered boards.'); - return; - } - } - for (let i = 0; i < sortedPorts.length; i++) { - if (Port.compare(sortedPorts[i], currentPorts[i]) !== 0) { - update(currentBoards, sortedBoards, currentPorts, sortedPorts, 'Updated discovered boards.'); - return; - } - } - this.discoveryLogger.trace('No new boards were discovered.'); - }); - } - }); + }) + .catch(error => { + this.logger.error('Unexpected error when polling boards and ports.', error); + }); }, 1000); } @@ -109,8 +108,6 @@ export class BoardsServiceImpl implements BoardsService { dispose(): void { this.logger.info('>>> Disposing boards service...'); - this.queue.pause(); - this.queue.clear(); if (this.discoveryTimer !== undefined) { clearInterval(this.discoveryTimer); } @@ -118,130 +115,165 @@ export class BoardsServiceImpl implements BoardsService { this.client = undefined; } - async getAttachedBoards(): Promise<{ boards: Board[] }> { + async getAttachedBoards(): Promise { await this.started.promise; return this.attachedBoards; } - async getAvailablePorts(): Promise<{ ports: Port[] }> { + async getAvailablePorts(): Promise { await this.started.promise; return this.availablePorts; } private async doGetAttachedBoardsAndAvailablePorts(): Promise<{ boards: Board[], ports: Port[] }> { - return this.queue.add(() => { - return new Promise<{ boards: Board[], ports: Port[] }>(async resolve => { - const coreClient = await this.coreClientProvider.getClient(); - const boards: Board[] = []; - const ports: Port[] = []; - if (!coreClient) { - resolve({ boards, ports }); + const boards: Board[] = []; + const ports: Port[] = []; + + const coreClient = await this.coreClientProvider.client(); + if (!coreClient) { + return { boards, ports }; + } + + const { client, instance } = coreClient; + const req = new BoardListReq(); + req.setInstance(instance); + const resp = await new Promise(resolve => { + client.boardList(req, (err, resp) => { + if (err) { + this.logger.error(err); + resolve(undefined); return; } - - const { client, instance } = coreClient; - const req = new BoardListReq(); - req.setInstance(instance); - const resp = await new Promise((resolve, reject) => client.boardList(req, (err, resp) => (!!err ? reject : resolve)(!!err ? err : resp))); - const portsList = resp.getPortsList(); - // TODO: remove unknown board mocking! - // You also have to manually import `DetectedPort`. - // const unknownPortList = new DetectedPort(); - // unknownPortList.setAddress(platform() === 'win32' ? 'COM3' : platform() === 'darwin' ? '/dev/cu.usbmodem94401' : '/dev/ttyACM0'); - // unknownPortList.setProtocol('serial'); - // unknownPortList.setProtocolLabel('Serial Port (USB)'); - // portsList.push(unknownPortList); - - for (const portList of portsList) { - const protocol = Port.Protocol.toProtocol(portList.getProtocol()); - const address = portList.getAddress(); - // Available ports can exist with unknown attached boards. - // The `BoardListResp` looks like this for a known attached board: - // [ - // { - // "address": "COM10", - // "protocol": "serial", - // "protocol_label": "Serial Port (USB)", - // "boards": [ - // { - // "name": "Arduino MKR1000", - // "FQBN": "arduino:samd:mkr1000" - // } - // ] - // } - // ] - // And the `BoardListResp` looks like this for an unknown board: - // [ - // { - // "address": "COM9", - // "protocol": "serial", - // "protocol_label": "Serial Port (USB)", - // } - // ] - ports.push({ protocol, address }); - for (const board of portList.getBoardsList()) { - const name = board.getName() || 'unknown'; - const fqbn = board.getFqbn(); - const port = address; - if (protocol === 'serial') { - boards.push({ - name, - fqbn, - port - }); - } else if (protocol === 'network') { // We assume, it is a `network` board. - boards.push({ - name, - fqbn, - address, - port - }); - } else { - console.warn(`Unknown protocol for port: ${address}.`); - } - } - } - // TODO: remove mock board! - // boards.push(...[ - // { name: 'Arduino/Genuino Uno', fqbn: 'arduino:avr:uno', port: '/dev/cu.usbmodem14201' }, - // { name: 'Arduino/Genuino Uno', fqbn: 'arduino:avr:uno', port: '/dev/cu.usbmodem142xx' }, - // ]); - resolve({ boards, ports }); - }) + resolve(resp); + }); }); + if (!resp) { + return { boards, ports }; + } + const portsList = resp.getPortsList(); + // TODO: remove unknown board mocking! + // You also have to manually import `DetectedPort`. + // const unknownPortList = new DetectedPort(); + // unknownPortList.setAddress(platform() === 'win32' ? 'COM3' : platform() === 'darwin' ? '/dev/cu.usbmodem94401' : '/dev/ttyACM0'); + // unknownPortList.setProtocol('serial'); + // unknownPortList.setProtocolLabel('Serial Port (USB)'); + // portsList.push(unknownPortList); + + for (const portList of portsList) { + const protocol = Port.Protocol.toProtocol(portList.getProtocol()); + const address = portList.getAddress(); + // Available ports can exist with unknown attached boards. + // The `BoardListResp` looks like this for a known attached board: + // [ + // { + // "address": "COM10", + // "protocol": "serial", + // "protocol_label": "Serial Port (USB)", + // "boards": [ + // { + // "name": "Arduino MKR1000", + // "FQBN": "arduino:samd:mkr1000" + // } + // ] + // } + // ] + // And the `BoardListResp` looks like this for an unknown board: + // [ + // { + // "address": "COM9", + // "protocol": "serial", + // "protocol_label": "Serial Port (USB)", + // } + // ] + ports.push({ protocol, address }); + for (const board of portList.getBoardsList()) { + const name = board.getName() || 'unknown'; + const fqbn = board.getFqbn(); + const port = { address, protocol }; + boards.push({ name, fqbn, port }); + } + } + // TODO: remove mock board! + // boards.push(...[ + // { name: 'Arduino/Genuino Uno', fqbn: 'arduino:avr:uno', port: '/dev/cu.usbmodem14201' }, + // { name: 'Arduino/Genuino Uno', fqbn: 'arduino:avr:uno', port: '/dev/cu.usbmodem142xx' }, + // ]); + return { boards, ports }; } - async detail(options: { id: string }): Promise<{ item?: BoardDetails }> { - const coreClient = await this.coreClientProvider.getClient(); + async getBoardDetails(options: { fqbn: string }): Promise { + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { - return {}; + throw new Error(`Cannot acquire core client provider.`); } const { client, instance } = coreClient; + const { fqbn } = options; const req = new BoardDetailsReq(); req.setInstance(instance); - req.setFqbn(options.id); - const resp = await new Promise((resolve, reject) => client.boardDetails(req, (err, resp) => (!!err ? reject : resolve)(!!err ? err : resp))); + req.setFqbn(fqbn); + const resp = await new Promise((resolve, reject) => client.boardDetails(req, (err, resp) => { + if (err) { + reject(err); + return; + } + resolve(resp); + })); - const tools = await Promise.all(resp.getRequiredToolsList().map(async t => { + const requiredTools = resp.getRequiredToolsList().map(t => { name: t.getName(), packager: t.getPackager(), version: t.getVersion() - })); + }); + + const configOptions = resp.getConfigOptionsList().map(c => { + label: c.getOptionLabel(), + option: c.getOption(), + values: c.getValuesList().map(v => { + value: v.getValue(), + label: v.getValueLabel(), + selected: v.getSelected() + }) + }); return { - item: { - name: resp.getName(), - fqbn: options.id, - requiredTools: tools - } + fqbn, + requiredTools, + configOptions }; } - async search(options: { query?: string }): Promise<{ items: BoardPackage[] }> { - const coreClient = await this.coreClientProvider.getClient(); + async getBoardPackage(options: { id: string }): Promise { + const { id: expectedId } = options; + if (!expectedId) { + return undefined; + } + const packages = await this.search({ query: expectedId }); + return packages.find(({ id }) => id === expectedId); + } + + async getContainerBoardPackage(options: { fqbn: string }): Promise { + const { fqbn: expectedFqbn } = options; + if (!expectedFqbn) { + return undefined; + } + const packages = await this.search({}); + return packages.find(({ boards }) => boards.some(({ fqbn }) => fqbn === expectedFqbn)); + } + + async searchBoards(options: { query?: string }): Promise> { + const query = (options.query || '').toLocaleLowerCase(); + const results = await this.search(options); + return results.map(item => item.boards.map(board => ({ ...board, packageName: item.name }))) + .reduce((acc, curr) => acc.concat(curr), []) + .filter(board => board.name.toLocaleLowerCase().indexOf(query) !== -1) + .sort(Board.compare); + } + + async search(options: { query?: string }): Promise { + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { - return { items: [] }; + return []; } const { client, instance } = coreClient; @@ -257,7 +289,7 @@ export class BoardsServiceImpl implements BoardsService { req.setAllVersions(true); req.setInstance(instance); const resp = await new Promise((resolve, reject) => client.platformSearch(req, (err, resp) => (!!err ? reject : resolve)(!!err ? err : resp))); - const packages = new Map(); + const packages = new Map(); const toPackage = (platform: Platform) => { let installedVersion: string | undefined; const matchingPlatform = installedPlatforms.find(ip => ip.getId() === platform.getId()); @@ -299,7 +331,7 @@ export class BoardsServiceImpl implements BoardsService { if (!leftInstalled && rightInstalled) { return 1; } - return Installable.Version.COMPARATOR(right.getLatest(), left.getLatest()); // Higher version comes first. + return Installable.Version.COMPARATOR(left.getLatest(), right.getLatest()); // Higher version comes first. } for (const id of groupedById.keys()) { groupedById.get(id)!.sort(installedAwareVersionComparator); @@ -318,23 +350,23 @@ export class BoardsServiceImpl implements BoardsService { } } - return { items: [...packages.values()] }; + return [...packages.values()]; } - async install(options: { item: BoardPackage, version?: Installable.Version }): Promise { + async install(options: { item: BoardsPackage, version?: Installable.Version }): Promise { const pkg = options.item; const version = !!options.version ? options.version : pkg.availableVersions[0]; - const coreClient = await this.coreClientProvider.getClient(); + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { return; } const { client, instance } = coreClient; - const [platform, boardName] = pkg.id.split(":"); + const [platform, architecture] = pkg.id.split(":"); const req = new PlatformInstallReq(); req.setInstance(instance); - req.setArchitecture(boardName); + req.setArchitecture(architecture); req.setPlatformPackage(platform); req.setVersion(version); @@ -351,24 +383,26 @@ export class BoardsServiceImpl implements BoardsService { resp.on('error', reject); }); if (this.client) { - this.client.notifyBoardInstalled({ pkg }); + const packages = await this.search({}); + const updatedPackage = packages.find(({ id }) => id === pkg.id) || pkg; + this.client.notifyBoardInstalled({ pkg: updatedPackage }); } console.info("Board installation done", pkg); } - async uninstall(options: { item: BoardPackage }): Promise { + async uninstall(options: { item: BoardsPackage }): Promise { const pkg = options.item; - const coreClient = await this.coreClientProvider.getClient(); + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { return; } const { client, instance } = coreClient; - const [platform, boardName] = pkg.id.split(":"); + const [platform, architecture] = pkg.id.split(":"); const req = new PlatformUninstallReq(); req.setInstance(instance); - req.setArchitecture(boardName); + req.setArchitecture(architecture); req.setPlatformPackage(platform); console.info("Starting board uninstallation", pkg); @@ -385,6 +419,7 @@ export class BoardsServiceImpl implements BoardsService { resp.on('error', reject); }); if (this.client) { + // Here, unlike at `install` we send out the argument `pkg`. Otherwise, we would not know about the board FQBN. this.client.notifyBoardUninstalled({ pkg }); } console.info("Board uninstallation done", pkg); diff --git a/arduino-ide-extension/src/node/cli-config.ts b/arduino-ide-extension/src/node/cli-config.ts new file mode 100644 index 00000000..692871e7 --- /dev/null +++ b/arduino-ide-extension/src/node/cli-config.ts @@ -0,0 +1,122 @@ +import { join } from 'path'; +import { RecursivePartial } from '@theia/core/lib/common/types'; + +export const CLI_CONFIG = 'arduino-cli.yaml'; +export const CLI_CONFIG_SCHEMA = 'arduino-cli.schema.json'; +export const CLI_CONFIG_SCHEMA_PATH = join(__dirname, '..', '..', 'data', 'cli', 'schema', CLI_CONFIG_SCHEMA); + +export interface BoardManager { + readonly additional_urls: Array; +} +export namespace BoardManager { + export function sameAs(left: RecursivePartial | undefined, right: RecursivePartial | undefined): boolean { + const leftOrDefault = left || {}; + const rightOrDefault = right || {}; + const leftUrls = Array.from(new Set(leftOrDefault.additional_urls || [])); + const rightUrls = Array.from(new Set(rightOrDefault.additional_urls || [])); + if (leftUrls.length !== rightUrls.length) { + return false; + } + return leftUrls.every(url => rightUrls.indexOf(url) !== -1); + } +} + +export interface Daemon { + readonly port: string | number; +} +export namespace Daemon { + export function is(daemon: RecursivePartial | undefined): daemon is Daemon { + return !!daemon && !!daemon.port; + } + export function sameAs(left: RecursivePartial | undefined, right: RecursivePartial | undefined): boolean { + if (left === undefined) { + return right === undefined; + } + if (right === undefined) { + return left === undefined; + } + return String(left.port) === String(right.port); + } +} + +export interface Directories { + readonly data: string; + readonly downloads: string; + readonly user: string; +} +export namespace Directories { + export function is(directories: RecursivePartial | undefined): directories is Directories { + return !!directories + && !!directories.data + && !!directories.downloads + && !!directories.user; + } + export function sameAs(left: RecursivePartial | undefined, right: RecursivePartial | undefined): boolean { + if (left === undefined) { + return right === undefined; + } + if (right === undefined) { + return left === undefined; + } + return left.data === right.data + && left.downloads === right.downloads + && left.user === right.user; + } +} + +export interface Logging { + file: string; + format: Logging.Format; + level: Logging.Level; +} +export namespace Logging { + + export type Format = 'text' | 'json'; + export type Level = 'trace' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'panic'; + + export function sameAs(left: RecursivePartial | undefined, right: RecursivePartial | undefined): boolean { + if (left === undefined) { + return right === undefined; + } + if (right === undefined) { + return left === undefined; + } + if (left.file !== right.file) { + return false; + } + if (left.format !== right.format) { + return false; + } + if (left.level !== right.level) { + return false; + } + return true; + } + +} + +// Arduino CLI config scheme +export interface CliConfig { + board_manager?: RecursivePartial; + directories?: RecursivePartial; + logging?: RecursivePartial; +} + +// Bare minimum required CLI config. +export interface DefaultCliConfig extends CliConfig { + directories: Directories; + daemon: Daemon; +} +export namespace DefaultCliConfig { + export function is(config: RecursivePartial | undefined): config is DefaultCliConfig { + return !!config + && Directories.is(config.directories) + && Daemon.is(config.daemon); + } + export function sameAs(left: DefaultCliConfig, right: DefaultCliConfig): boolean { + return Directories.sameAs(left.directories, right.directories) + && Daemon.sameAs(left.daemon, right.daemon) + && BoardManager.sameAs(left.board_manager, right.board_manager) + && Logging.sameAs(left.logging, right.logging); + } +} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/board_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/board_grpc_pb.js deleted file mode 100644 index 97b3a246..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/board_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/board_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/board_pb.d.ts deleted file mode 100644 index 36ca1c93..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/board_pb.d.ts +++ /dev/null @@ -1,378 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/board.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as commands_common_pb from "../commands/common_pb"; - -export class BoardDetailsReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getFqbn(): string; - setFqbn(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardDetailsReq.AsObject; - static toObject(includeInstance: boolean, msg: BoardDetailsReq): BoardDetailsReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardDetailsReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardDetailsReq; - static deserializeBinaryFromReader(message: BoardDetailsReq, reader: jspb.BinaryReader): BoardDetailsReq; -} - -export namespace BoardDetailsReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - fqbn: string, - } -} - -export class BoardDetailsResp extends jspb.Message { - getName(): string; - setName(value: string): void; - - clearConfigOptionsList(): void; - getConfigOptionsList(): Array; - setConfigOptionsList(value: Array): void; - addConfigOptions(value?: ConfigOption, index?: number): ConfigOption; - - clearRequiredToolsList(): void; - getRequiredToolsList(): Array; - setRequiredToolsList(value: Array): void; - addRequiredTools(value?: RequiredTool, index?: number): RequiredTool; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardDetailsResp.AsObject; - static toObject(includeInstance: boolean, msg: BoardDetailsResp): BoardDetailsResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardDetailsResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardDetailsResp; - static deserializeBinaryFromReader(message: BoardDetailsResp, reader: jspb.BinaryReader): BoardDetailsResp; -} - -export namespace BoardDetailsResp { - export type AsObject = { - name: string, - configOptionsList: Array, - requiredToolsList: Array, - } -} - -export class ConfigOption extends jspb.Message { - getOption(): string; - setOption(value: string): void; - - getOptionLabel(): string; - setOptionLabel(value: string): void; - - clearValuesList(): void; - getValuesList(): Array; - setValuesList(value: Array): void; - addValues(value?: ConfigValue, index?: number): ConfigValue; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ConfigOption.AsObject; - static toObject(includeInstance: boolean, msg: ConfigOption): ConfigOption.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ConfigOption, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ConfigOption; - static deserializeBinaryFromReader(message: ConfigOption, reader: jspb.BinaryReader): ConfigOption; -} - -export namespace ConfigOption { - export type AsObject = { - option: string, - optionLabel: string, - valuesList: Array, - } -} - -export class ConfigValue extends jspb.Message { - getValue(): string; - setValue(value: string): void; - - getValueLabel(): string; - setValueLabel(value: string): void; - - getSelected(): boolean; - setSelected(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ConfigValue.AsObject; - static toObject(includeInstance: boolean, msg: ConfigValue): ConfigValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ConfigValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ConfigValue; - static deserializeBinaryFromReader(message: ConfigValue, reader: jspb.BinaryReader): ConfigValue; -} - -export namespace ConfigValue { - export type AsObject = { - value: string, - valueLabel: string, - selected: boolean, - } -} - -export class RequiredTool extends jspb.Message { - getName(): string; - setName(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - getPackager(): string; - setPackager(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): RequiredTool.AsObject; - static toObject(includeInstance: boolean, msg: RequiredTool): RequiredTool.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: RequiredTool, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): RequiredTool; - static deserializeBinaryFromReader(message: RequiredTool, reader: jspb.BinaryReader): RequiredTool; -} - -export namespace RequiredTool { - export type AsObject = { - name: string, - version: string, - packager: string, - } -} - -export class BoardAttachReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getBoardUri(): string; - setBoardUri(value: string): void; - - getSketchPath(): string; - setSketchPath(value: string): void; - - getSearchTimeout(): string; - setSearchTimeout(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardAttachReq.AsObject; - static toObject(includeInstance: boolean, msg: BoardAttachReq): BoardAttachReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardAttachReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardAttachReq; - static deserializeBinaryFromReader(message: BoardAttachReq, reader: jspb.BinaryReader): BoardAttachReq; -} - -export namespace BoardAttachReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - boardUri: string, - sketchPath: string, - searchTimeout: string, - } -} - -export class BoardAttachResp extends jspb.Message { - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardAttachResp.AsObject; - static toObject(includeInstance: boolean, msg: BoardAttachResp): BoardAttachResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardAttachResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardAttachResp; - static deserializeBinaryFromReader(message: BoardAttachResp, reader: jspb.BinaryReader): BoardAttachResp; -} - -export namespace BoardAttachResp { - export type AsObject = { - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class BoardListReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardListReq.AsObject; - static toObject(includeInstance: boolean, msg: BoardListReq): BoardListReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardListReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardListReq; - static deserializeBinaryFromReader(message: BoardListReq, reader: jspb.BinaryReader): BoardListReq; -} - -export namespace BoardListReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - } -} - -export class BoardListResp extends jspb.Message { - clearPortsList(): void; - getPortsList(): Array; - setPortsList(value: Array): void; - addPorts(value?: DetectedPort, index?: number): DetectedPort; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardListResp.AsObject; - static toObject(includeInstance: boolean, msg: BoardListResp): BoardListResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardListResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardListResp; - static deserializeBinaryFromReader(message: BoardListResp, reader: jspb.BinaryReader): BoardListResp; -} - -export namespace BoardListResp { - export type AsObject = { - portsList: Array, - } -} - -export class DetectedPort extends jspb.Message { - getAddress(): string; - setAddress(value: string): void; - - getProtocol(): string; - setProtocol(value: string): void; - - getProtocolLabel(): string; - setProtocolLabel(value: string): void; - - clearBoardsList(): void; - getBoardsList(): Array; - setBoardsList(value: Array): void; - addBoards(value?: BoardListItem, index?: number): BoardListItem; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DetectedPort.AsObject; - static toObject(includeInstance: boolean, msg: DetectedPort): DetectedPort.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DetectedPort, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DetectedPort; - static deserializeBinaryFromReader(message: DetectedPort, reader: jspb.BinaryReader): DetectedPort; -} - -export namespace DetectedPort { - export type AsObject = { - address: string, - protocol: string, - protocolLabel: string, - boardsList: Array, - } -} - -export class BoardListAllReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - clearSearchArgsList(): void; - getSearchArgsList(): Array; - setSearchArgsList(value: Array): void; - addSearchArgs(value: string, index?: number): string; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardListAllReq.AsObject; - static toObject(includeInstance: boolean, msg: BoardListAllReq): BoardListAllReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardListAllReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardListAllReq; - static deserializeBinaryFromReader(message: BoardListAllReq, reader: jspb.BinaryReader): BoardListAllReq; -} - -export namespace BoardListAllReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - searchArgsList: Array, - } -} - -export class BoardListAllResp extends jspb.Message { - clearBoardsList(): void; - getBoardsList(): Array; - setBoardsList(value: Array): void; - addBoards(value?: BoardListItem, index?: number): BoardListItem; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardListAllResp.AsObject; - static toObject(includeInstance: boolean, msg: BoardListAllResp): BoardListAllResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardListAllResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardListAllResp; - static deserializeBinaryFromReader(message: BoardListAllResp, reader: jspb.BinaryReader): BoardListAllResp; -} - -export namespace BoardListAllResp { - export type AsObject = { - boardsList: Array, - } -} - -export class BoardListItem extends jspb.Message { - getName(): string; - setName(value: string): void; - - getFqbn(): string; - setFqbn(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): BoardListItem.AsObject; - static toObject(includeInstance: boolean, msg: BoardListItem): BoardListItem.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: BoardListItem, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): BoardListItem; - static deserializeBinaryFromReader(message: BoardListItem, reader: jspb.BinaryReader): BoardListItem; -} - -export namespace BoardListItem { - export type AsObject = { - name: string, - fqbn: string, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/board_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/board_pb.js deleted file mode 100644 index c88f9431..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/board_pb.js +++ /dev/null @@ -1,2591 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var commands_common_pb = require('../commands/common_pb.js'); -goog.object.extend(proto, commands_common_pb); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardAttachReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardAttachResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardDetailsReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardDetailsResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardListAllReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardListAllResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardListItem', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardListReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.BoardListResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.ConfigOption', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.ConfigValue', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.DetectedPort', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.RequiredTool', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardDetailsReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardDetailsReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardDetailsReq.displayName = 'proto.cc.arduino.cli.commands.BoardDetailsReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardDetailsReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardDetailsReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - fqbn: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardDetailsReq} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardDetailsReq; - return proto.cc.arduino.cli.commands.BoardDetailsReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardDetailsReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardDetailsReq} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFqbn(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardDetailsReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardDetailsReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getFqbn(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string fqbn = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.getFqbn = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardDetailsReq.prototype.setFqbn = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardDetailsResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.BoardDetailsResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardDetailsResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardDetailsResp.displayName = 'proto.cc.arduino.cli.commands.BoardDetailsResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.repeatedFields_ = [3,4]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardDetailsResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardDetailsResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - configOptionsList: jspb.Message.toObjectList(msg.getConfigOptionsList(), - proto.cc.arduino.cli.commands.ConfigOption.toObject, includeInstance), - requiredToolsList: jspb.Message.toObjectList(msg.getRequiredToolsList(), - proto.cc.arduino.cli.commands.RequiredTool.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardDetailsResp} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardDetailsResp; - return proto.cc.arduino.cli.commands.BoardDetailsResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardDetailsResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardDetailsResp} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = new proto.cc.arduino.cli.commands.ConfigOption; - reader.readMessage(value,proto.cc.arduino.cli.commands.ConfigOption.deserializeBinaryFromReader); - msg.addConfigOptions(value); - break; - case 4: - var value = new proto.cc.arduino.cli.commands.RequiredTool; - reader.readMessage(value,proto.cc.arduino.cli.commands.RequiredTool.deserializeBinaryFromReader); - msg.addRequiredTools(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardDetailsResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardDetailsResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getConfigOptionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - proto.cc.arduino.cli.commands.ConfigOption.serializeBinaryToWriter - ); - } - f = message.getRequiredToolsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 4, - f, - proto.cc.arduino.cli.commands.RequiredTool.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * repeated ConfigOption config_options = 3; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.getConfigOptionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.ConfigOption, 3)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.setConfigOptionsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.ConfigOption=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.ConfigOption} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.addConfigOptions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.cc.arduino.cli.commands.ConfigOption, opt_index); -}; - - -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.clearConfigOptionsList = function() { - this.setConfigOptionsList([]); -}; - - -/** - * repeated RequiredTool required_tools = 4; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.getRequiredToolsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.RequiredTool, 4)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.setRequiredToolsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 4, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.RequiredTool=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.RequiredTool} - */ -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.addRequiredTools = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.cc.arduino.cli.commands.RequiredTool, opt_index); -}; - - -proto.cc.arduino.cli.commands.BoardDetailsResp.prototype.clearRequiredToolsList = function() { - this.setRequiredToolsList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.ConfigOption = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.ConfigOption.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.ConfigOption, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.ConfigOption.displayName = 'proto.cc.arduino.cli.commands.ConfigOption'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.ConfigOption.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.ConfigOption.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.ConfigOption} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.ConfigOption.toObject = function(includeInstance, msg) { - var f, obj = { - option: jspb.Message.getFieldWithDefault(msg, 1, ""), - optionLabel: jspb.Message.getFieldWithDefault(msg, 2, ""), - valuesList: jspb.Message.toObjectList(msg.getValuesList(), - proto.cc.arduino.cli.commands.ConfigValue.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.ConfigOption} - */ -proto.cc.arduino.cli.commands.ConfigOption.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.ConfigOption; - return proto.cc.arduino.cli.commands.ConfigOption.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.ConfigOption} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.ConfigOption} - */ -proto.cc.arduino.cli.commands.ConfigOption.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setOption(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setOptionLabel(value); - break; - case 3: - var value = new proto.cc.arduino.cli.commands.ConfigValue; - reader.readMessage(value,proto.cc.arduino.cli.commands.ConfigValue.deserializeBinaryFromReader); - msg.addValues(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.ConfigOption.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.ConfigOption} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.ConfigOption.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getOption(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getOptionLabel(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getValuesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - proto.cc.arduino.cli.commands.ConfigValue.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string option = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.getOption = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.setOption = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string option_label = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.getOptionLabel = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.setOptionLabel = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * repeated ConfigValue values = 3; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.getValuesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.ConfigValue, 3)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.setValuesList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.ConfigValue=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.ConfigValue} - */ -proto.cc.arduino.cli.commands.ConfigOption.prototype.addValues = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.cc.arduino.cli.commands.ConfigValue, opt_index); -}; - - -proto.cc.arduino.cli.commands.ConfigOption.prototype.clearValuesList = function() { - this.setValuesList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.ConfigValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.ConfigValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.ConfigValue.displayName = 'proto.cc.arduino.cli.commands.ConfigValue'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.ConfigValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.ConfigValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.ConfigValue.toObject = function(includeInstance, msg) { - var f, obj = { - value: jspb.Message.getFieldWithDefault(msg, 1, ""), - valueLabel: jspb.Message.getFieldWithDefault(msg, 2, ""), - selected: jspb.Message.getFieldWithDefault(msg, 3, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.ConfigValue} - */ -proto.cc.arduino.cli.commands.ConfigValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.ConfigValue; - return proto.cc.arduino.cli.commands.ConfigValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.ConfigValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.ConfigValue} - */ -proto.cc.arduino.cli.commands.ConfigValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setValue(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setValueLabel(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setSelected(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.ConfigValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.ConfigValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.ConfigValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getValue(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getValueLabel(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSelected(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * optional string value = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.getValue = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.setValue = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string value_label = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.getValueLabel = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.setValueLabel = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool selected = 3; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.getSelected = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.ConfigValue.prototype.setSelected = function(value) { - jspb.Message.setProto3BooleanField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.RequiredTool = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.RequiredTool, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.RequiredTool.displayName = 'proto.cc.arduino.cli.commands.RequiredTool'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.RequiredTool.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.RequiredTool} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.RequiredTool.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - version: jspb.Message.getFieldWithDefault(msg, 2, ""), - packager: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.RequiredTool} - */ -proto.cc.arduino.cli.commands.RequiredTool.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.RequiredTool; - return proto.cc.arduino.cli.commands.RequiredTool.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.RequiredTool} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.RequiredTool} - */ -proto.cc.arduino.cli.commands.RequiredTool.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPackager(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.RequiredTool.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.RequiredTool} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.RequiredTool.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getPackager(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string version = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string packager = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.getPackager = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.RequiredTool.prototype.setPackager = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardAttachReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardAttachReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardAttachReq.displayName = 'proto.cc.arduino.cli.commands.BoardAttachReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardAttachReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardAttachReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardAttachReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - boardUri: jspb.Message.getFieldWithDefault(msg, 2, ""), - sketchPath: jspb.Message.getFieldWithDefault(msg, 3, ""), - searchTimeout: jspb.Message.getFieldWithDefault(msg, 4, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardAttachReq} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardAttachReq; - return proto.cc.arduino.cli.commands.BoardAttachReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardAttachReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardAttachReq} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setBoardUri(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSketchPath(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSearchTimeout(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardAttachReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardAttachReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardAttachReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getBoardUri(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSketchPath(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSearchTimeout(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string board_uri = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.getBoardUri = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.setBoardUri = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string sketch_path = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.getSketchPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.setSketchPath = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string search_timeout = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.getSearchTimeout = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardAttachReq.prototype.setSearchTimeout = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardAttachResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardAttachResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardAttachResp.displayName = 'proto.cc.arduino.cli.commands.BoardAttachResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardAttachResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardAttachResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardAttachResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardAttachResp.toObject = function(includeInstance, msg) { - var f, obj = { - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardAttachResp} - */ -proto.cc.arduino.cli.commands.BoardAttachResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardAttachResp; - return proto.cc.arduino.cli.commands.BoardAttachResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardAttachResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardAttachResp} - */ -proto.cc.arduino.cli.commands.BoardAttachResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardAttachResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardAttachResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardAttachResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardAttachResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional TaskProgress task_progress = 1; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.BoardAttachResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.BoardAttachResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.BoardAttachResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.BoardAttachResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardListReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardListReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardListReq.displayName = 'proto.cc.arduino.cli.commands.BoardListReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardListReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardListReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardListReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardListReq} - */ -proto.cc.arduino.cli.commands.BoardListReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardListReq; - return proto.cc.arduino.cli.commands.BoardListReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardListReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardListReq} - */ -proto.cc.arduino.cli.commands.BoardListReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardListReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardListReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardListReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.BoardListReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.BoardListReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.BoardListReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.BoardListReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardListResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.BoardListResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardListResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardListResp.displayName = 'proto.cc.arduino.cli.commands.BoardListResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.BoardListResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardListResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardListResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardListResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListResp.toObject = function(includeInstance, msg) { - var f, obj = { - portsList: jspb.Message.toObjectList(msg.getPortsList(), - proto.cc.arduino.cli.commands.DetectedPort.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardListResp} - */ -proto.cc.arduino.cli.commands.BoardListResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardListResp; - return proto.cc.arduino.cli.commands.BoardListResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardListResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardListResp} - */ -proto.cc.arduino.cli.commands.BoardListResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.DetectedPort; - reader.readMessage(value,proto.cc.arduino.cli.commands.DetectedPort.deserializeBinaryFromReader); - msg.addPorts(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardListResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardListResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardListResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPortsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.DetectedPort.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated DetectedPort ports = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.BoardListResp.prototype.getPortsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.DetectedPort, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.BoardListResp.prototype.setPortsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.DetectedPort=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.DetectedPort} - */ -proto.cc.arduino.cli.commands.BoardListResp.prototype.addPorts = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.DetectedPort, opt_index); -}; - - -proto.cc.arduino.cli.commands.BoardListResp.prototype.clearPortsList = function() { - this.setPortsList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.DetectedPort = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.DetectedPort.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.DetectedPort, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.DetectedPort.displayName = 'proto.cc.arduino.cli.commands.DetectedPort'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.DetectedPort.repeatedFields_ = [4]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.DetectedPort.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.DetectedPort} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DetectedPort.toObject = function(includeInstance, msg) { - var f, obj = { - address: jspb.Message.getFieldWithDefault(msg, 1, ""), - protocol: jspb.Message.getFieldWithDefault(msg, 2, ""), - protocolLabel: jspb.Message.getFieldWithDefault(msg, 3, ""), - boardsList: jspb.Message.toObjectList(msg.getBoardsList(), - proto.cc.arduino.cli.commands.BoardListItem.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.DetectedPort} - */ -proto.cc.arduino.cli.commands.DetectedPort.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.DetectedPort; - return proto.cc.arduino.cli.commands.DetectedPort.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.DetectedPort} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.DetectedPort} - */ -proto.cc.arduino.cli.commands.DetectedPort.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setAddress(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setProtocol(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setProtocolLabel(value); - break; - case 4: - var value = new proto.cc.arduino.cli.commands.BoardListItem; - reader.readMessage(value,proto.cc.arduino.cli.commands.BoardListItem.deserializeBinaryFromReader); - msg.addBoards(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.DetectedPort.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.DetectedPort} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DetectedPort.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAddress(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getProtocol(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getProtocolLabel(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBoardsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 4, - f, - proto.cc.arduino.cli.commands.BoardListItem.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string address = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.getAddress = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.setAddress = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string protocol = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.getProtocol = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.setProtocol = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string protocol_label = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.getProtocolLabel = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.setProtocolLabel = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * repeated BoardListItem boards = 4; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.getBoardsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.BoardListItem, 4)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.setBoardsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 4, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.BoardListItem=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.BoardListItem} - */ -proto.cc.arduino.cli.commands.DetectedPort.prototype.addBoards = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.cc.arduino.cli.commands.BoardListItem, opt_index); -}; - - -proto.cc.arduino.cli.commands.DetectedPort.prototype.clearBoardsList = function() { - this.setBoardsList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardListAllReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.BoardListAllReq.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardListAllReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardListAllReq.displayName = 'proto.cc.arduino.cli.commands.BoardListAllReq'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.BoardListAllReq.repeatedFields_ = [2]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardListAllReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardListAllReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListAllReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - searchArgsList: jspb.Message.getRepeatedField(msg, 2) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardListAllReq} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardListAllReq; - return proto.cc.arduino.cli.commands.BoardListAllReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardListAllReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardListAllReq} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.addSearchArgs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardListAllReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardListAllReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListAllReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getSearchArgsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 2, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * repeated string search_args = 2; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.getSearchArgsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.setSearchArgsList = function(value) { - jspb.Message.setField(this, 2, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.addSearchArgs = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 2, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.BoardListAllReq.prototype.clearSearchArgsList = function() { - this.setSearchArgsList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardListAllResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.BoardListAllResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardListAllResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardListAllResp.displayName = 'proto.cc.arduino.cli.commands.BoardListAllResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.BoardListAllResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardListAllResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardListAllResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardListAllResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListAllResp.toObject = function(includeInstance, msg) { - var f, obj = { - boardsList: jspb.Message.toObjectList(msg.getBoardsList(), - proto.cc.arduino.cli.commands.BoardListItem.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardListAllResp} - */ -proto.cc.arduino.cli.commands.BoardListAllResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardListAllResp; - return proto.cc.arduino.cli.commands.BoardListAllResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardListAllResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardListAllResp} - */ -proto.cc.arduino.cli.commands.BoardListAllResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.BoardListItem; - reader.readMessage(value,proto.cc.arduino.cli.commands.BoardListItem.deserializeBinaryFromReader); - msg.addBoards(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardListAllResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardListAllResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardListAllResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListAllResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getBoardsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.BoardListItem.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated BoardListItem boards = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.BoardListAllResp.prototype.getBoardsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.BoardListItem, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.BoardListAllResp.prototype.setBoardsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.BoardListItem=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.BoardListItem} - */ -proto.cc.arduino.cli.commands.BoardListAllResp.prototype.addBoards = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.BoardListItem, opt_index); -}; - - -proto.cc.arduino.cli.commands.BoardListAllResp.prototype.clearBoardsList = function() { - this.setBoardsList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.BoardListItem = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.BoardListItem, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.BoardListItem.displayName = 'proto.cc.arduino.cli.commands.BoardListItem'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.BoardListItem.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.BoardListItem.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.BoardListItem} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListItem.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - fqbn: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.BoardListItem} - */ -proto.cc.arduino.cli.commands.BoardListItem.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.BoardListItem; - return proto.cc.arduino.cli.commands.BoardListItem.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.BoardListItem} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.BoardListItem} - */ -proto.cc.arduino.cli.commands.BoardListItem.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFqbn(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.BoardListItem.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.BoardListItem.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.BoardListItem} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.BoardListItem.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getFqbn(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardListItem.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardListItem.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string FQBN = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.BoardListItem.prototype.getFqbn = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.BoardListItem.prototype.setFqbn = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/commands_grpc_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/commands_grpc_pb.d.ts deleted file mode 100644 index 915e7aef..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/commands_grpc_pb.d.ts +++ /dev/null @@ -1,427 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/commands.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import * as commands_commands_pb from "../commands/commands_pb"; -import * as commands_common_pb from "../commands/common_pb"; -import * as commands_board_pb from "../commands/board_pb"; -import * as commands_compile_pb from "../commands/compile_pb"; -import * as commands_core_pb from "../commands/core_pb"; -import * as commands_upload_pb from "../commands/upload_pb"; -import * as commands_lib_pb from "../commands/lib_pb"; - -interface IArduinoCoreService extends grpc.ServiceDefinition { - init: IArduinoCoreService_IInit; - destroy: IArduinoCoreService_IDestroy; - rescan: IArduinoCoreService_IRescan; - updateIndex: IArduinoCoreService_IUpdateIndex; - updateLibrariesIndex: IArduinoCoreService_IUpdateLibrariesIndex; - version: IArduinoCoreService_IVersion; - boardDetails: IArduinoCoreService_IBoardDetails; - boardAttach: IArduinoCoreService_IBoardAttach; - boardList: IArduinoCoreService_IBoardList; - boardListAll: IArduinoCoreService_IBoardListAll; - compile: IArduinoCoreService_ICompile; - platformInstall: IArduinoCoreService_IPlatformInstall; - platformDownload: IArduinoCoreService_IPlatformDownload; - platformUninstall: IArduinoCoreService_IPlatformUninstall; - platformUpgrade: IArduinoCoreService_IPlatformUpgrade; - upload: IArduinoCoreService_IUpload; - platformSearch: IArduinoCoreService_IPlatformSearch; - platformList: IArduinoCoreService_IPlatformList; - libraryDownload: IArduinoCoreService_ILibraryDownload; - libraryInstall: IArduinoCoreService_ILibraryInstall; - libraryUninstall: IArduinoCoreService_ILibraryUninstall; - libraryUpgradeAll: IArduinoCoreService_ILibraryUpgradeAll; - libraryResolveDependencies: IArduinoCoreService_ILibraryResolveDependencies; - librarySearch: IArduinoCoreService_ILibrarySearch; - libraryList: IArduinoCoreService_ILibraryList; -} - -interface IArduinoCoreService_IInit extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/Init" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IDestroy extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/Destroy" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IRescan extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/Rescan" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IUpdateIndex extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/UpdateIndex" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IUpdateLibrariesIndex extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/UpdateLibrariesIndex" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IVersion extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/Version" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IBoardDetails extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/BoardDetails" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IBoardAttach extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/BoardAttach" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IBoardList extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/BoardList" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IBoardListAll extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/BoardListAll" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ICompile extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/Compile" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IPlatformInstall extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/PlatformInstall" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IPlatformDownload extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/PlatformDownload" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IPlatformUninstall extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/PlatformUninstall" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IPlatformUpgrade extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/PlatformUpgrade" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IUpload extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/Upload" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IPlatformSearch extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/PlatformSearch" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_IPlatformList extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/PlatformList" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibraryDownload extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibraryDownload" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibraryInstall extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibraryInstall" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibraryUninstall extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibraryUninstall" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibraryUpgradeAll extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibraryUpgradeAll" - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibraryResolveDependencies extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibraryResolveDependencies" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibrarySearch extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibrarySearch" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IArduinoCoreService_ILibraryList extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.commands.ArduinoCore/LibraryList" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const ArduinoCoreService: IArduinoCoreService; - -export interface IArduinoCoreServer { - init: grpc.handleServerStreamingCall; - destroy: grpc.handleUnaryCall; - rescan: grpc.handleUnaryCall; - updateIndex: grpc.handleServerStreamingCall; - updateLibrariesIndex: grpc.handleServerStreamingCall; - version: grpc.handleUnaryCall; - boardDetails: grpc.handleUnaryCall; - boardAttach: grpc.handleServerStreamingCall; - boardList: grpc.handleUnaryCall; - boardListAll: grpc.handleUnaryCall; - compile: grpc.handleServerStreamingCall; - platformInstall: grpc.handleServerStreamingCall; - platformDownload: grpc.handleServerStreamingCall; - platformUninstall: grpc.handleServerStreamingCall; - platformUpgrade: grpc.handleServerStreamingCall; - upload: grpc.handleServerStreamingCall; - platformSearch: grpc.handleUnaryCall; - platformList: grpc.handleUnaryCall; - libraryDownload: grpc.handleServerStreamingCall; - libraryInstall: grpc.handleServerStreamingCall; - libraryUninstall: grpc.handleServerStreamingCall; - libraryUpgradeAll: grpc.handleServerStreamingCall; - libraryResolveDependencies: grpc.handleUnaryCall; - librarySearch: grpc.handleUnaryCall; - libraryList: grpc.handleUnaryCall; -} - -export interface IArduinoCoreClient { - init(request: commands_commands_pb.InitReq, options?: Partial): grpc.ClientReadableStream; - init(request: commands_commands_pb.InitReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - destroy(request: commands_commands_pb.DestroyReq, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.DestroyResp) => void): grpc.ClientUnaryCall; - destroy(request: commands_commands_pb.DestroyReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.DestroyResp) => void): grpc.ClientUnaryCall; - destroy(request: commands_commands_pb.DestroyReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.DestroyResp) => void): grpc.ClientUnaryCall; - rescan(request: commands_commands_pb.RescanReq, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.RescanResp) => void): grpc.ClientUnaryCall; - rescan(request: commands_commands_pb.RescanReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.RescanResp) => void): grpc.ClientUnaryCall; - rescan(request: commands_commands_pb.RescanReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.RescanResp) => void): grpc.ClientUnaryCall; - updateIndex(request: commands_commands_pb.UpdateIndexReq, options?: Partial): grpc.ClientReadableStream; - updateIndex(request: commands_commands_pb.UpdateIndexReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - updateLibrariesIndex(request: commands_commands_pb.UpdateLibrariesIndexReq, options?: Partial): grpc.ClientReadableStream; - updateLibrariesIndex(request: commands_commands_pb.UpdateLibrariesIndexReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - version(request: commands_commands_pb.VersionReq, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.VersionResp) => void): grpc.ClientUnaryCall; - version(request: commands_commands_pb.VersionReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.VersionResp) => void): grpc.ClientUnaryCall; - version(request: commands_commands_pb.VersionReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.VersionResp) => void): grpc.ClientUnaryCall; - boardDetails(request: commands_board_pb.BoardDetailsReq, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardDetailsResp) => void): grpc.ClientUnaryCall; - boardDetails(request: commands_board_pb.BoardDetailsReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardDetailsResp) => void): grpc.ClientUnaryCall; - boardDetails(request: commands_board_pb.BoardDetailsReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardDetailsResp) => void): grpc.ClientUnaryCall; - boardAttach(request: commands_board_pb.BoardAttachReq, options?: Partial): grpc.ClientReadableStream; - boardAttach(request: commands_board_pb.BoardAttachReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - boardList(request: commands_board_pb.BoardListReq, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListResp) => void): grpc.ClientUnaryCall; - boardList(request: commands_board_pb.BoardListReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListResp) => void): grpc.ClientUnaryCall; - boardList(request: commands_board_pb.BoardListReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListResp) => void): grpc.ClientUnaryCall; - boardListAll(request: commands_board_pb.BoardListAllReq, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListAllResp) => void): grpc.ClientUnaryCall; - boardListAll(request: commands_board_pb.BoardListAllReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListAllResp) => void): grpc.ClientUnaryCall; - boardListAll(request: commands_board_pb.BoardListAllReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListAllResp) => void): grpc.ClientUnaryCall; - compile(request: commands_compile_pb.CompileReq, options?: Partial): grpc.ClientReadableStream; - compile(request: commands_compile_pb.CompileReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - platformInstall(request: commands_core_pb.PlatformInstallReq, options?: Partial): grpc.ClientReadableStream; - platformInstall(request: commands_core_pb.PlatformInstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - platformDownload(request: commands_core_pb.PlatformDownloadReq, options?: Partial): grpc.ClientReadableStream; - platformDownload(request: commands_core_pb.PlatformDownloadReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - platformUninstall(request: commands_core_pb.PlatformUninstallReq, options?: Partial): grpc.ClientReadableStream; - platformUninstall(request: commands_core_pb.PlatformUninstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - platformUpgrade(request: commands_core_pb.PlatformUpgradeReq, options?: Partial): grpc.ClientReadableStream; - platformUpgrade(request: commands_core_pb.PlatformUpgradeReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - upload(request: commands_upload_pb.UploadReq, options?: Partial): grpc.ClientReadableStream; - upload(request: commands_upload_pb.UploadReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - platformSearch(request: commands_core_pb.PlatformSearchReq, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformSearchResp) => void): grpc.ClientUnaryCall; - platformSearch(request: commands_core_pb.PlatformSearchReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformSearchResp) => void): grpc.ClientUnaryCall; - platformSearch(request: commands_core_pb.PlatformSearchReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformSearchResp) => void): grpc.ClientUnaryCall; - platformList(request: commands_core_pb.PlatformListReq, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformListResp) => void): grpc.ClientUnaryCall; - platformList(request: commands_core_pb.PlatformListReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformListResp) => void): grpc.ClientUnaryCall; - platformList(request: commands_core_pb.PlatformListReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformListResp) => void): grpc.ClientUnaryCall; - libraryDownload(request: commands_lib_pb.LibraryDownloadReq, options?: Partial): grpc.ClientReadableStream; - libraryDownload(request: commands_lib_pb.LibraryDownloadReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - libraryInstall(request: commands_lib_pb.LibraryInstallReq, options?: Partial): grpc.ClientReadableStream; - libraryInstall(request: commands_lib_pb.LibraryInstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - libraryUninstall(request: commands_lib_pb.LibraryUninstallReq, options?: Partial): grpc.ClientReadableStream; - libraryUninstall(request: commands_lib_pb.LibraryUninstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - libraryUpgradeAll(request: commands_lib_pb.LibraryUpgradeAllReq, options?: Partial): grpc.ClientReadableStream; - libraryUpgradeAll(request: commands_lib_pb.LibraryUpgradeAllReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - libraryResolveDependencies(request: commands_lib_pb.LibraryResolveDependenciesReq, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryResolveDependenciesResp) => void): grpc.ClientUnaryCall; - libraryResolveDependencies(request: commands_lib_pb.LibraryResolveDependenciesReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryResolveDependenciesResp) => void): grpc.ClientUnaryCall; - libraryResolveDependencies(request: commands_lib_pb.LibraryResolveDependenciesReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryResolveDependenciesResp) => void): grpc.ClientUnaryCall; - librarySearch(request: commands_lib_pb.LibrarySearchReq, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibrarySearchResp) => void): grpc.ClientUnaryCall; - librarySearch(request: commands_lib_pb.LibrarySearchReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibrarySearchResp) => void): grpc.ClientUnaryCall; - librarySearch(request: commands_lib_pb.LibrarySearchReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibrarySearchResp) => void): grpc.ClientUnaryCall; - libraryList(request: commands_lib_pb.LibraryListReq, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryListResp) => void): grpc.ClientUnaryCall; - libraryList(request: commands_lib_pb.LibraryListReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryListResp) => void): grpc.ClientUnaryCall; - libraryList(request: commands_lib_pb.LibraryListReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryListResp) => void): grpc.ClientUnaryCall; -} - -export class ArduinoCoreClient extends grpc.Client implements IArduinoCoreClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); - public init(request: commands_commands_pb.InitReq, options?: Partial): grpc.ClientReadableStream; - public init(request: commands_commands_pb.InitReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public destroy(request: commands_commands_pb.DestroyReq, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.DestroyResp) => void): grpc.ClientUnaryCall; - public destroy(request: commands_commands_pb.DestroyReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.DestroyResp) => void): grpc.ClientUnaryCall; - public destroy(request: commands_commands_pb.DestroyReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.DestroyResp) => void): grpc.ClientUnaryCall; - public rescan(request: commands_commands_pb.RescanReq, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.RescanResp) => void): grpc.ClientUnaryCall; - public rescan(request: commands_commands_pb.RescanReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.RescanResp) => void): grpc.ClientUnaryCall; - public rescan(request: commands_commands_pb.RescanReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.RescanResp) => void): grpc.ClientUnaryCall; - public updateIndex(request: commands_commands_pb.UpdateIndexReq, options?: Partial): grpc.ClientReadableStream; - public updateIndex(request: commands_commands_pb.UpdateIndexReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public updateLibrariesIndex(request: commands_commands_pb.UpdateLibrariesIndexReq, options?: Partial): grpc.ClientReadableStream; - public updateLibrariesIndex(request: commands_commands_pb.UpdateLibrariesIndexReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public version(request: commands_commands_pb.VersionReq, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.VersionResp) => void): grpc.ClientUnaryCall; - public version(request: commands_commands_pb.VersionReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.VersionResp) => void): grpc.ClientUnaryCall; - public version(request: commands_commands_pb.VersionReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_commands_pb.VersionResp) => void): grpc.ClientUnaryCall; - public boardDetails(request: commands_board_pb.BoardDetailsReq, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardDetailsResp) => void): grpc.ClientUnaryCall; - public boardDetails(request: commands_board_pb.BoardDetailsReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardDetailsResp) => void): grpc.ClientUnaryCall; - public boardDetails(request: commands_board_pb.BoardDetailsReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardDetailsResp) => void): grpc.ClientUnaryCall; - public boardAttach(request: commands_board_pb.BoardAttachReq, options?: Partial): grpc.ClientReadableStream; - public boardAttach(request: commands_board_pb.BoardAttachReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public boardList(request: commands_board_pb.BoardListReq, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListResp) => void): grpc.ClientUnaryCall; - public boardList(request: commands_board_pb.BoardListReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListResp) => void): grpc.ClientUnaryCall; - public boardList(request: commands_board_pb.BoardListReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListResp) => void): grpc.ClientUnaryCall; - public boardListAll(request: commands_board_pb.BoardListAllReq, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListAllResp) => void): grpc.ClientUnaryCall; - public boardListAll(request: commands_board_pb.BoardListAllReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListAllResp) => void): grpc.ClientUnaryCall; - public boardListAll(request: commands_board_pb.BoardListAllReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_board_pb.BoardListAllResp) => void): grpc.ClientUnaryCall; - public compile(request: commands_compile_pb.CompileReq, options?: Partial): grpc.ClientReadableStream; - public compile(request: commands_compile_pb.CompileReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public platformInstall(request: commands_core_pb.PlatformInstallReq, options?: Partial): grpc.ClientReadableStream; - public platformInstall(request: commands_core_pb.PlatformInstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public platformDownload(request: commands_core_pb.PlatformDownloadReq, options?: Partial): grpc.ClientReadableStream; - public platformDownload(request: commands_core_pb.PlatformDownloadReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public platformUninstall(request: commands_core_pb.PlatformUninstallReq, options?: Partial): grpc.ClientReadableStream; - public platformUninstall(request: commands_core_pb.PlatformUninstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public platformUpgrade(request: commands_core_pb.PlatformUpgradeReq, options?: Partial): grpc.ClientReadableStream; - public platformUpgrade(request: commands_core_pb.PlatformUpgradeReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public upload(request: commands_upload_pb.UploadReq, options?: Partial): grpc.ClientReadableStream; - public upload(request: commands_upload_pb.UploadReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public platformSearch(request: commands_core_pb.PlatformSearchReq, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformSearchResp) => void): grpc.ClientUnaryCall; - public platformSearch(request: commands_core_pb.PlatformSearchReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformSearchResp) => void): grpc.ClientUnaryCall; - public platformSearch(request: commands_core_pb.PlatformSearchReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformSearchResp) => void): grpc.ClientUnaryCall; - public platformList(request: commands_core_pb.PlatformListReq, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformListResp) => void): grpc.ClientUnaryCall; - public platformList(request: commands_core_pb.PlatformListReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformListResp) => void): grpc.ClientUnaryCall; - public platformList(request: commands_core_pb.PlatformListReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_core_pb.PlatformListResp) => void): grpc.ClientUnaryCall; - public libraryDownload(request: commands_lib_pb.LibraryDownloadReq, options?: Partial): grpc.ClientReadableStream; - public libraryDownload(request: commands_lib_pb.LibraryDownloadReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public libraryInstall(request: commands_lib_pb.LibraryInstallReq, options?: Partial): grpc.ClientReadableStream; - public libraryInstall(request: commands_lib_pb.LibraryInstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public libraryUninstall(request: commands_lib_pb.LibraryUninstallReq, options?: Partial): grpc.ClientReadableStream; - public libraryUninstall(request: commands_lib_pb.LibraryUninstallReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public libraryUpgradeAll(request: commands_lib_pb.LibraryUpgradeAllReq, options?: Partial): grpc.ClientReadableStream; - public libraryUpgradeAll(request: commands_lib_pb.LibraryUpgradeAllReq, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public libraryResolveDependencies(request: commands_lib_pb.LibraryResolveDependenciesReq, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryResolveDependenciesResp) => void): grpc.ClientUnaryCall; - public libraryResolveDependencies(request: commands_lib_pb.LibraryResolveDependenciesReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryResolveDependenciesResp) => void): grpc.ClientUnaryCall; - public libraryResolveDependencies(request: commands_lib_pb.LibraryResolveDependenciesReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryResolveDependenciesResp) => void): grpc.ClientUnaryCall; - public librarySearch(request: commands_lib_pb.LibrarySearchReq, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibrarySearchResp) => void): grpc.ClientUnaryCall; - public librarySearch(request: commands_lib_pb.LibrarySearchReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibrarySearchResp) => void): grpc.ClientUnaryCall; - public librarySearch(request: commands_lib_pb.LibrarySearchReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibrarySearchResp) => void): grpc.ClientUnaryCall; - public libraryList(request: commands_lib_pb.LibraryListReq, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryListResp) => void): grpc.ClientUnaryCall; - public libraryList(request: commands_lib_pb.LibraryListReq, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryListResp) => void): grpc.ClientUnaryCall; - public libraryList(request: commands_lib_pb.LibraryListReq, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: commands_lib_pb.LibraryListResp) => void): grpc.ClientUnaryCall; -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/commands_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/commands_grpc_pb.js deleted file mode 100644 index 615964a5..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/commands_grpc_pb.js +++ /dev/null @@ -1,870 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// This file is part of arduino-cli. -// -// Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -// -// This software is released under the GNU General Public License version 3, -// which covers the main part of arduino-cli. -// The terms of this license can be found at: -// https://www.gnu.org/licenses/gpl-3.0.en.html -// -// You can be released from the requirements of the above licenses by purchasing -// a commercial license. Buying such a license is mandatory if you want to -// modify or otherwise use the software for commercial activities involving the -// Arduino software without disclosing the source code of your own applications. -// To purchase a commercial license, send an email to license@arduino.cc. -// -'use strict'; -var grpc = require('@grpc/grpc-js'); -var commands_commands_pb = require('../commands/commands_pb.js'); -var commands_common_pb = require('../commands/common_pb.js'); -var commands_board_pb = require('../commands/board_pb.js'); -var commands_compile_pb = require('../commands/compile_pb.js'); -var commands_core_pb = require('../commands/core_pb.js'); -var commands_upload_pb = require('../commands/upload_pb.js'); -var commands_lib_pb = require('../commands/lib_pb.js'); - -function serialize_cc_arduino_cli_commands_BoardAttachReq(arg) { - if (!(arg instanceof commands_board_pb.BoardAttachReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardAttachReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardAttachReq(buffer_arg) { - return commands_board_pb.BoardAttachReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardAttachResp(arg) { - if (!(arg instanceof commands_board_pb.BoardAttachResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardAttachResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardAttachResp(buffer_arg) { - return commands_board_pb.BoardAttachResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardDetailsReq(arg) { - if (!(arg instanceof commands_board_pb.BoardDetailsReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardDetailsReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardDetailsReq(buffer_arg) { - return commands_board_pb.BoardDetailsReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardDetailsResp(arg) { - if (!(arg instanceof commands_board_pb.BoardDetailsResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardDetailsResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardDetailsResp(buffer_arg) { - return commands_board_pb.BoardDetailsResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardListAllReq(arg) { - if (!(arg instanceof commands_board_pb.BoardListAllReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardListAllReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardListAllReq(buffer_arg) { - return commands_board_pb.BoardListAllReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardListAllResp(arg) { - if (!(arg instanceof commands_board_pb.BoardListAllResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardListAllResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardListAllResp(buffer_arg) { - return commands_board_pb.BoardListAllResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardListReq(arg) { - if (!(arg instanceof commands_board_pb.BoardListReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardListReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardListReq(buffer_arg) { - return commands_board_pb.BoardListReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_BoardListResp(arg) { - if (!(arg instanceof commands_board_pb.BoardListResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.BoardListResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_BoardListResp(buffer_arg) { - return commands_board_pb.BoardListResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_CompileReq(arg) { - if (!(arg instanceof commands_compile_pb.CompileReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.CompileReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_CompileReq(buffer_arg) { - return commands_compile_pb.CompileReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_CompileResp(arg) { - if (!(arg instanceof commands_compile_pb.CompileResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.CompileResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_CompileResp(buffer_arg) { - return commands_compile_pb.CompileResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_DestroyReq(arg) { - if (!(arg instanceof commands_commands_pb.DestroyReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.DestroyReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_DestroyReq(buffer_arg) { - return commands_commands_pb.DestroyReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_DestroyResp(arg) { - if (!(arg instanceof commands_commands_pb.DestroyResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.DestroyResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_DestroyResp(buffer_arg) { - return commands_commands_pb.DestroyResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_InitReq(arg) { - if (!(arg instanceof commands_commands_pb.InitReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.InitReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_InitReq(buffer_arg) { - return commands_commands_pb.InitReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_InitResp(arg) { - if (!(arg instanceof commands_commands_pb.InitResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.InitResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_InitResp(buffer_arg) { - return commands_commands_pb.InitResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryDownloadReq(arg) { - if (!(arg instanceof commands_lib_pb.LibraryDownloadReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryDownloadReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryDownloadReq(buffer_arg) { - return commands_lib_pb.LibraryDownloadReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryDownloadResp(arg) { - if (!(arg instanceof commands_lib_pb.LibraryDownloadResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryDownloadResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryDownloadResp(buffer_arg) { - return commands_lib_pb.LibraryDownloadResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryInstallReq(arg) { - if (!(arg instanceof commands_lib_pb.LibraryInstallReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryInstallReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryInstallReq(buffer_arg) { - return commands_lib_pb.LibraryInstallReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryInstallResp(arg) { - if (!(arg instanceof commands_lib_pb.LibraryInstallResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryInstallResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryInstallResp(buffer_arg) { - return commands_lib_pb.LibraryInstallResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryListReq(arg) { - if (!(arg instanceof commands_lib_pb.LibraryListReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryListReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryListReq(buffer_arg) { - return commands_lib_pb.LibraryListReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryListResp(arg) { - if (!(arg instanceof commands_lib_pb.LibraryListResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryListResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryListResp(buffer_arg) { - return commands_lib_pb.LibraryListResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryResolveDependenciesReq(arg) { - if (!(arg instanceof commands_lib_pb.LibraryResolveDependenciesReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryResolveDependenciesReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryResolveDependenciesReq(buffer_arg) { - return commands_lib_pb.LibraryResolveDependenciesReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryResolveDependenciesResp(arg) { - if (!(arg instanceof commands_lib_pb.LibraryResolveDependenciesResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryResolveDependenciesResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryResolveDependenciesResp(buffer_arg) { - return commands_lib_pb.LibraryResolveDependenciesResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibrarySearchReq(arg) { - if (!(arg instanceof commands_lib_pb.LibrarySearchReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibrarySearchReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibrarySearchReq(buffer_arg) { - return commands_lib_pb.LibrarySearchReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibrarySearchResp(arg) { - if (!(arg instanceof commands_lib_pb.LibrarySearchResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibrarySearchResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibrarySearchResp(buffer_arg) { - return commands_lib_pb.LibrarySearchResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryUninstallReq(arg) { - if (!(arg instanceof commands_lib_pb.LibraryUninstallReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryUninstallReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryUninstallReq(buffer_arg) { - return commands_lib_pb.LibraryUninstallReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryUninstallResp(arg) { - if (!(arg instanceof commands_lib_pb.LibraryUninstallResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryUninstallResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryUninstallResp(buffer_arg) { - return commands_lib_pb.LibraryUninstallResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryUpgradeAllReq(arg) { - if (!(arg instanceof commands_lib_pb.LibraryUpgradeAllReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryUpgradeAllReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryUpgradeAllReq(buffer_arg) { - return commands_lib_pb.LibraryUpgradeAllReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_LibraryUpgradeAllResp(arg) { - if (!(arg instanceof commands_lib_pb.LibraryUpgradeAllResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.LibraryUpgradeAllResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_LibraryUpgradeAllResp(buffer_arg) { - return commands_lib_pb.LibraryUpgradeAllResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformDownloadReq(arg) { - if (!(arg instanceof commands_core_pb.PlatformDownloadReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformDownloadReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformDownloadReq(buffer_arg) { - return commands_core_pb.PlatformDownloadReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformDownloadResp(arg) { - if (!(arg instanceof commands_core_pb.PlatformDownloadResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformDownloadResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformDownloadResp(buffer_arg) { - return commands_core_pb.PlatformDownloadResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformInstallReq(arg) { - if (!(arg instanceof commands_core_pb.PlatformInstallReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformInstallReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformInstallReq(buffer_arg) { - return commands_core_pb.PlatformInstallReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformInstallResp(arg) { - if (!(arg instanceof commands_core_pb.PlatformInstallResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformInstallResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformInstallResp(buffer_arg) { - return commands_core_pb.PlatformInstallResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformListReq(arg) { - if (!(arg instanceof commands_core_pb.PlatformListReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformListReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformListReq(buffer_arg) { - return commands_core_pb.PlatformListReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformListResp(arg) { - if (!(arg instanceof commands_core_pb.PlatformListResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformListResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformListResp(buffer_arg) { - return commands_core_pb.PlatformListResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformSearchReq(arg) { - if (!(arg instanceof commands_core_pb.PlatformSearchReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformSearchReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformSearchReq(buffer_arg) { - return commands_core_pb.PlatformSearchReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformSearchResp(arg) { - if (!(arg instanceof commands_core_pb.PlatformSearchResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformSearchResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformSearchResp(buffer_arg) { - return commands_core_pb.PlatformSearchResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformUninstallReq(arg) { - if (!(arg instanceof commands_core_pb.PlatformUninstallReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformUninstallReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformUninstallReq(buffer_arg) { - return commands_core_pb.PlatformUninstallReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformUninstallResp(arg) { - if (!(arg instanceof commands_core_pb.PlatformUninstallResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformUninstallResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformUninstallResp(buffer_arg) { - return commands_core_pb.PlatformUninstallResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformUpgradeReq(arg) { - if (!(arg instanceof commands_core_pb.PlatformUpgradeReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformUpgradeReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformUpgradeReq(buffer_arg) { - return commands_core_pb.PlatformUpgradeReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_PlatformUpgradeResp(arg) { - if (!(arg instanceof commands_core_pb.PlatformUpgradeResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.PlatformUpgradeResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_PlatformUpgradeResp(buffer_arg) { - return commands_core_pb.PlatformUpgradeResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_RescanReq(arg) { - if (!(arg instanceof commands_commands_pb.RescanReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.RescanReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_RescanReq(buffer_arg) { - return commands_commands_pb.RescanReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_RescanResp(arg) { - if (!(arg instanceof commands_commands_pb.RescanResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.RescanResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_RescanResp(buffer_arg) { - return commands_commands_pb.RescanResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_UpdateIndexReq(arg) { - if (!(arg instanceof commands_commands_pb.UpdateIndexReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.UpdateIndexReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_UpdateIndexReq(buffer_arg) { - return commands_commands_pb.UpdateIndexReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_UpdateIndexResp(arg) { - if (!(arg instanceof commands_commands_pb.UpdateIndexResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.UpdateIndexResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_UpdateIndexResp(buffer_arg) { - return commands_commands_pb.UpdateIndexResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_UpdateLibrariesIndexReq(arg) { - if (!(arg instanceof commands_commands_pb.UpdateLibrariesIndexReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.UpdateLibrariesIndexReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_UpdateLibrariesIndexReq(buffer_arg) { - return commands_commands_pb.UpdateLibrariesIndexReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_UpdateLibrariesIndexResp(arg) { - if (!(arg instanceof commands_commands_pb.UpdateLibrariesIndexResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.UpdateLibrariesIndexResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_UpdateLibrariesIndexResp(buffer_arg) { - return commands_commands_pb.UpdateLibrariesIndexResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_UploadReq(arg) { - if (!(arg instanceof commands_upload_pb.UploadReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.UploadReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_UploadReq(buffer_arg) { - return commands_upload_pb.UploadReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_UploadResp(arg) { - if (!(arg instanceof commands_upload_pb.UploadResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.UploadResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_UploadResp(buffer_arg) { - return commands_upload_pb.UploadResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_VersionReq(arg) { - if (!(arg instanceof commands_commands_pb.VersionReq)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.VersionReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_VersionReq(buffer_arg) { - return commands_commands_pb.VersionReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_commands_VersionResp(arg) { - if (!(arg instanceof commands_commands_pb.VersionResp)) { - throw new Error('Expected argument of type cc.arduino.cli.commands.VersionResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_commands_VersionResp(buffer_arg) { - return commands_commands_pb.VersionResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -// The main Arduino Platform Service -var ArduinoCoreService = exports.ArduinoCoreService = { - // Start a new instance of the Arduino Core Service -init: { - path: '/cc.arduino.cli.commands.ArduinoCore/Init', - requestStream: false, - responseStream: true, - requestType: commands_commands_pb.InitReq, - responseType: commands_commands_pb.InitResp, - requestSerialize: serialize_cc_arduino_cli_commands_InitReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_InitReq, - responseSerialize: serialize_cc_arduino_cli_commands_InitResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_InitResp, - }, - // Destroy an instance of the Arduino Core Service -destroy: { - path: '/cc.arduino.cli.commands.ArduinoCore/Destroy', - requestStream: false, - responseStream: false, - requestType: commands_commands_pb.DestroyReq, - responseType: commands_commands_pb.DestroyResp, - requestSerialize: serialize_cc_arduino_cli_commands_DestroyReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_DestroyReq, - responseSerialize: serialize_cc_arduino_cli_commands_DestroyResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_DestroyResp, - }, - // Rescan instance of the Arduino Core Service -rescan: { - path: '/cc.arduino.cli.commands.ArduinoCore/Rescan', - requestStream: false, - responseStream: false, - requestType: commands_commands_pb.RescanReq, - responseType: commands_commands_pb.RescanResp, - requestSerialize: serialize_cc_arduino_cli_commands_RescanReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_RescanReq, - responseSerialize: serialize_cc_arduino_cli_commands_RescanResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_RescanResp, - }, - // Update package index of the Arduino Core Service -updateIndex: { - path: '/cc.arduino.cli.commands.ArduinoCore/UpdateIndex', - requestStream: false, - responseStream: true, - requestType: commands_commands_pb.UpdateIndexReq, - responseType: commands_commands_pb.UpdateIndexResp, - requestSerialize: serialize_cc_arduino_cli_commands_UpdateIndexReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_UpdateIndexReq, - responseSerialize: serialize_cc_arduino_cli_commands_UpdateIndexResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_UpdateIndexResp, - }, - // Update libraries index -updateLibrariesIndex: { - path: '/cc.arduino.cli.commands.ArduinoCore/UpdateLibrariesIndex', - requestStream: false, - responseStream: true, - requestType: commands_commands_pb.UpdateLibrariesIndexReq, - responseType: commands_commands_pb.UpdateLibrariesIndexResp, - requestSerialize: serialize_cc_arduino_cli_commands_UpdateLibrariesIndexReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_UpdateLibrariesIndexReq, - responseSerialize: serialize_cc_arduino_cli_commands_UpdateLibrariesIndexResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_UpdateLibrariesIndexResp, - }, - version: { - path: '/cc.arduino.cli.commands.ArduinoCore/Version', - requestStream: false, - responseStream: false, - requestType: commands_commands_pb.VersionReq, - responseType: commands_commands_pb.VersionResp, - requestSerialize: serialize_cc_arduino_cli_commands_VersionReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_VersionReq, - responseSerialize: serialize_cc_arduino_cli_commands_VersionResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_VersionResp, - }, - // BOARD COMMANDS -// -------------- -// -// Requests details about a board -boardDetails: { - path: '/cc.arduino.cli.commands.ArduinoCore/BoardDetails', - requestStream: false, - responseStream: false, - requestType: commands_board_pb.BoardDetailsReq, - responseType: commands_board_pb.BoardDetailsResp, - requestSerialize: serialize_cc_arduino_cli_commands_BoardDetailsReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_BoardDetailsReq, - responseSerialize: serialize_cc_arduino_cli_commands_BoardDetailsResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_BoardDetailsResp, - }, - boardAttach: { - path: '/cc.arduino.cli.commands.ArduinoCore/BoardAttach', - requestStream: false, - responseStream: true, - requestType: commands_board_pb.BoardAttachReq, - responseType: commands_board_pb.BoardAttachResp, - requestSerialize: serialize_cc_arduino_cli_commands_BoardAttachReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_BoardAttachReq, - responseSerialize: serialize_cc_arduino_cli_commands_BoardAttachResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_BoardAttachResp, - }, - boardList: { - path: '/cc.arduino.cli.commands.ArduinoCore/BoardList', - requestStream: false, - responseStream: false, - requestType: commands_board_pb.BoardListReq, - responseType: commands_board_pb.BoardListResp, - requestSerialize: serialize_cc_arduino_cli_commands_BoardListReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_BoardListReq, - responseSerialize: serialize_cc_arduino_cli_commands_BoardListResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_BoardListResp, - }, - boardListAll: { - path: '/cc.arduino.cli.commands.ArduinoCore/BoardListAll', - requestStream: false, - responseStream: false, - requestType: commands_board_pb.BoardListAllReq, - responseType: commands_board_pb.BoardListAllResp, - requestSerialize: serialize_cc_arduino_cli_commands_BoardListAllReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_BoardListAllReq, - responseSerialize: serialize_cc_arduino_cli_commands_BoardListAllResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_BoardListAllResp, - }, - compile: { - path: '/cc.arduino.cli.commands.ArduinoCore/Compile', - requestStream: false, - responseStream: true, - requestType: commands_compile_pb.CompileReq, - responseType: commands_compile_pb.CompileResp, - requestSerialize: serialize_cc_arduino_cli_commands_CompileReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_CompileReq, - responseSerialize: serialize_cc_arduino_cli_commands_CompileResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_CompileResp, - }, - platformInstall: { - path: '/cc.arduino.cli.commands.ArduinoCore/PlatformInstall', - requestStream: false, - responseStream: true, - requestType: commands_core_pb.PlatformInstallReq, - responseType: commands_core_pb.PlatformInstallResp, - requestSerialize: serialize_cc_arduino_cli_commands_PlatformInstallReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_PlatformInstallReq, - responseSerialize: serialize_cc_arduino_cli_commands_PlatformInstallResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_PlatformInstallResp, - }, - platformDownload: { - path: '/cc.arduino.cli.commands.ArduinoCore/PlatformDownload', - requestStream: false, - responseStream: true, - requestType: commands_core_pb.PlatformDownloadReq, - responseType: commands_core_pb.PlatformDownloadResp, - requestSerialize: serialize_cc_arduino_cli_commands_PlatformDownloadReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_PlatformDownloadReq, - responseSerialize: serialize_cc_arduino_cli_commands_PlatformDownloadResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_PlatformDownloadResp, - }, - platformUninstall: { - path: '/cc.arduino.cli.commands.ArduinoCore/PlatformUninstall', - requestStream: false, - responseStream: true, - requestType: commands_core_pb.PlatformUninstallReq, - responseType: commands_core_pb.PlatformUninstallResp, - requestSerialize: serialize_cc_arduino_cli_commands_PlatformUninstallReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_PlatformUninstallReq, - responseSerialize: serialize_cc_arduino_cli_commands_PlatformUninstallResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_PlatformUninstallResp, - }, - platformUpgrade: { - path: '/cc.arduino.cli.commands.ArduinoCore/PlatformUpgrade', - requestStream: false, - responseStream: true, - requestType: commands_core_pb.PlatformUpgradeReq, - responseType: commands_core_pb.PlatformUpgradeResp, - requestSerialize: serialize_cc_arduino_cli_commands_PlatformUpgradeReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_PlatformUpgradeReq, - responseSerialize: serialize_cc_arduino_cli_commands_PlatformUpgradeResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_PlatformUpgradeResp, - }, - upload: { - path: '/cc.arduino.cli.commands.ArduinoCore/Upload', - requestStream: false, - responseStream: true, - requestType: commands_upload_pb.UploadReq, - responseType: commands_upload_pb.UploadResp, - requestSerialize: serialize_cc_arduino_cli_commands_UploadReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_UploadReq, - responseSerialize: serialize_cc_arduino_cli_commands_UploadResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_UploadResp, - }, - platformSearch: { - path: '/cc.arduino.cli.commands.ArduinoCore/PlatformSearch', - requestStream: false, - responseStream: false, - requestType: commands_core_pb.PlatformSearchReq, - responseType: commands_core_pb.PlatformSearchResp, - requestSerialize: serialize_cc_arduino_cli_commands_PlatformSearchReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_PlatformSearchReq, - responseSerialize: serialize_cc_arduino_cli_commands_PlatformSearchResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_PlatformSearchResp, - }, - platformList: { - path: '/cc.arduino.cli.commands.ArduinoCore/PlatformList', - requestStream: false, - responseStream: false, - requestType: commands_core_pb.PlatformListReq, - responseType: commands_core_pb.PlatformListResp, - requestSerialize: serialize_cc_arduino_cli_commands_PlatformListReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_PlatformListReq, - responseSerialize: serialize_cc_arduino_cli_commands_PlatformListResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_PlatformListResp, - }, - libraryDownload: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibraryDownload', - requestStream: false, - responseStream: true, - requestType: commands_lib_pb.LibraryDownloadReq, - responseType: commands_lib_pb.LibraryDownloadResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibraryDownloadReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibraryDownloadReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibraryDownloadResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibraryDownloadResp, - }, - libraryInstall: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibraryInstall', - requestStream: false, - responseStream: true, - requestType: commands_lib_pb.LibraryInstallReq, - responseType: commands_lib_pb.LibraryInstallResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibraryInstallReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibraryInstallReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibraryInstallResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibraryInstallResp, - }, - libraryUninstall: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibraryUninstall', - requestStream: false, - responseStream: true, - requestType: commands_lib_pb.LibraryUninstallReq, - responseType: commands_lib_pb.LibraryUninstallResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibraryUninstallReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibraryUninstallReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibraryUninstallResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibraryUninstallResp, - }, - libraryUpgradeAll: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibraryUpgradeAll', - requestStream: false, - responseStream: true, - requestType: commands_lib_pb.LibraryUpgradeAllReq, - responseType: commands_lib_pb.LibraryUpgradeAllResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibraryUpgradeAllReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibraryUpgradeAllReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibraryUpgradeAllResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibraryUpgradeAllResp, - }, - libraryResolveDependencies: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibraryResolveDependencies', - requestStream: false, - responseStream: false, - requestType: commands_lib_pb.LibraryResolveDependenciesReq, - responseType: commands_lib_pb.LibraryResolveDependenciesResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibraryResolveDependenciesReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibraryResolveDependenciesReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibraryResolveDependenciesResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibraryResolveDependenciesResp, - }, - librarySearch: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibrarySearch', - requestStream: false, - responseStream: false, - requestType: commands_lib_pb.LibrarySearchReq, - responseType: commands_lib_pb.LibrarySearchResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibrarySearchReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibrarySearchReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibrarySearchResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibrarySearchResp, - }, - libraryList: { - path: '/cc.arduino.cli.commands.ArduinoCore/LibraryList', - requestStream: false, - responseStream: false, - requestType: commands_lib_pb.LibraryListReq, - responseType: commands_lib_pb.LibraryListResp, - requestSerialize: serialize_cc_arduino_cli_commands_LibraryListReq, - requestDeserialize: deserialize_cc_arduino_cli_commands_LibraryListReq, - responseSerialize: serialize_cc_arduino_cli_commands_LibraryListResp, - responseDeserialize: deserialize_cc_arduino_cli_commands_LibraryListResp, - }, -}; - -exports.ArduinoCoreClient = grpc.makeGenericClientConstructor(ArduinoCoreService); -// BOOTSTRAP COMMANDS -// ------------------- diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/commands_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/commands_pb.d.ts deleted file mode 100644 index c414a765..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/commands_pb.d.ts +++ /dev/null @@ -1,308 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/commands.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as commands_common_pb from "../commands/common_pb"; -import * as commands_board_pb from "../commands/board_pb"; -import * as commands_compile_pb from "../commands/compile_pb"; -import * as commands_core_pb from "../commands/core_pb"; -import * as commands_upload_pb from "../commands/upload_pb"; -import * as commands_lib_pb from "../commands/lib_pb"; - -export class InitReq extends jspb.Message { - getLibraryManagerOnly(): boolean; - setLibraryManagerOnly(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): InitReq.AsObject; - static toObject(includeInstance: boolean, msg: InitReq): InitReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: InitReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): InitReq; - static deserializeBinaryFromReader(message: InitReq, reader: jspb.BinaryReader): InitReq; -} - -export namespace InitReq { - export type AsObject = { - libraryManagerOnly: boolean, - } -} - -export class InitResp extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - clearPlatformsIndexErrorsList(): void; - getPlatformsIndexErrorsList(): Array; - setPlatformsIndexErrorsList(value: Array): void; - addPlatformsIndexErrors(value: string, index?: number): string; - - getLibrariesIndexError(): string; - setLibrariesIndexError(value: string): void; - - - hasDownloadProgress(): boolean; - clearDownloadProgress(): void; - getDownloadProgress(): commands_common_pb.DownloadProgress | undefined; - setDownloadProgress(value?: commands_common_pb.DownloadProgress): void; - - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): InitResp.AsObject; - static toObject(includeInstance: boolean, msg: InitResp): InitResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: InitResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): InitResp; - static deserializeBinaryFromReader(message: InitResp, reader: jspb.BinaryReader): InitResp; -} - -export namespace InitResp { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - platformsIndexErrorsList: Array, - librariesIndexError: string, - downloadProgress?: commands_common_pb.DownloadProgress.AsObject, - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class DestroyReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DestroyReq.AsObject; - static toObject(includeInstance: boolean, msg: DestroyReq): DestroyReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DestroyReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DestroyReq; - static deserializeBinaryFromReader(message: DestroyReq, reader: jspb.BinaryReader): DestroyReq; -} - -export namespace DestroyReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - } -} - -export class DestroyResp extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DestroyResp.AsObject; - static toObject(includeInstance: boolean, msg: DestroyResp): DestroyResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DestroyResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DestroyResp; - static deserializeBinaryFromReader(message: DestroyResp, reader: jspb.BinaryReader): DestroyResp; -} - -export namespace DestroyResp { - export type AsObject = { - } -} - -export class RescanReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): RescanReq.AsObject; - static toObject(includeInstance: boolean, msg: RescanReq): RescanReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: RescanReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): RescanReq; - static deserializeBinaryFromReader(message: RescanReq, reader: jspb.BinaryReader): RescanReq; -} - -export namespace RescanReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - } -} - -export class RescanResp extends jspb.Message { - clearPlatformsIndexErrorsList(): void; - getPlatformsIndexErrorsList(): Array; - setPlatformsIndexErrorsList(value: Array): void; - addPlatformsIndexErrors(value: string, index?: number): string; - - getLibrariesIndexError(): string; - setLibrariesIndexError(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): RescanResp.AsObject; - static toObject(includeInstance: boolean, msg: RescanResp): RescanResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: RescanResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): RescanResp; - static deserializeBinaryFromReader(message: RescanResp, reader: jspb.BinaryReader): RescanResp; -} - -export namespace RescanResp { - export type AsObject = { - platformsIndexErrorsList: Array, - librariesIndexError: string, - } -} - -export class UpdateIndexReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateIndexReq.AsObject; - static toObject(includeInstance: boolean, msg: UpdateIndexReq): UpdateIndexReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateIndexReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateIndexReq; - static deserializeBinaryFromReader(message: UpdateIndexReq, reader: jspb.BinaryReader): UpdateIndexReq; -} - -export namespace UpdateIndexReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - } -} - -export class UpdateIndexResp extends jspb.Message { - - hasDownloadProgress(): boolean; - clearDownloadProgress(): void; - getDownloadProgress(): commands_common_pb.DownloadProgress | undefined; - setDownloadProgress(value?: commands_common_pb.DownloadProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateIndexResp.AsObject; - static toObject(includeInstance: boolean, msg: UpdateIndexResp): UpdateIndexResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateIndexResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateIndexResp; - static deserializeBinaryFromReader(message: UpdateIndexResp, reader: jspb.BinaryReader): UpdateIndexResp; -} - -export namespace UpdateIndexResp { - export type AsObject = { - downloadProgress?: commands_common_pb.DownloadProgress.AsObject, - } -} - -export class UpdateLibrariesIndexReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateLibrariesIndexReq.AsObject; - static toObject(includeInstance: boolean, msg: UpdateLibrariesIndexReq): UpdateLibrariesIndexReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateLibrariesIndexReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateLibrariesIndexReq; - static deserializeBinaryFromReader(message: UpdateLibrariesIndexReq, reader: jspb.BinaryReader): UpdateLibrariesIndexReq; -} - -export namespace UpdateLibrariesIndexReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - } -} - -export class UpdateLibrariesIndexResp extends jspb.Message { - - hasDownloadProgress(): boolean; - clearDownloadProgress(): void; - getDownloadProgress(): commands_common_pb.DownloadProgress | undefined; - setDownloadProgress(value?: commands_common_pb.DownloadProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateLibrariesIndexResp.AsObject; - static toObject(includeInstance: boolean, msg: UpdateLibrariesIndexResp): UpdateLibrariesIndexResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateLibrariesIndexResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateLibrariesIndexResp; - static deserializeBinaryFromReader(message: UpdateLibrariesIndexResp, reader: jspb.BinaryReader): UpdateLibrariesIndexResp; -} - -export namespace UpdateLibrariesIndexResp { - export type AsObject = { - downloadProgress?: commands_common_pb.DownloadProgress.AsObject, - } -} - -export class VersionReq extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): VersionReq.AsObject; - static toObject(includeInstance: boolean, msg: VersionReq): VersionReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: VersionReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): VersionReq; - static deserializeBinaryFromReader(message: VersionReq, reader: jspb.BinaryReader): VersionReq; -} - -export namespace VersionReq { - export type AsObject = { - } -} - -export class VersionResp extends jspb.Message { - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): VersionResp.AsObject; - static toObject(includeInstance: boolean, msg: VersionResp): VersionResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: VersionResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): VersionResp; - static deserializeBinaryFromReader(message: VersionResp, reader: jspb.BinaryReader): VersionResp; -} - -export namespace VersionResp { - export type AsObject = { - version: string, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/commands_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/commands_pb.js deleted file mode 100644 index 16849da5..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/commands_pb.js +++ /dev/null @@ -1,2022 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var commands_common_pb = require('../commands/common_pb.js'); -goog.object.extend(proto, commands_common_pb); -var commands_board_pb = require('../commands/board_pb.js'); -goog.object.extend(proto, commands_board_pb); -var commands_compile_pb = require('../commands/compile_pb.js'); -goog.object.extend(proto, commands_compile_pb); -var commands_core_pb = require('../commands/core_pb.js'); -goog.object.extend(proto, commands_core_pb); -var commands_upload_pb = require('../commands/upload_pb.js'); -goog.object.extend(proto, commands_upload_pb); -var commands_lib_pb = require('../commands/lib_pb.js'); -goog.object.extend(proto, commands_lib_pb); -goog.exportSymbol('proto.cc.arduino.cli.commands.DestroyReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.DestroyResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.InitReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.InitResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.RescanReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.RescanResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.UpdateIndexReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.UpdateIndexResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.VersionReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.VersionResp', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.InitReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.InitReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.InitReq.displayName = 'proto.cc.arduino.cli.commands.InitReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.InitReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.InitReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.InitReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.InitReq.toObject = function(includeInstance, msg) { - var f, obj = { - libraryManagerOnly: jspb.Message.getFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.InitReq} - */ -proto.cc.arduino.cli.commands.InitReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.InitReq; - return proto.cc.arduino.cli.commands.InitReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.InitReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.InitReq} - */ -proto.cc.arduino.cli.commands.InitReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setLibraryManagerOnly(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.InitReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.InitReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.InitReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.InitReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getLibraryManagerOnly(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * optional bool library_manager_only = 2; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.InitReq.prototype.getLibraryManagerOnly = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.InitReq.prototype.setLibraryManagerOnly = function(value) { - jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.InitResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.InitResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.InitResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.InitResp.displayName = 'proto.cc.arduino.cli.commands.InitResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.InitResp.repeatedFields_ = [2]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.InitResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.InitResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.InitResp.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - platformsIndexErrorsList: jspb.Message.getRepeatedField(msg, 2), - librariesIndexError: jspb.Message.getFieldWithDefault(msg, 3, ""), - downloadProgress: (f = msg.getDownloadProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f), - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.InitResp} - */ -proto.cc.arduino.cli.commands.InitResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.InitResp; - return proto.cc.arduino.cli.commands.InitResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.InitResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.InitResp} - */ -proto.cc.arduino.cli.commands.InitResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.addPlatformsIndexErrors(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setLibrariesIndexError(value); - break; - case 4: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setDownloadProgress(value); - break; - case 5: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.InitResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.InitResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.InitResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getPlatformsIndexErrorsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 2, - f - ); - } - f = message.getLibrariesIndexError(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDownloadProgress(); - if (f != null) { - writer.writeMessage( - 4, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 5, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.InitResp.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.InitResp.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * repeated string platforms_index_errors = 2; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.getPlatformsIndexErrorsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.InitResp.prototype.setPlatformsIndexErrorsList = function(value) { - jspb.Message.setField(this, 2, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.InitResp.prototype.addPlatformsIndexErrors = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 2, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.InitResp.prototype.clearPlatformsIndexErrorsList = function() { - this.setPlatformsIndexErrorsList([]); -}; - - -/** - * optional string libraries_index_error = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.getLibrariesIndexError = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.InitResp.prototype.setLibrariesIndexError = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional DownloadProgress download_progress = 4; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.getDownloadProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 4)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.InitResp.prototype.setDownloadProgress = function(value) { - jspb.Message.setWrapperField(this, 4, value); -}; - - -proto.cc.arduino.cli.commands.InitResp.prototype.clearDownloadProgress = function() { - this.setDownloadProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.hasDownloadProgress = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional TaskProgress task_progress = 5; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 5)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.InitResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 5, value); -}; - - -proto.cc.arduino.cli.commands.InitResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.InitResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 5) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.DestroyReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.DestroyReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.DestroyReq.displayName = 'proto.cc.arduino.cli.commands.DestroyReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.DestroyReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.DestroyReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.DestroyReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DestroyReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.DestroyReq} - */ -proto.cc.arduino.cli.commands.DestroyReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.DestroyReq; - return proto.cc.arduino.cli.commands.DestroyReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.DestroyReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.DestroyReq} - */ -proto.cc.arduino.cli.commands.DestroyReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.DestroyReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.DestroyReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.DestroyReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DestroyReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.DestroyReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.DestroyReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.DestroyReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.DestroyReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.DestroyResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.DestroyResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.DestroyResp.displayName = 'proto.cc.arduino.cli.commands.DestroyResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.DestroyResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.DestroyResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.DestroyResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DestroyResp.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.DestroyResp} - */ -proto.cc.arduino.cli.commands.DestroyResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.DestroyResp; - return proto.cc.arduino.cli.commands.DestroyResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.DestroyResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.DestroyResp} - */ -proto.cc.arduino.cli.commands.DestroyResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.DestroyResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.DestroyResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.DestroyResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DestroyResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.RescanReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.RescanReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.RescanReq.displayName = 'proto.cc.arduino.cli.commands.RescanReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.RescanReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.RescanReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.RescanReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.RescanReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.RescanReq} - */ -proto.cc.arduino.cli.commands.RescanReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.RescanReq; - return proto.cc.arduino.cli.commands.RescanReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.RescanReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.RescanReq} - */ -proto.cc.arduino.cli.commands.RescanReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.RescanReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.RescanReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.RescanReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.RescanReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.RescanReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.RescanReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.RescanReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.RescanReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.RescanResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.RescanResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.RescanResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.RescanResp.displayName = 'proto.cc.arduino.cli.commands.RescanResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.RescanResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.RescanResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.RescanResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.RescanResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.RescanResp.toObject = function(includeInstance, msg) { - var f, obj = { - platformsIndexErrorsList: jspb.Message.getRepeatedField(msg, 1), - librariesIndexError: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.RescanResp} - */ -proto.cc.arduino.cli.commands.RescanResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.RescanResp; - return proto.cc.arduino.cli.commands.RescanResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.RescanResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.RescanResp} - */ -proto.cc.arduino.cli.commands.RescanResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addPlatformsIndexErrors(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setLibrariesIndexError(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.RescanResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.RescanResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.RescanResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.RescanResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPlatformsIndexErrorsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getLibrariesIndexError(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated string platforms_index_errors = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.RescanResp.prototype.getPlatformsIndexErrorsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.RescanResp.prototype.setPlatformsIndexErrorsList = function(value) { - jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.RescanResp.prototype.addPlatformsIndexErrors = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.RescanResp.prototype.clearPlatformsIndexErrorsList = function() { - this.setPlatformsIndexErrorsList([]); -}; - - -/** - * optional string libraries_index_error = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.RescanResp.prototype.getLibrariesIndexError = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.RescanResp.prototype.setLibrariesIndexError = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.UpdateIndexReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.UpdateIndexReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.UpdateIndexReq.displayName = 'proto.cc.arduino.cli.commands.UpdateIndexReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.UpdateIndexReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.UpdateIndexReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.UpdateIndexReq} - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.UpdateIndexReq; - return proto.cc.arduino.cli.commands.UpdateIndexReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.UpdateIndexReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.UpdateIndexReq} - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.UpdateIndexReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.UpdateIndexReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.UpdateIndexReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.UpdateIndexReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UpdateIndexReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.UpdateIndexResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.UpdateIndexResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.UpdateIndexResp.displayName = 'proto.cc.arduino.cli.commands.UpdateIndexResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.UpdateIndexResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.UpdateIndexResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.toObject = function(includeInstance, msg) { - var f, obj = { - downloadProgress: (f = msg.getDownloadProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.UpdateIndexResp} - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.UpdateIndexResp; - return proto.cc.arduino.cli.commands.UpdateIndexResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.UpdateIndexResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.UpdateIndexResp} - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setDownloadProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.UpdateIndexResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.UpdateIndexResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDownloadProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress download_progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.prototype.getDownloadProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.UpdateIndexResp.prototype.setDownloadProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.UpdateIndexResp.prototype.clearDownloadProgress = function() { - this.setDownloadProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UpdateIndexResp.prototype.hasDownloadProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.displayName = 'proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq; - return proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.displayName = 'proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.toObject = function(includeInstance, msg) { - var f, obj = { - downloadProgress: (f = msg.getDownloadProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp; - return proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setDownloadProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDownloadProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress download_progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.prototype.getDownloadProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.prototype.setDownloadProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.prototype.clearDownloadProgress = function() { - this.setDownloadProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UpdateLibrariesIndexResp.prototype.hasDownloadProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.VersionReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.VersionReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.VersionReq.displayName = 'proto.cc.arduino.cli.commands.VersionReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.VersionReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.VersionReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.VersionReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.VersionReq.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.VersionReq} - */ -proto.cc.arduino.cli.commands.VersionReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.VersionReq; - return proto.cc.arduino.cli.commands.VersionReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.VersionReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.VersionReq} - */ -proto.cc.arduino.cli.commands.VersionReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.VersionReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.VersionReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.VersionReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.VersionReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.VersionResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.VersionResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.VersionResp.displayName = 'proto.cc.arduino.cli.commands.VersionResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.VersionResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.VersionResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.VersionResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.VersionResp.toObject = function(includeInstance, msg) { - var f, obj = { - version: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.VersionResp} - */ -proto.cc.arduino.cli.commands.VersionResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.VersionResp; - return proto.cc.arduino.cli.commands.VersionResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.VersionResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.VersionResp} - */ -proto.cc.arduino.cli.commands.VersionResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.VersionResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.VersionResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.VersionResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.VersionResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string version = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.VersionResp.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.VersionResp.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/common_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/common_grpc_pb.js deleted file mode 100644 index 97b3a246..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/common_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/common_pb.d.ts deleted file mode 100644 index 3dd0a50c..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/common_pb.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Instance extends jspb.Message { - getId(): number; - setId(value: number): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Instance.AsObject; - static toObject(includeInstance: boolean, msg: Instance): Instance.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Instance, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Instance; - static deserializeBinaryFromReader(message: Instance, reader: jspb.BinaryReader): Instance; -} - -export namespace Instance { - export type AsObject = { - id: number, - } -} - -export class DownloadProgress extends jspb.Message { - getUrl(): string; - setUrl(value: string): void; - - getFile(): string; - setFile(value: string): void; - - getTotalSize(): number; - setTotalSize(value: number): void; - - getDownloaded(): number; - setDownloaded(value: number): void; - - getCompleted(): boolean; - setCompleted(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DownloadProgress.AsObject; - static toObject(includeInstance: boolean, msg: DownloadProgress): DownloadProgress.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DownloadProgress, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DownloadProgress; - static deserializeBinaryFromReader(message: DownloadProgress, reader: jspb.BinaryReader): DownloadProgress; -} - -export namespace DownloadProgress { - export type AsObject = { - url: string, - file: string, - totalSize: number, - downloaded: number, - completed: boolean, - } -} - -export class TaskProgress extends jspb.Message { - getName(): string; - setName(value: string): void; - - getMessage(): string; - setMessage(value: string): void; - - getCompleted(): boolean; - setCompleted(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): TaskProgress.AsObject; - static toObject(includeInstance: boolean, msg: TaskProgress): TaskProgress.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: TaskProgress, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): TaskProgress; - static deserializeBinaryFromReader(message: TaskProgress, reader: jspb.BinaryReader): TaskProgress; -} - -export namespace TaskProgress { - export type AsObject = { - name: string, - message: string, - completed: boolean, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/common_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/common_pb.js deleted file mode 100644 index 0e3dcd97..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/common_pb.js +++ /dev/null @@ -1,609 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.cc.arduino.cli.commands.DownloadProgress', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.Instance', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.TaskProgress', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.Instance = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.Instance, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.Instance.displayName = 'proto.cc.arduino.cli.commands.Instance'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.Instance.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.Instance.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.Instance} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Instance.toObject = function(includeInstance, msg) { - var f, obj = { - id: jspb.Message.getFieldWithDefault(msg, 1, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.Instance.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.Instance; - return proto.cc.arduino.cli.commands.Instance.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.Instance} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.Instance.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setId(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.Instance.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.Instance.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.Instance} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Instance.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getId(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } -}; - - -/** - * optional int32 id = 1; - * @return {number} - */ -proto.cc.arduino.cli.commands.Instance.prototype.getId = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** @param {number} value */ -proto.cc.arduino.cli.commands.Instance.prototype.setId = function(value) { - jspb.Message.setProto3IntField(this, 1, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.DownloadProgress = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.DownloadProgress, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.DownloadProgress.displayName = 'proto.cc.arduino.cli.commands.DownloadProgress'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.DownloadProgress.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.DownloadProgress} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DownloadProgress.toObject = function(includeInstance, msg) { - var f, obj = { - url: jspb.Message.getFieldWithDefault(msg, 1, ""), - file: jspb.Message.getFieldWithDefault(msg, 2, ""), - totalSize: jspb.Message.getFieldWithDefault(msg, 3, 0), - downloaded: jspb.Message.getFieldWithDefault(msg, 4, 0), - completed: jspb.Message.getFieldWithDefault(msg, 5, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.DownloadProgress.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.DownloadProgress; - return proto.cc.arduino.cli.commands.DownloadProgress.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.DownloadProgress} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.DownloadProgress.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFile(value); - break; - case 3: - var value = /** @type {number} */ (reader.readInt64()); - msg.setTotalSize(value); - break; - case 4: - var value = /** @type {number} */ (reader.readInt64()); - msg.setDownloaded(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setCompleted(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.DownloadProgress.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.DownloadProgress} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DownloadProgress.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getFile(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTotalSize(); - if (f !== 0) { - writer.writeInt64( - 3, - f - ); - } - f = message.getDownloaded(); - if (f !== 0) { - writer.writeInt64( - 4, - f - ); - } - f = message.getCompleted(); - if (f) { - writer.writeBool( - 5, - f - ); - } -}; - - -/** - * optional string url = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.setUrl = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string file = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.getFile = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.setFile = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional int64 total_size = 3; - * @return {number} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.getTotalSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** @param {number} value */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.setTotalSize = function(value) { - jspb.Message.setProto3IntField(this, 3, value); -}; - - -/** - * optional int64 downloaded = 4; - * @return {number} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.getDownloaded = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** @param {number} value */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.setDownloaded = function(value) { - jspb.Message.setProto3IntField(this, 4, value); -}; - - -/** - * optional bool completed = 5; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.getCompleted = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.DownloadProgress.prototype.setCompleted = function(value) { - jspb.Message.setProto3BooleanField(this, 5, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.TaskProgress = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.TaskProgress, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.TaskProgress.displayName = 'proto.cc.arduino.cli.commands.TaskProgress'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.TaskProgress.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.TaskProgress} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.TaskProgress.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - message: jspb.Message.getFieldWithDefault(msg, 2, ""), - completed: jspb.Message.getFieldWithDefault(msg, 3, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.TaskProgress.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.TaskProgress; - return proto.cc.arduino.cli.commands.TaskProgress.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.TaskProgress} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.TaskProgress.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setCompleted(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.TaskProgress.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.TaskProgress} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.TaskProgress.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getCompleted(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.setMessage = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool completed = 3; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.getCompleted = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.TaskProgress.prototype.setCompleted = function(value) { - jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/compile_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/compile_grpc_pb.js deleted file mode 100644 index 97b3a246..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/compile_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/compile_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/compile_pb.d.ts deleted file mode 100644 index 6c1c79d5..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/compile_pb.d.ts +++ /dev/null @@ -1,125 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/compile.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as commands_common_pb from "../commands/common_pb"; - -export class CompileReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getFqbn(): string; - setFqbn(value: string): void; - - getSketchpath(): string; - setSketchpath(value: string): void; - - getShowproperties(): boolean; - setShowproperties(value: boolean): void; - - getPreprocess(): boolean; - setPreprocess(value: boolean): void; - - getBuildcachepath(): string; - setBuildcachepath(value: string): void; - - getBuildpath(): string; - setBuildpath(value: string): void; - - clearBuildpropertiesList(): void; - getBuildpropertiesList(): Array; - setBuildpropertiesList(value: Array): void; - addBuildproperties(value: string, index?: number): string; - - getWarnings(): string; - setWarnings(value: string): void; - - getVerbose(): boolean; - setVerbose(value: boolean): void; - - getQuiet(): boolean; - setQuiet(value: boolean): void; - - getVidpid(): string; - setVidpid(value: string): void; - - getExportfile(): string; - setExportfile(value: string): void; - - getJobs(): number; - setJobs(value: number): void; - - clearLibrariesList(): void; - getLibrariesList(): Array; - setLibrariesList(value: Array): void; - addLibraries(value: string, index?: number): string; - - getOptimizefordebug(): boolean; - setOptimizefordebug(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CompileReq.AsObject; - static toObject(includeInstance: boolean, msg: CompileReq): CompileReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CompileReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CompileReq; - static deserializeBinaryFromReader(message: CompileReq, reader: jspb.BinaryReader): CompileReq; -} - -export namespace CompileReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - fqbn: string, - sketchpath: string, - showproperties: boolean, - preprocess: boolean, - buildcachepath: string, - buildpath: string, - buildpropertiesList: Array, - warnings: string, - verbose: boolean, - quiet: boolean, - vidpid: string, - exportfile: string, - jobs: number, - librariesList: Array, - optimizefordebug: boolean, - } -} - -export class CompileResp extends jspb.Message { - getOutStream(): Uint8Array | string; - getOutStream_asU8(): Uint8Array; - getOutStream_asB64(): string; - setOutStream(value: Uint8Array | string): void; - - getErrStream(): Uint8Array | string; - getErrStream_asU8(): Uint8Array; - getErrStream_asB64(): string; - setErrStream(value: Uint8Array | string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CompileResp.AsObject; - static toObject(includeInstance: boolean, msg: CompileResp): CompileResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CompileResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CompileResp; - static deserializeBinaryFromReader(message: CompileResp, reader: jspb.BinaryReader): CompileResp; -} - -export namespace CompileResp { - export type AsObject = { - outStream: Uint8Array | string, - errStream: Uint8Array | string, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/compile_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/compile_pb.js deleted file mode 100644 index 6563fd7d..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/compile_pb.js +++ /dev/null @@ -1,844 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var commands_common_pb = require('../commands/common_pb.js'); -goog.object.extend(proto, commands_common_pb); -goog.exportSymbol('proto.cc.arduino.cli.commands.CompileReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.CompileResp', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.CompileReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.CompileReq.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.CompileReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.CompileReq.displayName = 'proto.cc.arduino.cli.commands.CompileReq'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.CompileReq.repeatedFields_ = [8,15]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.CompileReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.CompileReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.CompileReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""), - sketchpath: jspb.Message.getFieldWithDefault(msg, 3, ""), - showproperties: jspb.Message.getFieldWithDefault(msg, 4, false), - preprocess: jspb.Message.getFieldWithDefault(msg, 5, false), - buildcachepath: jspb.Message.getFieldWithDefault(msg, 6, ""), - buildpath: jspb.Message.getFieldWithDefault(msg, 7, ""), - buildpropertiesList: jspb.Message.getRepeatedField(msg, 8), - warnings: jspb.Message.getFieldWithDefault(msg, 9, ""), - verbose: jspb.Message.getFieldWithDefault(msg, 10, false), - quiet: jspb.Message.getFieldWithDefault(msg, 11, false), - vidpid: jspb.Message.getFieldWithDefault(msg, 12, ""), - exportfile: jspb.Message.getFieldWithDefault(msg, 13, ""), - jobs: jspb.Message.getFieldWithDefault(msg, 14, 0), - librariesList: jspb.Message.getRepeatedField(msg, 15), - optimizefordebug: jspb.Message.getFieldWithDefault(msg, 16, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.CompileReq} - */ -proto.cc.arduino.cli.commands.CompileReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.CompileReq; - return proto.cc.arduino.cli.commands.CompileReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.CompileReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.CompileReq} - */ -proto.cc.arduino.cli.commands.CompileReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFqbn(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSketchpath(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setShowproperties(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setPreprocess(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setBuildcachepath(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBuildpath(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.addBuildproperties(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setWarnings(value); - break; - case 10: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setVerbose(value); - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setQuiet(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setVidpid(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setExportfile(value); - break; - case 14: - var value = /** @type {number} */ (reader.readInt32()); - msg.setJobs(value); - break; - case 15: - var value = /** @type {string} */ (reader.readString()); - msg.addLibraries(value); - break; - case 16: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOptimizefordebug(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.CompileReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.CompileReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.CompileReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getFqbn(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSketchpath(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getShowproperties(); - if (f) { - writer.writeBool( - 4, - f - ); - } - f = message.getPreprocess(); - if (f) { - writer.writeBool( - 5, - f - ); - } - f = message.getBuildcachepath(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getBuildpath(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getBuildpropertiesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 8, - f - ); - } - f = message.getWarnings(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getVerbose(); - if (f) { - writer.writeBool( - 10, - f - ); - } - f = message.getQuiet(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getVidpid(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getExportfile(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } - f = message.getJobs(); - if (f !== 0) { - writer.writeInt32( - 14, - f - ); - } - f = message.getLibrariesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 15, - f - ); - } - f = message.getOptimizefordebug(); - if (f) { - writer.writeBool( - 16, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.CompileReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string fqbn = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getFqbn = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setFqbn = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string sketchPath = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getSketchpath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setSketchpath = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional bool showProperties = 4; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getShowproperties = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setShowproperties = function(value) { - jspb.Message.setProto3BooleanField(this, 4, value); -}; - - -/** - * optional bool preprocess = 5; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getPreprocess = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setPreprocess = function(value) { - jspb.Message.setProto3BooleanField(this, 5, value); -}; - - -/** - * optional string buildCachePath = 6; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getBuildcachepath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setBuildcachepath = function(value) { - jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string buildPath = 7; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getBuildpath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setBuildpath = function(value) { - jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * repeated string buildProperties = 8; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getBuildpropertiesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 8)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setBuildpropertiesList = function(value) { - jspb.Message.setField(this, 8, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.addBuildproperties = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 8, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.CompileReq.prototype.clearBuildpropertiesList = function() { - this.setBuildpropertiesList([]); -}; - - -/** - * optional string warnings = 9; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getWarnings = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setWarnings = function(value) { - jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional bool verbose = 10; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getVerbose = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 10, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setVerbose = function(value) { - jspb.Message.setProto3BooleanField(this, 10, value); -}; - - -/** - * optional bool quiet = 11; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getQuiet = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 11, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setQuiet = function(value) { - jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * optional string vidPid = 12; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getVidpid = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setVidpid = function(value) { - jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * optional string exportFile = 13; - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getExportfile = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setExportfile = function(value) { - jspb.Message.setProto3StringField(this, 13, value); -}; - - -/** - * optional int32 jobs = 14; - * @return {number} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getJobs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0)); -}; - - -/** @param {number} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setJobs = function(value) { - jspb.Message.setProto3IntField(this, 14, value); -}; - - -/** - * repeated string libraries = 15; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getLibrariesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 15)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setLibrariesList = function(value) { - jspb.Message.setField(this, 15, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.addLibraries = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 15, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.CompileReq.prototype.clearLibrariesList = function() { - this.setLibrariesList([]); -}; - - -/** - * optional bool optimizeForDebug = 16; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.CompileReq.prototype.getOptimizefordebug = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 16, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.CompileReq.prototype.setOptimizefordebug = function(value) { - jspb.Message.setProto3BooleanField(this, 16, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.CompileResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.CompileResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.CompileResp.displayName = 'proto.cc.arduino.cli.commands.CompileResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.CompileResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.CompileResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.CompileResp.toObject = function(includeInstance, msg) { - var f, obj = { - outStream: msg.getOutStream_asB64(), - errStream: msg.getErrStream_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.CompileResp} - */ -proto.cc.arduino.cli.commands.CompileResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.CompileResp; - return proto.cc.arduino.cli.commands.CompileResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.CompileResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.CompileResp} - */ -proto.cc.arduino.cli.commands.CompileResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setOutStream(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setErrStream(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.CompileResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.CompileResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.CompileResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getOutStream_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getErrStream_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } -}; - - -/** - * optional bytes out_stream = 1; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.getOutStream = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes out_stream = 1; - * This is a type-conversion wrapper around `getOutStream()` - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.getOutStream_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getOutStream())); -}; - - -/** - * optional bytes out_stream = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getOutStream()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.getOutStream_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getOutStream())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.commands.CompileResp.prototype.setOutStream = function(value) { - jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional bytes err_stream = 2; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.getErrStream = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes err_stream = 2; - * This is a type-conversion wrapper around `getErrStream()` - * @return {string} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.getErrStream_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getErrStream())); -}; - - -/** - * optional bytes err_stream = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getErrStream()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.CompileResp.prototype.getErrStream_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getErrStream())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.commands.CompileResp.prototype.setErrStream = function(value) { - jspb.Message.setProto3BytesField(this, 2, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/core_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/core_grpc_pb.js deleted file mode 100644 index 97b3a246..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/core_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/core_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/core_pb.d.ts deleted file mode 100644 index 60eb973b..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/core_pb.d.ts +++ /dev/null @@ -1,436 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/core.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as commands_common_pb from "../commands/common_pb"; - -export class PlatformInstallReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getPlatformPackage(): string; - setPlatformPackage(value: string): void; - - getArchitecture(): string; - setArchitecture(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformInstallReq.AsObject; - static toObject(includeInstance: boolean, msg: PlatformInstallReq): PlatformInstallReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformInstallReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformInstallReq; - static deserializeBinaryFromReader(message: PlatformInstallReq, reader: jspb.BinaryReader): PlatformInstallReq; -} - -export namespace PlatformInstallReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - platformPackage: string, - architecture: string, - version: string, - } -} - -export class PlatformInstallResp extends jspb.Message { - - hasProgress(): boolean; - clearProgress(): void; - getProgress(): commands_common_pb.DownloadProgress | undefined; - setProgress(value?: commands_common_pb.DownloadProgress): void; - - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformInstallResp.AsObject; - static toObject(includeInstance: boolean, msg: PlatformInstallResp): PlatformInstallResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformInstallResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformInstallResp; - static deserializeBinaryFromReader(message: PlatformInstallResp, reader: jspb.BinaryReader): PlatformInstallResp; -} - -export namespace PlatformInstallResp { - export type AsObject = { - progress?: commands_common_pb.DownloadProgress.AsObject, - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class PlatformDownloadReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getPlatformPackage(): string; - setPlatformPackage(value: string): void; - - getArchitecture(): string; - setArchitecture(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformDownloadReq.AsObject; - static toObject(includeInstance: boolean, msg: PlatformDownloadReq): PlatformDownloadReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformDownloadReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformDownloadReq; - static deserializeBinaryFromReader(message: PlatformDownloadReq, reader: jspb.BinaryReader): PlatformDownloadReq; -} - -export namespace PlatformDownloadReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - platformPackage: string, - architecture: string, - version: string, - } -} - -export class PlatformDownloadResp extends jspb.Message { - - hasProgress(): boolean; - clearProgress(): void; - getProgress(): commands_common_pb.DownloadProgress | undefined; - setProgress(value?: commands_common_pb.DownloadProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformDownloadResp.AsObject; - static toObject(includeInstance: boolean, msg: PlatformDownloadResp): PlatformDownloadResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformDownloadResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformDownloadResp; - static deserializeBinaryFromReader(message: PlatformDownloadResp, reader: jspb.BinaryReader): PlatformDownloadResp; -} - -export namespace PlatformDownloadResp { - export type AsObject = { - progress?: commands_common_pb.DownloadProgress.AsObject, - } -} - -export class PlatformUninstallReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getPlatformPackage(): string; - setPlatformPackage(value: string): void; - - getArchitecture(): string; - setArchitecture(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformUninstallReq.AsObject; - static toObject(includeInstance: boolean, msg: PlatformUninstallReq): PlatformUninstallReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformUninstallReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformUninstallReq; - static deserializeBinaryFromReader(message: PlatformUninstallReq, reader: jspb.BinaryReader): PlatformUninstallReq; -} - -export namespace PlatformUninstallReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - platformPackage: string, - architecture: string, - } -} - -export class PlatformUninstallResp extends jspb.Message { - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformUninstallResp.AsObject; - static toObject(includeInstance: boolean, msg: PlatformUninstallResp): PlatformUninstallResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformUninstallResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformUninstallResp; - static deserializeBinaryFromReader(message: PlatformUninstallResp, reader: jspb.BinaryReader): PlatformUninstallResp; -} - -export namespace PlatformUninstallResp { - export type AsObject = { - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class PlatformUpgradeReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getPlatformPackage(): string; - setPlatformPackage(value: string): void; - - getArchitecture(): string; - setArchitecture(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformUpgradeReq.AsObject; - static toObject(includeInstance: boolean, msg: PlatformUpgradeReq): PlatformUpgradeReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformUpgradeReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformUpgradeReq; - static deserializeBinaryFromReader(message: PlatformUpgradeReq, reader: jspb.BinaryReader): PlatformUpgradeReq; -} - -export namespace PlatformUpgradeReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - platformPackage: string, - architecture: string, - } -} - -export class PlatformUpgradeResp extends jspb.Message { - - hasProgress(): boolean; - clearProgress(): void; - getProgress(): commands_common_pb.DownloadProgress | undefined; - setProgress(value?: commands_common_pb.DownloadProgress): void; - - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformUpgradeResp.AsObject; - static toObject(includeInstance: boolean, msg: PlatformUpgradeResp): PlatformUpgradeResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformUpgradeResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformUpgradeResp; - static deserializeBinaryFromReader(message: PlatformUpgradeResp, reader: jspb.BinaryReader): PlatformUpgradeResp; -} - -export namespace PlatformUpgradeResp { - export type AsObject = { - progress?: commands_common_pb.DownloadProgress.AsObject, - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class PlatformSearchReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getSearchArgs(): string; - setSearchArgs(value: string): void; - - getAllVersions(): boolean; - setAllVersions(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformSearchReq.AsObject; - static toObject(includeInstance: boolean, msg: PlatformSearchReq): PlatformSearchReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformSearchReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformSearchReq; - static deserializeBinaryFromReader(message: PlatformSearchReq, reader: jspb.BinaryReader): PlatformSearchReq; -} - -export namespace PlatformSearchReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - searchArgs: string, - allVersions: boolean, - } -} - -export class PlatformSearchResp extends jspb.Message { - clearSearchOutputList(): void; - getSearchOutputList(): Array; - setSearchOutputList(value: Array): void; - addSearchOutput(value?: Platform, index?: number): Platform; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformSearchResp.AsObject; - static toObject(includeInstance: boolean, msg: PlatformSearchResp): PlatformSearchResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformSearchResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformSearchResp; - static deserializeBinaryFromReader(message: PlatformSearchResp, reader: jspb.BinaryReader): PlatformSearchResp; -} - -export namespace PlatformSearchResp { - export type AsObject = { - searchOutputList: Array, - } -} - -export class PlatformListReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getUpdatableOnly(): boolean; - setUpdatableOnly(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformListReq.AsObject; - static toObject(includeInstance: boolean, msg: PlatformListReq): PlatformListReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformListReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformListReq; - static deserializeBinaryFromReader(message: PlatformListReq, reader: jspb.BinaryReader): PlatformListReq; -} - -export namespace PlatformListReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - updatableOnly: boolean, - } -} - -export class PlatformListResp extends jspb.Message { - clearInstalledPlatformList(): void; - getInstalledPlatformList(): Array; - setInstalledPlatformList(value: Array): void; - addInstalledPlatform(value?: Platform, index?: number): Platform; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): PlatformListResp.AsObject; - static toObject(includeInstance: boolean, msg: PlatformListResp): PlatformListResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: PlatformListResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): PlatformListResp; - static deserializeBinaryFromReader(message: PlatformListResp, reader: jspb.BinaryReader): PlatformListResp; -} - -export namespace PlatformListResp { - export type AsObject = { - installedPlatformList: Array, - } -} - -export class Platform extends jspb.Message { - getId(): string; - setId(value: string): void; - - getInstalled(): string; - setInstalled(value: string): void; - - getLatest(): string; - setLatest(value: string): void; - - getName(): string; - setName(value: string): void; - - getMaintainer(): string; - setMaintainer(value: string): void; - - getWebsite(): string; - setWebsite(value: string): void; - - getEmail(): string; - setEmail(value: string): void; - - clearBoardsList(): void; - getBoardsList(): Array; - setBoardsList(value: Array): void; - addBoards(value?: Board, index?: number): Board; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Platform.AsObject; - static toObject(includeInstance: boolean, msg: Platform): Platform.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Platform, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Platform; - static deserializeBinaryFromReader(message: Platform, reader: jspb.BinaryReader): Platform; -} - -export namespace Platform { - export type AsObject = { - id: string, - installed: string, - latest: string, - name: string, - maintainer: string, - website: string, - email: string, - boardsList: Array, - } -} - -export class Board extends jspb.Message { - getName(): string; - setName(value: string): void; - - getFqbn(): string; - setFqbn(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Board.AsObject; - static toObject(includeInstance: boolean, msg: Board): Board.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Board, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Board; - static deserializeBinaryFromReader(message: Board, reader: jspb.BinaryReader): Board; -} - -export namespace Board { - export type AsObject = { - name: string, - fqbn: string, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/core_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/core_pb.js deleted file mode 100644 index 24f93c12..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/core_pb.js +++ /dev/null @@ -1,2925 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var commands_common_pb = require('../commands/common_pb.js'); -goog.object.extend(proto, commands_common_pb); -goog.exportSymbol('proto.cc.arduino.cli.commands.Board', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.Platform', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformDownloadReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformDownloadResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformInstallReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformInstallResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformListReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformListResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformSearchReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformSearchResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformUninstallReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformUninstallResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformUpgradeReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.PlatformUpgradeResp', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformInstallReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformInstallReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformInstallReq.displayName = 'proto.cc.arduino.cli.commands.PlatformInstallReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformInstallReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformInstallReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - platformPackage: jspb.Message.getFieldWithDefault(msg, 2, ""), - architecture: jspb.Message.getFieldWithDefault(msg, 3, ""), - version: jspb.Message.getFieldWithDefault(msg, 4, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformInstallReq} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformInstallReq; - return proto.cc.arduino.cli.commands.PlatformInstallReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformInstallReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformInstallReq} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPlatformPackage(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setArchitecture(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformInstallReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformInstallReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getPlatformPackage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getArchitecture(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string platform_package = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.getPlatformPackage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.setPlatformPackage = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string architecture = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.getArchitecture = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.setArchitecture = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string version = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformInstallReq.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformInstallResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformInstallResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformInstallResp.displayName = 'proto.cc.arduino.cli.commands.PlatformInstallResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformInstallResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformInstallResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.toObject = function(includeInstance, msg) { - var f, obj = { - progress: (f = msg.getProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f), - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformInstallResp} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformInstallResp; - return proto.cc.arduino.cli.commands.PlatformInstallResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformInstallResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformInstallResp} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setProgress(value); - break; - case 2: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformInstallResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformInstallResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 2, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.getProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.setProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.clearProgress = function() { - this.setProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.hasProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional TaskProgress task_progress = 2; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 2)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 2, value); -}; - - -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformInstallResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformDownloadReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformDownloadReq.displayName = 'proto.cc.arduino.cli.commands.PlatformDownloadReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformDownloadReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformDownloadReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - platformPackage: jspb.Message.getFieldWithDefault(msg, 2, ""), - architecture: jspb.Message.getFieldWithDefault(msg, 3, ""), - version: jspb.Message.getFieldWithDefault(msg, 4, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformDownloadReq} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformDownloadReq; - return proto.cc.arduino.cli.commands.PlatformDownloadReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformDownloadReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformDownloadReq} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPlatformPackage(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setArchitecture(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformDownloadReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformDownloadReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getPlatformPackage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getArchitecture(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string platform_package = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.getPlatformPackage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.setPlatformPackage = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string architecture = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.getArchitecture = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.setArchitecture = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string version = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformDownloadReq.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformDownloadResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformDownloadResp.displayName = 'proto.cc.arduino.cli.commands.PlatformDownloadResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformDownloadResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformDownloadResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.toObject = function(includeInstance, msg) { - var f, obj = { - progress: (f = msg.getProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformDownloadResp} - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformDownloadResp; - return proto.cc.arduino.cli.commands.PlatformDownloadResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformDownloadResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformDownloadResp} - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformDownloadResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformDownloadResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.prototype.getProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.prototype.setProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformDownloadResp.prototype.clearProgress = function() { - this.setProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformDownloadResp.prototype.hasProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformUninstallReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformUninstallReq.displayName = 'proto.cc.arduino.cli.commands.PlatformUninstallReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformUninstallReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformUninstallReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - platformPackage: jspb.Message.getFieldWithDefault(msg, 2, ""), - architecture: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformUninstallReq} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformUninstallReq; - return proto.cc.arduino.cli.commands.PlatformUninstallReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformUninstallReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformUninstallReq} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPlatformPackage(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setArchitecture(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformUninstallReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformUninstallReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getPlatformPackage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getArchitecture(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string platform_package = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.getPlatformPackage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.setPlatformPackage = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string architecture = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.getArchitecture = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformUninstallReq.prototype.setArchitecture = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformUninstallResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformUninstallResp.displayName = 'proto.cc.arduino.cli.commands.PlatformUninstallResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformUninstallResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformUninstallResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.toObject = function(includeInstance, msg) { - var f, obj = { - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformUninstallResp} - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformUninstallResp; - return proto.cc.arduino.cli.commands.PlatformUninstallResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformUninstallResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformUninstallResp} - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformUninstallResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformUninstallResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional TaskProgress task_progress = 1; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformUninstallResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformUninstallResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformUpgradeReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformUpgradeReq.displayName = 'proto.cc.arduino.cli.commands.PlatformUpgradeReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformUpgradeReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformUpgradeReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - platformPackage: jspb.Message.getFieldWithDefault(msg, 2, ""), - architecture: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformUpgradeReq} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformUpgradeReq; - return proto.cc.arduino.cli.commands.PlatformUpgradeReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformUpgradeReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformUpgradeReq} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPlatformPackage(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setArchitecture(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformUpgradeReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformUpgradeReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getPlatformPackage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getArchitecture(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string platform_package = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.getPlatformPackage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.setPlatformPackage = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string architecture = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.getArchitecture = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformUpgradeReq.prototype.setArchitecture = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformUpgradeResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformUpgradeResp.displayName = 'proto.cc.arduino.cli.commands.PlatformUpgradeResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformUpgradeResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformUpgradeResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.toObject = function(includeInstance, msg) { - var f, obj = { - progress: (f = msg.getProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f), - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformUpgradeResp} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformUpgradeResp; - return proto.cc.arduino.cli.commands.PlatformUpgradeResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformUpgradeResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformUpgradeResp} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setProgress(value); - break; - case 2: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformUpgradeResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformUpgradeResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 2, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.getProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.setProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.clearProgress = function() { - this.setProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.hasProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional TaskProgress task_progress = 2; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 2)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 2, value); -}; - - -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformUpgradeResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformSearchReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformSearchReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformSearchReq.displayName = 'proto.cc.arduino.cli.commands.PlatformSearchReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformSearchReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformSearchReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - searchArgs: jspb.Message.getFieldWithDefault(msg, 2, ""), - allVersions: jspb.Message.getFieldWithDefault(msg, 3, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformSearchReq} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformSearchReq; - return proto.cc.arduino.cli.commands.PlatformSearchReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformSearchReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformSearchReq} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSearchArgs(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllVersions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformSearchReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformSearchReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getSearchArgs(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAllVersions(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string search_args = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.getSearchArgs = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.setSearchArgs = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool all_versions = 3; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.getAllVersions = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.PlatformSearchReq.prototype.setAllVersions = function(value) { - jspb.Message.setProto3BooleanField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformSearchResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.PlatformSearchResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformSearchResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformSearchResp.displayName = 'proto.cc.arduino.cli.commands.PlatformSearchResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformSearchResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformSearchResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.toObject = function(includeInstance, msg) { - var f, obj = { - searchOutputList: jspb.Message.toObjectList(msg.getSearchOutputList(), - proto.cc.arduino.cli.commands.Platform.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformSearchResp} - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformSearchResp; - return proto.cc.arduino.cli.commands.PlatformSearchResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformSearchResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformSearchResp} - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.Platform; - reader.readMessage(value,proto.cc.arduino.cli.commands.Platform.deserializeBinaryFromReader); - msg.addSearchOutput(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformSearchResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformSearchResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSearchOutputList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.Platform.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated Platform search_output = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.prototype.getSearchOutputList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.Platform, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.PlatformSearchResp.prototype.setSearchOutputList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.Platform=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.Platform} - */ -proto.cc.arduino.cli.commands.PlatformSearchResp.prototype.addSearchOutput = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.Platform, opt_index); -}; - - -proto.cc.arduino.cli.commands.PlatformSearchResp.prototype.clearSearchOutputList = function() { - this.setSearchOutputList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformListReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformListReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformListReq.displayName = 'proto.cc.arduino.cli.commands.PlatformListReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformListReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformListReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformListReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - updatableOnly: jspb.Message.getFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformListReq} - */ -proto.cc.arduino.cli.commands.PlatformListReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformListReq; - return proto.cc.arduino.cli.commands.PlatformListReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformListReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformListReq} - */ -proto.cc.arduino.cli.commands.PlatformListReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUpdatableOnly(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformListReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformListReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformListReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getUpdatableOnly(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.PlatformListReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional bool updatable_only = 2; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.getUpdatableOnly = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.PlatformListReq.prototype.setUpdatableOnly = function(value) { - jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.PlatformListResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.PlatformListResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.PlatformListResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.PlatformListResp.displayName = 'proto.cc.arduino.cli.commands.PlatformListResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.PlatformListResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.PlatformListResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.PlatformListResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.PlatformListResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformListResp.toObject = function(includeInstance, msg) { - var f, obj = { - installedPlatformList: jspb.Message.toObjectList(msg.getInstalledPlatformList(), - proto.cc.arduino.cli.commands.Platform.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.PlatformListResp} - */ -proto.cc.arduino.cli.commands.PlatformListResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.PlatformListResp; - return proto.cc.arduino.cli.commands.PlatformListResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.PlatformListResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.PlatformListResp} - */ -proto.cc.arduino.cli.commands.PlatformListResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.Platform; - reader.readMessage(value,proto.cc.arduino.cli.commands.Platform.deserializeBinaryFromReader); - msg.addInstalledPlatform(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.PlatformListResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.PlatformListResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.PlatformListResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.PlatformListResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstalledPlatformList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.Platform.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated Platform installed_platform = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.PlatformListResp.prototype.getInstalledPlatformList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.Platform, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.PlatformListResp.prototype.setInstalledPlatformList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.Platform=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.Platform} - */ -proto.cc.arduino.cli.commands.PlatformListResp.prototype.addInstalledPlatform = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.Platform, opt_index); -}; - - -proto.cc.arduino.cli.commands.PlatformListResp.prototype.clearInstalledPlatformList = function() { - this.setInstalledPlatformList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.Platform = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.Platform.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.Platform, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.Platform.displayName = 'proto.cc.arduino.cli.commands.Platform'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.Platform.repeatedFields_ = [8]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.Platform.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.Platform.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.Platform} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Platform.toObject = function(includeInstance, msg) { - var f, obj = { - id: jspb.Message.getFieldWithDefault(msg, 1, ""), - installed: jspb.Message.getFieldWithDefault(msg, 2, ""), - latest: jspb.Message.getFieldWithDefault(msg, 3, ""), - name: jspb.Message.getFieldWithDefault(msg, 4, ""), - maintainer: jspb.Message.getFieldWithDefault(msg, 5, ""), - website: jspb.Message.getFieldWithDefault(msg, 6, ""), - email: jspb.Message.getFieldWithDefault(msg, 7, ""), - boardsList: jspb.Message.toObjectList(msg.getBoardsList(), - proto.cc.arduino.cli.commands.Board.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.Platform} - */ -proto.cc.arduino.cli.commands.Platform.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.Platform; - return proto.cc.arduino.cli.commands.Platform.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.Platform} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.Platform} - */ -proto.cc.arduino.cli.commands.Platform.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setInstalled(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setLatest(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setMaintainer(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setWebsite(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - case 8: - var value = new proto.cc.arduino.cli.commands.Board; - reader.readMessage(value,proto.cc.arduino.cli.commands.Board.deserializeBinaryFromReader); - msg.addBoards(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.Platform.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.Platform.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.Platform} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Platform.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getId(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInstalled(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getLatest(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getMaintainer(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getWebsite(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getBoardsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 8, - f, - proto.cc.arduino.cli.commands.Board.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string ID = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setId = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string Installed = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getInstalled = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setInstalled = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string Latest = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getLatest = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setLatest = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string Name = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string Maintainer = 5; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getMaintainer = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setMaintainer = function(value) { - jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string Website = 6; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getWebsite = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setWebsite = function(value) { - jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string Email = 7; - * @return {string} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setEmail = function(value) { - jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * repeated Board Boards = 8; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.Platform.prototype.getBoardsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.Board, 8)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.Platform.prototype.setBoardsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 8, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.Board=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.Board} - */ -proto.cc.arduino.cli.commands.Platform.prototype.addBoards = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.cc.arduino.cli.commands.Board, opt_index); -}; - - -proto.cc.arduino.cli.commands.Platform.prototype.clearBoardsList = function() { - this.setBoardsList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.Board = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.Board, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.Board.displayName = 'proto.cc.arduino.cli.commands.Board'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.Board.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.Board.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.Board} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Board.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - fqbn: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.Board} - */ -proto.cc.arduino.cli.commands.Board.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.Board; - return proto.cc.arduino.cli.commands.Board.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.Board} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.Board} - */ -proto.cc.arduino.cli.commands.Board.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFqbn(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.Board.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.Board.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.Board} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Board.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getFqbn(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.Board.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Board.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string fqbn = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.Board.prototype.getFqbn = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Board.prototype.setFqbn = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/lib_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/lib_grpc_pb.js deleted file mode 100644 index 97b3a246..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/lib_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/lib_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/lib_pb.d.ts deleted file mode 100644 index 39690be5..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/lib_pb.d.ts +++ /dev/null @@ -1,721 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/lib.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as commands_common_pb from "../commands/common_pb"; - -export class LibraryDownloadReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getName(): string; - setName(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryDownloadReq.AsObject; - static toObject(includeInstance: boolean, msg: LibraryDownloadReq): LibraryDownloadReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryDownloadReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryDownloadReq; - static deserializeBinaryFromReader(message: LibraryDownloadReq, reader: jspb.BinaryReader): LibraryDownloadReq; -} - -export namespace LibraryDownloadReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - name: string, - version: string, - } -} - -export class LibraryDownloadResp extends jspb.Message { - - hasProgress(): boolean; - clearProgress(): void; - getProgress(): commands_common_pb.DownloadProgress | undefined; - setProgress(value?: commands_common_pb.DownloadProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryDownloadResp.AsObject; - static toObject(includeInstance: boolean, msg: LibraryDownloadResp): LibraryDownloadResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryDownloadResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryDownloadResp; - static deserializeBinaryFromReader(message: LibraryDownloadResp, reader: jspb.BinaryReader): LibraryDownloadResp; -} - -export namespace LibraryDownloadResp { - export type AsObject = { - progress?: commands_common_pb.DownloadProgress.AsObject, - } -} - -export class LibraryInstallReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getName(): string; - setName(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryInstallReq.AsObject; - static toObject(includeInstance: boolean, msg: LibraryInstallReq): LibraryInstallReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryInstallReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryInstallReq; - static deserializeBinaryFromReader(message: LibraryInstallReq, reader: jspb.BinaryReader): LibraryInstallReq; -} - -export namespace LibraryInstallReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - name: string, - version: string, - } -} - -export class LibraryInstallResp extends jspb.Message { - - hasProgress(): boolean; - clearProgress(): void; - getProgress(): commands_common_pb.DownloadProgress | undefined; - setProgress(value?: commands_common_pb.DownloadProgress): void; - - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryInstallResp.AsObject; - static toObject(includeInstance: boolean, msg: LibraryInstallResp): LibraryInstallResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryInstallResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryInstallResp; - static deserializeBinaryFromReader(message: LibraryInstallResp, reader: jspb.BinaryReader): LibraryInstallResp; -} - -export namespace LibraryInstallResp { - export type AsObject = { - progress?: commands_common_pb.DownloadProgress.AsObject, - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class LibraryUninstallReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getName(): string; - setName(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryUninstallReq.AsObject; - static toObject(includeInstance: boolean, msg: LibraryUninstallReq): LibraryUninstallReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryUninstallReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryUninstallReq; - static deserializeBinaryFromReader(message: LibraryUninstallReq, reader: jspb.BinaryReader): LibraryUninstallReq; -} - -export namespace LibraryUninstallReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - name: string, - version: string, - } -} - -export class LibraryUninstallResp extends jspb.Message { - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryUninstallResp.AsObject; - static toObject(includeInstance: boolean, msg: LibraryUninstallResp): LibraryUninstallResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryUninstallResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryUninstallResp; - static deserializeBinaryFromReader(message: LibraryUninstallResp, reader: jspb.BinaryReader): LibraryUninstallResp; -} - -export namespace LibraryUninstallResp { - export type AsObject = { - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class LibraryUpgradeAllReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryUpgradeAllReq.AsObject; - static toObject(includeInstance: boolean, msg: LibraryUpgradeAllReq): LibraryUpgradeAllReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryUpgradeAllReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryUpgradeAllReq; - static deserializeBinaryFromReader(message: LibraryUpgradeAllReq, reader: jspb.BinaryReader): LibraryUpgradeAllReq; -} - -export namespace LibraryUpgradeAllReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - } -} - -export class LibraryUpgradeAllResp extends jspb.Message { - - hasProgress(): boolean; - clearProgress(): void; - getProgress(): commands_common_pb.DownloadProgress | undefined; - setProgress(value?: commands_common_pb.DownloadProgress): void; - - - hasTaskProgress(): boolean; - clearTaskProgress(): void; - getTaskProgress(): commands_common_pb.TaskProgress | undefined; - setTaskProgress(value?: commands_common_pb.TaskProgress): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryUpgradeAllResp.AsObject; - static toObject(includeInstance: boolean, msg: LibraryUpgradeAllResp): LibraryUpgradeAllResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryUpgradeAllResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryUpgradeAllResp; - static deserializeBinaryFromReader(message: LibraryUpgradeAllResp, reader: jspb.BinaryReader): LibraryUpgradeAllResp; -} - -export namespace LibraryUpgradeAllResp { - export type AsObject = { - progress?: commands_common_pb.DownloadProgress.AsObject, - taskProgress?: commands_common_pb.TaskProgress.AsObject, - } -} - -export class LibraryResolveDependenciesReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getName(): string; - setName(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryResolveDependenciesReq.AsObject; - static toObject(includeInstance: boolean, msg: LibraryResolveDependenciesReq): LibraryResolveDependenciesReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryResolveDependenciesReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryResolveDependenciesReq; - static deserializeBinaryFromReader(message: LibraryResolveDependenciesReq, reader: jspb.BinaryReader): LibraryResolveDependenciesReq; -} - -export namespace LibraryResolveDependenciesReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - name: string, - version: string, - } -} - -export class LibraryResolveDependenciesResp extends jspb.Message { - clearDependenciesList(): void; - getDependenciesList(): Array; - setDependenciesList(value: Array): void; - addDependencies(value?: LibraryDependencyStatus, index?: number): LibraryDependencyStatus; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryResolveDependenciesResp.AsObject; - static toObject(includeInstance: boolean, msg: LibraryResolveDependenciesResp): LibraryResolveDependenciesResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryResolveDependenciesResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryResolveDependenciesResp; - static deserializeBinaryFromReader(message: LibraryResolveDependenciesResp, reader: jspb.BinaryReader): LibraryResolveDependenciesResp; -} - -export namespace LibraryResolveDependenciesResp { - export type AsObject = { - dependenciesList: Array, - } -} - -export class LibraryDependencyStatus extends jspb.Message { - getName(): string; - setName(value: string): void; - - getVersionrequired(): string; - setVersionrequired(value: string): void; - - getVersioninstalled(): string; - setVersioninstalled(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryDependencyStatus.AsObject; - static toObject(includeInstance: boolean, msg: LibraryDependencyStatus): LibraryDependencyStatus.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryDependencyStatus, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryDependencyStatus; - static deserializeBinaryFromReader(message: LibraryDependencyStatus, reader: jspb.BinaryReader): LibraryDependencyStatus; -} - -export namespace LibraryDependencyStatus { - export type AsObject = { - name: string, - versionrequired: string, - versioninstalled: string, - } -} - -export class LibrarySearchReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getQuery(): string; - setQuery(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibrarySearchReq.AsObject; - static toObject(includeInstance: boolean, msg: LibrarySearchReq): LibrarySearchReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibrarySearchReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibrarySearchReq; - static deserializeBinaryFromReader(message: LibrarySearchReq, reader: jspb.BinaryReader): LibrarySearchReq; -} - -export namespace LibrarySearchReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - query: string, - } -} - -export class LibrarySearchResp extends jspb.Message { - clearLibrariesList(): void; - getLibrariesList(): Array; - setLibrariesList(value: Array): void; - addLibraries(value?: SearchedLibrary, index?: number): SearchedLibrary; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibrarySearchResp.AsObject; - static toObject(includeInstance: boolean, msg: LibrarySearchResp): LibrarySearchResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibrarySearchResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibrarySearchResp; - static deserializeBinaryFromReader(message: LibrarySearchResp, reader: jspb.BinaryReader): LibrarySearchResp; -} - -export namespace LibrarySearchResp { - export type AsObject = { - librariesList: Array, - } -} - -export class SearchedLibrary extends jspb.Message { - getName(): string; - setName(value: string): void; - - - getReleasesMap(): jspb.Map; - clearReleasesMap(): void; - - - hasLatest(): boolean; - clearLatest(): void; - getLatest(): LibraryRelease | undefined; - setLatest(value?: LibraryRelease): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SearchedLibrary.AsObject; - static toObject(includeInstance: boolean, msg: SearchedLibrary): SearchedLibrary.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SearchedLibrary, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SearchedLibrary; - static deserializeBinaryFromReader(message: SearchedLibrary, reader: jspb.BinaryReader): SearchedLibrary; -} - -export namespace SearchedLibrary { - export type AsObject = { - name: string, - - releasesMap: Array<[string, LibraryRelease.AsObject]>, - latest?: LibraryRelease.AsObject, - } -} - -export class LibraryRelease extends jspb.Message { - getAuthor(): string; - setAuthor(value: string): void; - - getVersion(): string; - setVersion(value: string): void; - - getMaintainer(): string; - setMaintainer(value: string): void; - - getSentence(): string; - setSentence(value: string): void; - - getParagraph(): string; - setParagraph(value: string): void; - - getWebsite(): string; - setWebsite(value: string): void; - - getCategory(): string; - setCategory(value: string): void; - - clearArchitecturesList(): void; - getArchitecturesList(): Array; - setArchitecturesList(value: Array): void; - addArchitectures(value: string, index?: number): string; - - clearTypesList(): void; - getTypesList(): Array; - setTypesList(value: Array): void; - addTypes(value: string, index?: number): string; - - - hasResources(): boolean; - clearResources(): void; - getResources(): DownloadResource | undefined; - setResources(value?: DownloadResource): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryRelease.AsObject; - static toObject(includeInstance: boolean, msg: LibraryRelease): LibraryRelease.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryRelease, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryRelease; - static deserializeBinaryFromReader(message: LibraryRelease, reader: jspb.BinaryReader): LibraryRelease; -} - -export namespace LibraryRelease { - export type AsObject = { - author: string, - version: string, - maintainer: string, - sentence: string, - paragraph: string, - website: string, - category: string, - architecturesList: Array, - typesList: Array, - resources?: DownloadResource.AsObject, - } -} - -export class DownloadResource extends jspb.Message { - getUrl(): string; - setUrl(value: string): void; - - getArchivefilename(): string; - setArchivefilename(value: string): void; - - getChecksum(): string; - setChecksum(value: string): void; - - getSize(): number; - setSize(value: number): void; - - getCachepath(): string; - setCachepath(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DownloadResource.AsObject; - static toObject(includeInstance: boolean, msg: DownloadResource): DownloadResource.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DownloadResource, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DownloadResource; - static deserializeBinaryFromReader(message: DownloadResource, reader: jspb.BinaryReader): DownloadResource; -} - -export namespace DownloadResource { - export type AsObject = { - url: string, - archivefilename: string, - checksum: string, - size: number, - cachepath: string, - } -} - -export class LibraryListReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getAll(): boolean; - setAll(value: boolean): void; - - getUpdatable(): boolean; - setUpdatable(value: boolean): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryListReq.AsObject; - static toObject(includeInstance: boolean, msg: LibraryListReq): LibraryListReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryListReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryListReq; - static deserializeBinaryFromReader(message: LibraryListReq, reader: jspb.BinaryReader): LibraryListReq; -} - -export namespace LibraryListReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - all: boolean, - updatable: boolean, - } -} - -export class LibraryListResp extends jspb.Message { - clearInstalledLibraryList(): void; - getInstalledLibraryList(): Array; - setInstalledLibraryList(value: Array): void; - addInstalledLibrary(value?: InstalledLibrary, index?: number): InstalledLibrary; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): LibraryListResp.AsObject; - static toObject(includeInstance: boolean, msg: LibraryListResp): LibraryListResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: LibraryListResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): LibraryListResp; - static deserializeBinaryFromReader(message: LibraryListResp, reader: jspb.BinaryReader): LibraryListResp; -} - -export namespace LibraryListResp { - export type AsObject = { - installedLibraryList: Array, - } -} - -export class InstalledLibrary extends jspb.Message { - - hasLibrary(): boolean; - clearLibrary(): void; - getLibrary(): Library | undefined; - setLibrary(value?: Library): void; - - - hasRelease(): boolean; - clearRelease(): void; - getRelease(): LibraryRelease | undefined; - setRelease(value?: LibraryRelease): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): InstalledLibrary.AsObject; - static toObject(includeInstance: boolean, msg: InstalledLibrary): InstalledLibrary.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: InstalledLibrary, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): InstalledLibrary; - static deserializeBinaryFromReader(message: InstalledLibrary, reader: jspb.BinaryReader): InstalledLibrary; -} - -export namespace InstalledLibrary { - export type AsObject = { - library?: Library.AsObject, - release?: LibraryRelease.AsObject, - } -} - -export class Library extends jspb.Message { - getName(): string; - setName(value: string): void; - - getAuthor(): string; - setAuthor(value: string): void; - - getMaintainer(): string; - setMaintainer(value: string): void; - - getSentence(): string; - setSentence(value: string): void; - - getParagraph(): string; - setParagraph(value: string): void; - - getWebsite(): string; - setWebsite(value: string): void; - - getCategory(): string; - setCategory(value: string): void; - - clearArchitecturesList(): void; - getArchitecturesList(): Array; - setArchitecturesList(value: Array): void; - addArchitectures(value: string, index?: number): string; - - clearTypesList(): void; - getTypesList(): Array; - setTypesList(value: Array): void; - addTypes(value: string, index?: number): string; - - getInstallDir(): string; - setInstallDir(value: string): void; - - getSourceDir(): string; - setSourceDir(value: string): void; - - getUtilityDir(): string; - setUtilityDir(value: string): void; - - getLocation(): string; - setLocation(value: string): void; - - getContainerPlatform(): string; - setContainerPlatform(value: string): void; - - getLayout(): string; - setLayout(value: string): void; - - getRealName(): string; - setRealName(value: string): void; - - getDotALinkage(): boolean; - setDotALinkage(value: boolean): void; - - getPrecompiled(): boolean; - setPrecompiled(value: boolean): void; - - getLdFlags(): string; - setLdFlags(value: string): void; - - getIsLegacy(): boolean; - setIsLegacy(value: boolean): void; - - getVersion(): string; - setVersion(value: string): void; - - getLicense(): string; - setLicense(value: string): void; - - - getPropertiesMap(): jspb.Map; - clearPropertiesMap(): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Library.AsObject; - static toObject(includeInstance: boolean, msg: Library): Library.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Library, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Library; - static deserializeBinaryFromReader(message: Library, reader: jspb.BinaryReader): Library; -} - -export namespace Library { - export type AsObject = { - name: string, - author: string, - maintainer: string, - sentence: string, - paragraph: string, - website: string, - category: string, - architecturesList: Array, - typesList: Array, - installDir: string, - sourceDir: string, - utilityDir: string, - location: string, - containerPlatform: string, - layout: string, - realName: string, - dotALinkage: boolean, - precompiled: boolean, - ldFlags: string, - isLegacy: boolean, - version: string, - license: string, - - propertiesMap: Array<[string, string]>, - } -} - -export enum LibraryLayout { - FLAT_LAYOUT = 0, - RECURSIVE_LAYOUT = 1, -} - -export enum LibraryLocation { - IDE_BUILTIN = 0, - PLATFORM_BUILTIN = 1, - REFERENCED_PLATFORM_BUILTIN = 2, - SKETCHBOOK = 3, -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/lib_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/lib_pb.js deleted file mode 100644 index d0cc5dee..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/lib_pb.js +++ /dev/null @@ -1,4778 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var commands_common_pb = require('../commands/common_pb.js'); -goog.object.extend(proto, commands_common_pb); -goog.exportSymbol('proto.cc.arduino.cli.commands.DownloadResource', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.InstalledLibrary', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.Library', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryDependencyStatus', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryDownloadReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryDownloadResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryInstallReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryInstallResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryLayout', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryListReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryListResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryLocation', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryRelease', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibrarySearchReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibrarySearchResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryUninstallReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryUninstallResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryUpgradeAllReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.LibraryUpgradeAllResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.SearchedLibrary', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryDownloadReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryDownloadReq.displayName = 'proto.cc.arduino.cli.commands.LibraryDownloadReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryDownloadReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryDownloadReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - version: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryDownloadReq} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryDownloadReq; - return proto.cc.arduino.cli.commands.LibraryDownloadReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryDownloadReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryDownloadReq} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryDownloadReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryDownloadReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string version = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryDownloadReq.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryDownloadResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryDownloadResp.displayName = 'proto.cc.arduino.cli.commands.LibraryDownloadResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryDownloadResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryDownloadResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.toObject = function(includeInstance, msg) { - var f, obj = { - progress: (f = msg.getProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryDownloadResp} - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryDownloadResp; - return proto.cc.arduino.cli.commands.LibraryDownloadResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryDownloadResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryDownloadResp} - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryDownloadResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryDownloadResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.prototype.getProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.prototype.setProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryDownloadResp.prototype.clearProgress = function() { - this.setProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryDownloadResp.prototype.hasProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryInstallReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryInstallReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryInstallReq.displayName = 'proto.cc.arduino.cli.commands.LibraryInstallReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryInstallReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryInstallReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - version: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryInstallReq} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryInstallReq; - return proto.cc.arduino.cli.commands.LibraryInstallReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryInstallReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryInstallReq} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryInstallReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryInstallReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string version = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryInstallReq.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryInstallResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryInstallResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryInstallResp.displayName = 'proto.cc.arduino.cli.commands.LibraryInstallResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryInstallResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryInstallResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.toObject = function(includeInstance, msg) { - var f, obj = { - progress: (f = msg.getProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f), - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryInstallResp} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryInstallResp; - return proto.cc.arduino.cli.commands.LibraryInstallResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryInstallResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryInstallResp} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setProgress(value); - break; - case 2: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryInstallResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryInstallResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 2, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.getProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.setProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.clearProgress = function() { - this.setProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.hasProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional TaskProgress task_progress = 2; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 2)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 2, value); -}; - - -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryInstallResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryUninstallReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryUninstallReq.displayName = 'proto.cc.arduino.cli.commands.LibraryUninstallReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryUninstallReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryUninstallReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - version: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryUninstallReq} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryUninstallReq; - return proto.cc.arduino.cli.commands.LibraryUninstallReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryUninstallReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryUninstallReq} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryUninstallReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryUninstallReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string version = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryUninstallReq.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryUninstallResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryUninstallResp.displayName = 'proto.cc.arduino.cli.commands.LibraryUninstallResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryUninstallResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryUninstallResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.toObject = function(includeInstance, msg) { - var f, obj = { - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryUninstallResp} - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryUninstallResp; - return proto.cc.arduino.cli.commands.LibraryUninstallResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryUninstallResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryUninstallResp} - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryUninstallResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryUninstallResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional TaskProgress task_progress = 1; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryUninstallResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryUninstallResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryUpgradeAllReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.displayName = 'proto.cc.arduino.cli.commands.LibraryUpgradeAllReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryUpgradeAllReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryUpgradeAllReq} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryUpgradeAllReq; - return proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryUpgradeAllReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryUpgradeAllReq} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryUpgradeAllReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryUpgradeAllResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.displayName = 'proto.cc.arduino.cli.commands.LibraryUpgradeAllResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryUpgradeAllResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.toObject = function(includeInstance, msg) { - var f, obj = { - progress: (f = msg.getProgress()) && commands_common_pb.DownloadProgress.toObject(includeInstance, f), - taskProgress: (f = msg.getTaskProgress()) && commands_common_pb.TaskProgress.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryUpgradeAllResp} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryUpgradeAllResp; - return proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryUpgradeAllResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryUpgradeAllResp} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.DownloadProgress; - reader.readMessage(value,commands_common_pb.DownloadProgress.deserializeBinaryFromReader); - msg.setProgress(value); - break; - case 2: - var value = new commands_common_pb.TaskProgress; - reader.readMessage(value,commands_common_pb.TaskProgress.deserializeBinaryFromReader); - msg.setTaskProgress(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryUpgradeAllResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProgress(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.DownloadProgress.serializeBinaryToWriter - ); - } - f = message.getTaskProgress(); - if (f != null) { - writer.writeMessage( - 2, - f, - commands_common_pb.TaskProgress.serializeBinaryToWriter - ); - } -}; - - -/** - * optional DownloadProgress progress = 1; - * @return {?proto.cc.arduino.cli.commands.DownloadProgress} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.getProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.DownloadProgress, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadProgress|undefined} value */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.setProgress = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.clearProgress = function() { - this.setProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.hasProgress = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional TaskProgress task_progress = 2; - * @return {?proto.cc.arduino.cli.commands.TaskProgress} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.getTaskProgress = function() { - return /** @type{?proto.cc.arduino.cli.commands.TaskProgress} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.TaskProgress, 2)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.TaskProgress|undefined} value */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.setTaskProgress = function(value) { - jspb.Message.setWrapperField(this, 2, value); -}; - - -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.clearTaskProgress = function() { - this.setTaskProgress(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryUpgradeAllResp.prototype.hasTaskProgress = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.displayName = 'proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - version: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq; - return proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string version = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesReq.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.displayName = 'proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.toObject = function(includeInstance, msg) { - var f, obj = { - dependenciesList: jspb.Message.toObjectList(msg.getDependenciesList(), - proto.cc.arduino.cli.commands.LibraryDependencyStatus.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp; - return proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.LibraryDependencyStatus; - reader.readMessage(value,proto.cc.arduino.cli.commands.LibraryDependencyStatus.deserializeBinaryFromReader); - msg.addDependencies(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDependenciesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.LibraryDependencyStatus.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated LibraryDependencyStatus dependencies = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.prototype.getDependenciesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.LibraryDependencyStatus, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.prototype.setDependenciesList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.LibraryDependencyStatus=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.LibraryDependencyStatus} - */ -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.prototype.addDependencies = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.LibraryDependencyStatus, opt_index); -}; - - -proto.cc.arduino.cli.commands.LibraryResolveDependenciesResp.prototype.clearDependenciesList = function() { - this.setDependenciesList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryDependencyStatus, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryDependencyStatus.displayName = 'proto.cc.arduino.cli.commands.LibraryDependencyStatus'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryDependencyStatus.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryDependencyStatus} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - versionrequired: jspb.Message.getFieldWithDefault(msg, 2, ""), - versioninstalled: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryDependencyStatus} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryDependencyStatus; - return proto.cc.arduino.cli.commands.LibraryDependencyStatus.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryDependencyStatus} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryDependencyStatus} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setVersionrequired(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setVersioninstalled(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryDependencyStatus.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryDependencyStatus} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getVersionrequired(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getVersioninstalled(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string versionRequired = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.getVersionrequired = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.setVersionrequired = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string versionInstalled = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.getVersioninstalled = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryDependencyStatus.prototype.setVersioninstalled = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibrarySearchReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibrarySearchReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibrarySearchReq.displayName = 'proto.cc.arduino.cli.commands.LibrarySearchReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibrarySearchReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibrarySearchReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - query: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibrarySearchReq} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibrarySearchReq; - return proto.cc.arduino.cli.commands.LibrarySearchReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibrarySearchReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibrarySearchReq} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setQuery(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibrarySearchReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibrarySearchReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getQuery(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string query = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.getQuery = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibrarySearchReq.prototype.setQuery = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibrarySearchResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.LibrarySearchResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibrarySearchResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibrarySearchResp.displayName = 'proto.cc.arduino.cli.commands.LibrarySearchResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibrarySearchResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibrarySearchResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.toObject = function(includeInstance, msg) { - var f, obj = { - librariesList: jspb.Message.toObjectList(msg.getLibrariesList(), - proto.cc.arduino.cli.commands.SearchedLibrary.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibrarySearchResp} - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibrarySearchResp; - return proto.cc.arduino.cli.commands.LibrarySearchResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibrarySearchResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibrarySearchResp} - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.SearchedLibrary; - reader.readMessage(value,proto.cc.arduino.cli.commands.SearchedLibrary.deserializeBinaryFromReader); - msg.addLibraries(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibrarySearchResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibrarySearchResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getLibrariesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.SearchedLibrary.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated SearchedLibrary libraries = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.prototype.getLibrariesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.SearchedLibrary, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.LibrarySearchResp.prototype.setLibrariesList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.SearchedLibrary=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.SearchedLibrary} - */ -proto.cc.arduino.cli.commands.LibrarySearchResp.prototype.addLibraries = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.SearchedLibrary, opt_index); -}; - - -proto.cc.arduino.cli.commands.LibrarySearchResp.prototype.clearLibrariesList = function() { - this.setLibrariesList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.SearchedLibrary = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.SearchedLibrary, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.SearchedLibrary.displayName = 'proto.cc.arduino.cli.commands.SearchedLibrary'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.SearchedLibrary.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.SearchedLibrary} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.SearchedLibrary.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - releasesMap: (f = msg.getReleasesMap()) ? f.toObject(includeInstance, proto.cc.arduino.cli.commands.LibraryRelease.toObject) : [], - latest: (f = msg.getLatest()) && proto.cc.arduino.cli.commands.LibraryRelease.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.SearchedLibrary} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.SearchedLibrary; - return proto.cc.arduino.cli.commands.SearchedLibrary.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.SearchedLibrary} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.SearchedLibrary} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = msg.getReleasesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.cc.arduino.cli.commands.LibraryRelease.deserializeBinaryFromReader, ""); - }); - break; - case 3: - var value = new proto.cc.arduino.cli.commands.LibraryRelease; - reader.readMessage(value,proto.cc.arduino.cli.commands.LibraryRelease.deserializeBinaryFromReader); - msg.setLatest(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.SearchedLibrary.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.SearchedLibrary} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.SearchedLibrary.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getReleasesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.cc.arduino.cli.commands.LibraryRelease.serializeBinaryToWriter); - } - f = message.getLatest(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.cc.arduino.cli.commands.LibraryRelease.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * map releases = 2; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.getReleasesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 2, opt_noLazyCreate, - proto.cc.arduino.cli.commands.LibraryRelease)); -}; - - -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.clearReleasesMap = function() { - this.getReleasesMap().clear(); -}; - - -/** - * optional LibraryRelease latest = 3; - * @return {?proto.cc.arduino.cli.commands.LibraryRelease} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.getLatest = function() { - return /** @type{?proto.cc.arduino.cli.commands.LibraryRelease} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.LibraryRelease, 3)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.LibraryRelease|undefined} value */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.setLatest = function(value) { - jspb.Message.setWrapperField(this, 3, value); -}; - - -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.clearLatest = function() { - this.setLatest(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.SearchedLibrary.prototype.hasLatest = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryRelease = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.LibraryRelease.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryRelease, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryRelease.displayName = 'proto.cc.arduino.cli.commands.LibraryRelease'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.LibraryRelease.repeatedFields_ = [8,9]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryRelease.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryRelease} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryRelease.toObject = function(includeInstance, msg) { - var f, obj = { - author: jspb.Message.getFieldWithDefault(msg, 1, ""), - version: jspb.Message.getFieldWithDefault(msg, 2, ""), - maintainer: jspb.Message.getFieldWithDefault(msg, 3, ""), - sentence: jspb.Message.getFieldWithDefault(msg, 4, ""), - paragraph: jspb.Message.getFieldWithDefault(msg, 5, ""), - website: jspb.Message.getFieldWithDefault(msg, 6, ""), - category: jspb.Message.getFieldWithDefault(msg, 7, ""), - architecturesList: jspb.Message.getRepeatedField(msg, 8), - typesList: jspb.Message.getRepeatedField(msg, 9), - resources: (f = msg.getResources()) && proto.cc.arduino.cli.commands.DownloadResource.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryRelease} - */ -proto.cc.arduino.cli.commands.LibraryRelease.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryRelease; - return proto.cc.arduino.cli.commands.LibraryRelease.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryRelease} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryRelease} - */ -proto.cc.arduino.cli.commands.LibraryRelease.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthor(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setMaintainer(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSentence(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setParagraph(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setWebsite(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setCategory(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.addArchitectures(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.addTypes(value); - break; - case 10: - var value = new proto.cc.arduino.cli.commands.DownloadResource; - reader.readMessage(value,proto.cc.arduino.cli.commands.DownloadResource.deserializeBinaryFromReader); - msg.setResources(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryRelease.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryRelease} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryRelease.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAuthor(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getMaintainer(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSentence(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getParagraph(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getWebsite(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getCategory(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getArchitecturesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 8, - f - ); - } - f = message.getTypesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 9, - f - ); - } - f = message.getResources(); - if (f != null) { - writer.writeMessage( - 10, - f, - proto.cc.arduino.cli.commands.DownloadResource.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string author = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getAuthor = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setAuthor = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string version = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string maintainer = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getMaintainer = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setMaintainer = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string sentence = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getSentence = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setSentence = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string paragraph = 5; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getParagraph = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setParagraph = function(value) { - jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string website = 6; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getWebsite = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setWebsite = function(value) { - jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string category = 7; - * @return {string} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getCategory = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setCategory = function(value) { - jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * repeated string architectures = 8; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getArchitecturesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 8)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setArchitecturesList = function(value) { - jspb.Message.setField(this, 8, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.addArchitectures = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 8, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.LibraryRelease.prototype.clearArchitecturesList = function() { - this.setArchitecturesList([]); -}; - - -/** - * repeated string types = 9; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getTypesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 9)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setTypesList = function(value) { - jspb.Message.setField(this, 9, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.addTypes = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 9, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.LibraryRelease.prototype.clearTypesList = function() { - this.setTypesList([]); -}; - - -/** - * optional DownloadResource resources = 10; - * @return {?proto.cc.arduino.cli.commands.DownloadResource} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.getResources = function() { - return /** @type{?proto.cc.arduino.cli.commands.DownloadResource} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.DownloadResource, 10)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.DownloadResource|undefined} value */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.setResources = function(value) { - jspb.Message.setWrapperField(this, 10, value); -}; - - -proto.cc.arduino.cli.commands.LibraryRelease.prototype.clearResources = function() { - this.setResources(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryRelease.prototype.hasResources = function() { - return jspb.Message.getField(this, 10) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.DownloadResource = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.DownloadResource, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.DownloadResource.displayName = 'proto.cc.arduino.cli.commands.DownloadResource'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.DownloadResource.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.DownloadResource} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DownloadResource.toObject = function(includeInstance, msg) { - var f, obj = { - url: jspb.Message.getFieldWithDefault(msg, 1, ""), - archivefilename: jspb.Message.getFieldWithDefault(msg, 2, ""), - checksum: jspb.Message.getFieldWithDefault(msg, 3, ""), - size: jspb.Message.getFieldWithDefault(msg, 4, 0), - cachepath: jspb.Message.getFieldWithDefault(msg, 5, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.DownloadResource} - */ -proto.cc.arduino.cli.commands.DownloadResource.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.DownloadResource; - return proto.cc.arduino.cli.commands.DownloadResource.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.DownloadResource} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.DownloadResource} - */ -proto.cc.arduino.cli.commands.DownloadResource.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setArchivefilename(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setChecksum(value); - break; - case 4: - var value = /** @type {number} */ (reader.readInt64()); - msg.setSize(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setCachepath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.DownloadResource.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.DownloadResource} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.DownloadResource.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getArchivefilename(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getChecksum(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSize(); - if (f !== 0) { - writer.writeInt64( - 4, - f - ); - } - f = message.getCachepath(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } -}; - - -/** - * optional string url = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.setUrl = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string archivefilename = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.getArchivefilename = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.setArchivefilename = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string checksum = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.getChecksum = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.setChecksum = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional int64 size = 4; - * @return {number} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.getSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** @param {number} value */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.setSize = function(value) { - jspb.Message.setProto3IntField(this, 4, value); -}; - - -/** - * optional string cachepath = 5; - * @return {string} - */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.getCachepath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.DownloadResource.prototype.setCachepath = function(value) { - jspb.Message.setProto3StringField(this, 5, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryListReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryListReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryListReq.displayName = 'proto.cc.arduino.cli.commands.LibraryListReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryListReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryListReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryListReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - all: jspb.Message.getFieldWithDefault(msg, 2, false), - updatable: jspb.Message.getFieldWithDefault(msg, 3, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryListReq} - */ -proto.cc.arduino.cli.commands.LibraryListReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryListReq; - return proto.cc.arduino.cli.commands.LibraryListReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryListReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryListReq} - */ -proto.cc.arduino.cli.commands.LibraryListReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAll(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUpdatable(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryListReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryListReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryListReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getAll(); - if (f) { - writer.writeBool( - 2, - f - ); - } - f = message.getUpdatable(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.LibraryListReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional bool all = 2; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.getAll = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.setAll = function(value) { - jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional bool updatable = 3; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.getUpdatable = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.LibraryListReq.prototype.setUpdatable = function(value) { - jspb.Message.setProto3BooleanField(this, 3, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.LibraryListResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.LibraryListResp.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.LibraryListResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.LibraryListResp.displayName = 'proto.cc.arduino.cli.commands.LibraryListResp'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.LibraryListResp.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.LibraryListResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.LibraryListResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.LibraryListResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryListResp.toObject = function(includeInstance, msg) { - var f, obj = { - installedLibraryList: jspb.Message.toObjectList(msg.getInstalledLibraryList(), - proto.cc.arduino.cli.commands.InstalledLibrary.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.LibraryListResp} - */ -proto.cc.arduino.cli.commands.LibraryListResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.LibraryListResp; - return proto.cc.arduino.cli.commands.LibraryListResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.LibraryListResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.LibraryListResp} - */ -proto.cc.arduino.cli.commands.LibraryListResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.InstalledLibrary; - reader.readMessage(value,proto.cc.arduino.cli.commands.InstalledLibrary.deserializeBinaryFromReader); - msg.addInstalledLibrary(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.LibraryListResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.LibraryListResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.LibraryListResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.LibraryListResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstalledLibraryList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.cc.arduino.cli.commands.InstalledLibrary.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated InstalledLibrary installed_library = 1; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.LibraryListResp.prototype.getInstalledLibraryList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.InstalledLibrary, 1)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.LibraryListResp.prototype.setInstalledLibraryList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.cc.arduino.cli.commands.InstalledLibrary=} opt_value - * @param {number=} opt_index - * @return {!proto.cc.arduino.cli.commands.InstalledLibrary} - */ -proto.cc.arduino.cli.commands.LibraryListResp.prototype.addInstalledLibrary = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.InstalledLibrary, opt_index); -}; - - -proto.cc.arduino.cli.commands.LibraryListResp.prototype.clearInstalledLibraryList = function() { - this.setInstalledLibraryList([]); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.InstalledLibrary = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.InstalledLibrary, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.InstalledLibrary.displayName = 'proto.cc.arduino.cli.commands.InstalledLibrary'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.InstalledLibrary.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.InstalledLibrary} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.InstalledLibrary.toObject = function(includeInstance, msg) { - var f, obj = { - library: (f = msg.getLibrary()) && proto.cc.arduino.cli.commands.Library.toObject(includeInstance, f), - release: (f = msg.getRelease()) && proto.cc.arduino.cli.commands.LibraryRelease.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.InstalledLibrary} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.InstalledLibrary; - return proto.cc.arduino.cli.commands.InstalledLibrary.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.InstalledLibrary} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.InstalledLibrary} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.commands.Library; - reader.readMessage(value,proto.cc.arduino.cli.commands.Library.deserializeBinaryFromReader); - msg.setLibrary(value); - break; - case 2: - var value = new proto.cc.arduino.cli.commands.LibraryRelease; - reader.readMessage(value,proto.cc.arduino.cli.commands.LibraryRelease.deserializeBinaryFromReader); - msg.setRelease(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.InstalledLibrary.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.InstalledLibrary} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.InstalledLibrary.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getLibrary(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.cc.arduino.cli.commands.Library.serializeBinaryToWriter - ); - } - f = message.getRelease(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.cc.arduino.cli.commands.LibraryRelease.serializeBinaryToWriter - ); - } -}; - - -/** - * optional Library library = 1; - * @return {?proto.cc.arduino.cli.commands.Library} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.getLibrary = function() { - return /** @type{?proto.cc.arduino.cli.commands.Library} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.Library, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Library|undefined} value */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.setLibrary = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.clearLibrary = function() { - this.setLibrary(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.hasLibrary = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional LibraryRelease release = 2; - * @return {?proto.cc.arduino.cli.commands.LibraryRelease} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.getRelease = function() { - return /** @type{?proto.cc.arduino.cli.commands.LibraryRelease} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.LibraryRelease, 2)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.LibraryRelease|undefined} value */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.setRelease = function(value) { - jspb.Message.setWrapperField(this, 2, value); -}; - - -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.clearRelease = function() { - this.setRelease(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.InstalledLibrary.prototype.hasRelease = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.Library = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.Library.repeatedFields_, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.Library, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.Library.displayName = 'proto.cc.arduino.cli.commands.Library'; -} -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.cc.arduino.cli.commands.Library.repeatedFields_ = [8,9]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.Library.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.Library.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.Library} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Library.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - author: jspb.Message.getFieldWithDefault(msg, 2, ""), - maintainer: jspb.Message.getFieldWithDefault(msg, 3, ""), - sentence: jspb.Message.getFieldWithDefault(msg, 4, ""), - paragraph: jspb.Message.getFieldWithDefault(msg, 5, ""), - website: jspb.Message.getFieldWithDefault(msg, 6, ""), - category: jspb.Message.getFieldWithDefault(msg, 7, ""), - architecturesList: jspb.Message.getRepeatedField(msg, 8), - typesList: jspb.Message.getRepeatedField(msg, 9), - installDir: jspb.Message.getFieldWithDefault(msg, 10, ""), - sourceDir: jspb.Message.getFieldWithDefault(msg, 11, ""), - utilityDir: jspb.Message.getFieldWithDefault(msg, 12, ""), - location: jspb.Message.getFieldWithDefault(msg, 13, ""), - containerPlatform: jspb.Message.getFieldWithDefault(msg, 14, ""), - layout: jspb.Message.getFieldWithDefault(msg, 15, ""), - realName: jspb.Message.getFieldWithDefault(msg, 16, ""), - dotALinkage: jspb.Message.getFieldWithDefault(msg, 17, false), - precompiled: jspb.Message.getFieldWithDefault(msg, 18, false), - ldFlags: jspb.Message.getFieldWithDefault(msg, 19, ""), - isLegacy: jspb.Message.getFieldWithDefault(msg, 20, false), - version: jspb.Message.getFieldWithDefault(msg, 21, ""), - license: jspb.Message.getFieldWithDefault(msg, 22, ""), - propertiesMap: (f = msg.getPropertiesMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.Library} - */ -proto.cc.arduino.cli.commands.Library.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.Library; - return proto.cc.arduino.cli.commands.Library.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.Library} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.Library} - */ -proto.cc.arduino.cli.commands.Library.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthor(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setMaintainer(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSentence(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setParagraph(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setWebsite(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setCategory(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.addArchitectures(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.addTypes(value); - break; - case 10: - var value = /** @type {string} */ (reader.readString()); - msg.setInstallDir(value); - break; - case 11: - var value = /** @type {string} */ (reader.readString()); - msg.setSourceDir(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setUtilityDir(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setLocation(value); - break; - case 14: - var value = /** @type {string} */ (reader.readString()); - msg.setContainerPlatform(value); - break; - case 15: - var value = /** @type {string} */ (reader.readString()); - msg.setLayout(value); - break; - case 16: - var value = /** @type {string} */ (reader.readString()); - msg.setRealName(value); - break; - case 17: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDotALinkage(value); - break; - case 18: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setPrecompiled(value); - break; - case 19: - var value = /** @type {string} */ (reader.readString()); - msg.setLdFlags(value); - break; - case 20: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setIsLegacy(value); - break; - case 21: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 22: - var value = /** @type {string} */ (reader.readString()); - msg.setLicense(value); - break; - case 23: - var value = msg.getPropertiesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.Library.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.Library.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.Library} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.Library.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAuthor(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getMaintainer(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSentence(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getParagraph(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getWebsite(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getCategory(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getArchitecturesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 8, - f - ); - } - f = message.getTypesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 9, - f - ); - } - f = message.getInstallDir(); - if (f.length > 0) { - writer.writeString( - 10, - f - ); - } - f = message.getSourceDir(); - if (f.length > 0) { - writer.writeString( - 11, - f - ); - } - f = message.getUtilityDir(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getLocation(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } - f = message.getContainerPlatform(); - if (f.length > 0) { - writer.writeString( - 14, - f - ); - } - f = message.getLayout(); - if (f.length > 0) { - writer.writeString( - 15, - f - ); - } - f = message.getRealName(); - if (f.length > 0) { - writer.writeString( - 16, - f - ); - } - f = message.getDotALinkage(); - if (f) { - writer.writeBool( - 17, - f - ); - } - f = message.getPrecompiled(); - if (f) { - writer.writeBool( - 18, - f - ); - } - f = message.getLdFlags(); - if (f.length > 0) { - writer.writeString( - 19, - f - ); - } - f = message.getIsLegacy(); - if (f) { - writer.writeBool( - 20, - f - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 21, - f - ); - } - f = message.getLicense(); - if (f.length > 0) { - writer.writeString( - 22, - f - ); - } - f = message.getPropertiesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(23, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setName = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string author = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getAuthor = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setAuthor = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string maintainer = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getMaintainer = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setMaintainer = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string sentence = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getSentence = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setSentence = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string paragraph = 5; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getParagraph = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setParagraph = function(value) { - jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string website = 6; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getWebsite = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setWebsite = function(value) { - jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string category = 7; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getCategory = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setCategory = function(value) { - jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * repeated string architectures = 8; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.Library.prototype.getArchitecturesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 8)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.Library.prototype.setArchitecturesList = function(value) { - jspb.Message.setField(this, 8, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.Library.prototype.addArchitectures = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 8, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.Library.prototype.clearArchitecturesList = function() { - this.setArchitecturesList([]); -}; - - -/** - * repeated string types = 9; - * @return {!Array} - */ -proto.cc.arduino.cli.commands.Library.prototype.getTypesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 9)); -}; - - -/** @param {!Array} value */ -proto.cc.arduino.cli.commands.Library.prototype.setTypesList = function(value) { - jspb.Message.setField(this, 9, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - */ -proto.cc.arduino.cli.commands.Library.prototype.addTypes = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 9, value, opt_index); -}; - - -proto.cc.arduino.cli.commands.Library.prototype.clearTypesList = function() { - this.setTypesList([]); -}; - - -/** - * optional string install_dir = 10; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getInstallDir = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setInstallDir = function(value) { - jspb.Message.setProto3StringField(this, 10, value); -}; - - -/** - * optional string source_dir = 11; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getSourceDir = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setSourceDir = function(value) { - jspb.Message.setProto3StringField(this, 11, value); -}; - - -/** - * optional string utility_dir = 12; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getUtilityDir = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setUtilityDir = function(value) { - jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * optional string location = 13; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getLocation = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setLocation = function(value) { - jspb.Message.setProto3StringField(this, 13, value); -}; - - -/** - * optional string container_platform = 14; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getContainerPlatform = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setContainerPlatform = function(value) { - jspb.Message.setProto3StringField(this, 14, value); -}; - - -/** - * optional string layout = 15; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getLayout = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setLayout = function(value) { - jspb.Message.setProto3StringField(this, 15, value); -}; - - -/** - * optional string real_name = 16; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getRealName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 16, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setRealName = function(value) { - jspb.Message.setProto3StringField(this, 16, value); -}; - - -/** - * optional bool dot_a_linkage = 17; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.Library.prototype.getDotALinkage = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 17, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.Library.prototype.setDotALinkage = function(value) { - jspb.Message.setProto3BooleanField(this, 17, value); -}; - - -/** - * optional bool precompiled = 18; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.Library.prototype.getPrecompiled = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 18, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.Library.prototype.setPrecompiled = function(value) { - jspb.Message.setProto3BooleanField(this, 18, value); -}; - - -/** - * optional string ld_flags = 19; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getLdFlags = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setLdFlags = function(value) { - jspb.Message.setProto3StringField(this, 19, value); -}; - - -/** - * optional bool is_legacy = 20; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.Library.prototype.getIsLegacy = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 20, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.Library.prototype.setIsLegacy = function(value) { - jspb.Message.setProto3BooleanField(this, 20, value); -}; - - -/** - * optional string version = 21; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 21, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setVersion = function(value) { - jspb.Message.setProto3StringField(this, 21, value); -}; - - -/** - * optional string license = 22; - * @return {string} - */ -proto.cc.arduino.cli.commands.Library.prototype.getLicense = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 22, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.Library.prototype.setLicense = function(value) { - jspb.Message.setProto3StringField(this, 22, value); -}; - - -/** - * map properties = 23; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.cc.arduino.cli.commands.Library.prototype.getPropertiesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 23, opt_noLazyCreate, - null)); -}; - - -proto.cc.arduino.cli.commands.Library.prototype.clearPropertiesMap = function() { - this.getPropertiesMap().clear(); -}; - - -/** - * @enum {number} - */ -proto.cc.arduino.cli.commands.LibraryLayout = { - FLAT_LAYOUT: 0, - RECURSIVE_LAYOUT: 1 -}; - -/** - * @enum {number} - */ -proto.cc.arduino.cli.commands.LibraryLocation = { - IDE_BUILTIN: 0, - PLATFORM_BUILTIN: 1, - REFERENCED_PLATFORM_BUILTIN: 2, - SKETCHBOOK: 3 -}; - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/upload_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/upload_grpc_pb.js deleted file mode 100644 index 97b3a246..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/upload_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/upload_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/commands/upload_pb.d.ts deleted file mode 100644 index 07241de7..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/upload_pb.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -// package: cc.arduino.cli.commands -// file: commands/upload.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as commands_common_pb from "../commands/common_pb"; - -export class UploadReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): commands_common_pb.Instance | undefined; - setInstance(value?: commands_common_pb.Instance): void; - - getFqbn(): string; - setFqbn(value: string): void; - - getSketchPath(): string; - setSketchPath(value: string): void; - - getPort(): string; - setPort(value: string): void; - - getVerbose(): boolean; - setVerbose(value: boolean): void; - - getVerify(): boolean; - setVerify(value: boolean): void; - - getImportFile(): string; - setImportFile(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UploadReq.AsObject; - static toObject(includeInstance: boolean, msg: UploadReq): UploadReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UploadReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UploadReq; - static deserializeBinaryFromReader(message: UploadReq, reader: jspb.BinaryReader): UploadReq; -} - -export namespace UploadReq { - export type AsObject = { - instance?: commands_common_pb.Instance.AsObject, - fqbn: string, - sketchPath: string, - port: string, - verbose: boolean, - verify: boolean, - importFile: string, - } -} - -export class UploadResp extends jspb.Message { - getOutStream(): Uint8Array | string; - getOutStream_asU8(): Uint8Array; - getOutStream_asB64(): string; - setOutStream(value: Uint8Array | string): void; - - getErrStream(): Uint8Array | string; - getErrStream_asU8(): Uint8Array; - getErrStream_asB64(): string; - setErrStream(value: Uint8Array | string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UploadResp.AsObject; - static toObject(includeInstance: boolean, msg: UploadResp): UploadResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UploadResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UploadResp; - static deserializeBinaryFromReader(message: UploadResp, reader: jspb.BinaryReader): UploadResp; -} - -export namespace UploadResp { - export type AsObject = { - outStream: Uint8Array | string, - errStream: Uint8Array | string, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/commands/upload_pb.js b/arduino-ide-extension/src/node/cli-protocol/commands/upload_pb.js deleted file mode 100644 index 5e8dcd86..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/commands/upload_pb.js +++ /dev/null @@ -1,560 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var commands_common_pb = require('../commands/common_pb.js'); -goog.object.extend(proto, commands_common_pb); -goog.exportSymbol('proto.cc.arduino.cli.commands.UploadReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.commands.UploadResp', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.UploadReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.UploadReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.UploadReq.displayName = 'proto.cc.arduino.cli.commands.UploadReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.UploadReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.UploadReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UploadReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && commands_common_pb.Instance.toObject(includeInstance, f), - fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""), - sketchPath: jspb.Message.getFieldWithDefault(msg, 3, ""), - port: jspb.Message.getFieldWithDefault(msg, 4, ""), - verbose: jspb.Message.getFieldWithDefault(msg, 5, false), - verify: jspb.Message.getFieldWithDefault(msg, 6, false), - importFile: jspb.Message.getFieldWithDefault(msg, 7, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.UploadReq} - */ -proto.cc.arduino.cli.commands.UploadReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.UploadReq; - return proto.cc.arduino.cli.commands.UploadReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.UploadReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.UploadReq} - */ -proto.cc.arduino.cli.commands.UploadReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new commands_common_pb.Instance; - reader.readMessage(value,commands_common_pb.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFqbn(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSketchPath(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPort(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setVerbose(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setVerify(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setImportFile(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.UploadReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.UploadReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UploadReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - commands_common_pb.Instance.serializeBinaryToWriter - ); - } - f = message.getFqbn(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSketchPath(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getPort(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getVerbose(); - if (f) { - writer.writeBool( - 5, - f - ); - } - f = message.getVerify(); - if (f) { - writer.writeBool( - 6, - f - ); - } - f = message.getImportFile(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.commands.Instance} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.commands.Instance} */ ( - jspb.Message.getWrapperField(this, commands_common_pb.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.commands.Instance|undefined} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.commands.UploadReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string fqbn = 2; - * @return {string} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getFqbn = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setFqbn = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string sketch_path = 3; - * @return {string} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getSketchPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setSketchPath = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string port = 4; - * @return {string} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getPort = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setPort = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional bool verbose = 5; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getVerbose = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setVerbose = function(value) { - jspb.Message.setProto3BooleanField(this, 5, value); -}; - - -/** - * optional bool verify = 6; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getVerify = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 6, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setVerify = function(value) { - jspb.Message.setProto3BooleanField(this, 6, value); -}; - - -/** - * optional string import_file = 7; - * @return {string} - */ -proto.cc.arduino.cli.commands.UploadReq.prototype.getImportFile = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.commands.UploadReq.prototype.setImportFile = function(value) { - jspb.Message.setProto3StringField(this, 7, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.commands.UploadResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.commands.UploadResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.commands.UploadResp.displayName = 'proto.cc.arduino.cli.commands.UploadResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.commands.UploadResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.commands.UploadResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UploadResp.toObject = function(includeInstance, msg) { - var f, obj = { - outStream: msg.getOutStream_asB64(), - errStream: msg.getErrStream_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.commands.UploadResp} - */ -proto.cc.arduino.cli.commands.UploadResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.commands.UploadResp; - return proto.cc.arduino.cli.commands.UploadResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.commands.UploadResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.commands.UploadResp} - */ -proto.cc.arduino.cli.commands.UploadResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setOutStream(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setErrStream(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.commands.UploadResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.commands.UploadResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.commands.UploadResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getOutStream_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getErrStream_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } -}; - - -/** - * optional bytes out_stream = 1; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.getOutStream = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes out_stream = 1; - * This is a type-conversion wrapper around `getOutStream()` - * @return {string} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.getOutStream_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getOutStream())); -}; - - -/** - * optional bytes out_stream = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getOutStream()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.getOutStream_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getOutStream())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.commands.UploadResp.prototype.setOutStream = function(value) { - jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional bytes err_stream = 2; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.getErrStream = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes err_stream = 2; - * This is a type-conversion wrapper around `getErrStream()` - * @return {string} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.getErrStream_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getErrStream())); -}; - - -/** - * optional bytes err_stream = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getErrStream()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.commands.UploadResp.prototype.getErrStream_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getErrStream())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.commands.UploadResp.prototype.setErrStream = function(value) { - jspb.Message.setProto3BytesField(this, 2, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.commands); diff --git a/arduino-ide-extension/src/node/cli-protocol/debug/debug_grpc_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/debug/debug_grpc_pb.d.ts deleted file mode 100644 index 8df745f1..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/debug/debug_grpc_pb.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -// package: cc.arduino.cli.debug -// file: debug/debug.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import * as debug_debug_pb from "../debug/debug_pb"; - -interface IDebugService extends grpc.ServiceDefinition { - debug: IDebugService_IDebug; -} - -interface IDebugService_IDebug extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.debug.Debug/Debug" - requestStream: boolean; // true - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const DebugService: IDebugService; - -export interface IDebugServer { - debug: grpc.handleBidiStreamingCall; -} - -export interface IDebugClient { - debug(): grpc.ClientDuplexStream; - debug(options: Partial): grpc.ClientDuplexStream; - debug(metadata: grpc.Metadata, options?: Partial): grpc.ClientDuplexStream; -} - -export class DebugClient extends grpc.Client implements IDebugClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); - public debug(options?: Partial): grpc.ClientDuplexStream; - public debug(metadata?: grpc.Metadata, options?: Partial): grpc.ClientDuplexStream; -} diff --git a/arduino-ide-extension/src/node/cli-protocol/debug/debug_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/debug/debug_grpc_pb.js deleted file mode 100644 index 9dd14a05..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/debug/debug_grpc_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// This file is part of arduino-cli. -// -// Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -// -// This software is released under the GNU General Public License version 3, -// which covers the main part of arduino-cli. -// The terms of this license can be found at: -// https://www.gnu.org/licenses/gpl-3.0.en.html -// -// You can be released from the requirements of the above licenses by purchasing -// a commercial license. Buying such a license is mandatory if you want to -// modify or otherwise use the software for commercial activities involving the -// Arduino software without disclosing the source code of your own applications. -// To purchase a commercial license, send an email to license@arduino.cc. -// -'use strict'; -var grpc = require('@grpc/grpc-js'); -var debug_debug_pb = require('../debug/debug_pb.js'); - -function serialize_cc_arduino_cli_debug_DebugReq(arg) { - if (!(arg instanceof debug_debug_pb.DebugReq)) { - throw new Error('Expected argument of type cc.arduino.cli.debug.DebugReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_debug_DebugReq(buffer_arg) { - return debug_debug_pb.DebugReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_debug_DebugResp(arg) { - if (!(arg instanceof debug_debug_pb.DebugResp)) { - throw new Error('Expected argument of type cc.arduino.cli.debug.DebugResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_debug_DebugResp(buffer_arg) { - return debug_debug_pb.DebugResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -// Service that abstract a debug Session usage -var DebugService = exports.DebugService = { - debug: { - path: '/cc.arduino.cli.debug.Debug/Debug', - requestStream: true, - responseStream: true, - requestType: debug_debug_pb.DebugReq, - responseType: debug_debug_pb.DebugResp, - requestSerialize: serialize_cc_arduino_cli_debug_DebugReq, - requestDeserialize: deserialize_cc_arduino_cli_debug_DebugReq, - responseSerialize: serialize_cc_arduino_cli_debug_DebugResp, - responseDeserialize: deserialize_cc_arduino_cli_debug_DebugResp, - }, -}; - -exports.DebugClient = grpc.makeGenericClientConstructor(DebugService); diff --git a/arduino-ide-extension/src/node/cli-protocol/debug/debug_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/debug/debug_pb.d.ts deleted file mode 100644 index 98e4aaf1..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/debug/debug_pb.d.ts +++ /dev/null @@ -1,129 +0,0 @@ -// package: cc.arduino.cli.debug -// file: debug/debug.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class DebugReq extends jspb.Message { - - hasDebugreq(): boolean; - clearDebugreq(): void; - getDebugreq(): DebugConfigReq | undefined; - setDebugreq(value?: DebugConfigReq): void; - - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DebugReq.AsObject; - static toObject(includeInstance: boolean, msg: DebugReq): DebugReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DebugReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DebugReq; - static deserializeBinaryFromReader(message: DebugReq, reader: jspb.BinaryReader): DebugReq; -} - -export namespace DebugReq { - export type AsObject = { - debugreq?: DebugConfigReq.AsObject, - data: Uint8Array | string, - } -} - -export class DebugConfigReq extends jspb.Message { - - hasInstance(): boolean; - clearInstance(): void; - getInstance(): Instance | undefined; - setInstance(value?: Instance): void; - - getFqbn(): string; - setFqbn(value: string): void; - - getSketchPath(): string; - setSketchPath(value: string): void; - - getPort(): string; - setPort(value: string): void; - - getVerbose(): boolean; - setVerbose(value: boolean): void; - - getImportFile(): string; - setImportFile(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DebugConfigReq.AsObject; - static toObject(includeInstance: boolean, msg: DebugConfigReq): DebugConfigReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DebugConfigReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DebugConfigReq; - static deserializeBinaryFromReader(message: DebugConfigReq, reader: jspb.BinaryReader): DebugConfigReq; -} - -export namespace DebugConfigReq { - export type AsObject = { - instance?: Instance.AsObject, - fqbn: string, - sketchPath: string, - port: string, - verbose: boolean, - importFile: string, - } -} - -export class DebugResp extends jspb.Message { - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): void; - - getError(): string; - setError(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DebugResp.AsObject; - static toObject(includeInstance: boolean, msg: DebugResp): DebugResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DebugResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DebugResp; - static deserializeBinaryFromReader(message: DebugResp, reader: jspb.BinaryReader): DebugResp; -} - -export namespace DebugResp { - export type AsObject = { - data: Uint8Array | string, - error: string, - } -} - -export class Instance extends jspb.Message { - getId(): number; - setId(value: number): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Instance.AsObject; - static toObject(includeInstance: boolean, msg: Instance): Instance.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Instance, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Instance; - static deserializeBinaryFromReader(message: Instance, reader: jspb.BinaryReader): Instance; -} - -export namespace Instance { - export type AsObject = { - id: number, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/debug/debug_pb.js b/arduino-ide-extension/src/node/cli-protocol/debug/debug_pb.js deleted file mode 100644 index c2b7d41d..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/debug/debug_pb.js +++ /dev/null @@ -1,859 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.cc.arduino.cli.debug.DebugConfigReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.debug.DebugReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.debug.DebugResp', null, global); -goog.exportSymbol('proto.cc.arduino.cli.debug.Instance', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.debug.DebugReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.debug.DebugReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.debug.DebugReq.displayName = 'proto.cc.arduino.cli.debug.DebugReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.debug.DebugReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.debug.DebugReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.DebugReq.toObject = function(includeInstance, msg) { - var f, obj = { - debugreq: (f = msg.getDebugreq()) && proto.cc.arduino.cli.debug.DebugConfigReq.toObject(includeInstance, f), - data: msg.getData_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.debug.DebugReq} - */ -proto.cc.arduino.cli.debug.DebugReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.debug.DebugReq; - return proto.cc.arduino.cli.debug.DebugReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.debug.DebugReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.debug.DebugReq} - */ -proto.cc.arduino.cli.debug.DebugReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.debug.DebugConfigReq; - reader.readMessage(value,proto.cc.arduino.cli.debug.DebugConfigReq.deserializeBinaryFromReader); - msg.setDebugreq(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.debug.DebugReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.debug.DebugReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.DebugReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDebugreq(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.cc.arduino.cli.debug.DebugConfigReq.serializeBinaryToWriter - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } -}; - - -/** - * optional DebugConfigReq debugReq = 1; - * @return {?proto.cc.arduino.cli.debug.DebugConfigReq} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.getDebugreq = function() { - return /** @type{?proto.cc.arduino.cli.debug.DebugConfigReq} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.debug.DebugConfigReq, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.debug.DebugConfigReq|undefined} value */ -proto.cc.arduino.cli.debug.DebugReq.prototype.setDebugreq = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.debug.DebugReq.prototype.clearDebugreq = function() { - this.setDebugreq(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.hasDebugreq = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.debug.DebugReq.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.debug.DebugReq.prototype.setData = function(value) { - jspb.Message.setProto3BytesField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.debug.DebugConfigReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.debug.DebugConfigReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.debug.DebugConfigReq.displayName = 'proto.cc.arduino.cli.debug.DebugConfigReq'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.debug.DebugConfigReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.debug.DebugConfigReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.DebugConfigReq.toObject = function(includeInstance, msg) { - var f, obj = { - instance: (f = msg.getInstance()) && proto.cc.arduino.cli.debug.Instance.toObject(includeInstance, f), - fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""), - sketchPath: jspb.Message.getFieldWithDefault(msg, 3, ""), - port: jspb.Message.getFieldWithDefault(msg, 4, ""), - verbose: jspb.Message.getFieldWithDefault(msg, 5, false), - importFile: jspb.Message.getFieldWithDefault(msg, 7, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.debug.DebugConfigReq} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.debug.DebugConfigReq; - return proto.cc.arduino.cli.debug.DebugConfigReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.debug.DebugConfigReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.debug.DebugConfigReq} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.debug.Instance; - reader.readMessage(value,proto.cc.arduino.cli.debug.Instance.deserializeBinaryFromReader); - msg.setInstance(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFqbn(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSketchPath(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPort(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setVerbose(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setImportFile(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.debug.DebugConfigReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.debug.DebugConfigReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.DebugConfigReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getInstance(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.cc.arduino.cli.debug.Instance.serializeBinaryToWriter - ); - } - f = message.getFqbn(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSketchPath(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getPort(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getVerbose(); - if (f) { - writer.writeBool( - 5, - f - ); - } - f = message.getImportFile(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } -}; - - -/** - * optional Instance instance = 1; - * @return {?proto.cc.arduino.cli.debug.Instance} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.getInstance = function() { - return /** @type{?proto.cc.arduino.cli.debug.Instance} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.debug.Instance, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.debug.Instance|undefined} value */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.setInstance = function(value) { - jspb.Message.setWrapperField(this, 1, value); -}; - - -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.clearInstance = function() { - this.setInstance(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.hasInstance = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string fqbn = 2; - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.getFqbn = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.setFqbn = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string sketch_path = 3; - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.getSketchPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.setSketchPath = function(value) { - jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string port = 4; - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.getPort = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.setPort = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional bool verbose = 5; - * Note that Boolean fields may be set to 0/1 when serialized from a Java server. - * You should avoid comparisons like {@code val === true/false} in those cases. - * @return {boolean} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.getVerbose = function() { - return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false)); -}; - - -/** @param {boolean} value */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.setVerbose = function(value) { - jspb.Message.setProto3BooleanField(this, 5, value); -}; - - -/** - * optional string import_file = 7; - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.getImportFile = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.debug.DebugConfigReq.prototype.setImportFile = function(value) { - jspb.Message.setProto3StringField(this, 7, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.debug.DebugResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.debug.DebugResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.debug.DebugResp.displayName = 'proto.cc.arduino.cli.debug.DebugResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.debug.DebugResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.debug.DebugResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.debug.DebugResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.DebugResp.toObject = function(includeInstance, msg) { - var f, obj = { - data: msg.getData_asB64(), - error: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.debug.DebugResp} - */ -proto.cc.arduino.cli.debug.DebugResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.debug.DebugResp; - return proto.cc.arduino.cli.debug.DebugResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.debug.DebugResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.debug.DebugResp} - */ -proto.cc.arduino.cli.debug.DebugResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setError(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.debug.DebugResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.debug.DebugResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.debug.DebugResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.DebugResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getError(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional bytes data = 1; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.debug.DebugResp.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes data = 1; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugResp.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.debug.DebugResp.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.debug.DebugResp.prototype.setData = function(value) { - jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string error = 2; - * @return {string} - */ -proto.cc.arduino.cli.debug.DebugResp.prototype.getError = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.debug.DebugResp.prototype.setError = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.debug.Instance = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.debug.Instance, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.debug.Instance.displayName = 'proto.cc.arduino.cli.debug.Instance'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.debug.Instance.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.debug.Instance.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.debug.Instance} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.Instance.toObject = function(includeInstance, msg) { - var f, obj = { - id: jspb.Message.getFieldWithDefault(msg, 1, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.debug.Instance} - */ -proto.cc.arduino.cli.debug.Instance.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.debug.Instance; - return proto.cc.arduino.cli.debug.Instance.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.debug.Instance} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.debug.Instance} - */ -proto.cc.arduino.cli.debug.Instance.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setId(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.debug.Instance.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.debug.Instance.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.debug.Instance} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.debug.Instance.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getId(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } -}; - - -/** - * optional int32 id = 1; - * @return {number} - */ -proto.cc.arduino.cli.debug.Instance.prototype.getId = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** @param {number} value */ -proto.cc.arduino.cli.debug.Instance.prototype.setId = function(value) { - jspb.Message.setProto3IntField(this, 1, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.debug); diff --git a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_grpc_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_grpc_pb.d.ts deleted file mode 100644 index ae5bb0e8..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_grpc_pb.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -// package: cc.arduino.cli.monitor -// file: monitor/monitor.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import * as monitor_monitor_pb from "../monitor/monitor_pb"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -interface IMonitorService extends grpc.ServiceDefinition { - streamingOpen: IMonitorService_IStreamingOpen; -} - -interface IMonitorService_IStreamingOpen extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.monitor.Monitor/StreamingOpen" - requestStream: boolean; // true - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const MonitorService: IMonitorService; - -export interface IMonitorServer { - streamingOpen: grpc.handleBidiStreamingCall; -} - -export interface IMonitorClient { - streamingOpen(): grpc.ClientDuplexStream; - streamingOpen(options: Partial): grpc.ClientDuplexStream; - streamingOpen(metadata: grpc.Metadata, options?: Partial): grpc.ClientDuplexStream; -} - -export class MonitorClient extends grpc.Client implements IMonitorClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); - public streamingOpen(options?: Partial): grpc.ClientDuplexStream; - public streamingOpen(metadata?: grpc.Metadata, options?: Partial): grpc.ClientDuplexStream; -} diff --git a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_grpc_pb.js deleted file mode 100644 index c9821121..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_grpc_pb.js +++ /dev/null @@ -1,62 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// This file is part of arduino-cli. -// -// Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -// -// This software is released under the GNU General Public License version 3, -// which covers the main part of arduino-cli. -// The terms of this license can be found at: -// https://www.gnu.org/licenses/gpl-3.0.en.html -// -// You can be released from the requirements of the above licenses by purchasing -// a commercial license. Buying such a license is mandatory if you want to -// modify or otherwise use the software for commercial activities involving the -// Arduino software without disclosing the source code of your own applications. -// To purchase a commercial license, send an email to license@arduino.cc. -// -'use strict'; -var grpc = require('@grpc/grpc-js'); -var monitor_monitor_pb = require('../monitor/monitor_pb.js'); -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); - -function serialize_cc_arduino_cli_monitor_StreamingOpenReq(arg) { - if (!(arg instanceof monitor_monitor_pb.StreamingOpenReq)) { - throw new Error('Expected argument of type cc.arduino.cli.monitor.StreamingOpenReq'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_monitor_StreamingOpenReq(buffer_arg) { - return monitor_monitor_pb.StreamingOpenReq.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_monitor_StreamingOpenResp(arg) { - if (!(arg instanceof monitor_monitor_pb.StreamingOpenResp)) { - throw new Error('Expected argument of type cc.arduino.cli.monitor.StreamingOpenResp'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_monitor_StreamingOpenResp(buffer_arg) { - return monitor_monitor_pb.StreamingOpenResp.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -// Service that abstract a Monitor usage -var MonitorService = exports.MonitorService = { - streamingOpen: { - path: '/cc.arduino.cli.monitor.Monitor/StreamingOpen', - requestStream: true, - responseStream: true, - requestType: monitor_monitor_pb.StreamingOpenReq, - responseType: monitor_monitor_pb.StreamingOpenResp, - requestSerialize: serialize_cc_arduino_cli_monitor_StreamingOpenReq, - requestDeserialize: deserialize_cc_arduino_cli_monitor_StreamingOpenReq, - responseSerialize: serialize_cc_arduino_cli_monitor_StreamingOpenResp, - responseDeserialize: deserialize_cc_arduino_cli_monitor_StreamingOpenResp, - }, -}; - -exports.MonitorClient = grpc.makeGenericClientConstructor(MonitorService); diff --git a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_pb.d.ts deleted file mode 100644 index beb2fcd1..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_pb.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -// package: cc.arduino.cli.monitor -// file: monitor/monitor.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class StreamingOpenReq extends jspb.Message { - - hasMonitorconfig(): boolean; - clearMonitorconfig(): void; - getMonitorconfig(): MonitorConfig | undefined; - setMonitorconfig(value?: MonitorConfig): void; - - - hasData(): boolean; - clearData(): void; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): void; - - - getContentCase(): StreamingOpenReq.ContentCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StreamingOpenReq.AsObject; - static toObject(includeInstance: boolean, msg: StreamingOpenReq): StreamingOpenReq.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StreamingOpenReq, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StreamingOpenReq; - static deserializeBinaryFromReader(message: StreamingOpenReq, reader: jspb.BinaryReader): StreamingOpenReq; -} - -export namespace StreamingOpenReq { - export type AsObject = { - monitorconfig?: MonitorConfig.AsObject, - data: Uint8Array | string, - } - - export enum ContentCase { - CONTENT_NOT_SET = 0, - - MONITORCONFIG = 1, - - DATA = 2, - - } - -} - -export class MonitorConfig extends jspb.Message { - getTarget(): string; - setTarget(value: string): void; - - getType(): MonitorConfig.TargetType; - setType(value: MonitorConfig.TargetType): void; - - - hasAdditionalconfig(): boolean; - clearAdditionalconfig(): void; - getAdditionalconfig(): google_protobuf_struct_pb.Struct | undefined; - setAdditionalconfig(value?: google_protobuf_struct_pb.Struct): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): MonitorConfig.AsObject; - static toObject(includeInstance: boolean, msg: MonitorConfig): MonitorConfig.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: MonitorConfig, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): MonitorConfig; - static deserializeBinaryFromReader(message: MonitorConfig, reader: jspb.BinaryReader): MonitorConfig; -} - -export namespace MonitorConfig { - export type AsObject = { - target: string, - type: MonitorConfig.TargetType, - additionalconfig?: google_protobuf_struct_pb.Struct.AsObject, - } - - export enum TargetType { - SERIAL = 0, - } - -} - -export class StreamingOpenResp extends jspb.Message { - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StreamingOpenResp.AsObject; - static toObject(includeInstance: boolean, msg: StreamingOpenResp): StreamingOpenResp.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StreamingOpenResp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StreamingOpenResp; - static deserializeBinaryFromReader(message: StreamingOpenResp, reader: jspb.BinaryReader): StreamingOpenResp; -} - -export namespace StreamingOpenResp { - export type AsObject = { - data: Uint8Array | string, - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_pb.js b/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_pb.js deleted file mode 100644 index ed4e368b..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/monitor/monitor_pb.js +++ /dev/null @@ -1,656 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.cc.arduino.cli.monitor.MonitorConfig', null, global); -goog.exportSymbol('proto.cc.arduino.cli.monitor.MonitorConfig.TargetType', null, global); -goog.exportSymbol('proto.cc.arduino.cli.monitor.StreamingOpenReq', null, global); -goog.exportSymbol('proto.cc.arduino.cli.monitor.StreamingOpenResp', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, proto.cc.arduino.cli.monitor.StreamingOpenReq.oneofGroups_); -}; -goog.inherits(proto.cc.arduino.cli.monitor.StreamingOpenReq, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.monitor.StreamingOpenReq.displayName = 'proto.cc.arduino.cli.monitor.StreamingOpenReq'; -} -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.ContentCase = { - CONTENT_NOT_SET: 0, - MONITORCONFIG: 1, - DATA: 2 -}; - -/** - * @return {proto.cc.arduino.cli.monitor.StreamingOpenReq.ContentCase} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.getContentCase = function() { - return /** @type {proto.cc.arduino.cli.monitor.StreamingOpenReq.ContentCase} */(jspb.Message.computeOneofCase(this, proto.cc.arduino.cli.monitor.StreamingOpenReq.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.monitor.StreamingOpenReq.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.monitor.StreamingOpenReq} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.toObject = function(includeInstance, msg) { - var f, obj = { - monitorconfig: (f = msg.getMonitorconfig()) && proto.cc.arduino.cli.monitor.MonitorConfig.toObject(includeInstance, f), - data: msg.getData_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.monitor.StreamingOpenReq} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.monitor.StreamingOpenReq; - return proto.cc.arduino.cli.monitor.StreamingOpenReq.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.monitor.StreamingOpenReq} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.monitor.StreamingOpenReq} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.cc.arduino.cli.monitor.MonitorConfig; - reader.readMessage(value,proto.cc.arduino.cli.monitor.MonitorConfig.deserializeBinaryFromReader); - msg.setMonitorconfig(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.monitor.StreamingOpenReq.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.monitor.StreamingOpenReq} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getMonitorconfig(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.cc.arduino.cli.monitor.MonitorConfig.serializeBinaryToWriter - ); - } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeBytes( - 2, - f - ); - } -}; - - -/** - * optional MonitorConfig monitorConfig = 1; - * @return {?proto.cc.arduino.cli.monitor.MonitorConfig} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.getMonitorconfig = function() { - return /** @type{?proto.cc.arduino.cli.monitor.MonitorConfig} */ ( - jspb.Message.getWrapperField(this, proto.cc.arduino.cli.monitor.MonitorConfig, 1)); -}; - - -/** @param {?proto.cc.arduino.cli.monitor.MonitorConfig|undefined} value */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.setMonitorconfig = function(value) { - jspb.Message.setOneofWrapperField(this, 1, proto.cc.arduino.cli.monitor.StreamingOpenReq.oneofGroups_[0], value); -}; - - -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.clearMonitorconfig = function() { - this.setMonitorconfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.hasMonitorconfig = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.setData = function(value) { - jspb.Message.setOneofField(this, 2, proto.cc.arduino.cli.monitor.StreamingOpenReq.oneofGroups_[0], value); -}; - - -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.clearData = function() { - jspb.Message.setOneofField(this, 2, proto.cc.arduino.cli.monitor.StreamingOpenReq.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.monitor.StreamingOpenReq.prototype.hasData = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.monitor.MonitorConfig = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.monitor.MonitorConfig, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.monitor.MonitorConfig.displayName = 'proto.cc.arduino.cli.monitor.MonitorConfig'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.monitor.MonitorConfig.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.monitor.MonitorConfig} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.monitor.MonitorConfig.toObject = function(includeInstance, msg) { - var f, obj = { - target: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, 0), - additionalconfig: (f = msg.getAdditionalconfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.monitor.MonitorConfig} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.monitor.MonitorConfig; - return proto.cc.arduino.cli.monitor.MonitorConfig.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.monitor.MonitorConfig} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.monitor.MonitorConfig} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTarget(value); - break; - case 2: - var value = /** @type {!proto.cc.arduino.cli.monitor.MonitorConfig.TargetType} */ (reader.readEnum()); - msg.setType(value); - break; - case 3: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setAdditionalconfig(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.monitor.MonitorConfig.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.monitor.MonitorConfig} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.monitor.MonitorConfig.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTarget(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f - ); - } - f = message.getAdditionalconfig(); - if (f != null) { - writer.writeMessage( - 3, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } -}; - - -/** - * @enum {number} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.TargetType = { - SERIAL: 0 -}; - -/** - * optional string target = 1; - * @return {string} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.getTarget = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.setTarget = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional TargetType type = 2; - * @return {!proto.cc.arduino.cli.monitor.MonitorConfig.TargetType} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.getType = function() { - return /** @type {!proto.cc.arduino.cli.monitor.MonitorConfig.TargetType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** @param {!proto.cc.arduino.cli.monitor.MonitorConfig.TargetType} value */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.setType = function(value) { - jspb.Message.setProto3EnumField(this, 2, value); -}; - - -/** - * optional google.protobuf.Struct additionalConfig = 3; - * @return {?proto.google.protobuf.Struct} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.getAdditionalconfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3)); -}; - - -/** @param {?proto.google.protobuf.Struct|undefined} value */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.setAdditionalconfig = function(value) { - jspb.Message.setWrapperField(this, 3, value); -}; - - -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.clearAdditionalconfig = function() { - this.setAdditionalconfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.cc.arduino.cli.monitor.MonitorConfig.prototype.hasAdditionalconfig = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.monitor.StreamingOpenResp, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.monitor.StreamingOpenResp.displayName = 'proto.cc.arduino.cli.monitor.StreamingOpenResp'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.monitor.StreamingOpenResp.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.monitor.StreamingOpenResp} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.toObject = function(includeInstance, msg) { - var f, obj = { - data: msg.getData_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.monitor.StreamingOpenResp} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.monitor.StreamingOpenResp; - return proto.cc.arduino.cli.monitor.StreamingOpenResp.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.monitor.StreamingOpenResp} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.monitor.StreamingOpenResp} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.monitor.StreamingOpenResp.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.monitor.StreamingOpenResp} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } -}; - - -/** - * optional bytes data = 1; - * @return {!(string|Uint8Array)} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes data = 1; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** @param {!(string|Uint8Array)} value */ -proto.cc.arduino.cli.monitor.StreamingOpenResp.prototype.setData = function(value) { - jspb.Message.setProto3BytesField(this, 1, value); -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.monitor); diff --git a/arduino-ide-extension/src/node/cli-protocol/settings/settings_grpc_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/settings/settings_grpc_pb.d.ts deleted file mode 100644 index 0c251539..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/settings/settings_grpc_pb.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -// package: cc.arduino.cli.settings -// file: settings/settings.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import * as settings_settings_pb from "../settings/settings_pb"; - -interface ISettingsService extends grpc.ServiceDefinition { - getAll: ISettingsService_IGetAll; - merge: ISettingsService_IMerge; - getValue: ISettingsService_IGetValue; - setValue: ISettingsService_ISetValue; -} - -interface ISettingsService_IGetAll extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.settings.Settings/GetAll" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface ISettingsService_IMerge extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.settings.Settings/Merge" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface ISettingsService_IGetValue extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.settings.Settings/GetValue" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface ISettingsService_ISetValue extends grpc.MethodDefinition { - path: string; // "/cc.arduino.cli.settings.Settings/SetValue" - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const SettingsService: ISettingsService; - -export interface ISettingsServer { - getAll: grpc.handleUnaryCall; - merge: grpc.handleUnaryCall; - getValue: grpc.handleUnaryCall; - setValue: grpc.handleUnaryCall; -} - -export interface ISettingsClient { - getAll(request: settings_settings_pb.GetAllRequest, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.RawData) => void): grpc.ClientUnaryCall; - getAll(request: settings_settings_pb.GetAllRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.RawData) => void): grpc.ClientUnaryCall; - getAll(request: settings_settings_pb.GetAllRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.RawData) => void): grpc.ClientUnaryCall; - merge(request: settings_settings_pb.RawData, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.MergeResponse) => void): grpc.ClientUnaryCall; - merge(request: settings_settings_pb.RawData, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.MergeResponse) => void): grpc.ClientUnaryCall; - merge(request: settings_settings_pb.RawData, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.MergeResponse) => void): grpc.ClientUnaryCall; - getValue(request: settings_settings_pb.GetValueRequest, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.Value) => void): grpc.ClientUnaryCall; - getValue(request: settings_settings_pb.GetValueRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.Value) => void): grpc.ClientUnaryCall; - getValue(request: settings_settings_pb.GetValueRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.Value) => void): grpc.ClientUnaryCall; - setValue(request: settings_settings_pb.Value, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.SetValueResponse) => void): grpc.ClientUnaryCall; - setValue(request: settings_settings_pb.Value, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.SetValueResponse) => void): grpc.ClientUnaryCall; - setValue(request: settings_settings_pb.Value, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.SetValueResponse) => void): grpc.ClientUnaryCall; -} - -export class SettingsClient extends grpc.Client implements ISettingsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); - public getAll(request: settings_settings_pb.GetAllRequest, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.RawData) => void): grpc.ClientUnaryCall; - public getAll(request: settings_settings_pb.GetAllRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.RawData) => void): grpc.ClientUnaryCall; - public getAll(request: settings_settings_pb.GetAllRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.RawData) => void): grpc.ClientUnaryCall; - public merge(request: settings_settings_pb.RawData, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.MergeResponse) => void): grpc.ClientUnaryCall; - public merge(request: settings_settings_pb.RawData, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.MergeResponse) => void): grpc.ClientUnaryCall; - public merge(request: settings_settings_pb.RawData, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.MergeResponse) => void): grpc.ClientUnaryCall; - public getValue(request: settings_settings_pb.GetValueRequest, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.Value) => void): grpc.ClientUnaryCall; - public getValue(request: settings_settings_pb.GetValueRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.Value) => void): grpc.ClientUnaryCall; - public getValue(request: settings_settings_pb.GetValueRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.Value) => void): grpc.ClientUnaryCall; - public setValue(request: settings_settings_pb.Value, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.SetValueResponse) => void): grpc.ClientUnaryCall; - public setValue(request: settings_settings_pb.Value, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.SetValueResponse) => void): grpc.ClientUnaryCall; - public setValue(request: settings_settings_pb.Value, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: settings_settings_pb.SetValueResponse) => void): grpc.ClientUnaryCall; -} diff --git a/arduino-ide-extension/src/node/cli-protocol/settings/settings_grpc_pb.js b/arduino-ide-extension/src/node/cli-protocol/settings/settings_grpc_pb.js deleted file mode 100644 index 0e42e729..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/settings/settings_grpc_pb.js +++ /dev/null @@ -1,137 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// This file is part of arduino-cli. -// -// Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -// -// This software is released under the GNU General Public License version 3, -// which covers the main part of arduino-cli. -// The terms of this license can be found at: -// https://www.gnu.org/licenses/gpl-3.0.en.html -// -// You can be released from the requirements of the above licenses by purchasing -// a commercial license. Buying such a license is mandatory if you want to -// modify or otherwise use the software for commercial activities involving the -// Arduino software without disclosing the source code of your own applications. -// To purchase a commercial license, send an email to license@arduino.cc. -// -'use strict'; -var grpc = require('@grpc/grpc-js'); -var settings_settings_pb = require('../settings/settings_pb.js'); - -function serialize_cc_arduino_cli_settings_GetAllRequest(arg) { - if (!(arg instanceof settings_settings_pb.GetAllRequest)) { - throw new Error('Expected argument of type cc.arduino.cli.settings.GetAllRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_settings_GetAllRequest(buffer_arg) { - return settings_settings_pb.GetAllRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_settings_GetValueRequest(arg) { - if (!(arg instanceof settings_settings_pb.GetValueRequest)) { - throw new Error('Expected argument of type cc.arduino.cli.settings.GetValueRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_settings_GetValueRequest(buffer_arg) { - return settings_settings_pb.GetValueRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_settings_MergeResponse(arg) { - if (!(arg instanceof settings_settings_pb.MergeResponse)) { - throw new Error('Expected argument of type cc.arduino.cli.settings.MergeResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_settings_MergeResponse(buffer_arg) { - return settings_settings_pb.MergeResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_settings_RawData(arg) { - if (!(arg instanceof settings_settings_pb.RawData)) { - throw new Error('Expected argument of type cc.arduino.cli.settings.RawData'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_settings_RawData(buffer_arg) { - return settings_settings_pb.RawData.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_settings_SetValueResponse(arg) { - if (!(arg instanceof settings_settings_pb.SetValueResponse)) { - throw new Error('Expected argument of type cc.arduino.cli.settings.SetValueResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_settings_SetValueResponse(buffer_arg) { - return settings_settings_pb.SetValueResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_cc_arduino_cli_settings_Value(arg) { - if (!(arg instanceof settings_settings_pb.Value)) { - throw new Error('Expected argument of type cc.arduino.cli.settings.Value'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_cc_arduino_cli_settings_Value(buffer_arg) { - return settings_settings_pb.Value.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var SettingsService = exports.SettingsService = { - getAll: { - path: '/cc.arduino.cli.settings.Settings/GetAll', - requestStream: false, - responseStream: false, - requestType: settings_settings_pb.GetAllRequest, - responseType: settings_settings_pb.RawData, - requestSerialize: serialize_cc_arduino_cli_settings_GetAllRequest, - requestDeserialize: deserialize_cc_arduino_cli_settings_GetAllRequest, - responseSerialize: serialize_cc_arduino_cli_settings_RawData, - responseDeserialize: deserialize_cc_arduino_cli_settings_RawData, - }, - merge: { - path: '/cc.arduino.cli.settings.Settings/Merge', - requestStream: false, - responseStream: false, - requestType: settings_settings_pb.RawData, - responseType: settings_settings_pb.MergeResponse, - requestSerialize: serialize_cc_arduino_cli_settings_RawData, - requestDeserialize: deserialize_cc_arduino_cli_settings_RawData, - responseSerialize: serialize_cc_arduino_cli_settings_MergeResponse, - responseDeserialize: deserialize_cc_arduino_cli_settings_MergeResponse, - }, - getValue: { - path: '/cc.arduino.cli.settings.Settings/GetValue', - requestStream: false, - responseStream: false, - requestType: settings_settings_pb.GetValueRequest, - responseType: settings_settings_pb.Value, - requestSerialize: serialize_cc_arduino_cli_settings_GetValueRequest, - requestDeserialize: deserialize_cc_arduino_cli_settings_GetValueRequest, - responseSerialize: serialize_cc_arduino_cli_settings_Value, - responseDeserialize: deserialize_cc_arduino_cli_settings_Value, - }, - setValue: { - path: '/cc.arduino.cli.settings.Settings/SetValue', - requestStream: false, - responseStream: false, - requestType: settings_settings_pb.Value, - responseType: settings_settings_pb.SetValueResponse, - requestSerialize: serialize_cc_arduino_cli_settings_Value, - requestDeserialize: deserialize_cc_arduino_cli_settings_Value, - responseSerialize: serialize_cc_arduino_cli_settings_SetValueResponse, - responseDeserialize: deserialize_cc_arduino_cli_settings_SetValueResponse, - }, -}; - -exports.SettingsClient = grpc.makeGenericClientConstructor(SettingsService); diff --git a/arduino-ide-extension/src/node/cli-protocol/settings/settings_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/settings/settings_pb.d.ts deleted file mode 100644 index e5278795..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/settings/settings_pb.d.ts +++ /dev/null @@ -1,125 +0,0 @@ -// package: cc.arduino.cli.settings -// file: settings/settings.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class RawData extends jspb.Message { - getJsondata(): string; - setJsondata(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): RawData.AsObject; - static toObject(includeInstance: boolean, msg: RawData): RawData.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: RawData, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): RawData; - static deserializeBinaryFromReader(message: RawData, reader: jspb.BinaryReader): RawData; -} - -export namespace RawData { - export type AsObject = { - jsondata: string, - } -} - -export class Value extends jspb.Message { - getKey(): string; - setKey(value: string): void; - - getJsondata(): string; - setJsondata(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Value.AsObject; - static toObject(includeInstance: boolean, msg: Value): Value.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Value, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Value; - static deserializeBinaryFromReader(message: Value, reader: jspb.BinaryReader): Value; -} - -export namespace Value { - export type AsObject = { - key: string, - jsondata: string, - } -} - -export class GetAllRequest extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetAllRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetAllRequest): GetAllRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetAllRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetAllRequest; - static deserializeBinaryFromReader(message: GetAllRequest, reader: jspb.BinaryReader): GetAllRequest; -} - -export namespace GetAllRequest { - export type AsObject = { - } -} - -export class GetValueRequest extends jspb.Message { - getKey(): string; - setKey(value: string): void; - - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetValueRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetValueRequest): GetValueRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetValueRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetValueRequest; - static deserializeBinaryFromReader(message: GetValueRequest, reader: jspb.BinaryReader): GetValueRequest; -} - -export namespace GetValueRequest { - export type AsObject = { - key: string, - } -} - -export class MergeResponse extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): MergeResponse.AsObject; - static toObject(includeInstance: boolean, msg: MergeResponse): MergeResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: MergeResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): MergeResponse; - static deserializeBinaryFromReader(message: MergeResponse, reader: jspb.BinaryReader): MergeResponse; -} - -export namespace MergeResponse { - export type AsObject = { - } -} - -export class SetValueResponse extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SetValueResponse.AsObject; - static toObject(includeInstance: boolean, msg: SetValueResponse): SetValueResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SetValueResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SetValueResponse; - static deserializeBinaryFromReader(message: SetValueResponse, reader: jspb.BinaryReader): SetValueResponse; -} - -export namespace SetValueResponse { - export type AsObject = { - } -} diff --git a/arduino-ide-extension/src/node/cli-protocol/settings/settings_pb.js b/arduino-ide-extension/src/node/cli-protocol/settings/settings_pb.js deleted file mode 100644 index dd356474..00000000 --- a/arduino-ide-extension/src/node/cli-protocol/settings/settings_pb.js +++ /dev/null @@ -1,821 +0,0 @@ -/** - * @fileoverview - * @enhanceable - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.cc.arduino.cli.settings.GetAllRequest', null, global); -goog.exportSymbol('proto.cc.arduino.cli.settings.GetValueRequest', null, global); -goog.exportSymbol('proto.cc.arduino.cli.settings.MergeResponse', null, global); -goog.exportSymbol('proto.cc.arduino.cli.settings.RawData', null, global); -goog.exportSymbol('proto.cc.arduino.cli.settings.SetValueResponse', null, global); -goog.exportSymbol('proto.cc.arduino.cli.settings.Value', null, global); - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.settings.RawData = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.settings.RawData, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.settings.RawData.displayName = 'proto.cc.arduino.cli.settings.RawData'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.settings.RawData.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.settings.RawData.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.settings.RawData} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.RawData.toObject = function(includeInstance, msg) { - var f, obj = { - jsondata: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.settings.RawData} - */ -proto.cc.arduino.cli.settings.RawData.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.settings.RawData; - return proto.cc.arduino.cli.settings.RawData.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.settings.RawData} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.settings.RawData} - */ -proto.cc.arduino.cli.settings.RawData.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setJsondata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.settings.RawData.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.settings.RawData.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.settings.RawData} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.RawData.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsondata(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string jsonData = 1; - * @return {string} - */ -proto.cc.arduino.cli.settings.RawData.prototype.getJsondata = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.settings.RawData.prototype.setJsondata = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.settings.Value = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.settings.Value, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.settings.Value.displayName = 'proto.cc.arduino.cli.settings.Value'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.settings.Value.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.settings.Value.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.settings.Value} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.Value.toObject = function(includeInstance, msg) { - var f, obj = { - key: jspb.Message.getFieldWithDefault(msg, 1, ""), - jsondata: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.settings.Value} - */ -proto.cc.arduino.cli.settings.Value.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.settings.Value; - return proto.cc.arduino.cli.settings.Value.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.settings.Value} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.settings.Value} - */ -proto.cc.arduino.cli.settings.Value.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKey(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setJsondata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.settings.Value.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.settings.Value.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.settings.Value} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.Value.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKey(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getJsondata(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string key = 1; - * @return {string} - */ -proto.cc.arduino.cli.settings.Value.prototype.getKey = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.settings.Value.prototype.setKey = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string jsonData = 2; - * @return {string} - */ -proto.cc.arduino.cli.settings.Value.prototype.getJsondata = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.settings.Value.prototype.setJsondata = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.settings.GetAllRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.settings.GetAllRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.settings.GetAllRequest.displayName = 'proto.cc.arduino.cli.settings.GetAllRequest'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.settings.GetAllRequest.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.settings.GetAllRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.settings.GetAllRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.GetAllRequest.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.settings.GetAllRequest} - */ -proto.cc.arduino.cli.settings.GetAllRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.settings.GetAllRequest; - return proto.cc.arduino.cli.settings.GetAllRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.settings.GetAllRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.settings.GetAllRequest} - */ -proto.cc.arduino.cli.settings.GetAllRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.settings.GetAllRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.settings.GetAllRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.settings.GetAllRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.GetAllRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.settings.GetValueRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.settings.GetValueRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.settings.GetValueRequest.displayName = 'proto.cc.arduino.cli.settings.GetValueRequest'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.settings.GetValueRequest.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.settings.GetValueRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.settings.GetValueRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.GetValueRequest.toObject = function(includeInstance, msg) { - var f, obj = { - key: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.settings.GetValueRequest} - */ -proto.cc.arduino.cli.settings.GetValueRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.settings.GetValueRequest; - return proto.cc.arduino.cli.settings.GetValueRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.settings.GetValueRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.settings.GetValueRequest} - */ -proto.cc.arduino.cli.settings.GetValueRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKey(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.settings.GetValueRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.settings.GetValueRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.settings.GetValueRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.GetValueRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKey(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string key = 1; - * @return {string} - */ -proto.cc.arduino.cli.settings.GetValueRequest.prototype.getKey = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.cc.arduino.cli.settings.GetValueRequest.prototype.setKey = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.settings.MergeResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.settings.MergeResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.settings.MergeResponse.displayName = 'proto.cc.arduino.cli.settings.MergeResponse'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.settings.MergeResponse.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.settings.MergeResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.settings.MergeResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.MergeResponse.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.settings.MergeResponse} - */ -proto.cc.arduino.cli.settings.MergeResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.settings.MergeResponse; - return proto.cc.arduino.cli.settings.MergeResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.settings.MergeResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.settings.MergeResponse} - */ -proto.cc.arduino.cli.settings.MergeResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.settings.MergeResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.settings.MergeResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.settings.MergeResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.MergeResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.cc.arduino.cli.settings.SetValueResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.cc.arduino.cli.settings.SetValueResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.cc.arduino.cli.settings.SetValueResponse.displayName = 'proto.cc.arduino.cli.settings.SetValueResponse'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.cc.arduino.cli.settings.SetValueResponse.prototype.toObject = function(opt_includeInstance) { - return proto.cc.arduino.cli.settings.SetValueResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.cc.arduino.cli.settings.SetValueResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.SetValueResponse.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.cc.arduino.cli.settings.SetValueResponse} - */ -proto.cc.arduino.cli.settings.SetValueResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.cc.arduino.cli.settings.SetValueResponse; - return proto.cc.arduino.cli.settings.SetValueResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.cc.arduino.cli.settings.SetValueResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.cc.arduino.cli.settings.SetValueResponse} - */ -proto.cc.arduino.cli.settings.SetValueResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.cc.arduino.cli.settings.SetValueResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.cc.arduino.cli.settings.SetValueResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.cc.arduino.cli.settings.SetValueResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.cc.arduino.cli.settings.SetValueResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - -goog.object.extend(exports, proto.cc.arduino.cli.settings); diff --git a/arduino-ide-extension/src/node/config-file-validator.ts b/arduino-ide-extension/src/node/config-file-validator.ts new file mode 100644 index 00000000..5020c681 --- /dev/null +++ b/arduino-ide-extension/src/node/config-file-validator.ts @@ -0,0 +1,55 @@ +import * as Ajv from 'ajv'; +import * as fs from './fs-extra'; +import { injectable } from 'inversify'; +import { CLI_CONFIG_SCHEMA_PATH, DefaultCliConfig } from './cli-config'; + +@injectable() +export class ConfigFileValidator { + + protected readonly function = new Ajv().compile(JSON.parse(fs.readFileSync(CLI_CONFIG_SCHEMA_PATH, 'utf8'))); + + async validate(pathOrObject: string | object): Promise { + return this.doValidate(typeof pathOrObject === 'string' ? fs.readFileSync(pathOrObject) : pathOrObject); + } + + protected async doValidate(object: object): Promise { + const valid = this.function(object); + if (!valid) { + return false; + } + if (!DefaultCliConfig.is(object)) { + return false; + } + + const { directories: { data, downloads, user } } = object; + for (const path of [data, downloads, user]) { + const validPath = await this.isValidPath(path); + if (!validPath) { + return false; + } + } + + + const port = typeof object.daemon.port === 'string' ? Number.parseInt(object.daemon.port, 10) : object.daemon.port; + if (Number.isNaN(port) || port <= 0) { + return false; + } + return true; + } + + protected async isValidPath(path: string): Promise { + try { + if (!path.trim()) { + return false; + } + const exists = await fs.exists(path); + if (!exists) { + await fs.mkdirp(path); + } + return true; + } catch { + return false; + } + } + +} diff --git a/arduino-ide-extension/src/node/config-service-impl.ts b/arduino-ide-extension/src/node/config-service-impl.ts index 66a88008..d0250d90 100644 --- a/arduino-ide-extension/src/node/config-service-impl.ts +++ b/arduino-ide-extension/src/node/config-service-impl.ts @@ -1,49 +1,263 @@ -import * as fs from './fs-extra'; -import { injectable, inject, postConstruct } from 'inversify'; +import * as path from 'path'; +import * as yaml from 'js-yaml'; +import * as grpc from 'grpc'; +import * as deepmerge from 'deepmerge'; +import { injectable, inject, named } from 'inversify'; import URI from '@theia/core/lib/common/uri'; +import { ILogger } from '@theia/core/lib/common/logger'; import { FileUri } from '@theia/core/lib/node/file-uri'; +import { Event, Emitter } from '@theia/core/lib/common/event'; +import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application'; +import { ConfigService, Config, ConfigServiceClient } from '../common/protocol'; +import * as fs from './fs-extra'; +import { spawnCommand } from './exec-util'; +import { RawData } from './cli-protocol/settings/settings_pb'; +import { SettingsClient } from './cli-protocol/settings/settings_grpc_pb'; +import { ConfigFileValidator } from './config-file-validator'; +import { ArduinoDaemonImpl } from './arduino-daemon-impl'; +import { DefaultCliConfig, CLI_CONFIG_SCHEMA_PATH, CLI_CONFIG } from './cli-config'; import { Deferred } from '@theia/core/lib/common/promise-util'; -import { ConfigService, Config } from '../common/protocol/config-service'; -import { ArduinoCli } from './arduino-cli'; +import { EnvVariablesServer } from '@theia/core/lib/common/env-variables'; + +const debounce = require('lodash.debounce'); @injectable() -export class ConfigServiceImpl implements ConfigService { +export class ConfigServiceImpl implements BackendApplicationContribution, ConfigService { - @inject(ArduinoCli) - protected readonly cli: ArduinoCli; - protected readonly config: Deferred = new Deferred(); + @inject(ILogger) + @named('config') + protected readonly logger: ILogger; - @postConstruct() - protected async init(): Promise { - try { - const config = await this.cli.getDefaultConfig(); - const { dataDirUri, sketchDirUri } = config; - for (const uri of [dataDirUri, sketchDirUri]) { - const path = FileUri.fsPath(uri); - if (!fs.existsSync(path)) { - await fs.mkdirp(path); - } + @inject(EnvVariablesServer) + protected readonly envVariablesServer: EnvVariablesServer; + + @inject(ConfigFileValidator) + protected readonly validator: ConfigFileValidator; + + @inject(ArduinoDaemonImpl) + protected readonly daemon: ArduinoDaemonImpl; + + protected updating = false; + protected config: Config; + protected cliConfig: DefaultCliConfig | undefined; + protected clients: Array = []; + protected ready = new Deferred(); + protected readonly configChangeEmitter = new Emitter(); + + async onStart(): Promise { + await this.ensureCliConfigExists(); + await this.watchCliConfig(); + this.cliConfig = await this.loadCliConfig(); + if (this.cliConfig) { + const config = await this.mapCliConfigToAppConfig(this.cliConfig); + if (config) { + this.config = config; + this.ready.resolve(); } - this.config.resolve(config); - } catch (err) { - this.config.reject(err); + } else { + this.fireInvalidConfig(); } } - getConfiguration(): Promise { - return this.config.promise; + async getCliConfigFileUri(): Promise { + const configDirUri = await this.envVariablesServer.getConfigDirUri(); + return new URI(configDirUri).resolve(CLI_CONFIG).toString(); } - getVersion(): Promise { - return this.cli.getVersion(); + async getConfigurationFileSchemaUri(): Promise { + return FileUri.create(CLI_CONFIG_SCHEMA_PATH).toString(); } - isInDataDir(uri: string): Promise { + async getConfiguration(): Promise { + await this.ready.promise; + return this.config; + } + + get cliConfiguration(): DefaultCliConfig | undefined { + return this.cliConfig; + } + + get onConfigChange(): Event { + return this.configChangeEmitter.event; + } + + async getVersion(): Promise { + return this.daemon.getVersion(); + } + + async isInDataDir(uri: string): Promise { return this.getConfiguration().then(({ dataDirUri }) => new URI(dataDirUri).isEqualOrParent(new URI(uri))); } - isInSketchDir(uri: string): Promise { + async isInSketchDir(uri: string): Promise { return this.getConfiguration().then(({ sketchDirUri }) => new URI(sketchDirUri).isEqualOrParent(new URI(uri))); } + setClient(client: ConfigServiceClient | undefined): void { + if (client) { + this.clients.push(client); + } + } + + dispose(): void { + this.clients.length = 0; + } + + disposeClient(client: ConfigServiceClient): void { + const index = this.clients.indexOf(client); + if (index === -1) { + this.logger.warn('Could not dispose client. It was not registered or was already disposed.'); + } else { + this.clients.splice(index, 1); + } + } + + protected async loadCliConfig(): Promise { + const cliConfigFileUri = await this.getCliConfigFileUri(); + const cliConfigPath = FileUri.fsPath(cliConfigFileUri); + try { + const content = await fs.readFile(cliConfigPath, { encoding: 'utf8' }); + const model = yaml.safeLoad(content) || {}; + // The CLI can run with partial (missing `port`, `directories`), the app cannot, we merge the default with the user's config. + const fallbackModel = await this.getFallbackCliConfig(); + return deepmerge(fallbackModel, model) as DefaultCliConfig; + } catch (error) { + this.logger.error(`Error occurred when loading CLI config from ${cliConfigPath}.`, error); + } + return undefined; + } + + protected async getFallbackCliConfig(): Promise { + const cliPath = await this.daemon.getExecPath(); + const rawYaml = await spawnCommand(`"${cliPath}"`, ['config', 'dump']); + const model = yaml.safeLoad(rawYaml.trim()); + return model as DefaultCliConfig; + } + + protected async ensureCliConfigExists(): Promise { + const cliConfigFileUri = await this.getCliConfigFileUri(); + const cliConfigPath = FileUri.fsPath(cliConfigFileUri); + let exists = await fs.exists(cliConfigPath); + if (!exists) { + await this.initCliConfigTo(path.dirname(cliConfigPath)); + exists = await fs.exists(cliConfigPath); + if (!exists) { + throw new Error(`Could not initialize the default CLI configuration file at ${cliConfigPath}.`); + } + } + } + + protected async initCliConfigTo(fsPathToDir: string): Promise { + const cliPath = await this.daemon.getExecPath(); + await spawnCommand(`"${cliPath}"`, ['config', 'init', '--dest-dir', `"${fsPathToDir}"`]); + } + + protected async mapCliConfigToAppConfig(cliConfig: DefaultCliConfig): Promise { + const { directories } = cliConfig; + const { data, user, downloads } = directories; + const additionalUrls: Array = []; + if (cliConfig.board_manager && cliConfig.board_manager.additional_urls) { + additionalUrls.push(...Array.from(new Set(cliConfig.board_manager.additional_urls))); + } + return { + dataDirUri: FileUri.create(data).toString(), + sketchDirUri: FileUri.create(user).toString(), + downloadsDirUri: FileUri.create(downloads).toString(), + additionalUrls, + }; + } + + protected async watchCliConfig(): Promise { + const configDirUri = await this.getCliConfigFileUri(); + const cliConfigPath = FileUri.fsPath(configDirUri); + const listener = debounce(async () => { + if (this.updating) { + return; + } else { + this.updating = true; + } + + const cliConfig = await this.loadCliConfig(); + // Could not parse the YAML content. + if (!cliConfig) { + this.updating = false; + this.fireInvalidConfig(); + return; + } + const valid = await this.validator.validate(cliConfig); + if (!valid) { + this.updating = false; + this.fireInvalidConfig(); + return; + } + const shouldUpdate = !this.cliConfig || !DefaultCliConfig.sameAs(this.cliConfig, cliConfig); + if (!shouldUpdate) { + this.fireConfigChanged(this.config); + this.updating = false; + return; + } + // We use the gRPC `Settings` API iff the `daemon.port` has not changed. + // Otherwise, we restart the daemon. + const canUpdateSettings = this.cliConfig && this.cliConfig.daemon.port === cliConfig.daemon.port; + try { + const config = await this.mapCliConfigToAppConfig(cliConfig); + const update = new Promise(resolve => { + if (canUpdateSettings) { + return this.updateDaemon(cliConfig.daemon.port, cliConfig).then(resolve); + } + return this.daemon.stopDaemon() + .then(() => this.daemon.startDaemon()) + .then(resolve); + }) + update.then(() => { + this.cliConfig = cliConfig; + this.config = config; + this.configChangeEmitter.fire(this.config); + for (const client of this.clients) { + client.notifyConfigChanged(this.config); + } + }).finally(() => this.updating = false); + } catch (err) { + this.logger.error('Failed to update the daemon with the current CLI configuration.', err); + } + }, 200); + fs.watchFile(cliConfigPath, listener); + this.logger.info(`Started watching the Arduino CLI configuration: '${cliConfigPath}'.`); + } + + protected fireConfigChanged(config: Config): void { + for (const client of this.clients) { + client.notifyConfigChanged(config); + } + } + + protected fireInvalidConfig(): void { + for (const client of this.clients) { + client.notifyInvalidConfig(); + } + } + + protected async unwatchCliConfig(): Promise { + const cliConfigFileUri = await this.getCliConfigFileUri(); + const cliConfigPath = FileUri.fsPath(cliConfigFileUri); + fs.unwatchFile(cliConfigPath); + this.logger.info(`Stopped watching the Arduino CLI configuration: '${cliConfigPath}'.`); + } + + protected async updateDaemon(port: string | number, config: DefaultCliConfig): Promise { + const client = new SettingsClient(`localhost:${port}`, grpc.credentials.createInsecure()); + const data = new RawData(); + data.setJsondata(JSON.stringify(config, null, 2)); + return new Promise((resolve, reject) => { + client.merge(data, error => { + if (error) { + reject(error); + return; + } + client.close(); + resolve(); + }) + }); + } + } diff --git a/arduino-ide-extension/src/node/core-client-provider-impl.ts b/arduino-ide-extension/src/node/core-client-provider-impl.ts deleted file mode 100644 index a56ec2b7..00000000 --- a/arduino-ide-extension/src/node/core-client-provider-impl.ts +++ /dev/null @@ -1,230 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import * as grpc from '@grpc/grpc-js'; -import * as PQueue from 'p-queue'; -import { inject, injectable } from 'inversify'; -import URI from '@theia/core/lib/common/uri'; -import { FileSystem } from '@theia/filesystem/lib/common'; -import { WorkspaceServiceExt } from '../browser/workspace-service-ext'; -import { ToolOutputServiceServer } from '../common/protocol/tool-output-service'; -import { ArduinoCoreClient } from './cli-protocol/commands/commands_grpc_pb'; -import { - InitResp, - InitReq, - UpdateIndexReq, - UpdateIndexResp, - UpdateLibrariesIndexReq, - UpdateLibrariesIndexResp -} from './cli-protocol/commands/commands_pb'; -import { ArduinoCli } from './arduino-cli'; -import { Instance } from './cli-protocol/commands/common_pb'; -import { CoreClientProvider, Client } from './core-client-provider'; -import { FileUri } from '@theia/core/lib/node'; - -@injectable() -export class CoreClientProviderImpl implements CoreClientProvider { - - protected clients = new Map(); - protected readonly clientRequestQueue = new PQueue({ autoStart: true, concurrency: 1 }); - - @inject(FileSystem) - protected readonly fileSystem: FileSystem; - - @inject(WorkspaceServiceExt) - protected readonly workspaceServiceExt: WorkspaceServiceExt; - - @inject(ToolOutputServiceServer) - protected readonly toolOutputService: ToolOutputServiceServer; - - @inject(ArduinoCli) - protected readonly cli: ArduinoCli; - - async getClient(workspaceRootOrResourceUri?: string): Promise { - return this.clientRequestQueue.add(() => new Promise(async resolve => { - let roots = undefined; - try { - roots = await this.workspaceServiceExt.roots(); - } catch (e) { - if (e instanceof Error && e.message === 'Connection got disposed.') { - console.info('The frontend has already disconnected.'); - // Ignore it for now: https://github.com/eclipse-theia/theia/issues/6499 - // Client has disconnected, and the server still runs the serial board poll. - // The poll requires the client's workspace roots, but the client has disconnected :/ - } else { - throw e; - } - } - if (!roots) { - resolve(undefined); - return - } - - if (!workspaceRootOrResourceUri) { - resolve(this.getOrCreateClient(roots[0])); - return; - } - const root = roots - .sort((left, right) => right.length - left.length) // Longest "paths" first - .map(uri => new URI(uri)) - .find(uri => uri.isEqualOrParent(new URI(workspaceRootOrResourceUri))); - if (!root) { - console.warn(`Could not retrieve the container workspace root for URI: ${workspaceRootOrResourceUri}.`); - console.warn(`Falling back to ${roots[0]}`); - resolve(this.getOrCreateClient(roots[0])); - return; - } - resolve(this.getOrCreateClient(root.toString())); - })); - } - - protected async getOrCreateClient(rootUri: string | undefined): Promise { - if (!rootUri) { - return undefined; - } - const existing = this.clients.get(rootUri); - if (existing) { - console.debug(`Reusing existing client for ${rootUri}.`); - return existing; - } - - console.info(` >>> Creating and caching a new client for ${rootUri}...`); - const client = new ArduinoCoreClient('localhost:50051', grpc.credentials.createInsecure()); - - const rootPath = await this.fileSystem.getFsPath(rootUri); - if (!rootPath) { - throw new Error(`Could not resolve filesystem path of URI: ${rootUri}.`); - } - - const { dataDirUri, sketchDirUri } = await this.cli.getDefaultConfig(); - const dataDirPath = FileUri.fsPath(dataDirUri); - const sketchDirPath = FileUri.fsPath(sketchDirUri); - - if (!fs.existsSync(dataDirPath)) { - fs.mkdirSync(dataDirPath); - } - - if (!fs.existsSync(sketchDirPath)) { - fs.mkdirSync(sketchDirPath); - } - - const downloadDir = path.join(dataDirPath, 'staging'); - if (!fs.existsSync(downloadDir)) { - fs.mkdirSync(downloadDir); - } - - const initReq = new InitReq(); - initReq.setLibraryManagerOnly(false); - const initResp = await new Promise(resolve => { - let resp: InitResp | undefined = undefined; - const stream = client.init(initReq); - stream.on('data', (data: InitResp) => resp = data); - stream.on('end', () => resolve(resp)); - }); - - const instance = initResp.getInstance(); - if (!instance) { - throw new Error(`Could not retrieve instance from the initialize response.`); - } - - // in a separate promise, try and update the index - let indexUpdateSucceeded = true; - for (let i = 0; i < 10; i++) { - try { - await this.updateIndex(client, instance); - indexUpdateSucceeded = true; - break; - } catch (e) { - this.toolOutputService.publishNewOutput("daemon", `Error while updating index in attempt ${i}: ${e}`); - } - } - if (!indexUpdateSucceeded) { - this.toolOutputService.publishNewOutput("daemon", `Was unable to update the index. Please restart to try again.`); - } - - let libIndexUpdateSucceeded = true; - for (let i = 0; i < 10; i++) { - try { - await this.updateLibraryIndex(client, instance); - libIndexUpdateSucceeded = true; - break; - } catch (e) { - this.toolOutputService.publishNewOutput("daemon", `Error while updating library index in attempt ${i}: ${e}`); - } - } - if (!libIndexUpdateSucceeded) { - this.toolOutputService.publishNewOutput("daemon", `Was unable to update the library index. Please restart to try again.`); - } - - const result = { - client, - instance - } - this.clients.set(rootUri, result); - console.info(` <<< New client has been successfully created and cached for ${rootUri}.`); - return result; - } - - protected async updateLibraryIndex(client: ArduinoCoreClient, instance: Instance): Promise { - const req = new UpdateLibrariesIndexReq(); - req.setInstance(instance); - const resp = client.updateLibrariesIndex(req); - let file: string | undefined; - resp.on('data', (data: UpdateLibrariesIndexResp) => { - const progress = data.getDownloadProgress(); - if (progress) { - if (!file && progress.getFile()) { - file = `${progress.getFile()}`; - } - if (progress.getCompleted()) { - if (file) { - if (/\s/.test(file)) { - this.toolOutputService.publishNewOutput("daemon", `${file} completed.\n`); - } else { - this.toolOutputService.publishNewOutput("daemon", `Download of '${file}' completed.\n'`); - } - } else { - this.toolOutputService.publishNewOutput("daemon", `The library index has been successfully updated.\n'`); - } - file = undefined; - } - } - }); - await new Promise((resolve, reject) => { - resp.on('error', reject); - resp.on('end', resolve); - }); - } - - - protected async updateIndex(client: ArduinoCoreClient, instance: Instance): Promise { - const updateReq = new UpdateIndexReq(); - updateReq.setInstance(instance); - const updateResp = client.updateIndex(updateReq); - let file: string | undefined; - updateResp.on('data', (o: UpdateIndexResp) => { - const progress = o.getDownloadProgress(); - if (progress) { - if (!file && progress.getFile()) { - file = `${progress.getFile()}`; - } - if (progress.getCompleted()) { - if (file) { - if (/\s/.test(file)) { - this.toolOutputService.publishNewOutput("daemon", `${file} completed.\n`); - } else { - this.toolOutputService.publishNewOutput("daemon", `Download of '${file}' completed.\n'`); - } - } else { - this.toolOutputService.publishNewOutput("daemon", `The index has been successfully updated.\n'`); - } - file = undefined; - } - } - }); - await new Promise((resolve, reject) => { - updateResp.on('error', reject); - updateResp.on('end', resolve); - }); - } - -} diff --git a/arduino-ide-extension/src/node/core-client-provider.ts b/arduino-ide-extension/src/node/core-client-provider.ts index 32ac5be0..f1a09d06 100644 --- a/arduino-ide-extension/src/node/core-client-provider.ts +++ b/arduino-ide-extension/src/node/core-client-provider.ts @@ -1,13 +1,164 @@ -import { Instance } from './cli-protocol/commands/common_pb'; +import * as grpc from 'grpc'; +import { inject, injectable } from 'inversify'; +import { ToolOutputServiceServer } from '../common/protocol'; +import { GrpcClientProvider } from './grpc-client-provider'; import { ArduinoCoreClient } from './cli-protocol/commands/commands_grpc_pb'; +import { Instance } from './cli-protocol/commands/common_pb'; +import { InitReq, InitResp, UpdateIndexReq, UpdateIndexResp, UpdateLibrariesIndexResp, UpdateLibrariesIndexReq } from './cli-protocol/commands/commands_pb'; +import { Event, Emitter } from '@theia/core/lib/common/event'; + +@injectable() +export class CoreClientProvider extends GrpcClientProvider { + + @inject(ToolOutputServiceServer) + protected readonly toolOutputService: ToolOutputServiceServer; + + protected readonly onIndexUpdatedEmitter = new Emitter(); + + get onIndexUpdated(): Event { + return this.onIndexUpdatedEmitter.event; + } + + close(client: CoreClientProvider.Client): void { + client.client.close(); + } + + protected async reconcileClient(port: string | undefined): Promise { + if (port && port === this._port) { + // No need to create a new gRPC client, but we have to update the indexes. + if (this._client) { + this.updateIndexes(this._client); + } + } else { + return super.reconcileClient(port); + } + } + + protected async createClient(port: string | number): Promise { + const client = new ArduinoCoreClient(`localhost:${port}`, grpc.credentials.createInsecure(), this.channelOptions); + const initReq = new InitReq(); + initReq.setLibraryManagerOnly(false); + const initResp = await new Promise(resolve => { + let resp: InitResp | undefined = undefined; + const stream = client.init(initReq); + stream.on('data', (data: InitResp) => resp = data); + stream.on('end', () => resolve(resp)); + stream.on('error', err => { + console.log('init error', err) + }); + }); + + const instance = initResp.getInstance(); + if (!instance) { + throw new Error(`Could not retrieve instance from the initialize response.`); + } + + await this.updateIndexes({ instance, client }); + + return { instance, client }; + } + + protected async updateIndexes({ client, instance }: CoreClientProvider.Client): Promise { + // in a separate promise, try and update the index + let indexUpdateSucceeded = true; + for (let i = 0; i < 10; i++) { + try { + await this.updateIndex({ client, instance }); + indexUpdateSucceeded = true; + break; + } catch (e) { + this.toolOutputService.publishNewOutput("daemon", `Error while updating index in attempt ${i}: ${e}`); + } + } + if (!indexUpdateSucceeded) { + this.toolOutputService.publishNewOutput("daemon", `Was unable to update the index. Please restart to try again.`); + } + + let libIndexUpdateSucceeded = true; + for (let i = 0; i < 10; i++) { + try { + await this.updateLibraryIndex({ client, instance }); + libIndexUpdateSucceeded = true; + break; + } catch (e) { + this.toolOutputService.publishNewOutput("daemon", `Error while updating library index in attempt ${i}: ${e}`); + } + } + if (!libIndexUpdateSucceeded) { + this.toolOutputService.publishNewOutput("daemon", `Was unable to update the library index. Please restart to try again.`); + } + + if (indexUpdateSucceeded && libIndexUpdateSucceeded) { + this.onIndexUpdatedEmitter.fire(); + } + } + + protected async updateLibraryIndex({ client, instance }: CoreClientProvider.Client): Promise { + const req = new UpdateLibrariesIndexReq(); + req.setInstance(instance); + const resp = client.updateLibrariesIndex(req); + let file: string | undefined; + resp.on('data', (data: UpdateLibrariesIndexResp) => { + const progress = data.getDownloadProgress(); + if (progress) { + if (!file && progress.getFile()) { + file = `${progress.getFile()}`; + } + if (progress.getCompleted()) { + if (file) { + if (/\s/.test(file)) { + this.toolOutputService.publishNewOutput("daemon", `${file} completed.\n`); + } else { + this.toolOutputService.publishNewOutput("daemon", `Download of '${file}' completed.\n'`); + } + } else { + this.toolOutputService.publishNewOutput("daemon", `The library index has been successfully updated.\n'`); + } + file = undefined; + } + } + }); + await new Promise((resolve, reject) => { + resp.on('error', reject); + resp.on('end', resolve); + }); + } + + protected async updateIndex({ client, instance }: CoreClientProvider.Client): Promise { + const updateReq = new UpdateIndexReq(); + updateReq.setInstance(instance); + const updateResp = client.updateIndex(updateReq); + let file: string | undefined; + updateResp.on('data', (o: UpdateIndexResp) => { + const progress = o.getDownloadProgress(); + if (progress) { + if (!file && progress.getFile()) { + file = `${progress.getFile()}`; + } + if (progress.getCompleted()) { + if (file) { + if (/\s/.test(file)) { + this.toolOutputService.publishNewOutput("daemon", `${file} completed.\n`); + } else { + this.toolOutputService.publishNewOutput("daemon", `Download of '${file}' completed.\n'`); + } + } else { + this.toolOutputService.publishNewOutput("daemon", `The index has been successfully updated.\n'`); + } + file = undefined; + } + } + }); + await new Promise((resolve, reject) => { + updateResp.on('error', reject); + updateResp.on('end', resolve); + }); + } -export const CoreClientProviderPath = '/services/core-client-provider'; -export const CoreClientProvider = Symbol('CoreClientProvider'); -export interface CoreClientProvider { - getClient(workspaceRootOrResourceUri?: string): Promise; } - -export interface Client { - readonly client: ArduinoCoreClient; - readonly instance: Instance; -} \ No newline at end of file +export namespace CoreClientProvider { + export interface Client { + readonly client: ArduinoCoreClient; + readonly instance: Instance; + } +} diff --git a/arduino-ide-extension/src/node/core-service-impl.ts b/arduino-ide-extension/src/node/core-service-impl.ts index 24862806..e777d7f9 100644 --- a/arduino-ide-extension/src/node/core-service-impl.ts +++ b/arduino-ide-extension/src/node/core-service-impl.ts @@ -1,6 +1,6 @@ -import { inject, injectable } from 'inversify'; +import { inject, injectable, postConstruct } from 'inversify'; import { FileSystem } from '@theia/filesystem/lib/common/filesystem'; -import { CoreService } from '../common/protocol/core-service'; +import { CoreService, CoreServiceClient } from '../common/protocol/core-service'; import { CompileReq, CompileResp } from './cli-protocol/commands/compile_pb'; import { BoardsService } from '../common/protocol/boards-service'; import { CoreClientProvider } from './core-client-provider'; @@ -23,33 +23,40 @@ export class CoreServiceImpl implements CoreService { @inject(ToolOutputServiceServer) protected readonly toolOutputService: ToolOutputServiceServer; + protected client: CoreServiceClient | undefined; + + @postConstruct() + protected init(): void { + this.coreClientProvider.onIndexUpdated(() => { + if (this.client) { + this.client.notifyIndexUpdated(); + } + }) + } + async compile(options: CoreService.Compile.Options): Promise { console.log('compile', options); - const { uri } = options; - const sketchFilePath = await this.fileSystem.getFsPath(options.uri); + const { sketchUri, fqbn } = options; + const sketchFilePath = await this.fileSystem.getFsPath(sketchUri); if (!sketchFilePath) { - throw new Error(`Cannot resolve filesystem path for URI: ${uri}.`); + throw new Error(`Cannot resolve filesystem path for URI: ${sketchUri}.`); } const sketchpath = path.dirname(sketchFilePath); - const coreClient = await this.coreClientProvider.getClient(uri); + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { return; } const { client, instance } = coreClient; - const currentBoard = options.board; - if (!currentBoard) { - throw new Error("no board selected"); - } - if (!currentBoard.fqbn) { - throw new Error(`selected board (${currentBoard.name}) has no FQBN`); + if (!fqbn) { + throw new Error('The selected board has no FQBN.'); } const compilerReq = new CompileReq(); compilerReq.setInstance(instance); compilerReq.setSketchpath(sketchpath); - compilerReq.setFqbn(currentBoard.fqbn!); + compilerReq.setFqbn(fqbn); compilerReq.setOptimizefordebug(options.optimizeForDebug); compilerReq.setPreprocess(false); compilerReq.setVerbose(true); @@ -73,34 +80,30 @@ export class CoreServiceImpl implements CoreService { } async upload(options: CoreService.Upload.Options): Promise { - await this.compile({ uri: options.uri, board: options.board, optimizeForDebug: options.optimizeForDebug }); - + await this.compile(options); console.log('upload', options); - const { uri } = options; - const sketchFilePath = await this.fileSystem.getFsPath(options.uri); + const { sketchUri, fqbn } = options; + const sketchFilePath = await this.fileSystem.getFsPath(sketchUri); if (!sketchFilePath) { - throw new Error(`Cannot resolve filesystem path for URI: ${uri}.`); + throw new Error(`Cannot resolve filesystem path for URI: ${sketchUri}.`); } const sketchpath = path.dirname(sketchFilePath); - const currentBoard = options.board; - if (!currentBoard) { - throw new Error("no board selected"); - } - if (!currentBoard.fqbn) { - throw new Error(`selected board (${currentBoard.name}) has no FQBN`); - } - const coreClient = await this.coreClientProvider.getClient(uri); + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { return; } const { client, instance } = coreClient; + if (!fqbn) { + throw new Error('The selected board has no FQBN.'); + } + const req = new UploadReq(); req.setInstance(instance); req.setSketchPath(sketchpath); - req.setFqbn(currentBoard.fqbn); + req.setFqbn(fqbn); req.setPort(options.port); const result = client.upload(req); @@ -120,4 +123,12 @@ export class CoreServiceImpl implements CoreService { } } + setClient(client: CoreServiceClient | undefined): void { + this.client = client; + } + + dispose(): void { + this.client = undefined; + } + } diff --git a/arduino-ide-extension/src/node/daemon-log.ts b/arduino-ide-extension/src/node/daemon-log.ts index 872058a6..affb780c 100644 --- a/arduino-ide-extension/src/node/daemon-log.ts +++ b/arduino-ide-extension/src/node/daemon-log.ts @@ -132,4 +132,4 @@ export namespace DaemonLog { return `${key.toLowerCase()}: ${value}`; } -} \ No newline at end of file +} diff --git a/arduino-ide-extension/src/node/exec-util.ts b/arduino-ide-extension/src/node/exec-util.ts index 6c1368fe..2c718530 100644 --- a/arduino-ide-extension/src/node/exec-util.ts +++ b/arduino-ide-extension/src/node/exec-util.ts @@ -1,11 +1,10 @@ import * as os from 'os'; import * as which from 'which'; import * as semver from 'semver'; -import { spawn } from 'child_process'; import { join } from 'path'; -import { ILogger } from '@theia/core'; +import { spawn } from 'child_process'; -export async function getExecPath(commandName: string, logger: ILogger, versionArg?: string, inBinDir?: boolean): Promise { +export async function getExecPath(commandName: string, onError: (error: Error) => void = (error) => console.log(error), versionArg?: string, inBinDir?: boolean): Promise { const execName = `${commandName}${os.platform() === 'win32' ? '.exe' : ''}`; const relativePath = ['..', '..', 'build']; if (inBinDir) { @@ -16,13 +15,13 @@ export async function getExecPath(commandName: string, logger: ILogger, versionA return buildCommand; } const versionRegexp = /\d+\.\d+\.\d+/; - const buildVersion = await spawnCommand(`"${buildCommand}"`, [versionArg], logger); + const buildVersion = await spawnCommand(`"${buildCommand}"`, [versionArg], onError); const buildShortVersion = (buildVersion.match(versionRegexp) || [])[0]; const pathCommand = await new Promise(resolve => which(execName, (error, path) => resolve(error ? undefined : path))); if (!pathCommand) { return buildCommand; } - const pathVersion = await spawnCommand(`"${pathCommand}"`, [versionArg], logger); + const pathVersion = await spawnCommand(`"${pathCommand}"`, [versionArg], onError); const pathShortVersion = (pathVersion.match(versionRegexp) || [])[0]; if (semver.gt(pathShortVersion, buildShortVersion)) { return pathCommand; @@ -30,7 +29,7 @@ export async function getExecPath(commandName: string, logger: ILogger, versionA return buildCommand; } -export function spawnCommand(command: string, args: string[], logger?: ILogger): Promise { +export function spawnCommand(command: string, args: string[], onError: (error: Error) => void = (error) => console.log(error)): Promise { return new Promise((resolve, reject) => { const cp = spawn(command, args, { windowsHide: true, shell: true }); const outBuffers: Buffer[] = []; @@ -38,9 +37,7 @@ export function spawnCommand(command: string, args: string[], logger?: ILogger): cp.stdout.on('data', (b: Buffer) => outBuffers.push(b)); cp.stderr.on('data', (b: Buffer) => errBuffers.push(b)); cp.on('error', error => { - if (logger) { - logger.error(`Error executing ${command} ${args.join(' ')}`, error); - } + onError(error); reject(error); }); cp.on('exit', (code, signal) => { @@ -51,24 +48,21 @@ export function spawnCommand(command: string, args: string[], logger?: ILogger): } if (errBuffers.length > 0) { const message = Buffer.concat(errBuffers).toString('utf8').trim(); - if (logger) { - logger.error(`Error executing ${command} ${args.join(' ')}: ${message}`); - } - reject(new Error(`Process failed with error: ${message}`)); + const error = new Error(`Error executing ${command} ${args.join(' ')}: ${message}`); + onError(error) + reject(error); return; } if (signal) { - if (logger) { - logger.error(`Unexpected signal '${signal}' when executing ${command} ${args.join(' ')}`); - } - reject(new Error(`Process exited with signal: ${signal}`)); + const error = new Error(`Process exited with signal: ${signal}`); + onError(error); + reject(error); return; } if (code) { - if (logger) { - logger.error(`Unexpected exit code '${code}' when executing ${command} ${args.join(' ')}`); - } - reject(new Error(`Process exited with exit code: ${code}`)); + const error = new Error(`Process exited with exit code: ${code}`); + onError(error); + reject(error); return; } }); diff --git a/arduino-ide-extension/src/node/fs-extra.ts b/arduino-ide-extension/src/node/fs-extra.ts index 690602df..187fec59 100644 --- a/arduino-ide-extension/src/node/fs-extra.ts +++ b/arduino-ide-extension/src/node/fs-extra.ts @@ -6,12 +6,17 @@ export const lstatSync = fs.lstatSync; export const readdirSync = fs.readdirSync; export const statSync = fs.statSync; export const writeFileSync = fs.writeFileSync; +export const readFileSync = fs.readFileSync; export const exists = promisify(fs.exists); export const lstat = promisify(fs.lstat); export const readdir = promisify(fs.readdir); export const stat = promisify(fs.stat); export const writeFile = promisify(fs.writeFile); +export const readFile = promisify(fs.readFile); + +export const watchFile = fs.watchFile; +export const unwatchFile = fs.unwatchFile; export function mkdirp(path: string, timeout: number = 3000): Promise { return new Promise((resolve, reject) => { diff --git a/arduino-ide-extension/src/node/grpc-client-provider.ts b/arduino-ide-extension/src/node/grpc-client-provider.ts new file mode 100644 index 00000000..670bc0fb --- /dev/null +++ b/arduino-ide-extension/src/node/grpc-client-provider.ts @@ -0,0 +1,79 @@ +import * as grpc from 'grpc'; +import { inject, injectable, postConstruct } from 'inversify'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { MaybePromise } from '@theia/core/lib/common/types'; +import { ConfigServiceImpl } from './config-service-impl'; +import { ArduinoDaemonImpl } from './arduino-daemon-impl'; + +@injectable() +export abstract class GrpcClientProvider { + + @inject(ILogger) + protected readonly logger: ILogger; + + @inject(ArduinoDaemonImpl) + protected readonly daemon: ArduinoDaemonImpl; + + @inject(ConfigServiceImpl) + protected readonly configService: ConfigServiceImpl; + + protected _port: string | number | undefined; + protected _client: C | undefined; + + @postConstruct() + protected init(): void { + const updateClient = () => { + const cliConfig = this.configService.cliConfiguration; + this.reconcileClient(cliConfig ? cliConfig.daemon.port : undefined); + } + this.configService.onConfigChange(updateClient); + this.daemon.ready.then(updateClient); + this.daemon.onDaemonStopped(() => { + if (this._client) { + this.close(this._client); + } + this._client = undefined; + this._port = undefined; + }) + } + + async client(): Promise { + try { + await this.daemon.ready; + return this._client; + } catch (error) { + return undefined; + } + } + + protected async reconcileClient(port: string | number | undefined): Promise { + if (this._port === port) { + return; // Nothing to do. + } + this._port = port; + if (this._client) { + this.close(this._client); + this._client = undefined; + } + if (this._port) { + try { + const client = await this.createClient(this._port); + this._client = client; + } catch (error) { + this.logger.error('Could create client for gRPC.', error) + } + } + } + + protected abstract createClient(port: string | number): MaybePromise; + + protected abstract close(client: C): void; + + protected get channelOptions(): grpc.CallOptions { + return { + 'grpc.max_send_message_length': 512 * 1024 * 1024, + 'grpc.max_receive_message_length': 512 * 1024 * 1024 + }; + } + +} diff --git a/arduino-ide-extension/src/node/language/arduino-language-server-contribution.ts b/arduino-ide-extension/src/node/language/arduino-language-server-contribution.ts index d3db36e7..8377acf9 100644 --- a/arduino-ide-extension/src/node/language/arduino-language-server-contribution.ts +++ b/arduino-ide-extension/src/node/language/arduino-language-server-contribution.ts @@ -27,9 +27,11 @@ export class ArduinoLanguageServerContribution extends BaseLanguageServerContrib protected logger: ILogger; async start(clientConnection: IConnection, options: LanguageServerStartOptions): Promise { - const languageServer = await getExecPath('arduino-language-server', this.logger); - const clangd = await getExecPath('clangd', this.logger, '--version', os.platform() !== 'win32'); - const cli = await getExecPath('arduino-cli', this.logger, 'version'); + const [languageServer, clangd, cli] = await Promise.all([ + getExecPath('arduino-language-server', this.onError.bind(this)), + getExecPath('clangd', this.onError.bind(this), '--version', os.platform() !== 'win32'), + getExecPath('arduino-cli', this.onError.bind(this), 'version') + ]); // Add '-log' argument to enable logging to files const args: string[] = ['-clangd', clangd, '-cli', cli]; if (options.parameters && options.parameters.selectedBoard) { @@ -46,4 +48,8 @@ export class ArduinoLanguageServerContribution extends BaseLanguageServerContrib this.forward(clientConnection, serverConnection); } + protected onError(error: Error): void { + this.logger.error(error); + } + } diff --git a/arduino-ide-extension/src/node/library-service-impl.ts b/arduino-ide-extension/src/node/library-service-impl.ts index 0d5f8065..3e97bdb9 100644 --- a/arduino-ide-extension/src/node/library-service-impl.ts +++ b/arduino-ide-extension/src/node/library-service-impl.ts @@ -25,10 +25,10 @@ export class LibraryServiceImpl implements LibraryService { @inject(ToolOutputServiceServer) protected readonly toolOutputService: ToolOutputServiceServer; - async search(options: { query?: string }): Promise<{ items: Library[] }> { - const coreClient = await this.coreClientProvider.getClient(); + async search(options: { query?: string }): Promise { + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { - return { items: [] }; + return []; } const { client, instance } = coreClient; @@ -68,13 +68,13 @@ export class LibraryServiceImpl implements LibraryService { }, item.getLatest()!, availableVersions) }) - return { items }; + return items; } async install(options: { item: Library, version?: Installable.Version }): Promise { const library = options.item; const version = !!options.version ? options.version : library.availableVersions[0]; - const coreClient = await this.coreClientProvider.getClient(); + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { return; } @@ -100,7 +100,7 @@ export class LibraryServiceImpl implements LibraryService { async uninstall(options: { item: Library }): Promise { const library = options.item; - const coreClient = await this.coreClientProvider.getClient(); + const coreClient = await this.coreClientProvider.client(); if (!coreClient) { return; } diff --git a/arduino-ide-extension/src/node/monitor/monitor-client-provider.ts b/arduino-ide-extension/src/node/monitor/monitor-client-provider.ts index 609f0df9..9666c224 100644 --- a/arduino-ide-extension/src/node/monitor/monitor-client-provider.ts +++ b/arduino-ide-extension/src/node/monitor/monitor-client-provider.ts @@ -1,20 +1,17 @@ -import * as grpc from '@grpc/grpc-js'; -import { injectable, postConstruct } from 'inversify'; -import { Deferred } from '@theia/core/lib/common/promise-util'; +import * as grpc from 'grpc'; +import { injectable } from 'inversify'; import { MonitorClient } from '../cli-protocol/monitor/monitor_grpc_pb'; +import { GrpcClientProvider } from '../grpc-client-provider'; @injectable() -export class MonitorClientProvider { +export class MonitorClientProvider extends GrpcClientProvider { - readonly deferred = new Deferred(); - - @postConstruct() - protected init(): void { - this.deferred.resolve(new MonitorClient('localhost:50051', grpc.credentials.createInsecure())); + createClient(port: string | number): MonitorClient { + return new MonitorClient(`localhost:${port}`, grpc.credentials.createInsecure(), this.channelOptions); } - get client(): Promise { - return this.deferred.promise; + close(client: MonitorClient): void { + client.close(); } } diff --git a/arduino-ide-extension/src/node/monitor/monitor-service-impl.ts b/arduino-ide-extension/src/node/monitor/monitor-service-impl.ts index dd1aaca0..349c8cf9 100644 --- a/arduino-ide-extension/src/node/monitor/monitor-service-impl.ts +++ b/arduino-ide-extension/src/node/monitor/monitor-service-impl.ts @@ -1,4 +1,4 @@ -import { ClientDuplexStream } from '@grpc/grpc-js'; +import { ClientDuplexStream } from 'grpc'; import { TextDecoder, TextEncoder } from 'util'; import { injectable, inject, named } from 'inversify'; import { Struct } from 'google-protobuf/google/protobuf/struct_pb'; @@ -65,7 +65,10 @@ export class MonitorServiceImpl implements MonitorService { if (this.connection) { return Status.ALREADY_CONNECTED; } - const client = await this.monitorClientProvider.client; + const client = await this.monitorClientProvider.client(); + if (!client) { + return Status.NOT_CONNECTED; + } const duplex = client.streamingOpen(); this.connection = { duplex, config }; diff --git a/arduino-ide-extension/src/test/browser/boards-service-client-impl.test.ts b/arduino-ide-extension/src/test/browser/boards-service-client-impl.test.ts new file mode 100644 index 00000000..59c3e8fa --- /dev/null +++ b/arduino-ide-extension/src/test/browser/boards-service-client-impl.test.ts @@ -0,0 +1,317 @@ +import { expect } from 'chai'; +import * as sinon from 'sinon'; +import * as os from '@theia/core/lib/common/os'; +import { Container, injectable } from 'inversify'; +import { Event } from '@theia/core/lib/common/event'; +import { ILogger } from '@theia/core/lib/common/logger'; +import { Deferred } from '@theia/core/lib/common/promise-util'; +import { MockLogger } from '@theia/core/lib/common/test/mock-logger'; +import { MaybePromise } from '@theia/core/lib/common/types'; +import { StorageService } from '@theia/core/lib/browser/storage-service'; +import { DisposableCollection } from '@theia/core/lib/common/disposable'; +import { BoardsService, Board, Port, BoardsPackage, BoardDetails, BoardsServiceClient } from '../../common/protocol'; +import { BoardsServiceClientImpl, AvailableBoard } from '../../browser/boards/boards-service-client-impl'; +import { BoardsConfig } from '../../browser/boards/boards-config'; + +// tslint:disable: no-unused-expression + +describe('boards-service-client-impl', () => { + + describe('onAvailableBoardsChanged', () => { + + const ESP8266: Port = { protocol: 'serial', address: '/dev/cu.SLAB_USBtoUART' }; + const UNO: Board = { name: 'Arduino Uno', fqbn: 'arduino:avr:uno', port: { protocol: 'serial', address: '/dev/cu.usbmodem14501' } }; + const MKR1000: Board = { name: 'Arduino MKR1000', fqbn: 'arduino:samd:mkr1000', port: { protocol: 'serial', address: '/dev/cu.usbmodem14601' } }; + const NANO: Board = { name: 'Arduino Nano', fqbn: 'arduino:avr:nano' }; + + const recognized = AvailableBoard.State.recognized; + const guessed = AvailableBoard.State.guessed; + const incomplete = AvailableBoard.State.incomplete; + + let stub: sinon.SinonStub; + + let server: MockBoardsService; + let client: BoardsServiceClientImpl; + + beforeEach(() => { + stub = sinon.stub(os, 'isOSX').value(true); + const container = init(); + server = container.get(MockBoardsService); + client = container.get(BoardsServiceClientImpl); + server.setClient(client); + }); + + afterEach(() => { + stub.reset(); + }); + + it('should have no available boards by default', () => { + expect(client.availableBoards).to.have.length(0); + }); + + it('should be notified when a board is attached', async () => { + await attach(MKR1000); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(recognized); + expect(!!availableBoards()[0].selected).to.be.false; + }); + + it('should be notified when a unknown board is attached', async () => { + await attach(ESP8266); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(incomplete); + }); + + it('should be notified when a board is detached', async () => { + await attach(MKR1000, UNO, ESP8266); + expect(availableBoards()).to.have.length(3); + await detach(MKR1000); + expect(availableBoards()).to.have.length(2); + }); + + it('should be notified when an unknown board is detached', async () => { + await attach(MKR1000, UNO, ESP8266); + expect(availableBoards()).to.have.length(3); + await detach(ESP8266); + expect(availableBoards()).to.have.length(2); + }); + + it('should recognize boards config as an available board', async () => { + await configureBoards({ selectedBoard: NANO }); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(incomplete); + expect(availableBoards()[0].selected).to.be.true; + }); + + it('should discard the boards config port when corresponding board is detached', async () => { + await attach(MKR1000); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(recognized); + expect(availableBoards()[0].selected).to.be.false; + + await configureBoards({ selectedBoard: MKR1000, selectedPort: server.portFor(MKR1000) }); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(recognized); + expect(availableBoards()[0].selected).to.be.true; + + await detach(MKR1000); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(incomplete); + expect(availableBoards()[0].selected).to.be.true; + }); + + it("should consider selected unknown boards as 'guessed'", async () => { + await attach(ESP8266); + await configureBoards({ selectedBoard: { name: 'guessed' }, selectedPort: ESP8266 }); + expect(availableBoards()).to.have.length(1); + expect(availableBoards()[0].state).to.be.equal(guessed); + expect(availableBoards()[0].name).to.be.equal('guessed'); + expect(availableBoards()[0].fqbn).to.be.undefined; + expect(client.canVerify(client.boardsConfig)).to.be.true; + }); + + it('should not reconnect last valid selected if port is gone', async () => { + await attach(ESP8266, UNO); + await configureBoards({ selectedBoard: { name: 'NodeMCU 0.9 (ESP-12 Module)', fqbn: 'esp8266:esp8266:nodemcu' }, selectedPort: ESP8266 }); + await detach(ESP8266); + expect(availableBoards()).to.have.length(2); + const selected = availableBoards().find(({ selected }) => selected); + expect(selected).to.be.not.undefined; + expect(selected!.port).to.be.undefined; + expect(selected!.name).to.be.equal('NodeMCU 0.9 (ESP-12 Module)'); + }); + + function availableBoards(): AvailableBoard[] { + return client.availableBoards.slice(); + } + + async function configureBoards(config: BoardsConfig.Config): Promise { + return awaitAll(() => { client.boardsConfig = config; }, client.onAvailableBoardsChanged); + } + + async function detach(...toDetach: Array): Promise { + return awaitAll(() => server.detach(...toDetach), client.onAttachedBoardsChanged, client.onAvailableBoardsChanged); + } + + async function attach(...toAttach: Array): Promise { + return awaitAll(() => server.attach(...toAttach), client.onAttachedBoardsChanged, client.onAvailableBoardsChanged); + } + + async function awaitAll(exec: () => MaybePromise, ...waitFor: Event[]): Promise { + return new Promise(async resolve => { + const toDispose = new DisposableCollection(); + const promises = waitFor.map(event => { + const deferred = new Deferred(); + toDispose.push(event(() => deferred.resolve())); + return deferred.promise; + }); + await exec(); + await Promise.all(promises); + toDispose.dispose(); + resolve(); + }); + } + + }); + +}); + +function init(): Container { + const container = new Container({ defaultScope: 'Singleton' }); + container.bind(MockBoardsService).toSelf(); + container.bind(MockLogger).toSelf(); + container.bind(ILogger).toService(MockLogger); + container.bind(MockStorageService).toSelf(); + container.bind(StorageService).toService(MockStorageService); + container.bind(BoardsServiceClientImpl).toSelf(); + return container; +} + +@injectable() +export class MockBoardsService implements BoardsService { + + private client: BoardsServiceClient | undefined; + + boards: Board[] = []; + ports: Port[] = []; + + attach(...toAttach: Array): void { + const oldState = { boards: this.boards.slice(), ports: this.ports.slice() }; + for (const what of toAttach) { + if (Board.is(what)) { + if (what.port) { + this.ports.push(what.port); + } + this.boards.push(what); + } else { + this.ports.push(what); + } + } + const newState = { boards: this.boards, ports: this.ports }; + if (this.client) { + this.client.notifyAttachedBoardsChanged({ oldState, newState }); + } + } + + detach(...toRemove: Array): void { + const oldState = { boards: this.boards.slice(), ports: this.ports.slice() }; + for (const what of toRemove) { + if (Board.is(what)) { + const index = this.boards.indexOf(what); + if (index === -1) { + throw new Error(`${what} board is not attached. Boards were: ${JSON.stringify(oldState.boards)}`); + } + this.boards.splice(index, 1); + if (what.port) { + const portIndex = this.ports.findIndex(port => Port.sameAs(what.port, port)); + if (portIndex === -1) { + throw new Error(`${what} port is not available. Ports were: ${JSON.stringify(oldState.ports)}`); + } + this.ports.splice(portIndex, 1); + } + } else { + const index = this.ports.indexOf(what); + if (index === -1) { + throw new Error(`${what} port is not available. Ports were: ${JSON.stringify(oldState.ports)}`); + } + this.ports.splice(index, 1); + } + } + const newState = { boards: this.boards, ports: this.ports }; + if (this.client) { + this.client.notifyAttachedBoardsChanged({ oldState, newState }); + } + } + + reset(): void { + this.setState({ boards: [], ports: [], silent: true }); + } + + setState({ boards, ports, silent }: { boards: Board[], ports: Port[], silent?: boolean }): void { + const oldState = { boards: this.boards, ports: this.ports }; + const newState = { boards, ports }; + if (this.client && !silent) { + this.client.notifyAttachedBoardsChanged({ oldState, newState }); + } + } + + portFor(board: Board): Port { + if (!board.port) { + throw new Error(`${JSON.stringify(board)} does not have a port.`); + } + const port = this.ports.find(port => Port.sameAs(port, board.port)); + if (!port) { + throw new Error(`Could not find port for board: ${JSON.stringify(board)}. Ports were: ${JSON.stringify(this.ports)}.`); + } + return port; + } + + // BoardsService API + + async getAttachedBoards(): Promise { + return this.boards; + } + + async getAvailablePorts(): Promise { + throw this.ports; + } + + async getBoardDetails(): Promise { + throw new Error('Method not implemented.'); + } + + getBoardPackage(): Promise { + throw new Error('Method not implemented.'); + } + + getContainerBoardPackage(): Promise { + throw new Error('Method not implemented.'); + } + + searchBoards(): Promise> { + throw new Error('Method not implemented.'); + } + + install(): Promise { + throw new Error('Method not implemented.'); + } + + uninstall(): Promise { + throw new Error('Method not implemented.'); + } + + search(): Promise { + throw new Error('Method not implemented.'); + } + + dispose(): void { + this.reset(); + this.client = undefined; + } + + setClient(client: BoardsServiceClient | undefined): void { + this.client = client; + } + +} + +@injectable() +class MockStorageService implements StorageService { + + private store: Map = new Map(); + + reset(): void { + this.store.clear(); + } + + async setData(key: string, data: T): Promise { + this.store.set(key, data); + } + + async getData(key: string): Promise; + async getData(key: string, defaultValue?: T): Promise { + const data = this.store.get(key); + return data ? data : defaultValue; + } + +} diff --git a/arduino-ide-extension/src/test/common/boards-service.test.ts b/arduino-ide-extension/src/test/common/boards-service.test.ts new file mode 100644 index 00000000..62dc0781 --- /dev/null +++ b/arduino-ide-extension/src/test/common/boards-service.test.ts @@ -0,0 +1,116 @@ +import { expect } from 'chai'; +import { ConfigOption, AttachedBoardsChangeEvent } from '../../common/protocol'; +import { fail } from 'assert'; + +describe('boards-service', () => { + + describe('AttachedBoardsChangeEvent', () => { + + it('should detect one attached port', () => { + const event = { + oldState: { + boards: [ + { name: 'Arduino MKR1000', fqbn: 'arduino:samd:mkr1000', port: '/dev/cu.usbmodem14601' }, + { name: 'Arduino Uno', fqbn: 'arduino:avr:uno', port: '/dev/cu.usbmodem14501' } + ], + ports: [ + { protocol: 'serial', address: '/dev/cu.usbmodem14501' }, + { protocol: 'serial', address: '/dev/cu.usbmodem14601' }, + { protocol: 'serial', address: '/dev/cu.Bluetooth-Incoming-Port' }, + { protocol: 'serial', address: '/dev/cu.MALS' }, + { protocol: 'serial', address: '/dev/cu.SOC' } + ] + }, + newState: { + boards: [ + { name: 'Arduino MKR1000', fqbn: 'arduino:samd:mkr1000', 'port': '/dev/cu.usbmodem1460' }, + { name: 'Arduino Uno', fqbn: 'arduino:avr:uno', 'port': '/dev/cu.usbmodem14501' } + ], + ports: [ + { protocol: 'serial', address: '/dev/cu.SLAB_USBtoUART' }, + { protocol: 'serial', address: '/dev/cu.usbmodem14501' }, + { protocol: 'serial', address: '/dev/cu.usbmodem14601' }, + { protocol: 'serial', address: '/dev/cu.Bluetooth-Incoming-Port' }, + { protocol: 'serial', address: '/dev/cu.MALS' }, + { protocol: 'serial', address: '/dev/cu.SOC' } + ] + } + }; + const diff = AttachedBoardsChangeEvent.diff(event); + expect(diff.attached.boards).to.be.empty; // tslint:disable-line:no-unused-expression + expect(diff.detached.boards).to.be.empty; // tslint:disable-line:no-unused-expression + expect(diff.detached.ports).to.be.empty; // tslint:disable-line:no-unused-expression + expect(diff.attached.ports.length).to.be.equal(1); + expect(diff.attached.ports[0].address).to.be.equal('/dev/cu.SLAB_USBtoUART'); + }); + + }); + + + describe('ConfigOption', () => { + + ([ + ['', false], + ['foo', true], + ['foo:bar', true], + ['foo:bar:baz', true], + ['foo:', false], + [':foo', false], + [':foo:', false], + ['foo:bar:', false] + ] as Array<[string, boolean]>).forEach(([fqbn, expectation]) => { + it(`"${fqbn}" should ${expectation ? '' : 'not '}be a valid FQBN`, () => { + expect(ConfigOption.isValidFqbn(fqbn)).to.be.equal(expectation); + }); + }); + + ([ + ['', false], + ['foo:bar:option1', false], + ['foo:bar:option1=', false], + ['foo:bar:baz:option1=value1', true], + ['foo:bar:baz:option1=value1,option2=value2', true], + ['foo:bar:baz:option1=value1,option2=value2,', false], + ['foo:bar:baz,option1=value1,option2=value2', false], + ['foo:bar:baz:option1=value1,option2=value2,options3', false], + ['foo:bar:baz:option1=value1,option2=value2, options3=value3', false], + ] as Array<[string, boolean]>).forEach(([fqbn, expectation]) => { + it(`"${fqbn}" should ${expectation ? '' : 'not '}be a valid FQBN with options`, () => { + expect(ConfigOption.isValidFqbnWithOptions(fqbn)).to.be.equal(expectation); + }); + }); + + ([ + [ + 'foo:bar:baz', + JSON.parse('[{"label":"CPU Frequency","option":"xtal","values":[{"value":"80","label":"80 MHz","selected":true},{"value":"160","label":"160 MHz","selected":false}]},{"label":"VTables","option":"vt","values":[{"value":"flash","label":"Flash","selected":true},{"value":"heap","label":"Heap","selected":false},{"value":"iram","label":"IRAM","selected":false}]},{"label":"Exceptions","option":"exception","values":[{"value":"legacy","label":"Legacy (new can return nullptr)","selected":true},{"value":"disabled","label":"Disabled (new can abort)","selected":false},{"value":"enabled","label":"Enabled","selected":false}]},{"label":"SSL Support","option":"ssl","values":[{"value":"all","label":"All SSL ciphers (most compatible)","selected":true},{"value":"basic","label":"Basic SSL ciphers (lower ROM use)","selected":false}]},{"label":"Flash Size","option":"eesz","values":[{"value":"4M2M","label":"4MB (FS:2MB OTA:~1019KB)","selected":true},{"value":"4M3M","label":"4MB (FS:3MB OTA:~512KB)","selected":false},{"value":"4M1M","label":"4MB (FS:1MB OTA:~1019KB)","selected":false},{"value":"4M","label":"4MB (FS:none OTA:~1019KB)","selected":false}]},{"label":"lwIP Variant","option":"ip","values":[{"value":"lm2f","label":"v2 Lower Memory","selected":true},{"value":"hb2f","label":"v2 Higher Bandwidth","selected":false},{"value":"lm2n","label":"v2 Lower Memory (no features)","selected":false},{"value":"hb2n","label":"v2 Higher Bandwidth (no features)","selected":false},{"value":"lm6f","label":"v2 IPv6 Lower Memory","selected":false},{"value":"hb6f","label":"v2 IPv6 Higher Bandwidth","selected":false},{"value":"hb1","label":"v1.4 Higher Bandwidth","selected":false},{"value":"src","label":"v1.4 Compile from source","selected":false}]},{"label":"Debug port","option":"dbg","values":[{"value":"Disabled","label":"Disabled","selected":true},{"value":"Serial","label":"Serial","selected":false},{"value":"Serial1","label":"Serial1","selected":false}]},{"label":"Debug Level","option":"lvl","values":[{"value":"None____","label":"None","selected":true},{"value":"SSL","label":"SSL","selected":false},{"value":"TLS_MEM","label":"TLS_MEM","selected":false},{"value":"HTTP_CLIENT","label":"HTTP_CLIENT","selected":false},{"value":"HTTP_SERVER","label":"HTTP_SERVER","selected":false},{"value":"SSLTLS_MEM","label":"SSL+TLS_MEM","selected":false},{"value":"SSLHTTP_CLIENT","label":"SSL+HTTP_CLIENT","selected":false},{"value":"SSLHTTP_SERVER","label":"SSL+HTTP_SERVER","selected":false},{"value":"TLS_MEMHTTP_CLIENT","label":"TLS_MEM+HTTP_CLIENT","selected":false},{"value":"TLS_MEMHTTP_SERVER","label":"TLS_MEM+HTTP_SERVER","selected":false},{"value":"HTTP_CLIENTHTTP_SERVER","label":"HTTP_CLIENT+HTTP_SERVER","selected":false},{"value":"SSLTLS_MEMHTTP_CLIENT","label":"SSL+TLS_MEM+HTTP_CLIENT","selected":false},{"value":"SSLTLS_MEMHTTP_SERVER","label":"SSL+TLS_MEM+HTTP_SERVER","selected":false},{"value":"SSLHTTP_CLIENTHTTP_SERVER","label":"SSL+HTTP_CLIENT+HTTP_SERVER","selected":false},{"value":"TLS_MEMHTTP_CLIENTHTTP_SERVER","label":"TLS_MEM+HTTP_CLIENT+HTTP_SERVER","selected":false},{"value":"SSLTLS_MEMHTTP_CLIENTHTTP_SERVER","label":"SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER","selected":false},{"value":"CORE","label":"CORE","selected":false},{"value":"WIFI","label":"WIFI","selected":false},{"value":"HTTP_UPDATE","label":"HTTP_UPDATE","selected":false},{"value":"UPDATER","label":"UPDATER","selected":false},{"value":"OTA","label":"OTA","selected":false},{"value":"OOM","label":"OOM","selected":false},{"value":"MDNS","label":"MDNS","selected":false},{"value":"COREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS","label":"CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS","selected":false},{"value":"SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS","label":"SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS","selected":false},{"value":"NoAssert-NDEBUG","label":"NoAssert-NDEBUG","selected":false}]},{"label":"Erase Flash","option":"wipe","values":[{"value":"none","label":"Only Sketch","selected":true},{"value":"sdk","label":"Sketch + WiFi Settings","selected":false},{"value":"all","label":"All Flash Contents","selected":false}]},{"label":"Upload Speed","option":"baud","values":[{"value":"115200","label":"115200","selected":true},{"value":"57600","label":"57600","selected":false},{"value":"230400","label":"230400","selected":false},{"value":"460800","label":"460800","selected":false},{"value":"921600","label":"921600","selected":false},{"value":"3000000","label":"3000000","selected":false}]}]'), + 'foo:bar:baz:xtal=80,vt=flash,exception=legacy,ssl=all,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200' + ], + [ + 'foo:bar:baz', + JSON.parse('[]'), + 'foo:bar:baz' + ], + [ + 'foo:bar:baz:xtal=80', + {}, + undefined + ] + ] as Array<[string, Array, string | undefined]>).forEach(([fqbn, configOptions, expectation]) => { + it(`should ${expectation ? `append` : 'throw an error when appending'}config options to ${fqbn}`, () => { + if (!expectation) { + try { + ConfigOption.decorate(fqbn, configOptions); + fail(`Expected a failure when decorating ${fqbn} with config options.`); + } catch (e) { + expect(e).to.be.instanceOf(ConfigOption.ConfigOptionError); + } + } else { + expect(ConfigOption.decorate(fqbn, configOptions)).to.be.equal(expectation); + } + }); + }); + + }); + +}); diff --git a/arduino-ide-extension/src/test/node/arduino-daemon-impl.test.ts b/arduino-ide-extension/src/test/node/arduino-daemon-impl.test.ts new file mode 100644 index 00000000..344b5a6d --- /dev/null +++ b/arduino-ide-extension/src/test/node/arduino-daemon-impl.test.ts @@ -0,0 +1,134 @@ +import * as fs from 'fs'; +import * as net from 'net'; +import * as path from 'path'; +import * as temp from 'temp'; +import { fail } from 'assert'; +import { expect } from 'chai' +import { ChildProcess } from 'child_process'; +import { safeLoad, safeDump } from 'js-yaml'; +import { DaemonError, ArduinoDaemonImpl } from '../../node/arduino-daemon-impl'; +import { spawnCommand } from '../../node/exec-util'; +import { CLI_CONFIG } from '../../node/cli-config'; + +const track = temp.track(); + +class SilentArduinoDaemonImpl extends ArduinoDaemonImpl { + + constructor(private port: string | number, private logFormat: 'text' | 'json') { + super(); + } + + onData(data: string): void { + // NOOP + } + + async spawnDaemonProcess(): Promise { + return super.spawnDaemonProcess(); + } + + protected async getSpawnArgs(): Promise { + const cliConfigPath = await this.initCliConfig(); + return ['daemon', '--config-file', cliConfigPath, '-v', '--log-format', this.logFormat]; + } + + private async initCliConfig(): Promise { + const cliPath = await this.getExecPath(); + const destDir = track.mkdirSync(); + await spawnCommand(`"${cliPath}"`, ['config', 'init', '--dest-dir', destDir]); + const content = fs.readFileSync(path.join(destDir, CLI_CONFIG), { encoding: 'utf8' }); + const cliConfig = safeLoad(content); + cliConfig.daemon.port = String(this.port); + const modifiedContent = safeDump(cliConfig); + fs.writeFileSync(path.join(destDir, CLI_CONFIG), modifiedContent, { encoding: 'utf8' }); + return path.join(destDir, CLI_CONFIG); + } + +} + +describe('arduino-daemon-impl', () => { + + after(() => { + track.cleanupSync(); + }) + + it('should parse an error - address already in use error [json]', async () => { + let server: net.Server | undefined = undefined; + try { + server = await new Promise(resolve => { + const server = net.createServer(); + server.listen(() => resolve(server)); + }); + const address = server.address() as net.AddressInfo; + await new SilentArduinoDaemonImpl(address.port, 'json').spawnDaemonProcess(); + fail('Expected a failure.') + } catch (e) { + expect(e).to.be.instanceOf(DaemonError); + expect(e.code).to.be.equal(DaemonError.ADDRESS_IN_USE); + } finally { + if (server) { + server.close(); + } + } + }); + + it('should parse an error - address already in use error [text]', async () => { + let server: net.Server | undefined = undefined; + try { + server = await new Promise(resolve => { + const server = net.createServer(); + server.listen(() => resolve(server)); + }); + const address = server.address() as net.AddressInfo; + await new SilentArduinoDaemonImpl(address.port, 'text').spawnDaemonProcess(); + fail('Expected a failure.') + } catch (e) { + expect(e).to.be.instanceOf(DaemonError); + expect(e.code).to.be.equal(DaemonError.ADDRESS_IN_USE); + } finally { + if (server) { + server.close(); + } + } + }); + + it('should parse an error - unknown address [json]', async () => { + try { + await new SilentArduinoDaemonImpl('foo', 'json').spawnDaemonProcess(); + fail('Expected a failure.') + } catch (e) { + expect(e).to.be.instanceOf(DaemonError); + expect(e.code).to.be.equal(DaemonError.UNKNOWN_ADDRESS); + } + }); + + it('should parse an error - unknown address [text]', async () => { + try { + await new SilentArduinoDaemonImpl('foo', 'text').spawnDaemonProcess(); + fail('Expected a failure.') + } catch (e) { + expect(e).to.be.instanceOf(DaemonError); + expect(e.code).to.be.equal(DaemonError.UNKNOWN_ADDRESS); + } + }); + + it('should parse an error - invalid port [json]', async () => { + try { + await new SilentArduinoDaemonImpl(-1, 'json').spawnDaemonProcess(); + fail('Expected a failure.') + } catch (e) { + expect(e).to.be.instanceOf(DaemonError); + expect(e.code).to.be.equal(DaemonError.INVALID_PORT); + } + }); + + it('should parse an error - invalid port [text]', async () => { + try { + await new SilentArduinoDaemonImpl(-1, 'text').spawnDaemonProcess(); + fail('Expected a failure.') + } catch (e) { + expect(e).to.be.instanceOf(DaemonError); + expect(e.code).to.be.equal(DaemonError.INVALID_PORT); + } + }); + +}); diff --git a/arduino-ide-extension/src/test/node/cli-config.test.ts b/arduino-ide-extension/src/test/node/cli-config.test.ts new file mode 100644 index 00000000..c3350a70 --- /dev/null +++ b/arduino-ide-extension/src/test/node/cli-config.test.ts @@ -0,0 +1,44 @@ +import { expect } from 'chai'; +import { DefaultCliConfig } from '../../node/cli-config'; + +describe('cli-config', () => { + + type ConfigProvider = DefaultCliConfig | { (): DefaultCliConfig } + + ([ + [defaultConfig, defaultConfig, true], + [() => { + const conf = defaultConfig(); + delete conf.board_manager + return conf + }, defaultConfig, true], + [() => { + const conf = defaultConfig(); + (conf.daemon as any).port = String(conf.daemon.port); + return conf + }, defaultConfig, true], + ] as [ConfigProvider, ConfigProvider, boolean][]).forEach(([leftInput, rightInput, expectation]) => { + const left = typeof leftInput === 'function' ? leftInput() : leftInput; + const right = typeof rightInput === 'function' ? rightInput() : rightInput; + it(`${JSON.stringify(left)} should ${expectation ? '' : 'not '}be the same as ${JSON.stringify(right)}`, () => { + expect(DefaultCliConfig.sameAs(left, right)).to.be.equal(expectation); + }); + }); + + function defaultConfig(): DefaultCliConfig { + return { + board_manager: { + additional_urls: [] + }, + daemon: { + port: 5000 + }, + directories: { + data: 'data', + downloads: 'downloads', + user: 'user' + } + } + } + +}); diff --git a/arduino-ide-extension/src/test/node/config-file-validator.test.ts b/arduino-ide-extension/src/test/node/config-file-validator.test.ts new file mode 100644 index 00000000..daf09554 --- /dev/null +++ b/arduino-ide-extension/src/test/node/config-file-validator.test.ts @@ -0,0 +1,78 @@ +import { expect } from 'chai' +import { safeLoad } from 'js-yaml'; +import { ArduinoDaemonImpl } from '../../node/arduino-daemon-impl'; +import { ConfigFileValidator } from '../../node/config-file-validator'; +import { spawnCommand } from '../../node/exec-util'; + +class MockConfigFileValidator extends ConfigFileValidator { + + protected async isValidPath(path: string): Promise { + if (path.endsWith('!invalid')) { + return false; + } + return super.isValidPath(path); + } + +} + +describe('config-file-validator', () => { + + const testMe = new MockConfigFileValidator(); + + it('valid - default', async () => { + const config = await defaultConfig(); + const result = await testMe.validate(config); + // tslint:disable-next-line:no-unused-expression + expect(result).to.be.true; + }); + + it("valid - no 'board_manager'", async () => { + const config = await defaultConfig(); + delete config.board_manager; + const result = await testMe.validate(config); + // tslint:disable-next-line:no-unused-expression + expect(result).to.be.true; + }); + + it("valid - no 'board_manager.additional_urls'", async () => { + const config = await defaultConfig(); + delete config.board_manager.additional_urls; + const result = await testMe.validate(config); + // tslint:disable-next-line:no-unused-expression + expect(result).to.be.true; + }); + + it("invalid - no 'directories.data'", async () => { + const config = await defaultConfig(); + delete config.directories.data; + const result = await testMe.validate(config); + // tslint:disable-next-line:no-unused-expression + expect(result).to.be.false; + }); + + it("invalid - 'directories.data' is a empty string", async () => { + const config = await defaultConfig(); + config.directories.data = ''; + const result = await testMe.validate(config); + // tslint:disable-next-line:no-unused-expression + expect(result).to.be.false; + }); + + it("invalid - 'directories.data' is contains invalid chars", async () => { + const config = await defaultConfig(); + config.directories.data = '!invalid'; + const result = await testMe.validate(config); + // tslint:disable-next-line:no-unused-expression + expect(result).to.be.false; + }); + + async function defaultConfig(): Promise { + return new Promise(resolve => { + new ArduinoDaemonImpl().getExecPath() + .then(execPath => spawnCommand(execPath, ['config', 'dump'])) + .then(content => safeLoad(content)) + .then(config => resolve(config)); + }); + } + +}) diff --git a/arduino-ide-extension/src/test/node/exec-util.test.ts b/arduino-ide-extension/src/test/node/exec-util.test.ts new file mode 100644 index 00000000..37c9455c --- /dev/null +++ b/arduino-ide-extension/src/test/node/exec-util.test.ts @@ -0,0 +1,31 @@ +import * as os from 'os'; +import { expect, use } from 'chai'; +import { getExecPath } from '../../node/exec-util' + +use(require('chai-string')); + +describe('getExecPath', () => { + + it('should resolve arduino-cli', async () => { + const actual = await getExecPath('arduino-cli', onError, 'version'); + const expected = os.platform() === 'win32' ? '\\arduino-cli.exe' : '/arduino-cli'; + expect(actual).to.endsWith(expected); + }); + + it('should resolve arduino-language-server', async () => { + const actual = await getExecPath('arduino-language-server'); + const expected = os.platform() === 'win32' ? '\\arduino-language-server.exe' : '/arduino-language-server'; + expect(actual).to.endsWith(expected); + }); + + it('should resolve clangd', async () => { + const actual = await getExecPath('clangd', onError, '--version', os.platform() !== 'win32'); + const expected = os.platform() === 'win32' ? '\\clangd.exe' : '/clangd'; + expect(actual).to.endsWith(expected); + }); + + function onError(error: Error): void { + console.error(error); + } + +}); diff --git a/arduino-ide-extension/test/node/exec-util.test.ts b/arduino-ide-extension/test/node/exec-util.test.ts deleted file mode 100644 index 99c86f22..00000000 --- a/arduino-ide-extension/test/node/exec-util.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import * as os from 'os'; -import { expect, use } from 'chai'; -import { NullLogger } from './logger'; -import { getExecPath } from '../../lib/node/exec-util' - -use(require('chai-string')); - -describe('getExecPath', () => { - it('should resolve arduino-cli', async () => { - const path = await getExecPath('arduino-cli', new NullLogger(), 'version'); - if (os.platform() === 'win32') - expect(path).to.endsWith('\\arduino-cli.exe'); - else - expect(path).to.endsWith('/arduino-cli'); - }); - - it('should resolve arduino-language-server', async () => { - const path = await getExecPath('arduino-language-server', new NullLogger()); - if (os.platform() === 'win32') - expect(path).to.endsWith('\\arduino-language-server.exe'); - else - expect(path).to.endsWith('/arduino-language-server'); - }); - - it('should resolve clangd', async () => { - const path = await getExecPath('clangd', new NullLogger(), '--version', os.platform() !== 'win32'); - if (os.platform() === 'win32') - expect(path).to.endsWith('\\clangd.exe'); - else - expect(path).to.endsWith('/clangd'); - }); -}); diff --git a/arduino-ide-extension/test/node/logger.ts b/arduino-ide-extension/test/node/logger.ts deleted file mode 100644 index 888f914b..00000000 --- a/arduino-ide-extension/test/node/logger.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ILogger, Loggable, LogLevel } from '@theia/core'; - -export class NullLogger implements ILogger { - logLevel = 0; - - setLogLevel(logLevel: number): Promise { - this.logLevel = logLevel; - return Promise.resolve(); - } - getLogLevel(): Promise { - return Promise.resolve(this.logLevel); - } - isEnabled(logLevel: number): Promise { - return Promise.resolve(logLevel >= this.logLevel); - } - ifEnabled(logLevel: number): Promise { - if (logLevel >= this.logLevel) - return Promise.resolve(); - else - return Promise.reject(); - } - log(logLevel: any, loggable: any, ...rest: any[]) { - return Promise.resolve(); - } - - isTrace(): Promise { - return this.isEnabled(LogLevel.TRACE); - } - ifTrace(): Promise { - return this.ifEnabled(LogLevel.TRACE); - } - trace(arg: any | Loggable, ...params: any[]): Promise { - return this.log(LogLevel.TRACE, arg, ...params); - } - - isDebug(): Promise { - return this.isEnabled(LogLevel.DEBUG); - } - ifDebug(): Promise { - return this.ifEnabled(LogLevel.DEBUG); - } - debug(arg: any | Loggable, ...params: any[]): Promise { - return this.log(LogLevel.DEBUG, arg, ...params); - } - - isInfo(): Promise { - return this.isEnabled(LogLevel.INFO); - } - ifInfo(): Promise { - return this.ifEnabled(LogLevel.INFO); - } - info(arg: any | Loggable, ...params: any[]): Promise { - return this.log(LogLevel.INFO, arg, ...params); - } - - isWarn(): Promise { - return this.isEnabled(LogLevel.WARN); - } - ifWarn(): Promise { - return this.ifEnabled(LogLevel.WARN); - } - warn(arg: any | Loggable, ...params: any[]): Promise { - return this.log(LogLevel.WARN, arg, ...params); - } - - isError(): Promise { - return this.isEnabled(LogLevel.ERROR); - } - ifError(): Promise { - return this.ifEnabled(LogLevel.ERROR); - } - error(arg: any | Loggable, ...params: any[]): Promise { - return this.log(LogLevel.ERROR, arg, ...params); - } - - isFatal(): Promise { - return this.isEnabled(LogLevel.FATAL); - } - ifFatal(): Promise { - return this.ifEnabled(LogLevel.FATAL); - } - fatal(arg: any | Loggable, ...params: any[]): Promise { - return this.log(LogLevel.FATAL, arg, ...params); - } - - child(name: string): ILogger { - return this; - } -} diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 63556990..432092b9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -45,16 +45,9 @@ jobs: RELEASE_TAG: $(Release.Tag) condition: or(in(variables['Agent.OS'], 'Windows_NT'), in(variables['Build.Reason'], 'Manual', 'Schedule')) displayName: Package - - bash: | - export ARDUINO_POC_NAME=$(./electron/packager/cli name) - echo "##vso[task.setvariable variable=ArduinoPoC.AppName]$ARDUINO_POC_NAME" - env: - RELEASE_TAG: $(Release.Tag) - condition: or(in(variables['Agent.OS'], 'Windows_NT'), in(variables['Build.Reason'], 'Manual', 'Schedule')) - displayName: '[Config] Use - ARDUINO_POC_NAME env' - task: PublishBuildArtifacts@1 inputs: - pathtoPublish: electron/build/dist/$(ArduinoPoC.AppName) + pathtoPublish: electron/build/dist/build-artifacts artifactName: 'Arduino Pro IDE - Applications' condition: or(in(variables['Agent.OS'], 'Windows_NT'), in(variables['Build.Reason'], 'Manual', 'Schedule')) displayName: Publish @@ -77,7 +70,7 @@ jobs: assets: | gh-release/Arduino Pro IDE - Applications/*.zip gh-release/Arduino Pro IDE - Applications/*.dmg - gh-release/Arduino Pro IDE - Applications/*.tar.xz + gh-release/Arduino Pro IDE - Applications/*.AppImage target: $(Build.SourceVersion) action: Edit tagSource: auto diff --git a/browser-app/package.json b/browser-app/package.json index ad5c50dc..6987522e 100644 --- a/browser-app/package.json +++ b/browser-app/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "browser-app", - "version": "0.0.5", + "version": "0.0.6", "license": "MIT", "dependencies": { "@theia/core": "next", @@ -14,20 +14,21 @@ "@theia/messages": "next", "@theia/monaco": "next", "@theia/navigator": "next", + "@theia/plugin-ext": "next", + "@theia/plugin-ext-vscode": "next", "@theia/preferences": "next", "@theia/process": "next", "@theia/terminal": "next", "@theia/workspace": "next", - "@theia/textmate-grammars": "next", - "arduino-ide-extension": "0.0.5", - "arduino-debugger-extension": "0.0.5" + "arduino-ide-extension": "0.0.6", + "arduino-debugger-extension": "0.0.6" }, "devDependencies": { "@theia/cli": "next" }, "scripts": { "prepare": "theia build --mode development", - "start": "theia start --plugins=local-dir:../", + "start": "theia start --plugins=local-dir:../plugins", "watch": "theia build --watch --mode development" }, "theia": { diff --git a/electron-app/package.json b/electron-app/package.json index eb1d9f00..5a07ce78 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -1,8 +1,9 @@ { "private": true, "name": "electron-app", - "version": "0.0.5", + "version": "0.0.6", "license": "MIT", + "main": "src-gen/frontend/electron-main.js", "dependencies": { "@theia/core": "next", "@theia/cpp": "next", @@ -15,20 +16,21 @@ "@theia/messages": "next", "@theia/monaco": "next", "@theia/navigator": "next", + "@theia/plugin-ext": "next", + "@theia/plugin-ext-vscode": "next", "@theia/preferences": "next", "@theia/process": "next", "@theia/terminal": "next", "@theia/workspace": "next", - "@theia/textmate-grammars": "next", - "arduino-ide-extension": "0.0.5", - "arduino-debugger-extension": "0.0.5" + "arduino-ide-extension": "0.0.6", + "arduino-debugger-extension": "0.0.6" }, "devDependencies": { "@theia/cli": "next" }, "scripts": { "prepare": "theia build --mode development", - "start": "theia start", + "start": "theia start --plugins=local-dir:../plugins", "watch": "theia build --watch --mode development" }, "theia": { diff --git a/electron/build/resources/icons/512x512.png b/electron/build/resources/icons/512x512.png new file mode 100644 index 00000000..2adb8d4b Binary files /dev/null and b/electron/build/resources/icons/512x512.png differ diff --git a/electron/build/scripts/arduino-pro-ide-electron-main.js b/electron/build/scripts/arduino-pro-ide-electron-main.js new file mode 100644 index 00000000..3ce5a1ba --- /dev/null +++ b/electron/build/scripts/arduino-pro-ide-electron-main.js @@ -0,0 +1,13 @@ +const os = require('os'); +const path = require('path'); + +// To be able to propagate the `process.versions.electron` to the backend main, so that we can load natives correctly. +process.env.THEIA_ELECTRON_VERSION = process.versions.electron; + +process.env.THEIA_DEFAULT_PLUGINS = `local-dir:${path.resolve(__dirname, '..', 'plugins')}`; +process.env.THEIA_PLUGINS = [ + process.env.THEIA_PLUGINS, + `local-dir:${path.resolve(os.homedir(), '.arduinoProIDE', 'plugins')}` +].filter(Boolean).join(','); + +require('../src-gen/frontend/electron-main.js'); diff --git a/electron/build/scripts/patch-backend-main.js b/electron/build/scripts/patch-backend-main.js new file mode 100644 index 00000000..b299d4a8 --- /dev/null +++ b/electron/build/scripts/patch-backend-main.js @@ -0,0 +1,57 @@ +//@ts-check +// Patches the `src-gen/backend/main.js` so that the forked backend process has the `process.versions.electron` in the bundled electron app. +// https://github.com/eclipse-theia/theia/issues/7358#issue-583306096 + +const args = process.argv.slice(2); +if (!args.length) { + console.error(`Expected an argument pointing to the app folder. An app folder is where you have the package.json and src-gen folder.`); + process.exit(1); +} +if (args.length > 1) { + console.error(`Expected exactly one argument pointing to the app folder. Got multiple instead: ${JSON.stringify(args)}`); + process.exit(1); +} +const arg = args.shift(); +if (!arg) { + console.error('App path was not specified.'); + process.exit(1); +} + +const fs = require('fs'); +const path = require('path'); +const appPath = path.resolve((path.isAbsolute(arg) ? path.join(process.cwd(), arg) : arg)); +if (!fs.existsSync(appPath)) { + console.error(`${appPath} does not exist.`); + process.exit(1); +} + +if (!fs.lstatSync(appPath).isDirectory()) { + console.error(`${appPath} is not a directory.`); + process.exit(1); +} + +const patched = path.join(appPath, 'src-gen', 'backend', 'original-main.js'); +if (fs.existsSync(patched)) { + console.error(`Already patched. ${patched} already exists.`); + process.exit(1); +} + +const toPatch = path.join(appPath, 'src-gen', 'backend', 'main.js'); +if (fs.existsSync(patched)) { + console.error(`Cannot patch. ${toPatch} does not exist.`); + process.exit(1); +} + +console.log(`⏱️ >>> Patching ${toPatch}...`); + +const originalContent = fs.readFileSync(toPatch, { encoding: 'utf8' }); +const patchedContent = `if (typeof process.versions.electron === 'undefined' && typeof process.env.THEIA_ELECTRON_VERSION === 'string') { + process.versions.electron = process.env.THEIA_ELECTRON_VERSION; +} +require('./original-main'); +` + +fs.writeFileSync(patched, originalContent); +fs.writeFileSync(toPatch, patchedContent); + +console.log(`👌 <<< Patched ${toPatch}. Original 'main.js' is now at ${patched}.`); diff --git a/electron/build/template-package.json b/electron/build/template-package.json index 03a7ddf1..48f957b9 100644 --- a/electron/build/template-package.json +++ b/electron/build/template-package.json @@ -1,7 +1,7 @@ { "name": "arduino-pro-ide", "description": "Arduino Pro IDE", - "main": "src-gen/frontend/electron-main.js", + "main": "scripts/arduino-pro-ide-electron-main.js", "author": "Arduino SA", "dependencies": { "arduino-ide-extension": "file:../working-copy/arduino-ide-extension", @@ -11,16 +11,18 @@ "**/fs-extra": "^4.0.3" }, "devDependencies": { - "electron-builder": "^21.2.0" + "@theia/cli": "next", + "electron-builder": "^22.4.1" }, "scripts": { - "build": "theia build --mode development", - "build:release": "theia build --mode development", + "build": "yarn download:plugins && theia build --mode development && yarn patch:main", + "build:release": "yarn download:plugins && theia build --mode production && yarn patch:main", "package": "electron-builder --publish=never", - "package:preview": "electron-builder --dir" + "download:plugins": "theia download:plugins", + "patch:main": "node ./scripts/patch-backend-main ." }, "engines": { - "node": ">=10.10.0" + "node": ">=10.11.0 <12" }, "repository": { "type": "git", @@ -45,8 +47,9 @@ "buildResources": "resources" }, "files": [ - "src-gen/**/*", - "lib/**/*", + "src-gen", + "lib", + "scripts", "!node_modules/**/*.{ts,map}", "!node_modules/**/*.spec.js", "!node_modules/@theia/**/test/*", @@ -56,6 +59,12 @@ "!node_modules/oniguruma/*", "!node_modules/onigasm/*" ], + "extraResources": [ + { + "from": "plugins", + "to": "app/plugins" + } + ], "win": { "target": [ "zip" @@ -71,9 +80,17 @@ }, "linux": { "target": [ - "zip" + { + "target": "zip" + }, + { + "target": "AppImage", + "arch": "armv7l" + } ], - "artifactName": "${productName}-${env.ARDUINO_VERSION}-${os}.${ext}" + "category": "Development", + "icon": "resources/icons", + "artifactName": "${productName}-${env.ARDUINO_VERSION}-${os}-${arch}.${ext}" }, "dmg": { "icon": "resources/icon.icns", @@ -92,5 +109,9 @@ } ] } + }, + "theiaPluginsDir": "plugins", + "theiaPlugins": { + "vscode-yaml": "https://github.com/redhat-developer/vscode-yaml/releases/download/0.7.2/redhat.vscode-yaml-0.7.2.vsix" } } diff --git a/electron/packager/cli b/electron/packager/cli deleted file mode 100755 index 684277e4..00000000 --- a/electron/packager/cli +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env node -// @ts-check -const { versionInfo } = require('./utils'); -const yargs = require('yargs'); - -(() => { - yargs - .command({ - command: 'name', - describe: 'Returns with the application name we build. The name includes the full application name with the version, the platform and the file extension.', - handler: () => { - const { platform } = process; - let ext = undefined; - let os = undefined; - if (platform === 'darwin') { - ext = 'dmg'; - os = 'mac'; - } else if (platform === 'win32') { - ext = 'zip'; - os = 'win'; - } else if (platform === 'linux') { - ext = 'zip'; - os = 'linux'; - } else { - process.stderr.write(`Unexpected platform: ${platform}.`); - process.exit(1); - } - process.stdout.write(`Arduino Pro IDE-${versionInfo().version}-${os}.${ext}`); - process.exit(0); - } - }) - .demandCommand(1) - .argv; -})(); diff --git a/electron/packager/index.js b/electron/packager/index.js index 55f1dcec..e9ddeac6 100644 --- a/electron/packager/index.js +++ b/electron/packager/index.js @@ -5,6 +5,8 @@ const fs = require('fs'); const join = require('path').join; const shell = require('shelljs'); + const glob = require('glob'); + const isCI = require('is-ci'); shell.env.THEIA_ELECTRON_SKIP_REPLACE_FFMPEG = '1'; // Do not run the ffmpeg validation for the packager. shell.env.NODE_OPTIONS = '--max_old_space_size=4096'; // Increase heap size for the CI const utils = require('./utils'); @@ -72,13 +74,13 @@ // We have to do it before changing the dependencies to `local-path`. const unusedDependencies = await utils.collectUnusedDependencies('../working-copy/electron-app/'); - //-------------------------------------------------------------------------------------------------------------+ - // Change the regular NPM dependencies to `local-paths`, so that we can build them without any NPM registries. | - //-------------------------------------------------------------------------------------------------------------+ - // @ts-ignore - pkg = require('../working-copy/arduino-debugger-extension/package.json'); - pkg.dependencies['arduino-ide-extension'] = 'file:../arduino-ide-extension'; - fs.writeFileSync(path('..', workingCopy, 'arduino-debugger-extension', 'package.json'), JSON.stringify(pkg, null, 2)); + //-------------------------------------------------------------------------------------------------------------+ + // Change the regular NPM dependencies to `local-paths`, so that we can build them without any NPM registries. | + //-------------------------------------------------------------------------------------------------------------+ + // @ts-ignore + pkg = require('../working-copy/arduino-debugger-extension/package.json'); + pkg.dependencies['arduino-ide-extension'] = 'file:../arduino-ide-extension'; + fs.writeFileSync(path('..', workingCopy, 'arduino-debugger-extension', 'package.json'), JSON.stringify(pkg, null, 2)); //------------------------------------------------------------------------------------+ // Merge the `working-copy/package.json` with `electron/build/template-package.json`. | @@ -138,6 +140,18 @@ ${fs.readFileSync(path('..', 'build', 'package.json')).toString()} // Package the electron application. | //-----------------------------------+ exec(`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} package`, `Packaging your Arduino Pro IDE application`); + + //-----------------------------------------------------------------------------------------------------+ + // Copy to another folder. Azure does not support wildcard for `PublishBuildArtifacts@1.pathToPublish` | + //-----------------------------------------------------------------------------------------------------+ + if (isCI) { + try { + await copyFilesToBuildArtifacts(); + } catch (e) { + echo(JSON.stringify(e)); + shell.exit(1); + } + } echo(`🎉 Success. Your application is at: ${path('..', 'build', 'dist')}`); restore(); @@ -201,6 +215,47 @@ ${fs.readFileSync(path('..', 'build', 'package.json')).toString()} } } + async function copyFilesToBuildArtifacts() { + echo(`🚢 Detected CI, moving build artifacts...`); + const { platform } = process; + const cwd = path('..', 'build', 'dist'); + const targetFolder = path('..', 'build', 'dist', 'build-artifacts'); + mkdir('-p', targetFolder); + const filesToCopy = []; + switch (platform) { + case 'linux': { + filesToCopy.push(...glob.sync('**/Arduino Pro IDE*.{zip,AppImage}', { cwd }).map(p => join(cwd, p))); + break; + } + case 'win32': { + filesToCopy.push(...glob.sync('**/Arduino Pro IDE*.zip', { cwd }).map(p => join(cwd, p))); + break; + } + case 'darwin': { + filesToCopy.push(...glob.sync('**/Arduino Pro IDE*.dmg', { cwd }).map(p => join(cwd, p))); + break; + } + default: { + echo(`Unsupported platform: ${platform}.`); + shell.exit(1); + } + } + if (!filesToCopy.length) { + echo(`Could not collect any build artifacts from ${cwd}.`); + shell.exit(1); + } + for (const fileToCopy of filesToCopy) { + echo(`🚢 >>> Copying ${fileToCopy} to ${targetFolder}.`); + const isZip = await utils.isZip(fileToCopy); + if (isZip) { + await utils.adjustArchiveStructure(fileToCopy, targetFolder); + } else { + cp('-rf', fileToCopy, targetFolder); + } + echo(`👌 >>> Copied ${fileToCopy} to ${targetFolder}.`); + } + } + /** * Joins tha path from `__dirname`. */ diff --git a/electron/packager/package.json b/electron/packager/package.json index a122eb5d..37f105a7 100644 --- a/electron/packager/package.json +++ b/electron/packager/package.json @@ -5,19 +5,36 @@ "description": "Packager for the Arduino Pro IDE electron application", "main": "index.js", "scripts": { + "prepare": "yarn test", "package": "node index.js", - "cli": "./cli" + "test": "mocha \"./test/**/*.test.js\"" }, "keywords": [], "author": "Arduino SA", "license": "MIT", "dependencies": { - "deepmerge": "4.2.2", - "depcheck": "^0.7.1", + "@types/file-type": "^10.9.1", + "@types/temp": "^0.8.32", + "7zip-min": "^1.1.1", + "chai": "^4.2.0", + "deepmerge": "^4.2.2", + "depcheck": "^0.9.2", + "file-type": "^14.1.4", + "glob": "^7.1.6", + "is-ci": "^2.0.0", + "mocha": "^7.1.1", + "sinon": "^9.0.1", "shelljs": "^0.8.3", + "temp": "^0.9.1", "yargs": "^12.0.5" }, "engines": { - "node": ">=8.12.0" + "node": ">=10.11.0 <12" + }, + "mocha": { + "reporter": "spec", + "colors": true, + "watch-extensions": "js", + "timeout": 10000 } } diff --git a/electron/packager/test/resources/not-a-zip.dmg b/electron/packager/test/resources/not-a-zip.dmg new file mode 100644 index 00000000..a0b7a61d Binary files /dev/null and b/electron/packager/test/resources/not-a-zip.dmg differ diff --git a/electron/packager/test/resources/zip with whitespace.zip b/electron/packager/test/resources/zip with whitespace.zip new file mode 100644 index 00000000..24f7680a Binary files /dev/null and b/electron/packager/test/resources/zip with whitespace.zip differ diff --git a/electron/packager/test/resources/zip-with-base-folder.zip b/electron/packager/test/resources/zip-with-base-folder.zip new file mode 100644 index 00000000..b5f71f91 Binary files /dev/null and b/electron/packager/test/resources/zip-with-base-folder.zip differ diff --git a/electron/packager/test/resources/zip-with-symlink.zip b/electron/packager/test/resources/zip-with-symlink.zip new file mode 100644 index 00000000..259dba4a Binary files /dev/null and b/electron/packager/test/resources/zip-with-symlink.zip differ diff --git a/electron/packager/test/resources/zip-without-symlink.zip b/electron/packager/test/resources/zip-without-symlink.zip new file mode 100644 index 00000000..24f7680a Binary files /dev/null and b/electron/packager/test/resources/zip-without-symlink.zip differ diff --git a/electron/packager/test/utils.test.js b/electron/packager/test/utils.test.js new file mode 100644 index 00000000..b2467b38 --- /dev/null +++ b/electron/packager/test/utils.test.js @@ -0,0 +1,119 @@ +const fs = require('fs'); +const path = require('path'); +const expect = require('chai').expect; +const track = require('temp').track(); +const unpack = require('../utils').unpack; +const testMe = require('../utils'); +const sinon = require('sinon'); + +describe('utils', () => { + + describe('adjustArchiveStructure', () => { + + let consoleStub; + + beforeEach(() => { + consoleStub = sinon.stub(console, 'log').value(() => { }); + }); + + afterEach(() => { + consoleStub.reset(); + track.cleanupSync(); + }); + + it('should reject when not a zip file', async () => { + try { + const invalid = path.join(__dirname, 'resources', 'not-a-zip.dmg'); + await testMe.adjustArchiveStructure(invalid, track.mkdirSync()); + throw new Error('Expected a rejection'); + } catch (e) { + expect(e).to.be.an.instanceOf(Error); + expect(e.message).to.be.equal('Expected a ZIP file.'); + } + }); + + it('should reject when target directory does not exist', async () => { + try { + const zip = path.join(__dirname, 'resources', 'zip-with-base-folder.zip'); + await testMe.adjustArchiveStructure(zip, path.join(__dirname, 'some', 'missing', 'path')); + throw new Error('Expected a rejection'); + } catch (e) { + expect(e).to.be.an.instanceOf(Error); + expect(e.message.endsWith('does not exist.')).to.be.true; + } + }); + + it('should reject when target is a file', async () => { + try { + const zip = path.join(__dirname, 'resources', 'zip-with-base-folder.zip'); + await testMe.adjustArchiveStructure(zip, path.join(__filename)); + throw new Error('Expected a rejection'); + } catch (e) { + expect(e).to.be.an.instanceOf(Error); + expect(e.message.endsWith('is not a directory.')).to.be.true; + } + }); + + it('should be a NOOP when the zip already has the desired base folder', async () => { + const zip = path.join(__dirname, 'resources', 'zip-with-base-folder.zip'); + const actual = await testMe.adjustArchiveStructure(zip, track.mkdirSync()); + expect(actual).to.be.equal(zip); + }); + + it('should handle whitespace in file path gracefully', async () => { + const zip = path.join(__dirname, 'resources', 'zip with whitespace.zip'); + const out = track.mkdirSync(); + const actual = await testMe.adjustArchiveStructure(zip, out, true); + expect(actual).to.be.equal(path.join(out, 'zip with whitespace.zip')); + console.log(actual); + expect(fs.existsSync(actual)).to.be.true; + + const verifyOut = track.mkdirSync(); + await unpack(actual, verifyOut); + + const root = path.join(verifyOut, 'zip with whitespace'); + expect(fs.existsSync(root)).to.be.true; + expect(fs.lstatSync(root).isDirectory()).to.be.true; + const subs = fs.readdirSync(root); + expect(subs).to.have.lengthOf(3); + expect(subs.sort()).to.be.deep.equal(['a.txt', 'b.txt', 'foo']); + }); + + it('should keep the symlinks after ZIP adjustments', async function () { + if (process.platform === 'win32') { + this.skip(); + } + const zip = path.join(__dirname, 'resources', 'zip-with-symlink.zip'); + const out = track.mkdirSync(); + const actual = await testMe.adjustArchiveStructure(zip, out, true); + expect(actual).to.be.equal(path.join(out, 'zip-with-symlink.zip')); + console.log(actual); + expect(fs.existsSync(actual)).to.be.true; + + const verifyOut = track.mkdirSync(); + await unpack(actual, verifyOut); + expect(fs.lstatSync(path.join(verifyOut, 'zip-with-symlink', 'folder', 'symlinked-sub')).isSymbolicLink()).to.be.true; + }); + + it('should adjust the archive structure if base folder is not present', async () => { + const zip = path.join(__dirname, 'resources', 'zip-without-symlink.zip'); + const out = track.mkdirSync(); + const actual = await testMe.adjustArchiveStructure(zip, out, true); + expect(actual).to.be.equal(path.join(out, 'zip-without-symlink.zip')); + console.log(actual); + expect(fs.existsSync(actual)).to.be.true; + + const verifyOut = track.mkdirSync(); + await unpack(actual, verifyOut); + + const root = path.join(verifyOut, 'zip-without-symlink'); + expect(fs.existsSync(root)).to.be.true; + expect(fs.lstatSync(root).isDirectory()).to.be.true; + const subs = fs.readdirSync(root); + expect(subs).to.have.lengthOf(3); + expect(subs.sort()).to.be.deep.equal(['a.txt', 'b.txt', 'foo']); + }); + + }); + +}); diff --git a/electron/packager/utils.js b/electron/packager/utils.js index ac534b4b..cb82f621 100644 --- a/electron/packager/utils.js +++ b/electron/packager/utils.js @@ -2,8 +2,11 @@ const fs = require('fs'); const path = require('path'); +const temp = require('temp'); +const zip = require('7zip-min'); const shell = require('shelljs'); const depcheck = require('depcheck'); +const fromFile = require('file-type').fromFile; /** * Returns with the version info for the artifact. @@ -67,7 +70,7 @@ function currentCommitish() { */ function collectUnusedDependencies(pathToProject = process.cwd()) { const p = path.isAbsolute(pathToProject) ? pathToProject : path.resolve(process.cwd(), pathToProject); - console.log(`⏱️ >>> Collecting unused backend dependencies for ${p}.`); + console.log(`⏱️ >>> Collecting unused backend dependencies for ${p}...`); return new Promise(resolve => { depcheck(p, { ignoreDirs: [ @@ -97,4 +100,108 @@ function collectUnusedDependencies(pathToProject = process.cwd()) { }) } -module.exports = { versionInfo, collectUnusedDependencies }; +/** + * `pathToZip` is a `path/to/your/app-name.zip`. + * If the `pathToZip` archive does not have a root directory with name `app-name`, it creates one, and move the content from the + * archive's root to the new root folder. If the archive already has the desired root folder, calling this function is a NOOP. + * If `pathToZip` is not a ZIP, rejects. `targetFolderName` is the destination folder not the new archive location. + */ +function adjustArchiveStructure(pathToZip, targetFolderName, noCleanup) { + return new Promise(async (resolve, reject) => { + if (!await isZip(pathToZip)) { + reject(new Error(`Expected a ZIP file.`)); + return; + } + if (!fs.existsSync(targetFolderName)) { + reject(new Error(`${targetFolderName} does not exist.`)); + return; + } + if (!fs.lstatSync(targetFolderName).isDirectory()) { + reject(new Error(`${targetFolderName} is not a directory.`)); + return; + } + console.log(`⏱️ >>> Adjusting ZIP structure ${pathToZip}...`); + + const root = basename(pathToZip); + const resources = await list(pathToZip); + const hasBaseFolder = resources.find(name => name === root); + if (hasBaseFolder) { + if (resources.filter(name => name.indexOf(path.sep) === -1).length > 1) { + console.warn(`${pathToZip} ZIP has the desired root folder ${root}, however the ZIP contains other entries too: ${JSON.stringify(resources)}`); + } + console.log(`👌 <<< The ZIP already has the desired ${root} folder.`); + resolve(pathToZip); + return; + } + + const track = temp.track(); + try { + const unzipOut = path.join(track.mkdirSync(), root); + fs.mkdirSync(unzipOut); + await unpack(pathToZip, unzipOut); + const adjustedZip = path.join(targetFolderName, path.basename(pathToZip)); + await pack(unzipOut, adjustedZip); + console.log(`👌 <<< Adjusted the ZIP structure. Moved the modified ${basename(pathToZip)} to the ${targetFolderName} folder.`); + resolve(adjustedZip); + } finally { + if (!noCleanup) { + track.cleanupSync(); + } + } + }); +} + +/** + * Returns the `basename` of `pathToFile` without the file extension. + */ +function basename(pathToFile) { + const name = path.basename(pathToFile); + const ext = path.extname(pathToFile); + return name.substr(0, name.length - ext.length); +} + +function unpack(what, where) { + return new Promise((resolve, reject) => { + zip.unpack(what, where, error => { + if (error) { + reject(error); + return; + } + resolve(); + }) + }); +} + +function pack(what, where) { + return new Promise((resolve, reject) => { + zip.pack(what, where, error => { + if (error) { + reject(error); + return; + } + resolve(); + }) + }); +} + +function list(what) { + return new Promise((resolve, reject) => { + zip.list(what, (error, result) => { + if (error) { + reject(error); + return; + } + resolve(result.map(({ name }) => name)); + }) + }); +} + +async function isZip(pathToFile) { + if (!fs.existsSync(pathToFile)) { + throw new Error(`${pathToFile} does not exist`); + } + const type = await fromFile(pathToFile); + return type && type.ext === 'zip'; +} + +module.exports = { versionInfo, collectUnusedDependencies, adjustArchiveStructure, isZip, unpack }; diff --git a/electron/packager/yarn.lock b/electron/packager/yarn.lock index f1edcd1c..b0c87f2e 100644 --- a/electron/packager/yarn.lock +++ b/electron/packager/yarn.lock @@ -2,6 +2,18 @@ # yarn lockfile v1 +"7zip-bin@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" + integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== + +"7zip-min@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/7zip-min/-/7zip-min-1.1.1.tgz#96903ea587aa09376843d254a6bea9df107a8aab" + integrity sha512-GPTk3xycxB0NjRM1SKAUL7TWXjgFAyzwXkamkk5YgSLd6OneeWBw+fxULctrVr4XqPBBh+LyqpHlyj9ryfpqoQ== + dependencies: + "7zip-bin" "^5.0.3" + "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" @@ -9,12 +21,12 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/generator@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== +"@babel/generator@^7.9.0": + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.3.tgz#7c8b2956c6f68b3ab732bd16305916fbba521d94" + integrity sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.9.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -42,6 +54,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" + integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== + "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" @@ -51,7 +68,12 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.3.1", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4": +"@babel/parser@^7.7.7", "@babel/parser@^7.9.0": + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.3.tgz#043a5fc2ad8b7ea9facddc4e802a1f0f25da7255" + integrity sha512-E6SpIDJZ0cZAKoCNk+qSDd0ChfTnpiJN9FfNf3RZ20dzwA2vL2oq5IX1XTVT+4vDmRlta2nGk5HGMMskJAR+4A== + +"@babel/parser@^7.8.3": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== @@ -65,17 +87,17 @@ "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/traverse@^7.2.3": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== +"@babel/traverse@^7.7.4": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" + integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" + "@babel/generator" "^7.9.0" "@babel/helper-function-name" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" @@ -89,6 +111,90 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" + integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" + integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/formatio@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-5.0.1.tgz#f13e713cb3313b1ab965901b01b0828ea6b77089" + integrity sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ== + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^5.0.2" + +"@sinonjs/samsam@^5.0.2", "@sinonjs/samsam@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.0.3.tgz#86f21bdb3d52480faf0892a480c9906aa5a52938" + integrity sha512-QucHkc2uMJ0pFGjJUDP3F9dq5dx8QIaqISl9QgwLOh6P9yv877uONPGXh/OH/0zmM3tW1JjuJltAZV2l7zU+uQ== + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== + +"@tokenizer/token@^0.1.0", "@tokenizer/token@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3" + integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w== + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + +"@types/file-type@^10.9.1": + version "10.9.1" + resolved "https://registry.yarnpkg.com/@types/file-type/-/file-type-10.9.1.tgz#fc9a6b38697777eca346dba914fdea4b38e04b97" + integrity sha512-oq0fy8Jqj19HofanFsZ56o5anMDUQtFO9B3wfLqM9o42RyCe1WT+wRbSvRbL2l8ARZXNaJturHk0b442+0yi+g== + dependencies: + file-type "*" + +"@types/node@*": + version "13.9.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz#6356df2647de9eac569f9a52eda3480fa9e70b4d" + integrity sha512-01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA== + +"@types/temp@^0.8.32": + version "0.8.34" + resolved "https://registry.yarnpkg.com/@types/temp/-/temp-0.8.34.tgz#03e4b3cb67cbb48c425bbf54b12230fef85540ac" + integrity sha512-oLa9c5LHXgS6UimpEVp08De7QvZ+Dfu5bMQuWyMhf92Z26Q10ubEMOWy9OEfUdzW7Y/sDWVHmUaLFtmnX/2j0w== + dependencies: + "@types/node" "*" + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -99,13 +205,39 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-styles@^3.2.1: +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -113,11 +245,21 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -126,17 +268,60 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + builtin-modules@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== -camelcase@^5.0.0: +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -chalk@^2.0.0: +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -145,6 +330,31 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chokidar@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.2.0" + optionalDependencies: + fsevents "~2.1.1" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -154,6 +364,24 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -166,16 +394,38 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -187,7 +437,19 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -debug@^4.1.0: +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug@3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -199,41 +461,73 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -deepmerge@4.2.2: +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -depcheck@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.7.2.tgz#beb2914f218b5d0902d5d0d292f3109486e4f78f" - integrity sha512-KzwYzptnHrm093lYLKKIlBZ0VBvt135Hh1ADUPo8FhIeAkY/Xmo5NxSgHMXczzx5b3qX+qc2UB73VKaW0YbgZA== +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: - "@babel/parser" "^7.3.1" - "@babel/traverse" "^7.2.3" + object-keys "^1.0.12" + +depcheck@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.9.2.tgz#9e3198b44a527836914c61ba5395479c62ecbaf4" + integrity sha512-w5f+lSZqLJJkk58s44eOd0Vor7hLZot4PlFL0y2JsIX5LuHQ2eAjHlDVeGBD4Mj6ZQSKakvKWRRCcPlvrdU2Sg== + dependencies: + "@babel/parser" "^7.7.7" + "@babel/traverse" "^7.7.4" builtin-modules "^3.0.0" - deprecate "^1.0.0" + camelcase "^5.3.1" + cosmiconfig "^5.2.1" + debug "^4.1.1" deps-regex "^0.1.4" js-yaml "^3.4.2" - lodash "^4.17.11" + lodash "^4.17.15" minimatch "^3.0.2" node-sass-tilde-importer "^1.0.2" - please-upgrade-node "^3.1.1" + please-upgrade-node "^3.2.0" require-package-name "^2.0.1" - resolve "^1.10.0" - walkdir "0.0.12" - yargs "^12.0.1" - -deprecate@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deprecate/-/deprecate-1.1.1.tgz#4632e981fc815eeaf00be945a40359c0f8bf9913" - integrity sha512-ZGDXefq1xknT292LnorMY5s8UVU08/WKdzDZCUT6t9JzsiMSP4uzUhgpqugffNVcT5WC6wMBiSQ+LFjlv3v7iQ== + resolve "^1.14.1" + vue-template-compiler "^2.6.11" + walkdir "^0.4.1" + yargs "^15.0.2" deps-regex@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/deps-regex/-/deps-regex-0.1.4.tgz#518667b7691460a5e7e0a341be76eb7ce8090184" integrity sha1-UYZnt2kUYKXn4KNBvnbrfOgJAYQ= +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -241,7 +535,40 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -escape-string-regexp@^1.0.5: +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0-next.1: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -269,28 +596,80 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +file-type@*, file-type@^14.1.4: + version "14.1.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-14.1.4.tgz#3ac109f2ea9e8f5573d000ec0c6bcdff07fd46de" + integrity sha512-1n6FczX8n73Y/cLjTiMboeTGHfm/i2AWk2oQE7m9a/G5YTCZHCEHEGr32thhLm3iQNUYzTKVQUcYcNHtOLwqgQ== + dependencies: + readable-web-to-node-stream "^2.0.0" + strtok3 "^6.0.0" + token-types "^2.0.0" + typedarray-to-buffer "^3.1.5" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= -find-up@^3.0.0: +find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" + integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + dependencies: + is-buffer "~2.0.3" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -298,7 +677,26 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -glob@^7.0.0: +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -315,11 +713,51 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@1.2.0, he@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +ieee754@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -343,6 +781,50 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -355,11 +837,52 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -370,7 +893,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.4.2: +js-yaml@3.13.1, js-yaml@^3.13.1, js-yaml@^3.4.2: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -383,6 +906,16 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +just-extend@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" + integrity sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA== + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -398,11 +931,30 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash@^4.17.11, lodash@^4.17.13: +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash@^4.17.13, lodash@^4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +log-symbols@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -424,13 +976,60 @@ mimic-fn@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" + integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== + dependencies: + minimist "^1.2.5" + +mocha@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.1.tgz#89fbb30d09429845b1bb893a830bf5771049a441" + integrity sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + chokidar "3.3.0" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "3.0.0" + minimatch "3.0.4" + mkdirp "0.5.3" + ms "2.1.1" + node-environment-flags "1.0.6" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -441,6 +1040,25 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +nise@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nise/-/nise-4.0.3.tgz#9f79ff02fa002ed5ffbc538ad58518fa011dc913" + integrity sha512-EGlhjm7/4KvmmE6B/UFsKh7eHykRl9VH+au8dduHLCyWUO/hr7+N+WtTvDUwc9zHuM1IaIJs/0lQ6Ag1jDkQSg== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^6.0.0" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" + +node-environment-flags@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" + integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + node-sass-tilde-importer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce" @@ -448,6 +1066,11 @@ node-sass-tilde-importer@^1.0.2: dependencies: find-parent-dir "^0.3.0" +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -460,6 +1083,34 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@4.1.0, object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -491,7 +1142,7 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-limit@^2.0.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== @@ -505,16 +1156,36 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -530,7 +1201,29 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -please-upgrade-node@^3.1.1: +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +peek-readable@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.0.tgz#250b08b7de09db8573d7fd8ea475215bbff14348" + integrity sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA== + +picomatch@^2.0.4: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== @@ -545,6 +1238,18 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +readable-web-to-node-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz#751e632f466552ac0d5c440cc01470352f93c4b7" + integrity sha512-+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA== + +readdirp@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== + dependencies: + picomatch "^2.0.4" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -562,24 +1267,41 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + require-package-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" integrity sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk= -resolve@^1.1.6, resolve@^1.10.0: +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve@^1.1.6, resolve@^1.14.1: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -semver@^5.5.0: +semver@^5.5.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -615,6 +1337,19 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +sinon@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.0.1.tgz#dbb18f7d8f5835bcf91578089c0a97b2fffdd73b" + integrity sha512-iTTyiQo5T94jrOx7X7QLBZyucUJ2WvL9J13+96HMfm2CGoJYbIPqRfl6wgNcqmzk0DI28jeGx5bUTXizkrqBmg== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^6.0.0" + "@sinonjs/formatio" "^5.0.1" + "@sinonjs/samsam" "^5.0.3" + diff "^4.0.2" + nise "^4.0.1" + supports-color "^7.1.0" + source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -634,7 +1369,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -642,6 +1377,40 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -656,11 +1425,47 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-json-comments@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strtok3@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.0.0.tgz#d6b900863daeacfe6c1724c6e7bb36d7a58e83c8" + integrity sha512-ZXlmE22LZnIBvEU3n/kZGdh770fYFie65u5+2hLK9s74DoFtpkQIdBZVeYEzlolpGa+52G5IkzjUWn+iXynOEQ== + dependencies: + "@tokenizer/token" "^0.1.1" + "@types/debug" "^4.1.5" + debug "^4.1.1" + peek-readable "^3.1.0" + +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -668,28 +1473,84 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +temp@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.1.tgz#2d666114fafa26966cd4065996d7ceedd4dd4697" + integrity sha512-WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA== + dependencies: + rimraf "~2.6.2" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -walkdir@0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.12.tgz#2f24f1ade64aab1e458591d4442c8868356e9281" - integrity sha512-HFhaD4mMWPzFSqhpyDG48KDdrjfn409YQuVW7ckZYhW4sE87mYtWifdB/+73RA7+p4s4K18n5Jfx1kHthE1gBw== +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +token-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.0.0.tgz#b23618af744818299c6fbf125e0fdad98bab7e85" + integrity sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw== + dependencies: + "@tokenizer/token" "^0.1.0" + ieee754 "^1.1.13" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +vue-template-compiler@^2.6.11: + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" + integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +walkdir@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39" + integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ== which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.9: +which@1.3.1, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -698,16 +1559,42 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -"y18n@^3.2.1 || ^4.0.0": +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -716,7 +1603,40 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^12.0.1, yargs@^12.0.5: +yargs-parser@^18.1.1: + version "18.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.1.tgz#bf7407b915427fc760fcbbccc6c82b4f0ffcbd37" + integrity sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== + dependencies: + flat "^4.1.0" + lodash "^4.17.15" + yargs "^13.3.0" + +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -733,3 +1653,20 @@ yargs@^12.0.1, yargs@^12.0.5: which-module "^2.0.0" y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" + +yargs@^15.0.2: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" diff --git a/known-issues.txt b/known-issues.txt deleted file mode 100644 index adff23e4..00000000 --- a/known-issues.txt +++ /dev/null @@ -1,4 +0,0 @@ -Known issues: - - arduino-cli does not get stopped reliably upon app shutdown - - startup time is not as fast we'd like to have it - - in Electron on OSX, the application menu is incomplete on app startup (see https://github.com/theia-ide/theia/issues/5100) diff --git a/package.json b/package.json index a10bc552..e7fe45c6 100644 --- a/package.json +++ b/package.json @@ -1,27 +1,36 @@ { "name": "arduino-editor", - "version": "0.0.5", + "version": "0.0.6", "description": "Arduino Pro IDE", - "main": "index.js", "repository": "https://github.com/bcmi-labs/arduino-editor.git", "author": "Arduino SA", "license": "MIT", "private": true, "devDependencies": { - "lerna": "^3.13.3" + "@theia/cli": "next", + "lerna": "^3.13.3", + "rimraf": "^2.6.1", + "tslint": "^5.5.0", + "typescript": "3.5.1" }, "scripts": { - "prepare": "lerna run prepare", + "prepare": "lerna run prepare && yarn test && yarn download:plugins", "rebuild:browser": "theia rebuild:browser", - "rebuild:electron": "theia rebuild:electron", + "rebuild:electron": "theia rebuild:electron --modules \"@theia/node-pty\" nsfw native-keymap find-git-repositories grpc", "start": "yarn --cwd ./browser-app start", "watch": "lerna run watch --parallel", - "test": "lerna run test" + "test": "lerna run test", + "download:plugins": "theia download:plugins" }, "workspaces": [ "arduino-ide-extension", "arduino-debugger-extension", "electron-app", "browser-app" - ] + ], + "theiaPluginsDir": "plugins", + "theiaPlugins": { + "vscode-yaml": "https://open-vsx.org/api/redhat/vscode-yaml/0.7.2/file/redhat.vscode-yaml-0.7.2.vsix", + "vscode-builtin-cpp": "http://open-vsx.org/api/vscode/cpp/1.39.1/file/vscode.cpp-1.39.1.vsix" + } } diff --git a/yarn.lock b/yarn.lock index ad260e98..7ead1029 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,42 +9,43 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/compat-data@^7.8.4": - version "7.8.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.5.tgz#d28ce872778c23551cbb9432fc68d28495b613b9" - integrity sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg== +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== dependencies: - browserslist "^4.8.5" + browserslist "^4.9.1" invariant "^2.2.4" semver "^5.5.0" "@babel/core@^7.5.5": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" - integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.4" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== +"@babel/generator@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" + integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.9.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -64,33 +65,25 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-call-delegate@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" - integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== +"@babel/helper-compilation-targets@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" + integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz#03d7ecd454b7ebe19a254f76617e61770aed2c88" - integrity sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg== - dependencies: - "@babel/compat-data" "^7.8.4" - browserslist "^4.8.5" + "@babel/compat-data" "^7.8.6" + browserslist "^4.9.1" invariant "^2.2.4" levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" - integrity sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q== +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.6.0" + regexpu-core "^4.7.0" "@babel/helper-define-map@^7.8.3": version "7.8.3" @@ -146,16 +139,17 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" - integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q== +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== dependencies: "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-simple-access" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.8.3": @@ -165,7 +159,7 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== @@ -188,15 +182,15 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-replace-supers@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" - integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== dependencies: "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" "@babel/helper-simple-access@^7.8.3": version "7.8.3" @@ -213,6 +207,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" + integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== + "@babel/helper-wrap-function@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" @@ -223,28 +222,28 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== dependencies: "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" "@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== dependencies: + "@babel/helper-validator-identifier" "^7.9.0" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.8.3", "@babel/parser@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" - integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== +"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" @@ -279,10 +278,18 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.8.3": +"@babel/plugin-proposal-numeric-separator@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" - integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" + integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -295,20 +302,20 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" - integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" - integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.8.8" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-async-generators@^7.8.0": @@ -339,6 +346,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" @@ -398,17 +412,17 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.5.5", "@babel/plugin-transform-classes@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" - integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w== +"@babel/plugin-transform-classes@^7.5.5", "@babel/plugin-transform-classes@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" + integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" "@babel/helper-function-name" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-split-export-declaration" "^7.8.3" globals "^11.1.0" @@ -420,13 +434,13 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" - integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" + integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.8.3": +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== @@ -449,10 +463,10 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-for-of@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz#6fe8eae5d6875086ee185dd0b098a8513783b47d" - integrity sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A== +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -478,41 +492,41 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" - integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" - integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== dependencies: "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" - integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": @@ -537,12 +551,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz#1d5155de0b65db0ccf9971165745d3bb990d77d3" - integrity sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA== +"@babel/plugin-transform-parameters@^7.8.7": + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" + integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== dependencies: - "@babel/helper-call-delegate" "^7.8.3" "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -553,12 +566,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-regenerator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" - integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" + integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== dependencies: - regenerator-transform "^0.14.0" + regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.8.3": version "7.8.3" @@ -568,9 +581,9 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-runtime@^7.5.5": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" - integrity sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" + integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -623,26 +636,28 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/preset-env@^7.5.5": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.4.tgz#9dac6df5f423015d3d49b6e9e5fa3413e4a72c4e" - integrity sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== dependencies: - "@babel/compat-data" "^7.8.4" - "@babel/helper-compilation-targets" "^7.8.4" + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions" "^7.8.3" "@babel/plugin-proposal-dynamic-import" "^7.8.3" "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" @@ -651,26 +666,26 @@ "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.0" "@babel/plugin-transform-computed-properties" "^7.8.3" "@babel/plugin-transform-destructuring" "^7.8.3" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.8.4" + "@babel/plugin-transform-for-of" "^7.9.0" "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.8.3" - "@babel/plugin-transform-modules-commonjs" "^7.8.3" - "@babel/plugin-transform-modules-systemjs" "^7.8.3" - "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.4" + "@babel/plugin-transform-parameters" "^7.8.7" "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" "@babel/plugin-transform-reserved-words" "^7.8.3" "@babel/plugin-transform-shorthand-properties" "^7.8.3" "@babel/plugin-transform-spread" "^7.8.3" @@ -678,57 +693,69 @@ "@babel/plugin-transform-template-literals" "^7.8.3" "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/types" "^7.8.3" - browserslist "^4.8.5" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" semver "^5.5.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" - integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== dependencies: - regenerator-runtime "^0.13.2" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" -"@babel/template@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" - integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== +"@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" -"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== +"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" + integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" + "@babel/generator" "^7.9.0" "@babel/helper-function-name" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== +"@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" + integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== dependencies: - esutils "^2.0.2" + "@babel/helper-validator-identifier" "^7.9.0" lodash "^4.17.13" to-fast-properties "^2.0.0" "@emotion/cache@^10.0.27", "@emotion/cache@^10.0.9": - version "10.0.27" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.27.tgz#7895db204e2c1a991ae33d51262a3a44f6737303" - integrity sha512-Zp8BEpbMunFsTcqAK4D7YTm3MvCp1SekflSLJH8lze2fCcSZ/yMkXHo8kb3t1/1Tdd3hAqf3Fb7z9VZ+FMiC9w== + version "10.0.29" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" + integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ== dependencies: "@emotion/sheet" "0.9.4" "@emotion/stylis" "0.8.5" @@ -736,9 +763,9 @@ "@emotion/weak-memoize" "0.2.5" "@emotion/core@^10.0.9": - version "10.0.27" - resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.27.tgz#7c3f78be681ab2273f3bf11ca3e2edc4a9dd1fdc" - integrity sha512-XbD5R36pVbohQMnKfajHv43g8EbN4NHdF6Zh9zg/C0nr0jqwOw3gYnC07Xj3yG43OYSRyrGsoQ5qPwc8ycvLZw== + version "10.0.28" + resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.28.tgz#bb65af7262a234593a9e952c041d0f1c9b9bef3d" + integrity sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA== dependencies: "@babel/runtime" "^7.5.5" "@emotion/cache" "^10.0.27" @@ -756,22 +783,22 @@ "@emotion/utils" "0.11.3" babel-plugin-emotion "^10.0.27" -"@emotion/hash@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.4.tgz#f14932887422c9056b15a8d222a9074a7dfa2831" - integrity sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A== +"@emotion/hash@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== "@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== -"@emotion/serialize@^0.11.15": - version "0.11.15" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.15.tgz#9a0f5873fb458d87d4f23e034413c12ed60a705a" - integrity sha512-YE+qnrmGwyR+XB5j7Bi+0GT1JWsdcjM/d4POu+TXkcnrRs4RFCCsi3d/Ebf+wSStHqAlTT2+dfd+b9N9EO2KBg== +"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": + version "0.11.16" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" + integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg== dependencies: - "@emotion/hash" "0.7.4" + "@emotion/hash" "0.8.0" "@emotion/memoize" "0.7.4" "@emotion/unitless" "0.7.5" "@emotion/utils" "0.11.3" @@ -876,13 +903,6 @@ unique-filename "^1.1.1" which "^1.3.1" -"@grpc/grpc-js@^0.6.12": - version "0.6.16" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-0.6.16.tgz#74dda9eb3deba9f3d8741e91b21faa1d8405fdd3" - integrity sha512-TckwrK2duWTeqE/fYQ5JaLMDwqLuun0B/yswf8Bb9Pb7vb5xGd3iulmcnnaA2RDVd/abQTHnkSAjfRibYU24eQ== - dependencies: - semver "^6.2.0" - "@lerna/add@3.20.0": version "3.20.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.20.0.tgz#bea7edf36fc93fb72ec34cb9ba854c48d4abf309" @@ -1588,14 +1608,14 @@ dependencies: "@octokit/types" "^2.0.0" -"@octokit/endpoint@^5.5.0": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.5.2.tgz#ed19d01fe85ac58bc2b774661658f9e5429b8164" - integrity sha512-ICDcRA0C2vtTZZGud1nXRrBLXZqFayodXAKZfo3dkdcLNqcHsgaz3YSTupbURusYeucSVRjjG+RTcQhx6HPPcg== +"@octokit/endpoint@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.0.tgz#4c7acd79ab72df78732a7d63b09be53ec5a2230b" + integrity sha512-3nx+MEYoZeD0uJ+7F/gvELLvQJzLXhep2Az0bBSXagbApDvDW0LWwpnAIY/hb0Jwe17A0fJdz0O12dPh05cj7A== dependencies: "@octokit/types" "^2.0.0" is-plain-object "^3.0.0" - universal-user-agent "^4.0.0" + universal-user-agent "^5.0.0" "@octokit/plugin-enterprise-rest@^3.6.1": version "3.6.2" @@ -1622,7 +1642,7 @@ "@octokit/types" "^2.0.1" deprecation "^2.3.1" -"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": +"@octokit/request-error@^1.0.2": version "1.2.1" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== @@ -1631,19 +1651,28 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.2.0": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.1.tgz#3a1ace45e6f88b1be4749c5da963b3a3b4a2f120" - integrity sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg== +"@octokit/request-error@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.0.tgz#94ca7293373654400fbb2995f377f9473e00834b" + integrity sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw== dependencies: - "@octokit/endpoint" "^5.5.0" - "@octokit/request-error" "^1.0.1" + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.2.0": + version "5.3.4" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.4.tgz#fbc950bf785d59da3b0399fc6d042c8cf52e2905" + integrity sha512-qyj8G8BxQyXjt9Xu6NvfvOr1E0l35lsXtwm3SopsYg/JWXjlsnwqLc8rsD2OLguEL/JjLfBvrXr4az7z8Lch2A== + dependencies: + "@octokit/endpoint" "^6.0.0" + "@octokit/request-error" "^2.0.0" "@octokit/types" "^2.0.0" deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^4.0.0" + universal-user-agent "^5.0.0" "@octokit/rest@^16.28.4": version "16.43.1" @@ -1668,9 +1697,9 @@ universal-user-agent "^4.0.0" "@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.1.1.tgz#77e80d1b663c5f1f829e5377b728fa3c4fe5a97d" - integrity sha512-89LOYH+d/vsbDX785NOfLxTW88GjNd0lWRz1DVPVsZgg9Yett5O+3MOvwo7iHgvUwbFz0mf/yPIjBkUbs4kxoQ== + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.5.0.tgz#f1bbd147e662ae2c79717d518aac686e58257773" + integrity sha512-KEnLwOfdXzxPNL34fj508bhi9Z9cStyN7qY1kOfVahmqtAfrWw6Oq3P4R+dtsg0lYtZdWBpUrS/Ixmd5YILSww== dependencies: "@types/node" ">= 8" @@ -1774,9 +1803,9 @@ "@phosphor/virtualdom" "^1.2.0" "@primer/octicons-react@^9.0.0": - version "9.4.0" - resolved "https://registry.yarnpkg.com/@primer/octicons-react/-/octicons-react-9.4.0.tgz#19f6ed2eab82e78c2762315d19c7ce1677fcf4ed" - integrity sha512-TAPjzQaIrPqI5TpxNKkBTxS7b8Y1v7iMuiN5ZshhSp9GHbdymWKtCXRDk13lo6woDeSn/8tIdZTSerTR3c0bQA== + version "9.6.0" + resolved "https://registry.yarnpkg.com/@primer/octicons-react/-/octicons-react-9.6.0.tgz#996f621cb063757a4985cd6b45e59ed00e3444bf" + integrity sha512-FR0fiU1UY1ds5ZMCUY+iVkkm1Eh4yDHf2ui+cxB3VvYX23DAdUAohPGit+qaMFy2caDd7uWYGRZduKS7dW1FZQ== dependencies: prop-types "^15.6.1" @@ -1797,16 +1826,52 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== -"@theia/application-manager@0.16.0-next.46a2d510": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/application-manager/-/application-manager-0.16.0-next.46a2d510.tgz#0b57ae18bb389703f205b1ce298ff85ea42e93fb" - integrity sha512-E3kUWPMVO28GZ5grGkwu6+l76E968yB9TWqo9ekixszjLganoQhn8vcLeMM1UCiyb0BYxz99aAcVYzhaag21ZA== +"@sinonjs/commons@^1", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" + integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/formatio@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-5.0.1.tgz#f13e713cb3313b1ab965901b01b0828ea6b77089" + integrity sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ== + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^5.0.2" + +"@sinonjs/samsam@^5.0.2", "@sinonjs/samsam@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.0.3.tgz#86f21bdb3d52480faf0892a480c9906aa5a52938" + integrity sha512-QucHkc2uMJ0pFGjJUDP3F9dq5dx8QIaqISl9QgwLOh6P9yv877uONPGXh/OH/0zmM3tW1JjuJltAZV2l7zU+uQ== + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== + +"@theia/application-manager@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/application-manager/-/application-manager-0.17.0-next.f5433ece.tgz#758552201621168cf805bbb0adbcbc742d3c8a0a" + integrity sha512-4cuqbRA+7tEiH0Jb7g1z5MsychsoxDVzNDOFXdoab7XvA4IiERpF2Ee1O+T/N9g7czOKeg2toJHw/W11znn7tg== dependencies: "@babel/core" "^7.5.5" "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-runtime" "^7.5.5" "@babel/preset-env" "^7.5.5" - "@theia/application-package" "0.16.0-next.46a2d510" + "@theia/application-package" "0.17.0-next.f5433ece" "@theia/compression-webpack-plugin" "^3.0.0" "@types/fs-extra" "^4.0.2" "@types/webpack" "^4.41.2" @@ -1829,10 +1894,10 @@ webpack-cli "2.0.12" worker-loader "^1.1.1" -"@theia/application-package@0.16.0-next.46a2d510", "@theia/application-package@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/application-package/-/application-package-0.16.0-next.46a2d510.tgz#4037dfc24923e5fe001a9a0b3b4bb92bb2bd93ab" - integrity sha512-jnhOuuTMfr2f5lY2BMAri8qs5mVN1KCGeyJ6LhUlaluISZrU+bvrenadgboiumHqOtmktgq+ZgI+zygTvsVoVw== +"@theia/application-package@0.17.0-next.f5433ece", "@theia/application-package@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/application-package/-/application-package-0.17.0-next.f5433ece.tgz#8acf5132ae8a7c5c8ab468e5f9035007b11da255" + integrity sha512-r7+t7eQzyittAisdyxmkREC0ObxK7o8zkdZRv2dCMcWa8kygesoVdkqmwpQ4wOiFTnnYMxvVxRVVXfh77PVsow== dependencies: "@types/fs-extra" "^4.0.2" "@types/request" "^2.0.3" @@ -1845,13 +1910,24 @@ semver "^5.4.1" write-json-file "^2.2.0" -"@theia/cli@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/cli/-/cli-0.16.0-next.46a2d510.tgz#0b412e6019879381c879acd5455073c7bacd0608" - integrity sha512-hQEFu8PfkluKYCgdfruYS53L55+j2eM3OupOiB3uKUansuZ/t6VlLoROmbtamun0Ut0RlnZFqhVkPW/TpknHDA== +"@theia/callhierarchy@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/callhierarchy/-/callhierarchy-0.17.0-next.f5433ece.tgz#cf7ad0ffa14e7ff43d2a7f3f79f099e14e6694ad" + integrity sha512-dnjXf+KhJVfQdBtnqdyIxXJ75pCn4n4zQ7T2wfWsaGBveeuL3CTgzL1HlBDT5rP8opgK6ByzUISTnzHrbSpaTA== dependencies: - "@theia/application-manager" "0.16.0-next.46a2d510" - "@theia/application-package" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/languages" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" + ts-md5 "^1.2.2" + +"@theia/cli@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/cli/-/cli-0.17.0-next.f5433ece.tgz#56c33159c785a68c849a0967f5f16efad8503144" + integrity sha512-5pMta92X4/CpSrwDBsABqgX54h9EBjIBHg5CPIxijcxXP6PIZJEf1yN3U1NpxJfI0Po71qUjZLkTbFVzvXu5pg== + dependencies: + "@theia/application-manager" "0.17.0-next.f5433ece" + "@theia/application-package" "0.17.0-next.f5433ece" "@types/chai" "^4.2.7" "@types/mkdirp" "^0.5.2" "@types/mocha" "^5.2.7" @@ -1880,25 +1956,26 @@ serialize-javascript "^1.4.0" webpack-sources "^1.0.1" -"@theia/console@0.16.0-next.46a2d510": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/console/-/console-0.16.0-next.46a2d510.tgz#ba5926258cf58b4fbe64460239f4af38a98ff883" - integrity sha512-yJk6+H6xzNO+fmJuz7k47cMjZsA2b4wgEp9FVaHCkn3fmTjMo/Qv3PCH78S8bSMQcKmfqFDCACj/X96cTmMAfg== +"@theia/console@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/console/-/console-0.17.0-next.f5433ece.tgz#372aace2f1725c954921192c2364838e29f050a5" + integrity sha512-yOB8QdkPBhJJuWarv/P+IiwoE6aNWgD0kwCt/k3QKw0T2q4pLCfAp4nQ09l5JTV85qyeGEyKL6/OUjBwz5JNUg== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/monaco" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" anser "^1.4.7" -"@theia/core@0.16.0-next.46a2d510", "@theia/core@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/core/-/core-0.16.0-next.46a2d510.tgz#2ff298bf34721a2dc7a3ae1c261f0f01b2d6b0be" - integrity sha512-nkmqq+Egx5gVeSVOM3NxVhdbjuX/3xdUpende5hwlPBrS/BSds2dmTEUFUH0fJ6ryLx9aBiaoHpgSf8RPw7oJg== +"@theia/core@0.17.0-next.f5433ece", "@theia/core@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/core/-/core-0.17.0-next.f5433ece.tgz#2d112c0a9660ba9ac56d333382e4996898f82adf" + integrity sha512-2oH1qgtNx8kzXmjNzDseEmiemFAbxtJoUI7DFB4o2qRIpfYevXTCGKjvOIP/q/KyqoyzXtl12GQdMcg6Q8Amrg== dependencies: "@babel/runtime" "^7.5.5" "@phosphor/widgets" "^1.9.3" "@primer/octicons-react" "^9.0.0" - "@theia/application-package" "0.16.0-next.46a2d510" + "@theia/application-package" "0.17.0-next.f5433ece" "@types/body-parser" "^1.16.4" + "@types/cookie" "^0.3.3" "@types/express" "^4.16.0" "@types/fs-extra" "^4.0.2" "@types/lodash.debounce" "4.0.3" @@ -1911,6 +1988,7 @@ "@types/yargs" "^11.1.0" ajv "^6.5.3" body-parser "^1.17.2" + cookie "^0.4.0" es6-promise "^4.2.4" express "^4.16.3" file-icons-js "^1.0.3" @@ -1935,9 +2013,9 @@ yargs "^11.1.0" "@theia/cpp@next": - version "0.16.0-next.f23b4017" - resolved "https://registry.yarnpkg.com/@theia/cpp/-/cpp-0.16.0-next.f23b4017.tgz#13333f22019ade3fb60d65c97e8ceeac3fa4cf9f" - integrity sha512-yw0BXd/7IrIsrju75+kg+VR6aj7E/0rtZmqsjoUQCQTO7unRq9I+bS+QG1fIhv8QjCw1jBVGvDBuS/XKIWge3A== + version "0.16.0-next.db05c684" + resolved "https://registry.yarnpkg.com/@theia/cpp/-/cpp-0.16.0-next.db05c684.tgz#c6158a4f7b296d440c4874cc6eb45946303ffe02" + integrity sha512-5Ae8qptSptJ+gKvT08Jc4XEEd1SWsoWI/i/EgbXsrKsCsLObHMGVVlLQKyZ1mavfDgDFO4fvYmbdVqM+r1hFAQ== dependencies: "@theia/core" next "@theia/editor" next @@ -1951,27 +2029,27 @@ "@theia/workspace" next string-argv "^0.1.1" -"@theia/debug@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/debug/-/debug-0.16.0-next.46a2d510.tgz#702b7c9a44cab46f368fbafe2776c5ec703f97fb" - integrity sha512-iUvNV3UGFGBFEE0lpBlcLQoklr86Az2G36ORpVw9VPWTHkm21RKdmwY2M0rF1+JnaENz0iFJEVayD2rzNQGTdA== +"@theia/debug@0.17.0-next.f5433ece", "@theia/debug@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/debug/-/debug-0.17.0-next.f5433ece.tgz#ac61a1fb3e7d8c8ce048f00af252ce30b6aa693a" + integrity sha512-LJ30xu/+ufM0el8jo7YX9cYZuw2YWAbunvMzd4RThbelU1daqLz/qrN+BL+RkLgOrz5dnINsCQuoPXNZ2s7skA== dependencies: - "@theia/application-package" "0.16.0-next.46a2d510" - "@theia/console" "0.16.0-next.46a2d510" - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/languages" "0.16.0-next.46a2d510" - "@theia/markers" "0.16.0-next.46a2d510" - "@theia/monaco" "0.16.0-next.46a2d510" - "@theia/output" "0.16.0-next.46a2d510" - "@theia/preferences" "0.16.0-next.46a2d510" - "@theia/process" "0.16.0-next.46a2d510" - "@theia/task" "0.16.0-next.46a2d510" - "@theia/terminal" "0.16.0-next.46a2d510" - "@theia/userstorage" "0.16.0-next.46a2d510" - "@theia/variable-resolver" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/application-package" "0.17.0-next.f5433ece" + "@theia/console" "0.17.0-next.f5433ece" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/languages" "0.17.0-next.f5433ece" + "@theia/markers" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" + "@theia/output" "0.17.0-next.f5433ece" + "@theia/preferences" "0.17.0-next.f5433ece" + "@theia/process" "0.17.0-next.f5433ece" + "@theia/task" "0.17.0-next.f5433ece" + "@theia/terminal" "0.17.0-next.f5433ece" + "@theia/userstorage" "0.17.0-next.f5433ece" + "@theia/variable-resolver" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" "@types/p-debounce" "^1.0.1" jsonc-parser "^2.0.2" mkdirp "^0.5.0" @@ -1981,21 +2059,21 @@ unzip-stream "^0.3.0" vscode-debugprotocol "^1.32.0" -"@theia/editor@0.16.0-next.46a2d510", "@theia/editor@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/editor/-/editor-0.16.0-next.46a2d510.tgz#8c49de165b37d64f480626c07bced71572f86182" - integrity sha512-279pJVRGp6tC4psI6ghBa5EiScjWw/2v0zt1UrC2Jz6yEDW24EZTUjKdqOartFbDOg/ZbsyDVG1SXgbjl0s29A== +"@theia/editor@0.17.0-next.f5433ece", "@theia/editor@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/editor/-/editor-0.17.0-next.f5433ece.tgz#45f70a181ce2054caf08b7a512078dbaa1628148" + integrity sha512-vRqBuP/52zHoBfEDlp2UnQCToT5ifxtOGnJxtr+yAP1NrsFaNCYvQw5fRy6Qjw3ntPfFQcVvywE/pbN7X3+T4w== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/languages" "0.16.0-next.46a2d510" - "@theia/variable-resolver" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/languages" "0.17.0-next.f5433ece" + "@theia/variable-resolver" "0.17.0-next.f5433ece" "@types/base64-arraybuffer" "0.1.0" base64-arraybuffer "^0.1.5" "@theia/electron@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/electron/-/electron-0.16.0-next.46a2d510.tgz#fd7fd81ed81afbf720d3f02ae0d6d61b26d66f25" - integrity sha512-4bHVRaGfD2JsnWylKiQjSFkUCV0RQF0RlP6VRV+oaloP/zHm55864Ojc/Vit3wM9g6GQLw3hkmXc29f1hi3ERg== + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/electron/-/electron-0.17.0-next.f5433ece.tgz#281ffbbbf5cbf955db457e62f9b07e0899ea5191" + integrity sha512-ZF1YEJknBJ3iZ/qXYM4awRs3CrS2hlsziETxanc21ixldv6cgMpL1rECLgHj5vnXMlhz/pyP9tYL8pC8GX8Vxw== dependencies: electron "^4.2.11" electron-download "^4.1.1" @@ -2006,26 +2084,26 @@ unzipper "^0.9.11" yargs "^11.1.0" -"@theia/file-search@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/file-search/-/file-search-0.16.0-next.46a2d510.tgz#29fe6ab3636dad7bee42812a732951dc5aa50402" - integrity sha512-r+OBa9EmkOZTMR05CRUCTlqS+h1LWUmvIT7VhLV0T0fDX72yqQhQ4xJ3EFAMzbYw2vV6QUJqx5324Rcqj11gew== +"@theia/file-search@0.17.0-next.f5433ece", "@theia/file-search@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/file-search/-/file-search-0.17.0-next.f5433ece.tgz#997317982e36c94082e39190be3602d363d3119d" + integrity sha512-4I9g9Pcvd47kpYQ8VZQXnBXZnUzYvV3c4kf2cOgxOpP00h7o+bP7GtmzFQMaw/JANkIuf3aHuhv8QXnHADuuNA== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/process" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/process" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" fuzzy "^0.1.3" vscode-ripgrep "^1.2.4" -"@theia/filesystem@0.16.0-next.46a2d510", "@theia/filesystem@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/filesystem/-/filesystem-0.16.0-next.46a2d510.tgz#0cb3b7eea68a520034ab14caa91496b58f428fe3" - integrity sha512-Q0CAAml5SbjwzZ9vJGCdOpvTXsZLdgr984Z5XjNUnSQ+RFIcedTXjrb3KKtEVAOjyQsjDtg+QHm5gYOxshpmjA== +"@theia/filesystem@0.17.0-next.f5433ece", "@theia/filesystem@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/filesystem/-/filesystem-0.17.0-next.f5433ece.tgz#6c31ff8583c3b69962ab6804dc6d4c25cd45cbc0" + integrity sha512-WVVOijzF8c3BxOXbMoIxTW3OZE7XA1BBzFdozNdqhlwM6cdRrU8yUM1O9XvoRBPddfd4isamLcD2JeKwnOaJ1g== dependencies: - "@theia/application-package" "0.16.0-next.46a2d510" - "@theia/core" "0.16.0-next.46a2d510" + "@theia/application-package" "0.17.0-next.f5433ece" + "@theia/core" "0.17.0-next.f5433ece" "@types/body-parser" "^1.17.0" "@types/rimraf" "^2.0.2" "@types/tar-fs" "^1.16.1" @@ -2046,17 +2124,18 @@ zip-dir "^1.0.2" "@theia/git@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/git/-/git-0.16.0-next.46a2d510.tgz#417eb5c5def7b849dc1d048b58c0f9c3ae8481de" - integrity sha512-oyubEcjEGx+Z7Yq73bNdLrolaUeV5mqUfL80qKda2X9w7enh8+eeiejpRyw8gXe/nq38N33vY6qzlQ2Dqg5RSw== + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/git/-/git-0.17.0-next.f5433ece.tgz#a0094c629361b2e5bfc0242a9a8febf002a31cfc" + integrity sha512-rIsNKzPW1kjR4ufP3O5zFLJb1vSQgUxzNY2BqtMekIr39Op9UsrwvDLg97XOTYSwTWk8/OXOVPofNuasy4kQPQ== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/languages" "0.16.0-next.46a2d510" - "@theia/navigator" "0.16.0-next.46a2d510" - "@theia/scm" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/languages" "0.17.0-next.f5433ece" + "@theia/navigator" "0.17.0-next.f5433ece" + "@theia/scm" "0.17.0-next.f5433ece" + "@theia/scm-extra" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" "@types/diff" "^3.2.2" "@types/p-queue" "^2.3.1" diff "^3.4.0" @@ -2068,54 +2147,54 @@ p-queue "^2.4.2" ts-md5 "^1.2.2" -"@theia/languages@0.16.0-next.46a2d510", "@theia/languages@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/languages/-/languages-0.16.0-next.46a2d510.tgz#6ec2e258bd4533115f2f1fe3e406f0d7510c638e" - integrity sha512-yaBTou1OsVVgilroYxyV8nsquF3/IZmTyVdYVrTSySbpKKK68Y5G6Z33QDtQygWDVADHE81+djg6cNsWtMdSdw== +"@theia/languages@0.17.0-next.f5433ece", "@theia/languages@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/languages/-/languages-0.17.0-next.f5433ece.tgz#a7613e1d728c82af1ff1d0974f81eab07be89e40" + integrity sha512-+P7NkeZDiMQCHqWX5CMsT6qnh/Nb7uF5+oLI+NiVLcY+URU1/5KmWGX0kygoCQV2KG9SEFpieYOkkgbcHZ8M2w== dependencies: - "@theia/application-package" "0.16.0-next.46a2d510" - "@theia/core" "0.16.0-next.46a2d510" - "@theia/output" "0.16.0-next.46a2d510" - "@theia/process" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/application-package" "0.17.0-next.f5433ece" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/output" "0.17.0-next.f5433ece" + "@theia/process" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" "@typefox/monaco-editor-core" "^0.18.0-next" "@types/uuid" "^3.4.3" monaco-languageclient "^0.10.2" uuid "^3.2.1" -"@theia/markers@0.16.0-next.46a2d510", "@theia/markers@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/markers/-/markers-0.16.0-next.46a2d510.tgz#bcd29595b473ccb2eecd6f2dab63ce4ed0ddc0bf" - integrity sha512-cqTIwbY3lei+S3QdKYQmoR5zu5ZokCC7VsHsrdDYkuWwO6Pey0/h4gv3ovUvYcX+lU5FSKbS8LJNOyKSUKxtVw== +"@theia/markers@0.17.0-next.f5433ece", "@theia/markers@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/markers/-/markers-0.17.0-next.f5433ece.tgz#339e382910a492ea6158928fc341598af3f99d89" + integrity sha512-NPrp/7jZeLlDkUgcU5tohTR0CUYqDI1I3RxoejrVFEvu3lS354wW12xd2PsvRd389agWRCUAjhZ+Whd70QwvZg== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/navigator" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/navigator" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" -"@theia/messages@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/messages/-/messages-0.16.0-next.46a2d510.tgz#1ff720e160070c9d3ede14349297b01ec2ad124c" - integrity sha512-sCSS5y+qIuCMHGcDUe5r8025a2FlSSQ/11RRuM4G//dN1rcxNDblKaSJ65mieHrwi1qvU/xYzdjKz55Tw5r0Kg== +"@theia/messages@0.17.0-next.f5433ece", "@theia/messages@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/messages/-/messages-0.17.0-next.f5433ece.tgz#c6cd9caa7bad1df4c541cac8699ef4ab82facf57" + integrity sha512-QNScynsi7zNJu5hSyKo9YjSE97zUS28Hukzeox0v2kUK0nEoTmxRTllicn1wLDUa9mABQtb6CrP7ZREU55jXpQ== dependencies: - "@theia/core" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" lodash.throttle "^4.1.1" markdown-it "^8.4.0" react-perfect-scrollbar "^1.5.3" ts-md5 "^1.2.2" -"@theia/monaco@0.16.0-next.46a2d510", "@theia/monaco@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/monaco/-/monaco-0.16.0-next.46a2d510.tgz#82fbec75dbe77028fad2651d690afb0c027204f3" - integrity sha512-lI3grLnLJk8vlC1qpcKX7xD8GKcSSRFHaUKVyHS7HsSaGjFp85tGKCdZIQIb2cX650AmKuKve1u2YA7MBEuFaA== +"@theia/monaco@0.17.0-next.f5433ece", "@theia/monaco@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/monaco/-/monaco-0.17.0-next.f5433ece.tgz#eed202afed1bf2894693f20dd27a4f623e60e044" + integrity sha512-gVblFdn2510ytwczsOPG44Un4aljPpt26hJT34vE/PdDqDltT/XDKNK4oQjeFrfPELGyGfgpekPZ2vTvcoT3Zw== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/languages" "0.16.0-next.46a2d510" - "@theia/markers" "0.16.0-next.46a2d510" - "@theia/outline-view" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/languages" "0.17.0-next.f5433ece" + "@theia/markers" "0.17.0-next.f5433ece" + "@theia/outline-view" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" deepmerge "2.0.1" fast-plist "^0.1.2" idb "^4.0.5" @@ -2125,14 +2204,14 @@ onigasm "2.2.1" vscode-textmate "^4.0.1" -"@theia/navigator@0.16.0-next.46a2d510", "@theia/navigator@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/navigator/-/navigator-0.16.0-next.46a2d510.tgz#589c002a9ce9448103dc60589a607cf1b62e6045" - integrity sha512-3BY2RM8WYYdWSJ6RdyeXWiVg7HAJuBJksBH0IQP6eRH1r7ri+eEXMtb6ALi8cTuKO1m+/WIZr0FYK4m2fIIcEg== +"@theia/navigator@0.17.0-next.f5433ece", "@theia/navigator@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/navigator/-/navigator-0.17.0-next.f5433ece.tgz#ed883892261a3020801ec0d25d0abc4c09df490a" + integrity sha512-TJBaUveuntMrzzaKETQow7WmhPjOT7iNZqQOd1zHFKunbIp6oLYeGp8x7eRxMFHQe6RHjgRczab5TcYKjRIsew== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" fuzzy "^0.1.3" minimatch "^3.0.4" @@ -2143,51 +2222,125 @@ dependencies: nan "2.10.0" -"@theia/outline-view@0.16.0-next.46a2d510", "@theia/outline-view@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/outline-view/-/outline-view-0.16.0-next.46a2d510.tgz#97dd066e0bf9044c9395086329571609a681f99a" - integrity sha512-b1Yd4w7gQ8dWcq4cdUGarYiclMEd7zCB6FsRbtsUftr8zqSeF4he8+Cb0XveGwINqVTf2/kjnKeMSsgDFTdTvA== +"@theia/outline-view@0.17.0-next.f5433ece", "@theia/outline-view@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/outline-view/-/outline-view-0.17.0-next.f5433ece.tgz#fb881e8ed38e1694697177fdae5000cd5febf236" + integrity sha512-uOZznGuS1F99wIqIxd+nqwdVwdRd9KNJ0e6ElQoHSytkeZIVwWY2rctxRJ5WwuxrRMP3R/1bwDKCMglqWl4eKw== dependencies: - "@theia/core" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" -"@theia/output@0.16.0-next.46a2d510": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/output/-/output-0.16.0-next.46a2d510.tgz#6595fa7f20850ab30bf6004c3381cdf8d32d8c10" - integrity sha512-mI8Vp8lQJmId0meVpy/MNm1kOiSw5M42zynIILwSdoH6FvLFzrcPugJYFKp4LEIXIL2OX8z/mPhnu2xwjMcv+Q== +"@theia/output@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/output/-/output-0.17.0-next.f5433ece.tgz#d635289ef45a39f4bb8f0a10c43fb1b7a2fa99e8" + integrity sha512-j/ZT/ERMeJmq9eBcFyhovCxY4sQBC/DlYQfMBpbLPSSDpptYXih1IR5n05kYHjbeWqSdL7htUcXPHJkrHF7HlQ== dependencies: - "@theia/core" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" -"@theia/preferences@0.16.0-next.46a2d510", "@theia/preferences@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/preferences/-/preferences-0.16.0-next.46a2d510.tgz#c4e08b1588d2fc445cdd25e6582dd10f60d79192" - integrity sha512-VPRxjQ73zYoUcqEI7Dt8r8KUaFMvwGN9UnmoHNOSbHINR+X6KE5zrIw0EN8sSieyQTKlCXl5g7rB/zDZQg7KeQ== +"@theia/plugin-ext-vscode@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/plugin-ext-vscode/-/plugin-ext-vscode-0.17.0-next.f5433ece.tgz#7547b285d4726f8ee43772422c066f6b0b0dffa2" + integrity sha512-Vv4PPRg+JL4iie2PfhYcV8TDAUeg6/pqRuaG+PDC8Kr6gMEEBJep95onTBWv/3u4+Uc3S4SZKKLVIdeWeD+dRw== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/monaco" "0.16.0-next.46a2d510" - "@theia/userstorage" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" + "@theia/plugin" "0.17.0-next.f5433ece" + "@theia/plugin-ext" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" + "@types/request" "^2.0.3" + filenamify "^4.1.0" + request "^2.82.0" + +"@theia/plugin-ext@0.17.0-next.f5433ece", "@theia/plugin-ext@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/plugin-ext/-/plugin-ext-0.17.0-next.f5433ece.tgz#2fb4f245a78478f7af89841610eceb3e0c92a010" + integrity sha512-IaCuRU5WYXtYGAv8MLZXWpoCCi/nmDOOeThoaJxs2wefi3p0MO/A8Xi3ljZILVvfB+oI+RJMgUHnA46Kl4AwbA== + dependencies: + "@theia/callhierarchy" "0.17.0-next.f5433ece" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/debug" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/file-search" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/languages" "0.17.0-next.f5433ece" + "@theia/markers" "0.17.0-next.f5433ece" + "@theia/messages" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" + "@theia/navigator" "0.17.0-next.f5433ece" + "@theia/output" "0.17.0-next.f5433ece" + "@theia/plugin" "0.17.0-next.f5433ece" + "@theia/preferences" "0.17.0-next.f5433ece" + "@theia/scm" "0.17.0-next.f5433ece" + "@theia/search-in-workspace" "0.17.0-next.f5433ece" + "@theia/task" "0.17.0-next.f5433ece" + "@theia/terminal" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" + "@types/connect" "^3.4.32" + "@types/mime" "^2.0.1" + "@types/serve-static" "^1.13.3" + connect "^3.7.0" + decompress "^4.2.0" + escape-html "^1.0.3" + filenamify "^4.1.0" + jsonc-parser "^2.0.2" + lodash.clonedeep "^4.5.0" + macaddress "^0.2.9" + mime "^2.4.4" + ps-tree "^1.2.0" + request "^2.82.0" + serve-static "^1.14.1" + uuid "^3.2.1" + vhost "^3.0.2" + vscode-debugprotocol "^1.32.0" + vscode-textmate "^4.0.1" + +"@theia/plugin@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/plugin/-/plugin-0.17.0-next.f5433ece.tgz#f1481c3825d960035d35be9a721600f37d42847e" + integrity sha512-QwhIbuNvCDX5UYzRY2ef8EZwp2e6lL5WiPZxdjPz7TG/73ZNo90b+ne3JN19rNJqQhLTGUWOgiwsUh7KXDWsww== + +"@theia/preferences@0.17.0-next.f5433ece", "@theia/preferences@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/preferences/-/preferences-0.17.0-next.f5433ece.tgz#b567461af378cbb9df8166ab2643e4758d7e342e" + integrity sha512-Z4eCeYQR1Gzrn9O9Z+cYENjyKV88NKmI4sjJfhBSEUzo1J84lfHKBdOtow7WHA49sRQh9TGW6zxVQeyIbdcBMA== + dependencies: + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" + "@theia/userstorage" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" jsonc-parser "^2.0.2" -"@theia/process@0.16.0-next.46a2d510", "@theia/process@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/process/-/process-0.16.0-next.46a2d510.tgz#466839f5dfed9a698e193cfcf345ccdf8973039d" - integrity sha512-1IFACJTmwkezYC5E7PikMflULLtF9Lxv1Y8oXZQFRlIIy/DrA8oIaqFH7RBTTXT0XLhkeRm4uUonQX918LWRGA== +"@theia/process@0.17.0-next.f5433ece", "@theia/process@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/process/-/process-0.17.0-next.f5433ece.tgz#adff77057ce8c6b06eb38b0920fbb32d79d39055" + integrity sha512-gQnb1Z9ZW7x6X5neKkt08pAHcRvuANDyhOv41gwUtFyYYfN6c7NQS62KewZbJClPpPiklYyZodbMNHzk+x4kag== dependencies: - "@theia/core" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" "@theia/node-pty" "0.7.8-theia004" string-argv "^0.1.1" -"@theia/scm@0.16.0-next.46a2d510": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/scm/-/scm-0.16.0-next.46a2d510.tgz#35dbc1bd28f2e88f8182f3eb502e2180318b53dd" - integrity sha512-hIpt4v7n4FQB0gigTsCpJw5SfgODmBH2F/smQCBmcsuDjnivAZVJ2DC02oaW4YiHyjEKZFSdnsqdMfFYHivLWw== +"@theia/scm-extra@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/scm-extra/-/scm-extra-0.17.0-next.f5433ece.tgz#14fbcb15738b67426010f1a54a1887b132db2ece" + integrity sha512-IW/hRZ9r8xB502/th5d3YsZd9y345BMx6lPyXoRuJCzi141b0/6js/JZJG52YuOcltH/RMTj/I5BhHjaBvHtOQ== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/navigator" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/navigator" "0.17.0-next.f5433ece" + "@theia/scm" "0.17.0-next.f5433ece" + +"@theia/scm@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/scm/-/scm-0.17.0-next.f5433ece.tgz#f73248a709684fe3086088d359314a7525b46066" + integrity sha512-NtNDn+aSsaE+SLaQKZisUs1X3pGUbaH7AN26HuD7WiN3cDfVV7n+DB9OwqxYWEq2yMc/t2WaT8S34NdlghWF2g== + dependencies: + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/navigator" "0.17.0-next.f5433ece" "@types/diff" "^3.2.2" "@types/p-debounce" "^1.0.1" diff "^3.4.0" @@ -2195,82 +2348,76 @@ react-autosize-textarea "^7.0.0" ts-md5 "^1.2.2" -"@theia/search-in-workspace@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/search-in-workspace/-/search-in-workspace-0.16.0-next.46a2d510.tgz#ecb104d6bded534db3963b302f5ba8b3d4e5aad5" - integrity sha512-2pkbXzE2178akqJ+mnZ33sU/SHlGKUbqIxWa0bZcalUpoInyjzYsQHSCZ/X70kr81ujlwQvBXTrU0YCVTAP3yg== +"@theia/search-in-workspace@0.17.0-next.f5433ece", "@theia/search-in-workspace@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/search-in-workspace/-/search-in-workspace-0.17.0-next.f5433ece.tgz#461b11a4b40bd2db0e09283ef0f73ba1d08b5a7a" + integrity sha512-F2dgYQvfCAHvhiHPf52lEut9ySk9TqdM8cU+l1XUPkQdpYb22ewuzsUrTsCc1wReQAln9mvN+p6qVCzZjJGkGQ== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/navigator" "0.16.0-next.46a2d510" - "@theia/process" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/navigator" "0.17.0-next.f5433ece" + "@theia/process" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" vscode-ripgrep "^1.2.4" -"@theia/task@0.16.0-next.46a2d510", "@theia/task@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/task/-/task-0.16.0-next.46a2d510.tgz#004ca4f4256351c63602332798dd6d98e3c387cf" - integrity sha512-390Meof3StbHNBNfQY8f/opNBj/IZN8z/ZjhRNf/0vtu1b6aZGMo1z/9e8eLcCwDyAdFvSCHRk1bny+rhB4//w== +"@theia/task@0.17.0-next.f5433ece", "@theia/task@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/task/-/task-0.17.0-next.f5433ece.tgz#166df785b72e0dc06a75fcfbe7d899cd6e012458" + integrity sha512-pkY6q8mqpQ6G67NjOOPIikfm+cpTTMBzQsrLYKdQEQC1HP0YUU5R0ExbetTaN3oEn3YgiWqQOBVBH8o0iJgv8Q== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/markers" "0.16.0-next.46a2d510" - "@theia/monaco" "0.16.0-next.46a2d510" - "@theia/preferences" "0.16.0-next.46a2d510" - "@theia/process" "0.16.0-next.46a2d510" - "@theia/terminal" "0.16.0-next.46a2d510" - "@theia/variable-resolver" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/markers" "0.17.0-next.f5433ece" + "@theia/monaco" "0.17.0-next.f5433ece" + "@theia/preferences" "0.17.0-next.f5433ece" + "@theia/process" "0.17.0-next.f5433ece" + "@theia/terminal" "0.17.0-next.f5433ece" + "@theia/variable-resolver" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" ajv "^6.5.3" jsonc-parser "^2.0.2" p-debounce "^2.1.0" vscode-uri "^1.0.8" -"@theia/terminal@0.16.0-next.46a2d510", "@theia/terminal@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/terminal/-/terminal-0.16.0-next.46a2d510.tgz#855eaef12d1ddf4d61b5a75b3eb3d4b5a1b87d44" - integrity sha512-h2L2N3A8IddjFf795puqfov8Bo5toxwNpJxTM9vbFTxS+61Xg1SvxQrJIsFL0IB2fGMjonYd6RC5KhV5yRFlIw== +"@theia/terminal@0.17.0-next.f5433ece", "@theia/terminal@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/terminal/-/terminal-0.17.0-next.f5433ece.tgz#1e09a7fb20a021cb6dc3e43f2e244ec901f3966a" + integrity sha512-gro6dbRvSaFhR+KRXGUI0k28F/eyG+tjswAzjc0GaDV5B0ZfjHZo9+L/Kjq/NHoGUn+rWKGHf4ok1K5LvBWwkg== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/editor" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/process" "0.16.0-next.46a2d510" - "@theia/workspace" "0.16.0-next.46a2d510" - xterm "3.13.0" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/editor" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/process" "0.17.0-next.f5433ece" + "@theia/workspace" "0.17.0-next.f5433ece" + xterm "^4.4.0" + xterm-addon-fit "^0.3.0" + xterm-addon-search "^0.5.0" -"@theia/textmate-grammars@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/textmate-grammars/-/textmate-grammars-0.16.0-next.46a2d510.tgz#853cdf3aa99f8443e626e65aa3d72ffdcda2bae1" - integrity sha512-f7rsL9aQD2OvZNaBwMu1sD2jctQawQNLe9l6+nuaoH8bR+mnIbusG8BaKeATD4rU53EKRwVxXQa3oD+r+3YSDA== +"@theia/userstorage@0.17.0-next.f5433ece": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/userstorage/-/userstorage-0.17.0-next.f5433ece.tgz#1444f21ecdfbee4696421d47917ee117573030d5" + integrity sha512-BV8ph5fRniY1jrDQKknylirwxQSmDica+FFGXkn/7MaOPpdsi7llbpNbQnRpsgUzIiKjgPoRtqnveGyWpJaRvQ== dependencies: - "@theia/monaco" "0.16.0-next.46a2d510" - vscode-textmate "^4.0.1" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" -"@theia/userstorage@0.16.0-next.46a2d510": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/userstorage/-/userstorage-0.16.0-next.46a2d510.tgz#165746832a0e6b047b27258861b9ae727d4f3a23" - integrity sha512-ZYQs3nxWm8Tv3S6V0mmVunXfTWReBNUH1IzQpzwe5Sh7yJNg/UcNEPSgCjgjPrG9kbpmp4xnztmwMuWPnM4gTg== +"@theia/variable-resolver@0.17.0-next.f5433ece", "@theia/variable-resolver@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/variable-resolver/-/variable-resolver-0.17.0-next.f5433ece.tgz#f38bd42e47c836fe77eab2ab14ad8514c1a0122e" + integrity sha512-4Xj9d3xWoVR/OoIw2GOAsr6oGKUU6hTPwaye7lSD7TRgG8qJkkSiKStNtpUre+WgLC75YDPwxxgc10MPDe/U9w== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" -"@theia/variable-resolver@0.16.0-next.46a2d510", "@theia/variable-resolver@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/variable-resolver/-/variable-resolver-0.16.0-next.46a2d510.tgz#2b3f81d419d513e2b69139e407a51444ff176373" - integrity sha512-a7lRTP8MqIvkkYL+qpuCoQkAg8rc78GRY78K2yImIVj1gd4G70QWI3j9yfyMxyxVKZcg5iFOMryStvuMf8YgeQ== +"@theia/workspace@0.17.0-next.f5433ece", "@theia/workspace@next": + version "0.17.0-next.f5433ece" + resolved "https://registry.yarnpkg.com/@theia/workspace/-/workspace-0.17.0-next.f5433ece.tgz#81bfe63674f18e8b68b5f263cb2f4dd1d2cf9b94" + integrity sha512-+Sp94kXkAYA0hi9LV2xAk+GiGG4CGJbM2Wi8kTnteRT+vDAR/9K0faC1X0SDjQpJNAA0xoE8IwjhiRiIkblrJw== dependencies: - "@theia/core" "0.16.0-next.46a2d510" - -"@theia/workspace@0.16.0-next.46a2d510", "@theia/workspace@next": - version "0.16.0-next.46a2d510" - resolved "https://registry.yarnpkg.com/@theia/workspace/-/workspace-0.16.0-next.46a2d510.tgz#ea455eb505ab38476c3cff3384960960211b272e" - integrity sha512-UBO77QeAKJAc8New9pmNGKDeiNS4Ni9wwAldzoYa6+IUiAd6ZElwy2WMBFlCMEgjERuBpmhkXQ6pvXI9KD7rzw== - dependencies: - "@theia/core" "0.16.0-next.46a2d510" - "@theia/filesystem" "0.16.0-next.46a2d510" - "@theia/variable-resolver" "0.16.0-next.46a2d510" + "@theia/core" "0.17.0-next.f5433ece" + "@theia/filesystem" "0.17.0-next.f5433ece" + "@theia/variable-resolver" "0.17.0-next.f5433ece" ajv "^6.5.3" jsonc-parser "^2.0.2" moment "^2.21.0" @@ -2299,6 +2446,14 @@ "@types/connect" "*" "@types/node" "*" +"@types/bytebuffer@^5.0.40": + version "5.0.40" + resolved "https://registry.yarnpkg.com/@types/bytebuffer/-/bytebuffer-5.0.40.tgz#d6faac40dcfb09cd856cdc4c01d3690ba536d3ee" + integrity sha512-h48dyzZrPMz25K6Q4+NCwWaxwXany2FhQg/ErOcdZS1ZpsaDnDMZg8JYLMTGz7uvXKrcKGJUZJlZObyfgdaN9g== + dependencies: + "@types/long" "*" + "@types/node" "*" + "@types/caseless@*": version "0.12.2" resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8" @@ -2312,22 +2467,39 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.2.7": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.9.tgz#194332625ed2ae914aef00b8d5ca3b77e7924cc6" - integrity sha512-NeXgZj+MFL4izGqA4sapdYzkzQG+MtGra9vhQ58dnmDY++VgJaRUws+aLVV5zRJCYJl/8s9IjMmhiUw1WsKSmw== + version "4.2.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" + integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== -"@types/connect@*": +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/connect@*", "@types/connect@^3.4.32": version "3.4.33" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== dependencies: "@types/node" "*" +"@types/cookie@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" + integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== + "@types/dateformat@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/dateformat/-/dateformat-3.0.1.tgz#98d747a2e5e9a56070c6bf14e27bff56204e34cc" integrity sha512-KlPPdikagvL6ELjWsljbyDIPzNCeliYkqRpI+zea99vBBbCIA5JNshZAwQKTON139c87y9qvTFVgkFd14rtS4g== +"@types/deepmerge@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/deepmerge/-/deepmerge-2.2.0.tgz#6f63896c217f3164782f52d858d9f3a927139f64" + integrity sha512-FEQYDHh6+Q+QXKSrIY46m+/lAmAj/bk4KpLaam+hArmzaVpMBHLcfwOH2Q2UOkWM7XsdY9PmZpGyPAjh/JRGhQ== + dependencies: + deepmerge "*" + "@types/diff@^3.2.2": version "3.5.3" resolved "https://registry.yarnpkg.com/@types/diff/-/diff-3.5.3.tgz#7c6c3721ba454d838790100faf7957116ee7deab" @@ -2339,17 +2511,17 @@ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== "@types/express-serve-static-core@*": - version "4.17.2" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz#f6f41fa35d42e79dbf6610eccbb2637e6008a0cf" - integrity sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg== + version "4.17.3" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz#dc8068ee3e354d7fba69feb86b3dfeee49b10f09" + integrity sha512-sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ== dependencies: "@types/node" "*" "@types/range-parser" "*" "@types/express@^4.16.0": - version "4.17.2" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz#a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c" - integrity sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA== + version "4.17.3" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.3.tgz#38e4458ce2067873b09a73908df488870c303bd9" + integrity sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "*" @@ -2371,11 +2543,25 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/google-protobuf@^3.7.1": +"@types/glob@^5.0.35": + version "5.0.36" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.36.tgz#0c80a9c8664fc7d19781de229f287077fd622cb2" + integrity sha512-KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/google-protobuf@^3.7.2": version "3.7.2" resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.7.2.tgz#cd8a360c193ce4d672575a20a79f49ba036d38d2" integrity sha512-ifFemzjNchFBCtHS6bZNhSZCBu7tbtOe0e8qY0z2J4HtFXmPJjm6fXSaQsTG7yhShBEZtt2oP/bkwu5k+emlkQ== +"@types/js-yaml@^3.12.2": + version "3.12.3" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.3.tgz#abf383c5b639d0aa8b8c4a420d6a85f703357d6c" + integrity sha512-otRe77JNNWzoVGLKw8TCspKswRoQToys4tuL6XYVBFxjgeM0RUrx7m3jkaTdxILxeGry3zM8mGYkGXMeQ02guA== + "@types/lodash.debounce@4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.3.tgz#d712aee9e6136be77f70523ed9f0fc049a6cf15a" @@ -2383,6 +2569,13 @@ dependencies: "@types/lodash" "*" +"@types/lodash.debounce@^4.0.6": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60" + integrity sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ== + dependencies: + "@types/lodash" "*" + "@types/lodash.throttle@^4.1.3": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/lodash.throttle/-/lodash.throttle-4.1.6.tgz#f5ba2c22244ee42ff6c2c49e614401a870c1009c" @@ -2395,12 +2588,17 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== +"@types/long@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/mime-types@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.0.tgz#9ca52cda363f699c69466c2a6ccdaad913ea7a73" integrity sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM= -"@types/mime@*": +"@types/mime@*", "@types/mime@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== @@ -2430,14 +2628,14 @@ integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== "@types/node@*", "@types/node@>= 8": - version "13.7.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz#238eb34a66431b71d2aaddeaa7db166f25971a0d" - integrity sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA== + version "12.12.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.31.tgz#d6b4f9645fee17f11319b508fb1001797425da51" + integrity sha512-T+wnJno8uh27G9c+1T+a1/WYCHzLeDqtsGJkoEdSp2X8RTh3oOCZQcUnjAx90CS8cmmADX51O0FI/tu9s0yssg== "@types/node@^10.12.18", "@types/node@^10.14.22": - version "10.17.15" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.15.tgz#bfff4e23e9e70be6eec450419d51e18de1daf8e7" - integrity sha512-daFGV9GSs6USfPgxceDA8nlSe48XrVCJfDeYm7eokxq/ye7iuOH87hKXgMtEAVLFapkczbZsx868PMDT1Y0a6A== + version "10.17.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.17.tgz#7a183163a9e6ff720d86502db23ba4aade5999b8" + integrity sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q== "@types/p-debounce@^1.0.1": version "1.0.1" @@ -2467,9 +2665,9 @@ integrity sha512-rm5GU5sefQpg2d/DQ+fMDZnl9aPiJjJ9FYA12isIocNTZqu9VDZRgCRBx3oYFEdmDpmPmY4hxxmY/+1a84Rtzg== "@types/puppeteer@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-2.0.0.tgz#82c04f93367e2d3396e371a71be1167332148838" - integrity sha512-QPHXIcaPcijMbvizoM7PRL97Rm+aM8J2DmgTz2tt79b15PqbyeaCppYonvPLHQ/Q5ea92BUHDpv4bsqtiTy8kQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-2.0.1.tgz#83a1d7f0a1c2e0edbbb488b4d8fb54b14ec9d455" + integrity sha512-G8vEyU83Bios+dzs+DZGpAirDmMqRhfFBJCkFrg+A5+6n5EPPHxwBLImJto3qjh0mrBXbLBCyuahhhtTrAfR5g== dependencies: "@types/node" "*" @@ -2486,18 +2684,18 @@ "@types/react" "*" "@types/react-select@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-3.0.10.tgz#c32e0832d368756e6db53ccedf64f767728545d4" - integrity sha512-oUHXqvbkRhC07q5JjeY6hE+NUqgUM6CyaRXEKYPvMCBqUOuLnYltyhiNx6Jpb+iFpYtNHSQtF4dNJfMdMooKoQ== + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-3.0.11.tgz#b69b6fe1999bedfb05bd7499327206e16a7fb00e" + integrity sha512-ggUsAdZuRFtLMjGMcdf9SeeE678TRq3lAKj1fbwGM8JAZTIzCu1CED0dvJgFVCPT2bDs8TcBD6+6SN6i4e7JYQ== dependencies: "@types/react" "*" "@types/react-dom" "*" "@types/react-transition-group" "*" "@types/react-transition-group@*": - version "4.2.3" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.2.3.tgz#4924133f7268694058e415bf7aea2d4c21131470" - integrity sha512-Hk8jiuT7iLOHrcjKP/ZVSyCNXK73wJAUz60xm0mVhiRujrdiI++j4duLiL282VGxwAgxetHQFfqA29LgEeSkFA== + version "4.2.4" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.2.4.tgz#c7416225987ccdb719262766c1483da8f826838d" + integrity sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA== dependencies: "@types/react" "*" @@ -2510,9 +2708,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^16.4.1": - version "16.9.19" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.19.tgz#c842aa83ea490007d29938146ff2e4d9e4360c40" - integrity sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A== + version "16.9.25" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.25.tgz#6ae2159b40138c792058a23c3c04fd3db49e929e" + integrity sha512-Dlj2V72cfYLPNscIG3/SMUOzhzj7GK3bpSrfefwt2YT9GLynvLCCZjbhyF6VsT0q0+aRACRX03TDJGb7cA0cqg== dependencies: "@types/prop-types" "*" csstype "^2.2.0" @@ -2528,17 +2726,17 @@ form-data "^2.5.0" "@types/requestretry@^1.12.3": - version "1.12.5" - resolved "https://registry.yarnpkg.com/@types/requestretry/-/requestretry-1.12.5.tgz#c8abf9eb173a9c61d7099ca378acca3e8a483007" - integrity sha512-iEs/MpRq8E+4V4wu9OseeHI0AtgLns4a+/jukKOjUJmVh36Ai+r4E5603pQwRx6mQrS0dhuq319crz8Q9lyBkA== + version "1.12.6" + resolved "https://registry.yarnpkg.com/@types/requestretry/-/requestretry-1.12.6.tgz#295bf2bc8e9e0408ff8196e7f6e5bd0db90d3ac5" + integrity sha512-d/n2yiYMmouflwA2sgLJVhNeO00zx7UeCLlTW1xUpnq84Gg4NnPbKyEObyOzfSo91v4OKWwHvoB32rPGIB/VpA== dependencies: "@types/node" "*" "@types/request" "*" "@types/rimraf@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.3.tgz#0199a46af106729ba14213fda7b981278d8c84f2" - integrity sha512-dZfyfL/u9l/oi984hEXdmAjX3JHry7TLWw43u1HQ8HhPv6KtfxnrZ3T/bleJ0GEvnk9t5sM7eePkgMqz3yBcGg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.4.tgz#403887b0b53c6100a6c35d2ab24f6ccc042fec46" + integrity sha512-8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q== dependencies: "@types/glob" "*" "@types/node" "*" @@ -2553,7 +2751,7 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45" integrity sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ== -"@types/serve-static@*": +"@types/serve-static@*", "@types/serve-static@^1.13.3": version "1.13.3" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== @@ -2561,6 +2759,11 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" +"@types/sinon@^7.5.2": + version "7.5.2" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.5.2.tgz#5e2f1d120f07b9cda07e5dedd4f3bf8888fccdb9" + integrity sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -2572,17 +2775,17 @@ integrity sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ== "@types/tar-fs@^1.16.1": - version "1.16.2" - resolved "https://registry.yarnpkg.com/@types/tar-fs/-/tar-fs-1.16.2.tgz#6f5acea15d3b7777b8bf3f1c6d4e80ce71288f34" - integrity sha512-eds/pbRf0Fe0EKmrHDbs8mRkfbjz2upAdoUfREw14dPboZaHqqZ1Y+uVeoakoPavpZMpj22nhUTAYkX5bz3DXA== + version "1.16.3" + resolved "https://registry.yarnpkg.com/@types/tar-fs/-/tar-fs-1.16.3.tgz#425b2b817c405d13d051f36ec6ec6ebd25e31069" + integrity sha512-Y+fdeg11tb9J3UNIatNtrTPM1i8U+WLv2mMhZ3W13mtU19stCgrXJ4iXLkTpoF8jqHi3T/qTS8+fQ3IPzXxpuA== dependencies: "@types/node" "*" "@types/tar-stream" "*" "@types/tar-stream@*": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/tar-stream/-/tar-stream-1.6.1.tgz#67d759068ff781d976cad978893bb7a334ec8809" - integrity sha512-pYCDOPuRE+4tXFk1rSMYiuI+kSrXiJ4av1bboQbkcEBA2rqwEWfIn9kdMSH+5nYu58WksHuxwx+7kVbtg0Le7w== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/tar-stream/-/tar-stream-2.1.0.tgz#884b1cbe6c35ff459c05a5eba86b406805943ef6" + integrity sha512-s1UQxQUVMHbSkCC0X4qdoiWgHF8DoyY1JjQouFsnk/8ysoTdBaiCHud/exoAZzKDbzAXVc+ah6sczxGVMAohFw== dependencies: "@types/node" "*" @@ -2594,6 +2797,13 @@ "@types/minipass" "*" "@types/node" "*" +"@types/temp@^0.8.34": + version "0.8.34" + resolved "https://registry.yarnpkg.com/@types/temp/-/temp-0.8.34.tgz#03e4b3cb67cbb48c425bbf54b12230fef85540ac" + integrity sha512-oLa9c5LHXgS6UimpEVp08De7QvZ+Dfu5bMQuWyMhf92Z26Q10ubEMOWy9OEfUdzW7Y/sDWVHmUaLFtmnX/2j0w== + dependencies: + "@types/node" "*" + "@types/touch@0.0.1": version "0.0.1" resolved "https://registry.yarnpkg.com/@types/touch/-/touch-0.0.1.tgz#10289d42e80530f3997f3413eab1ac6ef9027d0c" @@ -2612,23 +2822,23 @@ source-map "^0.6.1" "@types/uuid@^3.4.3": - version "3.4.7" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.7.tgz#51d42247473bc00e38cc8dfaf70d936842a36c03" - integrity sha512-C2j2FWgQkF1ru12SjZJyMaTPxs/f6n90+5G5qNakBxKXjTBc/YTSelHh4Pz1HUDwxFXD9WvpQhOGCDC+/Y4mIQ== + version "3.4.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.8.tgz#4ba887fcef88bd9a7515ca2de336d691e3e18318" + integrity sha512-zHWce3allXWSmRx6/AGXKCtSOA7JjeWd2L3t4aHfysNk8mouQnWCocveaT7a4IEIlPVHp81jzlnknqTgCjCLXA== "@types/webpack-sources@*": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.6.tgz#3d21dfc2ec0ad0c77758e79362426a9ba7d7cbcb" - integrity sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ== + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.7.tgz#0a330a9456113410c74a5d64180af0cbca007141" + integrity sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.6.1" "@types/webpack@^4.41.2": - version "4.41.6" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.6.tgz#c76afbdef59159d12e3e1332dc264b75574722a2" - integrity sha512-iWRpV5Ej+8uKrgxp6jXz3v7ZTjgtuMXY+rsxQjFNU0hYCnHkpA7vtiNffgxjuxX4feFHBbz0IF76OzX2OqDYPw== + version "4.41.8" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.8.tgz#d2244f5f612ee30230a5c8c4ae678bce90d27277" + integrity sha512-mh4litLHTlDG84TGCFv1pZldndI34vkrW9Mks++Zx4KET7DRMoCXUvLbTISiuF4++fMgNnhV9cc1nCXJQyBYbQ== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -2660,150 +2870,149 @@ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-11.1.5.tgz#8d71dfe4848ac5d714b75eca3df9cac75a4f8dac" integrity sha512-1jmXgoIyzxQSm33lYgEXvegtkhloHbed2I0QGlTN66U2F9/ExqJWSCSmaWC0IB/g1tW+IYSp+tDhcZBYB1ZGog== -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== dependencies: - "@webassemblyjs/wast-printer" "1.8.5" + "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" + "@webassemblyjs/ast" "1.9.0" -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -2847,9 +3056,9 @@ accepts@~1.3.7: negotiator "0.6.2" acorn@^6.2.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" - integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== agent-base@4, agent-base@^4.3.0: version "4.3.0" @@ -2887,10 +3096,10 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.3, ajv@^6.5.5: - version "6.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9" - integrity sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.3, ajv@^6.5.5: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -3117,6 +3326,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-reset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-reset/-/ansi-reset-0.1.1.tgz#e7e71292c3c7ddcd4d62ef4a6c7c05980911c3b7" @@ -3143,6 +3357,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" @@ -3225,11 +3447,6 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^1.0.10, argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -3325,6 +3542,14 @@ asap@^2.0.0, asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= +ascli@~1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ascli/-/ascli-1.0.1.tgz#bcfa5974a62f18e81cabaeb49732ab4a88f906bc" + integrity sha1-vPpZdKYvGOgcq660lzKrSoj5Brw= + dependencies: + colour "~0.7.1" + optjs "~3.2.2" + asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -3636,14 +3861,15 @@ babel-helpers@^6.24.1: babel-template "^6.24.1" babel-loader@^8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" pify "^4.0.1" + schema-utils "^2.6.5" babel-messages@^6.23.0: version "6.23.0" @@ -3667,14 +3893,14 @@ babel-plugin-dynamic-import-node@^2.3.0: object.assign "^4.1.0" babel-plugin-emotion@^10.0.27: - version "10.0.27" - resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.27.tgz#59001cf5de847c1d61f2079cd906a90a00d3184f" - integrity sha512-SUNYcT4FqhOqvwv0z1oeYhqgheU8qrceLojuHyX17ngo7WtWqN5I9l3IGHzf21Xraj465CVzF4IvOlAF+3ed0A== + version "10.0.29" + resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.29.tgz#89d8e497091fcd3d10331f097f1471e4cc3f35b4" + integrity sha512-7Jpi1OCxjyz0k163lKtqP+LHMg5z3S6A7vMBfHnF06l2unmtsOmFDzZBpGf0CWo1G4m8UACfVcDJiSiRuu/cSw== dependencies: "@babel/helper-module-imports" "^7.0.0" - "@emotion/hash" "0.7.4" + "@emotion/hash" "0.8.0" "@emotion/memoize" "0.7.4" - "@emotion/serialize" "^0.11.15" + "@emotion/serialize" "^0.11.16" babel-plugin-macros "^2.0.0" babel-plugin-syntax-jsx "^6.18.0" convert-source-map "^1.5.0" @@ -4422,14 +4648,15 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.8.3, browserslist@^4.8.5: - version "4.8.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.6.tgz#96406f3f5f0755d272e27a66f4163ca821590a7e" - integrity sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg== +browserslist@^4.8.3, browserslist@^4.9.1: + version "4.11.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.0.tgz#aef4357b10a8abda00f97aac7cd587b2082ba1ad" + integrity sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A== dependencies: - caniuse-lite "^1.0.30001023" - electron-to-chromium "^1.3.341" - node-releases "^1.1.47" + caniuse-lite "^1.0.30001035" + electron-to-chromium "^1.3.380" + node-releases "^1.1.52" + pkg-up "^3.1.0" btoa-lite@^1.0.0: version "1.0.0" @@ -4484,9 +4711,9 @@ buffer@^4.3.0: isarray "^1.0.0" buffer@^5.2.1: - version "5.4.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" - integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== + version "5.5.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" + integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -4521,6 +4748,13 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== +bytebuffer@~5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" + integrity sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0= + dependencies: + long "~3" + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" @@ -4566,9 +4800,9 @@ cacache@^11.2.0: y18n "^4.0.0" cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -4660,7 +4894,7 @@ camelcase-keys@^4.0.0: map-obj "^2.0.0" quick-lru "^1.0.0" -camelcase@^2.0.0: +camelcase@^2.0.0, camelcase@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= @@ -4686,14 +4920,14 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30001027" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001027.tgz#45dce6c61128324c4534e18ceff6e58e8de76694" - integrity sha512-Ublzr9IN2X91lTvJzehRUlK+hREae1Hi+0TIh7rH5fAcsuPWycwBAszhRGF22gf5xbDXXUdYQ6fSfPSQEqQhkw== + version "1.0.30001038" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001038.tgz#439606cdafff1e10e0a795a7ff72fe26965fe8ba" + integrity sha512-yeQ2l99M9upOgMIRfZEdes6HuPbQiRZIMBumUwdXeEQz+faSXUZtZ8xeyEdU+TlJckH09M5NtM038sjKsRa2ow== -caniuse-lite@^1.0.30001023: - version "1.0.30001027" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz#283e2ef17d94889cc216a22c6f85303d78ca852d" - integrity sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg== +caniuse-lite@^1.0.30001035: + version "1.0.30001038" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" + integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== caseless@~0.12.0: version "0.12.0" @@ -4929,6 +5163,15 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= +cliui@^3.0.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -4947,6 +5190,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -5029,12 +5281,19 @@ color-convert@^1.3.0, color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -5079,6 +5338,11 @@ colors@~1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= +colour@~0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" + integrity sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g= + columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -5134,7 +5398,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.5.0: +concat-stream@^1.5.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -5180,6 +5444,16 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" +connect@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -5302,7 +5576,7 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: +cookie@0.4.0, cookie@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== @@ -5511,18 +5785,18 @@ css-loader@~0.26.1: source-list-map "^0.1.7" css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" - integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + version "0.7.2" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" + integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" + cssesc "^3.0.0" + fastparse "^1.1.2" + regexpu-core "^4.6.0" -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== "cssnano@>=2.6.1 <4", cssnano@^3.10.0: version "3.10.0" @@ -5571,9 +5845,9 @@ csso@~2.3.1: source-map "^0.5.3" csstype@^2.2.0, csstype@^2.5.7, csstype@^2.6.7: - version "2.6.8" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431" - integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA== + version "2.6.9" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" + integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== currently-unhandled@^0.4.1: version "0.4.1" @@ -5756,6 +6030,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deepmerge@*, deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + deepmerge@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.0.1.tgz#25c1c24f110fb914f80001b925264dd77f3f4312" @@ -5882,7 +6161,7 @@ diff@3.5.0, diff@^3.4.0, diff@^3.5.0: resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -diff@^4.0.1: +diff@^4.0.1, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== @@ -5911,14 +6190,7 @@ dir-glob@^2.0.0, dir-glob@^2.2.2: dependencies: path-type "^3.0.0" -dom-helpers@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - -dom-helpers@^5.0.0: +dom-helpers@^5.0.0, dom-helpers@^5.0.1: version "5.1.3" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821" integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw== @@ -6065,9 +6337,9 @@ electron-download@^4.1.0, electron-download@^4.1.1: sumchecker "^2.0.2" electron-rebuild@^1.8.6: - version "1.10.0" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-1.10.0.tgz#06d72f70879e67af8d30b5c0ecfe8aadaba06602" - integrity sha512-n10i30GJg7JH8yZL3ZY3x80YtKmSYuuN8cl+3Feljm+sQDU4rUW1jbnYGu0eUHlK3kPOiNWPtW7srGcwZ9p1zQ== + version "1.10.1" + resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-1.10.1.tgz#f5cb911586e703fe78e2a0e9f644e7a76f137d97" + integrity sha512-KSqp0Xiu7CCvKL2aEdPp/vNe2Rr11vaO8eM/wq9gQJTY02UjtAJ3l7WLV7Mf8oR+UJReJO8SWOWs/FozqK8ggA== dependencies: colors "^1.3.3" debug "^4.1.1" @@ -6086,10 +6358,10 @@ electron-store@^2.0.0: dependencies: conf "^2.0.0" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.341: - version "1.3.349" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.349.tgz#663f26a69d348a462df47b4d7ab162a2f29bbcb7" - integrity sha512-uEb2zs6EJ6OZIqaMsCSliYVgzE/f7/s1fLWqtvRtHg/v5KBF2xds974fUnyatfxIDgkqzQVwFtam5KExqywx0Q== +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.380: + version "1.3.386" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.386.tgz#224f97c808da76014096848f80bb9342b6a95cdb" + integrity sha512-M7JHfp32Bq6Am59AWgglh2d3nqe6y8Y94Vcb/AXUsO3DGvKUHYI5ML9+U5oNShfdOEfurrrjKSoSgFt2mz7mpw== electron@^4.2.11: version "4.2.12" @@ -6123,11 +6395,21 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -6187,9 +6469,9 @@ err-code@^1.0.0: integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= errlop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.0.0.tgz#52b97d35da1b0795e2647b5d2d3a46d17776f55a" - integrity sha512-z00WIrQhtOMUnjdTG0O4f6hMG64EVccVDBy2WwgjcF8S4UB1exGYuc2OFwmdQmsJwLQVEIHWHPCz/omXXgAZHw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.1.0.tgz#a9df1d2e5b1359e95c3fc0bf3f1b68fa39017260" + integrity sha512-sEmQX03aJkWsqTPDYaymq3ROJmKxMHhFS4UN8fWwr5ZiRtw3p61QHRk2QQj68DiaTIXWujJP+uEUS1Zx3spxlw== errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -6218,9 +6500,9 @@ error@^7.0.2: string-template "~0.2.1" es-abstract@^1.17.0-next.1: - version "1.17.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" @@ -6255,7 +6537,7 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -escape-html@~1.0.3: +escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= @@ -6551,14 +6833,14 @@ extglob@^2.0.4: to-regex "^3.0.1" extract-zip@^1.0.3, extract-zip@^1.6.6: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" extsprintf@1.3.0: version "1.3.0" @@ -6604,18 +6886,11 @@ fast-plist@^0.1.2: resolved "https://registry.yarnpkg.com/fast-plist/-/fast-plist-0.1.2.tgz#a45aff345196006d406ca6cdcd05f69051ef35b8" integrity sha1-pFr/NFGWAG1AbKbNzQX2kFHvNbg= -fastparse@^1.1.1: +fastparse@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= - dependencies: - pend "~1.2.0" - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -6624,9 +6899,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== figures@^1.7.0: version "1.7.0" @@ -6705,6 +6980,15 @@ filenamify@^2.0.0: strip-outer "^1.0.0" trim-repeated "^1.0.0" +filenamify@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.1.0.tgz#54d110810ae74eebfe115c1b995bd07e03cf2184" + integrity sha512-KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + fill-range@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" @@ -6733,7 +7017,7 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: +finalhandler@1.1.2, finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== @@ -6755,7 +7039,7 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -6765,12 +7049,12 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: pkg-dir "^3.0.0" find-cache-dir@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" - integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" - make-dir "^3.0.0" + make-dir "^3.0.2" pkg-dir "^4.1.0" find-git-exec@^0.0.2: @@ -6816,7 +7100,7 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -6851,9 +7135,9 @@ flatten@^1.0.2: integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== flow-parser@^0.*: - version "0.118.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.118.0.tgz#81671a7649789dccd932aa24f9e4727dc80afa00" - integrity sha512-PM3aKA5K3e5kK2hJPsSVdQD4/SVZUQni9qfB0+JHBCjqoAS5mSe3SlhLR9TlH3WDQccL0H2b6zpP8LjOzx9Wtg== + version "0.121.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f" + integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg== flush-write-stream@^1.0.0: version "1.1.1" @@ -7020,9 +7304,9 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + version "1.2.12" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" + integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== dependencies: bindings "^1.5.0" nan "^2.12.1" @@ -7229,12 +7513,12 @@ github-username@^4.0.0: gh-got "^6.0.0" glob-all@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" - integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= + version "3.2.1" + resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.2.1.tgz#082ca81afd2247cbd3ed2149bb2630f4dc877d95" + integrity sha512-x877rVkzB3ipid577QOp+eQCR6M5ZyiwrtaYgrX/z3EThaSPFtLDwBXFHc3sH1cG0R0vFYI5SRYeWMMSEyXkUw== dependencies: - glob "^7.0.5" - yargs "~1.2.6" + glob "^7.1.2" + yargs "^15.3.1" glob-base@^0.3.0: version "0.3.0" @@ -7260,9 +7544,9 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" @@ -7294,7 +7578,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -7380,10 +7664,10 @@ google-protobuf@3.5.0: resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.5.0.tgz#b8cc63c74d83457bd8a9a904503c8efb26bca339" integrity sha1-uMxjx02DRXvYqakEUDyO+ya8ozk= -google-protobuf@^3.11.0: - version "3.11.3" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.11.3.tgz#660977f5de29cc8f647172a170602887102fa677" - integrity sha512-Sp8E+0AJLxmiPwAk9VH3MkYAmYYheNUhywIyXOS7wvRkqbIYcHtGzJzIYicNqYsqgKmY35F9hxRkI+ZTqTB4Tg== +google-protobuf@^3.11.4: + version "3.11.4" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.11.4.tgz#598ca405a3cfa917a2132994d008b5932ef42014" + integrity sha512-lL6b04rDirurUBOgsY2+LalI6Evq8eH5TcNzi7TYQ3BsIWelT0KSOQSBsXuavEkNf+odQU6c0lgz3UsZXeNX9Q== got@^7.0.0: version "7.1.0" @@ -7438,12 +7722,12 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1. resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= -grouped-queue@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c" - integrity sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw= +grouped-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-1.0.0.tgz#5bdb97934a9a17b19626ff3cc23c103f2622ef49" + integrity sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA== dependencies: - lodash "^4.17.2" + lodash "^4.17.15" growl@1.10.5: version "1.10.5" @@ -7457,6 +7741,18 @@ grpc-tools@^1.8.0: dependencies: node-pre-gyp "^0.12.0" +grpc@^1.24.2: + version "1.24.2" + resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.24.2.tgz#76d047bfa7b05b607cbbe3abb99065dcefe0c099" + integrity sha512-EG3WH6AWMVvAiV15d+lr+K77HJ/KV/3FvMpjKjulXHbTwgDZkhkcWbwhxFAoTdxTkQvy0WFcO3Nog50QBbHZWw== + dependencies: + "@types/bytebuffer" "^5.0.40" + lodash.camelcase "^4.3.0" + lodash.clone "^4.5.0" + nan "^2.13.2" + node-pre-gyp "^0.14.0" + protobufjs "^5.0.3" + grpc_tools_node_protoc_ts@^2.5.8: version "2.5.10" resolved "https://registry.yarnpkg.com/grpc_tools_node_protoc_ts/-/grpc_tools_node_protoc_ts-2.5.10.tgz#85f825f22e2103c70bfc8fc46bb9e45d5faa9b22" @@ -7582,6 +7878,11 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" @@ -7721,9 +8022,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== html-comment-regex@^1.1.0: version "1.1.2" @@ -8049,6 +8350,11 @@ inversify@^5.0.1: resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.1.tgz#500d709b1434896ce5a0d58915c4a4210e34fb6e" integrity sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ== +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -8059,10 +8365,10 @@ ip@1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^2.0.0: version "2.1.0" @@ -8229,6 +8535,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -8617,17 +8928,17 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +json5@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" jsonc-parser@^2.0.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.0.tgz#f206f87f9d49d644b7502052c04e82dd6392e9ef" - integrity sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA== + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" + integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== jsonfile@^2.1.0: version "2.4.0" @@ -8665,6 +8976,11 @@ jszip@^2.4.0: dependencies: pako "~1.0.2" +just-extend@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" + integrity sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA== + keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -8710,6 +9026,13 @@ lazy-cache@^2.0.1, lazy-cache@^2.0.2: dependencies: set-getter "^0.1.0" +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -8900,13 +9223,13 @@ loader-utils@^0.2.5: json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== +loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" - emojis-list "^2.0.0" + emojis-list "^3.0.0" json5 "^1.0.1" locate-path@^2.0.0: @@ -8947,6 +9270,11 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= +lodash.clone@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -9017,7 +9345,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -9030,12 +9358,12 @@ log-ok@^0.1.1: ansi-green "^0.1.1" success-symbol "^0.1.0" -log-symbols@2.2.0, log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== +log-symbols@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== dependencies: - chalk "^2.0.1" + chalk "^2.4.2" log-symbols@^1.0.2: version "1.0.2" @@ -9044,6 +9372,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + log-update@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" @@ -9073,6 +9408,11 @@ logging-helpers@^1.0.0: isobject "^3.0.0" log-utils "^0.2.1" +long@~3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + integrity sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s= + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -9113,6 +9453,11 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +macaddress@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.9.tgz#3579b8b9acd5b96b4553abf0f394185a86813cb3" + integrity sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w== + macos-release@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" @@ -9133,18 +9478,13 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: +make-dir@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== dependencies: semver "^6.0.0" -make-error@^1.1.1: - version "1.3.5" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" - integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== - make-fetch-happen@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" @@ -9162,11 +9502,6 @@ make-fetch-happen@^5.0.0: socks-proxy-agent "^4.0.0" ssri "^6.0.0" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -9421,7 +9756,7 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3: +mime@^2.0.3, mime@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== @@ -9466,20 +9801,10 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" - integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= - -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minimist@~0.0.1: version "0.0.10" @@ -9553,17 +9878,24 @@ mkdirp@*: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" + integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== dependencies: - minimist "0.0.8" + minimist "^1.2.5" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" mocha@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.0.1.tgz#276186d35a4852f6249808c6dd4a1376cbf6c6ce" - integrity sha512-9eWmWTdHLXh72rGrdZjNbG3aa1/3NRPpul1z0D979QpEnFdCG0Q5tv834N+94QEN2cysfV72YocQ3fn87s70fg== + version "7.1.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.1.tgz#89fbb30d09429845b1bb893a830bf5771049a441" + integrity sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" @@ -9576,9 +9908,9 @@ mocha@^7.0.0: growl "1.10.5" he "1.2.0" js-yaml "3.13.1" - log-symbols "2.2.0" + log-symbols "3.0.0" minimatch "3.0.4" - mkdirp "0.5.1" + mkdirp "0.5.3" ms "2.1.1" node-environment-flags "1.0.6" object.assign "4.1.0" @@ -9586,8 +9918,8 @@ mocha@^7.0.0: supports-color "6.0.0" which "1.3.1" wide-align "1.1.3" - yargs "13.3.0" - yargs-parser "13.1.1" + yargs "13.3.2" + yargs-parser "13.1.2" yargs-unparser "1.6.0" modify-values@^1.0.0: @@ -9709,7 +10041,7 @@ nan@2.10.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA== -nan@^2.0.0, nan@^2.10.0, nan@^2.12.1, nan@^2.14.0: +nan@^2.0.0, nan@^2.10.0, nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -9742,9 +10074,9 @@ ncp@^2.0.0, ncp@~2.0.0: integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= needle@^2.2.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz#3342dea100b7160960a450dc8c22160ac712a528" - integrity sha512-DUzITvPVDUy6vczKKYTnWc/pBZ0EnjMJnQ3y+Jo5zfKFimJs7S3HFCxCRZYB9FUZcrzUQr3WsmvZgddMEIZv6w== + version "2.3.3" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" + integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -9765,10 +10097,21 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +nise@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nise/-/nise-4.0.3.tgz#9f79ff02fa002ed5ffbc538ad58518fa011dc913" + integrity sha512-EGlhjm7/4KvmmE6B/UFsKh7eHykRl9VH+au8dduHLCyWUO/hr7+N+WtTvDUwc9zHuM1IaIJs/0lQ6Ag1jDkQSg== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^6.0.0" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" + node-abi@^2.11.0, node-abi@^2.2.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.14.0.tgz#24650e24e8ffad2b61352519263f0cf4e2ddbfe9" - integrity sha512-y54KGgEOHnRHlGQi7E5UiryRkH8bmksmQLj/9iLAjoje743YS+KaKB/sDYXgqtT0J16JT3c3AYJZNI98aU/kYg== + version "2.15.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.15.0.tgz#51d55cc711bd9e4a24a572ace13b9231945ccb10" + integrity sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg== dependencies: semver "^5.4.1" @@ -9791,9 +10134,9 @@ node-environment-flags@1.0.6: semver "^5.7.0" node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -9901,13 +10244,34 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.47: - version "1.1.49" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.49.tgz#67ba5a3fac2319262675ef864ed56798bb33b93e" - integrity sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg== +node-pre-gyp@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + +node-releases@^1.1.52: + version "1.1.52" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" + integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== dependencies: semver "^6.3.0" +node-uuid@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= + nomnom@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" @@ -9929,9 +10293,9 @@ noop-logger@^0.1.1: abbrev "1" nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" @@ -10010,9 +10374,9 @@ npm-conf@^1.1.0: pify "^3.0.0" npm-lifecycle@^3.1.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz#de6975c7d8df65f5150db110b57cce498b0b604c" - integrity sha512-tgs1PaucZwkxECGKhC/stbEgFyc3TGh2TJcg2CDr6jbvQRdteHNhmMeljRzpe4wgFAXQADoy1cSqqi7mtiAa5A== + version "3.1.5" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" @@ -10254,6 +10618,11 @@ optimist@~0.3.5: dependencies: wordwrap "~0.0.2" +optjs@~3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/optjs/-/optjs-3.2.2.tgz#69a6ce89c442a44403141ad2f9b370bd5bb6f4ee" + integrity sha1-aabOicRCpEQDFBrS+bNwvVu29O4= + ora@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" @@ -10286,6 +10655,13 @@ os-homedir@^1.0.0, os-homedir@^1.0.1: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -10640,6 +11016,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -10700,9 +11083,9 @@ performance-now@^2.1.0: integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4: - version "2.2.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" - integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -10759,6 +11142,13 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -11166,6 +11556,29 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= +protobufjs@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" + integrity sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA== + dependencies: + ascli "~1" + bytebuffer "~5" + glob "^7.0.5" + yargs "^3.10.0" + +protoc@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/protoc/-/protoc-1.0.4.tgz#fd0ba07132c459df80c6135889bd5cc92f0afec2" + integrity sha512-2crtOP6xhacdWBW+lkhQJmzwg2cPmqSsh51FOHQmgTd8dKksO9sFzlhzteh6x+qPTfPU7h6smC1eg5d9bqGpTQ== + dependencies: + glob "^7.1.6" + mkdirp "^0.5.1" + node-uuid "^1.4.8" + request "^2.88.0" + rimraf "^3.0.0" + unzipper "^0.10.5" + vinyl "^2.2.0" + protocols@^1.1.0, protocols@^1.4.0: version "1.4.7" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" @@ -11179,17 +11592,17 @@ protoduck@^5.0.1: genfun "^5.0.0" proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: forwarded "~0.1.2" - ipaddr.js "1.9.0" + ipaddr.js "1.9.1" proxy-from-env@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== prr@~1.0.1: version "1.0.1" @@ -11209,9 +11622,9 @@ pseudomap@^1.0.2: integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: - version "1.7.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" - integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== public-encrypt@^4.0.0: version "4.0.3" @@ -11405,14 +11818,14 @@ react-autosize-textarea@^7.0.0: prop-types "^15.5.6" react-dom@^16.4.1: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11" - integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.18.0" + scheduler "^0.19.1" react-input-autosize@^2.2.2: version "2.2.2" @@ -11422,9 +11835,9 @@ react-input-autosize@^2.2.2: prop-types "^15.5.8" react-is@^16.8.1: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" - integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-lifecycles-compat@^3.0.4: version "3.0.4" @@ -11440,9 +11853,9 @@ react-perfect-scrollbar@^1.5.3: prop-types "^15.6.1" react-select@^3.0.4: - version "3.0.8" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.0.8.tgz#06ff764e29db843bcec439ef13e196865242e0c1" - integrity sha512-v9LpOhckLlRmXN5A6/mGGEft4FMrfaBFTGAnuPHcUgVId7Je42kTq9y0Z+Ye5z8/j0XDT3zUqza8gaRaI1PZIg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.0.tgz#ab098720b2e9fe275047c993f0d0caf5ded17c27" + integrity sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g== dependencies: "@babel/runtime" "^7.4.4" "@emotion/cache" "^10.0.9" @@ -11451,17 +11864,17 @@ react-select@^3.0.4: memoize-one "^5.0.0" prop-types "^15.6.0" react-input-autosize "^2.2.2" - react-transition-group "^2.2.1" + react-transition-group "^4.3.0" -react-transition-group@^2.2.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== +react-transition-group@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683" + integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw== dependencies: - dom-helpers "^3.4.0" + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" loose-envify "^1.4.0" prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" react-virtualized@^9.20.0: version "9.21.2" @@ -11476,9 +11889,9 @@ react-virtualized@^9.20.0: react-lifecycles-compat "^3.0.4" react@^16.4.1: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" - integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -11585,9 +11998,9 @@ readable-stream@1.0.x: string_decoder "~0.10.x" "readable-stream@2 || 3", readable-stream@^3.0.2: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.5.0.tgz#465d70e6d1087f6162d079cd0b5db7fbebfd1606" - integrity sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA== + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -11709,10 +12122,10 @@ reflect-metadata@^0.1.10: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" @@ -11726,10 +12139,10 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== regenerator-transform@^0.10.0: version "0.10.1" @@ -11740,12 +12153,13 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-cache@^0.4.2: version "0.4.4" @@ -11762,15 +12176,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -11780,24 +12185,24 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +regexpu-core@^4.6.0, regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" + unicode-match-property-value-ecmascript "^1.2.0" regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= -regjsgen@^0.5.0: +regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== @@ -11809,10 +12214,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -regjsparser@^0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96" - integrity sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -11990,6 +12395,13 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2. dependencies: glob "^7.1.3" +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@~2.4.0: version "2.4.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" @@ -12025,9 +12437,9 @@ run-applescript@^3.0.0: execa "^0.10.0" run-async@^2.0.0, run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== dependencies: is-promise "^2.1.0" @@ -12079,10 +12491,10 @@ sax@^1.2.4, sax@~1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" - integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -12104,6 +12516,14 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + scoped-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" @@ -12170,7 +12590,7 @@ serialize-javascript@^2.1.2: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== -serve-static@1.14.1: +serve-static@1.14.1, serve-static@^1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== @@ -12290,6 +12710,19 @@ single-line-log@^1.1.2: dependencies: string-width "^1.0.1" +sinon@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.0.1.tgz#dbb18f7d8f5835bcf91578089c0a97b2fffdd73b" + integrity sha512-iTTyiQo5T94jrOx7X7QLBZyucUJ2WvL9J13+96HMfm2CGoJYbIPqRfl6wgNcqmzk0DI28jeGx5bUTXizkrqBmg== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^6.0.0" + "@sinonjs/formatio" "^5.0.1" + "@sinonjs/samsam" "^5.0.3" + diff "^4.0.2" + nise "^4.0.1" + supports-color "^7.1.0" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -12418,7 +12851,7 @@ source-map-support@^0.4.15, source-map-support@^0.4.18: dependencies: source-map "^0.5.6" -source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@~0.5.12: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== @@ -12648,6 +13081,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trimleft@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" @@ -12704,6 +13146,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" @@ -12758,7 +13207,7 @@ strip-json-comments@2.0.1, strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-outer@^1.0.0: +strip-outer@^1.0.0, strip-outer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== @@ -12832,6 +13281,13 @@ supports-color@^5.3.0, supports-color@^5.4.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -12892,7 +13348,7 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4, tar@^4.0.0, tar@^4.0.2, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: +tar@^4, tar@^4.0.0, tar@^4.0.2, tar@^4.4.10, tar@^4.4.12, tar@^4.4.2, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -12929,6 +13385,13 @@ temp@^0.8.1: dependencies: rimraf "~2.6.2" +temp@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.1.tgz#2d666114fafa26966cd4065996d7ceedd4dd4697" + integrity sha512-WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA== + dependencies: + rimraf "~2.6.2" + terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -12945,9 +13408,9 @@ terser-webpack-plugin@^1.4.3: worker-farm "^1.7.0" terser@^4.1.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" - integrity sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ== + version "4.6.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" + integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -13180,21 +13643,10 @@ ts-md5@^1.2.2: resolved "https://registry.yarnpkg.com/ts-md5/-/ts-md5-1.2.7.tgz#b76471fc2fd38f0502441f6c3b9494ed04537401" integrity sha512-emODogvKGWi1KO1l9c6YxLMBn6CEH3VrH5mVPIyOtxBG52BvV4jP3GWz6bOZCz61nLgBc3ffQYE4+EHfCD+V7w== -ts-node@^8.6.2: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.6.2.tgz#7419a01391a818fbafa6f826a33c1a13e9464e35" - integrity sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.6" - yn "3.1.1" - tslib@^1.10.0, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== tslint@^5.5.0: version "5.20.1" @@ -13239,7 +13691,7 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -13274,20 +13726,15 @@ typescript@3.5.1: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.1.tgz#ba72a6a600b2158139c5dd8850f700e231464202" integrity sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw== -typescript@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" - integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== - uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.7.7" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.7.tgz#21e52c7dccda80a53bf7cde69628a7e511aec9c9" - integrity sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA== + version "3.8.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" + integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ== dependencies: commander "~2.20.3" source-map "~0.6.1" @@ -13337,15 +13784,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== union-value@^1.0.0: version "1.0.1" @@ -13382,9 +13829,16 @@ unique-slug@^2.0.0: imurmurhash "^0.1.4" universal-user-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.0.tgz#27da2ec87e32769619f68a14996465ea1cb9df16" - integrity sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" + integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== dependencies: os-name "^3.1.0" @@ -13419,6 +13873,22 @@ unzip-stream@^0.3.0: binary "^0.3.0" mkdirp "^0.5.1" +unzipper@^0.10.5: + version "0.10.10" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.10.tgz#d82d41fbdfa1f0731123eb11c2cfc028b45d3d42" + integrity sha512-wEgtqtrnJ/9zIBsQb8UIxOhAH1eTHfi7D/xvmrUoMEePeI6u24nq1wigazbIFtHt6ANYXdEVTvc8XYNlTurs7A== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" + unzipper@^0.9.11: version "0.9.15" resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.9.15.tgz#97d99203dad17698ee39882483c14e4845c7549c" @@ -13586,6 +14056,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vhost@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/vhost/-/vhost-3.0.2.tgz#2fb1decd4c466aa88b0f9341af33dc1aff2478d5" + integrity sha1-L7HezUxGaqiLD5NBrzPcGv8keNU= + vinyl-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" @@ -13607,7 +14082,7 @@ vinyl@^1.1.0: clone-stats "^0.0.1" replace-ext "0.0.1" -vinyl@^2.0.1: +vinyl@^2.0.1, vinyl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== @@ -13625,17 +14100,17 @@ vm-browserify@^1.0.1: integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vscode-debugadapter@^1.26.0, vscode-debugadapter@^1.37.1: - version "1.38.0" - resolved "https://registry.yarnpkg.com/vscode-debugadapter/-/vscode-debugadapter-1.38.0.tgz#764a2cef6634cf17c35e1ca97fa1faa253ac87c1" - integrity sha512-rm4qmbqj8aAaE8sUt4hX2HZUi7Nmtmf10fiGPqbLZWSFPrBi6myxhrQ0HPeG6Xep5rEgrGzVwCJ/lSGPz2ja1A== + version "1.39.1" + resolved "https://registry.yarnpkg.com/vscode-debugadapter/-/vscode-debugadapter-1.39.1.tgz#c5d2565a1f27c95c6d2fc7a893ce94942570dc95" + integrity sha512-+WYpOcY0PiAEBILf6nIwbNVF8ig8gugWTKWhQ7Ds1884JXpVL336pG0xH66Nc1Z1W/KSzuXarm1gtccdwl6PKw== dependencies: mkdirp "^0.5.1" - vscode-debugprotocol "1.38.0" + vscode-debugprotocol "1.39.0" -vscode-debugprotocol@1.38.0, vscode-debugprotocol@^1.26.0, vscode-debugprotocol@^1.32.0, vscode-debugprotocol@^1.37.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/vscode-debugprotocol/-/vscode-debugprotocol-1.38.0.tgz#7a9bcd457e6642f48fabef114c0fa1c25a2fb1e7" - integrity sha512-oam9iSjNfXSn71a8bmNsXv8k/rIKSOcllIPrFnNgxd1EMBpfnum+gb7lmRpcH0zSjGb+OH8Ncn8B5tv8srWbNQ== +vscode-debugprotocol@1.39.0, vscode-debugprotocol@^1.26.0, vscode-debugprotocol@^1.32.0, vscode-debugprotocol@^1.37.0: + version "1.39.0" + resolved "https://registry.yarnpkg.com/vscode-debugprotocol/-/vscode-debugprotocol-1.39.0.tgz#0c639178d0d5ea7de7903b6478b53d2bc0d77461" + integrity sha512-Wkvgtuz90vjtQBcvw9Z+BYa4dA6W+sHwHMpqvJVNmwWSuT3JZdl0XDhZNLqtMXkVF4okxtAe0MmbupPSt+gnAQ== vscode-jsonrpc@^4.1.0-next: version "4.1.0-next.3" @@ -13656,9 +14131,9 @@ vscode-languageclient@^5.3.0-next: vscode-languageserver-protocol "^3.15.0-next.8" vscode-languageserver-protocol@^3.15.0-next.8: - version "3.15.2" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.2.tgz#e52c62923140b2655ad2472f6f29cfb83bacf5b8" - integrity sha512-GdL05JKOgZ76RDg3suiGCl9enESM7iQgGw4x93ibTh4sldvZmakHmTeZ4iUApPPGKf6O3OVBtrsksBXnHYaxNg== + version "3.15.3" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz#3fa9a0702d742cf7883cb6182a6212fcd0a1d8bb" + integrity sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw== dependencies: vscode-jsonrpc "^5.0.1" vscode-languageserver-types "3.15.1" @@ -13765,14 +14240,14 @@ webpack-sources@^1.0.1, webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-map "~0.6.1" webpack@^4.0.0: - version "4.41.6" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1" - integrity sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA== + version "4.42.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" + integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" acorn "^6.2.1" ajv "^6.10.2" ajv-keywords "^3.4.1" @@ -13784,7 +14259,7 @@ webpack@^4.0.0: loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" @@ -13843,6 +14318,11 @@ wide-align@1.1.3, wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= + windows-release@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" @@ -13887,6 +14367,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -13950,9 +14439,9 @@ ws@^6.1.0: async-limiter "~1.0.0" ws@^7.1.2: - version "7.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" - integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== xdg-basedir@^2.0.0: version "2.0.0" @@ -13984,12 +14473,22 @@ xtend@~2.1.1: dependencies: object-keys "~0.4.0" -xterm@3.13.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.13.0.tgz#d0e06c3cf4c1f079aa83f646948457db3b04220b" - integrity sha512-FZVmvkkbkky3zldJ2NNOZ9h8jirtbGTlF4sIKMDrejR4wPsVZ3o4F++DQVkdeZqjAwtNOMoR17PMSOTZ+h070g== +xterm-addon-fit@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.3.0.tgz#341710741027de9d648a9f84415a01ddfdbbe715" + integrity sha512-kvkiqHVrnMXgyCH9Xn0BOBJ7XaWC/4BgpSWQy3SueqximgW630t/QOankgqkvk11iTOCwWdAY9DTyQBXUMN3lw== -y18n@^3.2.1: +xterm-addon-search@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.5.0.tgz#cd3a2f8056084c28e236d4e732da37682010bcc2" + integrity sha512-zLVqVTrg5w2nk9fRj3UuVKCPo/dmFe/cLf3EM9Is5Dm6cgOoXmeo9eq2KgD8A0gquAflTFTf0ya2NaFmShHwyg== + +xterm@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.4.0.tgz#5915d3c4c8800fadbcf555a0a603c672ab9df589" + integrity sha512-JGIpigWM3EBWvnS3rtBuefkiToIILSK1HYMXy4BCsUpO+O4UeeV+/U1AdAXgCB6qJrnPNb7yLgBsVCQUNMteig== + +y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= @@ -14010,16 +14509,16 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yaml@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" - integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== + version "1.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" + integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== dependencies: - "@babel/runtime" "^7.6.3" + "@babel/runtime" "^7.8.7" -yargs-parser@13.1.1, yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -14031,10 +14530,18 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" - integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.1: + version "18.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.1.tgz#bf7407b915427fc760fcbbccc6c82b4f0ffcbd37" + integrity sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -14055,10 +14562,10 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" -yargs@13.3.0, yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -14069,7 +14576,7 @@ yargs@13.3.0, yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" yargs@^11.0.0, yargs@^11.1.0: version "11.1.1" @@ -14090,9 +14597,9 @@ yargs@^11.0.0, yargs@^11.1.0: yargs-parser "^9.0.2" yargs@^14.2.0, yargs@^14.2.2: - version "14.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.2.tgz#2769564379009ff8597cdd38fba09da9b493c4b5" - integrity sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA== + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== dependencies: cliui "^5.0.0" decamelize "^1.2.0" @@ -14104,23 +14611,39 @@ yargs@^14.2.0, yargs@^14.2.2: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^15.0.0" + yargs-parser "^15.0.1" -yargs@~1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" - integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= +yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== dependencies: - minimist "^0.1.0" + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= +yargs@^3.10.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + integrity sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU= dependencies: - fd-slicer "~1.0.1" + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" -yauzl@^2.4.2: +yauzl@^2.10.0, yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= @@ -14134,9 +14657,9 @@ year@^0.2.1: integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A= yeoman-environment@^2.0.0, yeoman-environment@^2.0.5: - version "2.7.0" - resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.7.0.tgz#d1b6679de883ce14a68b869c4b19d55a0d66f477" - integrity sha512-YNzSUWgJVSgnm0qgLON4Gb2nTm+kywBiWjK4MbvosjUP2YJJ30lNhEx7ukyzKRPUlsavd5IsuALtF6QaVrq81A== + version "2.8.1" + resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.8.1.tgz#76c52fcccf26bcbd7ded35d9e22a9f3f1394d241" + integrity sha512-MV6yeJfnSsZBv/VuWvw82bN6hF6KIXRUwhEPaO+RHJAWeNCQAF+iYfBNsJOo4tx5Puch300h+DF9QZceKkbzQg== dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" @@ -14144,7 +14667,7 @@ yeoman-environment@^2.0.0, yeoman-environment@^2.0.5: diff "^3.5.0" escape-string-regexp "^1.0.2" globby "^8.0.1" - grouped-queue "^0.3.3" + grouped-queue "^1.0.0" inquirer "^6.0.0" is-scoped "^1.0.0" lodash "^4.17.10" @@ -14185,11 +14708,6 @@ yeoman-generator@^2.0.3: through2 "^2.0.0" yeoman-environment "^2.0.5" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - zip-dir@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/zip-dir/-/zip-dir-1.0.2.tgz#253f907aead62a21acd8721d8b88032b2411c051"