Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@nuxt/devtools-docs",
"private": true,
"packageManager": "pnpm@11.1.3",
"packageManager": "pnpm@11.4.0",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

Does pnpm version 11.4.0 exist and what are the breaking changes or notable updates in pnpm 11.4.0 compared to 11.1.3?

💡 Result:

Yes, pnpm version 11.4.0 exists and was released on May 27, 2026 [1][2]. Compared to version 11.1.3, pnpm 11.4.0 includes significant security enhancements and feature updates introduced in version 11.4 itself, as well as those accumulated since 11.1.3 (such as updates in 11.2.x and 11.3.x). Key updates and changes in 11.4.0 include: Security Enhancements: - Tarball-integrity mismatches: These are now a hard install failure by default, with a new --update-checksums flag available as a narrowly-scoped opt-in [2]. - Lockfile Integrity: pnpm now rejects lockfile entries that lack integrity metadata at read time [2]. - Credential Scoping: Unscoped credentials no longer leak across registries [2]. - Git Resolutions: The system now rejects non-SHA commit fields for git resolutions [2]. - Patch Files: Patch files attempting to write outside the package directory are now rejected [2]. - Dependency Aliases: Dependency aliases containing path-traversal segments are rejected [2]. Other Notable Updates: - Runtime configuration: The pnpm runtime set command now defaults to writing to devEngines.runtime instead of engines.runtime (use --save-prod or -P to save to engines.runtime) [2]. - Previous versions (11.2.x and 11.3.x): These introduced features such as staged publishing (pnpm stage), native implementations of pnpm pkg, pnpm repo, and pnpm set-script, a --skip-manifest-obfuscation flag for publishing, and a new trustLockfile setting to manage supply-chain verification [3]. For a complete history of changes, you can refer to the official pnpm release notes on GitHub [1][4].

Citations:


pnpm@11.4.0 exists; account for stricter integrity/security changes vs 11.1.3

pnpm@11.4.0 is a real release. Compared to 11.1.3, it introduces breaking/behavior changes that can affect installs and workspace config, including:

  • Tarball integrity mismatches hard-fail by default (opt-in: --update-checksums)
  • Lockfile entries missing integrity metadata are rejected at read time
  • Unscoped credentials no longer leak across registries
  • Git resolutions require SHA commit fields
  • Patch files that write outside the package directory are rejected
  • Dependency aliases containing path-traversal segments are rejected
  • pnpm runtime set now defaults to devEngines.runtime (instead of engines.runtime)

