@kvell007/embed-labs-cli 0.1.0-alpha.4 → 0.1.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -3
- package/dist/index.js +1974 -83
- package/dist/index.js.map +1 -1
- package/dist/install-progress.d.ts +2 -0
- package/dist/install-progress.js +74 -0
- package/dist/install-progress.js.map +1 -0
- package/dist/local-toolchain.d.ts +135 -2
- package/dist/local-toolchain.js +1178 -66
- package/dist/local-toolchain.js.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { writeFileSync } from "node:fs";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
4
|
+
import { arch, platform } from "node:os";
|
|
5
|
+
const phase = process.argv[2] === "preinstall" ? "preinstall" : "postinstall";
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const target = `${platform()}-${arch()}`;
|
|
8
|
+
const nativePackages = {
|
|
9
|
+
"darwin-arm64": "@embed-labs/local-bridge-darwin-arm64",
|
|
10
|
+
"linux-x64": "@embed-labs/local-bridge-linux-x64",
|
|
11
|
+
"linux-arm64": "@embed-labs/local-bridge-linux-arm64",
|
|
12
|
+
"win32-x64": "@embed-labs/local-bridge-win32-x64"
|
|
13
|
+
};
|
|
14
|
+
async function main() {
|
|
15
|
+
if (phase === "preinstall") {
|
|
16
|
+
await progress([
|
|
17
|
+
[5, `install: initializing (${target})`],
|
|
18
|
+
[12, "install: preparing npm package graph"],
|
|
19
|
+
[20, "install: resolving CLI dependencies"]
|
|
20
|
+
]);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const nativeName = nativePackages[target];
|
|
24
|
+
const nativeStatus = nativeName
|
|
25
|
+
? packageAvailable(nativeName)
|
|
26
|
+
? `native bridge package ready (${nativeName})`
|
|
27
|
+
: `native bridge package missing (${nativeName})`
|
|
28
|
+
: `native bridge package unavailable for ${target}`;
|
|
29
|
+
await progress([
|
|
30
|
+
[65, "install: verifying CLI files"],
|
|
31
|
+
[78, nativeStatus],
|
|
32
|
+
[92, "install: checking command shims"],
|
|
33
|
+
[100, "install: complete"]
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
async function progress(steps) {
|
|
37
|
+
for (const [percent, message] of steps) {
|
|
38
|
+
writeProgress(percent, message);
|
|
39
|
+
await sleep(1000);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function writeProgress(percent, message) {
|
|
43
|
+
const line = `[Embed Labs] ${String(percent).padStart(3, " ")}% ${message}\n`;
|
|
44
|
+
process.stdout.write(line);
|
|
45
|
+
writeDirectConsole(line);
|
|
46
|
+
}
|
|
47
|
+
function writeDirectConsole(line) {
|
|
48
|
+
if (process.stdout.isTTY || process.env.EMBEDLABS_INSTALL_NO_TTY === "1") {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
writeFileSync(platform() === "win32" ? "\\\\.\\CONOUT$" : "/dev/tty", line, { flag: "a" });
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// CI and some package managers run without a controlling TTY. In that case
|
|
56
|
+
// stdout is still available when lifecycle output is not suppressed.
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function packageAvailable(name) {
|
|
60
|
+
try {
|
|
61
|
+
require.resolve(`${name}/package.json`);
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function sleep(ms) {
|
|
69
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
70
|
+
}
|
|
71
|
+
main().catch((error) => {
|
|
72
|
+
writeProgress(100, `install: warning (${error instanceof Error ? error.message : String(error)})`);
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=install-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-progress.js","sourceRoot":"","sources":["../src/install-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,12 @@ export interface LocalToolchainAuthContext {
|
|
|
3
3
|
profile: string;
|
|
4
4
|
source?: string;
|
|
5
5
|
account_id?: string;
|
|
6
|
+
api_key_id?: string;
|
|
7
|
+
device_id?: string;
|
|
6
8
|
}
|
|
7
9
|
export interface LocalToolchainValidationResult {
|
|
8
10
|
ok: boolean;
|
|
11
|
+
mode: string;
|
|
9
12
|
host: {
|
|
10
13
|
platform: string;
|
|
11
14
|
arch: string;
|
|
@@ -14,6 +17,10 @@ export interface LocalToolchainValidationResult {
|
|
|
14
17
|
release_root: string;
|
|
15
18
|
checked_paths: LocalToolchainPathCheck[];
|
|
16
19
|
missing_paths: string[];
|
|
20
|
+
path_leaks: LocalToolchainPathLeak[];
|
|
21
|
+
missing_groups: string[];
|
|
22
|
+
repair_command?: string;
|
|
23
|
+
summary_for_user: string;
|
|
17
24
|
notes: string[];
|
|
18
25
|
}
|
|
19
26
|
export interface LocalToolchainPathCheck {
|
|
@@ -21,6 +28,11 @@ export interface LocalToolchainPathCheck {
|
|
|
21
28
|
path: string;
|
|
22
29
|
exists: boolean;
|
|
23
30
|
}
|
|
31
|
+
export interface LocalToolchainPathLeak {
|
|
32
|
+
label: string;
|
|
33
|
+
path: string;
|
|
34
|
+
forbidden: string;
|
|
35
|
+
}
|
|
24
36
|
export interface LocalCompileOptions {
|
|
25
37
|
boardId: string;
|
|
26
38
|
sourcePath: string;
|
|
@@ -80,6 +92,7 @@ export interface LocalToolchainPackageManifest {
|
|
|
80
92
|
family?: string;
|
|
81
93
|
board?: string;
|
|
82
94
|
variant?: string;
|
|
95
|
+
board_id?: string;
|
|
83
96
|
requires?: Array<{
|
|
84
97
|
id: string;
|
|
85
98
|
version: string;
|
|
@@ -100,11 +113,14 @@ export interface LocalToolchainLatestResult {
|
|
|
100
113
|
version: string;
|
|
101
114
|
metadata_root?: string;
|
|
102
115
|
packages: LocalToolchainPackageRef[];
|
|
116
|
+
download?: LocalToolchainDownloadPlan;
|
|
117
|
+
download_error?: string;
|
|
103
118
|
}
|
|
104
119
|
export interface LocalToolchainInstallOptions extends LocalToolchainLatestOptions {
|
|
105
120
|
sourceReleaseRoot?: string;
|
|
106
121
|
sourceUrl?: string;
|
|
107
122
|
installRoot?: string;
|
|
123
|
+
mode?: string;
|
|
108
124
|
force?: boolean;
|
|
109
125
|
}
|
|
110
126
|
export interface LocalToolchainInstallResult {
|
|
@@ -112,13 +128,18 @@ export interface LocalToolchainInstallResult {
|
|
|
112
128
|
version: string;
|
|
113
129
|
channel: string;
|
|
114
130
|
host: string;
|
|
131
|
+
mode: string;
|
|
115
132
|
install_root: string;
|
|
116
133
|
release_root: string;
|
|
117
134
|
registry_path: string;
|
|
118
135
|
source: {
|
|
119
|
-
kind: "directory" | "url";
|
|
136
|
+
kind: "directory" | "url" | "components";
|
|
120
137
|
value: string;
|
|
121
138
|
downloaded_path?: string;
|
|
139
|
+
mirror_kind?: string;
|
|
140
|
+
sha256?: string;
|
|
141
|
+
size_bytes?: number;
|
|
142
|
+
components?: LocalToolchainInstalledComponent[];
|
|
122
143
|
};
|
|
123
144
|
installed_paths: string[];
|
|
124
145
|
packages: LocalToolchainPackageRef[];
|
|
@@ -128,16 +149,128 @@ export interface LocalToolchainCurrentResult {
|
|
|
128
149
|
installed: boolean;
|
|
129
150
|
board_id: string;
|
|
130
151
|
version?: string;
|
|
152
|
+
mode?: string;
|
|
131
153
|
release_root?: string;
|
|
132
154
|
registry_path: string;
|
|
133
155
|
install_root: string;
|
|
134
156
|
channel?: string;
|
|
135
157
|
packages?: LocalToolchainPackageRef[];
|
|
136
158
|
}
|
|
159
|
+
export interface LocalToolchainListOptions extends LocalToolchainLatestOptions {
|
|
160
|
+
installRoot?: string;
|
|
161
|
+
installedOnly?: boolean;
|
|
162
|
+
}
|
|
163
|
+
export interface LocalToolchainEnvironmentRecord {
|
|
164
|
+
board_id: string;
|
|
165
|
+
package_id: string;
|
|
166
|
+
display_name: string;
|
|
167
|
+
family?: string;
|
|
168
|
+
variant?: string;
|
|
169
|
+
channel: string;
|
|
170
|
+
host: string;
|
|
171
|
+
status: "installed" | "available" | "update_available" | "unsupported_host";
|
|
172
|
+
supported_host: boolean;
|
|
173
|
+
unsupported_packages: string[];
|
|
174
|
+
install_modes: string[];
|
|
175
|
+
installed?: {
|
|
176
|
+
version?: string;
|
|
177
|
+
channel?: string;
|
|
178
|
+
mode?: string;
|
|
179
|
+
release_root?: string;
|
|
180
|
+
};
|
|
181
|
+
latest: {
|
|
182
|
+
version: string;
|
|
183
|
+
default_mode?: string;
|
|
184
|
+
source_url?: string;
|
|
185
|
+
manifest_url?: string;
|
|
186
|
+
component_count?: number;
|
|
187
|
+
download_error?: string;
|
|
188
|
+
};
|
|
189
|
+
packages: LocalToolchainPackageRef[];
|
|
190
|
+
components?: LocalToolchainEnvironmentComponent[];
|
|
191
|
+
install_command: string;
|
|
192
|
+
update_command: string;
|
|
193
|
+
notes: string[];
|
|
194
|
+
}
|
|
195
|
+
export interface LocalToolchainEnvironmentComponent {
|
|
196
|
+
id: string;
|
|
197
|
+
version: string;
|
|
198
|
+
role?: string;
|
|
199
|
+
install_modes?: string[];
|
|
200
|
+
file: string;
|
|
201
|
+
size_bytes: number;
|
|
202
|
+
source_url?: string;
|
|
203
|
+
}
|
|
204
|
+
export interface LocalToolchainListResult {
|
|
205
|
+
host: string;
|
|
206
|
+
channel: string;
|
|
207
|
+
metadata_source: "built_in" | "local_override";
|
|
208
|
+
metadata_root?: string;
|
|
209
|
+
install_root: string;
|
|
210
|
+
registry_path: string;
|
|
211
|
+
environments: LocalToolchainEnvironmentRecord[];
|
|
212
|
+
}
|
|
213
|
+
export interface LocalToolchainDownloadPlan {
|
|
214
|
+
channel_url: string;
|
|
215
|
+
manifest_url: string;
|
|
216
|
+
package_id: string;
|
|
217
|
+
version: string;
|
|
218
|
+
board_id: string;
|
|
219
|
+
host: string;
|
|
220
|
+
toolchain: string;
|
|
221
|
+
source_url?: string;
|
|
222
|
+
mirror_kind?: string;
|
|
223
|
+
archive?: {
|
|
224
|
+
file: string;
|
|
225
|
+
size_bytes: number;
|
|
226
|
+
sha256: string;
|
|
227
|
+
content_type?: string;
|
|
228
|
+
};
|
|
229
|
+
mirrors: LocalToolchainDownloadMirror[];
|
|
230
|
+
components?: LocalToolchainDownloadComponent[];
|
|
231
|
+
default_mode?: string;
|
|
232
|
+
}
|
|
233
|
+
export interface LocalToolchainDownloadMirror {
|
|
234
|
+
kind: string;
|
|
235
|
+
enabled: boolean;
|
|
236
|
+
url: string;
|
|
237
|
+
sha256?: string;
|
|
238
|
+
size_bytes?: number;
|
|
239
|
+
}
|
|
240
|
+
export interface LocalToolchainDownloadComponent {
|
|
241
|
+
id: string;
|
|
242
|
+
version: string;
|
|
243
|
+
role?: string;
|
|
244
|
+
install_modes?: string[];
|
|
245
|
+
archive: {
|
|
246
|
+
file: string;
|
|
247
|
+
size_bytes: number;
|
|
248
|
+
sha256: string;
|
|
249
|
+
content_type?: string;
|
|
250
|
+
};
|
|
251
|
+
source_url?: string;
|
|
252
|
+
mirror_kind?: string;
|
|
253
|
+
mirrors: LocalToolchainDownloadMirror[];
|
|
254
|
+
}
|
|
255
|
+
export interface LocalToolchainInstalledComponent {
|
|
256
|
+
id: string;
|
|
257
|
+
version: string;
|
|
258
|
+
role?: string;
|
|
259
|
+
archive_file: string;
|
|
260
|
+
mirror_kind?: string;
|
|
261
|
+
downloaded_path: string;
|
|
262
|
+
size_bytes: number;
|
|
263
|
+
sha256: string;
|
|
264
|
+
}
|
|
137
265
|
export declare function defaultLocalReleaseRoot(): string;
|
|
138
266
|
export declare function latestLocalToolchain(options?: LocalToolchainLatestOptions): Promise<LocalToolchainLatestResult>;
|
|
139
267
|
export declare function currentLocalToolchain(installRoot?: string, boardId?: string): Promise<LocalToolchainCurrentResult>;
|
|
268
|
+
export declare function listLocalToolchainEnvironments(options?: LocalToolchainListOptions): Promise<LocalToolchainListResult>;
|
|
140
269
|
export declare function installLocalToolchain(options?: LocalToolchainInstallOptions): Promise<LocalToolchainInstallResult>;
|
|
141
|
-
export declare function validateLocalToolchain(
|
|
270
|
+
export declare function validateLocalToolchain(input?: string | {
|
|
271
|
+
releaseRoot?: string;
|
|
272
|
+
mode?: string;
|
|
273
|
+
boardId?: string;
|
|
274
|
+
}): Promise<LocalToolchainValidationResult>;
|
|
142
275
|
export declare function compileTaishanPiSingleFile(options: LocalCompileOptions): Promise<LocalCompileResult>;
|
|
143
276
|
export declare function buildTaishanPiQtSmoke(options: LocalQtSmokeBuildOptions): Promise<LocalCompileResult>;
|