import type { RequestInit, RequestInfo } from "./internal/builtin-types.mjs"; import type { PromiseOrValue, MergedRequestInit, FinalizedRequestInit } from "./internal/types.mjs"; export type { Logger, LogLevel } from "./internal/utils/log.mjs"; import * as Opts from "./internal/request-options.mjs"; import * as Errors from "./core/error.mjs"; import * as Uploads from "./core/uploads.mjs"; import * as API from "./resources/index.mjs"; import { APIPromise } from "./core/api-promise.mjs"; import { AI, AIExtractProductParams, AIExtractProductResponse, AIExtractProductsParams, AIExtractProductsResponse } from "./resources/ai.mjs"; import { Batch, BatchCancelResponse, BatchDeleteResponse, BatchGetResultsParams, BatchGetResultsResponse, BatchListParams, BatchListResponse, BatchRetrieveResponse, BatchSubmitParams, BatchSubmitResponse, CrawlControls, Failure, Intake, PageErrorCount } from "./resources/batch.mjs"; import { Brand, BrandRetrieveParams, BrandRetrieveResponse, BrandRetrieveSimplifiedParams, BrandRetrieveSimplifiedResponse, BrandSearchParams, BrandSearchResponse } from "./resources/brand.mjs"; import { Industry, IndustryRetrieveNaicsParams, IndustryRetrieveNaicsResponse, IndustryRetrieveSicParams, IndustryRetrieveSicResponse } from "./resources/industry.mjs"; import { MonitorCreateParams, MonitorCreateResponse, MonitorDeleteResponse, MonitorGetCreditUsageParams, MonitorGetCreditUsageResponse, MonitorGetLimitsResponse, MonitorListAccountChangesParams, MonitorListAccountChangesResponse, MonitorListAccountRunsParams, MonitorListAccountRunsResponse, MonitorListChangesParams, MonitorListChangesResponse, MonitorListParams, MonitorListResponse, MonitorListRunsParams, MonitorListRunsResponse, MonitorRetrieveChangeResponse, MonitorRetrieveResponse, MonitorRunResponse, MonitorUpdateParams, MonitorUpdateResponse, Monitors, WebhookDelivery } from "./resources/monitors.mjs"; import { News, NewsSearchParams, NewsSearchResponse } from "./resources/news.mjs"; import { Parse, ParseHandleParams, ParseHandleResponse } from "./resources/parse.mjs"; import { People, PersonEnrichParams, PersonEnrichResponse } from "./resources/people.mjs"; import { Utility, UtilityPrefetchParams, UtilityPrefetchResponse } from "./resources/utility.mjs"; import { Web, WebExtractCompetitorsParams, WebExtractCompetitorsResponse, WebExtractFontsParams, WebExtractFontsResponse, WebExtractParams, WebExtractResponse, WebExtractStyleguideParams, WebExtractStyleguideResponse, WebScreenshotParams, WebScreenshotResponse, WebSearchParams, WebSearchResponse, WebWebCrawlMdParams, WebWebCrawlMdResponse, WebWebScrapeHTMLParams, WebWebScrapeHTMLResponse, WebWebScrapeImagesParams, WebWebScrapeImagesResponse, WebWebScrapeMdParams, WebWebScrapeMdResponse, WebWebScrapeSitemapParams, WebWebScrapeSitemapResponse } from "./resources/web.mjs"; import { type Fetch } from "./internal/builtin-types.mjs"; import { HeadersLike, NullableHeaders } from "./internal/headers.mjs"; import { FinalRequestOptions, RequestOptions } from "./internal/request-options.mjs"; import { type LogLevel, type Logger } from "./internal/utils/log.mjs"; export interface ClientOptions { /** * Defaults to process.env['CONTEXT_DEV_API_KEY']. */ apiKey?: string | undefined; /** * Override the default base URL for the API, e.g., "https://api.example.com/v2/" * * Defaults to process.env['CONTEXT_DEV_BASE_URL']. */ baseURL?: string | null | undefined; /** * The maximum amount of time (in milliseconds) that the client should wait for a response * from the server before timing out a single request. * * Note that request timeouts are retried by default, so in a worst-case scenario you may wait * much longer than this timeout before the promise succeeds or fails. * * @unit milliseconds */ timeout?: number | undefined; /** * Additional `RequestInit` options to be passed to `fetch` calls. * Properties will be overridden by per-request `fetchOptions`. */ fetchOptions?: MergedRequestInit | undefined; /** * Specify a custom `fetch` function implementation. * * If not provided, we expect that `fetch` is defined globally. */ fetch?: Fetch | undefined; /** * The maximum number of times that the client will retry a request in case of a * temporary failure, like a network error or a 5XX error from the server. * * @default 2 */ maxRetries?: number | undefined; /** * Default headers to include with every request to the API. * * These can be removed in individual requests by explicitly setting the * header to `null` in request options. */ defaultHeaders?: HeadersLike | undefined; /** * Default query parameters to include with every request to the API. * * These can be removed in individual requests by explicitly setting the * param to `undefined` in request options. */ defaultQuery?: Record | undefined; /** * Set the log level. * * Defaults to process.env['CONTEXT_DEV_LOG'] or 'warn' if it isn't set. */ logLevel?: LogLevel | undefined; /** * Set the logger. * * Defaults to globalThis.console. */ logger?: Logger | undefined; } /** * API Client for interfacing with the Context Dev API. */ export declare class ContextDev { #private; apiKey: string; baseURL: string; maxRetries: number; timeout: number; logger: Logger; logLevel: LogLevel | undefined; fetchOptions: MergedRequestInit | undefined; private fetch; protected idempotencyHeader?: string; private _options; /** * API Client for interfacing with the Context Dev API. * * @param {string | undefined} [opts.apiKey=process.env['CONTEXT_DEV_API_KEY'] ?? undefined] * @param {string} [opts.baseURL=process.env['CONTEXT_DEV_BASE_URL'] ?? https://api.context.dev/v1] - Override the default base URL for the API. * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls. * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request. * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API. * @param {Record} opts.defaultQuery - Default query parameters to include with every request to the API. */ constructor({ baseURL, apiKey, ...opts }?: ClientOptions); /** * Create a new client instance re-using the same options given to the current client with optional overriding. */ withOptions(options: Partial): this; protected defaultQuery(): Record | undefined; protected validateHeaders({ values, nulls }: NullableHeaders): void; protected authHeaders(opts: FinalRequestOptions): Promise; protected stringifyQuery(query: object | Record): string; private getUserAgent; protected defaultIdempotencyKey(): string; protected makeStatusError(status: number, error: Object, message: string | undefined, headers: Headers): Errors.APIError; buildURL(path: string, query: Record | null | undefined, defaultBaseURL?: string | undefined): string; /** * Used as a callback for mutating the given `FinalRequestOptions` object. */ protected prepareOptions(options: FinalRequestOptions): Promise; /** * Used as a callback for mutating the given `RequestInit` object. * * This is useful for cases where you want to add certain headers based off of * the request properties, e.g. `method` or `url`. */ protected prepareRequest(request: RequestInit, { url, options }: { url: string; options: FinalRequestOptions; }): Promise; get(path: string, opts?: PromiseOrValue): APIPromise; post(path: string, opts?: PromiseOrValue): APIPromise; patch(path: string, opts?: PromiseOrValue): APIPromise; put(path: string, opts?: PromiseOrValue): APIPromise; delete(path: string, opts?: PromiseOrValue): APIPromise; private methodRequest; request(options: PromiseOrValue, remainingRetries?: number | null): APIPromise; private makeRequest; fetchWithTimeout(url: RequestInfo, init: RequestInit | undefined, ms: number, controller: AbortController): Promise; private shouldRetry; private retryRequest; private calculateDefaultRetryTimeoutMillis; buildRequest(inputOptions: FinalRequestOptions, { retryCount }?: { retryCount?: number; }): Promise<{ req: FinalizedRequestInit; url: string; timeout: number; }>; private buildHeaders; private _makeAbort; private buildBody; static ContextDev: typeof ContextDev; static DEFAULT_TIMEOUT: number; static ContextDevError: typeof Errors.ContextDevError; static APIError: typeof Errors.APIError; static APIConnectionError: typeof Errors.APIConnectionError; static APIConnectionTimeoutError: typeof Errors.APIConnectionTimeoutError; static APIUserAbortError: typeof Errors.APIUserAbortError; static NotFoundError: typeof Errors.NotFoundError; static ConflictError: typeof Errors.ConflictError; static RateLimitError: typeof Errors.RateLimitError; static BadRequestError: typeof Errors.BadRequestError; static AuthenticationError: typeof Errors.AuthenticationError; static InternalServerError: typeof Errors.InternalServerError; static PermissionDeniedError: typeof Errors.PermissionDeniedError; static UnprocessableEntityError: typeof Errors.UnprocessableEntityError; static toFile: typeof Uploads.toFile; parse: API.Parse; web: API.Web; ai: API.AI; brand: API.Brand; industry: API.Industry; utility: API.Utility; /** * Monitor pages, sitemaps, and extracted website data for exact or semantic changes. Webhook payloads are documented by the MonitorsChangeDetectedWebhookPayload and MonitorsRunCompletedWebhookPayload schemas. */ monitors: API.Monitors; /** * Scrape many pages or crawl a site asynchronously. */ batch: API.Batch; people: API.People; /** * Search live first-party RSS and free historical news data by company identity. */ news: API.News; } export declare namespace ContextDev { export type RequestOptions = Opts.RequestOptions; export { Parse as Parse, type ParseHandleResponse as ParseHandleResponse, type ParseHandleParams as ParseHandleParams, }; export { Web as Web, type WebExtractResponse as WebExtractResponse, type WebExtractCompetitorsResponse as WebExtractCompetitorsResponse, type WebExtractFontsResponse as WebExtractFontsResponse, type WebExtractStyleguideResponse as WebExtractStyleguideResponse, type WebScreenshotResponse as WebScreenshotResponse, type WebSearchResponse as WebSearchResponse, type WebWebCrawlMdResponse as WebWebCrawlMdResponse, type WebWebScrapeHTMLResponse as WebWebScrapeHTMLResponse, type WebWebScrapeImagesResponse as WebWebScrapeImagesResponse, type WebWebScrapeMdResponse as WebWebScrapeMdResponse, type WebWebScrapeSitemapResponse as WebWebScrapeSitemapResponse, type WebExtractParams as WebExtractParams, type WebExtractCompetitorsParams as WebExtractCompetitorsParams, type WebExtractFontsParams as WebExtractFontsParams, type WebExtractStyleguideParams as WebExtractStyleguideParams, type WebScreenshotParams as WebScreenshotParams, type WebSearchParams as WebSearchParams, type WebWebCrawlMdParams as WebWebCrawlMdParams, type WebWebScrapeHTMLParams as WebWebScrapeHTMLParams, type WebWebScrapeImagesParams as WebWebScrapeImagesParams, type WebWebScrapeMdParams as WebWebScrapeMdParams, type WebWebScrapeSitemapParams as WebWebScrapeSitemapParams, }; export { AI as AI, type AIExtractProductResponse as AIExtractProductResponse, type AIExtractProductsResponse as AIExtractProductsResponse, type AIExtractProductParams as AIExtractProductParams, type AIExtractProductsParams as AIExtractProductsParams, }; export { Brand as Brand, type BrandRetrieveResponse as BrandRetrieveResponse, type BrandRetrieveSimplifiedResponse as BrandRetrieveSimplifiedResponse, type BrandSearchResponse as BrandSearchResponse, type BrandRetrieveParams as BrandRetrieveParams, type BrandRetrieveSimplifiedParams as BrandRetrieveSimplifiedParams, type BrandSearchParams as BrandSearchParams, }; export { Industry as Industry, type IndustryRetrieveNaicsResponse as IndustryRetrieveNaicsResponse, type IndustryRetrieveSicResponse as IndustryRetrieveSicResponse, type IndustryRetrieveNaicsParams as IndustryRetrieveNaicsParams, type IndustryRetrieveSicParams as IndustryRetrieveSicParams, }; export { Utility as Utility, type UtilityPrefetchResponse as UtilityPrefetchResponse, type UtilityPrefetchParams as UtilityPrefetchParams, }; export { Monitors as Monitors, type WebhookDelivery as WebhookDelivery, type MonitorCreateResponse as MonitorCreateResponse, type MonitorRetrieveResponse as MonitorRetrieveResponse, type MonitorUpdateResponse as MonitorUpdateResponse, type MonitorListResponse as MonitorListResponse, type MonitorDeleteResponse as MonitorDeleteResponse, type MonitorGetCreditUsageResponse as MonitorGetCreditUsageResponse, type MonitorGetLimitsResponse as MonitorGetLimitsResponse, type MonitorListAccountChangesResponse as MonitorListAccountChangesResponse, type MonitorListAccountRunsResponse as MonitorListAccountRunsResponse, type MonitorListChangesResponse as MonitorListChangesResponse, type MonitorListRunsResponse as MonitorListRunsResponse, type MonitorRetrieveChangeResponse as MonitorRetrieveChangeResponse, type MonitorRunResponse as MonitorRunResponse, type MonitorCreateParams as MonitorCreateParams, type MonitorUpdateParams as MonitorUpdateParams, type MonitorListParams as MonitorListParams, type MonitorGetCreditUsageParams as MonitorGetCreditUsageParams, type MonitorListAccountChangesParams as MonitorListAccountChangesParams, type MonitorListAccountRunsParams as MonitorListAccountRunsParams, type MonitorListChangesParams as MonitorListChangesParams, type MonitorListRunsParams as MonitorListRunsParams, }; export { Batch as Batch, type PageErrorCount as PageErrorCount, type Failure as Failure, type CrawlControls as CrawlControls, type Intake as Intake, type BatchRetrieveResponse as BatchRetrieveResponse, type BatchListResponse as BatchListResponse, type BatchDeleteResponse as BatchDeleteResponse, type BatchCancelResponse as BatchCancelResponse, type BatchGetResultsResponse as BatchGetResultsResponse, type BatchSubmitResponse as BatchSubmitResponse, type BatchListParams as BatchListParams, type BatchGetResultsParams as BatchGetResultsParams, type BatchSubmitParams as BatchSubmitParams, }; export { People as People, type PersonEnrichResponse as PersonEnrichResponse, type PersonEnrichParams as PersonEnrichParams, }; export { News as News, type NewsSearchResponse as NewsSearchResponse, type NewsSearchParams as NewsSearchParams, }; } //# sourceMappingURL=client.d.mts.map