diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..5f67b76
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,31 @@
+twitter-openapi License
+
+Copyright (c) 2023 yuki
+
+
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+The Software shall not be used for any activity that involves the following types
+of behavior, commonly known as spam:
+
+1. Sending unsolicited or excessive messages or posts.
+2. Aggressively following, unfollowing, or liking tweets to artificially boost engagement.
+3. Engaging in aggressive automated actions that disrupt or annoy other users.
+4. Distributing false or misleading information.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/twitter-openapi-typescript-generated/LICENSE.txt b/LICENSE.AGPL
similarity index 99%
rename from twitter-openapi-typescript-generated/LICENSE.txt
rename to LICENSE.AGPL
index dba13ed..bae94e1 100644
--- a/twitter-openapi-typescript-generated/LICENSE.txt
+++ b/LICENSE.AGPL
@@ -1,7 +1,7 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -643,7 +643,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
@@ -658,4 +658,4 @@ specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
-.
+.
\ No newline at end of file
diff --git a/README.md b/README.md
index 17b7136..0824b8b 100644
--- a/README.md
+++ b/README.md
@@ -43,14 +43,17 @@ npm run build
Setup
-It cannot be installed from npm.
-Plan to release it in v1.0.0 with npm.
-
```shell
-git clone https://github.com/fa0311/twitter-openapi-typescript
-npm install ./twitter-openapi-typescript/twitter-openapi-typescript
+npm twitter-openapi-typescript-generated
```
+License
+
+This project is dual licensed. You can choose one of the following licenses:
+
+- [Custom License](./LICENSE)
+- [GNU Affero General Public License v3.0](./LICENSE.AGPL)
+
Usage
[twitter-openapi-typescript-generated/README.md](./twitter-openapi-typescript-generated/README.md)
diff --git a/twitter-openapi-typescript-generated/.openapi-generator/FILES b/twitter-openapi-typescript-generated/.openapi-generator/FILES
index e0ca2e7..86a1093 100644
--- a/twitter-openapi-typescript-generated/.openapi-generator/FILES
+++ b/twitter-openapi-typescript-generated/.openapi-generator/FILES
@@ -13,13 +13,17 @@ src/apis/V11PostApi.ts
src/apis/V20GetApi.ts
src/apis/index.ts
src/index.ts
+src/models/AdditionalMediaInfo.ts
src/models/BookmarksResponse.ts
src/models/BookmarksResponseData.ts
src/models/BookmarksTimeline.ts
+src/models/Callback.ts
+src/models/ClientEventInfo.ts
src/models/CommunitiesActions.ts
src/models/ContentEntryType.ts
src/models/ContentItemType.ts
src/models/ContentUnion.ts
+src/models/CoverCta.ts
src/models/CreateRetweet.ts
src/models/CreateRetweetResponse.ts
src/models/CreateRetweetResponseData.ts
@@ -28,6 +32,7 @@ src/models/CreateTweet.ts
src/models/CreateTweetResponse.ts
src/models/CreateTweetResponseData.ts
src/models/CreateTweetResponseResult.ts
+src/models/CtaClientEventInfo.ts
src/models/CursorType.ts
src/models/DeleteRetweetResponse.ts
src/models/DeleteRetweetResponseData.ts
@@ -37,6 +42,7 @@ src/models/DeleteTweetResponseResult.ts
src/models/Entities.ts
src/models/ErrorExtensions.ts
src/models/Errors.ts
+src/models/ExtMediaAvailability.ts
src/models/ExtendedEntities.ts
src/models/FavoriteTweet.ts
src/models/FavoriteTweetResponseData.ts
@@ -71,7 +77,14 @@ src/models/ListTweetsTimelineData.ts
src/models/ListTweetsTimelineList.ts
src/models/Location.ts
src/models/Media.ts
+src/models/MediaExtended.ts
src/models/MediaOriginalInfo.ts
+src/models/MediaOriginalInfoFocusRect.ts
+src/models/MediaSize.ts
+src/models/MediaSizes.ts
+src/models/MediaStats.ts
+src/models/MediaVideoInfo.ts
+src/models/MediaVideoInfoVariant.ts
src/models/ModelError.ts
src/models/ModuleEntry.ts
src/models/ModuleItem.ts
@@ -103,13 +116,19 @@ src/models/SearchByRawQuery.ts
src/models/SearchTimeline.ts
src/models/SearchTimelineData.ts
src/models/SearchTimelineResponse.ts
+src/models/SelfThread.ts
src/models/Session.ts
src/models/SocialContext.ts
+src/models/Text.ts
+src/models/TextEntity.ts
+src/models/TextEntityRef.ts
src/models/Timeline.ts
src/models/TimelineAddEntries.ts
src/models/TimelineAddEntry.ts
src/models/TimelineAddToModule.ts
src/models/TimelineClearCache.ts
+src/models/TimelineCoverBehavior.ts
+src/models/TimelineHalfCover.ts
src/models/TimelineMessagePrompt.ts
src/models/TimelinePinEntry.ts
src/models/TimelinePrompt.ts
@@ -117,6 +136,7 @@ src/models/TimelineReplaceEntry.ts
src/models/TimelineResponse.ts
src/models/TimelineShowAlert.ts
src/models/TimelineShowAlertRichText.ts
+src/models/TimelineShowCover.ts
src/models/TimelineTerminateTimeline.ts
src/models/TimelineTimelineCursor.ts
src/models/TimelineTimelineItem.ts
@@ -128,23 +148,23 @@ src/models/Tracing.ts
src/models/Tweet.ts
src/models/TweetCard.ts
src/models/TweetCardLegacy.ts
-src/models/TweetCardLegacyBindingValuesInner.ts
-src/models/TweetCardLegacyBindingValuesInnerValue.ts
+src/models/TweetCardLegacyBindingValue.ts
+src/models/TweetCardLegacyBindingValueData.ts
src/models/TweetDetailResponse.ts
src/models/TweetDetailResponseData.ts
src/models/TweetEditControl.ts
+src/models/TweetEditControlInitial.ts
src/models/TweetEditPrespective.ts
src/models/TweetFavoritersResponse.ts
src/models/TweetFavoritersResponseData.ts
src/models/TweetLegacy.ts
-src/models/TweetLegacySelfThread.ts
src/models/TweetResultByRestIdData.ts
src/models/TweetResultByRestIdResponse.ts
src/models/TweetRetweetersResponse.ts
src/models/TweetRetweetersResponseData.ts
src/models/TweetTombstone.ts
src/models/TweetUnion.ts
-src/models/TweetViews.ts
+src/models/TweetView.ts
src/models/TweetWithVisibilityResults.ts
src/models/TypeName.ts
src/models/UnfavoriteTweet.ts
diff --git a/twitter-openapi-typescript-generated/LICENSE b/twitter-openapi-typescript-generated/LICENSE
new file mode 100644
index 0000000..5f67b76
--- /dev/null
+++ b/twitter-openapi-typescript-generated/LICENSE
@@ -0,0 +1,31 @@
+twitter-openapi License
+
+Copyright (c) 2023 yuki
+
+
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+The Software shall not be used for any activity that involves the following types
+of behavior, commonly known as spam:
+
+1. Sending unsolicited or excessive messages or posts.
+2. Aggressively following, unfollowing, or liking tweets to artificially boost engagement.
+3. Engaging in aggressive automated actions that disrupt or annoy other users.
+4. Distributing false or misleading information.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/twitter-openapi-typescript/LICENSE.txt b/twitter-openapi-typescript-generated/LICENSE.AGPL
similarity index 99%
rename from twitter-openapi-typescript/LICENSE.txt
rename to twitter-openapi-typescript-generated/LICENSE.AGPL
index dba13ed..bae94e1 100644
--- a/twitter-openapi-typescript/LICENSE.txt
+++ b/twitter-openapi-typescript-generated/LICENSE.AGPL
@@ -1,7 +1,7 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -643,7 +643,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
@@ -658,4 +658,4 @@ specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
-.
+.
\ No newline at end of file
diff --git a/twitter-openapi-typescript-generated/README.md b/twitter-openapi-typescript-generated/README.md
index 4cfddae..29b1adb 100644
--- a/twitter-openapi-typescript-generated/README.md
+++ b/twitter-openapi-typescript-generated/README.md
@@ -1,4 +1,4 @@
-## twitter-openapi-typescript-generated@0.0.10
+## twitter-openapi-typescript-generated@0.0.11
This generator creates TypeScript/JavaScript client that utilizes [Fetch API](https://fetch.spec.whatwg.org/). The generated Node module can be used in the following environments:
@@ -36,7 +36,7 @@ navigate to the folder of your consuming project and run one of the following co
_published:_
```
-npm install twitter-openapi-typescript-generated@0.0.10 --save
+npm install twitter-openapi-typescript-generated@0.0.11 --save
```
_unPublished (not recommended):_
diff --git a/twitter-openapi-typescript-generated/package-lock.json b/twitter-openapi-typescript-generated/package-lock.json
index 51edd9b..2a956c1 100644
--- a/twitter-openapi-typescript-generated/package-lock.json
+++ b/twitter-openapi-typescript-generated/package-lock.json
@@ -1,13 +1,13 @@
{
"name": "twitter-openapi-typescript-generated",
- "version": "0.0.10",
+ "version": "0.0.11",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "twitter-openapi-typescript-generated",
- "version": "0.0.10",
- "license": "LGPL-3.0-only",
+ "version": "0.0.11",
+ "license": "custom license or AGPL-3.0-or-later",
"devDependencies": {
"typescript": "^4.0"
}
diff --git a/twitter-openapi-typescript-generated/package.json b/twitter-openapi-typescript-generated/package.json
index 63bd2ce..ffe409c 100644
--- a/twitter-openapi-typescript-generated/package.json
+++ b/twitter-openapi-typescript-generated/package.json
@@ -1,6 +1,6 @@
{
"name": "twitter-openapi-typescript-generated",
- "version": "0.0.10",
+ "version": "0.0.11",
"description": "OpenAPI client for twitter-openapi-typescript-generated",
"author": "fa0311",
"repository": {
@@ -16,7 +16,7 @@
"devDependencies": {
"typescript": "^4.0"
},
- "license": "LGPL-3.0-only",
+ "license": "custom license or AGPL-3.0-or-later",
"keywords": [
"twitter",
"api",
diff --git a/twitter-openapi-typescript-generated/src/models/AdditionalMediaInfo.ts b/twitter-openapi-typescript-generated/src/models/AdditionalMediaInfo.ts
new file mode 100644
index 0000000..2137d9c
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/AdditionalMediaInfo.ts
@@ -0,0 +1,66 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface AdditionalMediaInfo
+ */
+export interface AdditionalMediaInfo {
+ /**
+ *
+ * @type {boolean}
+ * @memberof AdditionalMediaInfo
+ */
+ monetizable: boolean;
+}
+
+/**
+ * Check if a given object implements the AdditionalMediaInfo interface.
+ */
+export function instanceOfAdditionalMediaInfo(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "monetizable" in value;
+
+ return isInstance;
+}
+
+export function AdditionalMediaInfoFromJSON(json: any): AdditionalMediaInfo {
+ return AdditionalMediaInfoFromJSONTyped(json, false);
+}
+
+export function AdditionalMediaInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdditionalMediaInfo {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'monetizable': json['monetizable'],
+ };
+}
+
+export function AdditionalMediaInfoToJSON(value?: AdditionalMediaInfo | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'monetizable': value.monetizable,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/Callback.ts b/twitter-openapi-typescript-generated/src/models/Callback.ts
new file mode 100644
index 0000000..ed5d5b4
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/Callback.ts
@@ -0,0 +1,66 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface Callback
+ */
+export interface Callback {
+ /**
+ *
+ * @type {string}
+ * @memberof Callback
+ */
+ endpoint: string;
+}
+
+/**
+ * Check if a given object implements the Callback interface.
+ */
+export function instanceOfCallback(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "endpoint" in value;
+
+ return isInstance;
+}
+
+export function CallbackFromJSON(json: any): Callback {
+ return CallbackFromJSONTyped(json, false);
+}
+
+export function CallbackFromJSONTyped(json: any, ignoreDiscriminator: boolean): Callback {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'endpoint': json['endpoint'],
+ };
+}
+
+export function CallbackToJSON(value?: Callback | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'endpoint': value.endpoint,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/ClientEventInfo.ts b/twitter-openapi-typescript-generated/src/models/ClientEventInfo.ts
new file mode 100644
index 0000000..2ba963f
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/ClientEventInfo.ts
@@ -0,0 +1,81 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface ClientEventInfo
+ */
+export interface ClientEventInfo {
+ /**
+ *
+ * @type {string}
+ * @memberof ClientEventInfo
+ */
+ component?: string;
+ /**
+ *
+ * @type {{ [key: string]: any; }}
+ * @memberof ClientEventInfo
+ */
+ details?: { [key: string]: any; };
+ /**
+ *
+ * @type {string}
+ * @memberof ClientEventInfo
+ */
+ element?: string;
+}
+
+/**
+ * Check if a given object implements the ClientEventInfo interface.
+ */
+export function instanceOfClientEventInfo(value: object): boolean {
+ let isInstance = true;
+
+ return isInstance;
+}
+
+export function ClientEventInfoFromJSON(json: any): ClientEventInfo {
+ return ClientEventInfoFromJSONTyped(json, false);
+}
+
+export function ClientEventInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClientEventInfo {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'component': !exists(json, 'component') ? undefined : json['component'],
+ 'details': !exists(json, 'details') ? undefined : json['details'],
+ 'element': !exists(json, 'element') ? undefined : json['element'],
+ };
+}
+
+export function ClientEventInfoToJSON(value?: ClientEventInfo | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'component': value.component,
+ 'details': value.details,
+ 'element': value.element,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/CoverCta.ts b/twitter-openapi-typescript-generated/src/models/CoverCta.ts
new file mode 100644
index 0000000..32a4acf
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/CoverCta.ts
@@ -0,0 +1,130 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { Callback } from './Callback';
+import {
+ CallbackFromJSON,
+ CallbackFromJSONTyped,
+ CallbackToJSON,
+} from './Callback';
+import type { CtaClientEventInfo } from './CtaClientEventInfo';
+import {
+ CtaClientEventInfoFromJSON,
+ CtaClientEventInfoFromJSONTyped,
+ CtaClientEventInfoToJSON,
+} from './CtaClientEventInfo';
+import type { TimelineCoverBehavior } from './TimelineCoverBehavior';
+import {
+ TimelineCoverBehaviorFromJSON,
+ TimelineCoverBehaviorFromJSONTyped,
+ TimelineCoverBehaviorToJSON,
+} from './TimelineCoverBehavior';
+
+/**
+ *
+ * @export
+ * @interface CoverCta
+ */
+export interface CoverCta {
+ /**
+ *
+ * @type {string}
+ * @memberof CoverCta
+ */
+ text?: string;
+ /**
+ *
+ * @type {string}
+ * @memberof CoverCta
+ */
+ buttonStyle: CoverCtaButtonStyleEnum;
+ /**
+ *
+ * @type {Array}
+ * @memberof CoverCta
+ */
+ callbacks: Array;
+ /**
+ *
+ * @type {CtaClientEventInfo}
+ * @memberof CoverCta
+ */
+ clientEventInfo: CtaClientEventInfo;
+ /**
+ *
+ * @type {TimelineCoverBehavior}
+ * @memberof CoverCta
+ */
+ ctaBehavior: TimelineCoverBehavior;
+}
+
+
+/**
+ * @export
+ */
+export const CoverCtaButtonStyleEnum = {
+ Primary: 'Primary'
+} as const;
+export type CoverCtaButtonStyleEnum = typeof CoverCtaButtonStyleEnum[keyof typeof CoverCtaButtonStyleEnum];
+
+
+/**
+ * Check if a given object implements the CoverCta interface.
+ */
+export function instanceOfCoverCta(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "buttonStyle" in value;
+ isInstance = isInstance && "callbacks" in value;
+ isInstance = isInstance && "clientEventInfo" in value;
+ isInstance = isInstance && "ctaBehavior" in value;
+
+ return isInstance;
+}
+
+export function CoverCtaFromJSON(json: any): CoverCta {
+ return CoverCtaFromJSONTyped(json, false);
+}
+
+export function CoverCtaFromJSONTyped(json: any, ignoreDiscriminator: boolean): CoverCta {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'text': !exists(json, 'Text') ? undefined : json['Text'],
+ 'buttonStyle': json['buttonStyle'],
+ 'callbacks': ((json['callbacks'] as Array).map(CallbackFromJSON)),
+ 'clientEventInfo': CtaClientEventInfoFromJSON(json['clientEventInfo']),
+ 'ctaBehavior': TimelineCoverBehaviorFromJSON(json['ctaBehavior']),
+ };
+}
+
+export function CoverCtaToJSON(value?: CoverCta | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'Text': value.text,
+ 'buttonStyle': value.buttonStyle,
+ 'callbacks': ((value.callbacks as Array).map(CallbackToJSON)),
+ 'clientEventInfo': CtaClientEventInfoToJSON(value.clientEventInfo),
+ 'ctaBehavior': TimelineCoverBehaviorToJSON(value.ctaBehavior),
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/CtaClientEventInfo.ts b/twitter-openapi-typescript-generated/src/models/CtaClientEventInfo.ts
new file mode 100644
index 0000000..37565b6
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/CtaClientEventInfo.ts
@@ -0,0 +1,76 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface CtaClientEventInfo
+ */
+export interface CtaClientEventInfo {
+ /**
+ *
+ * @type {string}
+ * @memberof CtaClientEventInfo
+ */
+ action: CtaClientEventInfoActionEnum;
+}
+
+
+/**
+ * @export
+ */
+export const CtaClientEventInfoActionEnum = {
+ PrimaryCta: 'primary_cta'
+} as const;
+export type CtaClientEventInfoActionEnum = typeof CtaClientEventInfoActionEnum[keyof typeof CtaClientEventInfoActionEnum];
+
+
+/**
+ * Check if a given object implements the CtaClientEventInfo interface.
+ */
+export function instanceOfCtaClientEventInfo(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "action" in value;
+
+ return isInstance;
+}
+
+export function CtaClientEventInfoFromJSON(json: any): CtaClientEventInfo {
+ return CtaClientEventInfoFromJSONTyped(json, false);
+}
+
+export function CtaClientEventInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CtaClientEventInfo {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'action': json['action'],
+ };
+}
+
+export function CtaClientEventInfoToJSON(value?: CtaClientEventInfo | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'action': value.action,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/ExtMediaAvailability.ts b/twitter-openapi-typescript-generated/src/models/ExtMediaAvailability.ts
new file mode 100644
index 0000000..bc6b338
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/ExtMediaAvailability.ts
@@ -0,0 +1,75 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface ExtMediaAvailability
+ */
+export interface ExtMediaAvailability {
+ /**
+ *
+ * @type {string}
+ * @memberof ExtMediaAvailability
+ */
+ status?: ExtMediaAvailabilityStatusEnum;
+}
+
+
+/**
+ * @export
+ */
+export const ExtMediaAvailabilityStatusEnum = {
+ Available: 'Available'
+} as const;
+export type ExtMediaAvailabilityStatusEnum = typeof ExtMediaAvailabilityStatusEnum[keyof typeof ExtMediaAvailabilityStatusEnum];
+
+
+/**
+ * Check if a given object implements the ExtMediaAvailability interface.
+ */
+export function instanceOfExtMediaAvailability(value: object): boolean {
+ let isInstance = true;
+
+ return isInstance;
+}
+
+export function ExtMediaAvailabilityFromJSON(json: any): ExtMediaAvailability {
+ return ExtMediaAvailabilityFromJSONTyped(json, false);
+}
+
+export function ExtMediaAvailabilityFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExtMediaAvailability {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'status': !exists(json, 'status') ? undefined : json['status'],
+ };
+}
+
+export function ExtMediaAvailabilityToJSON(value?: ExtMediaAvailability | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'status': value.status,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/ExtendedEntities.ts b/twitter-openapi-typescript-generated/src/models/ExtendedEntities.ts
index ae8d624..97a9a18 100644
--- a/twitter-openapi-typescript-generated/src/models/ExtendedEntities.ts
+++ b/twitter-openapi-typescript-generated/src/models/ExtendedEntities.ts
@@ -13,12 +13,12 @@
*/
import { exists, mapValues } from '../runtime';
-import type { Media } from './Media';
+import type { MediaExtended } from './MediaExtended';
import {
- MediaFromJSON,
- MediaFromJSONTyped,
- MediaToJSON,
-} from './Media';
+ MediaExtendedFromJSON,
+ MediaExtendedFromJSONTyped,
+ MediaExtendedToJSON,
+} from './MediaExtended';
/**
*
@@ -28,10 +28,10 @@ import {
export interface ExtendedEntities {
/**
*
- * @type {Array}
+ * @type {Array}
* @memberof ExtendedEntities
*/
- media: Array;
+ media: Array;
}
/**
@@ -54,7 +54,7 @@ export function ExtendedEntitiesFromJSONTyped(json: any, ignoreDiscriminator: bo
}
return {
- 'media': ((json['media'] as Array).map(MediaFromJSON)),
+ 'media': ((json['media'] as Array).map(MediaExtendedFromJSON)),
};
}
@@ -67,7 +67,7 @@ export function ExtendedEntitiesToJSON(value?: ExtendedEntities | null): any {
}
return {
- 'media': ((value.media as Array).map(MediaToJSON)),
+ 'media': ((value.media as Array).map(MediaExtendedToJSON)),
};
}
diff --git a/twitter-openapi-typescript-generated/src/models/InstructionType.ts b/twitter-openapi-typescript-generated/src/models/InstructionType.ts
index 1329c6e..b752373 100644
--- a/twitter-openapi-typescript-generated/src/models/InstructionType.ts
+++ b/twitter-openapi-typescript-generated/src/models/InstructionType.ts
@@ -24,7 +24,8 @@ export const InstructionType = {
TimelinePinEntry: 'TimelinePinEntry',
TimelineReplaceEntry: 'TimelineReplaceEntry',
TimelineShowAlert: 'TimelineShowAlert',
- TimelineTerminateTimeline: 'TimelineTerminateTimeline'
+ TimelineTerminateTimeline: 'TimelineTerminateTimeline',
+ TimelineShowCover: 'TimelineShowCover'
} as const;
export type InstructionType = typeof InstructionType[keyof typeof InstructionType];
diff --git a/twitter-openapi-typescript-generated/src/models/InstructionUnion.ts b/twitter-openapi-typescript-generated/src/models/InstructionUnion.ts
index 90ab3e3..361d2be 100644
--- a/twitter-openapi-typescript-generated/src/models/InstructionUnion.ts
+++ b/twitter-openapi-typescript-generated/src/models/InstructionUnion.ts
@@ -54,6 +54,13 @@ import {
TimelineShowAlertFromJSONTyped,
TimelineShowAlertToJSON,
} from './TimelineShowAlert';
+import {
+ TimelineShowCover,
+ instanceOfTimelineShowCover,
+ TimelineShowCoverFromJSON,
+ TimelineShowCoverFromJSONTyped,
+ TimelineShowCoverToJSON,
+} from './TimelineShowCover';
import {
TimelineTerminateTimeline,
instanceOfTimelineTerminateTimeline,
@@ -67,7 +74,7 @@ import {
*
* @export
*/
-export type InstructionUnion = { type: 'TimelineAddEntries' } & TimelineAddEntries | { type: 'TimelineAddToModule' } & TimelineAddToModule | { type: 'TimelineClearCache' } & TimelineClearCache | { type: 'TimelinePinEntry' } & TimelinePinEntry | { type: 'TimelineReplaceEntry' } & TimelineReplaceEntry | { type: 'TimelineShowAlert' } & TimelineShowAlert | { type: 'TimelineTerminateTimeline' } & TimelineTerminateTimeline;
+export type InstructionUnion = { type: 'TimelineAddEntries' } & TimelineAddEntries | { type: 'TimelineAddToModule' } & TimelineAddToModule | { type: 'TimelineClearCache' } & TimelineClearCache | { type: 'TimelinePinEntry' } & TimelinePinEntry | { type: 'TimelineReplaceEntry' } & TimelineReplaceEntry | { type: 'TimelineShowAlert' } & TimelineShowAlert | { type: 'TimelineShowCover' } & TimelineShowCover | { type: 'TimelineTerminateTimeline' } & TimelineTerminateTimeline;
export function InstructionUnionFromJSON(json: any): InstructionUnion {
return InstructionUnionFromJSONTyped(json, false);
@@ -90,6 +97,8 @@ export function InstructionUnionFromJSONTyped(json: any, ignoreDiscriminator: bo
return {...TimelineReplaceEntryFromJSONTyped(json, true), type: 'TimelineReplaceEntry'};
case 'TimelineShowAlert':
return {...TimelineShowAlertFromJSONTyped(json, true), type: 'TimelineShowAlert'};
+ case 'TimelineShowCover':
+ return {...TimelineShowCoverFromJSONTyped(json, true), type: 'TimelineShowCover'};
case 'TimelineTerminateTimeline':
return {...TimelineTerminateTimelineFromJSONTyped(json, true), type: 'TimelineTerminateTimeline'};
default:
@@ -117,6 +126,8 @@ export function InstructionUnionToJSON(value?: InstructionUnion | null): any {
return TimelineReplaceEntryToJSON(value);
case 'TimelineShowAlert':
return TimelineShowAlertToJSON(value);
+ case 'TimelineShowCover':
+ return TimelineShowCoverToJSON(value);
case 'TimelineTerminateTimeline':
return TimelineTerminateTimelineToJSON(value);
default:
diff --git a/twitter-openapi-typescript-generated/src/models/ItemResult.ts b/twitter-openapi-typescript-generated/src/models/ItemResult.ts
index 1ac3494..3db009a 100644
--- a/twitter-openapi-typescript-generated/src/models/ItemResult.ts
+++ b/twitter-openapi-typescript-generated/src/models/ItemResult.ts
@@ -43,7 +43,7 @@ export interface ItemResult {
* @type {TweetUnion}
* @memberof ItemResult
*/
- result: TweetUnion;
+ result?: TweetUnion;
}
/**
@@ -51,7 +51,6 @@ export interface ItemResult {
*/
export function instanceOfItemResult(value: object): boolean {
let isInstance = true;
- isInstance = isInstance && "result" in value;
return isInstance;
}
@@ -67,7 +66,7 @@ export function ItemResultFromJSONTyped(json: any, ignoreDiscriminator: boolean)
return {
'typename': !exists(json, '__typename') ? undefined : TypeNameFromJSON(json['__typename']),
- 'result': TweetUnionFromJSON(json['result']),
+ 'result': !exists(json, 'result') ? undefined : TweetUnionFromJSON(json['result']),
};
}
diff --git a/twitter-openapi-typescript-generated/src/models/Media.ts b/twitter-openapi-typescript-generated/src/models/Media.ts
index 7431a61..3b972bd 100644
--- a/twitter-openapi-typescript-generated/src/models/Media.ts
+++ b/twitter-openapi-typescript-generated/src/models/Media.ts
@@ -19,6 +19,12 @@ import {
MediaOriginalInfoFromJSONTyped,
MediaOriginalInfoToJSON,
} from './MediaOriginalInfo';
+import type { MediaSizes } from './MediaSizes';
+import {
+ MediaSizesFromJSON,
+ MediaSizesFromJSONTyped,
+ MediaSizesToJSON,
+} from './MediaSizes';
/**
*
@@ -40,10 +46,10 @@ export interface Media {
expandedUrl: string;
/**
*
- * @type {{ [key: string]: any; }}
+ * @type {object}
* @memberof Media
*/
- extMediaAvailability?: { [key: string]: any; };
+ features?: object;
/**
*
* @type {string}
@@ -56,12 +62,6 @@ export interface Media {
* @memberof Media
*/
indices: Array;
- /**
- *
- * @type {string}
- * @memberof Media
- */
- mediaKey?: string;
/**
*
* @type {string}
@@ -76,16 +76,16 @@ export interface Media {
originalInfo: MediaOriginalInfo;
/**
*
- * @type {{ [key: string]: any; }}
+ * @type {MediaSizes}
* @memberof Media
*/
- sizes: { [key: string]: any; };
+ sizes: MediaSizes;
/**
*
* @type {string}
* @memberof Media
*/
- type: string;
+ type: MediaTypeEnum;
/**
*
* @type {string}
@@ -94,6 +94,18 @@ export interface Media {
url: string;
}
+
+/**
+ * @export
+ */
+export const MediaTypeEnum = {
+ Photo: 'photo',
+ Video: 'video',
+ AnimatedGif: 'animated_gif'
+} as const;
+export type MediaTypeEnum = typeof MediaTypeEnum[keyof typeof MediaTypeEnum];
+
+
/**
* Check if a given object implements the Media interface.
*/
@@ -124,13 +136,12 @@ export function MediaFromJSONTyped(json: any, ignoreDiscriminator: boolean): Med
'displayUrl': json['display_url'],
'expandedUrl': json['expanded_url'],
- 'extMediaAvailability': !exists(json, 'ext_media_availability') ? undefined : json['ext_media_availability'],
+ 'features': !exists(json, 'features') ? undefined : json['features'],
'idStr': json['id_str'],
'indices': json['indices'],
- 'mediaKey': !exists(json, 'media_key') ? undefined : json['media_key'],
'mediaUrlHttps': json['media_url_https'],
'originalInfo': MediaOriginalInfoFromJSON(json['original_info']),
- 'sizes': json['sizes'],
+ 'sizes': MediaSizesFromJSON(json['sizes']),
'type': json['type'],
'url': json['url'],
};
@@ -147,13 +158,12 @@ export function MediaToJSON(value?: Media | null): any {
'display_url': value.displayUrl,
'expanded_url': value.expandedUrl,
- 'ext_media_availability': value.extMediaAvailability,
+ 'features': value.features,
'id_str': value.idStr,
'indices': value.indices,
- 'media_key': value.mediaKey,
'media_url_https': value.mediaUrlHttps,
'original_info': MediaOriginalInfoToJSON(value.originalInfo),
- 'sizes': value.sizes,
+ 'sizes': MediaSizesToJSON(value.sizes),
'type': value.type,
'url': value.url,
};
diff --git a/twitter-openapi-typescript-generated/src/models/MediaExtended.ts b/twitter-openapi-typescript-generated/src/models/MediaExtended.ts
new file mode 100644
index 0000000..dae8032
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaExtended.ts
@@ -0,0 +1,237 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { AdditionalMediaInfo } from './AdditionalMediaInfo';
+import {
+ AdditionalMediaInfoFromJSON,
+ AdditionalMediaInfoFromJSONTyped,
+ AdditionalMediaInfoToJSON,
+} from './AdditionalMediaInfo';
+import type { ExtMediaAvailability } from './ExtMediaAvailability';
+import {
+ ExtMediaAvailabilityFromJSON,
+ ExtMediaAvailabilityFromJSONTyped,
+ ExtMediaAvailabilityToJSON,
+} from './ExtMediaAvailability';
+import type { MediaOriginalInfo } from './MediaOriginalInfo';
+import {
+ MediaOriginalInfoFromJSON,
+ MediaOriginalInfoFromJSONTyped,
+ MediaOriginalInfoToJSON,
+} from './MediaOriginalInfo';
+import type { MediaSizes } from './MediaSizes';
+import {
+ MediaSizesFromJSON,
+ MediaSizesFromJSONTyped,
+ MediaSizesToJSON,
+} from './MediaSizes';
+import type { MediaStats } from './MediaStats';
+import {
+ MediaStatsFromJSON,
+ MediaStatsFromJSONTyped,
+ MediaStatsToJSON,
+} from './MediaStats';
+import type { MediaVideoInfo } from './MediaVideoInfo';
+import {
+ MediaVideoInfoFromJSON,
+ MediaVideoInfoFromJSONTyped,
+ MediaVideoInfoToJSON,
+} from './MediaVideoInfo';
+
+/**
+ *
+ * @export
+ * @interface MediaExtended
+ */
+export interface MediaExtended {
+ /**
+ *
+ * @type {AdditionalMediaInfo}
+ * @memberof MediaExtended
+ */
+ additionalMediaInfo?: AdditionalMediaInfo;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ displayUrl: string;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ expandedUrl: string;
+ /**
+ *
+ * @type {ExtMediaAvailability}
+ * @memberof MediaExtended
+ */
+ extMediaAvailability: ExtMediaAvailability;
+ /**
+ *
+ * @type {object}
+ * @memberof MediaExtended
+ */
+ features?: object;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ idStr: string;
+ /**
+ *
+ * @type {Array}
+ * @memberof MediaExtended
+ */
+ indices: Array;
+ /**
+ *
+ * @type {MediaStats}
+ * @memberof MediaExtended
+ */
+ mediaStats?: MediaStats;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ mediaKey: string;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ mediaUrlHttps: string;
+ /**
+ *
+ * @type {MediaOriginalInfo}
+ * @memberof MediaExtended
+ */
+ originalInfo: MediaOriginalInfo;
+ /**
+ *
+ * @type {MediaSizes}
+ * @memberof MediaExtended
+ */
+ sizes: MediaSizes;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ type: MediaExtendedTypeEnum;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaExtended
+ */
+ url: string;
+ /**
+ *
+ * @type {MediaVideoInfo}
+ * @memberof MediaExtended
+ */
+ videoInfo?: MediaVideoInfo;
+}
+
+
+/**
+ * @export
+ */
+export const MediaExtendedTypeEnum = {
+ Photo: 'photo',
+ Video: 'video',
+ AnimatedGif: 'animated_gif'
+} as const;
+export type MediaExtendedTypeEnum = typeof MediaExtendedTypeEnum[keyof typeof MediaExtendedTypeEnum];
+
+
+/**
+ * Check if a given object implements the MediaExtended interface.
+ */
+export function instanceOfMediaExtended(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "displayUrl" in value;
+ isInstance = isInstance && "expandedUrl" in value;
+ isInstance = isInstance && "extMediaAvailability" in value;
+ isInstance = isInstance && "idStr" in value;
+ isInstance = isInstance && "indices" in value;
+ isInstance = isInstance && "mediaKey" in value;
+ isInstance = isInstance && "mediaUrlHttps" in value;
+ isInstance = isInstance && "originalInfo" in value;
+ isInstance = isInstance && "sizes" in value;
+ isInstance = isInstance && "type" in value;
+ isInstance = isInstance && "url" in value;
+
+ return isInstance;
+}
+
+export function MediaExtendedFromJSON(json: any): MediaExtended {
+ return MediaExtendedFromJSONTyped(json, false);
+}
+
+export function MediaExtendedFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaExtended {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'additionalMediaInfo': !exists(json, 'additional_media_info') ? undefined : AdditionalMediaInfoFromJSON(json['additional_media_info']),
+ 'displayUrl': json['display_url'],
+ 'expandedUrl': json['expanded_url'],
+ 'extMediaAvailability': ExtMediaAvailabilityFromJSON(json['ext_media_availability']),
+ 'features': !exists(json, 'features') ? undefined : json['features'],
+ 'idStr': json['id_str'],
+ 'indices': json['indices'],
+ 'mediaStats': !exists(json, 'mediaStats') ? undefined : MediaStatsFromJSON(json['mediaStats']),
+ 'mediaKey': json['media_key'],
+ 'mediaUrlHttps': json['media_url_https'],
+ 'originalInfo': MediaOriginalInfoFromJSON(json['original_info']),
+ 'sizes': MediaSizesFromJSON(json['sizes']),
+ 'type': json['type'],
+ 'url': json['url'],
+ 'videoInfo': !exists(json, 'video_info') ? undefined : MediaVideoInfoFromJSON(json['video_info']),
+ };
+}
+
+export function MediaExtendedToJSON(value?: MediaExtended | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'additional_media_info': AdditionalMediaInfoToJSON(value.additionalMediaInfo),
+ 'display_url': value.displayUrl,
+ 'expanded_url': value.expandedUrl,
+ 'ext_media_availability': ExtMediaAvailabilityToJSON(value.extMediaAvailability),
+ 'features': value.features,
+ 'id_str': value.idStr,
+ 'indices': value.indices,
+ 'mediaStats': MediaStatsToJSON(value.mediaStats),
+ 'media_key': value.mediaKey,
+ 'media_url_https': value.mediaUrlHttps,
+ 'original_info': MediaOriginalInfoToJSON(value.originalInfo),
+ 'sizes': MediaSizesToJSON(value.sizes),
+ 'type': value.type,
+ 'url': value.url,
+ 'video_info': MediaVideoInfoToJSON(value.videoInfo),
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/MediaOriginalInfo.ts b/twitter-openapi-typescript-generated/src/models/MediaOriginalInfo.ts
index 668be58..e8315fa 100644
--- a/twitter-openapi-typescript-generated/src/models/MediaOriginalInfo.ts
+++ b/twitter-openapi-typescript-generated/src/models/MediaOriginalInfo.ts
@@ -13,6 +13,13 @@
*/
import { exists, mapValues } from '../runtime';
+import type { MediaOriginalInfoFocusRect } from './MediaOriginalInfoFocusRect';
+import {
+ MediaOriginalInfoFocusRectFromJSON,
+ MediaOriginalInfoFocusRectFromJSONTyped,
+ MediaOriginalInfoFocusRectToJSON,
+} from './MediaOriginalInfoFocusRect';
+
/**
*
* @export
@@ -21,22 +28,22 @@ import { exists, mapValues } from '../runtime';
export interface MediaOriginalInfo {
/**
*
- * @type {Array<{ [key: string]: any; }>}
+ * @type {Array}
* @memberof MediaOriginalInfo
*/
- focusRects?: Array<{ [key: string]: any; }>;
+ focusRects?: Array;
/**
*
* @type {number}
* @memberof MediaOriginalInfo
*/
- height?: number;
+ height: number;
/**
*
* @type {number}
* @memberof MediaOriginalInfo
*/
- width?: number;
+ width: number;
}
/**
@@ -44,6 +51,8 @@ export interface MediaOriginalInfo {
*/
export function instanceOfMediaOriginalInfo(value: object): boolean {
let isInstance = true;
+ isInstance = isInstance && "height" in value;
+ isInstance = isInstance && "width" in value;
return isInstance;
}
@@ -58,9 +67,9 @@ export function MediaOriginalInfoFromJSONTyped(json: any, ignoreDiscriminator: b
}
return {
- 'focusRects': !exists(json, 'focus_rects') ? undefined : json['focus_rects'],
- 'height': !exists(json, 'height') ? undefined : json['height'],
- 'width': !exists(json, 'width') ? undefined : json['width'],
+ 'focusRects': !exists(json, 'focus_rects') ? undefined : ((json['focus_rects'] as Array).map(MediaOriginalInfoFocusRectFromJSON)),
+ 'height': json['height'],
+ 'width': json['width'],
};
}
@@ -73,7 +82,7 @@ export function MediaOriginalInfoToJSON(value?: MediaOriginalInfo | null): any {
}
return {
- 'focus_rects': value.focusRects,
+ 'focus_rects': value.focusRects === undefined ? undefined : ((value.focusRects as Array).map(MediaOriginalInfoFocusRectToJSON)),
'height': value.height,
'width': value.width,
};
diff --git a/twitter-openapi-typescript-generated/src/models/MediaOriginalInfoFocusRect.ts b/twitter-openapi-typescript-generated/src/models/MediaOriginalInfoFocusRect.ts
new file mode 100644
index 0000000..ee832b6
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaOriginalInfoFocusRect.ts
@@ -0,0 +1,93 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface MediaOriginalInfoFocusRect
+ */
+export interface MediaOriginalInfoFocusRect {
+ /**
+ *
+ * @type {number}
+ * @memberof MediaOriginalInfoFocusRect
+ */
+ h: number;
+ /**
+ *
+ * @type {number}
+ * @memberof MediaOriginalInfoFocusRect
+ */
+ w: number;
+ /**
+ *
+ * @type {number}
+ * @memberof MediaOriginalInfoFocusRect
+ */
+ x: number;
+ /**
+ *
+ * @type {number}
+ * @memberof MediaOriginalInfoFocusRect
+ */
+ y: number;
+}
+
+/**
+ * Check if a given object implements the MediaOriginalInfoFocusRect interface.
+ */
+export function instanceOfMediaOriginalInfoFocusRect(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "h" in value;
+ isInstance = isInstance && "w" in value;
+ isInstance = isInstance && "x" in value;
+ isInstance = isInstance && "y" in value;
+
+ return isInstance;
+}
+
+export function MediaOriginalInfoFocusRectFromJSON(json: any): MediaOriginalInfoFocusRect {
+ return MediaOriginalInfoFocusRectFromJSONTyped(json, false);
+}
+
+export function MediaOriginalInfoFocusRectFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaOriginalInfoFocusRect {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'h': json['h'],
+ 'w': json['w'],
+ 'x': json['x'],
+ 'y': json['y'],
+ };
+}
+
+export function MediaOriginalInfoFocusRectToJSON(value?: MediaOriginalInfoFocusRect | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'h': value.h,
+ 'w': value.w,
+ 'x': value.x,
+ 'y': value.y,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/MediaSize.ts b/twitter-openapi-typescript-generated/src/models/MediaSize.ts
new file mode 100644
index 0000000..66a64f2
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaSize.ts
@@ -0,0 +1,95 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface MediaSize
+ */
+export interface MediaSize {
+ /**
+ *
+ * @type {number}
+ * @memberof MediaSize
+ */
+ h: number;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaSize
+ */
+ resize: MediaSizeResizeEnum;
+ /**
+ *
+ * @type {number}
+ * @memberof MediaSize
+ */
+ w: number;
+}
+
+
+/**
+ * @export
+ */
+export const MediaSizeResizeEnum = {
+ Crop: 'crop',
+ Fit: 'fit'
+} as const;
+export type MediaSizeResizeEnum = typeof MediaSizeResizeEnum[keyof typeof MediaSizeResizeEnum];
+
+
+/**
+ * Check if a given object implements the MediaSize interface.
+ */
+export function instanceOfMediaSize(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "h" in value;
+ isInstance = isInstance && "resize" in value;
+ isInstance = isInstance && "w" in value;
+
+ return isInstance;
+}
+
+export function MediaSizeFromJSON(json: any): MediaSize {
+ return MediaSizeFromJSONTyped(json, false);
+}
+
+export function MediaSizeFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaSize {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'h': json['h'],
+ 'resize': json['resize'],
+ 'w': json['w'],
+ };
+}
+
+export function MediaSizeToJSON(value?: MediaSize | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'h': value.h,
+ 'resize': value.resize,
+ 'w': value.w,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/MediaSizes.ts b/twitter-openapi-typescript-generated/src/models/MediaSizes.ts
new file mode 100644
index 0000000..02224b9
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaSizes.ts
@@ -0,0 +1,100 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { MediaSize } from './MediaSize';
+import {
+ MediaSizeFromJSON,
+ MediaSizeFromJSONTyped,
+ MediaSizeToJSON,
+} from './MediaSize';
+
+/**
+ *
+ * @export
+ * @interface MediaSizes
+ */
+export interface MediaSizes {
+ /**
+ *
+ * @type {MediaSize}
+ * @memberof MediaSizes
+ */
+ large: MediaSize;
+ /**
+ *
+ * @type {MediaSize}
+ * @memberof MediaSizes
+ */
+ medium: MediaSize;
+ /**
+ *
+ * @type {MediaSize}
+ * @memberof MediaSizes
+ */
+ small: MediaSize;
+ /**
+ *
+ * @type {MediaSize}
+ * @memberof MediaSizes
+ */
+ thumb: MediaSize;
+}
+
+/**
+ * Check if a given object implements the MediaSizes interface.
+ */
+export function instanceOfMediaSizes(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "large" in value;
+ isInstance = isInstance && "medium" in value;
+ isInstance = isInstance && "small" in value;
+ isInstance = isInstance && "thumb" in value;
+
+ return isInstance;
+}
+
+export function MediaSizesFromJSON(json: any): MediaSizes {
+ return MediaSizesFromJSONTyped(json, false);
+}
+
+export function MediaSizesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaSizes {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'large': MediaSizeFromJSON(json['large']),
+ 'medium': MediaSizeFromJSON(json['medium']),
+ 'small': MediaSizeFromJSON(json['small']),
+ 'thumb': MediaSizeFromJSON(json['thumb']),
+ };
+}
+
+export function MediaSizesToJSON(value?: MediaSizes | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'large': MediaSizeToJSON(value.large),
+ 'medium': MediaSizeToJSON(value.medium),
+ 'small': MediaSizeToJSON(value.small),
+ 'thumb': MediaSizeToJSON(value.thumb),
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/MediaStats.ts b/twitter-openapi-typescript-generated/src/models/MediaStats.ts
new file mode 100644
index 0000000..662d9f9
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaStats.ts
@@ -0,0 +1,66 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface MediaStats
+ */
+export interface MediaStats {
+ /**
+ *
+ * @type {number}
+ * @memberof MediaStats
+ */
+ viewCount: number;
+}
+
+/**
+ * Check if a given object implements the MediaStats interface.
+ */
+export function instanceOfMediaStats(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "viewCount" in value;
+
+ return isInstance;
+}
+
+export function MediaStatsFromJSON(json: any): MediaStats {
+ return MediaStatsFromJSONTyped(json, false);
+}
+
+export function MediaStatsFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaStats {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'viewCount': json['viewCount'],
+ };
+}
+
+export function MediaStatsToJSON(value?: MediaStats | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'viewCount': value.viewCount,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/MediaVideoInfo.ts b/twitter-openapi-typescript-generated/src/models/MediaVideoInfo.ts
new file mode 100644
index 0000000..1ab3e70
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaVideoInfo.ts
@@ -0,0 +1,90 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { MediaVideoInfoVariant } from './MediaVideoInfoVariant';
+import {
+ MediaVideoInfoVariantFromJSON,
+ MediaVideoInfoVariantFromJSONTyped,
+ MediaVideoInfoVariantToJSON,
+} from './MediaVideoInfoVariant';
+
+/**
+ *
+ * @export
+ * @interface MediaVideoInfo
+ */
+export interface MediaVideoInfo {
+ /**
+ *
+ * @type {Array}
+ * @memberof MediaVideoInfo
+ */
+ aspectRatio: Array;
+ /**
+ *
+ * @type {number}
+ * @memberof MediaVideoInfo
+ */
+ durationMillis?: number;
+ /**
+ *
+ * @type {Array}
+ * @memberof MediaVideoInfo
+ */
+ variants: Array;
+}
+
+/**
+ * Check if a given object implements the MediaVideoInfo interface.
+ */
+export function instanceOfMediaVideoInfo(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "aspectRatio" in value;
+ isInstance = isInstance && "variants" in value;
+
+ return isInstance;
+}
+
+export function MediaVideoInfoFromJSON(json: any): MediaVideoInfo {
+ return MediaVideoInfoFromJSONTyped(json, false);
+}
+
+export function MediaVideoInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaVideoInfo {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'aspectRatio': json['aspect_ratio'],
+ 'durationMillis': !exists(json, 'duration_millis') ? undefined : json['duration_millis'],
+ 'variants': ((json['variants'] as Array).map(MediaVideoInfoVariantFromJSON)),
+ };
+}
+
+export function MediaVideoInfoToJSON(value?: MediaVideoInfo | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'aspect_ratio': value.aspectRatio,
+ 'duration_millis': value.durationMillis,
+ 'variants': ((value.variants as Array).map(MediaVideoInfoVariantToJSON)),
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/MediaVideoInfoVariant.ts b/twitter-openapi-typescript-generated/src/models/MediaVideoInfoVariant.ts
new file mode 100644
index 0000000..7d435b8
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/MediaVideoInfoVariant.ts
@@ -0,0 +1,83 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface MediaVideoInfoVariant
+ */
+export interface MediaVideoInfoVariant {
+ /**
+ *
+ * @type {number}
+ * @memberof MediaVideoInfoVariant
+ */
+ bitrate?: number;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaVideoInfoVariant
+ */
+ contentType: string;
+ /**
+ *
+ * @type {string}
+ * @memberof MediaVideoInfoVariant
+ */
+ url: string;
+}
+
+/**
+ * Check if a given object implements the MediaVideoInfoVariant interface.
+ */
+export function instanceOfMediaVideoInfoVariant(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "contentType" in value;
+ isInstance = isInstance && "url" in value;
+
+ return isInstance;
+}
+
+export function MediaVideoInfoVariantFromJSON(json: any): MediaVideoInfoVariant {
+ return MediaVideoInfoVariantFromJSONTyped(json, false);
+}
+
+export function MediaVideoInfoVariantFromJSONTyped(json: any, ignoreDiscriminator: boolean): MediaVideoInfoVariant {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'bitrate': !exists(json, 'bitrate') ? undefined : json['bitrate'],
+ 'contentType': json['content_type'],
+ 'url': json['url'],
+ };
+}
+
+export function MediaVideoInfoVariantToJSON(value?: MediaVideoInfoVariant | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'bitrate': value.bitrate,
+ 'content_type': value.contentType,
+ 'url': value.url,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/ModuleEntry.ts b/twitter-openapi-typescript-generated/src/models/ModuleEntry.ts
index dfaa93b..19fbe63 100644
--- a/twitter-openapi-typescript-generated/src/models/ModuleEntry.ts
+++ b/twitter-openapi-typescript-generated/src/models/ModuleEntry.ts
@@ -13,6 +13,12 @@
*/
import { exists, mapValues } from '../runtime';
+import type { ClientEventInfo } from './ClientEventInfo';
+import {
+ ClientEventInfoFromJSON,
+ ClientEventInfoFromJSONTyped,
+ ClientEventInfoToJSON,
+} from './ClientEventInfo';
import type { ItemContentUnion } from './ItemContentUnion';
import {
ItemContentUnionFromJSON,
@@ -28,10 +34,10 @@ import {
export interface ModuleEntry {
/**
*
- * @type {{ [key: string]: any; }}
+ * @type {ClientEventInfo}
* @memberof ModuleEntry
*/
- clientEventInfo: { [key: string]: any; };
+ clientEventInfo: ClientEventInfo;
/**
*
* @type {ItemContentUnion}
@@ -61,7 +67,7 @@ export function ModuleEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean
}
return {
- 'clientEventInfo': json['clientEventInfo'],
+ 'clientEventInfo': ClientEventInfoFromJSON(json['clientEventInfo']),
'itemContent': ItemContentUnionFromJSON(json['itemContent']),
};
}
@@ -75,7 +81,7 @@ export function ModuleEntryToJSON(value?: ModuleEntry | null): any {
}
return {
- 'clientEventInfo': value.clientEventInfo,
+ 'clientEventInfo': ClientEventInfoToJSON(value.clientEventInfo),
'itemContent': ItemContentUnionToJSON(value.itemContent),
};
}
diff --git a/twitter-openapi-typescript-generated/src/models/TweetLegacySelfThread.ts b/twitter-openapi-typescript-generated/src/models/SelfThread.ts
similarity index 60%
rename from twitter-openapi-typescript-generated/src/models/TweetLegacySelfThread.ts
rename to twitter-openapi-typescript-generated/src/models/SelfThread.ts
index 4eb150a..1c83fae 100644
--- a/twitter-openapi-typescript-generated/src/models/TweetLegacySelfThread.ts
+++ b/twitter-openapi-typescript-generated/src/models/SelfThread.ts
@@ -16,32 +16,32 @@ import { exists, mapValues } from '../runtime';
/**
*
* @export
- * @interface TweetLegacySelfThread
+ * @interface SelfThread
*/
-export interface TweetLegacySelfThread {
+export interface SelfThread {
/**
*
* @type {string}
- * @memberof TweetLegacySelfThread
+ * @memberof SelfThread
*/
idStr: string;
}
/**
- * Check if a given object implements the TweetLegacySelfThread interface.
+ * Check if a given object implements the SelfThread interface.
*/
-export function instanceOfTweetLegacySelfThread(value: object): boolean {
+export function instanceOfSelfThread(value: object): boolean {
let isInstance = true;
isInstance = isInstance && "idStr" in value;
return isInstance;
}
-export function TweetLegacySelfThreadFromJSON(json: any): TweetLegacySelfThread {
- return TweetLegacySelfThreadFromJSONTyped(json, false);
+export function SelfThreadFromJSON(json: any): SelfThread {
+ return SelfThreadFromJSONTyped(json, false);
}
-export function TweetLegacySelfThreadFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetLegacySelfThread {
+export function SelfThreadFromJSONTyped(json: any, ignoreDiscriminator: boolean): SelfThread {
if ((json === undefined) || (json === null)) {
return json;
}
@@ -51,7 +51,7 @@ export function TweetLegacySelfThreadFromJSONTyped(json: any, ignoreDiscriminato
};
}
-export function TweetLegacySelfThreadToJSON(value?: TweetLegacySelfThread | null): any {
+export function SelfThreadToJSON(value?: SelfThread | null): any {
if (value === undefined) {
return undefined;
}
diff --git a/twitter-openapi-typescript-generated/src/models/Session.ts b/twitter-openapi-typescript-generated/src/models/Session.ts
index e023bfd..af45124 100644
--- a/twitter-openapi-typescript-generated/src/models/Session.ts
+++ b/twitter-openapi-typescript-generated/src/models/Session.ts
@@ -109,7 +109,7 @@ export interface Session {
* @type {string}
* @memberof Session
*/
- superFollowsApplicationStatus: string;
+ superFollowsApplicationStatus: SessionSuperFollowsApplicationStatusEnum;
/**
*
* @type {UserFeatures}
@@ -124,6 +124,16 @@ export interface Session {
userId: string;
}
+
+/**
+ * @export
+ */
+export const SessionSuperFollowsApplicationStatusEnum = {
+ NotStarted: 'NotStarted'
+} as const;
+export type SessionSuperFollowsApplicationStatusEnum = typeof SessionSuperFollowsApplicationStatusEnum[keyof typeof SessionSuperFollowsApplicationStatusEnum];
+
+
/**
* Check if a given object implements the Session interface.
*/
diff --git a/twitter-openapi-typescript-generated/src/models/Text.ts b/twitter-openapi-typescript-generated/src/models/Text.ts
new file mode 100644
index 0000000..4412fc4
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/Text.ts
@@ -0,0 +1,82 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { TextEntity } from './TextEntity';
+import {
+ TextEntityFromJSON,
+ TextEntityFromJSONTyped,
+ TextEntityToJSON,
+} from './TextEntity';
+
+/**
+ *
+ * @export
+ * @interface Text
+ */
+export interface Text {
+ /**
+ *
+ * @type {Array}
+ * @memberof Text
+ */
+ entities: Array;
+ /**
+ *
+ * @type {string}
+ * @memberof Text
+ */
+ text: string;
+}
+
+/**
+ * Check if a given object implements the Text interface.
+ */
+export function instanceOfText(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "entities" in value;
+ isInstance = isInstance && "text" in value;
+
+ return isInstance;
+}
+
+export function TextFromJSON(json: any): Text {
+ return TextFromJSONTyped(json, false);
+}
+
+export function TextFromJSONTyped(json: any, ignoreDiscriminator: boolean): Text {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'entities': ((json['entities'] as Array).map(TextEntityFromJSON)),
+ 'text': json['text'],
+ };
+}
+
+export function TextToJSON(value?: Text | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'entities': ((value.entities as Array).map(TextEntityToJSON)),
+ 'text': value.text,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TextEntity.ts b/twitter-openapi-typescript-generated/src/models/TextEntity.ts
new file mode 100644
index 0000000..1962e63
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TextEntity.ts
@@ -0,0 +1,91 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { TextEntityRef } from './TextEntityRef';
+import {
+ TextEntityRefFromJSON,
+ TextEntityRefFromJSONTyped,
+ TextEntityRefToJSON,
+} from './TextEntityRef';
+
+/**
+ *
+ * @export
+ * @interface TextEntity
+ */
+export interface TextEntity {
+ /**
+ *
+ * @type {number}
+ * @memberof TextEntity
+ */
+ fromIndex: number;
+ /**
+ *
+ * @type {TextEntityRef}
+ * @memberof TextEntity
+ */
+ ref: TextEntityRef;
+ /**
+ *
+ * @type {number}
+ * @memberof TextEntity
+ */
+ toIndex: number;
+}
+
+/**
+ * Check if a given object implements the TextEntity interface.
+ */
+export function instanceOfTextEntity(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "fromIndex" in value;
+ isInstance = isInstance && "ref" in value;
+ isInstance = isInstance && "toIndex" in value;
+
+ return isInstance;
+}
+
+export function TextEntityFromJSON(json: any): TextEntity {
+ return TextEntityFromJSONTyped(json, false);
+}
+
+export function TextEntityFromJSONTyped(json: any, ignoreDiscriminator: boolean): TextEntity {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'fromIndex': json['fromIndex'],
+ 'ref': TextEntityRefFromJSON(json['ref']),
+ 'toIndex': json['toIndex'],
+ };
+}
+
+export function TextEntityToJSON(value?: TextEntity | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'fromIndex': value.fromIndex,
+ 'ref': TextEntityRefToJSON(value.ref),
+ 'toIndex': value.toIndex,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TextEntityRef.ts b/twitter-openapi-typescript-generated/src/models/TextEntityRef.ts
new file mode 100644
index 0000000..3138389
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TextEntityRef.ts
@@ -0,0 +1,102 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface TextEntityRef
+ */
+export interface TextEntityRef {
+ /**
+ *
+ * @type {string}
+ * @memberof TextEntityRef
+ */
+ type: TextEntityRefTypeEnum;
+ /**
+ *
+ * @type {string}
+ * @memberof TextEntityRef
+ */
+ url: string;
+ /**
+ *
+ * @type {string}
+ * @memberof TextEntityRef
+ */
+ urlType: TextEntityRefUrlTypeEnum;
+}
+
+
+/**
+ * @export
+ */
+export const TextEntityRefTypeEnum = {
+ TimelineUrl: 'TimelineUrl'
+} as const;
+export type TextEntityRefTypeEnum = typeof TextEntityRefTypeEnum[keyof typeof TextEntityRefTypeEnum];
+
+/**
+ * @export
+ */
+export const TextEntityRefUrlTypeEnum = {
+ ExternalUrl: 'ExternalUrl'
+} as const;
+export type TextEntityRefUrlTypeEnum = typeof TextEntityRefUrlTypeEnum[keyof typeof TextEntityRefUrlTypeEnum];
+
+
+/**
+ * Check if a given object implements the TextEntityRef interface.
+ */
+export function instanceOfTextEntityRef(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "type" in value;
+ isInstance = isInstance && "url" in value;
+ isInstance = isInstance && "urlType" in value;
+
+ return isInstance;
+}
+
+export function TextEntityRefFromJSON(json: any): TextEntityRef {
+ return TextEntityRefFromJSONTyped(json, false);
+}
+
+export function TextEntityRefFromJSONTyped(json: any, ignoreDiscriminator: boolean): TextEntityRef {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'type': json['type'],
+ 'url': json['url'],
+ 'urlType': json['urlType'],
+ };
+}
+
+export function TextEntityRefToJSON(value?: TextEntityRef | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'type': value.type,
+ 'url': value.url,
+ 'urlType': value.urlType,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TimelineCoverBehavior.ts b/twitter-openapi-typescript-generated/src/models/TimelineCoverBehavior.ts
new file mode 100644
index 0000000..341d6d2
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TimelineCoverBehavior.ts
@@ -0,0 +1,76 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface TimelineCoverBehavior
+ */
+export interface TimelineCoverBehavior {
+ /**
+ *
+ * @type {string}
+ * @memberof TimelineCoverBehavior
+ */
+ type: TimelineCoverBehaviorTypeEnum;
+}
+
+
+/**
+ * @export
+ */
+export const TimelineCoverBehaviorTypeEnum = {
+ TimelineCoverBehaviorDismiss: 'TimelineCoverBehaviorDismiss'
+} as const;
+export type TimelineCoverBehaviorTypeEnum = typeof TimelineCoverBehaviorTypeEnum[keyof typeof TimelineCoverBehaviorTypeEnum];
+
+
+/**
+ * Check if a given object implements the TimelineCoverBehavior interface.
+ */
+export function instanceOfTimelineCoverBehavior(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "type" in value;
+
+ return isInstance;
+}
+
+export function TimelineCoverBehaviorFromJSON(json: any): TimelineCoverBehavior {
+ return TimelineCoverBehaviorFromJSONTyped(json, false);
+}
+
+export function TimelineCoverBehaviorFromJSONTyped(json: any, ignoreDiscriminator: boolean): TimelineCoverBehavior {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'type': json['type'],
+ };
+}
+
+export function TimelineCoverBehaviorToJSON(value?: TimelineCoverBehavior | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'type': value.type,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TimelineHalfCover.ts b/twitter-openapi-typescript-generated/src/models/TimelineHalfCover.ts
new file mode 100644
index 0000000..c05f040
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TimelineHalfCover.ts
@@ -0,0 +1,157 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { Callback } from './Callback';
+import {
+ CallbackFromJSON,
+ CallbackFromJSONTyped,
+ CallbackToJSON,
+} from './Callback';
+import type { CoverCta } from './CoverCta';
+import {
+ CoverCtaFromJSON,
+ CoverCtaFromJSONTyped,
+ CoverCtaToJSON,
+} from './CoverCta';
+import type { Text } from './Text';
+import {
+ TextFromJSON,
+ TextFromJSONTyped,
+ TextToJSON,
+} from './Text';
+
+/**
+ *
+ * @export
+ * @interface TimelineHalfCover
+ */
+export interface TimelineHalfCover {
+ /**
+ *
+ * @type {boolean}
+ * @memberof TimelineHalfCover
+ */
+ dismissible: boolean;
+ /**
+ *
+ * @type {string}
+ * @memberof TimelineHalfCover
+ */
+ halfCoverDisplayType: TimelineHalfCoverHalfCoverDisplayTypeEnum;
+ /**
+ *
+ * @type {Array}
+ * @memberof TimelineHalfCover
+ */
+ impressionCallbacks: Array;
+ /**
+ *
+ * @type {CoverCta}
+ * @memberof TimelineHalfCover
+ */
+ primaryCoverCta: CoverCta;
+ /**
+ *
+ * @type {Text}
+ * @memberof TimelineHalfCover
+ */
+ primaryText: Text;
+ /**
+ *
+ * @type {Text}
+ * @memberof TimelineHalfCover
+ */
+ secondaryText: Text;
+ /**
+ *
+ * @type {string}
+ * @memberof TimelineHalfCover
+ */
+ type: TimelineHalfCoverTypeEnum;
+}
+
+
+/**
+ * @export
+ */
+export const TimelineHalfCoverHalfCoverDisplayTypeEnum = {
+ Cover: 'Cover'
+} as const;
+export type TimelineHalfCoverHalfCoverDisplayTypeEnum = typeof TimelineHalfCoverHalfCoverDisplayTypeEnum[keyof typeof TimelineHalfCoverHalfCoverDisplayTypeEnum];
+
+/**
+ * @export
+ */
+export const TimelineHalfCoverTypeEnum = {
+ TimelineHalfCover: 'TimelineHalfCover'
+} as const;
+export type TimelineHalfCoverTypeEnum = typeof TimelineHalfCoverTypeEnum[keyof typeof TimelineHalfCoverTypeEnum];
+
+
+/**
+ * Check if a given object implements the TimelineHalfCover interface.
+ */
+export function instanceOfTimelineHalfCover(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "dismissible" in value;
+ isInstance = isInstance && "halfCoverDisplayType" in value;
+ isInstance = isInstance && "impressionCallbacks" in value;
+ isInstance = isInstance && "primaryCoverCta" in value;
+ isInstance = isInstance && "primaryText" in value;
+ isInstance = isInstance && "secondaryText" in value;
+ isInstance = isInstance && "type" in value;
+
+ return isInstance;
+}
+
+export function TimelineHalfCoverFromJSON(json: any): TimelineHalfCover {
+ return TimelineHalfCoverFromJSONTyped(json, false);
+}
+
+export function TimelineHalfCoverFromJSONTyped(json: any, ignoreDiscriminator: boolean): TimelineHalfCover {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'dismissible': json['dismissible'],
+ 'halfCoverDisplayType': json['halfCoverDisplayType'],
+ 'impressionCallbacks': ((json['impressionCallbacks'] as Array).map(CallbackFromJSON)),
+ 'primaryCoverCta': CoverCtaFromJSON(json['primaryCoverCta']),
+ 'primaryText': TextFromJSON(json['primaryText']),
+ 'secondaryText': TextFromJSON(json['secondaryText']),
+ 'type': json['type'],
+ };
+}
+
+export function TimelineHalfCoverToJSON(value?: TimelineHalfCover | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'dismissible': value.dismissible,
+ 'halfCoverDisplayType': value.halfCoverDisplayType,
+ 'impressionCallbacks': ((value.impressionCallbacks as Array).map(CallbackToJSON)),
+ 'primaryCoverCta': CoverCtaToJSON(value.primaryCoverCta),
+ 'primaryText': TextToJSON(value.primaryText),
+ 'secondaryText': TextToJSON(value.secondaryText),
+ 'type': value.type,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TimelineShowCover.ts b/twitter-openapi-typescript-generated/src/models/TimelineShowCover.ts
new file mode 100644
index 0000000..f6d266f
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TimelineShowCover.ts
@@ -0,0 +1,103 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { ClientEventInfo } from './ClientEventInfo';
+import {
+ ClientEventInfoFromJSON,
+ ClientEventInfoFromJSONTyped,
+ ClientEventInfoToJSON,
+} from './ClientEventInfo';
+import type { InstructionType } from './InstructionType';
+import {
+ InstructionTypeFromJSON,
+ InstructionTypeFromJSONTyped,
+ InstructionTypeToJSON,
+} from './InstructionType';
+import type { TimelineHalfCover } from './TimelineHalfCover';
+import {
+ TimelineHalfCoverFromJSON,
+ TimelineHalfCoverFromJSONTyped,
+ TimelineHalfCoverToJSON,
+} from './TimelineHalfCover';
+
+/**
+ *
+ * @export
+ * @interface TimelineShowCover
+ */
+export interface TimelineShowCover {
+ /**
+ *
+ * @type {ClientEventInfo}
+ * @memberof TimelineShowCover
+ */
+ clientEventInfo: ClientEventInfo;
+ /**
+ *
+ * @type {TimelineHalfCover}
+ * @memberof TimelineShowCover
+ */
+ cover: TimelineHalfCover;
+ /**
+ *
+ * @type {InstructionType}
+ * @memberof TimelineShowCover
+ */
+ type: InstructionType;
+}
+
+/**
+ * Check if a given object implements the TimelineShowCover interface.
+ */
+export function instanceOfTimelineShowCover(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "clientEventInfo" in value;
+ isInstance = isInstance && "cover" in value;
+ isInstance = isInstance && "type" in value;
+
+ return isInstance;
+}
+
+export function TimelineShowCoverFromJSON(json: any): TimelineShowCover {
+ return TimelineShowCoverFromJSONTyped(json, false);
+}
+
+export function TimelineShowCoverFromJSONTyped(json: any, ignoreDiscriminator: boolean): TimelineShowCover {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'clientEventInfo': ClientEventInfoFromJSON(json['clientEventInfo']),
+ 'cover': TimelineHalfCoverFromJSON(json['cover']),
+ 'type': InstructionTypeFromJSON(json['type']),
+ };
+}
+
+export function TimelineShowCoverToJSON(value?: TimelineShowCover | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'clientEventInfo': ClientEventInfoToJSON(value.clientEventInfo),
+ 'cover': TimelineHalfCoverToJSON(value.cover),
+ 'type': InstructionTypeToJSON(value.type),
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TimelineTimelineItem.ts b/twitter-openapi-typescript-generated/src/models/TimelineTimelineItem.ts
index f1cca18..0108335 100644
--- a/twitter-openapi-typescript-generated/src/models/TimelineTimelineItem.ts
+++ b/twitter-openapi-typescript-generated/src/models/TimelineTimelineItem.ts
@@ -13,6 +13,12 @@
*/
import { exists, mapValues } from '../runtime';
+import type { ClientEventInfo } from './ClientEventInfo';
+import {
+ ClientEventInfoFromJSON,
+ ClientEventInfoFromJSONTyped,
+ ClientEventInfoToJSON,
+} from './ClientEventInfo';
import type { ContentEntryType } from './ContentEntryType';
import {
ContentEntryTypeFromJSON,
@@ -46,10 +52,10 @@ export interface TimelineTimelineItem {
typename: TypeName;
/**
*
- * @type {{ [key: string]: any; }}
+ * @type {ClientEventInfo}
* @memberof TimelineTimelineItem
*/
- clientEventInfo?: { [key: string]: any; };
+ clientEventInfo?: ClientEventInfo;
/**
*
* @type {ContentEntryType}
@@ -93,7 +99,7 @@ export function TimelineTimelineItemFromJSONTyped(json: any, ignoreDiscriminator
return {
'typename': TypeNameFromJSON(json['__typename']),
- 'clientEventInfo': !exists(json, 'clientEventInfo') ? undefined : json['clientEventInfo'],
+ 'clientEventInfo': !exists(json, 'clientEventInfo') ? undefined : ClientEventInfoFromJSON(json['clientEventInfo']),
'entryType': ContentEntryTypeFromJSON(json['entryType']),
'feedbackInfo': !exists(json, 'feedbackInfo') ? undefined : json['feedbackInfo'],
'itemContent': ItemContentUnionFromJSON(json['itemContent']),
@@ -110,7 +116,7 @@ export function TimelineTimelineItemToJSON(value?: TimelineTimelineItem | null):
return {
'__typename': TypeNameToJSON(value.typename),
- 'clientEventInfo': value.clientEventInfo,
+ 'clientEventInfo': ClientEventInfoToJSON(value.clientEventInfo),
'entryType': ContentEntryTypeToJSON(value.entryType),
'feedbackInfo': value.feedbackInfo,
'itemContent': ItemContentUnionToJSON(value.itemContent),
diff --git a/twitter-openapi-typescript-generated/src/models/TimelineTimelineModule.ts b/twitter-openapi-typescript-generated/src/models/TimelineTimelineModule.ts
index 6f46854..87beba0 100644
--- a/twitter-openapi-typescript-generated/src/models/TimelineTimelineModule.ts
+++ b/twitter-openapi-typescript-generated/src/models/TimelineTimelineModule.ts
@@ -55,7 +55,7 @@ export interface TimelineTimelineModule {
* @type {string}
* @memberof TimelineTimelineModule
*/
- displayType: string;
+ displayType: TimelineTimelineModuleDisplayTypeEnum;
/**
*
* @type {ContentEntryType}
@@ -82,6 +82,17 @@ export interface TimelineTimelineModule {
items?: Array;
}
+
+/**
+ * @export
+ */
+export const TimelineTimelineModuleDisplayTypeEnum = {
+ Vertical: 'Vertical',
+ VerticalConversation: 'VerticalConversation'
+} as const;
+export type TimelineTimelineModuleDisplayTypeEnum = typeof TimelineTimelineModuleDisplayTypeEnum[keyof typeof TimelineTimelineModuleDisplayTypeEnum];
+
+
/**
* Check if a given object implements the TimelineTimelineModule interface.
*/
diff --git a/twitter-openapi-typescript-generated/src/models/TimelineUser.ts b/twitter-openapi-typescript-generated/src/models/TimelineUser.ts
index f87b202..fc753ac 100644
--- a/twitter-openapi-typescript-generated/src/models/TimelineUser.ts
+++ b/twitter-openapi-typescript-generated/src/models/TimelineUser.ts
@@ -67,7 +67,7 @@ export interface TimelineUser {
* @type {string}
* @memberof TimelineUser
*/
- userDisplayType: string;
+ userDisplayType: TimelineUserUserDisplayTypeEnum;
/**
*
* @type {UserResults}
@@ -76,6 +76,18 @@ export interface TimelineUser {
userResults: UserResults;
}
+
+/**
+ * @export
+ */
+export const TimelineUserUserDisplayTypeEnum = {
+ User: 'User',
+ UserDetailed: 'UserDetailed',
+ SubscribableUser: 'SubscribableUser'
+} as const;
+export type TimelineUserUserDisplayTypeEnum = typeof TimelineUserUserDisplayTypeEnum[keyof typeof TimelineUserUserDisplayTypeEnum];
+
+
/**
* Check if a given object implements the TimelineUser interface.
*/
diff --git a/twitter-openapi-typescript-generated/src/models/Tweet.ts b/twitter-openapi-typescript-generated/src/models/Tweet.ts
index fe2da7c..a5f68b3 100644
--- a/twitter-openapi-typescript-generated/src/models/Tweet.ts
+++ b/twitter-openapi-typescript-generated/src/models/Tweet.ts
@@ -43,12 +43,12 @@ import {
TweetLegacyFromJSONTyped,
TweetLegacyToJSON,
} from './TweetLegacy';
-import type { TweetViews } from './TweetViews';
+import type { TweetView } from './TweetView';
import {
- TweetViewsFromJSON,
- TweetViewsFromJSONTyped,
- TweetViewsToJSON,
-} from './TweetViews';
+ TweetViewFromJSON,
+ TweetViewFromJSONTyped,
+ TweetViewToJSON,
+} from './TweetView';
import type { TypeName } from './TypeName';
import {
TypeNameFromJSON,
@@ -85,7 +85,7 @@ export interface Tweet {
* @type {UserResultCore}
* @memberof Tweet
*/
- core: UserResultCore;
+ core?: UserResultCore;
/**
*
* @type {TweetEditControl}
@@ -109,7 +109,7 @@ export interface Tweet {
* @type {TweetLegacy}
* @memberof Tweet
*/
- legacy: TweetLegacy;
+ legacy?: TweetLegacy;
/**
*
* @type {ItemResult}
@@ -122,6 +122,12 @@ export interface Tweet {
* @memberof Tweet
*/
restId: string;
+ /**
+ *
+ * @type {string}
+ * @memberof Tweet
+ */
+ source?: string;
/**
*
* @type {{ [key: string]: any; }}
@@ -130,10 +136,10 @@ export interface Tweet {
unmentionData?: { [key: string]: any; };
/**
*
- * @type {TweetViews}
+ * @type {TweetView}
* @memberof Tweet
*/
- views: TweetViews;
+ views: TweetView;
}
/**
@@ -141,10 +147,8 @@ export interface Tweet {
*/
export function instanceOfTweet(value: object): boolean {
let isInstance = true;
- isInstance = isInstance && "core" in value;
isInstance = isInstance && "editControl" in value;
isInstance = isInstance && "isTranslatable" in value;
- isInstance = isInstance && "legacy" in value;
isInstance = isInstance && "restId" in value;
isInstance = isInstance && "views" in value;
@@ -163,15 +167,16 @@ export function TweetFromJSONTyped(json: any, ignoreDiscriminator: boolean): Twe
'typename': !exists(json, '__typename') ? undefined : TypeNameFromJSON(json['__typename']),
'card': !exists(json, 'card') ? undefined : TweetCardFromJSON(json['card']),
- 'core': UserResultCoreFromJSON(json['core']),
+ 'core': !exists(json, 'core') ? undefined : UserResultCoreFromJSON(json['core']),
'editControl': TweetEditControlFromJSON(json['edit_control']),
'editPrespective': !exists(json, 'edit_prespective') ? undefined : TweetEditPrespectiveFromJSON(json['edit_prespective']),
'isTranslatable': json['is_translatable'],
- 'legacy': TweetLegacyFromJSON(json['legacy']),
+ 'legacy': !exists(json, 'legacy') ? undefined : TweetLegacyFromJSON(json['legacy']),
'quotedStatusResult': !exists(json, 'quoted_status_result') ? undefined : ItemResultFromJSON(json['quoted_status_result']),
'restId': json['rest_id'],
+ 'source': !exists(json, 'source') ? undefined : json['source'],
'unmentionData': !exists(json, 'unmention_data') ? undefined : json['unmention_data'],
- 'views': TweetViewsFromJSON(json['views']),
+ 'views': TweetViewFromJSON(json['views']),
};
}
@@ -193,8 +198,9 @@ export function TweetToJSON(value?: Tweet | null): any {
'legacy': TweetLegacyToJSON(value.legacy),
'quoted_status_result': ItemResultToJSON(value.quotedStatusResult),
'rest_id': value.restId,
+ 'source': value.source,
'unmention_data': value.unmentionData,
- 'views': TweetViewsToJSON(value.views),
+ 'views': TweetViewToJSON(value.views),
};
}
diff --git a/twitter-openapi-typescript-generated/src/models/TweetCardLegacy.ts b/twitter-openapi-typescript-generated/src/models/TweetCardLegacy.ts
index fc962f6..f26f5ff 100644
--- a/twitter-openapi-typescript-generated/src/models/TweetCardLegacy.ts
+++ b/twitter-openapi-typescript-generated/src/models/TweetCardLegacy.ts
@@ -13,12 +13,12 @@
*/
import { exists, mapValues } from '../runtime';
-import type { TweetCardLegacyBindingValuesInner } from './TweetCardLegacyBindingValuesInner';
+import type { TweetCardLegacyBindingValue } from './TweetCardLegacyBindingValue';
import {
- TweetCardLegacyBindingValuesInnerFromJSON,
- TweetCardLegacyBindingValuesInnerFromJSONTyped,
- TweetCardLegacyBindingValuesInnerToJSON,
-} from './TweetCardLegacyBindingValuesInner';
+ TweetCardLegacyBindingValueFromJSON,
+ TweetCardLegacyBindingValueFromJSONTyped,
+ TweetCardLegacyBindingValueToJSON,
+} from './TweetCardLegacyBindingValue';
/**
*
@@ -28,10 +28,10 @@ import {
export interface TweetCardLegacy {
/**
*
- * @type {Array}
+ * @type {Array}
* @memberof TweetCardLegacy
*/
- bindingValues: Array;
+ bindingValues: Array;
/**
*
* @type {string}
@@ -68,7 +68,7 @@ export function TweetCardLegacyFromJSONTyped(json: any, ignoreDiscriminator: boo
}
return {
- 'bindingValues': ((json['binding_values'] as Array).map(TweetCardLegacyBindingValuesInnerFromJSON)),
+ 'bindingValues': ((json['binding_values'] as Array).map(TweetCardLegacyBindingValueFromJSON)),
'name': json['name'],
'url': json['url'],
};
@@ -83,7 +83,7 @@ export function TweetCardLegacyToJSON(value?: TweetCardLegacy | null): any {
}
return {
- 'binding_values': ((value.bindingValues as Array).map(TweetCardLegacyBindingValuesInnerToJSON)),
+ 'binding_values': ((value.bindingValues as Array).map(TweetCardLegacyBindingValueToJSON)),
'name': value.name,
'url': value.url,
};
diff --git a/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValue.ts b/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValue.ts
new file mode 100644
index 0000000..97b06a1
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValue.ts
@@ -0,0 +1,82 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+import type { TweetCardLegacyBindingValueData } from './TweetCardLegacyBindingValueData';
+import {
+ TweetCardLegacyBindingValueDataFromJSON,
+ TweetCardLegacyBindingValueDataFromJSONTyped,
+ TweetCardLegacyBindingValueDataToJSON,
+} from './TweetCardLegacyBindingValueData';
+
+/**
+ *
+ * @export
+ * @interface TweetCardLegacyBindingValue
+ */
+export interface TweetCardLegacyBindingValue {
+ /**
+ *
+ * @type {string}
+ * @memberof TweetCardLegacyBindingValue
+ */
+ key: string;
+ /**
+ *
+ * @type {TweetCardLegacyBindingValueData}
+ * @memberof TweetCardLegacyBindingValue
+ */
+ value: TweetCardLegacyBindingValueData;
+}
+
+/**
+ * Check if a given object implements the TweetCardLegacyBindingValue interface.
+ */
+export function instanceOfTweetCardLegacyBindingValue(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "key" in value;
+ isInstance = isInstance && "value" in value;
+
+ return isInstance;
+}
+
+export function TweetCardLegacyBindingValueFromJSON(json: any): TweetCardLegacyBindingValue {
+ return TweetCardLegacyBindingValueFromJSONTyped(json, false);
+}
+
+export function TweetCardLegacyBindingValueFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetCardLegacyBindingValue {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'key': json['key'],
+ 'value': TweetCardLegacyBindingValueDataFromJSON(json['value']),
+ };
+}
+
+export function TweetCardLegacyBindingValueToJSON(value?: TweetCardLegacyBindingValue | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'key': value.key,
+ 'value': TweetCardLegacyBindingValueDataToJSON(value.value),
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValuesInnerValue.ts b/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValueData.ts
similarity index 63%
rename from twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValuesInnerValue.ts
rename to twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValueData.ts
index 94e4762..79c0c72 100644
--- a/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValuesInnerValue.ts
+++ b/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValueData.ts
@@ -16,50 +16,50 @@ import { exists, mapValues } from '../runtime';
/**
*
* @export
- * @interface TweetCardLegacyBindingValuesInnerValue
+ * @interface TweetCardLegacyBindingValueData
*/
-export interface TweetCardLegacyBindingValuesInnerValue {
+export interface TweetCardLegacyBindingValueData {
/**
*
* @type {boolean}
- * @memberof TweetCardLegacyBindingValuesInnerValue
+ * @memberof TweetCardLegacyBindingValueData
*/
booleanValue?: boolean;
/**
*
* @type {string}
- * @memberof TweetCardLegacyBindingValuesInnerValue
+ * @memberof TweetCardLegacyBindingValueData
*/
scribeKey?: string;
/**
*
* @type {string}
- * @memberof TweetCardLegacyBindingValuesInnerValue
+ * @memberof TweetCardLegacyBindingValueData
*/
stringValue?: string;
/**
*
* @type {string}
- * @memberof TweetCardLegacyBindingValuesInnerValue
+ * @memberof TweetCardLegacyBindingValueData
*/
type: string;
}
/**
- * Check if a given object implements the TweetCardLegacyBindingValuesInnerValue interface.
+ * Check if a given object implements the TweetCardLegacyBindingValueData interface.
*/
-export function instanceOfTweetCardLegacyBindingValuesInnerValue(value: object): boolean {
+export function instanceOfTweetCardLegacyBindingValueData(value: object): boolean {
let isInstance = true;
isInstance = isInstance && "type" in value;
return isInstance;
}
-export function TweetCardLegacyBindingValuesInnerValueFromJSON(json: any): TweetCardLegacyBindingValuesInnerValue {
- return TweetCardLegacyBindingValuesInnerValueFromJSONTyped(json, false);
+export function TweetCardLegacyBindingValueDataFromJSON(json: any): TweetCardLegacyBindingValueData {
+ return TweetCardLegacyBindingValueDataFromJSONTyped(json, false);
}
-export function TweetCardLegacyBindingValuesInnerValueFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetCardLegacyBindingValuesInnerValue {
+export function TweetCardLegacyBindingValueDataFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetCardLegacyBindingValueData {
if ((json === undefined) || (json === null)) {
return json;
}
@@ -72,7 +72,7 @@ export function TweetCardLegacyBindingValuesInnerValueFromJSONTyped(json: any, i
};
}
-export function TweetCardLegacyBindingValuesInnerValueToJSON(value?: TweetCardLegacyBindingValuesInnerValue | null): any {
+export function TweetCardLegacyBindingValueDataToJSON(value?: TweetCardLegacyBindingValueData | null): any {
if (value === undefined) {
return undefined;
}
diff --git a/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValuesInner.ts b/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValuesInner.ts
deleted file mode 100644
index 0bc81aa..0000000
--- a/twitter-openapi-typescript-generated/src/models/TweetCardLegacyBindingValuesInner.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Twitter OpenAPI
- * Twitter OpenAPI(Swagger) specification
- *
- * The version of the OpenAPI document: 0.0.1
- * Contact: yuki@yuki0311.com
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-import { exists, mapValues } from '../runtime';
-import type { TweetCardLegacyBindingValuesInnerValue } from './TweetCardLegacyBindingValuesInnerValue';
-import {
- TweetCardLegacyBindingValuesInnerValueFromJSON,
- TweetCardLegacyBindingValuesInnerValueFromJSONTyped,
- TweetCardLegacyBindingValuesInnerValueToJSON,
-} from './TweetCardLegacyBindingValuesInnerValue';
-
-/**
- *
- * @export
- * @interface TweetCardLegacyBindingValuesInner
- */
-export interface TweetCardLegacyBindingValuesInner {
- /**
- *
- * @type {string}
- * @memberof TweetCardLegacyBindingValuesInner
- */
- key: string;
- /**
- *
- * @type {TweetCardLegacyBindingValuesInnerValue}
- * @memberof TweetCardLegacyBindingValuesInner
- */
- value: TweetCardLegacyBindingValuesInnerValue;
-}
-
-/**
- * Check if a given object implements the TweetCardLegacyBindingValuesInner interface.
- */
-export function instanceOfTweetCardLegacyBindingValuesInner(value: object): boolean {
- let isInstance = true;
- isInstance = isInstance && "key" in value;
- isInstance = isInstance && "value" in value;
-
- return isInstance;
-}
-
-export function TweetCardLegacyBindingValuesInnerFromJSON(json: any): TweetCardLegacyBindingValuesInner {
- return TweetCardLegacyBindingValuesInnerFromJSONTyped(json, false);
-}
-
-export function TweetCardLegacyBindingValuesInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetCardLegacyBindingValuesInner {
- if ((json === undefined) || (json === null)) {
- return json;
- }
- return {
-
- 'key': json['key'],
- 'value': TweetCardLegacyBindingValuesInnerValueFromJSON(json['value']),
- };
-}
-
-export function TweetCardLegacyBindingValuesInnerToJSON(value?: TweetCardLegacyBindingValuesInner | null): any {
- if (value === undefined) {
- return undefined;
- }
- if (value === null) {
- return null;
- }
- return {
-
- 'key': value.key,
- 'value': TweetCardLegacyBindingValuesInnerValueToJSON(value.value),
- };
-}
-
diff --git a/twitter-openapi-typescript-generated/src/models/TweetEditControl.ts b/twitter-openapi-typescript-generated/src/models/TweetEditControl.ts
index 8beeb04..9868a2d 100644
--- a/twitter-openapi-typescript-generated/src/models/TweetEditControl.ts
+++ b/twitter-openapi-typescript-generated/src/models/TweetEditControl.ts
@@ -13,12 +13,25 @@
*/
import { exists, mapValues } from '../runtime';
+import type { TweetEditControlInitial } from './TweetEditControlInitial';
+import {
+ TweetEditControlInitialFromJSON,
+ TweetEditControlInitialFromJSONTyped,
+ TweetEditControlInitialToJSON,
+} from './TweetEditControlInitial';
+
/**
*
* @export
* @interface TweetEditControl
*/
export interface TweetEditControl {
+ /**
+ *
+ * @type {TweetEditControlInitial}
+ * @memberof TweetEditControl
+ */
+ editControlInitial?: TweetEditControlInitial;
/**
*
* @type {Array}
@@ -37,6 +50,12 @@ export interface TweetEditControl {
* @memberof TweetEditControl
*/
editsRemaining?: string;
+ /**
+ *
+ * @type {string}
+ * @memberof TweetEditControl
+ */
+ initialTweetId?: string;
/**
*
* @type {boolean}
@@ -64,9 +83,11 @@ export function TweetEditControlFromJSONTyped(json: any, ignoreDiscriminator: bo
}
return {
+ 'editControlInitial': !exists(json, 'edit_control_initial') ? undefined : TweetEditControlInitialFromJSON(json['edit_control_initial']),
'editTweetIds': !exists(json, 'edit_tweet_ids') ? undefined : json['edit_tweet_ids'],
'editableUntilMsecs': !exists(json, 'editable_until_msecs') ? undefined : json['editable_until_msecs'],
'editsRemaining': !exists(json, 'edits_remaining') ? undefined : json['edits_remaining'],
+ 'initialTweetId': !exists(json, 'initial_tweet_id') ? undefined : json['initial_tweet_id'],
'isEditEligible': !exists(json, 'is_edit_eligible') ? undefined : json['is_edit_eligible'],
};
}
@@ -80,9 +101,11 @@ export function TweetEditControlToJSON(value?: TweetEditControl | null): any {
}
return {
+ 'edit_control_initial': TweetEditControlInitialToJSON(value.editControlInitial),
'edit_tweet_ids': value.editTweetIds,
'editable_until_msecs': value.editableUntilMsecs,
'edits_remaining': value.editsRemaining,
+ 'initial_tweet_id': value.initialTweetId,
'is_edit_eligible': value.isEditEligible,
};
}
diff --git a/twitter-openapi-typescript-generated/src/models/TweetEditControlInitial.ts b/twitter-openapi-typescript-generated/src/models/TweetEditControlInitial.ts
new file mode 100644
index 0000000..992c112
--- /dev/null
+++ b/twitter-openapi-typescript-generated/src/models/TweetEditControlInitial.ts
@@ -0,0 +1,93 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Twitter OpenAPI
+ * Twitter OpenAPI(Swagger) specification
+ *
+ * The version of the OpenAPI document: 0.0.1
+ * Contact: yuki@yuki0311.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+import { exists, mapValues } from '../runtime';
+/**
+ *
+ * @export
+ * @interface TweetEditControlInitial
+ */
+export interface TweetEditControlInitial {
+ /**
+ *
+ * @type {Array}
+ * @memberof TweetEditControlInitial
+ */
+ editTweetIds: Array;
+ /**
+ *
+ * @type {string}
+ * @memberof TweetEditControlInitial
+ */
+ editableUntilMsecs: string;
+ /**
+ *
+ * @type {string}
+ * @memberof TweetEditControlInitial
+ */
+ editsRemaining: string;
+ /**
+ *
+ * @type {boolean}
+ * @memberof TweetEditControlInitial
+ */
+ isEditEligible: boolean;
+}
+
+/**
+ * Check if a given object implements the TweetEditControlInitial interface.
+ */
+export function instanceOfTweetEditControlInitial(value: object): boolean {
+ let isInstance = true;
+ isInstance = isInstance && "editTweetIds" in value;
+ isInstance = isInstance && "editableUntilMsecs" in value;
+ isInstance = isInstance && "editsRemaining" in value;
+ isInstance = isInstance && "isEditEligible" in value;
+
+ return isInstance;
+}
+
+export function TweetEditControlInitialFromJSON(json: any): TweetEditControlInitial {
+ return TweetEditControlInitialFromJSONTyped(json, false);
+}
+
+export function TweetEditControlInitialFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetEditControlInitial {
+ if ((json === undefined) || (json === null)) {
+ return json;
+ }
+ return {
+
+ 'editTweetIds': json['edit_tweet_ids'],
+ 'editableUntilMsecs': json['editable_until_msecs'],
+ 'editsRemaining': json['edits_remaining'],
+ 'isEditEligible': json['is_edit_eligible'],
+ };
+}
+
+export function TweetEditControlInitialToJSON(value?: TweetEditControlInitial | null): any {
+ if (value === undefined) {
+ return undefined;
+ }
+ if (value === null) {
+ return null;
+ }
+ return {
+
+ 'edit_tweet_ids': value.editTweetIds,
+ 'editable_until_msecs': value.editableUntilMsecs,
+ 'edits_remaining': value.editsRemaining,
+ 'is_edit_eligible': value.isEditEligible,
+ };
+}
+
diff --git a/twitter-openapi-typescript-generated/src/models/TweetLegacy.ts b/twitter-openapi-typescript-generated/src/models/TweetLegacy.ts
index c2e9267..9e0e7a0 100644
--- a/twitter-openapi-typescript-generated/src/models/TweetLegacy.ts
+++ b/twitter-openapi-typescript-generated/src/models/TweetLegacy.ts
@@ -31,12 +31,12 @@ import {
ItemResultFromJSONTyped,
ItemResultToJSON,
} from './ItemResult';
-import type { TweetLegacySelfThread } from './TweetLegacySelfThread';
+import type { SelfThread } from './SelfThread';
import {
- TweetLegacySelfThreadFromJSON,
- TweetLegacySelfThreadFromJSONTyped,
- TweetLegacySelfThreadToJSON,
-} from './TweetLegacySelfThread';
+ SelfThreadFromJSON,
+ SelfThreadFromJSONTyped,
+ SelfThreadToJSON,
+} from './SelfThread';
/**
*
@@ -166,10 +166,10 @@ export interface TweetLegacy {
retweetedStatusResult?: ItemResult;
/**
*
- * @type {TweetLegacySelfThread}
+ * @type {SelfThread}
* @memberof TweetLegacy
*/
- selfThread?: TweetLegacySelfThread;
+ selfThread?: SelfThread;
/**
*
* @type {string}
@@ -234,7 +234,7 @@ export function TweetLegacyFromJSONTyped(json: any, ignoreDiscriminator: boolean
'retweetCount': json['retweet_count'],
'retweeted': json['retweeted'],
'retweetedStatusResult': !exists(json, 'retweeted_status_result') ? undefined : ItemResultFromJSON(json['retweeted_status_result']),
- 'selfThread': !exists(json, 'self_thread') ? undefined : TweetLegacySelfThreadFromJSON(json['self_thread']),
+ 'selfThread': !exists(json, 'self_thread') ? undefined : SelfThreadFromJSON(json['self_thread']),
'userIdStr': json['user_id_str'],
};
}
@@ -268,7 +268,7 @@ export function TweetLegacyToJSON(value?: TweetLegacy | null): any {
'retweet_count': value.retweetCount,
'retweeted': value.retweeted,
'retweeted_status_result': ItemResultToJSON(value.retweetedStatusResult),
- 'self_thread': TweetLegacySelfThreadToJSON(value.selfThread),
+ 'self_thread': SelfThreadToJSON(value.selfThread),
'user_id_str': value.userIdStr,
};
}
diff --git a/twitter-openapi-typescript-generated/src/models/TweetViews.ts b/twitter-openapi-typescript-generated/src/models/TweetView.ts
similarity index 55%
rename from twitter-openapi-typescript-generated/src/models/TweetViews.ts
rename to twitter-openapi-typescript-generated/src/models/TweetView.ts
index d7d801d..88c919c 100644
--- a/twitter-openapi-typescript-generated/src/models/TweetViews.ts
+++ b/twitter-openapi-typescript-generated/src/models/TweetView.ts
@@ -16,48 +16,59 @@ import { exists, mapValues } from '../runtime';
/**
*
* @export
- * @interface TweetViews
+ * @interface TweetView
*/
-export interface TweetViews {
+export interface TweetView {
/**
*
* @type {string}
- * @memberof TweetViews
+ * @memberof TweetView
*/
count?: string;
/**
*
* @type {string}
- * @memberof TweetViews
+ * @memberof TweetView
*/
- state?: string;
+ state: TweetViewStateEnum;
}
+
+/**
+ * @export
+ */
+export const TweetViewStateEnum = {
+ EnabledWithCount: 'EnabledWithCount'
+} as const;
+export type TweetViewStateEnum = typeof TweetViewStateEnum[keyof typeof TweetViewStateEnum];
+
+
/**
- * Check if a given object implements the TweetViews interface.
+ * Check if a given object implements the TweetView interface.
*/
-export function instanceOfTweetViews(value: object): boolean {
+export function instanceOfTweetView(value: object): boolean {
let isInstance = true;
+ isInstance = isInstance && "state" in value;
return isInstance;
}
-export function TweetViewsFromJSON(json: any): TweetViews {
- return TweetViewsFromJSONTyped(json, false);
+export function TweetViewFromJSON(json: any): TweetView {
+ return TweetViewFromJSONTyped(json, false);
}
-export function TweetViewsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetViews {
+export function TweetViewFromJSONTyped(json: any, ignoreDiscriminator: boolean): TweetView {
if ((json === undefined) || (json === null)) {
return json;
}
return {
'count': !exists(json, 'count') ? undefined : json['count'],
- 'state': !exists(json, 'state') ? undefined : json['state'],
+ 'state': json['state'],
};
}
-export function TweetViewsToJSON(value?: TweetViews | null): any {
+export function TweetViewToJSON(value?: TweetView | null): any {
if (value === undefined) {
return undefined;
}
diff --git a/twitter-openapi-typescript-generated/src/models/TypeName.ts b/twitter-openapi-typescript-generated/src/models/TypeName.ts
index 166b6c5..c1589f7 100644
--- a/twitter-openapi-typescript-generated/src/models/TypeName.ts
+++ b/twitter-openapi-typescript-generated/src/models/TypeName.ts
@@ -27,6 +27,7 @@ export const TypeName = {
TweetTombstone: 'TweetTombstone',
TimelinePrompt: 'TimelinePrompt',
TimelineMessagePrompt: 'TimelineMessagePrompt',
+ TweetUnavailable: 'TweetUnavailable',
Tweet: 'Tweet',
User: 'User',
UserUnavailable: 'UserUnavailable'
diff --git a/twitter-openapi-typescript-generated/src/models/index.ts b/twitter-openapi-typescript-generated/src/models/index.ts
index 5e59288..de7db4b 100644
--- a/twitter-openapi-typescript-generated/src/models/index.ts
+++ b/twitter-openapi-typescript-generated/src/models/index.ts
@@ -1,12 +1,16 @@
/* tslint:disable */
/* eslint-disable */
+export * from './AdditionalMediaInfo';
export * from './BookmarksResponse';
export * from './BookmarksResponseData';
export * from './BookmarksTimeline';
+export * from './Callback';
+export * from './ClientEventInfo';
export * from './CommunitiesActions';
export * from './ContentEntryType';
export * from './ContentItemType';
export * from './ContentUnion';
+export * from './CoverCta';
export * from './CreateRetweet';
export * from './CreateRetweetResponse';
export * from './CreateRetweetResponseData';
@@ -15,6 +19,7 @@ export * from './CreateTweet';
export * from './CreateTweetResponse';
export * from './CreateTweetResponseData';
export * from './CreateTweetResponseResult';
+export * from './CtaClientEventInfo';
export * from './CursorType';
export * from './DeleteRetweetResponse';
export * from './DeleteRetweetResponseData';
@@ -24,6 +29,7 @@ export * from './DeleteTweetResponseResult';
export * from './Entities';
export * from './ErrorExtensions';
export * from './Errors';
+export * from './ExtMediaAvailability';
export * from './ExtendedEntities';
export * from './FavoriteTweet';
export * from './FavoriteTweetResponseData';
@@ -58,7 +64,14 @@ export * from './ListTweetsTimelineData';
export * from './ListTweetsTimelineList';
export * from './Location';
export * from './Media';
+export * from './MediaExtended';
export * from './MediaOriginalInfo';
+export * from './MediaOriginalInfoFocusRect';
+export * from './MediaSize';
+export * from './MediaSizes';
+export * from './MediaStats';
+export * from './MediaVideoInfo';
+export * from './MediaVideoInfoVariant';
export * from './ModelError';
export * from './ModuleEntry';
export * from './ModuleItem';
@@ -90,13 +103,19 @@ export * from './SearchByRawQuery';
export * from './SearchTimeline';
export * from './SearchTimelineData';
export * from './SearchTimelineResponse';
+export * from './SelfThread';
export * from './Session';
export * from './SocialContext';
+export * from './Text';
+export * from './TextEntity';
+export * from './TextEntityRef';
export * from './Timeline';
export * from './TimelineAddEntries';
export * from './TimelineAddEntry';
export * from './TimelineAddToModule';
export * from './TimelineClearCache';
+export * from './TimelineCoverBehavior';
+export * from './TimelineHalfCover';
export * from './TimelineMessagePrompt';
export * from './TimelinePinEntry';
export * from './TimelinePrompt';
@@ -104,6 +123,7 @@ export * from './TimelineReplaceEntry';
export * from './TimelineResponse';
export * from './TimelineShowAlert';
export * from './TimelineShowAlertRichText';
+export * from './TimelineShowCover';
export * from './TimelineTerminateTimeline';
export * from './TimelineTimelineCursor';
export * from './TimelineTimelineItem';
@@ -115,23 +135,23 @@ export * from './Tracing';
export * from './Tweet';
export * from './TweetCard';
export * from './TweetCardLegacy';
-export * from './TweetCardLegacyBindingValuesInner';
-export * from './TweetCardLegacyBindingValuesInnerValue';
+export * from './TweetCardLegacyBindingValue';
+export * from './TweetCardLegacyBindingValueData';
export * from './TweetDetailResponse';
export * from './TweetDetailResponseData';
export * from './TweetEditControl';
+export * from './TweetEditControlInitial';
export * from './TweetEditPrespective';
export * from './TweetFavoritersResponse';
export * from './TweetFavoritersResponseData';
export * from './TweetLegacy';
-export * from './TweetLegacySelfThread';
export * from './TweetResultByRestIdData';
export * from './TweetResultByRestIdResponse';
export * from './TweetRetweetersResponse';
export * from './TweetRetweetersResponseData';
export * from './TweetTombstone';
export * from './TweetUnion';
-export * from './TweetViews';
+export * from './TweetView';
export * from './TweetWithVisibilityResults';
export * from './TypeName';
export * from './UnfavoriteTweet';
diff --git a/twitter-openapi-typescript-generated/tools/openapi-generator-config.yaml b/twitter-openapi-typescript-generated/tools/openapi-generator-config.yaml
index 72c681c..d2a47a5 100644
--- a/twitter-openapi-typescript-generated/tools/openapi-generator-config.yaml
+++ b/twitter-openapi-typescript-generated/tools/openapi-generator-config.yaml
@@ -1,7 +1,7 @@
inputSpec: twitter-openapi/dist/compatible/openapi-3.0.yaml
outputDir: .
npmName: twitter-openapi-typescript-generated
-npmVersion: 0.0.10
+npmVersion: 0.0.11
# withoutRuntimeChecks: false
legacyDiscriminatorBehavior: false
diff --git a/twitter-openapi-typescript-generated/tools/win/replace.py b/twitter-openapi-typescript-generated/tools/win/replace.py
index 250667a..85aac0d 100644
--- a/twitter-openapi-typescript-generated/tools/win/replace.py
+++ b/twitter-openapi-typescript-generated/tools/win/replace.py
@@ -24,7 +24,7 @@
package.update(
{
"author": "fa0311",
- "license": "LGPL-3.0-only",
+ "license": "custom license or AGPL-3.0-or-later",
"repository": {
"type": "git",
"url": "https://github.com/fa0311/twitter-openapi-typescript.git",
diff --git a/twitter-openapi-typescript-generated/twitter-openapi b/twitter-openapi-typescript-generated/twitter-openapi
index 591bddf..d4141e0 160000
--- a/twitter-openapi-typescript-generated/twitter-openapi
+++ b/twitter-openapi-typescript-generated/twitter-openapi
@@ -1 +1 @@
-Subproject commit 591bddfa4707b3c01a0b1ca081226e7c6ff230f8
+Subproject commit d4141e0eecda7871e87204b28d720adc0252d71c
diff --git a/twitter-openapi-typescript/LICENSE b/twitter-openapi-typescript/LICENSE
new file mode 100644
index 0000000..5f67b76
--- /dev/null
+++ b/twitter-openapi-typescript/LICENSE
@@ -0,0 +1,31 @@
+twitter-openapi License
+
+Copyright (c) 2023 yuki
+
+
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+The Software shall not be used for any activity that involves the following types
+of behavior, commonly known as spam:
+
+1. Sending unsolicited or excessive messages or posts.
+2. Aggressively following, unfollowing, or liking tweets to artificially boost engagement.
+3. Engaging in aggressive automated actions that disrupt or annoy other users.
+4. Distributing false or misleading information.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/twitter-openapi-typescript/LICENSE.AGPL b/twitter-openapi-typescript/LICENSE.AGPL
new file mode 100644
index 0000000..bae94e1
--- /dev/null
+++ b/twitter-openapi-typescript/LICENSE.AGPL
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
\ No newline at end of file
diff --git a/twitter-openapi-typescript/README.md b/twitter-openapi-typescript/README.md
index 9d89a57..8f3419f 100644
--- a/twitter-openapi-typescript/README.md
+++ b/twitter-openapi-typescript/README.md
@@ -36,3 +36,10 @@ npm i twitter-openapi-typescript
You should read the Test case.
+
+## License
+
+This project is dual licensed. You can choose one of the following licenses:
+
+- [Custom License](./LICENSE)
+- [GNU Affero General Public License v3.0](./LICENSE.AGPL)
diff --git a/twitter-openapi-typescript/package-lock.json b/twitter-openapi-typescript/package-lock.json
index 0f51425..009c0bd 100644
--- a/twitter-openapi-typescript/package-lock.json
+++ b/twitter-openapi-typescript/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "twitter-openapi-typescript",
- "version": "0.0.13",
+ "version": "0.0.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "twitter-openapi-typescript",
- "version": "0.0.13",
- "license": "AGPL-3.0-only",
+ "version": "0.0.15",
+ "license": "custom license or AGPL-3.0-or-later",
"dependencies": {
- "twitter-openapi-typescript-generated": "^0.0.10"
+ "twitter-openapi-typescript-generated": "^0.0.11"
},
"devDependencies": {
"@types/jest": "^28.1.8",
@@ -5858,9 +5858,9 @@
}
},
"node_modules/twitter-openapi-typescript-generated": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/twitter-openapi-typescript-generated/-/twitter-openapi-typescript-generated-0.0.10.tgz",
- "integrity": "sha512-kSZFklSprhU8Ll4Km8A8zCM6DEPC5uxha/LOz8pmFThsiJkor/nKM6pdzs8TYYU9hj//TRXDlTrdi+u6Loj2KQ=="
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/twitter-openapi-typescript-generated/-/twitter-openapi-typescript-generated-0.0.11.tgz",
+ "integrity": "sha512-MXq5Jg+1VQRcf8zGAvA+Yf8H0jlqHA9ytA85ZwZ0U2g7wQ9Q1b+zCZH4jFzTWL4FGbYYtzRTzH+4EO0jIQfrAw=="
},
"node_modules/type-check": {
"version": "0.4.0",
diff --git a/twitter-openapi-typescript/package.json b/twitter-openapi-typescript/package.json
index 3a764c3..787d01b 100644
--- a/twitter-openapi-typescript/package.json
+++ b/twitter-openapi-typescript/package.json
@@ -1,6 +1,6 @@
{
"name": "twitter-openapi-typescript",
- "version": "0.0.14",
+ "version": "0.0.15",
"description": "Implementation of Twitter internal API in TypeScript",
"scripts": {
"test": "jest",
@@ -14,7 +14,7 @@
"scraper"
],
"author": "fa0311",
- "license": "AGPL-3.0-only",
+ "license": "custom license or AGPL-3.0-or-later",
"repository": {
"type": "git",
"url": "https://github.com/fa0311/twitter-openapi-typescript.git"
@@ -22,7 +22,7 @@
"main": "./dist/src/index.js",
"typings": "./dist/src/index.d.ts",
"dependencies": {
- "twitter-openapi-typescript-generated": "^0.0.10"
+ "twitter-openapi-typescript-generated": "^0.0.11"
},
"devDependencies": {
"@types/jest": "^28.1.8",
diff --git a/twitter-openapi-typescript/src/utils/api.ts b/twitter-openapi-typescript/src/utils/api.ts
index 04c4934..4756957 100644
--- a/twitter-openapi-typescript/src/utils/api.ts
+++ b/twitter-openapi-typescript/src/utils/api.ts
@@ -74,7 +74,8 @@ export const buildTweetApiUtils = (args: buildTweetApiUtilsArgs): TweetApiUtilsD
const user = userOrNullConverter(tweet.core.userResults.result);
if (user == null) return undefined;
const quoted = tweet.quotedStatusResult;
- const retweeted = tweet.legacy.retweetedStatusResult;
+ const retweeted = tweet.legacy?.retweetedStatusResult;
+
const reply =
args.reply
?.map((e) => buildTweetApiUtils({ result: e.tweetResults, promotedMetadata: e.promotedMetadata }))
@@ -91,6 +92,7 @@ export const buildTweetApiUtils = (args: buildTweetApiUtilsArgs): TweetApiUtilsD
};
export const tweetResultsConverter = (tweetResults: i.ItemResult): i.Tweet | undefined => {
+ if (tweetResults.result == undefined) return undefined;
switch (tweetResults.result.typename) {
case i.TypeName.Tweet:
return tweetResults.result as i.Tweet;