@shockpkg/core
Version:
shockpkg core
301 lines (300 loc) • 5.74 kB
TypeScript
/// <reference types="node" />
import { Readable } from 'stream';
import request from 'request';
import { Package } from './package';
export declare type PackageLike = Package | string;
export declare type OnData = (data: string | Buffer) => any;
export declare type OnResponse = (response: request.Response) => any;
export interface IPackageInstallBefore {
/**
* Package instance.
*/
package: Package;
/**
* Install method.
*/
method: string;
}
export interface IPackageInstallAfter {
/**
* Package instance.
*/
package: Package;
/**
* Install method.
*/
method: string;
}
export interface IPackageInstallCurrent {
/**
* Package instance.
*/
package: Package;
/**
* Install method.
*/
method: string;
}
export interface IPackageDownloadBefore {
/**
* Package instance.
*/
package: Package;
}
export interface IPackageDownloadAfter {
/**
* Package instance.
*/
package: Package;
}
export interface IPackageDownloadProgress {
/**
* Package instance.
*/
package: Package;
/**
* Progress total.
*/
total: number;
/**
* Progress amount.
*/
amount: number;
}
export interface IPackageStreamBefore {
/**
* Package instance.
*/
package: Package;
}
export interface IPackageStreamAfter {
/**
* Package instance.
*/
package: Package;
}
export interface IPackageStreamProgress {
/**
* Package instance.
*/
package: Package;
/**
* Progress total.
*/
total: number;
/**
* Progress amount.
*/
amount: number;
}
export interface IPackageExtractBefore {
/**
* Package instance.
*/
package: Package;
}
export interface IPackageExtractAfter {
/**
* Package instance.
*/
package: Package;
}
export interface IPackageExtractProgress {
/**
* Package instance.
*/
package: Package;
/**
* Progress total.
*/
total: number;
/**
* Progress amount.
*/
amount: number;
}
export interface IPackageCleanupBefore {
/**
* Package name.
*/
package: string;
}
export interface IPackageCleanupAfter {
/**
* Package name.
*/
package: string;
/**
* Package removed.
*/
removed: boolean;
}
export interface IPackageInstalled {
/**
* Package installed.
*/
package: Package;
/**
* List of packages processed.
*/
installed: Package[];
}
export interface IPackageRemovedObsolete {
/**
* Package removed.
*/
package: string;
/**
* Removed or already removed.
*/
removed: boolean;
}
export interface IPackageRemovedOutdated {
/**
* Package removed.
*/
package: Package;
/**
* Removed or already removed.
*/
removed: boolean;
}
export interface IPackageUpdated {
/**
* Package name.
*/
name: string;
/**
* File name.
*/
file: string;
/**
* File size.
*/
size: number;
/**
* SHA256 hash of the file contents.
*/
sha256: string;
}
export declare type IRequestOptions = (request.UrlOptions & request.CoreOptions) | (request.UriOptions & request.CoreOptions);
export declare type IRequestInstance = request.RequestAPI<request.Request, request.CoreOptions, request.RequiredUriUrl>;
export declare type IRequestDefaults = request.CoreOptions;
export declare type IRequestCallback = request.RequestCallback;
export declare type IRequestStream = request.Request;
export declare type IRequestResponse = request.Response;
export interface IRequestPromiseValue {
/**
* Request stream.
*/
stream: IRequestStream;
/**
* Request response.
*/
response: IRequestResponse;
/**
* Request body.
*/
body: any;
}
export interface IZipItterEntry {
/**
* Path.
*/
path: string;
/**
* Is directory.
*/
dir: boolean;
/**
* CRC32.
*/
crc32: number;
/**
* Size compressed.
*/
sizeC: number;
/**
* Size decompressed.
*/
sizeD: number;
/**
* Stream contents (does not wait for it to be closed).
*/
stream(): Promise<Readable>;
}
export declare type ZipItter = (info: IZipItterEntry) => Promise<boolean>;
export declare type ZipStreamer = (start: number, end: number) => Readable;
export interface IPackageReceipt {
/**
* Package name.
*/
name: string;
/**
* File name.
*/
file: string;
/**
* File size.
*/
size: number;
/**
* SHA256 hash of the file contents.
*/
sha256: string;
/**
* Source, URL for root or file path for children.
*/
source: string;
}
export interface IPackagesListPackage {
/**
* Package name.
*/
name: string;
/**
* File name.
*/
file: string;
/**
* File size.
*/
size: number;
/**
* SHA256 hash of the file contents.
*/
sha256: string;
/**
* Source, URL for root or file path for children.
*/
source: string;
/**
* Optional child package list.
*/
packages?: IPackagesListPackage[];
}
export interface IPackagesList {
/**
* Format version.
*/
format: string;
/**
* Package list.
*/
packages: IPackagesListPackage[];
}
export declare type HashEncoding = 'hex' | 'base64';
export interface IHash {
/**
* Hash algorithm.
*/
algorithm: string;
/**
* Hash encoding.
*/
encoding: HashEncoding;
/**
* Digest value.
*/
digest: string;
}