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;