@kvell007/embed-labs-cli 0.1.0-alpha.40 → 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.
@@ -1,11 +1,46 @@
1
1
  #!/usr/bin/env node
2
- import { arch, platform } from "node:os";
3
- import { createRequire } from "node:module";
4
2
  import { writeFileSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import { arch, platform } from "node:os";
5
5
  const phase = process.argv[2] === "preinstall" ? "preinstall" : "postinstall";
6
6
  const require = createRequire(import.meta.url);
7
- function log(message) {
8
- const line = `[Embed Labs] ${message}\n`;
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`;
9
44
  process.stdout.write(line);
10
45
  writeDirectConsole(line);
11
46
  }
@@ -17,20 +52,10 @@ function writeDirectConsole(line) {
17
52
  writeFileSync(platform() === "win32" ? "\\\\.\\CONOUT$" : "/dev/tty", line, { flag: "a" });
18
53
  }
19
54
  catch {
20
- // npm may run lifecycle scripts without a controlling TTY in CI. Normal
21
- // stdout is still useful when users pass --foreground-scripts.
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.
22
57
  }
23
58
  }
24
- function nativePackageName() {
25
- const key = `${platform()}-${arch()}`;
26
- const packages = {
27
- "darwin-arm64": "@embed-labs/local-bridge-darwin-arm64",
28
- "linux-x64": "@embed-labs/local-bridge-linux-x64",
29
- "linux-arm64": "@embed-labs/local-bridge-linux-arm64",
30
- "win32-x64": "@embed-labs/local-bridge-win32-x64"
31
- };
32
- return packages[key];
33
- }
34
59
  function packageAvailable(name) {
35
60
  try {
36
61
  require.resolve(`${name}/package.json`);
@@ -40,22 +65,10 @@ function packageAvailable(name) {
40
65
  return false;
41
66
  }
42
67
  }
43
- if (phase === "preinstall") {
44
- log(`开始安装 CLI,当前平台 ${platform()}-${arch()}。`);
45
- log("npm 正在解析依赖和 native Local Bridge 包,这一步由 npm 控制。");
46
- }
47
- else {
48
- const nativeName = nativePackageName();
49
- if (nativeName && packageAvailable(nativeName)) {
50
- log(`native Local Bridge 已安装:${nativeName}。`);
51
- }
52
- else if (nativeName) {
53
- log(`native Local Bridge 未检测到:${nativeName}。如果使用了 --omit=optional,请重新安装且不要省略 optionalDependencies。`);
54
- }
55
- else {
56
- log(`当前平台 ${platform()}-${arch()} 暂无预编译 native Local Bridge。`);
57
- }
58
- log("npm 安装阶段不会下载开发板 SDK;需要 SDK 时执行 embedlabs local toolchain install,该命令会显示下载进度。");
59
- log("下一步:embedlabs doctor;然后 embedlabs auth login --token <你的 API key>。");
68
+ function sleep(ms) {
69
+ return new Promise((resolve) => setTimeout(resolve, ms));
60
70
  }
71
+ main().catch((error) => {
72
+ writeProgress(100, `install: warning (${error instanceof Error ? error.message : String(error)})`);
73
+ });
61
74
  //# sourceMappingURL=install-progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-progress.js","sourceRoot":"","sources":["../src/install-progress.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;AAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,SAAS,GAAG,CAAC,OAAe;IAC1B,MAAM,IAAI,GAAG,gBAAgB,OAAO,IAAI,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,EAAE,CAAC;QACzE,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,+DAA+D;IACjE,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,GAAG,GAAG,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;IACtC,MAAM,QAAQ,GAA2B;QACvC,cAAc,EAAE,uCAAuC;QACvD,WAAW,EAAE,oCAAoC;QACjD,aAAa,EAAE,sCAAsC;QACrD,WAAW,EAAE,oCAAoC;KAClD,CAAC;IACF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;IAC3B,GAAG,CAAC,iBAAiB,QAAQ,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,GAAG,CAAC,gDAAgD,CAAC,CAAC;AACxD,CAAC;KAAM,CAAC;IACN,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,IAAI,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,2BAA2B,UAAU,GAAG,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,GAAG,CAAC,4BAA4B,UAAU,yDAAyD,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,QAAQ,QAAQ,EAAE,IAAI,IAAI,EAAE,6BAA6B,CAAC,CAAC;IACjE,CAAC;IACD,GAAG,CAAC,8EAA8E,CAAC,CAAC;IACpF,GAAG,CAAC,oEAAoE,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"install-progress.js","sourceRoot":"","sources":["../src/install-progress.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kvell007/embed-labs-cli",
3
- "version": "0.1.0-alpha.40",
3
+ "version": "0.1.0-alpha.41",
4
4
  "description": "Command-line interface for Embed Labs Cloud. Experimental npm publish.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -22,8 +22,8 @@
22
22
  "postinstall": "node dist/install-progress.js postinstall"
23
23
  },
24
24
  "dependencies": {
25
- "@embed-labs/local-bridge": "npm:@kvell007/embed-labs-local-bridge@0.1.0-alpha.40",
26
- "@embed-labs/protocol": "npm:@kvell007/embed-labs-protocol@0.1.0-alpha.40",
25
+ "@embed-labs/local-bridge": "npm:@kvell007/embed-labs-local-bridge@0.1.0-alpha.41",
26
+ "@embed-labs/protocol": "npm:@kvell007/embed-labs-protocol@0.1.0-alpha.41",
27
27
  "qrcode-terminal": "^0.12.0"
28
28
  },
29
29
  "publishConfig": {