@vitejs/devtools-vite 0.0.0-alpha.21 → 0.0.0-alpha.23

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/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { BirpcReturn } from "birpc";
2
- import { RpcFunctionsCollector, RpcFunctionsCollectorBase } from "birpc-x";
3
2
  import { WebSocket } from "ws";
3
+ import { RpcFunctionsCollector, RpcFunctionsCollectorBase } from "birpc-x";
4
+ import { Patch } from "immer";
4
5
  import { Plugin, ResolvedConfig, ViteDevServer } from "vite";
5
6
  import { Raw } from "vue";
6
7
  import { ChildProcess } from "node:child_process";
@@ -23,14 +24,14 @@ interface EventEmitter<Events extends EventsMap> {
23
24
  * @param event The event name.
24
25
  * @param args The arguments for listeners.
25
26
  */
26
- emit: <K extends keyof Events>(event: K, ...args: Parameters<Events[K]>) => void;
27
+ emit: <K$1 extends keyof Events>(event: K$1, ...args: Parameters<Events[K$1]>) => void;
27
28
  /**
28
29
  * Calls the listeners for a given event once and then removes the listener.
29
30
  *
30
31
  * @param event The event name.
31
32
  * @param args The arguments for listeners.
32
33
  */
33
- emitOnce: <K extends keyof Events>(event: K, ...args: Parameters<Events[K]>) => void;
34
+ emitOnce: <K$1 extends keyof Events>(event: K$1, ...args: Parameters<Events[K$1]>) => void;
34
35
  /**
35
36
  * Event names in keys and arrays with listeners in values.
36
37
  *
@@ -54,7 +55,7 @@ interface EventEmitter<Events extends EventsMap> {
54
55
  * @param cb The listener function.
55
56
  * @returns Unbind listener from event.
56
57
  */
57
- on: <K extends keyof Events>(event: K, cb: Events[K]) => EventUnsubscribe;
58
+ on: <K$1 extends keyof Events>(event: K$1, cb: Events[K$1]) => EventUnsubscribe;
58
59
  /**
59
60
  * Add a listener for a given event once.
60
61
  *
@@ -72,7 +73,7 @@ interface EventEmitter<Events extends EventsMap> {
72
73
  * @param cb The listener function.
73
74
  * @returns Unbind listener from event.
74
75
  */
75
- once: <K extends keyof Events>(event: K, cb: Events[K]) => EventUnsubscribe;
76
+ once: <K$1 extends keyof Events>(event: K$1, cb: Events[K$1]) => EventUnsubscribe;
76
77
  }
77
78
  //#endregion
78
79
  //#region ../kit/src/types/docks.d.ts
@@ -85,9 +86,11 @@ interface DevToolsDockHost {
85
86
  update: (patch: Partial<T>) => void;
86
87
  };
87
88
  update: (entry: DevToolsDockUserEntry) => void;
88
- values: () => DevToolsDockUserEntry[];
89
+ values: (options?: {
90
+ includeBuiltin?: boolean;
91
+ }) => DevToolsDockEntry[];
89
92
  }
