scavio 0.5.0 → 0.7.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 +119 -19
- package/dist/index.cjs +181 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +408 -4
- package/dist/index.d.ts +408 -4
- package/dist/index.js +181 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
package/dist/index.d.ts
CHANGED
|
@@ -410,6 +410,10 @@ declare class GoogleNamespace {
|
|
|
410
410
|
trending(options: GoogleTrendingOptions): Promise<Record<string, unknown>>;
|
|
411
411
|
}
|
|
412
412
|
|
|
413
|
+
/** Comment / feed sort orders. */
|
|
414
|
+
type RedditSort = "HOT" | "NEW" | "TOP" | "BEST" | "CONTROVERSIAL";
|
|
415
|
+
/** Subreddit feed sort orders. */
|
|
416
|
+
type RedditFeedSort = "BEST" | "HOT" | "NEW" | "TOP" | "CONTROVERSIAL" | "RISING";
|
|
413
417
|
interface RedditSearchOptions {
|
|
414
418
|
/** Search query (1-500 characters). */
|
|
415
419
|
query: string;
|
|
@@ -421,16 +425,84 @@ interface RedditSearchOptions {
|
|
|
421
425
|
cursor?: string;
|
|
422
426
|
[key: string]: unknown;
|
|
423
427
|
}
|
|
428
|
+
interface RedditSearchSuggestionsOptions {
|
|
429
|
+
/** Search query (1-500 characters). */
|
|
430
|
+
query: string;
|
|
431
|
+
[key: string]: unknown;
|
|
432
|
+
}
|
|
424
433
|
interface RedditPostOptions {
|
|
434
|
+
/** Post fullname (t3_...) or bare id. */
|
|
435
|
+
post_id?: string;
|
|
425
436
|
/** Full Reddit post URL. */
|
|
426
|
-
url
|
|
437
|
+
url?: string;
|
|
438
|
+
[key: string]: unknown;
|
|
439
|
+
}
|
|
440
|
+
interface RedditPostCommentsOptions {
|
|
441
|
+
/** Post fullname (t3_...). */
|
|
442
|
+
post_id: string;
|
|
443
|
+
/** Comment sort order (default 'TOP'). */
|
|
444
|
+
sort?: RedditSort;
|
|
445
|
+
/** Pagination cursor from a prior response. */
|
|
446
|
+
cursor?: string;
|
|
447
|
+
[key: string]: unknown;
|
|
448
|
+
}
|
|
449
|
+
interface RedditCommentRepliesOptions {
|
|
450
|
+
/** Post fullname (t3_...). */
|
|
451
|
+
post_id: string;
|
|
452
|
+
/** reply_cursor from a comment in the comments endpoint. */
|
|
453
|
+
cursor: string;
|
|
454
|
+
/** Comment sort order (default 'TOP'). */
|
|
455
|
+
sort?: RedditSort;
|
|
456
|
+
[key: string]: unknown;
|
|
457
|
+
}
|
|
458
|
+
interface RedditSubredditOptions {
|
|
459
|
+
/** Subreddit name (without r/). */
|
|
460
|
+
subreddit: string;
|
|
461
|
+
[key: string]: unknown;
|
|
462
|
+
}
|
|
463
|
+
interface RedditSubredditPostsOptions {
|
|
464
|
+
/** Subreddit name (without r/). */
|
|
465
|
+
subreddit: string;
|
|
466
|
+
/** Feed sort order (default 'HOT'). */
|
|
467
|
+
sort?: RedditFeedSort;
|
|
468
|
+
/** Pagination cursor from a prior response. */
|
|
469
|
+
cursor?: string;
|
|
470
|
+
[key: string]: unknown;
|
|
471
|
+
}
|
|
472
|
+
interface RedditUserOptions {
|
|
473
|
+
/** Redditor username (without u/). */
|
|
474
|
+
username: string;
|
|
475
|
+
[key: string]: unknown;
|
|
476
|
+
}
|
|
477
|
+
interface RedditUserFeedOptions {
|
|
478
|
+
/** Redditor username (without u/). */
|
|
479
|
+
username: string;
|
|
480
|
+
/** Sort order (default 'NEW'). */
|
|
481
|
+
sort?: RedditSort;
|
|
482
|
+
/** Pagination cursor from a prior response. */
|
|
483
|
+
cursor?: string;
|
|
484
|
+
[key: string]: unknown;
|
|
485
|
+
}
|
|
486
|
+
interface RedditPopularOptions {
|
|
487
|
+
/** Pagination cursor from a prior response. */
|
|
488
|
+
cursor?: string;
|
|
427
489
|
[key: string]: unknown;
|
|
428
490
|
}
|
|
429
491
|
declare class RedditNamespace {
|
|
430
492
|
private client;
|
|
431
493
|
constructor(client: Scavio);
|
|
432
494
|
search(options: RedditSearchOptions): Promise<Record<string, unknown>>;
|
|
495
|
+
searchSuggestions(options: RedditSearchSuggestionsOptions): Promise<Record<string, unknown>>;
|
|
433
496
|
post(options: RedditPostOptions): Promise<Record<string, unknown>>;
|
|
497
|
+
postComments(options: RedditPostCommentsOptions): Promise<Record<string, unknown>>;
|
|
498
|
+
commentReplies(options: RedditCommentRepliesOptions): Promise<Record<string, unknown>>;
|
|
499
|
+
subreddit(options: RedditSubredditOptions): Promise<Record<string, unknown>>;
|
|
500
|
+
subredditPosts(options: RedditSubredditPostsOptions): Promise<Record<string, unknown>>;
|
|
501
|
+
user(options: RedditUserOptions): Promise<Record<string, unknown>>;
|
|
502
|
+
userPosts(options: RedditUserFeedOptions): Promise<Record<string, unknown>>;
|
|
503
|
+
userComments(options: RedditUserFeedOptions): Promise<Record<string, unknown>>;
|
|
504
|
+
popular(options?: RedditPopularOptions): Promise<Record<string, unknown>>;
|
|
505
|
+
trending(): Promise<Record<string, unknown>>;
|
|
434
506
|
}
|
|
435
507
|
|
|
436
508
|
interface TikTokProfileOptions {
|
|
@@ -692,11 +764,18 @@ interface YouTubeSearchOptions {
|
|
|
692
764
|
/** Filter by upload date. */
|
|
693
765
|
upload_date?: "last_hour" | "today" | "this_week" | "this_month" | "this_year";
|
|
694
766
|
/** Filter by result type. */
|
|
695
|
-
type?: "video" | "channel" | "playlist";
|
|
767
|
+
type?: "video" | "channel" | "playlist" | "movie";
|
|
696
768
|
/** short (<4 min), medium (4-20 min), long (>20 min). */
|
|
697
769
|
duration?: "short" | "medium" | "long";
|
|
698
770
|
/** Sort order. */
|
|
699
771
|
sort_by?: "relevance" | "date" | "view_count" | "rating";
|
|
772
|
+
/**
|
|
773
|
+
* Feature filters, e.g. ["hd", "4k", "subtitles", "creative_commons",
|
|
774
|
+
* "live", "360", "3d", "hdr", "vr180"].
|
|
775
|
+
*/
|
|
776
|
+
features?: string[];
|
|
777
|
+
/** Pagination cursor from a prior response. */
|
|
778
|
+
cursor?: string;
|
|
700
779
|
/** HD videos only. */
|
|
701
780
|
hd?: boolean;
|
|
702
781
|
/** Videos with subtitles/CC only. */
|
|
@@ -719,8 +798,107 @@ interface YouTubeSearchOptions {
|
|
|
719
798
|
video_3d?: boolean;
|
|
720
799
|
[key: string]: unknown;
|
|
721
800
|
}
|
|
801
|
+
interface YouTubeShortsOptions {
|
|
802
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
803
|
+
query: string;
|
|
804
|
+
/** Sort order. */
|
|
805
|
+
sort_by?: "relevance" | "date" | "view_count" | "rating";
|
|
806
|
+
/** Pagination cursor from a prior response. */
|
|
807
|
+
cursor?: string;
|
|
808
|
+
[key: string]: unknown;
|
|
809
|
+
}
|
|
810
|
+
interface YouTubeSuggestionsOptions {
|
|
811
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
812
|
+
query: string;
|
|
813
|
+
/** Language code for suggestions (default 'en'). */
|
|
814
|
+
language?: string;
|
|
815
|
+
/** Region code for suggestions (default 'US'). */
|
|
816
|
+
region?: string;
|
|
817
|
+
[key: string]: unknown;
|
|
818
|
+
}
|
|
819
|
+
interface YouTubeVideoOptions {
|
|
820
|
+
/** YouTube video id (e.g. 'dQw4w9WgXcQ') or a full watch URL. */
|
|
821
|
+
video_id: string;
|
|
822
|
+
[key: string]: unknown;
|
|
823
|
+
}
|
|
824
|
+
/** @deprecated Use YouTubeVideoOptions with youtube.video(). */
|
|
722
825
|
interface YouTubeMetadataOptions {
|
|
723
|
-
/** YouTube video id (e.g. 'dQw4w9WgXcQ'). */
|
|
826
|
+
/** YouTube video id (e.g. 'dQw4w9WgXcQ') or a full watch URL. */
|
|
827
|
+
video_id: string;
|
|
828
|
+
[key: string]: unknown;
|
|
829
|
+
}
|
|
830
|
+
interface YouTubeCommentsOptions {
|
|
831
|
+
/** YouTube video id or a full watch URL. */
|
|
832
|
+
video_id: string;
|
|
833
|
+
/** Pagination cursor from a prior response. */
|
|
834
|
+
cursor?: string;
|
|
835
|
+
[key: string]: unknown;
|
|
836
|
+
}
|
|
837
|
+
interface YouTubeCommentRepliesOptions {
|
|
838
|
+
/** YouTube video id or a full watch URL. */
|
|
839
|
+
video_id: string;
|
|
840
|
+
/** Reply cursor from a parent comment's 'reply_cursor'. */
|
|
841
|
+
reply_cursor: string;
|
|
842
|
+
/** Pagination cursor from a prior response. */
|
|
843
|
+
cursor?: string;
|
|
844
|
+
[key: string]: unknown;
|
|
845
|
+
}
|
|
846
|
+
interface YouTubeTranscriptOptions {
|
|
847
|
+
/** YouTube video id or a full watch URL. */
|
|
848
|
+
video_id: string;
|
|
849
|
+
/** Caption language code (default 'en'). */
|
|
850
|
+
language?: string;
|
|
851
|
+
/** 'text' for plain transcript, 'srt' for timed subtitles (default 'text'). */
|
|
852
|
+
format?: "text" | "srt";
|
|
853
|
+
[key: string]: unknown;
|
|
854
|
+
}
|
|
855
|
+
interface YouTubeRelatedOptions {
|
|
856
|
+
/** YouTube video id or a full watch URL. */
|
|
857
|
+
video_id: string;
|
|
858
|
+
/** Pagination cursor from a prior response. */
|
|
859
|
+
cursor?: string;
|
|
860
|
+
[key: string]: unknown;
|
|
861
|
+
}
|
|
862
|
+
interface YouTubeChannelSearchOptions {
|
|
863
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
864
|
+
query: string;
|
|
865
|
+
/** Pagination cursor from a prior response. */
|
|
866
|
+
cursor?: string;
|
|
867
|
+
[key: string]: unknown;
|
|
868
|
+
}
|
|
869
|
+
interface YouTubeChannelOptions {
|
|
870
|
+
/** YouTube channel id, @handle, or channel URL. */
|
|
871
|
+
channel_id: string;
|
|
872
|
+
[key: string]: unknown;
|
|
873
|
+
}
|
|
874
|
+
interface YouTubeChannelVideosOptions {
|
|
875
|
+
/** YouTube channel id. */
|
|
876
|
+
channel_id: string;
|
|
877
|
+
/** Pagination cursor from a prior response. */
|
|
878
|
+
cursor?: string;
|
|
879
|
+
[key: string]: unknown;
|
|
880
|
+
}
|
|
881
|
+
interface YouTubeChannelShortsOptions {
|
|
882
|
+
/** YouTube channel id. */
|
|
883
|
+
channel_id: string;
|
|
884
|
+
/** Pagination cursor from a prior response. */
|
|
885
|
+
cursor?: string;
|
|
886
|
+
[key: string]: unknown;
|
|
887
|
+
}
|
|
888
|
+
interface YouTubeChannelCommunityOptions {
|
|
889
|
+
/** YouTube channel id. */
|
|
890
|
+
channel_id: string;
|
|
891
|
+
/** Pagination cursor from a prior response. */
|
|
892
|
+
cursor?: string;
|
|
893
|
+
[key: string]: unknown;
|
|
894
|
+
}
|
|
895
|
+
interface YouTubeChannelResolveOptions {
|
|
896
|
+
/** A channel @handle or channel URL to resolve to a channel id. */
|
|
897
|
+
channel: string;
|
|
898
|
+
[key: string]: unknown;
|
|
899
|
+
}
|
|
900
|
+
interface YouTubeStreamsOptions {
|
|
901
|
+
/** YouTube video id or a full watch URL. */
|
|
724
902
|
video_id: string;
|
|
725
903
|
[key: string]: unknown;
|
|
726
904
|
}
|
|
@@ -728,7 +906,231 @@ declare class YouTubeNamespace {
|
|
|
728
906
|
private client;
|
|
729
907
|
constructor(client: Scavio);
|
|
730
908
|
search(options: YouTubeSearchOptions): Promise<Record<string, unknown>>;
|
|
909
|
+
shorts(options: YouTubeShortsOptions): Promise<Record<string, unknown>>;
|
|
910
|
+
suggestions(options: YouTubeSuggestionsOptions): Promise<Record<string, unknown>>;
|
|
911
|
+
video(options: YouTubeVideoOptions): Promise<Record<string, unknown>>;
|
|
912
|
+
/** @deprecated Use youtube.video(). Alias kept for backward compatibility. */
|
|
731
913
|
metadata(options: YouTubeMetadataOptions): Promise<Record<string, unknown>>;
|
|
914
|
+
comments(options: YouTubeCommentsOptions): Promise<Record<string, unknown>>;
|
|
915
|
+
commentReplies(options: YouTubeCommentRepliesOptions): Promise<Record<string, unknown>>;
|
|
916
|
+
transcript(options: YouTubeTranscriptOptions): Promise<Record<string, unknown>>;
|
|
917
|
+
related(options: YouTubeRelatedOptions): Promise<Record<string, unknown>>;
|
|
918
|
+
channelSearch(options: YouTubeChannelSearchOptions): Promise<Record<string, unknown>>;
|
|
919
|
+
channel(options: YouTubeChannelOptions): Promise<Record<string, unknown>>;
|
|
920
|
+
channelVideos(options: YouTubeChannelVideosOptions): Promise<Record<string, unknown>>;
|
|
921
|
+
channelShorts(options: YouTubeChannelShortsOptions): Promise<Record<string, unknown>>;
|
|
922
|
+
channelCommunity(options: YouTubeChannelCommunityOptions): Promise<Record<string, unknown>>;
|
|
923
|
+
channelResolve(options: YouTubeChannelResolveOptions): Promise<Record<string, unknown>>;
|
|
924
|
+
streams(options: YouTubeStreamsOptions): Promise<Record<string, unknown>>;
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
interface TwitterSearchOptions {
|
|
928
|
+
/** Search query (1-500 characters). */
|
|
929
|
+
search: string;
|
|
930
|
+
/** Result category (default 'Top'). */
|
|
931
|
+
search_type?: "Top" | "Latest" | "People" | "Photos" | "Videos";
|
|
932
|
+
/** Pagination cursor from a prior response. */
|
|
933
|
+
cursor?: string;
|
|
934
|
+
[key: string]: unknown;
|
|
935
|
+
}
|
|
936
|
+
interface TwitterTweetOptions {
|
|
937
|
+
/** Tweet id. */
|
|
938
|
+
tweet_id: string;
|
|
939
|
+
[key: string]: unknown;
|
|
940
|
+
}
|
|
941
|
+
interface TwitterTweetCommentsOptions {
|
|
942
|
+
/** Tweet id. */
|
|
943
|
+
tweet_id: string;
|
|
944
|
+
/** 'top' (ranked) or 'latest' (chronological); default 'top'. */
|
|
945
|
+
rank?: "top" | "latest";
|
|
946
|
+
/** Pagination cursor from a prior response. */
|
|
947
|
+
cursor?: string;
|
|
948
|
+
[key: string]: unknown;
|
|
949
|
+
}
|
|
950
|
+
interface TwitterTweetRetweetersOptions {
|
|
951
|
+
/** Tweet id. */
|
|
952
|
+
tweet_id: string;
|
|
953
|
+
/** Pagination cursor from a prior response. */
|
|
954
|
+
cursor?: string;
|
|
955
|
+
[key: string]: unknown;
|
|
956
|
+
}
|
|
957
|
+
interface TwitterUserOptions {
|
|
958
|
+
/** A Twitter handle (without the @). */
|
|
959
|
+
screen_name: string;
|
|
960
|
+
[key: string]: unknown;
|
|
961
|
+
}
|
|
962
|
+
interface TwitterUserFeedOptions {
|
|
963
|
+
/** A Twitter handle (without the @). */
|
|
964
|
+
screen_name: string;
|
|
965
|
+
/** Pagination cursor from a prior response. */
|
|
966
|
+
cursor?: string;
|
|
967
|
+
[key: string]: unknown;
|
|
968
|
+
}
|
|
969
|
+
interface TwitterTrendingOptions {
|
|
970
|
+
/** Country name (default 'UnitedStates'). */
|
|
971
|
+
country?: string;
|
|
972
|
+
[key: string]: unknown;
|
|
973
|
+
}
|
|
974
|
+
declare class TwitterNamespace {
|
|
975
|
+
private client;
|
|
976
|
+
constructor(client: Scavio);
|
|
977
|
+
search(options: TwitterSearchOptions): Promise<Record<string, unknown>>;
|
|
978
|
+
tweet(options: TwitterTweetOptions): Promise<Record<string, unknown>>;
|
|
979
|
+
tweetComments(options: TwitterTweetCommentsOptions): Promise<Record<string, unknown>>;
|
|
980
|
+
tweetRetweeters(options: TwitterTweetRetweetersOptions): Promise<Record<string, unknown>>;
|
|
981
|
+
user(options: TwitterUserOptions): Promise<Record<string, unknown>>;
|
|
982
|
+
userTweets(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
|
|
983
|
+
userReplies(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
|
|
984
|
+
userMedia(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
|
|
985
|
+
userFollowers(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
|
|
986
|
+
userFollowings(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
|
|
987
|
+
trending(options?: TwitterTrendingOptions): Promise<Record<string, unknown>>;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
interface LinkedInPersonOptions {
|
|
991
|
+
/** Public identifier (vanity handle). */
|
|
992
|
+
username: string;
|
|
993
|
+
/** Include the experiences section (default true server-side). */
|
|
994
|
+
include_experiences?: boolean;
|
|
995
|
+
/** Include the educations section (default true server-side). */
|
|
996
|
+
include_educations?: boolean;
|
|
997
|
+
/** Include the skills section (default true server-side). */
|
|
998
|
+
include_skills?: boolean;
|
|
999
|
+
/** Include the certifications section (default true server-side). */
|
|
1000
|
+
include_certifications?: boolean;
|
|
1001
|
+
/** Include follower and connection counts (default true server-side). */
|
|
1002
|
+
include_follower_and_connection?: boolean;
|
|
1003
|
+
[key: string]: unknown;
|
|
1004
|
+
}
|
|
1005
|
+
interface LinkedInPersonRefOptions {
|
|
1006
|
+
/** Member urn. */
|
|
1007
|
+
urn?: string;
|
|
1008
|
+
/** Public identifier; resolved to a urn if urn is omitted. */
|
|
1009
|
+
username?: string;
|
|
1010
|
+
[key: string]: unknown;
|
|
1011
|
+
}
|
|
1012
|
+
interface LinkedInPersonPostsOptions {
|
|
1013
|
+
/** Member urn. */
|
|
1014
|
+
urn?: string;
|
|
1015
|
+
/** Public identifier; resolved to a urn if urn is omitted. */
|
|
1016
|
+
username?: string;
|
|
1017
|
+
/** Pagination cursor from a prior response. */
|
|
1018
|
+
cursor?: string;
|
|
1019
|
+
[key: string]: unknown;
|
|
1020
|
+
}
|
|
1021
|
+
interface LinkedInPersonContactOptions {
|
|
1022
|
+
/** Public identifier (vanity handle). */
|
|
1023
|
+
username: string;
|
|
1024
|
+
[key: string]: unknown;
|
|
1025
|
+
}
|
|
1026
|
+
interface LinkedInCompanyOptions {
|
|
1027
|
+
/** Company universal name (slug) or LinkedIn company URL. */
|
|
1028
|
+
company: string;
|
|
1029
|
+
[key: string]: unknown;
|
|
1030
|
+
}
|
|
1031
|
+
interface LinkedInCompanyPostsOptions {
|
|
1032
|
+
/** Company universal name (slug) or LinkedIn company URL. */
|
|
1033
|
+
company: string;
|
|
1034
|
+
/** Pagination cursor from a prior response. */
|
|
1035
|
+
cursor?: string;
|
|
1036
|
+
/** Results per page (1-100). */
|
|
1037
|
+
count?: number;
|
|
1038
|
+
[key: string]: unknown;
|
|
1039
|
+
}
|
|
1040
|
+
interface LinkedInCompanyRefOptions {
|
|
1041
|
+
/** Numeric company id. */
|
|
1042
|
+
company_id?: string;
|
|
1043
|
+
/** Company slug/url; resolved to a company_id if company_id is omitted. */
|
|
1044
|
+
company?: string;
|
|
1045
|
+
/** Pagination cursor from a prior response. */
|
|
1046
|
+
cursor?: string;
|
|
1047
|
+
[key: string]: unknown;
|
|
1048
|
+
}
|
|
1049
|
+
interface LinkedInSearchPeopleOptions {
|
|
1050
|
+
/** Name to search for. */
|
|
1051
|
+
search?: string;
|
|
1052
|
+
/** Job title filter. */
|
|
1053
|
+
title?: string;
|
|
1054
|
+
/** Company filter. */
|
|
1055
|
+
company?: string;
|
|
1056
|
+
/** School filter. */
|
|
1057
|
+
school?: string;
|
|
1058
|
+
/** A geo name or id to filter by. */
|
|
1059
|
+
location?: string;
|
|
1060
|
+
/** Page cursor (page number). */
|
|
1061
|
+
cursor?: string;
|
|
1062
|
+
[key: string]: unknown;
|
|
1063
|
+
}
|
|
1064
|
+
interface LinkedInSearchJobsOptions {
|
|
1065
|
+
/** Search query (1-500 characters). */
|
|
1066
|
+
search: string;
|
|
1067
|
+
/** Page cursor (page number). */
|
|
1068
|
+
cursor?: string;
|
|
1069
|
+
/** Date-posted filter. */
|
|
1070
|
+
date_posted?: string;
|
|
1071
|
+
/** Geo code to filter by. */
|
|
1072
|
+
geocode?: string;
|
|
1073
|
+
/** Experience level filter. */
|
|
1074
|
+
experience_level?: string;
|
|
1075
|
+
/** Remote filter. */
|
|
1076
|
+
remote?: string;
|
|
1077
|
+
/** Job type filter. */
|
|
1078
|
+
job_type?: string;
|
|
1079
|
+
[key: string]: unknown;
|
|
1080
|
+
}
|
|
1081
|
+
interface LinkedInSearchPostsOptions {
|
|
1082
|
+
/** Search query (1-500 characters). */
|
|
1083
|
+
search: string;
|
|
1084
|
+
/** Page cursor (page number). */
|
|
1085
|
+
cursor?: string;
|
|
1086
|
+
/** Date-posted filter. */
|
|
1087
|
+
date_posted?: string;
|
|
1088
|
+
/** Sort order. */
|
|
1089
|
+
sort_by?: string;
|
|
1090
|
+
/** Content type filter. */
|
|
1091
|
+
content_type?: string;
|
|
1092
|
+
[key: string]: unknown;
|
|
1093
|
+
}
|
|
1094
|
+
interface LinkedInJobOptions {
|
|
1095
|
+
/** Job listing id. */
|
|
1096
|
+
job_id: string;
|
|
1097
|
+
/** Include the required-skills section. */
|
|
1098
|
+
include_skills?: boolean;
|
|
1099
|
+
[key: string]: unknown;
|
|
1100
|
+
}
|
|
1101
|
+
interface LinkedInPostOptions {
|
|
1102
|
+
/** Post id or activity urn. */
|
|
1103
|
+
post_id: string;
|
|
1104
|
+
[key: string]: unknown;
|
|
1105
|
+
}
|
|
1106
|
+
interface LinkedInPostCommentsOptions {
|
|
1107
|
+
/** Post id or activity urn. */
|
|
1108
|
+
post_id: string;
|
|
1109
|
+
/** Pagination cursor from a prior response. */
|
|
1110
|
+
cursor?: string;
|
|
1111
|
+
/** Comment sort order. */
|
|
1112
|
+
sort_order?: "relevance" | "recent";
|
|
1113
|
+
/** Post type. */
|
|
1114
|
+
post_type?: "activity" | "ugc";
|
|
1115
|
+
[key: string]: unknown;
|
|
1116
|
+
}
|
|
1117
|
+
declare class LinkedInNamespace {
|
|
1118
|
+
private client;
|
|
1119
|
+
constructor(client: Scavio);
|
|
1120
|
+
person(options: LinkedInPersonOptions): Promise<Record<string, unknown>>;
|
|
1121
|
+
personAbout(options: LinkedInPersonRefOptions): Promise<Record<string, unknown>>;
|
|
1122
|
+
personPosts(options: LinkedInPersonPostsOptions): Promise<Record<string, unknown>>;
|
|
1123
|
+
personContact(options: LinkedInPersonContactOptions): Promise<Record<string, unknown>>;
|
|
1124
|
+
company(options: LinkedInCompanyOptions): Promise<Record<string, unknown>>;
|
|
1125
|
+
companyPosts(options: LinkedInCompanyPostsOptions): Promise<Record<string, unknown>>;
|
|
1126
|
+
companyPeople(options: LinkedInCompanyRefOptions): Promise<Record<string, unknown>>;
|
|
1127
|
+
companyJobs(options: LinkedInCompanyRefOptions): Promise<Record<string, unknown>>;
|
|
1128
|
+
searchPeople(options: LinkedInSearchPeopleOptions): Promise<Record<string, unknown>>;
|
|
1129
|
+
searchJobs(options: LinkedInSearchJobsOptions): Promise<Record<string, unknown>>;
|
|
1130
|
+
searchPosts(options: LinkedInSearchPostsOptions): Promise<Record<string, unknown>>;
|
|
1131
|
+
job(options: LinkedInJobOptions): Promise<Record<string, unknown>>;
|
|
1132
|
+
post(options: LinkedInPostOptions): Promise<Record<string, unknown>>;
|
|
1133
|
+
postComments(options: LinkedInPostCommentsOptions): Promise<Record<string, unknown>>;
|
|
732
1134
|
}
|
|
733
1135
|
|
|
734
1136
|
interface ScavioConfig {
|
|
@@ -751,6 +1153,8 @@ declare class Scavio {
|
|
|
751
1153
|
readonly reddit: RedditNamespace;
|
|
752
1154
|
readonly tiktok: TikTokNamespace;
|
|
753
1155
|
readonly instagram: InstagramNamespace;
|
|
1156
|
+
readonly twitter: TwitterNamespace;
|
|
1157
|
+
readonly linkedin: LinkedInNamespace;
|
|
754
1158
|
private readonly apiKey;
|
|
755
1159
|
private readonly baseUrl;
|
|
756
1160
|
private readonly timeout;
|
|
@@ -810,4 +1214,4 @@ declare class ScavioAPIError extends ScavioError {
|
|
|
810
1214
|
constructor(statusCode: number, message: string, responseBody?: Record<string, unknown>);
|
|
811
1215
|
}
|
|
812
1216
|
|
|
813
|
-
export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditPostOptions, type RedditSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeMetadataOptions, type YouTubeSearchOptions };
|
|
1217
|
+
export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, type LinkedInCompanyOptions, type LinkedInCompanyPostsOptions, type LinkedInCompanyRefOptions, type LinkedInJobOptions, type LinkedInPersonContactOptions, type LinkedInPersonOptions, type LinkedInPersonPostsOptions, type LinkedInPersonRefOptions, type LinkedInPostCommentsOptions, type LinkedInPostOptions, type LinkedInSearchJobsOptions, type LinkedInSearchPeopleOptions, type LinkedInSearchPostsOptions, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditCommentRepliesOptions, type RedditFeedSort, type RedditPopularOptions, type RedditPostCommentsOptions, type RedditPostOptions, type RedditSearchOptions, type RedditSearchSuggestionsOptions, type RedditSort, type RedditSubredditOptions, type RedditSubredditPostsOptions, type RedditUserFeedOptions, type RedditUserOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type TwitterSearchOptions, type TwitterTrendingOptions, type TwitterTweetCommentsOptions, type TwitterTweetOptions, type TwitterTweetRetweetersOptions, type TwitterUserFeedOptions, type TwitterUserOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeMetadataOptions, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions };
|
package/dist/index.js
CHANGED
|
@@ -354,9 +354,39 @@ var RedditNamespace = class {
|
|
|
354
354
|
async search(options) {
|
|
355
355
|
return this.client._post("/api/v1/reddit/search", options);
|
|
356
356
|
}
|
|
357
|
+
async searchSuggestions(options) {
|
|
358
|
+
return this.client._post("/api/v1/reddit/search/suggestions", options);
|
|
359
|
+
}
|
|
357
360
|
async post(options) {
|
|
358
361
|
return this.client._post("/api/v1/reddit/post", options);
|
|
359
362
|
}
|
|
363
|
+
async postComments(options) {
|
|
364
|
+
return this.client._post("/api/v1/reddit/post/comments", options);
|
|
365
|
+
}
|
|
366
|
+
async commentReplies(options) {
|
|
367
|
+
return this.client._post("/api/v1/reddit/post/comments/replies", options);
|
|
368
|
+
}
|
|
369
|
+
async subreddit(options) {
|
|
370
|
+
return this.client._post("/api/v1/reddit/subreddit", options);
|
|
371
|
+
}
|
|
372
|
+
async subredditPosts(options) {
|
|
373
|
+
return this.client._post("/api/v1/reddit/subreddit/posts", options);
|
|
374
|
+
}
|
|
375
|
+
async user(options) {
|
|
376
|
+
return this.client._post("/api/v1/reddit/user", options);
|
|
377
|
+
}
|
|
378
|
+
async userPosts(options) {
|
|
379
|
+
return this.client._post("/api/v1/reddit/user/posts", options);
|
|
380
|
+
}
|
|
381
|
+
async userComments(options) {
|
|
382
|
+
return this.client._post("/api/v1/reddit/user/comments", options);
|
|
383
|
+
}
|
|
384
|
+
async popular(options = {}) {
|
|
385
|
+
return this.client._post("/api/v1/reddit/popular", options);
|
|
386
|
+
}
|
|
387
|
+
async trending() {
|
|
388
|
+
return this.client._post("/api/v1/reddit/trending", {});
|
|
389
|
+
}
|
|
360
390
|
};
|
|
361
391
|
|
|
362
392
|
// src/namespaces/tiktok.ts
|
|
@@ -475,8 +505,154 @@ var YouTubeNamespace = class {
|
|
|
475
505
|
if (video_3d !== void 0) body["3d"] = video_3d;
|
|
476
506
|
return this.client._post("/api/v1/youtube/search", body);
|
|
477
507
|
}
|
|
508
|
+
async shorts(options) {
|
|
509
|
+
const { query, ...rest } = options;
|
|
510
|
+
return this.client._post("/api/v1/youtube/shorts", {
|
|
511
|
+
search: query,
|
|
512
|
+
...rest
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
async suggestions(options) {
|
|
516
|
+
const { query, ...rest } = options;
|
|
517
|
+
return this.client._post("/api/v1/youtube/suggestions", {
|
|
518
|
+
search: query,
|
|
519
|
+
...rest
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
async video(options) {
|
|
523
|
+
return this.client._post("/api/v1/youtube/video", options);
|
|
524
|
+
}
|
|
525
|
+
/** @deprecated Use youtube.video(). Alias kept for backward compatibility. */
|
|
478
526
|
async metadata(options) {
|
|
479
|
-
return this.
|
|
527
|
+
return this.video(options);
|
|
528
|
+
}
|
|
529
|
+
async comments(options) {
|
|
530
|
+
return this.client._post("/api/v1/youtube/comments", options);
|
|
531
|
+
}
|
|
532
|
+
async commentReplies(options) {
|
|
533
|
+
return this.client._post("/api/v1/youtube/comments/replies", options);
|
|
534
|
+
}
|
|
535
|
+
async transcript(options) {
|
|
536
|
+
return this.client._post("/api/v1/youtube/transcript", options);
|
|
537
|
+
}
|
|
538
|
+
async related(options) {
|
|
539
|
+
return this.client._post("/api/v1/youtube/related", options);
|
|
540
|
+
}
|
|
541
|
+
async channelSearch(options) {
|
|
542
|
+
const { query, ...rest } = options;
|
|
543
|
+
return this.client._post("/api/v1/youtube/channel/search", {
|
|
544
|
+
search: query,
|
|
545
|
+
...rest
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
async channel(options) {
|
|
549
|
+
return this.client._post("/api/v1/youtube/channel", options);
|
|
550
|
+
}
|
|
551
|
+
async channelVideos(options) {
|
|
552
|
+
return this.client._post("/api/v1/youtube/channel/videos", options);
|
|
553
|
+
}
|
|
554
|
+
async channelShorts(options) {
|
|
555
|
+
return this.client._post("/api/v1/youtube/channel/shorts", options);
|
|
556
|
+
}
|
|
557
|
+
async channelCommunity(options) {
|
|
558
|
+
return this.client._post("/api/v1/youtube/channel/community", options);
|
|
559
|
+
}
|
|
560
|
+
async channelResolve(options) {
|
|
561
|
+
return this.client._post("/api/v1/youtube/channel/resolve", options);
|
|
562
|
+
}
|
|
563
|
+
async streams(options) {
|
|
564
|
+
return this.client._post("/api/v1/youtube/streams", options);
|
|
565
|
+
}
|
|
566
|
+
};
|
|
567
|
+
|
|
568
|
+
// src/namespaces/twitter.ts
|
|
569
|
+
var TwitterNamespace = class {
|
|
570
|
+
constructor(client) {
|
|
571
|
+
this.client = client;
|
|
572
|
+
}
|
|
573
|
+
client;
|
|
574
|
+
async search(options) {
|
|
575
|
+
return this.client._post("/api/v1/twitter/search", options);
|
|
576
|
+
}
|
|
577
|
+
async tweet(options) {
|
|
578
|
+
return this.client._post("/api/v1/twitter/tweet", options);
|
|
579
|
+
}
|
|
580
|
+
async tweetComments(options) {
|
|
581
|
+
return this.client._post("/api/v1/twitter/tweet/comments", options);
|
|
582
|
+
}
|
|
583
|
+
async tweetRetweeters(options) {
|
|
584
|
+
return this.client._post("/api/v1/twitter/tweet/retweeters", options);
|
|
585
|
+
}
|
|
586
|
+
async user(options) {
|
|
587
|
+
return this.client._post("/api/v1/twitter/user", options);
|
|
588
|
+
}
|
|
589
|
+
async userTweets(options) {
|
|
590
|
+
return this.client._post("/api/v1/twitter/user/tweets", options);
|
|
591
|
+
}
|
|
592
|
+
async userReplies(options) {
|
|
593
|
+
return this.client._post("/api/v1/twitter/user/replies", options);
|
|
594
|
+
}
|
|
595
|
+
async userMedia(options) {
|
|
596
|
+
return this.client._post("/api/v1/twitter/user/media", options);
|
|
597
|
+
}
|
|
598
|
+
async userFollowers(options) {
|
|
599
|
+
return this.client._post("/api/v1/twitter/user/followers", options);
|
|
600
|
+
}
|
|
601
|
+
async userFollowings(options) {
|
|
602
|
+
return this.client._post("/api/v1/twitter/user/followings", options);
|
|
603
|
+
}
|
|
604
|
+
async trending(options = {}) {
|
|
605
|
+
return this.client._post("/api/v1/twitter/trending", options);
|
|
606
|
+
}
|
|
607
|
+
};
|
|
608
|
+
|
|
609
|
+
// src/namespaces/linkedin.ts
|
|
610
|
+
var LinkedInNamespace = class {
|
|
611
|
+
constructor(client) {
|
|
612
|
+
this.client = client;
|
|
613
|
+
}
|
|
614
|
+
client;
|
|
615
|
+
async person(options) {
|
|
616
|
+
return this.client._post("/api/v1/linkedin/person", options);
|
|
617
|
+
}
|
|
618
|
+
async personAbout(options) {
|
|
619
|
+
return this.client._post("/api/v1/linkedin/person/about", options);
|
|
620
|
+
}
|
|
621
|
+
async personPosts(options) {
|
|
622
|
+
return this.client._post("/api/v1/linkedin/person/posts", options);
|
|
623
|
+
}
|
|
624
|
+
async personContact(options) {
|
|
625
|
+
return this.client._post("/api/v1/linkedin/person/contact", options);
|
|
626
|
+
}
|
|
627
|
+
async company(options) {
|
|
628
|
+
return this.client._post("/api/v1/linkedin/company", options);
|
|
629
|
+
}
|
|
630
|
+
async companyPosts(options) {
|
|
631
|
+
return this.client._post("/api/v1/linkedin/company/posts", options);
|
|
632
|
+
}
|
|
633
|
+
async companyPeople(options) {
|
|
634
|
+
return this.client._post("/api/v1/linkedin/company/people", options);
|
|
635
|
+
}
|
|
636
|
+
async companyJobs(options) {
|
|
637
|
+
return this.client._post("/api/v1/linkedin/company/jobs", options);
|
|
638
|
+
}
|
|
639
|
+
async searchPeople(options) {
|
|
640
|
+
return this.client._post("/api/v1/linkedin/search/people", options);
|
|
641
|
+
}
|
|
642
|
+
async searchJobs(options) {
|
|
643
|
+
return this.client._post("/api/v1/linkedin/search/jobs", options);
|
|
644
|
+
}
|
|
645
|
+
async searchPosts(options) {
|
|
646
|
+
return this.client._post("/api/v1/linkedin/search/posts", options);
|
|
647
|
+
}
|
|
648
|
+
async job(options) {
|
|
649
|
+
return this.client._post("/api/v1/linkedin/job", options);
|
|
650
|
+
}
|
|
651
|
+
async post(options) {
|
|
652
|
+
return this.client._post("/api/v1/linkedin/post", options);
|
|
653
|
+
}
|
|
654
|
+
async postComments(options) {
|
|
655
|
+
return this.client._post("/api/v1/linkedin/post/comments", options);
|
|
480
656
|
}
|
|
481
657
|
};
|
|
482
658
|
|
|
@@ -489,6 +665,8 @@ var Scavio = class {
|
|
|
489
665
|
reddit;
|
|
490
666
|
tiktok;
|
|
491
667
|
instagram;
|
|
668
|
+
twitter;
|
|
669
|
+
linkedin;
|
|
492
670
|
apiKey;
|
|
493
671
|
baseUrl;
|
|
494
672
|
timeout;
|
|
@@ -514,6 +692,8 @@ var Scavio = class {
|
|
|
514
692
|
this.reddit = new RedditNamespace(this);
|
|
515
693
|
this.tiktok = new TikTokNamespace(this);
|
|
516
694
|
this.instagram = new InstagramNamespace(this);
|
|
695
|
+
this.twitter = new TwitterNamespace(this);
|
|
696
|
+
this.linkedin = new LinkedInNamespace(this);
|
|
517
697
|
}
|
|
518
698
|
/** @internal */
|
|
519
699
|
async _post(path, body) {
|