@visulima/error 3.0.5 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## @visulima/error [3.0.7](https://github.com/visulima/visulima/compare/@visulima/error@3.0.6...@visulima/error@3.0.7) (2024-03-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **error:** added missing CodeFrameLocation export ([d4144e0](https://github.com/visulima/visulima/commit/d4144e0bd579797c49c9fe5b867289ef89400293))
7
+
8
+ ## @visulima/error [3.0.6](https://github.com/visulima/visulima/compare/@visulima/error@3.0.5...@visulima/error@3.0.6) (2024-03-06)
9
+
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * **@visulima/nextra-theme-docs:** upgraded to 4.0.16
15
+
1
16
  ## @visulima/error [3.0.5](https://github.com/visulima/visulima/compare/@visulima/error@3.0.4...@visulima/error@3.0.5) (2024-03-04)
2
17
 
3
18
 
@@ -1,5 +1,5 @@
1
- import { readFileSync } from 'fs';
2
- import { dirname, resolve } from 'path';
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
3
  import { AnyMap } from '@jridgewell/trace-mapping';
4
4
  export { generatedPositionFor as b, originalPositionFor as c, sourceContentFor as d, traceSegment as e } from '@jridgewell/trace-mapping';
5
5
 
@@ -10,4 +10,4 @@ ${r.message}`,r}},p=y;
10
10
 
11
11
  export { p as a };
12
12
  //# sourceMappingURL=out.js.map
13
- //# sourceMappingURL=chunk-ONFIDS3C.js.map
13
+ //# sourceMappingURL=chunk-7G4U7I4C.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sourcemap/load-source-map.ts","../src/sourcemap/sourcemap.ts"],"names":["readFileSync","dirname","resolve","AnyMap","INLINE_SOURCEMAP_REGEX","SOURCEMAP_REGEX","isInlineMap","url","resolveSourceMapUrl","sourceFile","sourcePath","lines","sourceMapUrl","index","decodeInlineMap","data","rawData","loadSourceMap","filename","sourceMapContent","error","traceMapContent","load_source_map_default","generatedPositionFor","originalPositionFor","sourceContentFor","traceSegment"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,KAC7B,OAAS,WAAAC,EAAS,WAAAC,MAAe,OAGjC,OAAS,UAAAC,MAAc,4BAEvB,IAAMC,EAAyB,sCAEzBC,EAAkB,4GAElBC,EAAeC,GAAyBH,EAAuB,KAAKG,CAAG,EAEvEC,EAAsB,CAACC,EAAoBC,IAA2C,CACxF,IAAMC,EAAQF,EAAW,MAAM,OAAO,EAElCG,EAAe,KAGnB,QAASC,EAAQF,EAAM,OAAS,EAAGE,GAAS,GAAK,CAACD,EAAcC,IAE5DD,EAAeP,EAAgB,KAAKM,EAAME,CAAK,CAAW,EAG9D,GAAKD,EAIL,OAAON,EAAYM,EAAa,CAAC,CAAW,EAAKA,EAAa,CAAC,EAAgBV,EAAQQ,EAAYE,EAAa,CAAC,CAAW,CAChI,EAEME,EAAmBC,GAAiB,CACtC,IAAMC,EAAUD,EAAK,MAAMA,EAAK,QAAQ,GAAG,EAAI,CAAC,EAEhD,OAAO,OAAO,KAAKC,EAAS,QAAQ,EAAE,SAAS,CACnD,EAEMC,EAAiBC,GAA2C,CAC9D,IAAIC,EAEJ,GAAI,CAEAA,EAAmBnB,EAAakB,EAAU,CAAE,SAAU,MAAO,CAAC,CAElE,OAASE,EAAY,CACjB,MAAAA,EAAM,QAAU,qCAAqCF,CAAQ;AAAA,EAAOE,EAAM,OAAO,GAE3EA,CACV,CAEA,IAAMR,EAAeJ,EAAoBW,EAAkBlB,EAAQiB,CAAQ,CAAC,EAE5E,GAAI,CAACN,EACD,OAGJ,IAAIS,EAGJ,GAAIf,EAAYM,CAAY,EACxBS,EAAkBP,EAAgBF,CAAY,MAE9C,IAAI,CAGAS,EAAkBrB,EAAaY,EAAc,CAAE,SAAU,MAAO,CAAC,CAErE,OAASQ,EAAY,CACjB,MAAAA,EAAM,QAAU,qCAAqCF,CAAQ;AAAA,EAAOE,EAAM,OAAO,GAE3EA,CACV,CAGJ,GAAI,CACA,OAAO,IAAIjB,EAAOkB,EAAiBT,CAAY,CAEnD,OAASQ,EAAY,CACjB,MAAAA,EAAM,QAAU,qCAAqCF,CAAQ;AAAA,EAAOE,EAAM,OAAO,GAE3EA,CACV,CACJ,EAEOE,EAAQL,ECjFf,OAAS,wBAAAM,EAAsB,uBAAAC,EAAqB,oBAAAC,EAAkB,gBAAAC,MAAoB","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\n\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport { AnyMap } from \"@jridgewell/trace-mapping\";\n\nconst INLINE_SOURCEMAP_REGEX = /^data:application\\/json[^,]+base64,/;\n// eslint-disable-next-line regexp/no-unused-capturing-group,regexp/no-super-linear-backtracking\nconst SOURCEMAP_REGEX = /\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s'\"]+)[ \\t]*$|\\/\\*[@#][ \\t]+sourceMappingURL=([^*]+?)[ \\t]*\\*\\/[ \\t]*$/;\n\nconst isInlineMap = (url: string): boolean => INLINE_SOURCEMAP_REGEX.test(url);\n\nconst resolveSourceMapUrl = (sourceFile: string, sourcePath: string): string | undefined => {\n const lines = sourceFile.split(/\\r?\\n/);\n\n let sourceMapUrl = null;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let index = lines.length - 1; index >= 0 && !sourceMapUrl; index--) {\n // eslint-disable-next-line security/detect-object-injection\n sourceMapUrl = SOURCEMAP_REGEX.exec(lines[index] as string);\n }\n\n if (!sourceMapUrl) {\n return undefined;\n }\n\n return isInlineMap(sourceMapUrl[1] as string) ? (sourceMapUrl[1] as string) : (resolve(sourcePath, sourceMapUrl[1] as string) as string);\n};\n\nconst decodeInlineMap = (data: string) => {\n const rawData = data.slice(data.indexOf(\",\") + 1);\n\n return Buffer.from(rawData, \"base64\").toString();\n};\n\nconst loadSourceMap = (filename: string): TraceMap | undefined => {\n let sourceMapContent: string | undefined;\n\n try {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n sourceMapContent = readFileSync(filename, { encoding: \"utf8\" });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n error.message = `Error reading sourcemap for file \"${filename}\":\\n${error.message}`;\n\n throw error;\n }\n\n const sourceMapUrl = resolveSourceMapUrl(sourceMapContent, dirname(filename));\n\n if (!sourceMapUrl) {\n return undefined;\n }\n\n let traceMapContent: string | undefined;\n\n // If it's an inline map, decode it and pass it through the same consumer factory\n if (isInlineMap(sourceMapUrl)) {\n traceMapContent = decodeInlineMap(sourceMapUrl);\n } else {\n try {\n // Load actual source map from given path\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n traceMapContent = readFileSync(sourceMapUrl, { encoding: \"utf8\" });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n error.message = `Error reading sourcemap for file \"${filename}\":\\n${error.message}`;\n\n throw error;\n }\n }\n\n try {\n return new AnyMap(traceMapContent, sourceMapUrl);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n error.message = `Error parsing sourcemap for file \"${filename}\":\\n${error.message}`;\n\n throw error;\n }\n};\n\nexport default loadSourceMap;\n","export { default as loadSourceMap } from \"./load-source-map\";\nexport type { TraceMap } from \"@jridgewell/trace-mapping\";\nexport { generatedPositionFor, originalPositionFor, sourceContentFor, traceSegment } from \"@jridgewell/trace-mapping\";\n"]}
1
+ {"version":3,"sources":["../src/sourcemap/load-source-map.ts","../src/sourcemap/sourcemap.ts"],"names":["readFileSync","dirname","resolve","AnyMap","INLINE_SOURCEMAP_REGEX","SOURCEMAP_REGEX","isInlineMap","url","resolveSourceMapUrl","sourceFile","sourcePath","lines","sourceMapUrl","index","decodeInlineMap","data","rawData","loadSourceMap","filename","sourceMapContent","error","traceMapContent","load_source_map_default","generatedPositionFor","originalPositionFor","sourceContentFor","traceSegment"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,UAC7B,OAAS,WAAAC,EAAS,WAAAC,MAAe,YAGjC,OAAS,UAAAC,MAAc,4BAEvB,IAAMC,EAAyB,sCAEzBC,EAAkB,4GAElBC,EAAeC,GAAyBH,EAAuB,KAAKG,CAAG,EAEvEC,EAAsB,CAACC,EAAoBC,IAA2C,CACxF,IAAMC,EAAQF,EAAW,MAAM,OAAO,EAElCG,EAAe,KAGnB,QAASC,EAAQF,EAAM,OAAS,EAAGE,GAAS,GAAK,CAACD,EAAcC,IAE5DD,EAAeP,EAAgB,KAAKM,EAAME,CAAK,CAAW,EAG9D,GAAKD,EAIL,OAAON,EAAYM,EAAa,CAAC,CAAW,EAAKA,EAAa,CAAC,EAAgBV,EAAQQ,EAAYE,EAAa,CAAC,CAAW,CAChI,EAEME,EAAmBC,GAAiB,CACtC,IAAMC,EAAUD,EAAK,MAAMA,EAAK,QAAQ,GAAG,EAAI,CAAC,EAEhD,OAAO,OAAO,KAAKC,EAAS,QAAQ,EAAE,SAAS,CACnD,EAEMC,EAAiBC,GAA2C,CAC9D,IAAIC,EAEJ,GAAI,CAEAA,EAAmBnB,EAAakB,EAAU,CAAE,SAAU,MAAO,CAAC,CAElE,OAASE,EAAY,CACjB,MAAAA,EAAM,QAAU,qCAAqCF,CAAQ;AAAA,EAAOE,EAAM,OAAO,GAE3EA,CACV,CAEA,IAAMR,EAAeJ,EAAoBW,EAAkBlB,EAAQiB,CAAQ,CAAC,EAE5E,GAAI,CAACN,EACD,OAGJ,IAAIS,EAGJ,GAAIf,EAAYM,CAAY,EACxBS,EAAkBP,EAAgBF,CAAY,MAE9C,IAAI,CAGAS,EAAkBrB,EAAaY,EAAc,CAAE,SAAU,MAAO,CAAC,CAErE,OAASQ,EAAY,CACjB,MAAAA,EAAM,QAAU,qCAAqCF,CAAQ;AAAA,EAAOE,EAAM,OAAO,GAE3EA,CACV,CAGJ,GAAI,CACA,OAAO,IAAIjB,EAAOkB,EAAiBT,CAAY,CAEnD,OAASQ,EAAY,CACjB,MAAAA,EAAM,QAAU,qCAAqCF,CAAQ;AAAA,EAAOE,EAAM,OAAO,GAE3EA,CACV,CACJ,EAEOE,EAAQL,ECjFf,OAAS,wBAAAM,EAAsB,uBAAAC,EAAqB,oBAAAC,EAAkB,gBAAAC,MAAoB","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\n\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport { AnyMap } from \"@jridgewell/trace-mapping\";\n\nconst INLINE_SOURCEMAP_REGEX = /^data:application\\/json[^,]+base64,/;\n// eslint-disable-next-line regexp/no-unused-capturing-group,regexp/no-super-linear-backtracking\nconst SOURCEMAP_REGEX = /\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s'\"]+)[ \\t]*$|\\/\\*[@#][ \\t]+sourceMappingURL=([^*]+?)[ \\t]*\\*\\/[ \\t]*$/;\n\nconst isInlineMap = (url: string): boolean => INLINE_SOURCEMAP_REGEX.test(url);\n\nconst resolveSourceMapUrl = (sourceFile: string, sourcePath: string): string | undefined => {\n const lines = sourceFile.split(/\\r?\\n/);\n\n let sourceMapUrl = null;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let index = lines.length - 1; index >= 0 && !sourceMapUrl; index--) {\n // eslint-disable-next-line security/detect-object-injection\n sourceMapUrl = SOURCEMAP_REGEX.exec(lines[index] as string);\n }\n\n if (!sourceMapUrl) {\n return undefined;\n }\n\n return isInlineMap(sourceMapUrl[1] as string) ? (sourceMapUrl[1] as string) : (resolve(sourcePath, sourceMapUrl[1] as string) as string);\n};\n\nconst decodeInlineMap = (data: string) => {\n const rawData = data.slice(data.indexOf(\",\") + 1);\n\n return Buffer.from(rawData, \"base64\").toString();\n};\n\nconst loadSourceMap = (filename: string): TraceMap | undefined => {\n let sourceMapContent: string | undefined;\n\n try {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n sourceMapContent = readFileSync(filename, { encoding: \"utf8\" });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n error.message = `Error reading sourcemap for file \"${filename}\":\\n${error.message}`;\n\n throw error;\n }\n\n const sourceMapUrl = resolveSourceMapUrl(sourceMapContent, dirname(filename));\n\n if (!sourceMapUrl) {\n return undefined;\n }\n\n let traceMapContent: string | undefined;\n\n // If it's an inline map, decode it and pass it through the same consumer factory\n if (isInlineMap(sourceMapUrl)) {\n traceMapContent = decodeInlineMap(sourceMapUrl);\n } else {\n try {\n // Load actual source map from given path\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n traceMapContent = readFileSync(sourceMapUrl, { encoding: \"utf8\" });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n error.message = `Error reading sourcemap for file \"${filename}\":\\n${error.message}`;\n\n throw error;\n }\n }\n\n try {\n return new AnyMap(traceMapContent, sourceMapUrl);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n error.message = `Error parsing sourcemap for file \"${filename}\":\\n${error.message}`;\n\n throw error;\n }\n};\n\nexport default loadSourceMap;\n","export { default as loadSourceMap } from \"./load-source-map\";\nexport type { TraceMap } from \"@jridgewell/trace-mapping\";\nexport { generatedPositionFor, originalPositionFor, sourceContentFor, traceSegment } from \"@jridgewell/trace-mapping\";\n"]}
@@ -1,10 +1,10 @@
1
1
  var A=s=>s.replaceAll(/\r\n|\r(?!\n)|\n/gu,`
2
2
  `),x=A;var O=globalThis.process||Object.create(null),$={versions:{}},v=new Proxy(O,{get(s,r){if(r in s)return s[r];if(r in $)return $[r]}}),F=v;var S=(s,r,L,o)=>{let d={column:0,line:-1,...s.start},g={...d,...s.end},i=d.line,t=d.column,l=g.line,m=g.column,u=Math.max(i-(L+1),0),f=Math.min(r.length,l+o);i===-1&&(u=0),l===-1&&(f=r.length);let p=l-i,n={};if(p)for(let e=0;e<=p;e++){let a=e+i;if(!t)n[a]=!0;else if(e===0){let c=r[a-1]?.length;n[a]=[t,(c??0)-t+1];}else if(e===p)n[a]=[0,m];else {let c=r[a-e]?.length;n[a]=[0,c];}}else t===m?n[i]=t?[t,0]:!0:n[i]=[t,(m??0)-(t??0)];return {end:f,markerLines:n,start:u}},y=S;var j=F.platform==="win32"&&!F.env?.WT_SESSION?">":"\u276F",q=(s,r,L={})=>{let o={color:{gutter:e=>e,marker:e=>e,message:e=>e,...L.color},linesAbove:2,linesBelow:3,showGutter:!0,showLineNumbers:!0,...L},d=r.start&&typeof r.start.column=="number",g=x(s).split(`
3
- `).map(e=>e.replaceAll(" "," ")),{end:i,markerLines:t,start:l}=y(r,g,o.linesAbove,o.linesBelow),m=String(i).length,{gutter:u,marker:f,message:p}=o.color,n=g.slice(l,i).map((e,a)=>{let c=l+1+a,h=t[c],z=` ${c}`.slice(-m),N=!t[c+1],b=` ${z}${o.showGutter?" |":""}`;if(h){let k="";if(Array.isArray(h)){let P=e.replaceAll(/[^\t]/g," ").slice(0,Math.max(h[0]-1,0)),w=h[1]||1;k=[`
4
- `,u(b.replaceAll(/\d/g," "))," ",P,f("^").repeat(w)].join(""),N&&o.message&&(k+=` ${p(o.message)}`);}return [f(j),u(b),e.length>0?` ${e}`:"",k].join("")}return ` ${u(b)}${e.length>0?` ${e}`:""}`}).join(`
3
+ `).map(e=>e.replaceAll(" "," ")),{end:i,markerLines:t,start:l}=y(r,g,o.linesAbove,o.linesBelow),m=String(i).length,{gutter:u,marker:f,message:p}=o.color,n=g.slice(l,i).map((e,a)=>{let c=l+1+a,h=t[c],z=` ${c}`.slice(-m),N=!t[c+1],b=` ${z}${o.showGutter?" |":""}`;if(h){let C="";if(Array.isArray(h)){let P=e.replaceAll(/[^\t]/g," ").slice(0,Math.max(h[0]-1,0)),w=h[1]||1;C=[`
4
+ `,u(b.replaceAll(/\d/g," "))," ",P,f("^").repeat(w)].join(""),N&&o.message&&(C+=` ${p(o.message)}`);}return [f(j),u(b),e.length>0?` ${e}`:"",C].join("")}return ` ${u(b)}${e.length>0?` ${e}`:""}`}).join(`
5
5
  `);return o.message&&!d&&(n=`${" ".repeat(m+1)}${o.message}
6
6
  ${n}`),n};
