[{"data":1,"prerenderedAt":262},["ShallowReactive",2],{"navigation_docs":3,"diagnostic-content-VITE0009":44},[4,8,12,16,20,24,28,32,36,40],{"title":5,"path":6,"stem":7},"CLI","\u002Fcli","1.cli",{"title":9,"path":10,"stem":11},"Nuxt","\u002Fnuxt","2.nuxt",{"title":13,"path":14,"stem":15},"Vue","\u002Fvue","3.vue",{"title":17,"path":18,"stem":19},"Vite","\u002Fvite","4.vite",{"title":21,"path":22,"stem":23},"Nitro","\u002Fnitro","5.nitro",{"title":25,"path":26,"stem":27},"TypeScript","\u002Ftypescript","6.typescript",{"title":29,"path":30,"stem":31},"shadcn","\u002Fshadcn","7.shadcn",{"title":33,"path":34,"stem":35},"Package","\u002Fpackage","8.package",{"title":37,"path":38,"stem":39},"Extending Doctor","\u002Fextending","9.extending",{"title":41,"path":42,"stem":43},"Pinia","\u002Fpinia","9.pinia",{"id":45,"title":46,"body":47,"category":53,"code":252,"description":253,"docsUrl":54,"extension":254,"fix":77,"framework":255,"meta":256,"navigation":257,"pack":56,"path":258,"ruleId":57,"rulePath":58,"seo":259,"severity":59,"source":60,"sourceUrl":61,"stem":260,"why":70,"__hash__":261},"diagnostics\u002Fdiagnostics\u002FVITE0009.md","VITE0009: Do not read secret-looking env vars in client code",{"type":48,"value":49,"toc":240},"minimark",[50,62,67,71,75,78,82,87,90,137,140,169,173,176,208,212,224,228,236],[51,52],"rule-metadata",{"category":53,"docsUrl":54,"fix":55,"pack":56,"ruleId":57,"rulePath":58,"severity":59,"source":60,"sourceUrl":61},"security","https:\u002F\u002Fvite.dev\u002Fguide\u002Fenv-and-mode#env-variables","no","vite-doctor\u002Fvite","vite\u002Fenv\u002Fno-client-secret-pattern","\u002Fvite\u002Frules\u002Fenv\u002Fno-client-secret-pattern","error","src\u002Frule-packs\u002Fvite\u002Frules\u002Fenv.ts","https:\u002F\u002Fgithub.com\u002Fonmax\u002Fvite-doctor\u002Fblob\u002Fmain\u002Fsrc\u002Frule-packs\u002Fvite\u002Frules\u002Fenv.ts",[63,64,66],"h2",{"id":65},"why-it-happens","Why it happens",[68,69,70],"p",{},"Secrets that reach public runtime config or client bundles can be exposed to every visitor and crawler.",[63,72,74],{"id":73},"fix","Fix",[68,76,77],{},"Remove client secret pattern, or move it to the Vite runtime\u002FAPI that owns that behavior.",[63,79,81],{"id":80},"example","Example",[83,84,86],"h3",{"id":85},"keep-secret-env-vars-server-only","Keep secret env vars server-only",[68,88,89],{},"Before",[91,92,97],"pre",{"className":93,"code":94,"language":95,"meta":96,"style":96},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const token = import.meta.env.VITE_API_SECRET\n","ts","",[98,99,100],"code",{"__ignoreMap":96},[101,102,105,109,113,117,121,124,127,129,132,134],"span",{"class":103,"line":104},"line",1,[101,106,108],{"class":107},"spNyl","const",[101,110,112],{"class":111},"sTEyZ"," token ",[101,114,116],{"class":115},"sMK4o","=",[101,118,120],{"class":119},"s7zQu"," import",[101,122,123],{"class":115},".",[101,125,126],{"class":111},"meta",[101,128,123],{"class":115},[101,130,131],{"class":111},"env",[101,133,123],{"class":115},[101,135,136],{"class":111},"VITE_API_SECRET\n",[68,138,139],{},"After",[91,141,143],{"className":93,"code":142,"language":95,"meta":96,"style":96},"const apiBase = import.meta.env.VITE_PUBLIC_API_BASE\n",[98,144,145],{"__ignoreMap":96},[101,146,147,149,152,154,156,158,160,162,164,166],{"class":103,"line":104},[101,148,108],{"class":107},[101,150,151],{"class":111}," apiBase ",[101,153,116],{"class":115},[101,155,120],{"class":119},[101,157,123],{"class":115},[101,159,126],{"class":111},[101,161,123],{"class":115},[101,163,131],{"class":111},[101,165,123],{"class":115},[101,167,168],{"class":111},"VITE_PUBLIC_API_BASE\n",[63,170,172],{"id":171},"verify-the-fix","Verify the fix",[68,174,175],{},"Run only this rule after editing so the report stays focused on the diagnostic you are closing:",[91,177,181],{"className":178,"code":179,"language":180,"meta":96,"style":96},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm vite-doctor . --framework vite --rules vite\u002Fenv\u002Fno-client-secret-pattern\n","bash",[98,182,183],{"__ignoreMap":96},[101,184,185,189,193,196,199,202,205],{"class":103,"line":104},[101,186,188],{"class":187},"sBMFI","pnpm",[101,190,192],{"class":191},"sfazB"," vite-doctor",[101,194,195],{"class":191}," .",[101,197,198],{"class":191}," --framework",[101,200,201],{"class":191}," vite",[101,203,204],{"class":191}," --rules",[101,206,207],{"class":191}," vite\u002Fenv\u002Fno-client-secret-pattern\n",[63,209,211],{"id":210},"useful-links","Useful links",[213,214,215],"ul",{},[216,217,218],"li",{},[219,220,223],"a",{"href":54,"rel":221},[222],"nofollow","Upstream docs",[63,225,227],{"id":226},"related-rule","Related rule",[213,229,230],{},[216,231,232],{},[219,233,234],{"href":58},[98,235,57],{},[237,238,239],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":96,"searchDepth":241,"depth":241,"links":242},2,[243,244,245,249,250,251],{"id":65,"depth":241,"text":66},{"id":73,"depth":241,"text":74},{"id":80,"depth":241,"text":81,"children":246},[247],{"id":85,"depth":248,"text":86},3,{"id":171,"depth":241,"text":172},{"id":210,"depth":241,"text":211},{"id":226,"depth":241,"text":227},"VITE0009","Flags client secret pattern in Vite env code before it leaks into runtime behavior.","md","vite",{},true,"\u002Fdiagnostics\u002Fvite0009",{"title":46,"description":253},"diagnostics\u002FVITE0009","J8FXp93gUsTlMnLLHzUDz8HH4SHbwELHFyRlWdHZRMY",1791309485004]