vite-userscript-plugin 0.8.3 → 0.9.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 +1 -2
- package/dist/hot-reload.cjs +1 -1
- package/dist/hot-reload.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +4 -4
- package/package.json +24 -5
package/README.md
CHANGED
|
@@ -31,7 +31,6 @@ pnpm add vite-userscript-plugin -D
|
|
|
31
31
|
### `vite.config.ts`
|
|
32
32
|
|
|
33
33
|
```js
|
|
34
|
-
import { resolve } from 'path'
|
|
35
34
|
import { defineConfig } from 'vite'
|
|
36
35
|
import { UserscriptPlugin } from 'vite-userscript-plugin'
|
|
37
36
|
import { name, version } from './package.json'
|
|
@@ -39,7 +38,7 @@ import { name, version } from './package.json'
|
|
|
39
38
|
export default defineConfig({
|
|
40
39
|
plugins: [
|
|
41
40
|
UserscriptPlugin({
|
|
42
|
-
entry:
|
|
41
|
+
entry: 'src/index.ts',
|
|
43
42
|
metadata: {
|
|
44
43
|
name,
|
|
45
44
|
version,
|
package/dist/hot-reload.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";function n(){let e=new WebSocket("__WS__");e.addEventListener("open",()=>{let{script:o}=GM_info;console.group(`${o.name}@${o.version}`),console.log(GM_info),console.groupEnd()}),e.addEventListener("close",()=>{setTimeout(n,1e3)}),e.addEventListener("error",()=>{e.close()}),e.addEventListener("message",()=>{location.reload()})}n();
|
package/dist/hot-reload.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function n(){let e=new WebSocket("__WS__");e.addEventListener("open",()=>{let{script:o}=GM_info;console.group(`${o.name}@${o.version}`),console.log(GM_info),console.groupEnd()}),e.addEventListener("close",()=>{setTimeout(n,1e3)}),e.addEventListener("error",()=>{e.close()}),e.addEventListener("message",()=>{location.reload()})}n();
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`)}var $=new RegExp(/.(t|j)sx?/),
|
|
3
|
-
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(t){let r=[];for(let
|
|
1
|
+
"use strict";var A=Object.create;var G=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)G(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&&G(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?G(r,"default",{value:e,enumerable:!0}):r,e)),I=e=>R(G({},"__esModule",{value:!0}),e);var H={};Y(H,{UserscriptPlugin:()=>F,default:()=>J});module.exports=I(H);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)$/),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 T=require("vite");function p(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function M({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 x)e.indexOf(r)!==-1&&t.push(r);return t}var v=class{styles=new Map;async add(t,r){let s=await M({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))}},w=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:d,match:l,require:g,include:h,exclude:c,resource:y,connect:b}=e.metadata;e.entry=(0,m.resolve)(n.root,e.entry),e.metadata.name=(0,k.default)(d),e.metadata.match=p(l),e.metadata.require=p(g),e.metadata.include=p(h),e.metadata.exclude=p(c),e.metadata.resource=p(y),e.metadata.connect=p(b)},async transform(n,d){let l=n;return j.test(d)&&(l=await w.add(n,d)),d.includes(e.entry)&&(l=n+"__STYLE__"),{code:l,map:null}},generateBundle(n,d){for(let[l,g]of Object.entries(d)){let c=Object.keys(g.modules).filter(y=>j.test(y));c.length>0&&w.merge(c)}},async writeBundle(n,d){!s&&r&&(s=await(0,U.default)(),_.listen(s));for(let[l]of Object.entries(d))if($.test(l)){let g=t.root,h=t.build.outDir||"dist",c=(0,m.resolve)(g,h,l),y=(0,m.resolve)((0,m.dirname)((0,P.fileURLToPath)(E.url)),`hot-reload-${e.metadata.name}.js`),b=(0,m.resolve)(g,h,`${e.metadata.name}.proxy.user.js`),V=(0,m.resolve)(g,h,`${e.metadata.name}.user.js`);try{let u=(0,f.readFileSync)(c,"utf8");if(e.metadata.grant=p(r?x:e.autoGrants??!0?O(u):[...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 M({file:D.replace("__WS__",`ws://localhost:${s}`),name:y,loader:"js"});(0,f.writeFileSync)(y,W),(0,f.writeFileSync)(b,S({...e.metadata,require:[...e.metadata.require,"file://"+y,"file://"+c]}))}u=u.replace("__STYLE__",`${w.inject()}`),u=await M({file:u,name:l,loader:"js"}),(0,f.writeFileSync)(c,u),(0,f.writeFileSync)(V,`${S(e.metadata)}
|
|
4
4
|
|
|
5
|
-
${
|
|
5
|
+
${u}`)}catch(u){console.log(u)}}r||(_.close(),process.exit(0))},buildEnd(){o&&o.sendUTF(JSON.stringify({message:"reload"}))}}}var J=F;0&&(module.exports={UserscriptPlugin});
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
`)}var v=new RegExp(/.(t|j)sx?/),
|
|
3
|
-
`,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(
|
|
1
|
+
import L from"get-port";import{readFileSync as R,writeFileSync as x}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,d=o=>" ".repeat(n-o.length),g=(o,a)=>{let r=typeof a=="boolean";r&&!a||(a=r?"":d(o)+a.toString(),s.push(`// @${o}${a}`))};for(let[o,a]of Object.entries(e))if(Array.isArray(a))a.forEach(r=>g(o,r));else{if(a===void 0)continue;g(o,a)}return["// ==UserScript==",...s,"// ==/UserScript=="].join(`
|
|
2
|
+
`)}var v=new RegExp(/.(t|j)sx?/),S=new RegExp(/\.(s?css|sass)$/),M=["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 M)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 d=this.styles.get(n);!d||t.push([n,d])}this.styles.clear(),t.forEach(n=>this.styles.set(...n))}},G=new j;function V(e){let s,t,n=null,d=null,g=k(),o=F;return new o({httpServer:g}).on("request",r=>{d=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:y,exclude:u,resource:f,connect:w}=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(y),e.metadata.exclude=c(u),e.metadata.resource=c(f),e.metadata.connect=c(w)},async transform(r,l){let i=r;return S.test(l)&&(i=await G.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 u=Object.keys(p.modules).filter(f=>S.test(f));u.length>0&&G.merge(u)}},async writeBundle(r,l){!n&&t&&(n=await L(),g.listen(n));for(let[i]of Object.entries(l))if(v.test(i)){let p=s.root,y=s.build.outDir||"dist",u=_(p,y,i),f=_(C($(import.meta.url)),`hot-reload-${e.metadata.name}.js`),w=_(p,y,`${e.metadata.name}.proxy.user.js`),T=_(p,y,`${e.metadata.name}.user.js`);try{let m=R(u,"utf8");if(e.metadata.grant=c(t?M: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"});x(f,E),x(w,b({...e.metadata,require:[...e.metadata.require,"file://"+f,"file://"+u]}))}m=m.replace("__STYLE__",`${G.inject()}`),m=await h({file:m,name:i,loader:"js"}),x(u,m),x(T,`${b(e.metadata)}
|
|
4
4
|
|
|
5
|
-
${m}`)}catch(m){console.log(m)}}t||(
|
|
5
|
+
${m}`)}catch(m){console.log(m)}}t||(g.close(),process.exit(0))},buildEnd(){d&&d.sendUTF(JSON.stringify({message:"reload"}))}}}var ne=V;export{V as UserscriptPlugin,ne as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-userscript-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
"vite",
|
|
21
21
|
"vite-plugin",
|
|
22
22
|
"userscript",
|
|
23
|
-
"tampermonkey"
|
|
23
|
+
"tampermonkey",
|
|
24
|
+
"greasemonkey",
|
|
25
|
+
"violentmonkey"
|
|
24
26
|
],
|
|
25
27
|
"author": {
|
|
26
28
|
"name": "Vitalij Ryndin",
|
|
@@ -32,18 +34,35 @@
|
|
|
32
34
|
"url": "https://github.com/crashmax-dev/vite-userscript-plugin/issues"
|
|
33
35
|
},
|
|
34
36
|
"dependencies": {
|
|
37
|
+
"@types/tampermonkey": "^4.0.5",
|
|
35
38
|
"get-port": "^6.1.2",
|
|
36
39
|
"sanitize-filename": "^1.6.3",
|
|
37
40
|
"websocket": "^1.0.34"
|
|
38
41
|
},
|
|
39
42
|
"devDependencies": {
|
|
40
|
-
"@
|
|
43
|
+
"@crashmax/prettier-config": "^2.0.3",
|
|
44
|
+
"@crashmax/tsconfig": "^1.0.2",
|
|
45
|
+
"@types/node": "^18.7.13",
|
|
46
|
+
"@types/websocket": "^1.0.5",
|
|
47
|
+
"@vitest/ui": "^0.22.1",
|
|
48
|
+
"tsup": "^6.2.2",
|
|
49
|
+
"turbo": "^1.4.3",
|
|
50
|
+
"typescript": "^4.7.4",
|
|
51
|
+
"vite": "^3.0.9",
|
|
52
|
+
"vite-plugin-dts": "^1.4.1",
|
|
53
|
+
"vitest": "^0.22.1"
|
|
41
54
|
},
|
|
42
55
|
"peerDependencies": {
|
|
43
|
-
"@types/tampermonkey": ">=4.0.0"
|
|
56
|
+
"@types/tampermonkey": ">=4.0.0",
|
|
57
|
+
"vite": ">=2.9.0"
|
|
44
58
|
},
|
|
45
59
|
"scripts": {
|
|
46
60
|
"dev": "tsup --watch",
|
|
47
|
-
"build": "tsup"
|
|
61
|
+
"build": "tsup",
|
|
62
|
+
"test": "vitest",
|
|
63
|
+
"test:ui": "vitest --ui",
|
|
64
|
+
"examples:dev": "turbo run dev --filter='./examples/*'",
|
|
65
|
+
"examples:build": "turbo run build --filter='./examples/*'",
|
|
66
|
+
"format": "prettier --write --ignore-unknown **"
|
|
48
67
|
}
|
|
49
68
|
}
|