7
7
 
8
8
  export { q as a };
9
9
  //# sourceMappingURL=out.js.map
10
- //# sourceMappingURL=chunk-7OT5SHJH.js.map
10
+ //# sourceMappingURL=chunk-EIN7B3HV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/normalize-lf.ts","../src/util/process.ts","../src/code-frame/get-marker-lines.ts","../src/code-frame/index.ts"],"names":["normalizeLF","code","normalize_lf_default","_process","processShims","process","target","property","process_default","getMarkerLines","loc","source","linesAbove","linesBelow","startLoc","endLoc","startLine","startColumn","endLine","endColumn","start","end","lineDiff","markerLines","index","lineNumber","sourceLength","get_marker_lines_default","POINTER","codeFrame","options","config","value","hasColumns","lines","ln","numberMaxWidth","colorizeGutter","colorizeMarker","colorizeMessage","frame","line","number","hasMarker","paddedNumber","lastMarkerLine","gutter","markerLine","markerSpacing","numberOfMarkers"],"mappings":"AAAA,IAAMA,EAAeC,GAAyBA,EAAK,WAAW,qBAAsB;AAAA,CAAI,EAEjFC,EAAQF,ECGf,IAAMG,EAAY,WAAW,SAAW,OAAO,OAAO,IAAI,EAEpDC,EAAiC,CACnC,SAAU,CAAC,CACf,EAEMC,EAAU,IAAI,MAAeF,EAAU,CACzC,IAAIG,EAAQC,EAAyB,CACjC,GAAIA,KAAYD,EAEZ,OAAOA,EAAOC,CAAQ,EAG1B,GAAIA,KAAYH,EAEZ,OAAOA,EAAaG,CAAQ,CAIpC,CACJ,CAAC,EAEMC,EAAQH,ECVf,IAAMI,EAAiB,CACnBC,EACAC,EACAC,EACAC,IAMC,CACD,IAAMC,EAA8B,CAChC,OAAQ,EAER,KAAM,GACN,GAAGJ,EAAI,KACX,EACMK,EAA4B,CAC9B,GAAGD,EACH,GAAGJ,EAAI,GACX,EACMM,EAAYF,EAAS,KACrBG,EAAcH,EAAS,OACvBI,EAAUH,EAAO,KACjBI,EAAYJ,EAAO,OAErBK,EAAQ,KAAK,IAAIJ,GAAaJ,EAAa,GAAI,CAAC,EAChDS,EAAM,KAAK,IAAIV,EAAO,OAAQO,EAAUL,CAAU,EAElDG,IAAc,KACdI,EAAQ,GAGRF,IAAY,KACZG,EAAMV,EAAO,QAGjB,IAAMW,EAAWJ,EAAUF,EACrBO,EAA2B,CAAC,EAElC,GAAID,EAEA,QAASE,EAAQ,EAAGA,GAASF,EAAUE,IAAS,CAC5C,IAAMC,EAAaD,EAAQR,EAE3B,GAAI,CAACC,EAEDM,EAAYE,CAAU,EAAI,WACnBD,IAAU,EAAG,CACpB,IAAME,EAAef,EAAOc,EAAa,CAAC,GAAG,OAG7CF,EAAYE,CAAU,EAAI,CAACR,GAAcS,GAAgB,GAAKT,EAAc,CAAC,CACjF,SAAWO,IAAUF,EAEjBC,EAAYE,CAAU,EAAI,CAAC,EAAGN,CAAS,MACpC,CACH,IAAMO,EAAef,EAAOc,EAAaD,CAAK,GAAG,OAGjDD,EAAYE,CAAU,EAAI,CAAC,EAAGC,CAAY,CAC9C,CACJ,MACOT,IAAgBE,EAEvBI,EAAYP,CAAS,EAAIC,EAAc,CAACA,EAAa,CAAC,EAAI,GAG1DM,EAAYP,CAAS,EAAI,CAACC,GAAcE,GAAa,IAAMF,GAAe,EAAE,EAGhF,MAAO,CAAE,IAAAI,EAAK,YAAAE,EAAa,MAAAH,CAAM,CACrC,EAEOO,EAAQlB,EC5Ef,IAAMmB,EAAUpB,EAAQ,WAAa,SAAW,CAACA,EAAQ,KAAM,WAAgB,IAAM,SAGxEqB,EAAY,CACrBlB,EACAD,EACAoB,EAAqC,CAAC,IAE7B,CAET,IAAMC,EAAS,CACX,MAAO,CACH,OAASC,GAAkBA,EAC3B,OAASA,GAAkBA,EAC3B,QAAUA,GAAkBA,EAC5B,GAAGF,EAAQ,KACf,EACA,WAAY,EACZ,WAAY,EACZ,WAAY,GACZ,gBAAiB,GACjB,GAAGA,CACP,EAGMG,EAAavB,EAAI,OAAS,OAAOA,EAAI,MAAM,QAAW,SAEtDwB,EAAQhC,EAAYS,CAAM,EAC3B,MAAM;AAAA,CAAI,EACV,IAAKwB,GAAOA,EAAG,WAAW,IAAM,MAAM,CAAC,EAEtC,CAAE,IAAAd,EAAK,YAAAE,EAAa,MAAAH,CAAM,EAAIO,EAAejB,EAAKwB,EAAOH,EAAO,WAAYA,EAAO,UAAU,EAE7FK,EAAiB,OAAOf,CAAG,EAAE,OAE7B,CACF,OAAQgB,EACR,OAAQC,EACR,QAASC,CACb,EAAIR,EAAO,MAMPS,EAAQN,EACP,MAAMd,EAAOC,CAAG,EAChB,IAAI,CAACoB,EAAMjB,IAAU,CAClB,IAAMkB,EAAStB,EAAQ,EAAII,EAErBmB,EAAYpB,EAAYmB,CAAM,EAC9BE,EAAe,IAAIF,CAAM,GAAG,MAAM,CAACN,CAAc,EACjDS,EAAiB,CAACtB,EAAYmB,EAAS,CAAC,EAExCI,EAAS,IAAIF,CAAY,GAAGb,EAAO,WAAa,KAAO,EAAE,GAE/D,GAAIY,EAAW,CACX,IAAII,EAAa,GAEjB,GAAI,MAAM,QAAQJ,CAAS,EAAG,CAC1B,IAAMK,EAAgBP,EAAK,WAAW,SAAU,GAAG,EAAE,MAAM,EAAG,KAAK,IAAKE,EAAU,CAAC,EAAe,EAAG,CAAC,CAAC,EAEjGM,EAAkBN,EAAU,CAAC,GAAK,EAExCI,EAAa,CAAC;AAAA,GAAOV,EAAeS,EAAO,WAAW,MAAO,GAAG,CAAC,EAAG,IAAKE,EAAeV,EAAe,GAAG,EAAE,OAAOW,CAAe,CAAC,EAAE,KACjI,EACJ,EAEIJ,GAAkBd,EAAO,UACzBgB,GAAc,IAAIR,EAAgBR,EAAO,OAAO,CAAC,GAEzD,CAEA,MAAO,CAACO,EAAeV,CAAO,EAAGS,EAAeS,CAAM,EAAGL,EAAK,OAAS,EAAI,IAAIA,CAAI,GAAK,GAAIM,CAAU,EAAE,KAAK,EAAE,CACnH,CAEA,MAAO,IAAIV,EAAeS,CAAM,CAAC,GAAGL,EAAK,OAAS,EAAI,IAAIA,CAAI,GAAK,EAAE,EACzE,CAAC,EACA,KAAK;AAAA,CAAI,EAEd,OAAIV,EAAO,SAAW,CAACE,IACnBO,EAAQ,GAAG,IAAI,OAAOJ,EAAiB,CAAC,CAAC,GAAGL,EAAO,OAAO;AAAA,EAAKS,CAAK,IAGjEA,CACX","sourcesContent":["const normalizeLF = (code: string): string => code.replaceAll(/\\r\\n|\\r(?!\\n)|\\n/gu, \"\\n\");\n\nexport default normalizeLF;\n","interface Process extends Partial<Omit<typeof globalThis.process, \"versions\">> {\n versions: Record<string, string>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention,@typescript-eslint/no-unnecessary-condition,no-underscore-dangle\nconst _process = (globalThis.process || Object.create(null)) as unknown as Process;\n\nconst processShims: Partial<Process> = {\n versions: {},\n};\n\nconst process = new Proxy<Process>(_process, {\n get(target, property: keyof Process) {\n if (property in target) {\n // eslint-disable-next-line security/detect-object-injection\n return target[property];\n }\n\n if (property in processShims) {\n // eslint-disable-next-line security/detect-object-injection\n return processShims[property];\n }\n\n return undefined;\n },\n});\n\nexport default process;\n","// eslint-disable-next-line no-secrets/no-secrets\n/**\n * This is a copy of the codeFrame function from Babel\n * @see https://github.com/babel/babel/blob/85e649203b61b7c908eb04c05511a0d35f893e8e/packages/babel-code-frame/src/index.ts#L68-L143\n *\n * MIT License\n *\n * Copyright (c) 2014-present Sebastian McKenzie and other contributors\n */\n\n/**\n * Extract what lines should be marked and highlighted.\n */\nimport type { CodeFrameLocation, CodeFrameNodeLocation } from \"./types\";\n\ntype MarkerLines = Record<number, true | [number | undefined, number | undefined]>;\n\nconst getMarkerLines = (\n loc: CodeFrameNodeLocation,\n source: string[],\n linesAbove: number,\n linesBelow: number,\n): {\n end: number;\n markerLines: MarkerLines;\n start: number;\n // eslint-disable-next-line sonarjs/cognitive-complexity\n} => {\n const startLoc: CodeFrameLocation = {\n column: 0,\n // @ts-expect-error Can be overwritten\n line: -1,\n ...loc.start,\n };\n const endLoc: CodeFrameLocation = {\n ...startLoc,\n ...loc.end,\n };\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (let index = 0; index <= lineDiff; index++) {\n const lineNumber = index + startLine;\n\n if (!startColumn) {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = true;\n } else if (index === 0) {\n const sourceLength = source[lineNumber - 1]?.length;\n\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = [startColumn, (sourceLength ?? 0) - startColumn + 1];\n } else if (index === lineDiff) {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - index]?.length;\n\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else if (startColumn === endColumn) {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[startLine] = startColumn ? [startColumn, 0] : true;\n } else {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[startLine] = [startColumn, (endColumn ?? 0) - (startColumn ?? 0)];\n }\n\n return { end, markerLines, start };\n};\n\nexport default getMarkerLines;\n","// eslint-disable-next-line no-secrets/no-secrets\n/**\n * This is a modified copy of the codeFrameColumns function from Babel\n * @see https://github.com/babel/babel/blob/85e649203b61b7c908eb04c05511a0d35f893e8e/packages/babel-code-frame/src/index.ts#L145-L217\n *\n * MIT License\n *\n * Copyright (c) 2014-present Sebastian McKenzie and other contributors\n */\n\nimport normalizeLF from \"../util/normalize-lf\";\nimport process from \"../util/process\";\nimport getMarkerLines from \"./get-marker-lines\";\nimport type { CodeFrameNodeLocation, CodeFrameOptions, ColorizeMethod } from \"./types\";\n\nconst POINTER = process.platform === \"win32\" && !process.env?.[\"WT_SESSION\"] ? \">\" : \"❯\";\n\n/** Generate a code frame from string and an error location */\nexport const codeFrame = (\n source: string,\n loc: CodeFrameNodeLocation,\n options: Partial<CodeFrameOptions> = {},\n // eslint-disable-next-line sonarjs/cognitive-complexity\n): string => {\n // grab 2 lines before, and 3 lines after focused line\n const config = {\n color: {\n gutter: (value: string) => value,\n marker: (value: string) => value,\n message: (value: string) => value,\n ...options.color,\n },\n linesAbove: 2,\n linesBelow: 3,\n showGutter: true,\n showLineNumbers: true,\n ...options,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const lines = normalizeLF(source)\n .split(\"\\n\")\n .map((ln) => ln.replaceAll(\"\\t\", \" \"));\n\n const { end, markerLines, start } = getMarkerLines(loc, lines, config.linesAbove, config.linesBelow);\n\n const numberMaxWidth = String(end).length;\n\n const {\n gutter: colorizeGutter,\n marker: colorizeMarker,\n message: colorizeMessage,\n } = config.color as {\n gutter: ColorizeMethod;\n marker: ColorizeMethod;\n message: ColorizeMethod;\n };\n\n let frame = lines\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n // eslint-disable-next-line security/detect-object-injection\n const hasMarker = markerLines[number];\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const lastMarkerLine = !markerLines[number + 1];\n\n const gutter = ` ${paddedNumber}${config.showGutter ? ` |` : \"\"}`;\n\n if (hasMarker) {\n let markerLine = \"\";\n\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line.replaceAll(/[^\\t]/g, \" \").slice(0, Math.max((hasMarker[0] as number) - 1, 0));\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\"\\n \", colorizeGutter(gutter.replaceAll(/\\d/g, \" \")), \" \", markerSpacing, colorizeMarker(\"^\").repeat(numberOfMarkers)].join(\n \"\",\n );\n\n if (lastMarkerLine && config.message) {\n markerLine += ` ${colorizeMessage(config.message)}`;\n }\n }\n\n return [colorizeMarker(POINTER), colorizeGutter(gutter), line.length > 0 ? ` ${line}` : \"\", markerLine].join(\"\");\n }\n\n return ` ${colorizeGutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n })\n .join(\"\\n\");\n\n if (config.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${config.message}\\n${frame}`;\n }\n\n return frame;\n};\n\nexport type { CodeFrameNodeLocation, CodeFrameOptions, ColorizeMethod } from \"./types\";\n"]}
1
+ {"version":3,"sources":["../src/util/normalize-lf.ts","../src/util/process.ts","../src/code-frame/get-marker-lines.ts","../src/code-frame/index.ts"],"names":["normalizeLF","code","normalize_lf_default","_process","processShims","process","target","property","process_default","getMarkerLines","loc","source","linesAbove","linesBelow","startLoc","endLoc","startLine","startColumn","endLine","endColumn","start","end","lineDiff","markerLines","index","lineNumber","sourceLength","get_marker_lines_default","POINTER","codeFrame","options","config","value","hasColumns","lines","ln","numberMaxWidth","colorizeGutter","colorizeMarker","colorizeMessage","frame","line","number","hasMarker","paddedNumber","lastMarkerLine","gutter","markerLine","markerSpacing","numberOfMarkers"],"mappings":"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","sourcesContent":["const normalizeLF = (code: string): string => code.replaceAll(/\\r\\n|\\r(?!\\n)|\\n/gu, \"\\n\");\n\nexport default normalizeLF;\n","interface Process extends Partial<Omit<typeof globalThis.process, \"versions\">> {\n versions: Record<string, string>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention,@typescript-eslint/no-unnecessary-condition,no-underscore-dangle\nconst _process = (globalThis.process || Object.create(null)) as unknown as Process;\n\nconst processShims: Partial<Process> = {\n versions: {},\n};\n\nconst process = new Proxy<Process>(_process, {\n get(target, property: keyof Process) {\n if (property in target) {\n // eslint-disable-next-line security/detect-object-injection\n return target[property];\n }\n\n if (property in processShims) {\n // eslint-disable-next-line security/detect-object-injection\n return processShims[property];\n }\n\n return undefined;\n },\n});\n\nexport default process;\n","// eslint-disable-next-line no-secrets/no-secrets\n/**\n * This is a copy of the codeFrame function from Babel\n * @see https://github.com/babel/babel/blob/85e649203b61b7c908eb04c05511a0d35f893e8e/packages/babel-code-frame/src/index.ts#L68-L143\n *\n * MIT License\n *\n * Copyright (c) 2014-present Sebastian McKenzie and other contributors\n */\n\n/**\n * Extract what lines should be marked and highlighted.\n */\nimport type { CodeFrameLocation, CodeFrameNodeLocation } from \"./types\";\n\ntype MarkerLines = Record<number, true | [number | undefined, number | undefined]>;\n\nconst getMarkerLines = (\n loc: CodeFrameNodeLocation,\n source: string[],\n linesAbove: number,\n linesBelow: number,\n): {\n end: number;\n markerLines: MarkerLines;\n start: number;\n // eslint-disable-next-line sonarjs/cognitive-complexity\n} => {\n const startLoc: CodeFrameLocation = {\n column: 0,\n // @ts-expect-error Can be overwritten\n line: -1,\n ...loc.start,\n };\n const endLoc: CodeFrameLocation = {\n ...startLoc,\n ...loc.end,\n };\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (let index = 0; index <= lineDiff; index++) {\n const lineNumber = index + startLine;\n\n if (!startColumn) {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = true;\n } else if (index === 0) {\n const sourceLength = source[lineNumber - 1]?.length;\n\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = [startColumn, (sourceLength ?? 0) - startColumn + 1];\n } else if (index === lineDiff) {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - index]?.length;\n\n // eslint-disable-next-line security/detect-object-injection\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else if (startColumn === endColumn) {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[startLine] = startColumn ? [startColumn, 0] : true;\n } else {\n // eslint-disable-next-line security/detect-object-injection\n markerLines[startLine] = [startColumn, (endColumn ?? 0) - (startColumn ?? 0)];\n }\n\n return { end, markerLines, start };\n};\n\nexport default getMarkerLines;\n","// eslint-disable-next-line no-secrets/no-secrets\n/**\n * This is a modified copy of the codeFrameColumns function from Babel\n * @see https://github.com/babel/babel/blob/85e649203b61b7c908eb04c05511a0d35f893e8e/packages/babel-code-frame/src/index.ts#L145-L217\n *\n * MIT License\n *\n * Copyright (c) 2014-present Sebastian McKenzie and other contributors\n */\n\nimport normalizeLF from \"../util/normalize-lf\";\nimport process from \"../util/process\";\nimport getMarkerLines from \"./get-marker-lines\";\nimport type { CodeFrameNodeLocation, CodeFrameOptions, ColorizeMethod } from \"./types\";\n\nconst POINTER = process.platform === \"win32\" && !process.env?.[\"WT_SESSION\"] ? \">\" : \"❯\";\n\n/** Generate a code frame from string and an error location */\nexport const codeFrame = (\n source: string,\n loc: CodeFrameNodeLocation,\n options: Partial<CodeFrameOptions> = {},\n // eslint-disable-next-line sonarjs/cognitive-complexity\n): string => {\n // grab 2 lines before, and 3 lines after focused line\n const config = {\n color: {\n gutter: (value: string) => value,\n marker: (value: string) => value,\n message: (value: string) => value,\n ...options.color,\n },\n linesAbove: 2,\n linesBelow: 3,\n showGutter: true,\n showLineNumbers: true,\n ...options,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const lines = normalizeLF(source)\n .split(\"\\n\")\n .map((ln) => ln.replaceAll(\"\\t\", \" \"));\n\n const { end, markerLines, start } = getMarkerLines(loc, lines, config.linesAbove, config.linesBelow);\n\n const numberMaxWidth = String(end).length;\n\n const {\n gutter: colorizeGutter,\n marker: colorizeMarker,\n message: colorizeMessage,\n } = config.color as {\n gutter: ColorizeMethod;\n marker: ColorizeMethod;\n message: ColorizeMethod;\n };\n\n let frame = lines\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n // eslint-disable-next-line security/detect-object-injection\n const hasMarker = markerLines[number];\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const lastMarkerLine = !markerLines[number + 1];\n\n const gutter = ` ${paddedNumber}${config.showGutter ? ` |` : \"\"}`;\n\n if (hasMarker) {\n let markerLine = \"\";\n\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line.replaceAll(/[^\\t]/g, \" \").slice(0, Math.max((hasMarker[0] as number) - 1, 0));\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\"\\n \", colorizeGutter(gutter.replaceAll(/\\d/g, \" \")), \" \", markerSpacing, colorizeMarker(\"^\").repeat(numberOfMarkers)].join(\n \"\",\n );\n\n if (lastMarkerLine && config.message) {\n markerLine += ` ${colorizeMessage(config.message)}`;\n }\n }\n\n return [colorizeMarker(POINTER), colorizeGutter(gutter), line.length > 0 ? ` ${line}` : \"\", markerLine].join(\"\");\n }\n\n return ` ${colorizeGutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n })\n .join(\"\\n\");\n\n if (config.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${config.message}\\n${frame}`;\n }\n\n return frame;\n};\n\nexport type { CodeFrameLocation, CodeFrameNodeLocation, CodeFrameOptions, ColorizeMethod } from \"./types\";\n"]}
@@ -1,7 +1,7 @@
1
- import { inspect } from 'util';
1
+ import { inspect } from 'node:util';
2
2
 