Ensure the workspace lockfile/auth/patches/git resolutions are compatible with these stricter rules.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/package.json` at line 4, Update the package manager declaration and
workspace configs to account for pnpm@11.4.0 stricter rules: ensure the
"packageManager" field (packageManager) is intentional, regenerate or validate
the lockfile and integrity metadata so lockfile entries include integrity
checksums, audit any auth/registry settings so unscoped credentials aren't
leaked, convert git resolutions to include SHA commits, validate patch files and
dependency aliases for directory traversal, and confirm runtime
settings/workspace config (devEngines.runtime vs engines.runtime) are set
appropriately to avoid install/read-time failures under pnpm@11.4.0.

"scripts": {
"dev": "nuxi dev",
"build": "nuxi build",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"type": "module",
"version": "4.0.0-alpha.4",
"private": true,
"packageManager": "pnpm@11.1.3",
"packageManager": "pnpm@11.4.0",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/devtools.git"
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools-ui-kit/src/components/NButton.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { PropType } from 'vue'
import { NuxtLink } from '#components'
import { defineComponent, h, renderSlot } from 'vue'
import { NuxtLink } from '#components'
import NIcon from './NIcon.vue'

// eslint-disable-next-line ts/no-unused-expressions
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/app.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import { useRoute } from '#app/composables/router'
import { useHead } from '#imports'
import { useEventListener, useEyeDropper } from '@vueuse/core'
import { computed, onMounted, ref, watch, watchEffect } from 'vue'
import { useRoute } from '#app/composables/router'
import { useHead } from '#imports'
import { getColorMode, showConnectionWarning, useClient, useInjectionClient } from '~/composables/client'
import { useCopy } from '~/composables/editor'
import { WS_DEBOUNCE_TIME } from '~/composables/rpc'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/AssetDetails.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { AssetInfo, CodeSnippet } from '~/../src/types'
import { devtoolsUiShowNotification } from '#imports'
import { computedAsync, useTimeAgo, useVModel } from '@vueuse/core'
import { computed, ref } from 'vue'
import { devtoolsUiShowNotification } from '#imports'
import { useCopy, useOpenInEditor } from '~/composables/editor'
import { rpc } from '~/composables/rpc'
import { useServerConfig } from '~/composables/state'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/AssetDropZone.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script lang="ts" setup>
import type { AssetEntry } from '~/../src/types'
import { devtoolsUiShowNotification } from '#imports'
import { useEventListener, useVModel } from '@vueuse/core'
import { ref } from 'vue'
import { devtoolsUiShowNotification } from '#imports'
import { rpc, wsConnecting, wsError } from '~/composables/rpc'
import { telemetry } from '~/composables/telemetry'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { AnalyzeBuildMeta } from '../../src/types'
import { useRuntimeConfig } from '#imports'
import { formatTimeAgo } from '@vueuse/core'
import { computed, ref } from 'vue'
import { useRuntimeConfig } from '#imports'
import { rpc } from '~/composables/rpc'

const props = defineProps<{
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/components/CommandPalette.vue
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ useEventListener('keydown', (e) => {
}
})

function onKeyDown(e: KeyboardEvent) {
function handleKeyDown(e: KeyboardEvent) {
if (e.key === 'Backspace' && !search.value && overrideItems.value) {
e.preventDefault()
overrideItems.value = undefined
Expand All @@ -120,7 +120,7 @@ function onKeyDown(e: KeyboardEvent) {
placeholder="Type to search..."
class="rounded-none py3 px2! ring-0!"
n="green borderless"
@keydown="onKeyDown"
@keydown="handleKeyDown"
/>
</header>
<div flex-auto of-auto p2 flex="~ col">
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/NpmVersionCheck.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { NpmCommandOptions } from '../../src/types'
import { useRouter } from '#app/composables/router'
import { createTemplatePromise } from '@vueuse/core'
import { ref } from 'vue'
import { useRouter } from '#app/composables/router'
import { useRestartDialogs } from '~/composables/dialog'
import { usePackageUpdate } from '~/composables/npm'
import { useCurrentTerminalId } from '~/composables/state-routes'
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/components/OpenGraphMissingTabs.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import type { MetaFlatInput } from '@unhead/schema'
import type { MetaFlat } from '@unhead/schema'
import type { ReactiveHead } from '@unhead/vue'
import type { NormalizedHeadTag } from '../../src/types'
import { defu } from 'defu'
Expand All @@ -20,7 +20,7 @@ const missingTags = computed(() => {

const codeSnippet = computed(() => {
let mergedHeadOptions: Partial<ReactiveHead> = {}
const mergedSeoMetaOptions: Partial<MetaFlatInput> = {}
const mergedSeoMetaOptions: Partial<MetaFlat> = {}
missingTags.value
.forEach((tag) => {
if (tag.seoMeta)
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/RestartDialogs.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { useNuxtApp } from '#app/nuxt'
import { createTemplatePromise } from '@vueuse/core'
import { useNuxtApp } from '#app/nuxt'
import { useClient } from '~/composables/client'
import { useRestartDialogs } from '~/composables/dialog'
import { rpc } from '~/composables/rpc'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/ServerRouteDetails.vue
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<script setup lang="ts">
import type { $Fetch } from 'ofetch'
import type { CodeSnippet, ServerRouteInfo, ServerRouteInput } from '~/../src/types'
import { useCookie } from '#app/composables/cookie'
import { createReusableTemplate, useLocalStorage, watchDebounced } from '@vueuse/core'
import JsonEditorVue from 'json-editor-vue'
import { computed, reactive, ref, watchEffect } from 'vue'
import { useCookie } from '#app/composables/cookie'
import { getColorMode, useClient } from '~/composables/client'
import { ComposablesDocs } from '~/composables/constants'
import { useOpenInEditor } from '~/composables/editor'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/SideNavItem.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { ModuleBuiltinTab, ModuleCustomTab } from '~/../src/types'
import { computed, toValue } from 'vue'
import { useRoute } from '#app/composables/router'
import { NuxtLink } from '#components'
import { computed, toValue } from 'vue'
import { splitScreenView } from '~/composables/storage'
import { telemetry } from '~/composables/telemetry'

Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/SplitScreen.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { useRoute, useRouter } from '#app/composables/router'
import { onClickOutside } from '@vueuse/core'
import { computed, defineAsyncComponent, ref, shallowRef, watch } from 'vue'
import { useRoute, useRouter } from '#app/composables/router'
import { getCategorizedTabs, useEnabledTabs } from '~/composables/state-tabs'
import { splitScreenEnabled, splitScreenView } from '~/composables/storage'

Expand Down
6 changes: 3 additions & 3 deletions packages/devtools/client/components/StorageDetails.vue
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<script setup lang="ts">
import { useAsyncData } from '#app/composables/asyncData'
import { useRouter } from '#app/composables/router'
import { useNuxtApp } from '#app/nuxt'
import { useEventListener } from '@vueuse/core'
import JsonEditorVue from 'json-editor-vue'
import { computed, onUnmounted, ref, watch, watchEffect } from 'vue'
import { useAsyncData } from '#app/composables/asyncData'
import { useRouter } from '#app/composables/router'
import { useNuxtApp } from '#app/nuxt'
import { getColorMode } from '~/composables/client'
import { rpc } from '~/composables/rpc'
import { useSessionState } from '~/composables/utils'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/TerminalView.vue
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<script setup lang="ts">
import type { TerminalInfo } from '../../src/types'
import { useNuxtApp } from '#app/nuxt'
import { useEventListener } from '@vueuse/core'
import { FitAddon } from '@xterm/addon-fit'
import { Terminal } from '@xterm/xterm'
import { onMounted, ref } from 'vue'
import { useNuxtApp } from '#app/nuxt'
import { rpc } from '~/composables/rpc'
import '@xterm/xterm/css/xterm.css'

Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/components/docs/timeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ Nuxt DevTools tracks function calls by wrapping them in the build time. It works

```vue
<script setup>
import { useMouse } from '@vueuse/core'
import { useRoute } from '#app/composables/router'
import { useNuxtApp } from '#imports'
import { useMouse } from '@vueuse/core'

