@feralfile/cli 2.10.0 → 2.10.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/dist/package.json +2 -2
- package/dist/src/commands/find.js +11 -2
- package/docs/EXAMPLES.md +3 -0
- package/docs/README.md +1 -1
- package/package.json +2 -2
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feralfile/cli",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "CLI for building, signing, and playing DP-1 playlists of digital art on Feral File devices",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"chalk": "^4.1.2",
|
|
66
66
|
"commander": "^11.1.0",
|
|
67
67
|
"dotenv": "^16.3.1",
|
|
68
|
-
"dp1-js": "2.
|
|
68
|
+
"dp1-js": "2.4.1",
|
|
69
69
|
"ff1": "^1.0.0",
|
|
70
70
|
"fuzzysort": "^3.1.0",
|
|
71
71
|
"viem": "^2.56.3"
|
|
@@ -41,10 +41,11 @@ exports.findCommand = new commander_1.Command('find')
|
|
|
41
41
|
.option('-o, --output <path>', 'Save the playlist to this file (default: ./<slug>.json)')
|
|
42
42
|
.option('-l, --limit <n>', 'Max tokens to include from the series (default: all)')
|
|
43
43
|
.option('-p, --play', 'Play the playlist on an FF1 device after building')
|
|
44
|
+
.option('--no-play', 'Never cast to a device; combine with -y to build and save without playing')
|
|
44
45
|
.option('-d, --device <name>', 'Device to play on (used with --play; default: first configured)')
|
|
45
46
|
.option('--publish', 'Publish the playlist to a configured feed server')
|
|
46
47
|
.option('-s, --server <index>', 'Feed server index (used with --publish)')
|
|
47
|
-
.option('-y, --yes', 'Skip interactive prompts
|
|
48
|
+
.option('-y, --yes', 'Skip interactive prompts. Without --output or --publish, -y plays the playlist on a device; add --no-play to skip casting')
|
|
48
49
|
.option('--skip-verify', 'Skip signature verification before --play (mirrors `ff-cli play --skip-verify`)')
|
|
49
50
|
.action(async (input, options) => {
|
|
50
51
|
try {
|
|
@@ -478,9 +479,16 @@ async function confirmMakePlaylist(count, hasMore) {
|
|
|
478
479
|
* Precedence: explicit flags (--play / --publish) win and may combine. If no
|
|
479
480
|
* flag is set, fall back to --yes default (Play) or an interactive 3-way
|
|
480
481
|
* prompt. Save is unconditional and already done before this is called.
|
|
482
|
+
*
|
|
483
|
+
* `--no-play` (commander sets `play === false`) is an opt-out that removes
|
|
484
|
+
* casting from every path, including the `--yes` default and the interactive
|
|
485
|
+
* prompt. It is additive: `--yes` alone keeps its deliberate "max-satisfaction
|
|
486
|
+
* default for scripted use" of Play, and this must not change that. Because
|
|
487
|
+
* `--no-play` already states the user's intent, it never opens the prompt.
|
|
481
488
|
*/
|
|
482
489
|
async function decideActions(options) {
|
|
483
490
|
const flagActions = [];
|
|
491
|
+
const noPlay = options.play === false;
|
|
484
492
|
if (options.play) {
|
|
485
493
|
flagActions.push('play');
|
|
486
494
|
}
|
|
@@ -491,7 +499,8 @@ async function decideActions(options) {
|
|
|
491
499
|
return flagActions;
|
|
492
500
|
}
|
|
493
501
|
// --output alone (with or without --yes) means "save mode" — the save was the action.
|
|
494
|
-
|
|
502
|
+
// --no-play likewise means the save was the action; never prompt or default to Play.
|
|
503
|
+
if (options.output || noPlay) {
|
|
495
504
|
return [];
|
|
496
505
|
}
|
|
497
506
|
// --yes without --output defaults to Play (max-satisfaction default for scripted use).
|
package/docs/EXAMPLES.md
CHANGED
|
@@ -64,6 +64,9 @@ npm run dev -- find https://objkt.com/tokens/hicetnunc/111068 --publish
|
|
|
64
64
|
|
|
65
65
|
# Build, play on a named device, and skip interactive prompts
|
|
66
66
|
npm run dev -- find https://objkt.com/tokens/hicetnunc/111068 --play -d "Living Room Display" -y
|
|
67
|
+
|
|
68
|
+
# -y alone also plays (the scripted default); add --no-play to build and save without casting
|
|
69
|
+
npm run dev -- find https://objkt.com/tokens/hicetnunc/111068 -y --no-play
|
|
67
70
|
```
|
|
68
71
|
|
|
69
72
|
OpenSea and Verse accept both item and collection/series URLs:
|
package/docs/README.md
CHANGED
|
@@ -122,7 +122,7 @@ Both paths run the same deterministic pipeline: fetch metadata, assemble a DP-1
|
|
|
122
122
|
- Sources: Art Blocks, Objkt, fxhash, OpenSea, SuperRare, Feral File, Neort, Verse, raw on-chain coordinates, and wallet addresses
|
|
123
123
|
- OpenSea forms: `/assets/ethereum/{contract}/{tokenId}`, `/item/ethereum/{contract}/{tokenId}`, and `/collection/{slug}` (Ethereum collections; the slug is resolved from the public collection page, no API key needed)
|
|
124
124
|
- Verse forms: `/items/ethereum/{contract}/{tokenId}` and `/series/{slug}`
|
|
125
|
-
- Options: `-o, --output <path>`, `-l, --limit <n>`, `-p, --play`, `-d, --device <name>`, `--publish`, `-s, --server <index>`, `-y, --yes
|
|
125
|
+
- Options: `-o, --output <path>`, `-l, --limit <n>`, `-p, --play`, `--no-play` (never cast; combine with `-y` to build and save without playing), `-d, --device <name>`, `--publish`, `-s, --server <index>`, `-y, --yes` (skip prompts; without `-o` or `--publish` it plays the playlist on a device, so add `--no-play` to skip casting), `--skip-verify`
|
|
126
126
|
- `enrich <file>` – Add missing artist, title, and thumbnail metadata to a playlist that already exists. Resolves each item by its `provenance.contract` and writes an inline Ref Manifest; `source`, `duration`, `title`, and `id` are never touched. Drops the signature when it changes anything, so re-sign afterwards
|
|
127
127
|
- DP-1 `evm` names a chain family rather than a network, so those items are skipped unless `--assume-ethereum` asserts which one they are. Getting that wrong attaches another artwork's metadata
|
|
128
128
|
- Options: `-o, --output <file>`, `--force` (replace existing manifests), `--assume-ethereum`, `-v, --verbose`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feralfile/cli",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "CLI for building, signing, and playing DP-1 playlists of digital art on Feral File devices",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"chalk": "^4.1.2",
|
|
66
66
|
"commander": "^11.1.0",
|
|
67
67
|
"dotenv": "^16.3.1",
|
|
68
|
-
"dp1-js": "2.
|
|
68
|
+
"dp1-js": "2.4.1",
|
|
69
69
|
"ff1": "^1.0.0",
|
|
70
70
|
"fuzzysort": "^3.1.0",
|
|
71
71
|
"viem": "^2.56.3"
|