vite-userscript-plugin 1.6.2 → 1.6.3
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/index.cjs +3 -3
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";var ee=Object.create;var b=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ne=Object.getPrototypeOf,se=Object.prototype.hasOwnProperty;var oe=(e,r)=>{for(var t in r)b(e,t,{get:r[t],enumerable:!0})},F=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of re(r))!se.call(e,o)&&o!==t&&b(e,o,{get:()=>r[o],enumerable:!(n=te(r,o))||n.enumerable});return e};var u=(e,r,t)=>(t=e!=null?ee(ne(e)):{},F(r||!e||!e.__esModule?b(t,"default",{value:e,enumerable:!0}):t,e)),ie=e=>F(b({},"__esModule",{value:!0}),e);var ce={};oe(ce,{default:()=>z});module.exports=ie(ce);var D=u(require("get-port"),1),c=require("fs"),K=require("http"),a=require("path"),A=require("url"),H=u(require("open"),1),G=u(require("picocolors"),1),W=u(require("sanitize-filename"),1),q=u(require("serve-handler"),1),B=require("vite"),N=require("websocket");var g=class{constructor(r){this.config=r;this.downloadMeta(),this.configKeys=Object.keys(this.config),this.maxKeyLength=Math.max(...this.configKeys.map(t=>t.length))+1}header=[];configKeys;maxKeyLength;downloadMeta(){let{name:r,homepage:t,updateURL:n,downloadURL:o}=this.config;t&&!n&&!o&&(this.config.updateURL=new URL(`${r}.meta.js`,t).href,this.config.downloadURL=new URL(`${r}.user.js`,t).href)}addSpaces(r){return" ".repeat(this.maxKeyLength-r.length)}addMetadata(r,t){let n=typeof t=="boolean";n&&!t||(t=n?"":`${this.addSpaces(r)}${t}`,this.header.push(`// @${r}${t}`))}generate(){for(let[r,t]of Object.entries(this.config))if(Array.isArray(t))t.forEach(n=>this.addMetadata(r,n));else{if(t===void 0)continue;this.addMetadata(r,t)}return["// ==UserScript==",...this.header,"// ==/UserScript=="].join(`
|
|
2
|
-
`)}};function O({entry:e,header:r}){return{build:{lib:{entry:e,name:r.name,fileName:()=>`${r.name}.js`},rollupOptions:{output:{extend:!0}}}}}var
|
|
3
|
-
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(r){let t=[];for(let n of r){let o=this.styles.get(n);!o||t.push([n,o])}this.styles.clear(),t.forEach(n=>this.styles.set(...n))}}
|
|
2
|
+
`)}};function O({entry:e,header:r}){return{build:{lib:{entry:e,name:r.name,fileName:()=>`${r.name}.js`},rollupOptions:{output:{extend:!0}}}}}var j='console.warn("__GM_STYLE__")',E=new RegExp(/\.(t|j)sx?$/),U=new RegExp(/\.(s[ac]|c|le)ss$/),ae=["setValue","getValue","deleteValue","listValues","setClipboard","addStyle","addElement","addValueChangeListener","removeValueChangeListener","registerMenuCommand","unregisterMenuCommand","download","getTab","getTabs","saveTab","openInTab","notification","getResourceURL","getResourceText","xmlhttpRequest","log","info"],le=["unsafeWindow","window.onurlchange","window.focus","window.close"],h=ae.map(e=>[`GM_${e}`,`GM.${e}`]).flat();h.push(...le);var k=require("vite");function L(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function y({file:e,name:r,loader:t}){let{code:n}=await(0,k.transformWithEsbuild)(e,r,{loader:t,minify:!0,sourcemap:!1,format:"iife",legalComments:"none"});return n}function V(e){let r=[];for(let t of h)e.indexOf(t)!==-1&&r.push(t);return r}var P=class{styles=new Map;async add(r,t){let n=await y({file:r,name:t,loader:"css"});return this.styles.set(t,n.replace(`
|
|
3
|
+
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(r){let t=[];for(let n of r){let o=this.styles.get(n);!o||t.push([n,o])}this.styles.clear(),t.forEach(n=>this.styles.set(...n))}},$=new P;var pe={};function z(e){let r,t,n=null,o=(0,a.dirname)((0,A.fileURLToPath)(pe.url)),S=(0,B.createLogger)("info",{prefix:"[vite-userscript-plugin]",allowClearScreen:!0}),w=(0,K.createServer)((s,i)=>(0,q.default)(s,i,{public:r.build.outDir})),I=N.server;return new I({httpServer:w}).on("request",s=>{n=s.accept(null,s.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return O(e)},async configResolved(s){r=s,t=s.build.watch??!1,e.entry=(0,a.resolve)(s.root,e.entry),e.header.name=(0,W.default)(e.header.name),Array.from(["match","require","include","exclude","resource","connect"]).forEach(i=>{let p=e.header[i];e.header[i]=L(p)}),e.server={port:await(0,D.default)(),open:!1,...e.server}},async transform(s,i){let p=s;return U.test(i)&&(p=await $.add(s,i)),i.includes(e.entry)&&!s.includes(j)&&(p=s+j),{code:p,map:null}},generateBundle(s,i){for(let[p,d]of Object.entries(i)){let f=Object.keys(d.modules).filter(C=>U.test(C));f.length&&$.merge(f)}},async writeBundle(s,i){let{open:p,port:d}=e.server,_=`${e.header.name}.user.js`,f=`${e.header.name}.proxy.user.js`,C=`${e.header.name}.meta.js`;for(let[m]of Object.entries(i))if(E.test(m)){let x=r.root,v=r.build.outDir,M=(0,a.resolve)(x,v,m),J=(0,a.resolve)(x,v,_),Y=(0,a.resolve)(x,v,f),Q=(0,a.resolve)(x,v,C),R=(0,a.resolve)(o,`ws-${e.header.name}.js`);try{let l=(0,c.readFileSync)(M,"utf8");if(l=l.replace(j,`${$.inject()}`),l=await y({file:l,name:m,loader:"js"}),e.header.grant=L(t?h:[...V(l),...e.header.grant??[]]),t){let X=(0,c.readFileSync)((0,a.resolve)(o,"ws.js"),"utf8"),Z=await y({file:X.replace("__WS__",`ws://localhost:${d}`),name:R,loader:"js"});(0,c.writeFileSync)(R,Z),(0,c.writeFileSync)(Y,new g({...e.header,require:[...e.header.require,"file://"+R,"file://"+M]}).generate())}let T=new g(e.header).generate();(0,c.writeFileSync)(M,l),(0,c.writeFileSync)(Q,T),(0,c.writeFileSync)(J,`${T}
|
|
4
4
|
|
|
5
|
-
${l}`)}catch(l){console.log(l)}}if(t&&!w.listening){let m=`http://localhost:${d}`;w.listen(d,()=>{
|
|
5
|
+
${l}`)}catch(l){console.log(l)}}if(t&&!w.listening){let m=`http://localhost:${d}`;w.listen(d,()=>{S.clearScreen("info"),S.info(G.default.blue(`Running at: ${G.default.gray(m)}`))}),p&&await(0,H.default)(`${m}/${f}`)}else t||(w.close(),process.exit(0))},buildEnd(){t&&(S.clearScreen("info"),n&&n.sendUTF(JSON.stringify({message:"reload"})))}}}0&&(module.exports={});
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import B from"get-port";import{readFileSync as F,writeFileSync as h}from"fs";import{createServer as N}from"http";import{dirname as z,resolve as c}from"path";import{fileURLToPath as I}from"url";import J from"open";import O from"picocolors";import Y from"sanitize-filename";import Q from"serve-handler";import{createLogger as X}from"vite";import{server as Z}from"websocket";var f=class{constructor(r){this.config=r;this.downloadMeta(),this.configKeys=Object.keys(this.config),this.maxKeyLength=Math.max(...this.configKeys.map(t=>t.length))+1}header=[];configKeys;maxKeyLength;downloadMeta(){let{name:r,homepage:t,updateURL:n,downloadURL:l}=this.config;t&&!n&&!l&&(this.config.updateURL=new URL(`${r}.meta.js`,t).href,this.config.downloadURL=new URL(`${r}.user.js`,t).href)}addSpaces(r){return" ".repeat(this.maxKeyLength-r.length)}addMetadata(r,t){let n=typeof t=="boolean";n&&!t||(t=n?"":`${this.addSpaces(r)}${t}`,this.header.push(`// @${r}${t}`))}generate(){for(let[r,t]of Object.entries(this.config))if(Array.isArray(t))t.forEach(n=>this.addMetadata(r,n));else{if(t===void 0)continue;this.addMetadata(r,t)}return["// ==UserScript==",...this.header,"// ==/UserScript=="].join(`
|
|
2
|
-
`)}};function G({entry:e,header:r}){return{build:{lib:{entry:e,name:r.name,fileName:()=>`${r.name}.js`},rollupOptions:{output:{extend:!0}}}}}var
|
|
3
|
-
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(r){let t=[];for(let n of r){let l=this.styles.get(n);!l||t.push([n,l])}this.styles.clear(),t.forEach(n=>this.styles.set(...n))}},
|
|
2
|
+
`)}};function G({entry:e,header:r}){return{build:{lib:{entry:e,name:r.name,fileName:()=>`${r.name}.js`},rollupOptions:{output:{extend:!0}}}}}var v='console.warn("__GM_STYLE__")',_=new RegExp(/\.(t|j)sx?$/),M=new RegExp(/\.(s[ac]|c|le)ss$/),H=["setValue","getValue","deleteValue","listValues","setClipboard","addStyle","addElement","addValueChangeListener","removeValueChangeListener","registerMenuCommand","unregisterMenuCommand","download","getTab","getTabs","saveTab","openInTab","notification","getResourceURL","getResourceText","xmlhttpRequest","log","info"],W=["unsafeWindow","window.onurlchange","window.focus","window.close"],u=H.map(e=>[`GM_${e}`,`GM.${e}`]).flat();u.push(...W);import{transformWithEsbuild as q}from"vite";function R(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function g({file:e,name:r,loader:t}){let{code:n}=await q(e,r,{loader:t,minify:!0,sourcemap:!1,format:"iife",legalComments:"none"});return n}function T(e){let r=[];for(let t of u)e.indexOf(t)!==-1&&r.push(t);return r}var U=class{styles=new Map;async add(r,t){let n=await g({file:r,name:t,loader:"css"});return this.styles.set(t,n.replace(`
|
|
3
|
+
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(r){let t=[];for(let n of r){let l=this.styles.get(n);!l||t.push([n,l])}this.styles.clear(),t.forEach(n=>this.styles.set(...n))}},b=new U;function ee(e){let r,t,n=null,l=z(I(import.meta.url)),j=X("info",{prefix:"[vite-userscript-plugin]",allowClearScreen:!0}),y=N((s,o)=>Q(s,o,{public:r.build.outDir})),E=Z;return new E({httpServer:y}).on("request",s=>{n=s.accept(null,s.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return G(e)},async configResolved(s){r=s,t=s.build.watch??!1,e.entry=c(s.root,e.entry),e.header.name=Y(e.header.name),Array.from(["match","require","include","exclude","resource","connect"]).forEach(o=>{let a=e.header[o];e.header[o]=R(a)}),e.server={port:await B(),open:!1,...e.server}},async transform(s,o){let a=s;return M.test(o)&&(a=await b.add(s,o)),o.includes(e.entry)&&!s.includes(v)&&(a=s+v),{code:a,map:null}},generateBundle(s,o){for(let[a,m]of Object.entries(o)){let d=Object.keys(m.modules).filter($=>M.test($));d.length&&b.merge(d)}},async writeBundle(s,o){let{open:a,port:m}=e.server,L=`${e.header.name}.user.js`,d=`${e.header.name}.proxy.user.js`,$=`${e.header.name}.meta.js`;for(let[p]of Object.entries(o))if(_.test(p)){let w=r.root,x=r.build.outDir,S=c(w,x,p),k=c(w,x,L),V=c(w,x,d),D=c(w,x,$),C=c(l,`ws-${e.header.name}.js`);try{let i=F(S,"utf8");if(i=i.replace(v,`${b.inject()}`),i=await g({file:i,name:p,loader:"js"}),e.header.grant=R(t?u:[...T(i),...e.header.grant??[]]),t){let K=F(c(l,"ws.js"),"utf8"),A=await g({file:K.replace("__WS__",`ws://localhost:${m}`),name:C,loader:"js"});h(C,A),h(V,new f({...e.header,require:[...e.header.require,"file://"+C,"file://"+S]}).generate())}let P=new f(e.header).generate();h(S,i),h(D,P),h(k,`${P}
|
|
4
4
|
|
|
5
|
-
${i}`)}catch(i){console.log(i)}}if(t&&!y.listening){let p=`http://localhost:${m}`;y.listen(m,()=>{
|
|
5
|
+
${i}`)}catch(i){console.log(i)}}if(t&&!y.listening){let p=`http://localhost:${m}`;y.listen(m,()=>{j.clearScreen("info"),j.info(O.blue(`Running at: ${O.gray(p)}`))}),a&&await J(`${p}/${d}`)}else t||(y.close(),process.exit(0))},buildEnd(){t&&(j.clearScreen("info"),n&&n.sendUTF(JSON.stringify({message:"reload"})))}}}export{ee as default};
|