sonda 0.3.0 → 0.4.0
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 +12 -0
- package/README.md +1 -0
- package/dist/bundlers/esbuild.d.ts.map +1 -1
- package/dist/bundlers/rollup.d.ts.map +1 -1
- package/dist/bundlers/webpack.d.ts.map +1 -1
- package/dist/index.cjs +46 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.html +2 -3
- package/dist/index.js +47 -40
- package/dist/index.js.map +1 -1
- package/dist/report/generate.d.ts +1 -1
- package/dist/report/generate.d.ts.map +1 -1
- package/dist/utils.d.ts +4 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ca8322a: Add modal showing list of duplicated modules
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- e20ec92: Rollup plugin: Fix detection of the ES modules when `@rollup/plugin-commonjs` plugin is not installed
|
|
12
|
+
- 52ae692: Update dependencies
|
|
13
|
+
- e20ec92: Webpack plugin: Fix reported files sizes, which sometimes included imported dependencies.
|
|
14
|
+
|
|
3
15
|
## 0.3.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ Sonda works with the following bundlers:
|
|
|
8
8
|
* Rollup
|
|
9
9
|
* esbuild
|
|
10
10
|
* webpack
|
|
11
|
+
* Rspack
|
|
11
12
|
|
|
12
13
|

|
|
13
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../../src/bundlers/esbuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../../src/bundlers/esbuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,UAAU,CAAC;AAEpD,wBAAgB,kBAAkB,CAAE,OAAO,GAAE,OAAO,CAAC,OAAO,CAAM,GAAI,MAAM,CA+C3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/bundlers/rollup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAqD,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/bundlers/rollup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAqD,MAAM,QAAQ,CAAC;AAExF,wBAAgB,iBAAiB,CAAE,OAAO,GAAE,OAAO,CAAC,OAAO,CAAM,GAAI,MAAM,CA6B1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../../src/bundlers/webpack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../../src/bundlers/webpack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,UAAU,CAAC;AAElE,qBAAa,kBAAkB;IAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAEZ,OAAO,GAAE,OAAO,CAAC,OAAO,CAAM;IAI5C,KAAK,CAAE,QAAQ,EAAE,QAAQ,GAAI,IAAI;CAyCjC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,33 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var path = require('path');
|
|
4
|
+
var remapping = require('@ampproject/remapping');
|
|
4
5
|
var fs = require('fs');
|
|
5
6
|
var url = require('url');
|
|
6
7
|
var sourcemapCodec = require('@jridgewell/sourcemap-codec');
|
|
7
|
-
var remapping = require('@ampproject/remapping');
|
|
8
8
|
var zlib = require('zlib');
|
|
9
9
|
|
|
10
10
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
11
|
-
const cwd = /* #__PURE__ */ process.cwd();
|
|
12
|
-
function normalizeOptions(options) {
|
|
13
|
-
const defaultOptions = {
|
|
14
|
-
open: true,
|
|
15
|
-
format: 'html',
|
|
16
|
-
detailed: false,
|
|
17
|
-
gzip: false,
|
|
18
|
-
brotli: false
|
|
19
|
-
};
|
|
20
|
-
return Object.assign({}, defaultOptions, options);
|
|
21
|
-
}
|
|
22
|
-
function normalizePath(path$1) {
|
|
23
|
-
// Unicode escape sequences used by Rollup and Vite to identify virtual modules
|
|
24
|
-
const normalized = path$1.replace(/^\0/, '');
|
|
25
|
-
// Transform absolute paths to relative paths
|
|
26
|
-
const relativized = path.relative(cwd, normalized);
|
|
27
|
-
// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687
|
|
28
|
-
return relativized.replaceAll(path.sep, path.posix.sep);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
11
|
/**
|
|
32
12
|
* Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),
|
|
33
13
|
* and parses the string as JSON.
|
|
@@ -124,6 +104,27 @@ function parseDataUrl(url) {
|
|
|
124
104
|
});
|
|
125
105
|
}
|
|
126
106
|
|
|
107
|
+
const cjsRegex = /\.c[tj]sx?$/;
|
|
108
|
+
const jsRegexp = /\.[cm]?[tj]s[x]?$/;
|
|
109
|
+
function normalizeOptions(options) {
|
|
110
|
+
const defaultOptions = {
|
|
111
|
+
open: true,
|
|
112
|
+
format: 'html',
|
|
113
|
+
detailed: false,
|
|
114
|
+
gzip: false,
|
|
115
|
+
brotli: false
|
|
116
|
+
};
|
|
117
|
+
return Object.assign({}, defaultOptions, options);
|
|
118
|
+
}
|
|
119
|
+
function normalizePath(pathToNormalize) {
|
|
120
|
+
// Unicode escape sequences used by Rollup and Vite to identify virtual modules
|
|
121
|
+
const normalized = pathToNormalize.replace(/^\0/, '');
|
|
122
|
+
// Transform absolute paths to relative paths
|
|
123
|
+
const relativized = path.relative(process.cwd(), normalized);
|
|
124
|
+
// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687
|
|
125
|
+
return relativized.replaceAll(path.win32.sep, path.posix.sep);
|
|
126
|
+
}
|
|
127
|
+
|
|
127
128
|
function mapSourceMap(map, dirPath, inputs) {
|
|
128
129
|
const alreadyRemapped = new Set();
|
|
129
130
|
const remapped = remapping(map, (file, ctx)=>{
|
|
@@ -299,11 +300,18 @@ function hasCodeAndMap(result) {
|
|
|
299
300
|
return Boolean(result && result.code && result.map);
|
|
300
301
|
}
|
|
301
302
|
|
|
302
|
-
async function generateReportFromAssets(assets, inputs,
|
|
303
|
-
const
|
|
303
|
+
async function generateReportFromAssets(assets, inputs, userOptions) {
|
|
304
|
+
const options = normalizeOptions(userOptions);
|
|
304
305
|
const handler = options.format === 'html' ? saveHtml : saveJson;
|
|
305
306
|
const path = handler(assets, inputs, options);
|
|
306
|
-
options.open
|
|
307
|
+
if (!options.open || !path) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* `open` is ESM-only package, so we need to import it
|
|
312
|
+
* dynamically to make it work in CommonJS environment.
|
|
313
|
+
*/ const { default: open } = await import('open');
|
|
314
|
+
open(path);
|
|
307
315
|
}
|
|
308
316
|
function saveHtml(assets, inputs, options) {
|
|
309
317
|
const report = generateHtmlReport(assets, inputs, options);
|
|
@@ -318,19 +326,18 @@ function saveJson(assets, inputs, options) {
|
|
|
318
326
|
return path$1;
|
|
319
327
|
}
|
|
320
328
|
|
|
321
|
-
function SondaEsbuildPlugin(options) {
|
|
329
|
+
function SondaEsbuildPlugin(options = {}) {
|
|
322
330
|
return {
|
|
323
331
|
name: 'sonda',
|
|
324
332
|
setup (build) {
|
|
325
333
|
build.initialOptions.metafile = true;
|
|
334
|
+
// Esbuild already reads the existing source maps, so there's no need to do it again
|
|
335
|
+
options.detailed = false;
|
|
326
336
|
build.onEnd((result)=>{
|
|
327
337
|
if (!result.metafile) {
|
|
328
338
|
return console.error('Metafile is required for SondaEsbuildPlugin to work.');
|
|
329
339
|
}
|
|
330
340
|
const cwd = process.cwd();
|
|
331
|
-
const normalizedOptions = normalizeOptions(options);
|
|
332
|
-
// Esbuild already reads the existing source maps, so there's no need to do it again
|
|
333
|
-
normalizedOptions.detailed = false;
|
|
334
341
|
const inputs = Object.entries(result.metafile.inputs).reduce((acc, [path$1, data])=>{
|
|
335
342
|
acc[path$1] = {
|
|
336
343
|
bytes: data.bytes,
|
|
@@ -346,22 +353,20 @@ function SondaEsbuildPlugin(options) {
|
|
|
346
353
|
*/ addSourcesToInputs(path.resolve(cwd, path$1), acc);
|
|
347
354
|
return acc;
|
|
348
355
|
}, {});
|
|
349
|
-
return generateReportFromAssets(Object.keys(result.metafile.outputs), inputs,
|
|
356
|
+
return generateReportFromAssets(Object.keys(result.metafile.outputs).map((path$1)=>path.resolve(cwd, path$1)), inputs, options);
|
|
350
357
|
});
|
|
351
358
|
}
|
|
352
359
|
};
|
|
353
360
|
}
|
|
354
361
|
|
|
355
|
-
|
|
356
|
-
const cjsRegex = /\.c[tj]sx?$/;
|
|
357
|
-
function SondaRollupPlugin(options) {
|
|
362
|
+
function SondaRollupPlugin(options = {}) {
|
|
358
363
|
let inputs = {};
|
|
359
364
|
return {
|
|
360
365
|
name: 'sonda',
|
|
361
366
|
writeBundle ({ dir, file }, bundle) {
|
|
362
367
|
const outputDir = path.resolve(process.cwd(), dir ?? path.dirname(file));
|
|
363
368
|
const assets = Object.keys(bundle).map((name)=>path.join(outputDir, name));
|
|
364
|
-
return generateReportFromAssets(assets, inputs,
|
|
369
|
+
return generateReportFromAssets(assets, inputs, options);
|
|
365
370
|
},
|
|
366
371
|
moduleParsed (module) {
|
|
367
372
|
inputs[normalizePath(module.id)] = {
|
|
@@ -377,13 +382,12 @@ function getFormat$1(moduleId, isCommonJS) {
|
|
|
377
382
|
if (isCommonJS === true || cjsRegex.test(moduleId)) {
|
|
378
383
|
return 'cjs';
|
|
379
384
|
}
|
|
380
|
-
if (isCommonJS === false ||
|
|
385
|
+
if (isCommonJS === false || jsRegexp.test(moduleId)) {
|
|
381
386
|
return 'esm';
|
|
382
387
|
}
|
|
383
388
|
return 'unknown';
|
|
384
389
|
}
|
|
385
390
|
|
|
386
|
-
const jsRegexp = /\.[c|m]?[t|j]s[x]?$/;
|
|
387
391
|
class SondaWebpackPlugin {
|
|
388
392
|
apply(compiler) {
|
|
389
393
|
compiler.options.output.devtoolModuleFilenameTemplate = '[absolute-resource-path]';
|
|
@@ -394,7 +398,10 @@ class SondaWebpackPlugin {
|
|
|
394
398
|
providedExports: true
|
|
395
399
|
});
|
|
396
400
|
const outputPath = stats.outputPath || compiler.outputPath;
|
|
397
|
-
const modules = stats.modules?.
|
|
401
|
+
const modules = stats.modules?.flatMap((mod)=>mod.modules ? [
|
|
402
|
+
mod,
|
|
403
|
+
...mod.modules
|
|
404
|
+
] : mod).filter((mod)=>mod.nameForCondition && !mod.codeGenerated).filter((mod, index, self)=>self.findIndex((m)=>m.nameForCondition === mod.nameForCondition) === index) || [];
|
|
398
405
|
modules.forEach((module)=>{
|
|
399
406
|
const imports = modules.reduce((acc, { nameForCondition, issuerName, reasons })=>{
|
|
400
407
|
if (issuerName === module.name || reasons?.some((reason)=>reason.resolvedModule === module.name)) {
|
|
@@ -409,11 +416,11 @@ class SondaWebpackPlugin {
|
|
|
409
416
|
belongsTo: null
|
|
410
417
|
};
|
|
411
418
|
});
|
|
412
|
-
return generateReportFromAssets(stats.assets?.map((asset)=>path.join(outputPath, asset.name)) || [], inputs,
|
|
419
|
+
return generateReportFromAssets(stats.assets?.map((asset)=>path.join(outputPath, asset.name)) || [], inputs, this.options);
|
|
413
420
|
});
|
|
414
421
|
}
|
|
415
|
-
constructor(options){
|
|
416
|
-
this.options = options
|
|
422
|
+
constructor(options = {}){
|
|
423
|
+
this.options = options;
|
|
417
424
|
}
|
|
418
425
|
}
|
|
419
426
|
function getFormat(module) {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/utils.ts","../../load-source-map/dist/index.js","../src/sourcemap/map.ts","../src/sourcemap/bytes.ts","../src/report.ts","../src/report/generate.ts","../src/bundlers/esbuild.ts","../src/bundlers/rollup.ts","../src/bundlers/webpack.ts"],"sourcesContent":["import { relative, posix, sep } from 'path';\nimport type { Options } from './types';\n\nconst cwd = /* #__PURE__ */ process.cwd();\n\nexport function normalizeOptions( options?: Partial<Options> ) {\n\tconst defaultOptions: Options = {\n\t\topen: true,\n\t\tformat: 'html',\n\t\tdetailed: false,\n\t\tgzip: false,\n\t\tbrotli: false,\n\t};\n\n\treturn Object.assign( {}, defaultOptions, options ) as Options;\n}\n\nexport function normalizePath( path: string ): string {\n\t// Unicode escape sequences used by Rollup and Vite to identify virtual modules\n\tconst normalized = path.replace( /^\\0/, '' )\n\n\t// Transform absolute paths to relative paths\n\tconst relativized = relative( cwd, normalized );\n\n\t// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687\n\treturn relativized.replaceAll( sep, posix.sep );\n}\n","import { existsSync, readFileSync } from 'fs';\nimport { join, dirname, isAbsolute, resolve } from 'path';\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),\n * and parses the string as JSON.\n *\n * https://github.com/mozilla/source-map/blob/3cb92cc3b73bfab27c146bae4ef2bc09dbb4e5ed/lib/util.js#L162-L164\n */ function parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\n/**\n\tsourceMappingURL=data:application/json;charset=utf-8;base64,data\n\tsourceMappingURL=data:application/json;base64,data\n\tsourceMappingURL=data:application/json;uri,data\n\tsourceMappingURL=map-file-comment.css.map\n\tsourceMappingURL=map-file-comment.css.map?query=value\n*/ const sourceMappingRegExp = /[@#]\\s*sourceMappingURL=(\\S+)\\b/g;\nfunction loadCodeAndMap(codePath) {\n if (!existsSync(codePath)) {\n return null;\n }\n const code = readFileSync(codePath, 'utf-8');\n const extractedComment = code.includes('sourceMappingURL') && Array.from(code.matchAll(sourceMappingRegExp)).at(-1);\n if (!extractedComment || !extractedComment.length) {\n return {\n code\n };\n }\n const maybeMap = loadMap(codePath, extractedComment[1]);\n if (!maybeMap) {\n return {\n code\n };\n }\n const { map, mapPath } = maybeMap;\n map.sources = normalizeSourcesPaths(map, mapPath);\n map.sourcesContent = loadMissingSourcesContent(map);\n delete map.sourceRoot;\n return {\n code,\n map\n };\n}\nfunction loadMap(codePath, sourceMappingURL) {\n if (sourceMappingURL.startsWith('data:')) {\n const map = parseDataUrl(sourceMappingURL);\n return {\n map: parseSourceMapInput(map),\n mapPath: codePath\n };\n }\n const sourceMapFilename = new URL(sourceMappingURL, 'file://').pathname;\n const mapPath = join(dirname(codePath), sourceMapFilename);\n if (!existsSync(mapPath)) {\n return null;\n }\n return {\n map: parseSourceMapInput(readFileSync(mapPath, 'utf-8')),\n mapPath\n };\n}\nfunction parseDataUrl(url) {\n const [prefix, payload] = url.split(',');\n const encoding = prefix.split(';').at(-1);\n switch(encoding){\n case 'base64':\n return Buffer.from(payload, 'base64').toString();\n case 'uri':\n return decodeURIComponent(payload);\n default:\n throw new Error('Unsupported source map encoding: ' + encoding);\n }\n}\n/**\n * Normalize the paths of the sources in the source map to be absolute paths.\n */ function normalizeSourcesPaths(map, mapPath) {\n const mapDir = dirname(mapPath);\n return map.sources.map((source)=>{\n if (!source) {\n return source;\n }\n return isAbsolute(source) ? source : resolve(mapDir, map.sourceRoot ?? '.', source);\n });\n}\n/**\n * Loop through the sources and try to load missing `sourcesContent` from the file system.\n */ function loadMissingSourcesContent(map) {\n return map.sources.map((source, index)=>{\n if (map.sourcesContent?.[index]) {\n return map.sourcesContent[index];\n }\n if (source && existsSync(source)) {\n return readFileSync(source, 'utf-8');\n }\n return null;\n });\n}\n\nexport { loadCodeAndMap };\n//# sourceMappingURL=index.js.map\n","import { default as remapping, type DecodedSourceMap, type EncodedSourceMap } from '@ampproject/remapping';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { resolve } from 'path';\nimport { normalizePath } from '../utils';\nimport type { CodeMap, ReportInput } from '../types';\n\nexport function mapSourceMap(\n\tmap: EncodedSourceMap,\n\tdirPath: string,\n\tinputs: Record<string, ReportInput>\n): DecodedSourceMap {\n\tconst alreadyRemapped = new Set<string>();\n\tconst remapped = remapping( map, ( file, ctx ) => {\n\t\tif ( alreadyRemapped.has( file ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\talreadyRemapped.add( file );\n\n\t\tconst codeMap = addSourcesToInputs(\n\t\t\tresolve( dirPath, file ),\n\t\t\tinputs\n\t\t);\n\n\t\tif ( !codeMap ) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.content ??= codeMap.code;\n\n\t\treturn codeMap.map;\n\t}, { decodedMappings: true } );\n\n\treturn remapped as DecodedSourceMap;\n}\n\n/**\n * Loads the source map of a given file and adds its \"sources\" to the given inputs object.\n */\nexport function addSourcesToInputs(\n\tpath: string,\n\tinputs: Record<string, ReportInput>\n): CodeMap | null {\n\tconst codeMap = loadCodeAndMap( path );\n\n\tif ( !codeMap ) {\n\t\treturn null;\n\t}\n\n\tconst parentPath = normalizePath( path );\n\tconst format = inputs[ parentPath ]?.format ?? 'unknown';\n\n\tcodeMap.map?.sources\n\t\t.filter( source => source !== null )\n\t\t.forEach( ( source, index ) => {\n\t\t\tconst normalizedPath = normalizePath( source );\n\n\t\t\tif ( parentPath === normalizedPath ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tinputs[ normalizedPath ] = {\n\t\t\t\tbytes: Buffer.byteLength( codeMap.map!.sourcesContent?.[ index ] ?? '' ),\n\t\t\t\tformat,\n\t\t\t\timports: [],\n\t\t\t\tbelongsTo: parentPath\n\t\t\t};\n\t\t} );\n\t\n\treturn codeMap;\n}\n","import { gzipSync, brotliCompressSync } from 'zlib';\nimport type { DecodedSourceMap, SourceMapSegment } from '@ampproject/remapping';\nimport type { Options, Sizes } from '../types';\n\nconst UNASSIGNED = '[unassigned]';\n\nexport function getBytesPerSource(\n\tcode: string,\n\tmap: DecodedSourceMap,\n\tassetSizes: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst contributions = getContributions( map.sources );\n\n\t// Split the code into lines\n\tconst codeLines = code.split( /(?<=\\r?\\n)/ );\n\n\tfor ( let lineIndex = 0; lineIndex < codeLines.length; lineIndex++ ) {\n\t\tconst lineCode = codeLines[ lineIndex ];\n\t\tconst mappings = map.mappings[ lineIndex ] || [];\n\t\tlet currentColumn = 0;\n\n\t\tfor ( let i = 0; i <= mappings.length; i++ ) {\n\t\t\t// 0: generatedColumn\n\t\t\t// 1: sourceIndex\n\t\t\t// 2: originalLine\n\t\t\t// 3: originalColumn\n\t\t\t// 4: nameIndex\n\n\t\t\tconst mapping: SourceMapSegment | undefined = mappings[ i ];\n\t\t\tconst startColumn = mapping?.[ 0 ] ?? lineCode.length;\n\t\t\tconst endColumn = mappings[ i + 1 ]?.[ 0 ] ?? lineCode.length;\n\n\t\t\t// Slice the code from currentColumn to startColumn for unassigned code\n\t\t\tif ( startColumn > currentColumn ) {\n\t\t\t\tcontributions.set( UNASSIGNED, contributions.get( UNASSIGNED ) + lineCode.slice( currentColumn, startColumn ) );\n\t\t\t}\n\n\t\t\tif ( mapping ) {\n\t\t\t\t// Slice the code from startColumn to endColumn for assigned code\n\t\t\t\tconst sourceIndex = mapping?.[ 1 ];\n\t\t\t\tconst codeSlice = lineCode.slice( startColumn, endColumn );\n\t\t\t\tconst source = sourceIndex !== undefined ? map.sources[ sourceIndex ]! : UNASSIGNED;\n\n\t\t\t\tcontributions.set( source, contributions.get( source ) + codeSlice );\n\t\t\t\tcurrentColumn = endColumn;\n\t\t\t} else {\n\t\t\t\tcurrentColumn = startColumn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compute sizes for each source\n\tconst sourceSizes = new Map<string, Sizes>();\n\n\tconst contributionsSum: Sizes = {\n\t\tuncompressed: 0,\n\t\tgzip: 0,\n\t\tbrotli: 0\n\t};\n\n\tfor ( const [ source, codeSegment ] of contributions ) {\n\t\tconst sizes = getSizes( codeSegment, options );\n\n\t\tcontributionsSum.uncompressed += sizes.uncompressed;\n\t\tcontributionsSum.gzip += sizes.gzip;\n\t\tcontributionsSum.brotli += sizes.brotli;\n\n\t\tsourceSizes.set( source, sizes );\n\t}\n\n\treturn adjustSizes( sourceSizes, assetSizes, contributionsSum, options );\n}\n\nexport function getSizes(\n\tcode: string,\n\toptions: Options\n): Sizes {\n\treturn {\n\t\tuncompressed: Buffer.byteLength( code ),\n\t\tgzip: options.gzip ? gzipSync( code ).length : 0,\n\t\tbrotli: options.brotli ? brotliCompressSync( code ).length : 0\n\t};\n}\n\nfunction getContributions( sources: Array<string | null> ): Map<string, string> {\n\tconst contributions = new Map<string, string>();\n\n\t// Populate contributions with sources\n\tsources\n\t\t.filter( source => source !== null )\n\t\t.forEach( source => contributions.set( source, '' ) );\n\n\t// Add entry for the code that is not assigned to any source\n\tcontributions.set( UNASSIGNED, '' );\n\n\treturn contributions;\n}\n\n/**\n * Compression efficiency improves with the size of the file.\n *\n * However, what we have is the compressed size of the entire bundle (`actual`),\n * the sum of all files compressed individually (`sum`) and the compressed\n * size of a given file (`content`). The last value is essentially a “worst-case”\n * scenario, and the actual size of the file in the bundle is likely to be smaller.\n *\n * We use this information to estimate the actual size of the file in the bundle\n * after compression.\n */\nfunction adjustSizes(\n\tsources: Map<string, Sizes>,\n\tasset: Sizes,\n\tsums: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst gzipDelta = options.gzip ? asset.gzip / sums.gzip : 0;\n\tconst brotliDelta = options.brotli ? asset.brotli / sums.brotli : 0;\n\n\tfor ( const [ source, sizes ] of sources ) {\n\t\tsources.set( source, {\n\t\t\tuncompressed: sizes.uncompressed,\n\t\t\tgzip: options.gzip ? Math.round( sizes.gzip * gzipDelta ) : 0,\n\t\t\tbrotli: options.brotli ? Math.round( sizes.brotli * brotliDelta ) : 0\n\t\t} );\n\t}\n\n\treturn sources;\n}\n","import { dirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\nimport { readFileSync } from 'fs';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { decode } from '@jridgewell/sourcemap-codec';\nimport { mapSourceMap } from './sourcemap/map.js';\nimport { getBytesPerSource, getSizes } from './sourcemap/bytes.js';\nimport type {\n JsonReport,\n MaybeCodeMap,\n ReportInput,\n ReportOutput,\n CodeMap,\n ReportOutputInput,\n Options\n} from './types.js';\nimport { normalizePath } from './utils.js';\n\nexport function generateJsonReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): JsonReport {\n const outputs = assets\n .filter( asset => !asset.endsWith( '.map' ) )\n .reduce( ( carry, asset ) => {\n const data = processAsset( asset, inputs, options );\n\n if ( data ) {\n carry[ normalizePath( asset ) ] = data;\n }\n\n return carry;\n }, {} as Record<string, ReportOutput> );\n\n return {\n inputs,\n outputs\n };\n}\n\nexport function generateHtmlReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): string {\n const json = generateJsonReport( assets, inputs, options );\n const __dirname = dirname( fileURLToPath( import.meta.url ) );\n const template = readFileSync( resolve( __dirname, './index.html' ), 'utf-8' );\n\n return template.replace( '__REPORT_DATA__', JSON.stringify( json ) );\n}\n\nfunction processAsset(\n asset: string,\n inputs: Record<string, ReportInput>,\n options: Options\n): ReportOutput | void {\n const maybeCodeMap = loadCodeAndMap( asset );\n\n if ( !hasCodeAndMap( maybeCodeMap ) ) {\n return;\n }\n\n const { code, map } = maybeCodeMap;\n const mapped = options.detailed\n ? mapSourceMap( map, dirname( asset ), inputs )\n : { ...map, mappings: decode( map.mappings ) };\n\n mapped.sources = mapped.sources.map( source => normalizePath( source! ) );\n\n const assetSizes = getSizes( code, options );\n const bytes = getBytesPerSource( code, mapped, assetSizes, options );\n\n return {\n ...assetSizes,\n inputs: Array.from( bytes ).reduce( ( carry, [ source, sizes ] ) => {\n carry[ normalizePath( source ) ] = sizes;\n\n return carry;\n }, {} as Record<string, ReportOutputInput> )\n };\n}\n\nfunction hasCodeAndMap( result: MaybeCodeMap ): result is Required<CodeMap> {\n return Boolean( result && result.code && result.map );\n}\n","import { join } from 'path';\nimport { writeFileSync } from 'fs';\nimport { generateHtmlReport, generateJsonReport } from '../report.js';\nimport type { Options, JsonReport } from '../types.js';\n\nexport async function generateReportFromAssets(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): Promise<void> {\n\tconst { default: open } = await import( 'open' );\n\n\tconst handler = options.format === 'html'\n\t\t? saveHtml\n\t\t: saveJson;\n\n\tconst path = handler( assets, inputs, options );\n\n\toptions.open && path && open( path );\n}\n\nfunction saveHtml(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateHtmlReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.html' );\n\n\twriteFileSync( path, report );\n\n\treturn path;\n}\n\nfunction saveJson(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateJsonReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.json' );\n\n\twriteFileSync( path, JSON.stringify( report, null, 2 ) );\n\n\treturn path;\n}\n","import { resolve } from 'path';\nimport { normalizeOptions } from '../utils';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Plugin } from 'esbuild';\nimport type { Options, JsonReport } from '../types';\nimport { addSourcesToInputs } from '../sourcemap/map';\n\nexport function SondaEsbuildPlugin( options?: Partial<Options> ): Plugin {\n\treturn {\n\t\tname: 'sonda',\n\t\tsetup( build ) {\n\t\t\tbuild.initialOptions.metafile = true;\n\n\t\t\tbuild.onEnd( result => {\n\t\t\t\tif ( !result.metafile ) {\n\t\t\t\t\treturn console.error( 'Metafile is required for SondaEsbuildPlugin to work.' );\n\t\t\t\t}\n\n\t\t\t\tconst cwd = process.cwd();\n\t\t\t\tconst normalizedOptions = normalizeOptions( options );\n\n\t\t\t\t// Esbuild already reads the existing source maps, so there's no need to do it again\n\t\t\t\tnormalizedOptions.detailed = false;\n\n\t\t\t\tconst inputs = Object\n\t\t\t\t\t.entries( result.metafile.inputs )\n\t\t\t\t\t.reduce( ( acc, [ path, data ] ) => {\n\t\t\t\t\t\tacc[ path ] = {\n\t\t\t\t\t\t\tbytes: data.bytes,\n\t\t\t\t\t\t\tformat: data.format ?? 'unknown',\n\t\t\t\t\t\t\timports: data.imports.map( data => data.path ),\n\t\t\t\t\t\t\tbelongsTo: null,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Because esbuild already reads the existing source maps, there may be\n\t\t\t\t\t\t * cases where some report \"outputs\" include \"inputs\" don't exist in the\n\t\t\t\t\t\t * main \"inputs\" object. To avoid this, we parse each esbuild input and\n\t\t\t\t\t\t * add its sources to the \"inputs\" object.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taddSourcesToInputs(\n\t\t\t\t\t\t\tresolve( cwd, path ),\n\t\t\t\t\t\t\tacc\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, {} as JsonReport[ 'inputs' ] );\n\n\t\t\t\treturn generateReportFromAssets(\n\t\t\t\t\tObject.keys( result.metafile.outputs ),\n\t\t\t\t\tinputs,\n\t\t\t\t\tnormalizeOptions( options )\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t};\n}\n","import { join, resolve, dirname } from 'path';\nimport { normalizeOptions, normalizePath } from '../utils.js';\nimport { generateReportFromAssets } from '../report/generate.js';\nimport type { Options, ModuleFormat, JsonReport } from '../types.js';\nimport type { Plugin, ModuleInfo, NormalizedOutputOptions, OutputBundle } from 'rollup';\n\nconst esmRegex = /\\.m[tj]sx?$/;\nconst cjsRegex = /\\.c[tj]sx?$/;\n\nexport function SondaRollupPlugin( options?: Partial<Options> ): Plugin {\n\tlet inputs: JsonReport[ 'inputs' ] = {};\n\n\treturn {\n\t\tname: 'sonda',\n\n\t\twriteBundle(\n\t\t\t{ dir, file }: NormalizedOutputOptions,\n\t\t\tbundle: OutputBundle\n\t\t) {\n\t\t\tconst outputDir = resolve( process.cwd(), dir ?? dirname( file! ) );\n\t\t\tconst assets = Object.keys( bundle ).map( name => join( outputDir, name ) );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tassets,\n\t\t\t\tinputs,\n\t\t\t\tnormalizeOptions( options )\n\t\t\t);\n\t\t},\n\n\t\tmoduleParsed( module: ModuleInfo ) {\n\t\t\tinputs[ normalizePath( module.id ) ] = {\n\t\t\t\tbytes: module.code ? Buffer.byteLength( module.code ) : 0,\n\t\t\t\tformat: getFormat( module.id, module.meta.commonjs?.isCommonJS ),\n\t\t\t\timports: module.importedIds.map( id => normalizePath( id ) ),\n\t\t\t\tbelongsTo: null,\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction getFormat( moduleId: string, isCommonJS: boolean | undefined ): ModuleFormat {\n\tif ( isCommonJS === true || cjsRegex.test( moduleId ) ) {\n\t\treturn 'cjs';\n\t}\n\n\tif ( isCommonJS === false || esmRegex.test( moduleId ) ) {\n\t\treturn 'esm';\n\t}\n\n\treturn'unknown';\n}\n","import { join } from 'path';\nimport { normalizeOptions, normalizePath } from '../utils';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Compiler, StatsModule } from 'webpack';\nimport type { Options, ModuleFormat, JsonReport } from '../types';\n\nconst jsRegexp = /\\.[c|m]?[t|j]s[x]?$/;\n\nexport class SondaWebpackPlugin {\n\toptions: Partial<Options>;\n\n\tconstructor ( options?: Partial<Options> ) {\n\t\tthis.options = options || {};\n\t}\n\n\tapply( compiler: Compiler ): void {\n\t\tcompiler.options.output.devtoolModuleFilenameTemplate = '[absolute-resource-path]';\n\n\t\tcompiler.hooks.afterEmit.tapPromise( 'SondaWebpackPlugin', compilation => {\n\t\t\tconst inputs: JsonReport[ 'inputs' ] = {};\n\t\t\tconst stats = compilation.getStats().toJson( {\n\t\t\t\tmodules: true,\n\t\t\t\tprovidedExports: true\n\t\t\t} );\n\n\t\t\tconst outputPath = stats.outputPath || compiler.outputPath;\n\t\t\tconst modules = stats.modules?.filter( mod => mod.nameForCondition && mod.moduleType !== 'asset/inline' ) || [];\n\n\t\t\tmodules.forEach( module => {\n\t\t\t\tconst imports = modules.reduce( ( acc, { nameForCondition, issuerName, reasons } ) => {\n\t\t\t\t\tif ( issuerName === module.name || reasons?.some( reason => reason.resolvedModule === module.name ) ) {\n\t\t\t\t\t\tacc.push( normalizePath( nameForCondition! ) );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, [] as Array<string> );\n\n\t\t\t\tinputs[ normalizePath( module.nameForCondition! ) ] = {\n\t\t\t\t\tbytes: module.size || 0,\n\t\t\t\t\tformat: getFormat( module ),\n\t\t\t\t\timports,\n\t\t\t\t\tbelongsTo: null\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tstats.assets?.map( asset => join( outputPath, asset.name ) ) || [],\n\t\t\t\tinputs,\n\t\t\t\tnormalizeOptions( this.options )\n\t\t\t);\n\t\t} );\n\t}\n}\n\nfunction getFormat( module: StatsModule ): ModuleFormat {\n\tif ( !jsRegexp.test( module.nameForCondition! ) ) {\n\t\treturn 'unknown';\n\t}\n\n\t/**\n\t * Sometimes ESM modules have `moduleType` set as `javascript/auto`, so we\n\t * also need to check if the module has exports to determine if it's ESM.\n\t */\n\tif ( module.moduleType === 'javascript/esm' || !!module.providedExports?.length ) {\n\t\treturn 'esm';\n\t}\n\n\treturn 'cjs';\n}\n"],"names":["cwd","process","normalizeOptions","options","defaultOptions","open","format","detailed","gzip","brotli","Object","assign","normalizePath","path","normalized","replace","relativized","relative","replaceAll","sep","posix","parseSourceMapInput","str","JSON","parse","sourceMappingRegExp","loadCodeAndMap","codePath","existsSync","code","readFileSync","extractedComment","includes","Array","from","matchAll","at","length","maybeMap","loadMap","map","mapPath","sources","normalizeSourcesPaths","sourcesContent","loadMissingSourcesContent","sourceRoot","sourceMappingURL","startsWith","parseDataUrl","sourceMapFilename","URL","pathname","join","dirname","url","prefix","payload","split","encoding","Buffer","toString","decodeURIComponent","Error","mapDir","source","isAbsolute","resolve","index","mapSourceMap","dirPath","inputs","alreadyRemapped","Set","remapped","remapping","file","ctx","has","add","codeMap","addSourcesToInputs","content","decodedMappings","parentPath","filter","forEach","normalizedPath","bytes","byteLength","imports","belongsTo","UNASSIGNED","getBytesPerSource","assetSizes","contributions","getContributions","codeLines","lineIndex","lineCode","mappings","currentColumn","i","mapping","startColumn","endColumn","set","get","slice","sourceIndex","codeSlice","undefined","sourceSizes","Map","contributionsSum","uncompressed","codeSegment","sizes","getSizes","adjustSizes","gzipSync","brotliCompressSync","asset","sums","gzipDelta","brotliDelta","Math","round","generateJsonReport","assets","outputs","endsWith","reduce","carry","data","processAsset","generateHtmlReport","json","__dirname","fileURLToPath","template","stringify","maybeCodeMap","hasCodeAndMap","mapped","decode","result","Boolean","generateReportFromAssets","default","handler","saveHtml","saveJson","report","writeFileSync","SondaEsbuildPlugin","name","setup","build","initialOptions","metafile","onEnd","console","error","normalizedOptions","entries","acc","keys","esmRegex","cjsRegex","SondaRollupPlugin","writeBundle","dir","bundle","outputDir","moduleParsed","module","id","getFormat","meta","commonjs","isCommonJS","importedIds","moduleId","test","jsRegexp","SondaWebpackPlugin","apply","compiler","output","devtoolModuleFilenameTemplate","hooks","afterEmit","tapPromise","compilation","stats","getStats","toJson","modules","providedExports","outputPath","mod","nameForCondition","moduleType","issuerName","reasons","some","reason","resolvedModule","push","size","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../load-source-map/dist/index.js","../src/utils.ts","../src/sourcemap/map.ts","../src/sourcemap/bytes.ts","../src/report.ts","../src/report/generate.ts","../src/bundlers/esbuild.ts","../src/bundlers/rollup.ts","../src/bundlers/webpack.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'fs';\nimport { join, dirname, isAbsolute, resolve } from 'path';\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),\n * and parses the string as JSON.\n *\n * https://github.com/mozilla/source-map/blob/3cb92cc3b73bfab27c146bae4ef2bc09dbb4e5ed/lib/util.js#L162-L164\n */ function parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\n/**\n\tsourceMappingURL=data:application/json;charset=utf-8;base64,data\n\tsourceMappingURL=data:application/json;base64,data\n\tsourceMappingURL=data:application/json;uri,data\n\tsourceMappingURL=map-file-comment.css.map\n\tsourceMappingURL=map-file-comment.css.map?query=value\n*/ const sourceMappingRegExp = /[@#]\\s*sourceMappingURL=(\\S+)\\b/g;\nfunction loadCodeAndMap(codePath) {\n if (!existsSync(codePath)) {\n return null;\n }\n const code = readFileSync(codePath, 'utf-8');\n const extractedComment = code.includes('sourceMappingURL') && Array.from(code.matchAll(sourceMappingRegExp)).at(-1);\n if (!extractedComment || !extractedComment.length) {\n return {\n code\n };\n }\n const maybeMap = loadMap(codePath, extractedComment[1]);\n if (!maybeMap) {\n return {\n code\n };\n }\n const { map, mapPath } = maybeMap;\n map.sources = normalizeSourcesPaths(map, mapPath);\n map.sourcesContent = loadMissingSourcesContent(map);\n delete map.sourceRoot;\n return {\n code,\n map\n };\n}\nfunction loadMap(codePath, sourceMappingURL) {\n if (sourceMappingURL.startsWith('data:')) {\n const map = parseDataUrl(sourceMappingURL);\n return {\n map: parseSourceMapInput(map),\n mapPath: codePath\n };\n }\n const sourceMapFilename = new URL(sourceMappingURL, 'file://').pathname;\n const mapPath = join(dirname(codePath), sourceMapFilename);\n if (!existsSync(mapPath)) {\n return null;\n }\n return {\n map: parseSourceMapInput(readFileSync(mapPath, 'utf-8')),\n mapPath\n };\n}\nfunction parseDataUrl(url) {\n const [prefix, payload] = url.split(',');\n const encoding = prefix.split(';').at(-1);\n switch(encoding){\n case 'base64':\n return Buffer.from(payload, 'base64').toString();\n case 'uri':\n return decodeURIComponent(payload);\n default:\n throw new Error('Unsupported source map encoding: ' + encoding);\n }\n}\n/**\n * Normalize the paths of the sources in the source map to be absolute paths.\n */ function normalizeSourcesPaths(map, mapPath) {\n const mapDir = dirname(mapPath);\n return map.sources.map((source)=>{\n if (!source) {\n return source;\n }\n return isAbsolute(source) ? source : resolve(mapDir, map.sourceRoot ?? '.', source);\n });\n}\n/**\n * Loop through the sources and try to load missing `sourcesContent` from the file system.\n */ function loadMissingSourcesContent(map) {\n return map.sources.map((source, index)=>{\n if (map.sourcesContent?.[index]) {\n return map.sourcesContent[index];\n }\n if (source && existsSync(source)) {\n return readFileSync(source, 'utf-8');\n }\n return null;\n });\n}\n\nexport { loadCodeAndMap };\n//# sourceMappingURL=index.js.map\n","import { relative, win32, posix } from 'path';\nimport type { Options } from './types';\n\nexport const esmRegex: RegExp = /\\.m[tj]sx?$/;\nexport const cjsRegex: RegExp = /\\.c[tj]sx?$/;\nexport const jsRegexp: RegExp = /\\.[cm]?[tj]s[x]?$/;\n\nexport function normalizeOptions( options?: Partial<Options> ) {\n\tconst defaultOptions: Options = {\n\t\topen: true,\n\t\tformat: 'html',\n\t\tdetailed: false,\n\t\tgzip: false,\n\t\tbrotli: false,\n\t};\n\n\treturn Object.assign( {}, defaultOptions, options ) as Options;\n}\n\nexport function normalizePath( pathToNormalize: string ): string {\n\t// Unicode escape sequences used by Rollup and Vite to identify virtual modules\n\tconst normalized = pathToNormalize.replace( /^\\0/, '' )\n\n\t// Transform absolute paths to relative paths\n\tconst relativized = relative( process.cwd(), normalized );\n\n\t// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687\n\treturn relativized.replaceAll( win32.sep, posix.sep );\n}\n","import { default as remapping, type DecodedSourceMap, type EncodedSourceMap } from '@ampproject/remapping';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { resolve } from 'path';\nimport { normalizePath } from '../utils';\nimport type { CodeMap, ReportInput } from '../types';\n\nexport function mapSourceMap(\n\tmap: EncodedSourceMap,\n\tdirPath: string,\n\tinputs: Record<string, ReportInput>\n): DecodedSourceMap {\n\tconst alreadyRemapped = new Set<string>();\n\tconst remapped = remapping( map, ( file, ctx ) => {\n\t\tif ( alreadyRemapped.has( file ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\talreadyRemapped.add( file );\n\n\t\tconst codeMap = addSourcesToInputs(\n\t\t\tresolve( dirPath, file ),\n\t\t\tinputs\n\t\t);\n\n\t\tif ( !codeMap ) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.content ??= codeMap.code;\n\n\t\treturn codeMap.map;\n\t}, { decodedMappings: true } );\n\n\treturn remapped as DecodedSourceMap;\n}\n\n/**\n * Loads the source map of a given file and adds its \"sources\" to the given inputs object.\n */\nexport function addSourcesToInputs(\n\tpath: string,\n\tinputs: Record<string, ReportInput>\n): CodeMap | null {\n\tconst codeMap = loadCodeAndMap( path );\n\n\tif ( !codeMap ) {\n\t\treturn null;\n\t}\n\n\tconst parentPath = normalizePath( path );\n\tconst format = inputs[ parentPath ]?.format ?? 'unknown';\n\n\tcodeMap.map?.sources\n\t\t.filter( source => source !== null )\n\t\t.forEach( ( source, index ) => {\n\t\t\tconst normalizedPath = normalizePath( source );\n\n\t\t\tif ( parentPath === normalizedPath ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tinputs[ normalizedPath ] = {\n\t\t\t\tbytes: Buffer.byteLength( codeMap.map!.sourcesContent?.[ index ] ?? '' ),\n\t\t\t\tformat,\n\t\t\t\timports: [],\n\t\t\t\tbelongsTo: parentPath\n\t\t\t};\n\t\t} );\n\t\n\treturn codeMap;\n}\n","import { gzipSync, brotliCompressSync } from 'zlib';\nimport type { DecodedSourceMap, SourceMapSegment } from '@ampproject/remapping';\nimport type { Options, Sizes } from '../types';\n\nconst UNASSIGNED = '[unassigned]';\n\nexport function getBytesPerSource(\n\tcode: string,\n\tmap: DecodedSourceMap,\n\tassetSizes: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst contributions = getContributions( map.sources );\n\n\t// Split the code into lines\n\tconst codeLines = code.split( /(?<=\\r?\\n)/ );\n\n\tfor ( let lineIndex = 0; lineIndex < codeLines.length; lineIndex++ ) {\n\t\tconst lineCode = codeLines[ lineIndex ];\n\t\tconst mappings = map.mappings[ lineIndex ] || [];\n\t\tlet currentColumn = 0;\n\n\t\tfor ( let i = 0; i <= mappings.length; i++ ) {\n\t\t\t// 0: generatedColumn\n\t\t\t// 1: sourceIndex\n\t\t\t// 2: originalLine\n\t\t\t// 3: originalColumn\n\t\t\t// 4: nameIndex\n\n\t\t\tconst mapping: SourceMapSegment | undefined = mappings[ i ];\n\t\t\tconst startColumn = mapping?.[ 0 ] ?? lineCode.length;\n\t\t\tconst endColumn = mappings[ i + 1 ]?.[ 0 ] ?? lineCode.length;\n\n\t\t\t// Slice the code from currentColumn to startColumn for unassigned code\n\t\t\tif ( startColumn > currentColumn ) {\n\t\t\t\tcontributions.set( UNASSIGNED, contributions.get( UNASSIGNED ) + lineCode.slice( currentColumn, startColumn ) );\n\t\t\t}\n\n\t\t\tif ( mapping ) {\n\t\t\t\t// Slice the code from startColumn to endColumn for assigned code\n\t\t\t\tconst sourceIndex = mapping?.[ 1 ];\n\t\t\t\tconst codeSlice = lineCode.slice( startColumn, endColumn );\n\t\t\t\tconst source = sourceIndex !== undefined ? map.sources[ sourceIndex ]! : UNASSIGNED;\n\n\t\t\t\tcontributions.set( source, contributions.get( source ) + codeSlice );\n\t\t\t\tcurrentColumn = endColumn;\n\t\t\t} else {\n\t\t\t\tcurrentColumn = startColumn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compute sizes for each source\n\tconst sourceSizes = new Map<string, Sizes>();\n\n\tconst contributionsSum: Sizes = {\n\t\tuncompressed: 0,\n\t\tgzip: 0,\n\t\tbrotli: 0\n\t};\n\n\tfor ( const [ source, codeSegment ] of contributions ) {\n\t\tconst sizes = getSizes( codeSegment, options );\n\n\t\tcontributionsSum.uncompressed += sizes.uncompressed;\n\t\tcontributionsSum.gzip += sizes.gzip;\n\t\tcontributionsSum.brotli += sizes.brotli;\n\n\t\tsourceSizes.set( source, sizes );\n\t}\n\n\treturn adjustSizes( sourceSizes, assetSizes, contributionsSum, options );\n}\n\nexport function getSizes(\n\tcode: string,\n\toptions: Options\n): Sizes {\n\treturn {\n\t\tuncompressed: Buffer.byteLength( code ),\n\t\tgzip: options.gzip ? gzipSync( code ).length : 0,\n\t\tbrotli: options.brotli ? brotliCompressSync( code ).length : 0\n\t};\n}\n\nfunction getContributions( sources: Array<string | null> ): Map<string, string> {\n\tconst contributions = new Map<string, string>();\n\n\t// Populate contributions with sources\n\tsources\n\t\t.filter( source => source !== null )\n\t\t.forEach( source => contributions.set( source, '' ) );\n\n\t// Add entry for the code that is not assigned to any source\n\tcontributions.set( UNASSIGNED, '' );\n\n\treturn contributions;\n}\n\n/**\n * Compression efficiency improves with the size of the file.\n *\n * However, what we have is the compressed size of the entire bundle (`actual`),\n * the sum of all files compressed individually (`sum`) and the compressed\n * size of a given file (`content`). The last value is essentially a “worst-case”\n * scenario, and the actual size of the file in the bundle is likely to be smaller.\n *\n * We use this information to estimate the actual size of the file in the bundle\n * after compression.\n */\nfunction adjustSizes(\n\tsources: Map<string, Sizes>,\n\tasset: Sizes,\n\tsums: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst gzipDelta = options.gzip ? asset.gzip / sums.gzip : 0;\n\tconst brotliDelta = options.brotli ? asset.brotli / sums.brotli : 0;\n\n\tfor ( const [ source, sizes ] of sources ) {\n\t\tsources.set( source, {\n\t\t\tuncompressed: sizes.uncompressed,\n\t\t\tgzip: options.gzip ? Math.round( sizes.gzip * gzipDelta ) : 0,\n\t\t\tbrotli: options.brotli ? Math.round( sizes.brotli * brotliDelta ) : 0\n\t\t} );\n\t}\n\n\treturn sources;\n}\n","import { readFileSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport { dirname, resolve } from 'path';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { decode } from '@jridgewell/sourcemap-codec';\nimport { mapSourceMap } from './sourcemap/map.js';\nimport { getBytesPerSource, getSizes } from './sourcemap/bytes.js';\nimport type {\n JsonReport,\n MaybeCodeMap,\n ReportInput,\n ReportOutput,\n CodeMap,\n ReportOutputInput,\n Options\n} from './types.js';\nimport { normalizePath } from './utils.js';\n\nexport function generateJsonReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): JsonReport {\n const outputs = assets\n .filter( asset => !asset.endsWith( '.map' ) )\n .reduce( ( carry, asset ) => {\n const data = processAsset( asset, inputs, options );\n\n if ( data ) {\n carry[ normalizePath( asset ) ] = data;\n }\n\n return carry;\n }, {} as Record<string, ReportOutput> );\n\n return {\n inputs,\n outputs\n };\n}\n\nexport function generateHtmlReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): string {\n const json = generateJsonReport( assets, inputs, options );\n const __dirname = dirname( fileURLToPath( import.meta.url ) );\n const template = readFileSync( resolve( __dirname, './index.html' ), 'utf-8' );\n\n return template.replace( '__REPORT_DATA__', JSON.stringify( json ) );\n}\n\nfunction processAsset(\n asset: string,\n inputs: Record<string, ReportInput>,\n options: Options\n): ReportOutput | void {\n const maybeCodeMap = loadCodeAndMap( asset );\n\n if ( !hasCodeAndMap( maybeCodeMap ) ) {\n return;\n }\n\n const { code, map } = maybeCodeMap;\n const mapped = options.detailed\n ? mapSourceMap( map, dirname( asset ), inputs )\n : { ...map, mappings: decode( map.mappings ) };\n\n mapped.sources = mapped.sources.map( source => normalizePath( source! ) );\n\n const assetSizes = getSizes( code, options );\n const bytes = getBytesPerSource( code, mapped, assetSizes, options );\n\n return {\n ...assetSizes,\n inputs: Array.from( bytes ).reduce( ( carry, [ source, sizes ] ) => {\n carry[ normalizePath( source ) ] = sizes;\n\n return carry;\n }, {} as Record<string, ReportOutputInput> )\n };\n}\n\nfunction hasCodeAndMap( result: MaybeCodeMap ): result is Required<CodeMap> {\n return Boolean( result && result.code && result.map );\n}\n","import { join } from 'path';\nimport { writeFileSync } from 'fs';\nimport { generateHtmlReport, generateJsonReport } from '../report.js';\nimport type { Options, JsonReport } from '../types.js';\nimport { normalizeOptions } from '../utils.js';\n\nexport async function generateReportFromAssets(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\tuserOptions: Partial<Options>\n): Promise<void> {\n\tconst options = normalizeOptions( userOptions );\n\tconst handler = options.format === 'html' ? saveHtml : saveJson;\n\tconst path = handler( assets, inputs, options );\n\n\tif ( !options.open || !path ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * `open` is ESM-only package, so we need to import it\n\t * dynamically to make it work in CommonJS environment.\n\t */\n\tconst { default: open } = await import( 'open' );\n\n\topen( path );\n}\n\nfunction saveHtml(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateHtmlReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.html' );\n\n\twriteFileSync( path, report );\n\n\treturn path;\n}\n\nfunction saveJson(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateJsonReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.json' );\n\n\twriteFileSync( path, JSON.stringify( report, null, 2 ) );\n\n\treturn path;\n}\n","import { resolve } from 'path';\nimport { addSourcesToInputs } from '../sourcemap/map';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Plugin } from 'esbuild';\nimport type { Options, JsonReport } from '../types';\n\nexport function SondaEsbuildPlugin( options: Partial<Options> = {} ): Plugin {\n\treturn {\n\t\tname: 'sonda',\n\t\tsetup( build ) {\n\t\t\tbuild.initialOptions.metafile = true;\n\n\t\t\t// Esbuild already reads the existing source maps, so there's no need to do it again\n\t\t\toptions.detailed = false;\n\n\t\t\tbuild.onEnd( result => {\n\t\t\t\tif ( !result.metafile ) {\n\t\t\t\t\treturn console.error( 'Metafile is required for SondaEsbuildPlugin to work.' );\n\t\t\t\t}\n\n\t\t\t\tconst cwd = process.cwd();\n\t\t\t\tconst inputs = Object\n\t\t\t\t\t.entries( result.metafile.inputs )\n\t\t\t\t\t.reduce( ( acc, [ path, data ] ) => {\n\t\t\t\t\t\tacc[ path ] = {\n\t\t\t\t\t\t\tbytes: data.bytes,\n\t\t\t\t\t\t\tformat: data.format ?? 'unknown',\n\t\t\t\t\t\t\timports: data.imports.map( data => data.path ),\n\t\t\t\t\t\t\tbelongsTo: null,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Because esbuild already reads the existing source maps, there may be\n\t\t\t\t\t\t * cases where some report \"outputs\" include \"inputs\" don't exist in the\n\t\t\t\t\t\t * main \"inputs\" object. To avoid this, we parse each esbuild input and\n\t\t\t\t\t\t * add its sources to the \"inputs\" object.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taddSourcesToInputs(\n\t\t\t\t\t\t\tresolve( cwd, path ),\n\t\t\t\t\t\t\tacc\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, {} as JsonReport[ 'inputs' ] );\n\n\t\t\t\treturn generateReportFromAssets(\n\t\t\t\t\tObject.keys( result.metafile.outputs ).map( path => resolve( cwd, path ) ),\n\t\t\t\t\tinputs,\n\t\t\t\t\toptions\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t};\n}\n","import { join, resolve, dirname } from 'path';\nimport { normalizePath, cjsRegex, jsRegexp } from '../utils.js';\nimport { generateReportFromAssets } from '../report/generate.js';\nimport type { Options, ModuleFormat, JsonReport } from '../types.js';\nimport type { Plugin, ModuleInfo, NormalizedOutputOptions, OutputBundle } from 'rollup';\n\nexport function SondaRollupPlugin( options: Partial<Options> = {} ): Plugin {\n\tlet inputs: JsonReport[ 'inputs' ] = {};\n\n\treturn {\n\t\tname: 'sonda',\n\n\t\twriteBundle(\n\t\t\t{ dir, file }: NormalizedOutputOptions,\n\t\t\tbundle: OutputBundle\n\t\t) {\n\t\t\tconst outputDir = resolve( process.cwd(), dir ?? dirname( file! ) );\n\t\t\tconst assets = Object.keys( bundle ).map( name => join( outputDir, name ) );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tassets,\n\t\t\t\tinputs,\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\n\t\tmoduleParsed( module: ModuleInfo ) {\n\t\t\tinputs[ normalizePath( module.id ) ] = {\n\t\t\t\tbytes: module.code ? Buffer.byteLength( module.code ) : 0,\n\t\t\t\tformat: getFormat( module.id, module.meta.commonjs?.isCommonJS ),\n\t\t\t\timports: module.importedIds.map( id => normalizePath( id ) ),\n\t\t\t\tbelongsTo: null,\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction getFormat( moduleId: string, isCommonJS: boolean | undefined ): ModuleFormat {\n\tif ( isCommonJS === true || cjsRegex.test( moduleId ) ) {\n\t\treturn 'cjs';\n\t}\n\n\tif ( isCommonJS === false || jsRegexp.test( moduleId ) ) {\n\t\treturn 'esm';\n\t}\n\n\treturn'unknown';\n}\n","import { join } from 'path';\nimport { normalizePath, jsRegexp } from '../utils';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Compiler, StatsModule } from 'webpack';\nimport type { Options, ModuleFormat, JsonReport } from '../types';\n\nexport class SondaWebpackPlugin {\n\toptions: Partial<Options>;\n\n\tconstructor ( options: Partial<Options> = {} ) {\n\t\tthis.options = options;\n\t}\n\n\tapply( compiler: Compiler ): void {\n\t\tcompiler.options.output.devtoolModuleFilenameTemplate = '[absolute-resource-path]';\n\n\t\tcompiler.hooks.afterEmit.tapPromise( 'SondaWebpackPlugin', compilation => {\n\t\t\tconst inputs: JsonReport[ 'inputs' ] = {};\n\t\t\tconst stats = compilation.getStats().toJson( {\n\t\t\t\tmodules: true,\n\t\t\t\tprovidedExports: true,\n\t\t\t} );\n\n\t\t\tconst outputPath = stats.outputPath || compiler.outputPath;\n\t\t\tconst modules: Array<StatsModule> = stats.modules\n\t\t\t\t?.flatMap( mod => mod.modules ? [ mod, ...mod.modules ] : mod )\n\t\t\t\t.filter( mod => mod.nameForCondition && !mod.codeGenerated )\n\t\t\t\t.filter( ( mod, index, self ) => self.findIndex( m => m.nameForCondition === mod.nameForCondition ) === index )\n\t\t\t\t|| [];\n\n\t\t\tmodules.forEach( module => {\n\t\t\t\tconst imports = modules.reduce( ( acc, { nameForCondition, issuerName, reasons } ) => {\n\t\t\t\t\tif ( issuerName === module.name || reasons?.some( reason => reason.resolvedModule === module.name ) ) {\n\t\t\t\t\t\tacc.push( normalizePath( nameForCondition! ) );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, [] as Array<string> );\n\n\t\t\t\tinputs[ normalizePath( module.nameForCondition! ) ] = {\n\t\t\t\t\tbytes: module.size || 0,\n\t\t\t\t\tformat: getFormat( module ),\n\t\t\t\t\timports,\n\t\t\t\t\tbelongsTo: null\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tstats.assets?.map( asset => join( outputPath, asset.name ) ) || [],\n\t\t\t\tinputs,\n\t\t\t\tthis.options\n\t\t\t);\n\t\t} );\n\t}\n}\n\nfunction getFormat( module: StatsModule ): ModuleFormat {\n\tif ( !jsRegexp.test( module.nameForCondition! ) ) {\n\t\treturn 'unknown';\n\t}\n\n\t/**\n\t * Sometimes ESM modules have `moduleType` set as `javascript/auto`, so we\n\t * also need to check if the module has exports to determine if it's ESM.\n\t */\n\tif ( module.moduleType === 'javascript/esm' || !!module.providedExports?.length ) {\n\t\treturn 'esm';\n\t}\n\n\treturn 'cjs';\n}\n"],"names":["parseSourceMapInput","str","JSON","parse","replace","sourceMappingRegExp","loadCodeAndMap","codePath","existsSync","code","readFileSync","extractedComment","includes","Array","from","matchAll","at","length","maybeMap","loadMap","map","mapPath","sources","normalizeSourcesPaths","sourcesContent","loadMissingSourcesContent","sourceRoot","sourceMappingURL","startsWith","parseDataUrl","sourceMapFilename","URL","pathname","join","dirname","url","prefix","payload","split","encoding","Buffer","toString","decodeURIComponent","Error","mapDir","source","isAbsolute","resolve","index","cjsRegex","jsRegexp","normalizeOptions","options","defaultOptions","open","format","detailed","gzip","brotli","Object","assign","normalizePath","pathToNormalize","normalized","relativized","relative","process","cwd","replaceAll","win32","sep","posix","mapSourceMap","dirPath","inputs","alreadyRemapped","Set","remapped","remapping","file","ctx","has","add","codeMap","addSourcesToInputs","content","decodedMappings","path","parentPath","filter","forEach","normalizedPath","bytes","byteLength","imports","belongsTo","UNASSIGNED","getBytesPerSource","assetSizes","contributions","getContributions","codeLines","lineIndex","lineCode","mappings","currentColumn","i","mapping","startColumn","endColumn","set","get","slice","sourceIndex","codeSlice","undefined","sourceSizes","Map","contributionsSum","uncompressed","codeSegment","sizes","getSizes","adjustSizes","gzipSync","brotliCompressSync","asset","sums","gzipDelta","brotliDelta","Math","round","generateJsonReport","assets","outputs","endsWith","reduce","carry","data","processAsset","generateHtmlReport","json","__dirname","fileURLToPath","template","stringify","maybeCodeMap","hasCodeAndMap","mapped","decode","result","Boolean","generateReportFromAssets","userOptions","handler","saveHtml","saveJson","default","report","writeFileSync","SondaEsbuildPlugin","name","setup","build","initialOptions","metafile","onEnd","console","error","entries","acc","keys","SondaRollupPlugin","writeBundle","dir","bundle","outputDir","moduleParsed","module","id","getFormat","meta","commonjs","isCommonJS","importedIds","moduleId","test","SondaWebpackPlugin","apply","compiler","output","devtoolModuleFilenameTemplate","hooks","afterEmit","tapPromise","compilation","stats","getStats","toJson","modules","providedExports","outputPath","flatMap","mod","nameForCondition","codeGenerated","self","findIndex","m","issuerName","reasons","some","reason","resolvedModule","push","size","constructor","moduleType"],"mappings":"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"}
|
package/dist/index.html
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><link rel="icon" href="data:;base64,iVBORw0KGgo="/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Sonda report</title><link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' fill='none'%3E%3Cpath fill='%23FACC15' d='M0 0h512v512H0V0Z'/%3E%3Cpath fill='%23000' d='m264.536 203.704-41.984 89.6-21.504-9.728c-20.139-9.216-35.669-21.504-46.592-36.864-10.923-15.36-16.384-37.717-16.384-67.072 0-37.547 9.728-65.536 29.184-83.968 19.797-18.773 52.395-28.33 97.792-28.672 18.773 0 35.84.853 51.2 2.56s27.648 3.584 36.864 5.632l13.824 2.56-10.24 82.432-12.8-1.536c-8.192-1.024-18.432-1.877-30.72-2.56-12.288-1.024-24.235-1.536-35.84-1.536-12.288 0-21.675 1.877-28.16 5.632-6.144 3.413-9.216 10.069-9.216 19.968 0 5.461 2.219 9.899 6.656 13.312 4.437 3.413 10.411 6.827 17.92 10.24Zm-18.432 100.864 42.496-90.624 22.016 9.728c23.211 10.24 40.107 23.04 50.688 38.4 10.581 15.019 15.872 36.523 15.872 64.512 0 37.888-9.899 67.072-29.696 87.552-19.797 20.48-52.395 30.891-97.792 31.232-22.528 0-43.52-1.536-62.976-4.608-19.456-2.731-36.693-5.973-51.712-9.728l10.24-82.432 12.288 2.048c8.533 1.365 19.797 2.731 33.792 4.096 13.995 1.365 29.355 2.048 46.08 2.048 12.971 0 22.699-1.877 29.184-5.632 6.485-3.755 9.728-9.899 9.728-18.432 0-5.803-1.536-10.411-4.608-13.824-3.072-3.413-8.533-6.827-16.384-10.24l-9.216-4.096Z'/%3E%3C/svg%3E"/><script type="module" crossorigin>var Fr=Object.defineProperty;var qe=t=>{throw TypeError(t)};var qr=(t,e,r)=>e in t?Fr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Q=(t,e,r)=>qr(t,typeof e!="symbol"?e+"":e,r),ce=(t,e,r)=>e.has(t)||qe("Cannot "+r);var nt=(t,e,r)=>(ce(t,e,"read from private field"),r?r.call(t):e.get(t)),zt=(t,e,r)=>e.has(t)?qe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),de=(t,e,r,n)=>(ce(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),He=(t,e,r)=>(ce(t,e,"access private method"),r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();window.SONDA_JSON_REPORT=JSON.parse(String.raw`__REPORT_DATA__`);const Hr=!1;var Te=Array.isArray,Ne=Array.from,Wr=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Ur=Object.getOwnPropertyDescriptors,Vr=Object.prototype,Gr=Array.prototype,nr=Object.getPrototypeOf;function Jr(t){return typeof t=="function"}const Pt=()=>{};function Kr(t){return t()}function he(t){for(var e=0;e<t.length;e++)t[e]()}const ot=2,ir=4,Tt=8,Ae=16,st=32,ne=64,gt=128,Kt=256,Y=512,vt=1024,Bt=2048,_t=4096,jt=8192,or=16384,Ft=32768,Yr=1<<18,Yt=1<<19,ct=Symbol("$state"),Zr=Symbol("");function sr(t){return t===this.v}function ar(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function Xr(t){return!ar(t,this.v)}function Qr(t){throw new Error("effect_in_teardown")}function $r(){throw new Error("effect_in_unowned_derived")}function tn(t){throw new Error("effect_orphan")}function en(){throw new Error("effect_update_depth_exceeded")}function rn(){throw new Error("state_descriptors_fixed")}function nn(){throw new Error("state_prototype_fixed")}function on(){throw new Error("state_unsafe_local_read")}function sn(){throw new Error("state_unsafe_mutation")}function G(t){return{f:0,v:t,reactions:null,equals:sr,version:0}}function B(t){return ln(G(t))}function an(t){var r;const e=G(t);return e.equals=Xr,R!==null&&R.l!==null&&((r=R.l).s??(r.s=[])).push(e),e}function ln(t){return z!==null&&z.f&ot&&(rt===null?En([t]):rt.push(t)),t}function T(t,e){return z!==null&&me()&&z.f&ot&&(rt===null||!rt.includes(t))&&sn(),t.equals(e)||(t.v=e,t.version=yr(),lr(t,vt),me()&&O!==null&&O.f&Y&&!(O.f&st)&&(j!==null&&j.includes(t)?(et(O,vt),le(O)):dt===null?kn([t]):dt.push(t))),e}function lr(t,e){var r=t.reactions;if(r!==null)for(var n=me(),i=r.length,o=0;o<i;o++){var s=r[o],f=s.f;f&vt||!n&&s===O||(et(s,e),f&(Y|gt)&&(f&ot?lr(s,Bt):le(s)))}}const Me=1,ze=2,ur=4,un=8,fn=16,cn=4,dn=1,vn=2,q=Symbol();let fr=!1;function H(t,e=null,r){if(typeof t!="object"||t===null||ct in t)return t;const n=nr(t);if(n!==Vr&&n!==Gr)return t;var i=new Map,o=Te(t),s=G(0);o&&i.set("length",G(t.length));var f;return new Proxy(t,{defineProperty(a,l,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&rn();var d=i.get(l);return d===void 0?(d=G(u.value),i.set(l,d)):T(d,H(u.value,f)),!0},deleteProperty(a,l){var u=i.get(l);return u===void 0?l in a&&i.set(l,G(q)):(T(u,q),We(s)),!0},get(a,l,u){var _;if(l===ct)return t;var d=i.get(l),v=l in a;if(d===void 0&&(!v||(_=Rt(a,l))!=null&&_.writable)&&(d=G(H(v?a[l]:q,f)),i.set(l,d)),d!==void 0){var c=h(d);return c===q?void 0:c}return Reflect.get(a,l,u)},getOwnPropertyDescriptor(a,l){var u=Reflect.getOwnPropertyDescriptor(a,l);if(u&&"value"in u){var d=i.get(l);d&&(u.value=h(d))}else if(u===void 0){var v=i.get(l),c=v==null?void 0:v.v;if(v!==void 0&&c!==q)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return u},has(a,l){var c;if(l===ct)return!0;var u=i.get(l),d=u!==void 0&&u.v!==q||Reflect.has(a,l);if(u!==void 0||O!==null&&(!d||(c=Rt(a,l))!=null&&c.writable)){u===void 0&&(u=G(d?H(a[l],f):q),i.set(l,u));var v=h(u);if(v===q)return!1}return d},set(a,l,u,d){var w;var v=i.get(l),c=l in a;if(o&&l==="length")for(var _=u;_<v.v;_+=1){var p=i.get(_+"");p!==void 0?T(p,q):_ in a&&(p=G(q),i.set(_+"",p))}v===void 0?(!c||(w=Rt(a,l))!=null&&w.writable)&&(v=G(void 0),T(v,H(u,f)),i.set(l,v)):(c=v.v!==q,T(v,H(u,f)));var x=Reflect.getOwnPropertyDescriptor(a,l);if(x!=null&&x.set&&x.set.call(d,u),!c){if(o&&typeof l=="string"){var b=i.get("length"),E=Number(l);Number.isInteger(E)&&E>=b.v&&T(b,E+1)}We(s)}return!0},ownKeys(a){h(s);var l=Reflect.ownKeys(a).filter(v=>{var c=i.get(v);return c===void 0||c.v!==q});for(var[u,d]of i)d.v!==q&&!(u in a)&&l.push(u);return l},setPrototypeOf(){nn()}})}function We(t,e=1){T(t,t.v+e)}function Ue(t){return t!==null&&typeof t=="object"&&ct in t?t[ct]:t}function hn(t,e){return Object.is(Ue(t),Ue(e))}var Ve,it,cr,dr;function _n(){if(Ve===void 0){Ve=window,it=document;var t=Element.prototype,e=Node.prototype;cr=Rt(e,"firstChild").get,dr=Rt(e,"nextSibling").get,t.__click=void 0,t.__className="",t.__attributes=null,t.__e=void 0,Text.prototype.__t=void 0}}function Pe(t=""){return document.createTextNode(t)}function Ot(t){return cr.call(t)}function ie(t){return dr.call(t)}function g(t){return Ot(t)}function C(t,e){{var r=Ot(t);return r instanceof Comment&&r.data===""?ie(r):r}}function m(t,e=1,r=!1){let n=t;for(;e--;)n=ie(n);return n}function pn(t){t.textContent=""}function vr(t){O===null&&z===null&&tn(),z!==null&&z.f>&&$r(),Le&&Qr()}function gn(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function Nt(t,e,r,n=!0){var i=(t&ne)!==0,o=O,s={ctx:R,deps:null,nodes_start:null,nodes_end:null,f:t|vt,first:null,fn:e,last:null,next:null,parent:i?null:o,prev:null,teardown:null,transitions:null,version:0};if(r){var f=xt;try{Ge(!0),ae(s),s.f|=or}catch(u){throw wt(s),u}finally{Ge(f)}}else e!==null&&le(s);var a=r&&s.deps===null&&s.first===null&&s.nodes_start===null&&s.teardown===null;if(!a&&!i&&n&&(o!==null&&gn(s,o),z!==null&&z.f&ot)){var l=z;(l.children??(l.children=[])).push(s)}return s}function wn(t){const e=Nt(Tt,null,!1);return et(e,Y),e.teardown=t,e}function _e(t){vr();var e=O!==null&&(O.f&Tt)!==0&&R!==null&&!R.m;if(e){var r=R;(r.e??(r.e=[])).push({fn:t,parent:O})}else{var n=At(t);return n}}function mn(t){return vr(),De(t)}function bn(t){const e=Nt(ne,t,!0);return()=>{wt(e)}}function At(t){return Nt(ir,t,!1)}function De(t){return Nt(Tt,t,!0)}function A(t){return De(t)}function oe(t,e=0){return Nt(Tt|Ae|e,t,!0)}function pt(t,e=!0){return Nt(Tt|st,t,!0,e)}function hr(t){var e=t.teardown;if(e!==null){const r=Le,n=z;Je(!0),Ke(null);try{e.call(null)}finally{Je(r),Ke(n)}}}function wt(t,e=!0){var r=!1;if((e||t.f&Yr)&&t.nodes_start!==null){for(var n=t.nodes_start,i=t.nodes_end;n!==null;){var o=n===i?null:ie(n);n.remove(),n=o}r=!0}Er(t,e&&!r),Ct(t,0),et(t,jt);var s=t.transitions;if(s!==null)for(const a of s)a.stop();hr(t);var f=t.parent;f!==null&&f.first!==null&&_r(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.parent=t.fn=t.nodes_start=t.nodes_end=null}function _r(t){var e=t.parent,r=t.prev,n=t.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),e!==null&&(e.first===t&&(e.first=n),e.last===t&&(e.last=r))}function Zt(t,e){var r=[];Re(t,r,!0),pr(r,()=>{wt(t),e&&e()})}function pr(t,e){var r=t.length;if(r>0){var n=()=>--r||e();for(var i of t)i.out(n)}else e()}function Re(t,e,r){if(!(t.f&_t)){if(t.f^=_t,t.transitions!==null)for(const s of t.transitions)(s.is_global||r)&&e.push(s);for(var n=t.first;n!==null;){var i=n.next,o=(n.f&Ft)!==0||(n.f&st)!==0;Re(n,e,o?r:!1),n=i}}}function Xt(t){gr(t,!0)}function gr(t,e){if(t.f&_t){t.f^=_t,qt(t)&&ae(t);for(var r=t.first;r!==null;){var n=r.next,i=(r.f&Ft)!==0||(r.f&st)!==0;gr(r,i?e:!1),r=n}if(t.transitions!==null)for(const o of t.transitions)(o.is_global||e)&&o.in()}}let pe=!1,ge=[];function yn(){pe=!1;const t=ge.slice();ge=[],he(t)}function se(t){pe||(pe=!0,queueMicrotask(yn)),ge.push(t)}function S(t){let e=ot|vt;O===null&&(e|=gt);const r={children:null,deps:null,equals:sr,f:e,fn:t,reactions:null,v:null,version:0};if(z!==null&&z.f&ot){var n=z;(n.children??(n.children=[])).push(r)}return r}function wr(t){var e=t.children;if(e!==null){t.children=null;for(var r=0;r<e.length;r+=1){var n=e[r];n.f&ot?xn(n):wt(n)}}}function mr(t){var e;wr(t),e=xr(t);var r=(yt||t.f>)&&t.deps!==null?Bt:Y;et(t,r),t.equals(e)||(t.v=e,t.version=yr())}function xn(t){wr(t),Ct(t,0),et(t,jt),t.children=t.deps=t.reactions=t.fn=null}let Qt=!1,xt=!1,Le=!1;function Ge(t){xt=t}function Je(t){Le=t}let we=[],Lt=0;let z=null;function Ke(t){z=t}let O=null;function Ye(t){O=t}let rt=null;function En(t){rt=t}let j=null,V=0,dt=null;function kn(t){dt=t}let br=0,yt=!1,R=null;function yr(){return++br}function me(){return R!==null&&R.l===null}function qt(t){var s,f;var e=t.f;if(e&vt)return!0;if(e&Bt){var r=t.deps,n=(e>)!==0;if(r!==null){var i;if(e&Kt){for(i=0;i<r.length;i++)((s=r[i]).reactions??(s.reactions=[])).push(t);t.f^=Kt}for(i=0;i<r.length;i++){var o=r[i];if(qt(o)&&mr(o),n&&O!==null&&!yt&&!((f=o==null?void 0:o.reactions)!=null&&f.includes(t))&&(o.reactions??(o.reactions=[])).push(t),o.version>t.version)return!0}}n||et(t,Y)}return!1}function On(t,e,r){throw t}function xr(t){var u;var e=j,r=V,n=dt,i=z,o=yt,s=rt;j=null,V=0,dt=null,z=t.f&(st|ne)?null:t,yt=!xt&&(t.f>)!==0,rt=null;try{var f=(0,t.fn)(),a=t.deps;if(j!==null){var l;if(Ct(t,V),a!==null&&V>0)for(a.length=V+j.length,l=0;l<j.length;l++)a[V+l]=j[l];else t.deps=a=j;if(!yt)for(l=V;l<a.length;l++)((u=a[l]).reactions??(u.reactions=[])).push(t)}else a!==null&&V<a.length&&(Ct(t,V),a.length=V);return f}finally{j=e,V=r,dt=n,z=i,yt=o,rt=s}}function Sn(t,e){let r=e.reactions;if(r!==null){var n=r.indexOf(t);if(n!==-1){var i=r.length-1;i===0?r=e.reactions=null:(r[n]=r[i],r.pop())}}r===null&&e.f&ot&&(j===null||!j.includes(e))&&(et(e,Bt),e.f&(gt|Kt)||(e.f^=Kt),Ct(e,0))}function Ct(t,e){var r=t.deps;if(r!==null)for(var n=e;n<r.length;n++)Sn(t,r[n])}function Er(t,e=!1){var r=t.first;for(t.first=t.last=null;r!==null;){var n=r.next;wt(r,e),r=n}}function ae(t){var e=t.f;if(!(e&jt)){et(t,Y);var r=O,n=R;O=t,R=t.ctx;try{e&Ae||Er(t),hr(t);var i=xr(t);t.teardown=typeof i=="function"?i:null,t.version=br}catch(o){On(o)}finally{O=r,R=n}}}function Tn(){Lt>1e3&&(Lt=0,en()),Lt++}function Nn(t){var e=t.length;if(e!==0){Tn();var r=xt;xt=!0;try{for(var n=0;n<e;n++){var i=t[n];if(i.f&Yt&&(i.f^=Yt),i.first===null&&!(i.f&st))Ze([i]);else{var o=[];kr(i,o),Ze(o)}}}finally{xt=r}}}function Ze(t){var e=t.length;if(e!==0)for(var r=0;r<e;r++){var n=t[r];!(n.f&(jt|_t))&&qt(n)&&(ae(n),n.deps===null&&n.first===null&&n.nodes_start===null&&(n.teardown===null?_r(n):n.fn=null))}}function An(){if(Qt=!1,Lt>1001)return;const t=we;we=[],Nn(t),Qt||(Lt=0)}function le(t){Qt||(Qt=!0,queueMicrotask(An));for(var e=t;e.parent!==null;){e=e.parent;var r=e.f;if(r&st){if(!(r&Y))return;e.f^=Y}if(r&ne){if(r&Yt)return;e.f^=Yt}}we.push(e)}function kr(t,e){var r=t.first,n=[];t:for(;r!==null;){var i=r.f,o=(i&_t)===0,s=(i&st)!==0,f=(i&Y)!==0,a=r.first;if(o&&(!s||!f))if(s&&et(r,Y),i&Tt){if(!s&&qt(r)&&ae(r),a=r.first,a!==null){r=a;continue}}else i&ir&&n.push(r);var l=r.next;if(l===null){let v=r.parent;for(;v!==null;){if(t===v)break t;var u=v.next;if(u!==null){r=u;continue t}v=v.parent}}r=l}for(var d=0;d<n.length;d++)a=n[d],e.push(a),kr(a,e)}function h(t){var e=t.f;if(e&jt)return t.v;if(z!==null){rt!==null&&rt.includes(t)&&on();var r=z.deps;j===null&&r!==null&&r[V]===t?V++:j===null?j=[t]:j.push(t),dt!==null&&O!==null&&O.f&Y&&!(O.f&st)&&dt.includes(t)&&(et(O,vt),le(O))}if(e&ot){var n=t;qt(n)&&mr(n)}return t.v}function Ht(t){const e=z;try{return z=null,t()}finally{z=e}}const Mn=~(vt|Bt|Y);function et(t,e){t.f=t.f&Mn|e}function W(t,e=!1,r){R={p:R,c:null,e:null,m:!1,s:t,x:null,l:null},e||(R.l={s:null,u:null,r1:[],r2:G(!1)})}function U(t){const e=R;if(e!==null){const o=e.e;if(o!==null){var r=O;e.e=null;try{for(var n=0;n<o.length;n++){var i=o[n];Ye(i.parent),At(i.fn)}}finally{Ye(r)}}R=e.p,e.m=!0}return{}}function zn(t){if(!(typeof t!="object"||!t||t instanceof EventTarget)){if(ct in t)be(t);else if(!Array.isArray(t))for(let e in t){const r=t[e];typeof r=="object"&&r&&ct in r&&be(r)}}}function be(t,e=new Set){if(typeof t=="object"&&t!==null&&!(t instanceof EventTarget)&&!e.has(t)){e.add(t),t instanceof Date&&t.getTime();for(let n in t)try{be(t[n],e)}catch{}const r=nr(t);if(r!==Object.prototype&&r!==Array.prototype&&r!==Map.prototype&&r!==Set.prototype&&r!==Date.prototype){const n=Ur(r);for(let i in n){const o=n[i].get;if(o)try{o.call(t)}catch{}}}}}const Or=new Set,ye=new Set;function Pn(t,e,r,n){function i(o){if(n.capture||Dt.call(e,o),!o.cancelBubble)return r.call(this,o)}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?se(()=>{e.addEventListener(t,i,n)}):e.addEventListener(t,i,n),i}function Et(t,e,r,n,i){var o={capture:n,passive:i},s=Pn(t,e,r,o);(e===document.body||e===window||e===document)&&wn(()=>{e.removeEventListener(t,s,o)})}function ue(t){for(var e=0;e<t.length;e++)Or.add(t[e]);for(var r of ye)r(t)}function Dt(t){var x;var e=this,r=e.ownerDocument,n=t.type,i=((x=t.composedPath)==null?void 0:x.call(t))||[],o=i[0]||t.target,s=0,f=t.__root;if(f){var a=i.indexOf(f);if(a!==-1&&(e===document||e===window)){t.__root=e;return}var l=i.indexOf(e);if(l===-1)return;a<=l&&(s=a)}if(o=i[s]||t.target,o!==e){Wr(t,"currentTarget",{configurable:!0,get(){return o||r}});try{for(var u,d=[];o!==null;){var v=o.assignedSlot||o.parentNode||o.host||null;try{var c=o["__"+n];if(c!==void 0&&!o.disabled)if(Te(c)){var[_,...p]=c;_.apply(o,[t,...p])}else c.call(o,t)}catch(b){u?d.push(b):u=b}if(t.cancelBubble||v===e||v===null)break;o=v}if(u){for(let b of d)queueMicrotask(()=>{throw b});throw u}}finally{t.__root=e,delete t.currentTarget}}}function Sr(t){var e=document.createElement("template");return e.innerHTML=t,e.content}function $t(t,e){var r=O;r.nodes_start===null&&(r.nodes_start=t,r.nodes_end=e)}function N(t,e){var r=(e&dn)!==0,n=(e&vn)!==0,i,o=!t.startsWith("<!>");return()=>{i===void 0&&(i=Sr(o?t:"<!>"+t),r||(i=Ot(i)));var s=n?document.importNode(i,!0):i.cloneNode(!0);if(r){var f=Ot(s),a=s.lastChild;$t(f,a)}else $t(s,s);return s}}function Tr(t,e,r="svg"){var n=!t.startsWith("<!>"),i=`<${r}>${n?t:"<!>"+t}</${r}>`,o;return()=>{if(!o){var s=Sr(i),f=Ot(s);o=Ot(f)}var a=o.cloneNode(!0);return $t(a,a),a}}function Ce(){var t=document.createDocumentFragment(),e=document.createComment(""),r=Pe();return t.append(e,r),$t(e,r),t}function k(t,e){t!==null&&t.before(e)}const Dn=["wheel","mousewheel","touchstart","touchmove"];function Rn(t){return Dn.includes(t)}let xe=!0;function M(t,e){e!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=e,t.nodeValue=e==null?"":e+"")}function Ln(t,e){const r=e.anchor??e.target.appendChild(Pe());return Cn(t,{...e,anchor:r})}const bt=new Map;function Cn(t,{target:e,anchor:r,props:n={},events:i,context:o,intro:s=!0}){_n();var f=new Set,a=d=>{for(var v=0;v<d.length;v++){var c=d[v];if(!f.has(c)){f.add(c);var _=Rn(c);e.addEventListener(c,Dt,{passive:_});var p=bt.get(c);p===void 0?(document.addEventListener(c,Dt,{passive:_}),bt.set(c,1)):bt.set(c,p+1)}}};a(Ne(Or)),ye.add(a);var l=void 0,u=bn(()=>(pt(()=>{if(o){W({});var d=R;d.c=o}i&&(n.$$events=i),xe=s,l=t(r,n)||{},xe=!0,o&&U()}),()=>{for(var d of f){e.removeEventListener(d,Dt);var v=bt.get(d);--v===0?(document.removeEventListener(d,Dt),bt.delete(d)):bt.set(d,v)}ye.delete(a),Xe.delete(l)}));return Xe.set(l,u),l}let Xe=new WeakMap;function L(t,e,r,n=null,i=!1){var o=t,s=null,f=null,a=null,l=i?Ft:0;oe(()=>{a!==(a=!!e())&&(a?(s?Xt(s):s=pt(()=>r(o)),f&&Zt(f,()=>{f=null})):(f?Xt(f):n&&(f=pt(()=>n(o))),s&&Zt(s,()=>{s=null})))},l)}function In(t,e,r){var n=t,i=q,o;oe(()=>{ar(i,i=e())&&(o&&Zt(o),o=pt(()=>r(n)))})}let ve=null;function Bn(t,e){return e}function jn(t,e,r,n){for(var i=[],o=e.length,s=0;s<o;s++)Re(e[s].e,i,!0);var f=o>0&&i.length===0&&r!==null;if(f){var a=r.parentNode;pn(a),a.append(r),n.clear(),at(t,e[0].prev,e[o-1].next)}pr(i,()=>{for(var l=0;l<o;l++){var u=e[l];f||(n.delete(u.k),at(t,u.prev,u.next)),wt(u.e,!f)}})}function Ie(t,e,r,n,i,o=null){var s=t,f={flags:e,items:new Map,first:null},a=(e&ur)!==0;if(a){var l=t;s=l.appendChild(Pe())}var u=null;oe(()=>{var d=r(),v=Te(d)?d:d==null?[]:Ne(d),c=v.length;Fn(v,f,s,i,e,n),o!==null&&(c===0?u?Xt(u):u=pt(()=>o(s)):u!==null&&Zt(u,()=>{u=null}))})}function Fn(t,e,r,n,i,o){var Wt,Mt,Ut,Vt;var s=(i&un)!==0,f=(i&(Me|ze))!==0,a=t.length,l=e.items,u=e.first,d=u,v,c=null,_,p=[],x=[],b,E,w,y;if(s)for(y=0;y<a;y+=1)b=t[y],E=o(b,y),w=l.get(E),w!==void 0&&((Wt=w.a)==null||Wt.measure(),(_??(_=new Set)).add(w));for(y=0;y<a;y+=1){if(b=t[y],E=o(b,y),w=l.get(E),w===void 0){var Z=d?d.e.nodes_start:r;c=Hn(Z,e,c,c===null?e.first:c.next,b,E,y,n,i),l.set(E,c),p=[],x=[],d=c.next;continue}if(f&&qn(w,b,y,i),w.e.f&_t&&(Xt(w.e),s&&((Mt=w.a)==null||Mt.unfix(),(_??(_=new Set)).delete(w))),w!==d){if(v!==void 0&&v.has(w)){if(p.length<x.length){var X=x[0],P;c=X.prev;var D=p[0],J=p[p.length-1];for(P=0;P<p.length;P+=1)Qe(p[P],X,r);for(P=0;P<x.length;P+=1)v.delete(x[P]);at(e,D.prev,J.next),at(e,c,D),at(e,J,X),d=X,c=J,y-=1,p=[],x=[]}else v.delete(w),Qe(w,d,r),at(e,w.prev,w.next),at(e,w,c===null?e.first:c.next),at(e,c,w),c=w;continue}for(p=[],x=[];d!==null&&d.k!==E;)(v??(v=new Set)).add(d),x.push(d),d=d.next;if(d===null)continue;w=d}p.push(w),c=w,d=w.next}if(d!==null||v!==void 0){for(var F=v===void 0?[]:Ne(v);d!==null;)F.push(d),d=d.next;var mt=F.length;if(mt>0){var fe=i&ur&&a===0?r:null;if(s){for(y=0;y<mt;y+=1)(Ut=F[y].a)==null||Ut.measure();for(y=0;y<mt;y+=1)(Vt=F[y].a)==null||Vt.fix()}jn(e,F,fe,l)}}s&&se(()=>{var Gt;if(_!==void 0)for(w of _)(Gt=w.a)==null||Gt.apply()}),O.first=e.first&&e.first.e,O.last=c&&c.e}function qn(t,e,r,n){n&Me&&T(t.v,e),n&ze?T(t.i,r):t.i=r}function Hn(t,e,r,n,i,o,s,f,a){var l=ve;try{var u=(a&Me)!==0,d=(a&fn)===0,v=u?d?an(i):G(i):i,c=a&ze?G(s):s,_={i:c,v,k:o,a:null,e:null,prev:r,next:n};return ve=_,_.e=pt(()=>f(t,v,c),fr),_.e.prev=r&&r.e,_.e.next=n&&n.e,r===null?e.first=_:(r.next=_,r.e.next=_.e),n!==null&&(n.prev=_,n.e.prev=_.e),_}finally{ve=l}}function Qe(t,e,r){for(var n=t.next?t.next.e.nodes_start:r,i=e?e.e.nodes_start:r,o=t.e.nodes_start;o!==n;){var s=ie(o);i.before(o),o=s}}function at(t,e,r){e===null?t.first=r:(e.next=r,e.e.next=r&&r.e),r!==null&&(r.prev=e,r.e.prev=e&&e.e)}function Wn(t,e,...r){var n=t,i=Pt,o;oe(()=>{i!==(i=e())&&(o&&(wt(o),o=null),o=pt(()=>i(n,...r)))},Ft)}function I(t,e,r,n){r=r==null?null:r+"";var i=t.__attributes??(t.__attributes={});i[e]!==(i[e]=r)&&(e==="loading"&&(t[Zr]=r),r===null?t.removeAttribute(e):t.setAttribute(e,r))}function Un(t,e){var r=t.__className,n=Vn(e);(r!==n||fr)&&(n===""?t.removeAttribute("class"):t.setAttribute("class",n),t.__className=n)}function Vn(t){return t??""}function te(t,e,r){if(r){if(t.classList.contains(e))return;t.classList.add(e)}else{if(!t.classList.contains(e))return;t.classList.remove(e)}}function $e(t,e,r,n,i){var o=t.__attributes??(t.__attributes={}),s=t.style,f="style-"+e;o[f]===r&&s.getPropertyValue(e)===r||(o[f]=r,r==null?s.removeProperty(e):s.setProperty(e,r,""))}const Gn=requestAnimationFrame,Jn=()=>performance.now(),ut={tick:t=>Gn(t),now:()=>Jn(),tasks:new Set};function Nr(t){ut.tasks.forEach(e=>{e.c(t)||(ut.tasks.delete(e),e.f())}),ut.tasks.size!==0&&ut.tick(Nr)}function Kn(t){let e;return ut.tasks.size===0&&ut.tick(Nr),{promise:new Promise(r=>{ut.tasks.add(e={c:t,f:r})}),abort(){ut.tasks.delete(e)}}}function Jt(t,e){t.dispatchEvent(new CustomEvent(e))}function Yn(t){const e=t.split("-");return e.length===1?e[0]:e[0]+e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function tr(t){const e={},r=t.split(";");for(const n of r){const[i,o]=n.split(":");if(!i||o===void 0)break;const s=Yn(i.trim());e[s]=o.trim()}return e}const Zn=t=>t;function Xn(t,e,r,n){var i=(t&cn)!==0,o="both",s,f=e.inert,a,l;function u(){return s??(s=r()(e,(n==null?void 0:n())??{},{direction:o}))}var d={is_global:i,in(){e.inert=f,Jt(e,"introstart"),a=Ee(e,u(),l,1,()=>{Jt(e,"introend"),a==null||a.abort(),a=s=void 0})},out(p){e.inert=!0,Jt(e,"outrostart"),l=Ee(e,u(),a,0,()=>{Jt(e,"outroend"),p==null||p()})},stop:()=>{a==null||a.abort(),l==null||l.abort()}},v=O;if((v.transitions??(v.transitions=[])).push(d),xe){var c=i;if(!c){for(var _=v.parent;_&&_.f&Ft;)for(;(_=_.parent)&&!(_.f&Ae););c=!_||(_.f&or)!==0}c&&At(()=>{Ht(()=>d.in())})}}function Ee(t,e,r,n,i){var o=n===1;if(Jr(e)){var s,f=!1;return se(()=>{if(!f){var x=e({direction:o?"in":"out"});s=Ee(t,x,r,n,i)}}),{abort:()=>{f=!0,s==null||s.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(r==null||r.deactivate(),!(e!=null&&e.duration))return i(),{abort:Pt,deactivate:Pt,reset:Pt,t:()=>n};const{delay:a=0,css:l,tick:u,easing:d=Zn}=e;var v=[];if(o&&r===void 0&&(u&&u(0,1),l)){var c=tr(l(0,1));v.push(c,c)}var _=()=>1-n,p=t.animate(v,{duration:a});return p.onfinish=()=>{var x=(r==null?void 0:r.t())??1-n;r==null||r.abort();var b=n-x,E=e.duration*Math.abs(b),w=[];if(E>0){if(l)for(var y=Math.ceil(E/16.666666666666668),Z=0;Z<=y;Z+=1){var X=x+b*d(Z/y),P=l(X,1-X);w.push(tr(P))}_=()=>{var D=p.currentTime;return x+b*d(D/E)},u&&Kn(()=>{if(p.playState!=="running")return!1;var D=_();return u(D,1-D),!0})}p=t.animate(w,{duration:E,fill:"forwards"}),p.onfinish=()=>{_=()=>n,u==null||u(n,1-n),i()}},{abort:()=>{p&&(p.cancel(),p.effect=null)},deactivate:()=>{i=Pt},reset:()=>{n===0&&(u==null||u(1,0))},t:()=>_()}}function ke(t,e,r){if(t.multiple)return $n(t,e);for(var n of t.options){var i=Ar(n);if(hn(i,e)){n.selected=!0;return}}(!r||e!==void 0)&&(t.selectedIndex=-1)}function Qn(t,e){let r=!0;At(()=>{e&&ke(t,Ht(e),r),r=!1;var n=new MutationObserver(()=>{var i=t.__value;ke(t,i)});return n.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),()=>{n.disconnect()}})}function $n(t,e){for(var r of t.options)r.selected=~e.indexOf(Ar(r))}function Ar(t){return"__value"in t?t.__value:t.value}var lt,kt,It,ee,Mr;const re=class re{constructor(e){zt(this,ee);zt(this,lt,new WeakMap);zt(this,kt);zt(this,It);de(this,It,e)}observe(e,r){var n=nt(this,lt).get(e)||new Set;return n.add(r),nt(this,lt).set(e,n),He(this,ee,Mr).call(this).observe(e,nt(this,It)),()=>{var i=nt(this,lt).get(e);i.delete(r),i.size===0&&(nt(this,lt).delete(e),nt(this,kt).unobserve(e))}}};lt=new WeakMap,kt=new WeakMap,It=new WeakMap,ee=new WeakSet,Mr=function(){return nt(this,kt)??de(this,kt,new ResizeObserver(e=>{for(var r of e){re.entries.set(r.target,r);for(var n of nt(this,lt).get(r.target)||[])n(r)}}))},Q(re,"entries",new WeakMap);let Oe=re;var ti=new Oe({box:"border-box"});function ft(t,e,r){var n=ti.observe(t,()=>r(t[e]));At(()=>(Ht(()=>r(t[e])),n))}function er(t,e){return t===e||(t==null?void 0:t[ct])===e}function ei(t={},e,r,n){return At(()=>{var i,o;return De(()=>{i=o,o=[],Ht(()=>{t!==r(...o)&&(e(t,...o),i&&er(r(...i),t)&&e(null,...i))})}),()=>{se(()=>{o&&er(r(...o),t)&&e(null,...o)})}}),t}function Be(){const t=R,e=t.l.u;e&&(e.b.length&&mn(()=>{rr(t),he(e.b)}),_e(()=>{const r=Ht(()=>e.m.map(Kr));return()=>{for(const n of r)typeof n=="function"&&n()}}),e.a.length&&_e(()=>{rr(t),he(e.a)}))}function rr(t){if(t.l.s)for(const e of t.l.s)h(e);zn(t.s)}const ri="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ri);const ni=t=>t;function ii(t,{delay:e=0,duration:r=400,easing:n=ni}={}){const i=+getComputedStyle(t).opacity;return{delay:e,duration:r,easing:n,css:o=>`opacity: ${o*i}`}}function oi(t){return Object.entries(t.outputs).map(([e,r])=>{const n=new si;return Object.entries(r.inputs).forEach(([i,o])=>n.insert(i,o)),n.root.name=e,n.root.uncompressed=r.uncompressed,n.root.gzip=r.gzip,n.root.brotli=r.brotli,n.optimize(),n})}function ht(t){return"items"in t}class si{constructor(){Q(this,"root");this.root=this.createNode("","")}createNode(e,r){return{name:e,path:r,uncompressed:0,gzip:0,brotli:0,items:[]}}insert(e,r){const n=e.split("/"),i=n.pop();let o=this.root;n.forEach(s=>{let f=o.items.find(a=>ht(a)&&a.name===s);f||(f=this.createNode(s,o.path?`${o.path}/${s}`:s),o.items.push(f)),o=f,o.uncompressed+=r.uncompressed,o.gzip+=r.gzip,o.brotli+=r.brotli}),o.items.push({name:i,path:o.path?`${o.path}/${i}`:i,uncompressed:r.uncompressed,gzip:r.gzip,brotli:r.brotli})}optimize(){const e=[this.root];for(;e.length;){const r=e.pop();for(;r.items.length===1&&ht(r.items[0]);){const n=r.items[0];r.name=`${r.name}/${n.name}`,r.path=n.path,r.items=n.items}r.items.sort((n,i)=>i.uncompressed-n.uncompressed),r.items.forEach(n=>ht(n)&&e.push(n))}}get(e){let r=this.root;for(;r&&r.path!==e;)r=ht(r)&&r.items.find(n=>e.startsWith(n.path))||null;return r}}const Se=oi(window.SONDA_JSON_REPORT);function ai(){let t=B(0);const e=S(()=>Se.at(h(t)));return{get index(){return h(t)},get output(){return h(e)},setIndex(r){T(t,H(r))}}}function li(){let t=B("uncompressed");return{get type(){return h(t)},setType(e){T(t,H(e))}}}function ui(){let t=H({file:null,folder:null,output:null}),e=H([]);return{get file(){return t.file},get folder(){return t.folder},get output(){return t.output},open(r,n){e.push(r),t[r]=n},close(){e.length!==0&&(t[e.pop()]=null)}}}const K=ai(),St=li(),$=ui();var fi=()=>$.close(),ci=N('<div class="fixed top-0 right-0 left-0 bottom-0 flex justify-center items-center"><div class="fixed bg-gray-200/70 w-full h-full backdrop-blur-sm" aria-hidden="true"></div> <div class="bg-white relative flex flex-col rounded-lg border p-6 shadow-lg overflow-hidden max-h-[95vh] max-w-[95vw]"><div class="mb-4"><h2 class="py-2 pr-6 block align-text-bottom font-semibold leading-none tracking-tight text-base border-b-2 border-gray-300 border-dashed"> </h2> <button aria-label="Close dialog" class="absolute top-0 right-0 mt-2 mr-2 flex justify-center items-center border border-transparent rounded-full w-10 h-10 text-gray-600 hover:text-gray-900"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M0 0h24v24H0z" stroke="none"></path><path d="M18 6 6 18M6 6l12 12"></path></svg></button></div> <!></div></div>');function je(t,e){W(e,!0);let r=B(void 0);function n(v){v.target===h(r)&&$.close()}var i=ci();Et("click",it.body,n);var o=g(i);ei(o,v=>T(r,v),()=>h(r));var s=m(o,2),f=g(s),a=g(f),l=g(a),u=m(a,2);u.__click=[fi];var d=m(f,2);Wn(d,()=>e.children),A(()=>{te(s,"w-[95vw]",e.large),te(s,"h-[95vh]",e.large),M(l,e.heading)}),Xn(3,i,()=>ii,()=>({duration:150})),k(t,i),U()}ue(["click"]);function tt(t){const r=["b","KiB","MiB","GiB","TiB","PiB"];let n=t,i=0;for(;n>1024&&r.length>i+1;)n=n/1024,i++;return`${i?n.toFixed(2):n} ${r[i]}`}var di=N('<span class="text-gray-900"> </span> <span class="text-gray-600"> </span>',1),vi=Tr('<g><rect shape-rendering="crispEdges" vector-effect="non-scaling-stroke"></rect><foreignObject class="pointer-events-none"><p xmlns="http://www.w3.org/1999/xhtml" class="p-1 size-full text-center text-xs truncate"><!></p></foreignObject><!></g>');function hi(t,e){W(e,!0);const r=20,n=6,i=22,o=S(()=>e.tile.width-n*2),s=S(()=>e.tile.height-n-i),f=S(()=>tt(e.content[St.type])),a=S(()=>Math.min(e.content[St.type]/e.totalBytes*100,100).toFixed(2)),l=S(()=>`color-mix(in oklch, #fca5a5 ${h(a)}%, #86efac)`),u=S(()=>e.tile.width>=i*1.75&&e.tile.height>=i),d=S(()=>!ht(e.content)||h(s)<=r||h(o)<=r?[]:e.content.items);var v=vi(),c=g(v);A(()=>Un(c,`stroke-gray-500 ${(ht(e.content)?"cursor-zoom-in":"cursor-pointer")??""} svelte-ks9kyg`));var _=m(c),p=g(_),x=g(p);L(x,()=>h(u),E=>{var w=di(),y=C(w),Z=g(y),X=m(y,2),P=g(X);A(()=>{M(Z,e.content.name),M(P,`- ${h(f)??""}`)}),k(E,w)});var b=m(_);L(b,()=>h(d).length,E=>{var w=S(()=>e.tile.x+n),y=S(()=>e.tile.y+i);zr(E,{get content(){return h(d)},get totalBytes(){return e.totalBytes},get width(){return h(o)},get height(){return h(s)},get xStart(){return h(w)},get yStart(){return h(y)}})}),A(()=>{I(c,"data-tile",e.content.path),I(c,"data-hover",`${e.content.name} - ${h(f)} (${h(a)}%)`),I(c,"x",e.tile.x),I(c,"y",e.tile.y),I(c,"width",e.tile.width),I(c,"height",e.tile.height),I(c,"fill",h(l)),I(_,"x",e.tile.x),I(_,"y",e.tile.y),I(_,"width",e.tile.width),I(_,"height",e.tile.height)}),k(t,v),U()}class _i{constructor(e,r,n,i=0,o=0){Q(this,"sizes");Q(this,"tiles");Q(this,"xStart");Q(this,"yStart");Q(this,"widthLeft");Q(this,"heightLeft");const s=e.reduce((a,l)=>a+l,0),f=n*r/s;this.sizes=new Float32Array(e.length);for(let a=0;a<e.length;a++)this.sizes[a]=e[a]*f;this.tiles=new Array,this.xStart=i,this.yStart=o,this.widthLeft=r,this.heightLeft=n}layout(e,r,n,i,o){let s=i?this.yStart:this.xStart,f;const a=this.sizes,l=this.tiles;for(let u=e;u<=r;u++)f=a[u]/n,i?l.push({x:this.xStart,y:s,width:n,height:f}):l.push({x:s,y:this.yStart,width:f,height:n}),s+=f,o++;return i?(this.xStart+=n,this.widthLeft-=n):(this.yStart+=n,this.heightLeft-=n),o}calculate(){let e=this.heightLeft<this.widthLeft,r=e?this.heightLeft:this.widthLeft,n=r*r,i=0,o=0,s=this.sizes[0],f=this.sizes[0],a=this.sizes[0],l=0,u=s*s,d=Math.max(n*a/u,u/(n*f));for(let v=1;v<this.sizes.length;v++){const c=this.sizes[v],_=s+c,p=f<c?f:c,x=a>c?a:c,b=_*_,E=Math.max(n*x/b,b/(n*p));(d<=E?1:0)?(l=this.layout(i,o,s/r,e,l),e=this.heightLeft<this.widthLeft,r=e?this.heightLeft:this.widthLeft,n=r*r,i=v,o=v,s=c,f=c,a=c,u=c*c,d=Math.max(n*a/u,u/(n*f))):(o=v,s=_,f=p,a=x,u=b,d=E)}return l=this.layout(i,o,s/r,e,l),this.tiles}}function zr(t,e){W(e,!0);const r=S(()=>Array.isArray(e.content)?Object.values(e.content):[e.content]),n=S(()=>new _i(h(r).map(f=>f[St.type]),e.width,e.height,e.xStart,e.yStart).calculate());var i=Ce(),o=C(i);Ie(o,18,()=>h(n),s=>s,(s,f,a)=>{hi(s,{get tile(){return f},get content(){return h(r)[h(a)]},get totalBytes(){return e.totalBytes}})}),k(t,i),U()}var pi=Tr('<svg xmlns="http://www.w3.org/2000/svg" role="img"><!></svg>');function Pr(t,e){W(e,!0);var r=Ce(),n=C(r);In(n,()=>[e.content.path,e.width,e.height],i=>{var o=pi(),s=g(o),f=S(()=>e.width-1),a=S(()=>e.height-1);zr(s,{get content(){return e.content},get totalBytes(){return e.content[St.type]},get width(){return h(f)},get height(){return h(a)},xStart:.5,yStart:.5}),A(()=>{I(o,"width",e.width),I(o,"height",e.height)}),k(i,o)}),k(t,r),U()}var gi=N('<span>Approx. GZIP size</span> <span class="font-bold"> </span>',1),wi=N('<span>Approx. Brotli size</span> <span class="font-bold"> </span>',1),mi=N('<div class="mb-4 grid grid-cols-[auto_1fr] gap-x-8"><span>Bundled size</span> <span class="font-bold"> </span> <!> <!></div> <div class="flex-grow overflow-hidden"><!></div>',1);function bi(t,e){W(e,!0);let r=B(0),n=B(0);je(t,{get heading(){return e.folder.path},large:!0,children:o=>{var s=mi(),f=C(s),a=m(g(f),2),l=g(a);A(()=>M(l,tt(e.folder.uncompressed)));var u=m(a,2);L(u,()=>e.folder.gzip,_=>{var p=gi(),x=m(C(p),2),b=g(x);A(()=>M(b,tt(e.folder.gzip))),k(_,p)});var d=m(u,2);L(d,()=>e.folder.brotli,_=>{var p=wi(),x=m(C(p),2),b=g(x);A(()=>M(b,tt(e.folder.brotli))),k(_,p)});var v=m(f,2),c=g(v);Pr(c,{get content(){return e.folder},get width(){return h(r)},get height(){return h(n)}}),ft(v,"clientWidth",_=>T(r,_)),ft(v,"clientHeight",_=>T(n,_)),k(o,s)}}),U()}class yi{constructor(){Q(this,"depth",0);Q(this,"tree",[])}process(e){const r=this.getImporters(e);if(!r.length)return;if(r.length===1)return this.addLast(`imported by ${r[0]}`),this.process(r[0]);const n=r.pop();r.forEach(i=>this.add(`imported by ${i}`)),this.addLast(`imported by ${n}`)}getImporters(e){return e?Object.entries(window.SONDA_JSON_REPORT.inputs).filter(([,r])=>r.imports.includes(e)).map(([r])=>r):[]}addLast(e){this.tree.push(" ".repeat(this.depth*4)+"└── "+e),this.depth++}add(e){this.tree.push(" ".repeat(this.depth*4)+"├── "+e)}render(e){const r=window.SONDA_JSON_REPORT.inputs[e];return r.belongsTo&&(this.tree.push(`└── part of the ${r.belongsTo} bundle`),this.depth++,e=r.belongsTo),this.process(e),this.tree.join(`
|
|
2
|
-
`)}}var xi=N('<span>File format</span> <span class="font-bold"> </span>',1),Ei=N('<span>Approx. GZIP size</span> <span class="font-bold"> </span>',1),ki=N('<span>Approx. Brotli size</span> <span class="font-bold"> </span>',1),Oi=N('<p class="mt-12">This file is in the bundle, because it is:</p> <code class="mt-2 p-4 w-max leading-5 bg-slate-200 rounded overflow-auto min-w-full"><pre> </pre></code>',1),Si=N('<div class="flex flex-col overflow-y-auto"><div class="grid grid-cols-[auto_1fr] gap-x-8"><!> <span>Original file size</span> <span class="font-bold"> </span> <span>Bundled size</span> <span class="font-bold"> </span> <!> <!></div> <!></div>');function Ti(t,e){W(e,!0);const r=S(()=>window.SONDA_JSON_REPORT.inputs[e.file.path]),n=S(()=>{var s;if(h(r))return h(r).format.toUpperCase();const o=(s=window.SONDA_JSON_REPORT.inputs[e.file.path])==null?void 0:s.belongsTo;return o?window.SONDA_JSON_REPORT.inputs[o].format.toUpperCase:"UNKNOWN"}),i=S(()=>h(r)?new yi().render(e.file.path):null);je(t,{get heading(){return e.file.path},children:s=>{var f=Si(),a=g(f),l=g(a);L(l,()=>h(n)!=="UNKNOWN",b=>{var E=xi(),w=m(C(E),2),y=g(w);A(()=>M(y,h(n))),k(b,E)});var u=m(l,4),d=g(u);A(()=>{var b;return M(d,tt(((b=h(r))==null?void 0:b.bytes)||0))});var v=m(u,4),c=g(v);A(()=>M(c,tt(e.file.uncompressed)));var _=m(v,2);L(_,()=>e.file.gzip,b=>{var E=Ei(),w=m(C(E),2),y=g(w);A(()=>M(y,tt(e.file.gzip))),k(b,E)});var p=m(_,2);L(p,()=>e.file.brotli,b=>{var E=ki(),w=m(C(E),2),y=g(w);A(()=>M(y,tt(e.file.brotli))),k(b,E)});var x=m(a,2);L(x,()=>h(i),b=>{var E=Oi(),w=m(C(E),2),y=g(w),Z=g(y);A(()=>M(Z,h(i))),k(b,E)}),k(s,f)}}),U()}var Ni=N('<span>GZIP size</span> <span class="font-bold"> </span>',1),Ai=N('<span>Brotli size</span> <span class="font-bold"> </span>',1),Mi=N('<p class="mt-12">Module types</p> <div class="mt-2 h-10 w-[40rem] max-w-full flex rounded-lg overflow-hidden"><div class="bg-yellow-300 h-full"></div> <div class="bg-blue-300 h-full"></div> <div class="bg-gray-200 h-full"></div></div> <div class="flex justify-between mt-2"><div class="flex items-center space-x-2"><div class="inline-block w-4 h-4 bg-yellow-300"></div> <p>ESM: <span class="font-semibold"> </span></p></div> <div class="flex items-center space-x-2"><div class="inline-block w-4 h-4 bg-blue-300"></div> <p>CJS: <span class="font-semibold"> </span></p></div> <div class="flex items-center space-x-2"><div class="inline-block w-4 h-4 bg-gray-300"></div> <p>Unknown: <span class="font-semibold"> </span></p></div></div>',1),zi=N('<code class="mt-2 p-4 w-max leading-5 bg-slate-200 rounded overflow-auto min-w-full"><pre> </pre></code>'),Pi=N('<div class="flex flex-col overflow-y-auto"><div class="grid grid-cols-[auto_1fr] gap-x-8"><span>Bundled size</span> <span class="font-bold"> </span> <!> <!></div></div> <!> <p class="mt-12">This asset includes <span class="font-semibold"> </span> external dependencies</p> <!>',1);function Di(t,e){W(e,!0);const r=S(()=>window.SONDA_JSON_REPORT.outputs[e.output.root.name]),n=S(()=>{const l={esm:0,cjs:0,unknown:0},u=window.SONDA_JSON_REPORT.inputs;return Object.entries(h(r).inputs).forEach(([d,v])=>{var _;const c=((_=u[d])==null?void 0:_.format)??"unknown";l[c]+=v.uncompressed}),l}),i=S(()=>Math.round(h(n).esm/h(r).uncompressed*1e4)/100),o=S(()=>Math.round(h(n).cjs/h(r).uncompressed*1e4)/100),s=S(()=>Math.round(h(n).unknown/h(r).uncompressed*1e4)/100),f=S(()=>{const l=/(?:.*node_modules\/)(@[^\/]+\/[^\/]+|[^\/]+)/;return Object.keys(h(r).inputs).map(u=>{var d;return((d=u.match(l))==null?void 0:d[1])??null}).filter((u,d,v)=>u!==null&&v.indexOf(u)===d).sort()}),a=S(()=>h(f).map((l,u,d)=>d.length===u+1?`└── ${l}`:`├── ${l}`).join(`
|
|
3
|
-
`));je(t,{get heading(){return e.output.root.name},children:u=>{var d=Pi(),v=C(d),c=g(v),_=m(g(c),2),p=g(_);A(()=>M(p,tt(e.output.root.uncompressed)));var x=m(_,2);L(x,()=>e.output.root.gzip,P=>{var D=Ni(),J=m(C(D),2),F=g(J);A(()=>M(F,tt(e.output.root.gzip))),k(P,D)});var b=m(x,2);L(b,()=>e.output.root.brotli,P=>{var D=Ai(),J=m(C(D),2),F=g(J);A(()=>M(F,tt(e.output.root.brotli))),k(P,D)});var E=m(v,2);L(E,()=>h(s)<100,P=>{var D=Mi(),J=m(C(D),2),F=g(J),mt=m(F,2),fe=m(mt,2),Wt=m(J,2),Mt=g(Wt),Ut=m(g(Mt),2),Vt=m(g(Ut)),Gt=g(Vt),Fe=m(Mt,2),Dr=m(g(Fe),2),Rr=m(g(Dr)),Lr=g(Rr),Cr=m(Fe,2),Ir=m(g(Cr),2),Br=m(g(Ir)),jr=g(Br);A(()=>{I(F,"style",`width: ${h(i)}%`),I(mt,"style",`width: ${h(o)}%`),I(fe,"style",`width: ${h(s)}%`),M(Gt,`${h(i)??""}%`),M(Lr,`${h(o)??""}%`),M(jr,`${h(s)??""}%`)}),k(P,D)});var w=m(E,2),y=m(g(w)),Z=g(y),X=m(w,2);L(X,()=>h(f).length>0,P=>{var D=zi(),J=g(D),F=g(J);A(()=>M(F,h(a))),k(P,D)}),A(()=>M(Z,h(f).length)),k(u,d)}}),U()}var Ri=N("<!> <!> <!>",1);function Li(t,e){W(e,!1),Be();var r=Ri(),n=C(r);L(n,()=>$.folder,s=>{bi(s,{get folder(){return $.folder}})});var i=m(n,2);L(i,()=>$.file,s=>{Ti(s,{get file(){return $.file}})});var o=m(i,2);L(o,()=>$.output,s=>{Di(s,{get output(){return $.output}})}),k(t,r),U()}var Ci=(t,e)=>St.setType(e()),Ii=N('<button type="button" class="px-4 py-2 text-sm font-medium hover:bg-gray-100 text-gray-900 border border-gray-300 first:rounded-s-lg last:rounded-e-lg focus:ring-1 focus:ring-blue-300 focus:z-10 svelte-2f0583"> </button>'),Bi=N('<div class="inline-flex space-x-[-1px] bg-white" role="group"></div>');function ji(t,e){W(e,!0);const r=S(()=>K.output.root.gzip>0),n=S(()=>K.output.root.brotli>0),i=S(()=>{const f=[["uncompressed","Uncompressed"]];return h(r)&&f.push(["gzip","GZIP"]),h(n)&&f.push(["brotli","Brotli"]),f});var o=Ce(),s=C(o);L(s,()=>h(i).length>1,f=>{var a=Bi();Ie(a,21,()=>h(i),([l,u])=>l,(l,u)=>{let d=()=>h(u)[0],v=()=>h(u)[1];var c=Ii();c.__click=[Ci,d];var _=g(c);A(()=>{te(c,"active",d()===St.type),M(_,v())}),k(l,c)}),k(f,a)}),k(t,o),U()}ue(["click"]);function Fi(t){K.setIndex(Number(t.target.value))}var qi=N("<option> </option>"),Hi=N('<select class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 h-10 min-w-80"></select>'),Wi=N('<div class="flex items-center justify-center space-x-2 max-w-sm"><!></div>');function Ui(t,e){W(e,!1),Be();var r=Wi(),n=g(r);L(n,()=>Se.length>0,i=>{var o=Hi();Qn(o,()=>K.index);var s;o.__change=[Fi],Ie(o,5,()=>Se,Bn,(f,a,l)=>{var u=qi();u.value=(u.__value=l)==null?"":l;var d=g(u);A(()=>M(d,`${l+1}. ${h(a).root.name??""}`)),k(f,u)}),A(()=>{s!==(s=K.index)&&(o.value=(o.__value=K.index)==null?"":K.index,ke(o,K.index))}),k(i,o)}),k(t,r),U()}ue(["change"]);function Vi(){$.open("output",K.output)}var Gi=N('<button aria-label="Details of the entire build output" class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 h-10"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-gray-900"><path d="M0 0h24v24H0z" stroke="none" shape-rendering="geometricPrecision"></path><path d="M8 5H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.697M18 12V7a2 2 0 0 0-2-2h-2" shape-rendering="geometricPrecision"></path><path d="M8 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v0a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2zM8 11h4M8 15h3M14 17.5a2.5 2.5 0 1 0 5 0 2.5 2.5 0 1 0-5 0M18.5 19.5 21 22" shape-rendering="geometricPrecision"></path></svg></button>');function Ji(t,e){W(e,!1),Be();var r=Gi();r.__click=[Vi],k(t,r),U()}ue(["click"]);var Ki=N('<div class="flex flex-row p-4 items-center space-y-0 h-16 justify-end space-x-2 bg-gray-50 shadow"><!> <!> <!> <a href="https://github.com/filipsobol/sonda" target="_blank" aria-label="GitHub repository" class="flex items-center text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 h-10"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-gray-900"><path d="M0 0h24v24H0z" stroke="none" shape-rendering="geometricPrecision"></path><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21" shape-rendering="geometricPrecision"></path></svg></a></div>');function Yi(t){var e=Ki(),r=g(e);ji(r,{});var n=m(r,2);Ui(n,{});var i=m(n,2);Ji(i,{}),k(t,e)}var Zi=N('<div class="flex-grow flex flex-col mt-24 items-center w-full h-full"><svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="text-yellow-400 fill-yellow-100"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 21a9 9 0 1 1 0 -18a9 9 0 0 1 0 18z"></path><path d="M8 16l1 -1l1.5 1l1.5 -1l1.5 1l1.5 -1l1 1"></path><path d="M8.5 11.5l1.5 -1.5l-1.5 -1.5"></path><path d="M15.5 11.5l-1.5 -1.5l1.5 -1.5"></path></svg> <h2 class="mt-8 text-3xl font-semibold text-gray-800">No data to display</h2> <p class="mt-4 text-lg text-gray-500">Did you enable source maps in the bundler configuration?</p></div>');function Xi(t){var e=Zi();k(t,e)}var Qi=N('<div role="tooltip" class="fixed z-10 px-2 py-1 bg-gray-800 text-gray-100 rounded-md whitespace-nowrap pointer-events-none will-change-transform" style="transform: translate( var(--x), var(--y) )"> </div>');function $i(t,e){W(e,!0);const r=12;let n=B(0),i=B(0),o=B(0),s=B(0),f=B(0),a=B(0),l=B(""),u=B("0px"),d=B("0px");_e(()=>{h(l)&&(T(u,(h(f)+h(n)+r>h(o)?h(f)-h(n)-r:h(f)+r)+"px"),T(d,(h(a)+h(i)+r>h(s)?h(a)-h(i):h(a)+r)+"px"))});function v({target:p,clientX:x,clientY:b}){T(l,H(p instanceof Element&&p.getAttribute("data-hover")||"")),T(f,H(x)),T(a,H(b))}var c=Qi();Et("mouseover",it.body,v),Et("mousemove",it.body,v),Et("mouseleave",it.body,()=>T(l,""));var _=g(c);A(()=>{te(c,"invisible",!h(l)),$e(c,"--x",h(u)),$e(c,"--y",h(d)),M(_,h(l))}),ft(it.body,"clientWidth",p=>T(o,H(p))),ft(it.body,"clientHeight",p=>T(s,H(p))),ft(c,"clientWidth",p=>T(n,p)),ft(c,"clientHeight",p=>T(i,p)),k(t,c),U()}var to=N('<div role="application" class="wrapper relative flex flex-col overflow-hidden h-screen w-screen"><!> <div class="flex-grow overflow-hidden"><!></div></div> <!> <!>',1);function eo(t,e){W(e,!0);let r=B(0),n=B(0);function i({target:c}){const _=c instanceof Element&&c.getAttribute("data-tile");if(!_)return;const p=K.output.get(_);p&&$.open(ht(p)?"folder":"file",p)}function o(c){c.key==="Escape"&&(c.stopPropagation(),$.close())}var s=to();Et("click",it.body,i),Et("keydown",it.body,o);var f=C(s),a=g(f);Yi(a);var l=m(a,2),u=g(l);L(u,()=>K,c=>{Pr(c,{get content(){return K.output.root},get width(){return h(r)},get height(){return h(n)}})},c=>{Xi(c)});var d=m(f,2);Li(d,{});var v=m(d,2);$i(v,{}),ft(l,"clientWidth",c=>T(r,c)),ft(l,"clientHeight",c=>T(n,c)),k(t,s),U()}Ln(eo,{target:document.getElementById("app")});</script><style rel="stylesheet" crossorigin>rect.svelte-ks9kyg:hover{filter:brightness(1.15)}button.active.svelte-2f0583,button.active.svelte-2f0583:hover{background-color:#e5e7eb}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.mb-4{margin-bottom:1rem}.mr-2{margin-right:.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.size-full{width:100%;height:100%}.h-10{height:2.5rem}.h-16{height:4rem}.h-4{height:1rem}.h-\[95vh\]{height:95vh}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[95vh\]{max-height:95vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-4{width:1rem}.w-\[40rem\]{width:40rem}.w-\[95vw\]{width:95vw}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.min-w-80{min-width:20rem}.min-w-full{min-width:100%}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-\[-1px\]>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-1px * var(--tw-space-x-reverse));margin-left:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b-2{border-bottom-width:2px}.border-dashed{border-style:dashed}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-200\/70{background-color:#e5e7ebb3}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71 / var(--tw-bg-opacity))}.fill-yellow-100{fill:#fef9c3}.stroke-gray-500{stroke:#6b7280}.p-1{padding:.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pr-6{padding-right:1.5rem}.text-center{text-align:center}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21 / var(--tw-text-opacity))}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.will-change-transform{will-change:transform}.first\:rounded-s-lg:first-child{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.last\:rounded-e-lg:last-child{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:z-10:focus{z-index:10}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253 / var(--tw-ring-opacity))}</style></head><body class="flex w-screen h-screen font-mono"><div id="app" class="flex w-screen min-h-screen"></div></body></html>
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><link rel="icon" href="data:;base64,iVBORw0KGgo="/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Sonda report</title><link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' fill='none'%3E%3Cpath fill='%23FACC15' d='M0 0h512v512H0V0Z'/%3E%3Cpath fill='%23000' d='m264.536 203.704-41.984 89.6-21.504-9.728c-20.139-9.216-35.669-21.504-46.592-36.864-10.923-15.36-16.384-37.717-16.384-67.072 0-37.547 9.728-65.536 29.184-83.968 19.797-18.773 52.395-28.33 97.792-28.672 18.773 0 35.84.853 51.2 2.56s27.648 3.584 36.864 5.632l13.824 2.56-10.24 82.432-12.8-1.536c-8.192-1.024-18.432-1.877-30.72-2.56-12.288-1.024-24.235-1.536-35.84-1.536-12.288 0-21.675 1.877-28.16 5.632-6.144 3.413-9.216 10.069-9.216 19.968 0 5.461 2.219 9.899 6.656 13.312 4.437 3.413 10.411 6.827 17.92 10.24Zm-18.432 100.864 42.496-90.624 22.016 9.728c23.211 10.24 40.107 23.04 50.688 38.4 10.581 15.019 15.872 36.523 15.872 64.512 0 37.888-9.899 67.072-29.696 87.552-19.797 20.48-52.395 30.891-97.792 31.232-22.528 0-43.52-1.536-62.976-4.608-19.456-2.731-36.693-5.973-51.712-9.728l10.24-82.432 12.288 2.048c8.533 1.365 19.797 2.731 33.792 4.096 13.995 1.365 29.355 2.048 46.08 2.048 12.971 0 22.699-1.877 29.184-5.632 6.485-3.755 9.728-9.899 9.728-18.432 0-5.803-1.536-10.411-4.608-13.824-3.072-3.413-8.533-6.827-16.384-10.24l-9.216-4.096Z'/%3E%3C/svg%3E"/><script type="module" crossorigin>var Jr=Object.defineProperty;var Ve=t=>{throw TypeError(t)};var Kr=(t,e,r)=>e in t?Jr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var nt=(t,e,r)=>Kr(t,typeof e!="symbol"?e+"":e,r),we=(t,e,r)=>e.has(t)||Ve("Cannot "+r);var it=(t,e,r)=>(we(t,e,"read from private field"),r?r.call(t):e.get(t)),Dt=(t,e,r)=>e.has(t)?Ve("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),me=(t,e,r,n)=>(we(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Je=(t,e,r)=>(we(t,e,"access private method"),r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();window.SONDA_JSON_REPORT=JSON.parse(String.raw`__REPORT_DATA__`);const Zr=!1;var Re=Array.isArray,Le=Array.from,Yr=Object.defineProperty,Lt=Object.getOwnPropertyDescriptor,sr=Object.getOwnPropertyDescriptors,Qr=Object.prototype,Xr=Array.prototype,te=Object.getPrototypeOf;function $r(t){return typeof t=="function"}const Pt=()=>{};function tn(t){return t()}function ye(t){for(var e=0;e<t.length;e++)t[e]()}const at=2,ar=4,Bt=8,ue=16,et=32,fe=64,wt=128,ee=256,J=512,ht=1024,Ft=2048,st=4096,qt=8192,lr=16384,Ht=32768,en=1<<18,ur=1<<19,dt=Symbol("$state"),rn=Symbol("");function fr(t){return t===this.v}function cr(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function nn(t){return!cr(t,this.v)}function on(t){throw new Error("effect_in_teardown")}function sn(){throw new Error("effect_in_unowned_derived")}function an(t){throw new Error("effect_orphan")}function ln(){throw new Error("effect_update_depth_exceeded")}function un(){throw new Error("state_descriptors_fixed")}function fn(){throw new Error("state_prototype_fixed")}function cn(){throw new Error("state_unsafe_local_read")}function dn(){throw new Error("state_unsafe_mutation")}function Z(t){return{f:0,v:t,reactions:null,equals:fr,version:0}}function V(t){return hn(Z(t))}function vn(t,e=!1){var n;const r=Z(t);return e||(r.equals=nn),C!==null&&C.l!==null&&((n=C.l).s??(n.s=[])).push(r),r}function hn(t){return N!==null&&N.f&at&&(tt===null?Mn([t]):tt.push(t)),t}function z(t,e){return N!==null&&He()&&N.f&(at|ue)&&(tt===null||!tt.includes(t))&&dn(),xe(t,e)}function xe(t,e){return t.equals(e)||(t.v=e,t.version=Mr(),dr(t,ht),He()&&S!==null&&S.f&J&&!(S.f&et)&&(F!==null&&F.includes(t)?(rt(S,ht),he(S)):vt===null?An([t]):vt.push(t))),e}function dr(t,e){var r=t.reactions;if(r!==null)for(var n=He(),i=r.length,o=0;o<i;o++){var s=r[o],l=s.f;l&ht||!n&&s===S||(rt(s,e),l&(J|wt)&&(l&at?dr(s,Ft):he(s)))}}const Ie=1,Ce=2,vr=4,_n=8,pn=16,gn=4,wn=1,mn=2,G=Symbol();let hr=!1;function Q(t,e=null,r){if(typeof t!="object"||t===null||dt in t)return t;const n=te(t);if(n!==Qr&&n!==Xr)return t;var i=new Map,o=Re(t),s=Z(0);o&&i.set("length",Z(t.length));var l;return new Proxy(t,{defineProperty(f,a,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&un();var c=i.get(a);return c===void 0?(c=Z(u.value),i.set(a,c)):z(c,Q(u.value,l)),!0},deleteProperty(f,a){var u=i.get(a);if(u===void 0)a in f&&i.set(a,Z(G));else{if(o&&typeof a=="string"){var c=i.get("length"),v=Number(a);Number.isInteger(v)&&v<c.v&&z(c,v)}z(u,G),Ke(s)}return!0},get(f,a,u){var h;if(a===dt)return t;var c=i.get(a),v=a in f;if(c===void 0&&(!v||(h=Lt(f,a))!=null&&h.writable)&&(c=Z(Q(v?f[a]:G,l)),i.set(a,c)),c!==void 0){var d=_(c);return d===G?void 0:d}return Reflect.get(f,a,u)},getOwnPropertyDescriptor(f,a){var u=Reflect.getOwnPropertyDescriptor(f,a);if(u&&"value"in u){var c=i.get(a);c&&(u.value=_(c))}else if(u===void 0){var v=i.get(a),d=v==null?void 0:v.v;if(v!==void 0&&d!==G)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(f,a){var d;if(a===dt)return!0;var u=i.get(a),c=u!==void 0&&u.v!==G||Reflect.has(f,a);if(u!==void 0||S!==null&&(!c||(d=Lt(f,a))!=null&&d.writable)){u===void 0&&(u=Z(c?Q(f[a],l):G),i.set(a,u));var v=_(u);if(v===G)return!1}return c},set(f,a,u,c){var m;var v=i.get(a),d=a in f;if(o&&a==="length")for(var h=u;h<v.v;h+=1){var g=i.get(h+"");g!==void 0?z(g,G):h in f&&(g=Z(G),i.set(h+"",g))}v===void 0?(!d||(m=Lt(f,a))!=null&&m.writable)&&(v=Z(void 0),z(v,Q(u,l)),i.set(a,v)):(d=v.v!==G,z(v,Q(u,l)));var b=Reflect.getOwnPropertyDescriptor(f,a);if(b!=null&&b.set&&b.set.call(c,u),!d){if(o&&typeof a=="string"){var k=i.get("length"),E=Number(a);Number.isInteger(E)&&E>=k.v&&z(k,E+1)}Ke(s)}return!0},ownKeys(f){_(s);var a=Reflect.ownKeys(f).filter(v=>{var d=i.get(v);return d===void 0||d.v!==G});for(var[u,c]of i)c.v!==G&&!(u in f)&&a.push(u);return a},setPrototypeOf(){fn()}})}function Ke(t,e=1){z(t,t.v+e)}function Ze(t){return t!==null&&typeof t=="object"&&dt in t?t[dt]:t}function bn(t,e){return Object.is(Ze(t),Ze(e))}var Ye,ot,_r,pr;function yn(){if(Ye===void 0){Ye=window,ot=document;var t=Element.prototype,e=Node.prototype;_r=Lt(e,"firstChild").get,pr=Lt(e,"nextSibling").get,t.__click=void 0,t.__className="",t.__attributes=null,t.__e=void 0,Text.prototype.__t=void 0}}function je(t=""){return document.createTextNode(t)}function St(t){return _r.call(t)}function ce(t){return pr.call(t)}function p(t){return St(t)}function I(t,e){{var r=St(t);return r instanceof Comment&&r.data===""?ce(r):r}}function w(t,e=1,r=!1){let n=t;for(;e--;)n=ce(n);return n}function xn(t){t.textContent=""}function O(t){var e=at|ht;S===null?e|=wt:S.f|=ur;const r={children:null,deps:null,equals:fr,f:e,fn:t,reactions:null,v:null,version:0,parent:S};if(N!==null&&N.f&at){var n=N;(n.children??(n.children=[])).push(r)}return r}function gr(t){var e=t.children;if(e!==null){t.children=null;for(var r=0;r<e.length;r+=1){var n=e[r];n.f&at?Be(n):_t(n)}}}function wr(t){var e,r=S;Tt(t.parent);try{gr(t),e=Ar(t)}finally{Tt(r)}return e}function mr(t){var e=wr(t),r=(yt||t.f&wt)&&t.deps!==null?Ft:J;rt(t,r),t.equals(e)||(t.v=e,t.version=Mr())}function Be(t){gr(t),Ct(t,0),rt(t,qt),t.v=t.children=t.deps=t.reactions=null}function br(t){S===null&&N===null&&an(),N!==null&&N.f&wt&&sn(),qe&&on()}function En(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function Mt(t,e,r,n=!0){var i=(t&fe)!==0,o=S,s={ctx:C,deps:null,deriveds:null,nodes_start:null,nodes_end:null,f:t|ht,first:null,fn:e,last:null,next:null,parent:i?null:o,prev:null,teardown:null,transitions:null,version:0};if(r){var l=xt;try{Xe(!0),ve(s),s.f|=lr}catch(u){throw _t(s),u}finally{Xe(l)}}else e!==null&&he(s);var f=r&&s.deps===null&&s.first===null&&s.nodes_start===null&&s.teardown===null&&(s.f&ur)===0;if(!f&&!i&&n&&(o!==null&&En(s,o),N!==null&&N.f&at)){var a=N;(a.children??(a.children=[])).push(s)}return s}function kn(t){const e=Mt(Bt,null,!1);return rt(e,J),e.teardown=t,e}function Qe(t){br();var e=S!==null&&(S.f&et)!==0&&C!==null&&!C.m;if(e){var r=C;(r.e??(r.e=[])).push({fn:t,effect:S,reaction:N})}else{var n=At(t);return n}}function Sn(t){return br(),yr(t)}function On(t){const e=Mt(fe,t,!0);return()=>{_t(e)}}function At(t){return Mt(ar,t,!1)}function yr(t){return Mt(Bt,t,!0)}function A(t){return Wt(t)}function Wt(t,e=0){return Mt(Bt|ue|e,t,!0)}function gt(t,e=!0){return Mt(Bt|et,t,!0,e)}function xr(t){var e=t.teardown;if(e!==null){const r=qe,n=N;$e(!0),Ot(null);try{e.call(null)}finally{$e(r),Ot(n)}}}function Er(t){var e=t.deriveds;if(e!==null){t.deriveds=null;for(var r=0;r<e.length;r+=1)Be(e[r])}}function kr(t,e=!1){var r=t.first;for(t.first=t.last=null;r!==null;){var n=r.next;_t(r,e),r=n}}function Tn(t){for(var e=t.first;e!==null;){var r=e.next;e.f&et||_t(e),e=r}}function _t(t,e=!0){var r=!1;if((e||t.f&en)&&t.nodes_start!==null){var n=t.nodes_start,i=t.nodes_end,o=N,s=S;Ot(null),Tt(null);try{for(;n!==null;){var l=n===i?null:ce(n);n.remove(),n=l}}finally{Ot(o),Tt(s)}r=!0}Er(t),kr(t,e&&!r),Ct(t,0),rt(t,qt);var f=t.transitions;if(f!==null)for(const u of f)u.stop();xr(t);var a=t.parent;a!==null&&a.first!==null&&Sr(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.parent=t.fn=t.nodes_start=t.nodes_end=null}function Sr(t){var e=t.parent,r=t.prev,n=t.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),e!==null&&(e.first===t&&(e.first=n),e.last===t&&(e.last=r))}function re(t,e){var r=[];Fe(t,r,!0),Or(r,()=>{_t(t),e&&e()})}function Or(t,e){var r=t.length;if(r>0){var n=()=>--r||e();for(var i of t)i.out(n)}else e()}function Fe(t,e,r){if(!(t.f&st)){if(t.f^=st,t.transitions!==null)for(const s of t.transitions)(s.is_global||r)&&e.push(s);for(var n=t.first;n!==null;){var i=n.next,o=(n.f&Ht)!==0||(n.f&et)!==0;Fe(n,e,o?r:!1),n=i}}}function ne(t){Tr(t,!0)}function Tr(t,e){if(t.f&st){t.f^=st,Ut(t)&&ve(t);for(var r=t.first;r!==null;){var n=r.next,i=(r.f&Ht)!==0||(r.f&et)!==0;Tr(r,i?e:!1),r=n}if(t.transitions!==null)for(const o of t.transitions)(o.is_global||e)&&o.in()}}let Ee=!1,ke=[];function Nn(){Ee=!1;const t=ke.slice();ke=[],ye(t)}function de(t){Ee||(Ee=!0,queueMicrotask(Nn)),ke.push(t)}let ie=!1,xt=!1,qe=!1;function Xe(t){xt=t}function $e(t){qe=t}let Se=[],It=0;let N=null;function Ot(t){N=t}let S=null;function Tt(t){S=t}let tt=null;function Mn(t){tt=t}let F=null,K=0,vt=null;function An(t){vt=t}let Nr=0,yt=!1,C=null;function Mr(){return++Nr}function He(){return C!==null&&C.l===null}function Ut(t){var s,l;var e=t.f;if(e&ht)return!0;if(e&Ft){var r=t.deps,n=(e&wt)!==0;if(r!==null){var i;if(e&ee){for(i=0;i<r.length;i++)((s=r[i]).reactions??(s.reactions=[])).push(t);t.f^=ee}for(i=0;i<r.length;i++){var o=r[i];if(Ut(o)&&mr(o),n&&S!==null&&!yt&&!((l=o==null?void 0:o.reactions)!=null&&l.includes(t))&&(o.reactions??(o.reactions=[])).push(t),o.version>t.version)return!0}}n||rt(t,J)}return!1}function zn(t,e,r){throw t}function Ar(t){var c;var e=F,r=K,n=vt,i=N,o=yt,s=tt,l=t.f;F=null,K=0,vt=null,N=l&(et|fe)?null:t,yt=!xt&&(l&wt)!==0,tt=null;try{var f=(0,t.fn)(),a=t.deps;if(F!==null){var u;if(Ct(t,K),a!==null&&K>0)for(a.length=K+F.length,u=0;u<F.length;u++)a[K+u]=F[u];else t.deps=a=F;if(!yt)for(u=K;u<a.length;u++)((c=a[u]).reactions??(c.reactions=[])).push(t)}else a!==null&&K<a.length&&(Ct(t,K),a.length=K);return f}finally{F=e,K=r,vt=n,N=i,yt=o,tt=s}}function Dn(t,e){let r=e.reactions;if(r!==null){var n=r.indexOf(t);if(n!==-1){var i=r.length-1;i===0?r=e.reactions=null:(r[n]=r[i],r.pop())}}r===null&&e.f&at&&(F===null||!F.includes(e))&&(rt(e,Ft),e.f&(wt|ee)||(e.f^=ee),Ct(e,0))}function Ct(t,e){var r=t.deps;if(r!==null)for(var n=e;n<r.length;n++)Dn(t,r[n])}function ve(t){var e=t.f;if(!(e&qt)){rt(t,J);var r=S,n=C;S=t,C=t.ctx;try{Er(t),e&ue?Tn(t):kr(t),xr(t);var i=Ar(t);t.teardown=typeof i=="function"?i:null,t.version=Nr}catch(o){zn(o)}finally{S=r,C=n}}}function Pn(){It>1e3&&(It=0,ln()),It++}function Rn(t){var e=t.length;if(e!==0){Pn();var r=xt;xt=!0;try{for(var n=0;n<e;n++){var i=t[n];i.f&J||(i.f^=J);var o=[];zr(i,o),Ln(o)}}finally{xt=r}}}function Ln(t){var e=t.length;if(e!==0)for(var r=0;r<e;r++){var n=t[r];!(n.f&(qt|st))&&Ut(n)&&(ve(n),n.deps===null&&n.first===null&&n.nodes_start===null&&(n.teardown===null?Sr(n):n.fn=null))}}function In(){if(ie=!1,It>1001)return;const t=Se;Se=[],Rn(t),ie||(It=0)}function he(t){ie||(ie=!0,queueMicrotask(In));for(var e=t;e.parent!==null;){e=e.parent;var r=e.f;if(r&(fe|et)){if(!(r&J))return;e.f^=J}}Se.push(e)}function zr(t,e){var r=t.first,n=[];t:for(;r!==null;){var i=r.f,o=(i&et)!==0,s=o&&(i&J)!==0;if(!s&&!(i&st))if(i&Bt){o?r.f^=J:Ut(r)&&ve(r);var l=r.first;if(l!==null){r=l;continue}}else i&ar&&n.push(r);var f=r.next;if(f===null){let c=r.parent;for(;c!==null;){if(t===c)break t;var a=c.next;if(a!==null){r=a;continue t}c=c.parent}}r=f}for(var u=0;u<n.length;u++)l=n[u],e.push(l),zr(l,e)}function _(t){var l;var e=t.f,r=(e&at)!==0;if(r&&e&qt){var n=wr(t);return Be(t),n}if(N!==null){tt!==null&&tt.includes(t)&&cn();var i=N.deps;F===null&&i!==null&&i[K]===t?K++:F===null?F=[t]:F.push(t),vt!==null&&S!==null&&S.f&J&&!(S.f&et)&&vt.includes(t)&&(rt(S,ht),he(S))}else if(r&&t.deps===null){var o=t,s=o.parent;s!==null&&!((l=s.deriveds)!=null&&l.includes(o))&&(s.deriveds??(s.deriveds=[])).push(o)}return r&&(o=t,Ut(o)&&mr(o)),t.v}function Gt(t){const e=N;try{return N=null,t()}finally{N=e}}const Cn=~(ht|Ft|J);function rt(t,e){t.f=t.f&Cn|e}function q(t,e=!1,r){C={p:C,c:null,e:null,m:!1,s:t,x:null,l:null},e||(C.l={s:null,u:null,r1:[],r2:Z(!1)})}function H(t){const e=C;if(e!==null){const s=e.e;if(s!==null){var r=S,n=N;e.e=null;try{for(var i=0;i<s.length;i++){var o=s[i];Tt(o.effect),Ot(o.reaction),At(o.fn)}}finally{Tt(r),Ot(n)}}C=e.p,e.m=!0}return{}}function jn(t){if(!(typeof t!="object"||!t||t instanceof EventTarget)){if(dt in t)Oe(t);else if(!Array.isArray(t))for(let e in t){const r=t[e];typeof r=="object"&&r&&dt in r&&Oe(r)}}}function Oe(t,e=new Set){if(typeof t=="object"&&t!==null&&!(t instanceof EventTarget)&&!e.has(t)){e.add(t),t instanceof Date&&t.getTime();for(let n in t)try{Oe(t[n],e)}catch{}const r=te(t);if(r!==Object.prototype&&r!==Array.prototype&&r!==Map.prototype&&r!==Set.prototype&&r!==Date.prototype){const n=sr(r);for(let i in n){const o=n[i].get;if(o)try{o.call(t)}catch{}}}}}const Dr=new Set,Te=new Set;function Bn(t,e,r,n){function i(o){if(n.capture||Rt.call(e,o),!o.cancelBubble)return r.call(this,o)}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?de(()=>{e.addEventListener(t,i,n)}):e.addEventListener(t,i,n),i}function Et(t,e,r,n,i){var o={capture:n,passive:i},s=Bn(t,e,r,o);(e===document.body||e===window||e===document)&&kn(()=>{e.removeEventListener(t,s,o)})}function Vt(t){for(var e=0;e<t.length;e++)Dr.add(t[e]);for(var r of Te)r(t)}function Rt(t){var b;var e=this,r=e.ownerDocument,n=t.type,i=((b=t.composedPath)==null?void 0:b.call(t))||[],o=i[0]||t.target,s=0,l=t.__root;if(l){var f=i.indexOf(l);if(f!==-1&&(e===document||e===window)){t.__root=e;return}var a=i.indexOf(e);if(a===-1)return;f<=a&&(s=f)}if(o=i[s]||t.target,o!==e){Yr(t,"currentTarget",{configurable:!0,get(){return o||r}});try{for(var u,c=[];o!==null;){var v=o.assignedSlot||o.parentNode||o.host||null;try{var d=o["__"+n];if(d!==void 0&&!o.disabled)if(Re(d)){var[h,...g]=d;h.apply(o,[t,...g])}else d.call(o,t)}catch(k){u?c.push(k):u=k}if(t.cancelBubble||v===e||v===null)break;o=v}if(u){for(let k of c)queueMicrotask(()=>{throw k});throw u}}finally{t.__root=e,delete t.currentTarget}}}function Pr(t){var e=document.createElement("template");return e.innerHTML=t,e.content}function oe(t,e){var r=S;r.nodes_start===null&&(r.nodes_start=t,r.nodes_end=e)}function T(t,e){var r=(e&wn)!==0,n=(e&mn)!==0,i,o=!t.startsWith("<!>");return()=>{i===void 0&&(i=Pr(o?t:"<!>"+t),r||(i=St(i)));var s=n?document.importNode(i,!0):i.cloneNode(!0);if(r){var l=St(s),f=s.lastChild;oe(l,f)}else oe(s,s);return s}}function Rr(t,e,r="svg"){var n=!t.startsWith("<!>"),i=`<${r}>${n?t:"<!>"+t}</${r}>`,o;return()=>{if(!o){var s=Pr(i),l=St(s);o=St(l)}var f=o.cloneNode(!0);return oe(f,f),f}}function Jt(){var t=document.createDocumentFragment(),e=document.createComment(""),r=je();return t.append(e,r),oe(e,r),t}function x(t,e){t!==null&&t.before(e)}const Fn=["touchstart","touchmove"];function qn(t){return Fn.includes(t)}let Ne=!0;function M(t,e){var r=e==null?"":typeof e=="object"?e+"":e;r!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=r,t.nodeValue=r==null?"":r+"")}function Hn(t,e){return Wn(t,e)}const bt=new Map;function Wn(t,{target:e,anchor:r,props:n={},events:i,context:o,intro:s=!0}){yn();var l=new Set,f=c=>{for(var v=0;v<c.length;v++){var d=c[v];if(!l.has(d)){l.add(d);var h=qn(d);e.addEventListener(d,Rt,{passive:h});var g=bt.get(d);g===void 0?(document.addEventListener(d,Rt,{passive:h}),bt.set(d,1)):bt.set(d,g+1)}}};f(Le(Dr)),Te.add(f);var a=void 0,u=On(()=>{var c=r??e.appendChild(je());return gt(()=>{if(o){q({});var v=C;v.c=o}i&&(n.$$events=i),Ne=s,a=t(c,n)||{},Ne=!0,o&&H()}),()=>{var h;for(var v of l){e.removeEventListener(v,Rt);var d=bt.get(v);--d===0?(document.removeEventListener(v,Rt),bt.delete(v)):bt.set(v,d)}Te.delete(f),tr.delete(a),c!==r&&((h=c.parentNode)==null||h.removeChild(c))}});return tr.set(a,u),a}let tr=new WeakMap;function P(t,e,r,n=null,i=!1){var o=t,s=null,l=null,f=null,a=i?Ht:0;Wt(()=>{f!==(f=!!e())&&(f?(s?ne(s):s=gt(()=>r(o)),l&&re(l,()=>{l=null})):(l?ne(l):n&&(l=gt(()=>n(o))),s&&re(s,()=>{s=null})))},a)}function Un(t,e,r){var n=t,i=G,o;Wt(()=>{cr(i,i=e())&&(o&&re(o),o=gt(()=>r(n)))})}let be=null;function Gn(t,e){return e}function Vn(t,e,r,n){for(var i=[],o=e.length,s=0;s<o;s++)Fe(e[s].e,i,!0);var l=o>0&&i.length===0&&r!==null;if(l){var f=r.parentNode;xn(f),f.append(r),n.clear(),lt(t,e[0].prev,e[o-1].next)}Or(i,()=>{for(var a=0;a<o;a++){var u=e[a];l||(n.delete(u.k),lt(t,u.prev,u.next)),_t(u.e,!l)}})}function We(t,e,r,n,i,o=null){var s=t,l={flags:e,items:new Map,first:null},f=(e&vr)!==0;if(f){var a=t;s=a.appendChild(je())}var u=null,c=!1;Wt(()=>{var v=r(),d=Re(v)?v:v==null?[]:Le(v),h=d.length;c&&h===0||(c=h===0,Jn(d,l,s,i,e,n),o!==null&&(h===0?u?ne(u):u=gt(()=>o(s)):u!==null&&re(u,()=>{u=null})),r())})}function Jn(t,e,r,n,i,o){var Kt,zt,Zt,Yt;var s=(i&_n)!==0,l=(i&(Ie|Ce))!==0,f=t.length,a=e.items,u=e.first,c=u,v,d=null,h,g=[],b=[],k,E,m,y;if(s)for(y=0;y<f;y+=1)k=t[y],E=o(k,y),m=a.get(E),m!==void 0&&((Kt=m.a)==null||Kt.measure(),(h??(h=new Set)).add(m));for(y=0;y<f;y+=1){if(k=t[y],E=o(k,y),m=a.get(E),m===void 0){var R=c?c.e.nodes_start:r;d=Zn(R,e,d,d===null?e.first:d.next,k,E,y,n,i),a.set(E,d),g=[],b=[],c=d.next;continue}if(l&&Kn(m,k,y,i),m.e.f&st&&(ne(m.e),s&&((zt=m.a)==null||zt.unfix(),(h??(h=new Set)).delete(m))),m!==c){if(v!==void 0&&v.has(m)){if(g.length<b.length){var j=b[0],L;d=j.prev;var D=g[0],W=g[g.length-1];for(L=0;L<g.length;L+=1)er(g[L],j,r);for(L=0;L<b.length;L+=1)v.delete(b[L]);lt(e,D.prev,W.next),lt(e,d,D),lt(e,W,j),c=j,d=W,y-=1,g=[],b=[]}else v.delete(m),er(m,c,r),lt(e,m.prev,m.next),lt(e,m,d===null?e.first:d.next),lt(e,d,m),d=m;continue}for(g=[],b=[];c!==null&&c.k!==E;)c.e.f&st||(v??(v=new Set)).add(c),b.push(c),c=c.next;if(c===null)continue;m=c}g.push(m),d=m,c=m.next}if(c!==null||v!==void 0){for(var U=v===void 0?[]:Le(v);c!==null;)c.e.f&st||U.push(c),c=c.next;var mt=U.length;if(mt>0){var ge=i&vr&&f===0?r:null;if(s){for(y=0;y<mt;y+=1)(Zt=U[y].a)==null||Zt.measure();for(y=0;y<mt;y+=1)(Yt=U[y].a)==null||Yt.fix()}Vn(e,U,ge,a)}}s&&de(()=>{var Qt;if(h!==void 0)for(m of h)(Qt=m.a)==null||Qt.apply()}),S.first=e.first&&e.first.e,S.last=d&&d.e}function Kn(t,e,r,n){n&Ie&&xe(t.v,e),n&Ce?xe(t.i,r):t.i=r}function Zn(t,e,r,n,i,o,s,l,f){var a=be;try{var u=(f&Ie)!==0,c=(f&pn)===0,v=u?c?vn(i):Z(i):i,d=f&Ce?Z(s):s,h={i:d,v,k:o,a:null,e:null,prev:r,next:n};return be=h,h.e=gt(()=>l(t,v,d),hr),h.e.prev=r&&r.e,h.e.next=n&&n.e,r===null?e.first=h:(r.next=h,r.e.next=h.e),n!==null&&(n.prev=h,n.e.prev=h.e),h}finally{be=a}}function er(t,e,r){for(var n=t.next?t.next.e.nodes_start:r,i=e?e.e.nodes_start:r,o=t.e.nodes_start;o!==n;){var s=ce(o);i.before(o),o=s}}function lt(t,e,r){e===null?t.first=r:(e.next=r,e.e.next=r&&r.e),r!==null&&(r.prev=e,r.e.prev=e&&e.e)}function Yn(t,e,...r){var n=t,i=Pt,o;Wt(()=>{i!==(i=e())&&(o&&(_t(o),o=null),o=gt(()=>i(n,...r)))},Ht)}function B(t,e,r,n){var i=t.__attributes??(t.__attributes={});i[e]!==(i[e]=r)&&(e==="loading"&&(t[rn]=r),r==null?t.removeAttribute(e):typeof r!="string"&&Qn(t).includes(e)?t[e]=r:t.setAttribute(e,r))}var rr=new Map;function Qn(t){var e=rr.get(t.nodeName);if(e)return e;rr.set(t.nodeName,e=[]);for(var r,n=te(t);n.constructor.name!=="Element";){r=sr(n);for(var i in r)r[i].set&&e.push(i);n=te(n)}return e}function Xn(t,e){var r=t.__className,n=$n(e);(r!==n||hr)&&(n===""?t.removeAttribute("class"):t.setAttribute("class",n),t.__className=n)}function $n(t){return t??""}function se(t,e,r){if(r){if(t.classList.contains(e))return;t.classList.add(e)}else{if(!t.classList.contains(e))return;t.classList.remove(e)}}function Me(t,e,r,n,i){var o=t.__attributes??(t.__attributes={}),s=t.style,l="style-"+e;o[l]===r&&!i||(o[l]=r,r==null?s.removeProperty(e):s.setProperty(e,r,""))}const ti=requestAnimationFrame,ei=()=>performance.now(),ft={tick:t=>ti(t),now:()=>ei(),tasks:new Set};function Lr(t){ft.tasks.forEach(e=>{e.c(t)||(ft.tasks.delete(e),e.f())}),ft.tasks.size!==0&&ft.tick(Lr)}function ri(t){let e;return ft.tasks.size===0&&ft.tick(Lr),{promise:new Promise(r=>{ft.tasks.add(e={c:t,f:r})}),abort(){ft.tasks.delete(e)}}}function Xt(t,e){t.dispatchEvent(new CustomEvent(e))}function ni(t){const e=t.split("-");return e.length===1?e[0]:e[0]+e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function nr(t){const e={},r=t.split(";");for(const n of r){const[i,o]=n.split(":");if(!i||o===void 0)break;const s=ni(i.trim());e[s]=o.trim()}return e}const ii=t=>t;function oi(t,e,r,n){var i=(t&gn)!==0,o="both",s,l=e.inert,f,a;function u(){return s??(s=r()(e,(n==null?void 0:n())??{},{direction:o}))}var c={is_global:i,in(){e.inert=l,Xt(e,"introstart"),f=Ae(e,u(),a,1,()=>{Xt(e,"introend"),f==null||f.abort(),f=s=void 0})},out(g){e.inert=!0,Xt(e,"outrostart"),a=Ae(e,u(),f,0,()=>{Xt(e,"outroend"),g==null||g()})},stop:()=>{f==null||f.abort(),a==null||a.abort()}},v=S;if((v.transitions??(v.transitions=[])).push(c),Ne){var d=i;if(!d){for(var h=v.parent;h&&h.f&Ht;)for(;(h=h.parent)&&!(h.f&ue););d=!h||(h.f&lr)!==0}d&&At(()=>{Gt(()=>c.in())})}}function Ae(t,e,r,n,i){var o=n===1;if($r(e)){var s,l=!1;return de(()=>{if(!l){var b=e({direction:o?"in":"out"});s=Ae(t,b,r,n,i)}}),{abort:()=>{l=!0,s==null||s.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(r==null||r.deactivate(),!(e!=null&&e.duration))return i(),{abort:Pt,deactivate:Pt,reset:Pt,t:()=>n};const{delay:f=0,css:a,tick:u,easing:c=ii}=e;var v=[];if(o&&r===void 0&&(u&&u(0,1),a)){var d=nr(a(0,1));v.push(d,d)}var h=()=>1-n,g=t.animate(v,{duration:f});return g.onfinish=()=>{var b=(r==null?void 0:r.t())??1-n;r==null||r.abort();var k=n-b,E=e.duration*Math.abs(k),m=[];if(E>0){if(a)for(var y=Math.ceil(E/16.666666666666668),R=0;R<=y;R+=1){var j=b+k*c(R/y),L=a(j,1-j);m.push(nr(L))}h=()=>{var D=g.currentTime;return b+k*c(D/E)},u&&ri(()=>{if(g.playState!=="running")return!1;var D=h();return u(D,1-D),!0})}g=t.animate(m,{duration:E,fill:"forwards"}),g.onfinish=()=>{h=()=>n,u==null||u(n,1-n),i()}},{abort:()=>{g&&(g.cancel(),g.effect=null)},deactivate:()=>{i=Pt},reset:()=>{n===0&&(u==null||u(1,0))},t:()=>h()}}function ze(t,e,r){if(t.multiple)return ai(t,e);for(var n of t.options){var i=Ir(n);if(bn(i,e)){n.selected=!0;return}}(!r||e!==void 0)&&(t.selectedIndex=-1)}function si(t,e){let r=!0;At(()=>{e&&ze(t,Gt(e),r),r=!1;var n=new MutationObserver(()=>{var i=t.__value;ze(t,i)});return n.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),()=>{n.disconnect()}})}function ai(t,e){for(var r of t.options)r.selected=~e.indexOf(Ir(r))}function Ir(t){return"__value"in t?t.__value:t.value}var ut,kt,jt,ae,Cr;const le=class le{constructor(e){Dt(this,ae);Dt(this,ut,new WeakMap);Dt(this,kt);Dt(this,jt);me(this,jt,e)}observe(e,r){var n=it(this,ut).get(e)||new Set;return n.add(r),it(this,ut).set(e,n),Je(this,ae,Cr).call(this).observe(e,it(this,jt)),()=>{var i=it(this,ut).get(e);i.delete(r),i.size===0&&(it(this,ut).delete(e),it(this,kt).unobserve(e))}}};ut=new WeakMap,kt=new WeakMap,jt=new WeakMap,ae=new WeakSet,Cr=function(){return it(this,kt)??me(this,kt,new ResizeObserver(e=>{for(var r of e){le.entries.set(r.target,r);for(var n of it(this,ut).get(r.target)||[])n(r)}}))},nt(le,"entries",new WeakMap);let De=le;var li=new De({box:"border-box"});function ct(t,e,r){var n=li.observe(t,()=>r(t[e]));At(()=>(Gt(()=>r(t[e])),n))}function ir(t,e){return t===e||(t==null?void 0:t[dt])===e}function ui(t={},e,r,n){return At(()=>{var i,o;return yr(()=>{i=o,o=[],Gt(()=>{t!==r(...o)&&(e(t,...o),i&&ir(r(...i),t)&&e(null,...i))})}),()=>{de(()=>{o&&ir(r(...o),t)&&e(null,...o)})}}),t}function _e(t=!1){const e=C,r=e.l.u;if(!r)return;let n=()=>jn(e.s);if(t){let i=0,o={};const s=O(()=>{let l=!1;const f=e.s;for(const a in f)f[a]!==o[a]&&(o[a]=f[a],l=!0);return l&&i++,i});n=()=>_(s)}r.b.length&&Sn(()=>{or(e,n),ye(r.b)}),Qe(()=>{const i=Gt(()=>r.m.map(tn));return()=>{for(const o of i)typeof o=="function"&&o()}}),r.a.length&&Qe(()=>{or(e,n),ye(r.a)})}function or(t,e){if(t.l.s)for(const r of t.l.s)_(r);e()}const fi="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(fi);const ci=t=>t;function di(t,{delay:e=0,duration:r=400,easing:n=ci}={}){const i=+getComputedStyle(t).opacity;return{delay:e,duration:r,easing:n,css:o=>`opacity: ${o*i}`}}function vi(){let t=V("uncompressed");return{get type(){return _(t)},setType(e){z(t,Q(e))}}}function hi(){let t=Q({file:null,folder:null,output:null,duplicates:null}),e=Q([]);return{get file(){return t.file},get folder(){return t.folder},get output(){return t.output},get duplicates(){return t.duplicates},open(r,n){e.push(r),t[r]=n},close(){e.length!==0&&(t[e.pop()]=null)}}}function _i(t){return Object.entries(t.outputs).map(([e,r])=>{const n=new pi;return Object.entries(r.inputs).forEach(([i,o])=>n.insert(i,o)),n.root.name=e,n.root.uncompressed=r.uncompressed,n.root.gzip=r.gzip,n.root.brotli=r.brotli,n.optimize(),n})}function pt(t){return"items"in t}class pi{constructor(){nt(this,"root");this.root=this.createNode("","")}createNode(e,r){return{name:e,path:r,uncompressed:0,gzip:0,brotli:0,items:[]}}insert(e,r){const n=e.split("/"),i=n.pop();let o=this.root;n.forEach(s=>{let l=o.items.find(f=>pt(f)&&f.name===s);l||(l=this.createNode(s,o.path?`${o.path}/${s}`:s),o.items.push(l)),o=l,o.uncompressed+=r.uncompressed,o.gzip+=r.gzip,o.brotli+=r.brotli}),o.items.push({name:i,path:o.path?`${o.path}/${i}`:i,uncompressed:r.uncompressed,gzip:r.gzip,brotli:r.brotli})}optimize(){const e=[this.root];for(;e.length;){const r=e.pop();for(;r.items.length===1&&pt(r.items[0]);){const n=r.items[0];r.name=`${r.name}/${n.name}`,r.path=n.path,r.items=n.items}r.items.sort((n,i)=>i.uncompressed-n.uncompressed),r.items.forEach(n=>pt(n)&&e.push(n))}}get(e){let r=this.root;for(;r&&r.path!==e;)r=pt(r)&&r.items.find(n=>e.startsWith(n.path))||null;return r}}const Pe=_i(window.SONDA_JSON_REPORT);function gi(){let t=V(0);const e=O(()=>Pe.at(_(t)));return{get index(){return _(t)},get output(){return _(e)},setIndex(r){z(t,Q(r))}}}const wi=/(.*)(?:.*node_modules\/)(@[^\/]+\/[^\/]+|[^\/]+)/,mi=Object.keys(window.SONDA_JSON_REPORT.inputs).map(t=>wi.exec(t)).filter(t=>t!==null).reduce((t,e)=>{const[r,,n]=e;return t.has(n)||t.set(n,new Set),t.get(n).add(r),t},new Map),$t=new Map(Array.from(mi).filter(([,t])=>t.size>1).map(([t,e])=>[t,Array.from(e)])),X=gi(),Nt=vi(),Y=hi();var bi=()=>Y.close(),yi=T('<div class="fixed top-0 right-0 left-0 bottom-0 flex justify-center items-center"><div class="fixed bg-gray-200/70 w-full h-full backdrop-blur-sm" aria-hidden="true"></div> <div class="bg-white relative flex flex-col rounded-lg border p-6 shadow-lg overflow-hidden max-h-[95vh] max-w-[95vw]"><div class="mb-4"><h2 class="py-2 pr-6 block align-text-bottom font-semibold leading-none tracking-tight text-base border-b-2 border-gray-300 border-dashed"> </h2> <button aria-label="Close dialog" class="absolute top-0 right-0 mt-2 mr-2 flex justify-center items-center border border-transparent rounded-full w-10 h-10 text-gray-600 hover:text-gray-900"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M0 0h24v24H0z" stroke="none"></path><path d="M18 6 6 18M6 6l12 12"></path></svg></button></div> <!></div></div>');function pe(t,e){q(e,!0);let r=V(void 0);function n(v){v.target===_(r)&&Y.close()}var i=yi();Et("click",ot.body,n);var o=p(i);ui(o,v=>z(r,v),()=>_(r));var s=w(o,2),l=p(s),f=p(l),a=p(f),u=w(f,2);u.__click=[bi];var c=w(l,2);Yn(c,()=>e.children),A(()=>{se(s,"w-[95vw]",e.large),se(s,"h-[95vh]",e.large),M(a,e.heading)}),oi(3,i,()=>di,()=>({duration:150})),x(t,i),H()}Vt(["click"]);function $(t){const r=["b","KiB","MiB","GiB","TiB","PiB"];let n=t,i=0;for(;n>1024&&r.length>i+1;)n=n/1024,i++;return`${i?n.toFixed(2):n} ${r[i]}`}var xi=T('<span class="text-gray-900"> </span> <span class="text-gray-600"> </span>',1),Ei=Rr('<g><rect shape-rendering="crispEdges" vector-effect="non-scaling-stroke"></rect><foreignObject class="pointer-events-none"><p xmlns="http://www.w3.org/1999/xhtml" class="p-1 size-full text-center text-xs truncate"><!></p></foreignObject><!></g>');function ki(t,e){q(e,!0);const r=20,n=6,i=22,o=O(()=>e.tile.width-n*2),s=O(()=>e.tile.height-n-i),l=O(()=>$(e.content[Nt.type])),f=O(()=>Math.min(e.content[Nt.type]/e.totalBytes*100,100)),a=O(()=>`${e.content.name} - ${_(l)} (${_(f).toFixed(2)}%)`),u=O(()=>Math.round(_(f))+"%"),c=O(()=>e.tile.width>=i*1.75&&e.tile.height>=i),v=O(()=>!pt(e.content)||_(s)<=r||_(o)<=r?[]:e.content.items);var d=Ei(),h=p(d);const g=O(()=>`stroke-gray-500 ${(pt(e.content)?"cursor-zoom-in":"cursor-pointer")??""} svelte-xusoaq`);var b=w(h),k=p(b),E=p(k);P(E,()=>_(c),y=>{var R=xi(),j=I(R),L=p(j),D=w(j,2),W=p(D);A(()=>{M(L,e.content.name),M(W,`- ${_(l)??""}`)}),x(y,R)});var m=w(b);P(m,()=>_(v).length,y=>{var R=O(()=>e.tile.x+n),j=O(()=>e.tile.y+i);jr(y,{get content(){return _(v)},get totalBytes(){return e.totalBytes},get width(){return _(o)},get height(){return _(s)},get xStart(){return _(R)},get yStart(){return _(j)}})}),A(()=>{B(h,"data-tile",e.content.path),B(h,"data-hover",_(a)),B(h,"x",e.tile.x),B(h,"y",e.tile.y),B(h,"width",e.tile.width),B(h,"height",e.tile.height),Xn(h,_(g)),Me(h,"--percentage",_(u)),B(b,"x",e.tile.x),B(b,"y",e.tile.y),B(b,"width",e.tile.width),B(b,"height",e.tile.height)}),x(t,d),H()}class Si{constructor(e,r,n,i=0,o=0){nt(this,"sizes");nt(this,"tiles");nt(this,"xStart");nt(this,"yStart");nt(this,"widthLeft");nt(this,"heightLeft");const s=e.reduce((f,a)=>f+a,0),l=n*r/s;this.sizes=new Float32Array(e.length);for(let f=0;f<e.length;f++)this.sizes[f]=e[f]*l;this.tiles=new Array,this.xStart=i,this.yStart=o,this.widthLeft=r,this.heightLeft=n}layout(e,r,n,i,o){let s=i?this.yStart:this.xStart,l;const f=this.sizes,a=this.tiles;for(let u=e;u<=r;u++)l=f[u]/n,i?a.push({x:this.xStart,y:s,width:n,height:l}):a.push({x:s,y:this.yStart,width:l,height:n}),s+=l,o++;return i?(this.xStart+=n,this.widthLeft-=n):(this.yStart+=n,this.heightLeft-=n),o}calculate(){let e=this.heightLeft<this.widthLeft,r=e?this.heightLeft:this.widthLeft,n=r*r,i=0,o=0,s=this.sizes[0],l=this.sizes[0],f=this.sizes[0],a=0,u=s*s,c=Math.max(n*f/u,u/(n*l));for(let v=1;v<this.sizes.length;v++){const d=this.sizes[v],h=s+d,g=l<d?l:d,b=f>d?f:d,k=h*h,E=Math.max(n*b/k,k/(n*g));(c<=E?1:0)?(a=this.layout(i,o,s/r,e,a),e=this.heightLeft<this.widthLeft,r=e?this.heightLeft:this.widthLeft,n=r*r,i=v,o=v,s=d,l=d,f=d,u=d*d,c=Math.max(n*f/u,u/(n*l))):(o=v,s=h,l=g,f=b,u=k,c=E)}return a=this.layout(i,o,s/r,e,a),this.tiles}}function jr(t,e){q(e,!0);const r=O(()=>Array.isArray(e.content)?Object.values(e.content):[e.content]),n=O(()=>new Si(_(r).map(l=>l[Nt.type]),e.width,e.height,e.xStart,e.yStart).calculate());var i=Jt(),o=I(i);We(o,18,()=>_(n),s=>s,(s,l,f)=>{ki(s,{get tile(){return l},get content(){return _(r)[_(f)]},get totalBytes(){return e.totalBytes}})}),x(t,i),H()}var Oi=Rr('<svg xmlns="http://www.w3.org/2000/svg" role="img"><!></svg>');function Br(t,e){q(e,!0);var r=Jt(),n=I(r);Un(n,()=>[e.content.path,e.width,e.height],i=>{var o=Oi(),s=p(o),l=O(()=>e.width-1),f=O(()=>e.height-1);jr(s,{get content(){return e.content},get totalBytes(){return e.content[Nt.type]},get width(){return _(l)},get height(){return _(f)},xStart:.5,yStart:.5}),A(()=>{B(o,"width",e.width),B(o,"height",e.height)}),x(i,o)}),x(t,r),H()}var Ti=T('<span>Approx. GZIP size</span> <span class="font-bold"> </span>',1),Ni=T('<span>Approx. Brotli size</span> <span class="font-bold"> </span>',1),Mi=T('<div class="mb-4 grid grid-cols-[auto_1fr] gap-x-8"><span>Bundled size</span> <span class="font-bold"> </span> <!> <!></div> <div class="flex-grow overflow-hidden"><!></div>',1);function Ai(t,e){q(e,!0);let r=V(0),n=V(0);pe(t,{get heading(){return e.folder.path},large:!0,children:o=>{var s=Mi(),l=I(s),f=w(p(l),2),a=p(f);A(()=>M(a,$(e.folder.uncompressed)));var u=w(f,2);P(u,()=>e.folder.gzip,h=>{var g=Ti(),b=w(I(g),2),k=p(b);A(()=>M(k,$(e.folder.gzip))),x(h,g)});var c=w(u,2);P(c,()=>e.folder.brotli,h=>{var g=Ni(),b=w(I(g),2),k=p(b);A(()=>M(k,$(e.folder.brotli))),x(h,g)});var v=w(l,2),d=p(v);Br(d,{get content(){return e.folder},get width(){return _(r)},get height(){return _(n)}}),ct(v,"clientWidth",h=>z(r,h)),ct(v,"clientHeight",h=>z(n,h)),x(o,s)},$$slots:{children:!0}}),H()}class Ue{static generate(e,r){return this.processItems(e,r).join(`
|
|
2
|
+
`).trim()}static processItems(e,r=null,n=""){const i=[],o=e.length-1;return e.forEach((s,l)=>{const f=l===o,a=f?"└── ":"├── ",[u,c]=typeof s=="string"?[s,s]:s,v=r==null?void 0:r(u,e);if(i.push(n+a+c),v){const d=f?" ":"│ ";return i.push(...this.processItems(v,r,n+d))}if(f)return i.push(n)}),i}}var zi=T('<span>File format</span> <span class="font-bold"> </span>',1),Di=T('<span>Approx. GZIP size</span> <span class="font-bold"> </span>',1),Pi=T('<span>Approx. Brotli size</span> <span class="font-bold"> </span>',1),Ri=T('<p class="mt-12">This file is in the bundle, because it is:</p> <code class="mt-2 p-4 w-max leading-5 bg-slate-200 rounded overflow-auto min-w-full"><pre> </pre></code>',1),Li=T('<div class="flex flex-col overflow-y-auto"><div class="grid grid-cols-[auto_1fr] gap-x-8"><!> <span>Original file size</span> <span class="font-bold"> </span> <span>Bundled size</span> <span class="font-bold"> </span> <!> <!></div> <!></div>');function Ii(t,e){q(e,!0);const r=O(()=>window.SONDA_JSON_REPORT.inputs[e.file.path]),n=O(()=>{var l;if(_(r))return _(r).format.toUpperCase();const s=(l=window.SONDA_JSON_REPORT.inputs[e.file.path])==null?void 0:l.belongsTo;return s?window.SONDA_JSON_REPORT.inputs[s].format.toUpperCase:"UNKNOWN"});function i(s,l){return l.length>1?[]:Object.entries(window.SONDA_JSON_REPORT.inputs).filter(([,f])=>f.imports.includes(s)).map(([f])=>[f,`imported by ${f}`])}const o=O(()=>{if(!_(r))return null;const s=_(r).belongsTo?[[_(r).belongsTo,`part of the ${_(r).belongsTo} bundle`]]:i(e.file.path,[]);return Ue.generate(s,i)});pe(t,{get heading(){return e.file.path},children:l=>{var f=Li(),a=p(f),u=p(a);P(u,()=>_(n)!=="UNKNOWN",E=>{var m=zi(),y=w(I(m),2),R=p(y);A(()=>M(R,_(n))),x(E,m)});var c=w(u,4),v=p(c);A(()=>{var E;return M(v,$(((E=_(r))==null?void 0:E.bytes)||0))});var d=w(c,4),h=p(d);A(()=>M(h,$(e.file.uncompressed)));var g=w(d,2);P(g,()=>e.file.gzip,E=>{var m=Di(),y=w(I(m),2),R=p(y);A(()=>M(R,$(e.file.gzip))),x(E,m)});var b=w(g,2);P(b,()=>e.file.brotli,E=>{var m=Pi(),y=w(I(m),2),R=p(y);A(()=>M(R,$(e.file.brotli))),x(E,m)});var k=w(a,2);P(k,()=>_(o),E=>{var m=Ri(),y=w(I(m),2),R=p(y),j=p(R);A(()=>M(j,_(o))),x(E,m)}),x(l,f)},$$slots:{children:!0}}),H()}var Ci=T('<p>The following dependencies are duplicated:</p> <code class="mt-2 p-4 w-max leading-5 bg-slate-200 rounded overflow-auto min-w-full"><pre> </pre></code>',1);function ji(t,e){q(e,!0);const r=O(()=>Ue.generate(Array.from($t.keys()),n=>$t.get(n)));pe(t,{heading:"Duplicated modules found in the build",children:i=>{var o=Jt(),s=I(o);P(s,()=>$t.size>0,l=>{var f=Ci(),a=w(I(f),2),u=p(a),c=p(u);A(()=>M(c,_(r))),x(l,f)}),x(i,o)},$$slots:{children:!0}}),H()}var Bi=T('<span>GZIP size</span> <span class="font-bold"> </span>',1),Fi=T('<span>Brotli size</span> <span class="font-bold"> </span>',1),qi=T('<p class="mt-12">Module types</p> <div class="mt-2 h-10 w-[40rem] max-w-full flex rounded-lg overflow-hidden"><div class="bg-yellow-300 h-full"></div> <div class="bg-blue-300 h-full"></div> <div class="bg-gray-200 h-full"></div></div> <div class="flex justify-between mt-2"><div class="flex items-center space-x-2"><div class="inline-block w-4 h-4 bg-yellow-300"></div> <p>ESM: <span class="font-semibold"> </span></p></div> <div class="flex items-center space-x-2"><div class="inline-block w-4 h-4 bg-blue-300"></div> <p>CJS: <span class="font-semibold"> </span></p></div> <div class="flex items-center space-x-2"><div class="inline-block w-4 h-4 bg-gray-300"></div> <p>Unknown: <span class="font-semibold"> </span></p></div></div>',1),Hi=T('<code class="mt-2 p-4 w-max leading-5 bg-slate-200 rounded overflow-auto min-w-full"><pre> </pre></code>'),Wi=T('<div class="flex flex-col overflow-y-auto"><div class="grid grid-cols-[auto_1fr] gap-x-8"><span>Bundled size</span> <span class="font-bold"> </span> <!> <!></div></div> <!> <p class="mt-12">This asset includes <span class="font-semibold"> </span> external dependencies</p> <!>',1);function Ui(t,e){q(e,!0);const r=O(()=>window.SONDA_JSON_REPORT.outputs[e.output.root.name]),n=O(()=>{const a={esm:0,cjs:0,unknown:0},u=window.SONDA_JSON_REPORT.inputs;return Object.entries(_(r).inputs).forEach(([c,v])=>{var h;const d=((h=u[c])==null?void 0:h.format)??"unknown";a[d]+=v.uncompressed}),a}),i=O(()=>Math.round(_(n).esm/_(r).uncompressed*1e4)/100),o=O(()=>Math.round(_(n).cjs/_(r).uncompressed*1e4)/100),s=O(()=>Math.round(_(n).unknown/_(r).uncompressed*1e4)/100),l=O(()=>{const a=/(?:.*node_modules\/)(@[^\/]+\/[^\/]+|[^\/]+)/;return Object.keys(_(r).inputs).map(u=>{var c;return((c=u.match(a))==null?void 0:c[1])??null}).filter((u,c,v)=>u!==null&&v.indexOf(u)===c).sort()}),f=O(()=>Ue.generate(_(l)));pe(t,{get heading(){return e.output.root.name},children:u=>{var c=Wi(),v=I(c),d=p(v),h=w(p(d),2),g=p(h);A(()=>M(g,$(e.output.root.uncompressed)));var b=w(h,2);P(b,()=>e.output.root.gzip,L=>{var D=Bi(),W=w(I(D),2),U=p(W);A(()=>M(U,$(e.output.root.gzip))),x(L,D)});var k=w(b,2);P(k,()=>e.output.root.brotli,L=>{var D=Fi(),W=w(I(D),2),U=p(W);A(()=>M(U,$(e.output.root.brotli))),x(L,D)});var E=w(v,2);P(E,()=>_(s)<100,L=>{var D=qi(),W=w(I(D),2),U=p(W),mt=w(U,2),ge=w(mt,2),Kt=w(W,2),zt=p(Kt),Zt=w(p(zt),2),Yt=w(p(Zt)),Qt=p(Yt),Ge=w(zt,2),Fr=w(p(Ge),2),qr=w(p(Fr)),Hr=p(qr),Wr=w(Ge,2),Ur=w(p(Wr),2),Gr=w(p(Ur)),Vr=p(Gr);A(()=>{B(U,"style",`width: ${_(i)}%`),B(mt,"style",`width: ${_(o)}%`),B(ge,"style",`width: ${_(s)}%`),M(Qt,`${_(i)??""}%`),M(Hr,`${_(o)??""}%`),M(Vr,`${_(s)??""}%`)}),x(L,D)});var m=w(E,2),y=w(p(m)),R=p(y),j=w(m,2);P(j,()=>_(l).length>0,L=>{var D=Hi(),W=p(D),U=p(W);A(()=>M(U,_(f))),x(L,D)}),A(()=>M(R,_(l).length)),x(u,c)},$$slots:{children:!0}}),H()}var Gi=T("<!> <!> <!> <!>",1);function Vi(t,e){q(e,!1),_e();var r=Gi(),n=I(r);P(n,()=>Y.folder,l=>{Ai(l,{get folder(){return Y.folder}})});var i=w(n,2);P(i,()=>Y.file,l=>{Ii(l,{get file(){return Y.file}})});var o=w(i,2);P(o,()=>Y.output,l=>{Ui(l,{get output(){return Y.output}})});var s=w(o,2);P(s,()=>Y.duplicates,l=>{ji(l,{})}),x(t,r),H()}var Ji=(t,e)=>Nt.setType(e()),Ki=T('<button type="button" class="px-4 py-2 text-sm font-medium bg-white hover:bg-gray-100 text-gray-900 border border-gray-300 first:rounded-s-lg last:rounded-e-lg focus:ring-1 focus:ring-blue-300 focus:z-10 svelte-2f0583"> </button>'),Zi=T('<div class="inline-flex space-x-[-1px]" role="group"></div>');function Yi(t,e){q(e,!0);const r=O(()=>X.output.root.gzip>0),n=O(()=>X.output.root.brotli>0),i=O(()=>{const l=[["uncompressed","Uncompressed"]];return _(r)&&l.push(["gzip","GZIP"]),_(n)&&l.push(["brotli","Brotli"]),l});var o=Jt(),s=I(o);P(s,()=>_(i).length>1,l=>{var f=Zi();We(f,21,()=>_(i),([a,u])=>a,(a,u)=>{let c=()=>_(u)[0],v=()=>_(u)[1];var d=Ki();d.__click=[Ji,c];var h=p(d);A(()=>{B(d,"title",`Show the ${v()} file size in diagram`),se(d,"active",c()===Nt.type),M(h,v())}),x(a,d)}),x(l,f)}),x(t,o),H()}Vt(["click"]);function Qi(){Y.open("output",X.output)}var Xi=T('<button title="Show details of the active output" aria-label="Details of the entire build output" class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 h-10"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-gray-900 pointer-events-none"><path d="M0 0h24v24H0z" stroke="none" shape-rendering="geometricPrecision"></path><path d="M8 5H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.697M18 12V7a2 2 0 0 0-2-2h-2" shape-rendering="geometricPrecision"></path><path d="M8 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v0a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2zM8 11h4M8 15h3M14 17.5a2.5 2.5 0 1 0 5 0 2.5 2.5 0 1 0-5 0M18.5 19.5 21 22" shape-rendering="geometricPrecision"></path></svg></button>');function $i(t,e){q(e,!1),_e();var r=Xi();r.__click=[Qi],x(t,r),H()}Vt(["click"]);function to(){Y.open("duplicates",!0)}var eo=T('<button title="See duplicated modules found in the build" aria-label="List of duplicated modules found in the build output" class="text-gray-900 bg-red-50 border border-red-400 focus:outline-none hover:bg-red-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 h-10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-red-600"><path stroke="none" d="M0 0h24v24H0z" shape-rendering="geometricPrecision"></path><path d="M3 12a9 9 0 1 0 18 0 9 9 0 0 0-18 0M12 8v4M12 16h.01" shape-rendering="geometricPrecision"></path></svg></button>');function ro(t,e){q(e,!1),_e();var r=Jt(),n=I(r);P(n,()=>$t.size>1,i=>{var o=eo();o.__click=[to],x(i,o)}),x(t,r),H()}Vt(["click"]);function no(t){X.setIndex(Number(t.target.value))}var io=T("<option> </option>"),oo=T('<select class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm pl-4 pr-8 h-10 min-w-80 svelte-yqayp2" title="Select the active output"></select>'),so=T('<div class="flex items-center justify-center space-x-2 max-w-sm"><!></div>');function ao(t,e){q(e,!1),_e();var r=so(),n=p(r);P(n,()=>Pe.length>0,i=>{var o=oo();si(o,()=>X.index);var s;o.__change=[no],We(o,5,()=>Pe,Gn,(l,f,a)=>{var u=io();u.value=(u.__value=a)==null?"":a;var c=p(u);A(()=>M(c,`${a+1}. ${_(f).root.name??""}`)),x(l,u)}),A(()=>{s!==(s=X.index)&&(o.value=(o.__value=X.index)==null?"":X.index,ze(o,X.index))}),x(i,o)}),x(t,r),H()}Vt(["change"]);var lo=T('<a href="https://github.com/filipsobol/sonda" target="_blank" title="Open Sonda repository on GitHub" aria-label="GitHub repository" class="flex items-center text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-1 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 h-10"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-gray-900 pointer-events-none"><path d="M0 0h24v24H0z" stroke="none" shape-rendering="geometricPrecision"></path><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21" shape-rendering="geometricPrecision"></path></svg></a>');function uo(t){var e=lo();x(t,e)}var fo=T('<div class="flex flex-row p-4 items-center space-y-0 h-16 justify-between bg-gray-50 shadow"><div class="flex flex-row space-x-2"><!> <!> <!></div> <div class="flex flex-row space-x-2"><!> <!></div></div>');function co(t){var e=fo(),r=p(e),n=p(r);ao(n,{});var i=w(n,2);$i(i,{});var o=w(i,2);ro(o,{});var s=w(r,2),l=p(s);Yi(l,{});var f=w(l,2);uo(f),x(t,e)}var vo=T('<div class="flex-grow flex flex-col mt-24 items-center w-full h-full"><svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="text-yellow-400 fill-yellow-100"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 21a9 9 0 1 1 0 -18a9 9 0 0 1 0 18z"></path><path d="M8 16l1 -1l1.5 1l1.5 -1l1.5 1l1.5 -1l1 1"></path><path d="M8.5 11.5l1.5 -1.5l-1.5 -1.5"></path><path d="M15.5 11.5l-1.5 -1.5l1.5 -1.5"></path></svg> <h2 class="mt-8 text-3xl font-semibold text-gray-800">No data to display</h2> <p class="mt-4 text-lg text-gray-500">Did you enable source maps in the bundler configuration?</p></div>');function ho(t){var e=vo();x(t,e)}var _o=T('<div role="tooltip" class="fixed z-10 px-2 py-1 bg-gray-800 text-gray-100 rounded-md whitespace-nowrap pointer-events-none svelte-1r0gq6x"> </div>');function po(t){let r=V(0),n=V(0),i=V(0),o=V(0),s=V(""),l=V("0px"),f=V("0px");function a({target:v,clientX:d,clientY:h}){z(s,Q(v instanceof Element&&v.getAttribute("data-hover")||"")),_(s)&&(z(l,(d+_(r)+12>_(i)?d-_(r)-12:d+12)+"px"),z(f,(h+_(n)+12>_(o)?h-_(n):h+12)+"px"))}var u=_o();Et("mouseover",ot.body,a),Et("mousemove",ot.body,a),Et("mouseleave",ot.body,()=>z(s,""));var c=p(u);A(()=>{se(u,"invisible",!_(s)),Me(u,"--x",_(l)),Me(u,"--y",_(f)),M(c,_(s))}),ct(ot.body,"clientWidth",v=>z(i,Q(v))),ct(ot.body,"clientHeight",v=>z(o,Q(v))),ct(u,"clientWidth",v=>z(r,v)),ct(u,"clientHeight",v=>z(n,v)),x(t,u)}var go=T('<div role="application" class="wrapper relative flex flex-col overflow-hidden h-screen w-screen"><!> <div class="flex-grow overflow-hidden"><!></div></div> <!> <!>',1);function wo(t,e){q(e,!0);let r=V(0),n=V(0);function i({target:d}){const h=d instanceof Element&&d.getAttribute("data-tile");if(!h)return;const g=X.output.get(h);g&&Y.open(pt(g)?"folder":"file",g)}function o(d){d.key==="Escape"&&(d.stopPropagation(),Y.close())}var s=go();Et("click",ot.body,i),Et("keydown",ot.body,o);var l=I(s),f=p(l);co(f);var a=w(f,2),u=p(a);P(u,()=>X,d=>{Br(d,{get content(){return X.output.root},get width(){return _(r)},get height(){return _(n)}})},d=>{ho(d)});var c=w(l,2);Vi(c,{});var v=w(c,2);po(v),ct(a,"clientWidth",d=>z(r,d)),ct(a,"clientHeight",d=>z(n,d)),x(t,s),H()}Hn(wo,{target:document.getElementById("app")});</script><style rel="stylesheet" crossorigin>rect.svelte-xusoaq{fill:color-mix(in oklch,#fca5a5 var(--percentage),#86efac)}rect.svelte-xusoaq:hover{fill:color-mix(in oklch,#fecaca var(--percentage),#bbf7d0)}button.active.svelte-2f0583,button.active.svelte-2f0583:hover{background-color:#e5e7eb}select.svelte-yqayp2{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="%236b7280" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path stroke="none" d="M0 0h24v24H0z"/><path d="m8 9 4-4 4 4M16 15l-4 4-4-4"/></svg>');background-position:right .5rem center;background-repeat:no-repeat}div[role=tooltip].svelte-1r0gq6x{transform:translate(var(--x),var(--y));will-change:transform,contents}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.mb-4{margin-bottom:1rem}.mr-2{margin-right:.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.size-full{width:100%;height:100%}.h-10{height:2.5rem}.h-16{height:4rem}.h-4{height:1rem}.h-\[95vh\]{height:95vh}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[95vh\]{max-height:95vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-4{width:1rem}.w-\[40rem\]{width:40rem}.w-\[95vw\]{width:95vw}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.min-w-80{min-width:20rem}.min-w-full{min-width:100%}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-\[-1px\]>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-1px * var(--tw-space-x-reverse));margin-left:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b-2{border-bottom-width:2px}.border-dashed{border-style:dashed}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-200\/70{background-color:#e5e7ebb3}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242 / var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71 / var(--tw-bg-opacity))}.fill-yellow-100{fill:#fef9c3}.stroke-gray-500{stroke:#6b7280}.p-1{padding:.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-4{padding-left:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.text-center{text-align:center}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21 / var(--tw-text-opacity))}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}pre{line-height:1.125}.first\:rounded-s-lg:first-child{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.last\:rounded-e-lg:last-child{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226 / var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:z-10:focus{z-index:10}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253 / var(--tw-ring-opacity))}</style></head><body class="flex w-screen h-screen font-mono"><div id="app" class="flex w-screen min-h-screen"></div></body></html>
|
package/dist/index.js
CHANGED
|
@@ -1,30 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { join, dirname, isAbsolute, resolve, relative, win32, posix } from 'path';
|
|
2
|
+
import remapping from '@ampproject/remapping';
|
|
2
3
|
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
3
4
|
import { fileURLToPath } from 'url';
|
|
4
5
|
import { decode } from '@jridgewell/sourcemap-codec';
|
|
5
|
-
import remapping from '@ampproject/remapping';
|
|
6
6
|
import { gzipSync, brotliCompressSync } from 'zlib';
|
|
7
7
|
|
|
8
|
-
const cwd = /* #__PURE__ */ process.cwd();
|
|
9
|
-
function normalizeOptions(options) {
|
|
10
|
-
const defaultOptions = {
|
|
11
|
-
open: true,
|
|
12
|
-
format: 'html',
|
|
13
|
-
detailed: false,
|
|
14
|
-
gzip: false,
|
|
15
|
-
brotli: false
|
|
16
|
-
};
|
|
17
|
-
return Object.assign({}, defaultOptions, options);
|
|
18
|
-
}
|
|
19
|
-
function normalizePath(path) {
|
|
20
|
-
// Unicode escape sequences used by Rollup and Vite to identify virtual modules
|
|
21
|
-
const normalized = path.replace(/^\0/, '');
|
|
22
|
-
// Transform absolute paths to relative paths
|
|
23
|
-
const relativized = relative(cwd, normalized);
|
|
24
|
-
// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687
|
|
25
|
-
return relativized.replaceAll(sep, posix.sep);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
8
|
/**
|
|
29
9
|
* Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),
|
|
30
10
|
* and parses the string as JSON.
|
|
@@ -121,6 +101,27 @@ function parseDataUrl(url) {
|
|
|
121
101
|
});
|
|
122
102
|
}
|
|
123
103
|
|
|
104
|
+
const cjsRegex = /\.c[tj]sx?$/;
|
|
105
|
+
const jsRegexp = /\.[cm]?[tj]s[x]?$/;
|
|
106
|
+
function normalizeOptions(options) {
|
|
107
|
+
const defaultOptions = {
|
|
108
|
+
open: true,
|
|
109
|
+
format: 'html',
|
|
110
|
+
detailed: false,
|
|
111
|
+
gzip: false,
|
|
112
|
+
brotli: false
|
|
113
|
+
};
|
|
114
|
+
return Object.assign({}, defaultOptions, options);
|
|
115
|
+
}
|
|
116
|
+
function normalizePath(pathToNormalize) {
|
|
117
|
+
// Unicode escape sequences used by Rollup and Vite to identify virtual modules
|
|
118
|
+
const normalized = pathToNormalize.replace(/^\0/, '');
|
|
119
|
+
// Transform absolute paths to relative paths
|
|
120
|
+
const relativized = relative(process.cwd(), normalized);
|
|
121
|
+
// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687
|
|
122
|
+
return relativized.replaceAll(win32.sep, posix.sep);
|
|
123
|
+
}
|
|
124
|
+
|
|
124
125
|
function mapSourceMap(map, dirPath, inputs) {
|
|
125
126
|
const alreadyRemapped = new Set();
|
|
126
127
|
const remapped = remapping(map, (file, ctx)=>{
|
|
@@ -296,11 +297,18 @@ function hasCodeAndMap(result) {
|
|
|
296
297
|
return Boolean(result && result.code && result.map);
|
|
297
298
|
}
|
|
298
299
|
|
|
299
|
-
async function generateReportFromAssets(assets, inputs,
|
|
300
|
-
const
|
|
300
|
+
async function generateReportFromAssets(assets, inputs, userOptions) {
|
|
301
|
+
const options = normalizeOptions(userOptions);
|
|
301
302
|
const handler = options.format === 'html' ? saveHtml : saveJson;
|
|
302
303
|
const path = handler(assets, inputs, options);
|
|
303
|
-
options.open
|
|
304
|
+
if (!options.open || !path) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* `open` is ESM-only package, so we need to import it
|
|
309
|
+
* dynamically to make it work in CommonJS environment.
|
|
310
|
+
*/ const { default: open } = await import('open');
|
|
311
|
+
open(path);
|
|
304
312
|
}
|
|
305
313
|
function saveHtml(assets, inputs, options) {
|
|
306
314
|
const report = generateHtmlReport(assets, inputs, options);
|
|
@@ -315,19 +323,18 @@ function saveJson(assets, inputs, options) {
|
|
|
315
323
|
return path;
|
|
316
324
|
}
|
|
317
325
|
|
|
318
|
-
function SondaEsbuildPlugin(options) {
|
|
326
|
+
function SondaEsbuildPlugin(options = {}) {
|
|
319
327
|
return {
|
|
320
328
|
name: 'sonda',
|
|
321
329
|
setup (build) {
|
|
322
330
|
build.initialOptions.metafile = true;
|
|
331
|
+
// Esbuild already reads the existing source maps, so there's no need to do it again
|
|
332
|
+
options.detailed = false;
|
|
323
333
|
build.onEnd((result)=>{
|
|
324
334
|
if (!result.metafile) {
|
|
325
335
|
return console.error('Metafile is required for SondaEsbuildPlugin to work.');
|
|
326
336
|
}
|
|
327
337
|
const cwd = process.cwd();
|
|
328
|
-
const normalizedOptions = normalizeOptions(options);
|
|
329
|
-
// Esbuild already reads the existing source maps, so there's no need to do it again
|
|
330
|
-
normalizedOptions.detailed = false;
|
|
331
338
|
const inputs = Object.entries(result.metafile.inputs).reduce((acc, [path, data])=>{
|
|
332
339
|
acc[path] = {
|
|
333
340
|
bytes: data.bytes,
|
|
@@ -343,22 +350,20 @@ function SondaEsbuildPlugin(options) {
|
|
|
343
350
|
*/ addSourcesToInputs(resolve(cwd, path), acc);
|
|
344
351
|
return acc;
|
|
345
352
|
}, {});
|
|
346
|
-
return generateReportFromAssets(Object.keys(result.metafile.outputs), inputs,
|
|
353
|
+
return generateReportFromAssets(Object.keys(result.metafile.outputs).map((path)=>resolve(cwd, path)), inputs, options);
|
|
347
354
|
});
|
|
348
355
|
}
|
|
349
356
|
};
|
|
350
357
|
}
|
|
351
358
|
|
|
352
|
-
|
|
353
|
-
const cjsRegex = /\.c[tj]sx?$/;
|
|
354
|
-
function SondaRollupPlugin(options) {
|
|
359
|
+
function SondaRollupPlugin(options = {}) {
|
|
355
360
|
let inputs = {};
|
|
356
361
|
return {
|
|
357
362
|
name: 'sonda',
|
|
358
363
|
writeBundle ({ dir, file }, bundle) {
|
|
359
364
|
const outputDir = resolve(process.cwd(), dir ?? dirname(file));
|
|
360
365
|
const assets = Object.keys(bundle).map((name)=>join(outputDir, name));
|
|
361
|
-
return generateReportFromAssets(assets, inputs,
|
|
366
|
+
return generateReportFromAssets(assets, inputs, options);
|
|
362
367
|
},
|
|
363
368
|
moduleParsed (module) {
|
|
364
369
|
inputs[normalizePath(module.id)] = {
|
|
@@ -374,13 +379,12 @@ function getFormat$1(moduleId, isCommonJS) {
|
|
|
374
379
|
if (isCommonJS === true || cjsRegex.test(moduleId)) {
|
|
375
380
|
return 'cjs';
|
|
376
381
|
}
|
|
377
|
-
if (isCommonJS === false ||
|
|
382
|
+
if (isCommonJS === false || jsRegexp.test(moduleId)) {
|
|
378
383
|
return 'esm';
|
|
379
384
|
}
|
|
380
385
|
return 'unknown';
|
|
381
386
|
}
|
|
382
387
|
|
|
383
|
-
const jsRegexp = /\.[c|m]?[t|j]s[x]?$/;
|
|
384
388
|
class SondaWebpackPlugin {
|
|
385
389
|
apply(compiler) {
|
|
386
390
|
compiler.options.output.devtoolModuleFilenameTemplate = '[absolute-resource-path]';
|
|
@@ -391,7 +395,10 @@ class SondaWebpackPlugin {
|
|
|
391
395
|
providedExports: true
|
|
392
396
|
});
|
|
393
397
|
const outputPath = stats.outputPath || compiler.outputPath;
|
|
394
|
-
const modules = stats.modules?.
|
|
398
|
+
const modules = stats.modules?.flatMap((mod)=>mod.modules ? [
|
|
399
|
+
mod,
|
|
400
|
+
...mod.modules
|
|
401
|
+
] : mod).filter((mod)=>mod.nameForCondition && !mod.codeGenerated).filter((mod, index, self)=>self.findIndex((m)=>m.nameForCondition === mod.nameForCondition) === index) || [];
|
|
395
402
|
modules.forEach((module)=>{
|
|
396
403
|
const imports = modules.reduce((acc, { nameForCondition, issuerName, reasons })=>{
|
|
397
404
|
if (issuerName === module.name || reasons?.some((reason)=>reason.resolvedModule === module.name)) {
|
|
@@ -406,11 +413,11 @@ class SondaWebpackPlugin {
|
|
|
406
413
|
belongsTo: null
|
|
407
414
|
};
|
|
408
415
|
});
|
|
409
|
-
return generateReportFromAssets(stats.assets?.map((asset)=>join(outputPath, asset.name)) || [], inputs,
|
|
416
|
+
return generateReportFromAssets(stats.assets?.map((asset)=>join(outputPath, asset.name)) || [], inputs, this.options);
|
|
410
417
|
});
|
|
411
418
|
}
|
|
412
|
-
constructor(options){
|
|
413
|
-
this.options = options
|
|
419
|
+
constructor(options = {}){
|
|
420
|
+
this.options = options;
|
|
414
421
|
}
|
|
415
422
|
}
|
|
416
423
|
function getFormat(module) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils.ts","../../load-source-map/dist/index.js","../src/sourcemap/map.ts","../src/sourcemap/bytes.ts","../src/report.ts","../src/report/generate.ts","../src/bundlers/esbuild.ts","../src/bundlers/rollup.ts","../src/bundlers/webpack.ts"],"sourcesContent":["import { relative, posix, sep } from 'path';\nimport type { Options } from './types';\n\nconst cwd = /* #__PURE__ */ process.cwd();\n\nexport function normalizeOptions( options?: Partial<Options> ) {\n\tconst defaultOptions: Options = {\n\t\topen: true,\n\t\tformat: 'html',\n\t\tdetailed: false,\n\t\tgzip: false,\n\t\tbrotli: false,\n\t};\n\n\treturn Object.assign( {}, defaultOptions, options ) as Options;\n}\n\nexport function normalizePath( path: string ): string {\n\t// Unicode escape sequences used by Rollup and Vite to identify virtual modules\n\tconst normalized = path.replace( /^\\0/, '' )\n\n\t// Transform absolute paths to relative paths\n\tconst relativized = relative( cwd, normalized );\n\n\t// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687\n\treturn relativized.replaceAll( sep, posix.sep );\n}\n","import { existsSync, readFileSync } from 'fs';\nimport { join, dirname, isAbsolute, resolve } from 'path';\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),\n * and parses the string as JSON.\n *\n * https://github.com/mozilla/source-map/blob/3cb92cc3b73bfab27c146bae4ef2bc09dbb4e5ed/lib/util.js#L162-L164\n */ function parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\n/**\n\tsourceMappingURL=data:application/json;charset=utf-8;base64,data\n\tsourceMappingURL=data:application/json;base64,data\n\tsourceMappingURL=data:application/json;uri,data\n\tsourceMappingURL=map-file-comment.css.map\n\tsourceMappingURL=map-file-comment.css.map?query=value\n*/ const sourceMappingRegExp = /[@#]\\s*sourceMappingURL=(\\S+)\\b/g;\nfunction loadCodeAndMap(codePath) {\n if (!existsSync(codePath)) {\n return null;\n }\n const code = readFileSync(codePath, 'utf-8');\n const extractedComment = code.includes('sourceMappingURL') && Array.from(code.matchAll(sourceMappingRegExp)).at(-1);\n if (!extractedComment || !extractedComment.length) {\n return {\n code\n };\n }\n const maybeMap = loadMap(codePath, extractedComment[1]);\n if (!maybeMap) {\n return {\n code\n };\n }\n const { map, mapPath } = maybeMap;\n map.sources = normalizeSourcesPaths(map, mapPath);\n map.sourcesContent = loadMissingSourcesContent(map);\n delete map.sourceRoot;\n return {\n code,\n map\n };\n}\nfunction loadMap(codePath, sourceMappingURL) {\n if (sourceMappingURL.startsWith('data:')) {\n const map = parseDataUrl(sourceMappingURL);\n return {\n map: parseSourceMapInput(map),\n mapPath: codePath\n };\n }\n const sourceMapFilename = new URL(sourceMappingURL, 'file://').pathname;\n const mapPath = join(dirname(codePath), sourceMapFilename);\n if (!existsSync(mapPath)) {\n return null;\n }\n return {\n map: parseSourceMapInput(readFileSync(mapPath, 'utf-8')),\n mapPath\n };\n}\nfunction parseDataUrl(url) {\n const [prefix, payload] = url.split(',');\n const encoding = prefix.split(';').at(-1);\n switch(encoding){\n case 'base64':\n return Buffer.from(payload, 'base64').toString();\n case 'uri':\n return decodeURIComponent(payload);\n default:\n throw new Error('Unsupported source map encoding: ' + encoding);\n }\n}\n/**\n * Normalize the paths of the sources in the source map to be absolute paths.\n */ function normalizeSourcesPaths(map, mapPath) {\n const mapDir = dirname(mapPath);\n return map.sources.map((source)=>{\n if (!source) {\n return source;\n }\n return isAbsolute(source) ? source : resolve(mapDir, map.sourceRoot ?? '.', source);\n });\n}\n/**\n * Loop through the sources and try to load missing `sourcesContent` from the file system.\n */ function loadMissingSourcesContent(map) {\n return map.sources.map((source, index)=>{\n if (map.sourcesContent?.[index]) {\n return map.sourcesContent[index];\n }\n if (source && existsSync(source)) {\n return readFileSync(source, 'utf-8');\n }\n return null;\n });\n}\n\nexport { loadCodeAndMap };\n//# sourceMappingURL=index.js.map\n","import { default as remapping, type DecodedSourceMap, type EncodedSourceMap } from '@ampproject/remapping';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { resolve } from 'path';\nimport { normalizePath } from '../utils';\nimport type { CodeMap, ReportInput } from '../types';\n\nexport function mapSourceMap(\n\tmap: EncodedSourceMap,\n\tdirPath: string,\n\tinputs: Record<string, ReportInput>\n): DecodedSourceMap {\n\tconst alreadyRemapped = new Set<string>();\n\tconst remapped = remapping( map, ( file, ctx ) => {\n\t\tif ( alreadyRemapped.has( file ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\talreadyRemapped.add( file );\n\n\t\tconst codeMap = addSourcesToInputs(\n\t\t\tresolve( dirPath, file ),\n\t\t\tinputs\n\t\t);\n\n\t\tif ( !codeMap ) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.content ??= codeMap.code;\n\n\t\treturn codeMap.map;\n\t}, { decodedMappings: true } );\n\n\treturn remapped as DecodedSourceMap;\n}\n\n/**\n * Loads the source map of a given file and adds its \"sources\" to the given inputs object.\n */\nexport function addSourcesToInputs(\n\tpath: string,\n\tinputs: Record<string, ReportInput>\n): CodeMap | null {\n\tconst codeMap = loadCodeAndMap( path );\n\n\tif ( !codeMap ) {\n\t\treturn null;\n\t}\n\n\tconst parentPath = normalizePath( path );\n\tconst format = inputs[ parentPath ]?.format ?? 'unknown';\n\n\tcodeMap.map?.sources\n\t\t.filter( source => source !== null )\n\t\t.forEach( ( source, index ) => {\n\t\t\tconst normalizedPath = normalizePath( source );\n\n\t\t\tif ( parentPath === normalizedPath ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tinputs[ normalizedPath ] = {\n\t\t\t\tbytes: Buffer.byteLength( codeMap.map!.sourcesContent?.[ index ] ?? '' ),\n\t\t\t\tformat,\n\t\t\t\timports: [],\n\t\t\t\tbelongsTo: parentPath\n\t\t\t};\n\t\t} );\n\t\n\treturn codeMap;\n}\n","import { gzipSync, brotliCompressSync } from 'zlib';\nimport type { DecodedSourceMap, SourceMapSegment } from '@ampproject/remapping';\nimport type { Options, Sizes } from '../types';\n\nconst UNASSIGNED = '[unassigned]';\n\nexport function getBytesPerSource(\n\tcode: string,\n\tmap: DecodedSourceMap,\n\tassetSizes: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst contributions = getContributions( map.sources );\n\n\t// Split the code into lines\n\tconst codeLines = code.split( /(?<=\\r?\\n)/ );\n\n\tfor ( let lineIndex = 0; lineIndex < codeLines.length; lineIndex++ ) {\n\t\tconst lineCode = codeLines[ lineIndex ];\n\t\tconst mappings = map.mappings[ lineIndex ] || [];\n\t\tlet currentColumn = 0;\n\n\t\tfor ( let i = 0; i <= mappings.length; i++ ) {\n\t\t\t// 0: generatedColumn\n\t\t\t// 1: sourceIndex\n\t\t\t// 2: originalLine\n\t\t\t// 3: originalColumn\n\t\t\t// 4: nameIndex\n\n\t\t\tconst mapping: SourceMapSegment | undefined = mappings[ i ];\n\t\t\tconst startColumn = mapping?.[ 0 ] ?? lineCode.length;\n\t\t\tconst endColumn = mappings[ i + 1 ]?.[ 0 ] ?? lineCode.length;\n\n\t\t\t// Slice the code from currentColumn to startColumn for unassigned code\n\t\t\tif ( startColumn > currentColumn ) {\n\t\t\t\tcontributions.set( UNASSIGNED, contributions.get( UNASSIGNED ) + lineCode.slice( currentColumn, startColumn ) );\n\t\t\t}\n\n\t\t\tif ( mapping ) {\n\t\t\t\t// Slice the code from startColumn to endColumn for assigned code\n\t\t\t\tconst sourceIndex = mapping?.[ 1 ];\n\t\t\t\tconst codeSlice = lineCode.slice( startColumn, endColumn );\n\t\t\t\tconst source = sourceIndex !== undefined ? map.sources[ sourceIndex ]! : UNASSIGNED;\n\n\t\t\t\tcontributions.set( source, contributions.get( source ) + codeSlice );\n\t\t\t\tcurrentColumn = endColumn;\n\t\t\t} else {\n\t\t\t\tcurrentColumn = startColumn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compute sizes for each source\n\tconst sourceSizes = new Map<string, Sizes>();\n\n\tconst contributionsSum: Sizes = {\n\t\tuncompressed: 0,\n\t\tgzip: 0,\n\t\tbrotli: 0\n\t};\n\n\tfor ( const [ source, codeSegment ] of contributions ) {\n\t\tconst sizes = getSizes( codeSegment, options );\n\n\t\tcontributionsSum.uncompressed += sizes.uncompressed;\n\t\tcontributionsSum.gzip += sizes.gzip;\n\t\tcontributionsSum.brotli += sizes.brotli;\n\n\t\tsourceSizes.set( source, sizes );\n\t}\n\n\treturn adjustSizes( sourceSizes, assetSizes, contributionsSum, options );\n}\n\nexport function getSizes(\n\tcode: string,\n\toptions: Options\n): Sizes {\n\treturn {\n\t\tuncompressed: Buffer.byteLength( code ),\n\t\tgzip: options.gzip ? gzipSync( code ).length : 0,\n\t\tbrotli: options.brotli ? brotliCompressSync( code ).length : 0\n\t};\n}\n\nfunction getContributions( sources: Array<string | null> ): Map<string, string> {\n\tconst contributions = new Map<string, string>();\n\n\t// Populate contributions with sources\n\tsources\n\t\t.filter( source => source !== null )\n\t\t.forEach( source => contributions.set( source, '' ) );\n\n\t// Add entry for the code that is not assigned to any source\n\tcontributions.set( UNASSIGNED, '' );\n\n\treturn contributions;\n}\n\n/**\n * Compression efficiency improves with the size of the file.\n *\n * However, what we have is the compressed size of the entire bundle (`actual`),\n * the sum of all files compressed individually (`sum`) and the compressed\n * size of a given file (`content`). The last value is essentially a “worst-case”\n * scenario, and the actual size of the file in the bundle is likely to be smaller.\n *\n * We use this information to estimate the actual size of the file in the bundle\n * after compression.\n */\nfunction adjustSizes(\n\tsources: Map<string, Sizes>,\n\tasset: Sizes,\n\tsums: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst gzipDelta = options.gzip ? asset.gzip / sums.gzip : 0;\n\tconst brotliDelta = options.brotli ? asset.brotli / sums.brotli : 0;\n\n\tfor ( const [ source, sizes ] of sources ) {\n\t\tsources.set( source, {\n\t\t\tuncompressed: sizes.uncompressed,\n\t\t\tgzip: options.gzip ? Math.round( sizes.gzip * gzipDelta ) : 0,\n\t\t\tbrotli: options.brotli ? Math.round( sizes.brotli * brotliDelta ) : 0\n\t\t} );\n\t}\n\n\treturn sources;\n}\n","import { dirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\nimport { readFileSync } from 'fs';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { decode } from '@jridgewell/sourcemap-codec';\nimport { mapSourceMap } from './sourcemap/map.js';\nimport { getBytesPerSource, getSizes } from './sourcemap/bytes.js';\nimport type {\n JsonReport,\n MaybeCodeMap,\n ReportInput,\n ReportOutput,\n CodeMap,\n ReportOutputInput,\n Options\n} from './types.js';\nimport { normalizePath } from './utils.js';\n\nexport function generateJsonReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): JsonReport {\n const outputs = assets\n .filter( asset => !asset.endsWith( '.map' ) )\n .reduce( ( carry, asset ) => {\n const data = processAsset( asset, inputs, options );\n\n if ( data ) {\n carry[ normalizePath( asset ) ] = data;\n }\n\n return carry;\n }, {} as Record<string, ReportOutput> );\n\n return {\n inputs,\n outputs\n };\n}\n\nexport function generateHtmlReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): string {\n const json = generateJsonReport( assets, inputs, options );\n const __dirname = dirname( fileURLToPath( import.meta.url ) );\n const template = readFileSync( resolve( __dirname, './index.html' ), 'utf-8' );\n\n return template.replace( '__REPORT_DATA__', JSON.stringify( json ) );\n}\n\nfunction processAsset(\n asset: string,\n inputs: Record<string, ReportInput>,\n options: Options\n): ReportOutput | void {\n const maybeCodeMap = loadCodeAndMap( asset );\n\n if ( !hasCodeAndMap( maybeCodeMap ) ) {\n return;\n }\n\n const { code, map } = maybeCodeMap;\n const mapped = options.detailed\n ? mapSourceMap( map, dirname( asset ), inputs )\n : { ...map, mappings: decode( map.mappings ) };\n\n mapped.sources = mapped.sources.map( source => normalizePath( source! ) );\n\n const assetSizes = getSizes( code, options );\n const bytes = getBytesPerSource( code, mapped, assetSizes, options );\n\n return {\n ...assetSizes,\n inputs: Array.from( bytes ).reduce( ( carry, [ source, sizes ] ) => {\n carry[ normalizePath( source ) ] = sizes;\n\n return carry;\n }, {} as Record<string, ReportOutputInput> )\n };\n}\n\nfunction hasCodeAndMap( result: MaybeCodeMap ): result is Required<CodeMap> {\n return Boolean( result && result.code && result.map );\n}\n","import { join } from 'path';\nimport { writeFileSync } from 'fs';\nimport { generateHtmlReport, generateJsonReport } from '../report.js';\nimport type { Options, JsonReport } from '../types.js';\n\nexport async function generateReportFromAssets(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): Promise<void> {\n\tconst { default: open } = await import( 'open' );\n\n\tconst handler = options.format === 'html'\n\t\t? saveHtml\n\t\t: saveJson;\n\n\tconst path = handler( assets, inputs, options );\n\n\toptions.open && path && open( path );\n}\n\nfunction saveHtml(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateHtmlReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.html' );\n\n\twriteFileSync( path, report );\n\n\treturn path;\n}\n\nfunction saveJson(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateJsonReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.json' );\n\n\twriteFileSync( path, JSON.stringify( report, null, 2 ) );\n\n\treturn path;\n}\n","import { resolve } from 'path';\nimport { normalizeOptions } from '../utils';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Plugin } from 'esbuild';\nimport type { Options, JsonReport } from '../types';\nimport { addSourcesToInputs } from '../sourcemap/map';\n\nexport function SondaEsbuildPlugin( options?: Partial<Options> ): Plugin {\n\treturn {\n\t\tname: 'sonda',\n\t\tsetup( build ) {\n\t\t\tbuild.initialOptions.metafile = true;\n\n\t\t\tbuild.onEnd( result => {\n\t\t\t\tif ( !result.metafile ) {\n\t\t\t\t\treturn console.error( 'Metafile is required for SondaEsbuildPlugin to work.' );\n\t\t\t\t}\n\n\t\t\t\tconst cwd = process.cwd();\n\t\t\t\tconst normalizedOptions = normalizeOptions( options );\n\n\t\t\t\t// Esbuild already reads the existing source maps, so there's no need to do it again\n\t\t\t\tnormalizedOptions.detailed = false;\n\n\t\t\t\tconst inputs = Object\n\t\t\t\t\t.entries( result.metafile.inputs )\n\t\t\t\t\t.reduce( ( acc, [ path, data ] ) => {\n\t\t\t\t\t\tacc[ path ] = {\n\t\t\t\t\t\t\tbytes: data.bytes,\n\t\t\t\t\t\t\tformat: data.format ?? 'unknown',\n\t\t\t\t\t\t\timports: data.imports.map( data => data.path ),\n\t\t\t\t\t\t\tbelongsTo: null,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Because esbuild already reads the existing source maps, there may be\n\t\t\t\t\t\t * cases where some report \"outputs\" include \"inputs\" don't exist in the\n\t\t\t\t\t\t * main \"inputs\" object. To avoid this, we parse each esbuild input and\n\t\t\t\t\t\t * add its sources to the \"inputs\" object.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taddSourcesToInputs(\n\t\t\t\t\t\t\tresolve( cwd, path ),\n\t\t\t\t\t\t\tacc\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, {} as JsonReport[ 'inputs' ] );\n\n\t\t\t\treturn generateReportFromAssets(\n\t\t\t\t\tObject.keys( result.metafile.outputs ),\n\t\t\t\t\tinputs,\n\t\t\t\t\tnormalizeOptions( options )\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t};\n}\n","import { join, resolve, dirname } from 'path';\nimport { normalizeOptions, normalizePath } from '../utils.js';\nimport { generateReportFromAssets } from '../report/generate.js';\nimport type { Options, ModuleFormat, JsonReport } from '../types.js';\nimport type { Plugin, ModuleInfo, NormalizedOutputOptions, OutputBundle } from 'rollup';\n\nconst esmRegex = /\\.m[tj]sx?$/;\nconst cjsRegex = /\\.c[tj]sx?$/;\n\nexport function SondaRollupPlugin( options?: Partial<Options> ): Plugin {\n\tlet inputs: JsonReport[ 'inputs' ] = {};\n\n\treturn {\n\t\tname: 'sonda',\n\n\t\twriteBundle(\n\t\t\t{ dir, file }: NormalizedOutputOptions,\n\t\t\tbundle: OutputBundle\n\t\t) {\n\t\t\tconst outputDir = resolve( process.cwd(), dir ?? dirname( file! ) );\n\t\t\tconst assets = Object.keys( bundle ).map( name => join( outputDir, name ) );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tassets,\n\t\t\t\tinputs,\n\t\t\t\tnormalizeOptions( options )\n\t\t\t);\n\t\t},\n\n\t\tmoduleParsed( module: ModuleInfo ) {\n\t\t\tinputs[ normalizePath( module.id ) ] = {\n\t\t\t\tbytes: module.code ? Buffer.byteLength( module.code ) : 0,\n\t\t\t\tformat: getFormat( module.id, module.meta.commonjs?.isCommonJS ),\n\t\t\t\timports: module.importedIds.map( id => normalizePath( id ) ),\n\t\t\t\tbelongsTo: null,\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction getFormat( moduleId: string, isCommonJS: boolean | undefined ): ModuleFormat {\n\tif ( isCommonJS === true || cjsRegex.test( moduleId ) ) {\n\t\treturn 'cjs';\n\t}\n\n\tif ( isCommonJS === false || esmRegex.test( moduleId ) ) {\n\t\treturn 'esm';\n\t}\n\n\treturn'unknown';\n}\n","import { join } from 'path';\nimport { normalizeOptions, normalizePath } from '../utils';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Compiler, StatsModule } from 'webpack';\nimport type { Options, ModuleFormat, JsonReport } from '../types';\n\nconst jsRegexp = /\\.[c|m]?[t|j]s[x]?$/;\n\nexport class SondaWebpackPlugin {\n\toptions: Partial<Options>;\n\n\tconstructor ( options?: Partial<Options> ) {\n\t\tthis.options = options || {};\n\t}\n\n\tapply( compiler: Compiler ): void {\n\t\tcompiler.options.output.devtoolModuleFilenameTemplate = '[absolute-resource-path]';\n\n\t\tcompiler.hooks.afterEmit.tapPromise( 'SondaWebpackPlugin', compilation => {\n\t\t\tconst inputs: JsonReport[ 'inputs' ] = {};\n\t\t\tconst stats = compilation.getStats().toJson( {\n\t\t\t\tmodules: true,\n\t\t\t\tprovidedExports: true\n\t\t\t} );\n\n\t\t\tconst outputPath = stats.outputPath || compiler.outputPath;\n\t\t\tconst modules = stats.modules?.filter( mod => mod.nameForCondition && mod.moduleType !== 'asset/inline' ) || [];\n\n\t\t\tmodules.forEach( module => {\n\t\t\t\tconst imports = modules.reduce( ( acc, { nameForCondition, issuerName, reasons } ) => {\n\t\t\t\t\tif ( issuerName === module.name || reasons?.some( reason => reason.resolvedModule === module.name ) ) {\n\t\t\t\t\t\tacc.push( normalizePath( nameForCondition! ) );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, [] as Array<string> );\n\n\t\t\t\tinputs[ normalizePath( module.nameForCondition! ) ] = {\n\t\t\t\t\tbytes: module.size || 0,\n\t\t\t\t\tformat: getFormat( module ),\n\t\t\t\t\timports,\n\t\t\t\t\tbelongsTo: null\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tstats.assets?.map( asset => join( outputPath, asset.name ) ) || [],\n\t\t\t\tinputs,\n\t\t\t\tnormalizeOptions( this.options )\n\t\t\t);\n\t\t} );\n\t}\n}\n\nfunction getFormat( module: StatsModule ): ModuleFormat {\n\tif ( !jsRegexp.test( module.nameForCondition! ) ) {\n\t\treturn 'unknown';\n\t}\n\n\t/**\n\t * Sometimes ESM modules have `moduleType` set as `javascript/auto`, so we\n\t * also need to check if the module has exports to determine if it's ESM.\n\t */\n\tif ( module.moduleType === 'javascript/esm' || !!module.providedExports?.length ) {\n\t\treturn 'esm';\n\t}\n\n\treturn 'cjs';\n}\n"],"names":["cwd","process","normalizeOptions","options","defaultOptions","open","format","detailed","gzip","brotli","Object","assign","normalizePath","path","normalized","replace","relativized","relative","replaceAll","sep","posix","parseSourceMapInput","str","JSON","parse","sourceMappingRegExp","loadCodeAndMap","codePath","existsSync","code","readFileSync","extractedComment","includes","Array","from","matchAll","at","length","maybeMap","loadMap","map","mapPath","sources","normalizeSourcesPaths","sourcesContent","loadMissingSourcesContent","sourceRoot","sourceMappingURL","startsWith","parseDataUrl","sourceMapFilename","URL","pathname","join","dirname","url","prefix","payload","split","encoding","Buffer","toString","decodeURIComponent","Error","mapDir","source","isAbsolute","resolve","index","mapSourceMap","dirPath","inputs","alreadyRemapped","Set","remapped","remapping","file","ctx","has","add","codeMap","addSourcesToInputs","content","decodedMappings","parentPath","filter","forEach","normalizedPath","bytes","byteLength","imports","belongsTo","UNASSIGNED","getBytesPerSource","assetSizes","contributions","getContributions","codeLines","lineIndex","lineCode","mappings","currentColumn","i","mapping","startColumn","endColumn","set","get","slice","sourceIndex","codeSlice","undefined","sourceSizes","Map","contributionsSum","uncompressed","codeSegment","sizes","getSizes","adjustSizes","gzipSync","brotliCompressSync","asset","sums","gzipDelta","brotliDelta","Math","round","generateJsonReport","assets","outputs","endsWith","reduce","carry","data","processAsset","generateHtmlReport","json","__dirname","fileURLToPath","template","stringify","maybeCodeMap","hasCodeAndMap","mapped","decode","result","Boolean","generateReportFromAssets","default","handler","saveHtml","saveJson","report","writeFileSync","SondaEsbuildPlugin","name","setup","build","initialOptions","metafile","onEnd","console","error","normalizedOptions","entries","acc","keys","esmRegex","cjsRegex","SondaRollupPlugin","writeBundle","dir","bundle","outputDir","moduleParsed","module","id","getFormat","meta","commonjs","isCommonJS","importedIds","moduleId","test","jsRegexp","SondaWebpackPlugin","apply","compiler","output","devtoolModuleFilenameTemplate","hooks","afterEmit","tapPromise","compilation","stats","getStats","toJson","modules","providedExports","outputPath","mod","nameForCondition","moduleType","issuerName","reasons","some","reason","resolvedModule","push","size","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../load-source-map/dist/index.js","../src/utils.ts","../src/sourcemap/map.ts","../src/sourcemap/bytes.ts","../src/report.ts","../src/report/generate.ts","../src/bundlers/esbuild.ts","../src/bundlers/rollup.ts","../src/bundlers/webpack.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'fs';\nimport { join, dirname, isAbsolute, resolve } from 'path';\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),\n * and parses the string as JSON.\n *\n * https://github.com/mozilla/source-map/blob/3cb92cc3b73bfab27c146bae4ef2bc09dbb4e5ed/lib/util.js#L162-L164\n */ function parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\n/**\n\tsourceMappingURL=data:application/json;charset=utf-8;base64,data\n\tsourceMappingURL=data:application/json;base64,data\n\tsourceMappingURL=data:application/json;uri,data\n\tsourceMappingURL=map-file-comment.css.map\n\tsourceMappingURL=map-file-comment.css.map?query=value\n*/ const sourceMappingRegExp = /[@#]\\s*sourceMappingURL=(\\S+)\\b/g;\nfunction loadCodeAndMap(codePath) {\n if (!existsSync(codePath)) {\n return null;\n }\n const code = readFileSync(codePath, 'utf-8');\n const extractedComment = code.includes('sourceMappingURL') && Array.from(code.matchAll(sourceMappingRegExp)).at(-1);\n if (!extractedComment || !extractedComment.length) {\n return {\n code\n };\n }\n const maybeMap = loadMap(codePath, extractedComment[1]);\n if (!maybeMap) {\n return {\n code\n };\n }\n const { map, mapPath } = maybeMap;\n map.sources = normalizeSourcesPaths(map, mapPath);\n map.sourcesContent = loadMissingSourcesContent(map);\n delete map.sourceRoot;\n return {\n code,\n map\n };\n}\nfunction loadMap(codePath, sourceMappingURL) {\n if (sourceMappingURL.startsWith('data:')) {\n const map = parseDataUrl(sourceMappingURL);\n return {\n map: parseSourceMapInput(map),\n mapPath: codePath\n };\n }\n const sourceMapFilename = new URL(sourceMappingURL, 'file://').pathname;\n const mapPath = join(dirname(codePath), sourceMapFilename);\n if (!existsSync(mapPath)) {\n return null;\n }\n return {\n map: parseSourceMapInput(readFileSync(mapPath, 'utf-8')),\n mapPath\n };\n}\nfunction parseDataUrl(url) {\n const [prefix, payload] = url.split(',');\n const encoding = prefix.split(';').at(-1);\n switch(encoding){\n case 'base64':\n return Buffer.from(payload, 'base64').toString();\n case 'uri':\n return decodeURIComponent(payload);\n default:\n throw new Error('Unsupported source map encoding: ' + encoding);\n }\n}\n/**\n * Normalize the paths of the sources in the source map to be absolute paths.\n */ function normalizeSourcesPaths(map, mapPath) {\n const mapDir = dirname(mapPath);\n return map.sources.map((source)=>{\n if (!source) {\n return source;\n }\n return isAbsolute(source) ? source : resolve(mapDir, map.sourceRoot ?? '.', source);\n });\n}\n/**\n * Loop through the sources and try to load missing `sourcesContent` from the file system.\n */ function loadMissingSourcesContent(map) {\n return map.sources.map((source, index)=>{\n if (map.sourcesContent?.[index]) {\n return map.sourcesContent[index];\n }\n if (source && existsSync(source)) {\n return readFileSync(source, 'utf-8');\n }\n return null;\n });\n}\n\nexport { loadCodeAndMap };\n//# sourceMappingURL=index.js.map\n","import { relative, win32, posix } from 'path';\nimport type { Options } from './types';\n\nexport const esmRegex: RegExp = /\\.m[tj]sx?$/;\nexport const cjsRegex: RegExp = /\\.c[tj]sx?$/;\nexport const jsRegexp: RegExp = /\\.[cm]?[tj]s[x]?$/;\n\nexport function normalizeOptions( options?: Partial<Options> ) {\n\tconst defaultOptions: Options = {\n\t\topen: true,\n\t\tformat: 'html',\n\t\tdetailed: false,\n\t\tgzip: false,\n\t\tbrotli: false,\n\t};\n\n\treturn Object.assign( {}, defaultOptions, options ) as Options;\n}\n\nexport function normalizePath( pathToNormalize: string ): string {\n\t// Unicode escape sequences used by Rollup and Vite to identify virtual modules\n\tconst normalized = pathToNormalize.replace( /^\\0/, '' )\n\n\t// Transform absolute paths to relative paths\n\tconst relativized = relative( process.cwd(), normalized );\n\n\t// Ensure paths are POSIX-compliant - https://stackoverflow.com/a/63251716/4617687\n\treturn relativized.replaceAll( win32.sep, posix.sep );\n}\n","import { default as remapping, type DecodedSourceMap, type EncodedSourceMap } from '@ampproject/remapping';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { resolve } from 'path';\nimport { normalizePath } from '../utils';\nimport type { CodeMap, ReportInput } from '../types';\n\nexport function mapSourceMap(\n\tmap: EncodedSourceMap,\n\tdirPath: string,\n\tinputs: Record<string, ReportInput>\n): DecodedSourceMap {\n\tconst alreadyRemapped = new Set<string>();\n\tconst remapped = remapping( map, ( file, ctx ) => {\n\t\tif ( alreadyRemapped.has( file ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\talreadyRemapped.add( file );\n\n\t\tconst codeMap = addSourcesToInputs(\n\t\t\tresolve( dirPath, file ),\n\t\t\tinputs\n\t\t);\n\n\t\tif ( !codeMap ) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.content ??= codeMap.code;\n\n\t\treturn codeMap.map;\n\t}, { decodedMappings: true } );\n\n\treturn remapped as DecodedSourceMap;\n}\n\n/**\n * Loads the source map of a given file and adds its \"sources\" to the given inputs object.\n */\nexport function addSourcesToInputs(\n\tpath: string,\n\tinputs: Record<string, ReportInput>\n): CodeMap | null {\n\tconst codeMap = loadCodeAndMap( path );\n\n\tif ( !codeMap ) {\n\t\treturn null;\n\t}\n\n\tconst parentPath = normalizePath( path );\n\tconst format = inputs[ parentPath ]?.format ?? 'unknown';\n\n\tcodeMap.map?.sources\n\t\t.filter( source => source !== null )\n\t\t.forEach( ( source, index ) => {\n\t\t\tconst normalizedPath = normalizePath( source );\n\n\t\t\tif ( parentPath === normalizedPath ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tinputs[ normalizedPath ] = {\n\t\t\t\tbytes: Buffer.byteLength( codeMap.map!.sourcesContent?.[ index ] ?? '' ),\n\t\t\t\tformat,\n\t\t\t\timports: [],\n\t\t\t\tbelongsTo: parentPath\n\t\t\t};\n\t\t} );\n\t\n\treturn codeMap;\n}\n","import { gzipSync, brotliCompressSync } from 'zlib';\nimport type { DecodedSourceMap, SourceMapSegment } from '@ampproject/remapping';\nimport type { Options, Sizes } from '../types';\n\nconst UNASSIGNED = '[unassigned]';\n\nexport function getBytesPerSource(\n\tcode: string,\n\tmap: DecodedSourceMap,\n\tassetSizes: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst contributions = getContributions( map.sources );\n\n\t// Split the code into lines\n\tconst codeLines = code.split( /(?<=\\r?\\n)/ );\n\n\tfor ( let lineIndex = 0; lineIndex < codeLines.length; lineIndex++ ) {\n\t\tconst lineCode = codeLines[ lineIndex ];\n\t\tconst mappings = map.mappings[ lineIndex ] || [];\n\t\tlet currentColumn = 0;\n\n\t\tfor ( let i = 0; i <= mappings.length; i++ ) {\n\t\t\t// 0: generatedColumn\n\t\t\t// 1: sourceIndex\n\t\t\t// 2: originalLine\n\t\t\t// 3: originalColumn\n\t\t\t// 4: nameIndex\n\n\t\t\tconst mapping: SourceMapSegment | undefined = mappings[ i ];\n\t\t\tconst startColumn = mapping?.[ 0 ] ?? lineCode.length;\n\t\t\tconst endColumn = mappings[ i + 1 ]?.[ 0 ] ?? lineCode.length;\n\n\t\t\t// Slice the code from currentColumn to startColumn for unassigned code\n\t\t\tif ( startColumn > currentColumn ) {\n\t\t\t\tcontributions.set( UNASSIGNED, contributions.get( UNASSIGNED ) + lineCode.slice( currentColumn, startColumn ) );\n\t\t\t}\n\n\t\t\tif ( mapping ) {\n\t\t\t\t// Slice the code from startColumn to endColumn for assigned code\n\t\t\t\tconst sourceIndex = mapping?.[ 1 ];\n\t\t\t\tconst codeSlice = lineCode.slice( startColumn, endColumn );\n\t\t\t\tconst source = sourceIndex !== undefined ? map.sources[ sourceIndex ]! : UNASSIGNED;\n\n\t\t\t\tcontributions.set( source, contributions.get( source ) + codeSlice );\n\t\t\t\tcurrentColumn = endColumn;\n\t\t\t} else {\n\t\t\t\tcurrentColumn = startColumn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compute sizes for each source\n\tconst sourceSizes = new Map<string, Sizes>();\n\n\tconst contributionsSum: Sizes = {\n\t\tuncompressed: 0,\n\t\tgzip: 0,\n\t\tbrotli: 0\n\t};\n\n\tfor ( const [ source, codeSegment ] of contributions ) {\n\t\tconst sizes = getSizes( codeSegment, options );\n\n\t\tcontributionsSum.uncompressed += sizes.uncompressed;\n\t\tcontributionsSum.gzip += sizes.gzip;\n\t\tcontributionsSum.brotli += sizes.brotli;\n\n\t\tsourceSizes.set( source, sizes );\n\t}\n\n\treturn adjustSizes( sourceSizes, assetSizes, contributionsSum, options );\n}\n\nexport function getSizes(\n\tcode: string,\n\toptions: Options\n): Sizes {\n\treturn {\n\t\tuncompressed: Buffer.byteLength( code ),\n\t\tgzip: options.gzip ? gzipSync( code ).length : 0,\n\t\tbrotli: options.brotli ? brotliCompressSync( code ).length : 0\n\t};\n}\n\nfunction getContributions( sources: Array<string | null> ): Map<string, string> {\n\tconst contributions = new Map<string, string>();\n\n\t// Populate contributions with sources\n\tsources\n\t\t.filter( source => source !== null )\n\t\t.forEach( source => contributions.set( source, '' ) );\n\n\t// Add entry for the code that is not assigned to any source\n\tcontributions.set( UNASSIGNED, '' );\n\n\treturn contributions;\n}\n\n/**\n * Compression efficiency improves with the size of the file.\n *\n * However, what we have is the compressed size of the entire bundle (`actual`),\n * the sum of all files compressed individually (`sum`) and the compressed\n * size of a given file (`content`). The last value is essentially a “worst-case”\n * scenario, and the actual size of the file in the bundle is likely to be smaller.\n *\n * We use this information to estimate the actual size of the file in the bundle\n * after compression.\n */\nfunction adjustSizes(\n\tsources: Map<string, Sizes>,\n\tasset: Sizes,\n\tsums: Sizes,\n\toptions: Options\n): Map<string, Sizes> {\n\tconst gzipDelta = options.gzip ? asset.gzip / sums.gzip : 0;\n\tconst brotliDelta = options.brotli ? asset.brotli / sums.brotli : 0;\n\n\tfor ( const [ source, sizes ] of sources ) {\n\t\tsources.set( source, {\n\t\t\tuncompressed: sizes.uncompressed,\n\t\t\tgzip: options.gzip ? Math.round( sizes.gzip * gzipDelta ) : 0,\n\t\t\tbrotli: options.brotli ? Math.round( sizes.brotli * brotliDelta ) : 0\n\t\t} );\n\t}\n\n\treturn sources;\n}\n","import { readFileSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport { dirname, resolve } from 'path';\nimport { loadCodeAndMap } from 'load-source-map';\nimport { decode } from '@jridgewell/sourcemap-codec';\nimport { mapSourceMap } from './sourcemap/map.js';\nimport { getBytesPerSource, getSizes } from './sourcemap/bytes.js';\nimport type {\n JsonReport,\n MaybeCodeMap,\n ReportInput,\n ReportOutput,\n CodeMap,\n ReportOutputInput,\n Options\n} from './types.js';\nimport { normalizePath } from './utils.js';\n\nexport function generateJsonReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): JsonReport {\n const outputs = assets\n .filter( asset => !asset.endsWith( '.map' ) )\n .reduce( ( carry, asset ) => {\n const data = processAsset( asset, inputs, options );\n\n if ( data ) {\n carry[ normalizePath( asset ) ] = data;\n }\n\n return carry;\n }, {} as Record<string, ReportOutput> );\n\n return {\n inputs,\n outputs\n };\n}\n\nexport function generateHtmlReport(\n assets: Array<string>,\n inputs: Record<string, ReportInput>,\n options: Options\n): string {\n const json = generateJsonReport( assets, inputs, options );\n const __dirname = dirname( fileURLToPath( import.meta.url ) );\n const template = readFileSync( resolve( __dirname, './index.html' ), 'utf-8' );\n\n return template.replace( '__REPORT_DATA__', JSON.stringify( json ) );\n}\n\nfunction processAsset(\n asset: string,\n inputs: Record<string, ReportInput>,\n options: Options\n): ReportOutput | void {\n const maybeCodeMap = loadCodeAndMap( asset );\n\n if ( !hasCodeAndMap( maybeCodeMap ) ) {\n return;\n }\n\n const { code, map } = maybeCodeMap;\n const mapped = options.detailed\n ? mapSourceMap( map, dirname( asset ), inputs )\n : { ...map, mappings: decode( map.mappings ) };\n\n mapped.sources = mapped.sources.map( source => normalizePath( source! ) );\n\n const assetSizes = getSizes( code, options );\n const bytes = getBytesPerSource( code, mapped, assetSizes, options );\n\n return {\n ...assetSizes,\n inputs: Array.from( bytes ).reduce( ( carry, [ source, sizes ] ) => {\n carry[ normalizePath( source ) ] = sizes;\n\n return carry;\n }, {} as Record<string, ReportOutputInput> )\n };\n}\n\nfunction hasCodeAndMap( result: MaybeCodeMap ): result is Required<CodeMap> {\n return Boolean( result && result.code && result.map );\n}\n","import { join } from 'path';\nimport { writeFileSync } from 'fs';\nimport { generateHtmlReport, generateJsonReport } from '../report.js';\nimport type { Options, JsonReport } from '../types.js';\nimport { normalizeOptions } from '../utils.js';\n\nexport async function generateReportFromAssets(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\tuserOptions: Partial<Options>\n): Promise<void> {\n\tconst options = normalizeOptions( userOptions );\n\tconst handler = options.format === 'html' ? saveHtml : saveJson;\n\tconst path = handler( assets, inputs, options );\n\n\tif ( !options.open || !path ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * `open` is ESM-only package, so we need to import it\n\t * dynamically to make it work in CommonJS environment.\n\t */\n\tconst { default: open } = await import( 'open' );\n\n\topen( path );\n}\n\nfunction saveHtml(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateHtmlReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.html' );\n\n\twriteFileSync( path, report );\n\n\treturn path;\n}\n\nfunction saveJson(\n\tassets: string[],\n\tinputs: JsonReport[ 'inputs' ],\n\toptions: Options\n): string | null {\n\tconst report = generateJsonReport( assets, inputs, options );\n\tconst path = join( process.cwd(), 'sonda-report.json' );\n\n\twriteFileSync( path, JSON.stringify( report, null, 2 ) );\n\n\treturn path;\n}\n","import { resolve } from 'path';\nimport { addSourcesToInputs } from '../sourcemap/map';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Plugin } from 'esbuild';\nimport type { Options, JsonReport } from '../types';\n\nexport function SondaEsbuildPlugin( options: Partial<Options> = {} ): Plugin {\n\treturn {\n\t\tname: 'sonda',\n\t\tsetup( build ) {\n\t\t\tbuild.initialOptions.metafile = true;\n\n\t\t\t// Esbuild already reads the existing source maps, so there's no need to do it again\n\t\t\toptions.detailed = false;\n\n\t\t\tbuild.onEnd( result => {\n\t\t\t\tif ( !result.metafile ) {\n\t\t\t\t\treturn console.error( 'Metafile is required for SondaEsbuildPlugin to work.' );\n\t\t\t\t}\n\n\t\t\t\tconst cwd = process.cwd();\n\t\t\t\tconst inputs = Object\n\t\t\t\t\t.entries( result.metafile.inputs )\n\t\t\t\t\t.reduce( ( acc, [ path, data ] ) => {\n\t\t\t\t\t\tacc[ path ] = {\n\t\t\t\t\t\t\tbytes: data.bytes,\n\t\t\t\t\t\t\tformat: data.format ?? 'unknown',\n\t\t\t\t\t\t\timports: data.imports.map( data => data.path ),\n\t\t\t\t\t\t\tbelongsTo: null,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Because esbuild already reads the existing source maps, there may be\n\t\t\t\t\t\t * cases where some report \"outputs\" include \"inputs\" don't exist in the\n\t\t\t\t\t\t * main \"inputs\" object. To avoid this, we parse each esbuild input and\n\t\t\t\t\t\t * add its sources to the \"inputs\" object.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taddSourcesToInputs(\n\t\t\t\t\t\t\tresolve( cwd, path ),\n\t\t\t\t\t\t\tacc\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, {} as JsonReport[ 'inputs' ] );\n\n\t\t\t\treturn generateReportFromAssets(\n\t\t\t\t\tObject.keys( result.metafile.outputs ).map( path => resolve( cwd, path ) ),\n\t\t\t\t\tinputs,\n\t\t\t\t\toptions\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t};\n}\n","import { join, resolve, dirname } from 'path';\nimport { normalizePath, cjsRegex, jsRegexp } from '../utils.js';\nimport { generateReportFromAssets } from '../report/generate.js';\nimport type { Options, ModuleFormat, JsonReport } from '../types.js';\nimport type { Plugin, ModuleInfo, NormalizedOutputOptions, OutputBundle } from 'rollup';\n\nexport function SondaRollupPlugin( options: Partial<Options> = {} ): Plugin {\n\tlet inputs: JsonReport[ 'inputs' ] = {};\n\n\treturn {\n\t\tname: 'sonda',\n\n\t\twriteBundle(\n\t\t\t{ dir, file }: NormalizedOutputOptions,\n\t\t\tbundle: OutputBundle\n\t\t) {\n\t\t\tconst outputDir = resolve( process.cwd(), dir ?? dirname( file! ) );\n\t\t\tconst assets = Object.keys( bundle ).map( name => join( outputDir, name ) );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tassets,\n\t\t\t\tinputs,\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\n\t\tmoduleParsed( module: ModuleInfo ) {\n\t\t\tinputs[ normalizePath( module.id ) ] = {\n\t\t\t\tbytes: module.code ? Buffer.byteLength( module.code ) : 0,\n\t\t\t\tformat: getFormat( module.id, module.meta.commonjs?.isCommonJS ),\n\t\t\t\timports: module.importedIds.map( id => normalizePath( id ) ),\n\t\t\t\tbelongsTo: null,\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction getFormat( moduleId: string, isCommonJS: boolean | undefined ): ModuleFormat {\n\tif ( isCommonJS === true || cjsRegex.test( moduleId ) ) {\n\t\treturn 'cjs';\n\t}\n\n\tif ( isCommonJS === false || jsRegexp.test( moduleId ) ) {\n\t\treturn 'esm';\n\t}\n\n\treturn'unknown';\n}\n","import { join } from 'path';\nimport { normalizePath, jsRegexp } from '../utils';\nimport { generateReportFromAssets } from '../report/generate';\nimport type { Compiler, StatsModule } from 'webpack';\nimport type { Options, ModuleFormat, JsonReport } from '../types';\n\nexport class SondaWebpackPlugin {\n\toptions: Partial<Options>;\n\n\tconstructor ( options: Partial<Options> = {} ) {\n\t\tthis.options = options;\n\t}\n\n\tapply( compiler: Compiler ): void {\n\t\tcompiler.options.output.devtoolModuleFilenameTemplate = '[absolute-resource-path]';\n\n\t\tcompiler.hooks.afterEmit.tapPromise( 'SondaWebpackPlugin', compilation => {\n\t\t\tconst inputs: JsonReport[ 'inputs' ] = {};\n\t\t\tconst stats = compilation.getStats().toJson( {\n\t\t\t\tmodules: true,\n\t\t\t\tprovidedExports: true,\n\t\t\t} );\n\n\t\t\tconst outputPath = stats.outputPath || compiler.outputPath;\n\t\t\tconst modules: Array<StatsModule> = stats.modules\n\t\t\t\t?.flatMap( mod => mod.modules ? [ mod, ...mod.modules ] : mod )\n\t\t\t\t.filter( mod => mod.nameForCondition && !mod.codeGenerated )\n\t\t\t\t.filter( ( mod, index, self ) => self.findIndex( m => m.nameForCondition === mod.nameForCondition ) === index )\n\t\t\t\t|| [];\n\n\t\t\tmodules.forEach( module => {\n\t\t\t\tconst imports = modules.reduce( ( acc, { nameForCondition, issuerName, reasons } ) => {\n\t\t\t\t\tif ( issuerName === module.name || reasons?.some( reason => reason.resolvedModule === module.name ) ) {\n\t\t\t\t\t\tacc.push( normalizePath( nameForCondition! ) );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn acc;\n\t\t\t\t}, [] as Array<string> );\n\n\t\t\t\tinputs[ normalizePath( module.nameForCondition! ) ] = {\n\t\t\t\t\tbytes: module.size || 0,\n\t\t\t\t\tformat: getFormat( module ),\n\t\t\t\t\timports,\n\t\t\t\t\tbelongsTo: null\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn generateReportFromAssets(\n\t\t\t\tstats.assets?.map( asset => join( outputPath, asset.name ) ) || [],\n\t\t\t\tinputs,\n\t\t\t\tthis.options\n\t\t\t);\n\t\t} );\n\t}\n}\n\nfunction getFormat( module: StatsModule ): ModuleFormat {\n\tif ( !jsRegexp.test( module.nameForCondition! ) ) {\n\t\treturn 'unknown';\n\t}\n\n\t/**\n\t * Sometimes ESM modules have `moduleType` set as `javascript/auto`, so we\n\t * also need to check if the module has exports to determine if it's ESM.\n\t */\n\tif ( module.moduleType === 'javascript/esm' || !!module.providedExports?.length ) {\n\t\treturn 'esm';\n\t}\n\n\treturn 'cjs';\n}\n"],"names":["parseSourceMapInput","str","JSON","parse","replace","sourceMappingRegExp","loadCodeAndMap","codePath","existsSync","code","readFileSync","extractedComment","includes","Array","from","matchAll","at","length","maybeMap","loadMap","map","mapPath","sources","normalizeSourcesPaths","sourcesContent","loadMissingSourcesContent","sourceRoot","sourceMappingURL","startsWith","parseDataUrl","sourceMapFilename","URL","pathname","join","dirname","url","prefix","payload","split","encoding","Buffer","toString","decodeURIComponent","Error","mapDir","source","isAbsolute","resolve","index","cjsRegex","jsRegexp","normalizeOptions","options","defaultOptions","open","format","detailed","gzip","brotli","Object","assign","normalizePath","pathToNormalize","normalized","relativized","relative","process","cwd","replaceAll","win32","sep","posix","mapSourceMap","dirPath","inputs","alreadyRemapped","Set","remapped","remapping","file","ctx","has","add","codeMap","addSourcesToInputs","content","decodedMappings","path","parentPath","filter","forEach","normalizedPath","bytes","byteLength","imports","belongsTo","UNASSIGNED","getBytesPerSource","assetSizes","contributions","getContributions","codeLines","lineIndex","lineCode","mappings","currentColumn","i","mapping","startColumn","endColumn","set","get","slice","sourceIndex","codeSlice","undefined","sourceSizes","Map","contributionsSum","uncompressed","codeSegment","sizes","getSizes","adjustSizes","gzipSync","brotliCompressSync","asset","sums","gzipDelta","brotliDelta","Math","round","generateJsonReport","assets","outputs","endsWith","reduce","carry","data","processAsset","generateHtmlReport","json","__dirname","fileURLToPath","template","stringify","maybeCodeMap","hasCodeAndMap","mapped","decode","result","Boolean","generateReportFromAssets","userOptions","handler","saveHtml","saveJson","default","report","writeFileSync","SondaEsbuildPlugin","name","setup","build","initialOptions","metafile","onEnd","console","error","entries","acc","keys","SondaRollupPlugin","writeBundle","dir","bundle","outputDir","moduleParsed","module","id","getFormat","meta","commonjs","isCommonJS","importedIds","moduleId","test","SondaWebpackPlugin","apply","compiler","output","devtoolModuleFilenameTemplate","hooks","afterEmit","tapPromise","compilation","stats","getStats","toJson","modules","providedExports","outputPath","flatMap","mod","nameForCondition","codeGenerated","self","findIndex","m","issuerName","reasons","some","reason","resolvedModule","push","size","constructor","moduleType"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Options, JsonReport } from '../types.js';
|
|
2
|
-
export declare function generateReportFromAssets(assets: string[], inputs: JsonReport['inputs'],
|
|
2
|
+
export declare function generateReportFromAssets(assets: string[], inputs: JsonReport['inputs'], userOptions: Partial<Options>): Promise<void>;
|
|
3
3
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/report/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/report/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvD,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,UAAU,CAAE,QAAQ,CAAE,EAC9B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { Options } from './types';
|
|
2
|
+
export declare const esmRegex: RegExp;
|
|
3
|
+
export declare const cjsRegex: RegExp;
|
|
4
|
+
export declare const jsRegexp: RegExp;
|
|
2
5
|
export declare function normalizeOptions(options?: Partial<Options>): Options;
|
|
3
|
-
export declare function normalizePath(
|
|
6
|
+
export declare function normalizePath(pathToNormalize: string): string;
|
|
4
7
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,QAAQ,EAAE,MAAsB,CAAC;AAC9C,eAAO,MAAM,QAAQ,EAAE,MAAsB,CAAC;AAC9C,eAAO,MAAM,QAAQ,EAAE,MAA4B,CAAC;AAEpD,wBAAgB,gBAAgB,CAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GASJ,OAAO,CAC9D;AAED,wBAAgB,aAAa,CAAE,eAAe,EAAE,MAAM,GAAI,MAAM,CAS/D"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sonda",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Universal visualizer and analyzer for JavaScript and CSS bundles. Works with Vite, Rollup, webpack, and esbuild",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Universal visualizer and analyzer for JavaScript and CSS bundles. Works with Vite, Rollup, webpack, Rspack, and esbuild",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bundle analyzer",
|
|
7
7
|
"bundle visualizer",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"vite",
|
|
12
12
|
"rollup",
|
|
13
13
|
"webpack",
|
|
14
|
+
"rspack",
|
|
14
15
|
"esbuild"
|
|
15
16
|
],
|
|
16
17
|
"license": "MIT",
|