diff --git a/.eslintrc.yml b/.eslintrc.yml index 76a51765..97a8660b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -8,6 +8,8 @@ extends: [ eslint:recommended, 'plugin:@typescript-eslint/recommended' ] parser: '@typescript-eslint/parser' parserOptions: ecmaVersion: latest + project: + - tsconfig.json overrides: - files: @@ -30,6 +32,8 @@ rules: '@typescript-eslint/ban-types': 'off' 'tsdoc/syntax': 'warn' '@typescript-eslint/no-explicit-any': 'off' + '@typescript-eslint/consistent-type-imports': 'error' + '@typescript-eslint/consistent-type-exports': 'error' no-template-curly-in-string: error no-unreachable-loop: error diff --git a/src/Innertube.ts b/src/Innertube.ts index 4cc07263..64e28ecd 100644 --- a/src/Innertube.ts +++ b/src/Innertube.ts @@ -1,4 +1,5 @@ -import Session, { SessionOptions } from './core/Session.js'; +import type { SessionOptions } from './core/Session.js'; +import Session from './core/Session.js'; import NavigationEndpoint from './parser/classes/NavigationEndpoint.js'; import type Format from './parser/classes/misc/Format.js'; diff --git a/src/core/Player.ts b/src/core/Player.ts index 498b49f4..be1374ee 100644 --- a/src/core/Player.ts +++ b/src/core/Player.ts @@ -2,8 +2,8 @@ import { Platform, getRandomUserAgent, getStringBetweenStrings, PlayerError } fr import Constants from '../utils/Constants.js'; -import { ICache } from '../types/Cache.js'; -import { FetchFunction } from '../types/PlatformShim.js'; +import type { ICache } from '../types/Cache.js'; +import type { FetchFunction } from '../types/PlatformShim.js'; /** * Represents YouTube's player script. This is required to decipher signatures. diff --git a/src/core/Session.ts b/src/core/Session.ts index cb347c8e..e94359c6 100644 --- a/src/core/Session.ts +++ b/src/core/Session.ts @@ -4,11 +4,13 @@ import Actions from './Actions.js'; import Player from './Player.js'; import Proto from '../proto/index.js'; -import { ICache } from '../types/Cache.js'; -import { FetchFunction } from '../types/PlatformShim.js'; +import type { ICache } from '../types/Cache.js'; +import type { FetchFunction } from '../types/PlatformShim.js'; import HTTPClient from '../utils/HTTPClient.js'; -import { DeviceCategory, getRandomUserAgent, InnertubeError, Platform, SessionError } from '../utils/Utils.js'; -import OAuth, { Credentials, OAuthAuthErrorEventHandler, OAuthAuthEventHandler, OAuthAuthPendingEventHandler } from './OAuth.js'; +import type { DeviceCategory} from '../utils/Utils.js'; +import { getRandomUserAgent, InnertubeError, Platform, SessionError } from '../utils/Utils.js'; +import type { Credentials, OAuthAuthErrorEventHandler, OAuthAuthEventHandler, OAuthAuthPendingEventHandler } from './OAuth.js'; +import OAuth from './OAuth.js'; export enum ClientType { WEB = 'WEB', diff --git a/src/core/endpoints/like/DislikeEndpoint.ts b/src/core/endpoints/like/DislikeEndpoint.ts index ef92234e..8cd4c1ec 100644 --- a/src/core/endpoints/like/DislikeEndpoint.ts +++ b/src/core/endpoints/like/DislikeEndpoint.ts @@ -1,4 +1,4 @@ -import { IDislikeRequest, DislikeEndpointOptions } from '../../../types/index.js'; +import type { IDislikeRequest, DislikeEndpointOptions } from '../../../types/index.js'; export const PATH = '/like/dislike'; diff --git a/src/core/endpoints/like/RemoveLikeEndpoint.ts b/src/core/endpoints/like/RemoveLikeEndpoint.ts index 7852af07..34403ba5 100644 --- a/src/core/endpoints/like/RemoveLikeEndpoint.ts +++ b/src/core/endpoints/like/RemoveLikeEndpoint.ts @@ -1,4 +1,4 @@ -import { IRemoveLikeRequest, RemoveLikeEndpointOptions } from '../../../types/index.js'; +import type { IRemoveLikeRequest, RemoveLikeEndpointOptions } from '../../../types/index.js'; export const PATH = '/like/removelike'; diff --git a/src/core/mixins/MediaInfo.ts b/src/core/mixins/MediaInfo.ts index 9160112b..f5e8c0d2 100644 --- a/src/core/mixins/MediaInfo.ts +++ b/src/core/mixins/MediaInfo.ts @@ -1,9 +1,12 @@ -import Actions, { ApiResponse } from '../Actions.js'; +import type { ApiResponse } from '../Actions.js'; +import type Actions from '../Actions.js'; import Constants from '../../utils/Constants.js'; -import FormatUtils, { DownloadOptions, FormatFilter, FormatOptions, URLTransformer } from '../../utils/FormatUtils.js'; +import type { DownloadOptions, FormatFilter, FormatOptions, URLTransformer } from '../../utils/FormatUtils.js'; +import FormatUtils from '../../utils/FormatUtils.js'; import { InnertubeError } from '../../utils/Utils.js'; -import Format from '../../parser/classes/misc/Format.js'; -import Parser, { INextResponse, IPlayerResponse } from '../../parser/index.js'; +import type Format from '../../parser/classes/misc/Format.js'; +import type { INextResponse, IPlayerResponse } from '../../parser/index.js'; +import Parser from '../../parser/index.js'; export default class MediaInfo { #page: [IPlayerResponse, INextResponse?]; diff --git a/src/parser/classes/MusicDetailHeader.ts b/src/parser/classes/MusicDetailHeader.ts index 8124d4bf..02f763c7 100644 --- a/src/parser/classes/MusicDetailHeader.ts +++ b/src/parser/classes/MusicDetailHeader.ts @@ -1,8 +1,8 @@ import { YTNode, type ObservedArray } from '../helpers.js'; import Parser, { type RawNode } from '../index.js'; -import NavigationEndpoint from './NavigationEndpoint.js'; +import type NavigationEndpoint from './NavigationEndpoint.js'; import Text from './misc/Text.js'; -import TextRun from './misc/TextRun.js'; +import type TextRun from './misc/TextRun.js'; import Thumbnail from './misc/Thumbnail.js'; export default class MusicDetailHeader extends YTNode { diff --git a/src/parser/classes/MusicTwoRowItem.ts b/src/parser/classes/MusicTwoRowItem.ts index efdb1385..cf0177f0 100644 --- a/src/parser/classes/MusicTwoRowItem.ts +++ b/src/parser/classes/MusicTwoRowItem.ts @@ -6,7 +6,7 @@ import MusicItemThumbnailOverlay from './MusicItemThumbnailOverlay.js'; import NavigationEndpoint from './NavigationEndpoint.js'; import Menu from './menus/Menu.js'; import Text from './misc/Text.js'; -import TextRun from './misc/TextRun.js'; +import type TextRun from './misc/TextRun.js'; import Thumbnail from './misc/Thumbnail.js'; export default class MusicTwoRowItem extends YTNode { diff --git a/src/parser/classes/PlaylistPanelVideo.ts b/src/parser/classes/PlaylistPanelVideo.ts index b0d30bcc..31afbb8b 100644 --- a/src/parser/classes/PlaylistPanelVideo.ts +++ b/src/parser/classes/PlaylistPanelVideo.ts @@ -3,7 +3,7 @@ import { YTNode, type ObservedArray } from '../helpers.js'; import Parser, { type RawNode } from '../index.js'; import NavigationEndpoint from './NavigationEndpoint.js'; import Text from './misc/Text.js'; -import TextRun from './misc/TextRun.js'; +import type TextRun from './misc/TextRun.js'; import Thumbnail from './misc/Thumbnail.js'; export default class PlaylistPanelVideo extends YTNode { diff --git a/src/parser/classes/WatchCardSectionSequence.ts b/src/parser/classes/WatchCardSectionSequence.ts index 95c58b36..3ce16991 100644 --- a/src/parser/classes/WatchCardSectionSequence.ts +++ b/src/parser/classes/WatchCardSectionSequence.ts @@ -1,4 +1,5 @@ -import { ObservedArray, YTNode } from '../helpers.js'; +import type { ObservedArray} from '../helpers.js'; +import { YTNode } from '../helpers.js'; import Parser, { type RawNode } from '../index.js'; export default class WatchCardSectionSequence extends YTNode { diff --git a/src/parser/classes/comments/Comment.ts b/src/parser/classes/comments/Comment.ts index ab5b1540..a24118d3 100644 --- a/src/parser/classes/comments/Comment.ts +++ b/src/parser/classes/comments/Comment.ts @@ -13,7 +13,8 @@ import SponsorCommentBadge from './SponsorCommentBadge.js'; import Proto from '../../../proto/index.js'; import { InnertubeError } from '../../../utils/Utils.js'; -import { SuperParsedResult, YTNode } from '../../helpers.js'; +import type { SuperParsedResult} from '../../helpers.js'; +import { YTNode } from '../../helpers.js'; import type Actions from '../../../core/Actions.js'; import type { ApiResponse } from '../../../core/Actions.js'; diff --git a/src/parser/classes/comments/CommentsEntryPointHeader.ts b/src/parser/classes/comments/CommentsEntryPointHeader.ts index ac283d07..a191b023 100644 --- a/src/parser/classes/comments/CommentsEntryPointHeader.ts +++ b/src/parser/classes/comments/CommentsEntryPointHeader.ts @@ -1,7 +1,8 @@ import Text from '../misc/Text.js'; import Thumbnail from '../misc/Thumbnail.js'; import { YTNode } from '../../helpers.js'; -import { Parser, RawNode } from '../../index.js'; +import type { RawNode } from '../../index.js'; +import { Parser } from '../../index.js'; import CommentsEntryPointTeaser from './CommentsEntryPointTeaser.js'; export default class CommentsEntryPointHeader extends YTNode { diff --git a/src/parser/classes/menus/Menu.ts b/src/parser/classes/menus/Menu.ts index 1c980b9d..b338fb73 100644 --- a/src/parser/classes/menus/Menu.ts +++ b/src/parser/classes/menus/Menu.ts @@ -1,5 +1,6 @@ import Parser from '../../index.js'; -import { ObservedArray, YTNode } from '../../helpers.js'; +import type { ObservedArray} from '../../helpers.js'; +import { YTNode } from '../../helpers.js'; import type { RawNode } from '../../index.js'; export default class Menu extends YTNode { diff --git a/src/parser/classes/menus/MusicMultiSelectMenu.ts b/src/parser/classes/menus/MusicMultiSelectMenu.ts index 2d43c9cc..3d34d196 100644 --- a/src/parser/classes/menus/MusicMultiSelectMenu.ts +++ b/src/parser/classes/menus/MusicMultiSelectMenu.ts @@ -1,4 +1,5 @@ -import { ObservedArray, YTNode } from '../../helpers.js'; +import type { ObservedArray} from '../../helpers.js'; +import { YTNode } from '../../helpers.js'; import type { RawNode } from '../../index.js'; import Parser from '../../index.js'; import Text from '../misc/Text.js'; diff --git a/src/parser/classes/menus/SimpleMenuHeader.ts b/src/parser/classes/menus/SimpleMenuHeader.ts index 73145c70..0c5ce879 100644 --- a/src/parser/classes/menus/SimpleMenuHeader.ts +++ b/src/parser/classes/menus/SimpleMenuHeader.ts @@ -1,4 +1,5 @@ -import { SuperParsedResult, YTNode } from '../../helpers.js'; +import type { SuperParsedResult} from '../../helpers.js'; +import { YTNode } from '../../helpers.js'; import type { RawNode } from '../../index.js'; import Parser from '../../index.js'; import Text from '../misc/Text.js'; diff --git a/src/parser/classes/misc/Author.ts b/src/parser/classes/misc/Author.ts index 2cb4b504..e4b61d31 100644 --- a/src/parser/classes/misc/Author.ts +++ b/src/parser/classes/misc/Author.ts @@ -1,9 +1,10 @@ import Constants from '../../../utils/Constants.js'; -import { YTNode, observe, type ObservedArray } from '../../helpers.js'; +import type { YTNode} from '../../helpers.js'; +import { observe, type ObservedArray } from '../../helpers.js'; import Parser, { type RawNode } from '../../index.js'; -import NavigationEndpoint from '../NavigationEndpoint.js'; +import type NavigationEndpoint from '../NavigationEndpoint.js'; import Text from './Text.js'; -import TextRun from './TextRun.js'; +import type TextRun from './TextRun.js'; import Thumbnail from './Thumbnail.js'; export default class Author { diff --git a/src/parser/classes/misc/Format.ts b/src/parser/classes/misc/Format.ts index 40b29b79..10f9021e 100644 --- a/src/parser/classes/misc/Format.ts +++ b/src/parser/classes/misc/Format.ts @@ -1,4 +1,4 @@ -import Player from '../../../core/Player.js'; +import type Player from '../../../core/Player.js'; import { InnertubeError } from '../../../utils/Utils.js'; import type { RawNode } from '../../index.js'; diff --git a/src/parser/generator.ts b/src/parser/generator.ts index 8156cb80..3dcf81dc 100644 --- a/src/parser/generator.ts +++ b/src/parser/generator.ts @@ -4,7 +4,8 @@ import Author from './classes/misc/Author.js'; import Text from './classes/misc/Text.js'; import Thumbnail from './classes/misc/Thumbnail.js'; import NavigationEndpoint from './classes/NavigationEndpoint.js'; -import { YTNode, YTNodeConstructor } from './helpers.js'; +import type { YTNodeConstructor } from './helpers.js'; +import { YTNode } from './helpers.js'; import Parser from './parser.js'; export type MiscInferenceType = { diff --git a/src/parser/parser.ts b/src/parser/parser.ts index d9f049bc..58802ca2 100644 --- a/src/parser/parser.ts +++ b/src/parser/parser.ts @@ -20,7 +20,8 @@ import NavigationEndpoint from './classes/NavigationEndpoint.js'; import Thumbnail from './classes/misc/Thumbnail.js'; import { InnertubeError, ParsingError, Platform } from '../utils/Utils.js'; -import { Memo, observe, ObservedArray, SuperParsedResult, YTNode, YTNodeConstructor } from './helpers.js'; +import type { ObservedArray, YTNodeConstructor } from './helpers.js'; +import { Memo, observe, SuperParsedResult, YTNode } from './helpers.js'; import * as YTNodes from './nodes.js'; import { YTNodeGenerator } from './generator.js'; diff --git a/src/parser/types/ParsedResponse.ts b/src/parser/types/ParsedResponse.ts index 709efd71..eedc1a24 100644 --- a/src/parser/types/ParsedResponse.ts +++ b/src/parser/types/ParsedResponse.ts @@ -1,4 +1,4 @@ -import { Memo, ObservedArray, SuperParsedResult, YTNode } from '../helpers.js'; +import type { Memo, ObservedArray, SuperParsedResult, YTNode } from '../helpers.js'; import type { ReloadContinuationItemsCommand, AppendContinuationItemsAction, Continuation, GridContinuation, diff --git a/src/parser/youtube/AccountInfo.ts b/src/parser/youtube/AccountInfo.ts index 30dd7b44..a3ef9323 100644 --- a/src/parser/youtube/AccountInfo.ts +++ b/src/parser/youtube/AccountInfo.ts @@ -3,8 +3,8 @@ import type { ApiResponse } from '../../core/Actions.js'; import type { IParsedResponse } from '../types/ParsedResponse.js'; import AccountSectionList from '../classes/AccountSectionList.js'; -import AccountItemSection from '../classes/AccountItemSection.js'; -import AccountChannel from '../classes/AccountChannel.js'; +import type AccountItemSection from '../classes/AccountItemSection.js'; +import type AccountChannel from '../classes/AccountChannel.js'; import { InnertubeError } from '../../utils/Utils.js'; diff --git a/src/parser/youtube/Comments.ts b/src/parser/youtube/Comments.ts index c91b0a36..aa67f5af 100644 --- a/src/parser/youtube/Comments.ts +++ b/src/parser/youtube/Comments.ts @@ -2,7 +2,8 @@ import Parser from '../index.js'; import type Actions from '../../core/Actions.js'; import type { ApiResponse } from '../../core/Actions.js'; import { InnertubeError } from '../../utils/Utils.js'; -import { observe, ObservedArray } from '../helpers.js'; +import type { ObservedArray } from '../helpers.js'; +import { observe } from '../helpers.js'; import type { INextResponse } from '../types/ParsedResponse.js'; import CommentsHeader from '../classes/comments/CommentsHeader.js'; diff --git a/src/parser/youtube/Guide.ts b/src/parser/youtube/Guide.ts index 4e261bce..46d89078 100644 --- a/src/parser/youtube/Guide.ts +++ b/src/parser/youtube/Guide.ts @@ -1,6 +1,7 @@ import type { IGuideResponse } from '../types/ParsedResponse.js'; -import { IRawResponse, Parser } from '../index.js'; -import { ObservedArray } from '../helpers.js'; +import type { IRawResponse} from '../index.js'; +import { Parser } from '../index.js'; +import type { ObservedArray } from '../helpers.js'; import GuideSection from '../classes/GuideSection.js'; import GuideSubscriptionsSection from '../classes/GuideSubscriptionsSection.js'; diff --git a/src/parser/youtube/HomeFeed.ts b/src/parser/youtube/HomeFeed.ts index ff3966a6..9d0cd60a 100644 --- a/src/parser/youtube/HomeFeed.ts +++ b/src/parser/youtube/HomeFeed.ts @@ -1,6 +1,6 @@ import type Actions from '../../core/Actions.js'; import FilterableFeed from '../../core/mixins/FilterableFeed.js'; -import ChipCloudChip from '../classes/ChipCloudChip.js'; +import type ChipCloudChip from '../classes/ChipCloudChip.js'; import FeedTabbedHeader from '../classes/FeedTabbedHeader.js'; import RichGrid from '../classes/RichGrid.js'; diff --git a/src/parser/youtube/ItemMenu.ts b/src/parser/youtube/ItemMenu.ts index 9b4435a7..405232b5 100644 --- a/src/parser/youtube/ItemMenu.ts +++ b/src/parser/youtube/ItemMenu.ts @@ -1,7 +1,7 @@ import Button from '../classes/Button.js'; import Menu from '../classes/menus/Menu.js'; import MenuServiceItem from '../classes/menus/MenuServiceItem.js'; -import NavigationEndpoint from '../classes/NavigationEndpoint.js'; +import type NavigationEndpoint from '../classes/NavigationEndpoint.js'; import type Actions from '../../core/Actions.js'; import { InnertubeError } from '../../utils/Utils.js'; diff --git a/src/parser/youtube/Library.ts b/src/parser/youtube/Library.ts index ffccf517..93540c8b 100644 --- a/src/parser/youtube/Library.ts +++ b/src/parser/youtube/Library.ts @@ -12,7 +12,7 @@ import ProfileColumnStats from '../classes/ProfileColumnStats.js'; import ProfileColumnUserInfo from '../classes/ProfileColumnUserInfo.js'; import type { IBrowseResponse } from '../types/ParsedResponse.js'; -import { ApiResponse } from '../../core/Actions.js'; +import type { ApiResponse } from '../../core/Actions.js'; class Library extends Feed { profile: { diff --git a/src/parser/youtube/LiveChat.ts b/src/parser/youtube/LiveChat.ts index 89958212..7b9dde7b 100644 --- a/src/parser/youtube/LiveChat.ts +++ b/src/parser/youtube/LiveChat.ts @@ -1,15 +1,15 @@ import EventEmitter from '../../utils/EventEmitterLike.js'; import Parser, { LiveChatContinuation } from '../index.js'; -import VideoInfo from './VideoInfo.js'; +import type VideoInfo from './VideoInfo.js'; import SmoothedQueue from './SmoothedQueue.js'; import AddChatItemAction from '../classes/livechat/AddChatItemAction.js'; -import AddLiveChatTickerItemAction from '../classes/livechat/AddLiveChatTickerItemAction.js'; -import MarkChatItemAsDeletedAction from '../classes/livechat/MarkChatItemAsDeletedAction.js'; -import MarkChatItemsByAuthorAsDeletedAction from '../classes/livechat/MarkChatItemsByAuthorAsDeletedAction.js'; -import ReplaceChatItemAction from '../classes/livechat/ReplaceChatItemAction.js'; -import ReplayChatItemAction from '../classes/livechat/ReplayChatItemAction.js'; -import ShowLiveChatActionPanelAction from '../classes/livechat/ShowLiveChatActionPanelAction.js'; +import type AddLiveChatTickerItemAction from '../classes/livechat/AddLiveChatTickerItemAction.js'; +import type MarkChatItemAsDeletedAction from '../classes/livechat/MarkChatItemAsDeletedAction.js'; +import type MarkChatItemsByAuthorAsDeletedAction from '../classes/livechat/MarkChatItemsByAuthorAsDeletedAction.js'; +import type ReplaceChatItemAction from '../classes/livechat/ReplaceChatItemAction.js'; +import type ReplayChatItemAction from '../classes/livechat/ReplayChatItemAction.js'; +import type ShowLiveChatActionPanelAction from '../classes/livechat/ShowLiveChatActionPanelAction.js'; import UpdateDateTextAction from '../classes/livechat/UpdateDateTextAction.js'; import UpdateDescriptionAction from '../classes/livechat/UpdateDescriptionAction.js'; @@ -17,21 +17,21 @@ import UpdateTitleAction from '../classes/livechat/UpdateTitleAction.js'; import UpdateToggleButtonTextAction from '../classes/livechat/UpdateToggleButtonTextAction.js'; import UpdateViewershipAction from '../classes/livechat/UpdateViewershipAction.js'; -import AddBannerToLiveChatCommand from '../classes/livechat/AddBannerToLiveChatCommand.js'; -import RemoveBannerForLiveChatCommand from '../classes/livechat/RemoveBannerForLiveChatCommand.js'; -import ShowLiveChatTooltipCommand from '../classes/livechat/ShowLiveChatTooltipCommand.js'; +import type AddBannerToLiveChatCommand from '../classes/livechat/AddBannerToLiveChatCommand.js'; +import type RemoveBannerForLiveChatCommand from '../classes/livechat/RemoveBannerForLiveChatCommand.js'; +import type ShowLiveChatTooltipCommand from '../classes/livechat/ShowLiveChatTooltipCommand.js'; import Proto from '../../proto/index.js'; import { InnertubeError, Platform } from '../../utils/Utils.js'; import type { ObservedArray, YTNode } from '../helpers.js'; -import Button from '../classes/Button.js'; -import LiveChatAutoModMessage from '../classes/livechat/items/LiveChatAutoModMessage.js'; -import LiveChatMembershipItem from '../classes/livechat/items/LiveChatMembershipItem.js'; -import LiveChatPaidMessage from '../classes/livechat/items/LiveChatPaidMessage.js'; -import LiveChatPaidSticker from '../classes/livechat/items/LiveChatPaidSticker.js'; -import LiveChatTextMessage from '../classes/livechat/items/LiveChatTextMessage.js'; -import LiveChatViewerEngagementMessage from '../classes/livechat/items/LiveChatViewerEngagementMessage.js'; +import type Button from '../classes/Button.js'; +import type LiveChatAutoModMessage from '../classes/livechat/items/LiveChatAutoModMessage.js'; +import type LiveChatMembershipItem from '../classes/livechat/items/LiveChatMembershipItem.js'; +import type LiveChatPaidMessage from '../classes/livechat/items/LiveChatPaidMessage.js'; +import type LiveChatPaidSticker from '../classes/livechat/items/LiveChatPaidSticker.js'; +import type LiveChatTextMessage from '../classes/livechat/items/LiveChatTextMessage.js'; +import type LiveChatViewerEngagementMessage from '../classes/livechat/items/LiveChatViewerEngagementMessage.js'; import ItemMenu from './ItemMenu.js'; import type Actions from '../../core/Actions.js'; diff --git a/src/parser/youtube/Playlist.ts b/src/parser/youtube/Playlist.ts index c813c17e..c6838e0b 100644 --- a/src/parser/youtube/Playlist.ts +++ b/src/parser/youtube/Playlist.ts @@ -1,7 +1,7 @@ import Feed from '../../core/mixins/Feed.js'; import Message from '../classes/Message.js'; -import Thumbnail from '../classes/misc/Thumbnail.js'; -import NavigationEndpoint from '../classes/NavigationEndpoint.js'; +import type Thumbnail from '../classes/misc/Thumbnail.js'; +import type NavigationEndpoint from '../classes/NavigationEndpoint.js'; import PlaylistCustomThumbnail from '../classes/PlaylistCustomThumbnail.js'; import PlaylistHeader from '../classes/PlaylistHeader.js'; import PlaylistMetadata from '../classes/PlaylistMetadata.js'; @@ -11,7 +11,7 @@ import PlaylistVideoThumbnail from '../classes/PlaylistVideoThumbnail.js'; import VideoOwner from '../classes/VideoOwner.js'; import { InnertubeError } from '../../utils/Utils.js'; -import { ObservedArray } from '../helpers.js'; +import type { ObservedArray } from '../helpers.js'; import type Actions from '../../core/Actions.js'; import type { ApiResponse } from '../../core/Actions.js'; diff --git a/src/parser/youtube/SmoothedQueue.ts b/src/parser/youtube/SmoothedQueue.ts index 61b4ac33..4fdf6772 100644 --- a/src/parser/youtube/SmoothedQueue.ts +++ b/src/parser/youtube/SmoothedQueue.ts @@ -1,4 +1,4 @@ -import { YTNode } from '../helpers.js'; +import type { YTNode } from '../helpers.js'; /** * Flattens the given queue. diff --git a/src/parser/youtube/VideoInfo.ts b/src/parser/youtube/VideoInfo.ts index 2deb7f6e..255a21be 100644 --- a/src/parser/youtube/VideoInfo.ts +++ b/src/parser/youtube/VideoInfo.ts @@ -17,7 +17,7 @@ import TwoColumnWatchNextResults from '../classes/TwoColumnWatchNextResults.js'; import VideoPrimaryInfo from '../classes/VideoPrimaryInfo.js'; import VideoSecondaryInfo from '../classes/VideoSecondaryInfo.js'; import LiveChatWrap from './LiveChat.js'; -import NavigationEndpoint from '../classes/NavigationEndpoint.js'; +import type NavigationEndpoint from '../classes/NavigationEndpoint.js'; import PlayerLegacyDesktopYpcTrailer from '../classes/PlayerLegacyDesktopYpcTrailer.js'; import type CardCollection from '../classes/CardCollection.js'; @@ -29,7 +29,7 @@ import type PlayerStoryboardSpec from '../classes/PlayerStoryboardSpec.js'; import type Actions from '../../core/Actions.js'; import type { ApiResponse } from '../../core/Actions.js'; -import { ObservedArray, YTNode } from '../helpers.js'; +import type { ObservedArray, YTNode } from '../helpers.js'; import { InnertubeError } from '../../utils/Utils.js'; import { MediaInfo } from '../../core/mixins/index.js'; diff --git a/src/parser/ytkids/VideoInfo.ts b/src/parser/ytkids/VideoInfo.ts index f04a457c..f34a79e8 100644 --- a/src/parser/ytkids/VideoInfo.ts +++ b/src/parser/ytkids/VideoInfo.ts @@ -1,5 +1,5 @@ import ItemSection from '../classes/ItemSection.js'; -import NavigationEndpoint from '../classes/NavigationEndpoint.js'; +import type NavigationEndpoint from '../classes/NavigationEndpoint.js'; import PlayerOverlay from '../classes/PlayerOverlay.js'; import SlimVideoMetadata from '../classes/SlimVideoMetadata.js'; import TwoColumnWatchNextResults from '../classes/TwoColumnWatchNextResults.js'; diff --git a/src/parser/ytmusic/Library.ts b/src/parser/ytmusic/Library.ts index 31b839aa..77961937 100644 --- a/src/parser/ytmusic/Library.ts +++ b/src/parser/ytmusic/Library.ts @@ -12,7 +12,7 @@ import ChipCloud from '../classes/ChipCloud.js'; import ChipCloudChip from '../classes/ChipCloudChip.js'; import MusicMultiSelectMenuItem from '../classes/menus/MusicMultiSelectMenuItem.js'; import MusicSortFilterButton from '../classes/MusicSortFilterButton.js'; -import MusicMenuItemDivider from '../classes/menus/MusicMenuItemDivider.js'; +import type MusicMenuItemDivider from '../classes/menus/MusicMenuItemDivider.js'; import { InnertubeError } from '../../utils/Utils.js'; import type { ObservedArray } from '../helpers.js'; diff --git a/src/parser/ytmusic/Playlist.ts b/src/parser/ytmusic/Playlist.ts index 78c14c54..f7a934b7 100644 --- a/src/parser/ytmusic/Playlist.ts +++ b/src/parser/ytmusic/Playlist.ts @@ -4,7 +4,7 @@ import MusicCarouselShelf from '../classes/MusicCarouselShelf.js'; import MusicDetailHeader from '../classes/MusicDetailHeader.js'; import MusicEditablePlaylistDetailHeader from '../classes/MusicEditablePlaylistDetailHeader.js'; import MusicPlaylistShelf from '../classes/MusicPlaylistShelf.js'; -import MusicResponsiveListItem from '../classes/MusicResponsiveListItem.js'; +import type MusicResponsiveListItem from '../classes/MusicResponsiveListItem.js'; import MusicShelf from '../classes/MusicShelf.js'; import SectionList from '../classes/SectionList.js'; diff --git a/src/parser/ytmusic/Search.ts b/src/parser/ytmusic/Search.ts index 7a6cd865..0c911977 100644 --- a/src/parser/ytmusic/Search.ts +++ b/src/parser/ytmusic/Search.ts @@ -9,7 +9,7 @@ import ItemSection from '../classes/ItemSection.js'; import Message from '../classes/Message.js'; import MusicCardShelf from '../classes/MusicCardShelf.js'; import MusicHeader from '../classes/MusicHeader.js'; -import MusicResponsiveListItem from '../classes/MusicResponsiveListItem.js'; +import type MusicResponsiveListItem from '../classes/MusicResponsiveListItem.js'; import MusicShelf from '../classes/MusicShelf.js'; import SectionList from '../classes/SectionList.js'; import ShowingResultsFor from '../classes/ShowingResultsFor.js'; diff --git a/src/parser/ytmusic/TrackInfo.ts b/src/parser/ytmusic/TrackInfo.ts index d2f26a4a..169ff21e 100644 --- a/src/parser/ytmusic/TrackInfo.ts +++ b/src/parser/ytmusic/TrackInfo.ts @@ -5,15 +5,15 @@ import Constants from '../../utils/Constants.js'; import { InnertubeError } from '../../utils/Utils.js'; import AutomixPreviewVideo from '../classes/AutomixPreviewVideo.js'; -import Endscreen from '../classes/Endscreen.js'; +import type Endscreen from '../classes/Endscreen.js'; import Message from '../classes/Message.js'; import MicroformatData from '../classes/MicroformatData.js'; -import MusicCarouselShelf from '../classes/MusicCarouselShelf.js'; +import type MusicCarouselShelf from '../classes/MusicCarouselShelf.js'; import MusicDescriptionShelf from '../classes/MusicDescriptionShelf.js'; -import MusicQueue from '../classes/MusicQueue.js'; +import type MusicQueue from '../classes/MusicQueue.js'; import PlayerOverlay from '../classes/PlayerOverlay.js'; import PlaylistPanel from '../classes/PlaylistPanel.js'; -import RichGrid from '../classes/RichGrid.js'; +import type RichGrid from '../classes/RichGrid.js'; import SectionList from '../classes/SectionList.js'; import Tab from '../classes/Tab.js'; import WatchNextTabbedResults from '../classes/WatchNextTabbedResults.js'; diff --git a/src/platform/jsruntime/jinter.ts b/src/platform/jsruntime/jinter.ts index 6f3fb7f9..77d8553f 100644 --- a/src/platform/jsruntime/jinter.ts +++ b/src/platform/jsruntime/jinter.ts @@ -1,5 +1,5 @@ import { Jinter } from 'jintr'; -import { VMPrimative } from '../../types/PlatformShim.js'; +import type { VMPrimative } from '../../types/PlatformShim.js'; export default function evaluate(code: string, env: Record) { const runtime = new Jinter(code); diff --git a/src/platform/node.ts b/src/platform/node.ts index 9018c8cd..0454b516 100644 --- a/src/platform/node.ts +++ b/src/platform/node.ts @@ -8,10 +8,10 @@ import { FormData, File } from 'undici'; -import { ICache } from '../types/Cache.js'; +import type { ICache } from '../types/Cache.js'; import { Platform } from '../utils/Utils.js'; import crypto from 'crypto'; -import { FetchFunction } from '../types/PlatformShim.js'; +import type { FetchFunction } from '../types/PlatformShim.js'; import path from 'path'; import os from 'os'; import fs from 'fs/promises'; diff --git a/src/platform/web.ts b/src/platform/web.ts index e43d66be..a050da31 100644 --- a/src/platform/web.ts +++ b/src/platform/web.ts @@ -1,5 +1,5 @@ // Deno Platform Support -import { ICache } from '../types/Cache.js'; +import type { ICache } from '../types/Cache.js'; import { Platform } from '../utils/Utils.js'; import sha1Hash from './polyfills/web-crypto.js'; import package_json from '../../package.json' assert { type: 'json' }; diff --git a/src/proto/index.ts b/src/proto/index.ts index bd570b7d..cd8d0af1 100644 --- a/src/proto/index.ts +++ b/src/proto/index.ts @@ -1,11 +1,11 @@ import { CLIENTS } from '../utils/Constants.js'; import { base64ToU8, u8ToBase64 } from '../utils/Utils.js'; -import { UpdateVideoMetadataOptions } from '../types/index.js'; +import type { UpdateVideoMetadataOptions } from '../types/index.js'; import * as VisitorData from './generated/messages/youtube/VisitorData.js'; import * as ChannelAnalytics from './generated/messages/youtube/ChannelAnalytics.js'; import * as SearchFilter from './generated/messages/youtube/SearchFilter.js'; -import * as SearchFilter_Filters from './generated/messages/youtube/(SearchFilter)/Filters.js'; +import type * as SearchFilter_Filters from './generated/messages/youtube/(SearchFilter)/Filters.js'; import * as MusicSearchFilter from './generated/messages/youtube/MusicSearchFilter.js'; import * as LiveMessageParams from './generated/messages/youtube/LiveMessageParams.js'; import * as GetCommentsSectionParams from './generated/messages/youtube/GetCommentsSectionParams.js'; diff --git a/src/types/PlatformShim.ts b/src/types/PlatformShim.ts index 901053f2..19f7b91d 100644 --- a/src/types/PlatformShim.ts +++ b/src/types/PlatformShim.ts @@ -1,4 +1,4 @@ -import { ICacheConstructor } from './Cache.js'; +import type { ICacheConstructor } from './Cache.js'; export type Runtime = 'deno' | 'node' | 'browser' | 'unknown'; diff --git a/src/utils/Cache.ts b/src/utils/Cache.ts index 0c48bc6a..e7b782b4 100644 --- a/src/utils/Cache.ts +++ b/src/utils/Cache.ts @@ -1,4 +1,4 @@ -import { ICache } from '../types/Cache.js'; +import type { ICache } from '../types/Cache.js'; import { Platform } from './Utils.js'; export default class UniversalCache implements ICache { diff --git a/src/utils/FormatUtils.ts b/src/utils/FormatUtils.ts index d9fe0c75..1dd49964 100644 --- a/src/utils/FormatUtils.ts +++ b/src/utils/FormatUtils.ts @@ -1,5 +1,5 @@ -import Player from '../core/Player.js'; -import Actions from '../core/Actions.js'; +import type Player from '../core/Player.js'; +import type Actions from '../core/Actions.js'; import type Format from '../parser/classes/misc/Format.js'; import type AudioOnlyPlayability from '../parser/classes/AudioOnlyPlayability.js'; diff --git a/src/utils/HTTPClient.ts b/src/utils/HTTPClient.ts index 482d2b1b..57a13aba 100644 --- a/src/utils/HTTPClient.ts +++ b/src/utils/HTTPClient.ts @@ -1,5 +1,6 @@ -import Session, { Context } from '../core/Session.js'; -import { FetchFunction } from '../types/PlatformShim.js'; +import type { Context } from '../core/Session.js'; +import type Session from '../core/Session.js'; +import type { FetchFunction } from '../types/PlatformShim.js'; import Constants from './Constants.js'; import { Platform, diff --git a/src/utils/Utils.ts b/src/utils/Utils.ts index bca22a6e..84f388ae 100644 --- a/src/utils/Utils.ts +++ b/src/utils/Utils.ts @@ -1,6 +1,7 @@ import { Memo } from '../parser/helpers.js'; -import { EmojiRun, TextRun } from '../parser/misc.js'; -import PlatformShim, { FetchFunction } from '../types/PlatformShim.js'; +import type { EmojiRun, TextRun } from '../parser/misc.js'; +import type { FetchFunction } from '../types/PlatformShim.js'; +import type PlatformShim from '../types/PlatformShim.js'; import userAgents from './user-agents.js'; export class Platform {