@interopio/iocd-cli 0.0.1 → 0.0.3

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.
Files changed (65) hide show
  1. package/dist/commands/components.command.d.ts.map +1 -1
  2. package/dist/commands/components.command.js +21 -2
  3. package/dist/commands/components.command.js.map +1 -1
  4. package/dist/commands/license.command.d.ts.map +1 -1
  5. package/dist/commands/license.command.js +63 -11
  6. package/dist/commands/license.command.js.map +1 -1
  7. package/dist/services/components/component.d.ts +6 -1
  8. package/dist/services/components/component.d.ts.map +1 -1
  9. package/dist/services/components/components.registry.d.ts.map +1 -1
  10. package/dist/services/components/components.registry.js +7 -0
  11. package/dist/services/components/components.registry.js.map +1 -1
  12. package/dist/services/components/components.service.d.ts +2 -5
  13. package/dist/services/components/components.service.d.ts.map +1 -1
  14. package/dist/services/components/components.service.js +8 -11
  15. package/dist/services/components/components.service.js.map +1 -1
  16. package/dist/services/components/file.helper.js +2 -2
  17. package/dist/services/components/file.helper.js.map +1 -1
  18. package/dist/services/components/platform.utils.d.ts +92 -15
  19. package/dist/services/components/platform.utils.d.ts.map +1 -1
  20. package/dist/services/components/platform.utils.js +221 -35
  21. package/dist/services/components/platform.utils.js.map +1 -1
  22. package/dist/services/components/stores/github.store.d.ts +7 -9
  23. package/dist/services/components/stores/github.store.d.ts.map +1 -1
  24. package/dist/services/components/stores/github.store.js +58 -54
  25. package/dist/services/components/stores/github.store.js.map +1 -1
  26. package/dist/services/components/stores/local.store.d.ts +2 -2
  27. package/dist/services/components/stores/local.store.d.ts.map +1 -1
  28. package/dist/services/components/stores/local.store.js +6 -2
  29. package/dist/services/components/stores/local.store.js.map +1 -1
  30. package/dist/services/components/stores/s3.store.d.ts +2 -2
  31. package/dist/services/components/stores/s3.store.d.ts.map +1 -1
  32. package/dist/services/components/stores/s3.store.js +3 -1
  33. package/dist/services/components/stores/s3.store.js.map +1 -1
  34. package/dist/services/components/stores/store.d.ts +2 -2
  35. package/dist/services/components/stores/store.d.ts.map +1 -1
  36. package/dist/services/components/version.selector.d.ts +4 -0
  37. package/dist/services/components/version.selector.d.ts.map +1 -0
  38. package/dist/services/components/version.selector.js +52 -0
  39. package/dist/services/components/version.selector.js.map +1 -0
  40. package/dist/services/config/cli.config.d.ts +8 -3
  41. package/dist/services/config/cli.config.d.ts.map +1 -1
  42. package/dist/services/config/config.service.d.ts.map +1 -1
  43. package/dist/services/config/config.service.js +7 -3
  44. package/dist/services/config/config.service.js.map +1 -1
  45. package/dist/services/create.service.d.ts +1 -1
  46. package/dist/services/create.service.d.ts.map +1 -1
  47. package/dist/services/create.service.js +18 -15
  48. package/dist/services/create.service.js.map +1 -1
  49. package/dist/services/installer/installer.service.js +1 -1
  50. package/dist/services/installer/installer.service.js.map +1 -1
  51. package/dist/services/installer/macOS.helper.js +10 -2
  52. package/dist/services/installer/macOS.helper.js.map +1 -1
  53. package/dist/services/installer/prerequisites.js +3 -3
  54. package/dist/services/installer/prerequisites.js.map +1 -1
  55. package/dist/services/license.service.d.ts +101 -3
  56. package/dist/services/license.service.d.ts.map +1 -1
  57. package/dist/services/license.service.js +166 -6
  58. package/dist/services/license.service.js.map +1 -1
  59. package/dist/services/modifications/modifications.service.d.ts.map +1 -1
  60. package/dist/services/modifications/modifications.service.js +12 -4
  61. package/dist/services/modifications/modifications.service.js.map +1 -1
  62. package/dist/templates/ioconnect-desktop/forge.config.js +14 -4
  63. package/dist/templates/ioconnect-desktop/iocd.cli.config.json +11 -2
  64. package/dist/templates/ioconnect-desktop/package.json +0 -7
  65. package/package.json +3 -1