const route = useRoute() // tracked
const app = useNuxtApp() // tracked
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/composables/client.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { useRoute, useRouter } from '#imports'
import type { NuxtDevtoolsClient, NuxtDevtoolsHostClient, NuxtDevtoolsIframeClient } from '@nuxt/devtools-kit/types'
import type { Unhead } from '@unhead/schema'
import type { DevToolsRpcClient } from '@vitejs/devtools-kit/client'
import type { ComputedRef } from 'vue'
import { useState } from '#imports'
import type { useRoute, useRouter } from '#imports'
import { useColorMode } from '@vueuse/core'
import { computed, ref } from 'vue'
import { useState } from '#imports'
import { renderMarkdown } from './client-services/markdown'
import { renderCodeHighlight } from './client-services/shiki'
import { connectPromise, rpc, rpcClient } from './rpc'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/dialog.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { InstallModuleReturn, ModuleActionType, ModuleStaticInfo } from '../../src/types'
import { useState } from '#imports'
import { createTemplatePromise } from '@vueuse/core'
import { useState } from '#imports'

export const ModuleDialog = createTemplatePromise<boolean, [info: ModuleStaticInfo, result: InstallModuleReturn, type: ModuleActionType]>()

Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/editor.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useClipboard } from '@vueuse/core'
import { useRouter } from '#app/composables/router'
import { devtoolsUiShowNotification } from '#imports'
import { useClipboard } from '@vueuse/core'
import { rpc } from './rpc'
import { useServerConfig, useVirtualFiles } from './state'
import { useCurrentVirtualFile } from './state-routes'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/npm.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { NpmCommandOptions } from '../../src/types'
import { useNuxtApp } from '#app/nuxt'
import semver from 'semver'
import { computed, ref } from 'vue'
import { useNuxtApp } from '#app/nuxt'
import { rpc } from './rpc'
import { useAsyncState } from './utils'

Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/state-commands.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { MaybeRefOrGetter } from 'vue'
import { useRouter } from '#app/composables/router'
import { randomStr } from '@antfu/utils'
import { computed, onUnmounted, reactive, toValue } from 'vue'
import { useRouter } from '#app/composables/router'
import { useEnabledTabs } from './state-tabs'

