twitter-openapi-typescript 0.0.27 → 0.0.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twitter-openapi-typescript",
3
- "version": "0.0.27",
3
+ "version": "0.0.29",
4
4
  "description": "Implementation of Twitter internal API in TypeScript",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -21,7 +21,7 @@
21
21
  "main": "./dist/src/index.js",
22
22
  "typings": "./dist/src/index.d.ts",
23
23
  "dependencies": {
24
- "twitter-openapi-typescript-generated": "^0.0.16"
24
+ "twitter-openapi-typescript-generated": "^0.0.18"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/jest": "*",
package/src/api.ts CHANGED
@@ -14,7 +14,7 @@ import * as i from 'twitter-openapi-typescript-generated';
14
14
  import { UsersApiUtils } from './apis/usersApi';
15
15
 
16
16
  export class TwitterOpenApi {
17
- static hash = '7560ee63488ec9d15f5389e64867f2413701d7dd';
17
+ static hash = '4f39fa1a95e3b03fcc64ae4c54c3d4389582fd39';
18
18
  static url = `https://raw.githubusercontent.com/fa0311/twitter-openapi/${this.hash}/src/config/placeholder.json`;
19
19
  static twitter = 'https://twitter.com/home';
20
20
 
@@ -44,7 +44,7 @@ export class TwitterOpenApi {
44
44
  ...TwitterOpenApi.browser_headers,
45
45
  };
46
46
 
47
- static fetchApi: i.FetchAPI = fetch;
47
+ static fetchApi: i.FetchAPI = fetch.bind(globalThis);
48
48
 
49
49
  initOverrides: initOverrides = {};
50
50
 
package/src/utils/api.ts CHANGED
@@ -43,25 +43,42 @@ export const tweetEntriesConverter = (item: i.TimelineAddEntry[]): TweetApiUtils
43
43
  const item = (e.content as i.TimelineTimelineItem).itemContent;
44
44
  const timeline = item.itemType == i.ContentItemType.TimelineTweet ? (item as i.TimelineTweet) : undefined;
45
45
  if (timeline == undefined) return undefined;
46
- return buildTweetApiUtils({
47
- result: timeline.tweetResults,
48
- promotedMetadata: timeline.promotedMetadata,
49
- });
46
+ return [
47
+ buildTweetApiUtils({
48
+ result: timeline.tweetResults,
49
+ promotedMetadata: timeline.promotedMetadata,
50
+ }),
51
+ ];
50
52
  } else if (e.content.entryType == i.ContentEntryType.TimelineTimelineModule) {
51
53
  const item = (e.content as i.TimelineTimelineModule).items ?? [];
52
54
  const timelineList = item
53
55
  .filter((e) => e.item.itemContent.itemType == i.ContentItemType.TimelineTweet)
54
56
  .map((e) => e.item.itemContent as i.TimelineTweet);
55
57
  if (timelineList.length == 0) return undefined;
56
- const timeline = timelineList[0];
57
- return buildTweetApiUtils({
58
- result: timeline.tweetResults,
59
- promotedMetadata: timeline.promotedMetadata,
60
- reply: timelineList.slice(1),
61
- });
58
+
59
+ const displayType = (e.content as i.TimelineTimelineModule).displayType;
60
+ if (displayType == i.DisplayType.VerticalGrid) {
61
+ return timelineList.map((e) =>
62
+ buildTweetApiUtils({
63
+ result: e.tweetResults,
64
+ promotedMetadata: e.promotedMetadata,
65
+ }),
66
+ );
67
+ } else {
68
+ const timeline = timelineList[0];
69
+ return [
70
+ buildTweetApiUtils({
71
+ result: timeline.tweetResults,
72
+ promotedMetadata: timeline.promotedMetadata,
73
+ reply: timelineList.slice(1),
74
+ }),
75
+ ];
76
+ }
62
77
  }
63
78
  })
64
- .filter((e): e is NonNullable<typeof e> => e != undefined);
79
+ .filter((e): e is NonNullable<typeof e> => e != undefined)
80
+ .map((e) => e.filter((e): e is NonNullable<typeof e> => e != undefined))
81
+ .flat();
65
82
  };
66
83
 
67
84
  type buildTweetApiUtilsArgs = {