stophy 0.2.1 → 1.0.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/README.md +59 -69
- package/dist/index.cjs +562 -282
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22754 -664
- package/dist/index.d.ts +22754 -664
- package/dist/index.js +562 -282
- package/dist/index.js.map +1 -1
- package/package.json +13 -10
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generated/client.gen.ts","../src/generated/sdk.gen.ts","../src/errors.ts","../src/transport.ts","../src/methods/account.ts","../src/methods/channel.ts","../src/methods/playlist.ts","../src/methods/search.ts","../src/methods/suggest.ts","../src/methods/video.ts","../src/client.ts"],"names":["createClient","createConfig","client"],"mappings":"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","file":"index.cjs","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ClientOptions } from \"./types.gen\";\nimport {\n type Config,\n type ClientOptions as DefaultClientOptions,\n createClient,\n createConfig,\n} from \"@hey-api/client-fetch\";\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> =\n (\n override?: Config<DefaultClientOptions & T>\n ) => Config<Required<DefaultClientOptions> & T>;\n\nexport const client = createClient(\n createConfig<ClientOptions>({\n baseUrl: \"https://api.stophy.dev\",\n })\n);\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type {\n Options as ClientOptions,\n TDataShape,\n Client,\n} from \"@hey-api/client-fetch\";\nimport type {\n GetVideoData,\n GetVideoResponse,\n GetVideoError,\n SearchVideosData,\n SearchVideosResponse,\n SearchVideosError,\n GetChannelData,\n GetChannelResponse,\n GetChannelError,\n GetPlaylistData,\n GetPlaylistResponse,\n GetPlaylistError,\n GetSuggestionsData,\n GetSuggestionsResponse,\n GetSuggestionsError,\n GetCreditsData,\n GetCreditsResponse,\n GetCreditsError,\n GetLogsData,\n GetLogsResponse,\n GetLogsError,\n GetUsageData,\n GetUsageResponse,\n GetUsageError,\n} from \"./types.gen\";\nimport { client as _heyApiClient } from \"./client.gen\";\n\nexport type Options<\n TData extends TDataShape = TDataShape,\n ThrowOnError extends boolean = boolean\n> = ClientOptions<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Video\n * Fetch video details, transcript, comments, replies, or live chat. Pass type: details for metadata, transcript for timestamped captions, comments for top-level comments, replies for a comment thread (pass the repliesToken from a comment as continuationToken), or livechat for live stream chat messages.\n */\nexport const getVideo = <ThrowOnError extends boolean = false>(\n options: Options<GetVideoData, ThrowOnError>\n) => {\n return (options.client ?? _heyApiClient).post<\n GetVideoResponse,\n GetVideoError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/video\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n};\n\n/**\n * Search\n * Search YouTube with optional filters for content type, sort order, upload date, duration, and features. Returns paginated results.\n */\nexport const searchVideos = <ThrowOnError extends boolean = false>(\n options: Options<SearchVideosData, ThrowOnError>\n) => {\n return (options.client ?? _heyApiClient).post<\n SearchVideosResponse,\n SearchVideosError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/search\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n};\n\n/**\n * Channel\n * Retrieve channel metadata and content by channelUrl. Use the tab field to switch between videos, shorts, playlists, and about info.\n */\nexport const getChannel = <ThrowOnError extends boolean = false>(\n options: Options<GetChannelData, ThrowOnError>\n) => {\n return (options.client ?? _heyApiClient).post<\n GetChannelResponse,\n GetChannelError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/channel\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n};\n\n/**\n * Playlist\n * Retrieve items from a YouTube playlist. Use continuationToken to page through long playlists.\n */\nexport const getPlaylist = <ThrowOnError extends boolean = false>(\n options: Options<GetPlaylistData, ThrowOnError>\n) => {\n return (options.client ?? _heyApiClient).post<\n GetPlaylistResponse,\n GetPlaylistError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/playlist\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n};\n\n/**\n * Suggest\n * Get YouTube search autocomplete suggestions for a query.\n */\nexport const getSuggestions = <ThrowOnError extends boolean = false>(\n options: Options<GetSuggestionsData, ThrowOnError>\n) => {\n return (options.client ?? _heyApiClient).get<\n GetSuggestionsResponse,\n GetSuggestionsError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/suggest\",\n ...options,\n });\n};\n\n/**\n * Credits\n * Return the current credit balance for the authenticated API key.\n */\nexport const getCredits = <ThrowOnError extends boolean = false>(\n options?: Options<GetCreditsData, ThrowOnError>\n) => {\n return (options?.client ?? _heyApiClient).get<\n GetCreditsResponse,\n GetCreditsError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/credits\",\n ...options,\n });\n};\n\n/**\n * Logs\n * Return recent API request logs for the authenticated key.\n */\nexport const getLogs = <ThrowOnError extends boolean = false>(\n options?: Options<GetLogsData, ThrowOnError>\n) => {\n return (options?.client ?? _heyApiClient).get<\n GetLogsResponse,\n GetLogsError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/logs\",\n ...options,\n });\n};\n\n/**\n * Usage\n * Return daily credit and request counts for the authenticated key.\n */\nexport const getUsage = <ThrowOnError extends boolean = false>(\n options?: Options<GetUsageData, ThrowOnError>\n) => {\n return (options?.client ?? _heyApiClient).get<\n GetUsageResponse,\n GetUsageError,\n ThrowOnError\n >({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\",\n },\n ],\n url: \"/v1/usage\",\n ...options,\n });\n};\n","import type { ErrorResponse } from \"./generated/types.gen\";\n\n/** Thrown when the Stophy API responds with a non-success status. */\nexport class StophyError extends Error {\n\treadonly code?: ErrorResponse[\"code\"];\n\treadonly status: number;\n\treadonly requestId?: string;\n\treadonly details?: unknown;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\tstatus: number;\n\t\t\tcode?: ErrorResponse[\"code\"];\n\t\t\trequestId?: string;\n\t\t\tdetails?: unknown;\n\t\t},\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"StophyError\";\n\t\tthis.status = options.status;\n\t\tthis.code = options.code;\n\t\tthis.requestId = options.requestId;\n\t\tthis.details = options.details;\n\t}\n}\n","import { type Client, createClient, createConfig } from \"@hey-api/client-fetch\";\nimport { StophyError } from \"./errors\";\nimport type { ErrorResponse } from \"./generated/types.gen\";\n\nconst DEFAULT_BASE_URL = \"https://api.stophy.dev\";\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);\n\nexport interface TransportOptions {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tfetch?: typeof globalThis.fetch;\n\theaders?: Record<string, string>;\n\tmaxRetries?: number;\n\tretryInitialDelayMs?: number;\n}\n\nexport function createTransport(options: TransportOptions): Client {\n\tconst baseFetch = options.fetch ?? globalThis.fetch;\n\treturn createClient(\n\t\tcreateConfig({\n\t\t\tbaseUrl: options.baseUrl ?? DEFAULT_BASE_URL,\n\t\t\tauth: () => options.apiKey,\n\t\t\theaders: options.headers,\n\t\t\tfetch: withRetries(\n\t\t\t\tbaseFetch,\n\t\t\t\toptions.maxRetries ?? 2,\n\t\t\t\toptions.retryInitialDelayMs ?? 500,\n\t\t\t),\n\t\t}),\n\t);\n}\n\ntype FetchFn = (\n\tinput: Request | URL | string,\n\tinit?: RequestInit,\n) => Promise<Response>;\n\nfunction withRetries(\n\tbaseFetch: typeof globalThis.fetch,\n\tmaxRetries: number,\n\tinitialDelayMs: number,\n): FetchFn {\n\tif (maxRetries <= 0) return baseFetch;\n\n\treturn async (input, init) => {\n\t\tfor (let attempt = 0; ; attempt++) {\n\t\t\tconst request = input instanceof Request ? input.clone() : input;\n\t\t\ttry {\n\t\t\t\tconst response = await baseFetch(request, init);\n\t\t\t\tif (attempt < maxRetries && RETRYABLE_STATUS.has(response.status)) {\n\t\t\t\t\tawait sleep(\n\t\t\t\t\t\tretryAfterMs(response) ?? backoffMs(attempt, initialDelayMs),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treturn response;\n\t\t\t} catch (error) {\n\t\t\t\tif (attempt >= maxRetries) throw error;\n\t\t\t\tawait sleep(backoffMs(attempt, initialDelayMs));\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction backoffMs(attempt: number, base: number): number {\n\tconst window = base * 2 ** attempt;\n\treturn window / 2 + Math.random() * (window / 2);\n}\n\nfunction retryAfterMs(response: Response): number | null {\n\tconst header = response.headers.get(\"retry-after\");\n\tif (!header) return null;\n\tconst seconds = Number(header);\n\tif (!Number.isNaN(seconds)) return seconds * 1000;\n\tconst date = Date.parse(header);\n\treturn Number.isNaN(date) ? null : Math.max(0, date - Date.now());\n}\n\nfunction sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function unwrap<T>(result: {\n\tdata?: T;\n\terror?: unknown;\n\tresponse: Response;\n}): T {\n\tif (result.error === undefined && result.data !== undefined)\n\t\treturn result.data;\n\n\tconst error = (result.error ?? {}) as Partial<ErrorResponse>;\n\tthrow new StophyError(\n\t\terror.error ??\n\t\t\t`Stophy request failed with status ${result.response.status}`,\n\t\t{\n\t\t\tstatus: result.response.status,\n\t\t\tcode: error.code,\n\t\t\trequestId: result.response.headers.get(\"x-request-id\") ?? undefined,\n\t\t\tdetails: error.details,\n\t\t},\n\t);\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport { getCredits, getLogs, getUsage } from \"../generated/sdk.gen\";\nimport type {\n\tGetCreditsResponse,\n\tGetLogsData,\n\tGetLogsResponse,\n\tGetUsageData,\n\tGetUsageResponse,\n} from \"../generated/types.gen\";\nimport { unwrap } from \"../transport\";\n\nexport function credits(client: Client): Promise<GetCreditsResponse> {\n\treturn getCredits({ client }).then(unwrap);\n}\n\nexport function logs(\n\tclient: Client,\n\tquery?: GetLogsData[\"query\"],\n): Promise<GetLogsResponse> {\n\treturn getLogs({ client, query }).then(unwrap);\n}\n\nexport function usage(\n\tclient: Client,\n\tquery?: GetUsageData[\"query\"],\n): Promise<GetUsageResponse> {\n\treturn getUsage({ client, query }).then(unwrap);\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport { getChannel } from \"../generated/sdk.gen\";\nimport type {\n\tGetChannelData,\n\tGetChannelResponse,\n} from \"../generated/types.gen\";\nimport { unwrap } from \"../transport\";\n\ntype ChannelBody = GetChannelData[\"body\"];\nexport type ChannelOptions = Omit<ChannelBody, \"channelUrl\">;\n\nexport function channel(\n\tclient: Client,\n\turlOrBody: string | ChannelBody,\n\toptions: ChannelOptions = {},\n): Promise<GetChannelResponse> {\n\tconst body =\n\t\ttypeof urlOrBody === \"string\"\n\t\t\t? { channelUrl: urlOrBody, ...options }\n\t\t\t: urlOrBody;\n\treturn getChannel({ client, body }).then(unwrap);\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport { getPlaylist } from \"../generated/sdk.gen\";\nimport type {\n\tGetPlaylistData,\n\tGetPlaylistResponse,\n} from \"../generated/types.gen\";\nimport { unwrap } from \"../transport\";\n\ntype PlaylistBody = GetPlaylistData[\"body\"];\nexport type PlaylistOptions = Omit<PlaylistBody, \"playlistUrl\">;\n\nexport function playlist(\n\tclient: Client,\n\turlOrBody: string | PlaylistBody,\n\toptions: PlaylistOptions = {},\n): Promise<GetPlaylistResponse> {\n\tconst body =\n\t\ttypeof urlOrBody === \"string\"\n\t\t\t? { playlistUrl: urlOrBody, ...options }\n\t\t\t: urlOrBody;\n\treturn getPlaylist({ client, body }).then(unwrap);\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport { searchVideos } from \"../generated/sdk.gen\";\nimport type {\n\tSearchVideosData,\n\tSearchVideosResponse,\n} from \"../generated/types.gen\";\nimport { unwrap } from \"../transport\";\n\ntype SearchBody = SearchVideosData[\"body\"];\nexport type SearchOptions = Omit<SearchBody, \"q\">;\n\nexport function search(\n\tclient: Client,\n\tqueryOrBody: string | SearchBody,\n\toptions: SearchOptions = {},\n): Promise<SearchVideosResponse> {\n\tif (typeof queryOrBody === \"string\" && !queryOrBody.trim()) {\n\t\tthrow new Error(\"query cannot be empty\");\n\t}\n\tconst body =\n\t\ttypeof queryOrBody === \"string\"\n\t\t\t? { q: queryOrBody, ...options }\n\t\t\t: queryOrBody;\n\treturn searchVideos({ client, body }).then(unwrap);\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport { getSuggestions } from \"../generated/sdk.gen\";\nimport type {\n\tGetSuggestionsData,\n\tGetSuggestionsResponse,\n} from \"../generated/types.gen\";\nimport { unwrap } from \"../transport\";\n\ntype SuggestQuery = GetSuggestionsData[\"query\"];\nexport type SuggestOptions = Omit<SuggestQuery, \"q\">;\n\nexport function suggest(\n\tclient: Client,\n\tqueryOrOptions: string | SuggestQuery,\n\toptions: SuggestOptions = {},\n): Promise<GetSuggestionsResponse> {\n\tif (typeof queryOrOptions === \"string\" && !queryOrOptions.trim()) {\n\t\tthrow new Error(\"query cannot be empty\");\n\t}\n\tconst query =\n\t\ttypeof queryOrOptions === \"string\"\n\t\t\t? { q: queryOrOptions, ...options }\n\t\t\t: queryOrOptions;\n\treturn getSuggestions({ client, query }).then(unwrap);\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport { getVideo } from \"../generated/sdk.gen\";\nimport type {\n\tCommentsData,\n\tGetVideoData,\n\tGetVideoResponse,\n\tLiveChatData,\n\tTranscriptResult,\n\tVideoDetailsData,\n} from \"../generated/types.gen\";\nimport { unwrap } from \"../transport\";\n\nexport type VideoResponseFor<T> = Omit<GetVideoResponse, \"data\"> & { data: T };\ntype VideoUrlBody = Extract<GetVideoData[\"body\"], { videoUrl: string }>;\nexport type CommentsOptions = Pick<\n\tVideoUrlBody,\n\t\"sortBy\" | \"continuationToken\"\n>;\nexport type LiveChatOptions = Pick<\n\tVideoUrlBody,\n\t\"chatType\" | \"continuationToken\"\n>;\n\nexport async function video(\n\tclient: Client,\n\tbody: GetVideoData[\"body\"],\n): Promise<GetVideoResponse> {\n\treturn unwrap(await getVideo({ client, body }));\n}\n\nexport function videoDetails(\n\tclient: Client,\n\tvideoUrl: string,\n): Promise<VideoResponseFor<VideoDetailsData>> {\n\treturn video(client, { type: \"details\", videoUrl }) as Promise<\n\t\tVideoResponseFor<VideoDetailsData>\n\t>;\n}\n\nexport function transcript(\n\tclient: Client,\n\tvideoUrl: string,\n): Promise<VideoResponseFor<TranscriptResult>> {\n\treturn video(client, { type: \"transcript\", videoUrl }) as Promise<\n\t\tVideoResponseFor<TranscriptResult>\n\t>;\n}\n\nexport function comments(\n\tclient: Client,\n\tvideoUrl: string,\n\toptions: CommentsOptions = {},\n): Promise<VideoResponseFor<CommentsData>> {\n\treturn video(client, {\n\t\ttype: \"comments\",\n\t\tvideoUrl,\n\t\t...options,\n\t}) as Promise<VideoResponseFor<CommentsData>>;\n}\n\nexport function replies(\n\tclient: Client,\n\tcontinuationToken: string,\n): Promise<VideoResponseFor<CommentsData>> {\n\treturn video(client, {\n\t\ttype: \"replies\",\n\t\tcontinuationToken,\n\t}) as Promise<VideoResponseFor<CommentsData>>;\n}\n\nexport function liveChat(\n\tclient: Client,\n\tvideoUrl: string,\n\toptions: LiveChatOptions = {},\n): Promise<VideoResponseFor<LiveChatData>> {\n\treturn video(client, {\n\t\ttype: \"livechat\",\n\t\tvideoUrl,\n\t\t...options,\n\t}) as Promise<VideoResponseFor<LiveChatData>>;\n}\n","import type { Client } from \"@hey-api/client-fetch\";\nimport type {\n\tCommentsData,\n\tGetChannelData,\n\tGetChannelResponse,\n\tGetCreditsResponse,\n\tGetLogsData,\n\tGetLogsResponse,\n\tGetPlaylistData,\n\tGetPlaylistResponse,\n\tGetSuggestionsData,\n\tGetSuggestionsResponse,\n\tGetUsageData,\n\tGetUsageResponse,\n\tGetVideoData,\n\tGetVideoResponse,\n\tLiveChatData,\n\tSearchVideosData,\n\tSearchVideosResponse,\n\tTranscriptResult,\n\tVideoDetailsData,\n} from \"./generated/types.gen\";\nimport * as accountMethods from \"./methods/account\";\nimport { type ChannelOptions, channel as getChannel } from \"./methods/channel\";\nimport {\n\tplaylist as getPlaylist,\n\ttype PlaylistOptions,\n} from \"./methods/playlist\";\nimport { type SearchOptions, search as searchVideos } from \"./methods/search\";\nimport {\n\tsuggest as getSuggestions,\n\ttype SuggestOptions,\n} from \"./methods/suggest\";\nimport type {\n\tCommentsOptions,\n\tLiveChatOptions,\n\tVideoResponseFor,\n} from \"./methods/video\";\nimport * as videoMethods from \"./methods/video\";\nimport { createTransport } from \"./transport\";\n\nexport interface StophyOptions {\n\t/** Defaults to `STOPHY_API_KEY`. */\n\tapiKey?: string;\n\t/** Defaults to `STOPHY_BASE_URL` or `https://api.stophy.dev`. */\n\tbaseUrl?: string;\n\tfetch?: typeof globalThis.fetch;\n\theaders?: Record<string, string>;\n\tmaxRetries?: number;\n\tretryInitialDelayMs?: number;\n}\n\nexport type StophyClientInput = StophyOptions | string;\n\nfunction env(name: string): string | undefined {\n\treturn typeof process === \"undefined\" ? undefined : process.env[name];\n}\n\n/** Typed client for the Stophy API. */\nexport class Stophy {\n\treadonly client: Client;\n\n\tconstructor(input: StophyClientInput = {}) {\n\t\tconst options = typeof input === \"string\" ? { apiKey: input } : input;\n\t\tconst apiKey = options.apiKey?.trim() || env(\"STOPHY_API_KEY\")?.trim();\n\t\tif (!apiKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Stophy: provide `apiKey` or set the STOPHY_API_KEY environment variable.\",\n\t\t\t);\n\t\t}\n\n\t\tthis.client = createTransport({\n\t\t\t...options,\n\t\t\tapiKey,\n\t\t\tbaseUrl: options.baseUrl ?? env(\"STOPHY_BASE_URL\"),\n\t\t});\n\t}\n\n\tasync video(\n\t\tbody: GetVideoData[\"body\"] & { type: \"details\" },\n\t): Promise<VideoResponseFor<VideoDetailsData>>;\n\tasync video(\n\t\tbody: GetVideoData[\"body\"] & { type: \"transcript\" },\n\t): Promise<VideoResponseFor<TranscriptResult>>;\n\tasync video(\n\t\tbody: GetVideoData[\"body\"] & { type: \"comments\" | \"replies\" },\n\t): Promise<VideoResponseFor<CommentsData>>;\n\tasync video(\n\t\tbody: GetVideoData[\"body\"] & { type: \"livechat\" },\n\t): Promise<VideoResponseFor<LiveChatData>>;\n\tasync video(body: GetVideoData[\"body\"]): Promise<GetVideoResponse>;\n\tasync video(body: GetVideoData[\"body\"]): Promise<GetVideoResponse> {\n\t\treturn videoMethods.video(this.client, body);\n\t}\n\n\tvideoDetails(videoUrl: string): Promise<VideoResponseFor<VideoDetailsData>> {\n\t\treturn videoMethods.videoDetails(this.client, videoUrl);\n\t}\n\n\ttranscript(videoUrl: string): Promise<VideoResponseFor<TranscriptResult>> {\n\t\treturn videoMethods.transcript(this.client, videoUrl);\n\t}\n\n\tcomments(\n\t\tvideoUrl: string,\n\t\toptions?: CommentsOptions,\n\t): Promise<VideoResponseFor<CommentsData>> {\n\t\treturn videoMethods.comments(this.client, videoUrl, options);\n\t}\n\n\treplies(continuationToken: string): Promise<VideoResponseFor<CommentsData>> {\n\t\treturn videoMethods.replies(this.client, continuationToken);\n\t}\n\n\tliveChat(\n\t\tvideoUrl: string,\n\t\toptions?: LiveChatOptions,\n\t): Promise<VideoResponseFor<LiveChatData>> {\n\t\treturn videoMethods.liveChat(this.client, videoUrl, options);\n\t}\n\n\tasync search(body: SearchVideosData[\"body\"]): Promise<SearchVideosResponse>;\n\tasync search(\n\t\tquery: string,\n\t\toptions?: SearchOptions,\n\t): Promise<SearchVideosResponse>;\n\tasync search(\n\t\tqueryOrBody: string | SearchVideosData[\"body\"],\n\t\toptions?: SearchOptions,\n\t): Promise<SearchVideosResponse> {\n\t\treturn searchVideos(this.client, queryOrBody, options);\n\t}\n\n\tasync channel(body: GetChannelData[\"body\"]): Promise<GetChannelResponse>;\n\tasync channel(\n\t\tchannelUrl: string,\n\t\toptions?: ChannelOptions,\n\t): Promise<GetChannelResponse>;\n\tasync channel(\n\t\turlOrBody: string | GetChannelData[\"body\"],\n\t\toptions?: ChannelOptions,\n\t): Promise<GetChannelResponse> {\n\t\treturn getChannel(this.client, urlOrBody, options);\n\t}\n\n\tasync playlist(body: GetPlaylistData[\"body\"]): Promise<GetPlaylistResponse>;\n\tasync playlist(\n\t\tplaylistUrl: string,\n\t\toptions?: PlaylistOptions,\n\t): Promise<GetPlaylistResponse>;\n\tasync playlist(\n\t\turlOrBody: string | GetPlaylistData[\"body\"],\n\t\toptions?: PlaylistOptions,\n\t): Promise<GetPlaylistResponse> {\n\t\treturn getPlaylist(this.client, urlOrBody, options);\n\t}\n\n\tasync suggest(\n\t\tquery: GetSuggestionsData[\"query\"],\n\t): Promise<GetSuggestionsResponse>;\n\tasync suggest(\n\t\tquery: string,\n\t\toptions?: SuggestOptions,\n\t): Promise<GetSuggestionsResponse>;\n\tasync suggest(\n\t\tqueryOrOptions: string | GetSuggestionsData[\"query\"],\n\t\toptions?: SuggestOptions,\n\t): Promise<GetSuggestionsResponse> {\n\t\treturn getSuggestions(this.client, queryOrOptions, options);\n\t}\n\n\tcredits(): Promise<GetCreditsResponse> {\n\t\treturn accountMethods.credits(this.client);\n\t}\n\n\tlogs(query?: GetLogsData[\"query\"]): Promise<GetLogsResponse> {\n\t\treturn accountMethods.logs(this.client, query);\n\t}\n\n\tusage(query?: GetUsageData[\"query\"]): Promise<GetUsageResponse> {\n\t\treturn accountMethods.usage(this.client, query);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/account.ts","../src/bind.ts","../src/generated/surface.gen.ts","../package.json","../src/transport.ts","../src/client.ts"],"names":["isRecord"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { _Error } from \"./generated/types.gen\";\n\nexport type StophyErrorCode = _Error[\"error\"][\"code\"];\n\n/** Thrown when the Stophy API responds with a non-success status. */\nexport class StophyError extends Error {\n\treadonly code?: string;\n\treadonly retryable: boolean;\n\treadonly retryAfterSeconds?: number;\n\treadonly status: number;\n\treadonly requestId?: string;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\tstatus: number;\n\t\t\tcode?: string;\n\t\t\tretryable: boolean;\n\t\t\tretryAfterSeconds?: number;\n\t\t\trequestId?: string;\n\t\t},\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"StophyError\";\n\t\tthis.status = options.status;\n\t\tthis.code = options.code;\n\t\tthis.retryable = options.retryable;\n\t\tthis.retryAfterSeconds = options.retryAfterSeconds;\n\t\tthis.requestId = options.requestId;\n\t}\n}\n","import { StophyError } from \"./errors\";\nimport type { Caller } from \"./transport\";\n\nexport interface Usage {\n\tbalanceMicros: number;\n\tcreditsUsed: number;\n\trequestCount: number;\n}\n\nexport interface LogEntry {\n\tapiKeyId: string | null;\n\tapiKeyName: string | null;\n\tcreatedAt: string;\n\tcredits: number;\n\tdurationMs: number | null;\n\tendpoint: string;\n\tid: string;\n\tmethod: string;\n\tresponse: string;\n\tstatus: number;\n}\n\nexport interface Logs {\n\tendpoints: string[];\n\tlogs: LogEntry[];\n\tpage: number;\n\tpageSize: number;\n\ttotal: number;\n\ttotalPages: number;\n}\n\nexport interface LogsQuery {\n\tapiKeyId?: string;\n\tdays?: number;\n\tendpoint?: string;\n\tpage?: number;\n}\n\nexport function usage(call: Caller): Promise<Usage> {\n\treturn call({ method: \"GET\", path: \"/v1/usage\" }).then(parseUsage);\n}\n\nexport function logs(call: Caller, query?: LogsQuery): Promise<Logs> {\n\tconst params: Record<string, string | number | undefined> = {};\n\tif (query?.apiKeyId !== undefined) params.apiKeyId = query.apiKeyId;\n\tif (query?.days !== undefined) params.days = query.days;\n\tif (query?.endpoint !== undefined) params.endpoint = query.endpoint;\n\tif (query?.page !== undefined) params.page = query.page;\n\treturn call({ method: \"GET\", path: \"/v1/logs\", query: params }).then(\n\t\tparseLogs,\n\t);\n}\n\nfunction parseUsage(value: unknown): Usage {\n\tif (!isRecord(value)) return unexpected(\"usage\");\n\tconst balanceMicros = numberField(value, \"balanceMicros\");\n\tconst creditsUsed = numberField(value, \"creditsUsed\");\n\tconst requestCount = numberField(value, \"requestCount\");\n\treturn { balanceMicros, creditsUsed, requestCount };\n}\n\nfunction parseLogs(value: unknown): Logs {\n\tif (\n\t\t!isRecord(value) ||\n\t\t!Array.isArray(value.logs) ||\n\t\t!Array.isArray(value.endpoints)\n\t) {\n\t\treturn unexpected(\"logs\");\n\t}\n\treturn {\n\t\tendpoints: value.endpoints.map((item) => {\n\t\t\tif (typeof item !== \"string\") return unexpected(\"logs.endpoints\");\n\t\t\treturn item;\n\t\t}),\n\t\tlogs: value.logs.map(parseLog),\n\t\tpage: numberField(value, \"page\"),\n\t\tpageSize: numberField(value, \"pageSize\"),\n\t\ttotal: numberField(value, \"total\"),\n\t\ttotalPages: numberField(value, \"totalPages\"),\n\t};\n}\n\nfunction parseLog(value: unknown): LogEntry {\n\tif (!isRecord(value)) return unexpected(\"logs.logs\");\n\treturn {\n\t\tapiKeyId: stringOrNull(value, \"apiKeyId\"),\n\t\tapiKeyName: stringOrNull(value, \"apiKeyName\"),\n\t\tcreatedAt: stringField(value, \"createdAt\"),\n\t\tcredits: numberField(value, \"credits\"),\n\t\tdurationMs: numberOrNull(value, \"durationMs\"),\n\t\tendpoint: stringField(value, \"endpoint\"),\n\t\tid: stringField(value, \"id\"),\n\t\tmethod: stringField(value, \"method\"),\n\t\tresponse: stringField(value, \"response\"),\n\t\tstatus: numberField(value, \"status\"),\n\t};\n}\n\nfunction numberField(record: Record<string, unknown>, field: string): number {\n\tconst value = record[field];\n\tif (typeof value !== \"number\") return unexpected(field);\n\treturn value;\n}\n\nfunction numberOrNull(\n\trecord: Record<string, unknown>,\n\tfield: string,\n): number | null {\n\tconst value = record[field];\n\tif (value === null) return null;\n\tif (typeof value !== \"number\") return unexpected(field);\n\treturn value;\n}\n\nfunction stringField(record: Record<string, unknown>, field: string): string {\n\tconst value = record[field];\n\tif (typeof value !== \"string\") return unexpected(field);\n\treturn value;\n}\n\nfunction stringOrNull(\n\trecord: Record<string, unknown>,\n\tfield: string,\n): string | null {\n\tconst value = record[field];\n\tif (value === null) return null;\n\tif (typeof value !== \"string\") return unexpected(field);\n\treturn value;\n}\n\nfunction unexpected(field: string): never {\n\tthrow new StophyError(`Stophy returned an unexpected ${field}`, {\n\t\tstatus: 200,\n\t\tretryable: false,\n\t});\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import type { Caller, CallOptions } from \"./transport\";\n\nexport interface MarkdownOptions {\n\tformat: \"markdown\";\n\tsignal?: AbortSignal;\n}\n\nexport interface JsonOptions {\n\tformat?: undefined;\n\tsignal?: AbortSignal;\n}\n\nexport function post<Body, Response>(path: string, call: Caller) {\n\tfunction run(body: Body, options: MarkdownOptions): Promise<string>;\n\tfunction run(body: Body, options?: JsonOptions): Promise<Response>;\n\tfunction run(body: Body, options?: CallOptions): Promise<unknown> {\n\t\treturn call({ method: \"POST\", path, body, options });\n\t}\n\treturn run;\n}\n\nexport function postOptional<Body, Response>(path: string, call: Caller) {\n\tfunction run(options: MarkdownOptions): Promise<string>;\n\tfunction run(\n\t\tbody: Body | undefined,\n\t\toptions: MarkdownOptions,\n\t): Promise<string>;\n\tfunction run(body?: Body, options?: JsonOptions): Promise<Response>;\n\tfunction run(\n\t\tbody?: Body | MarkdownOptions,\n\t\toptions?: CallOptions,\n\t): Promise<unknown> {\n\t\tif (isMarkdownOptions(body) && options === undefined) {\n\t\t\treturn call({ method: \"POST\", path, body: {}, options: body });\n\t\t}\n\t\treturn call({ method: \"POST\", path, body: body ?? {}, options });\n\t}\n\treturn run;\n}\n\nexport function get<Response>(path: string, call: Caller) {\n\tfunction run(options: MarkdownOptions): Promise<string>;\n\tfunction run(options?: JsonOptions): Promise<Response>;\n\tfunction run(options?: CallOptions): Promise<unknown> {\n\t\treturn call({ method: \"GET\", path, options });\n\t}\n\treturn run;\n}\n\nfunction isMarkdownOptions(value: unknown): value is MarkdownOptions {\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn \"format\" in value && value.format === \"markdown\";\n}\n","// Generated by scripts/gen-surface.ts. Do not edit.\n\nimport { get, post, postOptional } from \"../bind\";\nimport type {\n\tAirbnbCalendarData,\n\tAirbnbCalendarResponse,\n\tAirbnbListingData,\n\tAirbnbListingResponse,\n\tAirbnbReviewsData,\n\tAirbnbReviewsResponse,\n\tAirbnbSearchData,\n\tAirbnbSearchResponse,\n\tAliexpressProductData,\n\tAliexpressProductResponse,\n\tAliexpressSearchData,\n\tAliexpressSearchResponse,\n\tAmazonBestsellersData,\n\tAmazonBestsellersResponse,\n\tAmazonProductData,\n\tAmazonProductResponse,\n\tAmazonSearchData,\n\tAmazonSearchResponse,\n\tAmazonSuggestData,\n\tAmazonSuggestResponse,\n\tAppstoreAppData,\n\tAppstoreAppResponse,\n\tAppstoreReviewsData,\n\tAppstoreReviewsResponse,\n\tAppstoreSearchData,\n\tAppstoreSearchResponse,\n\tAppstoreTopData,\n\tAppstoreTopResponse,\n\tBlueskyFollowersData,\n\tBlueskyFollowersResponse,\n\tBlueskyPostData,\n\tBlueskyPostResponse,\n\tBlueskyPostsData,\n\tBlueskyPostsResponse,\n\tBlueskyProfileData,\n\tBlueskyProfileResponse,\n\tCryptoBinanceAnnouncementsData,\n\tCryptoBinanceAnnouncementsResponse,\n\tCryptoCategoriesData,\n\tCryptoCategoriesResponse,\n\tCryptoCoinData,\n\tCryptoCoinResponse,\n\tCryptoCoinsData,\n\tCryptoCoinsResponse,\n\tCryptoDexNewData,\n\tCryptoDexNewResponse,\n\tCryptoDexPairsData,\n\tCryptoDexPairsResponse,\n\tCryptoDexSearchData,\n\tCryptoDexSearchResponse,\n\tCryptoDexTokenData,\n\tCryptoDexTokenResponse,\n\tCryptoHistoryData,\n\tCryptoHistoryResponse,\n\tCryptoMoversData,\n\tCryptoMoversResponse,\n\tCryptoNewData,\n\tCryptoNewResponse,\n\tCryptoPumpCoinData,\n\tCryptoPumpCoinResponse,\n\tCryptoPumpCoinsData,\n\tCryptoPumpCoinsResponse,\n\tCryptoPumpTradesData,\n\tCryptoPumpTradesResponse,\n\tCryptoTokenHoldersData,\n\tCryptoTokenHoldersResponse,\n\tCryptoTrendingData,\n\tCryptoTrendingResponse,\n\tCryptoWalletData,\n\tCryptoWalletResponse,\n\tDomainDnsData,\n\tDomainDnsResponse,\n\tDomainTechData,\n\tDomainTechResponse,\n\tDomainWhoisData,\n\tDomainWhoisResponse,\n\tEmailCheckData,\n\tEmailCheckResponse,\n\tFinanceHistoryData,\n\tFinanceHistoryResponse,\n\tFinanceProfileData,\n\tFinanceProfileResponse,\n\tFinanceQuoteData,\n\tFinanceQuoteResponse,\n\tFinanceSearchData,\n\tFinanceSearchResponse,\n\tGoogleAdsAdData,\n\tGoogleAdsAdResponse,\n\tGoogleAdsAdvertisersData,\n\tGoogleAdsAdvertisersResponse,\n\tGoogleAdsSearchData,\n\tGoogleAdsSearchResponse,\n\tGoogleSuggestData,\n\tGoogleSuggestResponse,\n\tGoogleTrendsInterestData,\n\tGoogleTrendsInterestResponse,\n\tGoogleTrendsRegionsData,\n\tGoogleTrendsRegionsResponse,\n\tGoogleTrendsRelatedData,\n\tGoogleTrendsRelatedResponse,\n\tGoogleTrendsTrendingData,\n\tGoogleTrendsTrendingResponse,\n\tGoogleplayAppData,\n\tGoogleplayAppResponse,\n\tGoogleplayReviewsData,\n\tGoogleplayReviewsResponse,\n\tGoogleplaySearchData,\n\tGoogleplaySearchResponse,\n\tGoogletravelFlightsData,\n\tGoogletravelFlightsResponse,\n\tImmoscoutListingData,\n\tImmoscoutListingResponse,\n\tImmoscoutSearchData,\n\tImmoscoutSearchResponse,\n\tIndeedJobData,\n\tIndeedJobResponse,\n\tIndeedSearchData,\n\tIndeedSearchResponse,\n\tInstagramCommentsData,\n\tInstagramCommentsRepliesData,\n\tInstagramCommentsRepliesResponse,\n\tInstagramCommentsResponse,\n\tInstagramPostData,\n\tInstagramPostResponse,\n\tInstagramPostsData,\n\tInstagramPostsResponse,\n\tInstagramProfileData,\n\tInstagramProfileResponse,\n\tInstagramSearchData,\n\tInstagramSearchResponse,\n\tInstagramTranscriptData,\n\tInstagramTranscriptResponse,\n\tInstagramUrlData,\n\tInstagramUrlResponse,\n\tKickChannelData,\n\tKickChannelResponse,\n\tKickClipsData,\n\tKickClipsResponse,\n\tKickVideosData,\n\tKickVideosResponse,\n\tLinkedinAdsAdData,\n\tLinkedinAdsAdResponse,\n\tLinkedinAdsSearchData,\n\tLinkedinAdsSearchResponse,\n\tLinkedinCompanyData,\n\tLinkedinCompanyPostsData,\n\tLinkedinCompanyPostsResponse,\n\tLinkedinCompanyResponse,\n\tLinkedinJobsJobData,\n\tLinkedinJobsJobResponse,\n\tLinkedinJobsSearchData,\n\tLinkedinJobsSearchResponse,\n\tLinkedinPostsData,\n\tLinkedinPostsResponse,\n\tLinkedinProfileData,\n\tLinkedinProfileResponse,\n\tListEndpointsResponse,\n\tMapsPlaceData,\n\tMapsPlaceResponse,\n\tMapsReviewsData,\n\tMapsReviewsResponse,\n\tMapsSearchData,\n\tMapsSearchResponse,\n\tMastodonHashtagData,\n\tMastodonHashtagResponse,\n\tMastodonPostData,\n\tMastodonPostResponse,\n\tMastodonPostsData,\n\tMastodonPostsResponse,\n\tMastodonProfileData,\n\tMastodonProfileResponse,\n\tMetaAdsAdData,\n\tMetaAdsAdResponse,\n\tMetaAdsPageData,\n\tMetaAdsPageResponse,\n\tMetaAdsSearchData,\n\tMetaAdsSearchResponse,\n\tMicrosoftAdsAdData,\n\tMicrosoftAdsAdResponse,\n\tMicrosoftAdsAdvertisersData,\n\tMicrosoftAdsAdvertisersResponse,\n\tMicrosoftAdsSearchData,\n\tMicrosoftAdsSearchResponse,\n\tPinterestAdsAdData,\n\tPinterestAdsAdResponse,\n\tPinterestAdsSearchData,\n\tPinterestAdsSearchResponse,\n\tPinterestBoardData,\n\tPinterestBoardResponse,\n\tPinterestPinData,\n\tPinterestPinResponse,\n\tPinterestSearchData,\n\tPinterestSearchResponse,\n\tPinterestUserData,\n\tPinterestUserResponse,\n\tQuoraQuestionData,\n\tQuoraQuestionResponse,\n\tRealtorPropertyData,\n\tRealtorPropertyResponse,\n\tRealtorSearchData,\n\tRealtorSearchResponse,\n\tRedditCommentsMoreData,\n\tRedditCommentsMoreResponse,\n\tRedditDomainData,\n\tRedditDomainResponse,\n\tRedditPostData,\n\tRedditPostResponse,\n\tRedditSearchData,\n\tRedditSearchResponse,\n\tRedditSubredditData,\n\tRedditSubredditResponse,\n\tRedditUserData,\n\tRedditUserResponse,\n\tRedfinPropertyData,\n\tRedfinPropertyResponse,\n\tRedfinSearchData,\n\tRedfinSearchResponse,\n\tRightmovePropertyData,\n\tRightmovePropertyResponse,\n\tRightmoveSearchData,\n\tRightmoveSearchResponse,\n\tShopifyCollectionsData,\n\tShopifyCollectionsResponse,\n\tShopifyProductsData,\n\tShopifyProductsResponse,\n\tShopifyStoreData,\n\tShopifyStoreResponse,\n\tSiteMapData,\n\tSiteMapResponse,\n\tSiteSeoData,\n\tSiteSeoResponse,\n\tSnapchatAdsAdData,\n\tSnapchatAdsAdResponse,\n\tSnapchatAdsSearchData,\n\tSnapchatAdsSearchResponse,\n\tSnapchatProfileData,\n\tSnapchatProfileResponse,\n\tTelegramChannelData,\n\tTelegramChannelResponse,\n\tTelegramPostData,\n\tTelegramPostResponse,\n\tTelegramPostsData,\n\tTelegramPostsResponse,\n\tThreadsPostData,\n\tThreadsPostResponse,\n\tThreadsPostsData,\n\tThreadsPostsResponse,\n\tThreadsProfileData,\n\tThreadsProfileResponse,\n\tThreadsSearchData,\n\tThreadsSearchResponse,\n\tTiktokAdsAdData,\n\tTiktokAdsAdResponse,\n\tTiktokAdsSearchData,\n\tTiktokAdsSearchResponse,\n\tTiktokCommentsData,\n\tTiktokCommentsRepliesData,\n\tTiktokCommentsRepliesResponse,\n\tTiktokCommentsResponse,\n\tTiktokHashtagData,\n\tTiktokHashtagResponse,\n\tTiktokPostsData,\n\tTiktokPostsResponse,\n\tTiktokProfileData,\n\tTiktokProfileResponse,\n\tTiktokSearchData,\n\tTiktokSearchResponse,\n\tTiktokTranscriptData,\n\tTiktokTranscriptResponse,\n\tTiktokUrlData,\n\tTiktokUrlResponse,\n\tTiktokVideoData,\n\tTiktokVideoResponse,\n\tTripadvisorPlaceData,\n\tTripadvisorPlaceResponse,\n\tTripadvisorReviewsData,\n\tTripadvisorReviewsResponse,\n\tTripadvisorSearchData,\n\tTripadvisorSearchResponse,\n\tTumblrBlogData,\n\tTumblrBlogResponse,\n\tTumblrPostData,\n\tTumblrPostResponse,\n\tTumblrPostsData,\n\tTumblrPostsResponse,\n\tTumblrSearchData,\n\tTumblrSearchResponse,\n\tUpworkJobData,\n\tUpworkJobResponse,\n\tUpworkSearchData,\n\tUpworkSearchResponse,\n\tWalmartProductData,\n\tWalmartProductResponse,\n\tWalmartSearchData,\n\tWalmartSearchResponse,\n\tWebContactsData,\n\tWebContactsResponse,\n\tWebNewsData,\n\tWebNewsResponse,\n\tWebSearchData,\n\tWebSearchResponse,\n\tXTweetData,\n\tXTweetResponse,\n\tYoutubeChannelData,\n\tYoutubeChannelResponse,\n\tYoutubeCommentsData,\n\tYoutubeCommentsRepliesData,\n\tYoutubeCommentsRepliesResponse,\n\tYoutubeCommentsResponse,\n\tYoutubePlaylistData,\n\tYoutubePlaylistResponse,\n\tYoutubeSearchData,\n\tYoutubeSearchResponse,\n\tYoutubeSuggestData,\n\tYoutubeSuggestResponse,\n\tYoutubeTranscriptData,\n\tYoutubeTranscriptResponse,\n\tYoutubeVideoData,\n\tYoutubeVideoResponse,\n\tZillowPropertyData,\n\tZillowPropertyResponse,\n\tZillowSearchData,\n\tZillowSearchResponse,\n} from \"./types.gen\";\nimport type { Caller } from \"../transport\";\n\nexport function bindSurface(call: Caller) {\n\treturn {\n\t\tendpoints: get<ListEndpointsResponse>(\"/v1/endpoints\", call),\n\t\tweb: {\n\t\t\tsearch: post<WebSearchData[\"body\"], WebSearchResponse>(\"/v1/web/search\", call),\n\t\t\tnews: postOptional<WebNewsData[\"body\"], WebNewsResponse>(\"/v1/web/news\", call),\n\t\t\tcontacts: post<WebContactsData[\"body\"], WebContactsResponse>(\"/v1/web/contacts\", call),\n\t\t},\n\t\tyoutube: {\n\t\t\tsearch: post<YoutubeSearchData[\"body\"], YoutubeSearchResponse>(\"/v1/youtube/search\", call),\n\t\t\tvideo: post<YoutubeVideoData[\"body\"], YoutubeVideoResponse>(\"/v1/youtube/video\", call),\n\t\t\ttranscript: post<YoutubeTranscriptData[\"body\"], YoutubeTranscriptResponse>(\"/v1/youtube/transcript\", call),\n\t\t\tcomments: Object.assign(post<YoutubeCommentsData[\"body\"], YoutubeCommentsResponse>(\"/v1/youtube/comments\", call), {\n\t\t\t\t\treplies: post<YoutubeCommentsRepliesData[\"body\"], YoutubeCommentsRepliesResponse>(\"/v1/youtube/comments/replies\", call),\n\t\t\t\t}),\n\t\t\tchannel: post<YoutubeChannelData[\"body\"], YoutubeChannelResponse>(\"/v1/youtube/channel\", call),\n\t\t\tplaylist: post<YoutubePlaylistData[\"body\"], YoutubePlaylistResponse>(\"/v1/youtube/playlist\", call),\n\t\t\tsuggest: post<YoutubeSuggestData[\"body\"], YoutubeSuggestResponse>(\"/v1/youtube/suggest\", call),\n\t\t},\n\t\treddit: {\n\t\t\tsearch: post<RedditSearchData[\"body\"], RedditSearchResponse>(\"/v1/reddit/search\", call),\n\t\t\tpost: post<RedditPostData[\"body\"], RedditPostResponse>(\"/v1/reddit/post\", call),\n\t\t\tcomments: {\n\t\t\t\tmore: post<RedditCommentsMoreData[\"body\"], RedditCommentsMoreResponse>(\"/v1/reddit/comments/more\", call),\n\t\t\t},\n\t\t\tsubreddit: post<RedditSubredditData[\"body\"], RedditSubredditResponse>(\"/v1/reddit/subreddit\", call),\n\t\t\tuser: post<RedditUserData[\"body\"], RedditUserResponse>(\"/v1/reddit/user\", call),\n\t\t\tdomain: post<RedditDomainData[\"body\"], RedditDomainResponse>(\"/v1/reddit/domain\", call),\n\t\t},\n\t\tmaps: {\n\t\t\tsearch: post<MapsSearchData[\"body\"], MapsSearchResponse>(\"/v1/maps/search\", call),\n\t\t\tplace: post<MapsPlaceData[\"body\"], MapsPlaceResponse>(\"/v1/maps/place\", call),\n\t\t\treviews: post<MapsReviewsData[\"body\"], MapsReviewsResponse>(\"/v1/maps/reviews\", call),\n\t\t},\n\t\tinstagram: {\n\t\t\tprofile: post<InstagramProfileData[\"body\"], InstagramProfileResponse>(\"/v1/instagram/profile\", call),\n\t\t\tposts: post<InstagramPostsData[\"body\"], InstagramPostsResponse>(\"/v1/instagram/posts\", call),\n\t\t\tpost: post<InstagramPostData[\"body\"], InstagramPostResponse>(\"/v1/instagram/post\", call),\n\t\t\turl: post<InstagramUrlData[\"body\"], InstagramUrlResponse>(\"/v1/instagram/url\", call),\n\t\t\tsearch: post<InstagramSearchData[\"body\"], InstagramSearchResponse>(\"/v1/instagram/search\", call),\n\t\t\ttranscript: post<InstagramTranscriptData[\"body\"], InstagramTranscriptResponse>(\"/v1/instagram/transcript\", call),\n\t\t\tcomments: Object.assign(post<InstagramCommentsData[\"body\"], InstagramCommentsResponse>(\"/v1/instagram/comments\", call), {\n\t\t\t\t\treplies: post<InstagramCommentsRepliesData[\"body\"], InstagramCommentsRepliesResponse>(\"/v1/instagram/comments/replies\", call),\n\t\t\t\t}),\n\t\t},\n\t\ttiktok: {\n\t\t\tprofile: post<TiktokProfileData[\"body\"], TiktokProfileResponse>(\"/v1/tiktok/profile\", call),\n\t\t\tvideo: post<TiktokVideoData[\"body\"], TiktokVideoResponse>(\"/v1/tiktok/video\", call),\n\t\t\turl: post<TiktokUrlData[\"body\"], TiktokUrlResponse>(\"/v1/tiktok/url\", call),\n\t\t\ttranscript: post<TiktokTranscriptData[\"body\"], TiktokTranscriptResponse>(\"/v1/tiktok/transcript\", call),\n\t\t\tposts: post<TiktokPostsData[\"body\"], TiktokPostsResponse>(\"/v1/tiktok/posts\", call),\n\t\t\thashtag: post<TiktokHashtagData[\"body\"], TiktokHashtagResponse>(\"/v1/tiktok/hashtag\", call),\n\t\t\tcomments: Object.assign(post<TiktokCommentsData[\"body\"], TiktokCommentsResponse>(\"/v1/tiktok/comments\", call), {\n\t\t\t\t\treplies: post<TiktokCommentsRepliesData[\"body\"], TiktokCommentsRepliesResponse>(\"/v1/tiktok/comments/replies\", call),\n\t\t\t\t}),\n\t\t\tsearch: post<TiktokSearchData[\"body\"], TiktokSearchResponse>(\"/v1/tiktok/search\", call),\n\t\t\tads: {\n\t\t\t\tsearch: postOptional<TiktokAdsSearchData[\"body\"], TiktokAdsSearchResponse>(\"/v1/tiktok/ads/search\", call),\n\t\t\t\tad: post<TiktokAdsAdData[\"body\"], TiktokAdsAdResponse>(\"/v1/tiktok/ads/ad\", call),\n\t\t\t},\n\t\t},\n\t\tbluesky: {\n\t\t\tprofile: post<BlueskyProfileData[\"body\"], BlueskyProfileResponse>(\"/v1/bluesky/profile\", call),\n\t\t\tposts: post<BlueskyPostsData[\"body\"], BlueskyPostsResponse>(\"/v1/bluesky/posts\", call),\n\t\t\tpost: post<BlueskyPostData[\"body\"], BlueskyPostResponse>(\"/v1/bluesky/post\", call),\n\t\t\tfollowers: post<BlueskyFollowersData[\"body\"], BlueskyFollowersResponse>(\"/v1/bluesky/followers\", call),\n\t\t},\n\t\tmastodon: {\n\t\t\tprofile: post<MastodonProfileData[\"body\"], MastodonProfileResponse>(\"/v1/mastodon/profile\", call),\n\t\t\tposts: post<MastodonPostsData[\"body\"], MastodonPostsResponse>(\"/v1/mastodon/posts\", call),\n\t\t\tpost: post<MastodonPostData[\"body\"], MastodonPostResponse>(\"/v1/mastodon/post\", call),\n\t\t\thashtag: post<MastodonHashtagData[\"body\"], MastodonHashtagResponse>(\"/v1/mastodon/hashtag\", call),\n\t\t},\n\t\tthreads: {\n\t\t\tprofile: post<ThreadsProfileData[\"body\"], ThreadsProfileResponse>(\"/v1/threads/profile\", call),\n\t\t\tposts: post<ThreadsPostsData[\"body\"], ThreadsPostsResponse>(\"/v1/threads/posts\", call),\n\t\t\tpost: post<ThreadsPostData[\"body\"], ThreadsPostResponse>(\"/v1/threads/post\", call),\n\t\t\tsearch: post<ThreadsSearchData[\"body\"], ThreadsSearchResponse>(\"/v1/threads/search\", call),\n\t\t},\n\t\ttelegram: {\n\t\t\tchannel: post<TelegramChannelData[\"body\"], TelegramChannelResponse>(\"/v1/telegram/channel\", call),\n\t\t\tposts: post<TelegramPostsData[\"body\"], TelegramPostsResponse>(\"/v1/telegram/posts\", call),\n\t\t\tpost: post<TelegramPostData[\"body\"], TelegramPostResponse>(\"/v1/telegram/post\", call),\n\t\t},\n\t\tmeta: {\n\t\t\tads: {\n\t\t\t\tsearch: post<MetaAdsSearchData[\"body\"], MetaAdsSearchResponse>(\"/v1/meta/ads/search\", call),\n\t\t\t\tpage: post<MetaAdsPageData[\"body\"], MetaAdsPageResponse>(\"/v1/meta/ads/page\", call),\n\t\t\t\tad: post<MetaAdsAdData[\"body\"], MetaAdsAdResponse>(\"/v1/meta/ads/ad\", call),\n\t\t\t},\n\t\t},\n\t\tlinkedin: {\n\t\t\tjobs: {\n\t\t\t\tsearch: postOptional<LinkedinJobsSearchData[\"body\"], LinkedinJobsSearchResponse>(\"/v1/linkedin/jobs/search\", call),\n\t\t\t\tjob: post<LinkedinJobsJobData[\"body\"], LinkedinJobsJobResponse>(\"/v1/linkedin/jobs/job\", call),\n\t\t\t},\n\t\t\tads: {\n\t\t\t\tsearch: postOptional<LinkedinAdsSearchData[\"body\"], LinkedinAdsSearchResponse>(\"/v1/linkedin/ads/search\", call),\n\t\t\t\tad: post<LinkedinAdsAdData[\"body\"], LinkedinAdsAdResponse>(\"/v1/linkedin/ads/ad\", call),\n\t\t\t},\n\t\t\tcompany: Object.assign(post<LinkedinCompanyData[\"body\"], LinkedinCompanyResponse>(\"/v1/linkedin/company\", call), {\n\t\t\t\t\tposts: post<LinkedinCompanyPostsData[\"body\"], LinkedinCompanyPostsResponse>(\"/v1/linkedin/company/posts\", call),\n\t\t\t\t}),\n\t\t\tprofile: post<LinkedinProfileData[\"body\"], LinkedinProfileResponse>(\"/v1/linkedin/profile\", call),\n\t\t\tposts: postOptional<LinkedinPostsData[\"body\"], LinkedinPostsResponse>(\"/v1/linkedin/posts\", call),\n\t\t},\n\t\tzillow: {\n\t\t\tsearch: postOptional<ZillowSearchData[\"body\"], ZillowSearchResponse>(\"/v1/zillow/search\", call),\n\t\t\tproperty: post<ZillowPropertyData[\"body\"], ZillowPropertyResponse>(\"/v1/zillow/property\", call),\n\t\t},\n\t\tgoogle: {\n\t\t\tads: {\n\t\t\t\tadvertisers: post<GoogleAdsAdvertisersData[\"body\"], GoogleAdsAdvertisersResponse>(\"/v1/google/ads/advertisers\", call),\n\t\t\t\tsearch: postOptional<GoogleAdsSearchData[\"body\"], GoogleAdsSearchResponse>(\"/v1/google/ads/search\", call),\n\t\t\t\tad: post<GoogleAdsAdData[\"body\"], GoogleAdsAdResponse>(\"/v1/google/ads/ad\", call),\n\t\t\t},\n\t\t\tsuggest: post<GoogleSuggestData[\"body\"], GoogleSuggestResponse>(\"/v1/google/suggest\", call),\n\t\t\ttrends: {\n\t\t\t\tinterest: post<GoogleTrendsInterestData[\"body\"], GoogleTrendsInterestResponse>(\"/v1/google/trends/interest\", call),\n\t\t\t\tregions: post<GoogleTrendsRegionsData[\"body\"], GoogleTrendsRegionsResponse>(\"/v1/google/trends/regions\", call),\n\t\t\t\trelated: post<GoogleTrendsRelatedData[\"body\"], GoogleTrendsRelatedResponse>(\"/v1/google/trends/related\", call),\n\t\t\t\ttrending: postOptional<GoogleTrendsTrendingData[\"body\"], GoogleTrendsTrendingResponse>(\"/v1/google/trends/trending\", call),\n\t\t\t},\n\t\t},\n\t\tupwork: {\n\t\t\tsearch: postOptional<UpworkSearchData[\"body\"], UpworkSearchResponse>(\"/v1/upwork/search\", call),\n\t\t\tjob: post<UpworkJobData[\"body\"], UpworkJobResponse>(\"/v1/upwork/job\", call),\n\t\t},\n\t\tamazon: {\n\t\t\tsuggest: post<AmazonSuggestData[\"body\"], AmazonSuggestResponse>(\"/v1/amazon/suggest\", call),\n\t\t\tsearch: postOptional<AmazonSearchData[\"body\"], AmazonSearchResponse>(\"/v1/amazon/search\", call),\n\t\t\tproduct: post<AmazonProductData[\"body\"], AmazonProductResponse>(\"/v1/amazon/product\", call),\n\t\t\tbestsellers: post<AmazonBestsellersData[\"body\"], AmazonBestsellersResponse>(\"/v1/amazon/bestsellers\", call),\n\t\t},\n\t\tsite: {\n\t\t\tmap: post<SiteMapData[\"body\"], SiteMapResponse>(\"/v1/site/map\", call),\n\t\t\tseo: post<SiteSeoData[\"body\"], SiteSeoResponse>(\"/v1/site/seo\", call),\n\t\t},\n\t\tdomain: {\n\t\t\twhois: post<DomainWhoisData[\"body\"], DomainWhoisResponse>(\"/v1/domain/whois\", call),\n\t\t\tdns: post<DomainDnsData[\"body\"], DomainDnsResponse>(\"/v1/domain/dns\", call),\n\t\t\ttech: post<DomainTechData[\"body\"], DomainTechResponse>(\"/v1/domain/tech\", call),\n\t\t},\n\t\temail: {\n\t\t\tcheck: post<EmailCheckData[\"body\"], EmailCheckResponse>(\"/v1/email/check\", call),\n\t\t},\n\t\tcrypto: {\n\t\t\tcoins: postOptional<CryptoCoinsData[\"body\"], CryptoCoinsResponse>(\"/v1/crypto/coins\", call),\n\t\t\tcoin: post<CryptoCoinData[\"body\"], CryptoCoinResponse>(\"/v1/crypto/coin\", call),\n\t\t\thistory: post<CryptoHistoryData[\"body\"], CryptoHistoryResponse>(\"/v1/crypto/history\", call),\n\t\t\ttrending: postOptional<CryptoTrendingData[\"body\"], CryptoTrendingResponse>(\"/v1/crypto/trending\", call),\n\t\t\tcategories: postOptional<CryptoCategoriesData[\"body\"], CryptoCategoriesResponse>(\"/v1/crypto/categories\", call),\n\t\t\tmovers: postOptional<CryptoMoversData[\"body\"], CryptoMoversResponse>(\"/v1/crypto/movers\", call),\n\t\t\tnew: postOptional<CryptoNewData[\"body\"], CryptoNewResponse>(\"/v1/crypto/new\", call),\n\t\t\tdex: {\n\t\t\t\tsearch: post<CryptoDexSearchData[\"body\"], CryptoDexSearchResponse>(\"/v1/crypto/dex/search\", call),\n\t\t\t\tpairs: post<CryptoDexPairsData[\"body\"], CryptoDexPairsResponse>(\"/v1/crypto/dex/pairs\", call),\n\t\t\t\ttoken: post<CryptoDexTokenData[\"body\"], CryptoDexTokenResponse>(\"/v1/crypto/dex/token\", call),\n\t\t\t\tnew: postOptional<CryptoDexNewData[\"body\"], CryptoDexNewResponse>(\"/v1/crypto/dex/new\", call),\n\t\t\t},\n\t\t\tpump: {\n\t\t\t\tcoins: postOptional<CryptoPumpCoinsData[\"body\"], CryptoPumpCoinsResponse>(\"/v1/crypto/pump/coins\", call),\n\t\t\t\tcoin: post<CryptoPumpCoinData[\"body\"], CryptoPumpCoinResponse>(\"/v1/crypto/pump/coin\", call),\n\t\t\t\ttrades: post<CryptoPumpTradesData[\"body\"], CryptoPumpTradesResponse>(\"/v1/crypto/pump/trades\", call),\n\t\t\t},\n\t\t\twallet: post<CryptoWalletData[\"body\"], CryptoWalletResponse>(\"/v1/crypto/wallet\", call),\n\t\t\ttoken: {\n\t\t\t\tholders: post<CryptoTokenHoldersData[\"body\"], CryptoTokenHoldersResponse>(\"/v1/crypto/token/holders\", call),\n\t\t\t},\n\t\t\tbinance: {\n\t\t\t\tannouncements: postOptional<CryptoBinanceAnnouncementsData[\"body\"], CryptoBinanceAnnouncementsResponse>(\"/v1/crypto/binance/announcements\", call),\n\t\t\t},\n\t\t},\n\t\tindeed: {\n\t\t\tsearch: postOptional<IndeedSearchData[\"body\"], IndeedSearchResponse>(\"/v1/indeed/search\", call),\n\t\t\tjob: post<IndeedJobData[\"body\"], IndeedJobResponse>(\"/v1/indeed/job\", call),\n\t\t},\n\t\ttripadvisor: {\n\t\t\tsearch: post<TripadvisorSearchData[\"body\"], TripadvisorSearchResponse>(\"/v1/tripadvisor/search\", call),\n\t\t\tplace: post<TripadvisorPlaceData[\"body\"], TripadvisorPlaceResponse>(\"/v1/tripadvisor/place\", call),\n\t\t\treviews: post<TripadvisorReviewsData[\"body\"], TripadvisorReviewsResponse>(\"/v1/tripadvisor/reviews\", call),\n\t\t},\n\t\tgoogletravel: {\n\t\t\tflights: post<GoogletravelFlightsData[\"body\"], GoogletravelFlightsResponse>(\"/v1/googletravel/flights\", call),\n\t\t},\n\t\tshopify: {\n\t\t\tproducts: post<ShopifyProductsData[\"body\"], ShopifyProductsResponse>(\"/v1/shopify/products\", call),\n\t\t\tcollections: post<ShopifyCollectionsData[\"body\"], ShopifyCollectionsResponse>(\"/v1/shopify/collections\", call),\n\t\t\tstore: post<ShopifyStoreData[\"body\"], ShopifyStoreResponse>(\"/v1/shopify/store\", call),\n\t\t},\n\t\twalmart: {\n\t\t\tsearch: post<WalmartSearchData[\"body\"], WalmartSearchResponse>(\"/v1/walmart/search\", call),\n\t\t\tproduct: post<WalmartProductData[\"body\"], WalmartProductResponse>(\"/v1/walmart/product\", call),\n\t\t},\n\t\taliexpress: {\n\t\t\tsearch: post<AliexpressSearchData[\"body\"], AliexpressSearchResponse>(\"/v1/aliexpress/search\", call),\n\t\t\tproduct: post<AliexpressProductData[\"body\"], AliexpressProductResponse>(\"/v1/aliexpress/product\", call),\n\t\t},\n\t\tappstore: {\n\t\t\tapp: post<AppstoreAppData[\"body\"], AppstoreAppResponse>(\"/v1/appstore/app\", call),\n\t\t\tsearch: post<AppstoreSearchData[\"body\"], AppstoreSearchResponse>(\"/v1/appstore/search\", call),\n\t\t\treviews: post<AppstoreReviewsData[\"body\"], AppstoreReviewsResponse>(\"/v1/appstore/reviews\", call),\n\t\t\ttop: postOptional<AppstoreTopData[\"body\"], AppstoreTopResponse>(\"/v1/appstore/top\", call),\n\t\t},\n\t\tgoogleplay: {\n\t\t\tapp: post<GoogleplayAppData[\"body\"], GoogleplayAppResponse>(\"/v1/googleplay/app\", call),\n\t\t\tsearch: post<GoogleplaySearchData[\"body\"], GoogleplaySearchResponse>(\"/v1/googleplay/search\", call),\n\t\t\treviews: post<GoogleplayReviewsData[\"body\"], GoogleplayReviewsResponse>(\"/v1/googleplay/reviews\", call),\n\t\t},\n\t\tairbnb: {\n\t\t\tsearch: post<AirbnbSearchData[\"body\"], AirbnbSearchResponse>(\"/v1/airbnb/search\", call),\n\t\t\tlisting: post<AirbnbListingData[\"body\"], AirbnbListingResponse>(\"/v1/airbnb/listing\", call),\n\t\t\tcalendar: post<AirbnbCalendarData[\"body\"], AirbnbCalendarResponse>(\"/v1/airbnb/calendar\", call),\n\t\t\treviews: post<AirbnbReviewsData[\"body\"], AirbnbReviewsResponse>(\"/v1/airbnb/reviews\", call),\n\t\t},\n\t\tredfin: {\n\t\t\tsearch: post<RedfinSearchData[\"body\"], RedfinSearchResponse>(\"/v1/redfin/search\", call),\n\t\t\tproperty: post<RedfinPropertyData[\"body\"], RedfinPropertyResponse>(\"/v1/redfin/property\", call),\n\t\t},\n\t\trealtor: {\n\t\t\tsearch: post<RealtorSearchData[\"body\"], RealtorSearchResponse>(\"/v1/realtor/search\", call),\n\t\t\tproperty: post<RealtorPropertyData[\"body\"], RealtorPropertyResponse>(\"/v1/realtor/property\", call),\n\t\t},\n\t\trightmove: {\n\t\t\tsearch: post<RightmoveSearchData[\"body\"], RightmoveSearchResponse>(\"/v1/rightmove/search\", call),\n\t\t\tproperty: post<RightmovePropertyData[\"body\"], RightmovePropertyResponse>(\"/v1/rightmove/property\", call),\n\t\t},\n\t\timmoscout: {\n\t\t\tsearch: post<ImmoscoutSearchData[\"body\"], ImmoscoutSearchResponse>(\"/v1/immoscout/search\", call),\n\t\t\tlisting: post<ImmoscoutListingData[\"body\"], ImmoscoutListingResponse>(\"/v1/immoscout/listing\", call),\n\t\t},\n\t\tpinterest: {\n\t\t\tsearch: post<PinterestSearchData[\"body\"], PinterestSearchResponse>(\"/v1/pinterest/search\", call),\n\t\t\tpin: post<PinterestPinData[\"body\"], PinterestPinResponse>(\"/v1/pinterest/pin\", call),\n\t\t\tboard: post<PinterestBoardData[\"body\"], PinterestBoardResponse>(\"/v1/pinterest/board\", call),\n\t\t\tuser: post<PinterestUserData[\"body\"], PinterestUserResponse>(\"/v1/pinterest/user\", call),\n\t\t\tads: {\n\t\t\t\tsearch: post<PinterestAdsSearchData[\"body\"], PinterestAdsSearchResponse>(\"/v1/pinterest/ads/search\", call),\n\t\t\t\tad: post<PinterestAdsAdData[\"body\"], PinterestAdsAdResponse>(\"/v1/pinterest/ads/ad\", call),\n\t\t\t},\n\t\t},\n\t\tx: {\n\t\t\ttweet: post<XTweetData[\"body\"], XTweetResponse>(\"/v1/x/tweet\", call),\n\t\t},\n\t\tkick: {\n\t\t\tchannel: post<KickChannelData[\"body\"], KickChannelResponse>(\"/v1/kick/channel\", call),\n\t\t\tvideos: post<KickVideosData[\"body\"], KickVideosResponse>(\"/v1/kick/videos\", call),\n\t\t\tclips: post<KickClipsData[\"body\"], KickClipsResponse>(\"/v1/kick/clips\", call),\n\t\t},\n\t\tfinance: {\n\t\t\tquote: post<FinanceQuoteData[\"body\"], FinanceQuoteResponse>(\"/v1/finance/quote\", call),\n\t\t\thistory: post<FinanceHistoryData[\"body\"], FinanceHistoryResponse>(\"/v1/finance/history\", call),\n\t\t\tsearch: post<FinanceSearchData[\"body\"], FinanceSearchResponse>(\"/v1/finance/search\", call),\n\t\t\tprofile: post<FinanceProfileData[\"body\"], FinanceProfileResponse>(\"/v1/finance/profile\", call),\n\t\t},\n\t\tmicrosoft: {\n\t\t\tads: {\n\t\t\t\tsearch: postOptional<MicrosoftAdsSearchData[\"body\"], MicrosoftAdsSearchResponse>(\"/v1/microsoft/ads/search\", call),\n\t\t\t\tad: post<MicrosoftAdsAdData[\"body\"], MicrosoftAdsAdResponse>(\"/v1/microsoft/ads/ad\", call),\n\t\t\t\tadvertisers: post<MicrosoftAdsAdvertisersData[\"body\"], MicrosoftAdsAdvertisersResponse>(\"/v1/microsoft/ads/advertisers\", call),\n\t\t\t},\n\t\t},\n\t\tsnapchat: {\n\t\t\tprofile: post<SnapchatProfileData[\"body\"], SnapchatProfileResponse>(\"/v1/snapchat/profile\", call),\n\t\t\tads: {\n\t\t\t\tsearch: post<SnapchatAdsSearchData[\"body\"], SnapchatAdsSearchResponse>(\"/v1/snapchat/ads/search\", call),\n\t\t\t\tad: post<SnapchatAdsAdData[\"body\"], SnapchatAdsAdResponse>(\"/v1/snapchat/ads/ad\", call),\n\t\t\t},\n\t\t},\n\t\ttumblr: {\n\t\t\tblog: post<TumblrBlogData[\"body\"], TumblrBlogResponse>(\"/v1/tumblr/blog\", call),\n\t\t\tposts: post<TumblrPostsData[\"body\"], TumblrPostsResponse>(\"/v1/tumblr/posts\", call),\n\t\t\tpost: post<TumblrPostData[\"body\"], TumblrPostResponse>(\"/v1/tumblr/post\", call),\n\t\t\tsearch: post<TumblrSearchData[\"body\"], TumblrSearchResponse>(\"/v1/tumblr/search\", call),\n\t\t},\n\t\tquora: {\n\t\t\tquestion: post<QuoraQuestionData[\"body\"], QuoraQuestionResponse>(\"/v1/quora/question\", call),\n\t\t},\n\t};\n}\n\nexport type Surface = ReturnType<typeof bindSurface>;\n","{\n \"name\": \"stophy\",\n \"version\": \"1.0.0\",\n \"description\": \"Public web data for AI agents in TypeScript: search, video, social, places, shopping, jobs and real estate.\",\n \"type\": \"module\",\n \"license\": \"MIT\",\n \"homepage\": \"https://stophy.dev\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/stophydotdev/sdk.git\",\n \"directory\": \"packages/typescript\"\n },\n \"keywords\": [\n \"stophy\",\n \"sdk\",\n \"web-data\",\n \"web-search\",\n \"scraping\",\n \"ai-agents\",\n \"llm\",\n \"youtube\",\n \"reddit\",\n \"maps\"\n ],\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n }\n },\n \"files\": [\n \"dist\"\n ],\n \"scripts\": {\n \"generate\": \"openapi-ts && bun ../../scripts/gen-surface.ts\",\n \"build\": \"tsup\",\n \"test\": \"bun test ../../test/typescript\",\n \"check-types\": \"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json\",\n \"prepublishOnly\": \"bun run generate && bun run build\"\n },\n \"devDependencies\": {\n \"@hey-api/client-fetch\": \"^0.10.2\",\n \"@hey-api/openapi-ts\": \"^0.64.0\",\n \"@types/bun\": \"^1.1.14\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^5.7.0\"\n }\n}\n","import { version } from \"../package.json\";\nimport { StophyError } from \"./errors\";\n\nconst DEFAULT_BASE_URL = \"https://api.stophy.dev\";\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst MAX_RETRY_WAIT_SECONDS = 60;\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);\nconst USER_AGENT = `stophy-typescript/${version}`;\n\nexport interface CallOptions {\n\t/** Send `Accept: text/markdown` and return the response body as a string. */\n\tformat?: \"markdown\";\n\tsignal?: AbortSignal;\n}\n\nexport interface RequestSpec {\n\tmethod: \"GET\" | \"POST\";\n\tpath: string;\n\tbody?: unknown;\n\tquery?: Record<string, string | number | undefined>;\n\toptions?: CallOptions;\n}\n\nexport type Caller = (spec: RequestSpec) => Promise<unknown>;\n\nexport type FetchLike = (\n\tinput: RequestInfo | URL,\n\tinit?: RequestInit,\n) => Promise<Response>;\n\nexport interface TransportOptions {\n\tapiKey?: string;\n\tbaseUrl?: string;\n\tfetch?: FetchLike;\n\theaders?: Record<string, string>;\n\tmaxRetries?: number;\n\tretryInitialDelayMs?: number;\n\ttimeoutMs?: number;\n}\n\nexport function createCaller(options: TransportOptions): Caller {\n\tconst baseFetch: FetchLike = options.fetch ?? globalThis.fetch;\n\tconst baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/$/, \"\");\n\tconst retry: RetryPolicy = {\n\t\tmaxRetries: options.maxRetries ?? 2,\n\t\tinitialDelayMs: options.retryInitialDelayMs ?? 500,\n\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT_MS,\n\t};\n\n\treturn async (spec) => {\n\t\tconst markdown = spec.options?.format === \"markdown\";\n\t\tconst headers = new Headers(options.headers);\n\t\tif (typeof document === \"undefined\" && !headers.has(\"user-agent\")) {\n\t\t\theaders.set(\"user-agent\", USER_AGENT);\n\t\t}\n\t\tif (options.apiKey) {\n\t\t\theaders.set(\"authorization\", `Bearer ${options.apiKey}`);\n\t\t}\n\t\theaders.set(\"accept\", markdown ? \"text/markdown\" : \"application/json\");\n\t\tif (spec.body !== undefined)\n\t\t\theaders.set(\"content-type\", \"application/json\");\n\n\t\tconst url = withQuery(`${baseUrl}${spec.path}`, spec.query);\n\t\treturn send(\n\t\t\tbaseFetch,\n\t\t\turl,\n\t\t\t(signal) => ({\n\t\t\t\tmethod: spec.method,\n\t\t\t\theaders,\n\t\t\t\tbody: spec.body === undefined ? undefined : JSON.stringify(spec.body),\n\t\t\t\tsignal,\n\t\t\t}),\n\t\t\tmarkdown,\n\t\t\tspec.options?.signal,\n\t\t\tretry,\n\t\t);\n\t};\n}\n\ninterface RetryPolicy {\n\tmaxRetries: number;\n\tinitialDelayMs: number;\n\ttimeoutMs: number;\n}\n\nasync function send(\n\tbaseFetch: FetchLike,\n\turl: string,\n\tinit: (signal: AbortSignal) => RequestInit,\n\tmarkdown: boolean,\n\tsignal: AbortSignal | undefined,\n\tretry: RetryPolicy,\n): Promise<unknown> {\n\tfor (let n = 0; ; n += 1) {\n\t\tconst deadline = withDeadline(signal, retry.timeoutMs);\n\t\tlet waitMs: number;\n\t\ttry {\n\t\t\tconst response = await baseFetch(url, init(deadline.signal)).catch(\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (deadline.signal.aborted || n >= retry.maxRetries) throw error;\n\t\t\t\t\treturn undefined;\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (response === undefined) {\n\t\t\t\twaitMs = backoffMs(n, retry.initialDelayMs);\n\t\t\t} else if (\n\t\t\t\tn < retry.maxRetries &&\n\t\t\t\tRETRYABLE_STATUS.has(response.status)\n\t\t\t) {\n\t\t\t\tconst error = await errorFrom(response);\n\t\t\t\tconst seconds = error.retryAfterSeconds;\n\t\t\t\tif (seconds !== undefined && seconds > MAX_RETRY_WAIT_SECONDS) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\twaitMs =\n\t\t\t\t\tseconds === undefined\n\t\t\t\t\t\t? backoffMs(n, retry.initialDelayMs)\n\t\t\t\t\t\t: seconds * 1000;\n\t\t\t} else {\n\t\t\t\treturn await readBody(response, markdown);\n\t\t\t}\n\t\t} finally {\n\t\t\tdeadline.clear();\n\t\t}\n\t\tawait sleep(waitMs);\n\t}\n}\n\nfunction withDeadline(signal: AbortSignal | undefined, timeoutMs: number) {\n\tconst controller = new AbortController();\n\tconst abort = () => controller.abort(signal?.reason);\n\tif (signal?.aborted) abort();\n\telse signal?.addEventListener(\"abort\", abort, { once: true });\n\tconst timer = setTimeout(\n\t\t() =>\n\t\t\tcontroller.abort(\n\t\t\t\tnew DOMException(\n\t\t\t\t\t`Stophy request timed out after ${timeoutMs} ms`,\n\t\t\t\t\t\"TimeoutError\",\n\t\t\t\t),\n\t\t\t),\n\t\ttimeoutMs,\n\t);\n\treturn {\n\t\tsignal: controller.signal,\n\t\tclear: () => {\n\t\t\tclearTimeout(timer);\n\t\t\tsignal?.removeEventListener(\"abort\", abort);\n\t\t},\n\t};\n}\n\nasync function readBody(\n\tresponse: Response,\n\tmarkdown: boolean,\n): Promise<unknown> {\n\tif (!response.ok) throw await errorFrom(response);\n\tconst text = await response.text();\n\tif (markdown) return text;\n\tif (!text) {\n\t\tthrow failed(response, \"Stophy returned an empty response\", {});\n\t}\n\ttry {\n\t\treturn JSON.parse(text);\n\t} catch {\n\t\tthrow failed(response, \"Stophy returned a non-JSON response\", {});\n\t}\n}\n\nasync function errorFrom(response: Response): Promise<StophyError> {\n\tconst text = await response.text();\n\tlet body: unknown;\n\tif (text) {\n\t\ttry {\n\t\t\tbody = JSON.parse(text);\n\t\t} catch {\n\t\t\tbody = undefined;\n\t\t}\n\t}\n\tconst error = readError(body);\n\tconst retryAfterSeconds =\n\t\terror.retryAfterSeconds ?? headerRetryAfter(response);\n\treturn failed(\n\t\tresponse,\n\t\terror.message ?? `Stophy request failed with status ${response.status}`,\n\t\t{\n\t\t\tcode: error.code,\n\t\t\tretryable: error.retryable ?? RETRYABLE_STATUS.has(response.status),\n\t\t\tretryAfterSeconds,\n\t\t\trequestId: error.requestId ?? headerRequestId(response),\n\t\t},\n\t);\n}\n\nfunction failed(\n\tresponse: Response,\n\tmessage: string,\n\toptions: {\n\t\tcode?: string;\n\t\tretryable?: boolean;\n\t\tretryAfterSeconds?: number;\n\t\trequestId?: string;\n\t},\n): StophyError {\n\treturn new StophyError(message, {\n\t\tstatus: response.status,\n\t\tcode: options.code,\n\t\tretryable: options.retryable ?? false,\n\t\tretryAfterSeconds: options.retryAfterSeconds,\n\t\trequestId: options.requestId ?? headerRequestId(response),\n\t});\n}\n\ninterface ErrorFields {\n\tcode?: string;\n\tmessage?: string;\n\tretryable?: boolean;\n\tretryAfterSeconds?: number;\n\trequestId?: string;\n}\n\nfunction readError(body: unknown): ErrorFields {\n\tif (!isRecord(body) || !isRecord(body.error)) return {};\n\tconst error = body.error;\n\treturn {\n\t\tcode: typeof error.code === \"string\" ? error.code : undefined,\n\t\tmessage: typeof error.message === \"string\" ? error.message : undefined,\n\t\tretryable:\n\t\t\ttypeof error.retryable === \"boolean\" ? error.retryable : undefined,\n\t\tretryAfterSeconds:\n\t\t\ttypeof error.retryAfterSeconds === \"number\"\n\t\t\t\t? error.retryAfterSeconds\n\t\t\t\t: undefined,\n\t\trequestId:\n\t\t\ttypeof error.requestId === \"string\" ? error.requestId : undefined,\n\t};\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction headerRequestId(response: Response): string | undefined {\n\treturn response.headers.get(\"x-request-id\") ?? undefined;\n}\n\nfunction headerRetryAfter(response: Response): number | undefined {\n\tconst header = response.headers.get(\"retry-after\");\n\tif (!header) return undefined;\n\tconst seconds = Number(header);\n\tif (Number.isFinite(seconds)) return seconds;\n\tconst date = Date.parse(header);\n\tif (Number.isNaN(date)) return undefined;\n\treturn Math.max(0, Math.ceil((date - Date.now()) / 1000));\n}\n\nfunction withQuery(\n\turl: string,\n\tquery: Record<string, string | number | undefined> | undefined,\n): string {\n\tif (!query) return url;\n\tconst params = new URLSearchParams();\n\tfor (const [key, value] of Object.entries(query)) {\n\t\tif (value !== undefined) params.set(key, String(value));\n\t}\n\tconst text = params.toString();\n\treturn text ? `${url}?${text}` : url;\n}\n\nfunction backoffMs(attempt: number, base: number): number {\n\tconst window = base * 2 ** attempt;\n\treturn window / 2 + Math.random() * (window / 2);\n}\n\nfunction sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n","import { type Logs, type LogsQuery, logs, type Usage, usage } from \"./account\";\nimport { bindSurface, type Surface } from \"./generated/surface.gen\";\nimport {\n\ttype Caller,\n\ttype CallOptions,\n\tcreateCaller,\n\ttype FetchLike,\n} from \"./transport\";\n\nexport interface StophyOptions {\n\t/** Defaults to `STOPHY_API_KEY`. Without a key, only the free endpoints answer. */\n\tapiKey?: string;\n\t/** Defaults to `STOPHY_BASE_URL` or `https://api.stophy.dev`. */\n\tbaseUrl?: string;\n\tfetch?: FetchLike;\n\theaders?: Record<string, string>;\n\tmaxRetries?: number;\n\tretryInitialDelayMs?: number;\n\t/** Per-attempt timeout. Defaults to 30000. */\n\ttimeoutMs?: number;\n}\n\nexport type { CallOptions, FetchLike };\n\nexport type StophyClientInput = StophyOptions | string;\n\nfunction env(name: string): string | undefined {\n\treturn typeof process === \"undefined\" ? undefined : process.env[name];\n}\n\n/** Typed client for the Stophy web data API. Namespaces come from the OpenAPI document. */\n// The generated surface is copied onto this instance in the constructor.\n// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: namespaces are assigned from bindSurface\nexport class Stophy {\n\treadonly #call: Caller;\n\n\tconstructor(input: StophyClientInput = {}) {\n\t\tconst options = typeof input === \"string\" ? { apiKey: input } : input;\n\t\tconst apiKey = options.apiKey?.trim() || env(\"STOPHY_API_KEY\")?.trim();\n\t\tthis.#call = createCaller({\n\t\t\t...options,\n\t\t\tapiKey,\n\t\t\tbaseUrl: options.baseUrl ?? env(\"STOPHY_BASE_URL\"),\n\t\t});\n\t\tObject.assign(this, bindSurface(this.#call));\n\t}\n\n\t/** Current balance and lifetime usage. Requires an API key. */\n\tusage(): Promise<Usage> {\n\t\treturn usage(this.#call);\n\t}\n\n\t/** Recent metered requests. Requires an API key. */\n\tlogs(query?: LogsQuery): Promise<Logs> {\n\t\treturn logs(this.#call, query);\n\t}\n}\n\nexport interface Stophy extends Surface {}\n"]}
|