@nuxt/devtools 4.0.0-alpha.11 → 4.0.0-alpha.13

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 (131) hide show
  1. package/dist/chunks/analyze-build.mjs +5 -5
  2. package/dist/chunks/module-main.mjs +53 -44
  3. package/dist/chunks/vite-inspect.mjs +6 -6
  4. package/dist/dirs.d.mts +1 -3
  5. package/dist/dirs.mjs +2 -4
  6. package/dist/module.d.mts +1 -1
  7. package/dist/module.json +1 -1
  8. package/dist/runtime/plugins/devtools.client.js +0 -4
  9. package/dist/runtime/plugins/view/client.js +1 -67
  10. package/dist/shared/{devtools.LsRDzDTD.d.mts → devtools.DIKI0iiX.d.mts} +1 -7
  11. package/dist/types.d.mts +1 -1
  12. package/package.json +29 -39
  13. package/dist/client/200.html +0 -1
  14. package/dist/client/404.html +0 -1
  15. package/dist/client/_nuxt/__blank-ki8oaugs.js +0 -1
  16. package/dist/client/_nuxt/_plugin-vue_export-helper-d9irwgla.js +0 -1
  17. package/dist/client/_nuxt/analyze-build-ne41xjd4.js +0 -1
  18. package/dist/client/_nuxt/assets-f8xklgq9.js +0 -6
  19. package/dist/client/_nuxt/assets.css-hmxl533k.css +0 -1
  20. package/dist/client/_nuxt/auth-required-panel-hlhmg87z.js +0 -1
  21. package/dist/client/_nuxt/builds/latest.json +0 -1
  22. package/dist/client/_nuxt/builds/meta/491c94f8-60b1-4f88-a55c-3cb1bf18dd79.json +0 -1
  23. package/dist/client/_nuxt/cd81saaa.js +0 -2
  24. package/dist/client/_nuxt/client-iet3i2jx.js +0 -1
  25. package/dist/client/_nuxt/code-diff-f21wjzw6.js +0 -8
  26. package/dist/client/_nuxt/code-snippets-e28cw1b6.js +0 -1
  27. package/dist/client/_nuxt/color-abaog8vc.js +0 -1
  28. package/dist/client/_nuxt/components-o6uyjkn7.js +0 -1
  29. package/dist/client/_nuxt/composable-item-ocorhvb4.js +0 -1
  30. package/dist/client/_nuxt/composables-ioamscf4.js +0 -1
  31. package/dist/client/_nuxt/composables-li5sexni.js +0 -1
  32. package/dist/client/_nuxt/constants-g2z8m4rs.js +0 -1
  33. package/dist/client/_nuxt/custom-_name_-m5d1q22j.js +0 -1
  34. package/dist/client/_nuxt/data-schema-button-kil5d35s.js +0 -1
  35. package/dist/client/_nuxt/data-schema-drawer-pb9ef6ns.js +0 -2
  36. package/dist/client/_nuxt/debug-nrr1l0ts.js +0 -1
  37. package/dist/client/_nuxt/default-m4s11ttb.js +0 -1
  38. package/dist/client/_nuxt/dialog-loe55arg.js +0 -1
  39. package/dist/client/_nuxt/dist-2c3gpsw0.js +0 -1
  40. package/dist/client/_nuxt/dist-das2ggjj.js +0 -1
  41. package/dist/client/_nuxt/dist-gklva25a.js +0 -1
  42. package/dist/client/_nuxt/duration-display-fjuy04uz.js +0 -1
  43. package/dist/client/_nuxt/editor-eakm7xzk.js +0 -1
  44. package/dist/client/_nuxt/entry.css-meav5jmw.css +0 -1
  45. package/dist/client/_nuxt/error-404-nauqrial.js +0 -1
  46. package/dist/client/_nuxt/error-404.css-k0vnbfeq.css +0 -1
  47. package/dist/client/_nuxt/error-500-h4c50p0t.js +0 -1
  48. package/dist/client/_nuxt/error-500.css-lhh2zs4d.css +0 -1
  49. package/dist/client/_nuxt/error-nukkk3mr.js +0 -9
  50. package/dist/client/_nuxt/filepath-item-l8m3u23m.js +0 -1
  51. package/dist/client/_nuxt/full-kcw32vsy.js +0 -1
  52. package/dist/client/_nuxt/fuse-ipb957gg.js +0 -1
  53. package/dist/client/_nuxt/help-fab-ccbj2zxc.js +0 -1
  54. package/dist/client/_nuxt/help-fab.css-ms50khsu.css +0 -1
  55. package/dist/client/_nuxt/hooks-d7ream10.js +0 -1
  56. package/dist/client/_nuxt/imports-eqmikopw.js +0 -1
  57. package/dist/client/_nuxt/launch-page-l2e581he.js +0 -1
  58. package/dist/client/_nuxt/modules-j9bs520l.js +0 -1
  59. package/dist/client/_nuxt/nbadge-n73p68uz.js +0 -1
  60. package/dist/client/_nuxt/nbutton-np26z5og.js +0 -1
  61. package/dist/client/_nuxt/ncard-kyrmtdmn.js +0 -1
  62. package/dist/client/_nuxt/ncheckbox-hmazj87n.js +0 -1
  63. package/dist/client/_nuxt/ncode-block-ltlsxf5u.js +0 -2
  64. package/dist/client/_nuxt/ncode-block.css-ivoxtfjk.css +0 -1
  65. package/dist/client/_nuxt/ndialog-mpi6dkdo.js +0 -3
  66. package/dist/client/_nuxt/ndrawer-hw8gqgye.js +0 -1
  67. package/dist/client/_nuxt/ndropdown-l76w9qwv.js +0 -1
  68. package/dist/client/_nuxt/nicon-co5pnhft.js +0 -4
  69. package/dist/client/_nuxt/nicon-title-ejbxuupx.js +0 -1
  70. package/dist/client/_nuxt/nlink-h3jrz76l.js +0 -1
  71. package/dist/client/_nuxt/nloading-lhpm96ki.js +0 -1
  72. package/dist/client/_nuxt/nmarkdown-7qnv8atx.js +0 -1
  73. package/dist/client/_nuxt/nnavbar-g38amume.js +0 -1
  74. package/dist/client/_nuxt/none-ju85xmqv.js +0 -1
  75. package/dist/client/_nuxt/npanel-grids-fa3ah9jo.js +0 -1
  76. package/dist/client/_nuxt/npm-napoklx5.js +0 -1
  77. package/dist/client/_nuxt/nsection-block-kzcj1vk3.js +0 -1
  78. package/dist/client/_nuxt/nsection-block.css-h1lgpwgm.css +0 -1
  79. package/dist/client/_nuxt/nselect-md65qzv8.js +0 -1
  80. package/dist/client/_nuxt/nselect-tabs-brv0wfuv.js +0 -1
  81. package/dist/client/_nuxt/nsplit-pane-bs5dfe16.js +0 -1
  82. package/dist/client/_nuxt/nsplit-pane.css-k1gopk47.css +0 -1
  83. package/dist/client/_nuxt/ntext-input-obq09i2s.js +0 -1
  84. package/dist/client/_nuxt/ntip-nv65xhm1.js +0 -1
  85. package/dist/client/_nuxt/nuxt-hj3jyofn.js +0 -1
  86. package/dist/client/_nuxt/nuxt-link-nsgkom6k.js +0 -1
  87. package/dist/client/_nuxt/nuxt-logo-dead1uws.js +0 -1
  88. package/dist/client/_nuxt/open-graph-d1iodawb.js +0 -3
  89. package/dist/client/_nuxt/open-graph.css-dk03m1qz.css +0 -1
  90. package/dist/client/_nuxt/overview-cbabgv3v.js +0 -1
  91. package/dist/client/_nuxt/pages-oi6j0pbk.js +0 -1
  92. package/dist/client/_nuxt/payload-ie12v3te.js +0 -1
  93. package/dist/client/_nuxt/plugins-20xi1djl.js +0 -1
  94. package/dist/client/_nuxt/ready-ikhds7hc.js +0 -2
  95. package/dist/client/_nuxt/rolldown-runtime-f96lzs6p.js +0 -1
  96. package/dist/client/_nuxt/runtime-configs-fq4qn3y8.js +0 -1
  97. package/dist/client/_nuxt/server-route-inputs-c90qumt8.js +0 -1
  98. package/dist/client/_nuxt/server-routes-mcizq24b.js +0 -7
  99. package/dist/client/_nuxt/server-tasks-cicwbkvm.js +0 -1
  100. package/dist/client/_nuxt/settings-noeex3c7.js +0 -1
  101. package/dist/client/_nuxt/stacktrace-list-gmhj3wmk.js +0 -1
  102. package/dist/client/_nuxt/state-commands-bzr47er3.js +0 -1
  103. package/dist/client/_nuxt/state-components-jvq23n80.js +0 -1
  104. package/dist/client/_nuxt/state-editor-h7d9pjpa.js +0 -1
  105. package/dist/client/_nuxt/state-modules-fie7gkqb.js +0 -1
  106. package/dist/client/_nuxt/state-routes-ntw79bv6.js +0 -1
  107. package/dist/client/_nuxt/state-schema-eifqm6o4.js +0 -1
  108. package/dist/client/_nuxt/state-tabs-dhcec3o6.js +0 -1
  109. package/dist/client/_nuxt/storage-m9yh2hjt.js +0 -1
  110. package/dist/client/_nuxt/tab-icon-bw4o7q2t.js +0 -1
  111. package/dist/client/_nuxt/telemetry-mienojg2.js +0 -1
  112. package/dist/client/_nuxt/timeline-ce3m8i2h.js +0 -31
  113. package/dist/client/_nuxt/timeline.css-m03aec2q.css +0 -1
  114. package/dist/client/_nuxt/unhead.dnki-vlv7-jmz34zx6.js +0 -1
  115. package/dist/client/_nuxt/unocss-runtime-htk43m9c.js +0 -1
  116. package/dist/client/_nuxt/utils-d6zq4cvn.js +0 -1
  117. package/dist/client/_nuxt/vendor/json-editor-vue-h1waqukq.js +0 -3862
  118. package/dist/client/_nuxt/vendor/json-editor-vue.css-lb1ewor6.css +0 -1
  119. package/dist/client/_nuxt/vendor/markdown-exit-nzr6hp55.js +0 -12
  120. package/dist/client/_nuxt/vendor/quicktype-core-lz5bp16m.js +0 -929
  121. package/dist/client/_nuxt/vendor/shiki-g3svwmfz.js +0 -152
  122. package/dist/client/_nuxt/vendor/unocss-hvwio62w.js +0 -3
  123. package/dist/client/_nuxt/vendor/unocss.css-bhad58wt.css +0 -1
  124. package/dist/client/_nuxt/vendor/vis-bjkylbfi.js +0 -30
  125. package/dist/client/_nuxt/virtual-files-la0ohl9t.js +0 -1
  126. package/dist/client/_nuxt/virtual-files.css-l97kh4kx.css +0 -1
  127. package/dist/client/index.html +0 -1
  128. package/dist/client/nuxt.svg +0 -3
  129. package/dist/runtime/plugins/view/state.d.ts +0 -2
  130. package/dist/runtime/plugins/view/state.js +0 -12
  131. package/types.d.ts +0 -1
