ruckup 0.1.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.
Files changed (65) hide show
  1. package/dist/cli.d.ts +6 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +323 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/dep-diff.d.ts +9 -0
  6. package/dist/dep-diff.d.ts.map +1 -0
  7. package/dist/dep-diff.js +50 -0
  8. package/dist/dep-diff.js.map +1 -0
  9. package/dist/doctor.d.ts +12 -0
  10. package/dist/doctor.d.ts.map +1 -0
  11. package/dist/doctor.js +102 -0
  12. package/dist/doctor.js.map +1 -0
  13. package/dist/engine.d.ts +14 -0
  14. package/dist/engine.d.ts.map +1 -0
  15. package/dist/engine.js +128 -0
  16. package/dist/engine.js.map +1 -0
  17. package/dist/filter.d.ts +13 -0
  18. package/dist/filter.d.ts.map +1 -0
  19. package/dist/filter.js +68 -0
  20. package/dist/filter.js.map +1 -0
  21. package/dist/format.d.ts +11 -0
  22. package/dist/format.d.ts.map +1 -0
  23. package/dist/format.js +255 -0
  24. package/dist/format.js.map +1 -0
  25. package/dist/index.d.ts +17 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +16 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/inline-diff.d.ts +9 -0
  30. package/dist/inline-diff.d.ts.map +1 -0
  31. package/dist/inline-diff.js +88 -0
  32. package/dist/inline-diff.js.map +1 -0
  33. package/dist/interactive.d.ts +13 -0
  34. package/dist/interactive.d.ts.map +1 -0
  35. package/dist/interactive.js +231 -0
  36. package/dist/interactive.js.map +1 -0
  37. package/dist/open.d.ts +15 -0
  38. package/dist/open.d.ts.map +1 -0
  39. package/dist/open.js +52 -0
  40. package/dist/open.js.map +1 -0
  41. package/dist/package.d.ts +32 -0
  42. package/dist/package.d.ts.map +1 -0
  43. package/dist/package.js +143 -0
  44. package/dist/package.js.map +1 -0
  45. package/dist/registry.d.ts +26 -0
  46. package/dist/registry.d.ts.map +1 -0
  47. package/dist/registry.js +164 -0
  48. package/dist/registry.js.map +1 -0
  49. package/dist/release-info.d.ts +40 -0
  50. package/dist/release-info.d.ts.map +1 -0
  51. package/dist/release-info.js +165 -0
  52. package/dist/release-info.js.map +1 -0
  53. package/dist/security.d.ts +10 -0
  54. package/dist/security.d.ts.map +1 -0
  55. package/dist/security.js +72 -0
  56. package/dist/security.js.map +1 -0
  57. package/dist/types.d.ts +168 -0
  58. package/dist/types.d.ts.map +1 -0
  59. package/dist/types.js +50 -0
  60. package/dist/types.js.map +1 -0
  61. package/dist/version.d.ts +23 -0
  62. package/dist/version.d.ts.map +1 -0
  63. package/dist/version.js +229 -0
  64. package/dist/version.js.map +1 -0
  65. package/package.json +66 -0