90
- type DevToolsDockEntryCategory = 'app' | 'framework' | 'web' | 'advanced' | 'default';
93
+ type DevToolsDockEntryCategory = 'app' | 'framework' | 'web' | 'advanced' | 'default' | 'builtin';
91
94
  type DevToolsDockEntryIcon = string | {
92
95
  light: string;
93
96
  dark: string;
@@ -163,11 +166,56 @@ interface DevToolsViewCustomRender extends DevToolsDockEntryBase {
163
166
  }
164
167
  interface DevToolsViewBuiltin extends DevToolsDockEntryBase {
165
168
  type: '~builtin';
166
- id: '~terminals' | '~logs' | '~client-auth-notice';
169
+ id: '~terminals' | '~logs' | '~client-auth-notice' | '~settings';
167
170
  }
168
171
  type DevToolsDockUserEntry = DevToolsViewIframe | DevToolsViewAction | DevToolsViewCustomRender | DevToolsViewLauncher;
169
172
  type DevToolsDockEntry = DevToolsDockUserEntry | DevToolsViewBuiltin;
170
173
  //#endregion
174
+ //#region ../rpc/src/presets/ws/server.d.ts
175
+ interface DevToolsNodeRpcSessionMeta {
176
+ id: number;
177
+ ws?: WebSocket;
178
+ clientAuthId?: string;
179
+ isTrusted?: boolean;
180
+ subscribedStates: Set<string>;
181
+ }
182
+ //#endregion
183
+ //#region ../kit/src/utils/shared-state.d.ts
184
+ type ImmutablePrimitive = undefined | null | boolean | string | number | Function;
185
+ type Immutable<T> = T extends ImmutablePrimitive ? T : T extends Array<infer U> ? ImmutableArray<U> : T extends Map<infer K, infer V> ? ImmutableMap<K, V> : T extends Set<infer M> ? ImmutableSet<M> : ImmutableObject<T>;
186
+ type ImmutableArray<T> = ReadonlyArray<Immutable<T>>;
187
+ type ImmutableMap<K$1, V$1> = ReadonlyMap<Immutable<K$1>, Immutable<V$1>>;
188
+ type ImmutableSet<T> = ReadonlySet<Immutable<T>>;
189
+ type ImmutableObject<T> = { readonly [K in keyof T]: Immutable<T[K]> };
190
+ /**
191
+ * State host that is immutable by default with explicit mutate.
192
+ */
193
+ interface SharedState<T> {
194
+ /**
195
+ * Get the current state. Immutable.
196
+ */
197
+ value: () => Immutable<T>;
198
+ /**
199
+ * Subscribe to state changes.
200
+ */
201
+ on: EventEmitter<SharedStateEvents<T>>['on'];
202
+ /**
203
+ * Mutate the state.
204
+ */
205
+ mutate: (fn: (state: T) => void, syncId?: string) => void;
206
+ /**
207
+ * Apply patches to the state.
208
+ */
209
+ patch: (patches: Patch[], syncId?: string) => void;
210
+ /**
211
+ * Sync IDs that have been applied to the state.
212
+ */
213
+ syncIds: Set<string>;
214
+ }
215
+ interface SharedStateEvents<T> {
216
+ updated: (fullState: T, patches: Patch[] | undefined, syncId: string) => void;
217
+ }
218
+ //#endregion
171
219
  //#region ../kit/src/types/rpc-augments.d.ts
172
220
  /**
173
221
  * To be extended
@@ -177,6 +225,10 @@ interface DevToolsRpcClientFunctions {}
177
225
  * To be extended
178
226
  */
179
227
  interface DevToolsRpcServerFunctions {}
228
+ /**
229
+ * To be extended
230
+ */
231
+ interface DevToolsRpcSharedStates {}
180
232
  //#endregion
181
233
  //#region ../kit/src/client/rpc.d.ts
182
234
  interface DevToolsRpcClient {
@@ -220,6 +272,10 @@ interface DevToolsRpcClient {
220
272
  * The client RPC host
221
273
  */
222
274
  client: DevToolsClientRpcHost;
275
+ /**
276
+ * The shared state host
277
+ */
278
+ sharedState: RpcSharedStateHost;
223
279
  }
224
280
  //#endregion
225
281
  //#region ../kit/src/client/docks.d.ts
@@ -445,28 +501,39 @@ interface ConnectionMeta {
445
501
  }
446
502
  //#endregion
447
503
  //#region ../kit/src/types/rpc.d.ts
448
- interface DevToolsNodeRpcSessionMeta {
449
- id: number;
450
- ws?: WebSocket;
451
- clientAuthId?: string;
452
- isTrusted?: boolean;
453
- }
454
504
  interface DevToolsNodeRpcSession {
455
505
  meta: DevToolsNodeRpcSessionMeta;
456
506
  rpc: BirpcReturn<DevToolsRpcClientFunctions, DevToolsRpcServerFunctions, false>;
457
507
  }
508
+ interface RpcBroadcastOptions<METHOD, Args extends any[]> {
509
+ method: METHOD;
510
+ args: Args;
511
+ optional?: boolean;
512
+ event?: boolean;
513
+ filter?: (client: BirpcReturn<DevToolsRpcClientFunctions, DevToolsRpcServerFunctions, false>) => boolean | void;
514
+ }
458
515
  type RpcFunctionsHost = RpcFunctionsCollectorBase<DevToolsRpcServerFunctions, DevToolsNodeContext> & {
459
516
  /**
460
517
  * Broadcast a message to all connected clients
461
518
  */
462
- broadcast: <T extends keyof DevToolsRpcClientFunctions, Args extends Parameters<DevToolsRpcClientFunctions[T]>>(name: T, ...args: Args) => Promise<(Awaited<ReturnType<DevToolsRpcClientFunctions[T]>> | undefined)[]>;
519
+ broadcast: <T extends keyof DevToolsRpcClientFunctions, Args extends Parameters<DevToolsRpcClientFunctions[T]>>(options: RpcBroadcastOptions<T, Args>) => Promise<void>;
463
520
  /**
464
521
  * Get the current RPC client
465
522
  *
466
523
  * Available in RPC functions to get the current RPC client
467
524
  */
468
525
  getCurrentRpcSession: () => DevToolsNodeRpcSession | undefined;
526
+ /**
527
+ * The shared state host
528
+ */
529
+ sharedState: RpcSharedStateHost;
469
530
  };
531
+ interface RpcSharedStateGetOptions<T> {
532
+ initialValue?: T;
533
+ }
534
+ interface RpcSharedStateHost {
535
+ get: <T extends keyof DevToolsRpcSharedStates>(key: T, options?: RpcSharedStateGetOptions<DevToolsRpcSharedStates[T]>) => Promise<SharedState<DevToolsRpcSharedStates[T]>>;
536
+ }
470
537
  //#endregion
471
538
  //#region ../kit/src/types/vite-augment.d.ts
472
539
  declare module 'vite' {
package/dist/index.mjs CHANGED
@@ -1069,9 +1069,9 @@ const weakMap = /* @__PURE__ */ new WeakMap();
1069
1069
  function getLogsManager(context) {
1070
1070
  let manager = weakMap.get(context);
1071
1071
  if (!manager) {
1072
- const dirs = [join(context.cwd, ".rolldown"), join(process$1.cwd(), ".rolldown")];
1072
+ const dirs = [join(context.cwd, "node_modules", ".rolldown"), join(process$1.cwd(), "node_modules", ".rolldown")];
1073
1073
  const dir = dirs.find((dir$1) => existsSync(dir$1));
1074
- if (!dir) console.warn("[Vite DevTools] Rolldown logs directory `.rolldown` not found, you might want to run build with `build.rolldownOptions.debug` enabled first.");
1074
+ if (!dir) console.warn("[Vite DevTools] Rolldown logs directory `.rolldown` not found, you might want to run build with `build.rolldownOptions.devtools` enabled first.");
1075
1075
  manager = new RolldownLogsManager(dir ?? dirs[0]);
1076
1076
  }
1077
1077
  return manager;
@@ -9374,8 +9374,15 @@ async function getPackagesManifest(reader) {
9374
9374
  };
9375
9375
  });
9376
9376
  await Promise.all(packages.map(async (p) => {
9377
- const manifest = await (0, import_lib.readProjectManifestOnly)(p.dir);
9378
- const packageKey = `${manifest.name}@${manifest.version}`;
9377
+ let packageKey = "";
9378
+ let manifest = null;
9379
+ try {
9380
+ manifest = await (0, import_lib.readProjectManifestOnly)(p.dir);
9381
+ packageKey = `${manifest.name}@${manifest.version}`;
9382
+ } catch (err) {
9383
+ if (err?.code === "ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND") packageKey = `${p.dir}`;
9384
+ else throw err;
9385
+ }
9379
9386
  const packageInfo = packagesManifest.get(packageKey);
9380
9387
  const importers = getImporters(p.path, p.dir).map((i) => ({
9381
9388
  path: i,
@@ -9391,8 +9398,8 @@ async function getPackagesManifest(reader) {
9391
9398
  transformedCodeSize: packageInfo.transformedCodeSize + p.transformedCodeSize
9392
9399
  });
9393
9400
  else packagesManifest.set(packageKey, {
9394
- name: manifest.name,
9395
- version: manifest.version,
9401
+ name: manifest?.name || p.dir,
9402
+ version: manifest?.version || "(unknown)",
9396
9403
  dir: p.dir,
9397
9404
  files: [{
9398
9405
  path: p.path,
@@ -9425,7 +9432,12 @@ const rolldownGetPackages = defineRpcFunction({
9425
9432
  let files = p.files;
9426
9433
  if (duplicated) files = await Promise.all(files.map(async (f) => {
9427
9434
  const importers = await Promise.all(f.importers.map(async (i) => {
9428
- const manifest = isNodeModulePath(i.path) ? await (0, import_lib.readProjectManifestOnly)(getPackageDirPath(i.path)) : null;
9435
+ let manifest = null;
9436
+ try {
9437
+ if (isNodeModulePath(i.path)) manifest = await (0, import_lib.readProjectManifestOnly)(getPackageDirPath(i.path));
9438
+ } catch (err) {
9439
+ if (err?.code !== "ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND") throw err;
9440
+ }
9429
9441
  return {
9430
9442
  ...i,
9431
9443
  version: manifest?.version ?? ""
@@ -9589,13 +9601,12 @@ function DevToolsViteUI() {
9589
9601
  return {
9590
9602
  name: "vite:devtools:vite-ui",
9591
9603
  devtools: { setup(ctx) {
9592
- console.log("Vite DevTools Vite plugin setup");
9593
9604
  for (const fn of rpcFunctions) ctx.rpc.register(fn);
9594
9605
  ctx.views.hostStatic("/.devtools-vite/", clientPublicDir);
9595
9606
  ctx.docks.register({
9596
9607
  id: "vite",
9597
9608
  title: "Vite",
9598
- icon: "builtin:vite-plus-core",
9609
+ icon: "https://vite.dev/logo.svg",
9599
9610
  type: "iframe",
9600
9611
  url: "/.devtools-vite/"
9601
9612
  });
package/dist/nitro.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2025-12-22T07:25:40.938Z",
2
+ "date": "2026-01-07T07:39:00.844Z",
3
3
  "preset": "static",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/.devtools-vite/_nuxt/wlAuDjxN.js"}}</script><title>Vite DevTools</title><link rel="stylesheet" href="/.devtools-vite/_nuxt/entry.BVWKKagY.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/.devtools-vite/_nuxt/wlAuDjxN.js"><meta name="description" content="DevTools for Vite"><meta property="og:title" content="Vite DevTools"><meta property="og:description" content="DevTools for Vite"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><script type="module" src="/.devtools-vite/_nuxt/wlAuDjxN.js" crossorigin></script><script id="unhead:payload" type="application/json">{"title":"Vite DevTools"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1766388340862,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/.devtools-vite/",buildId:"92f58f41-f5d8-4eb9-8df8-90c37ec07cf8",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/.devtools-vite/_nuxt/C43a-rz2.js"}}</script><title>Vite DevTools</title><link rel="stylesheet" href="/.devtools-vite/_nuxt/entry.CO9FV_5d.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/.devtools-vite/_nuxt/C43a-rz2.js"><meta name="description" content="DevTools for Vite"><meta property="og:title" content="Vite DevTools"><meta property="og:description" content="DevTools for Vite"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><script type="module" src="/.devtools-vite/_nuxt/C43a-rz2.js" crossorigin></script><script id="unhead:payload" type="application/json">{"title":"Vite DevTools"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1767771540754,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/.devtools-vite/",buildId:"d61b2fbd-b4b2-4f0d-9b46-a34c82edf808",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/.devtools-vite/_nuxt/wlAuDjxN.js"}}</script><title>Vite DevTools</title><link rel="stylesheet" href="/.devtools-vite/_nuxt/entry.BVWKKagY.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/.devtools-vite/_nuxt/wlAuDjxN.js"><meta name="description" content="DevTools for Vite"><meta property="og:title" content="Vite DevTools"><meta property="og:description" content="DevTools for Vite"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><script type="module" src="/.devtools-vite/_nuxt/wlAuDjxN.js" crossorigin></script><script id="unhead:payload" type="application/json">{"title":"Vite DevTools"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1766388340863,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/.devtools-vite/",buildId:"92f58f41-f5d8-4eb9-8df8-90c37ec07cf8",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/.devtools-vite/_nuxt/C43a-rz2.js"}}</script><title>Vite DevTools</title><link rel="stylesheet" href="/.devtools-vite/_nuxt/entry.CO9FV_5d.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/.devtools-vite/_nuxt/C43a-rz2.js"><meta name="description" content="DevTools for Vite"><meta property="og:title" content="Vite DevTools"><meta property="og:description" content="DevTools for Vite"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><script type="module" src="/.devtools-vite/_nuxt/C43a-rz2.js" crossorigin></script><script id="unhead:payload" type="application/json">{"title":"Vite DevTools"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1767771540755,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/.devtools-vite/",buildId:"d61b2fbd-b4b2-4f0d-9b46-a34c82edf808",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
@@ -1 +1 @@
1
- import{C as e,Et as t,H as n,Ht as r,an as i,ct as a,dt as o,mt as s,pt as c}from"#entry";import{t as l}from"./s37iQDTO.js";var u={class:`antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=e({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},statusCode:{type:Number,default:404},statusMessage:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`}},setup(e){let g=e;return n({title:`${g.statusCode} - ${g.statusMessage} | ${g.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:`*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;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;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(n,g)=>{let _=l;return t(),o(`div`,u,[a(`div`,d,[a(`h1`,{class:`font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]`,textContent:i(e.statusCode)},null,8,f),a(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:i(e.statusMessage)},null,8,p),a(`p`,{class:`mb-4 px-2 text-[#64748B] text-md`,textContent:i(e.description)},null,8,m),a(`div`,h,[s(_,{to:`/`,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:r(()=>[c(i(e.backHome),1)]),_:1})])])])}}},[[`__scopeId`,`data-v-8131e8fe`]]);export{g as default};
1
+ import{C as e,Et as t,H as n,Ht as r,an as i,ct as a,dt as o,mt as s,pt as c}from"#entry";import{t as l}from"./s37iQDTO.js";var u={class:`antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=e({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},statusCode:{type:Number,default:404},statusMessage:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`}},setup(e){let g=e;return n({title:`${g.statusCode} - ${g.statusMessage} | ${g.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:`*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;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;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(n,g)=>{let _=l;return t(),o(`div`,u,[a(`div`,d,[a(`h1`,{class:`font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]`,textContent:i(e.statusCode)},null,8,f),a(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:i(e.statusMessage)},null,8,p),a(`p`,{class:`mb-4 px-2 text-[#64748B] text-md`,textContent:i(e.description)},null,8,m),a(`div`,h,[s(_,{to:`/`,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:r(()=>[c(i(e.backHome),1)]),_:1})])])])}}},[[`__scopeId`,`data-v-16937a83`]]);export{g as default};
@@ -0,0 +1 @@
1
+ import{At as e,Bt as t,Et as n,G as r,Ht as i,Jt as a,Nt as o,Rt as s,St as c,Ut as l,Yt as u,an as d,at as f,c as p,ct as m,dt as h,ft as g,g as _,ht as v,in as y,lt as b,mt as x,nn as S,p as C,pt as w,st as T,tn as E,ut as D,x as ee,y as O,zt as k}from"#entry";import{t as A}from"./s37iQDTO.js";import{r as j}from"./EZmie0b_.js";import{t as M}from"./mJg3pdS2.js";import{r as N,t as P}from"./CE23KUMI.js";import{i as F,t as te}from"./R6f4Y_SJ.js";import{n as ne,r as I,t as L}from"./XY_il7uL.js";import{a as re,c as ie,i as ae,n as R,o as z,r as oe,t as se}from"./xtsFKyex.js";import{t as ce}from"./BwW8gZ6K.js";import{n as le,r as ue,t as B}from"./Bij65W5n.js";var V=[`onClick`],H=v({__name:`FlatList`,props:{chunks:{},session:{},link:{type:Boolean,default:!0},basic:{type:Boolean,default:!1}},emits:[`select`],setup(e,{emit:t}){let r=t;return(t,a)=>{let o=j,s=F,c=L;return n(),b(c,{items:e.chunks,"key-prop":`chunk_id`},{default:i(({item:t})=>[m(`div`,{flex:``,pb2:``,onClick:e=>r(`select`,t)},[x(s,{chunk:t,basic:e.basic,link:e.link,"w-full":``,"font-mono":``,border:`~ rounded base`,px2:``,py1:``,"text-sm":``,hover:`bg-active`,flex:`~ gap-4 items-center`},{"left-after":i(()=>[t.is_initial?(n(),b(o,{key:0,text:`initial`})):D(``,!0)]),_:2},1032,[`chunk`,`basic`,`link`])],8,V)]),_:1},8,[`items`])}}}),de=Object.assign(H,{__name:`ChunksFlatList`}),U={op50:``,"font-mono":``,w12:``},W=[`title`],G={flex:`~ gap-1 items-center`},K=v({__name:`Graph`,props:{session:{},chunks:{},entryId:{default:``}},setup(e){let t=e,a=T(()=>t.chunks),o=r();return M({modules:a,spacing:{width:450,height:55,linkOffset:15,margin:120,gap:150},generateGraph:e=>{let{isFirstCalculateGraph:n,scale:r,spacing:i,tree:o,hierarchy:s,collapsedNodes:l,container:u,modulesMap:d,nodes:f,links:p,nodesMap:m,linksMap:h,width:g,height:_,childToParentMap:v}=e;return()=>{g.value=window.innerWidth,_.value=window.innerHeight;let e=a.value.filter(e=>t.entryId?e.id===t.entryId:e.reason===`entry`),y=new Set,b=s({module:{id:`~root`}},t=>`${t.module?.id}`==`~root`?(e.forEach(e=>{y.add(e),n.value&&v.set(e.id,`~root`)}),e.map(e=>({module:e,expanded:!l.has(e.id),hasChildren:!1}))):l.has(`${t.module?.id}`)?[]:t.module.imports?.map(e=>{let r=d.value.get(`${e.chunk_id}`);if(!(!r||y.has(r)))return n.value&&v.set(r.id,t.module.id),y.add(r),{module:r,expanded:!l.has(r.id),hasChildren:!1}}).filter(e=>e!==void 0));n.value&&=!1,o().nodeSize([E(i.height),E(i.width)+E(i.gap)])(b);let x=b.descendants();for(let e of x)[e.x,e.y]=[e.y-E(i.width),e.x];let S=Math.min(...x.map(e=>e.x)),C=Math.min(...x.map(e=>e.y));if(S<E(i.margin))for(let e of x)e.x+=Math.abs(S)+E(i.margin);if(C<E(i.margin))for(let e of x)e.y+=Math.abs(C)+E(i.margin);f.value=x,m.clear();for(let e of x)m.set(`${e.data.module.id}`,e);let w=b.links().filter(e=>`${e.source.data.module.id}`!=`~root`).map(e=>({...e,id:`${e.source.data.module.id}|${e.target.data.module.id}`})),T=a.value.flatMap(e=>e.imports.filter(t=>!w.find(n=>n.id===`${e.chunk_id}|${t.chunk_id}`)).map(t=>({source:m.get(`${e.chunk_id}`),target:m.get(`${t.chunk_id}`),id:`${e.chunk_id}|${t.chunk_id}`}))),D=[...w,...T];h.clear();for(let e of D)h.set(e.id,e);p.value=D,c(()=>{g.value=u.value.scrollWidth/r.value+E(i.margin),_.value=u.value.scrollHeight/r.value+E(i.margin)})}}}),(t,r)=>{let s=j,c=A,l=B;return n(),b(l,{session:e.session,modules:a.value,"expand-controls":!1},{default:i(({node:e})=>[x(c,{class:`flex items-center`,to:{path:E(o).path,query:{chunk:e.data.module.chunk_id}}},{default:i(()=>[m(`span`,U,`#`+d(e.data.module.id),1),m(`div`,{flex:`~ gap-2 items-center`,title:`Chunk #${e.data.module.id}`},[m(`div`,null,d(e.data.module.name||`[unnamed]`),1),x(s,{text:e.data.module.reason},null,8,[`text`]),e.data.module.is_initial?(n(),b(s,{key:0,text:`initial`})):D(``,!0)],8,W),r[1]||=m(`div`,{"flex-auto":``},null,-1),m(`div`,G,[r[0]||=m(`div`,{"i-ph-package-duotone":``},null,-1),w(` `+d(e.data.module.modules.length),1)])]),_:2},1032,[`to`])]),_:1},8,[`session`,`modules`])}}}),fe=Object.assign(K,{__name:`ChunksGraph`}),q={grid:`~ cols-[max-content_1fr] gap-2`,p4:``},J={flex:`~ col gap-4`},Y={key:0,grid:`~ cols-[250px_1fr] gap-1`},X=[`onClick`],Z={key:0,"text-primary":``},pe={key:1},Q=[`onClick`],$=[`title`],me=v({__name:`Sunburst`,props:{graph:{},selected:{}},emits:[`select`],setup(r,{emit:i}){let a=r,c=i,u=s(`el`);return t(()=>u.value?.append(a.graph.el)),(t,i)=>{let a=R,s=N,p=o(`tooltip`);return n(),h(`div`,q,[m(`div`,{ref_key:`el`,ref:u,"w-500px":``},null,512),m(`div`,J,[x(a,{border:`b base`,py2:``,selected:r.selected,options:r.graph.options,onSelect:i[0]||=e=>c(`select`,e)},null,8,[`selected`,`options`]),r.selected?(n(),h(`div`,Y,[(n(!0),h(f,null,e(r.selected.children,e=>(n(),h(f,{key:e.id},[m(`button`,{"ws-nowrap":``,"text-nowrap":``,"text-left":``,"overflow-hidden":``,"text-ellipsis":``,"text-sm":``,hover:`bg-active`,rounded:``,px2:``,onClick:t=>c(`select`,e)},[e.meta&&e.meta===r.selected?.meta?(n(),h(`span`,Z,`(self)`)):(n(),h(`span`,pe,d(e.meta?.name||e.id),1))],8,X),m(`button`,{relative:``,flex:`~ gap-1 items-center`,hover:`bg-active`,rounded:``,onClick:t=>c(`select`,e)},[m(`div`,{"h-5":``,rounded:``,shadow:``,border:`~ base`,style:y({background:E(z)(r.graph.options.getColor?.(e)||`#000`),width:`${e.size/r.selected.size*100}%`})},null,4),x(s,{"text-xs":``,bytes:e.size,total:r.selected.size,"percent-ratio":3},null,8,[`bytes`,`total`]),e.children.length>0?l((n(),h(`div`,{key:0,title:`${e.children.length} modules`,"text-xs":``,"op-fade":``},[w(` (`+d(e.children.length)+`) `,1)],8,$)),[[p,`${e.children.length} modules`]]):D(``,!0)],8,Q)],64))),128))])):D(``,!0)])])}}}),he=Object.assign(me,{__name:`ChunksSunburst`}),ge=v({__name:`Flamegraph`,props:{graph:{}},setup(e){let r=e,i=s(`el`);return t(()=>i.value?.append(r.graph.el)),(e,t)=>(n(),h(`div`,{ref_key:`el`,ref:i},null,512))}}),_e=Object.assign(ge,{__name:`ChunksFlamegraph`}),ve={key:1,relative:``,"max-h-screen":``,"of-hidden":``},ye={absolute:``,"left-4":``,"top-4":``,"z-panel-nav":``},be={key:0,h10:``,mr2:``,flex:`~ items-center`},xe={flex:`~ gap-2 items-center`,p2:``,border:`t base`},Se=[`onClick`],Ce={key:0,class:`px5 pt32 of-auto h-screen`,flex:`~ col gap-4`},we={key:1,class:`px5 pt32 of-auto h-screen`,flex:`~ col gap-4`},Te={key:3,"of-auto":``,"h-screen":``,flex:`~ col gap-2`,pt32:``},Ee={key:4,"of-auto":``,"h-screen":``,flex:`~ col gap-2`,pt32:``},De={key:5,"of-auto":``,"h-screen":``,flex:`~ col gap-2`,pt32:``},Oe={key:0,border:`~ base rounded-lg`,"bg-base":``,p2:``,flex:`~ col gap-2`,"min-w-50":``,"shadow-lg":``},ke={flex:`~ gap-2 items-center`},Ae={truncate:``},je={flex:`~ gap-2 items-center`},Me={key:0,flex:`~ gap-2 items-center`},Ne={"text-xs":``},Pe={key:1,flex:`~ gap-2 items-center`},Fe=v({__name:`chunks`,props:{session:{}},setup(t){let r=t,o=a(C()),s=[{label:`List`,value:`list`,icon:`i-ph-list-bullets-duotone`},{label:`Detailed List`,value:`detailed-list`,icon:`i-ph-list-magnifying-glass-duotone`},{label:`Graph`,value:`graph`,icon:`i-ph-graph-duotone`},{label:`Treemap`,value:`treemap`,icon:`i-ph-checkerboard-duotone`},{label:`Sunburst`,value:`sunburst`,icon:`i-ph-chart-donut-duotone`},{label:`Flamegraph`,value:`flamegraph`,icon:`i-ph-chart-bar-horizontal-duotone`}],c=u({search:``}),l=O(),{state:v,isLoading:y}=p(async()=>await l.value.call(`vite:rolldown:get-chunks-graph`,{session:r.session.id}),null),A=T(()=>{let e=new Map;return v.value?.forEach(t=>{e.set(`${t.chunk_id}`,t)}),e}),M=T(()=>v.value?.map(e=>({...e,id:`${e.chunk_id}`}))??[]),F=_(()=>M.value,()=>new I(M.value,{includeScore:!0,keys:[`name`],ignoreLocation:!0,threshold:.4})),L=T(()=>c.value.search?F.value.search(c.value.search).map(e=>e.item):M.value),{pathSelectorVisible:z,pathNodes:B,selectPathNodes:V,togglePathSelector:H,normalizedGraph:U}=ue({onToggle:e=>{c.value.search=e?!1:``},dataMap:T(()=>A.value),list:T(()=>L.value),importIdKey:`chunk_id`});function W(e){P.value.chunkViewType=e}let G=T(()=>{let e=new Map;for(let t of r.session.modulesList)e.set(t.id,t);return e});function K(e){return e.asset?.size?e.asset.size:e.modules.reduce((e,t)=>{let n=G.value.get(t);if(!n||!n.buildMetrics?.transforms?.length)return e;let r=n.buildMetrics.transforms;return e+r[r.length-1].transformed_code_size},0)}let{tree:q,chartOptions:J,graph:Y,nodeHover:X,nodeSelected:Z,selectedNode:pe,selectNode:Q,buildGraph:$}=se({data:T(()=>L.value.map(e=>({...e,filename:e.name||`chunk-${e.chunk_id}`,size:K(e)}))),nameKey:`filename`,sizeKey:`size`,rootText:`Chunks`,nodeType:`chunk`,graphOptions:{onClick(e){e&&(X.value=e)},onHover(e){e&&(X.value=e),e===null&&(X.value=void 0)},onLeave(){X.value=void 0},onSelect(e){Z.value=e||q.value.root,pe.value=e?.meta}},onUpdate(){switch(P.value.chunkViewType){case`sunburst`:Y.value=new ae(q.value.root,J.value);break;case`treemap`:Y.value=new re(q.value.root,{...J.value,selectedPaddingRatio:0});break;case`flamegraph`:Y.value=new oe(q.value.root,J.value);break}}});return k(()=>P.value.chunkViewType,()=>{[`treemap`,`sunburst`,`flamegraph`].includes(P.value.chunkViewType)&&$()}),(r,a)=>{let l=ee,u=de,p=le,_=ne,v=te,C=fe,T=R,O=he,k=_e,M=N,F=j,I=ie;return E(y)?(n(),b(l,{key:0})):(n(),h(`div`,ve,[m(`div`,ye,[x(_,{modelValue:c.value,"onUpdate:modelValue":a[2]||=e=>c.value=e,rules:[]},g({"search-end":i(()=>[E(P).chunkViewType===`graph`?(n(),h(`div`,be,[m(`button`,{"w-8":``,"h-8":``,"rounded-full":``,flex:``,"items-center":``,"justify-center":``,hover:`bg-active op100`,op50:``,title:`Graph Path Selector`,onClick:a[1]||=e=>E(H)(!0)},[...a[5]||=[m(`i`,{"i-ri:route-line":``,flex:``},null,-1)]])])):D(``,!0)]),default:i(()=>[m(`div`,xe,[a[6]||=m(`span`,{op50:``,pl2:``,"text-sm":``},`View as`,-1),(n(),h(f,null,e(s,e=>m(`button`,{key:e.value,"btn-action":``,class:S(E(P).chunkViewType===e.value?`bg-active`:`grayscale op50`),onClick:t=>W(e.value)},[m(`div`,{class:S(e.icon)},null,2),w(` `+d(e.label),1)],10,Se)),64))])]),_:2},[E(z)?{name:`search`,fn:i(()=>[x(p,{session:t.session,data:L.value,"import-id-key":`chunk_id`,"search-keys":[`name`],onSelect:E(V),onClose:a[0]||=e=>E(H)(!1)},{list:i(({select:e,data:n})=>[x(u,{session:t.session,chunks:n,link:!1,basic:!0,onSelect:e},null,8,[`session`,`chunks`,`onSelect`])]),item:i(({id:e})=>[w(d(A.value.get(e)?.name||`[unnamed]`),1)]),_:1},8,[`session`,`data`,`onSelect`])]),key:`0`}:void 0]),1032,[`modelValue`])]),E(P).chunkViewType===`list`?(n(),h(`div`,Ce,[x(u,{session:t.session,chunks:L.value},null,8,[`session`,`chunks`])])):D(``,!0),E(P).chunkViewType===`detailed-list`?(n(),h(`div`,we,[(n(!0),h(f,null,e(L.value,e=>(n(),b(v,{key:e.id,border:`~ base rounded-lg`,p3:``,chunk:e,chunks:L.value,session:t.session},null,8,[`chunk`,`chunks`,`session`]))),128))])):E(P).chunkViewType===`graph`?(n(),b(C,{key:2,class:`pt32`,session:t.session,chunks:E(U),"entry-id":E(B).start},null,8,[`session`,`chunks`,`entry-id`])):E(P).chunkViewType===`treemap`?(n(),h(`div`,Te,[E(Y)?(n(),b(ce,{key:0,graph:E(Y),selected:E(Z),onSelect:a[3]||=e=>E(Q)(e)},{default:i(({selected:e,options:t,onSelect:n})=>[x(T,{border:`b base`,py2:``,"min-h-10":``,selected:e,options:t,onSelect:n},null,8,[`selected`,`options`,`onSelect`])]),_:1},8,[`graph`,`selected`])):D(``,!0)])):E(P).chunkViewType===`sunburst`?(n(),h(`div`,Ee,[E(Y)?(n(),b(O,{key:0,graph:E(Y),selected:E(Z),onSelect:a[4]||=e=>E(Q)(e)},null,8,[`graph`,`selected`])):D(``,!0)])):E(P).chunkViewType===`flamegraph`?(n(),h(`div`,De,[E(Y)?(n(),b(k,{key:0,graph:E(Y)},null,8,[`graph`])):D(``,!0)])):D(``,!0),x(I,{"hover-x":o.x,"hover-y":o.y},{default:i(()=>[E(X)?.meta?(n(),h(`div`,Oe,[m(`div`,ke,[a[7]||=m(`i`,{"i-ph-shapes-duotone":``,"flex-none":``},null,-1),m(`span`,Ae,d(E(X).meta.name||`[unnamed]`),1)]),m(`div`,je,[a[8]||=m(`span`,{op50:``,"text-xs":``},`Size:`,-1),x(M,{bytes:E(X).meta.size,"text-xs":``},null,8,[`bytes`])]),E(X).meta.modules?.length?(n(),h(`div`,Me,[a[9]||=m(`span`,{op50:``,"text-xs":``},`Modules:`,-1),m(`span`,Ne,d(E(X).meta.modules?.length),1)])):D(``,!0),E(X).meta.is_initial?(n(),h(`div`,Pe,[x(F,{text:`initial`})])):D(``,!0)])):D(``,!0)]),_:1},8,[`hover-x`,`hover-y`])]))}}});export{Fe as default};