diff --git a/docs/content/2.module/1.utils-kit.md b/docs/content/2.module/1.utils-kit.md index e18adf4476..0c67429780 100644 --- a/docs/content/2.module/1.utils-kit.md +++ b/docs/content/2.module/1.utils-kit.md @@ -145,7 +145,7 @@ import { onDevtoolsClientConnected } from '@nuxt/devtools-kit/iframe-client' onDevtoolsClientConnected(async (client) => { // client is NuxtDevtoolsIframeClient - const config = client.devtools.rpc.getServerConfig() + const components = await client.devtools.rpc.getComponents() // ... }) ``` diff --git a/packages/devtools-kit/src/_types/rpc.ts b/packages/devtools-kit/src/_types/rpc.ts index 988aab3217..d3cfafacc9 100644 --- a/packages/devtools-kit/src/_types/rpc.ts +++ b/packages/devtools-kit/src/_types/rpc.ts @@ -12,7 +12,7 @@ import type { GetWizardArgs, WizardActions } from './wizard' export interface ServerFunctions { // Static RPCs (can be provide on production build in the future) - getServerConfig: () => NuxtOptions + getServerConfig: (token: string) => Promise getServerDebugContext: () => Promise getServerData: (token: string) => Promise getServerRuntimeConfig: (token: string) => Promise> @@ -45,8 +45,8 @@ export interface ServerFunctions { runTerminalAction: (token: string, id: string, action: TerminalAction) => Promise // Storage - getStorageMounts: () => Promise - getStorageKeys: (base?: string) => Promise + getStorageMounts: (token: string) => Promise + getStorageKeys: (token: string, base?: string) => Promise getStorageItem: (token: string, key: string) => Promise setStorageItem: (token: string, key: string, value: StorageValue) => Promise removeStorageItem: (token: string, key: string) => Promise diff --git a/packages/devtools/client/components/StorageDetails.vue b/packages/devtools/client/components/StorageDetails.vue index d9972158ad..348570981d 100644 --- a/packages/devtools/client/components/StorageDetails.vue +++ b/packages/devtools/client/components/StorageDetails.vue @@ -19,10 +19,10 @@ const currentStorage = useSessionState('storage:current', '') const currentItem = ref() const fileKey = useSessionState('storage:file:state', '') -const { data: storageMounts } = await useAsyncData('storageMounts', () => rpc.getStorageMounts()) +const { data: storageMounts } = await useAsyncData('storageMounts', async () => rpc.getStorageMounts(await ensureDevAuthToken())) const { data: storageKeys, refresh: refreshStorageKeys } = await useAsyncData('storageKeys', async () => { if (currentStorage.value) - return await rpc.getStorageKeys(currentStorage.value) + return await rpc.getStorageKeys(await ensureDevAuthToken(), currentStorage.value) return [] }) diff --git a/packages/devtools/client/composables/dev-auth.ts b/packages/devtools/client/composables/dev-auth.ts index 6bd2e6c93a..c9448ec553 100644 --- a/packages/devtools/client/composables/dev-auth.ts +++ b/packages/devtools/client/composables/dev-auth.ts @@ -73,7 +73,7 @@ async function authConfirmAction() { const result = await Promise.race([ AuthConfirm.start(), - until(devAuthToken.value).toBeTruthy(), + until(devAuthToken).toBeTruthy(), ]) if (result === false) { diff --git a/packages/devtools/client/composables/state.ts b/packages/devtools/client/composables/state.ts index f44c4781ab..fd4ebd8541 100644 --- a/packages/devtools/client/composables/state.ts +++ b/packages/devtools/client/composables/state.ts @@ -4,7 +4,7 @@ import { objectPick } from '@antfu/utils' import { computed } from 'vue' import { useFetch } from '#app/composables/fetch' import { useClientRouter } from './client' -import { ensureDevAuthToken } from './dev-auth' +import { ensureDevAuthToken, isDevAuthed } from './dev-auth' import { rpc } from './rpc' import { useAsyncState } from './utils' @@ -37,7 +37,8 @@ export function useStaticAssets() { } export function useServerConfig() { - return useAsyncState('getServerConfig', () => rpc.getServerConfig()) + // Refetch once authorized, e.g. after the initial prompt was dismissed. + return useAsyncState('getServerConfig', async () => rpc.getServerConfig(await ensureDevAuthToken()), { watch: [isDevAuthed] }) } export function useServerDebugContext() { diff --git a/packages/devtools/client/pages/modules/overview.vue b/packages/devtools/client/pages/modules/overview.vue index c66ce622de..1d8dcad006 100644 --- a/packages/devtools/client/pages/modules/overview.vue +++ b/packages/devtools/client/pages/modules/overview.vue @@ -44,7 +44,12 @@ function authorize() {