@@ -10,10 +10,16 @@ const path_1 = require("path");
10
10
  * - Component filename parsing (both OS-specific and OS-agnostic)
11
11
  * - Current platform detection
12
12
  * - Component matching logic
13
+ * - Version parsing with build timestamp support
13
14
  *
14
- * Supports two component naming patterns:
15
- * 1. OS-specific: <name>-v<version>-<platform>.zip (e.g., myapp-v1.0.0-win32.zip)
16
- * 2. OS-agnostic: <name>-v<version>.zip (e.g., webapp-v1.0.0.zip)
15
+ * Supports component naming patterns:
16
+ * 1. OS-specific: <name>-<version>-<arch>-<platform>.ext (e.g., iocd-v10.0.0-build.123-darwin-arm64.dmg)
17
+ * 2. OS-agnostic: <name>-<version>.ext (e.g., webapp-v10.0.0-build.123.zip)
18
+ *
19
+ * Version formats supported:
20
+ * - v<X.Y.Z> (e.g., v10.0.0)
21
+ * - v<X.Y.Z>-build.<TIMESTAMP> (e.g., v10.0.0-build.20250927121929)
22
+ * - v<X.Y.Z.B> (e.g., v10.0.0.1)
17
23
  */
18
24
  class ComponentPlatformUtils {
19
25
  /**
@@ -32,14 +38,14 @@ class ComponentPlatformUtils {
32
38
  return 'darwin';
33
39
  }
34
40
  /**
35
- * Parse component information from filename;
41
+ * Parse component information from filename
36
42
  *
37
- * Supports multiple patterns:
38
- * - OS-specific: <component>-v<version>-<platform>.<ext>
39
- * - OS-agnostic: <component>-v<version>.<ext>
43
+ * Supports component patterns:
44
+ * - OS-specific: <component>-<version>-<arch>-<platform>.<ext>
45
+ * - OS-agnostic: <component>-<version>.<ext>
40
46
  *
41
47
  * @param filename The component filename to parse
42
- * @returns Parsed component info or null if parsing fails
48
+ * @returns Parsed component info
43
49
  * @throws Error if parsing fails
44
50
  */
45
51
  static parseComponentFilename(filename) {
@@ -49,45 +55,106 @@ class ComponentPlatformUtils {
49
55
  /**
50
56
  * Parse component information from a name (not filename)
51
57
  *
52
- * Supports multiple patterns:
53
- * - OS-specific: <component>-v<version>-<platform>
54
- * - OS-agnostic: <component>-v<version>
58
+ * Supports component patterns:
59
+ * - OS-specific with platform-arch: <component>-<version>-<platform>-<arch>
60
+ * - OS-specific with platform only: <component>-<version>-<platform>
61
+ * - OS-agnostic: <component>-<version>
55
62
  *
56
- * @param filename The component filename to parse
57
- * @returns Parsed component info or null if parsing fails
63
+ * @param name The component name to parse
64
+ * @returns Parsed component info
58
65
  * @throws Error if parsing fails
59
66
  */
60
67
  static parseComponentName(name) {
61
- // Pattern 1: OS-specific format <component>-v<version>-<platform>
62
- // e.g., iocd-v10.0.0-darwin-arm64
63
- const osSpecificPattern = /^(.+)-v(\d+\.\d+\.\d+.*?)-(.+)$/;
64
- const osSpecificMatch = name.match(osSpecificPattern);
65
- if (osSpecificMatch) {
66
- let platform = 'darwin';
67
- const platformPart = osSpecificMatch[3].toLowerCase();
68
- if (platformPart.includes('darwin') || platformPart === 'darwin') {
69
- platform = 'darwin';
68
+ // Pattern 1: OS-specific format with platform-arch order: <component>-<version>[-<platform>-<arch> OR .<platform>-<arch>]
69
+ // Examples:
70
+ // - iocd-v10.0.1-build.20250827150311-win32-x64 (dash separated)
71
+ // - iocd-v10.0.0-build.20250927121929.darwin-arm64 (dot separated after build)
72
+ // Must have EXACTLY 4 parts: component, version, platform, arch
73
+ const osSpecificPlatformArchPattern = /^(.+)-(v\d+\.\d+\.\d+(?:\.\d+)?(?:-build\.\d+)?)[\.-]([^-]+)-([^-.]+)$/;
74
+ const osSpecificPlatformArchMatch = name.match(osSpecificPlatformArchPattern);
75
+ if (osSpecificPlatformArchMatch) {
76
+ const [, componentName, version, platformPart, arch] = osSpecificPlatformArchMatch;
77
+ // Validate that this is actually a 4-part pattern by checking if arch looks like an architecture
78
+ const validArchs = ['x64', 'x86', 'arm64', 'ia32', 'arm'];
79
+ if (!validArchs.includes(arch.toLowerCase())) {
80
+ // This might be a platform-only pattern that got matched incorrectly, skip to next pattern
81
+ // Fall through to Pattern 2
70
82
  }
71
- else if (platformPart.includes('win32') || platformPart === 'win32') {
72
- platform = 'win32';
83
+ else {
84
+ const versionInfo = this.parseVersionString(version);
85
+ // Map platform names that might not match our enum exactly
86
+ let platform;
87
+ if (platformPart === 'win32' || platformPart.startsWith('win')) {
88
+ platform = 'win32';
89
+ }
90
+ else if (platformPart === 'darwin' || platformPart.startsWith('mac') || platformPart.startsWith('osx')) {
91
+ platform = 'darwin';
92
+ }
93
+ else {
94
+ platform = platformPart;
95
+ }
96
+ const result = {
97
+ name: componentName,
98
+ version: version,
99
+ baseVersion: versionInfo.baseVersion,
100
+ isOsSpecific: true,
101
+ platform: platform,
102
+ arch: arch
103
+ };
104
+ if (versionInfo.buildInfo) {
105
+ result.buildInfo = versionInfo.buildInfo;
106
+ }
107
+ if (versionInfo.buildNumber) {
108
+ result.buildNumber = versionInfo.buildNumber;
109
+ }
110
+ return result;
73
111
  }
74
- return {
75
- name: osSpecificMatch[1],
76
- version: osSpecificMatch[2],
112
+ }
113
+ // Pattern 2: OS-specific format with platform only <component>-<version>[-<platform> OR .<platform>]
114
+ // Examples:
115
+ // - bbgv2-v2.0.0.1-win32 (dash separated)
116
+ // - myapp-v1.0.0-build.123-darwin (dash separated with build)
117
+ // - myapp-v1.0.0-build.123.darwin (dot separated after build)
118
+ const osSpecificPlatformOnlyPattern = /^(.+)-(v\d+\.\d+\.\d+(?:\.\d+)?(?:-build\.\d+)?)[\.-](darwin|win32)$/;
119
+ const osSpecificPlatformOnlyMatch = name.match(osSpecificPlatformOnlyPattern);
120
+ if (osSpecificPlatformOnlyMatch) {
121
+ const [, componentName, version, platform] = osSpecificPlatformOnlyMatch;
122
+ const versionInfo = this.parseVersionString(version);
123
+ const result = {
124
+ name: componentName,
125
+ version: version,
126
+ baseVersion: versionInfo.baseVersion,
77
127
  isOsSpecific: true,
78
128
  platform: platform
79
129
  };
130
+ if (versionInfo.buildInfo) {
131
+ result.buildInfo = versionInfo.buildInfo;
132
+ }
133
+ if (versionInfo.buildNumber) {
134
+ result.buildNumber = versionInfo.buildNumber;
135
+ }
136
+ return result;
80
137
  }
81
- // Pattern 2: OS-agnostic format <component>-v<version>
82
- // e.g., webapp-v1.0.0
83
- const osAgnosticPattern = /^(.+)-v(\d+\.\d+\.\d+.*)$/;
138
+ // Pattern 3: OS-agnostic format <component>-<version>
139
+ // e.g., webapp-v10.0.0-build.123 or webapp-v10.0.0
140
+ const osAgnosticPattern = /^(.+)-(v\d+\.\d+\.\d+(?:\.\d+)?(?:-build\.\d+)?)$/;
84
141
  const osAgnosticMatch = name.match(osAgnosticPattern);
85
142
  if (osAgnosticMatch) {
86
- return {
87
- name: osAgnosticMatch[1],
88
- version: osAgnosticMatch[2],
143
+ const [, componentName, version] = osAgnosticMatch;
144
+ const versionInfo = this.parseVersionString(version);
145
+ const result = {
146
+ name: componentName,
147
+ version: version,
148
+ baseVersion: versionInfo.baseVersion,
89
149
  isOsSpecific: false
90
150
  };
151
+ if (versionInfo.buildInfo) {
152
+ result.buildInfo = versionInfo.buildInfo;
153
+ }
154
+ if (versionInfo.buildNumber) {
155
+ result.buildNumber = versionInfo.buildNumber;
156
+ }
157
+ return result;
91
158
  }
92
159
  throw new Error(`${name} does not match expected component patterns.`);
93
160
  }
@@ -130,8 +197,127 @@ class ComponentPlatformUtils {
130
197
  return supportedExtensions.some(ext => lowerFilename.endsWith(ext));
131
198
  }
132
199
  /**
133
- * Compare two version strings for sorting (simple lexicographic comparison)
134
- * For proper semantic versioning, consider using a semver library
200
+ * Parse version string to extract base version and build information
201
+ *
202
+ * @param version Version string (e.g., "v10.0.0-build.20250927121929")
203
+ * @returns Parsed version info
204
+ */
205
+ static parseVersionString(version) {
206
+ // Remove 'v' prefix if present
207
+ const cleanVersion = version.startsWith('v') ? version.substring(1) : version;
208
+ // Check for build suffix
209
+ const buildMatch = cleanVersion.match(/^(\d+\.\d+\.\d+(?:\.\d+)?)-build\.(\d+)$/);
210
+ if (buildMatch) {
211
+ return {
212
+ baseVersion: buildMatch[1],
213
+ buildInfo: `build.${buildMatch[2]}`,
214
+ buildNumber: Number(buildMatch[2]),
215
+ timestamp: buildMatch[2]
216
+ };
217
+ }
218
+ // No build suffix
219
+ return {
220
+ baseVersion: cleanVersion
221
+ };
222
+ }
223
+ /**
224
+ * Parse platform part to extract platform and architecture
225
+ *
226
+ * @param platformPart Platform string (e.g., "darwin-arm64", "win32", "darwin")
227
+ * @returns Parsed platform info
228
+ */
229
+ static parsePlatformPart(platformPart) {
230
+ const parts = platformPart.toLowerCase().split('-');
231
+ if (parts.length === 1) {
232
+ // Simple platform (e.g., "darwin", "win32")
233
+ const platform = parts[0];
234
+ if (platform === 'darwin' || platform === 'win32') {
235
+ return { platform: platform };
236
+ }
237
+ }
238
+ else if (parts.length === 2) {
239
+ // Platform with arch (e.g., "darwin-arm64", "win32-x64")
240
+ const [platform, arch] = parts;
241
+ if (platform === 'darwin' || platform === 'win32') {
242
+ return {
243
+ platform: platform,
244
+ arch: arch
245
+ };
246
+ }
247
+ }
248
+ throw new Error(`Unable to parse platform part: ${platformPart}`);
249
+ }
250
+ /**
251
+ * Normalize version string by removing build suffix
252
+ *
253
+ * @param version Version string
254
+ * @returns Base version without build info
255
+ */
256
+ static normalizeVersion(version) {
257
+ return this.parseVersionString(version).baseVersion;
258
+ }
259
+ /**
260
+ * Compare two version strings with build timestamp support
261
+ * Priority: non-build > newer build > older build
262
+ *
263
+ * @param a First version string
264
+ * @param b Second version string
265
+ * @returns -1 if a < b, 1 if a > b, 0 if equal
266
+ */
267
+ static compareVersionsWithBuild(a, b) {
268
+ if (a === 'latest' && b === 'latest')
269
+ return 0;
270
+ if (a === 'latest')
271
+ return 1;
272
+ if (b === 'latest')
273
+ return -1;
274
+ const aInfo = this.parseVersionString(a);
275
+ const bInfo = this.parseVersionString(b);
276
+ // First compare base versions
277
+ const baseComparison = this.compareSemanticVersions(aInfo.baseVersion, bInfo.baseVersion);
278
+ if (baseComparison !== 0) {
279
+ return baseComparison;
280
+ }
281
+ // Base versions are equal, now consider build info
282
+ // Non-build versions are preferred over build versions
283
+ if (!aInfo.buildInfo && !bInfo.buildInfo)
284
+ return 0;
285
+ if (!aInfo.buildInfo && bInfo.buildInfo)
286
+ return 1; // a preferred (no build)
287
+ if (aInfo.buildInfo && !bInfo.buildInfo)
288
+ return -1; // b preferred (no build)
289
+ // Both have build info, compare timestamps (higher is newer)
290
+ if (aInfo.timestamp && bInfo.timestamp) {
291
+ const aTimestamp = parseInt(aInfo.timestamp);
292
+ const bTimestamp = parseInt(bInfo.timestamp);
293
+ return aTimestamp > bTimestamp ? 1 : aTimestamp < bTimestamp ? -1 : 0;
294
+ }
295
+ return 0;
296
+ }
297
+ /**
298
+ * Compare semantic version strings (X.Y.Z or X.Y.Z.B)
299
+ *
300
+ * @param a First version
301
+ * @param b Second version
302
+ * @returns -1 if a < b, 1 if a > b, 0 if equal
303
+ */
304
+ static compareSemanticVersions(a, b) {
305
+ const aParts = a.split('.').map(Number);
306
+ const bParts = b.split('.').map(Number);
307
+ const maxLength = Math.max(aParts.length, bParts.length);
308
+ for (let i = 0; i < maxLength; i++) {
309
+ const aPart = aParts[i] || 0;
310
+ const bPart = bParts[i] || 0;
311
+ if (aPart > bPart)
312
+ return 1;
313
+ if (aPart < bPart)
314
+ return -1;
315
+ }
316
+ return 0;
317
+ }
318
+ /**
319
+ * Compare two version strings for sorting (backwards compatibility)
320
+ * For new build-aware comparison, use compareVersionsWithBuild()
135
321
  *
136
322
  * @param a First version string
137
323
  * @param b Second version string
@@ -1 +1 @@
1
- {"version":3,"file":"platform.utils.js","sourceRoot":"","sources":["../../../src/services/components/platform.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.utils.js","sourceRoot":"","sources":["../../../src/services/components/platform.utils.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { Component } from "../component";
1
+ import { ComponentWithVersion } from "../component";
2
2
  import { ComponentsStore } from "./store";
3
3
  export declare class GitHubComponentsStore implements ComponentsStore {
4
4
  private baseUrl;
5
- private getByTagUrl;
5
+ private usePrereleases;
6
6
  private logger;
7
- constructor(repo?: string);
8
- getAll(): Promise<Component[]>;
7
+ private cachedReleases;
8
+ constructor(repo?: string, usePrereleases?: boolean);
9
+ getAll(): Promise<ComponentWithVersion[]>;
9
10
  download(name: string, version: string): Promise<{
10
11
  name: string;
11
12
  data: any;
@@ -15,13 +16,10 @@ export declare class GitHubComponentsStore implements ComponentsStore {
15
16
  /**
16
17
  * Find a specific release by component name and version
17
18
  */
18
- private findRelease;
19
- /**
20
- * Find the appropriate asset for the current platform
21
- */
22
- private findAssetForPlatform;
19
+ private findComponent;
23
20
  /**
24
21
  * Get all releases without parsing them into components
22
+ * Will filter out pre-releases if usePrereleases is false
25
23
  */
26
24
  private getAllReleases;
27
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"github.store.d.ts","sourceRoot":"","sources":["../../../../src/services/components/stores/github.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAsB1C,qBAAa,qBAAsB,YAAW,eAAe;IACzD,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,MAAM,CAAwB;gBAE1B,IAAI,GAAE,MAA8C;IAK1D,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAM9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA8B9F,OAAO;IAId;;OAEG;YACW,WAAW;IAmCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;YACW,cAAc;IA+B5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgBtB,+DAA+D;IAC/D,OAAO,CAAC,aAAa;CAoBxB"}
1
+ {"version":3,"file":"github.store.d.ts","sourceRoot":"","sources":["../../../../src/services/components/stores/github.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwB1C,qBAAa,qBAAsB,YAAW,eAAe;IACzD,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,cAAc,CAAqC;gBAE/C,IAAI,GAAE,MAA8C,EAAE,cAAc,GAAE,OAAe;IAK3F,MAAM,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAMzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA6B9F,OAAO;IAKd;;OAEG;YACW,aAAa;IAmC3B;;;OAGG;YACW,cAAc;IA2C5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgBtB,+DAA+D;IAC/D,OAAO,CAAC,aAAa;CA6BxB"}
@@ -4,17 +4,19 @@ exports.GitHubComponentsStore = void 0;
4
4
  const error_handler_1 = require("../../../utils/error.handler");
5
5
  const logger_1 = require("../../../utils/logger");
6
6
  const platform_utils_1 = require("../platform.utils");
7
+ const version_selector_1 = require("../version.selector");
7
8
  ;
8
9
  // The github release package name is in format {{component}}-{{version}}
9
10
  // each release has multiple assets; each asset can be platform specific
10
11
  // each release has a tag the same as the release name; this can be used to get a specific release
11
12
  class GitHubComponentsStore {
12
13
  baseUrl = '';
13
- getByTagUrl = '';
14
+ usePrereleases = false;
14
15
  logger = logger_1.Logger.getInstance();
15
- constructor(repo = "interopio/desktop-releases/releases") {
16
+ cachedReleases = null;
17
+ constructor(repo = "interopio/desktop-releases/releases", usePrereleases = false) {
16
18
  this.baseUrl = `https://api.github.com/repos/${repo}`;
17
- this.getByTagUrl = `${this.baseUrl}/tags/`;
19
+ this.usePrereleases = usePrereleases;
18
20
  }
19
21
  async getAll() {
20
22
  const allReleases = await this.getAllReleases();
@@ -22,77 +24,65 @@ class GitHubComponentsStore {
22
24
  }
23
25
  async download(name, version) {
24
26
  // Find the specific release and asset for this component
25
- const targetRelease = await this.findRelease(name, version);
26
- const asset = this.findAssetForPlatform(targetRelease, platform_utils_1.ComponentPlatformUtils.getCurrentPlatform());
27
- if (!asset) {
28
- throw new Error(`No asset found for component in ${name}@${version} on platform '${platform_utils_1.ComponentPlatformUtils.getCurrentPlatform()}'`);
27
+ const targetComponent = await this.findComponent(name, version);
28
+ if (!targetComponent) {
29
+ throw new Error(`No component found for ${name}@${version}`);
29
30
  }
30
31
  // Download the asset
31
- this.logger.info(`Downloading ${asset.name} from ${asset.browser_download_url}`);
32
- const response = await fetch(asset.browser_download_url);
32
+ this.logger.debug(`Downloading ${targetComponent.name} from ${targetComponent.downloadUrl}`);
33
+ const response = await fetch(targetComponent.downloadUrl);
33
34
  if (!response.ok) {
34
35
  throw new Error(`Failed to download asset: ${response.status} ${response.statusText}`);
35
36
  }
36
37
  // Get the data as buffer
37
38
  const buffer = await response.arrayBuffer();
38
- this.logger.info(`Downloaded ${name}@${version || 'latest'} (${asset.name}) successfully!`);
39
+ this.logger.info(`Downloaded ${name}@${version || 'latest'} (${targetComponent.name}) successfully!`);
39
40
  return {
40
41
  name: name,
41
42
  data: new Uint8Array(buffer),
42
- filename: asset.name
43
+ filename: targetComponent.filename
43
44
  };
44
45
  }
45
46
  getInfo() {
46
- return `GitHub Releases Store: ${this.baseUrl}`;
47
+ const prereleaseStatus = this.usePrereleases ? "including pre-releases" : "stable releases only";
48
+ return `GitHub Releases Store: ${this.baseUrl} (${prereleaseStatus})`;
47
49
  }
48
50
  /**
49
51
  * Find a specific release by component name and version
50
52
  */
51
- async findRelease(componentName, version) {
52
- if (version === 'latest') {
53
- // If no version specified, find the latest release for this component
54
- const allReleases = await this.getAllReleases();
55
- const componentReleases = allReleases.filter(release => release.tag_name.startsWith(`${componentName}-v`));
56
- if (componentReleases.length === 0) {
57
- throw new Error(`No releases found for component '${componentName}'`);
58
- }
59
- // Return the most recent release (first in the list)
60
- return componentReleases[0];
53
+ async findComponent(componentName, version) {
54
+ // If no version specified, find the latest release for this component
55
+ const allReleases = await this.getAllReleases();
56
+ // filter out by component name
57
+ let componentReleases = allReleases.filter(release => release.tag_name.startsWith(`${componentName}-v`));
58
+ if (componentReleases.length === 0) {
59
+ const prereleaseNote = this.usePrereleases ? "" : " (pre-releases excluded - set usePrereleases: true to include them)";
60
+ throw new Error(`No releases found for component '${componentName}'${prereleaseNote}`);
61
61
  }
62
- else {
63
- // If version is specified, look for exact match
64
- const targetTag = `${componentName}-v${version}`;
65
- const response = await fetch(`${this.getByTagUrl}${targetTag}`);
66
- if (response.ok) {
67
- return await response.json();
68
- }
69
- throw new error_handler_1.CLIError(`Release not found for ${componentName} v${version} (was looking for tag: ${targetTag})`, {
70
- suggestions: [
71
- `You are trying to install ${componentName}@${version} - check that the component name and version are correct`,
72
- `Use iocd components browse" to see available components and versions`
73
- ]
74
- });
62
+ // filter out by platform
63
+ let components = this.parseReleases(componentReleases);
64
+ const selectedComponent = (0, version_selector_1.selectVersion)(version, components);
65
+ if (selectedComponent) {
66
+ this.logger.info(`Selected component: ${selectedComponent.name} ${selectedComponent.fullVersion} for platform ${selectedComponent.platform} ${selectedComponent.arch || ''}`);
67
+ return selectedComponent;
75
68
  }
76
- }
77
- /**
78
- * Find the appropriate asset for the current platform
79
- */
80
- findAssetForPlatform(release, platform) {
81
- this.logger.debug(`Finding asset for platform '${platform}' in release '${release.name}'. Assets available: ${release.assets.map(a => a.name).join(', ')}`);
82
- // Filter assets that match the current platform or are OS-agnostic
83
- const platformAssets = release.assets.filter(asset => {
84
- return platform_utils_1.ComponentPlatformUtils.matchesCurrentPlatform(asset.name);
69
+ throw new error_handler_1.CLIError(`Component not found for ${componentName}@${version})`, {
70
+ suggestions: [
71
+ `You are trying to install ${componentName}@${version} - check that the component name and version are correct`,
72
+ `Use iocd components browse" to see available components and versions`
73
+ ]
85
74
  });
86
- if (platformAssets.length === 0) {
87
- return null;
88
- }
89
- // Prefer more specific platform matches (the utility handles this internally)
90
- return platformAssets[0];
91
75
  }
92
76
  /**
93
77
  * Get all releases without parsing them into components
78
+ * Will filter out pre-releases if usePrereleases is false
94
79
  */
95
80
  async getAllReleases() {
81
+ if (this.cachedReleases) {
82
+ this.logger.debug(`Using cached releases from GitHub`);
83
+ return this.cachedReleases;
84
+ }
85
+ this.logger.debug(`Fetching all releases from GitHub...`);
96
86
  const allReleases = [];
97
87
  let nextUrl = `${this.baseUrl}?per_page=100&page=1`;
98
88
  while (nextUrl) {
@@ -112,7 +102,12 @@ class GitHubComponentsStore {
112
102
  break;
113
103
  }
114
104
  }
115
- return allReleases;
105
+ // Filter out pre-releases if usePrereleases is false
106
+ const filteredReleases = this.usePrereleases
107
+ ? allReleases
108
+ : allReleases.filter(release => !release.prerelease);
109
+ this.cachedReleases = filteredReleases;
110
+ return filteredReleases;
116
111
  }
117
112
  /**
118
113
  * Extract the next page URL from the Link header
@@ -133,16 +128,25 @@ class GitHubComponentsStore {
133
128
  }
134
129
  /** Parse GitHub release information into component metadata */
135
130
  parseReleases(releases) {
131
+ this.logger.debug(`Parsing ${releases.length} releases into components...`);
136
132
  const components = [];
137
133
  for (const release of releases) {
138
134
  try {
139
- const { name, version, platform } = platform_utils_1.ComponentPlatformUtils.parseComponentName(release.tag_name);
135
+ this.logger.debug(`Processing release: ${release.name} (tag: ${release.tag_name})`);
136
+ const { name, baseVersion, version, buildNumber, platform, arch } = platform_utils_1.ComponentPlatformUtils.parseComponentName(release.tag_name);
140
137
  for (const asset of release.assets) {
138
+ this.logger.debug(` Found asset: ${asset.name}`);
139
+ const assetInfo = platform_utils_1.ComponentPlatformUtils.parseComponentFilename(asset.name);
141
140
  components.push({
142
141
  name,
143
- version,
144
- platform: platform || platform_utils_1.ComponentPlatformUtils.getCurrentPlatform(),
145
- downloadUrl: asset.browser_download_url
142
+ version: baseVersion,
143
+ buildNumber: buildNumber,
144
+ fullVersion: version,
145
+ platform: assetInfo.platform || platform || platform_utils_1.ComponentPlatformUtils.getCurrentPlatform(),
146
+ arch: assetInfo.arch || arch || process.arch,
147
+ downloadUrl: asset.browser_download_url,
148
+ filename: asset.name,
149
+ prerelease: release.prerelease
146
150
  });
147
151
  }
148
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github.store.js","sourceRoot":"","sources":["../../../../src/services/components/stores/github.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.store.js","sourceRoot":"","sources":["../../../../src/services/components/stores/github.store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ComponentsStore } from './store';
2
- import { Component } from '../component';
2
+ import { ComponentWithVersion } from '../component';
3
3
  /**
4
4
  * Local Components Store implementation
5
5
  *
@@ -26,7 +26,7 @@ export declare class LocalComponentsStore implements ComponentsStore {
26
26
  private componentsDirectory;
27
27
  constructor(componentsDirectory: string);
28
28
  getInfo(): string;
29
- getAll(): Promise<Component[]>;
29
+ getAll(): Promise<ComponentWithVersion[]>;
30
30
  download(name: string, version: string): Promise<{
31
31
  name: string;
32
32
  data: any;
@@ -1 +1 @@
1
- {"version":3,"file":"local.store.d.ts","sourceRoot":"","sources":["../../../../src/services/components/stores/local.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IACxD,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,mBAAmB,CAAS;gBAExB,mBAAmB,EAAE,MAAM;IAKvC,OAAO,IAAI,MAAM;IAIX,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAmD9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA4ErG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;YACW,uBAAuB;IAyBrC;;;;OAIG;YACW,yBAAyB;IAyBvC;;;OAGG;YACW,qBAAqB;IAwCnC;;;OAGG;YACW,oBAAoB;IAiClC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAW3B"}
1
+ {"version":3,"file":"local.store.d.ts","sourceRoot":"","sources":["../../../../src/services/components/stores/local.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IACxD,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,mBAAmB,CAAS;gBAExB,mBAAmB,EAAE,MAAM;IAKvC,OAAO,IAAI,MAAM;IAIX,MAAM,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmDzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA4ErG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;YACW,uBAAuB;IA2BrC;;;;OAIG;YACW,yBAAyB;IA2BvC;;;OAGG;YACW,qBAAqB;IAwCnC;;;OAGG;YACW,oBAAoB;IAiClC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAW3B"}
@@ -179,7 +179,9 @@ class LocalComponentsStore {
179
179
  name: parsed.name,
180
180
  version: parsed.version,
181
181
  platform: parsed.platform || platform_utils_1.ComponentPlatformUtils.getCurrentPlatform(),
182
- downloadUrl: filePath // Store file path as download URL for local components
182
+ downloadUrl: filePath, // Store file path as download URL for local components
183
+ filename: filename,
184
+ prerelease: false // Legacy files are assumed stable
183
185
  };
184
186
  this.logger.debug(`Created component from file: ${component.name}@${component.version} (${component.platform})`);
185
187
  return component;
@@ -206,7 +208,9 @@ class LocalComponentsStore {
206
208
  name: componentName,
207
209
  version: version,
208
210
  platform: platform || platform_utils_1.ComponentPlatformUtils.getCurrentPlatform(),
209
- downloadUrl: filePath // Store file path as download URL for local components
211
+ downloadUrl: filePath,
212
+ filename: filename,
213
+ prerelease: false // Structured local files are assumed stable
210
214
  };
211
215
  this.logger.debug(`Created structured component: ${component.name}@${component.version} (${component.platform})`);
212
216
  return component;