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":["bold","green","magenta","red","isInternal","deobfuscateText","Log","ModuleBuildError","Error","name","isWellKnownError","issue","title","formattedTitle","renderStyledStringToErrorAnsi","includes","getIssueKey","severity","filePath","JSON","stringify","description","processIssues","currentEntryIssues","key","result","throwIssue","logErrors","newIssues","Map","set","relevantIssues","Set","issues","issueKey","formatted","formatIssue","add","error","size","join","source","importTraces","documentationLink","replace","formattedFilePath","replaceAll","message","range","start","line","column","content","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","isRelevantWarning","isNodeModulesIssue","stage","match","startsWith","string","applyDeobfuscation","str","deobfuscated","isFileSystemCacheEnabledForDev","config","experimental","turbopackFileSystemCacheForDev","isFileSystemCacheEnabledForBuild","turbopackFileSystemCacheForBuild"],"mappings":"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","ignoreList":[0]} |