@xpoz/xpoz 0.4.1 → 0.4.2

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
@@ -200,7 +200,7 @@ The following methods accept both `responseType` and `limit`:
200
200
  - `twitter.getPostsByAuthor()`, `twitter.searchPosts()`, `twitter.getUsersByKeywords()`
201
201
  - `instagram.getPostsByUser()`, `instagram.searchPosts()`, `instagram.getUsersByKeywords()`
202
202
  - `reddit.searchPosts()`
203
- - `tiktok.getPostsByUser()`, `tiktok.searchPosts()`, `tiktok.getUsersByKeywords()`
203
+ - `tiktok.getPostsByUser()`, `tiktok.searchPosts()`, `tiktok.getUsersByKeywords()`, `tiktok.getPostsByHashtags()`, `tiktok.getUsersByHashtags()`
204
204
 
205
205
  These methods accept `limit` only:
206
206
 
@@ -640,6 +640,28 @@ const results = await client.tiktok.searchPosts("travel vlog", {
640
640
  });
641
641
  ```
642
642
 
643
+ #### `getPostsByHashtags(hashtags, options?) -> Promise<PaginatedResult<TiktokPost>>`
644
+
645
+ Search posts by hashtags via the indexed `hashtags` column. Pass bare alphanumeric tags (no leading `#`). Max 5 hashtags per request; OR semantics across the list.
646
+
647
+ ```typescript
648
+ const results = await client.tiktok.getPostsByHashtags(["dance", "fyp"], {
649
+ responseType: ResponseType.Fast,
650
+ limit: 50,
651
+ });
652
+ ```
653
+
654
+ #### `getUsersByHashtags(hashtags, options?) -> Promise<PaginatedResult<TiktokUser>>`
655
+
656
+ Find users who authored posts tagged with the given hashtags. Same input rules as `getPostsByHashtags`.
657
+
658
+ ```typescript
659
+ const users = await client.tiktok.getUsersByHashtags(["sustainable_fashion"], {
660
+ responseType: ResponseType.Fast,
661
+ limit: 20,
662
+ });
663
+ ```
664
+
643
665
  #### `getComments(postId, options?) -> Promise<PaginatedResult<TiktokComment>>`
644
666
 
