UNPKG

@altostra/core

Version:

Core library for shared types and logic

83 lines (82 loc) 4.46 kB
/// <reference types="node" /> import { BlueprintHelper } from "../../../blueprint/Helpers/BlueprintHelper"; import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString"; import type { NaturalNumber } from "../../../common/CustomTypes/Numerics"; import type { Logger, OperationLoggingSeverity } from "../../../common/Logging"; import type { Void } from "../../../common/Types"; import type { AxiosInstance } from 'axios'; import type { TaggedDeploymentPart } from "../../CustomTypes/TaggedDeployment"; import { Git } from "../../git"; import type { Project, ProjectId, ProjectType } from "../../Types"; import type { ErrorMapping, IdentityToken, ServiceClientConfig } from "../common"; import type { ItemSelection } from "../ItemSelection"; import { ServiceClientBase } from "../ServiceClientBase"; import type { ConfigurableServiceClientCtor } from "../ServiceClientBase/ConfigurableServiceClient"; import type { ProjectValidatingServiceClientCtor } from "../ServiceClientBase/ProjectValidatingServiceClient"; import type { Cursor, PresignedUrlsResponse, UploadBuiltProjectOptions, VersionsSummaryResponse, VersionsResponse } from "./Types"; export declare const BuildsServiceClientBase: ConfigurableServiceClientCtor<ServiceClientConfig, ProjectValidatingServiceClientCtor<typeof ServiceClientBase>>; export interface BuildsManagerOptions { axios?: AxiosInstance; endpoints: BuildEndpoints; getToken: () => Promise<IdentityToken>; logger?: Logger<OperationLoggingSeverity>; config?: ServiceClientConfig; git?: Git; customPresigning?: (projectId: string, version: TaggedDeploymentPart, partsNumbers: number, projectType?: ProjectType) => Promise<PresignedUrlsResponse>; errorMapping?: ErrorMapping; } export interface BuildEndpoints { backoffice: string; integrations: string; } export interface IBuildsManager { publish(options: PublishOptions): Promise<Void>; publishNonAltostraProject(options: PublishNonAltostraOptions): Promise<Void>; list(projectId: ItemSelection | NonEmptyString, options?: ListOptions): Promise<VersionsResponse>; getVersionsSummary(): Promise<VersionsSummaryResponse>; delete(projectId: NonEmptyString, version: TaggedDeploymentPart): Promise<Void>; } export interface PublishOptionsBase { project?: Project; version: TaggedDeploymentPart; requireCommitOnPush: boolean; } export interface PublishOptions extends PublishOptionsBase { projectDir: string; force?: boolean; initializeProject?: boolean; } export interface PublishNonAltostraOptions extends PublishOptionsBase { project: Project; packagePath: string | null; cfnTemplatePath: string; } export interface ListOptions { pageCursor?: Cursor; filter?: ListFilter; } export interface ListFilter { date?: { from?: DateInput; to?: DateInput; }; } export declare type DateInput = ConstructorParameters<typeof Date>[0]; export declare const defaultConfig: ServiceClientConfig; export declare class BuildsManager extends BuildsServiceClientBase implements IBuildsManager { #private; constructor({ axios, endpoints, getToken, logger, config, customPresigning, errorMapping, git, }: BuildsManagerOptions); publishNonAltostraProject({ project, packagePath, cfnTemplatePath, version, requireCommitOnPush, }: PublishNonAltostraOptions): Promise<Void>; publish({ projectDir, version, force, project, initializeProject, requireCommitOnPush, }: PublishOptions): Promise<Void>; list(projectIdOrSelection: ItemSelection | ProjectId, options?: ListOptions): Promise<VersionsResponse>; getVersionsSummary(): Promise<VersionsSummaryResponse>; delete(projectId: NonEmptyString, version: TaggedDeploymentPart): Promise<Void>; static packFiles(projectDir: string, helper?: BlueprintHelper, isFileIgnored?: (projectDir: string, file: string) => boolean): Promise<Buffer>; static getPartsNumberFromPackedFiles(packedFiles: null): 0; static getPartsNumberFromPackedFiles(packedFiles: Buffer): NaturalNumber; static getPartsNumberFromPackedFiles(packedFiles: Buffer | null): NaturalNumber | 0; static uploadBuiltProject({ uploadParams, cleanup, complete, concurrencyLimit, }: UploadBuiltProjectOptions): Promise<Void>; } export declare const NEXT_PAGE_QUERY_PARAM = "next-page"; export declare const FROM_DATE_FILTER_QUERY_PARAM = "from-date"; export declare const TO_DATE_FILTER_QUERY_PARAM = "to-date";