3
3
  var m=i=>{let r=new Set,e=[],t=i;for(;t;){if(r.has(t)){console.error(`Circular reference detected in error causes: ${inspect(i)}`);break}if(e.push(t),r.add(t),!t.cause)break;t=t.cause;}return e},h=m;var d=i=>i instanceof Error&&i.type==="VisulimaError",s=class extends Error{loc;title;hint;type="VisulimaError";constructor(r,...e){super(...e);let{hint:t,location:c,message:o,name:u,stack:l,title:p}=r;this.title=p,this.name=u,o&&(this.message=o),this.stack=l??this.stack,this.loc=c,this.hint=t,Error.captureStackTrace(this,this.constructor);}setLocation(r){this.loc=r;}setName(r){this.name=r;}setMessage(r){this.message=r;}setHint(r){this.hint=r;}};
4
4
 
5
5
  export { h as a, d as b, s as c };
6
6
  //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-RA3LOUJQ.js.map
7
+ //# sourceMappingURL=chunk-HAVTTG7L.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/error/get-error-causes.ts","../src/error/visulima-error.ts"],"names":["inspect","getErrorCauses","error","seen","causes","currentError","get_error_causes_default","isVisulimaError","VisulimaError","properties","parameters","hint","location","message","name","stack","title"],"mappings":"AAAA,OAAS,WAAAA,MAAe,OAQxB,IAAMC,EAAuDC,GAAkB,CAC3E,IAAMC,EAAO,IAAI,IACXC,EAAS,CAAC,EAGZC,EAAwBH,EAG5B,KAAOG,GAAc,CAEjB,GAAIF,EAAK,IAAIE,CAAY,EAAG,CAExB,QAAQ,MAAM,gDAAgDL,EAAQE,CAAK,CAAC,EAAE,EAE9E,KACJ,CAKA,GAHAE,EAAO,KAAKC,CAAY,EACxBF,EAAK,IAAIE,CAAY,EAEjB,CAACA,EAAa,MACd,MAGJA,EAAeA,EAAa,KAChC,CAEA,OAAOD,CACX,EAEOE,EAAQL,ECpCR,IAAMM,EAAmBL,GAA2CA,aAAiB,OAAUA,EAAwB,OAAS,gBAE1HM,EAAN,cAA4B,KAAM,CAC9B,IAEA,MAKA,KAEA,KAAO,gBAGP,YAAYC,KAAgCC,EAAiB,CAEhE,MAAM,GAAGA,CAAU,EAEnB,GAAM,CAAE,KAAAC,EAAM,SAAAC,EAAU,QAAAC,EAAS,KAAAC,EAAM,MAAAC,EAAO,MAAAC,CAAM,EAAIP,EACxD,KAAK,MAAQO,EACb,KAAK,KAAOF,EAERD,IACA,KAAK,QAAUA,GAInB,KAAK,MAAQE,GAAU,KAAK,MAC5B,KAAK,IAAMH,EACX,KAAK,KAAOD,EAEZ,MAAM,kBAAkB,KAAM,KAAK,WAAW,CAClD,CAEO,YAAYC,EAA+B,CAC9C,KAAK,IAAMA,CACf,CAEO,QAAQE,EAAoB,CAC/B,KAAK,KAAOA,CAChB,CAEO,WAAWD,EAAuB,CACrC,KAAK,QAAUA,CACnB,CAEO,QAAQF,EAAuB,CAClC,KAAK,KAAOA,CAChB,CACJ","sourcesContent":["import { inspect } from \"node:util\";\n\nimport type { VisulimaError } from \"./visulima-error\";\n\n/**\n * Will return an array of all causes in the error in the order they occurred.\n */\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nconst getErrorCauses = <E = Error | VisulimaError | unknown>(error: E): E[] => {\n const seen = new Set();\n const causes = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-redundant-type-constituents\n let currentError: E | any = error;\n\n // eslint-disable-next-line no-loops/no-loops\n while (currentError) {\n // Check for circular reference\n if (seen.has(currentError)) {\n // eslint-disable-next-line no-console\n console.error(`Circular reference detected in error causes: ${inspect(error)}`);\n\n break;\n }\n\n causes.push(currentError);\n seen.add(currentError);\n\n if (!currentError.cause) {\n break;\n }\n\n currentError = currentError.cause;\n }\n\n return causes as E[];\n};\n\nexport default getErrorCauses;\n","import type { ErrorHint, ErrorLocation, ErrorProperties } from \"./types\";\n\nexport const isVisulimaError = (error: unknown): error is VisulimaError => error instanceof Error && (error as VisulimaError).type === \"VisulimaError\";\n\nexport class VisulimaError extends Error {\n public loc: ErrorLocation | undefined;\n\n public title: string | undefined;\n\n /**\n * A message that explains to the user how they can fix the error.\n */\n public hint: ErrorHint | undefined;\n\n public type = \"VisulimaError\";\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n public constructor(properties: ErrorProperties, ...parameters: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n super(...parameters);\n\n const { hint, location, message, name, stack, title } = properties;\n this.title = title;\n this.name = name;\n\n if (message) {\n this.message = message;\n }\n\n // Only set this if we actually have a stack passed, otherwise uses Error's\n this.stack = stack ?? (this.stack as string);\n this.loc = location;\n this.hint = hint;\n\n Error.captureStackTrace(this, this.constructor);\n }\n\n public setLocation(location: ErrorLocation): void {\n this.loc = location;\n }\n\n public setName(name: string): void {\n this.name = name;\n }\n\n public setMessage(message: string): void {\n this.message = message;\n }\n\n public setHint(hint: ErrorHint): void {\n this.hint = hint;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/error/get-error-causes.ts","../src/error/visulima-error.ts"],"names":["inspect","getErrorCauses","error","seen","causes","currentError","get_error_causes_default","isVisulimaError","VisulimaError","properties","parameters","hint","location","message","name","stack","title"],"mappings":"AAAA,OAAS,WAAAA,MAAe,YAQxB,IAAMC,EAAuDC,GAAkB,CAC3E,IAAMC,EAAO,IAAI,IACXC,EAAS,CAAC,EAGZC,EAAwBH,EAG5B,KAAOG,GAAc,CAEjB,GAAIF,EAAK,IAAIE,CAAY,EAAG,CAExB,QAAQ,MAAM,gDAAgDL,EAAQE,CAAK,CAAC,EAAE,EAE9E,KACJ,CAKA,GAHAE,EAAO,KAAKC,CAAY,EACxBF,EAAK,IAAIE,CAAY,EAEjB,CAACA,EAAa,MACd,MAGJA,EAAeA,EAAa,KAChC,CAEA,OAAOD,CACX,EAEOE,EAAQL,ECpCR,IAAMM,EAAmBL,GAA2CA,aAAiB,OAAUA,EAAwB,OAAS,gBAE1HM,EAAN,cAA4B,KAAM,CAC9B,IAEA,MAKA,KAEA,KAAO,gBAGP,YAAYC,KAAgCC,EAAiB,CAEhE,MAAM,GAAGA,CAAU,EAEnB,GAAM,CAAE,KAAAC,EAAM,SAAAC,EAAU,QAAAC,EAAS,KAAAC,EAAM,MAAAC,EAAO,MAAAC,CAAM,EAAIP,EACxD,KAAK,MAAQO,EACb,KAAK,KAAOF,EAERD,IACA,KAAK,QAAUA,GAInB,KAAK,MAAQE,GAAU,KAAK,MAC5B,KAAK,IAAMH,EACX,KAAK,KAAOD,EAEZ,MAAM,kBAAkB,KAAM,KAAK,WAAW,CAClD,CAEO,YAAYC,EAA+B,CAC9C,KAAK,IAAMA,CACf,CAEO,QAAQE,EAAoB,CAC/B,KAAK,KAAOA,CAChB,CAEO,WAAWD,EAAuB,CACrC,KAAK,QAAUA,CACnB,CAEO,QAAQF,EAAuB,CAClC,KAAK,KAAOA,CAChB,CACJ","sourcesContent":["import { inspect } from \"node:util\";\n\nimport type { VisulimaError } from \"./visulima-error\";\n\n/**\n * Will return an array of all causes in the error in the order they occurred.\n */\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nconst getErrorCauses = <E = Error | VisulimaError | unknown>(error: E): E[] => {\n const seen = new Set();\n const causes = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-redundant-type-constituents\n let currentError: E | any = error;\n\n // eslint-disable-next-line no-loops/no-loops\n while (currentError) {\n // Check for circular reference\n if (seen.has(currentError)) {\n // eslint-disable-next-line no-console\n console.error(`Circular reference detected in error causes: ${inspect(error)}`);\n\n break;\n }\n\n causes.push(currentError);\n seen.add(currentError);\n\n if (!currentError.cause) {\n break;\n }\n\n currentError = currentError.cause;\n }\n\n return causes as E[];\n};\n\nexport default getErrorCauses;\n","import type { ErrorHint, ErrorLocation, ErrorProperties } from \"./types\";\n\nexport const isVisulimaError = (error: unknown): error is VisulimaError => error instanceof Error && (error as VisulimaError).type === \"VisulimaError\";\n\nexport class VisulimaError extends Error {\n public loc: ErrorLocation | undefined;\n\n public title: string | undefined;\n\n /**\n * A message that explains to the user how they can fix the error.\n */\n public hint: ErrorHint | undefined;\n\n public type = \"VisulimaError\";\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n public constructor(properties: ErrorProperties, ...parameters: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n super(...parameters);\n\n const { hint, location, message, name, stack, title } = properties;\n this.title = title;\n this.name = name;\n\n if (message) {\n this.message = message;\n }\n\n // Only set this if we actually have a stack passed, otherwise uses Error's\n this.stack = stack ?? (this.stack as string);\n this.loc = location;\n this.hint = hint;\n\n Error.captureStackTrace(this, this.constructor);\n }\n\n public setLocation(location: ErrorLocation): void {\n this.loc = location;\n }\n\n public setName(name: string): void {\n this.name = name;\n }\n\n public setMessage(message: string): void {\n this.message = message;\n }\n\n public setHint(hint: ErrorHint): void {\n this.hint = hint;\n }\n}\n"]}
@@ -22,4 +22,4 @@ type CodeFrameOptions = {
22
22
 
23
23
  declare const codeFrame: (source: string, loc: CodeFrameNodeLocation, options?: Partial<CodeFrameOptions>) => string;
24
24
 
25
- export { type CodeFrameNodeLocation, type CodeFrameOptions, type ColorizeMethod, codeFrame };
25
+ export { type CodeFrameLocation, type CodeFrameNodeLocation, type CodeFrameOptions, type ColorizeMethod, codeFrame };
@@ -1,3 +1,3 @@
1
- export { a as codeFrame } from '../chunk-7OT5SHJH.js';
1
+ export { a as codeFrame } from '../chunk-EIN7B3HV.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- export { c as VisulimaError, a as getErrorCauses, b as isVisulimaError } from '../chunk-RA3LOUJQ.js';
1
+ export { c as VisulimaError, a as getErrorCauses, b as isVisulimaError } from '../chunk-HAVTTG7L.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { CodeFrameNodeLocation, CodeFrameOptions, ColorizeMethod, codeFrame } from './code-frame/index.js';
1
+ export { CodeFrameLocation, CodeFrameNodeLocation, CodeFrameOptions, ColorizeMethod, codeFrame } from './code-frame/index.js';
2
2
  export { ErrorHint, ErrorLocation, ErrorProperties, VisulimaError, getErrorCauses, isVisulimaError } from './error/index.js';
3
3
  export { loadSourceMap } from './sourcemap/index.js';
4
4
  export { TraceMap, generatedPositionFor, originalPositionFor, sourceContentFor, traceSegment } from '@jridgewell/trace-mapping';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { a as codeFrame } from './chunk-7OT5SHJH.js';
2
- export { c as VisulimaError, a as getErrorCauses, b as isVisulimaError } from './chunk-RA3LOUJQ.js';
3
- export { b as generatedPositionFor, a as loadSourceMap, c as originalPositionFor, d as sourceContentFor, e as traceSegment } from './chunk-ONFIDS3C.js';
1
+ export { a as codeFrame } from './chunk-EIN7B3HV.js';
2
+ export { c as VisulimaError, a as getErrorCauses, b as isVisulimaError } from './chunk-HAVTTG7L.js';
3
+ export { b as generatedPositionFor, a as loadSourceMap, c as originalPositionFor, d as sourceContentFor, e as traceSegment } from './chunk-7G4U7I4C.js';
4
4
  export { a as parseStacktrace } from './chunk-57YC2IM6.js';
5
5
  //# sourceMappingURL=out.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- export { b as generatedPositionFor, a as loadSourceMap, c as originalPositionFor, d as sourceContentFor, e as traceSegment } from '../chunk-ONFIDS3C.js';
1
+ export { b as generatedPositionFor, a as loadSourceMap, c as originalPositionFor, d as sourceContentFor, e as traceSegment } from '../chunk-7G4U7I4C.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/error",
3
- "version": "3.0.5",
3
+ "version": "3.0.7",
4
4
  "description": "Error with more than just a message, stacktrace parsing and sourcemap loading.",
5
5
  "keywords": [
6
6
  "visulima",
@@ -81,8 +81,8 @@
81
81
  "LICENSE.md"
82
82
  ],
83
83
  "scripts": {
84
- "build": "rimraf dist && cross-env NODE_ENV=development tsup",
85
- "build:prod": "rimraf dist && cross-env NODE_ENV=production tsup",
84
+ "build": "cross-env NODE_ENV=development tsup",
85
+ "build:prod": "cross-env NODE_ENV=production tsup",
86
86
  "clean": "rimraf node_modules dist .eslintcache",
87
87
  "dev": "pnpm run build --watch",
88
88
  "lint:eslint": "eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs",
@@ -113,7 +113,7 @@
113
113
  "@total-typescript/ts-reset": "^0.5.1",
114
114
  "@types/command-line-args": "^5.2.3",
115
115
  "@types/node": "18.18.14",
116
- "@visulima/nextra-theme-docs": "4.0.15",
116
+ "@visulima/nextra-theme-docs": "4.0.16",
117
117
  "@vitest/coverage-v8": "^1.3.1",
118
118
  "@vitest/ui": "^1.3.1",
119
119
  "cross-env": "^7.0.3",
@@ -128,7 +128,7 @@
128
128
  "semantic-release": "^23.0.2",
129
129
  "sort-package-json": "^2.8.0",
130
130
  "tsup": "^8.0.2",
131
- "typescript": "^5.3.3",
131
+ "typescript": "^5.4.2",
132
132
  "vitest": "^1.3.1"
133
133
  },
134
134
  "engines": {