@@ -6,28 +6,28 @@ import '@nuxt/devtools-kit';
6
6
  import '@vitejs/devtools-kit/node';
7
7
  import 'local-pkg';
8
8
  import './module-main.mjs';
9
- import 'node:fs';
10
9
  import 'node:os';
11
10
  import 'consola/utils';
12
- import 'sirv';
11
+ import 'devframe/utils/serve-static';
13
12
  import 'vite';
14
13
  import '../shared/devtools.BNZC-DT8.mjs';
15
14
  import '../dirs.mjs';
16
15
  import 'node:path';
17
16
  import 'node:url';
18
- import 'tinyexec';
17
+ import 'node:child_process';
18
+ import 'node:fs';
19
+ import 'node:util';
19
20
  import 'tinyglobby';
20
21
  import 'image-meta';
21
22
  import 'perfect-debounce';
22
23
  import 'destr';
23
24
  import '../../dist/runtime/shared/hooks.js';
24
- import 'ohash';
25
+ import 'devframe/utils/hash';
25
26
  import 'node:process';
26
27
  import 'node:module';
27
28
  import 'pkg-types';
28
29
  import 'node:assert';
29
30
  import 'node:v8';
30
- import 'node:util';
31
31
  import 'magicast';
32
32
  import 'magicast/helpers';
