{"version":3,"sources":["jsdelivr-header.js","/npm/youch@4.1.0/build/index.js"],"names":[],"mappings":"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","file":"/npm/youch@4.1.0/build/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/youch@4.1.0/build/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { n as BaseComponent } from \"./public_dir-C5bujZKB.js\";\nimport { Header } from \"./src/templates/header/main.js\";\nimport { Layout } from \"./src/templates/layout/main.js\";\nimport \"./helpers-B9BQYaS6.js\";\nimport { ErrorInfo } from \"./src/templates/error_info/main.js\";\nimport { ErrorCause } from \"./src/templates/error_cause/main.js\";\nimport { ErrorStack } from \"./src/templates/error_stack/main.js\";\nimport { ErrorMetadata } from \"./src/templates/error_metadata/main.js\";\nimport { ErrorStackSource } from \"./src/templates/error_stack_source/main.js\";\nimport { parse } from \"cookie-es\";\nimport { ErrorParser } from \"youch-core\";\nimport { createScript, createStyleSheet } from \"@poppinss/dumper/html\";\nvar Metadata = class {\n\t#groups = {};\n\t#toArray(value) {\n\t\treturn Array.isArray(value) ? value : [value];\n\t}\n\tgroup(name, sections) {\n\t\tthis.#groups[name] = this.#groups[name] ?? {};\n\t\tObject.keys(sections).forEach((section) => {\n\t\t\tif (!this.#groups[name][section]) this.#groups[name][section] = sections[section];\n\t\t\telse {\n\t\t\t\tthis.#groups[name][section] = this.#toArray(this.#groups[name][section]);\n\t\t\t\tthis.#groups[name][section].push(...this.#toArray(sections[section]));\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t}\n\ttoJSON() {\n\t\treturn this.#groups;\n\t}\n};\nvar Templates = class {\n\t#knownTemplates;\n\t#styles = new Map([[\"global\", createStyleSheet()]]);\n\t#scripts = new Map([[\"global\", createScript()]]);\n\tconstructor(devMode) {\n\t\tthis.devMode = devMode;\n\t\tthis.#knownTemplates = {\n\t\t\tlayout: new Layout(devMode),\n\t\t\theader: new Header(devMode),\n\t\t\terrorInfo: new ErrorInfo(devMode),\n\t\t\terrorStack: new ErrorStack(devMode),\n\t\t\terrorStackSource: new ErrorStackSource(devMode),\n\t\t\terrorCause: new ErrorCause(devMode),\n\t\t\terrorMetadata: new ErrorMetadata(devMode)\n\t\t};\n\t}\n\t#getStylesAndScripts(cspNonce) {\n\t\tlet customInjectedStyles = \"\";\n\t\tlet globalScript = \"\";\n\t\tconst styles = [];\n\t\tconst scripts = [];\n\t\tconst cspNonceAttr = cspNonce ? ` nonce=\"${cspNonce}\"` : \"\";\n\t\tthis.#styles.forEach((bucket, name) => {\n\t\t\tif (name === \"injected\") customInjectedStyles = `<style id=\"${name}-styles\"${cspNonceAttr}>${bucket}</style>`;\n\t\t\telse styles.push(`<style id=\"${name}-styles\"${cspNonceAttr}>${bucket}</style>`);\n\t\t});\n\t\tthis.#scripts.forEach((bucket, name) => {\n\t\t\tif (name === \"global\") globalScript = `<script id=\"${name}-script\"${cspNonceAttr}>${bucket}<\\/script>`;\n\t\t\tscripts.push(`<script id=\"${name}-script\"${cspNonceAttr}>${bucket}<\\/script>`);\n\t\t});\n\t\treturn {\n\t\t\tstyles: `${styles.join(\"\\n\")}\\n${customInjectedStyles}`,\n\t\t\tscripts: scripts.join(\"\\n\"),\n\t\t\tglobalScript\n\t\t};\n\t}\n\tasync #collectStylesAndScripts(templateName) {\n\t\tif (!this.#styles.has(templateName)) {\n\t\t\tconst styles = await this.#knownTemplates[templateName].getStyles();\n\t\t\tif (styles) this.#styles.set(templateName, styles);\n\t\t}\n\t\tif (!this.#scripts.has(templateName)) {\n\t\t\tconst script = await this.#knownTemplates[templateName].getScript();\n\t\t\tif (script) this.#scripts.set(templateName, script);\n\t\t}\n\t}\n\tasync #tmplToHTML(templateName, props) {\n\t\tconst component = this.#knownTemplates[templateName];\n\t\tif (!component) throw new Error(`Invalid template \"${templateName}\"`);\n\t\tawait this.#collectStylesAndScripts(templateName);\n\t\treturn component.toHTML(props);\n\t}\n\tasync #tmplToANSI(templateName, props) {\n\t\tconst component = this.#knownTemplates[templateName];\n\t\tif (!component) throw new Error(`Invalid template \"${templateName}\"`);\n\t\treturn component.toANSI(props);\n\t}\n\tuse(templateName, component) {\n\t\tthis.#knownTemplates[templateName] = component;\n\t\treturn this;\n\t}\n\tinjectStyles(cssFragment) {\n\t\tlet injectedStyles = this.#styles.get(\"injected\") ?? \"\";\n\t\tinjectedStyles += `\\n${cssFragment}`;\n\t\tthis.#styles.set(\"injected\", injectedStyles);\n\t\treturn this;\n\t}\n\tasync toHTML(props) {\n\t\tconst html = await this.#tmplToHTML(\"layout\", {\n\t\t\ttitle: props.title,\n\t\t\tide: props.ide,\n\t\t\tcspNonce: props.cspNonce,\n\t\t\tchildren: async () => {\n\t\t\t\treturn `${await this.#tmplToHTML(\"header\", props)}${await this.#tmplToHTML(\"errorInfo\", props)}${await this.#tmplToHTML(\"errorStack\", {\n\t\t\t\t\tide: process.env.EDITOR ?? \"vscode\",\n\t\t\t\t\tsourceCodeRenderer: (error, frame) => {\n\t\t\t\t\t\treturn this.#tmplToHTML(\"errorStackSource\", {\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tframe,\n\t\t\t\t\t\t\tide: props.ide,\n\t\t\t\t\t\t\tcspNonce: props.cspNonce\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t...props\n\t\t\t\t})}${await this.#tmplToHTML(\"errorCause\", props)}${await this.#tmplToHTML(\"errorMetadata\", props)}`;\n\t\t\t}\n\t\t});\n\t\tconst { globalScript, scripts, styles } = this.#getStylesAndScripts(props.cspNonce);\n\t\treturn html.replace(\"<!-- STYLES -->\", styles).replace(\"<!-- SCRIPTS -->\", scripts).replace(\"<!-- GLOBAL SCRIPT -->\", globalScript);\n\t}\n\tasync toANSI(props) {\n\t\treturn await this.#tmplToANSI(\"layout\", {\n\t\t\ttitle: props.title,\n\t\t\tchildren: async () => {\n\t\t\t\treturn `${await this.#tmplToANSI(\"header\", {})}${await this.#tmplToANSI(\"errorInfo\", props)}${await this.#tmplToANSI(\"errorStack\", {\n\t\t\t\t\tide: process.env.EDITOR ?? \"vscode\",\n\t\t\t\t\tsourceCodeRenderer: (error, frame) => {\n\t\t\t\t\t\treturn this.#tmplToANSI(\"errorStackSource\", {\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tframe\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t...props\n\t\t\t\t})}${await this.#tmplToANSI(\"errorCause\", props)}${await this.#tmplToANSI(\"errorMetadata\", props)}`;\n\t\t\t}\n\t\t});\n\t}\n};\nvar Youch = class {\n\t#sourceLoader;\n\t#parsers = [];\n\t#transformers = [];\n\ttemplates = new Templates(false);\n\tmetadata = new Metadata();\n\t#createErrorParser(options) {\n\t\tconst errorParser = new ErrorParser(options);\n\t\tif (this.#sourceLoader) errorParser.defineSourceLoader(this.#sourceLoader);\n\t\tthis.#parsers.forEach((parser) => errorParser.useParser(parser));\n\t\tthis.#transformers.forEach((transformer) => errorParser.useTransformer(transformer));\n\t\treturn errorParser;\n\t}\n\t#defineRequestMetadataGroup(request) {\n\t\tif (!request || Object.keys(request).length === 0) return;\n\t\tthis.metadata.group(\"Request\", {\n\t\t\t...request.url ? { url: {\n\t\t\t\tkey: \"URL\",\n\t\t\t\tvalue: request.url\n\t\t\t} } : {},\n\t\t\t...request.method ? { method: {\n\t\t\t\tkey: \"Method\",\n\t\t\t\tvalue: request.method\n\t\t\t} } : {},\n\t\t\t...request.headers ? { headers: Object.keys(request.headers).map((key) => {\n\t\t\t\tconst value = request.headers[key];\n\t\t\t\treturn {\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue: key === \"cookie\" ? { ...parse(value) } : value\n\t\t\t\t};\n\t\t\t}) } : {}\n\t\t});\n\t}\n\tdefineSourceLoader(loader) {\n\t\tthis.#sourceLoader = loader;\n\t\treturn this;\n\t}\n\tuseParser(parser) {\n\t\tthis.#parsers.push(parser);\n\t\treturn this;\n\t}\n\tuseTransformer(transformer) {\n\t\tthis.#transformers.push(transformer);\n\t\treturn this;\n\t}\n\tasync toJSON(error, options) {\n\t\toptions = { ...options };\n\t\treturn this.#createErrorParser({ offset: options.offset }).parse(error);\n\t}\n\tasync toHTML(error, options) {\n\t\toptions = { ...options };\n\t\tthis.#defineRequestMetadataGroup(options.request);\n\t\tconst parsedError = await this.#createErrorParser({ offset: options.offset }).parse(error);\n\t\treturn this.templates.toHTML({\n\t\t\ttitle: options.title ?? \"An error has occurred\",\n\t\t\tide: options.ide ?? process.env.IDE ?? \"vscode\",\n\t\t\tcspNonce: options.cspNonce,\n\t\t\terror: parsedError,\n\t\t\tmetadata: this.metadata\n\t\t});\n\t}\n\tasync toANSI(error, options) {\n\t\toptions = { ...options };\n\t\tconst parsedError = await this.#createErrorParser({ offset: options.offset }).parse(error);\n\t\treturn this.templates.toANSI({\n\t\t\ttitle: \"\",\n\t\t\terror: parsedError,\n\t\t\tmetadata: this.metadata\n\t\t});\n\t}\n};\nexport { BaseComponent, Metadata, Youch };\n"]}