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.
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +323 -0
- package/dist/cli.js.map +1 -0
- package/dist/dep-diff.d.ts +9 -0
- package/dist/dep-diff.d.ts.map +1 -0
- package/dist/dep-diff.js +50 -0
- package/dist/dep-diff.js.map +1 -0
- package/dist/doctor.d.ts +12 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +102 -0
- package/dist/doctor.js.map +1 -0
- package/dist/engine.d.ts +14 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +128 -0
- package/dist/engine.js.map +1 -0
- package/dist/filter.d.ts +13 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +68 -0
- package/dist/filter.js.map +1 -0
- package/dist/format.d.ts +11 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +255 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/inline-diff.d.ts +9 -0
- package/dist/inline-diff.d.ts.map +1 -0
- package/dist/inline-diff.js +88 -0
- package/dist/inline-diff.js.map +1 -0
- package/dist/interactive.d.ts +13 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +231 -0
- package/dist/interactive.js.map +1 -0
- package/dist/open.d.ts +15 -0
- package/dist/open.d.ts.map +1 -0
- package/dist/open.js +52 -0
- package/dist/open.js.map +1 -0
- package/dist/package.d.ts +32 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +143 -0
- package/dist/package.js.map +1 -0
- package/dist/registry.d.ts +26 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +164 -0
- package/dist/registry.js.map +1 -0
- package/dist/release-info.d.ts +40 -0
- package/dist/release-info.d.ts.map +1 -0
- package/dist/release-info.js +165 -0
- package/dist/release-info.js.map +1 -0
- package/dist/security.d.ts +10 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +72 -0
- package/dist/security.js.map +1 -0
- package/dist/types.d.ts +168 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +50 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +23 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +229 -0
- package/dist/version.js.map +1 -0
- package/package.json +66 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared type definitions for ruckup.
|
|
3
|
+
*/
|
|
4
|
+
/** Dependency type sections in package.json */
|
|
5
|
+
export type DepType = 'dependencies' | 'devDependencies' | 'optionalDependencies' | 'peerDependencies' | 'packageManager';
|
|
6
|
+
/** A single dependency with its current and target versions */
|
|
7
|
+
export interface UpgradeResult {
|
|
8
|
+
name: string;
|
|
9
|
+
current: string;
|
|
10
|
+
currentVersion: string;
|
|
11
|
+
target: string;
|
|
12
|
+
targetVersion: string;
|
|
13
|
+
depType: DepType;
|
|
14
|
+
semverChange: 'major' | 'minor' | 'patch' | 'prerelease' | 'build' | null;
|
|
15
|
+
isDeprecated: boolean;
|
|
16
|
+
publishDate?: string;
|
|
17
|
+
repositoryUrl?: string;
|
|
18
|
+
homepage?: string;
|
|
19
|
+
/** Security advisory info (populated when --security or interactive) */
|
|
20
|
+
advisories?: Advisory[];
|
|
21
|
+
/** Dependency diff info (populated when --inspect-deps or interactive) */
|
|
22
|
+
depDiff?: DepDiff;
|
|
23
|
+
/** Release info (populated when release notes are fetched) */
|
|
24
|
+
releaseInfo?: ReleaseInfo;
|
|
25
|
+
/** Whether the package owner changed between versions */
|
|
26
|
+
ownerChanged?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/** npm security advisory */
|
|
29
|
+
export interface Advisory {
|
|
30
|
+
id: number;
|
|
31
|
+
title: string;
|
|
32
|
+
url: string;
|
|
33
|
+
severity: 'critical' | 'high' | 'moderate' | 'low' | 'info';
|
|
34
|
+
vulnerableVersions: string;
|
|
35
|
+
recommendation?: string;
|
|
36
|
+
}
|
|
37
|
+
/** Dependency diff between two versions */
|
|
38
|
+
export interface DepDiff {
|
|
39
|
+
added: Record<string, string>;
|
|
40
|
+
removed: Record<string, string>;
|
|
41
|
+
changed: Record<string, {
|
|
42
|
+
from: string;
|
|
43
|
+
to: string;
|
|
44
|
+
}>;
|
|
45
|
+
totalAdded: number;
|
|
46
|
+
totalRemoved: number;
|
|
47
|
+
totalChanged: number;
|
|
48
|
+
}
|
|
49
|
+
/** Release/tag information from SCM */
|
|
50
|
+
export interface ReleaseInfo {
|
|
51
|
+
tagName: string;
|
|
52
|
+
releaseName?: string;
|
|
53
|
+
body?: string;
|
|
54
|
+
releaseUrl?: string;
|
|
55
|
+
compareUrl?: string;
|
|
56
|
+
repoUrl?: string;
|
|
57
|
+
publishedAt?: string;
|
|
58
|
+
}
|
|
59
|
+
/** Raw npm registry package metadata */
|
|
60
|
+
export interface NpmPackageMetadata {
|
|
61
|
+
name: string;
|
|
62
|
+
'dist-tags': Record<string, string>;
|
|
63
|
+
versions: Record<string, NpmVersionMetadata>;
|
|
64
|
+
time: Record<string, string>;
|
|
65
|
+
repository?: {
|
|
66
|
+
type?: string;
|
|
67
|
+
url?: string;
|
|
68
|
+
} | string;
|
|
69
|
+
homepage?: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
}
|
|
72
|
+
/** Metadata for a single version from the registry */
|
|
73
|
+
export interface NpmVersionMetadata {
|
|
74
|
+
name: string;
|
|
75
|
+
version: string;
|
|
76
|
+
dependencies?: Record<string, string>;
|
|
77
|
+
devDependencies?: Record<string, string>;
|
|
78
|
+
peerDependencies?: Record<string, string>;
|
|
79
|
+
optionalDependencies?: Record<string, string>;
|
|
80
|
+
deprecated?: string | boolean;
|
|
81
|
+
engines?: Record<string, string>;
|
|
82
|
+
repository?: {
|
|
83
|
+
type?: string;
|
|
84
|
+
url?: string;
|
|
85
|
+
} | string;
|
|
86
|
+
homepage?: string;
|
|
87
|
+
maintainers?: Array<{
|
|
88
|
+
name: string;
|
|
89
|
+
email?: string;
|
|
90
|
+
}>;
|
|
91
|
+
_npmUser?: {
|
|
92
|
+
name: string;
|
|
93
|
+
email?: string;
|
|
94
|
+
};
|
|
95
|
+
dist?: {
|
|
96
|
+
shasum: string;
|
|
97
|
+
tarball: string;
|
|
98
|
+
integrity?: string;
|
|
99
|
+
signatures?: Array<{
|
|
100
|
+
keyid: string;
|
|
101
|
+
sig: string;
|
|
102
|
+
}>;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Version target strategy */
|
|
106
|
+
export type TargetStrategy = 'latest' | 'newest' | 'greatest' | 'minor' | 'patch' | 'semver';
|
|
107
|
+
/** CLI options (mirrors ncu options + ruckup additions) */
|
|
108
|
+
export interface RuckupOptions {
|
|
109
|
+
upgrade: boolean;
|
|
110
|
+
interactive: boolean;
|
|
111
|
+
global: boolean;
|
|
112
|
+
filter?: string[];
|
|
113
|
+
reject?: string[];
|
|
114
|
+
target: TargetStrategy | string;
|
|
115
|
+
packageFile: string;
|
|
116
|
+
packageManager: string;
|
|
117
|
+
registry: string;
|
|
118
|
+
registryType: 'npm' | 'json';
|
|
119
|
+
dep: string;
|
|
120
|
+
pre: boolean;
|
|
121
|
+
silent: boolean;
|
|
122
|
+
loglevel: 'silent' | 'error' | 'minimal' | 'warn' | 'info' | 'verbose' | 'silly';
|
|
123
|
+
format: string[];
|
|
124
|
+
color: boolean;
|
|
125
|
+
jsonAll: boolean;
|
|
126
|
+
jsonUpgraded: boolean;
|
|
127
|
+
jsonDeps: boolean;
|
|
128
|
+
concurrency: number;
|
|
129
|
+
retry: number;
|
|
130
|
+
timeout: number;
|
|
131
|
+
cache: boolean;
|
|
132
|
+
cacheFile: string;
|
|
133
|
+
cacheExpiration: number;
|
|
134
|
+
cacheClear: boolean;
|
|
135
|
+
filterVersion?: string[];
|
|
136
|
+
rejectVersion?: string[];
|
|
137
|
+
enginesNode: boolean;
|
|
138
|
+
minimal: boolean;
|
|
139
|
+
peer: boolean;
|
|
140
|
+
deprecated: boolean;
|
|
141
|
+
removeRange: boolean;
|
|
142
|
+
cooldown?: string;
|
|
143
|
+
workspace?: string[];
|
|
144
|
+
workspaces: boolean;
|
|
145
|
+
root: boolean;
|
|
146
|
+
deep: boolean;
|
|
147
|
+
cwd: string;
|
|
148
|
+
prefix?: string;
|
|
149
|
+
doctor: boolean;
|
|
150
|
+
doctorInstall?: string;
|
|
151
|
+
doctorTest?: string;
|
|
152
|
+
configFileName?: string;
|
|
153
|
+
configFilePath?: string;
|
|
154
|
+
mergeConfig: boolean;
|
|
155
|
+
stdin: boolean;
|
|
156
|
+
packageData?: string;
|
|
157
|
+
verbose: boolean;
|
|
158
|
+
errorLevel: number;
|
|
159
|
+
security: boolean;
|
|
160
|
+
inspectDeps: boolean;
|
|
161
|
+
diff: boolean;
|
|
162
|
+
openRelease: boolean;
|
|
163
|
+
openDiff: boolean;
|
|
164
|
+
openRepo: boolean;
|
|
165
|
+
githubToken?: string;
|
|
166
|
+
}
|
|
167
|
+
export declare const DEFAULT_OPTIONS: RuckupOptions;
|
|
168
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared type definitions for ruckup.
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_OPTIONS = {
|
|
5
|
+
upgrade: false,
|
|
6
|
+
interactive: false,
|
|
7
|
+
global: false,
|
|
8
|
+
target: 'latest',
|
|
9
|
+
packageFile: './package.json',
|
|
10
|
+
packageManager: 'npm',
|
|
11
|
+
registry: 'https://registry.npmjs.org',
|
|
12
|
+
registryType: 'npm',
|
|
13
|
+
dep: 'prod,dev,optional',
|
|
14
|
+
pre: false,
|
|
15
|
+
silent: false,
|
|
16
|
+
loglevel: 'warn',
|
|
17
|
+
format: [],
|
|
18
|
+
color: true,
|
|
19
|
+
jsonAll: false,
|
|
20
|
+
jsonUpgraded: false,
|
|
21
|
+
jsonDeps: false,
|
|
22
|
+
concurrency: 8,
|
|
23
|
+
retry: 3,
|
|
24
|
+
timeout: 30000,
|
|
25
|
+
cache: false,
|
|
26
|
+
cacheFile: '~/.ncu-cache.json',
|
|
27
|
+
cacheExpiration: 10,
|
|
28
|
+
cacheClear: false,
|
|
29
|
+
enginesNode: false,
|
|
30
|
+
minimal: false,
|
|
31
|
+
peer: false,
|
|
32
|
+
deprecated: true,
|
|
33
|
+
removeRange: false,
|
|
34
|
+
workspaces: false,
|
|
35
|
+
root: true,
|
|
36
|
+
deep: false,
|
|
37
|
+
cwd: process.cwd(),
|
|
38
|
+
doctor: false,
|
|
39
|
+
mergeConfig: false,
|
|
40
|
+
stdin: false,
|
|
41
|
+
verbose: false,
|
|
42
|
+
errorLevel: 1,
|
|
43
|
+
security: false,
|
|
44
|
+
inspectDeps: false,
|
|
45
|
+
diff: false,
|
|
46
|
+
openRelease: false,
|
|
47
|
+
openDiff: false,
|
|
48
|
+
openRepo: false,
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0LH,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,4BAA4B;IACtC,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,KAAK;IAEV,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,KAAK;IAEf,WAAW,EAAE,CAAC;IACd,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,KAAK;IAEd,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,mBAAmB;IAC9B,eAAe,EAAE,EAAE;IACnB,UAAU,EAAE,KAAK;IAEjB,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,KAAK;IAElB,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAElB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;IAEb,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;CAChB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic version resolution with range preservation and target strategies.
|
|
3
|
+
*/
|
|
4
|
+
import type { NpmPackageMetadata, RuckupOptions } from './types.js';
|
|
5
|
+
/** Parse the range operator prefix from a version string */
|
|
6
|
+
export declare function parseRangeOperator(versionRange: string): {
|
|
7
|
+
operator: string;
|
|
8
|
+
version: string;
|
|
9
|
+
};
|
|
10
|
+
/** Reconstruct a version range string with the original operator */
|
|
11
|
+
export declare function applyRangeOperator(operator: string, newVersion: string): string;
|
|
12
|
+
/** Get all valid semver versions from package metadata, sorted ascending */
|
|
13
|
+
export declare function getSortedVersions(metadata: NpmPackageMetadata, options: {
|
|
14
|
+
pre?: boolean;
|
|
15
|
+
deprecated?: boolean;
|
|
16
|
+
}): string[];
|
|
17
|
+
/** Resolve the target version for a package based on strategy */
|
|
18
|
+
export declare function resolveTargetVersion(currentRange: string, metadata: NpmPackageMetadata, options: RuckupOptions): string | null;
|
|
19
|
+
/** Determine which semver change type occurred */
|
|
20
|
+
export declare function determineSemverChange(fromVersion: string, toVersion: string): 'major' | 'minor' | 'patch' | 'prerelease' | 'build' | null;
|
|
21
|
+
/** Build the new version range string preserving the original operator */
|
|
22
|
+
export declare function buildUpgradedRange(currentRange: string, targetVersion: string): string;
|
|
23
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAGlB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CA0BA;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiB/E;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,MAAM,EAAE,CAgBV;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,IAAI,CAiIf;AAED,kDAAkD;AAClD,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,IAAI,CAU7D;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,MAAM,CAGR"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic version resolution with range preservation and target strategies.
|
|
3
|
+
*/
|
|
4
|
+
import semver from 'semver';
|
|
5
|
+
/** Parse the range operator prefix from a version string */
|
|
6
|
+
export function parseRangeOperator(versionRange) {
|
|
7
|
+
const trimmed = versionRange.trim();
|
|
8
|
+
// Handle x-ranges: 1.x, 1.x.x, 1.*
|
|
9
|
+
if (/^\d+\.x(\.x)?$/i.test(trimmed) || /^\d+\.\*(\.\*)?$/.test(trimmed)) {
|
|
10
|
+
return { operator: 'x-range', version: trimmed };
|
|
11
|
+
}
|
|
12
|
+
// Wildcard
|
|
13
|
+
if (trimmed === '*' || trimmed === 'x') {
|
|
14
|
+
return { operator: '*', version: '*' };
|
|
15
|
+
}
|
|
16
|
+
// Operators: >=, <=, >, <, ^, ~, =
|
|
17
|
+
const match = trimmed.match(/^([~^>=<]=?)\s*(.+)$/);
|
|
18
|
+
if (match) {
|
|
19
|
+
return { operator: match[1], version: match[2] };
|
|
20
|
+
}
|
|
21
|
+
// Hyphen range: 1.0.0 - 2.0.0
|
|
22
|
+
if (trimmed.includes(' - ')) {
|
|
23
|
+
return { operator: 'hyphen', version: trimmed };
|
|
24
|
+
}
|
|
25
|
+
// No operator = exact version
|
|
26
|
+
return { operator: '', version: trimmed };
|
|
27
|
+
}
|
|
28
|
+
/** Reconstruct a version range string with the original operator */
|
|
29
|
+
export function applyRangeOperator(operator, newVersion) {
|
|
30
|
+
switch (operator) {
|
|
31
|
+
case '*':
|
|
32
|
+
return '*';
|
|
33
|
+
case 'x-range': {
|
|
34
|
+
const parsed = semver.parse(newVersion);
|
|
35
|
+
if (!parsed)
|
|
36
|
+
return newVersion;
|
|
37
|
+
return `${parsed.major}.x`;
|
|
38
|
+
}
|
|
39
|
+
case 'hyphen':
|
|
40
|
+
// Hyphen ranges are replaced with a caret of the new version
|
|
41
|
+
return `^${newVersion}`;
|
|
42
|
+
case '':
|
|
43
|
+
return newVersion;
|
|
44
|
+
default:
|
|
45
|
+
return `${operator}${newVersion}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Get all valid semver versions from package metadata, sorted ascending */
|
|
49
|
+
export function getSortedVersions(metadata, options) {
|
|
50
|
+
const versions = [];
|
|
51
|
+
for (const [ver, meta] of Object.entries(metadata.versions)) {
|
|
52
|
+
if (!semver.valid(ver))
|
|
53
|
+
continue;
|
|
54
|
+
// Skip prerelease unless --pre
|
|
55
|
+
if (!options.pre && semver.prerelease(ver)?.length)
|
|
56
|
+
continue;
|
|
57
|
+
// Skip deprecated unless --deprecated (default true)
|
|
58
|
+
if (options.deprecated === false && meta.deprecated)
|
|
59
|
+
continue;
|
|
60
|
+
versions.push(ver);
|
|
61
|
+
}
|
|
62
|
+
return versions.sort(semver.compare);
|
|
63
|
+
}
|
|
64
|
+
/** Resolve the target version for a package based on strategy */
|
|
65
|
+
export function resolveTargetVersion(currentRange, metadata, options) {
|
|
66
|
+
const { operator, version: currentVersion } = parseRangeOperator(currentRange);
|
|
67
|
+
const parsedCurrent = semver.coerce(currentVersion);
|
|
68
|
+
if (!parsedCurrent && operator !== '*')
|
|
69
|
+
return null;
|
|
70
|
+
const target = options.target;
|
|
71
|
+
// Handle dist-tag targets like @beta, @next
|
|
72
|
+
if (target.startsWith('@')) {
|
|
73
|
+
const tag = target.slice(1);
|
|
74
|
+
const tagVersion = metadata['dist-tags'][tag];
|
|
75
|
+
if (!tagVersion)
|
|
76
|
+
return null;
|
|
77
|
+
if (parsedCurrent && semver.lte(tagVersion, parsedCurrent.version))
|
|
78
|
+
return null;
|
|
79
|
+
return tagVersion;
|
|
80
|
+
}
|
|
81
|
+
const allVersions = getSortedVersions(metadata, {
|
|
82
|
+
pre: options.pre,
|
|
83
|
+
deprecated: options.deprecated,
|
|
84
|
+
});
|
|
85
|
+
if (allVersions.length === 0)
|
|
86
|
+
return null;
|
|
87
|
+
// Apply cooldown filter
|
|
88
|
+
const cooldownMs = parseCooldown(options.cooldown);
|
|
89
|
+
const filteredVersions = cooldownMs
|
|
90
|
+
? allVersions.filter((v) => {
|
|
91
|
+
const publishTime = metadata.time[v];
|
|
92
|
+
if (!publishTime)
|
|
93
|
+
return true;
|
|
94
|
+
return Date.now() - new Date(publishTime).getTime() >= cooldownMs;
|
|
95
|
+
})
|
|
96
|
+
: allVersions;
|
|
97
|
+
if (filteredVersions.length === 0)
|
|
98
|
+
return null;
|
|
99
|
+
let resolved = null;
|
|
100
|
+
switch (target) {
|
|
101
|
+
case 'latest': {
|
|
102
|
+
const latest = metadata['dist-tags'].latest;
|
|
103
|
+
if (!latest)
|
|
104
|
+
return null;
|
|
105
|
+
// Check if latest is newer than current
|
|
106
|
+
if (parsedCurrent && semver.lte(latest, parsedCurrent.version))
|
|
107
|
+
return null;
|
|
108
|
+
// Respect pre filter
|
|
109
|
+
if (!options.pre && semver.prerelease(latest)?.length)
|
|
110
|
+
return null;
|
|
111
|
+
resolved = latest;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case 'newest': {
|
|
115
|
+
// Most recently published version
|
|
116
|
+
let newestVersion = null;
|
|
117
|
+
let newestTime = 0;
|
|
118
|
+
for (const ver of filteredVersions) {
|
|
119
|
+
const publishTime = metadata.time[ver];
|
|
120
|
+
if (publishTime) {
|
|
121
|
+
const t = new Date(publishTime).getTime();
|
|
122
|
+
if (t > newestTime) {
|
|
123
|
+
newestTime = t;
|
|
124
|
+
newestVersion = ver;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!newestVersion)
|
|
129
|
+
return null;
|
|
130
|
+
if (parsedCurrent && semver.lte(newestVersion, parsedCurrent.version))
|
|
131
|
+
return null;
|
|
132
|
+
resolved = newestVersion;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
case 'greatest': {
|
|
136
|
+
// Highest semver
|
|
137
|
+
const greatest = filteredVersions[filteredVersions.length - 1];
|
|
138
|
+
if (parsedCurrent && semver.lte(greatest, parsedCurrent.version))
|
|
139
|
+
return null;
|
|
140
|
+
resolved = greatest;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case 'minor': {
|
|
144
|
+
if (!parsedCurrent)
|
|
145
|
+
return null;
|
|
146
|
+
// Highest minor without bumping major
|
|
147
|
+
const candidates = filteredVersions.filter((v) => semver.major(v) === parsedCurrent.major && semver.gt(v, parsedCurrent.version));
|
|
148
|
+
if (candidates.length === 0)
|
|
149
|
+
return null;
|
|
150
|
+
resolved = candidates[candidates.length - 1];
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
case 'patch': {
|
|
154
|
+
if (!parsedCurrent)
|
|
155
|
+
return null;
|
|
156
|
+
// Highest patch without bumping major or minor
|
|
157
|
+
const candidates = filteredVersions.filter((v) => semver.major(v) === parsedCurrent.major &&
|
|
158
|
+
semver.minor(v) === parsedCurrent.minor &&
|
|
159
|
+
semver.gt(v, parsedCurrent.version));
|
|
160
|
+
if (candidates.length === 0)
|
|
161
|
+
return null;
|
|
162
|
+
resolved = candidates[candidates.length - 1];
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
case 'semver': {
|
|
166
|
+
// Highest version satisfying current range
|
|
167
|
+
const satisfying = filteredVersions.filter((v) => semver.satisfies(v, currentRange));
|
|
168
|
+
if (satisfying.length === 0)
|
|
169
|
+
return null;
|
|
170
|
+
const highest = satisfying[satisfying.length - 1];
|
|
171
|
+
if (parsedCurrent && semver.lte(highest, parsedCurrent.version))
|
|
172
|
+
return null;
|
|
173
|
+
resolved = highest;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
default:
|
|
177
|
+
// Unknown target — try as dist-tag
|
|
178
|
+
resolved = metadata['dist-tags'][target] ?? null;
|
|
179
|
+
if (resolved && parsedCurrent && semver.lte(resolved, parsedCurrent.version)) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
if (!resolved)
|
|
185
|
+
return null;
|
|
186
|
+
// --minimal: only upgrade if current range doesn't satisfy the target
|
|
187
|
+
if (options.minimal && semver.satisfies(resolved, currentRange)) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
return resolved;
|
|
191
|
+
}
|
|
192
|
+
/** Determine which semver change type occurred */
|
|
193
|
+
export function determineSemverChange(fromVersion, toVersion) {
|
|
194
|
+
const from = semver.parse(fromVersion);
|
|
195
|
+
const to = semver.parse(toVersion);
|
|
196
|
+
if (!from || !to)
|
|
197
|
+
return null;
|
|
198
|
+
if (to.major !== from.major)
|
|
199
|
+
return 'major';
|
|
200
|
+
if (to.minor !== from.minor)
|
|
201
|
+
return 'minor';
|
|
202
|
+
if (to.patch !== from.patch)
|
|
203
|
+
return 'patch';
|
|
204
|
+
if (to.prerelease.length || from.prerelease.length)
|
|
205
|
+
return 'prerelease';
|
|
206
|
+
return 'build';
|
|
207
|
+
}
|
|
208
|
+
/** Build the new version range string preserving the original operator */
|
|
209
|
+
export function buildUpgradedRange(currentRange, targetVersion) {
|
|
210
|
+
const { operator } = parseRangeOperator(currentRange);
|
|
211
|
+
return applyRangeOperator(operator, targetVersion);
|
|
212
|
+
}
|
|
213
|
+
/** Parse cooldown string to milliseconds */
|
|
214
|
+
function parseCooldown(cooldown) {
|
|
215
|
+
if (!cooldown)
|
|
216
|
+
return null;
|
|
217
|
+
const match = cooldown.match(/^(\d+)(d|h|m)?$/);
|
|
218
|
+
if (!match)
|
|
219
|
+
return null;
|
|
220
|
+
const value = parseInt(match[1], 10);
|
|
221
|
+
const unit = match[2] || 'd';
|
|
222
|
+
switch (unit) {
|
|
223
|
+
case 'd': return value * 24 * 60 * 60 * 1000;
|
|
224
|
+
case 'h': return value * 60 * 60 * 1000;
|
|
225
|
+
case 'm': return value * 60 * 1000;
|
|
226
|
+
default: return value * 24 * 60 * 60 * 1000;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAQ5B,4DAA4D;AAC5D,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IAIrD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IAEpC,mCAAmC;IACnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IAED,WAAW;IACX,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACvC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACzC,CAAC;IAED,mCAAmC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,8BAA8B;IAC9B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,UAAkB;IACrE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM;gBAAE,OAAO,UAAU,CAAC;YAC/B,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAC7B,CAAC;QACD,KAAK,QAAQ;YACX,6DAA6D;YAC7D,OAAO,IAAI,UAAU,EAAE,CAAC;QAC1B,KAAK,EAAE;YACL,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAC/B,QAA4B,EAC5B,OAAgD;IAEhD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,SAAS;QAEjC,+BAA+B;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM;YAAE,SAAS;QAE7D,qDAAqD;QACrD,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU;YAAE,SAAS;QAE9D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,QAA4B,EAC5B,OAAsB;IAEtB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,aAAa,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAEpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiC,CAAC;IAEzD,4CAA4C;IAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,EAAE;QAC9C,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,wBAAwB;IACxB,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,UAAU;QACjC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC;QACpE,CAAC,CAAC;QACJ,CAAC,CAAC,WAAW,CAAC;IAEhB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,IAAI,QAAQ,GAAkB,IAAI,CAAC;IAEnC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,wCAAwC;YACxC,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5E,qBAAqB;YACrB,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;gBAAE,OAAO,IAAI,CAAC;YACnE,QAAQ,GAAG,MAAM,CAAC;YAClB,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,kCAAkC;YAClC,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1C,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;wBACnB,UAAU,GAAG,CAAC,CAAC;wBACf,aAAa,GAAG,GAAG,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YAChC,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnF,QAAQ,GAAG,aAAa,CAAC;YACzB,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,iBAAiB;YACjB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9E,QAAQ,GAAG,QAAQ,CAAC;YACpB,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YAChC,sCAAsC;YACtC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CACtF,CAAC;YACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YAChC,+CAA+C;YAC/C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK;gBACvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK;gBACvC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CACtC,CAAC;YACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,2CAA2C;YAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;YACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7E,QAAQ,GAAG,OAAO,CAAC;YACnB,MAAM;QACR,CAAC;QAED;YACE,mCAAmC;YACnC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;YACjD,IAAI,QAAQ,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM;IACV,CAAC;IAED,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,sEAAsE;IACtE,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,qBAAqB,CACnC,WAAmB,EACnB,SAAiB;IAEjB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE9B,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IACxE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,aAAqB;IAErB,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACtD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED,4CAA4C;AAC5C,SAAS,aAAa,CAAC,QAAiB;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC7C,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACxC,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,OAAO,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ruckup",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "npm-check-updates with security inspection — identify malicious upgraded packages",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"ruckup": "dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"dev": "tsx src/cli.ts",
|
|
14
|
+
"test": "vitest run",
|
|
15
|
+
"test:watch": "vitest",
|
|
16
|
+
"lint": "eslint src/",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"npm",
|
|
21
|
+
"check",
|
|
22
|
+
"updates",
|
|
23
|
+
"upgrade",
|
|
24
|
+
"dependencies",
|
|
25
|
+
"security",
|
|
26
|
+
"audit",
|
|
27
|
+
"diff",
|
|
28
|
+
"malicious",
|
|
29
|
+
"supply-chain"
|
|
30
|
+
],
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"README.md",
|
|
35
|
+
"LICENSE"
|
|
36
|
+
],
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18.0.0"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"chalk": "^5.3.0",
|
|
42
|
+
"commander": "^12.1.0",
|
|
43
|
+
"cosmiconfig": "^9.0.0",
|
|
44
|
+
"detect-indent": "^7.0.1",
|
|
45
|
+
"detect-newline": "^4.0.1",
|
|
46
|
+
"diff": "^7.0.0",
|
|
47
|
+
"ini": "^5.0.0",
|
|
48
|
+
"marked": "^15.0.0",
|
|
49
|
+
"marked-terminal": "^7.2.1",
|
|
50
|
+
"minimatch": "^10.0.1",
|
|
51
|
+
"open": "^10.1.0",
|
|
52
|
+
"ora": "^8.1.1",
|
|
53
|
+
"p-limit": "^6.2.0",
|
|
54
|
+
"semver": "^7.6.3",
|
|
55
|
+
"strip-ansi": "^7.1.0"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@types/diff": "^7.0.0",
|
|
59
|
+
"@types/ini": "^4.1.1",
|
|
60
|
+
"@types/node": "^22.10.0",
|
|
61
|
+
"@types/semver": "^7.5.8",
|
|
62
|
+
"tsx": "^4.19.2",
|
|
63
|
+
"typescript": "^5.7.0",
|
|
64
|
+
"vitest": "^2.1.0"
|
|
65
|
+
}
|
|
66
|
+
}
|