@remcostoeten/fync
Version:
Unified TypeScript library for 9 popular APIs with consistent functional architecture
217 lines • 5.51 kB
TypeScript
import type { TBaseEntity } from "../../core/types";
import type { TNpmBugs, TNpmMaintainer, TNpmPerson, TNpmRepository } from "./npm-common";
type TNpmPackageVersion = {
_id: string;
_rev: string;
name: string;
version: string;
description?: string;
keywords?: string[];
homepage?: string;
license?: string;
author?: TNpmPerson;
contributors?: TNpmPerson[];
files: string[];
main?: string;
bin?: Record<string, string>;
man?: string | string[];
directories?: {
lib?: string;
bin?: string;
man?: string;
test?: string;
example?: string;
};
repository?: TNpmRepository;
scripts?: Record<string, string>;
config?: Record<string, any>;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
peerDependencies?: Record<string, string>;
optionalDependencies?: Record<string, string>;
engines?: Record<string, string>;
os?: string[];
cpu?: string[];
preferGlobal?: boolean;
private?: boolean;
publishConfig?: Record<string, any>;
dist: {
shasum: string;
tarball: string;
integrity?: string;
unpackedSize?: number;
npmSignature?: string;
signatures?: Array<{
keyid: string;
sig: string;
}>;
fileCount?: number;
};
gitHead?: string;
deprecated?: string;
hasShrinkwrap?: boolean;
bugs?: TNpmBugs;
_shasum: string;
_resolved?: string;
_integrity?: string;
_from?: string;
};
type TNpmPackageInfo = TBaseEntity<string> & {
_id: string;
_rev: string;
name: string;
description?: string;
"dist-tags": Record<string, string>;
versions: Record<string, TNpmPackageVersion>;
maintainers: TNpmMaintainer[];
time: Record<string, string>;
author?: TNpmPerson;
repository?: TNpmRepository;
users?: Record<string, boolean>;
homepage?: string;
keywords?: string[];
contributors?: TNpmPerson[];
bugs?: TNpmBugs;
license?: string;
readme?: string;
readmeFilename?: string;
};
type TNpmSearchResult = {
package: {
name: string;
scope?: string;
version: string;
description?: string;
keywords?: string[];
date: string;
links: {
npm?: string;
homepage?: string;
repository?: string;
bugs?: string;
};
author?: TNpmPerson;
publisher: TNpmPerson;
maintainers: TNpmMaintainer[];
};
score: {
final: number;
detail: {
quality: number;
popularity: number;
maintenance: number;
};
};
searchScore: number;
flags?: {
unstable?: boolean;
};
};
type TNpmSearchResponse = {
objects: TNpmSearchResult[];
total: number;
time: string;
};
type TNpmDownloadsPoint = TBaseEntity<string> & {
downloads: number;
day: string;
};
type TNpmDownloadsResponse = TBaseEntity<string> & {
downloads: TNpmDownloadsPoint[];
start: string;
end: string;
package: string;
};
type TNpmDownloadCount = TBaseEntity<string> & {
downloads: number;
start: string;
end: string;
package: string;
};
type TNpmUser = TBaseEntity<string> & {
_id: string;
_rev: string;
name: string;
email?: string;
fullname?: string;
homepage?: string;
freenode?: string;
twitter?: string;
github?: string;
created: string;
updated: string;
};
type TNpmOrganization = TBaseEntity<string> & {
_id: string;
_rev: string;
name: string;
description?: string;
size: number;
created: string;
updated: string;
};
type TNpmVulnerability = TBaseEntity<string> & {
id: number;
title: string;
module_name: string;
publish_date: string;
update_date: string;
author: TNpmPerson;
vulnerable_versions: string;
patched_versions: string;
overview: string;
recommendation: string;
references: string[];
access: string;
severity: string;
cwe: string;
cves: string[];
};
type TNpmAuditResponse = {
actions: {
action: string;
module: string;
target: string;
isMajor?: boolean;
resolves: TNpmVulnerability[];
}[];
advisories: Record<string, TNpmVulnerability>;
metas: {
vulnerabilities: {
info: number;
low: number;
moderate: number;
high: number;
critical: number;
};
dependencies: number;
devDependencies: number;
optionalDependencies: number;
totalDependencies: number;
};
runId: string;
};
type TNpmPackageSize = {
size: number;
gzip: number;
files: number;
};
type TNpmDeprecation = {
versions: string[];
message: string;
time: string;
};
type TNpmDistTags = Record<string, string> & {
latest: string;
beta?: string;
alpha?: string;
canary?: string;
next?: string;
};
type TNpmCollaborator = {
name: string;
email: string;
access: "read" | "write" | "admin";
};
export type { TNpmPackageVersion, TNpmPackageInfo, TNpmSearchResult, TNpmSearchResponse, TNpmDownloadsPoint, TNpmDownloadsResponse, TNpmDownloadCount, TNpmUser, TNpmOrganization, TNpmVulnerability, TNpmAuditResponse, TNpmPackageSize, TNpmDeprecation, TNpmDistTags, TNpmCollaborator, };
//# sourceMappingURL=npm-package.d.ts.map