npx-scope-finder
Version:
A tool to find executable (npx-compatible) packages within a specific npm scope
105 lines • 2.22 kB
text/typescript
//#region src/types.d.ts
interface NPMPackage {
name: string;
description?: string;
version: string;
bin?: Record<string, string>;
dependencies?: Record<string, string>;
scripts?: Record<string, string>;
keywords?: string[];
links?: {
npm?: string;
repository?: string;
homepage?: string;
};
original?: PackageInfo;
}
interface SearchResponse {
objects: Array<{
package: {
name: string;
scope: string;
version: string;
description: string;
keywords: string[];
date: string;
};
}>;
total: number;
time: string;
}
interface PackageInfo {
name: string;
"dist-tags": {
latest: string;
[tag: string]: string;
};
versions: {
[version: string]: LatestVersionInfo;
};
time?: {
created: string;
modified: string;
[version: string]: string;
};
readme?: string;
_id?: string;
_rev?: string;
}
interface LatestVersionInfo {
name: string;
version: string;
description?: string;
bin?: Record<string, string>;
scripts?: Record<string, string>;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
keywords?: string[];
repository?: {
type: string;
url: string;
};
homepage?: string;
author?: {
name?: string;
email?: string;
url?: string;
};
license?: string;
dist: {
shasum: string;
tarball: string;
integrity?: string;
fileCount?: number;
unpackedSize?: number;
"npm-signature"?: string;
};
_id?: string;
_npmVersion?: string;
_npmUser?: {
name: string;
email: string;
};
maintainers?: Array<{
name?: string;
email?: string;
url?: string;
}>;
}
type Logger = {
error: (...args: unknown[]) => void;
};
interface NpxFinderOptions {
timeout?: number;
retries?: number;
retryDelay?: number;
concurrency?: number;
maxPages?: number;
includeOriginal?: boolean;
logger?: Logger;
}
//#endregion
//#region src/index.d.ts
declare function npxFinder(scope: string, options?: NpxFinderOptions): Promise<NPMPackage[]>;
//#endregion
export { type LatestVersionInfo, type Logger, type NPMPackage, type NpxFinderOptions, type PackageInfo, type SearchResponse, npxFinder };