diff --git a/README.md b/README.md index 7b7e915..af2ef02 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,8 @@ again on the next run. Every download is decrypted on its way to disk. ## Getting Started -The commands below need `git`, Node 22 or later and `yarn`. +The commands below need `git`, `yarn` and Node 22.13 or later. Node 23 needs +23.5 or later. ```bash git clone https://git.eeqj.de/sneak/quak.git @@ -69,11 +70,29 @@ The library keeps a local copy of the account's album and file lists, the cache. It brings the cache up to date with the server in rounds called refreshes. quak is not published to a package registry: `package.json` marks it `private`, -and `dist/` is not committed. Clone and build it as above, then add the clone to -your own program's `package.json` by its path, for example -`yarn add file:../quak`. The package's `main`, `types` and `exports` fields -point into `dist/`, so the clone must be built first. The package is an ES -module only, so a CommonJS program cannot `require` it. +and `dist/` is not committed. Clone and build it as above, then link the clone +into your own program: + +```bash +# In the quak clone: +yarn link + +# In your program's directory: +yarn link quak +``` + +`yarn link` also installs the `quak` command in yarn's global bin directory, and +`yarn unlink` in the clone removes the link and the command. + +A linked quak uses the dependencies that `yarn install` put in the clone, at the +versions in quak's `yarn.lock`. Avoid `yarn add file:../quak`: it resolves +quak's dependencies again, and their newer releases can need a newer Node. +`yarn link quak` does not add quak to your `package.json`, so run it again in +each new checkout of your program. + +The package's `main`, `types` and `exports` fields point into `dist/`, so the +clone must be built first. The package is an ES module only, so a CommonJS +program cannot `require` it. ```ts import { Client, Library } from "quak"; diff --git a/package.json b/package.json index 63f26ca..b5cd75a 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "private": true, "type": "module", "engines": { - "node": ">=22" + "node": "^22.13.0 || >=23.5.0" }, "main": "./dist/src/index.js", "types": "./dist/src/index.d.ts",