Repository: pedroslopez/whatsapp-web.js
File: src/Client.js (JavaScript)

Code before:
            let messagesObject = await window.Store.Msg.getMessagesById([messageId]);
            if (messagesObject && messagesObject.messages.length) msg = messagesObject.messages[0];
            
            if(msg) return window.WWebJS.getMessageModel(msg);
        }, messageId);

        if(msg) return new Message(this, msg);
        return null;
    }

    /**
     * Gets instances of all pinned messages in a chat
     * @param {string} chatId The chat ID
     * @returns {Promise<[Message]|[]>}
     */
    async getPinnedMessages(chatId) {
        const pinnedMsgs = await this.pupPage.evaluate(async (chatId) => {
            const chatWid = window.Store.WidFactory.createWid(chatId);
            const chat = window.Store.Chat.get(chatWid) ?? await window.Store.Chat.find(chatWid);
            if (!chat) return [];
            
            const msgs = await window.Store.PinnedMsgUtils.getTable().equals(['chatId'], chatWid.toString());

            const pinnedMsgs = (
                await Promise.all(
                    msgs.map(async (msg) => {
                        const res = await window.Store.Msg.getMessagesById([msg.parentMsgKey]);
                        return res?.messages?.[0];
                    })
                )
            ).filter(Boolean);

            return !pinnedMsgs.length
                ? []
                : await Promise.all(pinnedMsgs.map((msg) => window.WWebJS.getMessageModel(msg)));
        }, chatId);

        return pinnedMsgs.map((msg) => new Message(this, msg));
    }

    /**
     * Returns an object with information about the invite code's group
     * @param {string} inviteCode 
     * @returns {Promise<object>} Invite information
     */
    async getInviteInfo(inviteCode) {
        return await this.pupPage.evaluate(inviteCode => {
            return window.Store.GroupInvite.queryGroupInvite(inviteCode);
        }, inviteCode);
    }


Review comment (suggestion):
```suggestion
                    msgs.filter(msg => msg.pinType == 1).map(async (msg) => {
```
That solves the problem of getting old pinned messages. Now it will get only the pinned messages

Code after:
            let messagesObject = await window.Store.Msg.getMessagesById([messageId]);
            if (messagesObject && messagesObject.messages.length) msg = messagesObject.messages[0];
            
            if(msg) return window.WWebJS.getMessageModel(msg);
        }, messageId);

        if(msg) return new Message(this, msg);
        return null;
    }

    /**
     * Gets instances of all pinned messages in a chat
     * @param {string} chatId The chat ID
     * @returns {Promise<[Message]|[]>}
     */
    async getPinnedMessages(chatId) {
        const pinnedMsgs = await this.pupPage.evaluate(async (chatId) => {
            const chatWid = window.Store.WidFactory.createWid(chatId);
            const chat = window.Store.Chat.get(chatWid) ?? await window.Store.Chat.find(chatWid);
            if (!chat) return [];
            
            const msgs = await window.Store.PinnedMsgUtils.getTable().equals(['chatId'], chatWid.toString());

            const pinnedMsgs = (
                await Promise.all(
                    msgs.filter(msg => msg.pinType == 1).map(async (msg) => {
                        const res = await window.Store.Msg.getMessagesById([msg.parentMsgKey]);
                        return res?.messages?.[0];
                    })
                )
            ).filter(Boolean);

            return !pinnedMsgs.length
                ? []
                : await Promise.all(pinnedMsgs.map((msg) => window.WWebJS.getMessageModel(msg)));
        }, chatId);

        return pinnedMsgs.map((msg) => new Message(this, msg));
    }

    /**
     * Returns an object with information about the invite code's group
     * @param {string} inviteCode 
     * @returns {Promise<object>} Invite information
     */
    async getInviteInfo(inviteCode) {
        return await this.pupPage.evaluate(inviteCode => {
            return window.Store.GroupInvite.queryGroupInvite(inviteCode);
        }, inviteCode);
    }