UNPKG

friday-sdk

Version:

Official JavaScript/TypeScript SDK for the Friday API

265 lines (264 loc) 10.1 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FridayClient = void 0; const client_1 = require("./client"); class FridayClient { constructor(options) { this.client = new client_1.APIClient(options); } get_status() { return this.client.request("/status", { method: "GET" }); } getStatus() { return this.get_status(); } getProfile(options) { const params = new URLSearchParams({ profile_url: options.profileUrl }); if (options.realtime !== undefined) { params.append("realtime", String(options.realtime)); } if (options.prompt) { params.append("prompt", options.prompt); } if (options.customSchema) { params.append("custom_schema", options.customSchema); } return this.client.request(`/profile?${params.toString()}`); } analyzeCompany(optionsOrUrl) { var _a; const options = typeof optionsOrUrl === "string" ? { linkedinUrl: optionsOrUrl } : optionsOrUrl; return this.client.request("/analyze-company", { method: "POST", body: JSON.stringify({ linkedin_url: options.linkedinUrl, realtime: (_a = options.realtime) !== null && _a !== void 0 ? _a : false, }), }); } scrape(url, options = {}) { var _a; return this.client.request("/scrape", { method: "POST", body: JSON.stringify({ url, formats: (_a = options.formats) !== null && _a !== void 0 ? _a : ["html"], }), }); } crawl(url, options = {}) { var _a, _b; return this.client.request("/crawl", { method: "POST", body: JSON.stringify({ url, formats: (_a = options.formats) !== null && _a !== void 0 ? _a : ["html", "markdown", "links"], max_pages: (_b = options.maxPages) !== null && _b !== void 0 ? _b : 10, }), }); } extract(url, query, optionsOrSchema = {}) { const options = "customSchema" in optionsOrSchema ? optionsOrSchema : { customSchema: optionsOrSchema }; return this.client.request("/extract", { method: "POST", body: JSON.stringify({ url, query, ...(options.customSchema !== undefined ? { custom_schema: options.customSchema } : {}), }), }); } search(query, optionsOrLocation = {}, numResults) { var _a, _b; const options = typeof optionsOrLocation === "string" ? { location: optionsOrLocation, ...(numResults !== undefined ? { numResults } : {}), } : optionsOrLocation; return this.client.request("/search", { method: "POST", body: JSON.stringify({ query, location: (_a = options.location) !== null && _a !== void 0 ? _a : "US", num_results: (_b = options.numResults) !== null && _b !== void 0 ? _b : 15, }), }); } redditSearch(query, options = {}) { var _a, _b, _c; return this.client.request("/reddit/search", { method: "POST", body: JSON.stringify({ query, sort: (_a = options.sort) !== null && _a !== void 0 ? _a : "top", time_filter: (_b = options.timeFilter) !== null && _b !== void 0 ? _b : "all", limit: (_c = options.limit) !== null && _c !== void 0 ? _c : 25, }), }); } redditSubredditSearch(options) { var _a, _b, _c; return this.client.request("/reddit/subreddit/search", { method: "POST", body: JSON.stringify({ subreddit: options.subreddit, query: options.query, sort: (_a = options.sort) !== null && _a !== void 0 ? _a : "top", time_filter: (_b = options.timeFilter) !== null && _b !== void 0 ? _b : "all", limit: (_c = options.limit) !== null && _c !== void 0 ? _c : 25, }), }); } redditUserPosts(options) { var _a; return this.client.request("/reddit/user/posts", { method: "POST", body: JSON.stringify({ username: options.username, limit: (_a = options.limit) !== null && _a !== void 0 ? _a : 25, }), }); } scrapeTwitterProfile(options) { var _a; return this.client.request("/twitter/profile", { method: "POST", body: JSON.stringify({ profile_url: options.profileUrl, tweet_count: (_a = options.tweetCount) !== null && _a !== void 0 ? _a : 10, }), }); } xLatest(options) { var _a; const params = new URLSearchParams({ handle: options.handle, limit: String((_a = options.limit) !== null && _a !== void 0 ? _a : 10), }); if (options.refresh !== undefined) { params.append("refresh", options.refresh); } return this.client.request(`/x/latest?${params.toString()}`, { method: "GET" }); } xSearch(options) { var _a; const params = new URLSearchParams({ limit: String((_a = options.limit) !== null && _a !== void 0 ? _a : 20), }); if (options.q !== undefined) { params.append("q", options.q); } if (options.query !== undefined) { params.append("query", options.query); } if (options.refresh !== undefined) { params.append("refresh", options.refresh); } return this.client.request(`/x/search?${params.toString()}`, { method: "GET" }); } xNews(options = {}) { var _a; const params = new URLSearchParams({ limit: String((_a = options.limit) !== null && _a !== void 0 ? _a : 10), }); if (options.aiOnly !== undefined) { params.append("aiOnly", options.aiOnly); } if (options.withTweets !== undefined) { params.append("withTweets", options.withTweets); } if (options.tabs !== undefined) { params.append("tabs", options.tabs); } if (options.refresh !== undefined) { params.append("refresh", options.refresh); } return this.client.request(`/x/news?${params.toString()}`, { method: "GET" }); } xAbout(options) { const params = new URLSearchParams(); if (options.refresh !== undefined) { params.append("refresh", options.refresh); } const suffix = params.toString() ? `?${params.toString()}` : ""; return this.client.request(`/x/about/${options.handle}${suffix}`, { method: "GET", }); } xWhoami(options = {}) { const params = new URLSearchParams(); if (options.refresh !== undefined) { params.append("refresh", options.refresh); } const suffix = params.toString() ? `?${params.toString()}` : ""; return this.client.request(`/x/whoami${suffix}`, { method: "GET" }); } linkedinProfilePosts(options) { return this.client.request("/linkedin/profile/posts", { method: "POST", body: JSON.stringify({ profile_url: options.profileUrl }), }); } linkedinCompanyPosts(options) { return this.client.request("/linkedin/company/posts", { method: "POST", body: JSON.stringify({ company_url: options.companyUrl }), }); } createApiKey(options) { return this.client.request("/admin/create-api-key", { method: "POST", body: JSON.stringify({ client: options.client, rate_limit: options.rateLimit, key_type: options.keyType, description: options.description, }), }); } revokeApiKey(key) { return this.client.request(`/admin/revoke-api-key/${key}`, { method: "DELETE", }); } resetRateLimits() { return this.client.request("/admin/reset", { method: "POST" }); } createUserApiKey(options) { const params = new URLSearchParams({ key_type: options.keyType }); return this.client.request(`/user/create-api-key?${params.toString()}`, { method: "POST" }, { useApiKey: false, bearerToken: options.jwtToken }); } getUserApiKeys(jwtToken) { return this.client.request("/user/api-keys", { method: "GET" }, { useApiKey: false, bearerToken: jwtToken }); } getSubscriptionPlans(jwtToken) { return this.client.request("/subscription-plans", { method: "GET" }, { useApiKey: false, bearerToken: jwtToken }); } regenerateUserApiKey(options) { const params = new URLSearchParams({ old_key: options.oldKey }); return this.client.request(`/user/regenerate-api-key?${params.toString()}`, { method: "POST" }, { useApiKey: false, bearerToken: options.jwtToken }); } } exports.FridayClient = FridayClient; __exportStar(require("./types"), exports);