Puppeteer page is not a standard puppeteer page instance but working fine in browser

import { configDotenv } from "dotenv";
import puppeteer from "puppeteer";

configDotenv({ path: "./config.env" });

let browserInstance;

export async function getBrowserInstance() {

    try {
        if (!browserInstance || !browserInstance.isConnected()) {
            browserInstance = await puppeteer.launch({
                // executablePath: process.env.CHROME,
                headless: false,
                args: [
                    '--disable-blink-features=AutomationControlled',
                    '--disable-infobars',
                    '--no-sandbox',
                    '--disable-dev-shm-usage',
                    '--start-maximized',
                    '--disable-extensions',
                    '--disable-default-apps',
                    '--disable-popup-blocking',
                    '--disable-renderer-backgrounding',
                    '--disable-background-timer-throttling',
                    '--disable-backgrounding-occluded-windows'
                ]
            });

            browserInstance.on('disconnected', () => {
                console.error('Browser disconnected.');
                browserInstance = undefined;
            });
        }

        return browserInstance;
    } catch (error) {
        return error;
    }
}

export async function newPage(browser, docSize) {
    try {
        if (!browser || !browser.isConnected()) throw new Error("Browser is not active!");

        const page = await browser.newPage();
        const { width, height } = docSize;

        if (typeof width !== "number" || typeof height !== "number") {
            throw new Error("The width and height of page should be type of number.");
        }

        await page.setUserAgent(process.env.USER_AGENT);
        await page.evaluateOnNewDocument(() => {
            Object.defineProperty(navigator, 'platform', {
                get: () => 'Win32',
            });
            Object.defineProperty(navigator, 'webdriver', {
                get: () => false,
            });
            window.chrome = {};
            const originalQuery = window.navigator.permissions.query;
            window.navigator.permissions.query = (parameters) =>
                parameters.name === 'notifications'
                    ? Promise.resolve({ state: 'denied' })
                    : originalQuery(parameters);
        });
        page.setDefaultNavigationTimeout(300000);
        if (width && height) page.setViewport({ width, height });

        return page;
    } catch (error) {
        return error.message;
    }

}

export async function launchBrowserAndGotoPage(docSize, docUrl) {
    let Browser, Page;
    try {
        Browser = await getBrowserInstance();
        Page = await newPage(Browser, docSize);

        console.log()

        if (typeof Page === "string") throw new Error(Page);
        const pageResponse = await Page.goto(docUrl, { waitUntil: "networkidle0" });
        const pageStatus = pageResponse.status();
        if (pageStatus !== 200) {
            throw new Error(`The third-party server responded with ${pageStatus}`);
        }

        console.log("I am inside launchBrowserAndGotoPage ", Page)
        console.log("Page type: ", Page.constructor.name) // Should print "Page"
        console.log("Page object keys: ", Object.keys(Page)) // Explore what properties/methods are available

        return { Browser, Page };
    } catch (error) {
        console.log(error);
        if (typeof Page === "object") Page.close();
        return { error: error.message }
    }
}

When I call launchBrowserAndGotoPage(), the browser is launched, and the page with the provided link is opened. But object is incomplete and I am not able to use methods like page.pdf().

The logs are these:

I am inside launchBrowserAndGotoPage  CdpPage { _isDragging: false, _timeoutSettings: TimeoutSettings {} }
Page type:  CdpPage
Page object keys:  [ '_isDragging', '_timeoutSettings' ]

Can anyone please help me solve this issue?

puppeteer version is 24.1.1
I also tried using 24.1.0 but the response is the same.