all-package-names
Version:
Fast lookup and iteration over all NPM package names
60 lines • 1.88 kB
TypeScript
export type HttpResponse<T> = {
statusCode: number;
body: T;
};
export type BootstrapRelease = "current" | "latest";
export type ChangesProgress = {
phase: "changes";
startSince: number;
currentSince: number;
targetSince: number;
processedChanges: number;
};
export type AllDocsProgress = {
phase: "all_docs";
processedRows: number;
syncedNames: number;
totalRows?: number;
};
export type SyncProgress = ChangesProgress | AllDocsProgress;
type ProgressOptions<T extends SyncProgress> = {
onProgress?: (progress: T) => void;
};
export declare function fetchReplicationHead(): Promise<number>;
/**
* Accumulates replication changes from the provided sequence onward.
*/
export declare function fetchChangesSince(since: number, options?: ProgressOptions<ChangesProgress>): Promise<{
since: number;
created: Set<string>;
deleted: Set<string>;
processedChanges: number;
}>;
/**
* Bootstraps the full package-name set from the replication `_all_docs` endpoint.
*
* Relevant discussion of supported replication queries:
* https://github.com/orgs/community/discussions/152515
*/
export declare function seedNamesFromAllDocs(options?: ProgressOptions<AllDocsProgress>): Promise<{
names: Set<string>;
since: number;
}>;
/**
* Seeds the local dataset from the current package version's GitHub release assets,
* falling back to `_all_docs` if those assets are unavailable or invalid.
*/
export declare function seedNamesFromReleaseAssets(options?: ProgressOptions<AllDocsProgress>): Promise<{
names: Set<string>;
since: number;
}>;
/**
* Downloads and validates a published GitHub release package.
*/
export declare function fetchReleasePackage(release: BootstrapRelease): Promise<{
version: string;
names: Set<string>;
since: number;
}>;
export {};
//# sourceMappingURL=registry.d.ts.map