@nuxt/devtools 4.0.0-alpha.18 → 4.0.0-alpha.19
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/_nuxt/{CodeDiff-C5IA82Lq.js.map.json → CodeDiff-BhzZ6fTd.js.map.json} +1 -1
- package/dist/_nuxt/{CodeSnippets-iUZQ267m.js.map.json → CodeSnippets-C7LxVstU.js.map.json} +1 -1
- package/dist/_nuxt/{ComposableItem-K51Uhl0G.js.map.json → ComposableItem-C0rRVuVk.js.map.json} +1 -1
- package/dist/_nuxt/{DataSchemaButton-DdHHdnES.js.map.json → DataSchemaButton-D-t7Fd9O.js.map.json} +1 -1
- package/dist/_nuxt/{DataSchemaDrawer-2qqeTeF6.js.map.json → DataSchemaDrawer-CRqKi4Gs.js.map.json} +1 -1
- package/dist/_nuxt/{FilepathItem-D6jrZnIo.js.map.json → FilepathItem-QhFtdBo3.js.map.json} +1 -1
- package/dist/_nuxt/{HelpFab-xcWoP6o_.js.map.json → HelpFab-DsqK9feu.js.map.json} +1 -1
- package/dist/_nuxt/{LaunchPage-DVRrHA9i.js.map.json → LaunchPage-DvnAdXoI.js.map.json} +1 -1
- package/dist/_nuxt/{NCheckbox-Cq1GuyrF.js.map.json → NCheckbox-C4hTNEJ1.js.map.json} +1 -1
- package/dist/_nuxt/{NDrawer-C_ZAB3z9.js.map.json → NDrawer-CkklqKLr.js.map.json} +1 -1
- package/dist/_nuxt/{NDropdown-CzJi2B9y.js.map.json → NDropdown-CgrUsKt7.js.map.json} +1 -1
- package/dist/_nuxt/{NIcon-B-t2-q1r.js.map.json → NIcon-50gk2nbO.js.map.json} +1 -1
- package/dist/_nuxt/{NLink-DIWpT2C-.js.map.json → NLink-CatISrot.js.map.json} +1 -1
- package/dist/_nuxt/{NNavbar-BShfBHAc.js.map.json → NNavbar-Du6Evn0c.js.map.json} +1 -1
- package/dist/_nuxt/{NSectionBlock-Cm4pPEIM.js.map.json → NSectionBlock-CWogkb2Y.js.map.json} +1 -1
- package/dist/_nuxt/{NSelect-9Nk3v_sQ.js.map.json → NSelect-C1Q6pEoo.js.map.json} +1 -1
- package/dist/_nuxt/{NSelectTabs-D8amX2yN.js.map.json → NSelectTabs-ccruddjj.js.map.json} +1 -1
- package/dist/_nuxt/{NSplitPane-CWyIovAp.js.map.json → NSplitPane-CtaObqWQ.js.map.json} +1 -1
- package/dist/_nuxt/{NTip-BVi1j0Ir.js.map.json → NTip-DdMJ2p97.js.map.json} +1 -1
- package/dist/_nuxt/{ServerRouteInputs-lclUilqu.js.map.json → ServerRouteInputs-Y1oZjFFT.js.map.json} +1 -1
- package/dist/_nuxt/{StacktraceList-BUhKgrAv.js.map.json → StacktraceList-c-F2IS3F.js.map.json} +1 -1
- package/dist/_nuxt/{StateEditor-D_NCPzZq.js.map.json → StateEditor-CDR7gMTz.js.map.json} +1 -1
- package/dist/_nuxt/{__blank-BgoalQAL.js.map.json → __blank-C9tG8tKE.js.map.json} +1 -1
- package/dist/_nuxt/{analyze-build-DSk_N3wx.js.map.json → analyze-build-BqtehgeE.js.map.json} +1 -1
- package/dist/_nuxt/{assets-6seYEHqs.js.map.json → assets-BuVkFuYO.js.map.json} +1 -1
- package/dist/_nuxt/{components-CTVOL1-D.js.map.json → components-uGD7fpTl.js.map.json} +1 -1
- package/dist/_nuxt/{custom-_name_-DRWuAoZa.js.map.json → custom-_name_-CL9ijc8K.js.map.json} +1 -1
- package/dist/_nuxt/{debug-CpWOyAbK.js.map.json → debug-D10Jwem2.js.map.json} +1 -1
- package/dist/_nuxt/{entry-uV9FV_26.js.map.json → entry-CqsJq8Bj.js.map.json} +1 -1
- package/dist/_nuxt/{error-404-BN7jSsJU.js.map.json → error-404-B3hvNTTL.js.map.json} +1 -1
- package/dist/_nuxt/{error-500-CX60RT79.js.map.json → error-500-C707LWWo.js.map.json} +1 -1
- package/dist/_nuxt/{error-YOq9ydYM.js.map.json → error-D03t_7ms.js.map.json} +1 -1
- package/dist/_nuxt/{head-Q3WHkZN-.js.map.json → head-BHeO3WM1.js.map.json} +1 -1
- package/dist/_nuxt/{hooks-Dfejz2-5.js.map.json → hooks-Dao-RDzo.js.map.json} +1 -1
- package/dist/_nuxt/{imports-CCepJr4G.js.map.json → imports-CY-qGueB.js.map.json} +1 -1
- package/dist/_nuxt/{modules-CDEu6e8J.js.map.json → modules-BTU4bGX2.js.map.json} +1 -1
- package/dist/_nuxt/{nuxt-B-ZgUV2U.js.map.json → nuxt-CU0ot_Hr.js.map.json} +1 -1
- package/dist/_nuxt/{nuxt-link-X36zPJaC.js.map.json → nuxt-link-DVKhBKYR.js.map.json} +1 -1
- package/dist/_nuxt/{open-graph-RnltEfE1.js.map.json → open-graph-DrWy0sHo.js.map.json} +1 -1
- package/dist/_nuxt/{overview-0981_RjH.js.map.json → overview-DMlMZwOJ.js.map.json} +1 -1
- package/dist/_nuxt/{pages-Dv_rq-A5.js.map.json → pages-BqpyOhlp.js.map.json} +1 -1
- package/dist/_nuxt/{pages-c-R2EyNA.js.map.json → pages-Dpy3RGh8.js.map.json} +1 -1
- package/dist/_nuxt/{pages-BJY0ZMcV.js.map.json → pages-SVg8-7rL.js.map.json} +1 -1
- package/dist/_nuxt/{payload-EEc-a5Rs.js.map.json → payload-B4tGg_yJ.js.map.json} +1 -1
- package/dist/_nuxt/{plugins-DBU4EaVz.js.map.json → plugins-sOeLpXdK.js.map.json} +1 -1
- package/dist/_nuxt/{ready-B0tgRAWs.js.map.json → ready-DyAGZGXh.js.map.json} +1 -1
- package/dist/_nuxt/{runtime-configs-eyjqyWy0.js.map.json → runtime-configs-CKsHjoDA.js.map.json} +1 -1
- package/dist/_nuxt/{server-routes-CmFWvg0q.js.map.json → server-routes-Dr4xIhnL.js.map.json} +1 -1
- package/dist/_nuxt/{server-tasks-y13wW_sS.js.map.json → server-tasks-DVSMIJ23.js.map.json} +1 -1
- package/dist/_nuxt/{settings-CQHWdQH5.js.map.json → settings-ClAb5Ncw.js.map.json} +1 -1
- package/dist/_nuxt/{state-components-BtOK14JS.js.map.json → state-components-CUy4qfKa.js.map.json} +1 -1
- package/dist/_nuxt/{state-modules-B1t4RCwZ.js.map.json → state-modules-BiTBg3sT.js.map.json} +1 -1
- package/dist/_nuxt/{state-tabs-DgyOko_b.js.map.json → state-tabs-DyXoC_gu.js.map.json} +1 -1
- package/dist/_nuxt/{storage-CL3RFmxG.js.map.json → storage-Bl77u--J.js.map.json} +1 -1
- package/dist/_nuxt/{timeline-CrhB_ydt.js.map.json → timeline-RijyQyqW.js.map.json} +1 -1
- package/dist/_nuxt/{utils-DdQYVRed.js.map.json → utils-B-D4Pftb.js.map.json} +1 -1
- package/dist/_nuxt/{virtual-files-WqYqMpE0.js.map.json → virtual-files-DKOje2lN.js.map.json} +1 -1
- package/dist/chunks/analyze-build.mjs +1 -1
- package/dist/chunks/module-main.mjs +34 -22
- package/dist/chunks/vite-inspect.mjs +1 -1
- package/dist/index.mjs.map.json +1 -1
- package/dist/module.json +1 -1
- package/dist/server.mjs.map.json +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"storage-CL3RFmxG.js","mappings":"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","names":[],"sources":["../../../../../../../../components/AuthRequiredPanel.vue","../../../../../../../../components/StorageDetails.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/StorageDetails.vue","../../../../../../../../pages/modules/storage.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../pages/modules/storage.vue"],"sourcesContent":["<template>\n <!-- Auth is now handled by Vite DevTools -->\n <slot />\n</template>\n","import { withAsyncContext as _withAsyncContext, defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, isRef as _isRef, createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, withKeys as _withKeys, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withModifiers as _withModifiers, withDirectives as _withDirectives } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent, ssrRenderAttr as _ssrRenderAttr, ssrRenderClass as _ssrRenderClass, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport { useEventListener } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { computed, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useRouter } from '#app/composables/router'\nimport { useNuxtApp } from '#app/nuxt'\nimport { getColorMode } from '~/composables/client'\nimport { rpc } from '~/composables/rpc'\nimport { useSessionState } from '~/composables/utils'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'StorageDetails',\n __ssrInlineRender: true,\n async setup(__props) {\n\nlet __temp: any, __restore: any\n\nconst colorMode = getColorMode()\nconst nuxtApp = useNuxtApp()\nconst router = useRouter()\nconst searchString = ref('')\nconst newKey = ref('')\nconst currentStorage = useSessionState<string>('storage:current', '')\nconst currentItem = ref()\nconst fileKey = useSessionState<string>('storage:file:state', '')\n\nconst { data: storageMounts } = (\n ([__temp,__restore] = _withAsyncContext(() => useAsyncData('storageMounts', () => rpc.getStorageMounts()))),\n __temp = await __temp,\n __restore(),\n __temp\n)\nconst { data: storageKeys, refresh: refreshStorageKeys } = (\n ([__temp,__restore] = _withAsyncContext(async () => useAsyncData('storageKeys', async () => {\n if (currentStorage.value)\n return await rpc.getStorageKeys(currentStorage.value)\n return []\n}))),\n __temp = await __temp,\n __restore(),\n __temp\n)\n\nconst closeWatcher = nuxtApp.hook('storage:key:update' as any, async (key: string, event: any) => {\n if (!currentStorage.value || key.split(':')[0] !== currentStorage.value)\n return\n await refreshStorageKeys()\n if (fileKey.value === key) {\n if (event === 'remove')\n return router.replace({ query: { storage: currentStorage.value } })\n await fetchItem(fileKey.value)\n }\n})\n\nonUnmounted(closeWatcher)\n\nwatch(currentStorage, () => {\n refreshStorageKeys()\n fileKey.value = ''\n})\n\nwatchEffect(async () => {\n if (!fileKey.value) {\n currentItem.value = null\n return\n }\n fetchItem(fileKey.value)\n})\n\n// Save on Ctrl/Cmd + S\nuseEventListener('keydown', (e) => {\n if (e.key === 's' && (e.ctrlKey || e.metaKey)) {\n saveCurrentItem()\n e.preventDefault()\n }\n})\n\nfunction keyName(key: string) {\n return key.replace(`${currentStorage.value}:`, '')\n}\n\nconst filteredKeys = computed(() => {\n if (!storageKeys.value)\n return []\n return storageKeys.value.filter(key => key.includes(searchString.value))\n})\n\nasync function fetchItem(key: string) {\n const content = await rpc.getStorageItem(key)\n currentItem.value = {\n key,\n updatedKey: keyName(key),\n editingKey: false,\n content,\n updatedContent: content,\n }\n}\n\nasync function saveNewItem() {\n if (!newKey.value || !currentStorage.value)\n return\n // If does not exists\n const key = `${currentStorage.value}:${newKey.value}`\n if (!storageKeys.value?.includes(key))\n await rpc.setStorageItem(key, '')\n\n router.replace({ query: { storage: currentStorage.value, key } })\n newKey.value = ''\n}\n\nasync function saveCurrentItem() {\n if (!currentItem.value)\n return\n await rpc.setStorageItem(currentItem.value.key, currentItem.value.updatedContent)\n await fetchItem(currentItem.value.key)\n}\n\nasync function removeCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n await rpc.removeStorageItem(currentItem.value.key)\n currentItem.value = null\n}\n\nasync function renameCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n const renamedKey = `${currentStorage.value}:${currentItem.value.updatedKey}`\n await rpc.setStorageItem(renamedKey, currentItem.value.updatedContent)\n await rpc.removeStorageItem(currentItem.value.key)\n router.replace({ query: { storage: currentStorage.value, key: renamedKey } })\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NSplitPane = _resolveComponent(\"NSplitPane\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n const _component_NSelect = _resolveComponent(\"NSelect\")!\n const _component_NTextInput = _resolveComponent(\"NTextInput\")!\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n const _component_NPanelGrids = _resolveComponent(\"NPanelGrids\")!\n const _component_NCard = _resolveComponent(\"NCard\")!\n const _component_NLink = _resolveComponent(\"NLink\")!\n const _component_FilepathItem = _resolveComponent(\"FilepathItem\")!\n\n if (_unref(currentStorage)) {\n _push(_ssrRenderComponent(_component_NSplitPane, _mergeProps({ \"storage-key\": \"tab-storage\" }, _attrs), {\n left: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div class=\"h-[48px] flex items-center justify-between gap1 px-3\"${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n icon: \"carbon-chevron-left\",\n \"ml--1\": \"\",\n border: false,\n onClick: ($event: any) => (currentStorage.value = '')\n }, null, _parent, _scopeId))\n _push(`<div class=\"w-full text-sm\"${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NSelect, {\n modelValue: _unref(currentStorage),\n \"onUpdate:modelValue\": ($event: any) => (_isRef(currentStorage) ? (currentStorage).value = $event : null),\n n: \"primary\",\n icon: \"carbon-data-base\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<!--[-->`)\n _ssrRenderList(_unref(storageMounts), (_storage, name) => {\n _push(`<option${\n _ssrRenderAttr(\"value\", name)\n }${\n _scopeId\n }>${\n _ssrInterpolate(name)\n }</option>`)\n })\n _push(`<!--]-->`)\n } else {\n return [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (_storage, name) => {\n return (_openBlock(), _createBlock(\"option\", {\n key: name,\n value: name\n }, _toDisplayString(name), 9, [\"value\"]))\n }), 128))\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</div></div>`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: searchString.value,\n \"onUpdate:modelValue\": ($event: any) => ((searchString).value = $event),\n icon: \"carbon-search\",\n placeholder: \"Search...\",\n n: \"primary sm\",\n border: \"y x-none base! rounded-0\",\n class: \"w-full py2 ring-0!\"\n }, null, _parent, _scopeId))\n _push(`<!--[-->`)\n _ssrRenderList(filteredKeys.value, (key) => {\n _push(`<!--[--><button block w-full truncate px2 py1 text-start text-sm font-mono class=\"${\n _ssrRenderClass(key === currentItem.value?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover')\n }\"${\n _scopeId\n }>${\n _ssrInterpolate(keyName(key))\n }</button><div x-divider${\n _scopeId\n }></div><!--]-->`)\n })\n _push(`<!--]-->`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: newKey.value,\n \"onUpdate:modelValue\": ($event: any) => ((newKey).value = $event),\n icon: \"carbon-add\",\n placeholder: \"key\",\n n: \"sm\",\n border: \"t-none x-none base! rounded-0\",\n class: \"w-full py2 font-mono ring-0!\",\n onKeyup: saveNewItem\n }, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(\"div\", { class: \"h-[48px] flex items-center justify-between gap1 px-3\" }, [\n _createVNode(_component_NButton, {\n icon: \"carbon-chevron-left\",\n \"ml--1\": \"\",\n border: false,\n onClick: ($event: any) => (currentStorage.value = '')\n }, null, 8, [\"onClick\"]),\n _createVNode(\"div\", { class: \"w-full text-sm\" }, [\n _createVNode(_component_NSelect, {\n modelValue: _unref(currentStorage),\n \"onUpdate:modelValue\": ($event: any) => (_isRef(currentStorage) ? (currentStorage).value = $event : null),\n n: \"primary\",\n icon: \"carbon-data-base\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (_storage, name) => {\n return (_openBlock(), _createBlock(\"option\", {\n key: name,\n value: name\n }, _toDisplayString(name), 9, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(_component_NTextInput, {\n modelValue: searchString.value,\n \"onUpdate:modelValue\": ($event: any) => ((searchString).value = $event),\n icon: \"carbon-search\",\n placeholder: \"Search...\",\n n: \"primary sm\",\n border: \"y x-none base! rounded-0\",\n class: \"w-full py2 ring-0!\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(filteredKeys.value, (key) => {\n return (_openBlock(), _createBlock(_Fragment, { key: key }, [\n _createVNode(\"button\", {\n block: \"\",\n \"w-full\": \"\",\n truncate: \"\",\n px2: \"\",\n py1: \"\",\n \"text-start\": \"\",\n \"text-sm\": \"\",\n \"font-mono\": \"\",\n class: key === currentItem.value?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover',\n onClick: ($event: any) => (fileKey.value = key)\n }, _toDisplayString(keyName(key)), 11, [\"onClick\"]),\n _createVNode(\"div\", { \"x-divider\": \"\" })\n ], 64))\n }), 128)),\n _createVNode(_component_NTextInput, {\n modelValue: newKey.value,\n \"onUpdate:modelValue\": ($event: any) => ((newKey).value = $event),\n icon: \"carbon-add\",\n placeholder: \"key\",\n n: \"sm\",\n border: \"t-none x-none base! rounded-0\",\n class: \"w-full py2 font-mono ring-0!\",\n onKeyup: _withKeys(saveNewItem, [\"enter\"])\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]\n }\n }),\n right: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (currentItem.value?.key) {\n _push(`<div h-full of-hidden flex=\"~ col\"${\n _scopeId\n }><div border=\"b base\" class=\"h-[49px] flex flex-none items-center justify-between px-4 text-sm\"${\n _scopeId\n }><div class=\"flex items-center gap-4\"${\n _scopeId\n }>`)\n if (currentItem.value.editingKey) {\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: currentItem.value.updatedKey,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedKey) = $event),\n onKeyup: renameCurrentItem\n }, null, _parent, _scopeId))\n } else {\n _push(`<code${\n _scopeId\n }>${\n _ssrInterpolate(keyName(currentItem.value.key))\n } `)\n _push(_ssrRenderComponent(_component_NIcon, {\n icon: \"carbon-edit\",\n class: \"cursor-pointer op50 hover:op100\",\n onClick: ($event: any) => (currentItem.value.editingKey = true)\n }, null, _parent, _scopeId))\n _push(`</code>`)\n }\n if (!currentItem.value.editingKey) {\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"green xs\",\n disabled: currentItem.value.content === currentItem.value.updatedContent,\n class: { 'border-green': currentItem.value.content !== currentItem.value.updatedContent },\n onClick: saveCurrentItem\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Save `)\n } else {\n return [\n _createTextVNode(\" Save \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n _push(`</div><div${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"red xs\",\n onClick: removeCurrentItem\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Delete `)\n } else {\n return [\n _createTextVNode(\" Delete \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</div></div>`)\n if (typeof currentItem.value.content === 'object') {\n _push(_ssrRenderComponent(_unref(JsonEditorVue), _mergeProps({\n modelValue: currentItem.value.updatedContent,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n class: [[_unref(colorMode) === 'dark' ? 'jse-theme-dark' : 'light'], \"json-editor-vue h-full of-auto text-sm outline-none\"]\n }, _ctx.$attrs, {\n mode: ('text' as any),\n \"navigation-bar\": false,\n indentation: 2,\n \"tab-size\": 2\n }), null, _parent, _scopeId))\n } else {\n _push(`<textarea placeholder=\"Item value...\" class=\"h-full of-auto p-4 text-sm font-mono outline-none\"${\n _scopeId\n }>${\n _ssrInterpolate(currentItem.value.updatedContent)\n }</textarea>`)\n }\n _push(`</div>`)\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, null, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Select one key to start.<br${_scopeId}>Learn more about `)\n _push(_ssrRenderComponent(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Nitro storage `)\n } else {\n return [\n _createTextVNode(\" Nitro storage \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n return [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n }\n } else {\n return [\n (currentItem.value?.key)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n \"h-full\": \"\",\n \"of-hidden\": \"\",\n flex: \"~ col\"\n }, [\n _createVNode(\"div\", {\n border: \"b base\",\n class: \"h-[49px] flex flex-none items-center justify-between px-4 text-sm\"\n }, [\n _createVNode(\"div\", { class: \"flex items-center gap-4\" }, [\n (currentItem.value.editingKey)\n ? (_openBlock(), _createBlock(_component_NTextInput, {\n key: 0,\n modelValue: currentItem.value.updatedKey,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedKey) = $event),\n onKeyup: _withKeys(renameCurrentItem, [\"enter\"])\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]))\n : (_openBlock(), _createBlock(\"code\", { key: 1 }, [\n _createTextVNode(_toDisplayString(keyName(currentItem.value.key)) + \" \", 1),\n _createVNode(_component_NIcon, {\n icon: \"carbon-edit\",\n class: \"cursor-pointer op50 hover:op100\",\n onClick: ($event: any) => (currentItem.value.editingKey = true)\n }, null, 8, [\"onClick\"])\n ])),\n (!currentItem.value.editingKey)\n ? (_openBlock(), _createBlock(_component_NButton, {\n key: 2,\n n: \"green xs\",\n disabled: currentItem.value.content === currentItem.value.updatedContent,\n class: { 'border-green': currentItem.value.content !== currentItem.value.updatedContent },\n onClick: saveCurrentItem\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Save \")\n ]),\n _: 1\n }, 8, [\"disabled\", \"class\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"div\", null, [\n _createVNode(_component_NButton, {\n n: \"red xs\",\n onClick: removeCurrentItem\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Delete \")\n ]),\n _: 1\n })\n ])\n ]),\n (typeof currentItem.value.content === 'object')\n ? (_openBlock(), _createBlock(_unref(JsonEditorVue), _mergeProps({\n key: 0,\n modelValue: currentItem.value.updatedContent,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n class: [[_unref(colorMode) === 'dark' ? 'jse-theme-dark' : 'light'], \"json-editor-vue h-full of-auto text-sm outline-none\"]\n }, _ctx.$attrs, {\n mode: ('text' as any),\n \"navigation-bar\": false,\n indentation: 2,\n \"tab-size\": 2\n }), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"class\"]))\n : _withDirectives((_openBlock(), _createBlock(\"textarea\", {\n key: 1,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n placeholder: \"Item value...\",\n class: \"h-full of-auto p-4 text-sm font-mono outline-none\",\n onKeyup: _withKeys(_withModifiers(saveCurrentItem, [\"ctrl\"]), [\"enter\"])\n }, null, 40, [\"onUpdate:modelValue\", \"onKeyup\"])), [\n [_vModelText, currentItem.value.updatedContent]\n ])\n ]))\n : (_openBlock(), _createBlock(_component_NPanelGrids, { key: 1 }, {\n default: _withCtx(() => [\n _createVNode(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n ]\n }\n }),\n _: 1\n }, _parent))\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, _attrs, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (Object.keys(_unref(storageMounts) as any).length) {\n _push(`<p op50${_scopeId}> Select one storage to start: </p>`)\n } else {\n _push(`<p${\n _scopeId\n }> No custom storage defined in <code${\n _scopeId\n }>nitro.storage</code>.<br${\n _scopeId\n }> Learn more about `)\n _push(_ssrRenderComponent(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Nitro storage `)\n } else {\n return [\n _createTextVNode(\" Nitro storage \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</p>`)\n }\n _push(`<!--[-->`)\n _ssrRenderList(_unref(storageMounts), (storage, name) => {\n _push(_ssrRenderComponent(_component_NCard, {\n key: name,\n \"min-w-80\": \"\",\n \"cursor-pointer\": \"\",\n \"p-4\": \"\",\n \"text-left\": \"\",\n hover: \"border-green\",\n onClick: ($event: any) => (currentStorage.value = name as string)\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<span font-bold${\n _scopeId\n }>${\n _ssrInterpolate(name)\n }</span><br${\n _scopeId\n }><span text-sm${\n _scopeId\n }>${\n _ssrInterpolate(storage.driver)\n } driver</span><br${\n _scopeId\n }>`)\n if (storage.base) {\n _push(_ssrRenderComponent(_component_FilepathItem, {\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n } else {\n return [\n _createVNode(\"span\", { \"font-bold\": \"\" }, _toDisplayString(name), 1),\n _createVNode(\"br\"),\n _createVNode(\"span\", { \"text-sm\": \"\" }, _toDisplayString(storage.driver) + \" driver\", 1),\n _createVNode(\"br\"),\n (storage.base)\n ? (_openBlock(), _createBlock(_component_FilepathItem, {\n key: 0,\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, 8, [\"filepath\"]))\n : _createCommentVNode(\"\", true)\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n })\n _push(`<!--]-->`)\n } else {\n return [\n (Object.keys(_unref(storageMounts) as any).length)\n ? (_openBlock(), _createBlock(\"p\", {\n key: 0,\n op50: \"\"\n }, \" Select one storage to start: \"))\n : (_openBlock(), _createBlock(\"p\", { key: 1 }, [\n _createTextVNode(\" No custom storage defined in \"),\n _createVNode(\"code\", null, \"nitro.storage\"),\n _createTextVNode(\".\"),\n _createVNode(\"br\"),\n _createTextVNode(\" Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ])),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (storage, name) => {\n return (_openBlock(), _createBlock(_component_NCard, {\n key: name,\n \"min-w-80\": \"\",\n \"cursor-pointer\": \"\",\n \"p-4\": \"\",\n \"text-left\": \"\",\n hover: \"border-green\",\n onClick: ($event: any) => (currentStorage.value = name as string)\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", { \"font-bold\": \"\" }, _toDisplayString(name), 1),\n _createVNode(\"br\"),\n _createVNode(\"span\", { \"text-sm\": \"\" }, _toDisplayString(storage.driver) + \" driver\", 1),\n _createVNode(\"br\"),\n (storage.base)\n ? (_openBlock(), _createBlock(_component_FilepathItem, {\n key: 0,\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, 8, [\"filepath\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n }), 128))\n ]\n }\n }),\n _: 1\n }, _parent))\n }\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { computed, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useRouter } from '#app/composables/router'\nimport { useNuxtApp } from '#app/nuxt'\nimport { getColorMode } from '~/composables/client'\nimport { rpc } from '~/composables/rpc'\nimport { useSessionState } from '~/composables/utils'\n\nconst colorMode = getColorMode()\nconst nuxtApp = useNuxtApp()\nconst router = useRouter()\nconst searchString = ref('')\nconst newKey = ref('')\nconst currentStorage = useSessionState<string>('storage:current', '')\nconst currentItem = ref()\nconst fileKey = useSessionState<string>('storage:file:state', '')\n\nconst { data: storageMounts } = await useAsyncData('storageMounts', () => rpc.getStorageMounts())\nconst { data: storageKeys, refresh: refreshStorageKeys } = await useAsyncData('storageKeys', async () => {\n if (currentStorage.value)\n return await rpc.getStorageKeys(currentStorage.value)\n return []\n})\n\nconst closeWatcher = nuxtApp.hook('storage:key:update' as any, async (key: string, event: any) => {\n if (!currentStorage.value || key.split(':')[0] !== currentStorage.value)\n return\n await refreshStorageKeys()\n if (fileKey.value === key) {\n if (event === 'remove')\n return router.replace({ query: { storage: currentStorage.value } })\n await fetchItem(fileKey.value)\n }\n})\n\nonUnmounted(closeWatcher)\n\nwatch(currentStorage, () => {\n refreshStorageKeys()\n fileKey.value = ''\n})\n\nwatchEffect(async () => {\n if (!fileKey.value) {\n currentItem.value = null\n return\n }\n fetchItem(fileKey.value)\n})\n\n// Save on Ctrl/Cmd + S\nuseEventListener('keydown', (e) => {\n if (e.key === 's' && (e.ctrlKey || e.metaKey)) {\n saveCurrentItem()\n e.preventDefault()\n }\n})\n\nfunction keyName(key: string) {\n return key.replace(`${currentStorage.value}:`, '')\n}\n\nconst filteredKeys = computed(() => {\n if (!storageKeys.value)\n return []\n return storageKeys.value.filter(key => key.includes(searchString.value))\n})\n\nasync function fetchItem(key: string) {\n const content = await rpc.getStorageItem(key)\n currentItem.value = {\n key,\n updatedKey: keyName(key),\n editingKey: false,\n content,\n updatedContent: content,\n }\n}\n\nasync function saveNewItem() {\n if (!newKey.value || !currentStorage.value)\n return\n // If does not exists\n const key = `${currentStorage.value}:${newKey.value}`\n if (!storageKeys.value?.includes(key))\n await rpc.setStorageItem(key, '')\n\n router.replace({ query: { storage: currentStorage.value, key } })\n newKey.value = ''\n}\n\nasync function saveCurrentItem() {\n if (!currentItem.value)\n return\n await rpc.setStorageItem(currentItem.value.key, currentItem.value.updatedContent)\n await fetchItem(currentItem.value.key)\n}\n\nasync function removeCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n await rpc.removeStorageItem(currentItem.value.key)\n currentItem.value = null\n}\n\nasync function renameCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n const renamedKey = `${currentStorage.value}:${currentItem.value.updatedKey}`\n await rpc.setStorageItem(renamedKey, currentItem.value.updatedContent)\n await rpc.removeStorageItem(currentItem.value.key)\n router.replace({ query: { storage: currentStorage.value, key: renamedKey } })\n}\n</script>\n\n<template>\n <NSplitPane v-if=\"currentStorage\" storage-key=\"tab-storage\">\n <template #left>\n <div class=\"h-[48px] flex items-center justify-between gap1 px-3\">\n <NButton icon=\"carbon-chevron-left\" ml--1 :border=\"false\" @click=\"currentStorage = ''\" />\n <div class=\"w-full text-sm\">\n <NSelect v-model=\"currentStorage\" n=\"primary\" icon=\"carbon-data-base\">\n <option v-for=\"(_storage, name) of storageMounts\" :key=\"name\" :value=\"name\">\n {{ name }}\n </option>\n </NSelect>\n </div>\n </div>\n <NTextInput\n v-model=\"searchString\"\n icon=\"carbon-search\"\n placeholder=\"Search...\"\n n=\"primary sm\"\n border=\"y x-none base! rounded-0\"\n class=\"w-full py2 ring-0!\"\n />\n <template v-for=\"key of filteredKeys\" :key=\"key\">\n <button\n block w-full truncate px2 py1 text-start text-sm font-mono\n :class=\"key === currentItem?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover'\"\n @click=\"fileKey = key\"\n >\n {{ keyName(key) }}\n </button>\n <div x-divider />\n </template>\n <NTextInput\n v-model=\"newKey\"\n icon=\"carbon-add\"\n placeholder=\"key\"\n n=\"sm\"\n border=\"t-none x-none base! rounded-0\"\n class=\"w-full py2 font-mono ring-0!\"\n @keyup.enter=\"saveNewItem\"\n />\n </template>\n\n <template #right>\n <div v-if=\"currentItem?.key\" h-full of-hidden flex=\"~ col\">\n <div border=\"b base\" class=\"h-[49px] flex flex-none items-center justify-between px-4 text-sm\">\n <div class=\"flex items-center gap-4\">\n <NTextInput v-if=\"currentItem.editingKey\" v-model=\"currentItem.updatedKey\" @keyup.enter=\"renameCurrentItem\" />\n <code v-else>{{ keyName(currentItem.key) }} <NIcon icon=\"carbon-edit\" class=\"cursor-pointer op50 hover:op100\" @click=\"currentItem.editingKey = true\" /></code>\n <NButton v-if=\"!currentItem.editingKey\" n=\"green xs\" :disabled=\"currentItem.content === currentItem.updatedContent\" :class=\"{ 'border-green': currentItem.content !== currentItem.updatedContent }\" @click=\"saveCurrentItem\">\n Save\n </NButton>\n </div>\n <div>\n <NButton n=\"red xs\" @click=\"removeCurrentItem\">\n Delete\n </NButton>\n </div>\n </div>\n <JsonEditorVue\n v-if=\"typeof currentItem.content === 'object'\"\n v-model=\"currentItem.updatedContent\"\n :class=\"[colorMode === 'dark' ? 'jse-theme-dark' : 'light']\"\n class=\"json-editor-vue h-full of-auto text-sm outline-none\"\n v-bind=\"$attrs\"\n :mode=\"('text' as any)\"\n :navigation-bar=\"false\"\n :indentation=\"2\"\n :tab-size=\"2\"\n />\n <textarea\n v-else v-model=\"currentItem.updatedContent\"\n placeholder=\"Item value...\"\n class=\"h-full of-auto p-4 text-sm font-mono outline-none\"\n @keyup.ctrl.enter=\"saveCurrentItem\"\n />\n </div>\n <NPanelGrids v-else>\n <NCard px6 py4>\n Select one key to start.<br>Learn more about\n <NLink href=\"https://nitro.unjs.io/guide/storage\" n=\"orange\" target=\"_blank\">\n Nitro storage\n </NLink>\n </NCard>\n </NPanelGrids>\n </template>\n </NSplitPane>\n <NPanelGrids v-else>\n <p v-if=\"Object.keys(storageMounts as any).length\" op50>\n Select one storage to start:\n </p>\n <p v-else>\n No custom storage defined in <code>nitro.storage</code>.<br>\n Learn more about\n <NLink href=\"https://nitro.unjs.io/guide/storage\" n=\"orange\" target=\"_blank\">\n Nitro storage\n </NLink>\n </p>\n <NCard\n v-for=\"(storage, name) of storageMounts\"\n :key=\"name\"\n min-w-80 cursor-pointer p-4 text-left\n hover=\"border-green\"\n @click=\"currentStorage = name as string\"\n >\n <span font-bold>{{ name }}</span><br>\n <span text-sm>{{ storage.driver }} driver</span><br>\n <FilepathItem v-if=\"storage.base\" text-xs :filepath=\"storage.base\" />\n </NCard>\n </NPanelGrids>\n</template>\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent } from \"vue/server-renderer\"\n\nimport { definePageMeta } from '#imports'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'storage',\n __ssrInlineRender: true,\n setup(__props) {\n\ndefinePageMeta({\n icon: 'carbon-data-base',\n title: 'Storage',\n layout: 'full',\n category: 'server',\n})\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_AuthRequiredPanel = _resolveComponent(\"AuthRequiredPanel\")!\n const _component_StorageDetails = _resolveComponent(\"StorageDetails\")!\n\n _push(_ssrRenderComponent(_component_AuthRequiredPanel, _attrs, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_StorageDetails, null, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_StorageDetails)\n ]\n }\n }),\n _: 1\n }, _parent))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { definePageMeta } from '#imports'\n\ndefinePageMeta({\n icon: 'carbon-data-base',\n title: 'Storage',\n layout: 'full',\n category: 'server',\n})\n</script>\n\n<template>\n <AuthRequiredPanel>\n <StorageDetails />\n </AuthRequiredPanel>\n</template>\n"],"version":3}
|
|
1
|
+
{"file":"storage-Bl77u--J.js","mappings":"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","names":[],"sources":["../../../../../../../../components/AuthRequiredPanel.vue","../../../../../../../../components/StorageDetails.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/StorageDetails.vue","../../../../../../../../pages/modules/storage.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../pages/modules/storage.vue"],"sourcesContent":["<template>\n <!-- Auth is now handled by Vite DevTools -->\n <slot />\n</template>\n","import { withAsyncContext as _withAsyncContext, defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, isRef as _isRef, createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, withKeys as _withKeys, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withModifiers as _withModifiers, withDirectives as _withDirectives } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent, ssrRenderAttr as _ssrRenderAttr, ssrRenderClass as _ssrRenderClass, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport { useEventListener } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { computed, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useRouter } from '#app/composables/router'\nimport { useNuxtApp } from '#app/nuxt'\nimport { getColorMode } from '~/composables/client'\nimport { rpc } from '~/composables/rpc'\nimport { useSessionState } from '~/composables/utils'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'StorageDetails',\n __ssrInlineRender: true,\n async setup(__props) {\n\nlet __temp: any, __restore: any\n\nconst colorMode = getColorMode()\nconst nuxtApp = useNuxtApp()\nconst router = useRouter()\nconst searchString = ref('')\nconst newKey = ref('')\nconst currentStorage = useSessionState<string>('storage:current', '')\nconst currentItem = ref()\nconst fileKey = useSessionState<string>('storage:file:state', '')\n\nconst { data: storageMounts } = (\n ([__temp,__restore] = _withAsyncContext(() => useAsyncData('storageMounts', () => rpc.getStorageMounts()))),\n __temp = await __temp,\n __restore(),\n __temp\n)\nconst { data: storageKeys, refresh: refreshStorageKeys } = (\n ([__temp,__restore] = _withAsyncContext(async () => useAsyncData('storageKeys', async () => {\n if (currentStorage.value)\n return await rpc.getStorageKeys(currentStorage.value)\n return []\n}))),\n __temp = await __temp,\n __restore(),\n __temp\n)\n\nconst closeWatcher = nuxtApp.hook('storage:key:update' as any, async (key: string, event: any) => {\n if (!currentStorage.value || key.split(':')[0] !== currentStorage.value)\n return\n await refreshStorageKeys()\n if (fileKey.value === key) {\n if (event === 'remove')\n return router.replace({ query: { storage: currentStorage.value } })\n await fetchItem(fileKey.value)\n }\n})\n\nonUnmounted(closeWatcher)\n\nwatch(currentStorage, () => {\n refreshStorageKeys()\n fileKey.value = ''\n})\n\nwatchEffect(async () => {\n if (!fileKey.value) {\n currentItem.value = null\n return\n }\n fetchItem(fileKey.value)\n})\n\n// Save on Ctrl/Cmd + S\nuseEventListener('keydown', (e) => {\n if (e.key === 's' && (e.ctrlKey || e.metaKey)) {\n saveCurrentItem()\n e.preventDefault()\n }\n})\n\nfunction keyName(key: string) {\n return key.replace(`${currentStorage.value}:`, '')\n}\n\nconst filteredKeys = computed(() => {\n if (!storageKeys.value)\n return []\n return storageKeys.value.filter(key => key.includes(searchString.value))\n})\n\nasync function fetchItem(key: string) {\n const content = await rpc.getStorageItem(key)\n currentItem.value = {\n key,\n updatedKey: keyName(key),\n editingKey: false,\n content,\n updatedContent: content,\n }\n}\n\nasync function saveNewItem() {\n if (!newKey.value || !currentStorage.value)\n return\n // If does not exists\n const key = `${currentStorage.value}:${newKey.value}`\n if (!storageKeys.value?.includes(key))\n await rpc.setStorageItem(key, '')\n\n router.replace({ query: { storage: currentStorage.value, key } })\n newKey.value = ''\n}\n\nasync function saveCurrentItem() {\n if (!currentItem.value)\n return\n await rpc.setStorageItem(currentItem.value.key, currentItem.value.updatedContent)\n await fetchItem(currentItem.value.key)\n}\n\nasync function removeCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n await rpc.removeStorageItem(currentItem.value.key)\n currentItem.value = null\n}\n\nasync function renameCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n const renamedKey = `${currentStorage.value}:${currentItem.value.updatedKey}`\n await rpc.setStorageItem(renamedKey, currentItem.value.updatedContent)\n await rpc.removeStorageItem(currentItem.value.key)\n router.replace({ query: { storage: currentStorage.value, key: renamedKey } })\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NSplitPane = _resolveComponent(\"NSplitPane\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n const _component_NSelect = _resolveComponent(\"NSelect\")!\n const _component_NTextInput = _resolveComponent(\"NTextInput\")!\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n const _component_NPanelGrids = _resolveComponent(\"NPanelGrids\")!\n const _component_NCard = _resolveComponent(\"NCard\")!\n const _component_NLink = _resolveComponent(\"NLink\")!\n const _component_FilepathItem = _resolveComponent(\"FilepathItem\")!\n\n if (_unref(currentStorage)) {\n _push(_ssrRenderComponent(_component_NSplitPane, _mergeProps({ \"storage-key\": \"tab-storage\" }, _attrs), {\n left: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div class=\"h-[48px] flex items-center justify-between gap1 px-3\"${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n icon: \"carbon-chevron-left\",\n \"ml--1\": \"\",\n border: false,\n onClick: ($event: any) => (currentStorage.value = '')\n }, null, _parent, _scopeId))\n _push(`<div class=\"w-full text-sm\"${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NSelect, {\n modelValue: _unref(currentStorage),\n \"onUpdate:modelValue\": ($event: any) => (_isRef(currentStorage) ? (currentStorage).value = $event : null),\n n: \"primary\",\n icon: \"carbon-data-base\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<!--[-->`)\n _ssrRenderList(_unref(storageMounts), (_storage, name) => {\n _push(`<option${\n _ssrRenderAttr(\"value\", name)\n }${\n _scopeId\n }>${\n _ssrInterpolate(name)\n }</option>`)\n })\n _push(`<!--]-->`)\n } else {\n return [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (_storage, name) => {\n return (_openBlock(), _createBlock(\"option\", {\n key: name,\n value: name\n }, _toDisplayString(name), 9, [\"value\"]))\n }), 128))\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</div></div>`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: searchString.value,\n \"onUpdate:modelValue\": ($event: any) => ((searchString).value = $event),\n icon: \"carbon-search\",\n placeholder: \"Search...\",\n n: \"primary sm\",\n border: \"y x-none base! rounded-0\",\n class: \"w-full py2 ring-0!\"\n }, null, _parent, _scopeId))\n _push(`<!--[-->`)\n _ssrRenderList(filteredKeys.value, (key) => {\n _push(`<!--[--><button block w-full truncate px2 py1 text-start text-sm font-mono class=\"${\n _ssrRenderClass(key === currentItem.value?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover')\n }\"${\n _scopeId\n }>${\n _ssrInterpolate(keyName(key))\n }</button><div x-divider${\n _scopeId\n }></div><!--]-->`)\n })\n _push(`<!--]-->`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: newKey.value,\n \"onUpdate:modelValue\": ($event: any) => ((newKey).value = $event),\n icon: \"carbon-add\",\n placeholder: \"key\",\n n: \"sm\",\n border: \"t-none x-none base! rounded-0\",\n class: \"w-full py2 font-mono ring-0!\",\n onKeyup: saveNewItem\n }, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(\"div\", { class: \"h-[48px] flex items-center justify-between gap1 px-3\" }, [\n _createVNode(_component_NButton, {\n icon: \"carbon-chevron-left\",\n \"ml--1\": \"\",\n border: false,\n onClick: ($event: any) => (currentStorage.value = '')\n }, null, 8, [\"onClick\"]),\n _createVNode(\"div\", { class: \"w-full text-sm\" }, [\n _createVNode(_component_NSelect, {\n modelValue: _unref(currentStorage),\n \"onUpdate:modelValue\": ($event: any) => (_isRef(currentStorage) ? (currentStorage).value = $event : null),\n n: \"primary\",\n icon: \"carbon-data-base\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (_storage, name) => {\n return (_openBlock(), _createBlock(\"option\", {\n key: name,\n value: name\n }, _toDisplayString(name), 9, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(_component_NTextInput, {\n modelValue: searchString.value,\n \"onUpdate:modelValue\": ($event: any) => ((searchString).value = $event),\n icon: \"carbon-search\",\n placeholder: \"Search...\",\n n: \"primary sm\",\n border: \"y x-none base! rounded-0\",\n class: \"w-full py2 ring-0!\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(filteredKeys.value, (key) => {\n return (_openBlock(), _createBlock(_Fragment, { key: key }, [\n _createVNode(\"button\", {\n block: \"\",\n \"w-full\": \"\",\n truncate: \"\",\n px2: \"\",\n py1: \"\",\n \"text-start\": \"\",\n \"text-sm\": \"\",\n \"font-mono\": \"\",\n class: key === currentItem.value?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover',\n onClick: ($event: any) => (fileKey.value = key)\n }, _toDisplayString(keyName(key)), 11, [\"onClick\"]),\n _createVNode(\"div\", { \"x-divider\": \"\" })\n ], 64))\n }), 128)),\n _createVNode(_component_NTextInput, {\n modelValue: newKey.value,\n \"onUpdate:modelValue\": ($event: any) => ((newKey).value = $event),\n icon: \"carbon-add\",\n placeholder: \"key\",\n n: \"sm\",\n border: \"t-none x-none base! rounded-0\",\n class: \"w-full py2 font-mono ring-0!\",\n onKeyup: _withKeys(saveNewItem, [\"enter\"])\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]\n }\n }),\n right: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (currentItem.value?.key) {\n _push(`<div h-full of-hidden flex=\"~ col\"${\n _scopeId\n }><div border=\"b base\" class=\"h-[49px] flex flex-none items-center justify-between px-4 text-sm\"${\n _scopeId\n }><div class=\"flex items-center gap-4\"${\n _scopeId\n }>`)\n if (currentItem.value.editingKey) {\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: currentItem.value.updatedKey,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedKey) = $event),\n onKeyup: renameCurrentItem\n }, null, _parent, _scopeId))\n } else {\n _push(`<code${\n _scopeId\n }>${\n _ssrInterpolate(keyName(currentItem.value.key))\n } `)\n _push(_ssrRenderComponent(_component_NIcon, {\n icon: \"carbon-edit\",\n class: \"cursor-pointer op50 hover:op100\",\n onClick: ($event: any) => (currentItem.value.editingKey = true)\n }, null, _parent, _scopeId))\n _push(`</code>`)\n }\n if (!currentItem.value.editingKey) {\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"green xs\",\n disabled: currentItem.value.content === currentItem.value.updatedContent,\n class: { 'border-green': currentItem.value.content !== currentItem.value.updatedContent },\n onClick: saveCurrentItem\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Save `)\n } else {\n return [\n _createTextVNode(\" Save \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n _push(`</div><div${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"red xs\",\n onClick: removeCurrentItem\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Delete `)\n } else {\n return [\n _createTextVNode(\" Delete \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</div></div>`)\n if (typeof currentItem.value.content === 'object') {\n _push(_ssrRenderComponent(_unref(JsonEditorVue), _mergeProps({\n modelValue: currentItem.value.updatedContent,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n class: [[_unref(colorMode) === 'dark' ? 'jse-theme-dark' : 'light'], \"json-editor-vue h-full of-auto text-sm outline-none\"]\n }, _ctx.$attrs, {\n mode: ('text' as any),\n \"navigation-bar\": false,\n indentation: 2,\n \"tab-size\": 2\n }), null, _parent, _scopeId))\n } else {\n _push(`<textarea placeholder=\"Item value...\" class=\"h-full of-auto p-4 text-sm font-mono outline-none\"${\n _scopeId\n }>${\n _ssrInterpolate(currentItem.value.updatedContent)\n }</textarea>`)\n }\n _push(`</div>`)\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, null, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Select one key to start.<br${_scopeId}>Learn more about `)\n _push(_ssrRenderComponent(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Nitro storage `)\n } else {\n return [\n _createTextVNode(\" Nitro storage \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n return [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n }\n } else {\n return [\n (currentItem.value?.key)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n \"h-full\": \"\",\n \"of-hidden\": \"\",\n flex: \"~ col\"\n }, [\n _createVNode(\"div\", {\n border: \"b base\",\n class: \"h-[49px] flex flex-none items-center justify-between px-4 text-sm\"\n }, [\n _createVNode(\"div\", { class: \"flex items-center gap-4\" }, [\n (currentItem.value.editingKey)\n ? (_openBlock(), _createBlock(_component_NTextInput, {\n key: 0,\n modelValue: currentItem.value.updatedKey,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedKey) = $event),\n onKeyup: _withKeys(renameCurrentItem, [\"enter\"])\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]))\n : (_openBlock(), _createBlock(\"code\", { key: 1 }, [\n _createTextVNode(_toDisplayString(keyName(currentItem.value.key)) + \" \", 1),\n _createVNode(_component_NIcon, {\n icon: \"carbon-edit\",\n class: \"cursor-pointer op50 hover:op100\",\n onClick: ($event: any) => (currentItem.value.editingKey = true)\n }, null, 8, [\"onClick\"])\n ])),\n (!currentItem.value.editingKey)\n ? (_openBlock(), _createBlock(_component_NButton, {\n key: 2,\n n: \"green xs\",\n disabled: currentItem.value.content === currentItem.value.updatedContent,\n class: { 'border-green': currentItem.value.content !== currentItem.value.updatedContent },\n onClick: saveCurrentItem\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Save \")\n ]),\n _: 1\n }, 8, [\"disabled\", \"class\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"div\", null, [\n _createVNode(_component_NButton, {\n n: \"red xs\",\n onClick: removeCurrentItem\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Delete \")\n ]),\n _: 1\n })\n ])\n ]),\n (typeof currentItem.value.content === 'object')\n ? (_openBlock(), _createBlock(_unref(JsonEditorVue), _mergeProps({\n key: 0,\n modelValue: currentItem.value.updatedContent,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n class: [[_unref(colorMode) === 'dark' ? 'jse-theme-dark' : 'light'], \"json-editor-vue h-full of-auto text-sm outline-none\"]\n }, _ctx.$attrs, {\n mode: ('text' as any),\n \"navigation-bar\": false,\n indentation: 2,\n \"tab-size\": 2\n }), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"class\"]))\n : _withDirectives((_openBlock(), _createBlock(\"textarea\", {\n key: 1,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n placeholder: \"Item value...\",\n class: \"h-full of-auto p-4 text-sm font-mono outline-none\",\n onKeyup: _withKeys(_withModifiers(saveCurrentItem, [\"ctrl\"]), [\"enter\"])\n }, null, 40, [\"onUpdate:modelValue\", \"onKeyup\"])), [\n [_vModelText, currentItem.value.updatedContent]\n ])\n ]))\n : (_openBlock(), _createBlock(_component_NPanelGrids, { key: 1 }, {\n default: _withCtx(() => [\n _createVNode(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n ]\n }\n }),\n _: 1\n }, _parent))\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, _attrs, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (Object.keys(_unref(storageMounts) as any).length) {\n _push(`<p op50${_scopeId}> Select one storage to start: </p>`)\n } else {\n _push(`<p${\n _scopeId\n }> No custom storage defined in <code${\n _scopeId\n }>nitro.storage</code>.<br${\n _scopeId\n }> Learn more about `)\n _push(_ssrRenderComponent(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Nitro storage `)\n } else {\n return [\n _createTextVNode(\" Nitro storage \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</p>`)\n }\n _push(`<!--[-->`)\n _ssrRenderList(_unref(storageMounts), (storage, name) => {\n _push(_ssrRenderComponent(_component_NCard, {\n key: name,\n \"min-w-80\": \"\",\n \"cursor-pointer\": \"\",\n \"p-4\": \"\",\n \"text-left\": \"\",\n hover: \"border-green\",\n onClick: ($event: any) => (currentStorage.value = name as string)\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<span font-bold${\n _scopeId\n }>${\n _ssrInterpolate(name)\n }</span><br${\n _scopeId\n }><span text-sm${\n _scopeId\n }>${\n _ssrInterpolate(storage.driver)\n } driver</span><br${\n _scopeId\n }>`)\n if (storage.base) {\n _push(_ssrRenderComponent(_component_FilepathItem, {\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n } else {\n return [\n _createVNode(\"span\", { \"font-bold\": \"\" }, _toDisplayString(name), 1),\n _createVNode(\"br\"),\n _createVNode(\"span\", { \"text-sm\": \"\" }, _toDisplayString(storage.driver) + \" driver\", 1),\n _createVNode(\"br\"),\n (storage.base)\n ? (_openBlock(), _createBlock(_component_FilepathItem, {\n key: 0,\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, 8, [\"filepath\"]))\n : _createCommentVNode(\"\", true)\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n })\n _push(`<!--]-->`)\n } else {\n return [\n (Object.keys(_unref(storageMounts) as any).length)\n ? (_openBlock(), _createBlock(\"p\", {\n key: 0,\n op50: \"\"\n }, \" Select one storage to start: \"))\n : (_openBlock(), _createBlock(\"p\", { key: 1 }, [\n _createTextVNode(\" No custom storage defined in \"),\n _createVNode(\"code\", null, \"nitro.storage\"),\n _createTextVNode(\".\"),\n _createVNode(\"br\"),\n _createTextVNode(\" Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ])),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (storage, name) => {\n return (_openBlock(), _createBlock(_component_NCard, {\n key: name,\n \"min-w-80\": \"\",\n \"cursor-pointer\": \"\",\n \"p-4\": \"\",\n \"text-left\": \"\",\n hover: \"border-green\",\n onClick: ($event: any) => (currentStorage.value = name as string)\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", { \"font-bold\": \"\" }, _toDisplayString(name), 1),\n _createVNode(\"br\"),\n _createVNode(\"span\", { \"text-sm\": \"\" }, _toDisplayString(storage.driver) + \" driver\", 1),\n _createVNode(\"br\"),\n (storage.base)\n ? (_openBlock(), _createBlock(_component_FilepathItem, {\n key: 0,\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, 8, [\"filepath\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n }), 128))\n ]\n }\n }),\n _: 1\n }, _parent))\n }\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { computed, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useRouter } from '#app/composables/router'\nimport { useNuxtApp } from '#app/nuxt'\nimport { getColorMode } from '~/composables/client'\nimport { rpc } from '~/composables/rpc'\nimport { useSessionState } from '~/composables/utils'\n\nconst colorMode = getColorMode()\nconst nuxtApp = useNuxtApp()\nconst router = useRouter()\nconst searchString = ref('')\nconst newKey = ref('')\nconst currentStorage = useSessionState<string>('storage:current', '')\nconst currentItem = ref()\nconst fileKey = useSessionState<string>('storage:file:state', '')\n\nconst { data: storageMounts } = await useAsyncData('storageMounts', () => rpc.getStorageMounts())\nconst { data: storageKeys, refresh: refreshStorageKeys } = await useAsyncData('storageKeys', async () => {\n if (currentStorage.value)\n return await rpc.getStorageKeys(currentStorage.value)\n return []\n})\n\nconst closeWatcher = nuxtApp.hook('storage:key:update' as any, async (key: string, event: any) => {\n if (!currentStorage.value || key.split(':')[0] !== currentStorage.value)\n return\n await refreshStorageKeys()\n if (fileKey.value === key) {\n if (event === 'remove')\n return router.replace({ query: { storage: currentStorage.value } })\n await fetchItem(fileKey.value)\n }\n})\n\nonUnmounted(closeWatcher)\n\nwatch(currentStorage, () => {\n refreshStorageKeys()\n fileKey.value = ''\n})\n\nwatchEffect(async () => {\n if (!fileKey.value) {\n currentItem.value = null\n return\n }\n fetchItem(fileKey.value)\n})\n\n// Save on Ctrl/Cmd + S\nuseEventListener('keydown', (e) => {\n if (e.key === 's' && (e.ctrlKey || e.metaKey)) {\n saveCurrentItem()\n e.preventDefault()\n }\n})\n\nfunction keyName(key: string) {\n return key.replace(`${currentStorage.value}:`, '')\n}\n\nconst filteredKeys = computed(() => {\n if (!storageKeys.value)\n return []\n return storageKeys.value.filter(key => key.includes(searchString.value))\n})\n\nasync function fetchItem(key: string) {\n const content = await rpc.getStorageItem(key)\n currentItem.value = {\n key,\n updatedKey: keyName(key),\n editingKey: false,\n content,\n updatedContent: content,\n }\n}\n\nasync function saveNewItem() {\n if (!newKey.value || !currentStorage.value)\n return\n // If does not exists\n const key = `${currentStorage.value}:${newKey.value}`\n if (!storageKeys.value?.includes(key))\n await rpc.setStorageItem(key, '')\n\n router.replace({ query: { storage: currentStorage.value, key } })\n newKey.value = ''\n}\n\nasync function saveCurrentItem() {\n if (!currentItem.value)\n return\n await rpc.setStorageItem(currentItem.value.key, currentItem.value.updatedContent)\n await fetchItem(currentItem.value.key)\n}\n\nasync function removeCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n await rpc.removeStorageItem(currentItem.value.key)\n currentItem.value = null\n}\n\nasync function renameCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n const renamedKey = `${currentStorage.value}:${currentItem.value.updatedKey}`\n await rpc.setStorageItem(renamedKey, currentItem.value.updatedContent)\n await rpc.removeStorageItem(currentItem.value.key)\n router.replace({ query: { storage: currentStorage.value, key: renamedKey } })\n}\n</script>\n\n<template>\n <NSplitPane v-if=\"currentStorage\" storage-key=\"tab-storage\">\n <template #left>\n <div class=\"h-[48px] flex items-center justify-between gap1 px-3\">\n <NButton icon=\"carbon-chevron-left\" ml--1 :border=\"false\" @click=\"currentStorage = ''\" />\n <div class=\"w-full text-sm\">\n <NSelect v-model=\"currentStorage\" n=\"primary\" icon=\"carbon-data-base\">\n <option v-for=\"(_storage, name) of storageMounts\" :key=\"name\" :value=\"name\">\n {{ name }}\n </option>\n </NSelect>\n </div>\n </div>\n <NTextInput\n v-model=\"searchString\"\n icon=\"carbon-search\"\n placeholder=\"Search...\"\n n=\"primary sm\"\n border=\"y x-none base! rounded-0\"\n class=\"w-full py2 ring-0!\"\n />\n <template v-for=\"key of filteredKeys\" :key=\"key\">\n <button\n block w-full truncate px2 py1 text-start text-sm font-mono\n :class=\"key === currentItem?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover'\"\n @click=\"fileKey = key\"\n >\n {{ keyName(key) }}\n </button>\n <div x-divider />\n </template>\n <NTextInput\n v-model=\"newKey\"\n icon=\"carbon-add\"\n placeholder=\"key\"\n n=\"sm\"\n border=\"t-none x-none base! rounded-0\"\n class=\"w-full py2 font-mono ring-0!\"\n @keyup.enter=\"saveNewItem\"\n />\n </template>\n\n <template #right>\n <div v-if=\"currentItem?.key\" h-full of-hidden flex=\"~ col\">\n <div border=\"b base\" class=\"h-[49px] flex flex-none items-center justify-between px-4 text-sm\">\n <div class=\"flex items-center gap-4\">\n <NTextInput v-if=\"currentItem.editingKey\" v-model=\"currentItem.updatedKey\" @keyup.enter=\"renameCurrentItem\" />\n <code v-else>{{ keyName(currentItem.key) }} <NIcon icon=\"carbon-edit\" class=\"cursor-pointer op50 hover:op100\" @click=\"currentItem.editingKey = true\" /></code>\n <NButton v-if=\"!currentItem.editingKey\" n=\"green xs\" :disabled=\"currentItem.content === currentItem.updatedContent\" :class=\"{ 'border-green': currentItem.content !== currentItem.updatedContent }\" @click=\"saveCurrentItem\">\n Save\n </NButton>\n </div>\n <div>\n <NButton n=\"red xs\" @click=\"removeCurrentItem\">\n Delete\n </NButton>\n </div>\n </div>\n <JsonEditorVue\n v-if=\"typeof currentItem.content === 'object'\"\n v-model=\"currentItem.updatedContent\"\n :class=\"[colorMode === 'dark' ? 'jse-theme-dark' : 'light']\"\n class=\"json-editor-vue h-full of-auto text-sm outline-none\"\n v-bind=\"$attrs\"\n :mode=\"('text' as any)\"\n :navigation-bar=\"false\"\n :indentation=\"2\"\n :tab-size=\"2\"\n />\n <textarea\n v-else v-model=\"currentItem.updatedContent\"\n placeholder=\"Item value...\"\n class=\"h-full of-auto p-4 text-sm font-mono outline-none\"\n @keyup.ctrl.enter=\"saveCurrentItem\"\n />\n </div>\n <NPanelGrids v-else>\n <NCard px6 py4>\n Select one key to start.<br>Learn more about\n <NLink href=\"https://nitro.unjs.io/guide/storage\" n=\"orange\" target=\"_blank\">\n Nitro storage\n </NLink>\n </NCard>\n </NPanelGrids>\n </template>\n </NSplitPane>\n <NPanelGrids v-else>\n <p v-if=\"Object.keys(storageMounts as any).length\" op50>\n Select one storage to start:\n </p>\n <p v-else>\n No custom storage defined in <code>nitro.storage</code>.<br>\n Learn more about\n <NLink href=\"https://nitro.unjs.io/guide/storage\" n=\"orange\" target=\"_blank\">\n Nitro storage\n </NLink>\n </p>\n <NCard\n v-for=\"(storage, name) of storageMounts\"\n :key=\"name\"\n min-w-80 cursor-pointer p-4 text-left\n hover=\"border-green\"\n @click=\"currentStorage = name as string\"\n >\n <span font-bold>{{ name }}</span><br>\n <span text-sm>{{ storage.driver }} driver</span><br>\n <FilepathItem v-if=\"storage.base\" text-xs :filepath=\"storage.base\" />\n </NCard>\n </NPanelGrids>\n</template>\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent } from \"vue/server-renderer\"\n\nimport { definePageMeta } from '#imports'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'storage',\n __ssrInlineRender: true,\n setup(__props) {\n\ndefinePageMeta({\n icon: 'carbon-data-base',\n title: 'Storage',\n layout: 'full',\n category: 'server',\n})\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_AuthRequiredPanel = _resolveComponent(\"AuthRequiredPanel\")!\n const _component_StorageDetails = _resolveComponent(\"StorageDetails\")!\n\n _push(_ssrRenderComponent(_component_AuthRequiredPanel, _attrs, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_StorageDetails, null, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_StorageDetails)\n ]\n }\n }),\n _: 1\n }, _parent))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { definePageMeta } from '#imports'\n\ndefinePageMeta({\n icon: 'carbon-data-base',\n title: 'Storage',\n layout: 'full',\n category: 'server',\n})\n</script>\n\n<template>\n <AuthRequiredPanel>\n <StorageDetails />\n </AuthRequiredPanel>\n</template>\n"],"version":3}
|