@search1api/client 0.2.0 → 0.2.1
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/README.md +1 -1
- package/dist/generated.d.ts +56 -32
- package/dist/generated.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Official TypeScript client for Search1API. It supports Node.js 18+ and runtimes
|
|
4
4
|
with a standards-compatible `fetch` implementation.
|
|
5
5
|
|
|
6
|
-
API documentation: [search1api.com/docs](https://
|
|
6
|
+
API documentation: [search1api.com/docs](https://s1.dev/docs)
|
|
7
7
|
|
|
8
8
|
## Install
|
|
9
9
|
|
package/dist/generated.d.ts
CHANGED
|
@@ -12,7 +12,10 @@ export interface paths {
|
|
|
12
12
|
};
|
|
13
13
|
get?: never;
|
|
14
14
|
put?: never;
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Render a web page as a PNG, JPEG, or WebP image
|
|
17
|
+
* @description Render a public webpage as a PNG, JPEG, or WebP image. Use it when appearance is the point — layout checks, visual previews, or content that does not survive text extraction — and control the viewport, when the page counts as ready, and whether to capture the full document or a single element by CSS selector. When you want the page's text instead, call POST /crawl. Costs 2 credits per request.
|
|
18
|
+
*/
|
|
16
19
|
post: operations["screenshot"];
|
|
17
20
|
delete?: never;
|
|
18
21
|
options?: never;
|
|
@@ -29,7 +32,10 @@ export interface paths {
|
|
|
29
32
|
};
|
|
30
33
|
get?: never;
|
|
31
34
|
put?: never;
|
|
32
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Search the web using multiple search engines
|
|
37
|
+
* @description Search the live public web when the answer depends on current information, sources, or research a model's training data cannot cover. Returns ranked results with id, title, URL, and snippet across 13+ engines, with optional images. Set `crawl_results` to pull the top N result pages in the same call — each crawled page is billed as an additional crawl — or pass a result URL to POST /crawl separately. Costs 1 credit per request.
|
|
38
|
+
*/
|
|
33
39
|
post: operations["search"];
|
|
34
40
|
delete?: never;
|
|
35
41
|
options?: never;
|
|
@@ -46,7 +52,10 @@ export interface paths {
|
|
|
46
52
|
};
|
|
47
53
|
get?: never;
|
|
48
54
|
put?: never;
|
|
49
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Search news articles across multiple sources
|
|
57
|
+
* @description Search recent news when the question is about events, announcements, or coverage rather than reference material. Returns articles from verified publishers with title, URL, snippet, and optional full page content, filterable by site, language, and time range. For questions that are not time-sensitive, prefer POST /search. Costs 1 credit per request.
|
|
58
|
+
*/
|
|
50
59
|
post: operations["news"];
|
|
51
60
|
delete?: never;
|
|
52
61
|
options?: never;
|
|
@@ -63,7 +72,10 @@ export interface paths {
|
|
|
63
72
|
};
|
|
64
73
|
get?: never;
|
|
65
74
|
put?: never;
|
|
66
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Crawl a URL and extract its content
|
|
77
|
+
* @description Fetch one public URL and return its readable title and body as clean text, with navigation, boilerplate, and scripts stripped. Use it on a URL the user supplied or one returned by POST /search. To ingest a whole site rather than a single page, use POST /deepcrawl. Costs 1 credit per request.
|
|
78
|
+
*/
|
|
67
79
|
post: operations["crawl"];
|
|
68
80
|
delete?: never;
|
|
69
81
|
options?: never;
|
|
@@ -80,7 +92,10 @@ export interface paths {
|
|
|
80
92
|
};
|
|
81
93
|
get?: never;
|
|
82
94
|
put?: never;
|
|
83
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Extract sitemap URLs from a website
|
|
97
|
+
* @description Discover the public URLs of a site when you need to know which pages exist before fetching any of them — scoping a crawl, auditing coverage, or locating a section. Returns the links discovered for the given page or domain; it does not fetch their content. Costs 1 credit per request.
|
|
98
|
+
*/
|
|
84
99
|
post: operations["sitemap"];
|
|
85
100
|
delete?: never;
|
|
86
101
|
options?: never;
|
|
@@ -97,7 +112,10 @@ export interface paths {
|
|
|
97
112
|
};
|
|
98
113
|
get?: never;
|
|
99
114
|
put?: never;
|
|
100
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Get trending topics from various platforms
|
|
117
|
+
* @description List what is currently popular on a supported platform, such as GitHub repositories or Hacker News stories, when the user asks what is trending or new right now. This reads a platform's own live ranking rather than performing a query — for topic searches use POST /search. Costs 1 credit per request.
|
|
118
|
+
*/
|
|
101
119
|
post: operations["trending"];
|
|
102
120
|
delete?: never;
|
|
103
121
|
options?: never;
|
|
@@ -114,7 +132,10 @@ export interface paths {
|
|
|
114
132
|
};
|
|
115
133
|
get?: never;
|
|
116
134
|
put?: never;
|
|
117
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Extract structured content from a URL
|
|
137
|
+
* @description Pull structured data out of a single webpage using a natural-language prompt and a JSON schema you supply. Use it when you need specific fields — prices, specifications, contact details — rather than the whole document; when you want the full text, use POST /crawl. Costs 10 credits per request.
|
|
138
|
+
*/
|
|
118
139
|
post: operations["extract"];
|
|
119
140
|
delete?: never;
|
|
120
141
|
options?: never;
|
|
@@ -131,7 +152,10 @@ export interface paths {
|
|
|
131
152
|
};
|
|
132
153
|
get?: never;
|
|
133
154
|
put?: never;
|
|
134
|
-
/**
|
|
155
|
+
/**
|
|
156
|
+
* Deep crawl a website across multiple pages
|
|
157
|
+
* @description Start an asynchronous crawl of an entire site and package the pages as documents. Use it for whole-site ingestion; a single page is POST /crawl. The call returns a task id immediately rather than the result — poll GET /deepcrawl/status/{taskId} until the task reports completion. Costs 20 credits per request.
|
|
158
|
+
*/
|
|
135
159
|
post: operations["deepcrawl"];
|
|
136
160
|
delete?: never;
|
|
137
161
|
options?: never;
|
|
@@ -146,7 +170,10 @@ export interface paths {
|
|
|
146
170
|
path?: never;
|
|
147
171
|
cookie?: never;
|
|
148
172
|
};
|
|
149
|
-
/**
|
|
173
|
+
/**
|
|
174
|
+
* Check deepcrawl task status
|
|
175
|
+
* @description Poll a deepcrawl task started by POST /deepcrawl. Returns the task's current state and, once it finishes, where to retrieve the packaged result. Safe to call repeatedly. Free to call.
|
|
176
|
+
*/
|
|
150
177
|
get: operations["deepcrawlStatus"];
|
|
151
178
|
put?: never;
|
|
152
179
|
post?: never;
|
|
@@ -163,7 +190,10 @@ export interface paths {
|
|
|
163
190
|
path?: never;
|
|
164
191
|
cookie?: never;
|
|
165
192
|
};
|
|
166
|
-
/**
|
|
193
|
+
/**
|
|
194
|
+
* Health check
|
|
195
|
+
* @description Report whether the API is serving traffic. Takes no credentials, so use it for uptime and readiness checks — it will not tell you whether an API key is valid; call GET /usage for that. Free to call.
|
|
196
|
+
*/
|
|
167
197
|
get: operations["health"];
|
|
168
198
|
put?: never;
|
|
169
199
|
post?: never;
|
|
@@ -180,7 +210,10 @@ export interface paths {
|
|
|
180
210
|
path?: never;
|
|
181
211
|
cookie?: never;
|
|
182
212
|
};
|
|
183
|
-
/**
|
|
213
|
+
/**
|
|
214
|
+
* Get API key usage statistics
|
|
215
|
+
* @description Return the remaining credit balance for the authenticated account. Use it to check headroom before starting an expensive job such as a deepcrawl, or to confirm an API key works. Free to call.
|
|
216
|
+
*/
|
|
184
217
|
get: operations["usage"];
|
|
185
218
|
put?: never;
|
|
186
219
|
post?: never;
|
|
@@ -252,7 +285,7 @@ export interface components {
|
|
|
252
285
|
CrawlRequest: {
|
|
253
286
|
/** Format: uri */
|
|
254
287
|
url: string;
|
|
255
|
-
/** @default
|
|
288
|
+
/** @default true */
|
|
256
289
|
enableFallback: boolean;
|
|
257
290
|
};
|
|
258
291
|
SitemapRequest: {
|
|
@@ -512,6 +545,15 @@ export interface operations {
|
|
|
512
545
|
"application/problem+json": components["schemas"]["ApiError"];
|
|
513
546
|
};
|
|
514
547
|
};
|
|
548
|
+
/** @description Forbidden */
|
|
549
|
+
403: {
|
|
550
|
+
headers: {
|
|
551
|
+
[name: string]: unknown;
|
|
552
|
+
};
|
|
553
|
+
content: {
|
|
554
|
+
"application/json": components["schemas"]["ApiError"];
|
|
555
|
+
};
|
|
556
|
+
};
|
|
515
557
|
/** @description Validation Error */
|
|
516
558
|
422: {
|
|
517
559
|
headers: {
|
|
@@ -651,15 +693,6 @@ export interface operations {
|
|
|
651
693
|
"application/problem+json": components["schemas"]["ApiError"];
|
|
652
694
|
};
|
|
653
695
|
};
|
|
654
|
-
/** @description Not Found */
|
|
655
|
-
404: {
|
|
656
|
-
headers: {
|
|
657
|
-
[name: string]: unknown;
|
|
658
|
-
};
|
|
659
|
-
content: {
|
|
660
|
-
"application/json": components["schemas"]["ApiError"];
|
|
661
|
-
};
|
|
662
|
-
};
|
|
663
696
|
/** @description Validation Error */
|
|
664
697
|
422: {
|
|
665
698
|
headers: {
|
|
@@ -781,15 +814,6 @@ export interface operations {
|
|
|
781
814
|
"application/problem+json": components["schemas"]["ApiError"];
|
|
782
815
|
};
|
|
783
816
|
};
|
|
784
|
-
/** @description Not Found */
|
|
785
|
-
404: {
|
|
786
|
-
headers: {
|
|
787
|
-
[name: string]: unknown;
|
|
788
|
-
};
|
|
789
|
-
content: {
|
|
790
|
-
"application/json": components["schemas"]["ApiError"];
|
|
791
|
-
};
|
|
792
|
-
};
|
|
793
817
|
/** @description Validation Error */
|
|
794
818
|
422: {
|
|
795
819
|
headers: {
|
|
@@ -840,12 +864,12 @@ export interface operations {
|
|
|
840
864
|
"application/json": {
|
|
841
865
|
/** Format: uri */
|
|
842
866
|
url: string;
|
|
843
|
-
/** @default
|
|
867
|
+
/** @default true */
|
|
844
868
|
enableFallback?: boolean;
|
|
845
869
|
} | {
|
|
846
870
|
/** Format: uri */
|
|
847
871
|
url: string;
|
|
848
|
-
/** @default
|
|
872
|
+
/** @default true */
|
|
849
873
|
enableFallback?: boolean;
|
|
850
874
|
}[];
|
|
851
875
|
};
|
package/dist/generated.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../src/generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../src/generated.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -444,7 +444,7 @@ var Search1API = class {
|
|
|
444
444
|
const headers = new Headers({
|
|
445
445
|
Accept: "application/json",
|
|
446
446
|
Authorization: `Bearer ${this.apiKey}`,
|
|
447
|
-
"X-Search1API-Client": "typescript/0.2.
|
|
447
|
+
"X-Search1API-Client": "typescript/0.2.1",
|
|
448
448
|
...this.defaultHeaders,
|
|
449
449
|
...options.headers
|
|
450
450
|
});
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/errors.ts", "../src/client.ts"],
|
|
4
|
-
"sourcesContent": ["export { Search1API } from './client.js';\nexport {\n APIConnectionError,\n APIStatusError,\n APITimeoutError,\n AuthenticationError,\n BadRequestError,\n DeepcrawlFailedError,\n DeepcrawlTimeoutError,\n InternalServerError,\n NotFoundError,\n PaymentRequiredError,\n RateLimitError,\n Search1APIConfigurationError,\n Search1APIError,\n UnprocessableEntityError,\n} from './errors.js';\nexport type * from './types.js';\nexport type {\n components as OpenAPIComponents,\n paths as OpenAPIPaths,\n} from './generated.js';\n", "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.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"],
|
|
4
|
+
"sourcesContent": ["export { Search1API } from './client.js';\nexport {\n APIConnectionError,\n APIStatusError,\n APITimeoutError,\n AuthenticationError,\n BadRequestError,\n DeepcrawlFailedError,\n DeepcrawlTimeoutError,\n InternalServerError,\n NotFoundError,\n PaymentRequiredError,\n RateLimitError,\n Search1APIConfigurationError,\n Search1APIError,\n UnprocessableEntityError,\n} from './errors.js';\nexport type * from './types.js';\nexport type {\n components as OpenAPIComponents,\n paths as OpenAPIPaths,\n} from './generated.js';\n", "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
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -404,7 +404,7 @@ var Search1API = class {
|
|
|
404
404
|
const headers = new Headers({
|
|
405
405
|
Accept: "application/json",
|
|
406
406
|
Authorization: `Bearer ${this.apiKey}`,
|
|
407
|
-
"X-Search1API-Client": "typescript/0.2.
|
|
407
|
+
"X-Search1API-Client": "typescript/0.2.1",
|
|
408
408
|
...this.defaultHeaders,
|
|
409
409
|
...options.headers
|
|
410
410
|
});
|
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.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"],
|
|
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
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@search1api/client",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Official TypeScript client for Search1API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
|
-
"homepage": "https://
|
|
29
|
+
"homepage": "https://s1.dev",
|
|
30
30
|
"bugs": {
|
|
31
31
|
"url": "https://github.com/superagents-lab/search1api-js/issues"
|
|
32
32
|
},
|