Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
No EOL
28 KiB
Text
1 line
No EOL
28 KiB
Text
{"version":3,"sources":["../../../src/server/lib/start-server.ts"],"sourcesContent":["// Start CPU profile if it wasn't already started.\nimport './cpu-profile'\nimport { getNetworkHost } from '../../lib/get-network-host'\n\nif (performance.getEntriesByName('next-start').length === 0) {\n performance.mark('next-start')\n}\nimport '../next'\nimport '../require-hook'\n\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { SelfSignedCertificate } from '../../lib/mkcert'\nimport type { WorkerRequestHandler, WorkerUpgradeHandler } from './types'\n\nimport fs from 'fs'\nimport v8 from 'v8'\nimport path from 'path'\nimport http from 'http'\nimport https from 'https'\nimport os from 'os'\nimport { exec } from 'child_process'\nimport Watchpack from 'next/dist/compiled/watchpack'\nimport * as Log from '../../build/output/log'\nimport setupDebug from 'next/dist/compiled/debug'\nimport {\n RESTART_EXIT_CODE,\n getFormattedDebugAddress,\n getNodeDebugType,\n isDebugAddressEphemeral,\n} from './utils'\nimport { formatHostname } from './format-hostname'\nimport { initialize } from './router-server'\nimport { CONFIG_FILES } from '../../shared/lib/constants'\nimport { getStartServerInfo, logStartInfo } from './app-info-log'\nimport { validateTurboNextConfig } from '../../lib/turbopack-warning'\nimport { type Span, trace, flushAllTraces } from '../../trace'\nimport { isIPv6 } from './is-ipv6'\nimport { AsyncCallbackSet } from './async-callback-set'\nimport type { NextServer } from '../next'\nimport type { ConfiguredExperimentalFeature } from '../config'\n\nconst debug = setupDebug('next:start-server')\nlet startServerSpan: Span | undefined\n\n/**\n * Get the process ID (PID) of the process using the specified port\n */\nasync function getProcessIdUsingPort(port: number): Promise<string | null> {\n const timeoutMs = 250\n const processLookupController = new AbortController()\n\n const pidPromise = new Promise<string | null>((resolve) => {\n const handleError = (error: Error) => {\n debug('Failed to get process ID for port', port, error)\n resolve(null)\n }\n\n try {\n // Use lsof on Unix-like systems (macOS, Linux)\n if (process.platform !== 'win32') {\n exec(\n `lsof -ti:${port} -sTCP:LISTEN`,\n { signal: processLookupController.signal },\n (error, stdout) => {\n if (error) {\n handleError(error)\n return\n }\n // `-sTCP` will ensure there's only one port, clean up output\n const pid = stdout.trim()\n resolve(pid || null)\n }\n )\n } else {\n // Use netstat on Windows\n exec(\n `netstat -ano | findstr /C:\":${port} \" | findstr LISTENING`,\n { signal: processLookupController.signal },\n (error, stdout) => {\n if (error) {\n handleError(error)\n return\n }\n // Clean up output and extract PID\n const cleanOutput = stdout.replace(/\\s+/g, ' ').trim()\n if (cleanOutput) {\n const lines = cleanOutput.split('\\n')\n const firstLine = lines[0].trim()\n if (firstLine) {\n const parts = firstLine.split(' ')\n const pid = parts[parts.length - 1]\n resolve(pid || null)\n } else {\n resolve(null)\n }\n } else {\n resolve(null)\n }\n }\n )\n }\n } catch (cause) {\n handleError(\n new Error('Unexpected error during process lookup', { cause })\n )\n }\n })\n\n const timeoutId = setTimeout(() => {\n processLookupController.abort(\n `PID detection timed out after ${timeoutMs}ms for port ${port}.`\n )\n }, timeoutMs)\n\n pidPromise.finally(() => clearTimeout(timeoutId))\n\n return pidPromise\n}\n\nexport interface StartServerOptions {\n dir: string\n port: number\n isDev: boolean\n hostname?: string\n allowRetry?: boolean\n customServer?: boolean\n minimalMode?: boolean\n keepAliveTimeout?: number\n // this is dev-server only\n selfSignedCertificate?: SelfSignedCertificate\n}\n\nexport async function getRequestHandlers({\n dir,\n port,\n isDev,\n onDevServerCleanup,\n server,\n hostname,\n minimalMode,\n keepAliveTimeout,\n experimentalHttpsServer,\n quiet,\n}: {\n dir: string\n port: number\n isDev: boolean\n onDevServerCleanup: ((listener: () => Promise<void>) => void) | undefined\n server?: import('http').Server\n hostname?: string\n minimalMode?: boolean\n keepAliveTimeout?: number\n experimentalHttpsServer?: boolean\n quiet?: boolean\n}): ReturnType<typeof initialize> {\n return initialize({\n dir,\n port,\n hostname,\n onDevServerCleanup,\n dev: isDev,\n minimalMode,\n server,\n keepAliveTimeout,\n experimentalHttpsServer,\n startServerSpan,\n quiet,\n })\n}\n\nexport async function startServer(\n serverOptions: StartServerOptions\n): Promise<void> {\n const {\n dir,\n isDev,\n hostname,\n minimalMode,\n allowRetry,\n keepAliveTimeout,\n selfSignedCertificate,\n } = serverOptions\n let { port } = serverOptions\n\n process.title = `next-server (v${process.env.__NEXT_VERSION})`\n let handlersReady = () => {}\n let handlersError = () => {}\n\n let handlersPromise: Promise<void> | undefined = new Promise<void>(\n (resolve, reject) => {\n handlersReady = resolve\n handlersError = reject\n }\n )\n let requestHandler: WorkerRequestHandler = async (\n req: IncomingMessage,\n res: ServerResponse\n ): Promise<void> => {\n if (handlersPromise) {\n await handlersPromise\n return requestHandler(req, res)\n }\n throw new Error('Invariant request handler was not setup')\n }\n let upgradeHandler: WorkerUpgradeHandler = async (\n req,\n socket,\n head\n ): Promise<void> => {\n if (handlersPromise) {\n await handlersPromise\n return upgradeHandler(req, socket, head)\n }\n throw new Error('Invariant upgrade handler was not setup')\n }\n\n let nextServer: NextServer | undefined\n\n // setup server listener as fast as possible\n if (selfSignedCertificate && !isDev) {\n throw new Error(\n 'Using a self signed certificate is only supported with `next dev`.'\n )\n }\n\n async function requestListener(req: IncomingMessage, res: ServerResponse) {\n try {\n if (handlersPromise) {\n await handlersPromise\n handlersPromise = undefined\n }\n await requestHandler(req, res)\n } catch (err) {\n res.statusCode = 500\n res.end('Internal Server Error')\n Log.error(`Failed to handle request for ${req.url}`)\n console.error(err)\n } finally {\n if (isDev) {\n if (\n v8.getHeapStatistics().used_heap_size >\n 0.8 * v8.getHeapStatistics().heap_size_limit\n ) {\n Log.warn(\n `Server is approaching the used memory threshold, restarting...`\n )\n trace('server-restart-close-to-memory-threshold', undefined, {\n 'memory.heapSizeLimit': String(\n v8.getHeapStatistics().heap_size_limit\n ),\n 'memory.heapUsed': String(v8.getHeapStatistics().used_heap_size),\n }).stop()\n await flushAllTraces()\n process.exit(RESTART_EXIT_CODE)\n }\n }\n }\n }\n\n const server = selfSignedCertificate\n ? https.createServer(\n {\n key: fs.readFileSync(selfSignedCertificate.key),\n cert: fs.readFileSync(selfSignedCertificate.cert),\n },\n requestListener\n )\n : http.createServer(requestListener)\n\n if (keepAliveTimeout) {\n server.keepAliveTimeout = keepAliveTimeout\n }\n server.on('upgrade', async (req, socket, head) => {\n try {\n await upgradeHandler(req, socket, head)\n } catch (err) {\n socket.destroy()\n Log.error(`Failed to handle request for ${req.url}`)\n console.error(err)\n }\n })\n\n let portRetryCount = 0\n const originalPort = port\n\n server.on('error', (err: NodeJS.ErrnoException) => {\n if (\n allowRetry &&\n port &&\n isDev &&\n err.code === 'EADDRINUSE' &&\n portRetryCount < 10\n ) {\n port += 1\n portRetryCount += 1\n server.listen(port, hostname)\n } else {\n Log.error(`Failed to start server`)\n console.error(err)\n process.exit(1)\n }\n })\n\n let cleanupListeners = isDev ? new AsyncCallbackSet() : undefined\n\n await new Promise<void>((resolve) => {\n server.on('listening', async () => {\n const nodeDebugType = getNodeDebugType()\n\n const addr = server.address()\n const actualHostname = formatHostname(\n typeof addr === 'object'\n ? addr?.address || hostname || 'localhost'\n : addr\n )\n const formattedHostname =\n !hostname || actualHostname === '0.0.0.0'\n ? 'localhost'\n : actualHostname === '[::]'\n ? '[::1]'\n : formatHostname(hostname)\n\n port = typeof addr === 'object' ? addr?.port || port : port\n\n if (portRetryCount) {\n const pid = await getProcessIdUsingPort(originalPort)\n if (pid) {\n Log.warn(\n `Port ${originalPort} is in use by process ${pid}, using available port ${port} instead.`\n )\n } else {\n Log.warn(\n `Port ${originalPort} is in use by an unknown process, using available port ${port} instead.`\n )\n }\n }\n\n const networkHostname =\n hostname ?? getNetworkHost(isIPv6(actualHostname) ? 'IPv6' : 'IPv4')\n\n const protocol = selfSignedCertificate ? 'https' : 'http'\n\n const networkUrl = networkHostname\n ? `${protocol}://${formatHostname(networkHostname)}:${port}`\n : null\n\n const appUrl = `${protocol}://${formattedHostname}:${port}`\n\n if (nodeDebugType) {\n const formattedDebugAddress = getFormattedDebugAddress()\n const isEphemeral = isDebugAddressEphemeral()\n Log.info(\n `the --${nodeDebugType} option was detected` +\n (isEphemeral\n ? ''\n : `, the Next.js router server should be inspected at ${formattedDebugAddress}.`)\n )\n }\n\n // Store the selected port to:\n // - expose it to render workers\n // - re-use it for automatic dev server restarts with a randomly selected port\n process.env.PORT = port + ''\n\n process.env.__NEXT_PRIVATE_ORIGIN = appUrl\n\n // Set experimental HTTPS flag for metadata resolution\n if (selfSignedCertificate) {\n process.env.__NEXT_EXPERIMENTAL_HTTPS = '1'\n }\n\n // Only load env and config in dev to for logging purposes\n let envInfo: string[] | undefined\n let experimentalFeatures: ConfiguredExperimentalFeature[] | undefined\n let cacheComponents: boolean | undefined\n try {\n if (isDev) {\n const startServerInfo = await getStartServerInfo({ dir, dev: isDev })\n envInfo = startServerInfo.envInfo\n cacheComponents = startServerInfo.cacheComponents\n experimentalFeatures = startServerInfo.experimentalFeatures\n }\n logStartInfo({\n networkUrl,\n appUrl,\n envInfo,\n experimentalFeatures,\n cacheComponents,\n logBundler: isDev,\n })\n\n Log.event(`Starting...`)\n\n let cleanupStarted = false\n let closeUpgraded: (() => void) | null = null\n const cleanup = () => {\n if (cleanupStarted) {\n // We can get duplicate signals, e.g. when `ctrl+c` is used in an\n // interactive shell (i.e. bash, zsh), the shell will recursively\n // send SIGINT to children. The parent `next-dev` process will also\n // send us SIGINT.\n return\n }\n cleanupStarted = true\n ;(async () => {\n debug('start-server process cleanup')\n\n // first, stop accepting new connections and finish pending requests,\n // because they might affect `nextServer.close()` (e.g. by scheduling an `after`)\n await new Promise<void>((res) => {\n server.close((err) => {\n if (err) console.error(err)\n res()\n })\n if (isDev) {\n server.closeAllConnections()\n closeUpgraded?.()\n }\n })\n\n // now that no new requests can come in, clean up the rest\n await Promise.all([\n nextServer?.close().catch(console.error),\n cleanupListeners?.runAll().catch(console.error),\n ])\n\n // Flush telemetry if this is a dev server\n if (isDev) {\n try {\n const { traceGlobals } =\n require('../../trace/shared') as typeof import('../../trace/shared')\n const telemetry = traceGlobals.get('telemetry') as\n | InstanceType<\n typeof import('../../telemetry/storage').Telemetry\n >\n | undefined\n if (telemetry) {\n await telemetry.flush()\n }\n } catch (_) {\n // Ignore telemetry errors during cleanup\n }\n }\n\n debug('start-server process cleanup finished')\n process.exit(0)\n })()\n }\n\n // Make sure commands gracefully respect termination signals (e.g. from Docker)\n // Allow the graceful termination to be manually configurable\n if (!process.env.NEXT_MANUAL_SIG_HANDLE) {\n process.on('SIGINT', cleanup)\n process.on('SIGTERM', cleanup)\n }\n\n const initResult = await getRequestHandlers({\n dir,\n port,\n isDev,\n onDevServerCleanup: cleanupListeners\n ? cleanupListeners.add.bind(cleanupListeners)\n : undefined,\n server,\n hostname,\n minimalMode,\n keepAliveTimeout,\n experimentalHttpsServer: !!selfSignedCertificate,\n })\n requestHandler = initResult.requestHandler\n upgradeHandler = initResult.upgradeHandler\n nextServer = initResult.server\n closeUpgraded = initResult.closeUpgraded\n\n const startServerProcessDuration =\n performance.mark('next-start-end') &&\n performance.measure(\n 'next-start-duration',\n 'next-start',\n 'next-start-end'\n ).duration\n\n handlersReady()\n const formatDurationText =\n startServerProcessDuration > 2000\n ? `${Math.round(startServerProcessDuration / 100) / 10}s`\n : `${Math.round(startServerProcessDuration)}ms`\n\n Log.event(`Ready in ${formatDurationText}`)\n\n if (process.env.TURBOPACK) {\n await validateTurboNextConfig({\n dir: serverOptions.dir,\n isDev: serverOptions.isDev,\n })\n }\n } catch (err) {\n // fatal error if we can't setup\n handlersError()\n console.error(err)\n process.exit(1)\n }\n\n resolve()\n })\n server.listen(port, hostname)\n })\n\n if (isDev) {\n function watchConfigFiles(\n dirToWatch: string,\n onChange: (filename: string) => void\n ) {\n const wp = new Watchpack()\n wp.watch({\n files: CONFIG_FILES.map((file) => path.join(dirToWatch, file)),\n })\n wp.on('change', onChange)\n }\n watchConfigFiles(dir, async (filename) => {\n if (process.env.__NEXT_DISABLE_MEMORY_WATCHER) {\n Log.info(\n `Detected change, manual restart required due to '__NEXT_DISABLE_MEMORY_WATCHER' usage`\n )\n return\n }\n\n Log.warn(\n `Found a change in ${path.basename(\n filename\n )}. Restarting the server to apply the changes...`\n )\n process.exit(RESTART_EXIT_CODE)\n })\n }\n}\n\nif (process.env.NEXT_PRIVATE_WORKER && process.send) {\n process.addListener('message', async (msg: any) => {\n if (\n msg &&\n typeof msg === 'object' &&\n msg.nextWorkerOptions &&\n process.send\n ) {\n startServerSpan = trace('start-dev-server', undefined, {\n cpus: String(os.cpus().length),\n platform: os.platform(),\n 'memory.freeMem': String(os.freemem()),\n 'memory.totalMem': String(os.totalmem()),\n 'memory.heapSizeLimit': String(v8.getHeapStatistics().heap_size_limit),\n })\n await startServerSpan.traceAsyncFn(() =>\n startServer(msg.nextWorkerOptions)\n )\n const memoryUsage = process.memoryUsage()\n startServerSpan.setAttribute('memory.rss', String(memoryUsage.rss))\n startServerSpan.setAttribute(\n 'memory.heapTotal',\n String(memoryUsage.heapTotal)\n )\n startServerSpan.setAttribute(\n 'memory.heapUsed',\n String(memoryUsage.heapUsed)\n )\n process.send({ nextServerReady: true, port: process.env.PORT })\n }\n })\n process.send({ nextWorkerReady: true })\n}\n"],"names":["getNetworkHost","performance","getEntriesByName","length","mark","fs","v8","path","http","https","os","exec","Watchpack","Log","setupDebug","RESTART_EXIT_CODE","getFormattedDebugAddress","getNodeDebugType","isDebugAddressEphemeral","formatHostname","initialize","CONFIG_FILES","getStartServerInfo","logStartInfo","validateTurboNextConfig","trace","flushAllTraces","isIPv6","AsyncCallbackSet","debug","startServerSpan","getProcessIdUsingPort","port","timeoutMs","processLookupController","AbortController","pidPromise","Promise","resolve","handleError","error","process","platform","signal","stdout","pid","trim","cleanOutput","replace","lines","split","firstLine","parts","cause","Error","timeoutId","setTimeout","abort","finally","clearTimeout","getRequestHandlers","dir","isDev","onDevServerCleanup","server","hostname","minimalMode","keepAliveTimeout","experimentalHttpsServer","quiet","dev","startServer","serverOptions","allowRetry","selfSignedCertificate","title","env","__NEXT_VERSION","handlersReady","handlersError","handlersPromise","reject","requestHandler","req","res","upgradeHandler","socket","head","nextServer","requestListener","undefined","err","statusCode","end","url","console","getHeapStatistics","used_heap_size","heap_size_limit","warn","String","stop","exit","createServer","key","readFileSync","cert","on","destroy","portRetryCount","originalPort","code","listen","cleanupListeners","nodeDebugType","addr","address","actualHostname","formattedHostname","networkHostname","protocol","networkUrl","appUrl","formattedDebugAddress","isEphemeral","info","PORT","__NEXT_PRIVATE_ORIGIN","__NEXT_EXPERIMENTAL_HTTPS","envInfo","experimentalFeatures","cacheComponents","startServerInfo","logBundler","event","cleanupStarted","closeUpgraded","cleanup","close","closeAllConnections","all","catch","runAll","traceGlobals","require","telemetry","get","flush","_","NEXT_MANUAL_SIG_HANDLE","initResult","add","bind","startServerProcessDuration","measure","duration","formatDurationText","Math","round","TURBOPACK","watchConfigFiles","dirToWatch","onChange","wp","watch","files","map","file","join","filename","__NEXT_DISABLE_MEMORY_WATCHER","basename","NEXT_PRIVATE_WORKER","send","addListener","msg","nextWorkerOptions","cpus","freemem","totalmem","traceAsyncFn","memoryUsage","setAttribute","rss","heapTotal","heapUsed","nextServerReady","nextWorkerReady"],"mappings":"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","ignoreList":[0]} |