Duffer Derek

Current Path : /var/www/sitesecurity.bitkit.dk/httpdocs/node_modules/next/dist/server/
Upload File :
Current File : /var/www/sitesecurity.bitkit.dk/httpdocs/node_modules/next/dist/server/next.js.map

{"version":3,"sources":["../../src/server/next.ts"],"sourcesContent":["import type { Options as DevServerOptions } from './dev/next-dev-server'\nimport type {\n  NodeRequestHandler,\n  Options as ServerOptions,\n} from './next-server'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { Duplex } from 'stream'\nimport type { NextUrlWithParsedQuery, RequestMeta } from './request-meta'\n\nimport './require-hook'\nimport './node-polyfill-crypto'\n\nimport type { default as NextNodeServer } from './next-server'\nimport * as log from '../build/output/log'\nimport loadConfig from './config'\nimport path from 'node:path'\nimport { NON_STANDARD_NODE_ENV } from '../lib/constants'\nimport {\n  PHASE_DEVELOPMENT_SERVER,\n  SERVER_FILES_MANIFEST,\n} from '../shared/lib/constants'\nimport { PHASE_PRODUCTION_SERVER } from '../shared/lib/constants'\nimport { getTracer } from './lib/trace/tracer'\nimport { NextServerSpan } from './lib/trace/constants'\nimport { formatUrl } from '../shared/lib/router/utils/format-url'\nimport type { ServerFields } from './lib/router-utils/setup-dev-bundler'\nimport type { ServerInitResult } from './lib/render-server'\nimport { AsyncCallbackSet } from './lib/async-callback-set'\nimport {\n  RouterServerContextSymbol,\n  routerServerGlobal,\n} from './lib/router-utils/router-server-context'\n\nlet ServerImpl: typeof NextNodeServer\n\nconst getServerImpl = async () => {\n  if (ServerImpl === undefined) {\n    ServerImpl = (\n      await Promise.resolve(\n        require('./next-server') as typeof import('./next-server')\n      )\n    ).default\n  }\n  return ServerImpl\n}\n\nexport type NextServerOptions = Omit<\n  ServerOptions | DevServerOptions,\n  // This is assigned in this server abstraction.\n  'conf'\n> &\n  Partial<Pick<ServerOptions | DevServerOptions, 'conf'>>\n\nexport type NextBundlerOptions = {\n  /** @deprecated Use `turbopack` instead */\n  turbo?: boolean\n  /** Selects Turbopack as the bundler */\n  turbopack?: boolean\n  /** Selects Webpack as the bundler */\n  webpack?: boolean\n}\n\nexport type RequestHandler = (\n  req: IncomingMessage,\n  res: ServerResponse,\n  parsedUrl?: NextUrlWithParsedQuery | undefined\n) => Promise<void>\n\nexport type UpgradeHandler = (\n  req: IncomingMessage,\n  socket: Duplex,\n  head: Buffer\n) => Promise<void>\n\nconst SYMBOL_LOAD_CONFIG = Symbol('next.load_config')\n\ninterface NextWrapperServer {\n  // NOTE: the methods/properties here are the public API for custom servers.\n  // Consider backwards compatibilty when changing something here!\n\n  options: NextServerOptions\n  hostname: string | undefined\n  port: number | undefined\n\n  getRequestHandler(): RequestHandler\n  prepare(serverFields?: ServerFields): Promise<void>\n  setAssetPrefix(assetPrefix: string): void\n  close(): Promise<void>\n\n  // used internally\n  getUpgradeHandler(): UpgradeHandler\n\n  // legacy methods that we left exposed in the past\n\n  logError(...args: Parameters<NextNodeServer['logError']>): void\n\n  revalidate(\n    ...args: Parameters<NextNodeServer['revalidate']>\n  ): ReturnType<NextNodeServer['revalidate']>\n\n  logErrorWithOriginalStack(err: unknown, type: string): void\n\n  render(\n    ...args: Parameters<NextNodeServer['render']>\n  ): ReturnType<NextNodeServer['render']>\n\n  renderToHTML(\n    ...args: Parameters<NextNodeServer['renderToHTML']>\n  ): ReturnType<NextNodeServer['renderToHTML']>\n\n  renderError(\n    ...args: Parameters<NextNodeServer['renderError']>\n  ): ReturnType<NextNodeServer['renderError']>\n\n  renderErrorToHTML(\n    ...args: Parameters<NextNodeServer['renderErrorToHTML']>\n  ): ReturnType<NextNodeServer['renderErrorToHTML']>\n\n  render404(\n    ...args: Parameters<NextNodeServer['render404']>\n  ): ReturnType<NextNodeServer['render404']>\n}\n\n/** The wrapper server used by `next start` */\nexport class NextServer implements NextWrapperServer {\n  private serverPromise?: Promise<NextNodeServer>\n  private server?: NextNodeServer\n  private reqHandler?: NodeRequestHandler\n  private reqHandlerPromise?: Promise<NodeRequestHandler>\n  private preparedAssetPrefix?: string\n\n  public options: NextServerOptions\n\n  constructor(options: NextServerOptions) {\n    this.options = options\n  }\n\n  get hostname() {\n    return this.options.hostname\n  }\n\n  get port() {\n    return this.options.port\n  }\n\n  getRequestHandler(): RequestHandler {\n    return async (\n      req: IncomingMessage,\n      res: ServerResponse,\n      parsedUrl?: NextUrlWithParsedQuery\n    ) => {\n      return getTracer().trace(NextServerSpan.getRequestHandler, async () => {\n        const requestHandler = await this.getServerRequestHandler()\n        return requestHandler(req, res, parsedUrl)\n      })\n    }\n  }\n\n  /**\n   * @internal - this method is internal to Next.js and should not be used\n   * directly by end-users, only used in testing\n   */\n  getRequestHandlerWithMetadata(meta: RequestMeta): RequestHandler {\n    return async (\n      req: IncomingMessage,\n      res: ServerResponse,\n      parsedUrl?: NextUrlWithParsedQuery\n    ) => {\n      return getTracer().trace(\n        NextServerSpan.getRequestHandlerWithMetadata,\n        async () => {\n          const server = await this.getServer()\n          const handler = server.getRequestHandlerWithMetadata(meta)\n          return handler(req, res, parsedUrl)\n        }\n      )\n    }\n  }\n\n  getUpgradeHandler(): UpgradeHandler {\n    return async (req: IncomingMessage, socket: any, head: any) => {\n      const server = await this.getServer()\n      // @ts-expect-error we mark this as protected so it\n      // causes an error here\n      return server.handleUpgrade.apply(server, [req, socket, head])\n    }\n  }\n\n  setAssetPrefix(assetPrefix: string) {\n    if (this.server) {\n      this.server.setAssetPrefix(assetPrefix)\n    } else {\n      this.preparedAssetPrefix = assetPrefix\n    }\n  }\n\n  logError(...args: Parameters<NextWrapperServer['logError']>) {\n    if (this.server) {\n      this.server.logError(...args)\n    }\n  }\n\n  async logErrorWithOriginalStack(err: unknown, type: string) {\n    const server = await this.getServer()\n    // this is only available on dev server\n    if ((server as any).logErrorWithOriginalStack) {\n      return (server as any).logErrorWithOriginalStack(err, type)\n    }\n  }\n\n  async revalidate(...args: Parameters<NextWrapperServer['revalidate']>) {\n    const server = await this.getServer()\n    return server.revalidate(...args)\n  }\n\n  async render(...args: Parameters<NextWrapperServer['render']>) {\n    const server = await this.getServer()\n    return server.render(...args)\n  }\n\n  async renderToHTML(...args: Parameters<NextWrapperServer['renderToHTML']>) {\n    const server = await this.getServer()\n    return server.renderToHTML(...args)\n  }\n\n  async renderError(...args: Parameters<NextWrapperServer['renderError']>) {\n    const server = await this.getServer()\n    return server.renderError(...args)\n  }\n\n  async renderErrorToHTML(\n    ...args: Parameters<NextWrapperServer['renderErrorToHTML']>\n  ) {\n    const server = await this.getServer()\n    return server.renderErrorToHTML(...args)\n  }\n\n  async render404(...args: Parameters<NextWrapperServer['render404']>) {\n    const server = await this.getServer()\n    return server.render404(...args)\n  }\n\n  async prepare(serverFields?: ServerFields) {\n    const server = await this.getServer()\n\n    if (serverFields) {\n      Object.assign(server, serverFields)\n    }\n    // We shouldn't prepare the server in production,\n    // because this code won't be executed when deployed\n    if (this.options.dev) {\n      await server.prepare()\n    }\n  }\n\n  async close() {\n    if (this.server) {\n      await this.server.close()\n    }\n  }\n\n  private async createServer(\n    options: ServerOptions | DevServerOptions\n  ): Promise<NextNodeServer> {\n    let ServerImplementation: typeof NextNodeServer\n    if (options.dev) {\n      ServerImplementation = (\n        require('./dev/next-dev-server') as typeof import('./dev/next-dev-server')\n      ).default as typeof import('./dev/next-dev-server').default\n    } else {\n      ServerImplementation = await getServerImpl()\n    }\n    const server = new ServerImplementation(options)\n\n    return server\n  }\n\n  private async [SYMBOL_LOAD_CONFIG]() {\n    const dir = path.resolve(\n      /* turbopackIgnore: true */ this.options.dir || '.'\n    )\n\n    const config = await loadConfig(\n      this.options.dev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_SERVER,\n      dir,\n      {\n        customConfig: this.options.conf,\n        silent: true,\n      }\n    )\n\n    // check serialized build config when available\n    if (!this.options.dev) {\n      try {\n        const serializedConfig = require(\n          /* turbopackIgnore: true */\n          path.join(\n            /* turbopackIgnore: true */ dir,\n            config.distDir,\n            SERVER_FILES_MANIFEST + '.json'\n          )\n        ).config\n\n        config.experimental.isExperimentalCompile =\n          serializedConfig.experimental.isExperimentalCompile\n      } catch (_) {\n        // if distDir is customized we don't know until we\n        // load the config so fallback to loading the config\n        // from next.config.js\n      }\n    }\n\n    return config\n  }\n\n  private async getServer() {\n    if (!this.serverPromise) {\n      this.serverPromise = this[SYMBOL_LOAD_CONFIG]().then(async (conf) => {\n        if (!this.options.dev) {\n          if (conf.output === 'standalone') {\n            if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) {\n              log.warn(\n                `\"next start\" does not work with \"output: standalone\" configuration. Use \"node .next/standalone/server.js\" instead.`\n              )\n            }\n          } else if (conf.output === 'export') {\n            throw new Error(\n              `\"next start\" does not work with \"output: export\" configuration. Use \"npx serve@latest out\" instead.`\n            )\n          }\n        }\n\n        this.server = await this.createServer({\n          ...this.options,\n          conf,\n        })\n        if (this.preparedAssetPrefix) {\n          this.server.setAssetPrefix(this.preparedAssetPrefix)\n        }\n        return this.server\n      })\n    }\n    return this.serverPromise\n  }\n\n  private async getServerRequestHandler() {\n    if (this.reqHandler) return this.reqHandler\n\n    // Memoize request handler creation\n    if (!this.reqHandlerPromise) {\n      this.reqHandlerPromise = this.getServer().then((server) => {\n        this.reqHandler = getTracer().wrap(\n          NextServerSpan.getServerRequestHandler,\n          server.getRequestHandler().bind(server)\n        )\n        delete this.reqHandlerPromise\n        return this.reqHandler\n      })\n    }\n    return this.reqHandlerPromise\n  }\n}\n\n/** The wrapper server used for `import next from \"next\" (in a custom server)` */\nclass NextCustomServer implements NextWrapperServer {\n  private didWebSocketSetup: boolean = false\n  protected cleanupListeners?: AsyncCallbackSet\n\n  protected init?: ServerInitResult\n\n  public options: NextServerOptions\n\n  constructor(options: NextServerOptions) {\n    this.options = options\n  }\n\n  protected getInit() {\n    if (!this.init) {\n      throw new Error(\n        'prepare() must be called before performing this operation'\n      )\n    }\n    return this.init\n  }\n\n  protected get requestHandler() {\n    return this.getInit().requestHandler\n  }\n  protected get upgradeHandler() {\n    return this.getInit().upgradeHandler\n  }\n  protected get server() {\n    return this.getInit().server\n  }\n\n  get hostname() {\n    return this.options.hostname\n  }\n\n  get port() {\n    return this.options.port\n  }\n\n  async prepare() {\n    if (this.options.dev) {\n      process.env.__NEXT_DEV_SERVER = '1'\n    }\n\n    const { getRequestHandlers } =\n      require('./lib/start-server') as typeof import('./lib/start-server')\n\n    let onDevServerCleanup: AsyncCallbackSet['add'] | undefined\n    if (this.options.dev) {\n      this.cleanupListeners = new AsyncCallbackSet()\n      onDevServerCleanup = this.cleanupListeners.add.bind(this.cleanupListeners)\n    }\n\n    const initResult = await getRequestHandlers({\n      dir: this.options.dir!,\n      port: this.options.port || 3000,\n      isDev: !!this.options.dev,\n      onDevServerCleanup,\n      hostname: this.options.hostname || 'localhost',\n      minimalMode: this.options.minimalMode,\n      quiet: this.options.quiet,\n    })\n    this.init = initResult\n  }\n\n  private setupWebSocketHandler(\n    customServer?: import('http').Server,\n    _req?: IncomingMessage\n  ) {\n    if (!this.didWebSocketSetup) {\n      this.didWebSocketSetup = true\n      customServer = customServer || (_req?.socket as any)?.server\n\n      if (customServer) {\n        customServer.on('upgrade', async (req, socket, head) => {\n          this.upgradeHandler(req, socket, head)\n        })\n      }\n    }\n  }\n\n  getRequestHandler(): RequestHandler {\n    return async (\n      req: IncomingMessage,\n      res: ServerResponse,\n      parsedUrl?: NextUrlWithParsedQuery\n    ) => {\n      this.setupWebSocketHandler(this.options.httpServer, req)\n\n      if (parsedUrl) {\n        req.url = formatUrl(parsedUrl)\n      }\n\n      return this.requestHandler(req, res)\n    }\n  }\n\n  async render(...args: Parameters<NextWrapperServer['render']>) {\n    let [req, res, pathname, query, parsedUrl] = args\n    this.setupWebSocketHandler(this.options.httpServer, req as IncomingMessage)\n\n    if (!pathname.startsWith('/')) {\n      console.error(`Cannot render page with path \"${pathname}\"`)\n      pathname = `/${pathname}`\n    }\n    pathname = pathname === '/index' ? '/' : pathname\n\n    req.url = formatUrl({\n      ...parsedUrl,\n      pathname,\n      query,\n    })\n\n    await this.requestHandler(req as IncomingMessage, res as ServerResponse)\n    return\n  }\n\n  setAssetPrefix(assetPrefix: string): void {\n    this.server.setAssetPrefix(assetPrefix)\n\n    // update the router-server nextConfig instance as\n    // this is the source of truth for \"handler\" in serverful\n    const relativeProjectDir = path.relative(\n      process.cwd(),\n      this.options.dir || ''\n    )\n\n    if (\n      routerServerGlobal[RouterServerContextSymbol]?.[relativeProjectDir]\n        ?.nextConfig\n    ) {\n      routerServerGlobal[RouterServerContextSymbol][\n        relativeProjectDir\n      ].nextConfig.assetPrefix = assetPrefix\n    }\n  }\n\n  getUpgradeHandler(): UpgradeHandler {\n    return this.server.getUpgradeHandler()\n  }\n\n  logError(...args: Parameters<NextWrapperServer['logError']>) {\n    this.server.logError(...args)\n  }\n\n  logErrorWithOriginalStack(err: unknown, type: string) {\n    return this.server.logErrorWithOriginalStack(err, type)\n  }\n\n  async revalidate(...args: Parameters<NextWrapperServer['revalidate']>) {\n    return this.server.revalidate(...args)\n  }\n\n  async renderToHTML(...args: Parameters<NextWrapperServer['renderToHTML']>) {\n    return this.server.renderToHTML(...args)\n  }\n\n  async renderError(...args: Parameters<NextWrapperServer['renderError']>) {\n    return this.server.renderError(...args)\n  }\n\n  async renderErrorToHTML(\n    ...args: Parameters<NextWrapperServer['renderErrorToHTML']>\n  ) {\n    return this.server.renderErrorToHTML(...args)\n  }\n\n  async render404(...args: Parameters<NextWrapperServer['render404']>) {\n    return this.server.render404(...args)\n  }\n\n  async close() {\n    await Promise.allSettled([\n      this.init?.server.close(),\n      this.cleanupListeners?.runAll(),\n    ])\n  }\n}\n\n// This file is used for when users run `require('next')`\nfunction createServer(\n  options: NextServerOptions & NextBundlerOptions\n): NextWrapperServer {\n  // next sets customServer to false when calling this function, in that case we don't want to modify the environment variables\n  const isCustomServer = options?.customServer ?? true\n  if (isCustomServer) {\n    const selectTurbopack =\n      options &&\n      (options.turbo || options.turbopack || process.env.IS_TURBOPACK_TEST)\n    const selectWebpack =\n      options && (options.webpack || process.env.IS_WEBPACK_TEST)\n    if (selectTurbopack && selectWebpack) {\n      throw new Error('Pass either `webpack` or `turbopack`, not both.')\n    }\n    if (selectTurbopack || !selectWebpack) {\n      process.env.TURBOPACK ??= selectTurbopack ? '1' : 'auto'\n    }\n  } else {\n    if (options && (options.webpack || options.turbo || options.turbopack)) {\n      throw new Error(\n        'Only custom servers can pass `webpack`, `turbo`, or `turbopack`.'\n      )\n    }\n  }\n\n  // The package is used as a TypeScript plugin.\n  if (\n    options &&\n    'typescript' in options &&\n    'version' in (options as any).typescript\n  ) {\n    const pluginMod: typeof import('./next-typescript') =\n      require('./next-typescript') as typeof import('./next-typescript')\n    return pluginMod.createTSPlugin(\n      options as any\n    ) as unknown as NextWrapperServer\n  }\n\n  if (options == null) {\n    throw new Error(\n      'The server has not been instantiated properly. https://nextjs.org/docs/messages/invalid-server-options'\n    )\n  }\n\n  if (\n    !('isNextDevCommand' in options) &&\n    process.env.NODE_ENV &&\n    !['production', 'development', 'test'].includes(process.env.NODE_ENV)\n  ) {\n    log.warn(NON_STANDARD_NODE_ENV)\n  }\n\n  if (options.dev && typeof options.dev !== 'boolean') {\n    console.warn(\n      \"Warning: 'dev' is not a boolean which could introduce unexpected behavior. https://nextjs.org/docs/messages/invalid-server-options\"\n    )\n  }\n\n  // When the caller is a custom server (using next()).\n  if (options.customServer !== false) {\n    const dir = path.resolve(/* turbopackIgnore: true */ options.dir || '.')\n\n    return new NextCustomServer({\n      ...options,\n      dir,\n    })\n  }\n\n  // When the caller is Next.js internals (i.e. render worker, start server, etc)\n  return new NextServer(options)\n}\n\n// Support commonjs `require('next')`\nmodule.exports = createServer\n// exports = module.exports\n\n// Support `import next from 'next'`\nexport default createServer\n"],"names":["NextServer","ServerImpl","getServerImpl","undefined","Promise","resolve","require","default","SYMBOL_LOAD_CONFIG","Symbol","constructor","options","hostname","port","getRequestHandler","req","res","parsedUrl","getTracer","trace","NextServerSpan","requestHandler","getServerRequestHandler","getRequestHandlerWithMetadata","meta","server","getServer","handler","getUpgradeHandler","socket","head","handleUpgrade","apply","setAssetPrefix","assetPrefix","preparedAssetPrefix","logError","args","logErrorWithOriginalStack","err","type","revalidate","render","renderToHTML","renderError","renderErrorToHTML","render404","prepare","serverFields","Object","assign","dev","close","createServer","ServerImplementation","dir","path","config","loadConfig","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_SERVER","customConfig","conf","silent","serializedConfig","join","distDir","SERVER_FILES_MANIFEST","experimental","isExperimentalCompile","_","serverPromise","then","output","process","env","__NEXT_PRIVATE_STANDALONE_CONFIG","log","warn","Error","reqHandler","reqHandlerPromise","wrap","bind","NextCustomServer","didWebSocketSetup","getInit","init","upgradeHandler","__NEXT_DEV_SERVER","getRequestHandlers","onDevServerCleanup","cleanupListeners","AsyncCallbackSet","add","initResult","isDev","minimalMode","quiet","setupWebSocketHandler","customServer","_req","on","httpServer","url","formatUrl","pathname","query","startsWith","console","error","routerServerGlobal","relativeProjectDir","relative","cwd","RouterServerContextSymbol","nextConfig","allSettled","runAll","isCustomServer","selectTurbopack","turbo","turbopack","IS_TURBOPACK_TEST","selectWebpack","webpack","IS_WEBPACK_TEST","TURBOPACK","typescript","pluginMod","createTSPlugin","NODE_ENV","includes","NON_STANDARD_NODE_ENV","module","exports"],"mappings":"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","ignoreList":[0]}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists