UNPKG

@sunpix/claude-code-web

Version:

A web-based interface for interacting with Claude Code CLI

2 lines (1 loc) 6.15 kB
import{createRenderer as e,getRequestDependencies as t,getPreloadLinks as r,getPrefetchLinks as o}from"vue-bundle-renderer/runtime";import{o as n,u as a,p as s,q as i,t as d,g as l,c as p,v as u,w as c,x as m}from"../nitro/nitro.mjs";import{createHead as h,propsToString as f,renderSSRHead as b}from"unhead/server";import{stringify as y,uneval as _}from"devalue";import{toValue as g,isRef as v}from"vue";import"node:http";import"node:https";import"node:crypto";import"stream";import"events";import"http";import"crypto";import"buffer";import"zlib";import"https";import"net";import"tls";import"url";import"node:events";import"node:buffer";import"node:fs";import"node:path";import"@anthropic-ai/claude-code";import"fs";import"path";import"os";import"fs/promises";import"chokidar";import"readline";import"node:url";const w=(e,t)=>v(t)?g(t):t;function x(e={}){const t=h({...e,propResolvers:[w]});return t.install=function(e){return{install(t){t.config.globalProperties.$unhead=e,t.config.globalProperties.$head=e,t.provide("usehead",e)}}.install}(t),t}const C={meta:[{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"},{charset:"utf-8"},{name:"apple-mobile-web-app-capable",content:"yes"},{name:"apple-mobile-web-app-status-bar-style",content:"black-translucent"},{name:"apple-mobile-web-app-title",content:"Claude Code Web"},{name:"mobile-web-app-capable",content:"yes"},{name:"theme-color",content:"#ffffff"},{name:"msapplication-TileColor",content:"#ffffff"}],link:[],style:[],script:[],noscript:[],title:"Claude Code Web - Claude Code WebUI",viewport:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"},A={id:"teleports"},R={id:"__nuxt-loader"};function T(...e){return n(k(),a().app.buildAssetsDir,...e)}function k(...e){const t=a().app,r=t.cdnURL||t.baseURL;return e.length?n(r,...e):r}const $=`<div${f({id:"__nuxt"})}>`,j=function(e){let t=null;return()=>(null===t&&(t=e().catch(e=>{throw t=null,e})),t)}(async()=>{const t=await import("../build/client.manifest.mjs").then(e=>e.default||e).then(e=>"function"==typeof e?e():e),r=await import("../virtual/_virtual_spa-template.mjs").then(e=>e.template).catch(()=>"").then(e=>{{const t=`<div${f(R)}>`;return $+"</div>"+(e?t+e+"</div>":"")}}),o=e(()=>()=>{},{manifest:t,renderToString:()=>r,buildAssetsURL:T}),n=await o.renderToString({});return{rendererContext:o.rendererContext,renderToString:e=>{const t=a(e.event);return e.modules||=new Set,e.payload.serverRendered=!1,e.config={public:t.public,app:t.app},Promise.resolve(n)}}});function S(e){const t={type:"application/json",innerHTML:e.data?y(e.data,e.ssrContext._payloadReducers):"","data-nuxt-data":"nuxt-app","data-ssr":!1,id:"__NUXT_DATA__"};e.src&&(t["data-src"]=e.src);return[t,{innerHTML:`window.__NUXT__={};window.__NUXT__.config=${_(e.ssrContext.config)}`}]}function P(e){const{data:t,prerenderedAt:r,...o}=e.payload;return{initial:{...o,prerenderedAt:r},payload:{data:t,prerenderedAt:r}}}const U={disableDefaults:!0};const L={omitLineBreaks:!0};globalThis.__buildAssetsURL=T,globalThis.__publicAssetsURL=k;const N=!!A.id,H=N?`<div${f(A)}>`:"",M=N?"</div>":"",O=/^[^?]*\/_payload.json(?:\?.*)?$/,D=d(async e=>{const n=m(),d=e.path.startsWith("/__nuxt_error")?l(e):null;if(d&&!("__unenv__"in e.node.req))throw p({statusCode:404,statusMessage:"Page Not Found: /__nuxt_error"});const h=function(e){return{url:e.path,event:e,runtimeConfig:a(e),noSSR:!0,head:x(U),error:!1,nuxt:void 0,payload:{},_payloadReducers:Object.create(null),modules:new Set}}(e),f={mode:"server"};if(h.head.push(C,f),d){if(d.statusCode&&=Number.parseInt(d.statusCode),"string"==typeof d.data)try{d.data=u(d.data)}catch{}!function(e,t){e.error=!0,e.payload={error:t},e.url=t.url}(h,d)}const _=O.test(h.url);if(_){const t=h.url.substring(0,h.url.lastIndexOf("/"))||"/";h.url=t,e._path=e.node.req.url=t}const g=c(e);!1===g.ssr&&(h.noSSR=!0);const v=await j(),w=await v.renderToString(h).catch(async e=>{if(h._renderResponse&&"skipping render"===e.message)return{};const t=!d&&h.payload?.error||e;throw await(h.nuxt?.hooks.callHook("app:error",t)),t}),R=[];if(await(h.nuxt?.hooks.callHook("app:rendered",{ssrContext:h,renderResult:w})),h._renderResponse)return h._renderResponse;if(h.payload?.error&&!d)throw h.payload.error;if(_){const e=function(e){return{body:y(P(e).payload,e._payloadReducers),statusCode:i(e.event),statusMessage:s(e.event),headers:{"content-type":"application/json;charset=utf-8","x-powered-by":"Nuxt"}}}(h);return e}const k=g.noScripts,{styles:$,scripts:D}=t(h,v.rendererContext);h._preloadManifest&&!k&&h.head.push({link:[{rel:"preload",as:"fetch",fetchpriority:"low",crossorigin:"anonymous",href:T(`builds/meta/${h.runtimeConfig.app.buildId}.json`)}]},{...f,tagPriority:"low"}),R.length&&h.head.push({style:R});const X=[];for(const e of Object.values($))X.push({rel:"stylesheet",href:v.rendererContext.buildAssetsURL(e.file),crossorigin:""});if(X.length&&h.head.push({link:X},f),k||(h.head.push({link:r(h,v.rendererContext)},f),h.head.push({link:o(h,v.rendererContext)},f),h.head.push({script:S({ssrContext:h,data:h.payload})},{...f,tagPosition:"bodyClose",tagPriority:"high"})),!g.noScripts){const e="head";h.head.push({script:Object.values(D).map(t=>({type:t.module?"module":null,src:v.rendererContext.buildAssetsURL(t.file),defer:!t.module||null,tagPosition:e,crossorigin:""}))},f)}const{headTags:B,bodyTags:z,bodyTagsOpen:E,htmlAttrs:F,bodyAttrs:Y}=await b(h.head,L),G={htmlAttrs:F?[F]:[],head:I([B]),bodyAttrs:Y?[Y]:[],bodyPrepend:I([E,h.teleports?.body]),body:[w.html,H+(N?W([h.teleports?.[`#${A.id}`]]):"")+M],bodyAppend:[z]};return await n.hooks.callHook("render:html",G,{event:e}),{body:(J=G,`<!DOCTYPE html><html${q(J.htmlAttrs)}><head>${W(J.head)}</head><body${q(J.bodyAttrs)}>${W(J.bodyPrepend)}${W(J.body)}${W(J.bodyAppend)}</body></html>`),statusCode:i(e),statusMessage:s(e),headers:{"content-type":"text/html;charset=utf-8","x-powered-by":"Nuxt"}};var J});function I(e){return e.filter(Boolean).map(e=>e.trim())}function W(e){return e.join("")}function q(e){return 0===e.length?"":" "+e.join(" ")}export{D as default};