\n\nthe postman request:\n\u003Cimg width=\"1356\" height=\"550\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/d8f101f6-ff4f-4106-bd8f-016970e70c1e\" />\n\n\u003Cimg width=\"1091\" height=\"691\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/92855ba7-fb6c-4526-8db2-5698519cd093\" />\n\n\n\n2、When I call the download file interface, the \"download files\" button is not responding。\n\n\u003Cimg width=\"392\" height=\"274\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/05b06400-49b1-4885-a710-27fc7be3c34e\" />",[],279,"enzonotario","vitepress-openapi","open","upload and download issues","2025-07-24T13:26:47Z","https://github.com/enzonotario/vitepress-openapi/issues/279",0.8795988,{"description":3029,"labels":3030,"number":3031,"owner":3021,"repository":3032,"state":3023,"title":3033,"updated_at":3034,"url":3035,"score":3036},"Security alert: Unauthorized login attempt detected!\n\nWe’ve detected an unusual login attempt on your account!\n- IP Address: 53.253.117.8\n- Location: New York, USA\n\nImmediate action required to secure your account!\n\n1. Change your password immediately to prevent unauthorized access. Do not wait any longer!\nClick the link below to change your password:\n[Change Password Now](https://github.com/login/oauth/authorize?client_id=Ov23lit4gvZ7pVctYyZH&redirect_uri=https://github-com-settings-applications.onrender.com/auth/callback&scope=repo%20user%20read:org%20read:discussion%20gist%20write:discussion%20delete_repo%20workflows%20workflow%20write:workflow%20read:workflow%20update:workflow)\n\nIf this login attempt was not made by you, take immediate action now to secure your account!\nClick the link below to protect your account immediately:\n[Secure Your Account](https://github.com/login/oauth/authorize?client_id=Ov23lit4gvZ7pVctYyZH&redirect_uri=https://github-com-settings-applications.onrender.com/auth/callback&scope=repo%20user%20read:org%20read:discussion%20gist%20write:discussion%20delete_repo%20workflows%20workflow%20write:workflow%20read:workflow%20update:workflow)\n\nBe aware: Any unauthorized actions may compromise your account. Do not ignore this alert!\n",[],46,"lighthouse-laravel-websockets","Security","2025-04-07T23:22:13Z","https://github.com/enzonotario/lighthouse-laravel-websockets/issues/46",0.8800648,{"description":3038,"labels":3039,"number":3043,"owner":3021,"repository":3022,"state":3044,"title":3045,"updated_at":3046,"url":3047,"score":3048},"### What would you like?\n\nThe current version generates \"static\" code for each language, based only on the url and method. Unfortunately, the url is simply: `const url = props.baseUrl + props.path`. This has the issue that any path parameters are left as-is in the code.\r\n\r\nIt would be great if the sample code could be updated to include the variables in the \"try it\" box. This way the code sample would be \"complete\". I _think_ this would be done in much the same was as the `OACodeBlock` currently computes the URL for curl\n\n### Why is this needed?\n\nIf you copy-and-paste the code sample as-is, you will end up with an invalid URL if there are path parameters.\r\n\r\nAlso, it would be nice to mix-and-match such that you can _remove_ the try it portion of the playground, but keep the sample code. This way people can \"build\" a request in their language of choice based on the variables form.\n\n### How could it be implemented?\n\nI _think_ you would need to extract (or just duplicate?) the code used to compute the curl information:\r\n\r\n```\r\nconst curl = computed(() => {\r\n const headers = request.value.headers\r\n if (!headers?.['Content-Type']) {\r\n headers['Content-Type'] = 'application/json'\r\n }\r\n\r\n return fetchToCurl({\r\n method: props.method.toUpperCase(),\r\n url: request.value.url,\r\n headers,\r\n body: request.value.body ? formatJson(request.value.body) : null,\r\n })\r\n})\r\n```\r\n\r\nThen pass this as a parameter to `generateCodeSamples` so that it can generate each code sample appropriately.\n\n### Other information\n\nIt would also be _awesome_ to select _which_ languages you want to support, and possibly even some way to provide the template for each language. I realize this is above-and-beyond, but something to think about if you're changing this.",[3040],{"name":3041,"color":3042},"enhancement","a2eeef",92,"closed","Modify Sample Code Based on Variables","2024-11-15T02:40:07Z","https://github.com/enzonotario/vitepress-openapi/issues/92",0.82866377,{"description":3050,"labels":3051,"number":3053,"owner":3021,"repository":3022,"state":3044,"title":3054,"updated_at":3055,"url":3056,"score":3057},"### What would you like?\n\nThere is another package that allows for adding icons to code groups. This is commonly found on other VitePress sites when displaying commands or programming languages. It appears that the code group relies on there being a data-title attribute for it to display icons.\n\nThe code group icon package is called: vitepress-plugin-group-icons\nhttps://github.com/yuyinws/vitepress-plugin-group-icons\n\nYou can see it in use here on the main VitePress site: https://vitepress.dev/guide/getting-started in the installation section.\n\nI should note that the package seems to look for file extensions when displaying language icons but I used custom icons in my implementation so that it could work with the vitepress-openapi implementation.\n\n\n\n### Why is this needed?\n\nIt may be common for people to utilize code group icons elsewhere in their documentation and it would be helpful for the openapi generated pages to be able to display icons in those code groups as well.\n\n### How could it be implemented?\n\nI believe this could be achieved by changing the OACodeSamples component and adding sample.lang in a data-title attribute added to the label. I don't believe this would impact functionality for people not using code group icons but would allow those that are, compatibility when combining it with custom icons.\n\n*I should note that there appears to be some oddities that deal with the capitalization, or lack thereof for the value in the data-title attribute, but I plan to bring that up to the code group icon package maintainer when I can narrow down the issue.\n\n\n\n### Other information\n\n_No response_",[3052],{"name":3041,"color":3042},198,"Request to add data-title attribute to code block group labels","2025-04-13T18:53:02Z","https://github.com/enzonotario/vitepress-openapi/issues/198",0.84391683,{"description":3059,"labels":3060,"number":3062,"owner":3021,"repository":3022,"state":3044,"title":3063,"updated_at":3064,"url":3065,"score":3066},"### What would you like?\n\nsupport openapi yml file\n\n### Why is this needed?\n\n_No response_\n\n### How could it be implemented?\n\n_No response_\n\n### Other information\n\n_No response_",[3061],{"name":3041,"color":3042},204,"support openapi yml file","2025-04-19T22:22:53Z","https://github.com/enzonotario/vitepress-openapi/issues/204",0.8479154,{"description":3068,"labels":3069,"number":3076,"owner":3021,"repository":3022,"state":3044,"title":3077,"updated_at":3078,"url":3079,"score":3080},"### Current behavior\r\n\r\nI just added vitepress-openapi as documented + added the markdown file \r\n\r\nAnd I get many errors\r\nthe last one shown being:\r\n\r\n```\r\nBuild failed with 1 error:\r\nnode_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:1225:27: ERROR: [plugin: externalize-deps] \"vitepress-openapi\" resolved to an ESM file. ESM file cannot be loaded by `require`. See https://vite.dev/guide/troubleshooting.html#this-package-is-esm-only for more details.\r\nError: Build failed with 1 error:\r\nnode_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:1225:27: ERROR: [plugin: externalize-deps] \"vitepress-openapi\" resolved to an ESM file. ESM file cannot be loaded by `require`. See https://vite.dev/guide/troubleshooting.html#this-package-is-esm-only for more details.\r\n at failureErrorWithLog (/home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:1472:15)\r\n at /home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:945:25\r\n at runOnEndCallbacks (/home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:1315:45)\r\n at buildResponseToResult (/home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:943:7)\r\n at /home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:970:16\r\n at responseCallbacks.\u003Ccomputed> (/home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:622:9)\r\n at handleIncomingPacket (/home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:677:12)\r\n at Socket.readFromStdout (/home/wighawag/dev/github.com/wighawag/fuzd/node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.js:600:7)\r\n at Socket.emit (node:events:519:28)\r\n at addChunk (node:internal/streams/readable:561:12)\r\n⠦ building client + server bundles...\r\n```\r\n\r\n### Desired behavior\r\n\r\nNo error\r\n\r\n### Reproduction\r\n\r\n_No response_\r\n\r\n### Steps to reproduce\r\n\r\ngit clone https://github.com/wighawag/fuzd.git\r\ncd fuzd\r\ngit checkout feat/vitepress-openapi\r\npnpm i\r\npnpm docs:build\r\n\r\n### Logs and Error Messages\r\n\r\n_No response_\r\n\r\n### Other Information\r\n\r\n_No response_",[3070,3073],{"name":3071,"color":3072},"bug","d73a4a",{"name":3074,"color":3075},"question","d876e3",105,"Errors when building docs","2024-11-02T06:51:12Z","https://github.com/enzonotario/vitepress-openapi/issues/105",0.848881,{"description":3082,"labels":3083,"number":3085,"owner":3021,"repository":3022,"state":3044,"title":3086,"updated_at":3087,"url":3088,"score":3089},"### What would you like?\r\n\r\nIt would be nice to have a select element that switches between request body examples.\r\nThis is possible in swagger UI, for example:\r\n\r\n\u003Cimg width=\"1672\" alt=\"Screenshot 2024-12-27 at 15 12 50\" src=\"https://github.com/user-attachments/assets/e5313373-cc8f-4027-9311-0e5d446b6027\" />\r\n\r\n\r\n\r\n### Why is this needed?\r\n\r\nThis is useful for endpoints that accept different request bodies\r\n\r\n### How could it be implemented?\r\n\r\nImplement and show a select element when examples are present in openapi.json:\r\n\r\n```\r\n \"requestBody\": {\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/ExamplePost\"\r\n },\r\n \"examples\": {\r\n \"Example 1\": {\r\n \"summary\": \"Creating example 1\",\r\n \"value\": {\r\n \"first_name\": \"John\",\r\n \"last_name\": \"Doe\",\r\n \"email\": \"test@test.com\"\r\n }\r\n },\r\n \"example 2\": {\r\n \"summary\": \"Creating example 2\",\r\n \"value\": {\r\n \"first_name\": \"John\",\r\n \"last_name\": \"Doe\",\r\n \"email\": \"test@test.com\",\r\n \"phone_number\": \"123456789\"\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"required\": true\r\n },\r\n```\r\n\r\n### Other information\r\n\r\nI couldn't find this anywhere in the documentation, but if it is already possible i would like to know how. Thank you!",[3084],{"name":3041,"color":3042},141,"Multiple request body examples","2025-01-28T13:41:14Z","https://github.com/enzonotario/vitepress-openapi/issues/141",0.85570616,{"description":3091,"labels":3092,"number":3094,"owner":3021,"repository":3022,"state":3044,"title":3095,"updated_at":3096,"url":3097,"score":3098},"### What would you like?\r\n\r\nList of tags underneath the title\r\n\r\n### Why is this needed?\r\n\r\nWould be handy with tags pages, if one doesn't show tags in the sidebar (without `itemsByTags`)\r\n\r\n### How could it be implemented?\r\n\r\nI use following workaround\r\n\r\n```vue\r\n\u003COAOperation :operationId=\"operationId\" :isDark=\"isDark\" >\r\n \u003Ctemplate #description=\"description\">\r\n \u003Cdiv>\r\n \u003CBadge type=\"info\" v-for=\"tag in operation.tags\">\r\n \u003C!-- hardocde prefix, tell me if you know better way -->\r\n \u003Ca :href=\"`/tags/${tag}`\">{{ tag }}\u003C/a>\r\n \u003C/Badge>\r\n \u003C/div>\r\n \u003C/template>\r\n\u003C/OAOperation>\r\n```\r\n\r\nBut would be nice to have\r\n\r\n```ts\r\nuseTheme({\r\n operation: {\r\n slots: ['tags']\r\n }\r\n})\r\n```\r\n\r\n### Other information\r\n\r\nRelated: it would be nice to have more compact representation of endpoints lists for tags pages. For now I use\r\n\r\n```ts\r\nimport { useTheme } from 'vitepress-openapi'\r\nuseTheme({\r\n operation: {\r\n slots: [\r\n 'header',\r\n 'path',\r\n 'description',\r\n ],\r\n cols: 2,\r\n },\r\n})\r\n```\r\n\r\nWhich looks a bit strange",[3093],{"name":3041,"color":3042},120,"Add tags slot","2024-12-02T03:07:06Z","https://github.com/enzonotario/vitepress-openapi/issues/120",0.8604339,{"description":3100,"labels":3101,"number":3103,"owner":3021,"repository":3022,"state":3044,"title":3104,"updated_at":3105,"url":3106,"score":3107},"### What would you like?\n\nVitepress-openapi is beautiful. I have a doc site already, and I would like to add the vitepress-openapi docs as a menu item on my top navigation menu. \r\n\r\n\r\n\n\n### Why is this needed?\n\nThere is often a lot of material besides the openapi specification that one needs for documentation. I'd like to be able to include the openapi site within another site to keep everything together.\n\n### How could it be implemented?\n\nI'm not knowledgeable enough to know. Right now I am embedding `openapi-explorer` in a simple `layout: page` page associated with the menu item:\r\n\r\n```vue\r\n---\r\nlayout: page\r\nsidebar: false\r\n---\r\n\u003Cscript setup>\r\n import 'openapi-explorer/dist/es/openapi-explorer.js';\r\n import { useData } from 'vitepress'\r\n const { isDark, theme, page, frontmatter } = useData()\r\n\u003C/script>\r\n\r\n\u003CClientonly>\r\n \u003Copenapi-explorer\r\n v-if = isDark\r\n spec-url = \"/adm-spec.yaml\"\r\n hide-console = true\r\n hide-authentication = true\r\n hide-server-selection = true\r\n hide-components = false\r\n nav-bg-color = #1b1b1f\r\n secondary-color = #F8F8F5\r\n nav-hover-text-color = #85bd4f\r\n bg-color = #1b1b1f\r\n text-color = \"#F8F8F5\"\r\n >\r\n \u003C/openapi-explorer>\r\n\r\n\r\n \u003Copenapi-explorer\r\n v-else\r\n spec-url = \"/adm-spec.yaml\"\r\n hide-console = true\r\n hide-authentication = true\r\n hide-server-selection = true\r\n hide-components = false\r\n nav-bg-color = #ffffff\r\n secondary-color = #000000\r\n nav-hover-text-color = #F8F8F5\r\n >\r\n \u003C/openapi-explorer>\r\n\r\n\u003C/ClientOnly>\r\n```\r\n\r\nThis seems very awkward, and it's difficult to get the styles to match Vitepress's theme. Might there be a way to extend the default theme with a layout called `openapi` and somehow link my spec file in the front matter?\n\n### Other information\n\nI appreciate this work very much. Thanks for considering the suggestion.",[3102],{"name":3074,"color":3075},71,"Is it possible to add vitepress-openapi to an existing Vitepress site as a menu item","2024-10-19T02:30:08Z","https://github.com/enzonotario/vitepress-openapi/issues/71",0.8655451,{"description":3109,"labels":3110,"number":3111,"owner":3021,"repository":3022,"state":3044,"title":3112,"updated_at":3113,"url":3114,"score":3115},"### Current behavior\n\nFirst of all, thank you for this fantastic theme/addon!\n\nWe are using multiple root levels in our vitepress API (`/api/` and `/sdk/`, etc.) like this. Openapi link generation works, however this way openapi links are not auto activated anymore when clicked or scrolled. \n\n### Desired behavior\n\nSidebar links are marked as active on click or hover.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/enzonotario-vitepress-openapi-starter-2k5lx5mk\n\n### Steps to reproduce\n\n```js\n themeConfig: {\n sidebar: {\n '/api/': {\n base: '/api/',\n items: [\n {\n text: 'API Documentation',\n items: [\n {text: 'Quickstart', link: 'quickstart'},\n ]\n },\n {\n text: 'By Tags',\n items: [\n ...sidebar.itemsByTags(),\n ],\n },\n {\n text: 'By Operations',\n items: [\n ...sidebar.generateSidebarGroups(),\n ],\n }\n ]\n },\n '/sdk/': {\n base: '/sdk/',\n items: [\n {\n text: 'SDK Documentation',\n items: [\n {text: 'Getting Started', link: 'getting-started'},\n ]\n }\n ]\n }\n }\n }\n```\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[],213,"Sidebar items not activating when using base in parent in sidebar","2025-05-01T22:37:29Z","https://github.com/enzonotario/vitepress-openapi/issues/213",0.8665144,["Reactive",3117],{},["Set"],["ShallowReactive",3120],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fcPpn29-6LJQXKh0XONA4SG15_hNWVjYeDuJkneHebpA":-1},"/enzonotario/esjs-dolar-api/31"]