sonda 0.4.0 → 0.5.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 +13 -0
- package/README.md +19 -12
- package/dist/index.cjs +27 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.html +9 -2
- package/dist/index.js +28 -9
- package/dist/index.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/types.d.ts +32 -25
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 744143d: Add `sources` option for visualizing parts of the code included in the final bundle.
|
|
8
|
+
- 3427bb0: Show the estimated download time using "Slow 3G" for assets
|
|
9
|
+
|
|
10
|
+
## 0.4.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 05de327: Sort `inputs` and `outputs.inputs` in JSON report for easier diffing
|
|
15
|
+
|
|
3
16
|
## 0.4.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -155,7 +155,7 @@ SondaRollupPlugin( {
|
|
|
155
155
|
* **Type:** `string`
|
|
156
156
|
* **Default:** `'html'`
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
Determines the output format of the report. The following formats are supported:
|
|
159
159
|
|
|
160
160
|
* `'html'` - HTML file with treemap
|
|
161
161
|
* `'json'` - JSON file
|
|
@@ -165,39 +165,46 @@ The format of the output. The following formats are supported:
|
|
|
165
165
|
* **Type:** `boolean`
|
|
166
166
|
* **Default:** `true`
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
Determines whether to open the report in the default program for given file extension (`.html` or `.json` depending on the `format` option) after the build.
|
|
169
169
|
|
|
170
170
|
### `detailed`
|
|
171
171
|
|
|
172
172
|
* **Type:** `boolean`
|
|
173
173
|
* **Default:** `false`
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
Determines whether to read the source maps of imported modules.
|
|
176
176
|
|
|
177
|
-
By default, external dependencies that are bundled into a single file
|
|
177
|
+
By default, external dependencies that are bundled into a single file appear as a single asset in the report. When this option is enabled, the report will instead include the source files of the imported modules, if they have source maps.
|
|
178
178
|
|
|
179
|
-
Enabling this
|
|
179
|
+
Enabling this option will increase the time needed to generate the report and reduce the accuracy of estimated GZIP and Brotli sizes for individual files.
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
### `sources`
|
|
182
|
+
|
|
183
|
+
* **Type:** `boolean`
|
|
184
|
+
* **Default:** `false`
|
|
185
|
+
|
|
186
|
+
Determines whether to include the source maps of the assets in the report to visualize which parts of the code contribute to the final bundle size.
|
|
187
|
+
|
|
188
|
+
⚠️ Enabling this option will significantly increase the report size and include it in the **source code** of the assets. If you work with proprietary code, be cautious when sharing the report. ⚠️
|
|
182
189
|
|
|
183
190
|
### `gzip`
|
|
184
191
|
|
|
185
192
|
* **Type:** `boolean`
|
|
186
193
|
* **Default:** `false`
|
|
187
194
|
|
|
188
|
-
|
|
195
|
+
Determines whether to calculate the sizes of assets after compression with GZIP.
|
|
189
196
|
|
|
190
|
-
The report will
|
|
197
|
+
The report will include estimated compressed sizes for each file within an asset. However, unlike the compressed size of the entire asset, these individual file estimates are approximate and should be used as a general reference.
|
|
191
198
|
|
|
192
|
-
Enabling this option will increase the time
|
|
199
|
+
Enabling this option will increase the time needed to generate the report.
|
|
193
200
|
|
|
194
201
|
### `brotli`
|
|
195
202
|
|
|
196
203
|
* **Type:** `boolean`
|
|
197
204
|
* **Default:** `false`
|
|
198
205
|
|
|
199
|
-
|
|
206
|
+
Determines whether to calculate the sizes of assets after compression with Brotli.
|
|
200
207
|
|
|
201
|
-
The report will
|
|
208
|
+
The report will include estimated compressed sizes for each file within an asset. However, unlike the compressed size of the entire asset, these individual file estimates are approximate and should be used as a general reference.
|
|
202
209
|
|
|
203
|
-
Enabling this option will increase the time
|
|
210
|
+
Enabling this option will increase the time needed to generate the report.
|
package/dist/index.cjs
CHANGED
|
@@ -111,6 +111,7 @@ function normalizeOptions(options) {
|
|
|
111
111
|
open: true,
|
|
112
112
|
format: 'html',
|
|
113
113
|
detailed: false,
|
|
114
|
+
sources: false,
|
|
114
115
|
gzip: false,
|
|
115
116
|
brotli: false
|
|
116
117
|
};
|
|
@@ -257,7 +258,11 @@ function getContributions(sources) {
|
|
|
257
258
|
}
|
|
258
259
|
|
|
259
260
|
function generateJsonReport(assets, inputs, options) {
|
|
260
|
-
const
|
|
261
|
+
const acceptedExtensions = [
|
|
262
|
+
'.js',
|
|
263
|
+
'.css'
|
|
264
|
+
];
|
|
265
|
+
const outputs = assets.filter((asset)=>acceptedExtensions.includes(path.extname(asset))).reduce((carry, asset)=>{
|
|
261
266
|
const data = processAsset(asset, inputs, options);
|
|
262
267
|
if (data) {
|
|
263
268
|
carry[normalizePath(asset)] = data;
|
|
@@ -265,15 +270,15 @@ function generateJsonReport(assets, inputs, options) {
|
|
|
265
270
|
return carry;
|
|
266
271
|
}, {});
|
|
267
272
|
return {
|
|
268
|
-
inputs,
|
|
269
|
-
outputs
|
|
273
|
+
inputs: sortObjectKeys(inputs),
|
|
274
|
+
outputs: sortObjectKeys(outputs)
|
|
270
275
|
};
|
|
271
276
|
}
|
|
272
277
|
function generateHtmlReport(assets, inputs, options) {
|
|
273
278
|
const json = generateJsonReport(assets, inputs, options);
|
|
274
279
|
const __dirname = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
|
|
275
280
|
const template = fs.readFileSync(path.resolve(__dirname, './index.html'), 'utf-8');
|
|
276
|
-
return template.replace('__REPORT_DATA__', JSON.stringify(json));
|
|
281
|
+
return template.replace('__REPORT_DATA__', encodeURIComponent(JSON.stringify(json)));
|
|
277
282
|
}
|
|
278
283
|
function processAsset(asset, inputs, options) {
|
|
279
284
|
const maybeCodeMap = loadCodeAndMap(asset);
|
|
@@ -288,17 +293,31 @@ function processAsset(asset, inputs, options) {
|
|
|
288
293
|
mapped.sources = mapped.sources.map((source)=>normalizePath(source));
|
|
289
294
|
const assetSizes = getSizes(code, options);
|
|
290
295
|
const bytes = getBytesPerSource(code, mapped, assetSizes, options);
|
|
296
|
+
const outputInputs = Array.from(bytes).reduce((carry, [source, sizes])=>{
|
|
297
|
+
carry[normalizePath(source)] = sizes;
|
|
298
|
+
return carry;
|
|
299
|
+
}, {});
|
|
291
300
|
return {
|
|
292
301
|
...assetSizes,
|
|
293
|
-
inputs:
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
302
|
+
inputs: sortObjectKeys(outputInputs),
|
|
303
|
+
map: options.sources ? {
|
|
304
|
+
version: 3,
|
|
305
|
+
names: [],
|
|
306
|
+
mappings: mapped.mappings,
|
|
307
|
+
sources: mapped.sources,
|
|
308
|
+
sourcesContent: mapped.sourcesContent
|
|
309
|
+
} : undefined
|
|
297
310
|
};
|
|
298
311
|
}
|
|
299
312
|
function hasCodeAndMap(result) {
|
|
300
313
|
return Boolean(result && result.code && result.map);
|
|
301
314
|
}
|
|
315
|
+
function sortObjectKeys(object) {
|
|
316
|
+
return Object.keys(object).sort().reduce((carry, key)=>{
|
|
317
|
+
carry[key] = object[key];
|
|
318
|
+
return carry;
|
|
319
|
+
}, {});
|
|
320
|
+
}
|
|
302
321
|
|
|
303
322
|
async function generateReportFromAssets(assets, inputs, userOptions) {
|
|
304
323
|
const options = normalizeOptions(userOptions);
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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\tsources: 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, extname, 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 acceptedExtensions = [ '.js', '.css' ];\n\n const outputs = assets\n .filter( asset => acceptedExtensions.includes( extname( asset ) ) )\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: sortObjectKeys( inputs ),\n outputs: sortObjectKeys( 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__', encodeURIComponent( 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 const outputInputs = Array\n .from( bytes )\n .reduce( ( carry, [ source, sizes ] ) => {\n carry[ normalizePath( source ) ] = sizes;\n\n return carry;\n }, {} as Record<string, ReportOutputInput> );\n\n return {\n ...assetSizes,\n inputs: sortObjectKeys( outputInputs ),\n map: options.sources ? {\n version: 3,\n names: [],\n mappings: mapped.mappings,\n sources: mapped.sources,\n sourcesContent: mapped.sourcesContent,\n } : undefined\n };\n}\n\nfunction hasCodeAndMap( result: MaybeCodeMap ): result is Required<CodeMap> {\n return Boolean( result && result.code && result.map );\n}\n\nfunction sortObjectKeys<T extends unknown>( object: Record<string, T> ): Record<string, T> {\n return Object\n .keys( object )\n .sort()\n .reduce( ( carry, key ) => {\n carry[ key ] = object[ key ];\n\n return carry;\n }, {} as Record<string, T> );\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","acceptedExtensions","outputs","extname","reduce","carry","data","processAsset","sortObjectKeys","generateHtmlReport","json","__dirname","fileURLToPath","template","encodeURIComponent","stringify","maybeCodeMap","hasCodeAndMap","mapped","decode","outputInputs","version","names","result","Boolean","object","keys","sort","key","generateReportFromAssets","userOptions","handler","saveHtml","saveJson","default","report","writeFileSync","SondaEsbuildPlugin","name","setup","build","initialOptions","metafile","onEnd","console","error","entries","acc","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,2 +1,9 @@
|
|
|
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>
|
|
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>window.SONDA_JSON_REPORT = JSON.parse( decodeURIComponent( `__REPORT_DATA__` ) )</script><script type="module" crossorigin>var vn=Object.defineProperty;var ir=t=>{throw TypeError(t)};var hn=(t,e,r)=>e in t?vn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var ke=(t,e,r)=>hn(t,typeof e!="symbol"?e+"":e,r),Ee=(t,e,r)=>e.has(t)||ir("Cannot "+r);var ut=(t,e,r)=>(Ee(t,e,"read from private field"),r?r.call(t):e.get(t)),Ht=(t,e,r)=>e.has(t)?ir("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Se=(t,e,r,n)=>(Ee(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),or=(t,e,r)=>(Ee(t,e,"access private method"),r);var Ue=Array.isArray,Ve=Array.from,pn=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,wr=Object.getOwnPropertyDescriptors,_n=Object.prototype,gn=Array.prototype,se=Object.getPrototypeOf;function wn(t){return typeof t=="function"}const At=()=>{};function bn(t){return t()}function Ae(t){for(var e=0;e<t.length;e++)t[e]()}const ct=2,br=4,Kt=8,pe=16,at=32,_e=64,Et=128,ae=256,J=512,mt=1024,Jt=2048,nt=4096,Yt=8192,mr=16384,Zt=32768,mn=1<<18,xr=1<<19,wt=Symbol("$state"),xn=Symbol("");function yr(t){return t===this.v}function kr(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function yn(t){return!kr(t,this.v)}function kn(t){throw new Error("effect_in_teardown")}function En(){throw new Error("effect_in_unowned_derived")}function Sn(t){throw new Error("effect_orphan")}function Tn(){throw new Error("effect_update_depth_exceeded")}function On(){throw new Error("state_descriptors_fixed")}function Mn(){throw new Error("state_prototype_fixed")}function An(){throw new Error("state_unsafe_local_read")}function Nn(){throw new Error("state_unsafe_mutation")}function X(t){return{f:0,v:t,reactions:null,equals:yr,version:0}}function U(t){return Dn(X(t))}function Cn(t,e=!1){var n;const r=X(t);return e||(r.equals=yn),L!==null&&L.l!==null&&((n=L.l).s??(n.s=[])).push(r),r}function Dn(t){return C!==null&&C.f&ct&&(it===null?Kn([t]):it.push(t)),t}function R(t,e){return C!==null&&Xe()&&C.f&(ct|pe)&&(it===null||!it.includes(t))&&Nn(),Ne(t,e)}function Ne(t,e){return t.equals(e)||(t.v=e,t.version=Hr(),Er(t,mt),Xe()&&M!==null&&M.f&J&&!(M.f&at)&&(H!==null&&H.includes(t)?(lt(M,mt),be(M)):bt===null?Jn([t]):bt.push(t))),e}function Er(t,e){var r=t.reactions;if(r!==null)for(var n=Xe(),i=r.length,o=0;o<i;o++){var s=r[o],a=s.f;a&mt||!n&&s===M||(lt(s,e),a&(J|Et)&&(a&ct?Er(s,Jt):be(s)))}}const Ge=1,Ke=2,Sr=4,zn=8,In=16,Pn=4,Rn=1,Bn=2,G=Symbol();let Tr=!1;function tt(t,e=null,r){if(typeof t!="object"||t===null||wt in t)return t;const n=se(t);if(n!==_n&&n!==gn)return t;var i=new Map,o=Ue(t),s=X(0);o&&i.set("length",X(t.length));var a;return new Proxy(t,{defineProperty(l,u,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&On();var v=i.get(u);return v===void 0?(v=X(f.value),i.set(u,v)):R(v,tt(f.value,a)),!0},deleteProperty(l,u){var f=i.get(u);if(f===void 0)u in l&&i.set(u,X(G));else{if(o&&typeof u=="string"){var v=i.get("length"),c=Number(u);Number.isInteger(c)&&c<v.v&&R(v,c)}R(f,G),sr(s)}return!0},get(l,u,f){var d;if(u===wt)return t;var v=i.get(u),c=u in l;if(v===void 0&&(!c||(d=Wt(l,u))!=null&&d.writable)&&(v=X(tt(c?l[u]:G,a)),i.set(u,v)),v!==void 0){var h=p(v);return h===G?void 0:h}return Reflect.get(l,u,f)},getOwnPropertyDescriptor(l,u){var f=Reflect.getOwnPropertyDescriptor(l,u);if(f&&"value"in f){var v=i.get(u);v&&(f.value=p(v))}else if(f===void 0){var c=i.get(u),h=c==null?void 0:c.v;if(c!==void 0&&h!==G)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return f},has(l,u){var h;if(u===wt)return!0;var f=i.get(u),v=f!==void 0&&f.v!==G||Reflect.has(l,u);if(f!==void 0||M!==null&&(!v||(h=Wt(l,u))!=null&&h.writable)){f===void 0&&(f=X(v?tt(l[u],a):G),i.set(u,f));var c=p(f);if(c===G)return!1}return v},set(l,u,f,v){var k;var c=i.get(u),h=u in l;if(o&&u==="length")for(var d=f;d<c.v;d+=1){var w=i.get(d+"");w!==void 0?R(w,G):d in l&&(w=X(G),i.set(d+"",w))}c===void 0?(!h||(k=Wt(l,u))!=null&&k.writable)&&(c=X(void 0),R(c,tt(f,a)),i.set(u,c)):(h=c.v!==G,R(c,tt(f,a)));var g=Reflect.getOwnPropertyDescriptor(l,u);if(g!=null&&g.set&&g.set.call(v,f),!h){if(o&&typeof u=="string"){var S=i.get("length"),y=Number(u);Number.isInteger(y)&&y>=S.v&&R(S,y+1)}sr(s)}return!0},ownKeys(l){p(s);var u=Reflect.ownKeys(l).filter(c=>{var h=i.get(c);return h===void 0||h.v!==G});for(var[f,v]of i)v.v!==G&&!(f in l)&&u.push(f);return u},setPrototypeOf(){Mn()}})}function sr(t,e=1){R(t,t.v+e)}function ar(t){return t!==null&&typeof t=="object"&&wt in t?t[wt]:t}function Ln(t,e){return Object.is(ar(t),ar(e))}var lr,ft,Or,Mr;function jn(){if(lr===void 0){lr=window,ft=document;var t=Element.prototype,e=Node.prototype;Or=Wt(e,"firstChild").get,Mr=Wt(e,"nextSibling").get,t.__click=void 0,t.__className="",t.__attributes=null,t.__styles=null,t.__e=void 0,Text.prototype.__t=void 0}}function Je(t=""){return document.createTextNode(t)}function It(t){return Or.call(t)}function ge(t){return Mr.call(t)}function b(t,e){return It(t)}function B(t,e){{var r=It(t);return r instanceof Comment&&r.data===""?ge(r):r}}function m(t,e=1,r=!1){let n=t;for(;e--;)n=ge(n);return n}function Fn(t){t.textContent=""}function T(t){var e=ct|mt;M===null?e|=Et:M.f|=xr;const r={children:null,ctx:L,deps:null,equals:yr,f:e,fn:t,reactions:null,v:null,version:0,parent:M};if(C!==null&&C.f&ct){var n=C;(n.children??(n.children=[])).push(r)}return r}function Ar(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&ct?Ye(n):xt(n)}}}function Nr(t){var e,r=M;st(t.parent);try{Ar(t),e=qr(t)}finally{st(r)}return e}function Cr(t){var e=Nr(t),r=(Nt||t.f&Et)&&t.deps!==null?Jt:J;lt(t,r),t.equals(e)||(t.v=e,t.version=Hr())}function Ye(t){Ar(t),Vt(t,0),lt(t,Yt),t.v=t.children=t.deps=t.ctx=t.reactions=null}function Dr(t){M===null&&C===null&&Sn(),C!==null&&C.f&Et&&En(),Qe&&kn()}function Hn(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function Rt(t,e,r,n=!0){var i=(t&_e)!==0,o=M,s={ctx:L,deps:null,deriveds:null,nodes_start:null,nodes_end:null,f:t|mt,first:null,fn:e,last:null,next:null,parent:i?null:o,prev:null,teardown:null,transitions:null,version:0};if(r){var a=Ct;try{ur(!0),we(s),s.f|=mr}catch(f){throw xt(s),f}finally{ur(a)}}else e!==null&&be(s);var l=r&&s.deps===null&&s.first===null&&s.nodes_start===null&&s.teardown===null&&(s.f&xr)===0;if(!l&&!i&&n&&(o!==null&&Hn(s,o),C!==null&&C.f&ct)){var u=C;(u.children??(u.children=[])).push(s)}return s}function qn(t){const e=Rt(Kt,null,!1);return lt(e,J),e.teardown=t,e}function Ce(t){Dr();var e=M!==null&&(M.f&at)!==0&&L!==null&&!L.m;if(e){var r=L;(r.e??(r.e=[])).push({fn:t,effect:M,reaction:C})}else{var n=Bt(t);return n}}function Wn(t){return Dr(),zr(t)}function Un(t){const e=Rt(_e,t,!0);return()=>{xt(e)}}function Bt(t){return Rt(br,t,!1)}function zr(t){return Rt(Kt,t,!0)}function N(t){return Qt(t)}function Qt(t,e=0){return Rt(Kt|pe|e,t,!0)}function kt(t,e=!0){return Rt(Kt|at,t,!0,e)}function Ir(t){var e=t.teardown;if(e!==null){const r=Qe,n=C;fr(!0),ot(null);try{e.call(null)}finally{fr(r),ot(n)}}}function Pr(t){var e=t.deriveds;if(e!==null){t.deriveds=null;for(var r=0;r<e.length;r+=1)Ye(e[r])}}function Rr(t,e=!1){var r=t.first;for(t.first=t.last=null;r!==null;){var n=r.next;xt(r,e),r=n}}function Vn(t){for(var e=t.first;e!==null;){var r=e.next;e.f&at||xt(e),e=r}}function xt(t,e=!0){var r=!1;if((e||t.f&mn)&&t.nodes_start!==null){for(var n=t.nodes_start,i=t.nodes_end;n!==null;){var o=n===i?null:ge(n);n.remove(),n=o}r=!0}Rr(t,e&&!r),Pr(t),Vt(t,0),lt(t,Yt);var s=t.transitions;if(s!==null)for(const l of s)l.stop();Ir(t);var a=t.parent;a!==null&&a.first!==null&&Br(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.parent=t.fn=t.nodes_start=t.nodes_end=null}function Br(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 le(t,e){var r=[];Ze(t,r,!0),Lr(r,()=>{xt(t),e&&e()})}function Lr(t,e){var r=t.length;if(r>0){var n=()=>--r||e();for(var i of t)i.out(n)}else e()}function Ze(t,e,r){if(!(t.f&nt)){if(t.f^=nt,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&Zt)!==0||(n.f&at)!==0;Ze(n,e,o?r:!1),n=i}}}function ue(t){jr(t,!0)}function jr(t,e){if(t.f&nt){Xt(t)&&we(t),t.f^=nt;for(var r=t.first;r!==null;){var n=r.next,i=(r.f&Zt)!==0||(r.f&at)!==0;jr(r,i?e:!1),r=n}if(t.transitions!==null)for(const o of t.transitions)(o.is_global||e)&&o.in()}}let De=!1,ze=[];function Gn(){De=!1;const t=ze.slice();ze=[],Ae(t)}function Lt(t){De||(De=!0,queueMicrotask(Gn)),ze.push(t)}let fe=!1,Ct=!1,Qe=!1;function ur(t){Ct=t}function fr(t){Qe=t}let Ie=[],Ut=0;let C=null;function ot(t){C=t}let M=null;function st(t){M=t}let it=null;function Kn(t){it=t}let H=null,Q=0,bt=null;function Jn(t){bt=t}let Fr=0,Nt=!1,L=null;function Hr(){return++Fr}function Xe(){return L!==null&&L.l===null}function Xt(t){var s,a;var e=t.f;if(e&mt)return!0;if(e&Jt){var r=t.deps,n=(e&Et)!==0;if(r!==null){var i;if(e&ae){for(i=0;i<r.length;i++)((s=r[i]).reactions??(s.reactions=[])).push(t);t.f^=ae}for(i=0;i<r.length;i++){var o=r[i];if(Xt(o)&&Cr(o),n&&M!==null&&!Nt&&!((a=o==null?void 0:o.reactions)!=null&&a.includes(t))&&(o.reactions??(o.reactions=[])).push(t),o.version>t.version)return!0}}n||lt(t,J)}return!1}function Yn(t,e,r){throw t}function qr(t){var c;var e=H,r=Q,n=bt,i=C,o=Nt,s=it,a=L,l=t.f;H=null,Q=0,bt=null,C=l&(at|_e)?null:t,Nt=!Ct&&(l&Et)!==0,it=null,L=t.ctx;try{var u=(0,t.fn)(),f=t.deps;if(H!==null){var v;if(Vt(t,Q),f!==null&&Q>0)for(f.length=Q+H.length,v=0;v<H.length;v++)f[Q+v]=H[v];else t.deps=f=H;if(!Nt)for(v=Q;v<f.length;v++)((c=f[v]).reactions??(c.reactions=[])).push(t)}else f!==null&&Q<f.length&&(Vt(t,Q),f.length=Q);return u}finally{H=e,Q=r,bt=n,C=i,Nt=o,it=s,L=a}}function Zn(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&ct&&(H===null||!H.includes(e))&&(lt(e,Jt),e.f&(Et|ae)||(e.f^=ae),Vt(e,0))}function Vt(t,e){var r=t.deps;if(r!==null)for(var n=e;n<r.length;n++)Zn(t,r[n])}function we(t){var e=t.f;if(!(e&Yt)){lt(t,J);var r=M;M=t;try{e&pe?Vn(t):Rr(t),Pr(t),Ir(t);var n=qr(t);t.teardown=typeof n=="function"?n:null,t.version=Fr}catch(i){Yn(i)}finally{M=r}}}function Qn(){Ut>1e3&&(Ut=0,Tn()),Ut++}function Xn(t){var e=t.length;if(e!==0){Qn();var r=Ct;Ct=!0;try{for(var n=0;n<e;n++){var i=t[n];i.f&J||(i.f^=J);var o=[];Wr(i,o),$n(o)}}finally{Ct=r}}}function $n(t){var e=t.length;if(e!==0)for(var r=0;r<e;r++){var n=t[r];!(n.f&(Yt|nt))&&Xt(n)&&(we(n),n.deps===null&&n.first===null&&n.nodes_start===null&&(n.teardown===null?Br(n):n.fn=null))}}function ti(){if(fe=!1,Ut>1001)return;const t=Ie;Ie=[],Xn(t),fe||(Ut=0)}function be(t){fe||(fe=!0,queueMicrotask(ti));for(var e=t;e.parent!==null;){e=e.parent;var r=e.f;if(r&(_e|at)){if(!(r&J))return;e.f^=J}}Ie.push(e)}function Wr(t,e){var r=t.first,n=[];t:for(;r!==null;){var i=r.f,o=(i&at)!==0,s=o&&(i&J)!==0;if(!s&&!(i&nt))if(i&Kt){o?r.f^=J:Xt(r)&&we(r);var a=r.first;if(a!==null){r=a;continue}}else i&br&&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 f=0;f<n.length;f++)a=n[f],e.push(a),Wr(a,e)}function p(t){var a;var e=t.f,r=(e&ct)!==0;if(r&&e&Yt){var n=Nr(t);return Ye(t),n}if(C!==null){it!==null&&it.includes(t)&&An();var i=C.deps;H===null&&i!==null&&i[Q]===t?Q++:H===null?H=[t]:H.push(t),bt!==null&&M!==null&&M.f&J&&!(M.f&at)&&bt.includes(t)&&(lt(M,mt),be(M))}else if(r&&t.deps===null){var o=t,s=o.parent;s!==null&&!((a=s.deriveds)!=null&&a.includes(o))&&(s.deriveds??(s.deriveds=[])).push(o)}return r&&(o=t,Xt(o)&&Cr(o)),t.v}function $t(t){const e=C;try{return C=null,t()}finally{C=e}}const ei=~(mt|Jt|J);function lt(t,e){t.f=t.f&ei|e}function q(t,e=!1,r){L={p:L,c:null,e:null,m:!1,s:t,x:null,l:null},e||(L.l={s:null,u:null,r1:[],r2:X(!1)})}function W(t){const e=L;if(e!==null){const s=e.e;if(s!==null){var r=M,n=C;e.e=null;try{for(var i=0;i<s.length;i++){var o=s[i];st(o.effect),ot(o.reaction),Bt(o.fn)}}finally{st(r),ot(n)}}L=e.p,e.m=!0}return{}}function ri(t){if(!(typeof t!="object"||!t||t instanceof EventTarget)){if(wt in t)Pe(t);else if(!Array.isArray(t))for(let e in t){const r=t[e];typeof r=="object"&&r&&wt in r&&Pe(r)}}}function Pe(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{Pe(t[n],e)}catch{}const r=se(t);if(r!==Object.prototype&&r!==Array.prototype&&r!==Map.prototype&&r!==Set.prototype&&r!==Date.prototype){const n=wr(r);for(let i in n){const o=n[i].get;if(o)try{o.call(t)}catch{}}}}}const Ur=new Set,Re=new Set;function Be(t,e,r,n){function i(o){if(n.capture||qt.call(e,o),!o.cancelBubble){var s=C,a=M;ot(null),st(null);try{return r.call(this,o)}finally{ot(s),st(a)}}}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?Lt(()=>{e.addEventListener(t,i,n)}):e.addEventListener(t,i,n),i}function Dt(t,e,r,n,i){var o={capture:n,passive:i},s=Be(t,e,r,o);(e===document.body||e===window||e===document)&&qn(()=>{e.removeEventListener(t,s,o)})}function St(t){for(var e=0;e<t.length;e++)Ur.add(t[e]);for(var r of Re)r(t)}function qt(t){var y;var e=this,r=e.ownerDocument,n=t.type,i=((y=t.composedPath)==null?void 0:y.call(t))||[],o=i[0]||t.target,s=0,a=t.__root;if(a){var l=i.indexOf(a);if(l!==-1&&(e===document||e===window)){t.__root=e;return}var u=i.indexOf(e);if(u===-1)return;l<=u&&(s=l)}if(o=i[s]||t.target,o!==e){pn(t,"currentTarget",{configurable:!0,get(){return o||r}});var f=C,v=M;ot(null),st(null);try{for(var c,h=[];o!==null;){var d=o.assignedSlot||o.parentNode||o.host||null;try{var w=o["__"+n];if(w!==void 0&&!o.disabled)if(Ue(w)){var[g,...S]=w;g.apply(o,[t,...S])}else w.call(o,t)}catch(k){c?h.push(k):c=k}if(t.cancelBubble||d===e||d===null)break;o=d}if(c){for(let k of h)queueMicrotask(()=>{throw k});throw c}}finally{t.__root=e,delete t.currentTarget,ot(f),st(v)}}}function Vr(t){var e=document.createElement("template");return e.innerHTML=t,e.content}function ce(t,e){var r=M;r.nodes_start===null&&(r.nodes_start=t,r.nodes_end=e)}function A(t,e){var r=(e&Rn)!==0,n=(e&Bn)!==0,i,o=!t.startsWith("<!>");return()=>{i===void 0&&(i=Vr(o?t:"<!>"+t),r||(i=It(i)));var s=n?document.importNode(i,!0):i.cloneNode(!0);if(r){var a=It(s),l=s.lastChild;ce(a,l)}else ce(s,s);return s}}function te(t,e,r="svg"){var n=!t.startsWith("<!>"),i=`<${r}>${n?t:"<!>"+t}</${r}>`,o;return()=>{if(!o){var s=Vr(i),a=It(s);o=It(a)}var l=o.cloneNode(!0);return ce(l,l),l}}function jt(){var t=document.createDocumentFragment(),e=document.createComment(""),r=Je();return t.append(e,r),ce(e,r),t}function E(t,e){t!==null&&t.before(e)}function ni(t){return t.endsWith("capture")&&t!=="gotpointercapture"&&t!=="lostpointercapture"}const ii=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function oi(t){return ii.includes(t)}const si={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly"};function ai(t){return t=t.toLowerCase(),si[t]??t}const li=["touchstart","touchmove"];function ui(t){return li.includes(t)}let Le=!0;function D(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 fi(t,e){return ci(t,e)}const Mt=new Map;function ci(t,{target:e,anchor:r,props:n={},events:i,context:o,intro:s=!0}){jn();var a=new Set,l=v=>{for(var c=0;c<v.length;c++){var h=v[c];if(!a.has(h)){a.add(h);var d=ui(h);e.addEventListener(h,qt,{passive:d});var w=Mt.get(h);w===void 0?(document.addEventListener(h,qt,{passive:d}),Mt.set(h,1)):Mt.set(h,w+1)}}};l(Ve(Ur)),Re.add(l);var u=void 0,f=Un(()=>{var v=r??e.appendChild(Je());return kt(()=>{if(o){q({});var c=L;c.c=o}i&&(n.$$events=i),Le=s,u=t(v,n)||{},Le=!0,o&&W()}),()=>{var d;for(var c of a){e.removeEventListener(c,qt);var h=Mt.get(c);--h===0?(document.removeEventListener(c,qt),Mt.delete(c)):Mt.set(c,h)}Re.delete(l),cr.delete(u),v!==r&&((d=v.parentNode)==null||d.removeChild(v))}});return cr.set(u,f),u}let cr=new WeakMap;function P(t,e,r,n=null,i=!1){var o=t,s=null,a=null,l=null,u=i?Zt:0;Qt(()=>{l!==(l=!!e())&&(l?(s?ue(s):s=kt(()=>r(o)),a&&le(a,()=>{a=null})):(a?ue(a):n&&(a=kt(()=>n(o))),s&&le(s,()=>{s=null})))},u)}function di(t,e,r){var n=t,i=G,o;Qt(()=>{kr(i,i=e())&&(o&&le(o),o=kt(()=>r(n)))})}let Te=null;function Gr(t,e){return e}function vi(t,e,r,n){for(var i=[],o=e.length,s=0;s<o;s++)Ze(e[s].e,i,!0);var a=o>0&&i.length===0&&r!==null;if(a){var l=r.parentNode;Fn(l),l.append(r),n.clear(),ht(t,e[0].prev,e[o-1].next)}Lr(i,()=>{for(var u=0;u<o;u++){var f=e[u];a||(n.delete(f.k),ht(t,f.prev,f.next)),xt(f.e,!a)}})}function me(t,e,r,n,i,o=null){var s=t,a={flags:e,items:new Map,first:null},l=(e&Sr)!==0;if(l){var u=t;s=u.appendChild(Je())}var f=null,v=!1;Qt(()=>{var c=r(),h=Ue(c)?c:c==null?[]:Ve(c),d=h.length;if(!(v&&d===0)){v=d===0;{var w=C;hi(h,a,s,i,e,(w.f&nt)!==0,n)}o!==null&&(d===0?f?ue(f):f=kt(()=>o(s)):f!==null&&le(f,()=>{f=null})),r()}})}function hi(t,e,r,n,i,o,s){var re,ne,rt,V;var a=(i&zn)!==0,l=(i&(Ge|Ke))!==0,u=t.length,f=e.items,v=e.first,c=v,h,d=null,w,g=[],S=[],y,k,_,x;if(a)for(x=0;x<u;x+=1)y=t[x],k=s(y,x),_=f.get(k),_!==void 0&&((re=_.a)==null||re.measure(),(w??(w=new Set)).add(_));for(x=0;x<u;x+=1){if(y=t[x],k=s(y,x),_=f.get(k),_===void 0){var O=c?c.e.nodes_start:r;d=_i(O,e,d,d===null?e.first:d.next,y,k,x,n,i),f.set(k,d),g=[],S=[],c=d.next;continue}if(l&&pi(_,y,x,i),_.e.f&nt&&(ue(_.e),a&&((ne=_.a)==null||ne.unfix(),(w??(w=new Set)).delete(_))),_!==c){if(h!==void 0&&h.has(_)){if(g.length<S.length){var z=S[0],I;d=z.prev;var Y=g[0],$=g[g.length-1];for(I=0;I<g.length;I+=1)dr(g[I],z,r);for(I=0;I<S.length;I+=1)h.delete(S[I]);ht(e,Y.prev,$.next),ht(e,d,Y),ht(e,$,z),c=z,d=$,x-=1,g=[],S=[]}else h.delete(_),dr(_,c,r),ht(e,_.prev,_.next),ht(e,_,d===null?e.first:d.next),ht(e,d,_),d=_;continue}for(g=[],S=[];c!==null&&c.k!==k;)(o||!(c.e.f&nt))&&(h??(h=new Set)).add(c),S.push(c),c=c.next;if(c===null)continue;_=c}g.push(_),d=_,c=_.next}if(c!==null||h!==void 0){for(var dt=h===void 0?[]:Ve(h);c!==null;)(o||!(c.e.f&nt))&&dt.push(c),c=c.next;var Tt=dt.length;if(Tt>0){var ye=i&Sr&&u===0?r:null;if(a){for(x=0;x<Tt;x+=1)(rt=dt[x].a)==null||rt.measure();for(x=0;x<Tt;x+=1)(V=dt[x].a)==null||V.fix()}vi(e,dt,ye,f)}}a&&Lt(()=>{var Z;if(w!==void 0)for(_ of w)(Z=_.a)==null||Z.apply()}),M.first=e.first&&e.first.e,M.last=d&&d.e}function pi(t,e,r,n){n&Ge&&Ne(t.v,e),n&Ke?Ne(t.i,r):t.i=r}function _i(t,e,r,n,i,o,s,a,l){var u=Te;try{var f=(l&Ge)!==0,v=(l&In)===0,c=f?v?Cn(i):X(i):i,h=l&Ke?X(s):s,d={i:h,v:c,k:o,a:null,e:null,prev:r,next:n};return Te=d,d.e=kt(()=>a(t,c,h),Tr),d.e.prev=r&&r.e,d.e.next=n&&n.e,r===null?e.first=d:(r.next=d,r.e.next=d.e),n!==null&&(n.prev=d,n.e.prev=d.e),d}finally{Te=u}}function dr(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=ge(o);i.before(o),o=s}}function ht(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 gi(t,e,...r){var n=t,i=At,o;Qt(()=>{i!==(i=e())&&(o&&(xt(o),o=null),o=kt(()=>i(n,...r)))},Zt)}function wi(t,e){if(e){const r=document.body;t.autofocus=!0,Lt(()=>{document.activeElement===r&&t.focus()})}}function j(t,e,r,n){var i=t.__attributes??(t.__attributes={});i[e]!==(i[e]=r)&&(e==="style"&&"__styles"in t&&(t.__styles={}),e==="loading"&&(t[xn]=r),r==null?t.removeAttribute(e):typeof r!="string"&&Kr(t).includes(e)?t[e]=r:t.setAttribute(e,r))}function $e(t,e,r,n,i=!1,o=!1,s=!1){var a=e||{},l=t.tagName==="OPTION";for(var u in e)u in r||(r[u]=null);var f=Kr(t),v=t.__attributes??(t.__attributes={}),c=[];for(const y in r){let k=r[y];if(l&&y==="value"&&k==null){t.value=t.__value="",a[y]=k;continue}var h=a[y];if(k!==h){a[y]=k;var d=y[0]+y[1];if(d!=="$$"){if(d==="on"){const _={},x="$$"+y;let O=y.slice(2);var w=oi(O);if(ni(O)&&(O=O.slice(0,-7),_.capture=!0),!w&&h){if(k!=null)continue;t.removeEventListener(O,a[x],_),a[x]=null}if(k!=null)if(w)t[`__${O}`]=k,St([O]);else{let z=function(I){a[y].call(this,I)};var S=z;e?a[x]=Be(O,t,z,_):c.push([y,k,()=>a[x]=Be(O,t,z,_)])}}else if(y==="style"&&k!=null)t.style.cssText=k+"";else if(y==="autofocus")wi(t,!!k);else if(y==="__value"||y==="value"&&k!=null)t.value=t[y]=t.__value=k;else{var g=y;i||(g=ai(g)),k==null&&!o?(v[y]=null,t.removeAttribute(y)):f.includes(g)&&(o||typeof k!="string")?t[g]=k:typeof k!="function"&&j(t,g,k)}y==="style"&&"__styles"in t&&(t.__styles={})}}}return e||Lt(()=>{if(t.isConnected)for(const[y,k,_]of c)a[y]===k&&_()}),a}var vr=new Map;function Kr(t){var e=vr.get(t.nodeName);if(e)return e;vr.set(t.nodeName,e=[]);for(var r,n=se(t),i=Element.prototype;i!==n;){r=wr(n);for(var o in r)r[o].set&&e.push(o);n=se(n)}return e}function bi(t,e){var r=t.__className,n=mi(e);(r!==n||Tr)&&(n===""?t.removeAttribute("class"):t.setAttribute("class",n),t.__className=n)}function mi(t){return t??""}function de(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 je(t,e,r,n){var i=t.__styles??(t.__styles={});i[e]!==r&&(i[e]=r,r==null?t.style.removeProperty(e):t.style.setProperty(e,r,""))}const xi=()=>performance.now(),_t={tick:t=>requestAnimationFrame(t),now:()=>xi(),tasks:new Set};function Jr(t){_t.tasks.forEach(e=>{e.c(t)||(_t.tasks.delete(e),e.f())}),_t.tasks.size!==0&&_t.tick(Jr)}function yi(t){let e;return _t.tasks.size===0&&_t.tick(Jr),{promise:new Promise(r=>{_t.tasks.add(e={c:t,f:r})}),abort(){_t.tasks.delete(e)}}}function ie(t,e){t.dispatchEvent(new CustomEvent(e))}function ki(t){if(t==="float")return"cssFloat";if(t==="offset")return"cssOffset";if(t.startsWith("--"))return 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 hr(t){const e={},r=t.split(";");for(const n of r){const[i,o]=n.split(":");if(!i||o===void 0)break;const s=ki(i.trim());e[s]=o.trim()}return e}const Ei=t=>t;function Si(t,e,r,n){var i=(t&Pn)!==0,o="both",s,a=e.inert,l,u;function f(){var w=C,g=M;ot(null),st(null);try{return s??(s=r()(e,(n==null?void 0:n())??{},{direction:o}))}finally{ot(w),st(g)}}var v={is_global:i,in(){e.inert=a,ie(e,"introstart"),l=Fe(e,f(),u,1,()=>{ie(e,"introend"),l==null||l.abort(),l=s=void 0})},out(w){e.inert=!0,ie(e,"outrostart"),u=Fe(e,f(),l,0,()=>{ie(e,"outroend"),w==null||w()})},stop:()=>{l==null||l.abort(),u==null||u.abort()}},c=M;if((c.transitions??(c.transitions=[])).push(v),Le){var h=i;if(!h){for(var d=c.parent;d&&d.f&Zt;)for(;(d=d.parent)&&!(d.f&pe););h=!d||(d.f&mr)!==0}h&&Bt(()=>{$t(()=>v.in())})}}function Fe(t,e,r,n,i){var o=n===1;if(wn(e)){var s,a=!1;return Lt(()=>{if(!a){var g=e({direction:o?"in":"out"});s=Fe(t,g,r,n,i)}}),{abort:()=>{a=!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:At,deactivate:At,reset:At,t:()=>n};const{delay:l=0,css:u,tick:f,easing:v=Ei}=e;var c=[];if(o&&r===void 0&&(f&&f(0,1),u)){var h=hr(u(0,1));c.push(h,h)}var d=()=>1-n,w=t.animate(c,{duration:l});return w.onfinish=()=>{var g=(r==null?void 0:r.t())??1-n;r==null||r.abort();var S=n-g,y=e.duration*Math.abs(S),k=[];if(y>0){if(u)for(var _=Math.ceil(y/16.666666666666668),x=0;x<=_;x+=1){var O=g+S*v(x/_),z=u(O,1-O);k.push(hr(z))}d=()=>{var I=w.currentTime;return g+S*v(I/y)},f&&yi(()=>{if(w.playState!=="running")return!1;var I=d();return f(I,1-I),!0})}w=t.animate(k,{duration:y,fill:"forwards"}),w.onfinish=()=>{d=()=>n,f==null||f(n,1-n),i()}},{abort:()=>{w&&(w.cancel(),w.effect=null,w.onfinish=At)},deactivate:()=>{i=At},reset:()=>{n===0&&(f==null||f(1,0))},t:()=>d()}}function He(t,e,r){if(t.multiple)return Oi(t,e);for(var n of t.options){var i=Yr(n);if(Ln(i,e)){n.selected=!0;return}}(!r||e!==void 0)&&(t.selectedIndex=-1)}function Ti(t,e){let r=!0;Bt(()=>{e&&He(t,$t(e),r),r=!1;var n=new MutationObserver(()=>{var i=t.__value;He(t,i)});return n.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),()=>{n.disconnect()}})}function Oi(t,e){for(var r of t.options)r.selected=~e.indexOf(Yr(r))}function Yr(t){return"__value"in t?t.__value:t.value}var pt,zt,Gt,ve,Zr;const he=class he{constructor(e){Ht(this,ve);Ht(this,pt,new WeakMap);Ht(this,zt);Ht(this,Gt);Se(this,Gt,e)}observe(e,r){var n=ut(this,pt).get(e)||new Set;return n.add(r),ut(this,pt).set(e,n),or(this,ve,Zr).call(this).observe(e,ut(this,Gt)),()=>{var i=ut(this,pt).get(e);i.delete(r),i.size===0&&(ut(this,pt).delete(e),ut(this,zt).unobserve(e))}}};pt=new WeakMap,zt=new WeakMap,Gt=new WeakMap,ve=new WeakSet,Zr=function(){return ut(this,zt)??Se(this,zt,new ResizeObserver(e=>{for(var r of e){he.entries.set(r.target,r);for(var n of ut(this,pt).get(r.target)||[])n(r)}}))},ke(he,"entries",new WeakMap);let qe=he;var Mi=new qe({box:"border-box"});function gt(t,e,r){var n=Mi.observe(t,()=>r(t[e]));Bt(()=>($t(()=>r(t[e])),n))}function pr(t,e){return t===e||(t==null?void 0:t[wt])===e}function Qr(t={},e,r,n){return Bt(()=>{var i,o;return zr(()=>{i=o,o=[],$t(()=>{t!==r(...o)&&(e(t,...o),i&&pr(r(...i),t)&&e(null,...i))})}),()=>{Lt(()=>{o&&pr(r(...o),t)&&e(null,...o)})}}),t}function xe(t=!1){const e=L,r=e.l.u;if(!r)return;let n=()=>ri(e.s);if(t){let i=0,o={};const s=T(()=>{let a=!1;const l=e.s;for(const u in l)l[u]!==o[u]&&(o[u]=l[u],a=!0);return a&&i++,i});n=()=>p(s)}r.b.length&&Wn(()=>{_r(e,n),Ae(r.b)}),Ce(()=>{const i=$t(()=>r.m.map(bn));return()=>{for(const o of i)typeof o=="function"&&o()}}),r.a.length&&Ce(()=>{_r(e,n),Ae(r.a)})}function _r(t,e){if(t.l.s)for(const r of t.l.s)p(r);e()}const Ai={get(t,e){if(!t.exclude.includes(e))return t.props[e]},set(t,e){return!1},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e)&&e in t.props)return{enumerable:!0,configurable:!0,value:t.props[e]}},has(t,e){return t.exclude.includes(e)?!1:e in t.props},ownKeys(t){return Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))}};function tr(t,e,r){return new Proxy({props:t,exclude:e},Ai)}const Ni="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Ni);var Ci=te('<svg><path d="M0 0h24v24H0z" stroke="none"></path><path d="M18 6 6 18M6 6l12 12"></path></svg>');function Di(t,e){let r=tr(e,["$$slots","$$events","$$legacy"]);var n=Ci();let i;N(()=>i=$e(n,i,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...r},void 0,!0)),E(t,n)}const zi=t=>t;function Ii(t,{delay:e=0,duration:r=400,easing:n=zi}={}){const i=+getComputedStyle(t).opacity;return{delay:e,duration:r,easing:n,css:o=>`opacity: ${o*i}`}}function Pi(){let t=U("uncompressed");return{get type(){return p(t)},setType(e){R(t,tt(e))}}}function Ri(){let t=tt({file:null,folder:null,output:null,duplicates:null,code:null}),e=tt([]);return{get file(){return t.file},get folder(){return t.folder},get output(){return t.output},get duplicates(){return t.duplicates},get code(){return t.code},open(r,n){e.push(r),t[r]=n},close(){e.length!==0&&(t[e.pop()]=null)}}}function Bi(t){return Object.entries(t.outputs).map(([e,r])=>{const n=new Li;return Object.entries(r.inputs).forEach(([i,o])=>n.insert(i,o)),n.root.name=e,n.root.map=r.map,n.root.uncompressed=r.uncompressed,n.root.gzip=r.gzip,n.root.brotli=r.brotli,n.optimize(),n})}function yt(t){return"items"in t}class Li{constructor(){ke(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 a=o.items.find(l=>yt(l)&&l.name===s);a||(a=this.createNode(s,o.path?`${o.path}/${s}`:s),o.items.push(a)),o=a,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&&yt(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=>yt(n)&&e.push(n))}}get(e){let r=this.root;for(;r&&r.path!==e;)r=yt(r)&&r.items.find(n=>e.startsWith(n.path))||null;return r}}const We=Bi(window.SONDA_JSON_REPORT);function ji(){let t=U(0);const e=T(()=>We.at(p(t)));return{get index(){return p(t)},get output(){return p(e)},setIndex(r){R(t,tt(r))}}}const Fi=/(.*)(?:.*node_modules\/)(@[^\/]+\/[^\/]+|[^\/]+)/,Hi=Object.keys(window.SONDA_JSON_REPORT.inputs).map(t=>Fi.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),oe=new Map(Array.from(Hi).filter(([,t])=>t.size>1).map(([t,e])=>[t,Array.from(e)])),K=ji(),Pt=Pi(),F=Ri();var qi=()=>F.close(),Wi=A('<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"><!></button></div> <!></div></div>');function ee(t,e){q(e,!0);let r=U(void 0);function n(h){h.target===p(r)&&F.close()}var i=Wi();Dt("click",ft.body,n);var o=b(i);Qr(o,h=>R(r,h),()=>p(r));var s=m(o,2),a=b(s),l=b(a),u=b(l),f=m(l,2);f.__click=[qi];var v=b(f);Di(v,{});var c=m(a,2);gi(c,()=>e.children),N(()=>{de(s,"w-[95vw]",e.large),de(s,"h-[95vh]",e.large),D(u,e.heading)}),Si(3,i,()=>Ii,()=>({duration:150})),E(t,i),W()}St(["click"]);var Ui=A('<div class="p-4 mb-8 text-sm text-red-800 rounded-lg bg-red-50 svelte-ls0uun" role="alert"><p class="font-bold svelte-ls0uun">Your browser does not support the <a class="underline svelte-ls0uun" href="https://developer.mozilla.org/en-US/docs/Web/API/CSS_Custom_Highlight_API">CSS Custom Highlight API</a>.</p> <p class="mt-4 svelte-ls0uun">To use this feature, please update your browser to a version that supports it, or use a different browser. See the <a class="underline svelte-ls0uun" href="https://developer.mozilla.org/en-US/docs/Web/API/CSS_Custom_Highlight_API#browser_compatibility">Browser Compatibility page</a> for more information.</p></div>'),Vi=A(`
|
|
2
|
+
<span class="border-r border-slate-300 text-right pr-2 svelte-ls0uun"></span>
|
|
3
|
+
`,1),Gi=A(`<p class="svelte-ls0uun">Code included in the bundle is highlighted</p> <pre class="h-full mt-2 p-4 w-full leading-5 bg-slate-100 text-slate-600 rounded overflow-auto text-xs flex svelte-ls0uun">
|
|
4
|
+
<div class="line-numbers flex flex-col flex-shrink mr-2 select-none text-slate-400 svelte-ls0uun">
|
|
5
|
+
<!>
|
|
6
|
+
</div>
|
|
7
|
+
<code class="svelte-ls0uun"> </code>
|
|
8
|
+
</pre>`,1),Ki=A('<div class="h-full flex flex-col overflow-auto p-1 svelte-ls0uun"><!></div>');function Ji(t,e){q(e,!0);let r=U(void 0);const n=T(()=>K.output.root.map),i=T(()=>{var l;return((l=p(n))==null?void 0:l.sources.indexOf(e.file.path))??-1}),o=T(()=>p(i)>=0?p(n).sourcesContent[p(i)]:null),s=T(()=>{var l;return((l=p(o))==null?void 0:l.split(new RegExp("(?<=\\r?\\n)")))??[]}),a=T(()=>"CSS"in window&&"highlights"in window.CSS);Ce(()=>{if(!p(o)||!p(a))return;const l=new Highlight,u=p(r).firstChild,f=p(s).reduce((v,c)=>(v.push(v[v.length-1]+c.length),v),[0]);p(n).mappings.flat().filter(v=>v[1]===p(i)).forEach((v,c,h)=>{const[,,d,w]=v,g=h[c+1],S=f[d],y=S+w,k=d===(g==null?void 0:g[2])?g[3]+S:f[d+1],_=new Range;_.setStart(u,y),_.setEnd(u,k),l.add(_)}),CSS.highlights.set("used-code",l)}),ee(t,{get heading(){return e.file.path},large:!0,children:u=>{var f=Ki(),v=b(f);P(v,()=>!p(a),c=>{var h=Ui();E(c,h)},c=>{var h=jt(),d=B(h);P(d,()=>p(o),w=>{var g=Gi(),S=m(B(g),2),y=m(b(S)),k=m(b(y));me(k,17,()=>p(s),Gr,(O,z,I)=>{var Y=Vi(),$=m(B(Y));$.textContent=I,E(O,Y)});var _=m(y,2),x=b(_);Qr(_,O=>R(r,O),()=>p(r)),N(()=>D(x,p(o))),E(w,g)},null,!0),E(c,h)}),E(u,f)},$$slots:{default:!0}}),W()}class er{static generate(e,r){return this.processItems(e,r).join(`
|
|
9
|
+
`).trim()}static processItems(e,r=null,n=""){const i=[],o=e.length-1;return e.forEach((s,a)=>{const l=a===o,u=l?"└── ":"├── ",[f,v]=typeof s=="string"?[s,s]:s,c=r==null?void 0:r(f,e);if(i.push(n+u+v),c){const h=l?" ":"│ ";return i.push(...this.processItems(c,r,n+h))}if(l)return i.push(n)}),i}}var Yi=A('<p>The following dependencies are duplicated:</p> <pre class="mt-2 p-4 w-max leading-5 bg-slate-100 rounded overflow-auto min-w-full"><code> </code></pre>',1);function Zi(t,e){q(e,!0);const r=T(()=>er.generate(Array.from(oe.keys()),n=>oe.get(n)));ee(t,{heading:"Duplicated modules found in the build",children:i=>{var o=jt(),s=B(o);P(s,()=>oe.size>0,a=>{var l=Yi(),u=m(B(l),2),f=b(u),v=b(f);N(()=>D(v,p(r))),E(a,l)}),E(i,o)},$$slots:{default:!0}}),W()}const Qi=["b","KiB","MiB","GiB","TiB","PiB"],Xi=["ms","s"];function Xr(t,e,r){let n=r,i=0;for(;n>e&&t.length>i+1;)n=n/e,i++;return`${i?n.toFixed(2):n} ${t[i]}`}function et(t){return Xr(Qi,1024,t)}function Oe(t){return Xr(Xi,1e3,t)}var $i=A('<span>File format</span> <span class="font-bold text-right"> </span>',1),to=A('<span>Approx. GZIP size</span> <span class="font-bold text-right"> </span>',1),eo=A('<span>Approx. Brotli size</span> <span class="font-bold text-right"> </span>',1),ro=A('<p class="mt-8">This file is in the bundle, because it is:</p> <pre class="mt-2 p-4 w-full leading-5 bg-slate-100 rounded overflow-auto text-sm"><code> </code></pre>',1),no=(t,e)=>F.open("code",e.file),io=A('<div class="mt-8"><button type="button" 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">Show used code</button></div>'),oo=A('<div class="flex flex-col overflow-auto p-1"><div class="grid grid-cols-[auto_1fr] gap-x-12 max-w-[400px]"><!> <span>Original file size</span> <span class="font-bold text-right"> </span> <span>Bundled size</span> <span class="font-bold text-right"> </span> <!> <!></div> <!> <!></div>');function so(t,e){q(e,!0);const r=T(()=>window.SONDA_JSON_REPORT.inputs[e.file.path]),n=T(()=>{var a;return((a=p(r))==null?void 0:a.format.toUpperCase())??"UNKNOWN"}),i=T(()=>{var a;return(a=K.output.root.map)==null?void 0:a.sources.includes(e.file.path)});function o(a,l){return l.length>1?[]:Object.entries(window.SONDA_JSON_REPORT.inputs).filter(([,u])=>u.imports.includes(a)).map(([u])=>[u,`imported by ${u}`])}const s=T(()=>{if(!p(r))return null;const a=p(r).belongsTo?[[p(r).belongsTo,`part of the ${p(r).belongsTo} bundle`]]:o(e.file.path,[]);return er.generate(a,o)});ee(t,{get heading(){return e.file.path},children:l=>{var u=oo(),f=b(u),v=b(f);P(v,()=>p(n)!=="UNKNOWN",_=>{var x=$i(),O=m(B(x),2),z=b(O);N(()=>D(z,p(n))),E(_,x)});var c=m(v,4),h=b(c);N(()=>{var _;return D(h,et(((_=p(r))==null?void 0:_.bytes)||0))});var d=m(c,4),w=b(d);N(()=>D(w,et(e.file.uncompressed)));var g=m(d,2);P(g,()=>e.file.gzip,_=>{var x=to(),O=m(B(x),2),z=b(O);N(()=>D(z,et(e.file.gzip))),E(_,x)});var S=m(g,2);P(S,()=>e.file.brotli,_=>{var x=eo(),O=m(B(x),2),z=b(O);N(()=>D(z,et(e.file.brotli))),E(_,x)});var y=m(f,2);P(y,()=>p(s),_=>{var x=ro(),O=m(B(x),2),z=b(O),I=b(z);N(()=>D(I,p(s))),E(_,x)});var k=m(y,2);P(k,()=>p(i),_=>{var x=io(),O=b(x);O.__click=[no,e],E(_,x)}),E(l,u)},$$slots:{default:!0}}),W()}St(["click"]);var ao=A('<span class="text-gray-900"> </span> <span class="text-gray-600"> </span>',1),lo=te('<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 uo(t,e){q(e,!0);const r=20,n=6,i=22,o=T(()=>e.tile.width-n*2),s=T(()=>e.tile.height-n-i),a=T(()=>et(e.content[Pt.type])),l=T(()=>Math.min(e.content[Pt.type]/e.totalBytes*100,100)),u=T(()=>`${e.content.name} - ${p(a)} (${p(l).toFixed(2)}%)`),f=T(()=>Math.round(p(l))+"%"),v=T(()=>e.tile.width>=i*1.75&&e.tile.height>=i),c=T(()=>!yt(e.content)||p(s)<=r||p(o)<=r?[]:e.content.items);var h=lo(),d=b(h);const w=T(()=>`stroke-gray-500 ${(yt(e.content)?"cursor-zoom-in":"cursor-pointer")??""} svelte-xusoaq`);var g=m(d),S=b(g),y=b(S);P(y,()=>p(v),_=>{var x=ao(),O=B(x),z=b(O),I=m(O,2),Y=b(I);N(()=>{D(z,e.content.name),D(Y,`- ${p(a)??""}`)}),E(_,x)});var k=m(g);P(k,()=>p(c).length,_=>{var x=T(()=>e.tile.x+n),O=T(()=>e.tile.y+i);$r(_,{get content(){return p(c)},get totalBytes(){return e.totalBytes},get width(){return p(o)},get height(){return p(s)},get xStart(){return p(x)},get yStart(){return p(O)}})}),N(()=>{j(d,"data-tile",e.content.path),j(d,"data-hover",p(u)),j(d,"x",e.tile.x),j(d,"y",e.tile.y),j(d,"width",e.tile.width),j(d,"height",e.tile.height),bi(d,p(w)),je(d,"--percentage",p(f)),j(g,"x",e.tile.x),j(g,"y",e.tile.y),j(g,"width",e.tile.width),j(g,"height",e.tile.height)}),E(t,h),W()}function fo(t,e,r,n=0,i=0){const o=[],s=new Float32Array(t.length),a=t.reduce((_,x)=>_+x,0),l=e*r/a;for(let _=0;_<t.length;_++)s[_]=t[_]*l;let u=n,f=i,v=e,c=r,h=v>=c,d=h?c:v,w=0,g=s[0],S=s[0],y=s[0],k=Me(d,g,S,y);for(let _=1;_<s.length;_++){const x=s[_],O=g+x,z=Math.min(S,x),I=Math.max(y,x),Y=Me(d,O,z,I);if(k<Y){gr(s,w,_-1,g/d,h,u,f,o);const $=g/d;h?(u+=$,v-=$):(f+=$,c-=$),h=v>=c,d=h?c:v,w=_,g=x,S=x,y=x,k=Me(d,g,S,y)}else g=O,S=z,y=I,k=Y}return gr(s,w,s.length-1,g/d,h,u,f,o),o}function Me(t,e,r,n){const i=t*t,o=e*e;return Math.max(i*n/o,o/(i*r))}function gr(t,e,r,n,i,o,s,a){let l=i?s:o;for(let u=e;u<=r;u++){const v=t[u]/n;i?a.push({x:o,y:l,width:n,height:v}):a.push({x:l,y:s,width:v,height:n}),l+=v}}function $r(t,e){q(e,!0);const r=T(()=>Array.isArray(e.content)?Object.values(e.content):[e.content]),n=T(()=>fo(p(r).map(s=>s[Pt.type]),e.width,e.height,e.xStart,e.yStart));var i=jt(),o=B(i);me(o,18,()=>p(n),s=>s,(s,a,l)=>{uo(s,{get tile(){return a},get content(){return p(r)[p(l)]},get totalBytes(){return e.totalBytes}})}),E(t,i),W()}var co=te('<svg xmlns="http://www.w3.org/2000/svg" role="img"><!></svg>');function tn(t,e){q(e,!0);var r=jt(),n=B(r);di(n,()=>[e.content.path,e.width,e.height],i=>{var o=co(),s=b(o),a=T(()=>e.width-1),l=T(()=>e.height-1);$r(s,{get content(){return e.content},get totalBytes(){return e.content[Pt.type]},get width(){return p(a)},get height(){return p(l)},xStart:.5,yStart:.5}),N(()=>{j(o,"width",e.width),j(o,"height",e.height)}),E(i,o)}),E(t,r),W()}var vo=A('<span>Approx. GZIP size</span> <span class="font-bold"> </span>',1),ho=A('<span>Approx. Brotli size</span> <span class="font-bold"> </span>',1),po=A('<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 _o(t,e){q(e,!0);let r=U(0),n=U(0);ee(t,{get heading(){return e.folder.path},large:!0,children:o=>{var s=po(),a=B(s),l=m(b(a),2),u=b(l);N(()=>D(u,et(e.folder.uncompressed)));var f=m(l,2);P(f,()=>e.folder.gzip,d=>{var w=vo(),g=m(B(w),2),S=b(g);N(()=>D(S,et(e.folder.gzip))),E(d,w)});var v=m(f,2);P(v,()=>e.folder.brotli,d=>{var w=ho(),g=m(B(w),2),S=b(g);N(()=>D(S,et(e.folder.brotli))),E(d,w)});var c=m(a,2),h=b(c);tn(h,{get content(){return e.folder},get width(){return p(r)},get height(){return p(n)}}),gt(c,"clientWidth",d=>R(r,d)),gt(c,"clientHeight",d=>R(n,d)),E(o,s)},$$slots:{default:!0}}),W()}var go=te('<svg><path d="M0 0h24v24H0z" stroke="none"></path><path d="M3 12a9 9 0 1 0 18 0 9 9 0 0 0-18 0M12 9h.01"></path><path d="M11 12h1v4h1"></path></svg>');function wo(t,e){let r=tr(e,["$$slots","$$events","$$legacy"]);var n=go();let i;N(()=>i=$e(n,i,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...r},void 0,!0)),E(t,n)}var bo=A('<span class="font-bold">GZIP</span> <span class="text-right"> </span> <span class="text-right"> </span>',1),mo=A('<span class="font-bold">Brotli</span> <span class="text-right"> </span> <span class="text-right"> </span>',1),xo=A('<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),yo=A('<pre class="mt-2 p-4 w-max leading-5 bg-slate-100 rounded overflow-auto min-w-full"><code> </code></pre>'),ko=A('<div class="flex flex-col overflow-y-auto max-w-[500px]"><div class="grid grid-cols-[auto_auto_auto] gap-x-12"><span class="font-bold">Type</span> <span class="font-bold text-right">Size</span> <span class="font-bold text-right">Download time <span data-hover="Estimations for a slow 3G connection"><!></span></span> <span class="font-bold">Uncompressed</span> <span class="text-right"> </span> <span class="text-right"> </span> <!> <!></div></div> <!> <p class="mt-12">This asset includes <span class="font-semibold"> </span> external dependencies</p> <!>',1);function Eo(t,e){q(e,!0);const r=50*1024*8,n=T(()=>window.SONDA_JSON_REPORT.outputs[e.output.root.name]),i=T(()=>Oe(Math.round(e.output.root.uncompressed/r*1e3))),o=T(()=>Oe(Math.round(e.output.root.gzip/r*1e3))),s=T(()=>Oe(Math.round(e.output.root.brotli/r*1e3))),a=T(()=>{const h={esm:0,cjs:0,unknown:0},d=window.SONDA_JSON_REPORT.inputs;return Object.entries(p(n).inputs).forEach(([w,g])=>{var y;const S=((y=d[w])==null?void 0:y.format)??"unknown";h[S]+=g.uncompressed}),h}),l=T(()=>Math.round(p(a).esm/p(n).uncompressed*1e4)/100),u=T(()=>Math.round(p(a).cjs/p(n).uncompressed*1e4)/100),f=T(()=>Math.round(p(a).unknown/p(n).uncompressed*1e4)/100),v=T(()=>{const h=/(?:.*node_modules\/)(@[^\/]+\/[^\/]+|[^\/]+)/;return Object.keys(p(n).inputs).map(d=>{var w;return((w=d.match(h))==null?void 0:w[1])??null}).filter((d,w,g)=>d!==null&&g.indexOf(d)===w).sort()}),c=T(()=>er.generate(p(v)));ee(t,{get heading(){return e.output.root.name},children:d=>{var w=ko(),g=B(w),S=b(g),y=m(b(S),4),k=m(b(y)),_=b(k);wo(_,{width:20,height:20,class:"inline-block pointer-events-none"});var x=m(y,4),O=b(x);N(()=>D(O,et(e.output.root.uncompressed)));var z=m(x,2),I=b(z),Y=m(z,2);P(Y,()=>e.output.root.gzip,rt=>{var V=bo(),Z=m(B(V),2),vt=b(Z);N(()=>D(vt,et(e.output.root.gzip)));var Ot=m(Z,2),Ft=b(Ot);N(()=>D(Ft,p(o))),E(rt,V)});var $=m(Y,2);P($,()=>e.output.root.brotli,rt=>{var V=mo(),Z=m(B(V),2),vt=b(Z);N(()=>D(vt,et(e.output.root.brotli)));var Ot=m(Z,2),Ft=b(Ot);N(()=>D(Ft,p(s))),E(rt,V)});var dt=m(g,2);P(dt,()=>p(f)<100,rt=>{var V=xo(),Z=m(B(V),2),vt=b(Z),Ot=m(vt,2),Ft=m(Ot,2),en=m(Z,2),rr=b(en),rn=m(b(rr),2),nn=m(b(rn)),on=b(nn),nr=m(rr,2),sn=m(b(nr),2),an=m(b(sn)),ln=b(an),un=m(nr,2),fn=m(b(un),2),cn=m(b(fn)),dn=b(cn);N(()=>{j(vt,"style",`width: ${p(l)}%`),j(Ot,"style",`width: ${p(u)}%`),j(Ft,"style",`width: ${p(f)}%`),D(on,`${p(l)??""}%`),D(ln,`${p(u)??""}%`),D(dn,`${p(f)??""}%`)}),E(rt,V)});var Tt=m(dt,2),ye=m(b(Tt)),re=b(ye),ne=m(Tt,2);P(ne,()=>p(v).length>0,rt=>{var V=yo(),Z=b(V),vt=b(Z);N(()=>D(vt,p(c))),E(rt,V)}),N(()=>{D(I,p(i)),D(re,p(v).length)}),E(d,w)},$$slots:{default:!0}}),W()}var So=A("<!> <!> <!> <!> <!>",1);function To(t,e){q(e,!1),xe();var r=So(),n=B(r);P(n,()=>F.folder,l=>{_o(l,{get folder(){return F.folder}})});var i=m(n,2);P(i,()=>F.file,l=>{so(l,{get file(){return F.file}})});var o=m(i,2);P(o,()=>F.output,l=>{Eo(l,{get output(){return F.output}})});var s=m(o,2);P(s,()=>F.duplicates,l=>{Zi(l,{})});var a=m(s,2);P(a,()=>F.code,l=>{Ji(l,{get file(){return F.code}})}),E(t,r),W()}var Oo=(t,e)=>Pt.setType(e()),Mo=A('<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>'),Ao=A('<div class="inline-flex space-x-[-1px]" role="group"></div>');function No(t,e){q(e,!0);const r=T(()=>{var a;return((a=K.output)==null?void 0:a.root.gzip)??!1}),n=T(()=>{var a;return((a=K.output)==null?void 0:a.root.brotli)??!1}),i=T(()=>{const a=[["uncompressed","Uncompressed"]];return p(r)&&a.push(["gzip","GZIP"]),p(n)&&a.push(["brotli","Brotli"]),a});var o=jt(),s=B(o);P(s,()=>p(i).length>1,a=>{var l=Ao();me(l,21,()=>p(i),([u,f])=>u,(u,f)=>{let v=()=>p(f)[0],c=()=>p(f)[1];var h=Mo();h.__click=[Oo,v];var d=b(h);N(()=>{j(h,"title",`Show the ${c()} file size in diagram`),de(h,"active",v()===Pt.type),D(d,c())}),E(u,h)}),E(a,l)}),E(t,o),W()}St(["click"]);function Co(){F.open("output",K.output)}var Do=A('<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 zo(t,e){q(e,!1),xe();var r=Do();r.__click=[Co],E(t,r),W()}St(["click"]);function Io(){F.open("duplicates",!0)}var Po=A('<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),xe();var r=jt(),n=B(r);P(n,()=>oe.size>1,i=>{var o=Po();o.__click=[Io],E(i,o)}),E(t,r),W()}St(["click"]);function Bo(t){K.setIndex(Number(t.target.value))}var Lo=A("<option> </option>"),jo=A('<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>'),Fo=A('<div class="flex items-center justify-center space-x-2 max-w-sm"><!></div>');function Ho(t,e){q(e,!1),xe();var r=Fo(),n=b(r);P(n,()=>We.length>0,i=>{var o=jo();Ti(o,()=>K.index);var s;o.__change=[Bo],me(o,5,()=>We,Gr,(a,l,u)=>{var f=Lo();f.value=(f.__value=u)==null?"":u;var v=b(f);N(()=>D(v,`${u+1}. ${p(l).root.name??""}`)),E(a,f)}),N(()=>{s!==(s=K.index)&&(o.value=(o.__value=K.index)==null?"":K.index,He(o,K.index))}),E(i,o)}),E(t,r),W()}St(["change"]);var qo=A('<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 Wo(t){var e=qo();E(t,e)}var Uo=A('<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 Vo(t){var e=Uo(),r=b(e),n=b(r);Ho(n,{});var i=m(n,2);zo(i,{});var o=m(i,2);Ro(o,{});var s=m(r,2),a=b(s);No(a,{});var l=m(a,2);Wo(l),E(t,e)}var Go=te('<svg><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>');function Ko(t,e){let r=tr(e,["$$slots","$$events","$$legacy"]);var n=Go();let i;N(()=>i=$e(n,i,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round",...r},void 0,!0)),E(t,n)}var Jo=A('<div class="flex-grow flex flex-col mt-24 items-center w-full h-full"><!> <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 Yo(t){var e=Jo(),r=b(e);Ko(r,{width:96,height:96,class:"text-yellow-400 fill-yellow-100"}),E(t,e)}var Zo=A('<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 Qo(t){let r=U(0),n=U(0),i=U(0),o=U(0),s=U(""),a=U("0px"),l=U("0px");function u({target:c,clientX:h,clientY:d}){R(s,tt(c instanceof Element&&c.getAttribute("data-hover")||"")),p(s)&&(R(a,(h+p(r)+12>p(i)?h-p(r)-12:h+12)+"px"),R(l,(d+p(n)+12>p(o)?d-p(n):d+12)+"px"))}var f=Zo();Dt("mouseover",ft.body,u),Dt("mousemove",ft.body,u),Dt("mouseleave",ft.body,()=>R(s,""));var v=b(f);N(()=>{de(f,"invisible",!p(s)),je(f,"--x",p(a)),je(f,"--y",p(l)),D(v,p(s))}),gt(ft.body,"clientWidth",c=>R(i,tt(c))),gt(ft.body,"clientHeight",c=>R(o,tt(c))),gt(f,"clientWidth",c=>R(r,c)),gt(f,"clientHeight",c=>R(n,c)),E(t,f)}var Xo=A('<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 $o(t,e){q(e,!0);let r=U(0),n=U(0);function i({target:h}){var g;const d=h instanceof Element&&h.getAttribute("data-tile");if(!d)return;const w=(g=K.output)==null?void 0:g.get(d);w&&F.open(yt(w)?"folder":"file",w)}function o(h){h.key==="Escape"&&(h.stopPropagation(),F.close())}var s=Xo();Dt("click",ft.body,i),Dt("keydown",ft.body,o);var a=B(s),l=b(a);Vo(l);var u=m(l,2),f=b(u);P(f,()=>K.output,h=>{tn(h,{get content(){return K.output.root},get width(){return p(r)},get height(){return p(n)}})},h=>{Yo(h)});var v=m(a,2);To(v,{});var c=m(v,2);Qo(c),gt(u,"clientWidth",h=>R(r,h)),gt(u,"clientHeight",h=>R(n,h)),E(t,s),W()}fi($o,{target:document.getElementById("app")});</script><style rel="stylesheet" crossorigin>.svelte-ls0uun::highlight(used-code){background-color:#fed7aa;color:#7c2d12}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}*{scrollbar-width:thin}*,: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}.mb-8{margin-bottom:2rem}.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-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.flex-shrink{flex-shrink:1}.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}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_auto_auto\]{grid-template-columns:auto auto auto}.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-12{-moz-column-gap:3rem;column-gap:3rem}.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-r{border-right-width:1px}.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-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225 / 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-100{--tw-bg-opacity:1;background-color:rgb(241 245 249 / 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-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.text-center{text-align:center}.text-right{text-align:right}.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-red-800{--tw-text-opacity:1;color:rgb(153 27 27 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.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,4 +1,4 @@
|
|
|
1
|
-
import { join, dirname, isAbsolute, resolve, relative, win32, posix } from 'path';
|
|
1
|
+
import { join, dirname, isAbsolute, resolve, relative, win32, posix, extname } from 'path';
|
|
2
2
|
import remapping from '@ampproject/remapping';
|
|
3
3
|
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
@@ -108,6 +108,7 @@ function normalizeOptions(options) {
|
|
|
108
108
|
open: true,
|
|
109
109
|
format: 'html',
|
|
110
110
|
detailed: false,
|
|
111
|
+
sources: false,
|
|
111
112
|
gzip: false,
|
|
112
113
|
brotli: false
|
|
113
114
|
};
|
|
@@ -254,7 +255,11 @@ function getContributions(sources) {
|
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
function generateJsonReport(assets, inputs, options) {
|
|
257
|
-
const
|
|
258
|
+
const acceptedExtensions = [
|
|
259
|
+
'.js',
|
|
260
|
+
'.css'
|
|
261
|
+
];
|
|
262
|
+
const outputs = assets.filter((asset)=>acceptedExtensions.includes(extname(asset))).reduce((carry, asset)=>{
|
|
258
263
|
const data = processAsset(asset, inputs, options);
|
|
259
264
|
if (data) {
|
|
260
265
|
carry[normalizePath(asset)] = data;
|
|
@@ -262,15 +267,15 @@ function generateJsonReport(assets, inputs, options) {
|
|
|
262
267
|
return carry;
|
|
263
268
|
}, {});
|
|
264
269
|
return {
|
|
265
|
-
inputs,
|
|
266
|
-
outputs
|
|
270
|
+
inputs: sortObjectKeys(inputs),
|
|
271
|
+
outputs: sortObjectKeys(outputs)
|
|
267
272
|
};
|
|
268
273
|
}
|
|
269
274
|
function generateHtmlReport(assets, inputs, options) {
|
|
270
275
|
const json = generateJsonReport(assets, inputs, options);
|
|
271
276
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
272
277
|
const template = readFileSync(resolve(__dirname, './index.html'), 'utf-8');
|
|
273
|
-
return template.replace('__REPORT_DATA__', JSON.stringify(json));
|
|
278
|
+
return template.replace('__REPORT_DATA__', encodeURIComponent(JSON.stringify(json)));
|
|
274
279
|
}
|
|
275
280
|
function processAsset(asset, inputs, options) {
|
|
276
281
|
const maybeCodeMap = loadCodeAndMap(asset);
|
|
@@ -285,17 +290,31 @@ function processAsset(asset, inputs, options) {
|
|
|
285
290
|
mapped.sources = mapped.sources.map((source)=>normalizePath(source));
|
|
286
291
|
const assetSizes = getSizes(code, options);
|
|
287
292
|
const bytes = getBytesPerSource(code, mapped, assetSizes, options);
|
|
293
|
+
const outputInputs = Array.from(bytes).reduce((carry, [source, sizes])=>{
|
|
294
|
+
carry[normalizePath(source)] = sizes;
|
|
295
|
+
return carry;
|
|
296
|
+
}, {});
|
|
288
297
|
return {
|
|
289
298
|
...assetSizes,
|
|
290
|
-
inputs:
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
299
|
+
inputs: sortObjectKeys(outputInputs),
|
|
300
|
+
map: options.sources ? {
|
|
301
|
+
version: 3,
|
|
302
|
+
names: [],
|
|
303
|
+
mappings: mapped.mappings,
|
|
304
|
+
sources: mapped.sources,
|
|
305
|
+
sourcesContent: mapped.sourcesContent
|
|
306
|
+
} : undefined
|
|
294
307
|
};
|
|
295
308
|
}
|
|
296
309
|
function hasCodeAndMap(result) {
|
|
297
310
|
return Boolean(result && result.code && result.map);
|
|
298
311
|
}
|
|
312
|
+
function sortObjectKeys(object) {
|
|
313
|
+
return Object.keys(object).sort().reduce((carry, key)=>{
|
|
314
|
+
carry[key] = object[key];
|
|
315
|
+
return carry;
|
|
316
|
+
}, {});
|
|
317
|
+
}
|
|
299
318
|
|
|
300
319
|
async function generateReportFromAssets(assets, inputs, userOptions) {
|
|
301
320
|
const options = normalizeOptions(userOptions);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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\tsources: 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, extname, 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 acceptedExtensions = [ '.js', '.css' ];\n\n const outputs = assets\n .filter( asset => acceptedExtensions.includes( extname( asset ) ) )\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: sortObjectKeys( inputs ),\n outputs: sortObjectKeys( 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__', encodeURIComponent( 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 const outputInputs = Array\n .from( bytes )\n .reduce( ( carry, [ source, sizes ] ) => {\n carry[ normalizePath( source ) ] = sizes;\n\n return carry;\n }, {} as Record<string, ReportOutputInput> );\n\n return {\n ...assetSizes,\n inputs: sortObjectKeys( outputInputs ),\n map: options.sources ? {\n version: 3,\n names: [],\n mappings: mapped.mappings,\n sources: mapped.sources,\n sourcesContent: mapped.sourcesContent,\n } : undefined\n };\n}\n\nfunction hasCodeAndMap( result: MaybeCodeMap ): result is Required<CodeMap> {\n return Boolean( result && result.code && result.map );\n}\n\nfunction sortObjectKeys<T extends unknown>( object: Record<string, T> ): Record<string, T> {\n return Object\n .keys( object )\n .sort()\n .reduce( ( carry, key ) => {\n carry[ key ] = object[ key ];\n\n return carry;\n }, {} as Record<string, T> );\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","acceptedExtensions","outputs","extname","reduce","carry","data","processAsset","sortObjectKeys","generateHtmlReport","json","__dirname","fileURLToPath","template","encodeURIComponent","stringify","maybeCodeMap","hasCodeAndMap","mapped","decode","outputInputs","version","names","result","Boolean","object","keys","sort","key","generateReportFromAssets","userOptions","handler","saveHtml","saveJson","default","report","writeFileSync","SondaEsbuildPlugin","name","setup","build","initialOptions","metafile","onEnd","console","error","entries","acc","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/report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,UAAU,EAEV,WAAW,EAIX,OAAO,EACR,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,OAAO,EAAE,OAAO,GACf,UAAU,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,UAAU,EAEV,WAAW,EAIX,OAAO,EACR,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,OAAO,EAAE,OAAO,GACf,UAAU,CAmBZ;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,OAAO,EAAE,OAAO,GACf,MAAM,CAMR"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,56 +1,62 @@
|
|
|
1
|
-
import type { EncodedSourceMap } from '@ampproject/remapping';
|
|
1
|
+
import type { DecodedSourceMap, EncodedSourceMap } from '@ampproject/remapping';
|
|
2
2
|
export interface Options {
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Determines the output format of the report.
|
|
5
5
|
*
|
|
6
6
|
* @default 'html'
|
|
7
7
|
*/
|
|
8
8
|
format: 'html' | 'json';
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
* (`.html` or `.json` depending on the `format` option) after the build.
|
|
10
|
+
* Determines whether to open the report in the default program for given file
|
|
11
|
+
* extension (`.html` or `.json` depending on the `format` option) after the build.
|
|
12
12
|
*
|
|
13
13
|
* @default true
|
|
14
14
|
*/
|
|
15
15
|
open: boolean;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Determines whether to read the source maps of imported modules.
|
|
18
18
|
*
|
|
19
|
-
* By default, external dependencies that are bundled into a single file
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* By default, external dependencies that are bundled into a single file appear as
|
|
20
|
+
* a single asset in the report. When this option is enabled, the report will instead
|
|
21
|
+
* include the source files of the imported modules, if they have source maps.
|
|
22
22
|
*
|
|
23
|
-
* Enabling this
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* Enabling this option will increase the time it takes to generate the report and
|
|
27
|
-
* decrease the accuracy of the estimated GZIP and Brotli sizes of individual files.
|
|
23
|
+
* Enabling this option will increase the time needed to generate the report and
|
|
24
|
+
* reduce the accuracy of estimated GZIP and Brotli sizes for individual files.
|
|
28
25
|
*
|
|
29
26
|
* @default false
|
|
30
27
|
*/
|
|
31
28
|
detailed: boolean;
|
|
32
29
|
/**
|
|
33
|
-
*
|
|
30
|
+
* Determines whether to include the source maps of the assets in the report to
|
|
31
|
+
* visualize which parts of the code contribute to the final bundle size.
|
|
32
|
+
*
|
|
33
|
+
* ⚠️ Enabling this option will significantly increase the report size and include
|
|
34
|
+
* it in the **source code** of the assets. If you work with proprietary code, be
|
|
35
|
+
* cautious when sharing the report. ⚠️
|
|
36
|
+
*
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
sources: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Determines whether to calculate the sizes of assets after compression with GZIP.
|
|
34
42
|
*
|
|
35
|
-
* The report will
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* files are not completely accurate and should only be used as a reference.
|
|
43
|
+
* The report will include estimated compressed sizes for each file within an asset.
|
|
44
|
+
* However, unlike the compressed size of the entire asset, these individual file
|
|
45
|
+
* estimates are approximate and should be used as a general reference.
|
|
39
46
|
*
|
|
40
|
-
* Enabling this option will increase the time
|
|
47
|
+
* Enabling this option will increase the time needed to generate the report.
|
|
41
48
|
*
|
|
42
49
|
* @default false
|
|
43
50
|
*/
|
|
44
51
|
gzip: boolean;
|
|
45
52
|
/**
|
|
46
|
-
*
|
|
53
|
+
* Determines whether to calculate the sizes of assets after compression with Brotli.
|
|
47
54
|
*
|
|
48
|
-
* The report will
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* files are not completely accurate and should only be used as a reference.
|
|
55
|
+
* The report will include estimated compressed sizes for each file within an asset.
|
|
56
|
+
* However, unlike the compressed size of the entire asset, these individual file
|
|
57
|
+
* estimates are approximate and should be used as a general reference.
|
|
52
58
|
*
|
|
53
|
-
* Enabling this option will increase the time
|
|
59
|
+
* Enabling this option will increase the time needed to generate the report.
|
|
54
60
|
*
|
|
55
61
|
* @default false
|
|
56
62
|
*/
|
|
@@ -64,6 +70,7 @@ export interface ReportInput {
|
|
|
64
70
|
}
|
|
65
71
|
export interface ReportOutput extends Sizes {
|
|
66
72
|
inputs: Record<string, ReportOutputInput>;
|
|
73
|
+
map?: DecodedSourceMap;
|
|
67
74
|
}
|
|
68
75
|
export interface ReportOutputInput extends Sizes {
|
|
69
76
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;OAKG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;;;;;;;;OAUG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;CAAG;AAEnD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,CAAC"}
|
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;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,
|
|
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,GAUJ,OAAO,CAC9D;AAED,wBAAgB,aAAa,CAAE,eAAe,EAAE,MAAM,GAAI,MAAM,CAS/D"}
|
package/package.json
CHANGED