Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 0432f77

Browse files
committedNov 21, 2024·
feat: use Arduino CLI 1.1.0
1 parent a64de17 commit 0432f77

File tree

18 files changed

+1035
-520
lines changed

18 files changed

+1035
-520
lines changed
 

‎arduino-ide-extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@
171171
],
172172
"arduino": {
173173
"arduino-cli": {
174-
"version": "1.0.4"
174+
"version": "1.1.0"
175175
},
176176
"arduino-fwuploader": {
177177
"version": "2.4.1"

‎arduino-ide-extension/src/browser/contributions/debug.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ export class Debug
289289
): Promise<boolean> {
290290
if (err instanceof Error) {
291291
try {
292-
const tempBuildPaths = await this.sketchesService.tempBuildPath(sketch);
293-
return tempBuildPaths.some((tempBuildPath) =>
292+
const buildPaths = await this.sketchesService.getBuildPath(sketch);
293+
return buildPaths.some((tempBuildPath) =>
294294
err.message.includes(tempBuildPath)
295295
);
296296
} catch {

‎arduino-ide-extension/src/common/protocol/sketches-service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,14 @@ export interface SketchesService {
141141
/**
142142
* This is the JS/TS re-implementation of [`GenBuildPath`](https://github.com/arduino/arduino-cli/blob/c0d4e4407d80aabad81142693513b3306759cfa6/arduino/sketch/sketch.go#L296-L306) of the CLI.
143143
* Pass in a sketch and get the build temporary folder filesystem path calculated from the main sketch file location. Can be multiple ones. This method does not check the existence of the sketch.
144+
* Since CLI v1.1.0 the default sketch folder is the os user cache dir. See https://github.com/arduino/arduino-cli/pull/2673/commits/d2ffeb06ca6360a211d5aa7ddd11505212ffb1b9
144145
*
145146
* The case sensitivity of the drive letter on Windows matters when the CLI calculates the MD5 hash of the temporary build folder.
146147
* IDE2 does not know and does not want to rely on how the CLI treats the paths: with lowercase or uppercase drive letters.
147148
* Hence, IDE2 has to provide multiple build paths on Windows. This hack will be obsolete when the CLI can provide error codes:
148149
* https://github.com/arduino/arduino-cli/issues/1762.
149150
*/
150-
tempBuildPath(sketch: SketchRef): Promise<string[]>;
151+
getBuildPath(sketch: SketchRef): Promise<string[]>;
151152
}
152153

153154
export interface SketchRef {

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/commands_grpc_pb.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66

77
import * as grpc from "@grpc/grpc-js";
88
import * as cc_arduino_cli_commands_v1_commands_pb from "../../../../../cc/arduino/cli/commands/v1/commands_pb";
9-
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
10-
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
119
import * as cc_arduino_cli_commands_v1_board_pb from "../../../../../cc/arduino/cli/commands/v1/board_pb";
10+
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
1211
import * as cc_arduino_cli_commands_v1_compile_pb from "../../../../../cc/arduino/cli/commands/v1/compile_pb";
1312
import * as cc_arduino_cli_commands_v1_core_pb from "../../../../../cc/arduino/cli/commands/v1/core_pb";
1413
import * as cc_arduino_cli_commands_v1_debug_pb from "../../../../../cc/arduino/cli/commands/v1/debug_pb";
15-
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
16-
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
1714
import * as cc_arduino_cli_commands_v1_lib_pb from "../../../../../cc/arduino/cli/commands/v1/lib_pb";
15+
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
1816
import * as cc_arduino_cli_commands_v1_settings_pb from "../../../../../cc/arduino/cli/commands/v1/settings_pb";
17+
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
18+
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
1919

2020
interface IArduinoCoreServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
2121
create: IArduinoCoreServiceService_ICreate;

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/commands_grpc_pb.js

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919
//
2020
'use strict';
2121
var cc_arduino_cli_commands_v1_commands_pb = require('../../../../../cc/arduino/cli/commands/v1/commands_pb.js');
22-
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
23-
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
2422
var cc_arduino_cli_commands_v1_board_pb = require('../../../../../cc/arduino/cli/commands/v1/board_pb.js');
23+
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
2524
var cc_arduino_cli_commands_v1_compile_pb = require('../../../../../cc/arduino/cli/commands/v1/compile_pb.js');
2625
var cc_arduino_cli_commands_v1_core_pb = require('../../../../../cc/arduino/cli/commands/v1/core_pb.js');
2726
var cc_arduino_cli_commands_v1_debug_pb = require('../../../../../cc/arduino/cli/commands/v1/debug_pb.js');
28-
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
29-
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
3027
var cc_arduino_cli_commands_v1_lib_pb = require('../../../../../cc/arduino/cli/commands/v1/lib_pb.js');
28+
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
3129
var cc_arduino_cli_commands_v1_settings_pb = require('../../../../../cc/arduino/cli/commands/v1/settings_pb.js');
30+
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
31+
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
3232

3333
function serialize_cc_arduino_cli_commands_v1_ArchiveSketchRequest(arg) {
3434
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.ArchiveSketchRequest)) {
@@ -1109,9 +1109,9 @@ function deserialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse(buffer
11091109
}
11101110

11111111

1112-
// The main Arduino Platform service API
1112+
// The main Arduino Platform service API.
11131113
var ArduinoCoreServiceService = exports['cc.arduino.cli.commands.v1.ArduinoCoreService'] = {
1114-
// Create a new Arduino Core instance
1114+
// Create a new Arduino Core instance.
11151115
create: {
11161116
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Create',
11171117
requestStream: false,
@@ -1124,7 +1124,7 @@ create: {
11241124
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CreateResponse,
11251125
},
11261126
// Initializes an existing Arduino Core instance by loading platforms and
1127-
// libraries
1127+
// libraries.
11281128
init: {
11291129
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Init',
11301130
requestStream: false,
@@ -1136,7 +1136,7 @@ init: {
11361136
responseSerialize: serialize_cc_arduino_cli_commands_v1_InitResponse,
11371137
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_InitResponse,
11381138
},
1139-
// Destroy an instance of the Arduino Core Service
1139+
// Destroy an instance of the Arduino Core Service.
11401140
destroy: {
11411141
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Destroy',
11421142
requestStream: false,
@@ -1148,7 +1148,7 @@ destroy: {
11481148
responseSerialize: serialize_cc_arduino_cli_commands_v1_DestroyResponse,
11491149
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_DestroyResponse,
11501150
},
1151-
// Update package index of the Arduino Core Service
1151+
// Update package index of the Arduino Core Service.
11521152
updateIndex: {
11531153
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateIndex',
11541154
requestStream: false,
@@ -1160,7 +1160,7 @@ updateIndex: {
11601160
responseSerialize: serialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
11611161
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
11621162
},
1163-
// Update libraries index
1163+
// Update libraries index.
11641164
updateLibrariesIndex: {
11651165
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateLibrariesIndex',
11661166
requestStream: false,
@@ -1184,7 +1184,7 @@ version: {
11841184
responseSerialize: serialize_cc_arduino_cli_commands_v1_VersionResponse,
11851185
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_VersionResponse,
11861186
},
1187-
// Create a new Sketch
1187+
// Create a new Sketch.
11881188
newSketch: {
11891189
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/NewSketch',
11901190
requestStream: false,
@@ -1196,7 +1196,7 @@ newSketch: {
11961196
responseSerialize: serialize_cc_arduino_cli_commands_v1_NewSketchResponse,
11971197
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_NewSketchResponse,
11981198
},
1199-
// Returns all files composing a Sketch
1199+
// Returns all files composing a Sketch.
12001200
loadSketch: {
12011201
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/LoadSketch',
12021202
requestStream: false,
@@ -1208,7 +1208,7 @@ loadSketch: {
12081208
responseSerialize: serialize_cc_arduino_cli_commands_v1_LoadSketchResponse,
12091209
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_LoadSketchResponse,
12101210
},
1211-
// Creates a zip file containing all files of specified Sketch
1211+
// Creates a zip file containing all files of specified Sketch.
12121212
archiveSketch: {
12131213
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ArchiveSketch',
12141214
requestStream: false,
@@ -1234,10 +1234,7 @@ setSketchDefaults: {
12341234
responseSerialize: serialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse,
12351235
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse,
12361236
},
1237-
// BOARD COMMANDS
1238-
// --------------
1239-
//
1240-
// Requests details about a board
1237+
// Requests details about a board.
12411238
boardDetails: {
12421239
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/BoardDetails',
12431240
requestStream: false,
@@ -1469,7 +1466,7 @@ libraryUpgrade: {
14691466
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryUpgradeResponse,
14701467
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_LibraryUpgradeResponse,
14711468
},
1472-
// Install a library from a Zip File
1469+
// Install a library from a Zip File.
14731470
zipLibraryInstall: {
14741471
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ZipLibraryInstall',
14751472
requestStream: false,
@@ -1481,7 +1478,7 @@ zipLibraryInstall: {
14811478
responseSerialize: serialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse,
14821479
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse,
14831480
},
1484-
// Download and install a library from a git url
1481+
// Download and install a library from a git url.
14851482
gitLibraryInstall: {
14861483
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/GitLibraryInstall',
14871484
requestStream: false,
@@ -1554,7 +1551,7 @@ libraryList: {
15541551
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryListResponse,
15551552
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_LibraryListResponse,
15561553
},
1557-
// Open a monitor connection to a board port
1554+
// Open a monitor connection to a board port.
15581555
monitor: {
15591556
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Monitor',
15601557
requestStream: true,
@@ -1566,7 +1563,7 @@ monitor: {
15661563
responseSerialize: serialize_cc_arduino_cli_commands_v1_MonitorResponse,
15671564
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_MonitorResponse,
15681565
},
1569-
// Returns the parameters that can be set in the MonitorRequest calls
1566+
// Returns the parameters that can be set in the MonitorRequest calls.
15701567
enumerateMonitorPortSettings: {
15711568
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/EnumerateMonitorPortSettings',
15721569
requestStream: false,
@@ -1638,7 +1635,7 @@ cleanDownloadCacheDirectory: {
16381635
responseSerialize: serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
16391636
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
16401637
},
1641-
// Writes the settings currently stored in memory in a YAML file
1638+
// Writes the settings currently stored in memory in a YAML file.
16421639
configurationSave: {
16431640
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationSave',
16441641
requestStream: false,
@@ -1650,7 +1647,7 @@ configurationSave: {
16501647
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
16511648
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
16521649
},
1653-
// Read the settings from a YAML file
1650+
// Read the settings from a YAML file.
16541651
configurationOpen: {
16551652
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationOpen',
16561653
requestStream: false,
@@ -1662,7 +1659,8 @@ configurationOpen: {
16621659
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
16631660
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
16641661
},
1665-
configurationGet: {
1662+
// Get the current configuration.
1663+
configurationGet: {
16661664
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationGet',
16671665
requestStream: false,
16681666
responseStream: false,
@@ -1673,7 +1671,7 @@ configurationOpen: {
16731671
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
16741672
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
16751673
},
1676-
// Enumerate all the keys/values pairs available in the configuration
1674+
// Enumerate all the keys/values pairs available in the configuration.
16771675
settingsEnumerate: {
16781676
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsEnumerate',
16791677
requestStream: false,
@@ -1685,7 +1683,7 @@ settingsEnumerate: {
16851683
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
16861684
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
16871685
},
1688-
// Get a single configuration value
1686+
// Get a single configuration value.
16891687
settingsGetValue: {
16901688
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetValue',
16911689
requestStream: false,
@@ -1697,7 +1695,7 @@ settingsGetValue: {
16971695
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
16981696
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
16991697
},
1700-
// Set a single configuration value
1698+
// Set a single configuration value.
17011699
settingsSetValue: {
17021700
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsSetValue',
17031701
requestStream: false,

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/commands_pb.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
/* eslint-disable */
66

77
import * as jspb from "google-protobuf";
8-
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
9-
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
108
import * as cc_arduino_cli_commands_v1_board_pb from "../../../../../cc/arduino/cli/commands/v1/board_pb";
9+
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
1110
import * as cc_arduino_cli_commands_v1_compile_pb from "../../../../../cc/arduino/cli/commands/v1/compile_pb";
1211
import * as cc_arduino_cli_commands_v1_core_pb from "../../../../../cc/arduino/cli/commands/v1/core_pb";
1312
import * as cc_arduino_cli_commands_v1_debug_pb from "../../../../../cc/arduino/cli/commands/v1/debug_pb";
14-
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
15-
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
1613
import * as cc_arduino_cli_commands_v1_lib_pb from "../../../../../cc/arduino/cli/commands/v1/lib_pb";
14+
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
1715
import * as cc_arduino_cli_commands_v1_settings_pb from "../../../../../cc/arduino/cli/commands/v1/settings_pb";
16+
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
17+
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
1818

1919
export class CreateRequest extends jspb.Message {
2020

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/commands_pb.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,26 @@ var global = (function() {
2121
return Function('return this')();
2222
}.call(null));
2323

24-
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
25-
goog.object.extend(proto, google_rpc_status_pb);
26-
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
27-
goog.object.extend(proto, cc_arduino_cli_commands_v1_common_pb);
2824
var cc_arduino_cli_commands_v1_board_pb = require('../../../../../cc/arduino/cli/commands/v1/board_pb.js');
2925
goog.object.extend(proto, cc_arduino_cli_commands_v1_board_pb);
26+
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
27+
goog.object.extend(proto, cc_arduino_cli_commands_v1_common_pb);
3028
var cc_arduino_cli_commands_v1_compile_pb = require('../../../../../cc/arduino/cli/commands/v1/compile_pb.js');
3129
goog.object.extend(proto, cc_arduino_cli_commands_v1_compile_pb);
3230
var cc_arduino_cli_commands_v1_core_pb = require('../../../../../cc/arduino/cli/commands/v1/core_pb.js');
3331
goog.object.extend(proto, cc_arduino_cli_commands_v1_core_pb);
3432
var cc_arduino_cli_commands_v1_debug_pb = require('../../../../../cc/arduino/cli/commands/v1/debug_pb.js');
3533
goog.object.extend(proto, cc_arduino_cli_commands_v1_debug_pb);
36-
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
37-
goog.object.extend(proto, cc_arduino_cli_commands_v1_monitor_pb);
38-
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
39-
goog.object.extend(proto, cc_arduino_cli_commands_v1_upload_pb);
4034
var cc_arduino_cli_commands_v1_lib_pb = require('../../../../../cc/arduino/cli/commands/v1/lib_pb.js');
4135
goog.object.extend(proto, cc_arduino_cli_commands_v1_lib_pb);
36+
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
37+
goog.object.extend(proto, cc_arduino_cli_commands_v1_monitor_pb);
4238
var cc_arduino_cli_commands_v1_settings_pb = require('../../../../../cc/arduino/cli/commands/v1/settings_pb.js');
4339
goog.object.extend(proto, cc_arduino_cli_commands_v1_settings_pb);
40+
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
41+
goog.object.extend(proto, cc_arduino_cli_commands_v1_upload_pb);
42+
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
43+
goog.object.extend(proto, google_rpc_status_pb);
4444
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ArchiveSketchRequest', null, global);
4545
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ArchiveSketchResponse', null, global);
4646
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.CheckForArduinoCLIUpdatesRequest', null, global);

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.d.ts

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,11 @@ export class Sketch extends jspb.Message {
471471
getDefaultProgrammer(): string;
472472
setDefaultProgrammer(value: string): Sketch;
473473

474+
hasDefaultPortConfig(): boolean;
475+
clearDefaultPortConfig(): void;
476+
getDefaultPortConfig(): MonitorPortConfiguration | undefined;
477+
setDefaultPortConfig(value?: MonitorPortConfiguration): Sketch;
478+
474479
serializeBinary(): Uint8Array;
475480
toObject(includeInstance?: boolean): Sketch.AsObject;
476481
static toObject(includeInstance: boolean, msg: Sketch): Sketch.AsObject;
@@ -494,6 +499,52 @@ export namespace Sketch {
494499
profilesList: Array<SketchProfile.AsObject>,
495500
defaultProfile?: SketchProfile.AsObject,
496501
defaultProgrammer: string,
502+
defaultPortConfig?: MonitorPortConfiguration.AsObject,
503+
}
504+
}
505+
506+
export class MonitorPortConfiguration extends jspb.Message {
507+
clearSettingsList(): void;
508+
getSettingsList(): Array<MonitorPortSetting>;
509+
setSettingsList(value: Array<MonitorPortSetting>): MonitorPortConfiguration;
510+
addSettings(value?: MonitorPortSetting, index?: number): MonitorPortSetting;
511+
512+
serializeBinary(): Uint8Array;
513+
toObject(includeInstance?: boolean): MonitorPortConfiguration.AsObject;
514+
static toObject(includeInstance: boolean, msg: MonitorPortConfiguration): MonitorPortConfiguration.AsObject;
515+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
516+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
517+
static serializeBinaryToWriter(message: MonitorPortConfiguration, writer: jspb.BinaryWriter): void;
518+
static deserializeBinary(bytes: Uint8Array): MonitorPortConfiguration;
519+
static deserializeBinaryFromReader(message: MonitorPortConfiguration, reader: jspb.BinaryReader): MonitorPortConfiguration;
520+
}
521+
522+
export namespace MonitorPortConfiguration {
523+
export type AsObject = {
524+
settingsList: Array<MonitorPortSetting.AsObject>,
525+
}
526+
}
527+
528+
export class MonitorPortSetting extends jspb.Message {
529+
getSettingId(): string;
530+
setSettingId(value: string): MonitorPortSetting;
531+
getValue(): string;
532+
setValue(value: string): MonitorPortSetting;
533+
534+
serializeBinary(): Uint8Array;
535+
toObject(includeInstance?: boolean): MonitorPortSetting.AsObject;
536+
static toObject(includeInstance: boolean, msg: MonitorPortSetting): MonitorPortSetting.AsObject;
537+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
538+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
539+
static serializeBinaryToWriter(message: MonitorPortSetting, writer: jspb.BinaryWriter): void;
540+
static deserializeBinary(bytes: Uint8Array): MonitorPortSetting;
541+
static deserializeBinaryFromReader(message: MonitorPortSetting, reader: jspb.BinaryReader): MonitorPortSetting;
542+
}
543+
544+
export namespace MonitorPortSetting {
545+
export type AsObject = {
546+
settingId: string,
547+
value: string,
497548
}
498549
}
499550

@@ -504,6 +555,15 @@ export class SketchProfile extends jspb.Message {
504555
setFqbn(value: string): SketchProfile;
505556
getProgrammer(): string;
506557
setProgrammer(value: string): SketchProfile;
558+
getPort(): string;
559+
setPort(value: string): SketchProfile;
560+
561+
hasPortConfig(): boolean;
562+
clearPortConfig(): void;
563+
getPortConfig(): MonitorPortConfiguration | undefined;
564+
setPortConfig(value?: MonitorPortConfiguration): SketchProfile;
565+
getProtocol(): string;
566+
setProtocol(value: string): SketchProfile;
507567

508568
serializeBinary(): Uint8Array;
509569
toObject(includeInstance?: boolean): SketchProfile.AsObject;
@@ -520,5 +580,8 @@ export namespace SketchProfile {
520580
name: string,
521581
fqbn: string,
522582
programmer: string,
583+
port: string,
584+
portConfig?: MonitorPortConfiguration.AsObject,
585+
protocol: string,
523586
}
524587
}

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.js

Lines changed: 528 additions & 2 deletions
Large diffs are not rendered by default.

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/debug_pb.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ export class IsDebugSupportedRequest extends jspb.Message {
119119
setInterpreter(value: string): IsDebugSupportedRequest;
120120
getProgrammer(): string;
121121
setProgrammer(value: string): IsDebugSupportedRequest;
122+
clearDebugPropertiesList(): void;
123+
getDebugPropertiesList(): Array<string>;
124+
setDebugPropertiesList(value: Array<string>): IsDebugSupportedRequest;
125+
addDebugProperties(value: string, index?: number): string;
122126

123127
serializeBinary(): Uint8Array;
124128
toObject(includeInstance?: boolean): IsDebugSupportedRequest.AsObject;
@@ -137,6 +141,7 @@ export namespace IsDebugSupportedRequest {
137141
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
138142
interpreter: string,
139143
programmer: string,
144+
debugPropertiesList: Array<string>,
140145
}
141146
}
142147

@@ -184,6 +189,10 @@ export class GetDebugConfigRequest extends jspb.Message {
184189
setImportDir(value: string): GetDebugConfigRequest;
185190
getProgrammer(): string;
186191
setProgrammer(value: string): GetDebugConfigRequest;
192+
clearDebugPropertiesList(): void;
193+
getDebugPropertiesList(): Array<string>;
194+
setDebugPropertiesList(value: Array<string>): GetDebugConfigRequest;
195+
addDebugProperties(value: string, index?: number): string;
187196

188197
serializeBinary(): Uint8Array;
189198
toObject(includeInstance?: boolean): GetDebugConfigRequest.AsObject;
@@ -204,6 +213,7 @@ export namespace GetDebugConfigRequest {
204213
interpreter: string,
205214
importDir: string,
206215
programmer: string,
216+
debugPropertiesList: Array<string>,
207217
}
208218
}
209219

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/debug_pb.js

Lines changed: 116 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ if (goog.DEBUG && !COMPILED) {
111111
* @constructor
112112
*/
113113
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest = function(opt_data) {
114-
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
114+
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.repeatedFields_, null);
115115
};
116116
goog.inherits(proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest, jspb.Message);
117117
if (goog.DEBUG && !COMPILED) {
@@ -153,7 +153,7 @@ if (goog.DEBUG && !COMPILED) {
153153
* @constructor
154154
*/
155155
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest = function(opt_data) {
156-
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
156+
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.repeatedFields_, null);
157157
};
158158
goog.inherits(proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest, jspb.Message);
159159
if (goog.DEBUG && !COMPILED) {
@@ -841,6 +841,13 @@ proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.hasResult = function()
841841

842842

843843

844+
/**
845+
* List of repeated fields within this message type.
846+
* @private {!Array<number>}
847+
* @const
848+
*/
849+
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.repeatedFields_ = [6];
850+
844851

845852

846853
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -876,7 +883,8 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.toObject = function(inc
876883
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
877884
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
878885
interpreter: jspb.Message.getFieldWithDefault(msg, 4, ""),
879-
programmer: jspb.Message.getFieldWithDefault(msg, 5, "")
886+
programmer: jspb.Message.getFieldWithDefault(msg, 5, ""),
887+
debugPropertiesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f
880888
};
881889

882890
if (includeInstance) {
@@ -935,6 +943,10 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.deserializeBinaryFromRe
935943
var value = /** @type {string} */ (reader.readString());
936944
msg.setProgrammer(value);
937945
break;
946+
case 6:
947+
var value = /** @type {string} */ (reader.readString());
948+
msg.addDebugProperties(value);
949+
break;
938950
default:
939951
reader.skipField();
940952
break;
@@ -1001,6 +1013,13 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.serializeBinaryToWriter
10011013
f
10021014
);
10031015
}
1016+
f = message.getDebugPropertiesList();
1017+
if (f.length > 0) {
1018+
writer.writeRepeatedString(
1019+
6,
1020+
f
1021+
);
1022+
}
10041023
};
10051024

10061025

@@ -1132,6 +1151,43 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.setProgrammer
11321151
};
11331152

11341153

1154+
/**
1155+
* repeated string debug_properties = 6;
1156+
* @return {!Array<string>}
1157+
*/
1158+
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.getDebugPropertiesList = function() {
1159+
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
1160+
};
1161+
1162+
1163+
/**
1164+
* @param {!Array<string>} value
1165+
* @return {!proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest} returns this
1166+
*/
1167+
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.setDebugPropertiesList = function(value) {
1168+
return jspb.Message.setField(this, 6, value || []);
1169+
};
1170+
1171+
1172+
/**
1173+
* @param {string} value
1174+
* @param {number=} opt_index
1175+
* @return {!proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest} returns this
1176+
*/
1177+
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.addDebugProperties = function(value, opt_index) {
1178+
return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
1179+
};
1180+
1181+
1182+
/**
1183+
* Clears the list making it empty but non-null.
1184+
* @return {!proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest} returns this
1185+
*/
1186+
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.clearDebugPropertiesList = function() {
1187+
return this.setDebugPropertiesList([]);
1188+
};
1189+
1190+
11351191

11361192

11371193

@@ -1293,6 +1349,13 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedResponse.prototype.setDebugFqbn
12931349

12941350

12951351

1352+
/**
1353+
* List of repeated fields within this message type.
1354+
* @private {!Array<number>}
1355+
* @const
1356+
*/
1357+
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.repeatedFields_ = [10];
1358+
12961359

12971360

12981361
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -1330,7 +1393,8 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.toObject = function(inclu
13301393
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
13311394
interpreter: jspb.Message.getFieldWithDefault(msg, 5, ""),
13321395
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
1333-
programmer: jspb.Message.getFieldWithDefault(msg, 9, "")
1396+
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
1397+
debugPropertiesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f
13341398
};
13351399

13361400
if (includeInstance) {
@@ -1397,6 +1461,10 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.deserializeBinaryFromRead
13971461
var value = /** @type {string} */ (reader.readString());
13981462
msg.setProgrammer(value);
13991463
break;
1464+
case 10:
1465+
var value = /** @type {string} */ (reader.readString());
1466+
msg.addDebugProperties(value);
1467+
break;
14001468
default:
14011469
reader.skipField();
14021470
break;
@@ -1477,6 +1545,13 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.serializeBinaryToWriter =
14771545
f
14781546
);
14791547
}
1548+
f = message.getDebugPropertiesList();
1549+
if (f.length > 0) {
1550+
writer.writeRepeatedString(
1551+
10,
1552+
f
1553+
);
1554+
}
14801555
};
14811556

14821557

@@ -1644,6 +1719,43 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.setProgrammer =
16441719
};
16451720

16461721

1722+
/**
1723+
* repeated string debug_properties = 10;
1724+
* @return {!Array<string>}
1725+
*/
1726+
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.getDebugPropertiesList = function() {
1727+
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));
1728+
};
1729+
1730+
1731+
/**
1732+
* @param {!Array<string>} value
1733+
* @return {!proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest} returns this
1734+
*/
1735+
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.setDebugPropertiesList = function(value) {
1736+
return jspb.Message.setField(this, 10, value || []);
1737+
};
1738+
1739+
1740+
/**
1741+
* @param {string} value
1742+
* @param {number=} opt_index
1743+
* @return {!proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest} returns this
1744+
*/
1745+
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.addDebugProperties = function(value, opt_index) {
1746+
return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
1747+
};
1748+
1749+
1750+
/**
1751+
* Clears the list making it empty but non-null.
1752+
* @return {!proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest} returns this
1753+
*/
1754+
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.clearDebugPropertiesList = function() {
1755+
return this.setDebugPropertiesList([]);
1756+
};
1757+
1758+
16471759

16481760

16491761

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/monitor_pb.d.ts

Lines changed: 9 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ export class MonitorRequest extends jspb.Message {
2424

2525
hasUpdatedConfiguration(): boolean;
2626
clearUpdatedConfiguration(): void;
27-
getUpdatedConfiguration(): MonitorPortConfiguration | undefined;
28-
setUpdatedConfiguration(value?: MonitorPortConfiguration): MonitorRequest;
27+
getUpdatedConfiguration(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
28+
setUpdatedConfiguration(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorRequest;
2929

3030
hasClose(): boolean;
3131
clearClose(): void;
@@ -48,7 +48,7 @@ export namespace MonitorRequest {
4848
export type AsObject = {
4949
openRequest?: MonitorPortOpenRequest.AsObject,
5050
txData: Uint8Array | string,
51-
updatedConfiguration?: MonitorPortConfiguration.AsObject,
51+
updatedConfiguration?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
5252
close: boolean,
5353
}
5454

@@ -78,8 +78,8 @@ export class MonitorPortOpenRequest extends jspb.Message {
7878

7979
hasPortConfiguration(): boolean;
8080
clearPortConfiguration(): void;
81-
getPortConfiguration(): MonitorPortConfiguration | undefined;
82-
setPortConfiguration(value?: MonitorPortConfiguration): MonitorPortOpenRequest;
81+
getPortConfiguration(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
82+
setPortConfiguration(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorPortOpenRequest;
8383

8484
serializeBinary(): Uint8Array;
8585
toObject(includeInstance?: boolean): MonitorPortOpenRequest.AsObject;
@@ -96,29 +96,7 @@ export namespace MonitorPortOpenRequest {
9696
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
9797
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
9898
fqbn: string,
99-
portConfiguration?: MonitorPortConfiguration.AsObject,
100-
}
101-
}
102-
103-
export class MonitorPortConfiguration extends jspb.Message {
104-
clearSettingsList(): void;
105-
getSettingsList(): Array<MonitorPortSetting>;
106-
setSettingsList(value: Array<MonitorPortSetting>): MonitorPortConfiguration;
107-
addSettings(value?: MonitorPortSetting, index?: number): MonitorPortSetting;
108-
109-
serializeBinary(): Uint8Array;
110-
toObject(includeInstance?: boolean): MonitorPortConfiguration.AsObject;
111-
static toObject(includeInstance: boolean, msg: MonitorPortConfiguration): MonitorPortConfiguration.AsObject;
112-
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
113-
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
114-
static serializeBinaryToWriter(message: MonitorPortConfiguration, writer: jspb.BinaryWriter): void;
115-
static deserializeBinary(bytes: Uint8Array): MonitorPortConfiguration;
116-
static deserializeBinaryFromReader(message: MonitorPortConfiguration, reader: jspb.BinaryReader): MonitorPortConfiguration;
117-
}
118-
119-
export namespace MonitorPortConfiguration {
120-
export type AsObject = {
121-
settingsList: Array<MonitorPortSetting.AsObject>,
99+
portConfiguration?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
122100
}
123101
}
124102

@@ -138,8 +116,8 @@ export class MonitorResponse extends jspb.Message {
138116

139117
hasAppliedSettings(): boolean;
140118
clearAppliedSettings(): void;
141-
getAppliedSettings(): MonitorPortConfiguration | undefined;
142-
setAppliedSettings(value?: MonitorPortConfiguration): MonitorResponse;
119+
getAppliedSettings(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
120+
setAppliedSettings(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorResponse;
143121

144122
hasSuccess(): boolean;
145123
clearSuccess(): void;
@@ -162,7 +140,7 @@ export namespace MonitorResponse {
162140
export type AsObject = {
163141
error: string,
164142
rxData: Uint8Array | string,
165-
appliedSettings?: MonitorPortConfiguration.AsObject,
143+
appliedSettings?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
166144
success: boolean,
167145
}
168146

@@ -176,29 +154,6 @@ export namespace MonitorResponse {
176154

177155
}
178156

179-
export class MonitorPortSetting extends jspb.Message {
180-
getSettingId(): string;
181-
setSettingId(value: string): MonitorPortSetting;
182-
getValue(): string;
183-
setValue(value: string): MonitorPortSetting;
184-
185-
serializeBinary(): Uint8Array;
186-
toObject(includeInstance?: boolean): MonitorPortSetting.AsObject;
187-
static toObject(includeInstance: boolean, msg: MonitorPortSetting): MonitorPortSetting.AsObject;
188-
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
189-
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
190-
static serializeBinaryToWriter(message: MonitorPortSetting, writer: jspb.BinaryWriter): void;
191-
static deserializeBinary(bytes: Uint8Array): MonitorPortSetting;
192-
static deserializeBinaryFromReader(message: MonitorPortSetting, reader: jspb.BinaryReader): MonitorPortSetting;
193-
}
194-
195-
export namespace MonitorPortSetting {
196-
export type AsObject = {
197-
settingId: string,
198-
value: string,
199-
}
200-
}
201-
202157
export class EnumerateMonitorPortSettingsRequest extends jspb.Message {
203158

204159
hasInstance(): boolean;

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/monitor_pb.js

Lines changed: 15 additions & 379 deletions
Large diffs are not rendered by default.

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/upload_pb.d.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ export class UploadRequest extends jspb.Message {
3838

3939
getUserFieldsMap(): jspb.Map<string, string>;
4040
clearUserFieldsMap(): void;
41+
clearUploadPropertiesList(): void;
42+
getUploadPropertiesList(): Array<string>;
43+
setUploadPropertiesList(value: Array<string>): UploadRequest;
44+
addUploadProperties(value: string, index?: number): string;
4145

4246
serializeBinary(): Uint8Array;
4347
toObject(includeInstance?: boolean): UploadRequest.AsObject;
@@ -63,6 +67,7 @@ export namespace UploadRequest {
6367
dryRun: boolean,
6468

6569
userFieldsMap: Array<[string, string]>,
70+
uploadPropertiesList: Array<string>,
6671
}
6772
}
6873

@@ -185,6 +190,10 @@ export class UploadUsingProgrammerRequest extends jspb.Message {
185190

186191
getUserFieldsMap(): jspb.Map<string, string>;
187192
clearUserFieldsMap(): void;
193+
clearUploadPropertiesList(): void;
194+
getUploadPropertiesList(): Array<string>;
195+
setUploadPropertiesList(value: Array<string>): UploadUsingProgrammerRequest;
196+
addUploadProperties(value: string, index?: number): string;
188197

189198
serializeBinary(): Uint8Array;
190199
toObject(includeInstance?: boolean): UploadUsingProgrammerRequest.AsObject;
@@ -210,6 +219,7 @@ export namespace UploadUsingProgrammerRequest {
210219
dryRun: boolean,
211220

212221
userFieldsMap: Array<[string, string]>,
222+
uploadPropertiesList: Array<string>,
213223
}
214224
}
215225

@@ -279,6 +289,10 @@ export class BurnBootloaderRequest extends jspb.Message {
279289

280290
getUserFieldsMap(): jspb.Map<string, string>;
281291
clearUserFieldsMap(): void;
292+
clearUploadPropertiesList(): void;
293+
getUploadPropertiesList(): Array<string>;
294+
setUploadPropertiesList(value: Array<string>): BurnBootloaderRequest;
295+
addUploadProperties(value: string, index?: number): string;
282296

283297
serializeBinary(): Uint8Array;
284298
toObject(includeInstance?: boolean): BurnBootloaderRequest.AsObject;
@@ -301,6 +315,7 @@ export namespace BurnBootloaderRequest {
301315
dryRun: boolean,
302316

303317
userFieldsMap: Array<[string, string]>,
318+
uploadPropertiesList: Array<string>,
304319
}
305320
}
306321

‎arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/upload_pb.js

Lines changed: 174 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ goog.exportSymbol('proto.cc.arduino.cli.commands.v1.UserField', null, global);
5252
* @constructor
5353
*/
5454
proto.cc.arduino.cli.commands.v1.UploadRequest = function(opt_data) {
55-
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
55+
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.UploadRequest.repeatedFields_, null);
5656
};
5757
goog.inherits(proto.cc.arduino.cli.commands.v1.UploadRequest, jspb.Message);
5858
if (goog.DEBUG && !COMPILED) {
@@ -136,7 +136,7 @@ if (goog.DEBUG && !COMPILED) {
136136
* @constructor
137137
*/
138138
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest = function(opt_data) {
139-
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
139+
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.repeatedFields_, null);
140140
};
141141
goog.inherits(proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest, jspb.Message);
142142
if (goog.DEBUG && !COMPILED) {
@@ -178,7 +178,7 @@ if (goog.DEBUG && !COMPILED) {
178178
* @constructor
179179
*/
180180
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest = function(opt_data) {
181-
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
181+
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.repeatedFields_, null);
182182
};
183183
goog.inherits(proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest, jspb.Message);
184184
if (goog.DEBUG && !COMPILED) {
@@ -315,6 +315,13 @@ if (goog.DEBUG && !COMPILED) {
315315
proto.cc.arduino.cli.commands.v1.SupportedUserFieldsResponse.displayName = 'proto.cc.arduino.cli.commands.v1.SupportedUserFieldsResponse';
316316
}
317317

318+
/**
319+
* List of repeated fields within this message type.
320+
* @private {!Array<number>}
321+
* @const
322+
*/
323+
proto.cc.arduino.cli.commands.v1.UploadRequest.repeatedFields_ = [12];
324+
318325

319326

320327
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -356,7 +363,8 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.toObject = function(includeInstan
356363
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
357364
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
358365
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
359-
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : []
366+
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : [],
367+
uploadPropertiesList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f
360368
};
361369

362370
if (includeInstance) {
@@ -441,6 +449,10 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.deserializeBinaryFromReader = fun
441449
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
442450
});
443451
break;
452+
case 12:
453+
var value = /** @type {string} */ (reader.readString());
454+
msg.addUploadProperties(value);
455+
break;
444456
default:
445457
reader.skipField();
446458
break;
@@ -546,6 +558,13 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.serializeBinaryToWriter = functio
546558
if (f && f.getLength() > 0) {
547559
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
548560
}
561+
f = message.getUploadPropertiesList();
562+
if (f.length > 0) {
563+
writer.writeRepeatedString(
564+
12,
565+
f
566+
);
567+
}
549568
};
550569

551570

@@ -789,6 +808,43 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.clearUserFieldsMap = fu
789808
return this;};
790809

791810

811+
/**
812+
* repeated string upload_properties = 12;
813+
* @return {!Array<string>}
814+
*/
815+
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.getUploadPropertiesList = function() {
816+
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
817+
};
818+
819+
820+
/**
821+
* @param {!Array<string>} value
822+
* @return {!proto.cc.arduino.cli.commands.v1.UploadRequest} returns this
823+
*/
824+
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.setUploadPropertiesList = function(value) {
825+
return jspb.Message.setField(this, 12, value || []);
826+
};
827+
828+
829+
/**
830+
* @param {string} value
831+
* @param {number=} opt_index
832+
* @return {!proto.cc.arduino.cli.commands.v1.UploadRequest} returns this
833+
*/
834+
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.addUploadProperties = function(value, opt_index) {
835+
return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
836+
};
837+
838+
839+
/**
840+
* Clears the list making it empty but non-null.
841+
* @return {!proto.cc.arduino.cli.commands.v1.UploadRequest} returns this
842+
*/
843+
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.clearUploadPropertiesList = function() {
844+
return this.setUploadPropertiesList([]);
845+
};
846+
847+
792848

793849
/**
794850
* Oneof group definitions for this message. Each group defines the field
@@ -1364,6 +1420,13 @@ proto.cc.arduino.cli.commands.v1.ProgrammerIsRequiredForUploadError.serializeBin
13641420

13651421

13661422

1423+
/**
1424+
* List of repeated fields within this message type.
1425+
* @private {!Array<number>}
1426+
* @const
1427+
*/
1428+
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.repeatedFields_ = [12];
1429+
13671430

13681431

13691432
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -1405,7 +1468,8 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.toObject = functio
14051468
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
14061469
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
14071470
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
1408-
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : []
1471+
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : [],
1472+
uploadPropertiesList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f
14091473
};
14101474

14111475
if (includeInstance) {
@@ -1490,6 +1554,10 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.deserializeBinaryF
14901554
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
14911555
});
14921556
break;
1557+
case 12:
1558+
var value = /** @type {string} */ (reader.readString());
1559+
msg.addUploadProperties(value);
1560+
break;
14931561
default:
14941562
reader.skipField();
14951563
break;
@@ -1595,6 +1663,13 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.serializeBinaryToW
15951663
if (f && f.getLength() > 0) {
15961664
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
15971665
}
1666+
f = message.getUploadPropertiesList();
1667+
if (f.length > 0) {
1668+
writer.writeRepeatedString(
1669+
12,
1670+
f
1671+
);
1672+
}
15981673
};
15991674

16001675

@@ -1838,6 +1913,43 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.clearUse
18381913
return this;};
18391914

18401915

1916+
/**
1917+
* repeated string upload_properties = 12;
1918+
* @return {!Array<string>}
1919+
*/
1920+
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.getUploadPropertiesList = function() {
1921+
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
1922+
};
1923+
1924+
1925+
/**
1926+
* @param {!Array<string>} value
1927+
* @return {!proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest} returns this
1928+
*/
1929+
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.setUploadPropertiesList = function(value) {
1930+
return jspb.Message.setField(this, 12, value || []);
1931+
};
1932+
1933+
1934+
/**
1935+
* @param {string} value
1936+
* @param {number=} opt_index
1937+
* @return {!proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest} returns this
1938+
*/
1939+
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.addUploadProperties = function(value, opt_index) {
1940+
return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
1941+
};
1942+
1943+
1944+
/**
1945+
* Clears the list making it empty but non-null.
1946+
* @return {!proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest} returns this
1947+
*/
1948+
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.clearUploadPropertiesList = function() {
1949+
return this.setUploadPropertiesList([]);
1950+
};
1951+
1952+
18411953

18421954
/**
18431955
* Oneof group definitions for this message. Each group defines the field
@@ -2109,6 +2221,13 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerResponse.prototype.hasErrS
21092221

21102222

21112223

2224+
/**
2225+
* List of repeated fields within this message type.
2226+
* @private {!Array<number>}
2227+
* @const
2228+
*/
2229+
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.repeatedFields_ = [12];
2230+
21122231

21132232

21142233
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -2147,7 +2266,8 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.toObject = function(inclu
21472266
verify: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
21482267
programmer: jspb.Message.getFieldWithDefault(msg, 6, ""),
21492268
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
2150-
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : []
2269+
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : [],
2270+
uploadPropertiesList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f
21512271
};
21522272

21532273
if (includeInstance) {
@@ -2220,6 +2340,10 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.deserializeBinaryFromRead
22202340
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
22212341
});
22222342
break;
2343+
case 12:
2344+
var value = /** @type {string} */ (reader.readString());
2345+
msg.addUploadProperties(value);
2346+
break;
22232347
default:
22242348
reader.skipField();
22252349
break;
@@ -2304,6 +2428,13 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.serializeBinaryToWriter =
23042428
if (f && f.getLength() > 0) {
23052429
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
23062430
}
2431+
f = message.getUploadPropertiesList();
2432+
if (f.length > 0) {
2433+
writer.writeRepeatedString(
2434+
12,
2435+
f
2436+
);
2437+
}
23072438
};
23082439

23092440

@@ -2493,6 +2624,43 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.clearUserFields
24932624
return this;};
24942625

24952626

2627+
/**
2628+
* repeated string upload_properties = 12;
2629+
* @return {!Array<string>}
2630+
*/
2631+
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.getUploadPropertiesList = function() {
2632+
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
2633+
};
2634+
2635+
2636+
/**
2637+
* @param {!Array<string>} value
2638+
* @return {!proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest} returns this
2639+
*/
2640+
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.setUploadPropertiesList = function(value) {
2641+
return jspb.Message.setField(this, 12, value || []);
2642+
};
2643+
2644+
2645+
/**
2646+
* @param {string} value
2647+
* @param {number=} opt_index
2648+
* @return {!proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest} returns this
2649+
*/
2650+
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.addUploadProperties = function(value, opt_index) {
2651+
return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
2652+
};
2653+
2654+
2655+
/**
2656+
* Clears the list making it empty but non-null.
2657+
* @return {!proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest} returns this
2658+
*/
2659+
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.clearUploadPropertiesList = function() {
2660+
return this.setUploadPropertiesList([]);
2661+
};
2662+
2663+
24962664

24972665
/**
24982666
* Oneof group definitions for this message. Each group defines the field

‎arduino-ide-extension/src/node/monitor-service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ import {
2222
import {
2323
EnumerateMonitorPortSettingsRequest,
2424
EnumerateMonitorPortSettingsResponse,
25-
MonitorPortConfiguration,
2625
MonitorPortOpenRequest,
27-
MonitorPortSetting,
2826
MonitorRequest,
2927
MonitorResponse,
3028
} from './cli-protocol/cc/arduino/cli/commands/v1/monitor_pb';
@@ -39,6 +37,10 @@ import {
3937
} from '@theia/core/lib/common/promise-util';
4038
import { MonitorServiceFactoryOptions } from './monitor-service-factory';
4139
import { ServiceError } from './service-error';
40+
import {
41+
MonitorPortConfiguration,
42+
MonitorPortSetting,
43+
} from './cli-protocol/cc/arduino/cli/commands/v1/common_pb';
4244

4345
export const MonitorServiceName = 'monitor-service';
4446
type DuplexHandlerKeys =

‎arduino-ide-extension/src/node/sketches-service-impl.ts

Lines changed: 54 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -668,47 +668,43 @@ export class SketchesServiceImpl
668668
);
669669
}
670670

671-
async tempBuildPath(sketch: Sketch): Promise<string[]> {
671+
async getBuildPath(sketch: Sketch): Promise<string[]> {
672672
const sketchPath = FileUri.fsPath(sketch.uri);
673-
const { tempDirRealpath } = this.isTempSketch;
674-
const tempBuildPaths = [
675-
this.tempBuildPathMD5Hash(tempDirRealpath, sketchPath),
676-
];
673+
674+
let basePath: string;
675+
try {
676+
basePath = userCacheDir();
677+
} catch {
678+
// Fallback to /tmp
679+
const { tempDirRealpath } = this.isTempSketch;
680+
basePath = tempDirRealpath;
681+
}
682+
const buildPaths = [this.buildPathMD5Hash(basePath, sketchPath)];
677683

678684
// If on Windows, provide both the upper and the lowercase drive letter MD5 hashes. All together four paths are expected:
679685
// One of them should match if the sketch is not yet compiled.
680686
// https://github.com/arduino/arduino-ide/pull/1809#discussion_r1071031040
681-
if (isWindows && Win32DriveRegex.test(tempDirRealpath)) {
687+
if (isWindows && Win32DriveRegex.test(basePath)) {
682688
const toggleFirstCharCasing = (s: string) =>
683689
startsWithUpperCase(s) ? firstToLowerCase(s) : firstToUpperCase(s);
684-
const otherCaseTempDirRealPath = toggleFirstCharCasing(tempDirRealpath);
685-
tempBuildPaths.push(
686-
this.tempBuildPathMD5Hash(otherCaseTempDirRealPath, sketchPath)
687-
);
690+
const otherCaseDirRealPath = toggleFirstCharCasing(basePath);
691+
buildPaths.push(this.buildPathMD5Hash(otherCaseDirRealPath, sketchPath));
688692
if (Win32DriveRegex.test(sketchPath)) {
689693
const otherCaseSketchPath = toggleFirstCharCasing(sketchPath);
690-
tempBuildPaths.push(
691-
this.tempBuildPathMD5Hash(tempDirRealpath, otherCaseSketchPath),
692-
this.tempBuildPathMD5Hash(
693-
otherCaseTempDirRealPath,
694-
otherCaseSketchPath
695-
)
694+
buildPaths.push(
695+
this.buildPathMD5Hash(basePath, otherCaseSketchPath),
696+
this.buildPathMD5Hash(otherCaseDirRealPath, otherCaseSketchPath)
696697
);
697698
}
698699
}
699-
return tempBuildPaths;
700+
return buildPaths;
700701
}
701702

702-
private tempBuildPathMD5Hash(tempFolderPath: string, path: string): string {
703-
return join(
704-
tempFolderPath,
705-
'arduino',
706-
'sketches',
707-
this.tempBuildFolderMD5Hash(path)
708-
);
703+
private buildPathMD5Hash(basePath: string, path: string): string {
704+
return join(basePath, 'arduino', 'sketches', this.buildFolderMD5Hash(path));
709705
}
710706

711-
private tempBuildFolderMD5Hash(path: string): string {
707+
private buildFolderMD5Hash(path: string): string {
712708
return crypto.createHash('md5').update(path).digest('hex').toUpperCase();
713709
}
714710

@@ -984,3 +980,36 @@ export async function discoverSketches(
984980

985981
return prune(container);
986982
}
983+
984+
/**
985+
* Replica of Go `os.UserCacheDir()`.
986+
* https://github.com/golang/go/blob/777f43ab27bde4c662cd0a663f807f74f3fbab0f/src/os/file.go#L477
987+
*/
988+
export function userCacheDir(): string {
989+
let dir: string | undefined;
990+
const platform = os.platform();
991+
992+
switch (platform) {
993+
case 'darwin': {
994+
dir = path.join(os.homedir(), '/Library/Caches');
995+
break;
996+
}
997+
case 'win32': {
998+
dir = process.env.LocalAppData || undefined;
999+
if (!dir) {
1000+
throw new Error('%LocalAppData% is not defined');
1001+
}
1002+
break;
1003+
}
1004+
default: {
1005+
dir = process.env.XDG_CACHE_HOME || undefined;
1006+
if (!dir) {
1007+
dir = path.join(os.homedir() + '/.cache');
1008+
} else if (!path.isAbsolute(dir)) {
1009+
throw new Error('path in $XDG_CACHE_HOME is relative');
1010+
}
1011+
}
1012+
}
1013+
1014+
return dir;
1015+
}

‎arduino-ide-extension/src/test/node/core-service-impl.slow-test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ describe('core-service-impl', () => {
6161
expect('buildOutputUri' in arg).to.be.true;
6262
expect(arg.buildOutputUri).to.be.not.undefined;
6363

64-
const tempBuildPaths = await sketchesService.tempBuildPath(sketch);
64+
const tempBuildPaths = await sketchesService.getBuildPath(sketch);
6565
if (isWindows) {
6666
expect(tempBuildPaths.length).to.be.greaterThan(1);
6767
} else {

0 commit comments

Comments
 (0)
Please sign in to comment.