dev-prune-darwin-x64 1.7.0 → 1.8.0
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 +96 -45
- package/bin/dev-prune +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,11 +24,11 @@ not through this one.
|
|
|
24
24
|
|
|
25
25
|
<div align="center">
|
|
26
26
|
|
|
27
|
-
<img src="assets/readme-banner.png" alt="dev-prune —
|
|
27
|
+
<img src="assets/github-readme-banner.png" alt="dev-prune — gigabytes back, nothing you can't rebuild" width="820" />
|
|
28
28
|
|
|
29
29
|
# `dev-prune`
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### Gigabytes back. Nothing you can't rebuild.
|
|
32
32
|
|
|
33
33
|
**Reclaim the disk space your idle repositories are sitting on — without ever deleting
|
|
34
34
|
something a lockfile cannot put back.**
|
|
@@ -107,6 +107,10 @@ All three download the prebuilt binary for your platform, verify its published S
|
|
|
107
107
|
put it on `PATH`, and run `dev-prune setup`. Pass `--no-auto-setup` / `-NoAutoSetup` to
|
|
108
108
|
skip that last step.
|
|
109
109
|
|
|
110
|
+
Re-run any of them whenever you like. An install that is already current, complete and on
|
|
111
|
+
`PATH` is left exactly as it is and exits `0` without downloading; an older one is updated
|
|
112
|
+
in place; a newer one is not downgraded. `--force` / `-Force` writes it again regardless.
|
|
113
|
+
|
|
110
114
|
The Command Prompt form installs identically to the PowerShell one, but `cmd` cannot
|
|
111
115
|
inherit the `PATH` the installer sets in its own process, so `devp` resolves in the *next*
|
|
112
116
|
Command Prompt you open rather than the current one. PowerShell does not have that
|
|
@@ -115,6 +119,7 @@ problem.
|
|
|
115
119
|
### From a package manager
|
|
116
120
|
|
|
117
121
|
```bash
|
|
122
|
+
npm install -g dev-prune # or: npx dev-prune status
|
|
118
123
|
uv tool install dev-prune # or: uvx dev-prune status
|
|
119
124
|
pipx install dev-prune
|
|
120
125
|
pip install dev-prune
|
|
@@ -122,9 +127,15 @@ cargo binstall dev-prune # fetches the prebuilt release archive
|
|
|
122
127
|
cargo install dev-prune # builds from source, needs Rust 1.88+
|
|
123
128
|
```
|
|
124
129
|
|
|
125
|
-
The PyPI packages **contain the binary** — there is no download step at install
|
|
126
|
-
so they work behind a registry mirror and offline.
|
|
127
|
-
a prebuilt executable.
|
|
130
|
+
The npm and PyPI packages **contain the binary** — there is no download step at install
|
|
131
|
+
time, so they work under `npm ci --ignore-scripts`, behind a registry mirror and offline.
|
|
132
|
+
Everything but `cargo install` ships a prebuilt executable.
|
|
133
|
+
|
|
134
|
+
npm delivers it the way esbuild and Biome do: one small `dev-prune` package that lists
|
|
135
|
+
seven platform packages as optional dependencies, of which npm installs exactly the one
|
|
136
|
+
matching your machine. That is why there is no download step to block. Windows works from
|
|
137
|
+
1.8.0 onwards — earlier versions installed and then reported no binary to run, so a
|
|
138
|
+
machine still holding `dev-prune@1.7.0` needs `npm install -g dev-prune@latest`.
|
|
128
139
|
|
|
129
140
|
crates.io stores source and nothing else, so `cargo install` has no binary to fetch and
|
|
130
141
|
always compiles. [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall) is the
|
|
@@ -156,7 +167,7 @@ brew install https://raw.githubusercontent.com/Life-Experimentalist/dev-prune/ma
|
|
|
156
167
|
scoop install https://raw.githubusercontent.com/Life-Experimentalist/dev-prune/main/packaging/scoop/dev-prune.json
|
|
157
168
|
```
|
|
158
169
|
|
|
159
|
-
WinGet is [submitted and in review](https://github.com/microsoft/winget-pkgs/pull/
|
|
170
|
+
WinGet is [submitted and in review](https://github.com/microsoft/winget-pkgs/pull/422809);
|
|
160
171
|
`winget install VKrishna04.dev-prune` starts resolving when that pull request merges.
|
|
161
172
|
|
|
162
173
|
The two Python entry points differ in where they land. `pip install` follows whichever
|
|
@@ -345,23 +356,27 @@ $ devp caches
|
|
|
345
356
|
|
|
346
357
|
Package manager caches
|
|
347
358
|
|
|
348
|
-
|
|
349
|
-
|
|
359
|
+
npm cache 9.98 GiB ~/.npm
|
|
360
|
+
clear: npm cache clean --force
|
|
361
|
+
npm is used by 18 of 46 registered repositories · 567.75 MiB each
|
|
350
362
|
|
|
351
|
-
|
|
352
|
-
|
|
363
|
+
uv cache 6.22 GiB ~/.cache/uv
|
|
364
|
+
clear: uv cache prune
|
|
365
|
+
uv is used by 7 of 46 registered repositories · 909.77 MiB each
|
|
353
366
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
367
|
+
pnpm store 2.07 GiB /mnt/data/.pnpm-store
|
|
368
|
+
clear: pnpm store prune --store-dir /mnt/data/.pnpm-store
|
|
369
|
+
one store per filesystem, because a hardlink into node_modules cannot cross one
|
|
370
|
+
pnpm is used by 1 of 46 registered repositories · 2.09 GiB each
|
|
357
371
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
372
|
+
nuget global packages 1.44 GiB ~/.nuget/packages
|
|
373
|
+
clear: dotnet nuget locals global-packages --clear
|
|
374
|
+
every .NET project on the machine restores from here; re-downloaded on the next restore
|
|
361
375
|
|
|
362
|
-
…
|
|
376
|
+
… (pip, bun, both go caches, gradle wrapper distributions, both cargo
|
|
377
|
+
registry caches, and the pnpm store beside your home directory)
|
|
363
378
|
|
|
364
|
-
Total
|
|
379
|
+
Total 21.99 GiB across 12 caches
|
|
365
380
|
|
|
366
381
|
→ Nothing above was deleted, and dev-prune never deletes any of it.
|
|
367
382
|
```
|
|
@@ -370,6 +385,14 @@ A cache lives outside every repository and is shared by all of them, so no singl
|
|
|
370
385
|
lockfile can prove it recoverable — and it is what makes `devp restore` fast. `devp
|
|
371
386
|
caches` reports and prints the clear command; running it is your decision.
|
|
372
387
|
|
|
388
|
+
pnpm gets a row per filesystem rather than a single row. It hardlinks its store into
|
|
389
|
+
every `node_modules` it fills, and a hardlink cannot cross a filesystem, so projects
|
|
390
|
+
kept off the system disk have a store of their own at the root of *that* filesystem —
|
|
391
|
+
`V:\.pnpm-store` on a second Windows drive, `/mnt/data/.pnpm-store` on Linux,
|
|
392
|
+
`/Volumes/Work/.pnpm-store` on macOS. `pnpm store path` only ever answers for the
|
|
393
|
+
filesystem it is run on, so dev-prune looks at the root of every filesystem that holds
|
|
394
|
+
a registered repository, and each such row names its store in the command it prints.
|
|
395
|
+
|
|
373
396
|
</details>
|
|
374
397
|
|
|
375
398
|
<details>
|
|
@@ -445,7 +468,7 @@ process that leaves a dirty working tree is a surprise.
|
|
|
445
468
|
| 🧩 **Any number of ecosystems per repository** | uv, npm and cargo in one root, or spread across `frontend/`, `services/api/` and `tools/cli/` — each discovered, verified and pruned on its own terms |
|
|
446
469
|
| ↩️ **One-command restore** | `devp restore .` reinstalls a tree; `devp restore --last-run` puts back exactly what the most recent pass deleted, across every repository it touched |
|
|
447
470
|
| 🕒 **Activity-aware** | Combines `git log` timestamps with source-file `mtime`, so uncommitted work protects a repository just as a commit does |
|
|
448
|
-
| 📊 **Cache report** | `devp caches` sizes every package manager cache and store on the machine — npm to cargo to Maven, Gradle, NuGet, vcpkg, Conan, Composer, CocoaPods and Hex — and prints the command that clears each. The report is read-only; `devp caches clear <manager>` runs that command for you, after asking. Nothing on a schedule ever touches a cache
|
|
471
|
+
| 📊 **Cache report** | `devp caches` sizes every package manager cache and store on the machine — npm to cargo to conda, Maven, Gradle, NuGet, vcpkg, Conan, Composer, CocoaPods and Hex — and prints the command that clears each. The report is read-only; `devp caches clear <manager>` runs that command for you, after asking. `devp config set cache_max_gb uv=10,npm=10` says how big is too big, per manager, and marks the ones past it — `devp caches clear --over-cap all` then empties exactly those, still only when you type it. Each manager also says how many of your registered repositories use it and what that works out to per repository, and `devp caches clear --unused all` empties the ones nothing uses at all. pnpm is reported once per filesystem, because a store it hardlinks into `node_modules` cannot cross one and projects kept off the system disk get a store of their own. Nothing on a schedule ever touches a cache, and Maven's `~/.m2/repository` is never cleared at all — it holds artifacts `mvn install:install-file` put there that no remote can hand back |
|
|
449
472
|
| 🩺 **`devp doctor`** | One read-only pass that ends by naming the *single* reason a repository would or would not be pruned. Runs no package manager, repairs nothing, safe to run twice. `devp doctor --fix` then mends what it found — installed-but-broken only |
|
|
450
473
|
| 🤖 **Self-installing automation** | OS-native scheduler (Task Scheduler, LaunchAgent, systemd user timer) and non-blocking Git hooks, installed at install time and restored after an upgrade. `auto_setup`, `auto_hooks`, `auto_daemon` or `DEV_PRUNE_NO_AUTO_SETUP=1` turn it off |
|
|
451
474
|
| ⚡ **0ms opt-out** | An `ignore.devprune.json` in a repository root is honoured by file presence alone — no read, no parse |
|
|
@@ -460,27 +483,27 @@ process that leaves a dirty working tree is a surprise.
|
|
|
460
483
|
|
|
461
484
|
## Commands
|
|
462
485
|
|
|
463
|
-
| Command | Also | What it does
|
|
464
|
-
| :--------------------- | :------------------------------------------------------------------ |
|
|
465
|
-
| `devp init [PATHS]` | `scan`, `onboard` | Crawls directory trees for Git repositories and registers them, then runs the `setup` integration pass
|
|
466
|
-
| `devp link [PATH]` |
|
|
467
|
-
| `devp unlink [PATH]` | `--missing` | Unregisters one; `--missing` drops every entry whose directory is gone, in one pass
|
|
468
|
-
| `devp undo` |
|
|
469
|
-
| `devp run [PATH]` | `--dry-run`, `--only`, `--skip`, `--except`, `--min-size`, `--json` | Prunes every registered repository, or one target
|
|
470
|
-
| `devp status` | `--top N`, `--drift`, `--json` | Interactive dashboard; a plain table when there is no TTY. `--top N` shows only the N biggest repositories; `--drift` lists every environment holding packages its lockfile never recorded
|
|
471
|
-
| `devp stats` | `--json` | What has already been reclaimed: lifetime total, prune passes, the last pass, and the biggest contributors
|
|
472
|
-
| `devp completions` | `bash`, `zsh`, `fish`, `powershell`, `elvish` | Prints a shell completion script to stdout, generated from the same argument definitions the binary parses with
|
|
473
|
-
| `devp caches` | `clear <manager\|all>`, `--json` | Sizes every package manager cache on the machine and prints the command that clears each. The report deletes nothing and nothing on a schedule ever will; `clear` empties one when you type it, after asking
|
|
474
|
-
| `devp trust` | `--json` | What dev-prune may do on this machine: the guarantees the code enforces, then the scheduler, hooks and settings read live. Read-only
|
|
475
|
-
| `devp restore [PATH]` | `--last-run` | Reinstalls dependencies for every project in a tree; `--last-run` undoes the last prune pass
|
|
476
|
-
| `devp doctor [PATH]` | `--fix` | Diagnoses the installation, or one repository — ending with the single reason a pass would or would not touch it. `--fix` repairs what the checks found; it never performs a first-time install
|
|
477
|
-
| `devp config [ACTION]` | `get`, `set`, `show`, `wizard`, `project`, `daemon`, `hook`, `icon` | Global settings, per-repository `.devprune.json`, scheduler, Git hooks, file manager icons
|
|
478
|
-
| `devp setup` | `--status` | Installs any missing integration; `--status` only reports
|
|
479
|
-
| `devp update` | `--offline`, `--install` | Prints the installed version, checks GitHub for a newer release, shows the upgrade command for your install channel; `--install` runs that upgrade through the channel that owns this copy
|
|
480
|
-
| `devp skill` | `--agent <editor>` | Exports `SKILL.md` and prints AI agent onboarding prompts; `--agent` writes per-repository rules for
|
|
481
|
-
| `devp man` | `--dir <dir>` | The manual as man pages, generated from the same argument definitions `--help` prints; alone it emits `devp(1)` to stdout, `--dir` writes the full set
|
|
482
|
-
| `devp uninstall` | `--deep` | Removes the scheduler, hooks, both binaries and every other installed copy it can find on the machine; `--deep` also clears configuration
|
|
483
|
-
| `devp -V` |
|
|
486
|
+
| Command | Also | What it does |
|
|
487
|
+
| :--------------------- | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
488
|
+
| `devp init [PATHS]` | `scan`, `onboard` | Crawls directory trees for Git repositories and registers them, then runs the `setup` integration pass |
|
|
489
|
+
| `devp link [PATH]` | :------------------------------------------------------------------ | Registers one repository |
|
|
490
|
+
| `devp unlink [PATH]` | `--missing` | Unregisters one; `--missing` drops every entry whose directory is gone, in one pass |
|
|
491
|
+
| `devp undo` | :------------------------------------------------------------------ | Reverts the most recent `init` or `link` |
|
|
492
|
+
| `devp run [PATH]` | `--dry-run`, `--only`, `--skip`, `--except`, `--min-size`, `--json` | Prunes every registered repository, or one target |
|
|
493
|
+
| `devp status` | `--top N`, `--drift`, `--json` | Interactive dashboard; a plain table when there is no TTY. `--top N` shows only the N biggest repositories; `--drift` lists every environment holding packages its lockfile never recorded |
|
|
494
|
+
| `devp stats` | `--json` | What has already been reclaimed: lifetime total, prune passes, the last pass, and the biggest contributors |
|
|
495
|
+
| `devp completions` | `bash`, `zsh`, `fish`, `powershell`, `elvish` | Prints a shell completion script to stdout, generated from the same argument definitions the binary parses with |
|
|
496
|
+
| `devp caches` | `clear <manager\|all>`, `--json` | Sizes every package manager cache on the machine and prints the command that clears each. The report deletes nothing and nothing on a schedule ever will; `clear` empties one when you type it, after asking |
|
|
497
|
+
| `devp trust` | `--json` | What dev-prune may do on this machine: the guarantees the code enforces, then the scheduler, hooks and settings read live. Read-only |
|
|
498
|
+
| `devp restore [PATH]` | `--last-run` | Reinstalls dependencies for every project in a tree; `--last-run` undoes the last prune pass |
|
|
499
|
+
| `devp doctor [PATH]` | `--fix` | Diagnoses the installation, or one repository — ending with the single reason a pass would or would not touch it. `--fix` repairs what the checks found; it never performs a first-time install |
|
|
500
|
+
| `devp config [ACTION]` | `get`, `set`, `show`, `wizard`, `project`, `daemon`, `hook`, `icon` | Global settings, per-repository `.devprune.json`, scheduler, Git hooks, file manager icons |
|
|
501
|
+
| `devp setup` | `--status` | Installs any missing integration; `--status` only reports |
|
|
502
|
+
| `devp update` | `--offline`, `--install` | Prints the installed version, checks GitHub for a newer release, shows the upgrade command for your install channel; `--install` runs that upgrade through the channel that owns this copy |
|
|
503
|
+
| `devp skill` | `--agent <editor>` | Exports `SKILL.md` and prints AI agent onboarding prompts; `--agent` writes per-repository rules for 16 editors — Cursor, Windsurf, Antigravity, Cline, Roo, Kilo Code, Continue, Amazon Q, Kiro, Trae, Junie, Gemini CLI, Zed, Copilot, Aider or `AGENTS.md` |
|
|
504
|
+
| `devp man` | `--dir <dir>` | The manual as man pages, generated from the same argument definitions `--help` prints; alone it emits `devp(1)` to stdout, `--dir` writes the full set |
|
|
505
|
+
| `devp uninstall` | `--deep` | Removes the scheduler, hooks, both binaries and every other installed copy it can find on the machine; `--deep` also clears configuration |
|
|
506
|
+
| `devp -V` | :------------------------------------------------------------------ | Version plus an environment audit: OS, architecture, config path, PATH activation |
|
|
484
507
|
|
|
485
508
|
`devp hook`, `devp daemon` and `devp icon` are shorthands for the `config` subcommands of
|
|
486
509
|
the same name, and `install` / `uninstall` / `on` / `off` work wherever `enable` /
|
|
@@ -523,16 +546,19 @@ Adapters detect the project, verify the lockfile, and own the bloat directories:
|
|
|
523
546
|
| **SwiftPM** *(opt-in)* | `Package.swift` | `.build` | `Package.swift` declares a `Package(` — the rebuild-from-source proof | *(rebuilt by the next `swift build`)* |
|
|
524
547
|
| **Dart / Flutter** *(opt-in)* | `pubspec.yaml` | `.dart_tool` | `pubspec.lock` has a `packages:` section and is no older than `pubspec.yaml` | `dart pub get` / `flutter pub get` |
|
|
525
548
|
| **Mix `_build/`** *(opt-in)* | `mix.exs` | `_build` | `mix.exs` and `mix.lock` both present — the rebuild-from-source proof | *(rebuilt by the next `mix compile`)* |
|
|
549
|
+
| **vcpkg** (C/C++) *(opt-in)* | `vcpkg.json` | `vcpkg_installed` | `vcpkg.json` declares a non-empty `dependencies` list | *(rebuilt by the next `vcpkg install`)* |
|
|
550
|
+
| **CMake** (C/C++) *(opt-in)* | `CMakeLists.txt` | any tree holding a `CMakeCache.txt` | the tree's own `CMakeCache.txt` names a source directory inside this repository | *(rebuilt by the next `cmake --build`)* |
|
|
526
551
|
|
|
527
552
|
A required binary that is missing is a reason to skip, never a reason to delete: if `npm`
|
|
528
553
|
is not on `PATH`, the `node_modules` it owns is left exactly where it is.
|
|
529
554
|
|
|
530
|
-
The
|
|
555
|
+
The eight build-tool adapters ship **disabled**, because a build tree is regenerated
|
|
531
556
|
by recompiling, not downloading — it costs more to get back. `devp config set
|
|
532
557
|
enable_cargo true` / `enable_gradle true` / `enable_maven true` / `enable_swift true` /
|
|
533
|
-
`enable_dart true` / `enable_mix_build true`
|
|
534
|
-
|
|
535
|
-
|
|
558
|
+
`enable_dart true` / `enable_mix_build true` / `enable_vcpkg true` /
|
|
559
|
+
`enable_cmake_build true` switches them on, and their candidates wait for
|
|
560
|
+
`build_idle_days` (45 by default), applied as the *maximum* of it and `idle_days` — the
|
|
561
|
+
build-tool gate only ever makes pruning later, never earlier.
|
|
536
562
|
|
|
537
563
|
Any one adapter can be made to wait longer than the rest: `devp config set
|
|
538
564
|
adapter_idle_days cargo=90,npm=30` sets a per-adapter floor, applied as
|
|
@@ -540,6 +566,30 @@ adapter_idle_days cargo=90,npm=30` sets a per-adapter floor, applied as
|
|
|
540
566
|
it beside the adapter checklist, grouped by language, where one heading sets the same
|
|
541
567
|
window for every adapter under it.
|
|
542
568
|
|
|
569
|
+
A download cache is a bet that re-downloading costs less than the disk it occupies,
|
|
570
|
+
and somewhere the bet stops paying. `devp config set cache_max_gb uv=10,npm=10` is
|
|
571
|
+
where you say where: a ceiling in gibibytes, per manager, measured against that
|
|
572
|
+
manager's whole footprint. A manager over its cap is **marked** in `devp caches` —
|
|
573
|
+
setting one deletes nothing — and `devp caches clear --over-cap all` empties exactly
|
|
574
|
+
what is marked, when you type it. It is keyed by the names `devp caches clear` takes
|
|
575
|
+
(`npm`, `pnpm`, `uv`, `pip`, `cargo`, `go`, `nuget`, …) rather than by adapter name,
|
|
576
|
+
because the two lists overlap without either containing the other. Empty by default:
|
|
577
|
+
no cache is too big until you say what too big is. The wizard sets caps as a third
|
|
578
|
+
column on the same checklist.
|
|
579
|
+
|
|
580
|
+
The report answers one more question the disk cannot: *who still needs this*. Beside each
|
|
581
|
+
manager it says how many of your registered repositories use it, and what its cache works
|
|
582
|
+
out to per repository — two repositories sharing a 12 GiB cache is 6 GiB each and worth a
|
|
583
|
+
look, forty sharing the same 12 GiB is 300 MiB each and is the cache doing its job. A
|
|
584
|
+
manager **no** registered repository uses is the one case where a count is enough to act
|
|
585
|
+
on: everything in it was downloaded for projects that are not on this disk any more, so
|
|
586
|
+
`devp caches clear --unused all` costs no re-download for anything you still have. The
|
|
587
|
+
count ignores whether an adapter is switched on, because the question is which managers
|
|
588
|
+
your projects *use*, not which ones a prune pass would touch, and it is shown only for the
|
|
589
|
+
managers that are also adapter names — `pip`, `conda`, `nuget`, `conan` and `hex` get
|
|
590
|
+
no number rather than a guess. With nothing registered, nothing is counted and
|
|
591
|
+
`--unused` refuses to run.
|
|
592
|
+
|
|
543
593
|
Bundler and Pipenv claim only the install that lives *inside* the repository: the
|
|
544
594
|
`vendor/bundle` a project gets from `bundle config set path vendor/bundle`, and the
|
|
545
595
|
`.venv` that appears when `PIPENV_VENV_IN_PROJECT` is set. Both tools default to a
|
|
@@ -624,9 +674,10 @@ inherited — and again after an upgrade adds a setting you have never been show
|
|
|
624
674
|
| `check_interval_days` | `2` | How often the OS scheduler runs a pass |
|
|
625
675
|
| `update_check` | `true` | Whether the periodic release check runs |
|
|
626
676
|
| `update_check_interval_days` · `update_check_timeout_secs` | `7` · `5` | Minimum gap between checks, and how long one may hang |
|
|
627
|
-
| `enable_cargo`
|
|
677
|
+
| `enable_cargo` … `enable_cmake_build` | `false` | Turn on an opt-in build-tool adapter; `build_idle_days` (`45`) gates all eight |
|
|
628
678
|
| `adapter_idle_days` | *(none)* | Per-adapter idle floors, as `cargo=90,npm=30` — each raises only its own window |
|
|
629
679
|
| `disabled_adapters` | *(none)* | Adapters to leave alone entirely, by name — as if that ecosystem were not installed |
|
|
680
|
+
| `cache_max_gb` | *(none)* | Per-manager cache caps in GiB, as `uv=10,npm=10` — the cap itself deletes nothing |
|
|
630
681
|
|
|
631
682
|
Three of them — `idle_days` (as `override_idle_days`), `min_size_mb` and `scan_depth` —
|
|
632
683
|
also take a per-repository form in that project's `.devprune.json`, where they win for
|
package/bin/dev-prune
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dev-prune-darwin-x64",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Prebuilt dev-prune binary for darwin x64. Installed automatically by the 'dev-prune' package; not meant to be depended on directly.",
|
|
5
5
|
"os": ["darwin"],
|
|
6
6
|
"cpu": ["x64"],
|