ripencli 0.3.4 → 1.0.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 +5 -1
- package/dist/cli.js +25 -8
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
- **Changelog viewer** — see GitHub release notes before you update
|
|
16
16
|
- **npm, pnpm, yarn & bun** — auto-detects your package manager
|
|
17
17
|
- **Global packages** — check and update global installs across all* package managers
|
|
18
|
+
- **Show all packages** — `ripen --all` lists every dependency, not just outdated ones (great for checking changelogs or downgrading)
|
|
18
19
|
- **Self-update** — notifies you when a new version of ripen is available
|
|
19
20
|
- **Major bump warnings** — highlights potentially breaking updates
|
|
20
21
|
- **Scope grouping** — optionally group scoped packages (e.g. `@heroui/*`) together
|
|
@@ -41,6 +42,9 @@ ripen
|
|
|
41
42
|
# Check global packages (scans npm, pnpm, and yarn)
|
|
42
43
|
ripen -g
|
|
43
44
|
|
|
45
|
+
# Show all packages, not just outdated ones
|
|
46
|
+
ripen --all
|
|
47
|
+
|
|
44
48
|
# Help
|
|
45
49
|
ripen --help
|
|
46
50
|
```
|
|
@@ -61,7 +65,7 @@ ripen --help
|
|
|
61
65
|
|
|
62
66
|
1. Reads your `package.json` and checks each dependency against the npm registry directly
|
|
63
67
|
2. Detects your package manager from the lock file (`bun.lock`, `pnpm-lock.yaml`, `package-lock.json`, or `yarn.lock`) for running updates
|
|
64
|
-
3. Shows outdated packages in a colorful interactive list
|
|
68
|
+
3. Shows outdated packages in a colorful interactive list (use `--all` to show every package, including up-to-date ones)
|
|
65
69
|
4. Press `v` on any package to pick a specific version from the npm registry
|
|
66
70
|
5. Press `c` to see GitHub release notes between your current and target version
|
|
67
71
|
6. Select the ones you want and press enter — ripen runs the update commands for you
|
package/dist/cli.js
CHANGED
|
@@ -239,7 +239,7 @@ async function fetchAllLatest(names, concurrency, onLine) {
|
|
|
239
239
|
await Promise.all(Array.from({ length: Math.min(concurrency, names.length) }, () => worker()));
|
|
240
240
|
return results;
|
|
241
241
|
}
|
|
242
|
-
async function getOutdatedPackages(manager, cwd, global = false, onLine) {
|
|
242
|
+
async function getOutdatedPackages(manager, cwd, global = false, onLine, showAll = false) {
|
|
243
243
|
if (global) return getGlobalOutdatedPackages(manager, cwd, onLine);
|
|
244
244
|
let deps;
|
|
245
245
|
try {
|
|
@@ -263,7 +263,7 @@ async function getOutdatedPackages(manager, cwd, global = false, onLine) {
|
|
|
263
263
|
for (const dep of deps) {
|
|
264
264
|
const latest = latestVersions.get(dep.name);
|
|
265
265
|
if (!latest) continue;
|
|
266
|
-
if (!isNewerVersion(dep.current, latest)) continue;
|
|
266
|
+
if (!showAll && !isNewerVersion(dep.current, latest)) continue;
|
|
267
267
|
packages.push({
|
|
268
268
|
name: dep.name,
|
|
269
269
|
current: dep.current,
|
|
@@ -853,7 +853,7 @@ function computeMaxPerGroup(terminalRows, groupCount) {
|
|
|
853
853
|
}
|
|
854
854
|
//#endregion
|
|
855
855
|
//#region src/ui/package-list/PackageList.tsx
|
|
856
|
-
function PackageList({ packages, onToggle, onToggleMany, onSelectVersion, onViewChangelog, onConfirm, onOpenSettings, groupByScope = false, groupScopes, groupsOnTop = false, frequencySort = false, frequency = {}, separateDevDeps = true, isActive = true }) {
|
|
856
|
+
function PackageList({ packages, onToggle, onToggleMany, onSelectVersion, onViewChangelog, onConfirm, onOpenSettings, groupByScope = false, groupScopes, groupsOnTop = false, frequencySort = false, frequency = {}, separateDevDeps = true, showAll = false, isActive = true }) {
|
|
857
857
|
const [focusedIndex, setFocusedIndex] = useState(0);
|
|
858
858
|
const allRows = useMemo(() => buildDisplayRows(packages, groupByScope, groupScopes, groupsOnTop, frequencySort, frequency, separateDevDeps), [
|
|
859
859
|
packages,
|
|
@@ -949,6 +949,7 @@ function PackageList({ packages, onToggle, onToggleMany, onSelectVersion, onView
|
|
|
949
949
|
if (key.return) onConfirm();
|
|
950
950
|
}, { isActive });
|
|
951
951
|
const selectedCount = packages.filter((p) => p.selected).length;
|
|
952
|
+
const outdatedCount = packages.filter((p) => p.current !== p.latest).length;
|
|
952
953
|
return /* @__PURE__ */ jsxs(Box, {
|
|
953
954
|
flexDirection: "column",
|
|
954
955
|
children: [
|
|
@@ -1044,7 +1045,18 @@ function PackageList({ packages, onToggle, onToggleMany, onSelectVersion, onView
|
|
|
1044
1045
|
children: " selected"
|
|
1045
1046
|
}),
|
|
1046
1047
|
" ",
|
|
1047
|
-
/* @__PURE__ */ jsxs(Text, {
|
|
1048
|
+
showAll ? /* @__PURE__ */ jsxs(Text, {
|
|
1049
|
+
color: "gray",
|
|
1050
|
+
children: [
|
|
1051
|
+
packages.length,
|
|
1052
|
+
" packages",
|
|
1053
|
+
" ",
|
|
1054
|
+
/* @__PURE__ */ jsxs(Text, {
|
|
1055
|
+
color: outdatedCount > 0 ? "yellow" : "green",
|
|
1056
|
+
children: [outdatedCount, " outdated"]
|
|
1057
|
+
})
|
|
1058
|
+
]
|
|
1059
|
+
}) : /* @__PURE__ */ jsxs(Text, {
|
|
1048
1060
|
color: "gray",
|
|
1049
1061
|
children: [packages.length, " outdated"]
|
|
1050
1062
|
})
|
|
@@ -1186,7 +1198,8 @@ function PackageGroupBox({ group, focusedIndex, collapsedScopes, scrollOffset, m
|
|
|
1186
1198
|
}
|
|
1187
1199
|
if (row.kind !== "package") return null;
|
|
1188
1200
|
const pkg = row.pkg;
|
|
1189
|
-
const
|
|
1201
|
+
const isUpToDate = pkg.current === pkg.latest;
|
|
1202
|
+
const isMajorBump = !isUpToDate && parseInt(pkg.latest) > parseInt(pkg.current);
|
|
1190
1203
|
return /* @__PURE__ */ jsxs(Box, {
|
|
1191
1204
|
gap: 2,
|
|
1192
1205
|
children: [
|
|
@@ -1213,7 +1226,7 @@ function PackageGroupBox({ group, focusedIndex, collapsedScopes, scrollOffset, m
|
|
|
1213
1226
|
/* @__PURE__ */ jsx(Box, {
|
|
1214
1227
|
width: 14,
|
|
1215
1228
|
children: /* @__PURE__ */ jsx(Text, {
|
|
1216
|
-
color: "red",
|
|
1229
|
+
color: isUpToDate ? "green" : "red",
|
|
1217
1230
|
children: pkg.current
|
|
1218
1231
|
})
|
|
1219
1232
|
}),
|
|
@@ -2339,7 +2352,7 @@ function useExitOnScreen(screen, targetScreens, exit, options) {
|
|
|
2339
2352
|
}
|
|
2340
2353
|
//#endregion
|
|
2341
2354
|
//#region src/ui/App.tsx
|
|
2342
|
-
function App({ project, global, version, installManager }) {
|
|
2355
|
+
function App({ project, global, showAll, version, installManager }) {
|
|
2343
2356
|
const { exit } = useApp();
|
|
2344
2357
|
const [screen, setScreen] = useState("self-update-check");
|
|
2345
2358
|
const [config, setConfig] = useState(() => loadConfig());
|
|
@@ -2372,7 +2385,7 @@ function App({ project, global, version, installManager }) {
|
|
|
2372
2385
|
setFetchStarted(true);
|
|
2373
2386
|
terminal.setLoadingMsg("Checking for outdated packages…");
|
|
2374
2387
|
terminal.setTerminalCmd(global ? "Checking all package managers…" : "Checking npm registry…");
|
|
2375
|
-
(global ? getAllGlobalOutdated(project.cwd, terminal.onLine) : getOutdatedPackages(project.manager, project.cwd, false, terminal.onLine)).then((result) => {
|
|
2388
|
+
(global ? getAllGlobalOutdated(project.cwd, terminal.onLine) : getOutdatedPackages(project.manager, project.cwd, false, terminal.onLine, showAll)).then((result) => {
|
|
2376
2389
|
if (!result.ok) {
|
|
2377
2390
|
setErrorMsg(result.error);
|
|
2378
2391
|
setScreen("error");
|
|
@@ -2570,6 +2583,7 @@ function App({ project, global, version, installManager }) {
|
|
|
2570
2583
|
frequencySort: config.frequencySort,
|
|
2571
2584
|
frequency,
|
|
2572
2585
|
separateDevDeps: config.separateDevDeps,
|
|
2586
|
+
showAll,
|
|
2573
2587
|
isActive: isListActive
|
|
2574
2588
|
})
|
|
2575
2589
|
})
|
|
@@ -2580,6 +2594,7 @@ function App({ project, global, version, installManager }) {
|
|
|
2580
2594
|
const { version: VERSION } = createRequire(import.meta.url)("../package.json");
|
|
2581
2595
|
const args = process.argv.slice(2);
|
|
2582
2596
|
const isGlobal = args.includes("--global") || args.includes("-g");
|
|
2597
|
+
const showAll = args.includes("--all") || args.includes("-a");
|
|
2583
2598
|
const showHelp = args.includes("--help") || args.includes("-h");
|
|
2584
2599
|
if (args.includes("--version") || args.includes("-V")) {
|
|
2585
2600
|
console.log(VERSION);
|
|
@@ -2592,6 +2607,7 @@ if (showHelp) {
|
|
|
2592
2607
|
Usage:
|
|
2593
2608
|
ripen check current project
|
|
2594
2609
|
ripen -g check global packages
|
|
2610
|
+
ripen -a show all packages, not just outdated ones
|
|
2595
2611
|
ripen --help show this help
|
|
2596
2612
|
ripen --version show version
|
|
2597
2613
|
|
|
@@ -2614,6 +2630,7 @@ if (!isGlobal && !hasPackageJson(cwd)) {
|
|
|
2614
2630
|
const { waitUntilExit } = render(/* @__PURE__ */ jsx(App, {
|
|
2615
2631
|
project: getProjectInfo(cwd),
|
|
2616
2632
|
global: isGlobal,
|
|
2633
|
+
showAll,
|
|
2617
2634
|
version: VERSION,
|
|
2618
2635
|
installManager: detectGlobalInstallManager()
|
|
2619
2636
|
}), { exitOnCtrlC: false });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ripencli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Interactive dependency updater for npm, pnpm, yarn, and bun",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -35,7 +35,10 @@
|
|
|
35
35
|
"dev": "tsx src/cli.tsx",
|
|
36
36
|
"typecheck": "tsc --noEmit",
|
|
37
37
|
"start": "node dist/cli.js",
|
|
38
|
-
"checks": "node scripts/pr-checks.ts"
|
|
38
|
+
"checks": "node scripts/pr-checks.ts",
|
|
39
|
+
"docs:dev": "pnpm --prefix docs dev",
|
|
40
|
+
"docs:build": "pnpm --prefix docs build",
|
|
41
|
+
"docs:start": "pnpm --prefix docs start"
|
|
39
42
|
},
|
|
40
43
|
"keywords": [
|
|
41
44
|
"npm",
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
"@types/node": "^25.5.0",
|
|
72
75
|
"@types/react": "^19.2.14",
|
|
73
76
|
"prettier": "^3.8.1",
|
|
74
|
-
"tsdown": "^0.21.
|
|
75
|
-
"typescript": "^
|
|
77
|
+
"tsdown": "^0.21.6",
|
|
78
|
+
"typescript": "^6.0.2"
|
|
76
79
|
}
|
|
77
80
|
}
|