102 lines
1.8 KiB
TypeScript
102 lines
1.8 KiB
TypeScript
/**
|
|
* OCI Distribution Specification specific interfaces
|
|
*/
|
|
|
|
/**
|
|
* OCI manifest structure
|
|
*/
|
|
export interface IOciManifest {
|
|
schemaVersion: number;
|
|
mediaType: string;
|
|
config: {
|
|
mediaType: string;
|
|
size: number;
|
|
digest: string;
|
|
};
|
|
layers: Array<{
|
|
mediaType: string;
|
|
size: number;
|
|
digest: string;
|
|
urls?: string[];
|
|
}>;
|
|
subject?: {
|
|
mediaType: string;
|
|
size: number;
|
|
digest: string;
|
|
};
|
|
annotations?: { [key: string]: string };
|
|
}
|
|
|
|
/**
|
|
* OCI Image Index (manifest list)
|
|
*/
|
|
export interface IOciImageIndex {
|
|
schemaVersion: number;
|
|
mediaType: string;
|
|
manifests: Array<{
|
|
mediaType: string;
|
|
size: number;
|
|
digest: string;
|
|
platform?: {
|
|
architecture: string;
|
|
os: string;
|
|
'os.version'?: string;
|
|
'os.features'?: string[];
|
|
variant?: string;
|
|
features?: string[];
|
|
};
|
|
annotations?: { [key: string]: string };
|
|
}>;
|
|
subject?: {
|
|
mediaType: string;
|
|
size: number;
|
|
digest: string;
|
|
};
|
|
annotations?: { [key: string]: string };
|
|
}
|
|
|
|
/**
|
|
* Upload session for chunked blob uploads
|
|
*/
|
|
export interface IUploadSession {
|
|
uploadId: string;
|
|
repository: string;
|
|
chunks: Buffer[];
|
|
totalSize: number;
|
|
createdAt: Date;
|
|
lastActivity: Date;
|
|
}
|
|
|
|
/**
|
|
* Tag list response
|
|
*/
|
|
export interface ITagList {
|
|
name: string;
|
|
tags: string[];
|
|
}
|
|
|
|
/**
|
|
* Referrers response
|
|
*/
|
|
export interface IReferrersResponse {
|
|
schemaVersion: number;
|
|
mediaType: string;
|
|
manifests: Array<{
|
|
mediaType: string;
|
|
size: number;
|
|
digest: string;
|
|
artifactType?: string;
|
|
annotations?: { [key: string]: string };
|
|
}>;
|
|
}
|
|
|
|
/**
|
|
* Pagination options for listing
|
|
*/
|
|
export interface IPaginationOptions {
|
|
/** Maximum number of results to return */
|
|
n?: number;
|
|
/** Last entry from previous request */
|
|
last?: string;
|
|
}
|