vite-userscript-plugin 1.1.0 → 1.1.1
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/README.md +0 -5
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +0 -5
- package/dist/index.js +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`)}var
|
|
3
|
-
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(t){let r=[];for(let
|
|
1
|
+
"use strict";var Q=Object.create;var w=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var re=(e,t)=>{for(var r in t)w(e,r,{get:t[r],enumerable:!0})},U=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Z(t))!te.call(e,s)&&s!==r&&w(e,s,{get:()=>t[s],enumerable:!(o=X(t,s))||o.enumerable});return e};var h=(e,t,r)=>(r=e!=null?Q(ee(e)):{},U(t||!e||!e.__esModule?w(r,"default",{value:e,enumerable:!0}):r,e)),ne=e=>U(w({},"__esModule",{value:!0}),e);var oe={};re(oe,{default:()=>N});module.exports=ne(oe);var k=h(require("get-port"),1),f=require("fs"),A=require("http"),c=require("path"),P=require("url"),D=h(require("open"),1),T=h(require("picocolors"),1),q=h(require("sanitize-filename"),1),H=h(require("serve-handler"),1),W=require("vite"),B=require("websocket");function j(e){let t=[],r=Object.keys(e),o=Math.max(...r.map(a=>a.length))+1,s=a=>" ".repeat(o-a.length),d=(a,l)=>{let n=typeof l=="boolean";n&&!l||(l=n?"":s(a)+l.toString(),t.push(`// @${a}${l}`))};for(let[a,l]of Object.entries(e))if(Array.isArray(l))l.forEach(n=>d(a,n));else{if(l===void 0)continue;d(a,l)}return["// ==UserScript==",...t,"// ==/UserScript=="].join(`
|
|
2
|
+
`)}function E({entry:e,header:t}){return{build:{lib:{entry:e,name:t.name,formats:["iife"],fileName:()=>`${t.name}.js`},rollupOptions:{output:{extend:!0}}}}}var O=new RegExp(/.(t|j)sx?/),C=new RegExp(/\.(s?css|sass)$/),x=["unsafeWindow","window.onurlchange","window.focus","window.close","GM_setValue","GM_getValue","GM_deleteValue","GM_listValues","GM_setClipboard","GM_addStyle","GM_addElement","GM_addValueChangeListener","GM_removeValueChangeListener","GM_registerMenuCommand","GM_unregisterMenuCommand","GM_download","GM_getTab","GM_getTabs","GM_saveTab","GM_openInTab","GM_notification","GM_getResourceURL","GM_getResourceText","GM_xmlhttpRequest","GM_webRequest","GM_log","GM_info"];var L=require("vite");function $(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function _({file:e,name:t,loader:r}){let{code:o}=await(0,L.transformWithEsbuild)(e,t,{loader:r,minify:!0});return o}function F(e){let t=[];for(let r of x)e.indexOf(r)!==-1&&t.push(r);return t}var R=class{styles=new Map;async add(t,r){let o=await _({file:t,name:r,loader:"css"});return this.styles.set(r,o.replace(`
|
|
3
|
+
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(t){let r=[];for(let o of t){let s=this.styles.get(o);!s||r.push([o,s])}this.styles.clear(),r.forEach(o=>this.styles.set(...o))}},M=new R;var V={};function N(e){let t,r,o=null,s=(0,W.createLogger)("info",{prefix:"[vite-userscript-plugin]",allowClearScreen:!0}),d=(0,A.createServer)((n,i)=>(0,H.default)(n,i,{public:t.build.outDir})),a=B.server;return new a({httpServer:d}).on("request",n=>{o=n.accept(null,n.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return E(e)},async configResolved(n){t=n,r=n.build.watch??!1,e.entry=(0,c.resolve)(n.root,e.entry),e.header.name=(0,q.default)(e.header.name),Array.from(["match","require","include","exclude","resource","connect"]).forEach(i=>{let u=e.header[i];Array.isArray(u)&&(e.header[i]=$(u))}),e.server={port:await(0,k.default)(),open:!0,...e.server}},async transform(n,i){let u=n;return C.test(i)&&(u=await M.add(n,i)),i.includes(e.entry)&&(u=n+"__STYLE__"),{code:u,map:null}},generateBundle(n,i){for(let[u,g]of Object.entries(i)){let m=Object.keys(g.modules).filter(y=>C.test(y));m.length>0&&M.merge(m)}},async writeBundle(n,i){let{open:u,port:g}=e.server,b=`${e.header.name}.proxy.user.js`;for(let[m]of Object.entries(i))if(O.test(m)){let y=t.root,G=t.build.outDir,z=`${e.header.name}.user.js`,S=(0,c.resolve)(y,G,m),K=(0,c.resolve)(y,G,b),Y=(0,c.resolve)(y,G,z),v=(0,c.resolve)((0,c.dirname)((0,P.fileURLToPath)(V.url)),`hot-reload-${e.header.name}.js`);try{let p=(0,f.readFileSync)(S,"utf8");if(r){let I=(0,f.readFileSync)((0,c.resolve)((0,c.dirname)((0,P.fileURLToPath)(V.url)),"hot-reload.js"),"utf8"),J=await _({file:I.replace("__WS__",`ws://localhost:${g}`),name:v,loader:"js"});(0,f.writeFileSync)(v,J),(0,f.writeFileSync)(K,j({...e.header,require:[...e.header.require,"file://"+v,"file://"+S]}))}p=p.replace("__STYLE__",`${M.inject()}`),p=await _({file:p,name:m,loader:"js"}),e.header.grant=$(r?x:[...F(p),...e.header.grant??[]]),(0,f.writeFileSync)(S,p),(0,f.writeFileSync)(Y,`${j(e.header)}
|
|
4
4
|
|
|
5
|
-
${
|
|
5
|
+
${p}`)}catch(p){console.log(p)}}if(r&&!d.listening){let m=`http://localhost:${g}`;d.listen(g,()=>{s.clearScreen("info"),s.info(T.default.blue(`Running at: ${T.default.gray(m)}`))}),u&&await(0,D.default)(`${m}/${b}`)}else r||(d.close(),process.exit(0))},buildEnd(){r&&(s.clearScreen("info"),o&&o.sendUTF(JSON.stringify({message:"reload"})))}}}0&&(module.exports={});
|
package/dist/index.d.ts
CHANGED
|
@@ -210,11 +210,6 @@ interface UserscriptPluginConfig {
|
|
|
210
210
|
* Server config.
|
|
211
211
|
*/
|
|
212
212
|
server?: ServerConfig;
|
|
213
|
-
/**
|
|
214
|
-
* Import all `@grant` in development mode.
|
|
215
|
-
* @default true
|
|
216
|
-
*/
|
|
217
|
-
autoGrants?: boolean;
|
|
218
213
|
}
|
|
219
214
|
|
|
220
215
|
declare function UserscriptPlugin(config: UserscriptPluginConfig): PluginOption;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
`)}var R=new RegExp(/.(t|j)sx?/),v=new RegExp(/\.(s?css|sass)$/),
|
|
3
|
-
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(
|
|
1
|
+
import q from"get-port";import{readFileSync as T,writeFileSync as w}from"fs";import{createServer as H}from"http";import{dirname as U,resolve as f}from"path";import{fileURLToPath as E}from"url";import W from"open";import O from"picocolors";import B from"sanitize-filename";import N from"serve-handler";import{createLogger as z}from"vite";import{server as K}from"websocket";function S(e){let t=[],r=Object.keys(e),o=Math.max(...r.map(i=>i.length))+1,m=i=>" ".repeat(o-i.length),p=(i,a)=>{let n=typeof a=="boolean";n&&!a||(a=n?"":m(i)+a.toString(),t.push(`// @${i}${a}`))};for(let[i,a]of Object.entries(e))if(Array.isArray(a))a.forEach(n=>p(i,n));else{if(a===void 0)continue;p(i,a)}return["// ==UserScript==",...t,"// ==/UserScript=="].join(`
|
|
2
|
+
`)}function $({entry:e,header:t}){return{build:{lib:{entry:e,name:t.name,formats:["iife"],fileName:()=>`${t.name}.js`},rollupOptions:{output:{extend:!0}}}}}var R=new RegExp(/.(t|j)sx?/),v=new RegExp(/\.(s?css|sass)$/),h=["unsafeWindow","window.onurlchange","window.focus","window.close","GM_setValue","GM_getValue","GM_deleteValue","GM_listValues","GM_setClipboard","GM_addStyle","GM_addElement","GM_addValueChangeListener","GM_removeValueChangeListener","GM_registerMenuCommand","GM_unregisterMenuCommand","GM_download","GM_getTab","GM_getTabs","GM_saveTab","GM_openInTab","GM_notification","GM_getResourceURL","GM_getResourceText","GM_xmlhttpRequest","GM_webRequest","GM_log","GM_info"];import{transformWithEsbuild as D}from"vite";function j(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function y({file:e,name:t,loader:r}){let{code:o}=await D(e,t,{loader:r,minify:!0});return o}function P(e){let t=[];for(let r of h)e.indexOf(r)!==-1&&t.push(r);return t}var C=class{styles=new Map;async add(t,r){let o=await y({file:t,name:r,loader:"css"});return this.styles.set(r,o.replace(`
|
|
3
|
+
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(t){let r=[];for(let o of t){let m=this.styles.get(o);!m||r.push([o,m])}this.styles.clear(),r.forEach(o=>this.styles.set(...o))}},_=new C;function Y(e){let t,r,o=null,m=z("info",{prefix:"[vite-userscript-plugin]",allowClearScreen:!0}),p=H((n,s)=>N(n,s,{public:t.build.outDir})),i=K;return new i({httpServer:p}).on("request",n=>{o=n.accept(null,n.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return $(e)},async configResolved(n){t=n,r=n.build.watch??!1,e.entry=f(n.root,e.entry),e.header.name=B(e.header.name),Array.from(["match","require","include","exclude","resource","connect"]).forEach(s=>{let l=e.header[s];Array.isArray(l)&&(e.header[s]=j(l))}),e.server={port:await q(),open:!0,...e.server}},async transform(n,s){let l=n;return v.test(s)&&(l=await _.add(n,s)),s.includes(e.entry)&&(l=n+"__STYLE__"),{code:l,map:null}},generateBundle(n,s){for(let[l,d]of Object.entries(s)){let c=Object.keys(d.modules).filter(g=>v.test(g));c.length>0&&_.merge(c)}},async writeBundle(n,s){let{open:l,port:d}=e.server,x=`${e.header.name}.proxy.user.js`;for(let[c]of Object.entries(s))if(R.test(c)){let g=t.root,M=t.build.outDir,L=`${e.header.name}.user.js`,b=f(g,M,c),F=f(g,M,x),V=f(g,M,L),G=f(U(E(import.meta.url)),`hot-reload-${e.header.name}.js`);try{let u=T(b,"utf8");if(r){let k=T(f(U(E(import.meta.url)),"hot-reload.js"),"utf8"),A=await y({file:k.replace("__WS__",`ws://localhost:${d}`),name:G,loader:"js"});w(G,A),w(F,S({...e.header,require:[...e.header.require,"file://"+G,"file://"+b]}))}u=u.replace("__STYLE__",`${_.inject()}`),u=await y({file:u,name:c,loader:"js"}),e.header.grant=j(r?h:[...P(u),...e.header.grant??[]]),w(b,u),w(V,`${S(e.header)}
|
|
4
4
|
|
|
5
|
-
${u}`)}catch(u){console.log(u)}}if(
|
|
5
|
+
${u}`)}catch(u){console.log(u)}}if(r&&!p.listening){let c=`http://localhost:${d}`;p.listen(d,()=>{m.clearScreen("info"),m.info(O.blue(`Running at: ${O.gray(c)}`))}),l&&await W(`${c}/${x}`)}else r||(p.close(),process.exit(0))},buildEnd(){r&&(m.clearScreen("info"),o&&o.sendUTF(JSON.stringify({message:"reload"})))}}}export{Y as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-userscript-plugin",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"dev": "tsup --watch",
|
|
65
65
|
"build": "tsup",
|
|
66
66
|
"test": "vitest",
|
|
67
|
-
"test:ui": "vitest --ui",
|
|
67
|
+
"test:ui": "vitest --ui --watch",
|
|
68
68
|
"examples:dev": "turbo run dev --filter='./examples/*'",
|
|
69
69
|
"examples:build": "turbo run build --filter='./examples/*'",
|
|
70
70
|
"format": "prettier --write --ignore-unknown **"
|