@search1api/client 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/errors.ts", "../src/client.ts"],
4
- "sourcesContent": ["import type { ApiErrorBody, DeepcrawlStatusResponse } from './types.js';\n\nexport class Search1APIError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(message, options);\n this.name = new.target.name;\n }\n}\n\nexport class Search1APIConfigurationError extends Search1APIError {}\n\nexport class APIConnectionError extends Search1APIError {}\n\nexport class APITimeoutError extends APIConnectionError {}\n\nexport class APIStatusError extends Search1APIError {\n readonly body?: ApiErrorBody;\n readonly headers: Headers;\n readonly requestId?: string;\n readonly status: number;\n\n constructor(\n message: string,\n status: number,\n headers: Headers,\n body?: ApiErrorBody\n ) {\n super(message);\n this.status = status;\n this.headers = headers;\n this.body = body;\n this.requestId = headers.get('x-request-id') ?? undefined;\n }\n}\n\nexport class BadRequestError extends APIStatusError {}\nexport class AuthenticationError extends APIStatusError {}\nexport class PaymentRequiredError extends APIStatusError {}\nexport class NotFoundError extends APIStatusError {}\nexport class UnprocessableEntityError extends APIStatusError {}\nexport class RateLimitError extends APIStatusError {}\nexport class InternalServerError extends APIStatusError {}\n\nexport class DeepcrawlFailedError extends Search1APIError {\n readonly response: DeepcrawlStatusResponse;\n\n constructor(response: DeepcrawlStatusResponse) {\n super(\n response.error ||\n response.message ||\n `Deepcrawl task ${response.taskId} failed`\n );\n this.response = response;\n }\n}\n\nexport class DeepcrawlTimeoutError extends Search1APIError {\n readonly taskId: string;\n\n constructor(taskId: string, timeoutMs: number) {\n super(`Deepcrawl task ${taskId} did not finish within ${timeoutMs}ms`);\n this.taskId = taskId;\n }\n}\n\nexport function apiStatusError(\n status: number,\n headers: Headers,\n body?: ApiErrorBody\n): APIStatusError {\n const message =\n body?.message ||\n body?.detail ||\n body?.error ||\n body?.title ||\n `Search1API request failed with status ${status}`;\n const ErrorClass =\n status === 400\n ? BadRequestError\n : status === 401\n ? AuthenticationError\n : status === 402\n ? PaymentRequiredError\n : status === 404\n ? NotFoundError\n : status === 422\n ? UnprocessableEntityError\n : status === 429\n ? RateLimitError\n : status >= 500\n ? InternalServerError\n : APIStatusError;\n\n return new ErrorClass(message, status, headers, body);\n}\n", "import {\n APIConnectionError,\n APITimeoutError,\n DeepcrawlFailedError,\n DeepcrawlTimeoutError,\n Search1APIConfigurationError,\n Search1APIError,\n apiStatusError,\n} from './errors.js';\nimport type {\n ApiErrorBody,\n BatchResponse,\n CrawlOptions,\n CrawlRequest,\n CrawlResponse,\n DeepcrawlAcceptedResponse,\n DeepcrawlOptions,\n DeepcrawlStatusResponse,\n ExtractOptions,\n ExtractResponse,\n HealthResponse,\n JsonValue,\n NewsOptions,\n NewsRequest,\n NewsResponse,\n RequestOptions,\n Search1APIOptions,\n SearchOptions,\n SearchRequest,\n SearchResponse,\n ScreenshotOptions,\n ScreenshotResponse,\n SitemapOptions,\n SitemapResponse,\n TimeRange,\n TrendingOptions,\n TrendingResponse,\n UsageResponse,\n WaitForDeepcrawlOptions,\n} from './types.js';\n\nconst DEFAULT_BASE_URL = 'https://api.search1api.com';\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst DEFAULT_MAX_RETRIES = 2;\nconst DEFAULT_RETRY_DELAY_MS = 500;\nconst DEFAULT_DEEPCRAWL_POLL_INTERVAL_MS = 2_000;\nconst DEFAULT_DEEPCRAWL_TIMEOUT_MS = 300_000;\n\ntype RequestBody = JsonValue | Record<string, unknown> | unknown[];\n\ninterface InternalRequestOptions extends RequestOptions {\n body?: RequestBody;\n method?: 'GET' | 'POST';\n query?: Record<string, string | undefined>;\n}\n\nfunction environmentApiKey(): string | undefined {\n const processLike = globalThis as typeof globalThis & {\n process?: { env?: Record<string, string | undefined> };\n };\n return processLike.process?.env?.SEARCH1API_API_KEY;\n}\n\nfunction compact<T extends Record<string, unknown>>(value: T): Partial<T> {\n return Object.fromEntries(\n Object.entries(value).filter(([, item]) => item !== undefined)\n ) as Partial<T>;\n}\n\nfunction searchBody(query: string, options: SearchOptions) {\n return compact({\n query,\n search_service: options.searchService,\n max_results: options.maxResults,\n crawl_results: options.crawlResults,\n image: options.image,\n include_sites: options.includeSites,\n exclude_sites: options.excludeSites,\n language: options.language,\n time_range: options.timeRange,\n });\n}\n\nfunction newsBody(query: string, options: NewsOptions) {\n return compact({\n query,\n search_service: options.searchService,\n max_results: options.maxResults,\n crawl_results: options.crawlResults,\n image: options.image,\n include_sites: options.includeSites,\n exclude_sites: options.excludeSites,\n language: options.language,\n time_range: options.timeRange,\n });\n}\n\nfunction screenshotBody(url: string, options: ScreenshotOptions) {\n return compact({\n url,\n format: options.format,\n full_page: options.fullPage,\n viewport: options.viewport\n ? compact({\n width: options.viewport.width,\n height: options.viewport.height,\n device_scale_factor: options.viewport.deviceScaleFactor,\n })\n : undefined,\n wait_until: options.waitUntil,\n wait_for_selector: options.waitForSelector,\n selector: options.selector,\n delay_ms: options.delayMs,\n timeout_ms: options.timeoutMs,\n quality: options.quality,\n omit_background: options.omitBackground,\n color_scheme: options.colorScheme,\n animations: options.animations,\n });\n}\n\nfunction retryAfterMs(response: Response): number | undefined {\n const value = response.headers.get('retry-after');\n if (!value) return undefined;\n\n const seconds = Number(value);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1_000);\n\n const date = Date.parse(value);\n if (Number.isNaN(date)) return undefined;\n return Math.max(0, date - Date.now());\n}\n\nfunction shouldRetry(status: number): boolean {\n return status === 429 || status >= 500;\n}\n\nfunction validateRequestLimits(timeoutMs: number, maxRetries: number): void {\n if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {\n throw new Search1APIConfigurationError('timeoutMs must be positive');\n }\n if (!Number.isInteger(maxRetries) || maxRetries < 0) {\n throw new Search1APIConfigurationError(\n 'maxRetries must be a non-negative integer'\n );\n }\n}\n\nfunction sleep(ms: number, signal?: AbortSignal): Promise<void> {\n if (signal?.aborted) {\n return Promise.reject(\n new APIConnectionError('Search1API request was aborted')\n );\n }\n if (ms <= 0) return Promise.resolve();\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n }, ms);\n const onAbort = () => {\n clearTimeout(timeout);\n reject(new APIConnectionError('Search1API request was aborted'));\n };\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n}\n\nasync function errorBody(\n response: Response\n): Promise<ApiErrorBody | undefined> {\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text) as ApiErrorBody;\n } catch {\n return { message: text };\n }\n}\n\nexport class Search1API {\n readonly apiKey: string;\n readonly baseUrl: string;\n readonly maxRetries: number;\n readonly timeoutMs: number;\n\n private readonly defaultHeaders: Record<string, string>;\n private readonly fetchClient: typeof fetch;\n private readonly retryDelayMs: number;\n\n constructor(options: Search1APIOptions | string = {}) {\n const normalized =\n typeof options === 'string' ? { apiKey: options } : options;\n const apiKey = normalized.apiKey || environmentApiKey();\n if (!apiKey) {\n throw new Search1APIConfigurationError(\n 'Missing API key. Pass apiKey or set SEARCH1API_API_KEY.'\n );\n }\n\n const fetchClient = normalized.fetch || globalThis.fetch;\n if (!fetchClient) {\n throw new Search1APIConfigurationError(\n 'No fetch implementation is available. Search1API requires Node.js 18+ or a custom fetch.'\n );\n }\n\n this.apiKey = apiKey;\n this.baseUrl = (normalized.baseUrl || DEFAULT_BASE_URL).replace(/\\/+$/, '');\n this.fetchClient = fetchClient;\n this.timeoutMs = normalized.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n this.maxRetries = normalized.maxRetries ?? DEFAULT_MAX_RETRIES;\n this.retryDelayMs = normalized.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;\n validateRequestLimits(this.timeoutMs, this.maxRetries);\n if (!Number.isFinite(this.retryDelayMs) || this.retryDelayMs < 0) {\n throw new Search1APIConfigurationError(\n 'retryDelayMs must be non-negative'\n );\n }\n this.defaultHeaders = normalized.headers ?? {};\n }\n\n async search(\n query: string,\n options: SearchOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<SearchResponse> {\n return this.requestJson<SearchResponse>('/search', {\n ...requestOptions,\n method: 'POST',\n body: searchBody(query, options),\n });\n }\n\n async searchBatch(\n requests: SearchRequest[],\n requestOptions: RequestOptions = {}\n ): Promise<BatchResponse<SearchResponse>> {\n return this.requestJson<BatchResponse<SearchResponse>>('/search', {\n ...requestOptions,\n method: 'POST',\n body: requests.map(({ query, ...options }) => searchBody(query, options)),\n });\n }\n\n async news(\n query: string,\n options: NewsOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<NewsResponse> {\n return this.requestJson<NewsResponse>('/news', {\n ...requestOptions,\n method: 'POST',\n body: newsBody(query, options),\n });\n }\n\n async newsBatch(\n requests: NewsRequest[],\n requestOptions: RequestOptions = {}\n ): Promise<BatchResponse<NewsResponse>> {\n return this.requestJson<BatchResponse<NewsResponse>>('/news', {\n ...requestOptions,\n method: 'POST',\n body: requests.map(({ query, ...options }) => newsBody(query, options)),\n });\n }\n\n async crawl(\n url: string,\n options: CrawlOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<CrawlResponse> {\n return this.requestJson<CrawlResponse>('/crawl', {\n ...requestOptions,\n method: 'POST',\n body: compact({ url, enableFallback: options.enableFallback }),\n });\n }\n\n async crawlBatch(\n requests: CrawlRequest[],\n requestOptions: RequestOptions = {}\n ): Promise<CrawlResponse[]> {\n return this.requestJson<CrawlResponse[]>('/crawl', {\n ...requestOptions,\n method: 'POST',\n body: requests.map(({ url, enableFallback }) =>\n compact({ url, enableFallback })\n ),\n });\n }\n\n async screenshot(\n url: string,\n options: ScreenshotOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<ScreenshotResponse> {\n const response = await this.request('/screenshot', {\n ...requestOptions,\n method: 'POST',\n headers: {\n Accept: `image/${options.format || 'png'}`,\n ...requestOptions.headers,\n },\n body: screenshotBody(url, options),\n });\n return {\n data: new Uint8Array(await response.arrayBuffer()),\n contentType:\n response.headers.get('content-type') || `image/${options.format || 'png'}`,\n requestId: response.headers.get('x-request-id') || undefined,\n };\n }\n\n async sitemap(\n url: string,\n options: SitemapOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<SitemapResponse> {\n return this.requestJson<SitemapResponse>('/sitemap', {\n ...requestOptions,\n method: 'POST',\n body: compact({ url, type: options.type }),\n });\n }\n\n async trending(\n searchService: string,\n options: TrendingOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<TrendingResponse> {\n return this.requestJson<TrendingResponse>('/trending', {\n ...requestOptions,\n method: 'POST',\n body: compact({\n search_service: searchService,\n max_results: options.maxResults,\n }),\n });\n }\n\n async extract<T = JsonValue>(\n url: string,\n options: ExtractOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<ExtractResponse<T>> {\n return this.requestJson<ExtractResponse<T>>('/extract', {\n ...requestOptions,\n method: 'POST',\n body: compact({\n url,\n prompt: options.prompt,\n response_format: options.responseFormat,\n }),\n });\n }\n\n async startDeepcrawl(\n url: string,\n options: DeepcrawlOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<DeepcrawlAcceptedResponse> {\n return this.requestJson<DeepcrawlAcceptedResponse>('/deepcrawl', {\n ...requestOptions,\n // Starting a task is not idempotent. A lost response could otherwise\n // enqueue and charge a duplicate crawl.\n maxRetries: requestOptions.maxRetries ?? 0,\n method: 'POST',\n body: compact({ url, type: options.type }),\n });\n }\n\n async getDeepcrawlStatus(\n taskId: string,\n requestOptions: RequestOptions = {}\n ): Promise<DeepcrawlStatusResponse> {\n return this.requestJson<DeepcrawlStatusResponse>(\n `/deepcrawl/status/${encodeURIComponent(taskId)}`,\n requestOptions\n );\n }\n\n async waitForDeepcrawl(\n taskId: string,\n options: WaitForDeepcrawlOptions = {}\n ): Promise<DeepcrawlStatusResponse> {\n const pollIntervalMs =\n options.pollIntervalMs ?? DEFAULT_DEEPCRAWL_POLL_INTERVAL_MS;\n const timeoutMs = options.timeoutMs ?? DEFAULT_DEEPCRAWL_TIMEOUT_MS;\n const deadline = Date.now() + timeoutMs;\n\n while (true) {\n const response = await this.getDeepcrawlStatus(taskId, {\n signal: options.signal,\n });\n if (response.success === true || response.status === 'completed') {\n return response;\n }\n if (\n response.success === false ||\n response.status === 'failed' ||\n response.status === 'not_found'\n ) {\n throw new DeepcrawlFailedError(response);\n }\n if (Date.now() + pollIntervalMs > deadline) {\n throw new DeepcrawlTimeoutError(taskId, timeoutMs);\n }\n await sleep(pollIntervalMs, options.signal);\n }\n }\n\n async deepcrawl(\n url: string,\n options: DeepcrawlOptions = {},\n waitOptions: WaitForDeepcrawlOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<DeepcrawlStatusResponse> {\n const task = await this.startDeepcrawl(url, options, requestOptions);\n return this.waitForDeepcrawl(task.taskId, waitOptions);\n }\n\n async usage(\n period?: TimeRange,\n requestOptions: RequestOptions = {}\n ): Promise<UsageResponse> {\n return this.requestJson<UsageResponse>('/usage', {\n ...requestOptions,\n query: { period },\n });\n }\n\n async health(requestOptions: RequestOptions = {}): Promise<HealthResponse> {\n return this.requestJson<HealthResponse>('/health', requestOptions);\n }\n\n private async requestJson<T>(\n path: string,\n options: InternalRequestOptions = {}\n ): Promise<T> {\n const response = await this.request(path, options);\n const text = await response.text();\n try {\n return JSON.parse(text) as T;\n } catch (error) {\n throw new Search1APIError(\n `Search1API returned invalid JSON for ${path}`,\n { cause: error }\n );\n }\n }\n\n private async request(\n path: string,\n options: InternalRequestOptions = {}\n ): Promise<Response> {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n validateRequestLimits(options.timeoutMs ?? this.timeoutMs, maxRetries);\n const url = new URL(`${this.baseUrl}${path}`);\n for (const [name, value] of Object.entries(options.query || {})) {\n if (value !== undefined) url.searchParams.set(name, value);\n }\n\n for (let attempt = 0; attempt <= maxRetries; attempt += 1) {\n let response: Response;\n try {\n response = await this.fetchOnce(url, options);\n } catch (error) {\n if (\n attempt < maxRetries &&\n !options.signal?.aborted &&\n (error instanceof APIConnectionError ||\n error instanceof APITimeoutError)\n ) {\n await sleep(this.retryDelay(attempt), options.signal);\n continue;\n }\n throw error;\n }\n\n if (response.ok) return response;\n if (attempt < maxRetries && shouldRetry(response.status)) {\n await sleep(\n retryAfterMs(response) ?? this.retryDelay(attempt),\n options.signal\n );\n continue;\n }\n\n throw apiStatusError(\n response.status,\n response.headers,\n await errorBody(response)\n );\n }\n\n throw new Search1APIError('Search1API request exhausted its retry budget');\n }\n\n private async fetchOnce(\n url: URL,\n options: InternalRequestOptions\n ): Promise<Response> {\n const controller = new AbortController();\n let timedOut = false;\n const timeout = setTimeout(() => {\n timedOut = true;\n controller.abort();\n }, options.timeoutMs ?? this.timeoutMs);\n const onAbort = () => controller.abort(options.signal?.reason);\n options.signal?.addEventListener('abort', onAbort, { once: true });\n\n const headers = new Headers({\n Accept: 'application/json',\n Authorization: `Bearer ${this.apiKey}`,\n 'X-Search1API-Client': 'typescript/0.2.1',\n ...this.defaultHeaders,\n ...options.headers,\n });\n if (options.body !== undefined)\n headers.set('Content-Type', 'application/json');\n\n try {\n return await this.fetchClient(url, {\n method: options.method || 'GET',\n headers,\n body:\n options.body === undefined ? undefined : JSON.stringify(options.body),\n signal: controller.signal,\n });\n } catch (error) {\n if (timedOut) {\n throw new APITimeoutError(\n `Search1API request timed out after ${options.timeoutMs ?? this.timeoutMs}ms`,\n { cause: error }\n );\n }\n if (options.signal?.aborted) {\n throw new APIConnectionError('Search1API request was aborted', {\n cause: error,\n });\n }\n throw new APIConnectionError('Unable to connect to Search1API', {\n cause: error,\n });\n } finally {\n clearTimeout(timeout);\n options.signal?.removeEventListener('abort', onAbort);\n }\n }\n\n private retryDelay(attempt: number): number {\n const base = this.retryDelayMs * 2 ** attempt;\n return base + Math.floor(Math.random() * base * 0.25);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { ApiErrorBody, DeepcrawlStatusResponse } from './types.js';\n\nexport class Search1APIError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(message, options);\n this.name = new.target.name;\n }\n}\n\nexport class Search1APIConfigurationError extends Search1APIError {}\n\nexport class APIConnectionError extends Search1APIError {}\n\nexport class APITimeoutError extends APIConnectionError {}\n\nexport class APIStatusError extends Search1APIError {\n readonly body?: ApiErrorBody;\n readonly headers: Headers;\n readonly requestId?: string;\n readonly status: number;\n\n constructor(\n message: string,\n status: number,\n headers: Headers,\n body?: ApiErrorBody\n ) {\n super(message);\n this.status = status;\n this.headers = headers;\n this.body = body;\n this.requestId = headers.get('x-request-id') ?? undefined;\n }\n}\n\nexport class BadRequestError extends APIStatusError {}\nexport class AuthenticationError extends APIStatusError {}\nexport class PaymentRequiredError extends APIStatusError {}\nexport class NotFoundError extends APIStatusError {}\nexport class UnprocessableEntityError extends APIStatusError {}\nexport class RateLimitError extends APIStatusError {}\nexport class InternalServerError extends APIStatusError {}\n\nexport class DeepcrawlFailedError extends Search1APIError {\n readonly response: DeepcrawlStatusResponse;\n\n constructor(response: DeepcrawlStatusResponse) {\n super(\n response.error ||\n response.message ||\n `Deepcrawl task ${response.taskId} failed`\n );\n this.response = response;\n }\n}\n\nexport class DeepcrawlTimeoutError extends Search1APIError {\n readonly taskId: string;\n\n constructor(taskId: string, timeoutMs: number) {\n super(`Deepcrawl task ${taskId} did not finish within ${timeoutMs}ms`);\n this.taskId = taskId;\n }\n}\n\nexport function apiStatusError(\n status: number,\n headers: Headers,\n body?: ApiErrorBody\n): APIStatusError {\n const message =\n body?.message ||\n body?.detail ||\n body?.error ||\n body?.title ||\n `Search1API request failed with status ${status}`;\n const ErrorClass =\n status === 400\n ? BadRequestError\n : status === 401\n ? AuthenticationError\n : status === 402\n ? PaymentRequiredError\n : status === 404\n ? NotFoundError\n : status === 422\n ? UnprocessableEntityError\n : status === 429\n ? RateLimitError\n : status >= 500\n ? InternalServerError\n : APIStatusError;\n\n return new ErrorClass(message, status, headers, body);\n}\n", "import {\n APIConnectionError,\n APITimeoutError,\n DeepcrawlFailedError,\n DeepcrawlTimeoutError,\n Search1APIConfigurationError,\n Search1APIError,\n apiStatusError,\n} from './errors.js';\nimport type {\n ApiErrorBody,\n AskResponse,\n BatchResponse,\n CrawlOptions,\n CrawlRequest,\n CrawlResponse,\n DeepcrawlAcceptedResponse,\n DeepcrawlOptions,\n DeepcrawlStatusResponse,\n ExtractOptions,\n ExtractResponse,\n FeedbackOptions,\n FeedbackResponse,\n HealthResponse,\n JsonValue,\n NewsOptions,\n NewsRequest,\n NewsResponse,\n RequestOptions,\n Search1APIOptions,\n SearchOptions,\n SearchRequest,\n SearchResponse,\n ScreenshotOptions,\n ScreenshotResponse,\n SitemapOptions,\n SitemapResponse,\n TimeRange,\n TrendingOptions,\n TrendingResponse,\n UsageResponse,\n WaitForDeepcrawlOptions,\n} from './types.js';\n\nconst DEFAULT_BASE_URL = 'https://api.search1api.com';\nconst DEFAULT_TIMEOUT_MS = 30_000;\n// The gateway gives Ask up to 35 seconds, so the default 30 seconds would abort\n// requests the API would still answer.\nconst DEFAULT_ASK_TIMEOUT_MS = 45_000;\nconst DEFAULT_MAX_RETRIES = 2;\nconst DEFAULT_RETRY_DELAY_MS = 500;\nconst DEFAULT_DEEPCRAWL_POLL_INTERVAL_MS = 2_000;\nconst DEFAULT_DEEPCRAWL_TIMEOUT_MS = 300_000;\n\ntype RequestBody = JsonValue | Record<string, unknown> | unknown[];\n\ninterface InternalRequestOptions extends RequestOptions {\n body?: RequestBody;\n method?: 'GET' | 'POST';\n query?: Record<string, string | undefined>;\n}\n\nfunction environmentApiKey(): string | undefined {\n const processLike = globalThis as typeof globalThis & {\n process?: { env?: Record<string, string | undefined> };\n };\n return processLike.process?.env?.SEARCH1API_API_KEY;\n}\n\nfunction compact<T extends Record<string, unknown>>(value: T): Partial<T> {\n return Object.fromEntries(\n Object.entries(value).filter(([, item]) => item !== undefined)\n ) as Partial<T>;\n}\n\nfunction searchBody(query: string, options: SearchOptions) {\n return compact({\n query,\n search_service: options.searchService,\n max_results: options.maxResults,\n page: options.page,\n crawl_results: options.crawlResults,\n image: options.image,\n include_sites: options.includeSites,\n exclude_sites: options.excludeSites,\n language: options.language,\n time_range: options.timeRange,\n });\n}\n\nfunction newsBody(query: string, options: NewsOptions) {\n return compact({\n query,\n search_service: options.searchService,\n max_results: options.maxResults,\n crawl_results: options.crawlResults,\n image: options.image,\n include_sites: options.includeSites,\n exclude_sites: options.excludeSites,\n language: options.language,\n time_range: options.timeRange,\n });\n}\n\nfunction screenshotBody(url: string, options: ScreenshotOptions) {\n return compact({\n url,\n format: options.format,\n full_page: options.fullPage,\n viewport: options.viewport\n ? compact({\n width: options.viewport.width,\n height: options.viewport.height,\n device_scale_factor: options.viewport.deviceScaleFactor,\n })\n : undefined,\n wait_until: options.waitUntil,\n wait_for_selector: options.waitForSelector,\n selector: options.selector,\n delay_ms: options.delayMs,\n timeout_ms: options.timeoutMs,\n quality: options.quality,\n omit_background: options.omitBackground,\n color_scheme: options.colorScheme,\n animations: options.animations,\n });\n}\n\nfunction retryAfterMs(response: Response): number | undefined {\n const value = response.headers.get('retry-after');\n if (!value) return undefined;\n\n const seconds = Number(value);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1_000);\n\n const date = Date.parse(value);\n if (Number.isNaN(date)) return undefined;\n return Math.max(0, date - Date.now());\n}\n\nfunction shouldRetry(status: number): boolean {\n return status === 429 || status >= 500;\n}\n\nfunction validateRequestLimits(timeoutMs: number, maxRetries: number): void {\n if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {\n throw new Search1APIConfigurationError('timeoutMs must be positive');\n }\n if (!Number.isInteger(maxRetries) || maxRetries < 0) {\n throw new Search1APIConfigurationError(\n 'maxRetries must be a non-negative integer'\n );\n }\n}\n\nfunction sleep(ms: number, signal?: AbortSignal): Promise<void> {\n if (signal?.aborted) {\n return Promise.reject(\n new APIConnectionError('Search1API request was aborted')\n );\n }\n if (ms <= 0) return Promise.resolve();\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n }, ms);\n const onAbort = () => {\n clearTimeout(timeout);\n reject(new APIConnectionError('Search1API request was aborted'));\n };\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n}\n\nasync function errorBody(\n response: Response\n): Promise<ApiErrorBody | undefined> {\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text) as ApiErrorBody;\n } catch {\n return { message: text };\n }\n}\n\nexport class Search1API {\n readonly apiKey: string;\n readonly baseUrl: string;\n readonly maxRetries: number;\n readonly timeoutMs: number;\n\n private readonly defaultHeaders: Record<string, string>;\n private readonly fetchClient: typeof fetch;\n private readonly retryDelayMs: number;\n\n constructor(options: Search1APIOptions | string = {}) {\n const normalized =\n typeof options === 'string' ? { apiKey: options } : options;\n const apiKey = normalized.apiKey || environmentApiKey();\n if (!apiKey) {\n throw new Search1APIConfigurationError(\n 'Missing API key. Pass apiKey or set SEARCH1API_API_KEY.'\n );\n }\n\n const fetchClient = normalized.fetch || globalThis.fetch;\n if (!fetchClient) {\n throw new Search1APIConfigurationError(\n 'No fetch implementation is available. Search1API requires Node.js 18+ or a custom fetch.'\n );\n }\n\n this.apiKey = apiKey;\n this.baseUrl = (normalized.baseUrl || DEFAULT_BASE_URL).replace(/\\/+$/, '');\n this.fetchClient = fetchClient;\n this.timeoutMs = normalized.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n this.maxRetries = normalized.maxRetries ?? DEFAULT_MAX_RETRIES;\n this.retryDelayMs = normalized.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;\n validateRequestLimits(this.timeoutMs, this.maxRetries);\n if (!Number.isFinite(this.retryDelayMs) || this.retryDelayMs < 0) {\n throw new Search1APIConfigurationError(\n 'retryDelayMs must be non-negative'\n );\n }\n this.defaultHeaders = normalized.headers ?? {};\n }\n\n async search(\n query: string,\n options: SearchOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<SearchResponse> {\n return this.requestJson<SearchResponse>('/search', {\n ...requestOptions,\n method: 'POST',\n body: searchBody(query, options),\n });\n }\n\n async searchBatch(\n requests: SearchRequest[],\n requestOptions: RequestOptions = {}\n ): Promise<BatchResponse<SearchResponse>> {\n return this.requestJson<BatchResponse<SearchResponse>>('/search', {\n ...requestOptions,\n method: 'POST',\n body: requests.map(({ query, ...options }) => searchBody(query, options)),\n });\n }\n\n async news(\n query: string,\n options: NewsOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<NewsResponse> {\n return this.requestJson<NewsResponse>('/news', {\n ...requestOptions,\n method: 'POST',\n body: newsBody(query, options),\n });\n }\n\n async newsBatch(\n requests: NewsRequest[],\n requestOptions: RequestOptions = {}\n ): Promise<BatchResponse<NewsResponse>> {\n return this.requestJson<BatchResponse<NewsResponse>>('/news', {\n ...requestOptions,\n method: 'POST',\n body: requests.map(({ query, ...options }) => newsBody(query, options)),\n });\n }\n\n /**\n * Agentic search: a decision model picks the engines and time window from a\n * natural-language query and returns only relevant results. 5 credits per\n * completed request; requires an API key or OAuth token.\n */\n async ask(\n query: string,\n requestOptions: RequestOptions = {}\n ): Promise<AskResponse> {\n return this.requestJson<AskResponse>('/ask', {\n ...requestOptions,\n timeoutMs: requestOptions.timeoutMs ?? DEFAULT_ASK_TIMEOUT_MS,\n method: 'POST',\n body: { query },\n });\n }\n\n async crawl(\n url: string,\n options: CrawlOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<CrawlResponse> {\n return this.requestJson<CrawlResponse>('/crawl', {\n ...requestOptions,\n method: 'POST',\n body: compact({ url, enableFallback: options.enableFallback }),\n });\n }\n\n async crawlBatch(\n requests: CrawlRequest[],\n requestOptions: RequestOptions = {}\n ): Promise<CrawlResponse[]> {\n return this.requestJson<CrawlResponse[]>('/crawl', {\n ...requestOptions,\n method: 'POST',\n body: requests.map(({ url, enableFallback }) =>\n compact({ url, enableFallback })\n ),\n });\n }\n\n async screenshot(\n url: string,\n options: ScreenshotOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<ScreenshotResponse> {\n const response = await this.request('/screenshot', {\n ...requestOptions,\n method: 'POST',\n headers: {\n Accept: `image/${options.format || 'png'}`,\n ...requestOptions.headers,\n },\n body: screenshotBody(url, options),\n });\n return {\n data: new Uint8Array(await response.arrayBuffer()),\n contentType:\n response.headers.get('content-type') || `image/${options.format || 'png'}`,\n requestId: response.headers.get('x-request-id') || undefined,\n };\n }\n\n async sitemap(\n url: string,\n options: SitemapOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<SitemapResponse> {\n return this.requestJson<SitemapResponse>('/sitemap', {\n ...requestOptions,\n method: 'POST',\n body: compact({ url, type: options.type }),\n });\n }\n\n async trending(\n searchService: string,\n options: TrendingOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<TrendingResponse> {\n return this.requestJson<TrendingResponse>('/trending', {\n ...requestOptions,\n method: 'POST',\n body: compact({\n search_service: searchService,\n max_results: options.maxResults,\n }),\n });\n }\n\n async extract<T = JsonValue>(\n url: string,\n options: ExtractOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<ExtractResponse<T>> {\n return this.requestJson<ExtractResponse<T>>('/extract', {\n ...requestOptions,\n method: 'POST',\n body: compact({\n url,\n prompt: options.prompt,\n response_format: options.responseFormat,\n }),\n });\n }\n\n async startDeepcrawl(\n url: string,\n options: DeepcrawlOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<DeepcrawlAcceptedResponse> {\n return this.requestJson<DeepcrawlAcceptedResponse>('/deepcrawl', {\n ...requestOptions,\n // Starting a task is not idempotent. A lost response could otherwise\n // enqueue and charge a duplicate crawl.\n maxRetries: requestOptions.maxRetries ?? 0,\n method: 'POST',\n body: compact({ url, type: options.type }),\n });\n }\n\n async getDeepcrawlStatus(\n taskId: string,\n requestOptions: RequestOptions = {}\n ): Promise<DeepcrawlStatusResponse> {\n return this.requestJson<DeepcrawlStatusResponse>(\n `/deepcrawl/status/${encodeURIComponent(taskId)}`,\n requestOptions\n );\n }\n\n async waitForDeepcrawl(\n taskId: string,\n options: WaitForDeepcrawlOptions = {}\n ): Promise<DeepcrawlStatusResponse> {\n const pollIntervalMs =\n options.pollIntervalMs ?? DEFAULT_DEEPCRAWL_POLL_INTERVAL_MS;\n const timeoutMs = options.timeoutMs ?? DEFAULT_DEEPCRAWL_TIMEOUT_MS;\n const deadline = Date.now() + timeoutMs;\n\n while (true) {\n const response = await this.getDeepcrawlStatus(taskId, {\n signal: options.signal,\n });\n if (response.success === true || response.status === 'completed') {\n return response;\n }\n if (\n response.success === false ||\n response.status === 'failed' ||\n response.status === 'not_found'\n ) {\n throw new DeepcrawlFailedError(response);\n }\n if (Date.now() + pollIntervalMs > deadline) {\n throw new DeepcrawlTimeoutError(taskId, timeoutMs);\n }\n await sleep(pollIntervalMs, options.signal);\n }\n }\n\n async deepcrawl(\n url: string,\n options: DeepcrawlOptions = {},\n waitOptions: WaitForDeepcrawlOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<DeepcrawlStatusResponse> {\n const task = await this.startDeepcrawl(url, options, requestOptions);\n return this.waitForDeepcrawl(task.taskId, waitOptions);\n }\n\n async usage(\n period?: TimeRange,\n requestOptions: RequestOptions = {}\n ): Promise<UsageResponse> {\n return this.requestJson<UsageResponse>('/usage', {\n ...requestOptions,\n query: { period },\n });\n }\n\n async health(requestOptions: RequestOptions = {}): Promise<HealthResponse> {\n return this.requestJson<HealthResponse>('/health', requestOptions);\n }\n\n /**\n * Report a Search1API problem, missing capability, or confusing docs. Free.\n * Never include credentials or personal data in the report.\n */\n async feedback(\n message: string,\n options: FeedbackOptions = {},\n requestOptions: RequestOptions = {}\n ): Promise<FeedbackResponse> {\n return this.requestJson<FeedbackResponse>('/feedback', {\n ...requestOptions,\n // Feedback has no idempotency key; a retry after a lost response would\n // file a duplicate report.\n maxRetries: requestOptions.maxRetries ?? 0,\n method: 'POST',\n body: compact({\n message,\n intent: options.intent,\n category: options.category,\n request_id: options.requestId,\n agent: options.agent\n ? compact({ name: options.agent.name, model: options.agent.model })\n : undefined,\n }),\n });\n }\n\n private async requestJson<T>(\n path: string,\n options: InternalRequestOptions = {}\n ): Promise<T> {\n const response = await this.request(path, options);\n const text = await response.text();\n try {\n return JSON.parse(text) as T;\n } catch (error) {\n throw new Search1APIError(\n `Search1API returned invalid JSON for ${path}`,\n { cause: error }\n );\n }\n }\n\n private async request(\n path: string,\n options: InternalRequestOptions = {}\n ): Promise<Response> {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n validateRequestLimits(options.timeoutMs ?? this.timeoutMs, maxRetries);\n const url = new URL(`${this.baseUrl}${path}`);\n for (const [name, value] of Object.entries(options.query || {})) {\n if (value !== undefined) url.searchParams.set(name, value);\n }\n\n for (let attempt = 0; attempt <= maxRetries; attempt += 1) {\n let response: Response;\n try {\n response = await this.fetchOnce(url, options);\n } catch (error) {\n if (\n attempt < maxRetries &&\n !options.signal?.aborted &&\n (error instanceof APIConnectionError ||\n error instanceof APITimeoutError)\n ) {\n await sleep(this.retryDelay(attempt), options.signal);\n continue;\n }\n throw error;\n }\n\n if (response.ok) return response;\n if (attempt < maxRetries && shouldRetry(response.status)) {\n await sleep(\n retryAfterMs(response) ?? this.retryDelay(attempt),\n options.signal\n );\n continue;\n }\n\n throw apiStatusError(\n response.status,\n response.headers,\n await errorBody(response)\n );\n }\n\n throw new Search1APIError('Search1API request exhausted its retry budget');\n }\n\n private async fetchOnce(\n url: URL,\n options: InternalRequestOptions\n ): Promise<Response> {\n const controller = new AbortController();\n let timedOut = false;\n const timeout = setTimeout(() => {\n timedOut = true;\n controller.abort();\n }, options.timeoutMs ?? this.timeoutMs);\n const onAbort = () => controller.abort(options.signal?.reason);\n options.signal?.addEventListener('abort', onAbort, { once: true });\n\n const headers = new Headers({\n Accept: 'application/json',\n Authorization: `Bearer ${this.apiKey}`,\n 'X-Search1API-Client': 'typescript/0.3.0',\n ...this.defaultHeaders,\n ...options.headers,\n });\n if (options.body !== undefined)\n headers.set('Content-Type', 'application/json');\n\n try {\n return await this.fetchClient(url, {\n method: options.method || 'GET',\n headers,\n body:\n options.body === undefined ? undefined : JSON.stringify(options.body),\n signal: controller.signal,\n });\n } catch (error) {\n if (timedOut) {\n throw new APITimeoutError(\n `Search1API request timed out after ${options.timeoutMs ?? this.timeoutMs}ms`,\n { cause: error }\n );\n }\n if (options.signal?.aborted) {\n throw new APIConnectionError('Search1API request was aborted', {\n cause: error,\n });\n }\n throw new APIConnectionError('Unable to connect to Search1API', {\n cause: error,\n });\n } finally {\n clearTimeout(timeout);\n options.signal?.removeEventListener('abort', onAbort);\n }\n }\n\n private retryDelay(attempt: number): number {\n const base = this.retryDelayMs * 2 ** attempt;\n return base + Math.floor(Math.random() * base * 0.25);\n }\n}\n"],
5
+ "mappings": ";AAEO,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,YAAY,SAAiB,SAAwB;AACnD,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,WAAW;AAAA,EACzB;AACF;AAEO,IAAM,+BAAN,cAA2C,gBAAgB;AAAC;AAE5D,IAAM,qBAAN,cAAiC,gBAAgB;AAAC;AAElD,IAAM,kBAAN,cAA8B,mBAAmB;AAAC;AAElD,IAAM,iBAAN,cAA6B,gBAAgB;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YACE,SACA,QACA,SACA,MACA;AACA,UAAM,OAAO;AACb,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,YAAY,QAAQ,IAAI,cAAc,KAAK;AAAA,EAClD;AACF;AAEO,IAAM,kBAAN,cAA8B,eAAe;AAAC;AAC9C,IAAM,sBAAN,cAAkC,eAAe;AAAC;AAClD,IAAM,uBAAN,cAAmC,eAAe;AAAC;AACnD,IAAM,gBAAN,cAA4B,eAAe;AAAC;AAC5C,IAAM,2BAAN,cAAuC,eAAe;AAAC;AACvD,IAAM,iBAAN,cAA6B,eAAe;AAAC;AAC7C,IAAM,sBAAN,cAAkC,eAAe;AAAC;AAElD,IAAM,uBAAN,cAAmC,gBAAgB;AAAA,EAC/C;AAAA,EAET,YAAY,UAAmC;AAC7C;AAAA,MACE,SAAS,SACP,SAAS,WACT,kBAAkB,SAAS,MAAM;AAAA,IACrC;AACA,SAAK,WAAW;AAAA,EAClB;AACF;AAEO,IAAM,wBAAN,cAAoC,gBAAgB;AAAA,EAChD;AAAA,EAET,YAAY,QAAgB,WAAmB;AAC7C,UAAM,kBAAkB,MAAM,0BAA0B,SAAS,IAAI;AACrE,SAAK,SAAS;AAAA,EAChB;AACF;AAEO,SAAS,eACd,QACA,SACA,MACgB;AAChB,QAAM,UACJ,MAAM,WACN,MAAM,UACN,MAAM,SACN,MAAM,SACN,yCAAyC,MAAM;AACjD,QAAM,aACJ,WAAW,MACP,kBACA,WAAW,MACT,sBACA,WAAW,MACT,uBACA,WAAW,MACT,gBACA,WAAW,MACT,2BACA,WAAW,MACT,iBACA,UAAU,MACR,sBACA;AAElB,SAAO,IAAI,WAAW,SAAS,QAAQ,SAAS,IAAI;AACtD;;;AClDA,IAAM,mBAAmB;AACzB,IAAM,qBAAqB;AAG3B,IAAM,yBAAyB;AAC/B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,qCAAqC;AAC3C,IAAM,+BAA+B;AAUrC,SAAS,oBAAwC;AAC/C,QAAM,cAAc;AAGpB,SAAO,YAAY,SAAS,KAAK;AACnC;AAEA,SAAS,QAA2C,OAAsB;AACxE,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,SAAS,MAAS;AAAA,EAC/D;AACF;AAEA,SAAS,WAAW,OAAe,SAAwB;AACzD,SAAO,QAAQ;AAAA,IACb;AAAA,IACA,gBAAgB,QAAQ;AAAA,IACxB,aAAa,QAAQ;AAAA,IACrB,MAAM,QAAQ;AAAA,IACd,eAAe,QAAQ;AAAA,IACvB,OAAO,QAAQ;AAAA,IACf,eAAe,QAAQ;AAAA,IACvB,eAAe,QAAQ;AAAA,IACvB,UAAU,QAAQ;AAAA,IAClB,YAAY,QAAQ;AAAA,EACtB,CAAC;AACH;AAEA,SAAS,SAAS,OAAe,SAAsB;AACrD,SAAO,QAAQ;AAAA,IACb;AAAA,IACA,gBAAgB,QAAQ;AAAA,IACxB,aAAa,QAAQ;AAAA,IACrB,eAAe,QAAQ;AAAA,IACvB,OAAO,QAAQ;AAAA,IACf,eAAe,QAAQ;AAAA,IACvB,eAAe,QAAQ;AAAA,IACvB,UAAU,QAAQ;AAAA,IAClB,YAAY,QAAQ;AAAA,EACtB,CAAC;AACH;AAEA,SAAS,eAAe,KAAa,SAA4B;AAC/D,SAAO,QAAQ;AAAA,IACb;AAAA,IACA,QAAQ,QAAQ;AAAA,IAChB,WAAW,QAAQ;AAAA,IACnB,UAAU,QAAQ,WACd,QAAQ;AAAA,MACN,OAAO,QAAQ,SAAS;AAAA,MACxB,QAAQ,QAAQ,SAAS;AAAA,MACzB,qBAAqB,QAAQ,SAAS;AAAA,IACxC,CAAC,IACD;AAAA,IACJ,YAAY,QAAQ;AAAA,IACpB,mBAAmB,QAAQ;AAAA,IAC3B,UAAU,QAAQ;AAAA,IAClB,UAAU,QAAQ;AAAA,IAClB,YAAY,QAAQ;AAAA,IACpB,SAAS,QAAQ;AAAA,IACjB,iBAAiB,QAAQ;AAAA,IACzB,cAAc,QAAQ;AAAA,IACtB,YAAY,QAAQ;AAAA,EACtB,CAAC;AACH;AAEA,SAAS,aAAa,UAAwC;AAC5D,QAAM,QAAQ,SAAS,QAAQ,IAAI,aAAa;AAChD,MAAI,CAAC,MAAO,QAAO;AAEnB,QAAM,UAAU,OAAO,KAAK;AAC5B,MAAI,OAAO,SAAS,OAAO,EAAG,QAAO,KAAK,IAAI,GAAG,UAAU,GAAK;AAEhE,QAAM,OAAO,KAAK,MAAM,KAAK;AAC7B,MAAI,OAAO,MAAM,IAAI,EAAG,QAAO;AAC/B,SAAO,KAAK,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC;AACtC;AAEA,SAAS,YAAY,QAAyB;AAC5C,SAAO,WAAW,OAAO,UAAU;AACrC;AAEA,SAAS,sBAAsB,WAAmB,YAA0B;AAC1E,MAAI,CAAC,OAAO,SAAS,SAAS,KAAK,aAAa,GAAG;AACjD,UAAM,IAAI,6BAA6B,4BAA4B;AAAA,EACrE;AACA,MAAI,CAAC,OAAO,UAAU,UAAU,KAAK,aAAa,GAAG;AACnD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,MAAM,IAAY,QAAqC;AAC9D,MAAI,QAAQ,SAAS;AACnB,WAAO,QAAQ;AAAA,MACb,IAAI,mBAAmB,gCAAgC;AAAA,IACzD;AAAA,EACF;AACA,MAAI,MAAM,EAAG,QAAO,QAAQ,QAAQ;AAEpC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,UAAU,WAAW,MAAM;AAC/B,cAAQ,oBAAoB,SAAS,OAAO;AAC5C,cAAQ;AAAA,IACV,GAAG,EAAE;AACL,UAAM,UAAU,MAAM;AACpB,mBAAa,OAAO;AACpB,aAAO,IAAI,mBAAmB,gCAAgC,CAAC;AAAA,IACjE;AACA,YAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,EAC3D,CAAC;AACH;AAEA,eAAe,UACb,UACmC;AACnC,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,QAAQ;AACN,WAAO,EAAE,SAAS,KAAK;AAAA,EACzB;AACF;AAEO,IAAM,aAAN,MAAiB;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEQ;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,YAAY,UAAsC,CAAC,GAAG;AACpD,UAAM,aACJ,OAAO,YAAY,WAAW,EAAE,QAAQ,QAAQ,IAAI;AACtD,UAAM,SAAS,WAAW,UAAU,kBAAkB;AACtD,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,UAAM,cAAc,WAAW,SAAS,WAAW;AACnD,QAAI,CAAC,aAAa;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,SAAK,SAAS;AACd,SAAK,WAAW,WAAW,WAAW,kBAAkB,QAAQ,QAAQ,EAAE;AAC1E,SAAK,cAAc;AACnB,SAAK,YAAY,WAAW,aAAa;AACzC,SAAK,aAAa,WAAW,cAAc;AAC3C,SAAK,eAAe,WAAW,gBAAgB;AAC/C,0BAAsB,KAAK,WAAW,KAAK,UAAU;AACrD,QAAI,CAAC,OAAO,SAAS,KAAK,YAAY,KAAK,KAAK,eAAe,GAAG;AAChE,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,SAAK,iBAAiB,WAAW,WAAW,CAAC;AAAA,EAC/C;AAAA,EAEA,MAAM,OACJ,OACA,UAAyB,CAAC,GAC1B,iBAAiC,CAAC,GACT;AACzB,WAAO,KAAK,YAA4B,WAAW;AAAA,MACjD,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,WAAW,OAAO,OAAO;AAAA,IACjC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,YACJ,UACA,iBAAiC,CAAC,GACM;AACxC,WAAO,KAAK,YAA2C,WAAW;AAAA,MAChE,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,SAAS,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,MAAM,WAAW,OAAO,OAAO,CAAC;AAAA,IAC1E,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,KACJ,OACA,UAAuB,CAAC,GACxB,iBAAiC,CAAC,GACX;AACvB,WAAO,KAAK,YAA0B,SAAS;AAAA,MAC7C,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,SAAS,OAAO,OAAO;AAAA,IAC/B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,UACJ,UACA,iBAAiC,CAAC,GACI;AACtC,WAAO,KAAK,YAAyC,SAAS;AAAA,MAC5D,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,SAAS,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,MAAM,SAAS,OAAO,OAAO,CAAC;AAAA,IACxE,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IACJ,OACA,iBAAiC,CAAC,GACZ;AACtB,WAAO,KAAK,YAAyB,QAAQ;AAAA,MAC3C,GAAG;AAAA,MACH,WAAW,eAAe,aAAa;AAAA,MACvC,QAAQ;AAAA,MACR,MAAM,EAAE,MAAM;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MACJ,KACA,UAAwB,CAAC,GACzB,iBAAiC,CAAC,GACV;AACxB,WAAO,KAAK,YAA2B,UAAU;AAAA,MAC/C,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,QAAQ,EAAE,KAAK,gBAAgB,QAAQ,eAAe,CAAC;AAAA,IAC/D,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,WACJ,UACA,iBAAiC,CAAC,GACR;AAC1B,WAAO,KAAK,YAA6B,UAAU;AAAA,MACjD,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,SAAS;AAAA,QAAI,CAAC,EAAE,KAAK,eAAe,MACxC,QAAQ,EAAE,KAAK,eAAe,CAAC;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,WACJ,KACA,UAA6B,CAAC,GAC9B,iBAAiC,CAAC,GACL;AAC7B,UAAM,WAAW,MAAM,KAAK,QAAQ,eAAe;AAAA,MACjD,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,QAAQ,SAAS,QAAQ,UAAU,KAAK;AAAA,QACxC,GAAG,eAAe;AAAA,MACpB;AAAA,MACA,MAAM,eAAe,KAAK,OAAO;AAAA,IACnC,CAAC;AACD,WAAO;AAAA,MACL,MAAM,IAAI,WAAW,MAAM,SAAS,YAAY,CAAC;AAAA,MACjD,aACE,SAAS,QAAQ,IAAI,cAAc,KAAK,SAAS,QAAQ,UAAU,KAAK;AAAA,MAC1E,WAAW,SAAS,QAAQ,IAAI,cAAc,KAAK;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,MAAM,QACJ,KACA,UAA0B,CAAC,GAC3B,iBAAiC,CAAC,GACR;AAC1B,WAAO,KAAK,YAA6B,YAAY;AAAA,MACnD,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,QAAQ,EAAE,KAAK,MAAM,QAAQ,KAAK,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,SACJ,eACA,UAA2B,CAAC,GAC5B,iBAAiC,CAAC,GACP;AAC3B,WAAO,KAAK,YAA8B,aAAa;AAAA,MACrD,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,QAAQ;AAAA,QACZ,gBAAgB;AAAA,QAChB,aAAa,QAAQ;AAAA,MACvB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QACJ,KACA,UAA0B,CAAC,GAC3B,iBAAiC,CAAC,GACL;AAC7B,WAAO,KAAK,YAAgC,YAAY;AAAA,MACtD,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,QAAQ;AAAA,QACZ;AAAA,QACA,QAAQ,QAAQ;AAAA,QAChB,iBAAiB,QAAQ;AAAA,MAC3B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,eACJ,KACA,UAA4B,CAAC,GAC7B,iBAAiC,CAAC,GACE;AACpC,WAAO,KAAK,YAAuC,cAAc;AAAA,MAC/D,GAAG;AAAA;AAAA;AAAA,MAGH,YAAY,eAAe,cAAc;AAAA,MACzC,QAAQ;AAAA,MACR,MAAM,QAAQ,EAAE,KAAK,MAAM,QAAQ,KAAK,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,mBACJ,QACA,iBAAiC,CAAC,GACA;AAClC,WAAO,KAAK;AAAA,MACV,qBAAqB,mBAAmB,MAAM,CAAC;AAAA,MAC/C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,iBACJ,QACA,UAAmC,CAAC,GACF;AAClC,UAAM,iBACJ,QAAQ,kBAAkB;AAC5B,UAAM,YAAY,QAAQ,aAAa;AACvC,UAAM,WAAW,KAAK,IAAI,IAAI;AAE9B,WAAO,MAAM;AACX,YAAM,WAAW,MAAM,KAAK,mBAAmB,QAAQ;AAAA,QACrD,QAAQ,QAAQ;AAAA,MAClB,CAAC;AACD,UAAI,SAAS,YAAY,QAAQ,SAAS,WAAW,aAAa;AAChE,eAAO;AAAA,MACT;AACA,UACE,SAAS,YAAY,SACrB,SAAS,WAAW,YACpB,SAAS,WAAW,aACpB;AACA,cAAM,IAAI,qBAAqB,QAAQ;AAAA,MACzC;AACA,UAAI,KAAK,IAAI,IAAI,iBAAiB,UAAU;AAC1C,cAAM,IAAI,sBAAsB,QAAQ,SAAS;AAAA,MACnD;AACA,YAAM,MAAM,gBAAgB,QAAQ,MAAM;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,MAAM,UACJ,KACA,UAA4B,CAAC,GAC7B,cAAuC,CAAC,GACxC,iBAAiC,CAAC,GACA;AAClC,UAAM,OAAO,MAAM,KAAK,eAAe,KAAK,SAAS,cAAc;AACnE,WAAO,KAAK,iBAAiB,KAAK,QAAQ,WAAW;AAAA,EACvD;AAAA,EAEA,MAAM,MACJ,QACA,iBAAiC,CAAC,GACV;AACxB,WAAO,KAAK,YAA2B,UAAU;AAAA,MAC/C,GAAG;AAAA,MACH,OAAO,EAAE,OAAO;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,iBAAiC,CAAC,GAA4B;AACzE,WAAO,KAAK,YAA4B,WAAW,cAAc;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SACJ,SACA,UAA2B,CAAC,GAC5B,iBAAiC,CAAC,GACP;AAC3B,WAAO,KAAK,YAA8B,aAAa;AAAA,MACrD,GAAG;AAAA;AAAA;AAAA,MAGH,YAAY,eAAe,cAAc;AAAA,MACzC,QAAQ;AAAA,MACR,MAAM,QAAQ;AAAA,QACZ;AAAA,QACA,QAAQ,QAAQ;AAAA,QAChB,UAAU,QAAQ;AAAA,QAClB,YAAY,QAAQ;AAAA,QACpB,OAAO,QAAQ,QACX,QAAQ,EAAE,MAAM,QAAQ,MAAM,MAAM,OAAO,QAAQ,MAAM,MAAM,CAAC,IAChE;AAAA,MACN,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,YACZ,MACA,UAAkC,CAAC,GACvB;AACZ,UAAM,WAAW,MAAM,KAAK,QAAQ,MAAM,OAAO;AACjD,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,QAAI;AACF,aAAO,KAAK,MAAM,IAAI;AAAA,IACxB,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR,wCAAwC,IAAI;AAAA,QAC5C,EAAE,OAAO,MAAM;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,QACZ,MACA,UAAkC,CAAC,GAChB;AACnB,UAAM,aAAa,QAAQ,cAAc,KAAK;AAC9C,0BAAsB,QAAQ,aAAa,KAAK,WAAW,UAAU;AACrE,UAAM,MAAM,IAAI,IAAI,GAAG,KAAK,OAAO,GAAG,IAAI,EAAE;AAC5C,eAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,QAAQ,SAAS,CAAC,CAAC,GAAG;AAC/D,UAAI,UAAU,OAAW,KAAI,aAAa,IAAI,MAAM,KAAK;AAAA,IAC3D;AAEA,aAAS,UAAU,GAAG,WAAW,YAAY,WAAW,GAAG;AACzD,UAAI;AACJ,UAAI;AACF,mBAAW,MAAM,KAAK,UAAU,KAAK,OAAO;AAAA,MAC9C,SAAS,OAAO;AACd,YACE,UAAU,cACV,CAAC,QAAQ,QAAQ,YAChB,iBAAiB,sBAChB,iBAAiB,kBACnB;AACA,gBAAM,MAAM,KAAK,WAAW,OAAO,GAAG,QAAQ,MAAM;AACpD;AAAA,QACF;AACA,cAAM;AAAA,MACR;AAEA,UAAI,SAAS,GAAI,QAAO;AACxB,UAAI,UAAU,cAAc,YAAY,SAAS,MAAM,GAAG;AACxD,cAAM;AAAA,UACJ,aAAa,QAAQ,KAAK,KAAK,WAAW,OAAO;AAAA,UACjD,QAAQ;AAAA,QACV;AACA;AAAA,MACF;AAEA,YAAM;AAAA,QACJ,SAAS;AAAA,QACT,SAAS;AAAA,QACT,MAAM,UAAU,QAAQ;AAAA,MAC1B;AAAA,IACF;AAEA,UAAM,IAAI,gBAAgB,+CAA+C;AAAA,EAC3E;AAAA,EAEA,MAAc,UACZ,KACA,SACmB;AACnB,UAAM,aAAa,IAAI,gBAAgB;AACvC,QAAI,WAAW;AACf,UAAM,UAAU,WAAW,MAAM;AAC/B,iBAAW;AACX,iBAAW,MAAM;AAAA,IACnB,GAAG,QAAQ,aAAa,KAAK,SAAS;AACtC,UAAM,UAAU,MAAM,WAAW,MAAM,QAAQ,QAAQ,MAAM;AAC7D,YAAQ,QAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAEjE,UAAM,UAAU,IAAI,QAAQ;AAAA,MAC1B,QAAQ;AAAA,MACR,eAAe,UAAU,KAAK,MAAM;AAAA,MACpC,uBAAuB;AAAA,MACvB,GAAG,KAAK;AAAA,MACR,GAAG,QAAQ;AAAA,IACb,CAAC;AACD,QAAI,QAAQ,SAAS;AACnB,cAAQ,IAAI,gBAAgB,kBAAkB;AAEhD,QAAI;AACF,aAAO,MAAM,KAAK,YAAY,KAAK;AAAA,QACjC,QAAQ,QAAQ,UAAU;AAAA,QAC1B;AAAA,QACA,MACE,QAAQ,SAAS,SAAY,SAAY,KAAK,UAAU,QAAQ,IAAI;AAAA,QACtE,QAAQ,WAAW;AAAA,MACrB,CAAC;AAAA,IACH,SAAS,OAAO;AACd,UAAI,UAAU;AACZ,cAAM,IAAI;AAAA,UACR,sCAAsC,QAAQ,aAAa,KAAK,SAAS;AAAA,UACzE,EAAE,OAAO,MAAM;AAAA,QACjB;AAAA,MACF;AACA,UAAI,QAAQ,QAAQ,SAAS;AAC3B,cAAM,IAAI,mBAAmB,kCAAkC;AAAA,UAC7D,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,YAAM,IAAI,mBAAmB,mCAAmC;AAAA,QAC9D,OAAO;AAAA,MACT,CAAC;AAAA,IACH,UAAE;AACA,mBAAa,OAAO;AACpB,cAAQ,QAAQ,oBAAoB,SAAS,OAAO;AAAA,IACtD;AAAA,EACF;AAAA,EAEQ,WAAW,SAAyB;AAC1C,UAAM,OAAO,KAAK,eAAe,KAAK;AACtC,WAAO,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI,OAAO,IAAI;AAAA,EACtD;AACF;",
6
6
  "names": []
