UNPKG

internetarchive-sdk-js

Version:

NodeJS / Typescript SDK for Internet Archive APIs

91 lines (90 loc) 2.42 kB
import { z } from 'zod'; import { ia, Mediatype, UpdateItemRequestData, UpdateItemRequestPatch, CreateItemRequestHeaders, UploadFileHeaders } from './schema.js'; export type IaOptions = z.infer<typeof ia.Options>; export type Mediatype = z.infer<typeof Mediatype>; export type CreateItemRequestHeaders = z.infer<typeof CreateItemRequestHeaders>; export type UpdateItemParams = Record<string, unknown>; export type UpdateItemRequestPatch = z.infer<typeof UpdateItemRequestPatch>; export type UpdateItemRequestData = z.infer<typeof UpdateItemRequestData>; export type UploadFileHeaders = z.infer<typeof UploadFileHeaders>; export interface CreateItemParams { identifier: string; collection: string; mediatype: Mediatype; upload: FileUpload; metadata?: Record<string, unknown>; } export interface CreateItemResponse { identifier: string; metadata: Record<string, unknown>; upload: { filename: string; }; } export interface UpdateItemResponse { success: boolean; error?: string; task_id?: number; log?: string; } export interface GetItemsParams { filters?: { collection?: string; subject?: string; creator?: string; }; options?: { fields?: string; rows?: number; }; } export interface GetItemsResponse { responseHeader: { status: number; QTtime: number; params: Record<string, unknown>; }; response: { numFound: number; start: 0; docs: Record<string, unknown>[]; }; } export interface GetItemResponse { created: number; d1: string; d2: string; dir: string; files: Record<string, unknown>[]; files_count: number; metadata: Record<string, unknown>; server: string; uniq: number; workable_servers: string[]; } export interface FileUpload { filename: string; path?: string; data?: Buffer; } export interface UploadFileParams { identifier: string; mediatype: Mediatype; file: FileUpload; } export interface GetItemTasksResponse { succes: boolean; value: Record<string, unknown>; } /** * @see {@link https://archive.org/developers/tasks.html#criteria Archive.org - Tasks API - Criteria} */ export interface TaskCriteria { task_id?: number; server?: string; cmd?: string; args?: string; submitter?: string; priority?: number; wait_admin?: number; }