import App from "next/app"; import { AmpStateContext } from "next/dist/shared/lib/amp-context"; import { HeadManagerContext } from "next/dist/shared/lib/head-manager-context"; import Loadable from "next/dist/shared/lib/loadable"; import { LoadableContext } from "next/dist/shared/lib/loadable-context"; import { RouterContext } from "next/dist/shared/lib/router-context"; import { NextRouter } from "next/dist/shared/lib/router/router"; import { AppType, ComponentsEnhancer, DocumentInitialProps, DocumentProps, DocumentType, getDisplayName, loadGetInitialProps, NextComponentType, RenderPage, RenderPageResult, HtmlContext, } from "next/dist/shared/lib/utils"; import { RenderOpts } from "next/dist/server/render"; import * as NextDocument from "next/document"; import * as ReactDOMServer from "react-dom/server.browser"; import * as React from "react"; import * as ReactIs from "react-is"; // This constant was removed from Next, Is it doing anything? const BODY_RENDER_TARGET = "__NEXT_BODY_RENDER_TARGET__"; const dev = process.env.NODE_ENV === "development"; type ParsedUrlQuery = Record; // @ts-expect-error TS doesn't understand that Bun is a global const origin: string = Bun.origin; const isJSFile = (file: string) => file.endsWith(".js") || file.endsWith(".jsx") || file.endsWith(".mjs") || file.endsWith(".ts") || file.endsWith(".tsx"); type DocumentFiles = { sharedFiles: readonly string[]; pageFiles: readonly string[]; allFiles: readonly string[]; }; function getScripts(files: DocumentFiles) { const { context, props } = this; const { assetPrefix, buildManifest, isDevelopment, devOnlyCacheBusterQueryString, } = context; const normalScripts = files.allFiles.filter(isJSFile); const lowPriorityScripts = buildManifest.lowPriorityFiles?.filter(isJSFile); return [...normalScripts, ...lowPriorityScripts].map((file) => { return (