@guanjinke/artifact-client 1.0.0 → 1.0.2

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.
@@ -1,46 +1,20 @@
1
1
  /**
2
2
  * Compare two version strings following semver rules.
3
- * Returns negative if a < b, zero if a == b, positive if a > b.
4
- * Supports pre-release tags (e.g., 1.0.5-beta < 1.0.5).
5
3
  */
6
4
  export declare function compareVersions(a: string, b: string): number;
7
5
  /**
8
- * Sort an array of version strings by semver rules.
9
- * Default order is descending (newest first).
6
+ * Sort an array of version strings by semver rules. Default: descending.
10
7
  */
11
8
  export declare function sortVersions(versions: string[], order?: 'asc' | 'desc'): string[];
12
9
  /**
13
10
  * Extract the major.minor portion from a full semver string.
14
- * e.g. "1.0.5" → "1.0", "2.3.1-beta" → "2.3", "0.0.3" → "dev"
11
+ * e.g. "1.0.5" → "1.0", "0.0.3" → "dev"
15
12
  */
16
13
  export declare function extractMajorMinor(version: string): string;
17
- /**
18
- * Check if a version is a dev version (major === 0 and minor === 0).
19
- */
20
14
  export declare function isDevVersion(version: string): boolean;
21
- /**
22
- * Get the version file name for a given major version string.
23
- * "1.0" → "version1.0.txt", "dev" → "versiondev.txt"
24
- */
25
15
  export declare function getVersionFileName(majorVersion: string): string;
26
- /**
27
- * Build the version file path (blob/object key).
28
- * e.g. "plugin_artifacts/myPlugin/version1.0.txt"
29
- */
30
- export declare function getVersionFilePath(pluginName: string, majorVersion: string): string;
31
- /**
32
- * Build the directory prefix for a plugin.
33
- * e.g. "plugin_artifacts/myPlugin/"
34
- */
35
- export declare function getPluginPrefix(pluginName: string): string;
36
- /**
37
- * Build the directory prefix for a specific version of a plugin.
38
- * e.g. "plugin_artifacts/myPlugin/1.0.5/"
39
- */
40
- export declare function getVersionPrefix(pluginName: string, version: string): string;
41
- /**
42
- * Build the full path for a specific artifact.
43
- * e.g. "plugin_artifacts/myPlugin/1.0.5/foo.zip"
44
- */
45
- export declare function getArtifactPath(pluginName: string, version: string, fileName: string): string;
16
+ export declare function getVersionFilePath(base: string, pluginName: string, majorVersion: string): string;
17
+ export declare function getPluginPrefix(base: string, pluginName: string): string;
18
+ export declare function getVersionPrefix(base: string, pluginName: string, version: string): string;
19
+ export declare function getArtifactPath(base: string, pluginName: string, version: string, fileName: string): string;
46
20
  //# sourceMappingURL=semver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,GAAE,KAAK,GAAG,MAAe,GAC7B,MAAM,EAAE,CAGV;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAezD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIrD;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,MAAM,CAER"}
1
+ {"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,GAAE,KAAK,GAAG,MAAe,GAC7B,MAAM,EAAE,CAEV;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAczD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIrD;AAMD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/D;AAUD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3G"}
@@ -12,38 +12,23 @@ exports.getArtifactPath = getArtifactPath;
12
12
  const semver_1 = require("semver");
13
13
  /**
14
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
15
  */
18
16
  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);
17
+ return (0, semver_1.compare)(a, b);
30
18
  }
31
19
  /**
32
- * Sort an array of version strings by semver rules.
33
- * Default order is descending (newest first).
20
+ * Sort an array of version strings by semver rules. Default: descending.
34
21
  */
35
22
  function sortVersions(versions, order = 'desc') {
36
- const sorted = [...versions].sort(order === 'desc' ? semver_1.rcompare : semver_1.compare);
37
- return sorted;
23
+ return [...versions].sort(order === 'desc' ? semver_1.rcompare : semver_1.compare);
38
24
  }
39
25
  /**
40
26
  * 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"
27
+ * e.g. "1.0.5" → "1.0", "0.0.3" → "dev"
42
28
  */
43
29
  function extractMajorMinor(version) {
44
30
  const v = (0, semver_1.parse)(version);
45
31
  if (!v) {
46
- // If parsing fails, try to extract manually
47
32
  const parts = version.split('.');
48
33
  if (parts.length >= 2) {
49
34
  const maj = parseInt(parts[0], 10);
@@ -56,57 +41,35 @@ function extractMajorMinor(version) {
56
41
  }
57
42
  return isDevMajorMinor(v.major, v.minor) ? 'dev' : `${v.major}.${v.minor}`;
58
43
  }
59
- /**
60
- * Check if a version is a dev version (major === 0 and minor === 0).
61
- */
62
44
  function isDevVersion(version) {
63
45
  const v = (0, semver_1.parse)(version);
64
46
  if (!v)
65
47
  return false;
66
48
  return isDevMajorMinor(v.major, v.minor);
67
49
  }
68
- /**
69
- * Check if major=0 and minor=0 indicates a dev version.
70
- */
71
50
  function isDevMajorMinor(major, minor) {
72
51
  return major === 0 && minor === 0;
73
52
  }
74
- /**
75
- * Get the version file name for a given major version string.
76
- * "1.0" → "version1.0.txt", "dev" → "versiondev.txt"
77
- */
78
53
  function getVersionFileName(majorVersion) {
79
- if (majorVersion === 'dev') {
80
- return 'versiondev.txt';
81
- }
82
- return `version${majorVersion}.txt`;
54
+ return majorVersion === 'dev' ? 'versiondev.txt' : `version${majorVersion}.txt`;
83
55
  }
84
56
  /**
85
- * Build the version file path (blob/object key).
86
- * e.g. "plugin_artifacts/myPlugin/version1.0.txt"
57
+ * Build path helpers. All take a `base` prefix (e.g. "" or "plugin_artifacts/").
87
58
  */
88
- function getVersionFilePath(pluginName, majorVersion) {
89
- return `plugin_artifacts/${pluginName}/${getVersionFileName(majorVersion)}`;
59
+ function prefix(base, ...parts) {
60
+ const b = base ? (base.endsWith('/') ? base : base + '/') : '';
61
+ return b + parts.join('/');
90
62
  }
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}/`;
63
+ function getVersionFilePath(base, pluginName, majorVersion) {
64
+ return prefix(base, pluginName, getVersionFileName(majorVersion));
97
65
  }
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}/`;
66
+ function getPluginPrefix(base, pluginName) {
67
+ return prefix(base, pluginName) + '/';
104
68
  }
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}`;
69
+ function getVersionPrefix(base, pluginName, version) {
70
+ return prefix(base, pluginName, version) + '/';
71
+ }
72
+ function getArtifactPath(base, pluginName, version, fileName) {
73
+ return prefix(base, pluginName, version, fileName);
111
74
  }
112
75
  //# sourceMappingURL=semver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/utils/semver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guanjinke/artifact-client",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Artifact management client and CLI for Azure Storage and Aliyun OSS",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,7 +11,7 @@
11
11
  "dist/"
12
12
  ],
13
13
  "scripts": {
14
- "build": "tsc",
14
+ "build": "tsc && chmod +x dist/cli.js",
15
15
  "test": "jest",
16
16
  "test:watch": "jest --watch",
17
17
  "prepublishOnly": "npm run build"