@yahoo/uds-create-cli 5.67.1 → 5.67.2

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.
Files changed (3) hide show
  1. package/package.json +11 -9
  2. package/platforms.cjs +38 -10
  3. package/uds.js +14 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yahoo/uds-create-cli",
3
- "version": "5.67.1",
3
+ "version": "5.67.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -31,10 +31,10 @@
31
31
  "@modelcontextprotocol/sdk": "^1.32.2",
32
32
  "@orpc/client": "^1.13.9",
33
33
  "@orpc/contract": "^1.13.9",
34
- "@yahoo/uds-create-config": "5.67.1",
35
- "@yahoo/uds-create-loader": "5.67.1",
36
- "@yahoo/uds-create-types": "5.67.1",
37
- "@yahoo/uds-create-utils": "5.67.1",
34
+ "@yahoo/uds-create-config": "5.67.2",
35
+ "@yahoo/uds-create-loader": "5.67.2",
36
+ "@yahoo/uds-create-types": "5.67.2",
37
+ "@yahoo/uds-create-utils": "5.67.2",
38
38
  "esbuild": "^0.27.4",
39
39
  "ts-morph": "^27.0.2",
40
40
  "get-tsconfig": "^4.10.0",
@@ -53,9 +53,11 @@
53
53
  },
54
54
  "udsSchemaVersion": 20261030163028,
55
55
  "optionalDependencies": {
56
- "@yahoo/uds-create-cli-darwin-arm64": "5.67.1",
57
- "@yahoo/uds-create-cli-darwin-x64": "5.67.1",
58
- "@yahoo/uds-create-cli-linux-arm64": "5.67.1",
59
- "@yahoo/uds-create-cli-linux-x64": "5.67.1"
56
+ "@yahoo/uds-create-cli-darwin-arm64": "5.67.2",
57
+ "@yahoo/uds-create-cli-darwin-x64": "5.67.2",
58
+ "@yahoo/uds-create-cli-linux-arm64": "5.67.2",
59
+ "@yahoo/uds-create-cli-linux-x64": "5.67.2",
60
+ "@yahoo/uds-create-cli-linux-arm64-musl": "5.67.2",
61
+ "@yahoo/uds-create-cli-linux-x64-musl": "5.67.2"
60
62
  }
61
63
  }
package/platforms.cjs CHANGED
@@ -1,15 +1,43 @@
1
1
  // Shared by the compiler, release packager and installed launcher. Platform packages contain
2
2
  // only the executable; subprocess helpers stay with the launcher at UDS_CLI_ROOT.
3
+ const { arch, platform } = require('node:os');
4
+
5
+ // Every Linux entry names its libc, so a package manager that reads `libc` installs one Linux
6
+ // package. The glibc builds can't start on a musl Linux such as Alpine.
3
7
  const CLI_PLATFORMS = [
4
8
  { os: 'darwin', cpu: 'arm64' },
5
9
  { os: 'darwin', cpu: 'x64' },
6
- { os: 'linux', cpu: 'arm64' },
7
- { os: 'linux', cpu: 'x64' },
8
- ].map(({ os, cpu }) => ({
9
- os,
10
- cpu,
11
- target: `${os}-${cpu}`,
12
- name: `@yahoo/uds-create-cli-${os}-${cpu}`,
13
- }));
14
-
15
- module.exports = { CLI_PLATFORMS };
10
+ { os: 'linux', cpu: 'arm64', libc: 'glibc' },
11
+ { os: 'linux', cpu: 'x64', libc: 'glibc' },
12
+ { os: 'linux', cpu: 'arm64', libc: 'musl' },
13
+ { os: 'linux', cpu: 'x64', libc: 'musl' },
14
+ ].map(({ os, cpu, libc }) => {
15
+ const target = libc === 'musl' ? `${os}-${cpu}-musl` : `${os}-${cpu}`;
16
+
17
+ return { os, cpu, libc, target, name: `@yahoo/uds-create-cli-${target}` };
18
+ });
19
+
20
+ /** The runtime's libc. A glibc build's process report names its glibc version, and a musl
21
+ * build's has none. `excludeNetwork` keeps Node from listing the host's interfaces and making
22
+ * reverse DNS queries for the report; Bun ignores it. */
23
+ function runtimeLibc() {
24
+ process.report.excludeNetwork = true;
25
+
26
+ return process.report.getReport().header.glibcVersionRuntime
27
+ ? 'glibc'
28
+ : 'musl';
29
+ }
30
+
31
+ /** The catalog entry for this host, or `undefined` when no package is published for it. Yarn
32
+ * Classic, and `npm ci` from a lockfile written before npm 11.11, install both Linux builds, so the
33
+ * choice is made here. */
34
+ function hostPlatform() {
35
+ const os = platform();
36
+ const libc = os === 'linux' ? runtimeLibc() : undefined;
37
+
38
+ return CLI_PLATFORMS.find(
39
+ (entry) => entry.os === os && entry.cpu === arch() && entry.libc === libc,
40
+ );
41
+ }
42
+
43
+ module.exports = { CLI_PLATFORMS, hostPlatform };
package/uds.js CHANGED
@@ -9,16 +9,20 @@ import platforms from './platforms.cjs';
9
9
 
10
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
11
11
  const src = join(__dirname, 'src', 'index.ts');
12
- const bin = join(__dirname, 'bin', `uds-${platform()}-${arch()}`);
13
12
 
14
- /** Resolve relative to this launcher, so hoisted or nested installs select their own release. */
15
- function installedBinary() {
16
- const target = platforms.CLI_PLATFORMS.find(
17
- (entry) => entry.os === platform() && entry.cpu === arch(),
18
- );
13
+ /** The executable for this host: a local build in `bin/`, or else the installed platform package. */
14
+ function hostBinary() {
15
+ const target = platforms.hostPlatform();
19
16
 
20
17
  if (!target) throw new Error(`Unsupported platform: ${platform()}-${arch()}`);
21
18
 
19
+ const bin = join(__dirname, 'bin', `uds-${target.target}`);
20
+
21
+ return existsSync(bin) ? bin : installedBinary(target);
22
+ }
23
+
24
+ /** Resolve relative to this launcher, so hoisted or nested installs select their own release. */
25
+ function installedBinary(target) {
22
26
  const ownPackage = join(__dirname, 'package.json');
23
27
  const { version } = JSON.parse(readFileSync(ownPackage, 'utf8'));
24
28
  let manifest;
@@ -105,14 +109,10 @@ try {
105
109
  env,
106
110
  });
107
111
  } else {
108
- execFileSync(
109
- existsSync(bin) ? bin : installedBinary(),
110
- process.argv.slice(2),
111
- {
112
- stdio: 'inherit',
113
- env,
114
- },
115
- );
112
+ execFileSync(hostBinary(), process.argv.slice(2), {
113
+ stdio: 'inherit',
114
+ env,
115
+ });
116
116
  }
117
117
  } catch (e) {
118
118
  if (e.status == null) console.error(e.message);