export interface CommandItem {
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/state-modules.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { InstalledModuleInfo, ModuleStaticInfo } from '../../src/types'
import { useState } from '#imports'
import { computed } from 'vue'
import { useState } from '#imports'
import { useServerConfig } from './state'
import { getModuleNameFromPath, isNodeModulePath, parseReadablePath, useAsyncState } from './utils'

Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/state-tabs.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ComputedRef, MaybeRef } from 'vue'
import type { CategorizedTabs, ModuleBuiltinTab, ModuleCustomTab, RouteInfo, TabCategory } from '../../src/types'
import { useRouter } from '#app/composables/router'
import { objectPick } from '@antfu/utils'
import { computed, toValue, unref } from 'vue'
import { useRouter } from '#app/composables/router'
import { useClientRouter } from './client'
import { useCustomTabs, useServerPages } from './state'
import { useDevToolsOptions } from './storage-options'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/composables/state.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Ref } from 'vue'
import type { HookInfo, RouteInfo } from '../../src/types'
import { useFetch } from '#app/composables/fetch'
import { objectPick } from '@antfu/utils'
import { computed } from 'vue'
import { useFetch } from '#app/composables/fetch'
import { useClientRouter } from './client'
import { rpc } from './rpc'
import { useAsyncState } from './utils'
Expand Down
8 changes: 4 additions & 4 deletions packages/devtools/client/composables/utils.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import type { AsyncDataOptions } from '#app'
import type { Component } from 'nuxt/schema'
import type { Ref } from 'vue'
import type { AsyncDataOptions } from '#app'
import type { ComponentRelationship, ComponentWithRelationships, NormalizedHeadTag, SocialPreviewCard, SocialPreviewResolved } from '~/../src/types'
import { useAsyncData } from '#app/composables/asyncData'
import { useNuxtApp } from '#app/nuxt'
import { useState } from '#imports'
import { useSessionStorage } from '@vueuse/core'
import { relative } from 'pathe'
import { isRef, triggerRef } from 'vue'
import { useAsyncData } from '#app/composables/asyncData'
import { useNuxtApp } from '#app/nuxt'
import { useState } from '#imports'
import { useClient } from './client'
import { useServerConfig } from './state'

Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/data/open-graph.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { MetaFlatInput } from '@unhead/schema'
import type { MetaFlat } from '@unhead/schema'
import type { ReactiveHead } from '@unhead/vue'

