@rom-weaver/cli 0.6.7 → 0.7.1

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 CHANGED
@@ -1,11 +1,18 @@
1
1
  <h1 align="center"><img src="packages/rom-weaver-webapp/src/assets/app/root/logo.svg" alt="rom-weaver logo" width="64" height="64" align="middle"> rom-weaver</h1>
2
2
 
3
3
  <p align="center">
4
- A local-first offline toolkit for ROMs and ROM hack patches. Inspect, extract, checksum, compress, trim, apply patches, create patches, or bundle shareable patch manifests at native speed. In your browser or terminal.
4
+ Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- <a href="https://github.com/brandonocasey/rom-weaver/tags"><img alt="Latest tag" src="https://img.shields.io/github/v/tag/brandonocasey/rom-weaver?sort=semver&amp;label=version&amp;color=d9690f"></a>
8
+ <a href="https://www.npmjs.com/package/rom-weaver"><img alt="npm version" src="https://img.shields.io/npm/v/rom-weaver?logo=npm&amp;logoColor=white&amp;label=npm&amp;color=d9690f"></a>
9
+ <a href="https://crates.io/crates/rom-weaver-cli"><img alt="crates.io version" src="https://img.shields.io/crates/v/rom-weaver-cli?logo=rust&amp;logoColor=white&amp;label=crates.io&amp;color=d9690f"></a>
10
+ <a href="https://github.com/brandonocasey/rom-weaver/pkgs/container/rom-weaver-cli"><img alt="Container images on GitHub Container Registry" src="https://img.shields.io/badge/ghcr.io-rom--weaver-d9690f?logo=docker&amp;logoColor=white"></a>
11
+ <a href="https://github.com/brandonocasey/homebrew-tap"><img alt="Homebrew tap" src="https://img.shields.io/badge/homebrew-brandonocasey%2Ftap-d9690f?logo=homebrew&amp;logoColor=white"></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://github.com/brandonocasey/rom-weaver/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/brandonocasey/rom-weaver/ci.yml?branch=main&amp;logo=githubactions&amp;logoColor=white&amp;label=CI&amp;color=4a6d63"></a>
9
16
  <a href="package.json"><img alt="Node.js 22 or newer" src="https://img.shields.io/badge/Node.js-22%2B-4a6d63?logo=nodedotjs&logoColor=white"></a>
10
17
  <a href=".mise.toml"><img alt="Rust 1.95" src="https://img.shields.io/badge/Rust-1.95-2c323b?logo=rust&logoColor=white"></a>
11
18
  <a href="LICENSE.md"><img alt="AGPL-3.0-or-later license" src="https://img.shields.io/badge/license-AGPL--3.0--or--later-4a6d63"></a>
@@ -77,10 +84,11 @@ libraries elsewhere is not supported.
77
84
 
78
85
  ### First public release
79
86
 
80
- v0.6.7 is the first public release available to install. The changelog and the
81
- git history go back further, but v0.6.0 through v0.6.6 failed partway through
82
- the release pipeline or were only partially published. v0.6.7 is the first
83
- release with a complete set of artifacts across npm, Homebrew, and the
87
+ v0.7.1 is the first public version available to install. The changelog and the
88
+ git history go back further, but v0.6.0 through v0.6.7 failed partway through
89
+ the release pipeline or were only partially published - v0.6.7 completed, but
90
+ its npm packages shipped a binary that could not start. v0.7.1 is the first
91
+ release with a complete set of working artifacts across npm, Homebrew, and the
84
92
  container registry. Earlier version numbers describe development history or
85
93
  incomplete releases only.
86
94
 
