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
13 KiB
Text
1 line
No EOL
13 KiB
Text
{"version":3,"sources":["../../../../../src/client/dev/hot-reloader/app/web-socket.ts"],"sourcesContent":["import { useContext, useEffect } from 'react'\nimport { GlobalLayoutRouterContext } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { getSocketUrl } from '../get-socket-url'\nimport {\n HMR_MESSAGE_SENT_TO_BROWSER,\n type HmrMessageSentToBrowser,\n type TurbopackMessageSentToBrowser,\n} from '../../../../server/dev/hot-reloader-types'\nimport { reportInvalidHmrMessage } from '../shared'\nimport {\n performFullReload,\n processMessage,\n type StaticIndicatorState,\n} from './hot-reloader-app'\nimport { logQueue } from '../../../../next-devtools/userspace/app/forward-logs'\nimport { InvariantError } from '../../../../shared/lib/invariant-error'\nimport { WEB_SOCKET_MAX_RECONNECTIONS } from '../../../../lib/constants'\n\nlet reconnections = 0\nlet reloading = false\nlet serverSessionId: number | null = null\nlet mostRecentCompilationHash: string | null = null\n\nexport function createWebSocket(\n assetPrefix: string,\n staticIndicatorState: StaticIndicatorState\n) {\n if (!self.__next_r) {\n throw new InvariantError(\n `Expected a request ID to be defined for the document via self.__next_r.`\n )\n }\n\n let webSocket: WebSocket\n let timer: ReturnType<typeof setTimeout>\n\n const sendMessage = (data: string) => {\n if (webSocket && webSocket.readyState === webSocket.OPEN) {\n webSocket.send(data)\n }\n }\n\n const processTurbopackMessage = createProcessTurbopackMessage(sendMessage)\n\n function init() {\n if (webSocket) {\n webSocket.close()\n }\n\n const newWebSocket = new window.WebSocket(\n `${getSocketUrl(assetPrefix)}/_next/webpack-hmr?id=${self.__next_r}`\n )\n\n newWebSocket.binaryType = 'arraybuffer'\n\n function handleOnline() {\n logQueue.onSocketReady(newWebSocket)\n\n reconnections = 0\n window.console.log('[HMR] connected')\n }\n\n function handleMessage(event: MessageEvent) {\n // While the page is reloading, don't respond to any more messages.\n if (reloading) {\n return\n }\n\n try {\n const message: HmrMessageSentToBrowser =\n event.data instanceof ArrayBuffer\n ? parseBinaryMessage(event.data)\n : JSON.parse(event.data)\n\n // Check for server restart in Turbopack mode\n if (message.type === HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED) {\n if (\n serverSessionId !== null &&\n serverSessionId !== message.data.sessionId\n ) {\n // Either the server's session id has changed and it's a new server, or\n // it's been too long since we disconnected and we should reload the page.\n window.location.reload()\n reloading = true\n return\n }\n serverSessionId = message.data.sessionId\n }\n\n // Track webpack compilation hash for server restart detection\n if (\n message.type === HMR_MESSAGE_SENT_TO_BROWSER.SYNC &&\n 'hash' in message\n ) {\n // If we had previously reconnected and the hash changed, the server may have restarted\n if (\n mostRecentCompilationHash !== null &&\n mostRecentCompilationHash !== message.hash\n ) {\n window.location.reload()\n reloading = true\n return\n }\n mostRecentCompilationHash = message.hash\n }\n\n processMessage(\n message,\n sendMessage,\n processTurbopackMessage,\n staticIndicatorState\n )\n } catch (err: unknown) {\n reportInvalidHmrMessage(event, err)\n }\n }\n\n function handleDisconnect() {\n newWebSocket.onerror = null\n newWebSocket.onclose = null\n newWebSocket.close()\n reconnections++\n\n // After 25 reconnects we'll want to reload the page as it indicates the dev server is no longer running.\n if (reconnections > WEB_SOCKET_MAX_RECONNECTIONS) {\n reloading = true\n window.location.reload()\n return\n }\n\n clearTimeout(timer)\n // Try again after 5 seconds\n timer = setTimeout(init, reconnections > 5 ? 5000 : 1000)\n }\n\n newWebSocket.onopen = handleOnline\n newWebSocket.onerror = handleDisconnect\n newWebSocket.onclose = handleDisconnect\n newWebSocket.onmessage = handleMessage\n\n webSocket = newWebSocket\n return newWebSocket\n }\n\n return init()\n}\n\nexport function createProcessTurbopackMessage(\n sendMessage: (data: string) => void\n): (msg: TurbopackMessageSentToBrowser) => void {\n if (!process.env.TURBOPACK) {\n return () => {}\n }\n\n let queue: TurbopackMessageSentToBrowser[] = []\n let callback: ((msg: TurbopackMessageSentToBrowser) => void) | undefined\n\n const processTurbopackMessage = (msg: TurbopackMessageSentToBrowser) => {\n if (callback) {\n callback(msg)\n } else {\n queue.push(msg)\n }\n }\n\n import(\n // @ts-expect-error requires \"moduleResolution\": \"node16\" in tsconfig.json and not .ts extension\n '@vercel/turbopack-ecmascript-runtime/browser/dev/hmr-client/hmr-client.ts'\n ).then(({ connect }) => {\n connect({\n addMessageListener(cb: (msg: TurbopackMessageSentToBrowser) => void) {\n callback = cb\n\n // Replay all Turbopack messages before we were able to establish the HMR client.\n for (const msg of queue) {\n cb(msg)\n }\n queue.length = 0\n },\n sendMessage,\n onUpdateError: (err: unknown) => performFullReload(err, sendMessage),\n })\n })\n\n return processTurbopackMessage\n}\n\nexport function useWebSocketPing(webSocket: WebSocket | undefined) {\n const { tree } = useContext(GlobalLayoutRouterContext)\n\n useEffect(() => {\n if (!webSocket) {\n throw new InvariantError('Expected webSocket to be defined in dev mode.')\n }\n\n // Never send pings when using Turbopack as it's not used.\n // Pings were originally used to keep track of active routes in on-demand-entries with webpack.\n if (process.env.TURBOPACK) {\n return\n }\n\n // Taken from on-demand-entries-client.js\n const interval = setInterval(() => {\n if (webSocket.readyState === webSocket.OPEN) {\n webSocket.send(\n JSON.stringify({\n event: 'ping',\n tree,\n appDirRoute: true,\n })\n )\n }\n }, 2500)\n return () => clearInterval(interval)\n }, [tree, webSocket])\n}\n\nconst textDecoder = new TextDecoder()\n\nfunction parseBinaryMessage(data: ArrayBuffer): HmrMessageSentToBrowser {\n assertByteLength(data, 1)\n const view = new DataView(data)\n const messageType = view.getUint8(0)\n\n switch (messageType) {\n case HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK: {\n assertByteLength(data, 2)\n const requestIdLength = view.getUint8(1)\n assertByteLength(data, 2 + requestIdLength)\n\n const requestId = textDecoder.decode(\n new Uint8Array(data, 2, requestIdLength)\n )\n\n const chunk =\n data.byteLength > 2 + requestIdLength\n ? new Uint8Array(data, 2 + requestIdLength)\n : null\n\n return {\n type: HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK,\n requestId,\n chunk,\n }\n }\n default: {\n throw new InvariantError(\n `Invalid binary HMR message of type ${messageType}`\n )\n }\n }\n}\n\nfunction assertByteLength(data: ArrayBuffer, expectedLength: number) {\n if (data.byteLength < expectedLength) {\n throw new InvariantError(\n `Invalid binary HMR message: insufficient data (expected ${expectedLength} bytes, got ${data.byteLength})`\n )\n }\n}\n"],"names":["useContext","useEffect","GlobalLayoutRouterContext","getSocketUrl","HMR_MESSAGE_SENT_TO_BROWSER","reportInvalidHmrMessage","performFullReload","processMessage","logQueue","InvariantError","WEB_SOCKET_MAX_RECONNECTIONS","reconnections","reloading","serverSessionId","mostRecentCompilationHash","createWebSocket","assetPrefix","staticIndicatorState","self","__next_r","webSocket","timer","sendMessage","data","readyState","OPEN","send","processTurbopackMessage","createProcessTurbopackMessage","init","close","newWebSocket","window","WebSocket","binaryType","handleOnline","onSocketReady","console","log","handleMessage","event","message","ArrayBuffer","parseBinaryMessage","JSON","parse","type","TURBOPACK_CONNECTED","sessionId","location","reload","SYNC","hash","err","handleDisconnect","onerror","onclose","clearTimeout","setTimeout","onopen","onmessage","process","env","TURBOPACK","queue","callback","msg","push","then","connect","addMessageListener","cb","length","onUpdateError","useWebSocketPing","tree","interval","setInterval","stringify","appDirRoute","clearInterval","textDecoder","TextDecoder","assertByteLength","view","DataView","messageType","getUint8","REACT_DEBUG_CHUNK","requestIdLength","requestId","decode","Uint8Array","chunk","byteLength","expectedLength"],"mappings":"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","ignoreList":[0]} |