@shopify/create-hydrogen 4.3.13 → 5.0.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.
Files changed (127) hide show
  1. package/dist/assets/hydrogen/bundle/analyzer.html +2045 -0
  2. package/dist/assets/hydrogen/i18n/domains.ts +28 -0
  3. package/dist/assets/hydrogen/i18n/mock-i18n-types.ts +3 -0
  4. package/dist/assets/hydrogen/i18n/subdomains.ts +27 -0
  5. package/dist/assets/hydrogen/i18n/subfolders.ts +29 -0
  6. package/dist/assets/hydrogen/routes/locale-check.ts +16 -0
  7. package/dist/assets/hydrogen/starter/.eslintignore +5 -0
  8. package/dist/assets/hydrogen/starter/.eslintrc.cjs +19 -0
  9. package/dist/assets/hydrogen/starter/.graphqlrc.yml +12 -0
  10. package/dist/assets/hydrogen/starter/CHANGELOG.md +709 -0
  11. package/dist/assets/hydrogen/starter/README.md +45 -0
  12. package/dist/assets/hydrogen/starter/app/assets/favicon.svg +28 -0
  13. package/dist/assets/hydrogen/starter/app/components/AddToCartButton.tsx +37 -0
  14. package/dist/assets/hydrogen/starter/app/components/Aside.tsx +76 -0
  15. package/dist/assets/hydrogen/starter/app/components/CartLineItem.tsx +150 -0
  16. package/dist/assets/hydrogen/starter/app/components/CartMain.tsx +68 -0
  17. package/dist/assets/hydrogen/starter/app/components/CartSummary.tsx +101 -0
  18. package/dist/assets/hydrogen/starter/app/components/Footer.tsx +129 -0
  19. package/dist/assets/hydrogen/starter/app/components/Header.tsx +230 -0
  20. package/dist/assets/hydrogen/starter/app/components/PageLayout.tsx +126 -0
  21. package/dist/assets/hydrogen/starter/app/components/ProductForm.tsx +80 -0
  22. package/dist/assets/hydrogen/starter/app/components/ProductImage.tsx +23 -0
  23. package/dist/assets/hydrogen/starter/app/components/ProductPrice.tsx +27 -0
  24. package/dist/assets/hydrogen/starter/app/components/Search.tsx +514 -0
  25. package/dist/assets/hydrogen/starter/app/entry.client.tsx +12 -0
  26. package/dist/assets/hydrogen/starter/app/entry.server.tsx +47 -0
  27. package/dist/assets/hydrogen/starter/app/graphql/customer-account/CustomerAddressMutations.ts +61 -0
  28. package/dist/assets/hydrogen/starter/app/graphql/customer-account/CustomerDetailsQuery.ts +40 -0
  29. package/dist/assets/hydrogen/starter/app/graphql/customer-account/CustomerOrderQuery.ts +87 -0
  30. package/dist/assets/hydrogen/starter/app/graphql/customer-account/CustomerOrdersQuery.ts +58 -0
  31. package/dist/assets/hydrogen/starter/app/graphql/customer-account/CustomerUpdateMutation.ts +24 -0
  32. package/dist/assets/hydrogen/starter/app/lib/fragments.ts +174 -0
  33. package/dist/assets/hydrogen/starter/app/lib/search.ts +29 -0
  34. package/dist/assets/hydrogen/starter/app/lib/session.ts +72 -0
  35. package/dist/assets/hydrogen/starter/app/lib/variants.ts +46 -0
  36. package/dist/assets/hydrogen/starter/app/root.tsx +191 -0
  37. package/dist/assets/hydrogen/starter/app/routes/$.tsx +11 -0
  38. package/dist/assets/hydrogen/starter/app/routes/[robots.txt].tsx +118 -0
  39. package/dist/assets/hydrogen/starter/app/routes/[sitemap.xml].tsx +177 -0
  40. package/dist/assets/hydrogen/starter/app/routes/_index.tsx +182 -0
  41. package/dist/assets/hydrogen/starter/app/routes/account.$.tsx +8 -0
  42. package/dist/assets/hydrogen/starter/app/routes/account._index.tsx +5 -0
  43. package/dist/assets/hydrogen/starter/app/routes/account.addresses.tsx +513 -0
  44. package/dist/assets/hydrogen/starter/app/routes/account.orders.$id.tsx +195 -0
  45. package/dist/assets/hydrogen/starter/app/routes/account.orders._index.tsx +107 -0
  46. package/dist/assets/hydrogen/starter/app/routes/account.profile.tsx +136 -0
  47. package/dist/assets/hydrogen/starter/app/routes/account.tsx +88 -0
  48. package/dist/assets/hydrogen/starter/app/routes/account_.authorize.tsx +5 -0
  49. package/dist/assets/hydrogen/starter/app/routes/account_.login.tsx +5 -0
  50. package/dist/assets/hydrogen/starter/app/routes/account_.logout.tsx +10 -0
  51. package/dist/assets/hydrogen/starter/app/routes/api.predictive-search.tsx +318 -0
  52. package/dist/assets/hydrogen/starter/app/routes/blogs.$blogHandle.$articleHandle.tsx +113 -0
  53. package/dist/assets/hydrogen/starter/app/routes/blogs.$blogHandle._index.tsx +188 -0
  54. package/dist/assets/hydrogen/starter/app/routes/blogs._index.tsx +119 -0
  55. package/dist/assets/hydrogen/starter/app/routes/cart.$lines.tsx +69 -0
  56. package/dist/assets/hydrogen/starter/app/routes/cart.tsx +102 -0
  57. package/dist/assets/hydrogen/starter/app/routes/collections.$handle.tsx +225 -0
  58. package/dist/assets/hydrogen/starter/app/routes/collections._index.tsx +146 -0
  59. package/dist/assets/hydrogen/starter/app/routes/collections.all.tsx +185 -0
  60. package/dist/assets/hydrogen/starter/app/routes/discount.$code.tsx +47 -0
  61. package/dist/assets/hydrogen/starter/app/routes/pages.$handle.tsx +84 -0
  62. package/dist/assets/hydrogen/starter/app/routes/policies.$handle.tsx +93 -0
  63. package/dist/assets/hydrogen/starter/app/routes/policies._index.tsx +63 -0
  64. package/dist/assets/hydrogen/starter/app/routes/products.$handle.tsx +299 -0
  65. package/dist/assets/hydrogen/starter/app/routes/search.tsx +177 -0
  66. package/dist/assets/hydrogen/starter/app/styles/app.css +486 -0
  67. package/dist/assets/hydrogen/starter/app/styles/reset.css +129 -0
  68. package/dist/assets/hydrogen/starter/customer-accountapi.generated.d.ts +509 -0
  69. package/dist/assets/hydrogen/starter/env.d.ts +54 -0
  70. package/dist/assets/hydrogen/starter/package.json +50 -0
  71. package/dist/assets/hydrogen/starter/public/.gitkeep +0 -0
  72. package/dist/assets/hydrogen/starter/server.ts +119 -0
  73. package/dist/assets/hydrogen/starter/storefrontapi.generated.d.ts +1211 -0
  74. package/dist/assets/hydrogen/starter/tsconfig.json +23 -0
  75. package/dist/assets/hydrogen/starter/vite.config.ts +41 -0
  76. package/dist/assets/hydrogen/tailwind/package.json +8 -0
  77. package/dist/assets/hydrogen/tailwind/tailwind.css +6 -0
  78. package/dist/assets/hydrogen/vanilla-extract/package.json +8 -0
  79. package/dist/assets/hydrogen/virtual-routes/assets/debug-network.css +592 -0
  80. package/dist/assets/hydrogen/virtual-routes/assets/favicon-dark.svg +20 -0
  81. package/dist/assets/hydrogen/virtual-routes/assets/favicon.svg +28 -0
  82. package/dist/assets/hydrogen/virtual-routes/assets/inter-variable-font.woff2 +0 -0
  83. package/dist/assets/hydrogen/virtual-routes/assets/jetbrainsmono-variable-font.woff2 +0 -0
  84. package/dist/assets/hydrogen/virtual-routes/assets/styles.css +238 -0
  85. package/dist/assets/hydrogen/virtual-routes/components/FlameChartWrapper.jsx +123 -0
  86. package/dist/assets/hydrogen/virtual-routes/components/HydrogenLogoBaseBW.jsx +32 -0
  87. package/dist/assets/hydrogen/virtual-routes/components/HydrogenLogoBaseColor.jsx +47 -0
  88. package/dist/assets/hydrogen/virtual-routes/components/IconBanner.jsx +292 -0
  89. package/dist/assets/hydrogen/virtual-routes/components/IconClose.jsx +38 -0
  90. package/dist/assets/hydrogen/virtual-routes/components/IconDiscard.jsx +44 -0
  91. package/dist/assets/hydrogen/virtual-routes/components/IconError.jsx +61 -0
  92. package/dist/assets/hydrogen/virtual-routes/components/IconGithub.jsx +23 -0
  93. package/dist/assets/hydrogen/virtual-routes/components/IconTwitter.jsx +21 -0
  94. package/dist/assets/hydrogen/virtual-routes/components/PageLayout.jsx +7 -0
  95. package/dist/assets/hydrogen/virtual-routes/components/RequestDetails.jsx +178 -0
  96. package/dist/assets/hydrogen/virtual-routes/components/RequestTable.jsx +91 -0
  97. package/dist/assets/hydrogen/virtual-routes/components/RequestWaterfall.jsx +151 -0
  98. package/dist/assets/hydrogen/virtual-routes/lib/useDebugNetworkServer.jsx +178 -0
  99. package/dist/assets/hydrogen/virtual-routes/routes/graphiql.jsx +5 -0
  100. package/dist/assets/hydrogen/virtual-routes/routes/index.jsx +265 -0
  101. package/dist/assets/hydrogen/virtual-routes/routes/subrequest-profiler.jsx +243 -0
  102. package/dist/assets/hydrogen/virtual-routes/virtual-root.jsx +64 -0
  103. package/dist/assets/hydrogen/vite/package.json +14 -0
  104. package/dist/assets/hydrogen/vite/vite.config.js +41 -0
  105. package/dist/chokidar-2CKIHN27.js +12 -0
  106. package/dist/chunk-EO6F7WJJ.js +2 -0
  107. package/dist/chunk-FB327AH7.js +5 -0
  108. package/dist/chunk-FJPX4XUR.js +2 -0
  109. package/dist/chunk-JKOXGRAA.js +10 -0
  110. package/dist/chunk-LNQWGFTB.js +45 -0
  111. package/dist/chunk-M6JXYI3V.js +23 -0
  112. package/dist/chunk-MNT4XW23.js +2 -0
  113. package/dist/chunk-N7HFZHSO.js +1145 -0
  114. package/dist/chunk-PMDMUCNY.js +2 -0
  115. package/dist/chunk-QGLB6FFL.js +3 -0
  116. package/dist/chunk-VMIOG46Y.js +2 -0
  117. package/dist/create-app.js +1867 -34
  118. package/dist/del-CZGKV5SQ.js +11 -0
  119. package/dist/devtools-ZCRGQE64.js +8 -0
  120. package/dist/error-handler-GEQXZJ25.js +2 -0
  121. package/dist/lib-NJYCLW6W.js +22 -0
  122. package/dist/morph-ZJCCGFNC.js +30499 -0
  123. package/dist/multipart-parser-6HGDQWV7.js +3 -0
  124. package/dist/open-OD6DRFEG.js +2 -0
  125. package/dist/out-7KAQXZLP.js +2 -0
  126. package/dist/yoga.wasm +0 -0
  127. package/package.json +7 -3