export interface OpenGraphTagDefine {
name: string
suggestion: 'required' | 'recommended' | 'optional'
head: Partial<ReactiveHead>
seoMeta?: Partial<MetaFlatInput> & { title?: string }
seoMeta?: Partial<MetaFlat> & { title?: string }
docs?: string
description?: string
}
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/index.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { definePageMeta } from '#imports'
import { ref } from 'vue'
import { definePageMeta } from '#imports'
import { isFirstVisit } from '~/composables/storage'
import { telemetryEnabled } from '~/composables/telemetry'

Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/pages/modules/analyze-build.vue
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<script setup lang="ts">
import type { AnalyzeBuildMeta } from '~/../src/types'
import { useRouter } from '#app/composables/router'
import { definePageMeta } from '#imports'
import { createTemplatePromise, formatTimeAgo } from '@vueuse/core'
import { computed, ref } from 'vue'
import { useRouter } from '#app/composables/router'
import { definePageMeta } from '#imports'
import { satisfyNuxtVersion } from '~/composables/npm'
import { rpc } from '~/composables/rpc'
import { useAnalyzeBuildInfo } from '~/composables/state'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/assets.vue
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<script setup lang="ts">
import type { AssetInfo } from '~/../src/types'
import { definePageMeta } from '#imports'
import { onKeyDown, reactiveComputed } from '@vueuse/core'
import Fuse from 'fuse.js'
import { computed, ref } from 'vue'
import { definePageMeta } from '#imports'
import { DETAILS_MAX_ITEMS } from '~/composables/constants'
import { useStaticAssets } from '~/composables/state'
import { useDevToolsOptions } from '~/composables/storage-options'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/custom-[name].vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { ModuleCustomTab } from '~/../src/types'
import { computed, onMounted } from 'vue'
import { useRoute, useRouter } from '#app/composables/router'
import { definePageMeta } from '#imports'
import { computed, onMounted } from 'vue'
import { isDevAuthed, requestForAuth } from '~/composables/dev-auth'
import { rpc } from '~/composables/rpc'
import { useAllTabs } from '~/composables/state-tabs'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/error.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { definePageMeta } from '#imports'
import { parse as parseStrackTrace } from 'error-stack-parser-es'
import { computed } from 'vue'
import { definePageMeta } from '#imports'
import { useClient } from '~/composables/client'

definePageMeta({
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/hooks.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { definePageMeta } from '#imports'
import { computed } from 'vue'
import { definePageMeta } from '#imports'
import { useClient } from '~/composables/client'
import { useServerHooks } from '~/composables/state'

Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/imports.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { Import } from 'unimport'
import { definePageMeta } from '#imports'
import Fuse from 'fuse.js'
import { computed, ref } from 'vue'
import { definePageMeta } from '#imports'
import { DETAILS_MAX_ITEMS } from '~/composables/constants'
import { useAutoImports, useServerConfig } from '~/composables/state'
import { getModuleNameFromPath, isBuiltInModule, isNodeModulePath } from '~/composables/utils'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/modules.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { definePageMeta } from '#imports'
import { computed, ref } from 'vue'
import { definePageMeta } from '#imports'
import { registerCommands } from '~/composables/state-commands'
import { useInstalledModules } from '~/composables/state-modules'
import { useCurrentTerminalId } from '~/composables/state-routes'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/open-graph.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script setup lang="ts">
import type { NormalizedHeadTag } from '~/../src/types/ui-state'
import { definePageMeta } from '#imports'
import { computedAsync, until } from '@vueuse/core'
import { computed, nextTick, ref } from 'vue'
import { definePageMeta } from '#imports'
import { useClient, useClientHead, useClientRoute, useClientRouter } from '~/composables/client'
import { useOpenInEditor } from '~/composables/editor'
import { useMergedRouteList } from '~/composables/state'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/overview.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed } from 'vue'
import { useRouter } from '#app/composables/router'
import { definePageMeta } from '#imports'
import { computed } from 'vue'
import { useClient } from '~/composables/client'
import { useAutoImports, useServerConfig } from '~/composables/state'
import { useComponents } from '~/composables/state-components'
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/client/pages/modules/pages.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { definePageMeta } from '#imports'
import { computed, onMounted, ref } from 'vue'
import { definePageMeta } from '#imports'
import { useClient, useClientRoute, useClientRouter } from '~/composables/client'
import { useLayouts, useMergedRouteList, useServerApp, useServerConfig } from '~/composables/state'
import { useNuxtCompatibilityVersion } from '~/composables/utils'
Expand Down
Loading
Loading