diff --git a/packages/core/package.json b/packages/core/package.json index 973eda00..6fa38c50 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -51,9 +51,9 @@ "import": "./esm/highlevel/*", "require": "./cjs/highlevel/*" }, - "./methods/*": { - "import": "./esm/highlevel/methods/*", - "require": "./cjs/highlevel/methods/*" + "./methods.js": { + "import": "./esm/highlevel/methods.js", + "require": "./cjs/highlevel/methods.js" } } }, diff --git a/packages/core/scripts/generate-client.cjs b/packages/core/scripts/generate-client.cjs index 9846a521..3772b8f0 100644 --- a/packages/core/scripts/generate-client.cjs +++ b/packages/core/scripts/generate-client.cjs @@ -185,6 +185,22 @@ function determineCommonAvailability(methods, resolver = (v) => v) { return common } +async function runPrettier(targetFile) { + const prettierConfig = await prettier.resolveConfig(targetFile) + let fullSource = await fs.promises.readFile(targetFile, 'utf-8') + fullSource = await prettier.format(fullSource, { + ...(prettierConfig || {}), + filepath: targetFile, + }) + await fs.promises.writeFile(targetFile, fullSource) +} + +function runEslint(targetFile) { + require('child_process').execSync(`pnpm exec eslint --fix ${targetFile}`, { + stdio: 'inherit', + }) +} + async function addSingleMethod(state, fileName) { const fileFullText = await fs.promises.readFile(fileName, 'utf-8') const program = ts.createSourceFile(path.basename(fileName), fileFullText, ts.ScriptTarget.ES2018, true) @@ -337,6 +353,7 @@ async function addSingleMethod(state, fileName) { if (shouldEmit) { state.methods.list.push({ from: relPath, + module, name, isPrivate, isManual, @@ -715,19 +732,25 @@ on(name: string, handler: (...args: any[]) => void): this\n`) }) state.impls.forEach(({ name, code }) => output.write(`TelegramClient.prototype.${name} = ${code}\n`)) - // format the resulting file with prettier - const prettierConfig = await prettier.resolveConfig(targetFile) - let fullSource = await fs.promises.readFile(targetFile, 'utf-8') - fullSource = await prettier.format(fullSource, { - ...(prettierConfig || {}), - filepath: targetFile, - }) - await fs.promises.writeFile(targetFile, fullSource) + // write methods re-exports to separate file + const targetFileMethods = path.join(__dirname, '../src/highlevel/methods.ts') + const outputMethods = fs.createWriteStream(targetFileMethods) - // fix using eslint - require('child_process').execSync(`pnpm exec eslint --fix ${targetFile}`, { - stdio: 'inherit', + outputMethods.write('/* THIS FILE WAS AUTO-GENERATED */\n') + state.methods.list.forEach(({ module, name, overload }) => { + if (overload) return + outputMethods.write(`export { ${name} } from '${module}'\n`) }) + + await new Promise((resolve) => { outputMethods.end(resolve) }) + await new Promise((resolve) => { output.end(resolve) }) + + // format the resulting files with prettier and eslint + runPrettier(targetFile) + runPrettier(targetFileMethods) + + runEslint(targetFile) + runEslint(targetFileMethods) } main().catch(console.error) diff --git a/packages/core/src/highlevel/methods.ts b/packages/core/src/highlevel/methods.ts new file mode 100644 index 00000000..e0d5f6a3 --- /dev/null +++ b/packages/core/src/highlevel/methods.ts @@ -0,0 +1,240 @@ +/* THIS FILE WAS AUTO-GENERATED */ +export { checkPassword } from './methods/auth/check-password.js' +export { getPasswordHint } from './methods/auth/get-password-hint.js' +export { logOut } from './methods/auth/log-out.js' +export { recoverPassword } from './methods/auth/recover-password.js' +export { resendCode } from './methods/auth/resend-code.js' +export { run } from './methods/auth/run.js' +export { sendCode } from './methods/auth/send-code.js' +export { sendRecoveryCode } from './methods/auth/send-recovery-code.js' +export { signIn } from './methods/auth/sign-in.js' +export { signInBot } from './methods/auth/sign-in-bot.js' +export { start } from './methods/auth/start.js' +export { startTest } from './methods/auth/start-test.js' +export { isSelfPeer } from './methods/auth/utils.js' +export { answerCallbackQuery } from './methods/bots/answer-callback-query.js' +export { answerInlineQuery } from './methods/bots/answer-inline-query.js' +export { answerPreCheckoutQuery } from './methods/bots/answer-pre-checkout-query.js' +export { deleteMyCommands } from './methods/bots/delete-my-commands.js' +export { getBotInfo } from './methods/bots/get-bot-info.js' +export { getBotMenuButton } from './methods/bots/get-bot-menu-button.js' +export { getCallbackAnswer } from './methods/bots/get-callback-answer.js' +export { getGameHighScores } from './methods/bots/get-game-high-scores.js' +export { getInlineGameHighScores } from './methods/bots/get-game-high-scores.js' +export { getMyCommands } from './methods/bots/get-my-commands.js' +export { setBotInfo } from './methods/bots/set-bot-info.js' +export { setBotMenuButton } from './methods/bots/set-bot-menu-button.js' +export { setGameScore } from './methods/bots/set-game-score.js' +export { setInlineGameScore } from './methods/bots/set-game-score.js' +export { setMyCommands } from './methods/bots/set-my-commands.js' +export { setMyDefaultRights } from './methods/bots/set-my-default-rights.js' +export { addChatMembers } from './methods/chats/add-chat-members.js' +export { archiveChats } from './methods/chats/archive-chats.js' +export { banChatMember } from './methods/chats/ban-chat-member.js' +export { createChannel } from './methods/chats/create-channel.js' +export { createGroup } from './methods/chats/create-group.js' +export { createSupergroup } from './methods/chats/create-supergroup.js' +export { deleteChannel } from './methods/chats/delete-channel.js' +export { deleteChatPhoto } from './methods/chats/delete-chat-photo.js' +export { deleteGroup } from './methods/chats/delete-group.js' +export { deleteHistory } from './methods/chats/delete-history.js' +export { deleteUserHistory } from './methods/chats/delete-user-history.js' +export { editAdminRights } from './methods/chats/edit-admin-rights.js' +export { getChat } from './methods/chats/get-chat.js' +export { getChatEventLog } from './methods/chats/get-chat-event-log.js' +export { getChatMember } from './methods/chats/get-chat-member.js' +export { getChatMembers } from './methods/chats/get-chat-members.js' +export { getChatPreview } from './methods/chats/get-chat-preview.js' +export { getFullChat } from './methods/chats/get-full-chat.js' +export { getNearbyChats } from './methods/chats/get-nearby-chats.js' +export { getSimilarChannels } from './methods/chats/get-similar-channels.js' +export { iterChatEventLog } from './methods/chats/iter-chat-event-log.js' +export { iterChatMembers } from './methods/chats/iter-chat-members.js' +export { joinChat } from './methods/chats/join-chat.js' +export { kickChatMember } from './methods/chats/kick-chat-member.js' +export { leaveChat } from './methods/chats/leave-chat.js' +export { markChatUnread } from './methods/chats/mark-chat-unread.js' +export { openChat } from './methods/chats/open-chat.js' +export { closeChat } from './methods/chats/open-chat.js' +export { reorderUsernames } from './methods/chats/reorder-usernames.js' +export { restrictChatMember } from './methods/chats/restrict-chat-member.js' +export { saveDraft } from './methods/chats/save-draft.js' +export { setChatColor } from './methods/chats/set-chat-color.js' +export { setChatDefaultPermissions } from './methods/chats/set-chat-default-permissions.js' +export { setChatDescription } from './methods/chats/set-chat-description.js' +export { setChatPhoto } from './methods/chats/set-chat-photo.js' +export { setChatTitle } from './methods/chats/set-chat-title.js' +export { setChatTtl } from './methods/chats/set-chat-ttl.js' +export { setChatUsername } from './methods/chats/set-chat-username.js' +export { setSlowMode } from './methods/chats/set-slow-mode.js' +export { toggleContentProtection } from './methods/chats/toggle-content-protection.js' +export { toggleFragmentUsername } from './methods/chats/toggle-fragment-username.js' +export { toggleJoinRequests } from './methods/chats/toggle-join-requests.js' +export { toggleJoinToSend } from './methods/chats/toggle-join-to-send.js' +export { unarchiveChats } from './methods/chats/unarchive-chats.js' +export { unbanChatMember } from './methods/chats/unban-chat-member.js' +export { addContact } from './methods/contacts/add-contact.js' +export { deleteContacts } from './methods/contacts/delete-contacts.js' +export { getContacts } from './methods/contacts/get-contacts.js' +export { importContacts } from './methods/contacts/import-contacts.js' +export { createFolder } from './methods/dialogs/create-folder.js' +export { deleteFolder } from './methods/dialogs/delete-folder.js' +export { editFolder } from './methods/dialogs/edit-folder.js' +export { findFolder } from './methods/dialogs/find-folder.js' +export { getFolders } from './methods/dialogs/get-folders.js' +export { getPeerDialogs } from './methods/dialogs/get-peer-dialogs.js' +export { iterDialogs } from './methods/dialogs/iter-dialogs.js' +export { setFoldersOrder } from './methods/dialogs/set-folders-order.js' +export { downloadAsBuffer } from './methods/files/download-buffer.js' +export { downloadToFile } from './methods/files/download-file.js' +export { downloadAsIterable } from './methods/files/download-iterable.js' +export { downloadAsStream } from './methods/files/download-stream.js' +export { _normalizeInputFile } from './methods/files/normalize-input-file.js' +export { _normalizeInputMedia } from './methods/files/normalize-input-media.js' +export { uploadFile } from './methods/files/upload-file.js' +export { uploadMedia } from './methods/files/upload-media.js' +export { createForumTopic } from './methods/forums/create-forum-topic.js' +export { deleteForumTopicHistory } from './methods/forums/delete-forum-topic-history.js' +export { editForumTopic } from './methods/forums/edit-forum-topic.js' +export { getForumTopics } from './methods/forums/get-forum-topics.js' +export { getForumTopicsById } from './methods/forums/get-forum-topics-by-id.js' +export { iterForumTopics } from './methods/forums/iter-forum-topics.js' +export { reorderPinnedForumTopics } from './methods/forums/reorder-pinned-forum-topics.js' +export { toggleForum } from './methods/forums/toggle-forum.js' +export { toggleForumTopicClosed } from './methods/forums/toggle-forum-topic-closed.js' +export { toggleForumTopicPinned } from './methods/forums/toggle-forum-topic-pinned.js' +export { toggleGeneralTopicHidden } from './methods/forums/toggle-general-topic-hidden.js' +export { createInviteLink } from './methods/invite-links/create-invite-link.js' +export { editInviteLink } from './methods/invite-links/edit-invite-link.js' +export { exportInviteLink } from './methods/invite-links/export-invite-link.js' +export { getInviteLink } from './methods/invite-links/get-invite-link.js' +export { getInviteLinkMembers } from './methods/invite-links/get-invite-link-members.js' +export { getInviteLinks } from './methods/invite-links/get-invite-links.js' +export { getPrimaryInviteLink } from './methods/invite-links/get-primary-invite-link.js' +export { hideAllJoinRequests } from './methods/invite-links/hide-all-join-requests.js' +export { hideJoinRequest } from './methods/invite-links/hide-join-request.js' +export { iterInviteLinkMembers } from './methods/invite-links/iter-invite-link-members.js' +export { iterInviteLinks } from './methods/invite-links/iter-invite-links.js' +export { revokeInviteLink } from './methods/invite-links/revoke-invite-link.js' +export { closePoll } from './methods/messages/close-poll.js' +export { deleteMessagesById } from './methods/messages/delete-messages.js' +export { deleteMessages } from './methods/messages/delete-messages.js' +export { deleteScheduledMessages } from './methods/messages/delete-scheduled-messages.js' +export { editInlineMessage } from './methods/messages/edit-inline-message.js' +export { editMessage } from './methods/messages/edit-message.js' +export { forwardMessagesById } from './methods/messages/forward-messages.js' +export { forwardMessages } from './methods/messages/forward-messages.js' +export { getCallbackQueryMessage } from './methods/messages/get-callback-query-message.js' +export { getDiscussionMessage } from './methods/messages/get-discussion-message.js' +export { getHistory } from './methods/messages/get-history.js' +export { getMessageByLink } from './methods/messages/get-message-by-link.js' +export { getMessageGroup } from './methods/messages/get-message-group.js' +export { getMessageReactionsById } from './methods/messages/get-message-reactions.js' +export { getMessageReactions } from './methods/messages/get-message-reactions.js' +export { getMessages } from './methods/messages/get-messages.js' +export { getMessagesUnsafe } from './methods/messages/get-messages-unsafe.js' +export { getReactionUsers } from './methods/messages/get-reaction-users.js' +export { getReplyTo } from './methods/messages/get-reply-to.js' +export { getScheduledMessages } from './methods/messages/get-scheduled-messages.js' +export { iterHistory } from './methods/messages/iter-history.js' +export { iterReactionUsers } from './methods/messages/iter-reaction-users.js' +export { iterSearchGlobal } from './methods/messages/iter-search-global.js' +export { iterSearchMessages } from './methods/messages/iter-search-messages.js' +export { pinMessage } from './methods/messages/pin-message.js' +export { readHistory } from './methods/messages/read-history.js' +export { readReactions } from './methods/messages/read-reactions.js' +export { searchGlobal } from './methods/messages/search-global.js' +export { searchMessages } from './methods/messages/search-messages.js' +export { answerText } from './methods/messages/send-answer.js' +export { answerMedia } from './methods/messages/send-answer.js' +export { answerMediaGroup } from './methods/messages/send-answer.js' +export { commentText } from './methods/messages/send-comment.js' +export { commentMedia } from './methods/messages/send-comment.js' +export { commentMediaGroup } from './methods/messages/send-comment.js' +export { sendCopy } from './methods/messages/send-copy.js' +export { sendCopyGroup } from './methods/messages/send-copy-group.js' +export { sendMedia } from './methods/messages/send-media.js' +export { sendMediaGroup } from './methods/messages/send-media-group.js' +export { quoteWithText } from './methods/messages/send-quote.js' +export { quoteWithMedia } from './methods/messages/send-quote.js' +export { quoteWithMediaGroup } from './methods/messages/send-quote.js' +export { sendReaction } from './methods/messages/send-reaction.js' +export { replyText } from './methods/messages/send-reply.js' +export { replyMedia } from './methods/messages/send-reply.js' +export { replyMediaGroup } from './methods/messages/send-reply.js' +export { sendScheduled } from './methods/messages/send-scheduled.js' +export { sendText } from './methods/messages/send-text.js' +export { sendTyping } from './methods/messages/send-typing.js' +export { sendVote } from './methods/messages/send-vote.js' +export { translateMessage } from './methods/messages/translate-message.js' +export { translateText } from './methods/messages/translate-text.js' +export { unpinAllMessages } from './methods/messages/unpin-all-messages.js' +export { unpinMessage } from './methods/messages/unpin-message.js' +export { initTakeoutSession } from './methods/misc/init-takeout-session.js' +export { _normalizePrivacyRules } from './methods/misc/normalize-privacy-rules.js' +export { changeCloudPassword } from './methods/password/change-cloud-password.js' +export { enableCloudPassword } from './methods/password/enable-cloud-password.js' +export { verifyPasswordEmail } from './methods/password/password-email.js' +export { resendPasswordEmail } from './methods/password/password-email.js' +export { cancelPasswordEmail } from './methods/password/password-email.js' +export { removeCloudPassword } from './methods/password/remove-cloud-password.js' +export { applyBoost } from './methods/premium/apply-boost.js' +export { canApplyBoost } from './methods/premium/can-apply-boost.js' +export { getBoostStats } from './methods/premium/get-boost-stats.js' +export { getBoosts } from './methods/premium/get-boosts.js' +export { getMyBoostSlots } from './methods/premium/get-my-boost-slots.js' +export { iterBoosters } from './methods/premium/iter-boosters.js' +export { addStickerToSet } from './methods/stickers/add-sticker-to-set.js' +export { createStickerSet } from './methods/stickers/create-sticker-set.js' +export { deleteStickerFromSet } from './methods/stickers/delete-sticker-from-set.js' +export { getCustomEmojis } from './methods/stickers/get-custom-emojis.js' +export { getCustomEmojisFromMessages } from './methods/stickers/get-custom-emojis.js' +export { getInstalledStickers } from './methods/stickers/get-installed-stickers.js' +export { getStickerSet } from './methods/stickers/get-sticker-set.js' +export { moveStickerInSet } from './methods/stickers/move-sticker-in-set.js' +export { setChatStickerSet } from './methods/stickers/set-chat-sticker-set.js' +export { setStickerSetThumb } from './methods/stickers/set-sticker-set-thumb.js' +export { canSendStory } from './methods/stories/can-send-story.js' +export { deleteStories } from './methods/stories/delete-stories.js' +export { editStory } from './methods/stories/edit-story.js' +export { getAllStories } from './methods/stories/get-all-stories.js' +export { getPeerStories } from './methods/stories/get-peer-stories.js' +export { getProfileStories } from './methods/stories/get-profile-stories.js' +export { getStoriesById } from './methods/stories/get-stories-by-id.js' +export { getStoriesInteractions } from './methods/stories/get-stories-interactions.js' +export { getStoryLink } from './methods/stories/get-story-link.js' +export { getStoryViewers } from './methods/stories/get-story-viewers.js' +export { hideMyStoriesViews } from './methods/stories/hide-my-stories-views.js' +export { incrementStoriesViews } from './methods/stories/increment-stories-views.js' +export { iterAllStories } from './methods/stories/iter-all-stories.js' +export { iterProfileStories } from './methods/stories/iter-profile-stories.js' +export { iterStoryViewers } from './methods/stories/iter-story-viewers.js' +export { readStories } from './methods/stories/read-stories.js' +export { reportStory } from './methods/stories/report-story.js' +export { sendStory } from './methods/stories/send-story.js' +export { sendStoryReaction } from './methods/stories/send-story-reaction.js' +export { togglePeerStoriesArchived } from './methods/stories/toggle-peer-stories-archived.js' +export { toggleStoriesPinned } from './methods/stories/toggle-stories-pinned.js' +export { blockUser } from './methods/users/block-user.js' +export { deleteProfilePhotos } from './methods/users/delete-profile-photos.js' +export { editCloseFriendsRaw } from './methods/users/edit-close-friends.js' +export { editCloseFriends } from './methods/users/edit-close-friends.js' +export { getCommonChats } from './methods/users/get-common-chats.js' +export { getGlobalTtl } from './methods/users/get-global-ttl.js' +export { getMe } from './methods/users/get-me.js' +export { getMyUsername } from './methods/users/get-my-username.js' +export { getProfilePhoto } from './methods/users/get-profile-photo.js' +export { getProfilePhotos } from './methods/users/get-profile-photos.js' +export { getUsers } from './methods/users/get-users.js' +export { iterProfilePhotos } from './methods/users/iter-profile-photos.js' +export { resolvePeer } from './methods/users/resolve-peer.js' +export { resolveUser } from './methods/users/resolve-peer.js' +export { resolveChannel } from './methods/users/resolve-peer.js' +export { resolvePeerMany } from './methods/users/resolve-peer-many.js' +export { setGlobalTtl } from './methods/users/set-global-ttl.js' +export { setMyEmojiStatus } from './methods/users/set-my-emoji-status.js' +export { setMyProfilePhoto } from './methods/users/set-my-profile-photo.js' +export { setMyUsername } from './methods/users/set-my-username.js' +export { setOffline } from './methods/users/set-offline.js' +export { unblockUser } from './methods/users/unblock-user.js' +export { updateProfile } from './methods/users/update-profile.js'