@@ -105,27 +113,135 @@ leave the device. Install it as a PWA from the browser menu to use it offline.
105
113
  New here? [Try the sample weave](https://rom-weaver.com/?bundle=first-weave.zip#/weave)
106
114
  with tiny synthetic files.
107
115
 
108
- To run the webapp on your own infrastructure, see
109
- [Self-host the webapp](#self-host-the-webapp) below.
116
+ <a name="self-host-the-webapp"></a>
117
+
118
+ <details>
119
+ <summary>Self-host the webapp</summary>
120
+
121
+ The Docker source build serves the full webapp — WASM build, cross-origin
122
+ isolation headers, SPA fallback, and precompressed assets included. The
123
+ [self-hosting guide](docs/self-hosting.md) covers reverse proxies, subpath
124
+ routing, HTTPS certificates, service-worker scope, and the required COOP/COEP
125
+ headers.
126
+
127
+ Build and start it with Docker Compose:
128
+
129
+ ```bash
130
+ git clone https://github.com/brandonocasey/rom-weaver.git
131
+ cd rom-weaver
132
+ docker compose up --build --detach
133
+ curl --fail --silent --show-error http://localhost:8080/health
134
+ ```
135
+
136
+ Only Docker with Compose is required; the image installs its own build
137
+ toolchains. Set `PORT` to change the host port, for example
138
+ `PORT=3000 docker compose up --build --detach`.
139
+ For standalone TLS, mount a trusted certificate as described in the guide and
140
+ set `HTTPS_PORT` instead.
141
+
142
+ </details>
110
143
 
111
144
  ### CLI
112
145
 
113
- Prebuilt installers will become available with the first GitHub Release.
146
+ Every method below installs the same prebuilt binary from the GitHub release.
147
+ The release covers macOS arm64 and x86-64; Linux x86-64 GNU plus x86-64,
148
+ arm64, and i686 musl; and Windows arm64, x86-64, and x86.
114
149
 
115
- Install with Homebrew on macOS or x86-64 Linux:
150
+ <details>
151
+ <summary>Homebrew (macOS arm64/Intel, Linux arm64/x86-64)</summary>
116
152
 
117
153
  ```bash
118
154
  brew install brandonocasey/tap/rom-weaver
119
155
  ```
120
156
 
121
- Or download the latest release to `~/.local/bin`:
157
+ </details>
158
+
159
+ <details>
160
+ <summary>Scoop (Windows)</summary>
161
+
162
+ ```powershell
163
+ scoop bucket add brandonocasey https://github.com/brandonocasey/scoop-bucket
164
+ scoop install rom-weaver
165
+ ```
166
+
167
+ </details>
168
+
169
+ <details>
170
+ <summary>Install script (macOS, Linux)</summary>
171
+
172
+ Downloads the latest release to `~/.local/bin` and verifies its checksum.
173
+ Override with `ROM_WEAVER_INSTALL_DIR` or pin with `ROM_WEAVER_VERSION`.
122
174
 
123
175
  ```bash
124
176
  curl --proto '=https' --tlsv1.2 -LsSf \
125
177
  https://raw.githubusercontent.com/brandonocasey/rom-weaver/main/install.sh | sh
126
178
  ```
127
179
 
128
- Or run it from the published Linux image, without installing anything:
180
+ </details>
181
+
182
+ <details>
183
+ <summary>Install script (Windows)</summary>
184
+
185
+ The same thing for PowerShell, installing to `%LOCALAPPDATA%\rom-weaver\bin`.
186
+
187
+ ```powershell
188
+ irm https://raw.githubusercontent.com/brandonocasey/rom-weaver/main/install.ps1 | iex
189
+ ```
190
+
191
+ </details>
192
+
193
+ <details>
194
+ <summary>npm</summary>
195
+
196
+ Cross-platform, and the only channel that covers every supported target at
197
+ once. Needs Node.js 22+. The package is a launcher that pulls the right
198
+ prebuilt binary through platform-specific optional dependencies, so only your
199
+ platform's binary is downloaded.
200
+
201
+ ```bash
202
+ npm install --global rom-weaver
203
+ ```
204
+
205
+ For a one-off run, or to pin the version a repository's scripts expect, use the
206
+ scoped launcher directly:
207
+
208
+ ```bash
209
+ npx @rom-weaver/cli probe --input game.iso
210
+ npm install --save-dev @rom-weaver/cli
211
+ ```
212
+
213
+ </details>
214
+
215
+ <details>
216
+ <summary>cargo-binstall</summary>
217
+
218
+ Downloads the same release binary rather than compiling the workspace, so it is
219
+ minutes faster than `cargo install`:
220
+
221
+ ```bash
222
+ cargo binstall rom-weaver-cli
223
+ ```
224
+
225
+ </details>
226
+
227
+ <details>
228
+ <summary>mise</summary>
229
+
230
+ Useful when you want the version pinned per project in `mise.toml`. mise
231
+ verifies the release's GitHub artifact attestations on install. Pass an explicit
232
+ version from the [releases page](https://github.com/brandonocasey/rom-weaver/releases);
233
+ mise cannot resolve `@latest` for this repository:
234
+
235
+ ```bash
236
+ mise use github:brandonocasey/rom-weaver@0.6.7
237
+ ```
238
+
239
+ </details>
240
+
241
+ <details>
242
+ <summary>Docker</summary>
243
+
244
+ Runs from the published Linux image without installing anything:
129
245
 
130
246
  ```bash
131
247
  docker run --rm \
@@ -140,7 +256,12 @@ bind-mounted files keep their host ownership, so without it the container cannot
140
256
  read files it does not own and leaves anything it writes owned by an unknown uid.
141
257
  See [Run in Docker](docs/cli.md#run-in-docker).
142
258
 
143
- To install the current source build instead:
259
+ </details>
260
+
261
+ <a name="build-from-source"></a>
262
+
263
+ <details>
264
+ <summary>Build from source</summary>
144
265
 
145
266
  ```bash
146
267
  git clone https://github.com/brandonocasey/rom-weaver.git
@@ -152,32 +273,14 @@ rom-weaver --help
152
273
  The source build requires Rust 1.95+, CMake, Clang, and a native compiler
153
274
  toolchain.
154
275
 
276
+ </details>
277
+
155
278
  Hitting `Permission denied`? See
156
279
  [File permissions](docs/cli.md#file-permissions).
157
280
 
158
281
  The [development guide](docs/development.md) covers the full toolchain setup,
159
282
  webapp builds, and tests.
160
283
 
161
- ### Self-host the webapp
162
-
163
- The Docker source build serves the full webapp — WASM build, cross-origin
164
- isolation headers, SPA fallback, and precompressed assets included. The
165
- [self-hosting guide](docs/self-hosting.md) covers reverse proxies, subpath
166
- routing, service-worker scope, and the required COOP/COEP headers.
167
-
168
- Build and start it with Docker Compose:
169
-
170
- ```bash
171
- git clone https://github.com/brandonocasey/rom-weaver.git
172
- cd rom-weaver
173
- docker compose up --build --detach
174
- curl --fail --silent --show-error http://localhost:8080/health
175
- ```
176
-
177
- Only Docker with Compose is required; the image installs its own build
178
- toolchains. Set `PORT` to change the host port, for example
179
- `PORT=3000 docker compose up --build --detach`.
180
-
181
284
  ## Screenshots
182
285
 
183
286
  [View every screenshot at full size.](docs/screenshots.md)
@@ -17,8 +17,10 @@ const linuxLibc = () => {
17
17
  const platformPackage = (() => {
18
18
  if (process.platform === "darwin") return `@rom-weaver/darwin-${process.arch}`;
19
19
  if (process.platform === "win32") return `@rom-weaver/win32-${process.arch}-msvc`;
20
- if (process.platform === "linux" && process.arch === "x64" && linuxLibc() === "gnu")
21
- return "@rom-weaver/linux-x64-gnu";
20
+ if (process.platform === "linux" && ["arm64", "ia32", "x64"].includes(process.arch)) {
21
+ const libc = process.arch === "x64" ? linuxLibc() : "musl";
22
+ return `@rom-weaver/linux-${process.arch}-${libc}`;
23
+ }
22
24
  return null;
23
25
  })();
24
26
 
package/package.json CHANGED
@@ -1,9 +1,21 @@
1
1
  {
2
2
  "name": "@rom-weaver/cli",
3
- "version": "0.6.7",
3
+ "version": "0.7.1",
4
4
  "author": "Brandon Casey",
5
5
  "license": "AGPL-3.0-or-later",
6
- "description": "A local-first offline toolkit for ROMs and ROM hack patches. Inspect, extract, checksum, compress, trim, apply patches, create patches, or bundle shareable patch manifests at native speed. In your browser or terminal.",
6
+ "description": "Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.",
7
+ "keywords": [
8
+ "rom",
9
+ "rom-hack",
10
+ "patch",
11
+ "ips",
12
+ "bps",
13
+ "chd",
14
+ "rvz",
15
+ "z3ds",
16
+ "disc-image",
17
+ "cli"
18
+ ],
7
19
  "homepage": "https://rom-weaver.com",
8
20
  "funding": "https://ko-fi.com/brandonocasey",
9
21
  "repository": {
@@ -48,10 +60,15 @@
48
60
  "node": ">=22"
49
61
  },
50
62
  "optionalDependencies": {
51
- "@rom-weaver/darwin-arm64": "0.6.7",
52
- "@rom-weaver/darwin-x64": "0.6.7",
53
- "@rom-weaver/linux-x64-gnu": "0.6.7",
54
- "@rom-weaver/win32-x64-msvc": "0.6.7"
63
+ "@rom-weaver/darwin-arm64": "0.7.1",
64
+ "@rom-weaver/darwin-x64": "0.7.1",
65
+ "@rom-weaver/linux-arm64-musl": "0.7.1",
66
+ "@rom-weaver/linux-ia32-musl": "0.7.1",
67
+ "@rom-weaver/linux-x64-gnu": "0.7.1",
68
+ "@rom-weaver/linux-x64-musl": "0.7.1",
69
+ "@rom-weaver/win32-arm64-msvc": "0.7.1",
70
+ "@rom-weaver/win32-ia32-msvc": "0.7.1",
71
+ "@rom-weaver/win32-x64-msvc": "0.7.1"
55
72
  },
56
73
  "scripts": {
57
74
  "docs:toc": "bash scripts/update-markdown-toc.sh",