@mikeyt23/node-cli-utils 2.0.17 → 2.0.19
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 +4 -48
- package/dist/cjs/DependencyChecker.d.ts +1 -0
- package/dist/cjs/DependencyChecker.d.ts.map +1 -1
- package/dist/cjs/DependencyChecker.js +18 -14
- package/dist/cjs/NugetUtility.d.ts +67 -0
- package/dist/cjs/NugetUtility.d.ts.map +1 -0
- package/dist/cjs/NugetUtility.js +256 -0
- package/dist/cjs/TarballUtility.d.ts +1 -1
- package/dist/cjs/TarballUtility.js +1 -1
- package/dist/cjs/dotnetUtils.d.ts +1 -0
- package/dist/cjs/dotnetUtils.d.ts.map +1 -1
- package/dist/cjs/dotnetUtils.js +4 -2
- package/dist/cjs/generalUtils.d.ts +11 -1
- package/dist/cjs/generalUtils.d.ts.map +1 -1
- package/dist/cjs/generalUtils.js +44 -13
- package/dist/cjs/generalUtilsInternal.d.ts +6 -0
- package/dist/cjs/generalUtilsInternal.d.ts.map +1 -1
- package/dist/cjs/generalUtilsInternal.js +33 -2
- package/dist/cjs/runWhileParentAlive.js +2 -2
- package/dist/esm/DependencyChecker.d.ts +1 -0
- package/dist/esm/DependencyChecker.d.ts.map +1 -1
- package/dist/esm/DependencyChecker.js +16 -10
- package/dist/esm/NugetUtility.d.ts +67 -0
- package/dist/esm/NugetUtility.d.ts.map +1 -0
- package/dist/esm/NugetUtility.js +254 -0
- package/dist/esm/TarballUtility.d.ts +1 -1
- package/dist/esm/TarballUtility.js +1 -1
- package/dist/esm/dotnetUtils.d.ts +1 -0
- package/dist/esm/dotnetUtils.d.ts.map +1 -1
- package/dist/esm/dotnetUtils.js +2 -1
- package/dist/esm/generalUtils.d.ts +11 -1
- package/dist/esm/generalUtils.d.ts.map +1 -1
- package/dist/esm/generalUtils.js +41 -12
- package/dist/esm/generalUtilsInternal.d.ts +6 -0
- package/dist/esm/generalUtilsInternal.d.ts.map +1 -1
- package/dist/esm/generalUtilsInternal.js +30 -1
- package/dist/esm/runWhileParentAlive.js +2 -2
- package/package.json +8 -18
- package/dist/cjs/dbMigrationUtils.d.ts +0 -39
- package/dist/cjs/dbMigrationUtils.d.ts.map +0 -1
- package/dist/cjs/dbMigrationUtils.js +0 -203
- package/dist/esm/dbMigrationUtils.d.ts +0 -39
- package/dist/esm/dbMigrationUtils.d.ts.map +0 -1
- package/dist/esm/dbMigrationUtils.js +0 -191
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface NugetUtilityDependencies {
|
|
2
|
+
nugetAccessor: NugetAccessor;
|
|
3
|
+
}
|
|
4
|
+
export declare class NugetUtility {
|
|
5
|
+
private readonly genericParsingErrorMessage;
|
|
6
|
+
private readonly htmlClassFrameworksTable;
|
|
7
|
+
private readonly htmlClassDirectCompatibility;
|
|
8
|
+
private readonly htmlClassComputedCompatibility;
|
|
9
|
+
private nugetAccessor;
|
|
10
|
+
constructor(dependencies?: Partial<NugetUtilityDependencies>);
|
|
11
|
+
static getNugetLandingPageUrl(packageName: string, packageVersion: string): string;
|
|
12
|
+
static getVersionsJsonUrl(packageName: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Get the newest version number for the nuget package that is compatible with the specified .net version.
|
|
15
|
+
* @param packageName The nuget package name to evaluate.
|
|
16
|
+
* @param frameworkVersionMoniker The .net framework version, for example "net6.0" or "net8.0"
|
|
17
|
+
* @returns A version string for the latest nuget package that is compatible with the specified .net framework, or `null` if there wasn't a compatible version found.
|
|
18
|
+
* @throws If the package does not exist.
|
|
19
|
+
* @throws If the nuget API is unreachable.
|
|
20
|
+
* @throws If the nuget.org package landing page is unreachable or it's html format for compatible .net frameworks changes.
|
|
21
|
+
*/
|
|
22
|
+
getLatestNugetPackageVersion: (packageName: string, frameworkVersionMoniker: string) => Promise<string | null>;
|
|
23
|
+
private validatePackageName;
|
|
24
|
+
private validateFrameworkVersion;
|
|
25
|
+
private extractCompatibleFrameworks;
|
|
26
|
+
private extractCompatibleFrameworksFromHtmlTableString;
|
|
27
|
+
private getGenericParsingError;
|
|
28
|
+
private getLatestMajorVersions;
|
|
29
|
+
private getAllNugetVersionsFromJson;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A `false` `isDirect` property denotes computed compatibility.
|
|
33
|
+
*/
|
|
34
|
+
export interface NugetFrameworkCompatibility {
|
|
35
|
+
isDirect: boolean;
|
|
36
|
+
targetFrameworkMoniker: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Use this class to convert a package name and version string into an object.
|
|
40
|
+
*/
|
|
41
|
+
export declare class NugetVersion {
|
|
42
|
+
packageName: string;
|
|
43
|
+
raw: string;
|
|
44
|
+
major: number;
|
|
45
|
+
minor: number;
|
|
46
|
+
patch: number;
|
|
47
|
+
suffix: string | undefined;
|
|
48
|
+
constructor(packageName: string, version: string);
|
|
49
|
+
/**
|
|
50
|
+
* **Important:** no pre-release version support (no suffix evaluation).
|
|
51
|
+
*/
|
|
52
|
+
isMoreRecentThan: (otherVersion: NugetVersion) => boolean;
|
|
53
|
+
private getNumOrThrow;
|
|
54
|
+
private throwGenericError;
|
|
55
|
+
}
|
|
56
|
+
export interface INugetAccessor {
|
|
57
|
+
getAllVersionsJson(packageName: string): Promise<string>;
|
|
58
|
+
getPackageLandingPageHtml(packageName: string, packageVersion: string): Promise<string>;
|
|
59
|
+
getNuspec(packageName: string, versionString: string): Promise<string>;
|
|
60
|
+
}
|
|
61
|
+
export declare class NugetAccessor implements INugetAccessor {
|
|
62
|
+
getAllVersionsJson: (packageName: string) => Promise<string>;
|
|
63
|
+
getPackageLandingPageHtml(packageName: string, packageVersion: string): Promise<string>;
|
|
64
|
+
getNuspec(packageName: string, versionString: string): Promise<string>;
|
|
65
|
+
}
|
|
66
|
+
export declare const getLatestNugetPackageVersion: (packageName: string, frameworkVersionMoniker: string) => Promise<string | null>;
|
|
67
|
+
//# sourceMappingURL=NugetUtility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NugetUtility.d.ts","sourceRoot":"","sources":["../../src/NugetUtility.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAsE;IACjH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA+B;IACxE,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA0B;IACvE,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAA6B;IAE5E,OAAO,CAAC,aAAa,CAAgB;gBAEzB,YAAY,GAAE,OAAO,CAAC,wBAAwB,CAAM;IAIhE,MAAM,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAIlF,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM;IAI7C;;;;;;;;OAQG;IACH,4BAA4B,gBAAuB,MAAM,2BAA2B,MAAM,KAAG,QAAQ,MAAM,GAAG,IAAI,CAAC,CAmBlH;IAED,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,2BAA2B;IAwBnC,OAAO,CAAC,8CAA8C;IAgDtD,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,2BAA2B;CAiBpC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,OAAO,CAAA;IACjB,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;gBAEd,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IA8BhD;;OAEG;IACH,gBAAgB,iBAAkB,YAAY,aAW7C;IAED,OAAO,CAAC,aAAa,CAMpB;IAED,OAAO,CAAC,iBAAiB,CAGxB;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACvF,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvE;AAGD,qBAAa,aAAc,YAAW,cAAc;IAGlD,kBAAkB,gBAAuB,MAAM,KAAG,QAAQ,MAAM,CAAC,CAQhE;IAKK,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvF,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAS7E;AAID,eAAO,MAAM,4BAA4B,gBA3RY,MAAM,2BAA2B,MAAM,KAAG,QAAQ,MAAM,GAAG,IAAI,CA2RxB,CAAA"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { findAllIndexes, requireString, trace } from './generalUtils.js';
|
|
2
|
+
import { httpGet } from './generalUtilsInternal.js';
|
|
3
|
+
export class NugetUtility {
|
|
4
|
+
genericParsingErrorMessage = `Unexpected nuget.org html format (enable trace for more detail): `;
|
|
5
|
+
htmlClassFrameworksTable = 'framework-table-frameworks';
|
|
6
|
+
htmlClassDirectCompatibility = 'framework-badge-asset';
|
|
7
|
+
htmlClassComputedCompatibility = 'framework-badge-computed';
|
|
8
|
+
nugetAccessor;
|
|
9
|
+
constructor(dependencies = {}) {
|
|
10
|
+
this.nugetAccessor = dependencies.nugetAccessor ?? new NugetAccessor();
|
|
11
|
+
}
|
|
12
|
+
static getNugetLandingPageUrl(packageName, packageVersion) {
|
|
13
|
+
return `https://www.nuget.org/packages/${packageName}/${packageVersion}`;
|
|
14
|
+
}
|
|
15
|
+
static getVersionsJsonUrl(packageName) {
|
|
16
|
+
return `https://api.nuget.org/v3-flatcontainer/${packageName}/index.json`.toLowerCase();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the newest version number for the nuget package that is compatible with the specified .net version.
|
|
20
|
+
* @param packageName The nuget package name to evaluate.
|
|
21
|
+
* @param frameworkVersionMoniker The .net framework version, for example "net6.0" or "net8.0"
|
|
22
|
+
* @returns A version string for the latest nuget package that is compatible with the specified .net framework, or `null` if there wasn't a compatible version found.
|
|
23
|
+
* @throws If the package does not exist.
|
|
24
|
+
* @throws If the nuget API is unreachable.
|
|
25
|
+
* @throws If the nuget.org package landing page is unreachable or it's html format for compatible .net frameworks changes.
|
|
26
|
+
*/
|
|
27
|
+
getLatestNugetPackageVersion = async (packageName, frameworkVersionMoniker) => {
|
|
28
|
+
this.validatePackageName(packageName);
|
|
29
|
+
this.validateFrameworkVersion(frameworkVersionMoniker);
|
|
30
|
+
const allVersionsJson = await this.nugetAccessor.getAllVersionsJson(packageName);
|
|
31
|
+
const allNugetVersions = this.getAllNugetVersionsFromJson(packageName, allVersionsJson);
|
|
32
|
+
const mostRecentMajorVersions = this.getLatestMajorVersions(allNugetVersions);
|
|
33
|
+
const sortedVersions = [...mostRecentMajorVersions].sort((a, b) => b.major - a.major);
|
|
34
|
+
for (const majorVersion of sortedVersions) {
|
|
35
|
+
const landingPageUrl = NugetUtility.getNugetLandingPageUrl(packageName, majorVersion.raw);
|
|
36
|
+
const landingPageHtml = await this.nugetAccessor.getPackageLandingPageHtml(packageName, majorVersion.raw);
|
|
37
|
+
const compatibleFrameworks = this.extractCompatibleFrameworks(landingPageHtml, landingPageUrl);
|
|
38
|
+
if (compatibleFrameworks.some(f => f.targetFrameworkMoniker === frameworkVersionMoniker)) {
|
|
39
|
+
return majorVersion.raw;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
};
|
|
44
|
+
validatePackageName(packageName) {
|
|
45
|
+
requireString('packageName', packageName);
|
|
46
|
+
const validNugetPattern = /^[a-zA-Z0-9_.-]+$/;
|
|
47
|
+
if (!validNugetPattern.test(packageName)) {
|
|
48
|
+
throw new Error(`Package name has invalid characters (must consist of only numbers, letters, underscores, dots and dashes): ${packageName}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
validateFrameworkVersion(frameworkVersionMoniker) {
|
|
52
|
+
requireString('frameworkVersionMoniker', frameworkVersionMoniker);
|
|
53
|
+
const netFormatPattern = /^net([5-9]|\d{2,})\.\d+$/;
|
|
54
|
+
if (!netFormatPattern.test(frameworkVersionMoniker)) {
|
|
55
|
+
throw new Error(`Invalid frameworkVersionMoniker (currently only supports "net5.0" and above): ${frameworkVersionMoniker}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
extractCompatibleFrameworks(nugetLandingPageHtml, urlForErrorMessage) {
|
|
59
|
+
const tableIndexes = findAllIndexes(nugetLandingPageHtml, this.htmlClassFrameworksTable);
|
|
60
|
+
if (tableIndexes.length === 0) {
|
|
61
|
+
trace(`no tables with class ${this.htmlClassFrameworksTable}`);
|
|
62
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessage));
|
|
63
|
+
}
|
|
64
|
+
const compatibleFrameworks = [];
|
|
65
|
+
for (const tableStartIndex of tableIndexes) {
|
|
66
|
+
const endIndex = nugetLandingPageHtml.indexOf('</td>', tableStartIndex);
|
|
67
|
+
if (endIndex === -1) {
|
|
68
|
+
trace(`could not find "</td>" in html after tableStartIndex: ${tableStartIndex}`);
|
|
69
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessage));
|
|
70
|
+
}
|
|
71
|
+
const frameworkTableHtml = nugetLandingPageHtml.substring(tableStartIndex, endIndex);
|
|
72
|
+
compatibleFrameworks.push(...this.extractCompatibleFrameworksFromHtmlTableString(frameworkTableHtml, urlForErrorMessage));
|
|
73
|
+
}
|
|
74
|
+
return compatibleFrameworks;
|
|
75
|
+
}
|
|
76
|
+
extractCompatibleFrameworksFromHtmlTableString(htmlTable, urlForErrorMessages) {
|
|
77
|
+
const lines = htmlTable.replaceAll('\n', '').replaceAll('\r', '').split("<span").map(line => line.trim());
|
|
78
|
+
const compatibleFrameworks = [];
|
|
79
|
+
for (const line of lines) {
|
|
80
|
+
const isDirectCompatibility = line.includes(this.htmlClassDirectCompatibility);
|
|
81
|
+
const isComputedCompatibility = line.includes(this.htmlClassComputedCompatibility);
|
|
82
|
+
if (!isDirectCompatibility && !isComputedCompatibility) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const spanOpeningTagEndBracketIndex = line.indexOf('>');
|
|
86
|
+
if (spanOpeningTagEndBracketIndex === 0) {
|
|
87
|
+
trace(`could not find ">" in html compatibility table on line: ${line}`);
|
|
88
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessages));
|
|
89
|
+
}
|
|
90
|
+
if (spanOpeningTagEndBracketIndex === (line.length - 1)) {
|
|
91
|
+
trace(`the ">" was the last character in the html compatibility table on line: ${line}`);
|
|
92
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessages));
|
|
93
|
+
}
|
|
94
|
+
const endIndex = line.indexOf('<', spanOpeningTagEndBracketIndex);
|
|
95
|
+
if (endIndex === -1) {
|
|
96
|
+
trace(`could not find "<" in html compatibility table on line: ${line}`);
|
|
97
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessages));
|
|
98
|
+
}
|
|
99
|
+
const startIndex = spanOpeningTagEndBracketIndex + 1;
|
|
100
|
+
if (startIndex === endIndex) {
|
|
101
|
+
trace(`the span value was empty for line (startIndex === endIndex): ${line}`);
|
|
102
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessages));
|
|
103
|
+
}
|
|
104
|
+
const val = line.substring(startIndex, endIndex).trim();
|
|
105
|
+
if (!val) {
|
|
106
|
+
trace(`the span value was empty for line: ${line}`);
|
|
107
|
+
throw new Error(this.getGenericParsingError(urlForErrorMessages));
|
|
108
|
+
}
|
|
109
|
+
compatibleFrameworks.push({ targetFrameworkMoniker: val, isDirect: isDirectCompatibility });
|
|
110
|
+
}
|
|
111
|
+
return compatibleFrameworks;
|
|
112
|
+
}
|
|
113
|
+
getGenericParsingError(url) {
|
|
114
|
+
return `${this.genericParsingErrorMessage}${url}`;
|
|
115
|
+
}
|
|
116
|
+
// Does not currently support pre-release versions (they will be ignored)
|
|
117
|
+
getLatestMajorVersions(versions) {
|
|
118
|
+
const dict = {};
|
|
119
|
+
trace('**************');
|
|
120
|
+
trace(`versions: `, versions);
|
|
121
|
+
trace('**************');
|
|
122
|
+
for (const v of versions) {
|
|
123
|
+
if (v.suffix !== undefined) {
|
|
124
|
+
continue; // Skip all pre-release package versions for now
|
|
125
|
+
}
|
|
126
|
+
if (!dict[v.major]) {
|
|
127
|
+
dict[v.major] = v;
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (v.isMoreRecentThan(dict[v.major])) {
|
|
131
|
+
dict[v.major] = v;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return Object.values(dict);
|
|
135
|
+
}
|
|
136
|
+
getAllNugetVersionsFromJson(packageName, jsonString) {
|
|
137
|
+
let parsedJson;
|
|
138
|
+
try {
|
|
139
|
+
parsedJson = JSON.parse(jsonString);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
throw new Error('Could not parse Nuget response - invalid JSON string');
|
|
143
|
+
}
|
|
144
|
+
if (!Array.isArray(parsedJson.versions)) {
|
|
145
|
+
throw new Error('Could not parse Nuget response - the versions property is not an array');
|
|
146
|
+
}
|
|
147
|
+
const versionStrings = parsedJson.versions;
|
|
148
|
+
return (versionStrings).map(v => new NugetVersion(packageName, v));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Use this class to convert a package name and version string into an object.
|
|
153
|
+
*/
|
|
154
|
+
export class NugetVersion {
|
|
155
|
+
packageName;
|
|
156
|
+
raw;
|
|
157
|
+
major;
|
|
158
|
+
minor;
|
|
159
|
+
patch;
|
|
160
|
+
suffix;
|
|
161
|
+
constructor(packageName, version) {
|
|
162
|
+
if (version === undefined || typeof version !== 'string' || version.trim() !== version || version === '' || version.includes(' ')) {
|
|
163
|
+
this.throwGenericError();
|
|
164
|
+
}
|
|
165
|
+
if (!packageName || packageName.trim() !== packageName || packageName === '') {
|
|
166
|
+
this.throwGenericError(`invalid package name: ${packageName}`);
|
|
167
|
+
}
|
|
168
|
+
const urlEncodedPackageName = encodeURIComponent(packageName);
|
|
169
|
+
if (urlEncodedPackageName !== packageName) {
|
|
170
|
+
this.throwGenericError(`url encoded package name is does not match the packageName: ${packageName}`);
|
|
171
|
+
}
|
|
172
|
+
this.packageName = urlEncodedPackageName;
|
|
173
|
+
this.raw = version;
|
|
174
|
+
const firstDashIndex = version.indexOf('-');
|
|
175
|
+
const hasSuffix = firstDashIndex !== -1;
|
|
176
|
+
if (hasSuffix) {
|
|
177
|
+
if (firstDashIndex === version.length - 1) {
|
|
178
|
+
this.throwGenericError('ends with dash symbol');
|
|
179
|
+
}
|
|
180
|
+
this.suffix = version.substring(firstDashIndex + 1);
|
|
181
|
+
}
|
|
182
|
+
const versionWithoutSuffix = hasSuffix ? version.substring(0, firstDashIndex) : version;
|
|
183
|
+
const parts = versionWithoutSuffix.split('.');
|
|
184
|
+
this.major = this.getNumOrThrow(parts[0]);
|
|
185
|
+
this.minor = parts.length > 1 ? this.getNumOrThrow(parts[1]) : 0;
|
|
186
|
+
this.patch = parts.length > 2 ? this.getNumOrThrow(parts[2]) : 0;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* **Important:** no pre-release version support (no suffix evaluation).
|
|
190
|
+
*/
|
|
191
|
+
isMoreRecentThan = (otherVersion) => {
|
|
192
|
+
if (this.suffix !== undefined || otherVersion.suffix !== undefined) {
|
|
193
|
+
throw new Error('No support for pre-release versions');
|
|
194
|
+
}
|
|
195
|
+
if (this.major !== otherVersion.major) {
|
|
196
|
+
return this.major > otherVersion.major;
|
|
197
|
+
}
|
|
198
|
+
if (this.minor !== otherVersion.minor) {
|
|
199
|
+
return this.minor > otherVersion.minor;
|
|
200
|
+
}
|
|
201
|
+
return this.patch > otherVersion.patch;
|
|
202
|
+
};
|
|
203
|
+
getNumOrThrow = (part) => {
|
|
204
|
+
const parsed = parseInt(part, 10);
|
|
205
|
+
if (isNaN(parsed)) {
|
|
206
|
+
this.throwGenericError(`"${part}" is not a number`);
|
|
207
|
+
}
|
|
208
|
+
return parsed;
|
|
209
|
+
};
|
|
210
|
+
throwGenericError = (reason) => {
|
|
211
|
+
const reasonPart = reason ? ` (${reason})` : '';
|
|
212
|
+
throw new Error(`Invalid nuget version string${reasonPart}: ${this.raw}`);
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// Important: at one point the API calls were working with PascalCase package ids, but it seems to have been changed to require all lowercase package ids now
|
|
216
|
+
export class NugetAccessor {
|
|
217
|
+
// Template URL: https://api.nuget.org/v3-flatcontainer/{package_id}/index.json
|
|
218
|
+
// Example for EF package: https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.design/index.json
|
|
219
|
+
getAllVersionsJson = async (packageName) => {
|
|
220
|
+
const nugetVersionsUrl = NugetUtility.getVersionsJsonUrl(packageName);
|
|
221
|
+
trace(`getting all package versions json from url: ${nugetVersionsUrl}`);
|
|
222
|
+
const response = await httpGet(nugetVersionsUrl);
|
|
223
|
+
if (!response.ok) {
|
|
224
|
+
throw new Error(`HTTP error code attempting to retrieve all package versions: ${response.status}`);
|
|
225
|
+
}
|
|
226
|
+
return response.body;
|
|
227
|
+
};
|
|
228
|
+
// The code to calculate computed framework compatibility is quite complicated and there isn't an API endpoint. Instead of writing an entire app that
|
|
229
|
+
// pulls in the NuGet.Client SDK, I'm just going to grab the html from the nuget.org landing page for the package. For reference, here is the code that computes
|
|
230
|
+
// this for the nuget.org site: https://github.com/NuGet/NuGetGallery/blob/e6a38a882007374b320420645f63cc30f2a93e4d/src/NuGetGallery.Core/Services/AssetFrameworkHelper.cs
|
|
231
|
+
async getPackageLandingPageHtml(packageName, packageVersion) {
|
|
232
|
+
const nugetPackageUrl = NugetUtility.getNugetLandingPageUrl(packageName, packageVersion);
|
|
233
|
+
trace(`getting nuget.org landing page html from url: ${nugetPackageUrl}`);
|
|
234
|
+
const response = await httpGet(nugetPackageUrl);
|
|
235
|
+
if (!response.ok) {
|
|
236
|
+
throw new Error(`HTTP error code for accessing ${nugetPackageUrl}: ${response.status}`);
|
|
237
|
+
}
|
|
238
|
+
return response.body;
|
|
239
|
+
}
|
|
240
|
+
// Template URL: https://api.nuget.org/v3-flatcontainer/{package_id}/{version}/{package_id}.nuspec
|
|
241
|
+
// Example for EF package version 7.0.14: https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.design/7.0.14/microsoft.entityframeworkcore.design.nuspec
|
|
242
|
+
async getNuspec(packageName, versionString) {
|
|
243
|
+
const nugetNuspecUrl = `https://api.nuget.org/v3-flatcontainer/${packageName}/${versionString}/${packageName}.nuspec`.toLocaleLowerCase();
|
|
244
|
+
trace(`getting nuspec file from url: ${nugetNuspecUrl}`);
|
|
245
|
+
const response = await httpGet(nugetNuspecUrl);
|
|
246
|
+
if (!response.ok) {
|
|
247
|
+
throw new Error(`HTTP error code attempting to get package nuspec for package "${packageName}" version "${versionString}": ${response.status}`);
|
|
248
|
+
}
|
|
249
|
+
return response.body;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
const defaultNugetUtility = new NugetUtility();
|
|
253
|
+
export const getLatestNugetPackageVersion = defaultNugetUtility.getLatestNugetPackageVersion;
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVnZXRVdGlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL051Z2V0VXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFNbkQsTUFBTSxPQUFPLFlBQVk7SUFDTiwwQkFBMEIsR0FBRyxtRUFBbUUsQ0FBQTtJQUNoRyx3QkFBd0IsR0FBRyw0QkFBNEIsQ0FBQTtJQUN2RCw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FBQTtJQUN0RCw4QkFBOEIsR0FBRywwQkFBMEIsQ0FBQTtJQUVwRSxhQUFhLENBQWdCO0lBRXJDLFlBQVksZUFBa0QsRUFBRTtRQUM5RCxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxhQUFhLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQTtJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFdBQW1CLEVBQUUsY0FBc0I7UUFDdkUsT0FBTyxrQ0FBa0MsV0FBVyxJQUFJLGNBQWMsRUFBRSxDQUFBO0lBQzFFLENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBbUI7UUFDM0MsT0FBTywwQ0FBMEMsV0FBVyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDekYsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsNEJBQTRCLEdBQUcsS0FBSyxFQUFFLFdBQW1CLEVBQUUsdUJBQStCLEVBQTBCLEVBQUU7UUFDcEgsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRXRELE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FB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
|
|
@@ -19,7 +19,7 @@ export interface TarballUtilityDependencies {
|
|
|
19
19
|
mkdirpFn: typeof mkdirp;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* This utility class
|
|
22
|
+
* This utility class accepts dependencies in constructor params in order to allow mocking of functions like `which` in unit tests without resorting to hacking the import system.
|
|
23
23
|
*/
|
|
24
24
|
export declare class TarballUtility {
|
|
25
25
|
private whichSyncFn;
|
|
@@ -3,7 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { ExtendedError, mkdirp, requireString, requireValidPath, spawnAsync, trace, whichSync } from './generalUtils.js';
|
|
4
4
|
import { config } from './NodeCliUtilsConfig.js';
|
|
5
5
|
/**
|
|
6
|
-
* This utility class
|
|
6
|
+
* This utility class accepts dependencies in constructor params in order to allow mocking of functions like `which` in unit tests without resorting to hacking the import system.
|
|
7
7
|
*/
|
|
8
8
|
export class TarballUtility {
|
|
9
9
|
whichSyncFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotnetUtils.d.ts","sourceRoot":"","sources":["../../src/dotnetUtils.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,iBAGpD;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,WAAW,GAAE,MAAa,EAAE,aAAa,GAAE,MAAkB,EAAE,SAAS,GAAE,MAAkB,EAAE,GAAG,CAAC,EAAE,MAAM,iBAY7I;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,iBAYrE;AAED;;GAEG;AACH,wBAAsB,2BAA2B,kBAEhD;AAED,wBAAsB,kCAAkC,kBAEvD;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,kBAG5C"}
|
|
1
|
+
{"version":3,"file":"dotnetUtils.d.ts","sourceRoot":"","sources":["../../src/dotnetUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAEhE;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,iBAGpD;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,WAAW,GAAE,MAAa,EAAE,aAAa,GAAE,MAAkB,EAAE,SAAS,GAAE,MAAkB,EAAE,GAAG,CAAC,EAAE,MAAM,iBAY7I;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,iBAYrE;AAED;;GAEG;AACH,wBAAsB,2BAA2B,kBAEhD;AAED,wBAAsB,kCAAkC,kBAEvD;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,kBAG5C"}
|
package/dist/esm/dotnetUtils.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { log, requireString, requireValidPath, spawnAsync, trace, which } from './generalUtils.js';
|
|
2
|
+
export { getLatestNugetPackageVersion } from './NugetUtility.js';
|
|
2
3
|
/**
|
|
3
4
|
* Runs dotnet build on the specified project.
|
|
4
5
|
* @param projectPath Path to project file (like .csproj) or directory of project to build
|
|
@@ -64,4 +65,4 @@ export async function configureDotnetDevCerts() {
|
|
|
64
65
|
await spawnAsync('dotnet', ['dev-certs', 'https', '--clean']);
|
|
65
66
|
await spawnAsync('dotnet', ['dev-certs', 'https', '-t']);
|
|
66
67
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90bmV0VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG90bmV0VXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQU1sRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsV0FBbUI7SUFDbkQsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLE1BQU0sVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQzlFLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxjQUFzQixJQUFJLEVBQUUsZ0JBQXdCLFNBQVMsRUFBRSxZQUFvQixTQUFTLEVBQUUsR0FBWTtJQUM1SSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDNUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNyQyxhQUFhLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzdDLElBQUksR0FBRyxFQUFFO1FBQ1AsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0tBQzdCO0lBQ0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzNFLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7SUFDdkQsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDbkQsS0FBSyxDQUFDLEdBQUcsWUFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDLENBQUE7SUFDMUMsTUFBTSxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0FBQ2hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUFDLFFBQWdCO0lBQ3BFLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtLQUM3QztJQUNELE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7SUFDbEQsSUFBSSxTQUFTLEVBQUU7UUFDYixHQUFHLENBQUMsR0FBRyxRQUFRLHNDQUFzQyxDQUFDLENBQUE7S0FDdkQ7U0FBTTtRQUNMLEdBQUcsQ0FBQyxHQUFHLFFBQVEsb0NBQW9DLENBQUMsQ0FBQTtLQUNyRDtJQUNELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzdFLE1BQU0sVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUNsQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQjtJQUMvQyxNQUFNLCtCQUErQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGtDQUFrQztJQUN0RCxNQUFNLCtCQUErQixDQUFDLG1DQUFtQyxDQUFDLENBQUE7QUFDNUUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QjtJQUMzQyxNQUFNLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDN0QsTUFBTSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzFELENBQUMifQ==
|
|
@@ -351,7 +351,7 @@ export declare function sortDictionaryByKeyAsc(dict: StringKeyedDictionary): Str
|
|
|
351
351
|
export declare function deleteEnvIfExists(envPath: string): Promise<void>;
|
|
352
352
|
export interface FindFilesOptions {
|
|
353
353
|
maxDepth: number;
|
|
354
|
-
|
|
354
|
+
directoryNamesToSkip: string[];
|
|
355
355
|
returnForwardSlashRelativePaths: boolean;
|
|
356
356
|
}
|
|
357
357
|
/**
|
|
@@ -612,5 +612,15 @@ export declare function getRandomIntInclusive(min: number, max: number): number;
|
|
|
612
612
|
* @returns `true` if the `child` path is a descendant of `parentDir`
|
|
613
613
|
*/
|
|
614
614
|
export declare function isChildPath(parentDir: string, child: string, requireChildExists?: boolean): boolean;
|
|
615
|
+
/**
|
|
616
|
+
* Returns `true` if `value` is a string that contains only digits (regex used: `/^\d+$/`).
|
|
617
|
+
*/
|
|
618
|
+
export declare function hasOnlyDigits(value: string): boolean;
|
|
619
|
+
/**
|
|
620
|
+
* @param input A string to search.
|
|
621
|
+
* @param substring The substring to find indexes for.
|
|
622
|
+
* @returns An array of numbers representing the indexes for the substring within the input string.
|
|
623
|
+
*/
|
|
624
|
+
export declare function findAllIndexes(input: string, substring: string): number[];
|
|
615
625
|
export {};
|
|
616
626
|
//# sourceMappingURL=generalUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/generalUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/generalUtils.ts"],"names":[],"mappings":"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"}
|