package/dist/engine.js ADDED
@@ -0,0 +1,128 @@
1
+ /**
2
+ * ruckup core engine — wires registry, version resolver, filters, security, and diff together.
3
+ */
4
+ import semver from 'semver';
5
+ import { RegistryClient } from './registry.js';
6
+ import { readPackageFile, parsePackageData, extractDependencies, writeUpgrades, findPackageFiles, findWorkspacePackageFiles, } from './package.js';
7
+ import { filterDependencies } from './filter.js';
8
+ import { resolveTargetVersion, buildUpgradedRange, determineSemverChange, parseRangeOperator, } from './version.js';
9
+ import { checkAdvisories, enrichWithAdvisories } from './security.js';
10
+ import { enrichWithDepDiffs } from './dep-diff.js';
11
+ import { enrichWithReleaseInfo, checkOwnerChanged, resolveGitHubToken, getRepositoryUrl, } from './release-info.js';
12
+ /** Run the core upgrade check for a single package.json */
13
+ export async function checkUpgrades(options) {
14
+ const results = [];
15
+ // Determine which package files to process
16
+ let packageFiles;
17
+ if (options.stdin && options.packageData) {
18
+ // Virtual file from stdin
19
+ const pkg = parsePackageData(options.packageData);
20
+ const result = await processPackageFile(pkg, options);
21
+ results.push(result);
22
+ return results;
23
+ }
24
+ if (options.workspaces || (options.workspace && options.workspace.length > 0)) {
25
+ packageFiles = await findWorkspacePackageFiles(options);
26
+ }
27
+ else if (options.deep) {
28
+ packageFiles = await findPackageFiles('**/package.json', options.cwd);
29
+ }
30
+ else {
31
+ packageFiles = await findPackageFiles(options.packageFile, options.cwd);
32
+ }
33
+ for (const filePath of packageFiles) {
34
+ try {
35
+ const pkg = await readPackageFile(filePath);
36
+ const result = await processPackageFile(pkg, options);
37
+ results.push(result);
38
+ }
39
+ catch (err) {
40
+ if (options.loglevel !== 'silent') {
41
+ console.error(`Error processing ${filePath}: ${err.message}`);
42
+ }
43
+ }
44
+ }
45
+ return results;
46
+ }
47
+ /** Process a single package file */
48
+ async function processPackageFile(pkg, options) {
49
+ const registry = new RegistryClient(options);
50
+ // Handle cache clear
51
+ if (options.cacheClear) {
52
+ await registry.clearCache();
53
+ }
54
+ // Extract and filter dependencies
55
+ const allDeps = extractDependencies(pkg, options.dep);
56
+ const filteredDeps = filterDependencies(allDeps, options);
57
+ // Fetch metadata for all packages
58
+ const packageNames = Object.keys(filteredDeps);
59
+ const metadataMap = await registry.fetchMany(packageNames);
60
+ // Resolve upgrades
61
+ const upgrades = [];
62
+ for (const [name, info] of Object.entries(filteredDeps)) {
63
+ const metadata = metadataMap.get(name);
64
+ if (!metadata)
65
+ continue;
66
+ const targetVersion = resolveTargetVersion(info.versionRange, metadata, options);
67
+ if (!targetVersion)
68
+ continue;
69
+ const { version: currentVersionRaw } = parseRangeOperator(info.versionRange);
70
+ const currentVersion = semver.coerce(currentVersionRaw)?.version ?? currentVersionRaw;
71
+ const upgradedRange = buildUpgradedRange(info.versionRange, targetVersion);
72
+ const semverChange = determineSemverChange(currentVersion, targetVersion);
73
+ // Check for deprecated
74
+ const targetMeta = metadata.versions[targetVersion];
75
+ const isDeprecated = !!(targetMeta?.deprecated);
76
+ // Get publish date
77
+ const publishDate = metadata.time?.[targetVersion];
78
+ // Get repository URL
79
+ const repositoryUrl = getRepositoryUrl(metadata);
80
+ // Check owner changed
81
+ const ownerChanged = options.format.includes('ownerChanged') || options.interactive || options.security
82
+ ? checkOwnerChanged(metadata, currentVersion, targetVersion)
83
+ : undefined;
84
+ upgrades.push({
85
+ name,
86
+ current: info.versionRange,
87
+ currentVersion,
88
+ target: upgradedRange,
89
+ targetVersion,
90
+ depType: info.depType,
91
+ semverChange,
92
+ isDeprecated,
93
+ publishDate,
94
+ repositoryUrl,
95
+ homepage: metadata.homepage,
96
+ ownerChanged,
97
+ });
98
+ }
99
+ // Enrich with security data (if interactive, --security, or --diff)
100
+ if (options.interactive || options.security || options.diff) {
101
+ const advisories = await checkAdvisories(upgrades, options);
102
+ enrichWithAdvisories(upgrades, advisories);
103
+ }
104
+ // Enrich with dependency diffs (if interactive, --inspect-deps, or --diff)
105
+ if (options.interactive || options.inspectDeps || options.diff) {
106
+ enrichWithDepDiffs(upgrades, metadataMap);
107
+ }
108
+ // Enrich with release info (if interactive, --diff, or --open-*)
109
+ if (options.interactive ||
110
+ options.diff ||
111
+ options.openRelease ||
112
+ options.openDiff ||
113
+ options.openRepo ||
114
+ options.format.includes('diff')) {
115
+ const token = await resolveGitHubToken(options.githubToken);
116
+ await enrichWithReleaseInfo(upgrades, metadataMap, token);
117
+ }
118
+ return { upgrades, packageFile: pkg };
119
+ }
120
+ /** Apply upgrades to package.json files */
121
+ export async function applyUpgrades(results) {
122
+ for (const result of results) {
123
+ if (result.upgrades.length > 0) {
124
+ await writeUpgrades(result.packageFile, result.upgrades);
125
+ }
126
+ }
127
+ }
128
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Package and version filtering engine.
3
+ * Supports strings, wildcards, globs, and regex patterns.
4
+ */
5
+ import type { ExtractedDeps } from './package.js';
6
+ import type { RuckupOptions } from './types.js';
7
+ /** Apply all filters to the extracted dependencies */
8
+ export declare function filterDependencies(deps: ExtractedDeps, options: RuckupOptions): ExtractedDeps;
9
+ /** Filter versions by engines.node compatibility */
10
+ export declare function filterByEnginesNode(versions: string[], metadata: Record<string, {
11
+ engines?: Record<string, string>;
12
+ }>, nodeVersion: string): string[];
13
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyBhD,sDAAsD;AACtD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,aAAa,GACrB,aAAa,CA4Bf;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,EAC9D,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAUV"}
package/dist/filter.js ADDED
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Package and version filtering engine.
3
+ * Supports strings, wildcards, globs, and regex patterns.
4
+ */
5
+ import { minimatch } from 'minimatch';
6
+ import semver from 'semver';
7
+ /** Test if a string matches a filter pattern (string, glob, or /regex/) */
8
+ function matchesPattern(value, pattern) {
9
+ // Regex pattern: /pattern/ or /pattern/flags
10
+ const regexMatch = pattern.match(/^\/(.+)\/([gimsuy]*)$/);
11
+ if (regexMatch) {
12
+ const regex = new RegExp(regexMatch[1], regexMatch[2]);
13
+ return regex.test(value);
14
+ }
15
+ // Glob/wildcard pattern
16
+ if (pattern.includes('*') || pattern.includes('?') || pattern.includes('{')) {
17
+ return minimatch(value, pattern);
18
+ }
19
+ // Exact string match
20
+ return value === pattern;
21
+ }
22
+ /** Check if a package name matches any of the given patterns */
23
+ function matchesAnyPattern(name, patterns) {
24
+ return patterns.some((p) => matchesPattern(name, p));
25
+ }
26
+ /** Apply all filters to the extracted dependencies */
27
+ export function filterDependencies(deps, options) {
28
+ const filtered = {};
29
+ for (const [name, info] of Object.entries(deps)) {
30
+ // --filter: include only matching packages
31
+ if (options.filter && options.filter.length > 0) {
32
+ if (!matchesAnyPattern(name, options.filter))
33
+ continue;
34
+ }
35
+ // --reject: exclude matching packages
36
+ if (options.reject && options.reject.length > 0) {
37
+ if (matchesAnyPattern(name, options.reject))
38
+ continue;
39
+ }
40
+ // --filterVersion: include only packages with matching version
41
+ if (options.filterVersion && options.filterVersion.length > 0) {
42
+ if (!matchesAnyPattern(info.versionRange, options.filterVersion))
43
+ continue;
44
+ }
45
+ // --rejectVersion: exclude packages with matching version
46
+ if (options.rejectVersion && options.rejectVersion.length > 0) {
47
+ if (matchesAnyPattern(info.versionRange, options.rejectVersion))
48
+ continue;
49
+ }
50
+ filtered[name] = info;
51
+ }
52
+ return filtered;
53
+ }
54
+ /** Filter versions by engines.node compatibility */
55
+ export function filterByEnginesNode(versions, metadata, nodeVersion) {
56
+ return versions.filter((ver) => {
57
+ const meta = metadata[ver];
58
+ if (!meta?.engines?.node)
59
+ return true;
60
+ try {
61
+ return semver.satisfies(nodeVersion, meta.engines.node);
62
+ }
63
+ catch {
64
+ return true;
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Output formatter — color-coded table, grouped, JSON, and enriched formats.
3
+ */
4
+ import type { UpgradeResult, RuckupOptions, DepDiff, Advisory } from './types.js';
5
+ /** Main format function dispatching based on options */
6
+ export declare function formatOutput(upgrades: UpgradeResult[], options: RuckupOptions): string;
7
+ /** Format a detailed dependency diff for display */
8
+ export declare function formatDepDiffDetail(packageName: string, diff: DepDiff): string;
9
+ /** Format an advisory detail for display */
10
+ export declare function formatAdvisoryDetail(packageName: string, advisories: Advisory[]): string;
11
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA8LlF,wDAAwD;AACxD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,aAAa,GACrB,MAAM,CAyCR;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,GACZ,MAAM,CA+BR;AAED,4CAA4C;AAC5C,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,QAAQ,EAAE,GACrB,MAAM,CAsBR"}
package/dist/format.js ADDED
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Output formatter — color-coded table, grouped, JSON, and enriched formats.
3
+ */
4
+ import chalk from 'chalk';
5
+ /** Color a version based on semver change type */
6
+ function colorVersion(version, change) {
7
+ switch (change) {
8
+ case 'major':
9
+ return chalk.red(version);
10
+ case 'minor':
11
+ return chalk.cyan(version);
12
+ case 'patch':
13
+ return chalk.green(version);
14
+ case 'prerelease':
15
+ return chalk.yellow(version);
16
+ default:
17
+ return version;
18
+ }
19
+ }
20
+ /** Format a single upgrade line in default table mode */
21
+ function formatUpgradeLine(upgrade, maxNameLen, maxCurrentLen, formats) {
22
+ const name = upgrade.name.padEnd(maxNameLen);
23
+ const current = upgrade.current.padStart(maxCurrentLen);
24
+ const arrow = chalk.dim(' → ');
25
+ const target = colorVersion(upgrade.target, upgrade.semverChange);
26
+ let line = ` ${name} ${current}${arrow}${target}`;
27
+ // --format dep: show dependency type
28
+ if (formats.has('dep')) {
29
+ const depLabel = formatDepType(upgrade.depType);
30
+ line += chalk.dim(` ${depLabel}`);
31
+ }
32
+ // --format time: show publish date
33
+ if (formats.has('time') && upgrade.publishDate) {
34
+ line += chalk.dim(` ${upgrade.publishDate}`);
35
+ }
36
+ // --format repo: show repository URL
37
+ if (formats.has('repo') && upgrade.repositoryUrl) {
38
+ line += chalk.dim(` ${upgrade.repositoryUrl}`);
39
+ }
40
+ // --format homepage: show homepage
41
+ if (formats.has('homepage') && upgrade.homepage) {
42
+ line += chalk.dim(` ${upgrade.homepage}`);
43
+ }
44
+ // --format ownerChanged: flag owner changes
45
+ if (formats.has('ownerChanged') && upgrade.ownerChanged) {
46
+ line += chalk.red.bold(' ⚠ OWNER CHANGED');
47
+ }
48
+ // Security advisory badge
49
+ if (upgrade.advisories && upgrade.advisories.length > 0) {
50
+ const maxSeverity = getMaxSeverity(upgrade.advisories);
51
+ const badge = formatAdvisoryBadge(maxSeverity, upgrade.advisories.length);
52
+ line += ` ${badge}`;
53
+ }
54
+ // Dependency diff indicator
55
+ if (upgrade.depDiff) {
56
+ const diffStr = formatDepDiffBadge(upgrade.depDiff);
57
+ if (diffStr)
58
+ line += ` ${diffStr}`;
59
+ }
60
+ // Release info indicator
61
+ if (upgrade.releaseInfo?.releaseUrl) {
62
+ line += chalk.blue(' 🔗');
63
+ }
64
+ return line;
65
+ }
66
+ function formatDepType(depType) {
67
+ switch (depType) {
68
+ case 'dependencies': return 'prod';
69
+ case 'devDependencies': return 'dev';
70
+ case 'optionalDependencies': return 'optional';
71
+ case 'peerDependencies': return 'peer';
72
+ case 'packageManager': return 'pm';
73
+ default: return depType;
74
+ }
75
+ }
76
+ function getMaxSeverity(advisories) {
77
+ const order = ['critical', 'high', 'moderate', 'low', 'info'];
78
+ for (const level of order) {
79
+ if (advisories.some((a) => a.severity === level))
80
+ return level;
81
+ }
82
+ return 'info';
83
+ }
84
+ function formatAdvisoryBadge(severity, count) {
85
+ const label = `⚠ ${count} ${severity.toUpperCase()}`;
86
+ switch (severity) {
87
+ case 'critical': return chalk.bgRed.white.bold(` ${label} `);
88
+ case 'high': return chalk.red.bold(label);
89
+ case 'moderate': return chalk.yellow.bold(label);
90
+ case 'low': return chalk.dim(label);
91
+ default: return chalk.dim(label);
92
+ }
93
+ }
94
+ function formatDepDiffBadge(diff) {
95
+ const parts = [];
96
+ if (diff.totalAdded > 0)
97
+ parts.push(chalk.red(`+${diff.totalAdded} deps`));
98
+ if (diff.totalRemoved > 0)
99
+ parts.push(chalk.green(`-${diff.totalRemoved} deps`));
100
+ if (diff.totalChanged > 0)
101
+ parts.push(chalk.yellow(`~${diff.totalChanged} deps`));
102
+ return parts.length > 0 ? parts.join(' ') : null;
103
+ }
104
+ /** Format all upgrades as a default table */
105
+ function formatTable(upgrades, formats) {
106
+ if (upgrades.length === 0) {
107
+ return chalk.green('All dependencies match the latest package versions :)');
108
+ }
109
+ const maxNameLen = Math.max(...upgrades.map((u) => u.name.length));
110
+ const maxCurrentLen = Math.max(...upgrades.map((u) => u.current.length));
111
+ const lines = upgrades.map((u) => formatUpgradeLine(u, maxNameLen, maxCurrentLen, formats));
112
+ return lines.join('\n');
113
+ }
114
+ /** Format upgrades grouped by semver change type */
115
+ function formatGrouped(upgrades, formats) {
116
+ if (upgrades.length === 0) {
117
+ return chalk.green('All dependencies match the latest package versions :)');
118
+ }
119
+ const groups = {
120
+ major: [],
121
+ minor: [],
122
+ patch: [],
123
+ majorVersionZero: [],
124
+ other: [],
125
+ };
126
+ for (const u of upgrades) {
127
+ const currentMajor = parseInt(u.currentVersion.split('.')[0] ?? '0', 10);
128
+ if (currentMajor === 0 || parseInt(u.targetVersion.split('.')[0] ?? '0', 10) === 0) {
129
+ groups.majorVersionZero.push(u);
130
+ }
131
+ else if (u.semverChange === 'major') {
132
+ groups.major.push(u);
133
+ }
134
+ else if (u.semverChange === 'minor') {
135
+ groups.minor.push(u);
136
+ }
137
+ else if (u.semverChange === 'patch') {
138
+ groups.patch.push(u);
139
+ }
140
+ else {
141
+ groups.other.push(u);
142
+ }
143
+ }
144
+ const sections = [];
145
+ const allUpgrades = [...upgrades];
146
+ const maxNameLen = Math.max(...allUpgrades.map((u) => u.name.length));
147
+ const maxCurrentLen = Math.max(...allUpgrades.map((u) => u.current.length));
148
+ for (const [label, items] of [
149
+ ['Major', groups.major],
150
+ ['Minor', groups.minor],
151
+ ['Patch', groups.patch],
152
+ ['Major Version Zero', groups.majorVersionZero],
153
+ ['Other', groups.other],
154
+ ]) {
155
+ if (items.length === 0)
156
+ continue;
157
+ const header = chalk.bold.underline(label);
158
+ const lines = items.map((u) => formatUpgradeLine(u, maxNameLen, maxCurrentLen, formats));
159
+ sections.push(`${header}\n${lines.join('\n')}`);
160
+ }
161
+ return sections.join('\n\n');
162
+ }
163
+ /** Format upgrades as name@version lines (for piping) */
164
+ function formatLines(upgrades) {
165
+ return upgrades.map((u) => `${u.name}@${u.targetVersion}`).join('\n');
166
+ }
167
+ /** Main format function dispatching based on options */
168
+ export function formatOutput(upgrades, options) {
169
+ // JSON outputs
170
+ if (options.jsonUpgraded) {
171
+ const obj = {};
172
+ for (const u of upgrades)
173
+ obj[u.name] = u.target;
174
+ return JSON.stringify(obj, null, 2);
175
+ }
176
+ if (options.jsonAll) {
177
+ // Return the full package.json data is handled at the caller level
178
+ // Here we just output the upgrades as JSON
179
+ const obj = {};
180
+ for (const u of upgrades)
181
+ obj[u.name] = u.target;
182
+ return JSON.stringify(obj, null, 2);
183
+ }
184
+ if (options.jsonDeps) {
185
+ const sections = {};
186
+ for (const u of upgrades) {
187
+ if (!sections[u.depType])
188
+ sections[u.depType] = {};
189
+ sections[u.depType][u.name] = u.target;
190
+ }
191
+ return JSON.stringify(sections, null, 2);
192
+ }
193
+ if (options.silent)
194
+ return '';
195
+ const formats = new Set(options.format);
196
+ // Lines format
197
+ if (formats.has('lines')) {
198
+ return formatLines(upgrades);
199
+ }
200
+ // Grouped format
201
+ if (formats.has('group')) {
202
+ return formatGrouped(upgrades, formats);
203
+ }
204
+ // Default table
205
+ return formatTable(upgrades, formats);
206
+ }
207
+ /** Format a detailed dependency diff for display */
208
+ export function formatDepDiffDetail(packageName, diff) {
209
+ const lines = [
210
+ chalk.bold(`Dependency changes for ${packageName}:`),
211
+ ];
212
+ if (diff.totalAdded > 0) {
213
+ lines.push(chalk.red.bold(`\n Added (${diff.totalAdded}):`));
214
+ for (const [name, ver] of Object.entries(diff.added)) {
215
+ lines.push(chalk.red(` + ${name}@${ver}`));
216
+ }
217
+ }
218
+ if (diff.totalRemoved > 0) {
219
+ lines.push(chalk.green.bold(`\n Removed (${diff.totalRemoved}):`));
220
+ for (const [name, ver] of Object.entries(diff.removed)) {
221
+ lines.push(chalk.green(` - ${name}@${ver}`));
222
+ }
223
+ }
224
+ if (diff.totalChanged > 0) {
225
+ lines.push(chalk.yellow.bold(`\n Changed (${diff.totalChanged}):`));
226
+ for (const [name, { from, to }] of Object.entries(diff.changed)) {
227
+ lines.push(chalk.yellow(` ~ ${name}: ${from} → ${to}`));
228
+ }
229
+ }
230
+ if (diff.totalAdded === 0 && diff.totalRemoved === 0 && diff.totalChanged === 0) {
231
+ lines.push(chalk.dim(' No dependency changes'));
232
+ }
233
+ return lines.join('\n');
234
+ }
235
+ /** Format an advisory detail for display */
236
+ export function formatAdvisoryDetail(packageName, advisories) {
237
+ const lines = [
238
+ chalk.bold(`Security advisories for ${packageName}:`),
239
+ ];
240
+ for (const advisory of advisories) {
241
+ const severityColor = advisory.severity === 'critical' ? chalk.bgRed.white :
242
+ advisory.severity === 'high' ? chalk.red :
243
+ advisory.severity === 'moderate' ? chalk.yellow :
244
+ chalk.dim;
245
+ lines.push(` ${severityColor(advisory.severity.toUpperCase())} ${advisory.title}`);
246
+ lines.push(chalk.dim(` ${advisory.url}`));
247
+ lines.push(chalk.dim(` Vulnerable: ${advisory.vulnerableVersions}`));
248
+ if (advisory.recommendation) {
249
+ lines.push(chalk.dim(` Fix: ${advisory.recommendation}`));
250
+ }
251
+ lines.push('');
252
+ }
253
+ return lines.join('\n');
254
+ }
255
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ruckup — npm-check-updates with security inspection.
3
+ *
4
+ * Programmatic API.
5
+ */
6
+ export type { RuckupOptions, UpgradeResult, Advisory, DepDiff, ReleaseInfo, NpmPackageMetadata, NpmVersionMetadata, DepType, TargetStrategy, } from './types.js';
7
+ export { DEFAULT_OPTIONS } from './types.js';
8
+ export { checkUpgrades, applyUpgrades } from './engine.js';
9
+ export { RegistryClient } from './registry.js';
10
+ export { readPackageFile, parsePackageData, extractDependencies, writeUpgrades, } from './package.js';
11
+ export { resolveTargetVersion, buildUpgradedRange, determineSemverChange, parseRangeOperator, applyRangeOperator, } from './version.js';
12
+ export { filterDependencies } from './filter.js';
13
+ export { formatOutput, formatDepDiffDetail, formatAdvisoryDetail } from './format.js';
14
+ export { checkAdvisories } from './security.js';
15
+ export { computeDepDiff } from './dep-diff.js';
16
+ export { parseGitHubRepo, getRepositoryUrl, fetchGitHubRelease, resolveGitHubToken, buildCompareUrl, buildReleaseUrl, buildRepoUrl, checkOwnerChanged, } from './release-info.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,aAAa,EACb,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ruckup — npm-check-updates with security inspection.
3
+ *
4
+ * Programmatic API.
5
+ */
6
+ export { DEFAULT_OPTIONS } from './types.js';
7
+ export { checkUpgrades, applyUpgrades } from './engine.js';
8
+ export { RegistryClient } from './registry.js';
9
+ export { readPackageFile, parsePackageData, extractDependencies, writeUpgrades, } from './package.js';
10
+ export { resolveTargetVersion, buildUpgradedRange, determineSemverChange, parseRangeOperator, applyRangeOperator, } from './version.js';
11
+ export { filterDependencies } from './filter.js';
12
+ export { formatOutput, formatDepDiffDetail, formatAdvisoryDetail } from './format.js';
13
+ export { checkAdvisories } from './security.js';
14
+ export { computeDepDiff } from './dep-diff.js';
15
+ export { parseGitHubRepo, getRepositoryUrl, fetchGitHubRelease, resolveGitHubToken, buildCompareUrl, buildReleaseUrl, buildRepoUrl, checkOwnerChanged, } from './release-info.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Inline diff/changelog view — renders release notes or dep changes in the terminal.
3
+ */
4
+ import type { UpgradeResult } from './types.js';
5
+ /** Render inline diff for a single upgrade */
6
+ export declare function renderInlineDiff(upgrade: UpgradeResult): string;
7
+ /** Render inline diffs for all upgrades */
8
+ export declare function renderAllInlineDiffs(upgrades: UpgradeResult[]): string;
9
+ //# sourceMappingURL=inline-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-diff.d.ts","sourceRoot":"","sources":["../src/inline-diff.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAwBhD,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA8D/D;AAED,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAMtE"}