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
17 KiB
Text
1 line
No EOL
17 KiB
Text
{"version":3,"sources":["../../../../src/shared/lib/turbopack/utils.ts"],"sourcesContent":["import type {\n Issue,\n PlainTraceItem,\n StyledString,\n TurbopackResult,\n} from '../../../build/swc/types'\n\nimport { bold, green, magenta, red } from '../../../lib/picocolors'\nimport isInternal from '../is-internal'\nimport { deobfuscateText } from '../magic-identifier'\nimport type { EntryKey } from './entry-key'\nimport * as Log from '../../../build/output/log'\nimport type { NextConfigComplete } from '../../../server/config-shared'\n\ntype IssueKey = `${Issue['severity']}-${Issue['filePath']}-${string}-${string}`\nexport type IssuesMap = Map<IssueKey, Issue>\nexport type EntryIssuesMap = Map<EntryKey, IssuesMap>\nexport type TopLevelIssuesMap = IssuesMap\n\n/**\n * An error generated from emitted Turbopack issues. This can include build\n * errors caused by issues with user code.\n */\nexport class ModuleBuildError extends Error {\n name = 'ModuleBuildError'\n}\n\n/**\n * Thin stopgap workaround layer to mimic existing wellknown-errors-plugin in webpack's build\n * to emit certain type of errors into cli.\n */\nexport function isWellKnownError(issue: Issue): boolean {\n const { title } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title)\n // TODO: add more well known errors\n if (\n formattedTitle.includes('Module not found') ||\n formattedTitle.includes('Unknown module type')\n ) {\n return true\n }\n\n return false\n}\n\nexport function getIssueKey(issue: Issue): IssueKey {\n return `${issue.severity}-${issue.filePath}-${JSON.stringify(\n issue.title\n )}-${JSON.stringify(issue.description)}`\n}\n\nexport function processIssues(\n currentEntryIssues: EntryIssuesMap,\n key: EntryKey,\n result: TurbopackResult,\n throwIssue: boolean,\n logErrors: boolean\n) {\n const newIssues = new Map<IssueKey, Issue>()\n currentEntryIssues.set(key, newIssues)\n\n const relevantIssues = new Set()\n\n for (const issue of result.issues) {\n if (\n issue.severity !== 'error' &&\n issue.severity !== 'fatal' &&\n issue.severity !== 'warning'\n )\n continue\n\n const issueKey = getIssueKey(issue)\n newIssues.set(issueKey, issue)\n\n if (issue.severity !== 'warning') {\n if (throwIssue) {\n const formatted = formatIssue(issue)\n relevantIssues.add(formatted)\n }\n // if we throw the issue it will most likely get handed and logged elsewhere\n else if (logErrors && isWellKnownError(issue)) {\n const formatted = formatIssue(issue)\n Log.error(formatted)\n }\n }\n }\n\n if (relevantIssues.size && throwIssue) {\n throw new ModuleBuildError([...relevantIssues].join('\\n\\n'))\n }\n}\n\nexport function formatIssue(issue: Issue) {\n const { filePath, title, description, source, importTraces } = issue\n let { documentationLink } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title).replace(\n /\\n/g,\n '\\n '\n )\n\n // TODO: Use error codes to identify these\n // TODO: Generalize adapting Turbopack errors to Next.js errors\n if (formattedTitle.includes('Module not found')) {\n // For compatiblity with webpack\n // TODO: include columns in webpack errors.\n documentationLink = 'https://nextjs.org/docs/messages/module-not-found'\n }\n\n const formattedFilePath = filePath\n .replace('[project]/', './')\n .replaceAll('/./', '/')\n .replace('\\\\\\\\?\\\\', '')\n\n let message = ''\n\n if (source?.range) {\n const { start } = source.range\n message = `${formattedFilePath}:${start.line + 1}:${\n start.column + 1\n }\\n${formattedTitle}`\n } else if (formattedFilePath) {\n message = `${formattedFilePath}\\n${formattedTitle}`\n } else {\n message = formattedTitle\n }\n message += '\\n'\n\n if (\n source?.range &&\n source.source.content &&\n // ignore Next.js/React internals, as these can often be huge bundled files.\n !isInternal(filePath)\n ) {\n const { start, end } = source.range\n const { codeFrameColumns } =\n require('next/dist/compiled/babel/code-frame') as typeof import('next/dist/compiled/babel/code-frame')\n\n message +=\n codeFrameColumns(\n source.source.content,\n {\n start: {\n line: start.line + 1,\n column: start.column + 1,\n },\n end: {\n line: end.line + 1,\n column: end.column + 1,\n },\n },\n { forceColor: true }\n ).trim() + '\\n\\n'\n }\n\n if (description) {\n if (\n description.type === 'text' &&\n description.value.includes(`Cannot find module 'sass'`)\n ) {\n message +=\n \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\"\n message += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n'\n message += '\\nLearn more: https://nextjs.org/docs/messages/install-sass\\n'\n } else {\n message += renderStyledStringToErrorAnsi(description) + '\\n\\n'\n }\n }\n\n // TODO: make it possible to enable this for debugging, but not in tests.\n // if (detail) {\n // message += renderStyledStringToErrorAnsi(detail) + '\\n\\n'\n // }\n\n if (importTraces?.length) {\n // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs\n // We end up with multiple traces when the file with the error is reachable from multiple\n // different entry points (e.g. ssr, client)\n message += `Import trace${importTraces.length > 1 ? 's' : ''}:\\n`\n const everyTraceHasADistinctRootLayer =\n new Set(importTraces.map(leafLayerName).filter((l) => l != null)).size ===\n importTraces.length\n for (let i = 0; i < importTraces.length; i++) {\n const trace = importTraces[i]\n const layer = leafLayerName(trace)\n let traceIndent = ' '\n // If this is true, layer must be present\n if (everyTraceHasADistinctRootLayer) {\n message += ` ${layer}:\\n`\n } else {\n if (importTraces.length > 1) {\n // Otherwise use simple 1 based indices to disambiguate\n message += ` #${i + 1}`\n if (layer) {\n message += ` [${layer}]`\n }\n message += ':\\n'\n } else if (layer) {\n message += ` [${layer}]:\\n`\n } else {\n // If there is a single trace and no layer name just don't indent it.\n traceIndent = ' '\n }\n }\n message += formatIssueTrace(trace, traceIndent, !identicalLayers(trace))\n }\n }\n if (documentationLink) {\n message += documentationLink + '\\n\\n'\n }\n return message\n}\n\n/** Returns the first present layer name in the trace */\nfunction leafLayerName(items: PlainTraceItem[]): string | undefined {\n for (const item of items) {\n const layer = item.layer\n if (layer != null) return layer\n }\n return undefined\n}\n\n/**\n * Returns whether or not all items share the same layer.\n * If a layer is absent we ignore it in this analysis\n */\nfunction identicalLayers(items: PlainTraceItem[]): boolean {\n const firstPresentLayer = items.findIndex((t) => t.layer != null)\n if (firstPresentLayer === -1) return true // all layers are absent\n const layer = items[firstPresentLayer].layer\n for (let i = firstPresentLayer + 1; i < items.length; i++) {\n const itemLayer = items[i].layer\n if (itemLayer == null || itemLayer !== layer) {\n return false\n }\n }\n return true\n}\n\nfunction formatIssueTrace(\n items: PlainTraceItem[],\n indent: string,\n printLayers: boolean\n): string {\n return `${items\n .map((item) => {\n let r = indent\n if (item.fsName !== 'project') {\n r += `[${item.fsName}]/`\n } else {\n // This is consistent with webpack's output\n r += './'\n }\n r += item.path\n if (printLayers && item.layer) {\n r += ` [${item.layer}]`\n }\n return r\n })\n .join('\\n')}\\n\\n`\n}\n\nexport function isRelevantWarning(issue: Issue): boolean {\n return issue.severity === 'warning' && !isNodeModulesIssue(issue)\n}\n\nfunction isNodeModulesIssue(issue: Issue): boolean {\n if (issue.severity === 'warning' && issue.stage === 'config') {\n // Override for the externalize issue\n // `Package foo (serverExternalPackages or default list) can't be external`\n if (\n renderStyledStringToErrorAnsi(issue.title).includes(\"can't be external\")\n ) {\n return false\n }\n }\n\n return (\n issue.severity === 'warning' &&\n (issue.filePath.match(/^(?:.*[\\\\/])?node_modules(?:[\\\\/].*)?$/) !== null ||\n // Ignore Next.js itself when running next directly in the monorepo where it is not inside\n // node_modules anyway.\n // TODO(mischnic) prevent matches when this is published to npm\n issue.filePath.startsWith('[project]/packages/next/'))\n )\n}\n\nexport function renderStyledStringToErrorAnsi(string: StyledString): string {\n function applyDeobfuscation(str: string): string {\n // Use shared deobfuscate function and apply magenta color to identifiers\n const deobfuscated = deobfuscateText(str)\n // Color any {...} wrapped identifiers with magenta\n return deobfuscated.replace(/\\{([^}]+)\\}/g, (match) => magenta(match))\n }\n\n switch (string.type) {\n case 'text':\n return applyDeobfuscation(string.value)\n case 'strong':\n return bold(red(applyDeobfuscation(string.value)))\n case 'code':\n return green(applyDeobfuscation(string.value))\n case 'line':\n return string.value.map(renderStyledStringToErrorAnsi).join('')\n case 'stack':\n return string.value.map(renderStyledStringToErrorAnsi).join('\\n')\n default:\n throw new Error('Unknown StyledString type', string)\n }\n}\n\nexport function isFileSystemCacheEnabledForDev(\n config: NextConfigComplete\n): boolean {\n return config.experimental?.turbopackFileSystemCacheForDev || false\n}\n\nexport function isFileSystemCacheEnabledForBuild(\n config: NextConfigComplete\n): boolean {\n return config.experimental?.turbopackFileSystemCacheForBuild || false\n}\n"],"names":["ModuleBuildError","formatIssue","getIssueKey","isFileSystemCacheEnabledForBuild","isFileSystemCacheEnabledForDev","isRelevantWarning","isWellKnownError","processIssues","renderStyledStringToErrorAnsi","Error","name","issue","title","formattedTitle","includes","severity","filePath","JSON","stringify","description","currentEntryIssues","key","result","throwIssue","logErrors","newIssues","Map","set","relevantIssues","Set","issues","issueKey","formatted","add","Log","error","size","join","source","importTraces","documentationLink","replace","formattedFilePath","replaceAll","message","range","start","line","column","content","isInternal","end","codeFrameColumns","require","forceColor","trim","type","value","length","everyTraceHasADistinctRootLayer","map","leafLayerName","filter","l","i","trace","layer","traceIndent","formatIssueTrace","identicalLayers","items","item","undefined","firstPresentLayer","findIndex","t","itemLayer","indent","printLayers","r","fsName","path","isNodeModulesIssue","stage","match","startsWith","string","applyDeobfuscation","str","deobfuscated","deobfuscateText","magenta","bold","red","green","config","experimental","turbopackFileSystemCacheForDev","turbopackFileSystemCacheForBuild"],"mappings":"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","ignoreList":[0]} |