vite-userscript-plugin 1.0.0 → 1.1.2

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 CHANGED
@@ -39,7 +39,7 @@ export default defineConfig({
39
39
  plugins: [
40
40
  Userscript({
41
41
  entry: 'src/index.ts',
42
- metadata: {
42
+ header: {
43
43
  name,
44
44
  version,
45
45
  match: [
@@ -67,22 +67,30 @@ export default defineConfig({
67
67
  ## Plugin Configuration
68
68
 
69
69
  ```ts
70
- export interface UserscriptPluginConfig {
71
- /**
72
- * Path of userscript entry.
73
- */
74
- entry: string
75
-
76
- /**
77
- * Userscript header config.
78
- */
79
- metadata: MetadataConfig
80
-
81
- /**
82
- * Import all `@grant` in development mode.
83
- * @default true
84
- */
85
- autoGrants?: boolean
70
+ interface ServerConfig {
71
+ /**
72
+ * {@link https://github.com/sindresorhus/get-port}
73
+ */
74
+ port?: number;
75
+ /**
76
+ * @default true
77
+ */
78
+ open?: boolean;
79
+ }
80
+
81
+ interface UserscriptPluginConfig {
82
+ /**
83
+ * Path of userscript entry.
84
+ */
85
+ entry: string;
86
+ /**
87
+ * Userscript header config.
88
+ */
89
+ header: HeaderConfig;
90
+ /**
91
+ * Server config.
92
+ */
93
+ server?: ServerConfig;
86
94
  }
87
95
  ```
88
96
 
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var A=Object.create;var M=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var Y=(e,t)=>{for(var r in t)M(e,r,{get:t[r],enumerable:!0})},R=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of N(t))!K.call(e,o)&&o!==r&&M(e,o,{get:()=>t[o],enumerable:!(s=B(t,o))||s.enumerable});return e};var C=(e,t,r)=>(r=e!=null?A(z(e)):{},R(t||!e||!e.__esModule?M(r,"default",{value:e,enumerable:!0}):r,e)),I=e=>R(M({},"__esModule",{value:!0}),e);var J={};Y(J,{default:()=>F});module.exports=I(J);var U=C(require("get-port"),1),f=require("fs"),L=require("http"),m=require("path"),P=require("url"),k=C(require("sanitize-filename"),1),q=require("websocket");function S(e){let t=[],r=Object.keys(e),s=Math.max(...r.map(a=>a.length))+1,o=a=>" ".repeat(s-a.length),_=(a,i)=>{let n=typeof i=="boolean";n&&!i||(i=n?"":o(a)+i.toString(),t.push(`// @${a}${i}`))};for(let[a,i]of Object.entries(e))if(Array.isArray(i))i.forEach(n=>_(a,n));else{if(i===void 0)continue;_(a,i)}return["// ==UserScript==",...t,"// ==/UserScript=="].join(`
2
- `)}var $=new RegExp(/.(t|j)sx?/),j=new RegExp(/\.(s?css|sass)$/),w=["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 T=require("vite");function p(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function G({file:e,name:t,loader:r}){let{code:s}=await(0,T.transformWithEsbuild)(e,t,{loader:r,minify:!0});return s}function O(e){let t=[];for(let r of w)e.indexOf(r)!==-1&&t.push(r);return t}var v=class{styles=new Map;async add(t,r){let s=await G({file:t,name:r,loader:"css"});return this.styles.set(r,s.replace(`
3
- `,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(t){let r=[];for(let s of t){let o=this.styles.get(s);!o||r.push([s,o])}this.styles.clear(),r.forEach(s=>this.styles.set(...s))}},x=new v;var E={};function F(e){let t,r,s=null,o=null,_=(0,L.createServer)(),a=q.server;return new a({httpServer:_}).on("request",n=>{o=n.accept(null,n.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return{build:{lib:{entry:e.entry,name:e.metadata.name,formats:["iife"],fileName:()=>`${e.metadata.name}.js`},rollupOptions:{output:{extend:!0}}}}},configResolved(n){t=n,r=n.build.watch??!1;let{name:u,match:l,require:y,include:h,exclude:c,resource:g,connect:b}=e.metadata;e.entry=(0,m.resolve)(n.root,e.entry),e.metadata.name=(0,k.default)(u),e.metadata.match=p(l),e.metadata.require=p(y),e.metadata.include=p(h),e.metadata.exclude=p(c),e.metadata.resource=p(g),e.metadata.connect=p(b),e.autoGrants=e.autoGrants??!0},async transform(n,u){let l=n;return j.test(u)&&(l=await x.add(n,u)),u.includes(e.entry)&&(l=n+"__STYLE__"),{code:l,map:null}},generateBundle(n,u){for(let[l,y]of Object.entries(u)){let c=Object.keys(y.modules).filter(g=>j.test(g));c.length>0&&x.merge(c)}},async writeBundle(n,u){!s&&r&&(s=await(0,U.default)(),_.listen(s));for(let[l]of Object.entries(u))if($.test(l)){let y=t.root,h=t.build.outDir||"dist",c=(0,m.resolve)(y,h,l),g=(0,m.resolve)((0,m.dirname)((0,P.fileURLToPath)(E.url)),`hot-reload-${e.metadata.name}.js`),b=(0,m.resolve)(y,h,`${e.metadata.name}.proxy.user.js`),V=(0,m.resolve)(y,h,`${e.metadata.name}.user.js`);try{let d=(0,f.readFileSync)(c,"utf8");if(e.metadata.grant=p(r?w:e.autoGrants??!0?O(d):[...e.metadata.grant??[],"GM_addStyle","GM_info"]),r){let D=(0,f.readFileSync)((0,m.resolve)((0,m.dirname)((0,P.fileURLToPath)(E.url)),"hot-reload.js"),"utf8"),W=await G({file:D.replace("__WS__",`ws://localhost:${s}`),name:g,loader:"js"});(0,f.writeFileSync)(g,W),(0,f.writeFileSync)(b,S({...e.metadata,require:[...e.metadata.require,"file://"+g,"file://"+c]}))}d=d.replace("__STYLE__",`${x.inject()}`),d=await G({file:d,name:l,loader:"js"}),(0,f.writeFileSync)(c,d),(0,f.writeFileSync)(V,`${S(e.metadata)}
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"),D=require("http"),c=require("path"),P=require("url"),q=h(require("open"),1),T=h(require("picocolors"),1),A=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,D.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,A.default)(e.header.name),Array.from(["match","require","include","exclude","resource","connect"]).forEach(i=>{let p=e.header[i];e.header[i]=$(p)}),e.server={port:await(0,k.default)(),open:!0,...e.server}},async transform(n,i){let p=n;return C.test(i)&&(p=await M.add(n,i)),i.includes(e.entry)&&(p=n+"__STYLE__"),{code:p,map:null}},generateBundle(n,i){for(let[p,g]of Object.entries(i)){let u=Object.keys(g.modules).filter(y=>C.test(y));u.length>0&&M.merge(u)}},async writeBundle(n,i){let{open:p,port:g}=e.server,b=`${e.header.name}.proxy.user.js`;for(let[u]of Object.entries(i))if(O.test(u)){let y=t.root,G=t.build.outDir,z=`${e.header.name}.user.js`,S=(0,c.resolve)(y,G,u),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 m=(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]}))}m=m.replace("__STYLE__",`${M.inject()}`),m=await _({file:m,name:u,loader:"js"}),e.header.grant=$(r?x:[...F(m),...e.header.grant??[]]),(0,f.writeFileSync)(S,m),(0,f.writeFileSync)(Y,`${j(e.header)}
4
4
 
5
- ${d}`)}catch(d){console.log(d)}}r||(_.close(),process.exit(0))},buildEnd(){o&&o.sendUTF(JSON.stringify({message:"reload"}))}}}0&&(module.exports={});
5
+ ${m}`)}catch(m){console.log(m)}}if(r&&!d.listening){let u=`http://localhost:${g}`;d.listen(g,()=>{s.clearScreen("info"),s.info(T.default.blue(`Running at: ${T.default.gray(u)}`))}),p&&await(0,q.default)(`${u}/${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
@@ -4,7 +4,7 @@ declare const grants: readonly ["unsafeWindow", "window.onurlchange", "window.fo
4
4
 
5
5
  declare type RunAt = 'document-start' | 'document-body' | 'document-end' | 'document-idle' | 'context-menu';
6
6
  declare type Grants = typeof grants[number];
7
- declare type MetadataConfig = {
7
+ declare type HeaderConfig = {
8
8
  [property: string]: string | boolean | number | string[] | undefined;
9
9
  /**
10
10
  * The name of the script.
@@ -187,6 +187,16 @@ declare type MetadataConfig = {
187
187
  */
188
188
  'run-at'?: RunAt;
189
189
  };
190
+ interface ServerConfig {
191
+ /**
192
+ * {@link https://github.com/sindresorhus/get-port}
193
+ */
194
+ port?: number;
195
+ /**
196
+ * @default true
197
+ */
198
+ open?: boolean;
199
+ }
190
200
  interface UserscriptPluginConfig {
191
201
  /**
192
202
  * Path of userscript entry.
@@ -195,12 +205,11 @@ interface UserscriptPluginConfig {
195
205
  /**
196
206
  * Userscript header config.
197
207
  */
198
- metadata: MetadataConfig;
208
+ header: HeaderConfig;
199
209
  /**
200
- * Import all `@grant` in development mode.
201
- * @default true
210
+ * Server config.
202
211
  */
203
- autoGrants?: boolean;
212
+ server?: ServerConfig;
204
213
  }
205
214
 
206
215
  declare function UserscriptPlugin(config: UserscriptPluginConfig): PluginOption;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import L from"get-port";import{readFileSync as R,writeFileSync as w}from"fs";import{createServer as k}from"http";import{dirname as C,resolve as _}from"path";import{fileURLToPath as $}from"url";import q from"sanitize-filename";import{server as F}from"websocket";function b(e){let s=[],t=Object.keys(e),n=Math.max(...t.map(o=>o.length))+1,u=o=>" ".repeat(n-o.length),y=(o,a)=>{let r=typeof a=="boolean";r&&!a||(a=r?"":u(o)+a.toString(),s.push(`// @${o}${a}`))};for(let[o,a]of Object.entries(e))if(Array.isArray(a))a.forEach(r=>y(o,r));else{if(a===void 0)continue;y(o,a)}return["// ==UserScript==",...s,"// ==/UserScript=="].join(`
2
- `)}var v=new RegExp(/.(t|j)sx?/),S=new RegExp(/\.(s?css|sass)$/),G=["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 U}from"vite";function c(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function h({file:e,name:s,loader:t}){let{code:n}=await U(e,s,{loader:t,minify:!0});return n}function P(e){let s=[];for(let t of G)e.indexOf(t)!==-1&&s.push(t);return s}var j=class{styles=new Map;async add(s,t){let n=await h({file:s,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(s){let t=[];for(let n of s){let u=this.styles.get(n);!u||t.push([n,u])}this.styles.clear(),t.forEach(n=>this.styles.set(...n))}},M=new j;function V(e){let s,t,n=null,u=null,y=k(),o=F;return new o({httpServer:y}).on("request",r=>{u=r.accept(null,r.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return{build:{lib:{entry:e.entry,name:e.metadata.name,formats:["iife"],fileName:()=>`${e.metadata.name}.js`},rollupOptions:{output:{extend:!0}}}}},configResolved(r){s=r,t=r.build.watch??!1;let{name:l,match:i,require:p,include:g,exclude:d,resource:f,connect:x}=e.metadata;e.entry=_(r.root,e.entry),e.metadata.name=q(l),e.metadata.match=c(i),e.metadata.require=c(p),e.metadata.include=c(g),e.metadata.exclude=c(d),e.metadata.resource=c(f),e.metadata.connect=c(x),e.autoGrants=e.autoGrants??!0},async transform(r,l){let i=r;return S.test(l)&&(i=await M.add(r,l)),l.includes(e.entry)&&(i=r+"__STYLE__"),{code:i,map:null}},generateBundle(r,l){for(let[i,p]of Object.entries(l)){let d=Object.keys(p.modules).filter(f=>S.test(f));d.length>0&&M.merge(d)}},async writeBundle(r,l){!n&&t&&(n=await L(),y.listen(n));for(let[i]of Object.entries(l))if(v.test(i)){let p=s.root,g=s.build.outDir||"dist",d=_(p,g,i),f=_(C($(import.meta.url)),`hot-reload-${e.metadata.name}.js`),x=_(p,g,`${e.metadata.name}.proxy.user.js`),T=_(p,g,`${e.metadata.name}.user.js`);try{let m=R(d,"utf8");if(e.metadata.grant=c(t?G:e.autoGrants??!0?P(m):[...e.metadata.grant??[],"GM_addStyle","GM_info"]),t){let O=R(_(C($(import.meta.url)),"hot-reload.js"),"utf8"),E=await h({file:O.replace("__WS__",`ws://localhost:${n}`),name:f,loader:"js"});w(f,E),w(x,b({...e.metadata,require:[...e.metadata.require,"file://"+f,"file://"+d]}))}m=m.replace("__STYLE__",`${M.inject()}`),m=await h({file:m,name:i,loader:"js"}),w(d,m),w(T,`${b(e.metadata)}
1
+ import A 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,u=i=>" ".repeat(o-i.length),p=(i,a)=>{let n=typeof a=="boolean";n&&!a||(a=n?"":u(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 q}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 q(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 u=this.styles.get(o);!u||r.push([o,u])}this.styles.clear(),r.forEach(o=>this.styles.set(...o))}},_=new C;function Y(e){let t,r,o=null,u=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 m=e.header[s];e.header[s]=j(m)}),e.server={port:await A(),open:!0,...e.server}},async transform(n,s){let m=n;return v.test(s)&&(m=await _.add(n,s)),s.includes(e.entry)&&(m=n+"__STYLE__"),{code:m,map:null}},generateBundle(n,s){for(let[m,d]of Object.entries(s)){let l=Object.keys(d.modules).filter(g=>v.test(g));l.length>0&&_.merge(l)}},async writeBundle(n,s){let{open:m,port:d}=e.server,x=`${e.header.name}.proxy.user.js`;for(let[l]of Object.entries(s))if(R.test(l)){let g=t.root,M=t.build.outDir,L=`${e.header.name}.user.js`,b=f(g,M,l),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 c=T(b,"utf8");if(r){let k=T(f(U(E(import.meta.url)),"hot-reload.js"),"utf8"),D=await y({file:k.replace("__WS__",`ws://localhost:${d}`),name:G,loader:"js"});w(G,D),w(F,S({...e.header,require:[...e.header.require,"file://"+G,"file://"+b]}))}c=c.replace("__STYLE__",`${_.inject()}`),c=await y({file:c,name:l,loader:"js"}),e.header.grant=j(r?h:[...P(c),...e.header.grant??[]]),w(b,c),w(V,`${S(e.header)}
4
4
 
5
- ${m}`)}catch(m){console.log(m)}}t||(y.close(),process.exit(0))},buildEnd(){u&&u.sendUTF(JSON.stringify({message:"reload"}))}}}export{V as default};
5
+ ${c}`)}catch(c){console.log(c)}}if(r&&!p.listening){let l=`http://localhost:${d}`;p.listen(d,()=>{u.clearScreen("info"),u.info(O.blue(`Running at: ${O.gray(l)}`))}),m&&await W(`${l}/${x}`)}else r||(p.close(),process.exit(0))},buildEnd(){r&&(u.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.0.0",
3
+ "version": "1.1.2",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.cjs",
@@ -36,18 +36,22 @@
36
36
  "dependencies": {
37
37
  "@types/tampermonkey": "^4.0.5",
38
38
  "get-port": "^6.1.2",
39
+ "open": "^8.4.0",
40
+ "picocolors": "^1.0.0",
39
41
  "sanitize-filename": "^1.6.3",
42
+ "serve-handler": "^6.1.3",
40
43
  "websocket": "^1.0.34"
41
44
  },
42
45
  "devDependencies": {
43
46
  "@crashmax/prettier-config": "^2.0.3",
44
47
  "@crashmax/tsconfig": "^1.0.2",
45
48
  "@types/node": "^18.7.13",
49
+ "@types/serve-handler": "^6.1.1",
46
50
  "@types/websocket": "^1.0.5",
47
51
  "@vitest/ui": "^0.22.1",
48
- "tsup": "^6.2.2",
52
+ "tsup": "^6.2.3",
49
53
  "turbo": "^1.4.3",
50
- "typescript": "^4.7.4",
54
+ "typescript": "^4.8.2",
51
55
  "vite": "^3.0.9",
52
56
  "vite-plugin-dts": "^1.4.1",
53
57
  "vitest": "^0.22.1"
@@ -60,7 +64,7 @@
60
64
  "dev": "tsup --watch",
61
65
  "build": "tsup",
62
66
  "test": "vitest",
63
- "test:ui": "vitest --ui",
67
+ "test:ui": "vitest --ui --watch",
64
68
  "examples:dev": "turbo run dev --filter='./examples/*'",
65
69
  "examples:build": "turbo run build --filter='./examples/*'",
66
70
  "format": "prettier --write --ignore-unknown **"