33
33
  import 'verkit';
@@ -1,29 +1,29 @@
1
- import fs$1, { promises, statSync, realpathSync, readFileSync, existsSync, accessSync, constants } from 'node:fs';
2
- import fs from 'node:fs/promises';
3
1
  import os, { homedir } from 'node:os';
4
2
  import { onDevtoolsReady, deprecate, registerHostDiagnostics, NUXT_DEVTOOLS_GROUP_ID } from '@nuxt/devtools-kit';
5
3
  import { logger, useNuxt, extendViteConfig, addPlugin, addVitePlugin, addTemplate, addImports } from '@nuxt/kit';
6
4
  import { colors } from 'consola/utils';
5
+ import { serveStaticNodeMiddleware } from 'devframe/utils/serve-static';
7
6
  import { join, dirname, resolve, isAbsolute } from 'pathe';
8
- import sirv from 'sirv';
9
7
  import { searchForWorkspaceRoot } from 'vite';
10
8
  import { d as defaultAllowedExtensions, c as createDefaultTabOptions, s as setServerTasksEnabledByDefault } from '../shared/devtools.BNZC-DT8.mjs';
11
- import { runtimeDir, clientDir, packageDir } from '../dirs.mjs';
12
- import { x } from 'tinyexec';
9
+ import { runtimeDir, packageDir } from '../dirs.mjs';
10
+ import { execFile } from 'node:child_process';
11
+ import fs$1, { promises, statSync, realpathSync, readFileSync, existsSync, accessSync, constants } from 'node:fs';
12
+ import fs from 'node:fs/promises';
13
+ import { promisify, format, inspect } from 'node:util';
13
14
  import { glob } from 'tinyglobby';
14
15
  import path, { relative, parse, dirname as dirname$1 } from 'node:path';
15
16
  import { imageMeta } from 'image-meta';
16
17
  import { debounce } from 'perfect-debounce';
17
18
  import destr from 'destr';
18
19
  import { setupHooksDebug } from '../../dist/runtime/shared/hooks.js';
19
- import { hash } from 'ohash';
20
+ import { hash } from 'devframe/utils/hash';
20
21
  import process$1 from 'node:process';
21
22
  import { builtinModules, createRequire } from 'node:module';
22
23
  import { resolvePackageJSON, readPackageJSON } from 'pkg-types';
23
24
  import { fileURLToPath as fileURLToPath$1, pathToFileURL as pathToFileURL$1 } from 'node:url';
24
25
  import assert from 'node:assert';
25
26
  import v8 from 'node:v8';
26
- import { format, inspect } from 'node:util';
27
27
  import { resolveModule, getPackageInfo } from 'local-pkg';
28
28
  import { parseModule } from 'magicast';
29
29
  import { getDefaultExportOptions, addNuxtModule } from 'magicast/helpers';
@@ -31,7 +31,15 @@ import { isLess } from 'verkit';
31
31
  import { DEVTOOLS_TERMINALS_DOCK_ID } from '@vitejs/devtools-kit/constants';
32
32
  import { normalizeBaseKey, normalizeKey, createStorage, builtinDrivers } from 'unstorage';
33
33
 
34
- const version$1 = "4.0.0-alpha.11";
34
+ const version$1 = "4.0.0-alpha.13";
35
+ const peerDependencies = {
36
+ "@nuxt/devtools-assets": "workspace:*",
37
+ "@nuxt/kit": "^4.0.0-0 || ^5.0.0-0",
38
+ nitro: "^3.0.0-0",
39
+ nitropack: "^2.0.0",
40
+ vite: "^8.1.5",
41
+ "vite-plugin-inspect": "catalog:prod"
42
+ };
35
43
 
36
44
  const RPC_NAMESPACE = "nuxt:devtools";
37
45
 
@@ -41,6 +49,7 @@ function createUniqueSessionId(baseId) {
41
49
  return `${baseId}#${counter}`;
42
50
  }
43
51
 
52
+ const execFileAsync = promisify(execFile);
44
53
  const COLON_RE = /:/g;
