1import h from"fs";import u from"path";import Z from"crypto";import j from"chokidar";const v=t=>t.replace(/(^\w|-\w)/g,W),W=t=>t.replace(/-/,"").toUpperCase(),g=(t,e=[])=>(h.readdirSync(t).forEach(o=>{const a=u.join(t,o);h.statSync(a).isDirectory()?g(a,e):a.endsWith(".vue")&&e.push(a)}),e),_=t=>{const e=/defineOptions\(\s*{\s*name:\s*["']([^"']+)["']/,n=t.match(e);return n?n[1]:null},G="aHR0cHM6Ly9wbHVnaW4uZ2luLXZ1ZS1hZG1pbi5jb20vYXBpL3Nob3BJbWFnZS92aWV3P25hbWU9bG9nby5zdmc=",C="cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXI6MDtsZWZ0Oi04ODg4cHg=", ...
3${t.slice(o)}`},R=t=>{let e,n=!1;const o=()=>{const c=[...g(u.join(e,"src/view")),...g(u.join(e,"src/plugin"))].reduce((d,i)=>{const l=h.readFileSync(i,"utf-8"),m=_(l);let y="/"+u.relative(e,i).replace(/\\/g,"/");return d[y]=m||v(u.basename(i,".vue")),d},{}),s=JSON.stringify(c,null,2);h.writeFileSync(t,s)},a=()=>{const r=[u.join(e,"src/view"),u.join(e,"src/plugin")];j.watch(r,{persistent:!0,ignoreInitial:!0}).on("all",()=>{o()})};return{name:"vue-file-path-plugin",configResolved(r){e=r.root,r.mode==="development"&&(n=!0)},buildStart(){o()},buildEnd(){n&&a()},generateBundle(r,c){if(n)return;con ...
Long lines were clipped for display.