@@ -0,0 +1,2045 @@
1
+ <!DOCTYPE html>
2
+ <!-- Open this file in your browser for an interactive view of your bundle -->
3
+
4
+ <!-- saved from url=(0034)https://esbuild.github.io/analyze/ -->
5
+ <!-- Snapshot: 2023/07/16 -->
6
+ <html lang="en" data-theme="null">
7
+ <head>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
9
+
10
+ <title>esbuild - Bundle Size Analyzer</title>
11
+ <link
12
+ rel="icon"
13
+ type="image/svg+xml"
14
+ href="https://esbuild.github.io/favicon.svg"
15
+ />
16
+ <meta property="og:title" content="esbuild - Bundle Size Analyzer" />
17
+ <meta property="og:type" content="website" />
18
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
19
+
20
+ <style>
21
+ html:not([data-theme='dark']) {
22
+ --bg: #fff;
23
+ --fg-on: #000;
24
+ --fg: #222;
25
+ --pre-dim: #777;
26
+ --pre-val: #870;
27
+ --pre: #222;
28
+ --bar-min-width: 1px;
29
+ }
30
+ html[data-theme='dark'] {
31
+ color-scheme: dark;
32
+ --bg: #191919;
33
+ --fg-on: #ddd;
34
+ --fg: #aaa;
35
+ --pre-dim: #999;
36
+ --pre-val: #cb8;
37
+ --pre: #ccc;
38
+ --bar-min-width: 3px;
39
+ }
40
+ @media (prefers-color-scheme: dark) {
41
+ html:not([data-theme='light']) {
42
+ color-scheme: dark;
43
+ --bg: #191919;
44
+ --fg-on: #ddd;
45
+ --fg: #aaa;
46
+ --pre-dim: #999;
47
+ --pre-val: #cb8;
48
+ --pre: #ccc;
49
+ --bar-min-width: 3px;
50
+ }
51
+ }
52
+ body {
53
+ margin: 50px;
54
+ font: 16px/20px sans-serif;
55
+ background: var(--bg);
56
+ color: var(--fg);
57
+ }
58
+ #startPanel {
59
+ margin: 10% auto 0;
60
+ }
61
+ #resultsPanel {
62
+ display: none;
63
+ }
64
+ section {
65
+ margin: auto;
66
+ max-width: 600px;
67
+ }
68
+ #logo {
69
+ background-image: url(https://esbuild.github.io/favicon.svg);
70
+ background-size: 80px;
71
+ background-repeat: no-repeat;
72
+ padding-left: 100px;
73
+ display: inline-block;
74
+ text-align: left;
75
+ margin-bottom: 10px;
76
+ }
77
+ h1 {
78
+ font-size: 80px;
79
+ line-height: 1em;
80
+ color: var(--fg-on);
81
+ margin: 0;
82
+ }
83
+ blockquote {
84
+ font-size: 29px;
85
+ line-height: 1em;
86
+ margin: 5px 0;
87
+ font-style: italic;
88
+ }
89
+ p {
90
+ margin: 30px 0;
91
+ }
92
+ a,
93
+ b {
94
+ color: var(--fg-on);
95
+ }
96
+ code {
97
+ font: 14px/20px Noto Sans Mono, monospace;
98
+ background: rgba(127, 127, 127, 0.2);
99
+ padding: 2px 4px;
100
+ margin-bottom: -2px;
101
+ border-radius: 3px;
102
+ }
103
+ pre {
104
+ color: var(--pre);
105
+ font: 14px/20px Noto Sans Mono, monospace;
106
+ padding: 0;
107
+ margin: 0;
108
+ white-space: pre-wrap;
109
+ }
110
+ .center {
111
+ text-align: center;
112
+ }
113
+ .noscript {
114
+ color: #e24834;
115
+ }
116
+ button {
117
+ padding: 5px 30px;
118
+ line-height: 1.5em;
119
+ background: none;
120
+ color: var(--fg);
121
+ border: 1px solid var(--fg);
122
+ border-radius: 100px;
123
+ cursor: pointer;
124
+ }
125
+ button:active,
126
+ button:hover {
127
+ color: var(--fg-on);
128
+ border: 1px solid var(--fg-on);
129
+ background: rgba(127, 127, 127, 0.2);
130
+ }
131
+ button:active {
132
+ padding: 6px 30px 4px;
133
+ background: rgba(0, 0, 0, 0.2);
134
+ }
135
+ #settingsPanel {
136
+ text-align: center;
137
+ }
138
+ #settingsPanel .chartSwitcher {
139
+ position: relative;
140
+ margin: 50px 0;
141
+ display: flex;
142
+ justify-content: center;
143
+ }
144
+ #settingsPanel .chartSwitcher:after {
145
+ position: absolute;
146
+ left: 0;
147
+ right: 0;
148
+ top: 0.5em;
149
+ content: '';
150
+ display: block;
151
+ border: 1px solid #ffcf00;
152
+ z-index: -1;
153
+ }
154
+ #settingsPanel .chartSwitcher span {
155
+ background: var(--bg);
156
+ padding: 0 1em;
157
+ border-left: 2px solid #ffcf00;
158
+ }
159
+ #settingsPanel .chartSwitcher span:first-child {
160
+ border: none;
161
+ }
162
+ #settingsPanel a {
163
+ text-decoration: none;
164
+ color: var(--fg);
165
+ }
166
+ #settingsPanel a:hover {
167
+ text-decoration: underline;
168
+ }
169
+ #settingsPanel a.active {
170
+ font-weight: 700;
171
+ color: var(--fg-on);
172
+ }
173
+ .summary {
174
+ max-width: 600px;
175
+ margin: auto;
176
+ }
177
+ .tooltip {
178
+ position: absolute;
179
+ background: black;
180
+ color: #999;
181
+ border-radius: 30px;
182
+ padding: 0 10px;
183
+ font-size: 14px;
184
+ line-height: 30px;
185
+ display: none;
186
+ user-select: none;
187
+ touch-action: none;
188
+ pointer-events: none;
189
+ z-index: 1;
190
+ white-space: pre;
191
+ }
192
+ .tooltip b {
193
+ color: #fff;
194
+ }
195
+ #dragTarget {
196
+ display: none;
197
+ position: fixed;
198
+ left: 0;
199
+ top: 0;
200
+ right: 0;
201
+ bottom: 0;
202
+ user-select: none;
203
+ touch-action: none;
204
+ box-shadow: inset 0 0 0 10px #ffcf00;
205
+ z-index: 10;
206
+ }
207
+ #summaryPanel {
208
+ text-align: center;
209
+ }
210
+ #summaryPanel table {
211
+ border-collapse: collapse;
212
+ margin: auto;
213
+ }
214
+ #summaryPanel td:first-child {
215
+ text-align: right;
216
+ }
217
+ #summaryPanel h2 {
218
+ font-size: 30px;
219
+ line-height: 1em;
220
+ color: var(--fg-on);
221
+ margin: 0;
222
+ }
223
+ #summaryPanel .symbol {
224
+ font-size: 30px;
225
+ padding: 0 30px;
226
+ }
227
+ #summaryPanel .formatBreakdown {
228
+ display: inline-block;
229
+ margin: 20px auto 0;
230
+ white-space: nowrap;
231
+ text-decoration: none;
232
+ }
233
+ #summaryPanel .formatBreakdown:hover .side {
234
+ text-decoration: underline;
235
+ }
236
+ #summaryPanel .bar {
237
+ display: inline-table;
238
+ vertical-align: middle;
239
+ margin: 0 0.8em;
240
+ border: 1px solid #222;
241
+ }
242
+ #summaryPanel .bar > div {
243
+ height: 20px;
244
+ display: table-cell;
245
+ }
246
+ #colorLegend {
247
+ padding-left: 1.6em;
248
+ line-height: 1.1em;
249
+ }
250
+ #colorLegend .chit {
251
+ display: inline-block;
252
+ vertical-align: middle;
253
+ width: 1.1em;
254
+ height: 1.1em;
255
+ margin-left: -1.6em;
256
+ margin-right: 0.5em;
257
+ border: 1px solid #222;
258
+ box-sizing: border-box;
259
+ }
260
+ #colorLegend small {
261
+ display: block;
262
+ opacity: 0.5;
263
+ margin-bottom: 1em;
264
+ }
265
+ #sunburstPanel main {
266
+ display: flex;
267
+ justify-content: center;
268
+ margin-top: 50px;
269
+ margin-bottom: 500px;
270
+ }
271
+ #sunburstPanel .left {
272
+ margin-right: 20px;
273
+ display: flex;
274
+ flex-direction: column;
275
+ align-items: center;
276
+ }
277
+ #sunburstPanel canvas {
278
+ display: block;
279
+ margin-bottom: 30px;
280
+ }
281
+ #sunburstPanel .details {
282
+ flex: 1;
283
+ max-width: 800px;
284
+ position: relative;
285
+ }
286
+ #sunburstPanel .dir {
287
+ font-size: 20px;
288
+ line-height: 1.2em;
289
+ display: flex;
290
+ white-space: pre;
291
+ margin: 0 10px 20px;
292
+ }
293
+ #sunburstPanel .dir .segments {
294
+ flex: 1;
295
+ height: 20px;
296
+ }
297
+ #sunburstPanel .dir a {
298
+ opacity: 0.5;
299
+ text-decoration: none;
300
+ }
301
+ #sunburstPanel .dir a[href]:hover {
302
+ text-decoration: underline;
303
+ }
304
+ #sunburstPanel .dir a:last-child {
305
+ opacity: 1;
306
+ color: var(--fg-on);
307
+ font-weight: 700;
308
+ }
309
+ #sunburstPanel .bars {
310
+ width: 100%;
311
+ }
312
+ #sunburstPanel .bars .row {
313
+ display: table-row;
314
+ text-decoration: none;
315
+ line-height: 26px;
316
+ color: var(--fg);
317
+ }
318
+ #sunburstPanel .bars .row.hover {
319
+ background: rgba(127, 127, 127, 0.2);
320
+ color: var(--fg-on);
321
+ }
322
+ #sunburstPanel .bars .row.hover .bar:after {
323
+ content: '';
324
+ position: absolute;
325
+ left: 1px;
326
+ top: 1px;
327
+ right: 1px;
328
+ bottom: 1px;
329
+ background: rgba(255, 255, 255, 0.3);
330
+ }
331
+ #sunburstPanel .bars .row > div {
332
+ display: table-cell;
333
+ }
334
+ #sunburstPanel .bars .name {
335
+ padding: 0 10px;
336
+ vertical-align: top;
337
+ white-space: pre;
338
+ }
339
+ #sunburstPanel .bars .name span {
340
+ opacity: 0.5;
341
+ }
342
+ #sunburstPanel .bars .size {
343
+ width: 100%;
344
+ padding-right: 100px;
345
+ }
346
+ #sunburstPanel .bars .bar {
347
+ position: relative;
348
+ height: 27px;
349
+ box-shadow: inset 0 0 0 1px #222;
350
+ margin-bottom: -1px;
351
+ min-width: var(--bar-min-width);
352
+ }
353
+ #sunburstPanel .bars .bar.empty {
354
+ min-width: 0;
355
+ }
356
+ #sunburstPanel .bars .last {
357
+ position: absolute;
358
+ right: -10px;
359
+ width: 0;
360
+ white-space: nowrap;
361
+ }
362
+ #whyFile {
363
+ position: fixed;
364
+ left: 0;
365
+ top: 0;
366
+ right: 0;
367
+ bottom: 0;
368
+ padding: 50px;
369
+ background: rgba(0, 0, 0, 0.6);
370
+ overflow-y: auto;
371
+ }
372
+ #whyFile .dialog {
373
+ position: relative;
374
+ margin: 0 auto;
375
+ padding: 50px;
376
+ max-width: 1000px;
377
+ background: var(--bg);
378
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.6);
379
+ box-sizing: border-box;
380
+ border-radius: 20px;
381
+ }
382
+ #whyFile .dialog:focus {
383
+ outline: none;
384
+ }
385
+ #whyFile .closeButton {
386
+ position: absolute;
387
+ right: 0;
388
+ top: 0;
389
+ width: 50px;
390
+ text-decoration: none;
391
+ font-size: 30px;
392
+ line-height: 50px;
393
+ text-align: center;
394
+ color: var(--fg);
395
+ }
396
+ #whyFile .closeButton:hover {
397
+ font-size: 35px;
398
+ color: var(--fg-on);
399
+ }
400
+ #whyFile .closeButton:active {
401
+ font-size: 30px;
402
+ }
403
+ #whyFile h2 {
404
+ border-bottom: 2px solid #ffcf00;
405
+ padding-bottom: 4px;
406
+ margin: 0;
407
+ font-size: 20px;
408
+ line-height: 1.2em;
409
+ color: var(--fg-on);
410
+ }
411
+ #whyFile .outputFile {
412
+ position: relative;
413
+ border: 1px solid rgba(127, 127, 127, 0.5);
414
+ padding: 30px 10px 10px;
415
+ border-radius: 10px;
416
+ white-space: pre-wrap;
417
+ margin-top: 10px;
418
+ line-height: 22px;
419
+ }
420
+ #whyFile .outputPath {
421
+ position: absolute;
422
+ left: 0;
423
+ top: 0;
424
+ background: rgba(127, 127, 127, 0.1);
425
+ border-right: 1px solid rgba(127, 127, 127, 0.5);
426
+ border-bottom: 1px solid rgba(127, 127, 127, 0.5);
427
+ border-top-left-radius: 10px;
428
+ border-bottom-right-radius: 10px;
429
+ padding: 5px 10px;
430
+ }
431
+ #whyFile pre {
432
+ padding: 0 0 0 30px;
433
+ }
434
+ #whyFile .comment {
435
+ color: var(--pre-dim);
436
+ }
437
+ #whyFile .keyword {
438
+ color: var(--fg-on);
439
+ }
440
+ #whyFile .string {
441
+ color: var(--pre-val);
442
+ }
443
+ #whyFile .arrow,
444
+ #whyFile .longArrow {
445
+ position: relative;
446
+ }
447
+ #whyFile .arrow:after,
448
+ #whyFile .longArrow:after {
449
+ content: '';
450
+ position: absolute;
451
+ top: 0;
452
+ width: 30px;
453
+ background: var(--fg);
454
+ opacity: 0.5;
455
+ }
456
+ #whyFile .arrow:after {
457
+ height: 40px;
458
+ --icon: url('data:image/svg+xml,<svg width="30" height="40" xmlns="http://www.w3.org/2000/svg"><path d="M16.5 26L20.5 35L23 25.5L16.5 26Z"/><path d="M5 7C15 7 19 15 20 30" fill="none" stroke="black"/></svg>');
459
+ mask-image: var(--icon);
460
+ -webkit-mask-image: var(--icon);
461
+ }
462
+ #whyFile .longArrow:after {
463
+ height: 90px;
464
+ --icon: url('data:image/svg+xml,<svg width="30" height="90" xmlns="http://www.w3.org/2000/svg"><path d="M17 76L20 85L23 76H17Z"/><path d="M5 7C15 7 20 25 20 80" fill="none" stroke="black"/></svg>');
465
+ mask-image: var(--icon);
466
+ -webkit-mask-image: var(--icon);
467
+ }
468
+ #flamePanel main {
469
+ position: relative;
470
+ margin-top: 60px;
471
+ }
472
+ #flamePanel canvas {
473
+ position: absolute;
474
+ left: -50px;
475
+ top: 0;
476
+ }
477
+ #flamePanel section {
478
+ margin-top: 30px;
479
+ min-height: 500px;
480
+ }
481
+ #warningsPanel {
482
+ max-width: 1000px;
483
+ margin: auto;
484
+ }
485
+ #warningsPanel .expand {
486
+ margin-top: 20px;
487
+ text-align: center;
488
+ }
489
+ #warningsPanel .content {
490
+ display: none;
491
+ }
492
+ #warningsPanel .warning {
493
+ margin: 30px 0;
494
+ white-space: pre-wrap;
495
+ color: var(--fg-on);
496
+ }
497
+ #warningsPanel ul {
498
+ color: var(--fg);
499
+ margin: 5px 0 0;
500
+ }
501
+ #warningsPanel .dim {
502
+ opacity: 0.5;
503
+ }
504
+ #warningsPanel pre a {
505
+ text-decoration: none;
506
+ }
507
+ #warningsPanel pre a:hover {
508
+ text-decoration: underline;
509
+ }
510
+ </style>
511
+ </head>
512
+ <body>
513
+ <div id="dragTarget"></div>
514
+ <div id="startPanel">
515
+ <section>
516
+ <div class="center">
517
+ <div id="logo">
518
+ <h1>esbuild</h1>
519
+ <blockquote>Bundle Size Analyzer</blockquote>
520
+ </div>
521
+ </div>
522
+ <p>
523
+ This page provides a way to visualize the contents of your esbuild
524
+ bundle. Add the
525
+ <a href="https://esbuild.github.io/api/#metafile">metafile</a> option
526
+ to your esbuild command, then import it using the button below:
527
+ </p>
528
+ <p class="center">
529
+ <button id="importButton">Import your metafile...</button>
530
+ </p>
531
+ <p>
532
+ Or you can
533
+ <a href="javascript:void 0" id="loadExample">load an example</a> to
534
+ play around with the visualization.
535
+ </p>
536
+ <noscript>
537
+ <p class="noscript">
538
+ &#x274C; This page requires JavaScript. Please enable JavaScript and
539
+ reload the page.
540
+ </p>
541
+ </noscript>
542
+ </section>
543
+ </div>
544
+ <div id="resultsPanel">
545
+ <div id="summaryPanel"></div>
546
+ <div id="warningsPanel"></div>
547
+ <div id="settingsPanel">
548
+ <div class="chartSwitcher">
549
+ <span
550
+ ><a id="useSunburst" href="javascript:void 0"
551
+ >Sunburst Chart</a
552
+ ></span
553
+ >
554
+ <span><a id="useFlame" href="javascript:void 0">Flame Chart</a></span>
555
+ </div>
556
+ </div>
557
+ <div id="chartPanel"></div>
558
+ </div>
559
+
560
+ <input type="file" style="display: none" />
561
+
562
+ <script>
563
+ 'use strict';
564
+ globalThis.METAFILE = '';
565
+ (() => {
566
+ var d = document,
567
+ c = Math,
568
+ Y = requestAnimationFrame,
569
+ Z = localStorage,
570
+ B = window;
571
+ var be = Object.prototype.hasOwnProperty,
572
+ Et = Array.prototype.indexOf,
573
+ $e,
574
+ Yt = /\.\w+\.map$/,
575
+ Vt = /^\(disabled\):/,
576
+ vt = navigator.platform.indexOf('Mac') >= 0,
577
+ et = () => (B.performance || Date).now(),
578
+ tt = (e) => {
579
+ try {
580
+ return Z.getItem(e);
581
+ } catch (t) {
582
+ return null;
583
+ }
584
+ },
585
+ lt = (e, t) => {
586
+ try {
587
+ Z.setItem(e, t);
588
+ } catch (r) {}
589
+ },
590
+ ye = (e) => Yt.test(e);
591
+ var Ce = (e) => e.replace(Vt, ''),
592
+ xe = (e) => ($e ? $e.format(e) : e + ''),
593
+ Ke = (e) => {
594
+ let t = e.toFixed(1).split('.', 2);
595
+ return xe(+t[0]) + '.' + t[1];
596
+ },
597
+ le = (e) =>
598
+ e === 1
599
+ ? '1 byte'
600
+ : e < 1024
601
+ ? xe(e) + ' bytes'
602
+ : e < 1024 * 1024
603
+ ? Ke(e / 1024) + ' kb'
604
+ : e < 1024 * 1024 * 1024
605
+ ? Ke(e / (1024 * 1024)) + ' mb'
606
+ : Ke(e / (1024 * 1024 * 1024)) + ' gb',
607
+ H = (e) =>
608
+ e
609
+ .replace(/&/g, '&amp;')
610
+ .replace(/</g, '&lt;')
611
+ .replace(/>/g, '&gt;'),
612
+ Be = (e) => {
613
+ let t = 0.6 + 0.4 * c.max(0, c.cos(e)),
614
+ r = 0.5 + 0.2 * c.max(0, c.cos(e + (c.PI * 2) / 3));
615
+ return (
616
+ 'hsl(' +
617
+ (e * 180) / c.PI +
618
+ 'deg, ' +
619
+ c.round(100 * t) +
620
+ '%, ' +
621
+ c.round(100 * r) +
622
+ '%)'
623
+ );
624
+ },
625
+ K = (e) => d.createTextNode(e),
626
+ rt = (e) => {
627
+ let t = d.createElement('code');
628
+ return (t.textContent = e), t;
629
+ },
630
+ Me = (e, t) => {
631
+ let r = d.createElement('span');
632
+ return (r.className = e), (r.textContent = t), r;
633
+ },
634
+ Ue = (e, t) => {
635
+ let r = e.split('/');
636
+ if (!t) return r;
637
+ for (let s = 0; s <= r.length; s++)
638
+ if (t[s] !== r[s]) {
639
+ t.length = s;
640
+ break;
641
+ }
642
+ return t;
643
+ },
644
+ Ct = (e, t) => {
645
+ let r = e.split('/');
646
+ if (!t) return r.reverse();
647
+ for (let s = 0; s <= r.length; s++)
648
+ if (t[s] !== r[r.length - s - 1]) {
649
+ t.length = s;
650
+ break;
651
+ }
652
+ return t;
653
+ },
654
+ xt = (e) => {
655
+ let t = e.lastIndexOf('/');
656
+ return t < 0 ? '.' : e.slice(0, t);
657
+ },
658
+ Mt = (e, t) => {
659
+ let r = e.split('/'),
660
+ s = t === '.' ? [] : t.split('/'),
661
+ n = 0;
662
+ for (; n < s.length && r[0] === s[n]; ) r.shift(), n++;
663
+ if (n === s.length) r.unshift('.');
664
+ else for (; n < s.length; ) r.unshift('..'), n++;
665
+ return r.join('/');
666
+ },
667
+ Nt = (e) => {
668
+ let t = e.split('/');
669
+ for (let r = t.length - 1; r >= 0; r--)
670
+ if (t[r] === 'node_modules')
671
+ return (
672
+ (t = t.slice(r + 1)),
673
+ t.length > 1 &&
674
+ /^index\.(?:[jt]sx?)$/.test(t[t.length - 1]) &&
675
+ t.pop(),
676
+ t.join('/')
677
+ );
678
+ return null;
679
+ },
680
+ Ee = !1,
681
+ bt = matchMedia('(prefers-color-scheme: dark)'),
682
+ yt = () => Re && Re(),
683
+ Ze = null,
684
+ Qe = null,
685
+ Re = null,
686
+ je = (e) => (Ze = e),
687
+ ze = (e) => (Qe = e),
688
+ Ge = (e) => (Re = e);
689
+ d.addEventListener('keydown', () => (Ee = !0), {capture: !0});
690
+ d.addEventListener('mousedown', () => (Ee = !1), {capture: !0});
691
+ B.addEventListener('wheel', (e) => Ze && Ze(e), {passive: !1});
692
+ B.addEventListener('resize', () => Qe && Qe());
693
+ try {
694
+ bt.addEventListener('change', yt);
695
+ } catch (e) {
696
+ bt.addListener(yt);
697
+ }
698
+ try {
699
+ $e = new Intl.NumberFormat();
700
+ } catch (e) {}
701
+ var it = d.getElementById('dragTarget'),
702
+ qt = d.getElementById('importButton'),
703
+ ot = 0,
704
+ nt,
705
+ It = (e, t = e.dataTransfer) =>
706
+ t && t.types && Et.call(t.types, 'Files') !== -1,
707
+ Ot = (e) => {
708
+ if (e.length === 1) {
709
+ let t = new FileReader();
710
+ (t.onload = () => De(t.result)), t.readAsText(e[0]);
711
+ }
712
+ };
713
+ d.ondragover = (e) => {
714
+ e.preventDefault();
715
+ };
716
+ d.ondragenter = (e) => {
717
+ e.preventDefault(), It(e) && ((it.style.display = 'block'), ot++);
718
+ };
719
+ d.ondragleave = (e) => {
720
+ e.preventDefault(),
721
+ It(e) && --ot === 0 && (it.style.display = 'none');
722
+ };
723
+ d.ondrop = (e) => {
724
+ e.preventDefault(),
725
+ (it.style.display = 'none'),
726
+ (ot = 0),
727
+ e.dataTransfer && e.dataTransfer.files && Ot(e.dataTransfer.files);
728
+ };
729
+ qt.onclick = function () {
730
+ nt && d.body.removeChild(nt);
731
+ let e = d.createElement('input');
732
+ (e.type = 'file'),
733
+ (e.style.display = 'none'),
734
+ d.body.appendChild(e),
735
+ (nt = e),
736
+ e.click(),
737
+ (e.onchange = () => e.files && Ot(e.files));
738
+ };
739
+ d.body.addEventListener('paste', (e) => {
740
+ e.clipboardData &&
741
+ (e.preventDefault(), De(e.clipboardData.getData('text/plain')));
742
+ });
743
+ var St = (e) => {
744
+ let t = e.inputs;
745
+ for (let r in t) if (t[r].format) return !0;
746
+ return !1;
747
+ };
748
+ var Ne = (e, t) => t.t - e.t || +(e.e > t.e) - +(e.e < t.e),
749
+ Ie = (e, t, r) => {
750
+ let s = t.split('/'),
751
+ n = s.length,
752
+ i = e,
753
+ u = '';
754
+ e.t += r;
755
+ for (let a = 0; a < n; a++) {
756
+ let l = s[a],
757
+ o = i.o,
758
+ m = o[l],
759
+ p = l + (a + 1 < n ? '/' : '');
760
+ (u += p),
761
+ be.call(o, l) || ((m = {n: p, e: u, t: 0, o: {}}), (o[l] = m)),
762
+ (m.t += r),
763
+ (i = m);
764
+ }
765
+ return n;
766
+ };
767
+ var Lt,
768
+ Pt,
769
+ Rt,
770
+ Xe = d.createElement('canvas'),
771
+ j = Xe.getContext('2d'),
772
+ Q = 1,
773
+ at,
774
+ dt,
775
+ st = 0,
776
+ Je,
777
+ Ae = {},
778
+ ut = null,
779
+ Ye = (e) => (ut = e),
780
+ Ve = (e, t, r, s, n) => {
781
+ let i = Ae[t] || Se;
782
+ if (i instanceof Array) {
783
+ let u = B.devicePixelRatio || 1;
784
+ if (Lt !== e || Pt !== u || Rt !== n) {
785
+ let a = c.round(64 * u) / 64,
786
+ l,
787
+ o,
788
+ m;
789
+ (Q = n),
790
+ (Q = c.log2(Q)),
791
+ (Q -= c.floor(Q)),
792
+ (l = Q),
793
+ (o = c.min(1, 8 * l)),
794
+ (Q = c.pow(2, Q)),
795
+ (m = (8 * c.SQRT2) / Q),
796
+ (Lt = e),
797
+ (Pt = u),
798
+ (Rt = n),
799
+ (Xe.width = Xe.height = c.round(64 * a)),
800
+ j.scale(a, a),
801
+ (j.fillStyle = i[0]),
802
+ j.fillRect(0, 0, 64, 64),
803
+ (j.globalAlpha = 0.25),
804
+ (j.fillStyle = i[1]),
805
+ j.fillRect(0, 0, 64, 64),
806
+ (j.globalAlpha = 0.67),
807
+ (j.strokeStyle = i[1]),
808
+ j.beginPath();
809
+ for (let p = 0; p <= 64; p += 16)
810
+ j.moveTo(p - 32, p + 32), j.lineTo(p + 32, p - 32);
811
+ if (
812
+ ((j.lineWidth = m * (1 - (o - l) / 2)), j.stroke(), o + l > 0)
813
+ ) {
814
+ j.beginPath();
815
+ for (let p = 8; p < 64; p += 16)
816
+ j.moveTo(p - 32, p + 32), j.lineTo(p + 32, p - 32);
817
+ (j.lineWidth = (m * (o + l)) / 2), j.stroke();
818
+ }
819
+ (at = e.createPattern(Xe, 'repeat')), (Q /= a);
820
+ }
821
+ return (
822
+ (r /= 64 * Q * u),
823
+ (r -= c.floor(r)),
824
+ (r *= 64 * Q * u),
825
+ at.setTransform(new DOMMatrix([Q, 0, 0, Q, r, s])),
826
+ at
827
+ );
828
+ }
829
+ return i;
830
+ },
831
+ _e = (e) => {
832
+ let t = Ae[e] || Se;
833
+ return t instanceof Array
834
+ ? `url('data:image/svg+xml,<svg width="26" height="26" xmlns="http://www.w3.org/2000/svg"><rect width="26" height="26" fill="${t[0]}"/><rect width="26" height="26" fill="${t[1]}" fill-opacity="25%"/><path d="M22.5 -3.5L-3.5 22.5M35.5 9.5L9.5 35.5" stroke="${t[1]}" stroke-opacity="67%" stroke-width="9.19239"/></svg>')`
835
+ : t;
836
+ },
837
+ Ht = (e, t) => {
838
+ if (dt !== e) {
839
+ let r = e.outputs;
840
+ (dt = e), (st = 0), (Je = {n: '', e: '', t: 0, o: {}});
841
+ for (let s in r) {
842
+ if (ye(s)) continue;
843
+ let i = r[s].inputs;
844
+ for (let u in i) Ie(Je, Ce(u), i[u].bytesInOutput);
845
+ }
846
+ }
847
+ st !== t &&
848
+ ((st = t),
849
+ (Ae = {}),
850
+ (Oe.innerHTML = ''),
851
+ t === 1
852
+ ? wt(Ae, Je, 0, c.PI * 2)
853
+ : t === 2 && (Ft(Ae, Je), (Oe.innerHTML = Zt)),
854
+ ut && ut());
855
+ },
856
+ wt = (e, t, r, s) => {
857
+ let n = t.t,
858
+ i = t.o,
859
+ u = [];
860
+ e[t.e] = Be(r + s / 2);
861
+ for (let a in i) u.push(i[a]);
862
+ for (let a of u.sort(Ne)) {
863
+ let l = (a.t / n) * s;
864
+ wt(e, a, r, l), (r += l);
865
+ }
866
+ },
867
+ He = Be(3.5),
868
+ we = Be(1),
869
+ Se = '#CCC',
870
+ Kt = [He, we],
871
+ $t = (e) => (e ? (e === 1 ? He : e === 2 ? we : Kt) : Se),
872
+ Fe = (e, t) =>
873
+ e === Se
874
+ ? ''
875
+ : e === we
876
+ ? t + 'ESM'
877
+ : e === He
878
+ ? t + 'CJS'
879
+ : t + 'ESM & CJS',
880
+ Ft = (e, t) => {
881
+ let r = t.o,
882
+ s = 0,
883
+ n = !1;
884
+ for (let i in r) (s |= Ft(e, r[i])), (n = !0);
885
+ if (!n) {
886
+ let i = dt.inputs[t.e],
887
+ u = i && i.format;
888
+ s = u === 'esm' ? 2 : u === 'cjs' ? 1 : 0;
889
+ }
890
+ return (e[t.e] = $t(s)), s;
891
+ },
892
+ Oe = d.createElement('div'),
893
+ Zt =
894
+ '<span class="chit" style="background:' +
895
+ we +
896
+ '"></span>ESM <small>modern, faster, smaller</small><span class="chit" style="background:' +
897
+ He +
898
+ '"></span>CommonJS <small>legacy, slower, larger</small><span class="chit" style="background:' +
899
+ Se +
900
+ '"></span>Other';
901
+ Oe.id = 'colorLegend';
902
+ var kt = d.getElementById('summaryPanel'),
903
+ Dt = (e) => (e === 1 ? 'file' : 'files'),
904
+ At = (e, t) => {
905
+ let r = e.inputs,
906
+ s = e.outputs,
907
+ n = 0,
908
+ i = 0,
909
+ u = 0,
910
+ a = 0,
911
+ l = 0,
912
+ o = 0,
913
+ m = 0,
914
+ p,
915
+ I,
916
+ P;
917
+ for (let g in r) {
918
+ let O = r[g],
919
+ x = O.format;
920
+ x === 'esm'
921
+ ? (l += O.bytes)
922
+ : x === 'cjs'
923
+ ? (o += O.bytes)
924
+ : (m += O.bytes),
925
+ n++,
926
+ (u += O.bytes);
927
+ }
928
+ for (let g in s) ye(g) || (i++, (a += s[g].bytes));
929
+ (p = c.round((200 * l) / u)),
930
+ (I = c.round((200 * o) / u)),
931
+ (kt.innerHTML =
932
+ '<table><tr><td><h2>' +
933
+ H(le(u)) +
934
+ '</h2>' +
935
+ H(xe(n)) +
936
+ ' input ' +
937
+ Dt(n) +
938
+ '</td><td class="symbol">&rarr;</td><td><h2>' +
939
+ H(le(a)) +
940
+ '</h2>' +
941
+ H(xe(i)) +
942
+ ' output ' +
943
+ Dt(i) +
944
+ '</td></tr></table>' +
945
+ (l || o
946
+ ? '<a href="javascript:void 0" class="formatBreakdown"><span class="side">' +
947
+ xe(c.round((100 * o) / u)) +
948
+ '% CJS</span><div class="bar"><div style="background:' +
949
+ He +
950
+ ';width:' +
951
+ I +
952
+ 'px"></div><div style="background:#CCC;width:' +
953
+ (200 - p - I) +
954
+ 'px"></div><div style="background:' +
955
+ we +
956
+ ';width:' +
957
+ p +
958
+ 'px"></div></div><span class="side">' +
959
+ xe(c.round((100 * l) / u)) +
960
+ '% ESM</span></a>'
961
+ : '')),
962
+ (P = kt.querySelector('.formatBreakdown')),
963
+ P && (P.onclick = t);
964
+ };
965
+ var ve = d.createElement('div'),
966
+ _t,
967
+ pt,
968
+ qe = null,
969
+ Wt = () => ve.parentElement !== null,
970
+ We = () => {
971
+ ve.remove(), qe && (qe.focus(), (qe = null));
972
+ },
973
+ Qt = (e) => {
974
+ let t = e.inputs,
975
+ r = e.outputs,
976
+ s = {},
977
+ n = {},
978
+ i = [],
979
+ u = {};
980
+ for (let l in r) {
981
+ let o = r[l],
982
+ m = o.entryPoint;
983
+ if (m) {
984
+ (s[m] = l), i.push(l);
985
+ for (let p of o.imports)
986
+ !p.external && !be.call(u, p.path) && (u[p.path] = !0);
987
+ }
988
+ }
989
+ let a = [];
990
+ for (let l of i) {
991
+ let o = r[l].entryPoint;
992
+ be.call(u, l) ||
993
+ ((n[o] = {e: o, d: void 0, i: 'entry-point'}), a.push(o));
994
+ }
995
+ if (!a.length)
996
+ for (let l of i) {
997
+ let o = r[l].entryPoint;
998
+ (n[o] = {e: o, d: void 0, i: 'entry-point'}), a.push(o);
999
+ }
1000
+ for (; a.length > 0; ) {
1001
+ let l = [];
1002
+ for (let o of a) {
1003
+ let m = t[o];
1004
+ for (let p of m.imports)
1005
+ !p.external &&
1006
+ !be.call(n, p.path) &&
1007
+ ((n[p.path] = {e: o, d: p.original, i: p.kind}),
1008
+ l.push(p.path));
1009
+ }
1010
+ a = l;
1011
+ }
1012
+ return {h: s, g: n};
1013
+ },
1014
+ Le = (e, t, r) => {
1015
+ let s = e.inputs[t],
1016
+ n = d.activeElement;
1017
+ if (!s) return;
1018
+ (!pt || _t !== e) && ((_t = e), (pt = Qt(e))),
1019
+ Ee && n && n.focus && n.tagName === 'A' && (qe = n);
1020
+ let i = d.createElement('div');
1021
+ (i.className = 'dialog'),
1022
+ (i.innerHTML =
1023
+ '<h2>' +
1024
+ H(t) +
1025
+ '</h2><p>Original size: <b>' +
1026
+ H(le(s.bytes)) +
1027
+ '</b>' +
1028
+ (r === null
1029
+ ? ''
1030
+ : '<br>Bundled size: <b>' + H(le(r)) + '</b>') +
1031
+ (s.format === 'esm'
1032
+ ? '<br>Module format: <b>ESM</b>'
1033
+ : s.format === 'cjs'
1034
+ ? '<br>Module format: <b>CommonJS</b>'
1035
+ : '') +
1036
+ '</p>'),
1037
+ el(i, pt, t);
1038
+ let u = d.createElement('a');
1039
+ (u.className = 'closeButton'),
1040
+ (u.href = 'javascript:void 0'),
1041
+ (u.onclick = We),
1042
+ (u.innerHTML = '&times;'),
1043
+ i.appendChild(u),
1044
+ (i.tabIndex = 0),
1045
+ (ve.id = 'whyFile'),
1046
+ (ve.innerHTML = ''),
1047
+ ve.appendChild(i),
1048
+ (ve.onmousedown = (a) => {
1049
+ a.target === ve && We();
1050
+ }),
1051
+ d.body.appendChild(ve),
1052
+ i.focus(),
1053
+ (i.onkeydown = (a) => {
1054
+ a.key === 'Escape' &&
1055
+ !a.shiftKey &&
1056
+ !a.metaKey &&
1057
+ !a.ctrlKey &&
1058
+ !a.altKey &&
1059
+ (a.preventDefault(), We());
1060
+ });
1061
+ },
1062
+ el = (e, t, r) => {
1063
+ let s = t.g,
1064
+ n = r,
1065
+ i = [{e: r, c: null}];
1066
+ for (;;) {
1067
+ let o = s[n];
1068
+ if (!o) return;
1069
+ if (n === o.e) break;
1070
+ i.push({e: o.e, c: {e: n, d: o.d, i: o.i}}), (n = o.e);
1071
+ }
1072
+ i.reverse();
1073
+ let u = t.h,
1074
+ a,
1075
+ l = 'Entry point';
1076
+ e.appendChild(K('This file is included in the bundle because:'));
1077
+ for (let o of i) {
1078
+ if (be.call(u, o.e)) {
1079
+ let P = d.createElement('div');
1080
+ (a = d.createElement('div')),
1081
+ (a.className = 'outputFile'),
1082
+ (P.className = 'outputPath'),
1083
+ (P.textContent = 'Output file '),
1084
+ P.appendChild(rt(u[o.e])),
1085
+ a.appendChild(P),
1086
+ e.appendChild(a);
1087
+ } else if (!a) return;
1088
+ let m = K(l + ' '),
1089
+ p = K(` is included in the bundle.
1090
+ `);
1091
+ a.firstChild &&
1092
+ a.appendChild(
1093
+ K(`
1094
+ `),
1095
+ ),
1096
+ a.appendChild(m),
1097
+ a.appendChild(rt(o.e)),
1098
+ a.appendChild(p);
1099
+ let I = o.c;
1100
+ if (I) {
1101
+ let P = I.d || Nt(I.e) || Mt(I.e, xt(o.e)),
1102
+ g = d.createElement('pre'),
1103
+ O = d.createElement('span');
1104
+ if (
1105
+ ((O.className = be.call(u, I.e) ? 'longArrow' : 'arrow'),
1106
+ I.i === 'import-statement')
1107
+ )
1108
+ g.appendChild(Me('keyword', 'import ')),
1109
+ g.appendChild(Me('string', JSON.stringify(P))),
1110
+ g.appendChild(K(';')),
1111
+ (l = 'Imported file');
1112
+ else if (I.i === 'require-call')
1113
+ g.appendChild(K('require(')),
1114
+ g.appendChild(Me('string', JSON.stringify(P))),
1115
+ g.appendChild(K(');')),
1116
+ (l = 'Required file');
1117
+ else if (I.i === 'dynamic-import')
1118
+ g.appendChild(K('import(')),
1119
+ g.appendChild(Me('string', JSON.stringify(P))),
1120
+ g.appendChild(K(');')),
1121
+ (l = 'Dynamically-imported file');
1122
+ else if (I.i === 'import-rule')
1123
+ g.appendChild(K('@import ')),
1124
+ g.appendChild(Me('string', JSON.stringify(P))),
1125
+ g.appendChild(K(';')),
1126
+ (l = 'Imported stylesheet');
1127
+ else if (I.i === 'url-token')
1128
+ g.appendChild(K('url(')),
1129
+ g.appendChild(Me('string', JSON.stringify(P))),
1130
+ g.appendChild(K(')')),
1131
+ (l = 'URL reference');
1132
+ else return;
1133
+ (p.textContent = ` contains:
1134
+ `),
1135
+ g.appendChild(O),
1136
+ g.appendChild(
1137
+ K(`
1138
+ `),
1139
+ ),
1140
+ a.appendChild(g);
1141
+ } else m.textContent = 'So ' + m.textContent.toLowerCase();
1142
+ }
1143
+ };
1144
+ var Bt = (e, t) => {
1145
+ for (; t; ) {
1146
+ if (t === e) return !0;
1147
+ t = t.r;
1148
+ }
1149
+ return !1;
1150
+ },
1151
+ tl = (e) => {
1152
+ let t = e.inputs,
1153
+ r = e.outputs,
1154
+ s = {n: '', e: '', t: 0, o: {}},
1155
+ n = (a) => {
1156
+ let l = a.o,
1157
+ o = [];
1158
+ for (let m in l) o.push(n(l[m]));
1159
+ return {e: a.e, t: a.t, l: o.sort(Ne), r: null};
1160
+ },
1161
+ i = (a, l) => {
1162
+ let o = 0;
1163
+ for (let m of a.l) {
1164
+ let p = i(m, l + 1);
1165
+ (m.r = a), p > o && (o = p);
1166
+ }
1167
+ return o + 1;
1168
+ };
1169
+ for (let a in t) Ie(s, Ce(a), 0);
1170
+ for (let a in r) {
1171
+ if (ye(a)) continue;
1172
+ let o = r[a].inputs;
1173
+ for (let m in o) Ie(s, Ce(m), o[m].bytesInOutput);
1174
+ }
1175
+ let u = n(s);
1176
+ for (; u.l.length === 1; ) u = u.l[0];
1177
+ return {a: u, f: i(u, 0)};
1178
+ },
1179
+ ft = (e, t, r) => {
1180
+ if (e === t) return;
1181
+ let s = t.r,
1182
+ n = s.t || 1,
1183
+ i = 0;
1184
+ ft(e, s, r);
1185
+ for (let u of s.l) {
1186
+ if (u === t) {
1187
+ (r.u += (r.s * i) / n), (r.s = (u.t / n) * r.s);
1188
+ break;
1189
+ }
1190
+ i += u.t;
1191
+ }
1192
+ r.p += 1;
1193
+ },
1194
+ ke = (e) => 50 * 8 * c.log(1 + c.log(1 + e / 8)),
1195
+ jt = (e) => {
1196
+ let t = d.createElement('div'),
1197
+ r = d.createElement('main'),
1198
+ s = tl(e),
1199
+ n = s.a,
1200
+ i = null,
1201
+ u = (g) => {
1202
+ n !== g && ((n = g), p(), P());
1203
+ },
1204
+ a = (g) => {
1205
+ i !== g && ((i = g), p(), P());
1206
+ },
1207
+ l = () => {
1208
+ let g = d.createElement('div'),
1209
+ O = d.createElement('canvas'),
1210
+ x = O.getContext('2d'),
1211
+ U = () => {
1212
+ let f = 2 * c.ceil(ke(s.f)),
1213
+ C = B.devicePixelRatio || 1;
1214
+ (w = c.min(c.round(innerWidth * 0.4), f)),
1215
+ (z = w),
1216
+ (W = w >> 1),
1217
+ (A = z >> 1),
1218
+ (O.style.width = w + 'px'),
1219
+ (O.style.height = z + 'px'),
1220
+ (O.width = c.round(w * C)),
1221
+ (O.height = c.round(z * C)),
1222
+ x.scale(C, C),
1223
+ pe();
1224
+ },
1225
+ he = (f, C, N, L, se, $, D) => {
1226
+ let q = ke(C + 1);
1227
+ if (q > A) return D;
1228
+ f === i && ($ |= 8);
1229
+ let de = (N + q) / 2,
1230
+ te = L + se;
1231
+ if (te - D < 1.5 / de) return D;
1232
+ let X = 2 / de;
1233
+ if ((se > X && (X = se), $ & 2))
1234
+ (x.fillStyle = Ve(x, f.e, W, A, 1)),
1235
+ x.beginPath(),
1236
+ x.arc(W, A, N, L, L + X, !1),
1237
+ x.arc(W, A, q, L + X, L, !0),
1238
+ x.fill(),
1239
+ i &&
1240
+ ($ & 8 || f.r === i) &&
1241
+ ((x.fillStyle = 'rgba(255, 255, 255, 0.3)'),
1242
+ x.fill());
1243
+ else {
1244
+ let ce = X === c.PI * 2,
1245
+ Tt = $ & 4 || ce ? q : N;
1246
+ $ & 1 && N > 0 && x.arc(W, A, N, L + X, L, !0),
1247
+ x.moveTo(W + Tt * c.cos(L), A + Tt * c.sin(L)),
1248
+ x.arc(W, A, q, L, L + X, !1),
1249
+ ce ||
1250
+ x.lineTo(W + N * c.cos(L + X), A + N * c.sin(L + X));
1251
+ }
1252
+ let me = f.t,
1253
+ ge = $ & 10,
1254
+ Te = 0,
1255
+ ne = -1 / 0;
1256
+ for (let ce of f.l)
1257
+ (ne = he(
1258
+ ce,
1259
+ C + 1,
1260
+ q,
1261
+ L + (se * Te) / me,
1262
+ (ce.t / me) * se,
1263
+ ge,
1264
+ ne,
1265
+ )),
1266
+ (Te += ce.t),
1267
+ (ge |= 4);
1268
+ return te;
1269
+ },
1270
+ pe = () => {
1271
+ x.clearRect(0, 0, w, z),
1272
+ he(F, G, ke(G), J, re, 3, -1 / 0),
1273
+ (x.strokeStyle = '#222'),
1274
+ x.beginPath(),
1275
+ he(F, G, ke(G), J, re, 1, -1 / 0),
1276
+ x.stroke(),
1277
+ G === 0 &&
1278
+ ((x.fillStyle = '#222'),
1279
+ (x.font = 'bold 16px sans-serif'),
1280
+ (x.textAlign = 'center'),
1281
+ (x.textBaseline = 'middle'),
1282
+ x.fillText(le(S.t), W, A));
1283
+ },
1284
+ ee = -c.PI / 2,
1285
+ w = 0,
1286
+ z = 0,
1287
+ W = 0,
1288
+ A = 0,
1289
+ V = null,
1290
+ ie = 0,
1291
+ T = 0,
1292
+ R = ee,
1293
+ _ = c.PI * 2,
1294
+ S = n,
1295
+ fe = T,
1296
+ oe = R,
1297
+ ae = _,
1298
+ F = n,
1299
+ G = T,
1300
+ J = R,
1301
+ re = _,
1302
+ h = (f) => {
1303
+ let C = (D, q, de, te, X) => {
1304
+ let me = ke(q + 1);
1305
+ if (me > A) return null;
1306
+ if (se >= de && se < me) {
1307
+ let ne = $ - te;
1308
+ if (
1309
+ ((ne /= c.PI * 2),
1310
+ (ne -= c.floor(ne)),
1311
+ (ne *= c.PI * 2),
1312
+ ne < X)
1313
+ )
1314
+ return D === F ? D.r : D;
1315
+ }
1316
+ let ge = D.t,
1317
+ Te = 0;
1318
+ for (let ne of D.l) {
1319
+ let ce = C(
1320
+ ne,
1321
+ q + 1,
1322
+ me,
1323
+ te + (X * Te) / ge,
1324
+ (ne.t / ge) * X,
1325
+ );
1326
+ if (ce) return ce;
1327
+ Te += ne.t;
1328
+ }
1329
+ return null;
1330
+ },
1331
+ N = f.pageX,
1332
+ L = f.pageY;
1333
+ for (let D = O; D; D = D.offsetParent)
1334
+ (N -= D.offsetLeft), (L -= D.offsetTop);
1335
+ (N -= W), (L -= A);
1336
+ let se = c.sqrt(N * N + L * L),
1337
+ $ = c.atan2(L, N);
1338
+ return C(F, G, ke(G), J, re);
1339
+ },
1340
+ b = () => {
1341
+ let f = (et() - ie) / 350;
1342
+ f < 0 || f > 1
1343
+ ? ((f = 1),
1344
+ (V = null),
1345
+ (F = S),
1346
+ (fe = 0),
1347
+ (oe = ee),
1348
+ (ae = c.PI * 2))
1349
+ : (f < 0.5
1350
+ ? (f *= 4 * f * f)
1351
+ : ((f = 1 - f), (f *= 4 * f * f), (f = 1 - f)),
1352
+ (V = Y(b))),
1353
+ (G = T + (fe - T) * f),
1354
+ (J = R + (oe - R) * f),
1355
+ (re = _ + (ae - _) * f),
1356
+ pe();
1357
+ },
1358
+ y = d.createElement('div'),
1359
+ E = (f, C, N) => {
1360
+ (y.style.display = 'block'),
1361
+ (y.style.left = f + 'px'),
1362
+ (y.style.top = C + 'px'),
1363
+ (y.innerHTML = N);
1364
+ },
1365
+ v = () => {
1366
+ y.style.display = 'none';
1367
+ },
1368
+ k = null,
1369
+ M = [];
1370
+ return (
1371
+ U(),
1372
+ Ge(pe),
1373
+ ze(U),
1374
+ je(null),
1375
+ (O.onmousemove = (f) => {
1376
+ let C = h(f);
1377
+ if ((a(C), C && C !== F.r)) {
1378
+ let N = C.e;
1379
+ if (C.r) {
1380
+ let L = C.r.e.length;
1381
+ N = H(N.slice(0, L)) + '<b>' + H(N.slice(L)) + '</b>';
1382
+ } else N = '<b>' + H(N) + '</b>';
1383
+ ue === 2
1384
+ ? (N += H(Fe(_e(C.e), ' \u2013 ')))
1385
+ : (N += ' \u2013 ' + H(le(C.t))),
1386
+ E(f.pageX, f.pageY + 20, N),
1387
+ (O.style.cursor = 'pointer');
1388
+ } else v();
1389
+ }),
1390
+ (O.onmouseout = () => {
1391
+ a(null), v();
1392
+ }),
1393
+ (O.onclick = (f) => {
1394
+ let C = h(f);
1395
+ if (!C) return;
1396
+ v();
1397
+ let N = [];
1398
+ C !== F.r
1399
+ ? (N = M.concat(n))
1400
+ : M.length > 0 && ((C = M.pop()), (N = M.slice())),
1401
+ C.l.length > 0
1402
+ ? (u(C), (M = N))
1403
+ : (f.preventDefault(), Le(e, C.e, C.t));
1404
+ }),
1405
+ (g.className = 'left'),
1406
+ g.appendChild(O),
1407
+ g.appendChild(Oe),
1408
+ (y.className = 'tooltip'),
1409
+ r.appendChild(y),
1410
+ r.appendChild(g),
1411
+ [
1412
+ pe,
1413
+ () => {
1414
+ if (
1415
+ (k !== i &&
1416
+ ((k = i),
1417
+ i || ((O.style.cursor = 'auto'), v()),
1418
+ V === null && (V = Y(b))),
1419
+ S !== n)
1420
+ ) {
1421
+ if (
1422
+ ((M.length = 0),
1423
+ V === null && (V = Y(b)),
1424
+ (ie = et()),
1425
+ Bt(F, n))
1426
+ ) {
1427
+ let f = {p: G, u: J, s: re};
1428
+ ft(F, n, f),
1429
+ (G = f.p),
1430
+ (J = f.u),
1431
+ (re = f.s),
1432
+ (fe = 0),
1433
+ (oe = ee),
1434
+ (ae = c.PI * 2),
1435
+ (F = n);
1436
+ } else if (Bt(n, F)) {
1437
+ let f = {p: 0, u: ee, s: c.PI * 2};
1438
+ ft(n, F, f), (fe = f.p), (oe = f.u), (ae = f.s);
1439
+ } else (ie = -1 / 0), (F = n);
1440
+ (T = G), (R = J), (_ = re), (S = n);
1441
+ }
1442
+ },
1443
+ ]
1444
+ );
1445
+ },
1446
+ o = () => {
1447
+ let g = d.createElement('div'),
1448
+ O = () => {
1449
+ let w = n.r,
1450
+ z = n.l,
1451
+ W = d.createElement('div'),
1452
+ A = 1;
1453
+ W.className = 'bars';
1454
+ for (let T of z) {
1455
+ let R = T.t;
1456
+ R > A && (A = R);
1457
+ }
1458
+ if (((x.length = 0), (U.length = 0), w)) {
1459
+ let T = d.createElement('a');
1460
+ (T.className = 'row'), (T.tabIndex = 0), W.appendChild(T);
1461
+ let R = d.createElement('div');
1462
+ (R.className = 'name'), T.appendChild(R);
1463
+ let _ = d.createElement('div');
1464
+ (_.className = 'size'),
1465
+ T.appendChild(_),
1466
+ (T.href = 'javascript:void 0'),
1467
+ (R.textContent = '../'),
1468
+ (T.onclick = () => {
1469
+ u(w), Ee && U.length > 0 && U[0].focus();
1470
+ }),
1471
+ (T.onfocus = T.onmouseover = () => a(w)),
1472
+ (T.onblur = T.onmouseout = () => a(null)),
1473
+ x.push(w),
1474
+ U.push(T);
1475
+ }
1476
+ for (let T of z) {
1477
+ let R = T.e.slice(n.e.length),
1478
+ _ = le(T.t),
1479
+ S = d.createElement('a');
1480
+ (S.className = 'row'), (S.tabIndex = 0), W.appendChild(S);
1481
+ let fe = /^[^/]*\/?/.exec(R)[0],
1482
+ oe = d.createElement('div');
1483
+ (oe.className = 'name'),
1484
+ (oe.innerHTML =
1485
+ H(fe) + '<span>' + R.slice(fe.length) + '</span>'),
1486
+ S.appendChild(oe);
1487
+ let ae = d.createElement('div');
1488
+ (ae.className = 'size'), S.appendChild(ae);
1489
+ let F = d.createElement('div'),
1490
+ G = _e(T.e);
1491
+ (F.className = T.t ? 'bar' : 'bar empty'),
1492
+ (F.style.background = G),
1493
+ (F.style.width = (100 * T.t) / A + '%'),
1494
+ ae.appendChild(F);
1495
+ let J = d.createElement('div');
1496
+ (J.className = 'last'),
1497
+ (J.textContent = ue === 2 ? Fe(G, '') : _),
1498
+ F.appendChild(J),
1499
+ (S.href = 'javascript:void 0'),
1500
+ (S.onclick = (re) => {
1501
+ re.preventDefault(),
1502
+ T.l.length > 0
1503
+ ? (u(T), Ee && U.length > 0 && U[0].focus())
1504
+ : Le(e, T.e, T.t);
1505
+ }),
1506
+ (S.onfocus = S.onmouseover = () => a(T)),
1507
+ (S.onblur = S.onmouseout = () => a(null)),
1508
+ x.push(T),
1509
+ U.push(S);
1510
+ }
1511
+ let V = d.createElement('div');
1512
+ (V.className = 'dir'), (V.textContent = 'Directory: ');
1513
+ let ie = d.createElement('div');
1514
+ (ie.className = 'segments'), V.appendChild(ie);
1515
+ for (let T = n; T; T = T.r) {
1516
+ let R = T.e || '/',
1517
+ _ = d.createElement('a');
1518
+ T.r && (R = R.slice(T.r.e.length)),
1519
+ (_.textContent = R),
1520
+ T !== n &&
1521
+ ((_.href = 'javascript:void 0'),
1522
+ (_.onclick = (S) => {
1523
+ S.preventDefault(),
1524
+ u(T),
1525
+ Ee &&
1526
+ U.length > 0 &&
1527
+ U[!x[0] && U.length > 1 ? 1 : 0].focus();
1528
+ })),
1529
+ ie.insertBefore(_, ie.firstChild),
1530
+ n == s.a &&
1531
+ ((_.tabIndex = -1), x.unshift(n), U.unshift(_));
1532
+ }
1533
+ (g.innerHTML = ''), g.appendChild(V), g.appendChild(W);
1534
+ },
1535
+ x = [],
1536
+ U = [],
1537
+ he = n,
1538
+ pe = null,
1539
+ ee = null;
1540
+ return (
1541
+ (g.className = 'details'),
1542
+ r.appendChild(g),
1543
+ O(),
1544
+ [
1545
+ O,
1546
+ () => {
1547
+ if ((he !== n && ((he = n), O()), pe !== i)) {
1548
+ (pe = i),
1549
+ ee && (ee.classList.remove('hover'), (ee = null));
1550
+ for (let w = i; w; w = w.r) {
1551
+ let z = x.indexOf(w);
1552
+ if (z >= 0) {
1553
+ (ee = U[z]), ee.classList.add('hover');
1554
+ break;
1555
+ }
1556
+ }
1557
+ }
1558
+ },
1559
+ ]
1560
+ );
1561
+ },
1562
+ [m, p] = l(),
1563
+ [I, P] = o();
1564
+ return (
1565
+ Ye(() => {
1566
+ m(), I();
1567
+ }),
1568
+ (t.id = 'sunburstPanel'),
1569
+ (t.innerHTML =
1570
+ '<div class="summary"><p>This visualization shows how much space each input file takes up in the final bundle. Input files that take up 0 bytes have been completely eliminated by tree-shaking.</p></div>'),
1571
+ t.appendChild(r),
1572
+ t
1573
+ );
1574
+ };
1575
+ var ll = (e) => {
1576
+ let t = e.outputs,
1577
+ r = 0,
1578
+ s = 0,
1579
+ n = [],
1580
+ i,
1581
+ u = (l) => ' \u2013 ' + le(l),
1582
+ a = (l) => {
1583
+ let o = l.o,
1584
+ m = [];
1585
+ for (let p in o) m.push(a(o[p]));
1586
+ return {n: l.n, e: l.e, m: u(l.t), t: l.t, l: m.sort(Ne)};
1587
+ };
1588
+ for (let l in t) {
1589
+ let o = l.split('/');
1590
+ o.pop(), (i = Ue(o.join('/'), i));
1591
+ }
1592
+ for (let l in t) {
1593
+ if (ye(l)) continue;
1594
+ let m = {
1595
+ n: i ? l.split('/').slice(i.length).join('/') : l,
1596
+ e: '',
1597
+ t: 0,
1598
+ o: {},
1599
+ },
1600
+ p = t[l],
1601
+ I = p.inputs,
1602
+ P = p.bytes;
1603
+ for (let g in I) {
1604
+ let O = Ie(m, Ce(g), I[g].bytesInOutput);
1605
+ O > s && (s = O);
1606
+ }
1607
+ (m.t = P), (r += P), n.push(a(m));
1608
+ }
1609
+ e: for (;;) {
1610
+ let l;
1611
+ for (let o of n) {
1612
+ let m = o.l;
1613
+ if (!m.length) continue;
1614
+ if (m.length > 1 || m[0].l.length !== 1) break e;
1615
+ let p = m[0].n;
1616
+ if (l === void 0) l = p;
1617
+ else if (l !== p) break e;
1618
+ }
1619
+ if (l === void 0) break;
1620
+ for (let o of n) {
1621
+ let m = o.l;
1622
+ if (m.length) {
1623
+ m = m[0].l;
1624
+ for (let p of m) p.n = l + p.n;
1625
+ o.l = m;
1626
+ }
1627
+ }
1628
+ s--;
1629
+ }
1630
+ for (let l of n) {
1631
+ let o = 0;
1632
+ for (let m of l.l) o += m.t;
1633
+ o < l.t &&
1634
+ l.l.push({
1635
+ n: '(unassigned)',
1636
+ e: '',
1637
+ m: u(l.t - o),
1638
+ t: l.t - o,
1639
+ l: [],
1640
+ });
1641
+ }
1642
+ return n.sort(Ne), {a: {n: '', e: '', m: '', t: r, l: n}, f: s + 1};
1643
+ },
1644
+ zt = (e) => {
1645
+ let t = ll(e),
1646
+ r = t.a.t,
1647
+ s = 0,
1648
+ n = r,
1649
+ i = d.createElement('div'),
1650
+ u = d.createElement('main'),
1651
+ a = d.createElement('canvas'),
1652
+ l = a.getContext('2d'),
1653
+ o = 0,
1654
+ m = 0,
1655
+ p = 0,
1656
+ I = 0,
1657
+ P = 1,
1658
+ g = null,
1659
+ O = null,
1660
+ x = '',
1661
+ U = '14px sans-serif',
1662
+ he = {},
1663
+ pe = 'bold ' + U,
1664
+ ee = {},
1665
+ w = 0,
1666
+ z = ee,
1667
+ W = (h) => {
1668
+ O !== h &&
1669
+ ((O = h),
1670
+ (a.style.cursor = h && !h.l.length ? 'pointer' : 'auto'),
1671
+ h || oe(),
1672
+ _());
1673
+ },
1674
+ A = (h, b) => {
1675
+ let y = h[b];
1676
+ return (
1677
+ y === void 0 &&
1678
+ ((y = l.measureText(String.fromCharCode(b)).width),
1679
+ (h[b] = y)),
1680
+ y
1681
+ );
1682
+ },
1683
+ V = () => {
1684
+ let h = B.devicePixelRatio || 1;
1685
+ (o = i.clientWidth + 2 * 50),
1686
+ (m = t.f * 24 + 1),
1687
+ (p = (o - 1e3) >> 1),
1688
+ (I = p + 1e3),
1689
+ p < 0 && (p = 0),
1690
+ I > o && (I = o),
1691
+ (I -= p),
1692
+ (P = r / I),
1693
+ (a.style.width = o + 'px'),
1694
+ (a.style.height = m + 'px'),
1695
+ (u.style.height = m + 'px'),
1696
+ (a.width = c.round(o * h)),
1697
+ (a.height = c.round(m * h)),
1698
+ l.scale(h, h),
1699
+ R();
1700
+ },
1701
+ ie = (h, b) => {
1702
+ let y = w,
1703
+ E = h.length,
1704
+ v = 0;
1705
+ for (; v < E && ((y += A(z, h.charCodeAt(v))), !(y > b)); ) v++;
1706
+ return h.slice(0, v) + '...';
1707
+ },
1708
+ T = (h, b, y, E, v) => {
1709
+ let k = I / (n - s),
1710
+ M = p + (y - s) * k,
1711
+ f = h.t * k,
1712
+ C = M + f;
1713
+ if (C < E + 1.5) return E;
1714
+ if (M + f < 0 || M > o) return C;
1715
+ let N = f < 2 ? 2 : f,
1716
+ L = (M > 0 ? M : 0) + 5,
1717
+ se = b + 24 / 2,
1718
+ $ = '',
1719
+ D = '',
1720
+ q,
1721
+ de = 0,
1722
+ te = f + M - L,
1723
+ X = h.e ? Ve(l, h.e, p - s * k, 24, k * P) : Se,
1724
+ me = 'black',
1725
+ ge = -1 / 0;
1726
+ v & 1
1727
+ ? ((me = x), (l.font = pe), (z = he), (w = 3 * A(z, 46)))
1728
+ : ((l.fillStyle = X),
1729
+ l.fillRect(M, b, N, 24),
1730
+ (v & 2 || (O && h.e === O.e)) &&
1731
+ ((l.fillStyle = 'rgba(255, 255, 255, 0.3)'),
1732
+ l.fillRect(M, b, N, 24),
1733
+ (v |= 2))),
1734
+ w < te &&
1735
+ (($ = h.n),
1736
+ (q = l.measureText($).width),
1737
+ q <= te ? (de += q) : (($ = ie($, te)), (de = te)),
1738
+ (l.fillStyle = me),
1739
+ l.fillText($, L, se)),
1740
+ v & 1 && ((l.font = U), (z = ee), (w = 3 * A(z, 46))),
1741
+ de + w < te &&
1742
+ ((D = ue === 2 ? Fe(X, ' \u2013 ') : h.m),
1743
+ (q = l.measureText(D).width),
1744
+ de + q > te && (D = ie(D, te - de)),
1745
+ (l.globalAlpha = 0.5),
1746
+ l.fillText(D, L + de, se),
1747
+ (l.globalAlpha = 1));
1748
+ for (let Te of h.l)
1749
+ (ge = T(Te, b + 24, y, ge, v & -2)), (y += Te.t);
1750
+ return (
1751
+ v & 1 ||
1752
+ ((l.strokeStyle = '#222'), l.strokeRect(M, b, N, 24)),
1753
+ C
1754
+ );
1755
+ },
1756
+ R = () => {
1757
+ let h = getComputedStyle(d.body),
1758
+ b = 0,
1759
+ y = -1 / 0;
1760
+ (g = null),
1761
+ (x = h.getPropertyValue('--fg-on')),
1762
+ l.clearRect(0, 0, o, m),
1763
+ (l.textBaseline = 'middle');
1764
+ for (let E of t.a.l) (y = T(E, 0, b, y, 1)), (b += E.t);
1765
+ },
1766
+ _ = () => {
1767
+ g === null && (g = Y(R));
1768
+ },
1769
+ S = d.createElement('div'),
1770
+ fe = (h, b, y) => {
1771
+ (S.style.display = 'block'),
1772
+ (S.style.left = h + 'px'),
1773
+ (S.style.top = b + 'px'),
1774
+ (S.innerHTML = y);
1775
+ let E = S.offsetWidth;
1776
+ for (let v = S; v; v = v.offsetParent) E += v.offsetLeft;
1777
+ E > o && (S.style.left = h + o - E + 'px');
1778
+ },
1779
+ oe = () => {
1780
+ S.style.display = 'none';
1781
+ },
1782
+ ae = (h) => {
1783
+ let b = (M, f, C) => {
1784
+ if (v >= C && v < C + M.t) {
1785
+ if (E >= f && E < f + 24 && M.e) return M;
1786
+ if (E >= f + 24)
1787
+ for (let N of M.l) {
1788
+ let L = b(N, f + 24, C);
1789
+ if (L) return L;
1790
+ C += N.t;
1791
+ }
1792
+ }
1793
+ return null;
1794
+ },
1795
+ y = h.pageX,
1796
+ E = h.pageY;
1797
+ for (let M = a; M; M = M.offsetParent)
1798
+ (y -= M.offsetLeft), (E -= M.offsetTop);
1799
+ let v = s + ((n - s) / I) * (y - p),
1800
+ k = 0;
1801
+ for (let M of t.a.l) {
1802
+ let f = b(M, 0, k);
1803
+ if (f) return f;
1804
+ k += M.t;
1805
+ }
1806
+ return null;
1807
+ },
1808
+ F = (h, b, y) => {
1809
+ let E = s,
1810
+ v = n,
1811
+ k = 0;
1812
+ if (y !== null) {
1813
+ let M = E + ((v - E) / I) * (y - p),
1814
+ f = c.pow(1.01, b);
1815
+ (E = M + (E - M) * f), (v = M + (v - M) * f);
1816
+ } else k = (h * (v - E)) / I;
1817
+ E + k < 0 ? (k = -E) : v + k > r && (k = r - v),
1818
+ (E += k),
1819
+ (v += k),
1820
+ E < 0 && (E = 0),
1821
+ v > r && (v = r),
1822
+ (s !== E || n !== v) && ((s = E), (n = v), _());
1823
+ },
1824
+ G = (h) => {
1825
+ let b = ae(h);
1826
+ if ((W(b), b)) {
1827
+ let y = b.e,
1828
+ E = y.length - b.n.length;
1829
+ (y = H(y.slice(0, E)) + '<b>' + H(y.slice(E)) + '</b>'),
1830
+ ue === 2
1831
+ ? (y += H(Fe(_e(b.e), ' \u2013 ')))
1832
+ : (y += ' \u2013 ' + H(le(b.t))),
1833
+ fe(h.pageX, h.pageY + 20, y);
1834
+ } else oe();
1835
+ },
1836
+ J = !1;
1837
+ (a.onmousedown = (h) => {
1838
+ if (((J = !1), h.button !== 2)) {
1839
+ let b = h.pageX,
1840
+ y = (v) => {
1841
+ let k = v.pageX - b;
1842
+ (!J && c.abs(k) < 3) ||
1843
+ ((J = !0), F(-k, 0, null), (b = v.pageX));
1844
+ },
1845
+ E = () => {
1846
+ d.removeEventListener('mousemove', y),
1847
+ d.removeEventListener('mouseup', E);
1848
+ };
1849
+ h.preventDefault(),
1850
+ d.addEventListener('mousemove', y),
1851
+ d.addEventListener('mouseup', E);
1852
+ }
1853
+ }),
1854
+ (a.onmousemove = (h) => {
1855
+ G(h);
1856
+ }),
1857
+ (a.onmouseout = (h) => {
1858
+ W(null);
1859
+ }),
1860
+ (a.onclick = (h) => {
1861
+ if (J) return;
1862
+ let b = ae(h);
1863
+ W(b), b && !b.l.length && Le(e, b.e, b.t);
1864
+ }),
1865
+ je((h) => {
1866
+ if (Wt()) return;
1867
+ let b = h.deltaX,
1868
+ y = h.deltaY,
1869
+ E = h.ctrlKey || h.metaKey;
1870
+ (E || c.abs(b) >= c.abs(y)) && h.preventDefault(),
1871
+ F(b, y, E ? h.pageX : null),
1872
+ G(h);
1873
+ }),
1874
+ V(),
1875
+ Promise.resolve().then(V),
1876
+ Ge(R),
1877
+ Ye(R),
1878
+ ze(V),
1879
+ (i.id = 'flamePanel'),
1880
+ (i.innerHTML =
1881
+ '<div class="summary"><p>This visualization shows which input files were placed into each output file in the bundle. Use the scroll wheel with the ' +
1882
+ (vt ? 'command' : 'control') +
1883
+ ' key to zoom in and out.</p></div>'),
1884
+ (S.className = 'tooltip'),
1885
+ u.appendChild(a),
1886
+ i.appendChild(u),
1887
+ i.appendChild(S);
1888
+ let re = d.createElement('section');
1889
+ return re.appendChild(Oe), i.appendChild(re), i;
1890
+ };
1891
+ var Gt,
1892
+ rl = (e) => {
1893
+ let t = e.inputs,
1894
+ r = {},
1895
+ s = [];
1896
+ for (let n in t) {
1897
+ let i = t[n];
1898
+ for (let u of i.imports)
1899
+ if (u.original && u.original[0] !== '.') {
1900
+ let a = r[u.original] || (r[u.original] = []);
1901
+ a.includes(u.path) || a.push(u.path);
1902
+ }
1903
+ }
1904
+ for (let n in r) {
1905
+ let i = r[n];
1906
+ if (i.length > 1) {
1907
+ let u = d.createElement('div'),
1908
+ a = d.createElement('ul'),
1909
+ l,
1910
+ o;
1911
+ (u.className = 'warning'),
1912
+ (u.innerHTML =
1913
+ 'The import path <code>' +
1914
+ H(n) +
1915
+ '</code> resolves to multiple files in the bundle:');
1916
+ for (let m of i) l = Ue(m, l);
1917
+ for (let m of i) {
1918
+ let p = m.split('/');
1919
+ l && (p = p.slice(l.length)), (o = Ct(p.join('/'), o));
1920
+ }
1921
+ for (let m of i.sort()) {
1922
+ let p = m.split('/').map(H),
1923
+ I = d.createElement('li'),
1924
+ P = '<pre><a href="javascript:void 0">',
1925
+ g = '';
1926
+ l &&
1927
+ l.length &&
1928
+ ((P +=
1929
+ '<span class="dim">' +
1930
+ p.slice(0, l.length).join('/') +
1931
+ '/</span>'),
1932
+ (p = p.slice(l.length))),
1933
+ o &&
1934
+ o.length &&
1935
+ ((g =
1936
+ '<span class="dim">' +
1937
+ (p.length > o.length ? '/' : '') +
1938
+ p.slice(p.length - o.length).join('/') +
1939
+ '</span>'),
1940
+ (p.length -= o.length)),
1941
+ (I.innerHTML =
1942
+ P + '<b>' + p.join('/') + '</b>' + g + '</a></pre>'),
1943
+ a.appendChild(I),
1944
+ (I.querySelector('a').onclick = () => {
1945
+ Le(e, m, null);
1946
+ });
1947
+ }
1948
+ u.appendChild(a), s.push(u);
1949
+ }
1950
+ }
1951
+ return s;
1952
+ },
1953
+ Jt = (e) => {
1954
+ if (Gt === e) return;
1955
+ Gt = e;
1956
+ let t = d.getElementById('warningsPanel'),
1957
+ r = rl(e),
1958
+ s = r.length;
1959
+ if (s) {
1960
+ t.innerHTML =
1961
+ '<div class="expand">\u26A0\uFE0F This bundle has <b><a href="javascript:void 0">' +
1962
+ s +
1963
+ ' warning' +
1964
+ (s === 1 ? '' : 's') +
1965
+ '</a></b><span>.</span></div>';
1966
+ let n = t.querySelector('span'),
1967
+ i = d.createElement('div');
1968
+ i.className = 'content';
1969
+ for (let u of r) i.appendChild(u);
1970
+ t.appendChild(i),
1971
+ (t.querySelector('a').onclick = () => {
1972
+ i.style.display === 'block'
1973
+ ? ((n.textContent = '.'), (i.style.display = 'none'))
1974
+ : ((n.textContent = ':'), (i.style.display = 'block'));
1975
+ });
1976
+ } else t.innerHTML = '';
1977
+ };
1978
+ var nl = d.getElementById('startPanel'),
1979
+ il = d.getElementById('resultsPanel'),
1980
+ mt = d.getElementById('chartPanel'),
1981
+ ct = d.getElementById('useSunburst'),
1982
+ ht = d.getElementById('useFlame'),
1983
+ Pe = 0,
1984
+ ue = 0,
1985
+ gt = (e) =>
1986
+ typeof e == 'object' && e !== null && !(e instanceof Array),
1987
+ De = (e) => {
1988
+ let t = JSON.parse(e),
1989
+ r = St(t),
1990
+ s = (i) => {
1991
+ Pe !== i &&
1992
+ (Pe === 1
1993
+ ? ct.classList.remove('active')
1994
+ : Pe === 2 && ht.classList.remove('active'),
1995
+ (Pe = i),
1996
+ (mt.innerHTML = ''),
1997
+ Pe === 1
1998
+ ? (mt.appendChild(jt(t)),
1999
+ ct.classList.add('active'),
2000
+ lt('chart', 'sunburst'))
2001
+ : Pe === 2 &&
2002
+ (mt.appendChild(zt(t)),
2003
+ ht.classList.add('active'),
2004
+ lt('chart', 'flame')));
2005
+ },
2006
+ n = (i) => {
2007
+ ue !== i && ((ue = i), Ht(t, ue));
2008
+ };
2009
+ if (!gt(t) || !gt(t.inputs) || !gt(t.outputs))
2010
+ throw new Error('Invalid metafile format');
2011
+ (nl.style.display = 'none'),
2012
+ (il.style.display = 'block'),
2013
+ (ct.onclick = () => s(1)),
2014
+ (ht.onclick = () => s(2)),
2015
+ (Pe = 0),
2016
+ (ue = 0),
2017
+ At(t, () => n(ue === 1 ? 2 : 1)),
2018
+ Jt(t),
2019
+ We(),
2020
+ s(tt('chart') === 'flame' ? 2 : 1),
2021
+ n(1);
2022
+ },
2023
+ ol = d.documentElement.dataset,
2024
+ Xt = () => {
2025
+ (ol.theme = tt('theme') + ''), Re && Re();
2026
+ };
2027
+ Xt();
2028
+ B.addEventListener('storage', Xt);
2029
+ d.getElementById('loadExample').onclick = () => {
2030
+ fetch('example-metafile.json')
2031
+ .then((e) => e.text())
2032
+ .then(De);
2033
+ };
2034
+ if (true) {
2035
+ try {
2036
+ De(atob(location.hash.slice(1) || globalThis.METAFILE));
2037
+ } catch (e) {}
2038
+ try {
2039
+ history.replaceState({}, '', location.pathname);
2040
+ } catch (e) {}
2041
+ }
2042
+ })();
2043
+ </script>
2044
+ </body>
2045
+ </html>