@guanjinke/artifact-client 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +165 -0
- package/dist/artifact-client.d.ts +112 -0
- package/dist/artifact-client.d.ts.map +1 -0
- package/dist/artifact-client.js +167 -0
- package/dist/artifact-client.js.map +1 -0
- package/dist/cli/config-manager.d.ts +27 -0
- package/dist/cli/config-manager.d.ts.map +1 -0
- package/dist/cli/config-manager.js +107 -0
- package/dist/cli/config-manager.js.map +1 -0
- package/dist/cli/setup.d.ts +7 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +366 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/azure-provider.d.ts +40 -0
- package/dist/providers/azure-provider.d.ts.map +1 -0
- package/dist/providers/azure-provider.js +336 -0
- package/dist/providers/azure-provider.js.map +1 -0
- package/dist/providers/oss-provider.d.ts +39 -0
- package/dist/providers/oss-provider.d.ts.map +1 -0
- package/dist/providers/oss-provider.js +342 -0
- package/dist/providers/oss-provider.js.map +1 -0
- package/dist/providers/storage-provider.d.ts +50 -0
- package/dist/providers/storage-provider.d.ts.map +1 -0
- package/dist/providers/storage-provider.js +11 -0
- package/dist/providers/storage-provider.js.map +1 -0
- package/dist/types.d.ts +62 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/format.d.ts +9 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +17 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/semver.d.ts +46 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +112 -0
- package/dist/utils/semver.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compareVersions = compareVersions;
|
|
4
|
+
exports.sortVersions = sortVersions;
|
|
5
|
+
exports.extractMajorMinor = extractMajorMinor;
|
|
6
|
+
exports.isDevVersion = isDevVersion;
|
|
7
|
+
exports.getVersionFileName = getVersionFileName;
|
|
8
|
+
exports.getVersionFilePath = getVersionFilePath;
|
|
9
|
+
exports.getPluginPrefix = getPluginPrefix;
|
|
10
|
+
exports.getVersionPrefix = getVersionPrefix;
|
|
11
|
+
exports.getArtifactPath = getArtifactPath;
|
|
12
|
+
const semver_1 = require("semver");
|
|
13
|
+
/**
|
|
14
|
+
* Compare two version strings following semver rules.
|
|
15
|
+
* Returns negative if a < b, zero if a == b, positive if a > b.
|
|
16
|
+
* Supports pre-release tags (e.g., 1.0.5-beta < 1.0.5).
|
|
17
|
+
*/
|
|
18
|
+
function compareVersions(a, b) {
|
|
19
|
+
const va = (0, semver_1.valid)(a);
|
|
20
|
+
const vb = (0, semver_1.valid)(b);
|
|
21
|
+
if (!va && !vb) {
|
|
22
|
+
// Both invalid — fall back to string comparison
|
|
23
|
+
return a.localeCompare(b);
|
|
24
|
+
}
|
|
25
|
+
if (!va)
|
|
26
|
+
return 1; // invalid sorts after valid
|
|
27
|
+
if (!vb)
|
|
28
|
+
return -1; // invalid sorts after valid
|
|
29
|
+
return (0, semver_1.compare)(va, vb);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sort an array of version strings by semver rules.
|
|
33
|
+
* Default order is descending (newest first).
|
|
34
|
+
*/
|
|
35
|
+
function sortVersions(versions, order = 'desc') {
|
|
36
|
+
const sorted = [...versions].sort(order === 'desc' ? semver_1.rcompare : semver_1.compare);
|
|
37
|
+
return sorted;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract the major.minor portion from a full semver string.
|
|
41
|
+
* e.g. "1.0.5" → "1.0", "2.3.1-beta" → "2.3", "0.0.3" → "dev"
|
|
42
|
+
*/
|
|
43
|
+
function extractMajorMinor(version) {
|
|
44
|
+
const v = (0, semver_1.parse)(version);
|
|
45
|
+
if (!v) {
|
|
46
|
+
// If parsing fails, try to extract manually
|
|
47
|
+
const parts = version.split('.');
|
|
48
|
+
if (parts.length >= 2) {
|
|
49
|
+
const maj = parseInt(parts[0], 10);
|
|
50
|
+
const min = parseInt(parts[1], 10);
|
|
51
|
+
if (!isNaN(maj) && !isNaN(min)) {
|
|
52
|
+
return isDevMajorMinor(maj, min) ? 'dev' : `${maj}.${min}`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return version;
|
|
56
|
+
}
|
|
57
|
+
return isDevMajorMinor(v.major, v.minor) ? 'dev' : `${v.major}.${v.minor}`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if a version is a dev version (major === 0 and minor === 0).
|
|
61
|
+
*/
|
|
62
|
+
function isDevVersion(version) {
|
|
63
|
+
const v = (0, semver_1.parse)(version);
|
|
64
|
+
if (!v)
|
|
65
|
+
return false;
|
|
66
|
+
return isDevMajorMinor(v.major, v.minor);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if major=0 and minor=0 indicates a dev version.
|
|
70
|
+
*/
|
|
71
|
+
function isDevMajorMinor(major, minor) {
|
|
72
|
+
return major === 0 && minor === 0;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get the version file name for a given major version string.
|
|
76
|
+
* "1.0" → "version1.0.txt", "dev" → "versiondev.txt"
|
|
77
|
+
*/
|
|
78
|
+
function getVersionFileName(majorVersion) {
|
|
79
|
+
if (majorVersion === 'dev') {
|
|
80
|
+
return 'versiondev.txt';
|
|
81
|
+
}
|
|
82
|
+
return `version${majorVersion}.txt`;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Build the version file path (blob/object key).
|
|
86
|
+
* e.g. "plugin_artifacts/myPlugin/version1.0.txt"
|
|
87
|
+
*/
|
|
88
|
+
function getVersionFilePath(pluginName, majorVersion) {
|
|
89
|
+
return `plugin_artifacts/${pluginName}/${getVersionFileName(majorVersion)}`;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build the directory prefix for a plugin.
|
|
93
|
+
* e.g. "plugin_artifacts/myPlugin/"
|
|
94
|
+
*/
|
|
95
|
+
function getPluginPrefix(pluginName) {
|
|
96
|
+
return `plugin_artifacts/${pluginName}/`;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build the directory prefix for a specific version of a plugin.
|
|
100
|
+
* e.g. "plugin_artifacts/myPlugin/1.0.5/"
|
|
101
|
+
*/
|
|
102
|
+
function getVersionPrefix(pluginName, version) {
|
|
103
|
+
return `plugin_artifacts/${pluginName}/${version}/`;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Build the full path for a specific artifact.
|
|
107
|
+
* e.g. "plugin_artifacts/myPlugin/1.0.5/foo.zip"
|
|
108
|
+
*/
|
|
109
|
+
function getArtifactPath(pluginName, version, fileName) {
|
|
110
|
+
return `plugin_artifacts/${pluginName}/${version}/${fileName}`;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=semver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@guanjinke/artifact-client",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Artifact management client and CLI for Azure Storage and Aliyun OSS",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"afm": "./dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"test": "jest",
|
|
16
|
+
"test:watch": "jest --watch",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"artifact",
|
|
21
|
+
"azure",
|
|
22
|
+
"oss",
|
|
23
|
+
"storage"
|
|
24
|
+
],
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=20"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@azure/storage-blob": "^12.24.0",
|
|
31
|
+
"ali-oss": "^6.21.0",
|
|
32
|
+
"commander": "^12.1.0",
|
|
33
|
+
"semver": "^7.6.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/jest": "^29.5.12",
|
|
37
|
+
"@types/node": "^20.14.0",
|
|
38
|
+
"@types/semver": "^7.5.8",
|
|
39
|
+
"jest": "^29.7.0",
|
|
40
|
+
"ts-jest": "^29.2.0",
|
|
41
|
+
"typescript": "^5.5.0"
|
|
42
|
+
}
|
|
43
|
+
}
|