xs-dev 1.2.1 → 1.2.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "types": "build/types/types.d.ts",
6
6
  "packageManager": "pnpm@10.29.2",
@@ -15,6 +15,7 @@
15
15
  "xs-dev": "build/src/cli.js"
16
16
  },
17
17
  "scripts": {
18
+ "postinstall": "node scripts/fix-liblzma-arm64.mjs",
18
19
  "xs-dev": "tsx src/cli.ts",
19
20
  "xs-dev:debug": "DEBUG=* tsx --trace-deprecation src/cli.ts",
20
21
  "format": "prettier --write **/*.{js,ts,json}",
@@ -40,7 +41,8 @@
40
41
  "build",
41
42
  "LICENSE",
42
43
  "README.md",
43
- "docs"
44
+ "docs",
45
+ "scripts"
44
46
  ],
45
47
  "license": "MIT",
46
48
  "repository": {
@@ -61,7 +63,7 @@
61
63
  "windows-shortcuts": "^0.1.6"
62
64
  },
63
65
  "optionalDependencies": {
64
- "node-liblzma": "^1.1.9"
66
+ "node-liblzma": "^3.2.0"
65
67
  },
66
68
  "devDependencies": {
67
69
  "@astrojs/starlight": "^0.25.4",
@@ -28,12 +28,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.default = default_1;
30
30
  const axios_1 = __importDefault(require("axios"));
31
- const fs_1 = require("fs");
31
+ const node_fs_1 = require("node:fs");
32
32
  const gluegun_1 = require("gluegun");
33
- const os_1 = require("os");
34
- const stream_1 = require("stream");
33
+ const node_os_1 = require("node:os");
34
+ const node_stream_1 = require("node:stream");
35
35
  const tar_fs_1 = require("tar-fs");
36
- const util_1 = require("util");
36
+ const node_util_1 = require("node:util");
37
37
  const unzip_stream_1 = require("unzip-stream");
38
38
  const devices_1 = require("../prompt/devices");
39
39
  const exec_1 = require("../system/exec");
@@ -43,7 +43,7 @@ const windows_1 = require("./windows");
43
43
  const upsert_1 = __importDefault(require("../patching/upsert"));
44
44
  const windows_2 = require("./nrf52/windows");
45
45
  const errors_1 = require("../system/errors");
46
- const finishedPromise = (0, util_1.promisify)(stream_1.finished);
46
+ const finishedPromise = (0, node_util_1.promisify)(node_stream_1.finished);
47
47
  const ARCH_ALIAS = {
48
48
  darwin_arm64: 'darwin-arm64',
49
49
  darwin_x64: 'darwin-x86_64',
@@ -51,9 +51,9 @@ const ARCH_ALIAS = {
51
51
  windows_nt_x64: 'mingw-w64-i686',
52
52
  };
53
53
  async function default_1() {
54
- const OS = (0, os_1.type)().toLowerCase();
54
+ const OS = (0, node_os_1.type)().toLowerCase();
55
55
  const isWindows = OS === 'windows_nt';
56
- const TOOLCHAIN = `arm-gnu-toolchain-12.2.rel1-${ARCH_ALIAS[`${OS}_${(0, os_1.arch)()}`]}-arm-none-eabi`;
56
+ const TOOLCHAIN = `arm-gnu-toolchain-12.2.rel1-${ARCH_ALIAS[`${OS}_${(0, node_os_1.arch)()}`]}-arm-none-eabi`;
57
57
  const TOOLCHAIN_DOWNLOAD = `https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/${TOOLCHAIN}.${isWindows ? 'zip' : 'tar.xz'}`;
58
58
  const ADAFRUIT_NRF52_BOOTLOADER_UF2CONV_DOWNLOAD = 'https://github.com/Moddable-OpenSource/tools/releases/download/v1.0.0/uf2conv.py';
59
59
  const NRF5_SDK = 'nRF5_SDK_17.0.2_d674dde';
@@ -75,7 +75,7 @@ async function default_1() {
75
75
  return result;
76
76
  }
77
77
  let createUnxz = () => {
78
- void 0;
78
+ return new node_stream_1.Transform();
79
79
  };
80
80
  if (!isWindows) {
81
81
  try {
@@ -83,7 +83,7 @@ async function default_1() {
83
83
  ({ createUnxz } = await Promise.resolve().then(() => __importStar(require('node-liblzma'))));
84
84
  }
85
85
  catch (error) {
86
- spinner.fail('Unable to extract Arm Embedded Toolchain without XZ utils (https://tukaani.org/xz/). Please install that dependency on your system and reinstall xs-dev before attempting this setup again. See https://xs-dev.js.org/troubleshooting for more info.');
86
+ spinner.fail();
87
87
  return (0, errors_1.failure)('Unable to extract Arm Embedded Toolchain without XZ utils (https://tukaani.org/xz/). Please install that dependency on your system and reinstall xs-dev before attempting this setup again. See https://xs-dev.js.org/troubleshooting for more info.');
88
88
  }
89
89
  }
@@ -104,7 +104,7 @@ async function default_1() {
104
104
  }
105
105
  if (gluegun_1.filesystem.exists(UF2CONV_PATH) === false) {
106
106
  spinner.start('Downloading Adafruit nRF52 Bootloader');
107
- const writer = (0, fs_1.createWriteStream)(UF2CONV_PATH, { mode: 0o755 });
107
+ const writer = (0, node_fs_1.createWriteStream)(UF2CONV_PATH, { mode: 0o755 });
108
108
  const response = await axios_1.default.get(ADAFRUIT_NRF52_BOOTLOADER_UF2CONV_DOWNLOAD, {
109
109
  responseType: 'stream',
110
110
  });
@@ -156,4 +156,4 @@ async function default_1() {
156
156
  `);
157
157
  return (0, errors_1.successVoid)();
158
158
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJmNTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9ucmY1Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLDRCQXFJQztBQS9KRCxrREFBeUI7QUFDekIsMkJBQXNDO0FBQ3RDLHFDQUEyQztBQUMzQywyQkFBK0M7QUFDL0MsbUNBQWlEO0FBQ2pELG1DQUFnQztBQUNoQywrQkFBZ0M7QUFDaEMsK0NBQW9EO0FBRXBELCtDQUFnRDtBQUNoRCx5Q0FBZ0U7QUFDaEUsMkNBQTREO0FBQzVELHlDQUEyQztBQUMzQyx1Q0FBK0Q7QUFDL0QsZ0VBQXVDO0FBQ3ZDLDZDQUErQztBQUMvQyw2Q0FBa0U7QUFFbEUsTUFBTSxlQUFlLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGlCQUFRLENBQUMsQ0FBQTtBQUUzQyxNQUFNLFVBQVUsR0FBMkI7SUFDekMsWUFBWSxFQUFFLGNBQWM7SUFDNUIsVUFBVSxFQUFFLGVBQWU7SUFDM0IsU0FBUyxFQUFFLFFBQVE7SUFDbkIsY0FBYyxFQUFFLGdCQUFnQjtDQUNqQyxDQUFBO0FBQ2MsS0FBSztJQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO0lBQ2pELE1BQU0sU0FBUyxHQUFHLEVBQUUsS0FBSyxZQUFZLENBQUE7SUFDckMsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFBLFNBQUksR0FBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUE7SUFDOUYsTUFBTSxrQkFBa0IsR0FBRywwRUFBMEUsU0FBUyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNoSixNQUFNLDBDQUEwQyxHQUM5QyxrRkFBa0YsQ0FBQTtJQUNwRixNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQTtJQUMxQyxNQUFNLGlCQUFpQixHQUFHLHlFQUF5RSxRQUFRLFVBQVUsQ0FBQTtJQUNySCxNQUFNLFNBQVMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzFELE1BQU0sY0FBYyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMvRCxNQUFNLFlBQVksR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDaEUsTUFBTSxhQUFhLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBRTdELE1BQU0sSUFBQSx3QkFBaUIsR0FBRSxDQUFBO0lBRXpCLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFFdkMsSUFBSSxDQUFDLElBQUEseUJBQWMsR0FBRSxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FDVix5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLElBQUEsZ0JBQU8sRUFDWix5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQ0FBMkIsRUFBQyxPQUFPLENBQUMsQ0FBQTtRQUN6RCxJQUFJLElBQUEsa0JBQVMsRUFBQyxNQUFNLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQTtJQUN0QyxDQUFDO0lBRUQsSUFBSSxVQUFVLEdBQXFDLEdBQUcsRUFBRTtRQUN0RCxLQUFLLENBQUMsQ0FBQTtJQUNSLENBQUMsQ0FBQTtJQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQztZQUNILENBQUM7WUFBQSxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsd0RBQWEsY0FBYyxHQUFDLENBQUMsQ0FBQTtRQUNsRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysc1BBQXNQLENBQ3ZQLENBQUE7WUFDRCxPQUFPLElBQUEsZ0JBQU8sRUFDWixzUEFBc1AsQ0FDdlAsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBQ3hDLG9CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXpCLElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO1FBRXZELE1BQU0sTUFBTSxHQUFHLFNBQVM7WUFDdEIsQ0FBQyxDQUFDLElBQUEsc0JBQVUsRUFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNqQyxDQUFDLENBQUMsSUFBQSxnQkFBTyxFQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzFDLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRTtZQUNuRCxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUE7UUFDRixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM3QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWlCLEVBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDL0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUM5QiwwQ0FBMEMsRUFDMUM7WUFDRSxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUNGLENBQUE7UUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMxQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM3QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQVUsRUFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBQzlDLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTtZQUNsRCxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUE7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMxQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM3QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQUksRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDdEMsSUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFDckMsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtZQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUE7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFBO1lBQ3ZDLE1BQU0sSUFBQSxnQkFBTSxFQUNWLDZCQUFpQixFQUNqQixtQkFBbUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLHdCQUF3QixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUN6RixDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFBO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQTtRQUMxQyxNQUFNLElBQUEsZ0JBQU0sRUFBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDbkMsTUFBTSxJQUFBLGdCQUFNLEVBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFDN0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLHVCQUFhLEVBQUMsT0FBTyxDQUFDLENBQUE7UUFDakQsSUFBSSxJQUFBLGtCQUFTLEVBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM1Qiw4REFBOEQ7WUFDOUQsT0FBTyxZQUFZLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUEsbUJBQVksRUFBQyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUFDLE9BQU8sTUFBTSxFQUFFLENBQUM7WUFDaEIsZUFBSyxDQUFDLE9BQU8sQ0FDWCw2S0FBNkssQ0FDOUssQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQU8sQ0FBQzs7eUNBRXVCLFNBQVMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtHQUNoRyxDQUFDLENBQUE7SUFFRixPQUFPLElBQUEsb0JBQVcsR0FBRSxDQUFBO0FBQ3RCLENBQUMifQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJmNTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9ucmY1Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJBLDRCQXNJQztBQWpLRCxrREFBeUI7QUFDekIscUNBQTJDO0FBQzNDLHFDQUEyQztBQUMzQyxxQ0FBb0Q7QUFDcEQsNkNBQXdFO0FBQ3hFLG1DQUFnQztBQUNoQyx5Q0FBcUM7QUFDckMsK0NBQW9EO0FBR3BELCtDQUFnRDtBQUNoRCx5Q0FBZ0U7QUFDaEUsMkNBQTREO0FBQzVELHlDQUEyQztBQUMzQyx1Q0FBK0Q7QUFDL0QsZ0VBQXVDO0FBQ3ZDLDZDQUErQztBQUMvQyw2Q0FBa0U7QUFFbEUsTUFBTSxlQUFlLEdBQUcsSUFBQSxxQkFBUyxFQUFDLHNCQUFRLENBQUMsQ0FBQTtBQUUzQyxNQUFNLFVBQVUsR0FBMkI7SUFDekMsWUFBWSxFQUFFLGNBQWM7SUFDNUIsVUFBVSxFQUFFLGVBQWU7SUFDM0IsU0FBUyxFQUFFLFFBQVE7SUFDbkIsY0FBYyxFQUFFLGdCQUFnQjtDQUNqQyxDQUFBO0FBQ2MsS0FBSztJQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFBLGNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO0lBQ2pELE1BQU0sU0FBUyxHQUFHLEVBQUUsS0FBSyxZQUFZLENBQUE7SUFDckMsTUFBTSxTQUFTLEdBQUcsK0JBQStCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFBLGNBQUksR0FBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUE7SUFDOUYsTUFBTSxrQkFBa0IsR0FBRywwRUFBMEUsU0FBUyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNoSixNQUFNLDBDQUEwQyxHQUM5QyxrRkFBa0YsQ0FBQTtJQUNwRixNQUFNLFFBQVEsR0FBRyx5QkFBeUIs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "types": "build/types/types.d.ts",
6
6
  "packageManager": "pnpm@10.29.2",
@@ -15,6 +15,7 @@
15
15
  "xs-dev": "build/src/cli.js"
16
16
  },
17
17
  "scripts": {
18
+ "postinstall": "node scripts/fix-liblzma-arm64.mjs",
18
19
  "xs-dev": "tsx src/cli.ts",
19
20
  "xs-dev:debug": "DEBUG=* tsx --trace-deprecation src/cli.ts",
20
21
  "format": "prettier --write **/*.{js,ts,json}",
@@ -40,7 +41,8 @@
40
41
  "build",
41
42
  "LICENSE",
42
43
  "README.md",
43
- "docs"
44
+ "docs",
45
+ "scripts"
44
46
  ],
45
47
  "license": "MIT",
46
48
  "repository": {
@@ -61,7 +63,7 @@
61
63
  "windows-shortcuts": "^0.1.6"
62
64
  },
63
65
  "optionalDependencies": {
64
- "node-liblzma": "^1.1.9"
66
+ "node-liblzma": "^3.2.0"
65
67
  },
66
68
  "devDependencies": {
67
69
  "@astrojs/starlight": "^0.25.4",
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Workaround for node-liblzma missing darwin-arm64 prebuild.
3
+ *
4
+ * The darwin-x64 prebuild is a universal binary (x86_64 + arm64 slices),
5
+ * so it works on Apple Silicon. node-gyp-build only looks in darwin-arm64/
6
+ * on arm64 hosts, so we copy the universal binary there.
7
+ *
8
+ * Track upstream fix: https://github.com/oorabona/node-liblzma
9
+ */
10
+ 'use strict'
11
+
12
+ import { existsSync, mkdirSync, copyFileSync } from 'node:fs'
13
+ import { join } from 'node:path'
14
+ import { platform, arch } from 'node:os'
15
+ import { debuglog } from 'node:util'
16
+
17
+ const debug = debuglog('xs-dev')
18
+
19
+ if (platform() === 'darwin' && arch() === 'arm64') {
20
+ try {
21
+ const pkg = require.resolve('node-liblzma')
22
+ const prebuildsDir = join(pkg, '..', '..', 'prebuilds')
23
+ const src = join(prebuildsDir, 'darwin-x64', 'node-liblzma.node')
24
+ const destDir = join(prebuildsDir, 'darwin-arm64')
25
+ const dest = join(destDir, 'node-liblzma.node')
26
+
27
+ if (existsSync(src) && !existsSync(dest)) {
28
+ mkdirSync(destDir, { recursive: true })
29
+ copyFileSync(src, dest)
30
+ debug(
31
+ 'node-liblzma: copied universal darwin-x64 prebuild to darwin-arm64',
32
+ )
33
+ }
34
+ } catch {
35
+ // node-liblzma is optional — silently skip if not installed
36
+ }
37
+ }