zephyr-agent
Version:
Zephyr plugin agent
139 lines • 6.27 kB
text/typescript
import type { ZephyrDependency } from 'zephyr-edge-contract';
import { type Snapshot, type ZeBuildAsset, type ZeBuildAssetsMap, type ZephyrBuildTarget, type ZephyrBuildStats, type ZephyrPluginOptions } from 'zephyr-edge-contract';
import type { ZePackageJson } from '../lib/build-context/ze-package-json.type.mjs';
import { type ZeGitInfo } from '../lib/build-context/ze-util-get-git-info.mjs';
import { type ResolvedZephyrConfig } from '../lib/build-context/zephyr-config.mjs';
import { type ZeLogger } from '../lib/logging/ze-log-event.mjs';
import type { ZeApplicationConfig } from '../lib/node-persist/upload-provider-options.mjs';
import { type ZeResolvedDependency } from './resolve_remote_dependency.mjs';
import type { ZephyrEngineBuilderTypes, ZephyrEngineOptions } from './zephyr-engine.types.mjs';
export { ApplicationContext, ApplicationContextRegistry } from './application-context.mjs';
export { BuildParticipantFailedError, BuildSession, BuildSessionAbortedError, BuildSessionAssetCollisionError, BuildSessionNotReadyError, BuildSessionRollbackError, BuildSessionStateError, } from './build-session.mjs';
export type { ApplicationContextOptions, ApplicationContextRegistryLocator, BeginBuildOptions, BuildContribution, BuildParticipant, BuildParticipantRole, BuildSessionIdentity, BuildSessionFailureCallback, BuildSessionLifecycleCallback, BuildSessionPublication, BuildSessionReadiness, BuildSessionStatus, PublishedBuildContribution, ZephyrEngineBuilderTypes, ZephyrEngineOptions, } from './zephyr-engine.types.mjs';
export interface ZeApplicationProperties {
org: string;
project: string;
name: string;
version: string;
}
/** @deprecated Prefer `ZephyrBuildTarget` from `zephyr-edge-contract`. */
export type Platform = ZephyrBuildTarget | undefined;
export type DeferredZephyrEngine = {
zephyr_engine_defer: Promise<ZephyrEngine>;
zephyr_defer_create(options: ZephyrEngineOptions): void;
};
export interface ZeDependencyPair {
name: string;
version: string;
}
export interface BuildProperties {
output: string;
baseHref?: string;
}
export declare function is_zephyr_dependency_pair(dep: ZeDependencyPair | undefined | null): dep is ZeDependencyPair;
export declare function is_zephyr_resolved_dependency(dep: ZeResolvedDependency | null): dep is ZeResolvedDependency;
export interface ZeUser {
username: string;
email: string;
user_uuid: string;
jwt: string;
}
export interface ZephyrBuildHooks {
onDeployComplete?: (deploymentInfo: DeploymentInfo) => void | Promise<void>;
}
export interface DeploymentInfo {
url: string;
snapshotId: string | null;
snapshot: Snapshot;
federatedDependencies: ZeResolvedDependency[];
buildStats: ZephyrBuildStats;
}
/**
* IMPORTANT: do NOT add methods to this class, keep it lean! IMPORTANT: use `await
* ZephyrEngine.create(context)` to create an instance ZephyrEngine instance represents
* current state of a build if there are methods - they should call pure functions from
* ./internal
*/
export declare class ZephyrEngine {
npmProperties: ZePackageJson;
gitProperties: ZeGitInfo;
zephyrConfig: ResolvedZephyrConfig;
application_uid: string;
application_configuration: Promise<ZeApplicationConfig>;
applicationProperties: ZeApplicationProperties;
logger: Promise<ZeLogger>;
env: {
isCI: boolean;
target: Platform;
env?: string | undefined;
ssr?: boolean;
};
buildProperties: BuildProperties;
builder: ZephyrEngineBuilderTypes;
federated_dependencies: ZeResolvedDependency[] | null;
build_start_time: number | null;
build_id: Promise<string> | null;
snapshotId: Promise<string> | null;
hash_list: Promise<{
hash_set: Set<string>;
}> | null;
resolved_hash_list: {
hash_set: Set<string>;
} | null;
version_url: string | null;
target_urls: string[] | null;
build_stats_time: number | null;
snapshot_with_envs: Snapshot | null;
ze_env_vars: Record<string, string> | null;
ze_env_vars_hash: string | null;
worker_version: string | null;
/** Whether this engine still owns state that must be finished or rolled back. */
get hasActiveBuild(): boolean;
get zephyr_dependencies(): Record<string, ZephyrDependency>;
/** This is intentionally PRIVATE use `await ZephyrEngine.create(context)` */
private constructor();
static defer_create(): DeferredZephyrEngine;
/** Create one initialized engine and allocate its first logical build generation. */
static create(options: ZephyrEngineOptions): Promise<ZephyrEngine>;
/**
* Accept two argument to resolve remote dependencies:
*
* @param dependencyPair, Includes name and versions (the url includes localhost),
* @param platform, Atm this is React Native specific to resolve correct platform `ios`
* or `android`
*/
resolve_remote_dependencies(deps: ZeDependencyPair[], defaultLibraryType?: string): Promise<ZeResolvedDependency[] | null>;
start_new_build(): Promise<void>;
build_finished(): Promise<void>;
/** Discard every value owned by a failed/aborted logical build generation. */
build_failed(): void;
/**
* Upload one sealed logical build. This method does not finish or reset the build;
* callers must invoke build_finished explicitly (normally as
* ApplicationContext.finish).
*/
upload_assets(props: {
assetsMap: ZeBuildAssetsMap;
buildStats: ZephyrBuildStats;
mfConfig?: Pick<ZephyrPluginOptions, 'mfConfig'>['mfConfig'];
mfConfigs?: Pick<ZephyrPluginOptions, 'mfConfigs'>['mfConfigs'];
snapshotType?: 'csr' | 'ssr';
entrypoint?: string;
hooks?: ZephyrBuildHooks;
}): Promise<void>;
}
export interface UploadOptions {
snapshot: Snapshot;
assets: {
assetsMap: ZeBuildAssetsMap;
missingAssets: ZeBuildAsset[];
};
getDashData: (zephyr_engine?: ZephyrEngine) => ZephyrBuildStats;
}
export interface ZephyrDependencies {
[key: string]: string;
}
export declare function readPackageJson(root: string, zephyrConfig?: ResolvedZephyrConfig): {
zephyrDependencies?: ZephyrDependencies;
};
//# sourceMappingURL=index.d.mts.map