45
54
  function setupAnalyzeBuildRPC(ctx) {
46
55
  const { nuxt, refresh } = ctx;
@@ -141,8 +150,8 @@ function setupAnalyzeBuildRPC(ctx) {
141
150
  return builds.sort((a, b) => b.endTime - a.endTime);
142
151
  }
143
152
  async function git(...args) {
144
- const result = await x("git", args, { nodeOptions: { cwd: nuxt.options.rootDir }, throwOnError: true });
145
- return result.stdout.trim();
153
+ const { stdout } = await execFileAsync("git", args, { cwd: nuxt.options.rootDir });
154
+ return stdout.trim();
146
155
  }
147
156
  async function generateAnalyzeBuildName() {
148
157
  try {
@@ -10554,7 +10563,7 @@ function setupGeneralRPC({
10554
10563
  let editor = getOptions()?.behavior.openInEditor ?? void 0;
10555
10564
  if (editor === "auto")
10556
10565
  editor = void 0;
10557
- await import('launch-editor').then((r) => (r.default || r)(path + suffix, editor));
10566
+ await import('devframe/utils/launch-editor').then((r) => r.launchEditor(path + suffix, editor));
10558
10567
  return true;
10559
10568
  } catch (e) {
10560
10569
  console.error(e);
@@ -12000,7 +12009,16 @@ function setupRPC(nuxt, options) {
12000
12009
  }
12001
12010
 
12002
12011
  const MULTIPLE_SLASHES_RE = /\/+/g;
12003
- const DEVTOOLS_BASE_RE = /\/__NUXT_DEVTOOLS_BASE__\//g;
12012
+ const ASSETS_PACKAGE = "@nuxt/devtools-assets";
12013
+ function resolveClientAssetsSource() {
12014
+ const range = peerDependencies[ASSETS_PACKAGE];
12015
+ const name = range.startsWith("npm:") ? range.slice("npm:".length, range.lastIndexOf("@")) : ASSETS_PACKAGE;
12016
+ return {
12017
+ package: name,
12018
+ version: version$1,
12019
+ resolveFrom: import.meta.url
12020
+ };
12021
+ }
12004
12022
  async function enableModule(options, nuxt) {
12005
12023
  if (process.env.TEST || process.env.NODE_ENV === "test" || nuxt.options.test)
12006
12024
  return;
@@ -12021,10 +12039,6 @@ async function enableModule(options, nuxt) {
12021
12039
  devtoolsConfig.clientAuth = false;
12022
12040
  });
12023
12041
  }
12024
- if (options.iframeProps) {
12025
- nuxt.options.runtimeConfig.app.devtools ||= {};
12026
- nuxt.options.runtimeConfig.app.devtools.iframeProps = options.iframeProps;
12027
- }
12028
12042
  nuxt.options.imports.collectMeta = true;
12029
12043
  addPlugin({
12030
12044
  src: join(runtimeDir, "plugins/devtools.client"),
@@ -12047,6 +12061,12 @@ async function enableModule(options, nuxt) {
12047
12061
  "nuxt > @nuxt/devtools > vite-plugin-vue-tracer/client/overlay"
12048
12062
  );
12049
12063
  }
12064
+ const ROUTE_PATH = `${nuxt.options.app.baseURL || "/"}/__nuxt_devtools__`.replace(MULTIPLE_SLASHES_RE, "/");
12065
+ const ROUTE_CLIENT = `${ROUTE_PATH}/client`;
12066
+ const ROUTE_ANALYZE = `${ROUTE_PATH}/analyze`;
12067
+ const isSelfClient = resolve(nuxt.options.rootDir) === resolve(packageDir, "client");
12068
+ const clientAssetsSource = isSelfClient ? void 0 : resolveClientAssetsSource();
12069
+ const clientUrl = clientAssetsSource ? `${ROUTE_CLIENT}/` : `${nuxt.options.app.baseURL || "/"}/`.replace(MULTIPLE_SLASHES_RE, "/");
12050
12070
  const DevTools = await import('@vitejs/devtools').then((r) => r.DevTools());
12051
12071
  addVitePlugin(DevTools);
12052
12072
  let connectDevToolsKit;
@@ -12055,11 +12075,24 @@ async function enableModule(options, nuxt) {
12055
12075
  devtools: {
12056
12076
  async setup(ctx2) {
12057
12077
  if (!skipInSSR(ctx2)) {
12078
+ if (clientAssetsSource) {
12079
+ ctx2.viteServer?.middlewares.use((req, res, next) => {
12080
+ const [pathname = "", search = ""] = (req.url ?? "").split("?");
12081
+ if (pathname !== ROUTE_CLIENT)
12082
+ return next();
12083
+ res.statusCode = 302;
12084
+ res.setHeader("Location", `${ROUTE_CLIENT}/${search ? `?${search}` : ""}`);
12085
+ res.end();
12086
+ });
12087
+ if (ctx2.host.mountConnectionMeta)
12088
+ await ctx2.host.mountConnectionMeta(`${ROUTE_CLIENT}/`);
12089
+ ctx2.views.hostStatic(ROUTE_CLIENT, clientAssetsSource);
12090
+ }
12058
12091
  ctx2.docks.register({
12059
12092
  id: NUXT_DEVTOOLS_GROUP_ID,
12060
12093
  type: "group",
12061
12094
  title: "Nuxt",
12062
- icon: "/__nuxt_devtools__/client/nuxt.svg",
12095
+ icon: `${clientUrl}nuxt.svg`,
12063
12096
  category: "framework",
12064
12097
  defaultOrder: -2e3,
12065
12098
  defaultChildId: "nuxt:devtools",
@@ -12077,8 +12110,8 @@ async function enableModule(options, nuxt) {
12077
12110
  id: "nuxt:devtools",
12078
12111
  type: "iframe",
12079
12112
  title: "Nuxt DevTools",
12080
- icon: "/__nuxt_devtools__/client/nuxt.svg",
12081
- url: "/__nuxt_devtools__/client/",
12113
+ icon: `${clientUrl}nuxt.svg`,
12114
+ url: clientUrl,
12082
12115
  groupId: NUXT_DEVTOOLS_GROUP_ID,
12083
12116
  frameId: "nuxt:devtools",
12084
12117
  subTabs: { protocol: "postmessage" },
@@ -12139,7 +12172,6 @@ window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now()
12139
12172
  ctx
12140
12173
  } = setupRPC(nuxt, options);
12141
12174
  connectDevToolsKit = _connectDevToolsKit;
12142
- const clientDirExists = existsSync(clientDir);
12143
12175
  extendViteConfig((config) => {
12144
12176
  config.server ||= {};
12145
12177
  config.server.fs ||= {};
@@ -12158,32 +12190,9 @@ window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now()
12158
12190
  name: "useNuxtDevTools",
12159
12191
  from: join(runtimeDir, "use-nuxt-devtools")
12160
12192
  });
12161
- const ROUTE_PATH = `${nuxt.options.app.baseURL || "/"}/__nuxt_devtools__`.replace(MULTIPLE_SLASHES_RE, "/");
12162
- const ROUTE_CLIENT = `${ROUTE_PATH}/client`;
12163
- const ROUTE_ANALYZE = `${ROUTE_PATH}/analyze`;
12164
12193
  nuxt.hook("vite:serverCreated", (server) => {
12165
12194
  const devtoolsAnalyzeDir = join(nuxt.options.rootDir, "node_modules/.cache/nuxt-devtools/analyze");
12166
- server.middlewares.use(ROUTE_ANALYZE, sirv(devtoolsAnalyzeDir, { single: false, dev: true, dotfiles: true, ignores: false }));
12167
- if (clientDirExists) {
12168
- const indexHtmlPath = join(clientDir, "index.html");
12169
- const indexContent = fs.readFile(indexHtmlPath, "utf-8");
12170
- const handleStatic = sirv(clientDir, {
12171
- dev: true,
12172
- single: false
12173
- });
12174
- const handleIndex = async (res) => {
12175
- res.setHeader("Content-Type", "text/html");
12176
- res.statusCode = 200;
12177
- res.write((await indexContent).replace(DEVTOOLS_BASE_RE, `${ROUTE_CLIENT}/`));
12178
- res.end();
12179
- };
12180
- server.middlewares.use(ROUTE_CLIENT, (req, res) => {
12181
- const pathname = (req.url || "/").split("?")[0];
12182
- if (pathname === "/" || pathname === "")
12183
- return handleIndex(res);
12184
- return handleStatic(req, res, () => handleIndex(res));
12185
- });
12186
- }
12195
+ server.middlewares.use(ROUTE_ANALYZE, serveStaticNodeMiddleware(devtoolsAnalyzeDir, { single: false }));
12187
12196
  });
12188
12197
  await import('./plugin-metrics.mjs').then(({ setup }) => setup(ctx));
12189
12198
  if (options.dataInspector !== false)
@@ -3,30 +3,30 @@ import { addVitePlugin, logger } from '@nuxt/kit';
3
3
  import { createInstallLauncher } from '@vitejs/devtools-kit/node';
4
4
  import { isPackageExists } from 'local-pkg';
5
5
  import { R as RPC_NAMESPACE } from './module-main.mjs';
6
- import 'node:fs';
7
- import 'node:fs/promises';
8
6
  import 'node:os';
9
7
  import 'consola/utils';
8
+ import 'devframe/utils/serve-static';
10
9
  import 'pathe';
11
- import 'sirv';
12
10
  import 'vite';
13
11
  import '../shared/devtools.BNZC-DT8.mjs';
14
12
  import '../dirs.mjs';
15
13
  import 'node:path';
16
14
  import 'node:url';
17
- import 'tinyexec';
15
+ import 'node:child_process';
16
+ import 'node:fs';
17
+ import 'node:fs/promises';
18
+ import 'node:util';
18
19
  import 'tinyglobby';
19
20
  import 'image-meta';
20
21
  import 'perfect-debounce';
21
22
  import 'destr';
22
23
  import '../../dist/runtime/shared/hooks.js';
23
- import 'ohash';
24
+ import 'devframe/utils/hash';
24
25
  import 'node:process';
25
26
  import 'node:module';
26
27
  import 'pkg-types';
27
28
  import 'node:assert';
28
29
  import 'node:v8';
29
- import 'node:util';
30
30
  import 'magicast';
31
31
  import 'magicast/helpers';
32
32
  import 'verkit';
package/dist/dirs.d.mts CHANGED
@@ -1,6 +1,4 @@
1
1
  declare const packageDir: string;
2
- declare const distDir: string;
3
2
  declare const runtimeDir: string;
4
- declare const clientDir: string;
5
3
 
6
- export { clientDir, distDir, packageDir, runtimeDir };
4
+ export { packageDir, runtimeDir };
package/dist/dirs.mjs CHANGED
@@ -2,8 +2,6 @@ import { resolve } from 'node:path';
2
2
  import { fileURLToPath } from 'node:url';
3
3
 
4
4
  const packageDir = resolve(fileURLToPath(import.meta.url), "../..");
5
- const distDir = resolve(fileURLToPath(import.meta.url), "..");
6
- const runtimeDir = resolve(distDir, "runtime");
7
- const clientDir = resolve(distDir, "client");
5
+ const runtimeDir = resolve(fileURLToPath(import.meta.url), "../runtime");
8
6
 
9
- export { clientDir, distDir, packageDir, runtimeDir };
7
+ export { packageDir, runtimeDir };
package/dist/module.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import './shared/devtools.LsRDzDTD.mjs';
2
+ import './shared/devtools.DIKI0iiX.mjs';
3
3
  import { ModuleOptions } from '@nuxt/devtools-kit/types';
4
4
  export { ModuleOptions } from '@nuxt/devtools-kit/types';
5
5
 
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxt/devtools",
3
3
  "configKey": "devtools",
4
- "version": "4.0.0-alpha.11",
4
+ "version": "4.0.0-alpha.13",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.3",
7
7
  "unbuild": "3.6.1"
@@ -7,10 +7,6 @@ export default defineNuxtPlugin((nuxt) => {
7
7
  try {
8
8
  if (window.__NUXT_DEVTOOLS_DISABLE__ || window.parent?.__NUXT_DEVTOOLS_DISABLE__)
9
9
  return;
10
- if (parent && window.self !== parent) {
11
- if (parent.__NUXT_DEVTOOLS_VIEW__)
12
- return;
13
- }
14
10
  } catch (e) {
15
11
  console.error("Nuxt DevTools: Failed to check parent window");
16
12
  console.error(e);
@@ -4,10 +4,8 @@ import { createHooks } from "hookable";
4
4
  import { debounce } from "perfect-debounce";
5
5
  import { events as inspectorEvents, hasData as inspectorHasData, state as inspectorState } from "vite-plugin-vue-tracer/client/overlay";
6
6
  import { computed, markRaw, nextTick, reactive, ref, shallowReactive, shallowRef, toRef, watch } from "vue";
7
- import { useAppConfig, useRuntimeConfig } from "#imports";
7
+ import { useAppConfig } from "#imports";
8
8
  import { initTimelineMetrics } from "../../function-metrics-helpers.js";
9
- import { state } from "./state.js";
10
- const MULTIPLE_SLASHES_RE = /\/+/g;
11
9
  const NUXT_DOCK_GROUP_ID = "nuxt";
12
10
  function getViteDevToolsContext() {
13
11
  return getDevToolsClientContext();
@@ -20,7 +18,6 @@ export async function setupDevToolsClient({
20
18
  timeMetric,
21
19
  router
22
20
  }) {
23
- let iframe;
24
21
  let inspector;
25
22
  const colorMode = useClientColorMode();
26
23
  const timeline = initTimelineMetrics();
@@ -28,8 +25,6 @@ export async function setupDevToolsClient({
28
25
  nuxt: markRaw(nuxt),
29
26
  hooks: createHooks(),
30
27
  inspector: getInspectorInstance(),
31
- getIframe,
32
- syncClient,
33
28
  devtools: {
34
29
  toggle() {
35
30
  const ctx = getViteDevToolsContext();
@@ -72,7 +67,6 @@ export async function setupDevToolsClient({
72
67
  router.push(path);
73
68
  },
74
69
  colorMode,
75
- frameState: state,
76
70
  $fetch: globalThis.$fetch
77
71
  },
78
72
  metrics: {
@@ -84,63 +78,6 @@ export async function setupDevToolsClient({
84
78
  revision: ref(0)
85
79
  });
86
80
  window.__NUXT_DEVTOOLS_HOST__ = client;
87
- function syncClient() {
88
- if (!client.inspector)
89
- client.inspector = getInspectorInstance();
90
- try {
91
- iframe?.contentWindow?.__NUXT_DEVTOOLS_VIEW__?.setClient(client);
92
- } catch (e) {
93
- console.error("[nuxt-devtools] Failed to connect view", e);
94
- }
95
- return client;
96
- }
97
- function getIframe() {
98
- if (!iframe) {
99
- const runtimeConfig = useRuntimeConfig();
100
- const CLIENT_BASE = "/__nuxt_devtools__/client";
101
- const CLIENT_PATH = `${runtimeConfig.app.baseURL.replace(CLIENT_BASE, "/")}${CLIENT_BASE}`.replace(MULTIPLE_SLASHES_RE, "/");
102
- const initialUrl = CLIENT_PATH + state.value.route;
103
- iframe = document.createElement("iframe");
104
- for (const [key, value] of Object.entries(runtimeConfig.app.devtools?.iframeProps || {}))
105
- iframe.setAttribute(key, String(value));
106
- iframe.id = "nuxt-devtools-iframe";
107
- iframe.src = initialUrl;
108
- iframe.onload = async () => {
109
- try {
110
- await waitForClientInjection();
111
- client.syncClient();
112
- } catch (e) {
113
- console.error("Nuxt DevTools client injection failed");
114
- console.error(e);
115
- }
116
- };
117
- }
118
- return iframe;
119
- }
120
- function waitForClientInjection(retry = 20, timeout = 300) {
121
- let lastError;
122
- const test = () => {
123
- try {
124
- return !!iframe?.contentWindow?.__NUXT_DEVTOOLS_VIEW__;
125
- } catch (e) {
126
- lastError = e;
127
- }
128
- return false;
129
- };
130
- if (test())
131
- return;
132
- return new Promise((resolve, reject) => {
133
- const interval = setInterval(() => {
134
- if (test()) {
135
- clearInterval(interval);
136
- resolve();
137
- } else if (retry-- <= 0) {
138
- clearInterval(interval);
139
- reject(lastError);
140
- }
141
- }, timeout);
142
- });
143
- }
144
81
  function getInspectorInstance() {
145
82
  if (inspector)
146
83
  return inspector;
@@ -317,7 +254,4 @@ function setupReactivity(client, router, timeMetric) {
317
254
  client.nuxt.hook("app:mounted", () => {
318
255
  refreshReactivity();
319
256
  });
320
- client.hooks.hook("devtools:navigate", (path) => {
321
- state.value.route = path;
322
- });
323
257
  }
@@ -1,4 +1,4 @@
1
- import { NuxtDevtoolsIframeClient, NuxtDevtoolsHostClient, NuxtDevtoolsGlobal, PluginMetric, TimelineMetrics, LoadingTimeMetric } from '@nuxt/devtools-kit/types';
1
+ import { NuxtDevtoolsIframeClient, NuxtDevtoolsHostClient, PluginMetric, TimelineMetrics, LoadingTimeMetric } from '@nuxt/devtools-kit/types';
2
2
 
3
3
  declare global {
4
4
  interface Window {
@@ -10,12 +10,6 @@ declare global {
10
10
  * Nuxt DevTools client for host app
11
11
  */
12
12
  __NUXT_DEVTOOLS_HOST__?: NuxtDevtoolsHostClient;
13
- /**
14
- * Nuxt DevTools for receiving host client
15
- *
16
- * @internal
17
- */
18
- __NUXT_DEVTOOLS_VIEW__?: NuxtDevtoolsGlobal;
19
13
  /**
20
14
  * Metrics for plugin loading time
21
15
  *
package/dist/types.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import './shared/devtools.LsRDzDTD.mjs';
1
+ import './shared/devtools.DIKI0iiX.mjs';
2
2
  import { ModuleStaticInfo } from '@nuxt/devtools-kit/types';
3
3
  export * from '@nuxt/devtools-kit/types';
4
4
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxt/devtools",
3
3
  "type": "module",
4
- "version": "4.0.0-alpha.11",
4
+ "version": "4.0.0-alpha.13",
5
5
  "description": "The Nuxt DevTools gives you insights and transparency about your Nuxt App.",
6
6
  "license": "MIT",
7
7
  "homepage": "https://devtools.nuxt.com",
@@ -11,33 +11,27 @@
11
11
  "directory": "packages/devtools"
12
12
  },
13
13
  "exports": {
14
- ".": {
15
- "types": "./dist/module.d.mts",
16
- "import": "./dist/module.mjs"
17
- },
18
- "./webcomponents": {
19
- "types": "./dist/webcomponents/index.d.mts",
20
- "import": "./dist/webcomponents/index.mjs"
21
- },
22
- "./types": {
23
- "types": "./dist/types.d.mts"
24
- },
14
+ ".": "./dist/module.mjs",
15
+ "./webcomponents": "./dist/webcomponents/index.mjs",
16
+ "./types": "./dist/types.mjs",
25
17
  "./*": "./*"
26
18
  },
27
19
  "types": "./dist/module.d.mts",
28
20
  "files": [
29
- "*.cjs",
30
- "*.d.ts",
31
- "*.mjs",
32
21
  "dist"
33
22
  ],
34
23
  "peerDependencies": {
24
+ "@nuxt/kit": "^4.0.0-0 || ^5.0.0-0",
35
25
  "nitro": "^3.0.0-0",
36
26
  "nitropack": "^2.0.0",
37
27
  "vite": "^8.1.5",
38
- "vite-plugin-inspect": "^12.0.2"
28
+ "vite-plugin-inspect": "^12.0.2",
29
+ "@nuxt/devtools-assets": "4.0.0-alpha.13"
39
30
  },
40
31
  "peerDependenciesMeta": {
32
+ "@nuxt/devtools-assets": {
33
+ "optional": true
34
+ },
41
35
  "nitro": {
42
36
  "optional": true
43
37
  },
@@ -49,34 +43,27 @@
49
43
  }
50
44
  },
51
45
  "dependencies": {
52
- "@devframes/plugin-code-server": "^0.9.2",
53
- "@devframes/plugin-data-inspector": "^0.9.2",
54
- "@nuxt/kit": "npm:@nuxt/kit-nightly@5.0.0-29755283.b4586ef2",
55
- "@vitejs/devtools": "^0.5.0",
56
- "@vitejs/devtools-kit": "^0.5.0",
57
- "birpc": "^4.1.0",
46
+ "@devframes/plugin-code-server": "^0.9.4",
47
+ "@devframes/plugin-data-inspector": "^0.9.4",
48
+ "@vitejs/devtools": "^0.5.1",
49
+ "@vitejs/devtools-kit": "^0.5.1",
58
50
  "consola": "^3.4.2",
59
51
  "destr": "^2.0.5",
52
+ "devframe": "^0.9.4",
60
53
  "error-stack-parser-es": "^2.0.1",
61
54
  "fast-npm-meta": "^2.2.0",
62
55
  "hookable": "^6.1.1",
63
56
  "image-meta": "^0.2.2",
64
- "launch-editor": "^2.14.1",
65
57
  "local-pkg": "^1.2.1",
66
58
  "magicast": "^0.5.4",
67
- "ohash": "^2.0.12",
68
59
  "pathe": "^2.0.3",
69
60
  "perfect-debounce": "^2.1.0",
70
61
  "pkg-types": "^2.3.1",
71
- "sirv": "^3.0.2",
72
- "structured-clone-es": "^2.0.1",
73
- "tinyexec": "^1.3.0",
74
62
  "tinyglobby": "^0.2.17",
75
63
  "unstorage": "^1.17.5",
76
64
  "verkit": "^0.4.0",
77
65
  "vite-plugin-vue-tracer": "^1.5.0",
78
- "ws": "^8.21.3",
79
- "@nuxt/devtools-kit": "4.0.0-alpha.11"
66
+ "@nuxt/devtools-kit": "4.0.0-alpha.13"
80
67
  },
81
68
  "devDependencies": {
82
69
  "@antfu/utils": "^9.3.0",
@@ -87,14 +74,15 @@
87
74
  "@iconify-json/ri": "^1.2.10",
88
75
  "@iconify-json/simple-icons": "^1.2.93",
89
76
  "@iconify-json/tabler": "^1.2.38",
77
+ "@nuxt/kit": "npm:@nuxt/kit-nightly@5.0.0-29755283.b4586ef2",
90
78
  "@parcel/watcher": "^2.6.0",
91
79
  "@types/markdown-it-link-attributes": "^3.0.5",
92
80
  "@unhead/schema": "^3.3.2",
93
- "@unocss/nuxt": "^66.7.5",
94
- "@unocss/preset-icons": "^66.7.5",
95
- "@unocss/preset-uno": "^66.7.5",
96
- "@unocss/runtime": "^66.7.5",
97
- "@vitejs/devtools": "^0.5.0",
81
+ "@unocss/nuxt": "^66.8.0",
82
+ "@unocss/preset-icons": "^66.8.0",
83
+ "@unocss/preset-uno": "^66.8.0",
84
+ "@unocss/runtime": "^66.8.0",
85
+ "@vitejs/devtools": "^0.5.1",
98
86
  "@vueuse/nuxt": "^14.4.0",
99
87
  "cronstrue": "^3.24.0",
100
88
  "diff": "^9.0.0",
@@ -114,24 +102,26 @@
114
102
  "scule": "^1.3.0",
115
103
  "shiki": "^4.4.3",
116
104
  "shiki-codegen": "^4.4.3",
105
+ "structured-clone-es": "^2.0.1",
117
106
  "theme-vitesse": "^1.0.0",
118
107
  "tsx": "^4.23.12",
119
108
  "ua-parser-modern": "^0.1.1",
120
109
  "unbuild": "^3.6.1",
121
110
  "unimport": "^6.4.0",
122
- "unocss": "^66.7.5",
111
+ "unocss": "^66.8.0",
123
112
  "unplugin-vue": "^7.2.0",
124
113
  "unplugin-vue-markdown": "^32.0.0",
125
114
  "vanilla-jsoneditor": "^3.13.0",
126
115
  "vis-data": "^8.0.5",
127
- "vis-network": "^10.1.1",
116
+ "vis-network": "^10.1.2",
128
117
  "vite-plugin-inspect": "^12.0.2",
129
118
  "vue-tsc": "^3.3.10",
130
- "vue-virtual-scroller": "^3.0.5"
119
+ "vue-virtual-scroller": "^3.0.5",
120
+ "@nuxt/devtools-assets": "4.0.0-alpha.13"
131
121
  },
132
122
  "scripts": {
133
- "build": "pnpm dev:prepare && pnpm build:module && pnpm build:client",
134
- "build:client": "nuxi generate client && node scripts/copy-client.mjs",
123
+ "build": "pnpm dev:prepare && pnpm build:module",
124
+ "build:client": "pnpm dev:prepare && nuxi generate client && node scripts/copy-client.mjs",
135
125
  "build:module": "nuxt-build-module build",
136
126
  "stub": "nuxt-build-module build --stub",
137
127
  "dev": "nuxi dev client",
@@ -1 +0,0 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__NUXT_DEVTOOLS_BASE__/_nuxt/cd81saaa.js"}}</script><link rel="stylesheet" href="/__NUXT_DEVTOOLS_BASE__/_nuxt/entry.css-meav5jmw.css" crossorigin><link rel="stylesheet" href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/json-editor-vue.css-lb1ewor6.css" crossorigin><link rel="stylesheet" href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/unocss.css-bhad58wt.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/cd81saaa.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nuxt-hj3jyofn.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/json-editor-vue-h1waqukq.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/rolldown-runtime-f96lzs6p.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nicon-co5pnhft.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ready-ikhds7hc.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/dist-2c3gpsw0.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/shiki-g3svwmfz.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/unhead.dnki-vlv7-jmz34zx6.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/composables-li5sexni.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nuxt-link-nsgkom6k.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/utils-d6zq4cvn.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/dist-gklva25a.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/npm-napoklx5.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/unocss-hvwio62w.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/editor-eakm7xzk.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-routes-ntw79bv6.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/telemetry-mienojg2.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nloading-lhpm96ki.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/_plugin-vue_export-helper-d9irwgla.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ntext-input-obq09i2s.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/tab-icon-bw4o7q2t.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nbutton-np26z5og.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ndialog-mpi6dkdo.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ncard-kyrmtdmn.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/fuse-ipb957gg.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-tabs-dhcec3o6.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-commands-bzr47er3.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nuxt-logo-dead1uws.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/dialog-loe55arg.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-schema-eifqm6o4.js"><script type="module" src="/__NUXT_DEVTOOLS_BASE__/_nuxt/cd81saaa.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/default-m4s11ttb.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/full-kcw32vsy.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/none-ju85xmqv.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ncode-block.css-ivoxtfjk.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/data-schema-drawer-pb9ef6ns.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nselect-md65qzv8.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ndropdown-l76w9qwv.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ncode-block-ltlsxf5u.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/client-iet3i2jx.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ndrawer-hw8gqgye.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/quicktype-core-lz5bp16m.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/unocss-runtime-htk43m9c.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-404.css-k0vnbfeq.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-404-nauqrial.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-500.css-lhh2zs4d.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-500-h4c50p0t.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_BASE__/",buildId:"491c94f8-60b1-4f88-a55c-3cb1bf18dd79",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1787118759151,false]</script></body></html>
@@ -1 +0,0 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__NUXT_DEVTOOLS_BASE__/_nuxt/cd81saaa.js"}}</script><link rel="stylesheet" href="/__NUXT_DEVTOOLS_BASE__/_nuxt/entry.css-meav5jmw.css" crossorigin><link rel="stylesheet" href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/json-editor-vue.css-lb1ewor6.css" crossorigin><link rel="stylesheet" href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/unocss.css-bhad58wt.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/cd81saaa.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nuxt-hj3jyofn.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/json-editor-vue-h1waqukq.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/rolldown-runtime-f96lzs6p.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nicon-co5pnhft.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ready-ikhds7hc.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/dist-2c3gpsw0.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/shiki-g3svwmfz.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/unhead.dnki-vlv7-jmz34zx6.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/composables-li5sexni.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nuxt-link-nsgkom6k.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/utils-d6zq4cvn.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/dist-gklva25a.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/npm-napoklx5.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/unocss-hvwio62w.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/editor-eakm7xzk.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-routes-ntw79bv6.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/telemetry-mienojg2.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nloading-lhpm96ki.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/_plugin-vue_export-helper-d9irwgla.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ntext-input-obq09i2s.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/tab-icon-bw4o7q2t.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nbutton-np26z5og.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ndialog-mpi6dkdo.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ncard-kyrmtdmn.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/fuse-ipb957gg.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-tabs-dhcec3o6.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-commands-bzr47er3.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nuxt-logo-dead1uws.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/dialog-loe55arg.js"><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/state-schema-eifqm6o4.js"><script type="module" src="/__NUXT_DEVTOOLS_BASE__/_nuxt/cd81saaa.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/default-m4s11ttb.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/full-kcw32vsy.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/none-ju85xmqv.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ncode-block.css-ivoxtfjk.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/data-schema-drawer-pb9ef6ns.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/nselect-md65qzv8.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ndropdown-l76w9qwv.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ncode-block-ltlsxf5u.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/client-iet3i2jx.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/ndrawer-hw8gqgye.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/vendor/quicktype-core-lz5bp16m.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/unocss-runtime-htk43m9c.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-404.css-k0vnbfeq.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-404-nauqrial.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-500.css-lhh2zs4d.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_BASE__/_nuxt/error-500-h4c50p0t.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_BASE__/",buildId:"491c94f8-60b1-4f88-a55c-3cb1bf18dd79",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1787118759166,false]</script></body></html>
@@ -1 +0,0 @@
1
- import{C as e,H as t,h as n}from"./vendor/json-editor-vue-h1waqukq.js";import{t as r}from"./composables-ioamscf4.js";var i={"h-screen":``,"w-screen":``,"bg-black":``},a=e({__name:`__blank`,setup(e){return r({layout:`none`}),(e,r)=>(t(),n(`div`,i))}});export{a as default};
@@ -1 +0,0 @@
1
- var e=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};export{e as t};