mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-19 01:26:29 +03:00
CLI: turn the impeccable npm package into a platform-binary shim
cli/engine, cli/lib, and cli/bin/commands are gone; their behavior lives in the engine binary. cli/bin/cli.js now resolves the binary from IMPECCABLE_BIN, the @impeccable/cli-<os>-<arch> optional dependency (templates under cli/platform-packages/, published by the engine release), the ~/.impeccable/bin/<version>/ cache, or a checksum-verified download, and execs it. package.json drops the engine dependencies and the library exports; puppeteer moves to devDependencies for the icon scripts. README.npm.md describes the shim. Prepared with AI assistance (Claude Code).
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# Platform packages
|
||||
|
||||
Templates for the `@impeccable/cli-<os>-<arch>` packages the `impeccable` npm
|
||||
shim (`cli/bin/cli.js`) declares as `optionalDependencies`. npm installs only
|
||||
the one matching the host (`os` / `cpu` fields), and the shim resolves
|
||||
`<package>/bin/impeccable[.exe]` from it before falling back to the user cache
|
||||
or a download.
|
||||
|
||||
They are **published by the engine release**, not from this repo: the release
|
||||
pipeline copies each template, sets `version` to the engine version, drops the
|
||||
built binary at `bin/impeccable[.exe]` (executable), and publishes it under
|
||||
`@impeccable`. The version pinned in this repo's `package.json`
|
||||
`optionalDependencies` must equal `ENGINE_VERSION`.
|
||||
|
||||
Targets: `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `windows-x64`.
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "@impeccable/cli-darwin-arm64",
|
||||
"version": "0.0.0-engine",
|
||||
"description": "impeccable engine binary for darwin-arm64. Installed as an optional dependency of the impeccable npm package; do not depend on it directly.",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"homepage": "https://impeccable.style",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/pbakaus/impeccable.git"
|
||||
},
|
||||
"os": ["darwin"],
|
||||
"cpu": ["arm64"],
|
||||
"files": ["bin/", "LICENSE"],
|
||||
"bin": {
|
||||
"impeccable-darwin-arm64": "bin/impeccable"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "@impeccable/cli-darwin-x64",
|
||||
"version": "0.0.0-engine",
|
||||
"description": "impeccable engine binary for darwin-x64. Installed as an optional dependency of the impeccable npm package; do not depend on it directly.",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"homepage": "https://impeccable.style",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/pbakaus/impeccable.git"
|
||||
},
|
||||
"os": ["darwin"],
|
||||
"cpu": ["x64"],
|
||||
"files": ["bin/", "LICENSE"],
|
||||
"bin": {
|
||||
"impeccable-darwin-x64": "bin/impeccable"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "@impeccable/cli-linux-arm64",
|
||||
"version": "0.0.0-engine",
|
||||
"description": "impeccable engine binary for linux-arm64. Installed as an optional dependency of the impeccable npm package; do not depend on it directly.",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"homepage": "https://impeccable.style",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/pbakaus/impeccable.git"
|
||||
},
|
||||
"os": ["linux"],
|
||||
"cpu": ["arm64"],
|
||||
"files": ["bin/", "LICENSE"],
|
||||
"bin": {
|
||||
"impeccable-linux-arm64": "bin/impeccable"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "@impeccable/cli-linux-x64",
|
||||
"version": "0.0.0-engine",
|
||||
"description": "impeccable engine binary for linux-x64. Installed as an optional dependency of the impeccable npm package; do not depend on it directly.",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"homepage": "https://impeccable.style",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/pbakaus/impeccable.git"
|
||||
},
|
||||
"os": ["linux"],
|
||||
"cpu": ["x64"],
|
||||
"files": ["bin/", "LICENSE"],
|
||||
"bin": {
|
||||
"impeccable-linux-x64": "bin/impeccable"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "@impeccable/cli-windows-x64",
|
||||
"version": "0.0.0-engine",
|
||||
"description": "impeccable engine binary for windows-x64. Installed as an optional dependency of the impeccable npm package; do not depend on it directly.",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"homepage": "https://impeccable.style",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/pbakaus/impeccable.git"
|
||||
},
|
||||
"os": ["win32"],
|
||||
"cpu": ["x64"],
|
||||
"files": ["bin/", "LICENSE"],
|
||||
"bin": {
|
||||
"impeccable-windows-x64": "bin/impeccable.exe"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user