diff --git a/scripts/build-parser-map.cjs b/scripts/build-parser-map.cjs index de10d034..d49a92f5 100644 --- a/scripts/build-parser-map.cjs +++ b/scripts/build-parser-map.cjs @@ -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 = { ${json.join(',\n ')} }; @@ -40,8 +41,6 @@ export const Misc = { ${misc_exports.join(',\n ')} }; -const map: Record = YTNodes; - /** * @param name - Name of the node to be parsed */ diff --git a/src/parser/index.ts b/src/parser/index.ts index cb1dbeba..af45a97c 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -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; \ No newline at end of file diff --git a/src/parser/map.ts b/src/parser/map.ts index 29433813..ecbbe52d 100644 --- a/src/parser/map.ts +++ b/src/parser/map.ts @@ -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 = { AccountChannel, AccountItemSection, AccountItemSectionHeader, @@ -669,8 +989,6 @@ export const Misc = { VideoDetails }; -const map: Record = YTNodes; - /** * @param name - Name of the node to be parsed */ diff --git a/src/utils/index.ts b/src/utils/index.ts index f6f30659..ce7be7dd 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -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';