7
7
  }
package/dist/types.d.ts CHANGED
@@ -3,11 +3,13 @@ export type JsonValue = JsonPrimitive | JsonValue[] | {
3
3
  [key: string]: JsonValue;
4
4
  };
5
5
  export type TimeRange = 'day' | 'week' | 'month' | 'year';
6
- export type SearchEngine = 'google' | 'bing' | 'duckduckgo' | 'yahoo' | 'youtube' | 'x' | 'reddit' | 'github' | 'arxiv' | 'wechat' | 'bilibili' | 'imdb' | 'wikipedia' | 'sogou' | 'baidu' | '360' | 'quark';
6
+ export type SearchEngine = 'google' | 'bing' | 'bingcn' | 'duckduckgo' | 'yahoo' | 'yandex' | 'youtube' | 'x' | 'reddit' | 'github' | 'arxiv' | 'wechat' | 'bilibili' | 'imdb' | 'wikipedia' | 'grokipedia' | 'baidu' | '360' | 'quark';
7
7
  export type NewsEngine = 'google' | 'bing' | 'duckduckgo' | 'yahoo' | 'hackernews' | 'reuters';
8
8
  export interface SearchOptions {
9
9
  searchService?: SearchEngine;
10
10
  maxResults?: number;
11
+ /** Native SERP page (1-100). Only `bing`, `bingcn`, `baidu`, and `grokipedia` paginate; other engines ignore it. */
12
+ page?: number;
11
13
  crawlResults?: number;
12
14
  image?: boolean;
13
15
  includeSites?: string[];
@@ -35,6 +37,7 @@ export interface SearchParameters {
35
37
  query: string;
36
38
  search_service?: SearchEngine;
37
39
  max_results: number;
40
+ page?: number;
38
41
  crawl_results: number;
39
42
  image: boolean;
40
43
  include_sites: string[];
@@ -42,14 +45,29 @@ export interface SearchParameters {
42
45
  language?: string;
43
46
  time_range?: TimeRange;
44
47
  }
45
- export interface NewsParameters extends Omit<SearchParameters, 'search_service'> {
48
+ export interface NewsParameters extends Omit<SearchParameters, 'search_service' | 'page'> {
46
49
  search_service?: NewsEngine;
47
50
  }
51
+ export interface SearchResultMetadata {
52
+ /** GitHub: result type, repository stars/language, or thread comments. */
53
+ kind?: 'repo' | 'issue' | 'pr' | 'discussion';
54
+ stars?: number;
55
+ language?: string;
56
+ /** GitHub threads and Hacker News news results. */
57
+ num_comments?: number;
58
+ /** Hacker News: votes and submitted article URL; link is the discussion. */
59
+ points?: number;
60
+ story_url?: string;
61
+ [key: string]: unknown;
62
+ }
48
63
  export interface SearchResult {
49
64
  title: string;
50
65
  link: string;
51
66
  snippet: string;
52
67
  content?: string;
68
+ /** ISO 8601 (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM:SSZ`); omitted when the source exposes no date. */
69
+ published_date?: string;
70
+ metadata?: SearchResultMetadata;
53
71
  [key: string]: unknown;
54
72
  }
55
73
  export interface SearchResponse {
@@ -62,6 +80,49 @@ export interface NewsResponse {
62
80
  results: SearchResult[];
63
81
  images?: string[];
64
82
  }
83
+ export interface AskIntent {
84
+ /** Keywords sent to the engines, with platform and time phrases removed. */
85
+ search_query: string;
86
+ /** Engines searched. */
87
+ sources: string[];
88
+ time_range: TimeRange | null;
89
+ }
90
+ export interface AskResult {
91
+ title: string;
92
+ link: string;
93
+ snippet: string;
94
+ published_date?: string;
95
+ /** Engine that returned the result. */
96
+ source: string;
97
+ /** Relevance to the query, 0.5-1 with two decimals. */
98
+ relevance: number;
99
+ }
100
+ export interface AskResponse {
101
+ query: string;
102
+ intent: AskIntent;
103
+ results: AskResult[];
104
+ /** Engines that failed while others completed. The request is still charged. */
105
+ errors: Array<{
106
+ source: string;
107
+ message: string;
108
+ }>;
109
+ }
110
+ export type FeedbackCategory = 'bug' | 'feature_request' | 'docs' | 'other';
111
+ export interface FeedbackOptions {
112
+ /** The task you were trying to complete. */
113
+ intent?: string;
114
+ category?: FeedbackCategory;
115
+ /** The original problem request's `x-search1api-request-id`, if available. */
116
+ requestId?: string;
117
+ agent?: {
118
+ name?: string;
119
+ model?: string;
120
+ };
121
+ }
122
+ export interface FeedbackResponse {
123
+ id: string;
124
+ status: 'new';
125
+ }
65
126
  export interface BatchItem<T> {
66
127
  success: boolean;
67
128
  data?: T;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@search1api/client",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "Official TypeScript client for Search1API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,7 +14,10 @@
14
14
  "require": "./dist/index.cjs"
15
15
  }
16
16
  },
17
- "files": ["dist", "README.md"],
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
18
21
  "sideEffects": false,
19
22
  "engines": {
20
23
  "node": ">=18"