scavio 0.9.0 → 0.11.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 CHANGED
@@ -205,29 +205,36 @@ await client.x.trending({ country: "UnitedStates" });
205
205
  ### LinkedIn
206
206
 
207
207
  ```typescript
208
- // Person profile, about, posts, and contact
208
+ // Person profile, about, and posts. A handle or a full LinkedIn URL works
209
+ // anywhere a reference is taken.
209
210
  await client.linkedin.person({ username: "williamhgates" });
210
- await client.linkedin.personAbout({ username: "williamhgates" });
211
+ await client.linkedin.personAbout({ url: "https://www.linkedin.com/in/williamhgates/" });
211
212
  await client.linkedin.personPosts({ username: "williamhgates" });
212
- await client.linkedin.personContact({ username: "williamhgates" });
213
213
 
214
- // Company profile, posts, people, and jobs
214
+ // Company profile and posts
215
215
  await client.linkedin.company({ company: "microsoft" });
216
216
  await client.linkedin.companyPosts({ company: "microsoft" });
217
- await client.linkedin.companyPeople({ company: "microsoft" });
218
- await client.linkedin.companyJobs({ company: "microsoft" });
219
-
220
- // Search people, jobs, and posts
221
- await client.linkedin.searchPeople({ search: "john", title: "engineer" });
222
- await client.linkedin.searchJobs({ search: "software engineer" });
223
- await client.linkedin.searchPosts({ search: "AI agents" });
224
-
225
- // Job, post, and post comments
226
- await client.linkedin.job({ job_id: "3900000000" });
227
- await client.linkedin.post({ post_id: "7486820977411145728" });
228
- await client.linkedin.postComments({ post_id: "7486820977411145728", sort_order: "relevance" });
217
+
218
+ // Jobs: search, then pull detail for one listing
219
+ await client.linkedin.searchJobs({ search: "software engineer", location: "United States" });
220
+ await client.linkedin.job({ job_id: "4415427228" });
221
+
222
+ // A post and its comments (10 per page)
223
+ await client.linkedin.post({ post_id: "7488618410256523265" });
224
+ await client.linkedin.postComments({ post_id: "7488618410256523265", page: 1 });
229
225
  ```
230
226
 
227
+ All LinkedIn endpoints cost 1 credit.
228
+
229
+ > **Retired endpoints.** The upstream provider withdrew the datasets behind
230
+ > `personContact`, `companyPeople`, `companyJobs`, `searchPeople` and
231
+ > `searchPosts`. They remain callable but always return HTTP 410 and are never
232
+ > billed. `company()` returns `featured_employees` (a small sample of staff), and
233
+ > `searchJobs()` with a company name substitutes for `companyJobs()`.
234
+ >
235
+ > `personPosts` and `companyPosts` return up to 50 posts; the provider exposes no
236
+ > further pages, so those endpoints no longer take a cursor.
237
+
231
238
  ### TikTok
232
239
 
233
240
  ```typescript
package/dist/index.cjs CHANGED
@@ -756,48 +756,84 @@ var LinkedInNamespace = class {
756
756
  this.client = client;
757
757
  }
758
758
  client;
759
+ /** Full profile: about text, experience, education, honours and links. */
759
760
  async person(options) {
760
761
  return this.client._post("/api/v1/linkedin/person", options);
761
762
  }
763
+ /** The about-only slice of the profile payload. */
762
764
  async personAbout(options) {
763
765
  return this.client._post("/api/v1/linkedin/person/about", options);
764
766
  }
767
+ /**
768
+ * A member's posts, or the posts they commented on or reacted to via `type`.
769
+ * 50 per page; pass the previous response's `next_cursor` to advance.
770
+ */
765
771
  async personPosts(options) {
766
772
  return this.client._post("/api/v1/linkedin/person/posts", options);
767
773
  }
768
- async personContact(options) {
769
- return this.client._post("/api/v1/linkedin/person/contact", options);
770
- }
774
+ /** Company profile, including locations and featured employees. */
771
775
  async company(options) {
772
776
  return this.client._post("/api/v1/linkedin/company", options);
773
777
  }
778
+ /** Recent company posts, 50 per page; advance with `next_cursor`. */
774
779
  async companyPosts(options) {
775
780
  return this.client._post("/api/v1/linkedin/company/posts", options);
776
781
  }
777
- async companyPeople(options) {
778
- return this.client._post("/api/v1/linkedin/company/people", options);
779
- }
780
- async companyJobs(options) {
781
- return this.client._post("/api/v1/linkedin/company/jobs", options);
782
- }
783
- async searchPeople(options) {
784
- return this.client._post("/api/v1/linkedin/search/people", options);
785
- }
782
+ /**
783
+ * Job search, 25 per page; advance with `next_cursor`. Upstream rotates its
784
+ * result set, so pages overlap slightly - dedupe by job id.
785
+ */
786
786
  async searchJobs(options) {
787
787
  return this.client._post("/api/v1/linkedin/search/jobs", options);
788
788
  }
789
- async searchPosts(options) {
790
- return this.client._post("/api/v1/linkedin/search/posts", options);
791
- }
789
+ /** Full detail for one job listing, including the hiring company. */
792
790
  async job(options) {
793
791
  return this.client._post("/api/v1/linkedin/job", options);
794
792
  }
793
+ /** Full detail for one post, including its top visible comments. */
795
794
  async post(options) {
796
795
  return this.client._post("/api/v1/linkedin/post", options);
797
796
  }
797
+ /** Comments with their replies. Page size varies - keep paging until empty. */
798
798
  async postComments(options) {
799
799
  return this.client._post("/api/v1/linkedin/post/comments", options);
800
800
  }
801
+ /**
802
+ * @deprecated Retired by the upstream provider. Always returns HTTP 410 and is
803
+ * never billed.
804
+ */
805
+ async personContact(options) {
806
+ return this.client._post("/api/v1/linkedin/person/contact", options);
807
+ }
808
+ /**
809
+ * @deprecated Retired by the upstream provider. Always returns HTTP 410 and is
810
+ * never billed. `company()` returns `featured_employees`, a small sample of
811
+ * staff profiles.
812
+ */
813
+ async companyPeople(options) {
814
+ return this.client._post("/api/v1/linkedin/company/people", options);
815
+ }
816
+ /**
817
+ * @deprecated Retired by the upstream provider. Always returns HTTP 410 and is
818
+ * never billed. Use `searchJobs()` with the company name as the search term.
819
+ */
820
+ async companyJobs(options) {
821
+ return this.client._post("/api/v1/linkedin/company/jobs", options);
822
+ }
823
+ /**
824
+ * @deprecated Retired by the upstream provider. Always returns HTTP 410 and is
825
+ * never billed.
826
+ */
827
+ async searchPeople(options) {
828
+ return this.client._post("/api/v1/linkedin/search/people", options);
829
+ }
830
+ /**
831
+ * @deprecated Retired by the upstream provider. Always returns HTTP 410 and is
832
+ * never billed.
833
+ */
834
+ async searchPosts(options) {
835
+ return this.client._post("/api/v1/linkedin/search/posts", options);
836
+ }
801
837
  };
802
838
 
803
839
  // src/client.ts