UNPKG

@interopio/desktop-cli

Version:

CLI tool for setting up, building and packaging io.Connect Desktop projects

86 lines 3.2 kB
import { ComponentsStore } from './store'; import { Component } from '../component'; /** * Local Components Store implementation * * This store reads components from a local directory following the same structure as the S3 store. * Expected directory structure: * * componentsDirectory/ * ├── component1/ * │ ├── v1.0.0/ * │ │ ├── component1-v1.0.0-win32.zip * │ │ ├── component1-v1.0.0-darwin.dmg * │ │ └── component1-v1.0.0-darwin-arm64.dmg * │ └── v1.1.0/ * │ ├── component1-v1.1.0-win32.zip * │ └── component1-v1.1.0-darwin.dmg * └── component2/ * └── v2.0.0/ * └── component2-v2.0.0-win32.zip * * Legacy support is maintained for flat file structures in the root directory. */ export declare class LocalComponentsStore implements ComponentsStore { private logger; private componentsDirectory; constructor(componentsDirectory: string); getInfo(): string; getAll(): Promise<Component[]>; download(name: string, version: string): Promise<{ name: string; data: any; filename: string; }>; /** * Validate that the components directory exists and is accessible */ private validateDirectory; /** * Check if a file is a supported package format */ private isSupportedPackageFile; /** * Create a Component object from a single package file (legacy support) */ private createComponentFromFile; /** * Create a Component object from structured directory layout * Expected filename format: componentName-vVersion-platform.ext * Following S3 store structure: componentName/vVersion/componentName-vVersion-platform.ext */ private createStructuredComponent; /** * Scan component directory for version subdirectories * Expected structure: componentName/vX.Y.Z/componentName-vX.Y.Z-platform.ext */ private scanComponentVersions; /** * Scan version directory for component package files * Expected structure: vX.Y.Z/componentName-vX.Y.Z-platform.ext */ private scanVersionDirectory; /** * Parse component name and version from filename * Supports the format: <component>-v<version>-<platform>.<ext> * e.g. iocd-v10.0.0-darwin-arm64.dmg */ private parseFilename; /** * Detect platform based on filename format and content * Primary: Extract from <component>-v<version>-<platform>.<ext> format * Fallback: Use file extension and naming conventions */ private detectPlatform; /** * Detect platform for structured filenames following S3 store convention * Expected format: componentName-vVersion-platform.ext */ private detectPlatformFromStructuredFilename; /** * Get the latest version from a list of components with the same name * Simple string comparison - for proper semver, you'd want to use a semver library */ private getLatestVersion; /** * Get current platform string compatible with component naming */ private getCurrentPlatform; } //# sourceMappingURL=local.store.d.ts.map