645
667
  ```typescript
@@ -870,6 +892,9 @@ All fields are optional and typed as their respective TypeScript types. Unknown
870
892
  | `downloadCount` | `number` | Number of downloads |
871
893
  | `forwardCount` | `number` | Number of forwards/shares |
872
894
  | `videoThumbnail` | `string` | Thumbnail URL |
895
+ | `videoUrl` | `string[]` | Array of video URLs |
896
+ | `duration` | `number` | Video duration in seconds |
897
+ | `hashtags` | `string[]` | Hashtags in the post |
873
898
  | `postType` | `number` | Post type code |
874
899
  | `isPrivate` | `boolean` | Private post flag |
875
900
  | `createdAt` | `string` | Creation timestamp |
package/dist/index.cjs CHANGED
@@ -296,7 +296,7 @@ function coerce(value) {
296
296
  }
297
297
 
298
298
  // src/version.ts
299
- var VERSION = "0.4.1";
299
+ var VERSION = "0.4.2";
300
300
 
301
301
  // src/mcp/transport.ts
302
302
  var USER_AGENT = `xpoz-ts-sdk/${VERSION}`;
@@ -629,10 +629,12 @@ var GET_REDDIT_SUBREDDITS_BY_KEYWORDS = "getRedditSubredditsByKeywords";
629
629
  var GET_TIKTOK_POSTS_BY_IDS = "getTiktokPostsByIds";
630
630
  var GET_TIKTOK_POSTS_BY_USER = "getTiktokPostsByUser";
631
631
  var SEARCH_TIKTOK_POSTS = "getTiktokPostsByKeywords";
632
+ var GET_TIKTOK_POSTS_BY_HASHTAGS = "getTiktokPostsByHashtags";
632
633
  var GET_TIKTOK_COMMENTS = "getTiktokCommentsByPostId";
633
634
  var GET_TIKTOK_USER = "getTiktokUser";
634
635
  var SEARCH_TIKTOK_USERS = "searchTiktokUsers";
635
636
  var GET_TIKTOK_USERS_BY_KEYWORDS = "getTiktokUsersByKeywords";
637
+ var GET_TIKTOK_USERS_BY_HASHTAGS = "getTiktokUsersByHashtags";
636
638
  var GET_TRACKED_ITEMS = "getTrackedItems";
637
639
  var ADD_TRACKED_ITEMS = "addTrackedItems";
638
640
  var REMOVE_TRACKED_ITEMS = "removeTrackedItems";
@@ -1127,6 +1129,26 @@ var TiktokNamespace = class extends BaseNamespace {
1127
1129
  args
1128
1130
  );
1129
1131
  }
1132
+ async getPostsByHashtags(hashtags, options = {}) {
1133
+ const args = this.buildArgs({ hashtags, ...options });
1134
+ const result = await this.callAndMaybePoll(GET_TIKTOK_POSTS_BY_HASHTAGS, args);
1135
+ return this.buildPaginatedResult(
1136
+ result,
1137
+ parsePost3,
1138
+ GET_TIKTOK_POSTS_BY_HASHTAGS,
1139
+ args
1140
+ );
1141
+ }
1142
+ async getUsersByHashtags(hashtags, options = {}) {
1143
+ const args = this.buildArgs({ hashtags, ...options });
1144
+ const result = await this.callAndMaybePoll(GET_TIKTOK_USERS_BY_HASHTAGS, args);
1145
+ return this.buildPaginatedResult(
1146
+ result,
1147
+ parseUser4,
1148
+ GET_TIKTOK_USERS_BY_HASHTAGS,
1149
+ args
1150
+ );
1151
+ }
1130
1152
  };
1131
1153
 
1132
1154
  // src/namespaces/tracking.ts
package/dist/index.d.cts CHANGED
@@ -199,6 +199,8 @@ declare class TwitterNamespace extends BaseNamespace {
199
199
  getUserConnections(username: string, connectionType: string, options?: {
200
200
  fields?: string[];
201
201
  forceLatest?: boolean;
202
+ responseType?: ResponseType;
203
+ limit?: number;
202
204
  }): Promise<PaginatedResult<TwitterUser>>;
203
205
  getUsersByKeywords(query: string, options?: {
204
206
  fields?: string[];
@@ -542,6 +544,9 @@ interface TiktokPost {
542
544
  downloadCount?: number | null;
543
545
  forwardCount?: number | null;
544
546
  playCount?: number | null;
547
+ hashtags?: string[] | null;
548
+ duration?: number | null;
549
+ videoUrl?: string[] | null;
545
550
  createdAt?: string | null;
546
551
  createdAtTimestamp?: number | null;
547
552
  createdAtDate?: string | null;
@@ -629,6 +634,22 @@ declare class TiktokNamespace extends BaseNamespace {
629
634
  responseType?: ResponseType;
630
635
  limit?: number;
631
636
  }): Promise<PaginatedResult<TiktokUser>>;
637
+ getPostsByHashtags(hashtags: string[], options?: {
638
+ fields?: string[];
639
+ startDate?: string;
640
+ endDate?: string;
641
+ forceLatest?: boolean;
642
+ responseType?: ResponseType;
643
+ limit?: number;
644
+ }): Promise<PaginatedResult<TiktokPost>>;
645
+ getUsersByHashtags(hashtags: string[], options?: {
646
+ fields?: string[];
647
+ startDate?: string;
648
+ endDate?: string;
649
+ forceLatest?: boolean;
650
+ responseType?: ResponseType;
651
+ limit?: number;
652
+ }): Promise<PaginatedResult<TiktokUser>>;
632
653
  }
633
654
 
634
655
  declare enum TrackedItemType {
@@ -710,7 +731,7 @@ declare class OperationCancelledError extends XpozError {
710
731
  constructor(operationId: string);
711
732
  }
712
733
 
713
- declare const VERSION = "0.4.1";
734
+ declare const VERSION = "0.4.2";
714
735
 
715
736
  declare function checkForUpdates(): Promise<void>;
716
737
 
package/dist/index.d.ts CHANGED
@@ -199,6 +199,8 @@ declare class TwitterNamespace extends BaseNamespace {
199
199
  getUserConnections(username: string, connectionType: string, options?: {
200
200
  fields?: string[];
201
201
  forceLatest?: boolean;
202
+ responseType?: ResponseType;
203
+ limit?: number;
202
204
  }): Promise<PaginatedResult<TwitterUser>>;
203
205
  getUsersByKeywords(query: string, options?: {
204
206
  fields?: string[];
@@ -542,6 +544,9 @@ interface TiktokPost {
542
544
  downloadCount?: number | null;
543
545
  forwardCount?: number | null;
544
546
  playCount?: number | null;
547
+ hashtags?: string[] | null;
548
+ duration?: number | null;
549
+ videoUrl?: string[] | null;
545
550
  createdAt?: string | null;
546
551
  createdAtTimestamp?: number | null;
547
552
  createdAtDate?: string | null;
@@ -629,6 +634,22 @@ declare class TiktokNamespace extends BaseNamespace {
629
634
  responseType?: ResponseType;
630
635
  limit?: number;
631
636
  }): Promise<PaginatedResult<TiktokUser>>;
637
+ getPostsByHashtags(hashtags: string[], options?: {
638
+ fields?: string[];
639
+ startDate?: string;
640
+ endDate?: string;
641
+ forceLatest?: boolean;
642
+ responseType?: ResponseType;
643
+ limit?: number;
644
+ }): Promise<PaginatedResult<TiktokPost>>;
645
+ getUsersByHashtags(hashtags: string[], options?: {
646
+ fields?: string[];
647
+ startDate?: string;
648
+ endDate?: string;
649
+ forceLatest?: boolean;
650
+ responseType?: ResponseType;
651
+ limit?: number;
652
+ }): Promise<PaginatedResult<TiktokUser>>;
632
653
  }
633
654
 
634
655
  declare enum TrackedItemType {
@@ -710,7 +731,7 @@ declare class OperationCancelledError extends XpozError {
710
731
  constructor(operationId: string);
711
732
  }
712
733
 
713
- declare const VERSION = "0.4.1";
734
+ declare const VERSION = "0.4.2";
714
735
 
715
736
  declare function checkForUpdates(): Promise<void>;
716
737
 
package/dist/index.js CHANGED
@@ -248,7 +248,7 @@ function coerce(value) {
248
248
  }
249
249
 
250
250
  // src/version.ts
251
- var VERSION = "0.4.1";
251
+ var VERSION = "0.4.2";
252
252
 
253
253
  // src/mcp/transport.ts
254
254
  var USER_AGENT = `xpoz-ts-sdk/${VERSION}`;
@@ -581,10 +581,12 @@ var GET_REDDIT_SUBREDDITS_BY_KEYWORDS = "getRedditSubredditsByKeywords";
581
581
  var GET_TIKTOK_POSTS_BY_IDS = "getTiktokPostsByIds";
582
582
  var GET_TIKTOK_POSTS_BY_USER = "getTiktokPostsByUser";
583
583
  var SEARCH_TIKTOK_POSTS = "getTiktokPostsByKeywords";
584
+ var GET_TIKTOK_POSTS_BY_HASHTAGS = "getTiktokPostsByHashtags";
584
585
  var GET_TIKTOK_COMMENTS = "getTiktokCommentsByPostId";
585
586
  var GET_TIKTOK_USER = "getTiktokUser";
586
587
  var SEARCH_TIKTOK_USERS = "searchTiktokUsers";
587
588
  var GET_TIKTOK_USERS_BY_KEYWORDS = "getTiktokUsersByKeywords";
589
+ var GET_TIKTOK_USERS_BY_HASHTAGS = "getTiktokUsersByHashtags";
588
590
  var GET_TRACKED_ITEMS = "getTrackedItems";
589
591
  var ADD_TRACKED_ITEMS = "addTrackedItems";
590
592
  var REMOVE_TRACKED_ITEMS = "removeTrackedItems";
@@ -1079,6 +1081,26 @@ var TiktokNamespace = class extends BaseNamespace {
1079
1081
  args
1080
1082
  );
1081
1083
  }
1084
+ async getPostsByHashtags(hashtags, options = {}) {
1085
+ const args = this.buildArgs({ hashtags, ...options });
1086
+ const result = await this.callAndMaybePoll(GET_TIKTOK_POSTS_BY_HASHTAGS, args);
1087
+ return this.buildPaginatedResult(
1088
+ result,
1089
+ parsePost3,
1090
+ GET_TIKTOK_POSTS_BY_HASHTAGS,
1091
+ args
1092
+ );
1093
+ }
1094
+ async getUsersByHashtags(hashtags, options = {}) {
1095
+ const args = this.buildArgs({ hashtags, ...options });
1096
+ const result = await this.callAndMaybePoll(GET_TIKTOK_USERS_BY_HASHTAGS, args);
1097
+ return this.buildPaginatedResult(
1098
+ result,
1099
+ parseUser4,
1100
+ GET_TIKTOK_USERS_BY_HASHTAGS,
1101
+ args
1102
+ );
1103
+ }
1082
1104
  };
1083
1105
 
1084
1106
  // src/namespaces/tracking.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xpoz/xpoz",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "TypeScript SDK for the Xpoz social media intelligence platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",