@guanjinke/artifact-client 1.1.1 → 1.2.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 +52 -7
- package/dist/artifact-client.d.ts +11 -1
- package/dist/artifact-client.d.ts.map +1 -1
- package/dist/artifact-client.js +16 -1
- package/dist/artifact-client.js.map +1 -1
- package/dist/cli/config-manager.d.ts +14 -6
- package/dist/cli/config-manager.d.ts.map +1 -1
- package/dist/cli/config-manager.js +30 -16
- package/dist/cli/config-manager.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +66 -4
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/version.d.ts +11 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +17 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/providers/azure-provider.d.ts +15 -2
- package/dist/providers/azure-provider.d.ts.map +1 -1
- package/dist/providers/azure-provider.js +69 -18
- package/dist/providers/azure-provider.js.map +1 -1
- package/dist/providers/oss-provider.d.ts +25 -2
- package/dist/providers/oss-provider.d.ts.map +1 -1
- package/dist/providers/oss-provider.js +144 -80
- package/dist/providers/oss-provider.js.map +1 -1
- package/dist/providers/storage-provider.d.ts +11 -1
- package/dist/providers/storage-provider.d.ts.map +1 -1
- package/dist/providers/storage-provider.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/semver.d.ts +52 -2
- package/dist/utils/semver.d.ts.map +1 -1
- package/dist/utils/semver.js +126 -21
- package/dist/utils/semver.js.map +1 -1
- package/package.json +1 -1
|
@@ -39,7 +39,6 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const storage_blob_1 = require("@azure/storage-blob");
|
|
40
40
|
const storage_provider_1 = require("./storage-provider");
|
|
41
41
|
const semver_1 = require("../utils/semver");
|
|
42
|
-
const semver_2 = require("semver");
|
|
43
42
|
const format_1 = require("../utils/format");
|
|
44
43
|
class AzureProvider extends storage_provider_1.StorageProvider {
|
|
45
44
|
containerClient;
|
|
@@ -70,6 +69,7 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
70
69
|
async listMajorVersions(pluginName, options) {
|
|
71
70
|
const majorMap = new Map();
|
|
72
71
|
const pluginPrefix = (0, semver_1.getPluginPrefix)(this.base, pluginName);
|
|
72
|
+
const fileNames = [];
|
|
73
73
|
for await (const item of this.containerClient.listBlobsByHierarchy('/', {
|
|
74
74
|
prefix: pluginPrefix,
|
|
75
75
|
})) {
|
|
@@ -79,7 +79,8 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
79
79
|
continue;
|
|
80
80
|
const major = (0, semver_1.extractMajorMinor)(dirName);
|
|
81
81
|
if (!majorMap.has(major)) {
|
|
82
|
-
|
|
82
|
+
// The dev major has no "dev/" directory, so keep the real 0.x path.
|
|
83
|
+
majorMap.set(major, { majorVersion: major, minorCount: 0, path: pluginPrefix + (0, semver_1.extractRawMajorMinor)(dirName) + '/' });
|
|
83
84
|
}
|
|
84
85
|
const entry = majorMap.get(major);
|
|
85
86
|
entry.minorCount++;
|
|
@@ -87,28 +88,42 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
87
88
|
entry.totalSizeMB = (entry.totalSizeMB ?? 0) + await this.calculatePrefixSize(item.name);
|
|
88
89
|
}
|
|
89
90
|
}
|
|
91
|
+
else if (item.kind === 'blob') {
|
|
92
|
+
fileNames.push(item.name.slice(pluginPrefix.length));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Channel majors ("9.1-hotfix1", "9.0-en", ...) exist only as version files:
|
|
96
|
+
// their artifacts live in plain directories, so they cannot be counted.
|
|
97
|
+
for (const majorLabel of this.declaredMajorsIn(fileNames)) {
|
|
98
|
+
if (majorMap.has(majorLabel))
|
|
99
|
+
continue;
|
|
100
|
+
majorMap.set(majorLabel, { majorVersion: majorLabel, minorCount: 0, path: pluginPrefix });
|
|
90
101
|
}
|
|
91
102
|
for (const [major, info] of majorMap) {
|
|
92
103
|
try {
|
|
93
104
|
const v = await this.readLatestVersion(pluginName, major);
|
|
94
105
|
if (v)
|
|
95
106
|
info.latestVersion = v;
|
|
107
|
+
// A file-only major has no directory of its own: point at the version it names.
|
|
108
|
+
if (v && info.path === pluginPrefix)
|
|
109
|
+
info.path = (0, semver_1.getVersionPrefix)(this.base, pluginName, v);
|
|
96
110
|
}
|
|
97
111
|
catch { /* ok */ }
|
|
98
112
|
}
|
|
99
|
-
|
|
113
|
+
// Drop majors with neither directories nor a release pointer: an empty
|
|
114
|
+
// version file (e.g. a reserved "version10.0.txt") carries no information.
|
|
115
|
+
const result = Array.from(majorMap.values()).filter(info => info.minorCount > 0 || info.latestVersion);
|
|
100
116
|
result.sort((a, b) => {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return -1;
|
|
117
|
+
const rank = this.majorRank(a.majorVersion) - this.majorRank(b.majorVersion);
|
|
118
|
+
if (rank !== 0)
|
|
119
|
+
return rank;
|
|
105
120
|
const cmp = this.compareMajorVersions(a.majorVersion, b.majorVersion);
|
|
106
121
|
return options?.sortOrder === 'asc' ? cmp : -cmp;
|
|
107
122
|
});
|
|
108
123
|
return result;
|
|
109
124
|
}
|
|
110
125
|
async getLatestVersion(pluginName, majorVersion, options) {
|
|
111
|
-
const latest = await this.readLatestVersion(pluginName, majorVersion);
|
|
126
|
+
const latest = await this.readLatestVersion(pluginName, (0, semver_1.normalizeMajorLabel)(majorVersion));
|
|
112
127
|
if (!latest)
|
|
113
128
|
throw new Error(`No latest version found for plugin "${pluginName}" major "${majorVersion}".`);
|
|
114
129
|
const version = { version: latest, path: (0, semver_1.getVersionPrefix)(this.base, pluginName, latest) };
|
|
@@ -119,6 +134,7 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
119
134
|
async listMinorVersions(pluginName, majorVersion, options) {
|
|
120
135
|
const versions = [];
|
|
121
136
|
const pluginPrefix = (0, semver_1.getPluginPrefix)(this.base, pluginName);
|
|
137
|
+
const majorLabel = (0, semver_1.normalizeMajorLabel)(majorVersion);
|
|
122
138
|
for await (const item of this.containerClient.listBlobsByHierarchy('/', {
|
|
123
139
|
prefix: pluginPrefix,
|
|
124
140
|
})) {
|
|
@@ -126,7 +142,7 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
126
142
|
const dirName = item.name.slice(pluginPrefix.length).replace(/\/$/, '');
|
|
127
143
|
if (!dirName)
|
|
128
144
|
continue;
|
|
129
|
-
if ((0, semver_1.
|
|
145
|
+
if (!(0, semver_1.dirBelongsToMajor)(dirName, majorLabel))
|
|
130
146
|
continue;
|
|
131
147
|
const v = { version: dirName, path: item.name };
|
|
132
148
|
if (options?.includeSize)
|
|
@@ -134,6 +150,13 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
134
150
|
versions.push(v);
|
|
135
151
|
}
|
|
136
152
|
}
|
|
153
|
+
if (!versions.length) {
|
|
154
|
+
// A channel major such as "9.1-hotfix1" publishes into plain directories, so
|
|
155
|
+
// it cannot be enumerated; report the version its release points at.
|
|
156
|
+
const pointer = await this.readLatestVersion(pluginName, majorLabel);
|
|
157
|
+
if (pointer)
|
|
158
|
+
versions.push({ version: pointer, path: (0, semver_1.getVersionPrefix)(this.base, pluginName, pointer) });
|
|
159
|
+
}
|
|
137
160
|
const sorted = (0, semver_1.sortVersions)(versions.map(v => v.version), options?.sortOrder ?? 'desc');
|
|
138
161
|
const map = new Map(versions.map(v => [v.version, v]));
|
|
139
162
|
return sorted.map(v => map.get(v)).filter(Boolean);
|
|
@@ -154,10 +177,10 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
154
177
|
return artifacts.sort((a, b) => a.name.localeCompare(b.name));
|
|
155
178
|
}
|
|
156
179
|
async uploadArtifact(pluginName, version, artifactName, localFilePath) {
|
|
180
|
+
// Purely a write into the version directory: the major version pointers are
|
|
181
|
+
// updated separately via updateLatestVersion.
|
|
157
182
|
const blobPath = (0, semver_1.getArtifactPath)(this.base, pluginName, version, artifactName);
|
|
158
183
|
await this.containerClient.getBlockBlobClient(blobPath).uploadFile(localFilePath);
|
|
159
|
-
const major = (0, semver_1.extractMajorMinor)(version);
|
|
160
|
-
await this.updateLatestVersion(pluginName, major, version);
|
|
161
184
|
}
|
|
162
185
|
async downloadArtifactByPath(fullPath, localDir) {
|
|
163
186
|
const fileName = fullPath.split('/').pop() || 'artifact';
|
|
@@ -200,22 +223,25 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
200
223
|
// Fallback: scan directories
|
|
201
224
|
return this.scanLatest(pluginName, majorVersion);
|
|
202
225
|
}
|
|
203
|
-
/** Scan version directories to find the latest
|
|
204
|
-
async scanLatest(pluginName,
|
|
226
|
+
/** Scan version directories to find the latest version belonging to a major. */
|
|
227
|
+
async scanLatest(pluginName, majorLabel) {
|
|
205
228
|
const pluginPrefix = (0, semver_1.getPluginPrefix)(this.base, pluginName);
|
|
206
229
|
const versions = [];
|
|
207
230
|
for await (const item of this.containerClient.listBlobsByHierarchy('/', { prefix: pluginPrefix })) {
|
|
208
231
|
if (item.kind === 'prefix') {
|
|
209
232
|
const v = item.name.slice(pluginPrefix.length).replace(/\/$/, '');
|
|
210
|
-
if (v && (0, semver_1.
|
|
233
|
+
if (v && (0, semver_1.dirBelongsToMajor)(v, majorLabel))
|
|
211
234
|
versions.push(v);
|
|
212
235
|
}
|
|
213
236
|
}
|
|
214
237
|
if (!versions.length)
|
|
215
238
|
return null;
|
|
216
|
-
|
|
217
|
-
return versions[0];
|
|
239
|
+
return (0, semver_1.sortVersions)(versions, 'desc')[0];
|
|
218
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Record `latestVersion` as the latest version of a major version: creates the
|
|
243
|
+
* majorLabel's version file when absent and refreshes its `latestversion` metadata.
|
|
244
|
+
*/
|
|
219
245
|
async updateLatestVersion(pluginName, majorVersion, latestVersion) {
|
|
220
246
|
const fp = (0, semver_1.getVersionFilePath)(this.base, pluginName, majorVersion);
|
|
221
247
|
const client = this.containerClient.getBlockBlobClient(fp);
|
|
@@ -235,13 +261,38 @@ class AzureProvider extends storage_provider_1.StorageProvider {
|
|
|
235
261
|
await client.upload(latestVersion, latestVersion.length, { metadata: { latestversion: latestVersion } });
|
|
236
262
|
}
|
|
237
263
|
}
|
|
264
|
+
/** Version majors declared by the version files present in a plugin directory. */
|
|
265
|
+
declaredMajorsIn(fileNames) {
|
|
266
|
+
const majors = new Set();
|
|
267
|
+
for (const name of fileNames) {
|
|
268
|
+
const majorLabel = (0, semver_1.majorFromVersionFileName)(name);
|
|
269
|
+
if (majorLabel)
|
|
270
|
+
majors.add(majorLabel);
|
|
271
|
+
}
|
|
272
|
+
return Array.from(majors);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Sort rank for a major version: numeric product majors first, then labels whose
|
|
276
|
+
* shape we do not recognise (e.g. a legacy "sa3"), and dev last.
|
|
277
|
+
*/
|
|
278
|
+
majorRank(majorLabel) {
|
|
279
|
+
if (majorLabel === 'dev')
|
|
280
|
+
return 2;
|
|
281
|
+
return (0, semver_1.parseMajorLabel)(majorLabel).core ? 0 : 1;
|
|
282
|
+
}
|
|
238
283
|
compareMajorVersions(a, b) {
|
|
239
|
-
const pa =
|
|
284
|
+
const pa = this.majorParts(a), pb = this.majorParts(b);
|
|
240
285
|
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
241
286
|
if ((pa[i] ?? 0) !== (pb[i] ?? 0))
|
|
242
287
|
return (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
243
288
|
}
|
|
244
|
-
|
|
289
|
+
// Same numeric core (e.g. "9.1" vs "9.1-hotfix1"): order by the label itself.
|
|
290
|
+
return a.localeCompare(b);
|
|
291
|
+
}
|
|
292
|
+
/** Numeric core segments of a major version, e.g. "9.1-hotfix1" → [9, 1]. */
|
|
293
|
+
majorParts(majorLabel) {
|
|
294
|
+
const core = (0, semver_1.parseMajorLabel)(majorLabel).core;
|
|
295
|
+
return core ? core.split('.').map(Number) : [];
|
|
245
296
|
}
|
|
246
297
|
}
|
|
247
298
|
exports.AzureProvider = AzureProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-provider.js","sourceRoot":"","sources":["../../src/providers/azure-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"azure-provider.js","sourceRoot":"","sources":["../../src/providers/azure-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,12 +17,35 @@ export declare class OSSProvider extends StorageProvider {
|
|
|
17
17
|
downloadArtifactByPath(fullPath: string, localDir: string): Promise<void>;
|
|
18
18
|
downloadArtifact(pluginName: string, version: string, fileName: string, localDir: string): Promise<void>;
|
|
19
19
|
downloadVersion(pluginName: string, version: string, localDir: string): Promise<string[]>;
|
|
20
|
+
/**
|
|
21
|
+
* List every prefix and object matching a query, following OSS pagination.
|
|
22
|
+
*
|
|
23
|
+
* A single ListObjects call only returns one page: the server defaults to 100
|
|
24
|
+
* entries and `max-keys` caps it at 1000. Callers that issue one request lose
|
|
25
|
+
* everything beyond the first page, which silently under-reports plugins,
|
|
26
|
+
* versions and artifacts. Keep requesting pages until the backend reports
|
|
27
|
+
* `isTruncated === false`.
|
|
28
|
+
*/
|
|
29
|
+
private listAll;
|
|
20
30
|
private calculatePrefixSize;
|
|
21
31
|
/** Read latest version from tag, falling back to directory scanning. */
|
|
22
32
|
private readLatestVersion;
|
|
23
|
-
/** Scan version directories to find the latest
|
|
33
|
+
/** Scan version directories to find the latest version belonging to a major. */
|
|
24
34
|
private scanLatest;
|
|
25
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Record `latestVersion` as the latest version of a major version: creates the
|
|
37
|
+
* majorLabel's version file when absent and refreshes its `latestversion` tag.
|
|
38
|
+
*/
|
|
39
|
+
updateLatestVersion(pluginName: string, majorVersion: string, latestVersion: string): Promise<void>;
|
|
40
|
+
/** Version majors declared by the version files present in a plugin directory. */
|
|
41
|
+
private declaredMajorsIn;
|
|
42
|
+
/**
|
|
43
|
+
* Sort rank for a major version: numeric product majors first, then labels whose
|
|
44
|
+
* shape we do not recognise (e.g. a legacy "sa3"), and dev last.
|
|
45
|
+
*/
|
|
46
|
+
private majorRank;
|
|
26
47
|
private compareMajorVersions;
|
|
48
|
+
/** Numeric core segments of a major version, e.g. "9.1-hotfix1" → [9, 1]. */
|
|
49
|
+
private majorParts;
|
|
27
50
|
}
|
|
28
51
|
//# sourceMappingURL=oss-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oss-provider.d.ts","sourceRoot":"","sources":["../../src/providers/oss-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"oss-provider.d.ts","sourceRoot":"","sources":["../../src/providers/oss-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AA0BlB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,IAAI,CAAS;gBAET,MAAM,EAAE,SAAS;IAYvB,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAiBvE,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiDzF,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ5G,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA4B1G,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiBhH,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAOV,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU/F;;;;;;;;OAQG;YACW,OAAO;YA0BP,mBAAmB;IASjC,wEAAwE;YAC1D,iBAAiB;IAa/B,gFAAgF;YAClE,UAAU;IAUxB;;;OAGG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzG,kFAAkF;IAClF,OAAO,CAAC,gBAAgB;IASxB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,oBAAoB;IAS5B,6EAA6E;IAC7E,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -42,8 +42,9 @@ const path = __importStar(require("path"));
|
|
|
42
42
|
const ali_oss_1 = __importDefault(require("ali-oss"));
|
|
43
43
|
const storage_provider_1 = require("./storage-provider");
|
|
44
44
|
const semver_1 = require("../utils/semver");
|
|
45
|
-
const semver_2 = require("semver");
|
|
46
45
|
const format_1 = require("../utils/format");
|
|
46
|
+
/** Entries requested per ListObjects call. OSS caps `max-keys` at 1000. */
|
|
47
|
+
const LIST_PAGE_SIZE = 1000;
|
|
47
48
|
class OSSProvider extends storage_provider_1.StorageProvider {
|
|
48
49
|
client;
|
|
49
50
|
base;
|
|
@@ -62,58 +63,66 @@ class OSSProvider extends storage_provider_1.StorageProvider {
|
|
|
62
63
|
async listPlugins(options) {
|
|
63
64
|
const plugins = [];
|
|
64
65
|
const prefix = this.base ? this.base + '/' : '';
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
plugins.push(plugin);
|
|
75
|
-
}
|
|
66
|
+
const { prefixes } = await this.listAll({ prefix, delimiter: '/' });
|
|
67
|
+
for (const p of prefixes) {
|
|
68
|
+
const name = p.slice(prefix.length).replace(/\/$/, '');
|
|
69
|
+
if (!name)
|
|
70
|
+
continue;
|
|
71
|
+
const plugin = { name, path: p };
|
|
72
|
+
if (options?.includeSize)
|
|
73
|
+
plugin.totalSizeMB = await this.calculatePrefixSize(p);
|
|
74
|
+
plugins.push(plugin);
|
|
76
75
|
}
|
|
77
76
|
return plugins.sort((a, b) => a.name.localeCompare(b.name));
|
|
78
77
|
}
|
|
79
78
|
async listMajorVersions(pluginName, options) {
|
|
80
79
|
const majorMap = new Map();
|
|
81
80
|
const pluginPrefix = (0, semver_1.getPluginPrefix)(this.base, pluginName);
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
81
|
+
const { prefixes, objects } = await this.listAll({ prefix: pluginPrefix, delimiter: '/' });
|
|
82
|
+
for (const p of prefixes) {
|
|
83
|
+
const dirName = p.slice(pluginPrefix.length).replace(/\/$/, '');
|
|
84
|
+
if (!dirName)
|
|
85
|
+
continue;
|
|
86
|
+
const major = (0, semver_1.extractMajorMinor)(dirName);
|
|
87
|
+
if (!majorMap.has(major)) {
|
|
88
|
+
// The dev major has no "dev/" directory, so keep the real 0.x path.
|
|
89
|
+
majorMap.set(major, { majorVersion: major, minorCount: 0, path: pluginPrefix + (0, semver_1.extractRawMajorMinor)(dirName) + '/' });
|
|
90
|
+
}
|
|
91
|
+
const entry = majorMap.get(major);
|
|
92
|
+
entry.minorCount++;
|
|
93
|
+
if (options?.includeSize) {
|
|
94
|
+
entry.totalSizeMB = (entry.totalSizeMB ?? 0) + await this.calculatePrefixSize(p);
|
|
97
95
|
}
|
|
98
96
|
}
|
|
97
|
+
// Channel majors ("9.1-hotfix1", "9.0-en", ...) exist only as version files:
|
|
98
|
+
// their artifacts live in plain directories, so they cannot be counted.
|
|
99
|
+
for (const majorLabel of this.declaredMajorsIn(objects.map(o => o.name.slice(pluginPrefix.length)))) {
|
|
100
|
+
if (majorMap.has(majorLabel))
|
|
101
|
+
continue;
|
|
102
|
+
majorMap.set(majorLabel, { majorVersion: majorLabel, minorCount: 0, path: pluginPrefix });
|
|
103
|
+
}
|
|
99
104
|
for (const [major, info] of majorMap) {
|
|
100
105
|
const v = await this.readLatestVersion(pluginName, major);
|
|
101
106
|
if (v)
|
|
102
107
|
info.latestVersion = v;
|
|
108
|
+
// A file-only major has no directory of its own: point at the version it names.
|
|
109
|
+
if (v && info.path === pluginPrefix)
|
|
110
|
+
info.path = (0, semver_1.getVersionPrefix)(this.base, pluginName, v);
|
|
103
111
|
}
|
|
104
|
-
|
|
112
|
+
// Drop majors with neither directories nor a release pointer: an empty
|
|
113
|
+
// version file (e.g. a reserved "version10.0.txt") carries no information.
|
|
114
|
+
const resultList = Array.from(majorMap.values()).filter(info => info.minorCount > 0 || info.latestVersion);
|
|
105
115
|
resultList.sort((a, b) => {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
return -1;
|
|
116
|
+
const rank = this.majorRank(a.majorVersion) - this.majorRank(b.majorVersion);
|
|
117
|
+
if (rank !== 0)
|
|
118
|
+
return rank;
|
|
110
119
|
const cmp = this.compareMajorVersions(a.majorVersion, b.majorVersion);
|
|
111
120
|
return options?.sortOrder === 'asc' ? cmp : -cmp;
|
|
112
121
|
});
|
|
113
122
|
return resultList;
|
|
114
123
|
}
|
|
115
124
|
async getLatestVersion(pluginName, majorVersion, options) {
|
|
116
|
-
const latest = await this.readLatestVersion(pluginName, majorVersion);
|
|
125
|
+
const latest = await this.readLatestVersion(pluginName, (0, semver_1.normalizeMajorLabel)(majorVersion));
|
|
117
126
|
if (!latest)
|
|
118
127
|
throw new Error(`No latest version found for plugin "${pluginName}" major "${majorVersion}".`);
|
|
119
128
|
const version = { version: latest, path: (0, semver_1.getVersionPrefix)(this.base, pluginName, latest) };
|
|
@@ -124,19 +133,25 @@ class OSSProvider extends storage_provider_1.StorageProvider {
|
|
|
124
133
|
async listMinorVersions(pluginName, majorVersion, options) {
|
|
125
134
|
const versions = [];
|
|
126
135
|
const pluginPrefix = (0, semver_1.getPluginPrefix)(this.base, pluginName);
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
const majorLabel = (0, semver_1.normalizeMajorLabel)(majorVersion);
|
|
137
|
+
const { prefixes } = await this.listAll({ prefix: pluginPrefix, delimiter: '/' });
|
|
138
|
+
for (const p of prefixes) {
|
|
139
|
+
const dirName = p.slice(pluginPrefix.length).replace(/\/$/, '');
|
|
140
|
+
if (!dirName)
|
|
141
|
+
continue;
|
|
142
|
+
if (!(0, semver_1.dirBelongsToMajor)(dirName, majorLabel))
|
|
143
|
+
continue;
|
|
144
|
+
const v = { version: dirName, path: p };
|
|
145
|
+
if (options?.includeSize)
|
|
146
|
+
v.totalSizeMB = await this.calculatePrefixSize(p);
|
|
147
|
+
versions.push(v);
|
|
148
|
+
}
|
|
149
|
+
if (!versions.length) {
|
|
150
|
+
// A channel major such as "9.1-hotfix1" publishes into plain directories, so
|
|
151
|
+
// it cannot be enumerated; report the version its release points at.
|
|
152
|
+
const pointer = await this.readLatestVersion(pluginName, majorLabel);
|
|
153
|
+
if (pointer)
|
|
154
|
+
versions.push({ version: pointer, path: (0, semver_1.getVersionPrefix)(this.base, pluginName, pointer) });
|
|
140
155
|
}
|
|
141
156
|
const sorted = (0, semver_1.sortVersions)(versions.map(v => v.version), options?.sortOrder ?? 'desc');
|
|
142
157
|
const map = new Map(versions.map(v => [v.version, v]));
|
|
@@ -145,25 +160,23 @@ class OSSProvider extends storage_provider_1.StorageProvider {
|
|
|
145
160
|
async listArtifacts(pluginName, version, options) {
|
|
146
161
|
const artifacts = [];
|
|
147
162
|
const versionPrefix = (0, semver_1.getVersionPrefix)(this.base, pluginName, version);
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
artifacts.push(a);
|
|
158
|
-
}
|
|
163
|
+
const { objects } = await this.listAll({ prefix: versionPrefix });
|
|
164
|
+
for (const obj of objects) {
|
|
165
|
+
const fileName = obj.name.slice(versionPrefix.length);
|
|
166
|
+
if (!fileName)
|
|
167
|
+
continue;
|
|
168
|
+
const a = { name: fileName, path: obj.name };
|
|
169
|
+
if (options?.includeSize && obj.size !== undefined)
|
|
170
|
+
a.sizeMB = (0, format_1.bytesToMB)(obj.size);
|
|
171
|
+
artifacts.push(a);
|
|
159
172
|
}
|
|
160
173
|
return artifacts.sort((a, b) => a.name.localeCompare(b.name));
|
|
161
174
|
}
|
|
162
175
|
async uploadArtifact(pluginName, version, artifactName, localFilePath) {
|
|
176
|
+
// Purely a write into the version directory: the major version pointers are
|
|
177
|
+
// updated separately via updateLatestVersion.
|
|
163
178
|
const objectName = (0, semver_1.getArtifactPath)(this.base, pluginName, version, artifactName);
|
|
164
179
|
await this.client.put(objectName, localFilePath);
|
|
165
|
-
const major = (0, semver_1.extractMajorMinor)(version);
|
|
166
|
-
await this.updateLatestVersion(pluginName, major, version);
|
|
167
180
|
}
|
|
168
181
|
async downloadArtifactByPath(fullPath, localDir) {
|
|
169
182
|
await fs.mkdir(localDir, { recursive: true });
|
|
@@ -183,17 +196,42 @@ class OSSProvider extends storage_provider_1.StorageProvider {
|
|
|
183
196
|
}
|
|
184
197
|
return downloaded;
|
|
185
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* List every prefix and object matching a query, following OSS pagination.
|
|
201
|
+
*
|
|
202
|
+
* A single ListObjects call only returns one page: the server defaults to 100
|
|
203
|
+
* entries and `max-keys` caps it at 1000. Callers that issue one request lose
|
|
204
|
+
* everything beyond the first page, which silently under-reports plugins,
|
|
205
|
+
* versions and artifacts. Keep requesting pages until the backend reports
|
|
206
|
+
* `isTruncated === false`.
|
|
207
|
+
*/
|
|
208
|
+
async listAll(query) {
|
|
209
|
+
const prefixSet = new Set();
|
|
210
|
+
const objects = [];
|
|
211
|
+
let marker;
|
|
212
|
+
for (;;) {
|
|
213
|
+
const result = await this.client.list({ ...query, 'max-keys': LIST_PAGE_SIZE, ...(marker ? { marker } : {}) }, {});
|
|
214
|
+
for (const p of result.prefixes ?? [])
|
|
215
|
+
prefixSet.add(p);
|
|
216
|
+
for (const obj of result.objects ?? [])
|
|
217
|
+
objects.push(obj);
|
|
218
|
+
if (!result.isTruncated)
|
|
219
|
+
break;
|
|
220
|
+
// Defensive: never loop forever if the backend truncates without a marker.
|
|
221
|
+
const next = result.nextMarker ?? undefined;
|
|
222
|
+
if (!next || next === marker)
|
|
223
|
+
break;
|
|
224
|
+
marker = next;
|
|
225
|
+
}
|
|
226
|
+
return { prefixes: Array.from(prefixSet), objects };
|
|
227
|
+
}
|
|
186
228
|
async calculatePrefixSize(prefix) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
if (
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
bytes += obj.size;
|
|
194
|
-
}
|
|
195
|
-
marker = result.nextMarker || undefined;
|
|
196
|
-
} while (marker);
|
|
229
|
+
const { objects } = await this.listAll({ prefix });
|
|
230
|
+
let bytes = 0;
|
|
231
|
+
for (const obj of objects) {
|
|
232
|
+
if (obj.size)
|
|
233
|
+
bytes += obj.size;
|
|
234
|
+
}
|
|
197
235
|
return (0, format_1.bytesToMB)(bytes);
|
|
198
236
|
}
|
|
199
237
|
/** Read latest version from tag, falling back to directory scanning. */
|
|
@@ -212,20 +250,21 @@ class OSSProvider extends storage_provider_1.StorageProvider {
|
|
|
212
250
|
// Fallback: scan directories
|
|
213
251
|
return this.scanLatest(pluginName, majorVersion);
|
|
214
252
|
}
|
|
215
|
-
/** Scan version directories to find the latest
|
|
216
|
-
async scanLatest(pluginName,
|
|
253
|
+
/** Scan version directories to find the latest version belonging to a major. */
|
|
254
|
+
async scanLatest(pluginName, majorLabel) {
|
|
217
255
|
const pluginPrefix = (0, semver_1.getPluginPrefix)(this.base, pluginName);
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
return null;
|
|
221
|
-
const versions = result.prefixes
|
|
256
|
+
const { prefixes } = await this.listAll({ prefix: pluginPrefix, delimiter: '/' });
|
|
257
|
+
const versions = prefixes
|
|
222
258
|
.map(p => p.slice(pluginPrefix.length).replace(/\/$/, ''))
|
|
223
|
-
.filter(v => v && (0, semver_1.
|
|
259
|
+
.filter(v => v && (0, semver_1.dirBelongsToMajor)(v, majorLabel));
|
|
224
260
|
if (!versions.length)
|
|
225
261
|
return null;
|
|
226
|
-
|
|
227
|
-
return versions[0];
|
|
262
|
+
return (0, semver_1.sortVersions)(versions, 'desc')[0];
|
|
228
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Record `latestVersion` as the latest version of a major version: creates the
|
|
266
|
+
* majorLabel's version file when absent and refreshes its `latestversion` tag.
|
|
267
|
+
*/
|
|
229
268
|
async updateLatestVersion(pluginName, majorVersion, latestVersion) {
|
|
230
269
|
const fp = (0, semver_1.getVersionFilePath)(this.base, pluginName, majorVersion);
|
|
231
270
|
let exists = false;
|
|
@@ -241,13 +280,38 @@ class OSSProvider extends storage_provider_1.StorageProvider {
|
|
|
241
280
|
await this.client.put(fp, Buffer.from(latestVersion));
|
|
242
281
|
await this.client.putObjectTagging(fp, { latestversion: latestVersion });
|
|
243
282
|
}
|
|
283
|
+
/** Version majors declared by the version files present in a plugin directory. */
|
|
284
|
+
declaredMajorsIn(fileNames) {
|
|
285
|
+
const majors = new Set();
|
|
286
|
+
for (const name of fileNames) {
|
|
287
|
+
const majorLabel = (0, semver_1.majorFromVersionFileName)(name);
|
|
288
|
+
if (majorLabel)
|
|
289
|
+
majors.add(majorLabel);
|
|
290
|
+
}
|
|
291
|
+
return Array.from(majors);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Sort rank for a major version: numeric product majors first, then labels whose
|
|
295
|
+
* shape we do not recognise (e.g. a legacy "sa3"), and dev last.
|
|
296
|
+
*/
|
|
297
|
+
majorRank(majorLabel) {
|
|
298
|
+
if (majorLabel === 'dev')
|
|
299
|
+
return 2;
|
|
300
|
+
return (0, semver_1.parseMajorLabel)(majorLabel).core ? 0 : 1;
|
|
301
|
+
}
|
|
244
302
|
compareMajorVersions(a, b) {
|
|
245
|
-
const pa =
|
|
303
|
+
const pa = this.majorParts(a), pb = this.majorParts(b);
|
|
246
304
|
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
247
305
|
if ((pa[i] ?? 0) !== (pb[i] ?? 0))
|
|
248
306
|
return (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
249
307
|
}
|
|
250
|
-
|
|
308
|
+
// Same numeric core (e.g. "9.1" vs "9.1-hotfix1"): order by the label itself.
|
|
309
|
+
return a.localeCompare(b);
|
|
310
|
+
}
|
|
311
|
+
/** Numeric core segments of a major version, e.g. "9.1-hotfix1" → [9, 1]. */
|
|
312
|
+
majorParts(majorLabel) {
|
|
313
|
+
const core = (0, semver_1.parseMajorLabel)(majorLabel).core;
|
|
314
|
+
return core ? core.split('.').map(Number) : [];
|
|
251
315
|
}
|
|
252
316
|
}
|
|
253
317
|
exports.OSSProvider = OSSProvider;
|