fix(parser): export YTNodes individually so they can be used as types

Related: #321
This commit is contained in:
LuanRT
2023-02-26 18:56:04 -03:00
parent f933cb45bc
commit 200632f374
4 changed files with 329 additions and 9 deletions

View File

@@ -19,7 +19,8 @@ glob.sync('../src/parser/classes/**/*.{js,ts}', { cwd: __dirname })
import_list.push(`import { default as ${class_name} } from './classes/${file}.js';`);
misc_exports.push(class_name);
} else {
import_list.push(`import { default as ${import_name} } from './classes/${file}.js';`);
import_list.push(`import { default as ${import_name} } from './classes/${file}.js';
export { ${import_name} };`);
json.push(import_name);
}
});
@@ -32,7 +33,7 @@ import { YTNodeConstructor } from './helpers.js';
${import_list.join('\n')}
export const YTNodes = {
const map: Record<string, YTNodeConstructor> = {
${json.join(',\n ')}
};
@@ -40,8 +41,6 @@ export const Misc = {
${misc_exports.join(',\n ')}
};
const map: Record<string, YTNodeConstructor> = YTNodes;
/**
* @param name - Name of the node to be parsed
*/

View File

@@ -1,10 +1,11 @@
export { default as Parser } from './parser.js';
export * from './parser.js';
export * from './types/index.js';
export { YTNodes, Misc } from '../parser/map.js';
export { Misc } from '../parser/map.js';
export * as YTNodes from '../parser/map.js';
export * as YT from './youtube/index.js';
export * as YTMusic from './ytmusic/index.js';
export * as YTKids from './ytkids/index.js';
export * as Helpers from './helpers.js';
import Parser from './parser.js';
export default Parser;

View File

@@ -3,181 +3,357 @@
import { YTNodeConstructor } from './helpers.js';
import { default as AccountChannel } from './classes/AccountChannel.js';
export { AccountChannel };
import { default as AccountItemSection } from './classes/AccountItemSection.js';
export { AccountItemSection };
import { default as AccountItemSectionHeader } from './classes/AccountItemSectionHeader.js';
export { AccountItemSectionHeader };
import { default as AccountSectionList } from './classes/AccountSectionList.js';
export { AccountSectionList };
import { default as AppendContinuationItemsAction } from './classes/actions/AppendContinuationItemsAction.js';
export { AppendContinuationItemsAction };
import { default as OpenPopupAction } from './classes/actions/OpenPopupAction.js';
export { OpenPopupAction };
import { default as Alert } from './classes/Alert.js';
export { Alert };
import { default as AnalyticsMainAppKeyMetrics } from './classes/analytics/AnalyticsMainAppKeyMetrics.js';
export { AnalyticsMainAppKeyMetrics };
import { default as AnalyticsRoot } from './classes/analytics/AnalyticsRoot.js';
export { AnalyticsRoot };
import { default as AnalyticsShortsCarouselCard } from './classes/analytics/AnalyticsShortsCarouselCard.js';
export { AnalyticsShortsCarouselCard };
import { default as AnalyticsVideo } from './classes/analytics/AnalyticsVideo.js';
export { AnalyticsVideo };
import { default as AnalyticsVodCarouselCard } from './classes/analytics/AnalyticsVodCarouselCard.js';
export { AnalyticsVodCarouselCard };
import { default as CtaGoToCreatorStudio } from './classes/analytics/CtaGoToCreatorStudio.js';
export { CtaGoToCreatorStudio };
import { default as DataModelSection } from './classes/analytics/DataModelSection.js';
export { DataModelSection };
import { default as StatRow } from './classes/analytics/StatRow.js';
export { StatRow };
import { default as AudioOnlyPlayability } from './classes/AudioOnlyPlayability.js';
export { AudioOnlyPlayability };
import { default as AutomixPreviewVideo } from './classes/AutomixPreviewVideo.js';
export { AutomixPreviewVideo };
import { default as BackstageImage } from './classes/BackstageImage.js';
export { BackstageImage };
import { default as BackstagePost } from './classes/BackstagePost.js';
export { BackstagePost };
import { default as BackstagePostThread } from './classes/BackstagePostThread.js';
export { BackstagePostThread };
import { default as BrowseFeedActions } from './classes/BrowseFeedActions.js';
export { BrowseFeedActions };
import { default as BrowserMediaSession } from './classes/BrowserMediaSession.js';
export { BrowserMediaSession };
import { default as Button } from './classes/Button.js';
export { Button };
import { default as C4TabbedHeader } from './classes/C4TabbedHeader.js';
export { C4TabbedHeader };
import { default as CallToActionButton } from './classes/CallToActionButton.js';
export { CallToActionButton };
import { default as Card } from './classes/Card.js';
export { Card };
import { default as CardCollection } from './classes/CardCollection.js';
export { CardCollection };
import { default as CarouselHeader } from './classes/CarouselHeader.js';
export { CarouselHeader };
import { default as CarouselItem } from './classes/CarouselItem.js';
export { CarouselItem };
import { default as Channel } from './classes/Channel.js';
export { Channel };
import { default as ChannelAboutFullMetadata } from './classes/ChannelAboutFullMetadata.js';
export { ChannelAboutFullMetadata };
import { default as ChannelAgeGate } from './classes/ChannelAgeGate.js';
export { ChannelAgeGate };
import { default as ChannelFeaturedContent } from './classes/ChannelFeaturedContent.js';
export { ChannelFeaturedContent };
import { default as ChannelHeaderLinks } from './classes/ChannelHeaderLinks.js';
export { ChannelHeaderLinks };
import { default as ChannelMetadata } from './classes/ChannelMetadata.js';
export { ChannelMetadata };
import { default as ChannelMobileHeader } from './classes/ChannelMobileHeader.js';
export { ChannelMobileHeader };
import { default as ChannelOptions } from './classes/ChannelOptions.js';
export { ChannelOptions };
import { default as ChannelSubMenu } from './classes/ChannelSubMenu.js';
export { ChannelSubMenu };
import { default as ChannelThumbnailWithLink } from './classes/ChannelThumbnailWithLink.js';
export { ChannelThumbnailWithLink };
import { default as ChannelVideoPlayer } from './classes/ChannelVideoPlayer.js';
export { ChannelVideoPlayer };
import { default as Chapter } from './classes/Chapter.js';
export { Chapter };
import { default as ChildVideo } from './classes/ChildVideo.js';
export { ChildVideo };
import { default as ChipCloud } from './classes/ChipCloud.js';
export { ChipCloud };
import { default as ChipCloudChip } from './classes/ChipCloudChip.js';
export { ChipCloudChip };
import { default as CollaboratorInfoCardContent } from './classes/CollaboratorInfoCardContent.js';
export { CollaboratorInfoCardContent };
import { default as CollageHeroImage } from './classes/CollageHeroImage.js';
export { CollageHeroImage };
import { default as AuthorCommentBadge } from './classes/comments/AuthorCommentBadge.js';
export { AuthorCommentBadge };
import { default as Comment } from './classes/comments/Comment.js';
export { Comment };
import { default as CommentActionButtons } from './classes/comments/CommentActionButtons.js';
export { CommentActionButtons };
import { default as CommentDialog } from './classes/comments/CommentDialog.js';
export { CommentDialog };
import { default as CommentReplies } from './classes/comments/CommentReplies.js';
export { CommentReplies };
import { default as CommentReplyDialog } from './classes/comments/CommentReplyDialog.js';
export { CommentReplyDialog };
import { default as CommentsEntryPointHeader } from './classes/comments/CommentsEntryPointHeader.js';
export { CommentsEntryPointHeader };
import { default as CommentsHeader } from './classes/comments/CommentsHeader.js';
export { CommentsHeader };
import { default as CommentSimplebox } from './classes/comments/CommentSimplebox.js';
export { CommentSimplebox };
import { default as CommentThread } from './classes/comments/CommentThread.js';
export { CommentThread };
import { default as CreatorHeart } from './classes/comments/CreatorHeart.js';
export { CreatorHeart };
import { default as EmojiPicker } from './classes/comments/EmojiPicker.js';
export { EmojiPicker };
import { default as PdgCommentChip } from './classes/comments/PdgCommentChip.js';
export { PdgCommentChip };
import { default as SponsorCommentBadge } from './classes/comments/SponsorCommentBadge.js';
export { SponsorCommentBadge };
import { default as CompactChannel } from './classes/CompactChannel.js';
export { CompactChannel };
import { default as CompactLink } from './classes/CompactLink.js';
export { CompactLink };
import { default as CompactMix } from './classes/CompactMix.js';
export { CompactMix };
import { default as CompactPlaylist } from './classes/CompactPlaylist.js';
export { CompactPlaylist };
import { default as CompactStation } from './classes/CompactStation.js';
export { CompactStation };
import { default as CompactVideo } from './classes/CompactVideo.js';
export { CompactVideo };
import { default as ConfirmDialog } from './classes/ConfirmDialog.js';
export { ConfirmDialog };
import { default as ContinuationItem } from './classes/ContinuationItem.js';
export { ContinuationItem };
import { default as CopyLink } from './classes/CopyLink.js';
export { CopyLink };
import { default as CreatePlaylistDialog } from './classes/CreatePlaylistDialog.js';
export { CreatePlaylistDialog };
import { default as DecoratedPlayerBar } from './classes/DecoratedPlayerBar.js';
export { DecoratedPlayerBar };
import { default as DefaultPromoPanel } from './classes/DefaultPromoPanel.js';
export { DefaultPromoPanel };
import { default as DidYouMean } from './classes/DidYouMean.js';
export { DidYouMean };
import { default as DownloadButton } from './classes/DownloadButton.js';
export { DownloadButton };
import { default as Dropdown } from './classes/Dropdown.js';
export { Dropdown };
import { default as DropdownItem } from './classes/DropdownItem.js';
export { DropdownItem };
import { default as Element } from './classes/Element.js';
export { Element };
import { default as EmergencyOnebox } from './classes/EmergencyOnebox.js';
export { EmergencyOnebox };
import { default as EmojiPickerCategory } from './classes/EmojiPickerCategory.js';
export { EmojiPickerCategory };
import { default as EmojiPickerCategoryButton } from './classes/EmojiPickerCategoryButton.js';
export { EmojiPickerCategoryButton };
import { default as EmojiPickerUpsellCategory } from './classes/EmojiPickerUpsellCategory.js';
export { EmojiPickerUpsellCategory };
import { default as Endscreen } from './classes/Endscreen.js';
export { Endscreen };
import { default as EndscreenElement } from './classes/EndscreenElement.js';
export { EndscreenElement };
import { default as EndScreenPlaylist } from './classes/EndScreenPlaylist.js';
export { EndScreenPlaylist };
import { default as EndScreenVideo } from './classes/EndScreenVideo.js';
export { EndScreenVideo };
import { default as ExpandableMetadata } from './classes/ExpandableMetadata.js';
export { ExpandableMetadata };
import { default as ExpandableTab } from './classes/ExpandableTab.js';
export { ExpandableTab };
import { default as ExpandedShelfContents } from './classes/ExpandedShelfContents.js';
export { ExpandedShelfContents };
import { default as FeedFilterChipBar } from './classes/FeedFilterChipBar.js';
export { FeedFilterChipBar };
import { default as FeedTabbedHeader } from './classes/FeedTabbedHeader.js';
export { FeedTabbedHeader };
import { default as GameCard } from './classes/GameCard.js';
export { GameCard };
import { default as GameDetails } from './classes/GameDetails.js';
export { GameDetails };
import { default as Grid } from './classes/Grid.js';
export { Grid };
import { default as GridChannel } from './classes/GridChannel.js';
export { GridChannel };
import { default as GridHeader } from './classes/GridHeader.js';
export { GridHeader };
import { default as GridPlaylist } from './classes/GridPlaylist.js';
export { GridPlaylist };
import { default as GridVideo } from './classes/GridVideo.js';
export { GridVideo };
import { default as HashtagHeader } from './classes/HashtagHeader.js';
export { HashtagHeader };
import { default as Heatmap } from './classes/Heatmap.js';
export { Heatmap };
import { default as HeatMarker } from './classes/HeatMarker.js';
export { HeatMarker };
import { default as HighlightsCarousel } from './classes/HighlightsCarousel.js';
export { HighlightsCarousel };
import { default as HistorySuggestion } from './classes/HistorySuggestion.js';
export { HistorySuggestion };
import { default as HorizontalCardList } from './classes/HorizontalCardList.js';
export { HorizontalCardList };
import { default as HorizontalList } from './classes/HorizontalList.js';
export { HorizontalList };
import { default as IconLink } from './classes/IconLink.js';
export { IconLink };
import { default as InteractiveTabbedHeader } from './classes/InteractiveTabbedHeader.js';
export { InteractiveTabbedHeader };
import { default as ItemSection } from './classes/ItemSection.js';
export { ItemSection };
import { default as ItemSectionHeader } from './classes/ItemSectionHeader.js';
export { ItemSectionHeader };
import { default as ItemSectionTab } from './classes/ItemSectionTab.js';
export { ItemSectionTab };
import { default as ItemSectionTabbedHeader } from './classes/ItemSectionTabbedHeader.js';
export { ItemSectionTabbedHeader };
import { default as LikeButton } from './classes/LikeButton.js';
export { LikeButton };
import { default as LiveChat } from './classes/LiveChat.js';
export { LiveChat };
import { default as AddBannerToLiveChatCommand } from './classes/livechat/AddBannerToLiveChatCommand.js';
export { AddBannerToLiveChatCommand };
import { default as AddChatItemAction } from './classes/livechat/AddChatItemAction.js';
export { AddChatItemAction };
import { default as AddLiveChatTickerItemAction } from './classes/livechat/AddLiveChatTickerItemAction.js';
export { AddLiveChatTickerItemAction };
import { default as DimChatItemAction } from './classes/livechat/DimChatItemAction.js';
export { DimChatItemAction };
import { default as LiveChatAutoModMessage } from './classes/livechat/items/LiveChatAutoModMessage.js';
export { LiveChatAutoModMessage };
import { default as LiveChatBanner } from './classes/livechat/items/LiveChatBanner.js';
export { LiveChatBanner };
import { default as LiveChatBannerHeader } from './classes/livechat/items/LiveChatBannerHeader.js';
export { LiveChatBannerHeader };
import { default as LiveChatBannerPoll } from './classes/livechat/items/LiveChatBannerPoll.js';
export { LiveChatBannerPoll };
import { default as LiveChatMembershipItem } from './classes/livechat/items/LiveChatMembershipItem.js';
export { LiveChatMembershipItem };
import { default as LiveChatPaidMessage } from './classes/livechat/items/LiveChatPaidMessage.js';
export { LiveChatPaidMessage };
import { default as LiveChatPaidSticker } from './classes/livechat/items/LiveChatPaidSticker.js';
export { LiveChatPaidSticker };
import { default as LiveChatPlaceholderItem } from './classes/livechat/items/LiveChatPlaceholderItem.js';
export { LiveChatPlaceholderItem };
import { default as LiveChatProductItem } from './classes/livechat/items/LiveChatProductItem.js';
export { LiveChatProductItem };
import { default as LiveChatRestrictedParticipation } from './classes/livechat/items/LiveChatRestrictedParticipation.js';
export { LiveChatRestrictedParticipation };
import { default as LiveChatTextMessage } from './classes/livechat/items/LiveChatTextMessage.js';
export { LiveChatTextMessage };
import { default as LiveChatTickerPaidMessageItem } from './classes/livechat/items/LiveChatTickerPaidMessageItem.js';
export { LiveChatTickerPaidMessageItem };
import { default as LiveChatTickerPaidStickerItem } from './classes/livechat/items/LiveChatTickerPaidStickerItem.js';
export { LiveChatTickerPaidStickerItem };
import { default as LiveChatTickerSponsorItem } from './classes/livechat/items/LiveChatTickerSponsorItem.js';
export { LiveChatTickerSponsorItem };
import { default as LiveChatViewerEngagementMessage } from './classes/livechat/items/LiveChatViewerEngagementMessage.js';
export { LiveChatViewerEngagementMessage };
import { default as PollHeader } from './classes/livechat/items/PollHeader.js';
export { PollHeader };
import { default as LiveChatActionPanel } from './classes/livechat/LiveChatActionPanel.js';
export { LiveChatActionPanel };
import { default as MarkChatItemAsDeletedAction } from './classes/livechat/MarkChatItemAsDeletedAction.js';
export { MarkChatItemAsDeletedAction };
import { default as MarkChatItemsByAuthorAsDeletedAction } from './classes/livechat/MarkChatItemsByAuthorAsDeletedAction.js';
export { MarkChatItemsByAuthorAsDeletedAction };
import { default as RemoveBannerForLiveChatCommand } from './classes/livechat/RemoveBannerForLiveChatCommand.js';
export { RemoveBannerForLiveChatCommand };
import { default as RemoveChatItemAction } from './classes/livechat/RemoveChatItemAction.js';
export { RemoveChatItemAction };
import { default as RemoveChatItemByAuthorAction } from './classes/livechat/RemoveChatItemByAuthorAction.js';
export { RemoveChatItemByAuthorAction };
import { default as ReplaceChatItemAction } from './classes/livechat/ReplaceChatItemAction.js';
export { ReplaceChatItemAction };
import { default as ReplayChatItemAction } from './classes/livechat/ReplayChatItemAction.js';
export { ReplayChatItemAction };
import { default as ShowLiveChatActionPanelAction } from './classes/livechat/ShowLiveChatActionPanelAction.js';
export { ShowLiveChatActionPanelAction };
import { default as ShowLiveChatDialogAction } from './classes/livechat/ShowLiveChatDialogAction.js';
export { ShowLiveChatDialogAction };
import { default as ShowLiveChatTooltipCommand } from './classes/livechat/ShowLiveChatTooltipCommand.js';
export { ShowLiveChatTooltipCommand };
import { default as UpdateDateTextAction } from './classes/livechat/UpdateDateTextAction.js';
export { UpdateDateTextAction };
import { default as UpdateDescriptionAction } from './classes/livechat/UpdateDescriptionAction.js';
export { UpdateDescriptionAction };
import { default as UpdateLiveChatPollAction } from './classes/livechat/UpdateLiveChatPollAction.js';
export { UpdateLiveChatPollAction };
import { default as UpdateTitleAction } from './classes/livechat/UpdateTitleAction.js';
export { UpdateTitleAction };
import { default as UpdateToggleButtonTextAction } from './classes/livechat/UpdateToggleButtonTextAction.js';
export { UpdateToggleButtonTextAction };
import { default as UpdateViewershipAction } from './classes/livechat/UpdateViewershipAction.js';
export { UpdateViewershipAction };
import { default as LiveChatAuthorBadge } from './classes/LiveChatAuthorBadge.js';
export { LiveChatAuthorBadge };
import { default as LiveChatDialog } from './classes/LiveChatDialog.js';
export { LiveChatDialog };
import { default as LiveChatHeader } from './classes/LiveChatHeader.js';
export { LiveChatHeader };
import { default as LiveChatItemList } from './classes/LiveChatItemList.js';
export { LiveChatItemList };
import { default as LiveChatMessageInput } from './classes/LiveChatMessageInput.js';
export { LiveChatMessageInput };
import { default as LiveChatParticipant } from './classes/LiveChatParticipant.js';
export { LiveChatParticipant };
import { default as LiveChatParticipantsList } from './classes/LiveChatParticipantsList.js';
export { LiveChatParticipantsList };
import { default as MacroMarkersListItem } from './classes/MacroMarkersListItem.js';
export { MacroMarkersListItem };
import { default as Menu } from './classes/menus/Menu.js';
export { Menu };
import { default as MenuNavigationItem } from './classes/menus/MenuNavigationItem.js';
export { MenuNavigationItem };
import { default as MenuServiceItem } from './classes/menus/MenuServiceItem.js';
export { MenuServiceItem };
import { default as MenuServiceItemDownload } from './classes/menus/MenuServiceItemDownload.js';
export { MenuServiceItemDownload };
import { default as MultiPageMenu } from './classes/menus/MultiPageMenu.js';
export { MultiPageMenu };
import { default as MultiPageMenuNotificationSection } from './classes/menus/MultiPageMenuNotificationSection.js';
export { MultiPageMenuNotificationSection };
import { default as MusicMenuItemDivider } from './classes/menus/MusicMenuItemDivider.js';
export { MusicMenuItemDivider };
import { default as MusicMultiSelectMenu } from './classes/menus/MusicMultiSelectMenu.js';
export { MusicMultiSelectMenu };
import { default as MusicMultiSelectMenuItem } from './classes/menus/MusicMultiSelectMenuItem.js';
export { MusicMultiSelectMenuItem };
import { default as SimpleMenuHeader } from './classes/menus/SimpleMenuHeader.js';
export { SimpleMenuHeader };
import { default as MerchandiseItem } from './classes/MerchandiseItem.js';
export { MerchandiseItem };
import { default as MerchandiseShelf } from './classes/MerchandiseShelf.js';
export { MerchandiseShelf };
import { default as Message } from './classes/Message.js';
export { Message };
import { default as MetadataBadge } from './classes/MetadataBadge.js';
export { MetadataBadge };
import { default as MetadataRow } from './classes/MetadataRow.js';
export { MetadataRow };
import { default as MetadataRowContainer } from './classes/MetadataRowContainer.js';
export { MetadataRowContainer };
import { default as MetadataRowHeader } from './classes/MetadataRowHeader.js';
export { MetadataRowHeader };
import { default as MetadataScreen } from './classes/MetadataScreen.js';
export { MetadataScreen };
import { default as MicroformatData } from './classes/MicroformatData.js';
export { MicroformatData };
import { default as Author } from './classes/misc/Author.js';
import { default as ChildElement } from './classes/misc/ChildElement.js';
import { default as EmojiRun } from './classes/misc/EmojiRun.js';
@@ -189,151 +365,295 @@ import { default as TextRun } from './classes/misc/TextRun.js';
import { default as Thumbnail } from './classes/misc/Thumbnail.js';
import { default as VideoDetails } from './classes/misc/VideoDetails.js';
import { default as Mix } from './classes/Mix.js';
export { Mix };
import { default as Movie } from './classes/Movie.js';
export { Movie };
import { default as MovingThumbnail } from './classes/MovingThumbnail.js';
export { MovingThumbnail };
import { default as MultiMarkersPlayerBar } from './classes/MultiMarkersPlayerBar.js';
export { MultiMarkersPlayerBar };
import { default as MusicCarouselShelf } from './classes/MusicCarouselShelf.js';
export { MusicCarouselShelf };
import { default as MusicCarouselShelfBasicHeader } from './classes/MusicCarouselShelfBasicHeader.js';
export { MusicCarouselShelfBasicHeader };
import { default as MusicDescriptionShelf } from './classes/MusicDescriptionShelf.js';
export { MusicDescriptionShelf };
import { default as MusicDetailHeader } from './classes/MusicDetailHeader.js';
export { MusicDetailHeader };
import { default as MusicDownloadStateBadge } from './classes/MusicDownloadStateBadge.js';
export { MusicDownloadStateBadge };
import { default as MusicEditablePlaylistDetailHeader } from './classes/MusicEditablePlaylistDetailHeader.js';
export { MusicEditablePlaylistDetailHeader };
import { default as MusicElementHeader } from './classes/MusicElementHeader.js';
export { MusicElementHeader };
import { default as MusicHeader } from './classes/MusicHeader.js';
export { MusicHeader };
import { default as MusicImmersiveHeader } from './classes/MusicImmersiveHeader.js';
export { MusicImmersiveHeader };
import { default as MusicInlineBadge } from './classes/MusicInlineBadge.js';
export { MusicInlineBadge };
import { default as MusicItemThumbnailOverlay } from './classes/MusicItemThumbnailOverlay.js';
export { MusicItemThumbnailOverlay };
import { default as MusicLargeCardItemCarousel } from './classes/MusicLargeCardItemCarousel.js';
export { MusicLargeCardItemCarousel };
import { default as MusicNavigationButton } from './classes/MusicNavigationButton.js';
export { MusicNavigationButton };
import { default as MusicPlayButton } from './classes/MusicPlayButton.js';
export { MusicPlayButton };
import { default as MusicPlaylistShelf } from './classes/MusicPlaylistShelf.js';
export { MusicPlaylistShelf };
import { default as MusicQueue } from './classes/MusicQueue.js';
export { MusicQueue };
import { default as MusicResponsiveListItem } from './classes/MusicResponsiveListItem.js';
export { MusicResponsiveListItem };
import { default as MusicResponsiveListItemFixedColumn } from './classes/MusicResponsiveListItemFixedColumn.js';
export { MusicResponsiveListItemFixedColumn };
import { default as MusicResponsiveListItemFlexColumn } from './classes/MusicResponsiveListItemFlexColumn.js';
export { MusicResponsiveListItemFlexColumn };
import { default as MusicShelf } from './classes/MusicShelf.js';
export { MusicShelf };
import { default as MusicSideAlignedItem } from './classes/MusicSideAlignedItem.js';
export { MusicSideAlignedItem };
import { default as MusicSortFilterButton } from './classes/MusicSortFilterButton.js';
export { MusicSortFilterButton };
import { default as MusicThumbnail } from './classes/MusicThumbnail.js';
export { MusicThumbnail };
import { default as MusicTwoRowItem } from './classes/MusicTwoRowItem.js';
export { MusicTwoRowItem };
import { default as MusicVisualHeader } from './classes/MusicVisualHeader.js';
export { MusicVisualHeader };
import { default as NavigationEndpoint } from './classes/NavigationEndpoint.js';
export { NavigationEndpoint };
import { default as Notification } from './classes/Notification.js';
export { Notification };
import { default as PageIntroduction } from './classes/PageIntroduction.js';
export { PageIntroduction };
import { default as PlayerAnnotationsExpanded } from './classes/PlayerAnnotationsExpanded.js';
export { PlayerAnnotationsExpanded };
import { default as PlayerCaptionsTracklist } from './classes/PlayerCaptionsTracklist.js';
export { PlayerCaptionsTracklist };
import { default as PlayerErrorMessage } from './classes/PlayerErrorMessage.js';
export { PlayerErrorMessage };
import { default as PlayerLiveStoryboardSpec } from './classes/PlayerLiveStoryboardSpec.js';
export { PlayerLiveStoryboardSpec };
import { default as PlayerMicroformat } from './classes/PlayerMicroformat.js';
export { PlayerMicroformat };
import { default as PlayerOverlay } from './classes/PlayerOverlay.js';
export { PlayerOverlay };
import { default as PlayerOverlayAutoplay } from './classes/PlayerOverlayAutoplay.js';
export { PlayerOverlayAutoplay };
import { default as PlayerStoryboardSpec } from './classes/PlayerStoryboardSpec.js';
export { PlayerStoryboardSpec };
import { default as Playlist } from './classes/Playlist.js';
export { Playlist };
import { default as PlaylistCustomThumbnail } from './classes/PlaylistCustomThumbnail.js';
export { PlaylistCustomThumbnail };
import { default as PlaylistHeader } from './classes/PlaylistHeader.js';
export { PlaylistHeader };
import { default as PlaylistInfoCardContent } from './classes/PlaylistInfoCardContent.js';
export { PlaylistInfoCardContent };
import { default as PlaylistMetadata } from './classes/PlaylistMetadata.js';
export { PlaylistMetadata };
import { default as PlaylistPanel } from './classes/PlaylistPanel.js';
export { PlaylistPanel };
import { default as PlaylistPanelVideo } from './classes/PlaylistPanelVideo.js';
export { PlaylistPanelVideo };
import { default as PlaylistPanelVideoWrapper } from './classes/PlaylistPanelVideoWrapper.js';
export { PlaylistPanelVideoWrapper };
import { default as PlaylistSidebar } from './classes/PlaylistSidebar.js';
export { PlaylistSidebar };
import { default as PlaylistSidebarPrimaryInfo } from './classes/PlaylistSidebarPrimaryInfo.js';
export { PlaylistSidebarPrimaryInfo };
import { default as PlaylistSidebarSecondaryInfo } from './classes/PlaylistSidebarSecondaryInfo.js';
export { PlaylistSidebarSecondaryInfo };
import { default as PlaylistVideo } from './classes/PlaylistVideo.js';
export { PlaylistVideo };
import { default as PlaylistVideoList } from './classes/PlaylistVideoList.js';
export { PlaylistVideoList };
import { default as PlaylistVideoThumbnail } from './classes/PlaylistVideoThumbnail.js';
export { PlaylistVideoThumbnail };
import { default as Poll } from './classes/Poll.js';
export { Poll };
import { default as Post } from './classes/Post.js';
export { Post };
import { default as PostMultiImage } from './classes/PostMultiImage.js';
export { PostMultiImage };
import { default as ProfileColumn } from './classes/ProfileColumn.js';
export { ProfileColumn };
import { default as ProfileColumnStats } from './classes/ProfileColumnStats.js';
export { ProfileColumnStats };
import { default as ProfileColumnStatsEntry } from './classes/ProfileColumnStatsEntry.js';
export { ProfileColumnStatsEntry };
import { default as ProfileColumnUserInfo } from './classes/ProfileColumnUserInfo.js';
export { ProfileColumnUserInfo };
import { default as RecognitionShelf } from './classes/RecognitionShelf.js';
export { RecognitionShelf };
import { default as ReelItem } from './classes/ReelItem.js';
export { ReelItem };
import { default as ReelShelf } from './classes/ReelShelf.js';
export { ReelShelf };
import { default as RelatedChipCloud } from './classes/RelatedChipCloud.js';
export { RelatedChipCloud };
import { default as RichGrid } from './classes/RichGrid.js';
export { RichGrid };
import { default as RichItem } from './classes/RichItem.js';
export { RichItem };
import { default as RichListHeader } from './classes/RichListHeader.js';
export { RichListHeader };
import { default as RichSection } from './classes/RichSection.js';
export { RichSection };
import { default as RichShelf } from './classes/RichShelf.js';
export { RichShelf };
import { default as SearchBox } from './classes/SearchBox.js';
export { SearchBox };
import { default as SearchRefinementCard } from './classes/SearchRefinementCard.js';
export { SearchRefinementCard };
import { default as SearchSuggestion } from './classes/SearchSuggestion.js';
export { SearchSuggestion };
import { default as SearchSuggestionsSection } from './classes/SearchSuggestionsSection.js';
export { SearchSuggestionsSection };
import { default as SecondarySearchContainer } from './classes/SecondarySearchContainer.js';
export { SecondarySearchContainer };
import { default as SectionList } from './classes/SectionList.js';
export { SectionList };
import { default as SegmentedLikeDislikeButton } from './classes/SegmentedLikeDislikeButton.js';
export { SegmentedLikeDislikeButton };
import { default as SettingBoolean } from './classes/SettingBoolean.js';
export { SettingBoolean };
import { default as SettingsCheckbox } from './classes/SettingsCheckbox.js';
export { SettingsCheckbox };
import { default as SettingsOptions } from './classes/SettingsOptions.js';
export { SettingsOptions };
import { default as SettingsSidebar } from './classes/SettingsSidebar.js';
export { SettingsSidebar };
import { default as SettingsSwitch } from './classes/SettingsSwitch.js';
export { SettingsSwitch };
import { default as Shelf } from './classes/Shelf.js';
export { Shelf };
import { default as ShowingResultsFor } from './classes/ShowingResultsFor.js';
export { ShowingResultsFor };
import { default as SimpleCardContent } from './classes/SimpleCardContent.js';
export { SimpleCardContent };
import { default as SimpleCardTeaser } from './classes/SimpleCardTeaser.js';
export { SimpleCardTeaser };
import { default as SimpleTextSection } from './classes/SimpleTextSection.js';
export { SimpleTextSection };
import { default as SingleActionEmergencySupport } from './classes/SingleActionEmergencySupport.js';
export { SingleActionEmergencySupport };
import { default as SingleColumnBrowseResults } from './classes/SingleColumnBrowseResults.js';
export { SingleColumnBrowseResults };
import { default as SingleColumnMusicWatchNextResults } from './classes/SingleColumnMusicWatchNextResults.js';
export { SingleColumnMusicWatchNextResults };
import { default as SingleHeroImage } from './classes/SingleHeroImage.js';
export { SingleHeroImage };
import { default as SlimOwner } from './classes/SlimOwner.js';
export { SlimOwner };
import { default as SlimVideoMetadata } from './classes/SlimVideoMetadata.js';
export { SlimVideoMetadata };
import { default as SortFilterSubMenu } from './classes/SortFilterSubMenu.js';
export { SortFilterSubMenu };
import { default as SubFeedOption } from './classes/SubFeedOption.js';
export { SubFeedOption };
import { default as SubFeedSelector } from './classes/SubFeedSelector.js';
export { SubFeedSelector };
import { default as SubscribeButton } from './classes/SubscribeButton.js';
export { SubscribeButton };
import { default as SubscriptionNotificationToggleButton } from './classes/SubscriptionNotificationToggleButton.js';
export { SubscriptionNotificationToggleButton };
import { default as Tab } from './classes/Tab.js';
export { Tab };
import { default as Tabbed } from './classes/Tabbed.js';
export { Tabbed };
import { default as TabbedSearchResults } from './classes/TabbedSearchResults.js';
export { TabbedSearchResults };
import { default as TextHeader } from './classes/TextHeader.js';
export { TextHeader };
import { default as ThumbnailLandscapePortrait } from './classes/ThumbnailLandscapePortrait.js';
export { ThumbnailLandscapePortrait };
import { default as ThumbnailOverlayBottomPanel } from './classes/ThumbnailOverlayBottomPanel.js';
export { ThumbnailOverlayBottomPanel };
import { default as ThumbnailOverlayEndorsement } from './classes/ThumbnailOverlayEndorsement.js';
export { ThumbnailOverlayEndorsement };
import { default as ThumbnailOverlayHoverText } from './classes/ThumbnailOverlayHoverText.js';
export { ThumbnailOverlayHoverText };
import { default as ThumbnailOverlayInlineUnplayable } from './classes/ThumbnailOverlayInlineUnplayable.js';
export { ThumbnailOverlayInlineUnplayable };
import { default as ThumbnailOverlayLoadingPreview } from './classes/ThumbnailOverlayLoadingPreview.js';
export { ThumbnailOverlayLoadingPreview };
import { default as ThumbnailOverlayNowPlaying } from './classes/ThumbnailOverlayNowPlaying.js';
export { ThumbnailOverlayNowPlaying };
import { default as ThumbnailOverlayPinking } from './classes/ThumbnailOverlayPinking.js';
export { ThumbnailOverlayPinking };
import { default as ThumbnailOverlayPlaybackStatus } from './classes/ThumbnailOverlayPlaybackStatus.js';
export { ThumbnailOverlayPlaybackStatus };
import { default as ThumbnailOverlayResumePlayback } from './classes/ThumbnailOverlayResumePlayback.js';
export { ThumbnailOverlayResumePlayback };
import { default as ThumbnailOverlaySidePanel } from './classes/ThumbnailOverlaySidePanel.js';
export { ThumbnailOverlaySidePanel };
import { default as ThumbnailOverlayTimeStatus } from './classes/ThumbnailOverlayTimeStatus.js';
export { ThumbnailOverlayTimeStatus };
import { default as ThumbnailOverlayToggleButton } from './classes/ThumbnailOverlayToggleButton.js';
export { ThumbnailOverlayToggleButton };
import { default as TimedMarkerDecoration } from './classes/TimedMarkerDecoration.js';
export { TimedMarkerDecoration };
import { default as TitleAndButtonListHeader } from './classes/TitleAndButtonListHeader.js';
export { TitleAndButtonListHeader };
import { default as ToggleButton } from './classes/ToggleButton.js';
export { ToggleButton };
import { default as ToggleMenuServiceItem } from './classes/ToggleMenuServiceItem.js';
export { ToggleMenuServiceItem };
import { default as Tooltip } from './classes/Tooltip.js';
export { Tooltip };
import { default as TopicChannelDetails } from './classes/TopicChannelDetails.js';
export { TopicChannelDetails };
import { default as TwoColumnBrowseResults } from './classes/TwoColumnBrowseResults.js';
export { TwoColumnBrowseResults };
import { default as TwoColumnSearchResults } from './classes/TwoColumnSearchResults.js';
export { TwoColumnSearchResults };
import { default as TwoColumnWatchNextResults } from './classes/TwoColumnWatchNextResults.js';
export { TwoColumnWatchNextResults };
import { default as UniversalWatchCard } from './classes/UniversalWatchCard.js';
export { UniversalWatchCard };
import { default as UpsellDialog } from './classes/UpsellDialog.js';
export { UpsellDialog };
import { default as VerticalList } from './classes/VerticalList.js';
export { VerticalList };
import { default as VerticalWatchCardList } from './classes/VerticalWatchCardList.js';
export { VerticalWatchCardList };
import { default as Video } from './classes/Video.js';
export { Video };
import { default as VideoCard } from './classes/VideoCard.js';
export { VideoCard };
import { default as VideoInfoCardContent } from './classes/VideoInfoCardContent.js';
export { VideoInfoCardContent };
import { default as VideoOwner } from './classes/VideoOwner.js';
export { VideoOwner };
import { default as VideoPrimaryInfo } from './classes/VideoPrimaryInfo.js';
export { VideoPrimaryInfo };
import { default as VideoSecondaryInfo } from './classes/VideoSecondaryInfo.js';
export { VideoSecondaryInfo };
import { default as WatchCardCompactVideo } from './classes/WatchCardCompactVideo.js';
export { WatchCardCompactVideo };
import { default as WatchCardHeroVideo } from './classes/WatchCardHeroVideo.js';
export { WatchCardHeroVideo };
import { default as WatchCardRichHeader } from './classes/WatchCardRichHeader.js';
export { WatchCardRichHeader };
import { default as WatchCardSectionSequence } from './classes/WatchCardSectionSequence.js';
export { WatchCardSectionSequence };
import { default as WatchNextEndScreen } from './classes/WatchNextEndScreen.js';
export { WatchNextEndScreen };
import { default as WatchNextTabbedResults } from './classes/WatchNextTabbedResults.js';
export { WatchNextTabbedResults };
import { default as AnchoredSection } from './classes/ytkids/AnchoredSection.js';
export { AnchoredSection };
import { default as KidsCategoriesHeader } from './classes/ytkids/KidsCategoriesHeader.js';
export { KidsCategoriesHeader };
import { default as KidsCategoryTab } from './classes/ytkids/KidsCategoryTab.js';
export { KidsCategoryTab };
import { default as KidsHomeScreen } from './classes/ytkids/KidsHomeScreen.js';
export { KidsHomeScreen };
export const YTNodes = {
const map: Record<string, YTNodeConstructor> = {
AccountChannel,
AccountItemSection,
AccountItemSectionHeader,
@@ -669,8 +989,6 @@ export const Misc = {
VideoDetails
};
const map: Record<string, YTNodeConstructor> = YTNodes;
/**
* @param name - Name of the node to be parsed
*/

View File

@@ -4,6 +4,8 @@ export * as Constants from './Constants.js';
export { default as EventEmitter } from './EventEmitterLike.js';
export { default as FormatUtils } from './FormatUtils.js';
export { default as HTTPClient } from './HTTPClient.js';
export * from './HTTPClient.js';