vite-userscript-plugin 0.9.0 → 1.0.0
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 +3 -3
- package/dist/hot-reload.cjs +1 -1
- package/dist/hot-reload.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/package.json +24 -5
package/README.md
CHANGED
|
@@ -32,12 +32,12 @@ pnpm add vite-userscript-plugin -D
|
|
|
32
32
|
|
|
33
33
|
```js
|
|
34
34
|
import { defineConfig } from 'vite'
|
|
35
|
-
import
|
|
35
|
+
import Userscript from 'vite-userscript-plugin'
|
|
36
36
|
import { name, version } from './package.json'
|
|
37
37
|
|
|
38
38
|
export default defineConfig({
|
|
39
39
|
plugins: [
|
|
40
|
-
|
|
40
|
+
Userscript({
|
|
41
41
|
entry: 'src/index.ts',
|
|
42
42
|
metadata: {
|
|
43
43
|
name,
|
|
@@ -88,4 +88,4 @@ export interface UserscriptPluginConfig {
|
|
|
88
88
|
|
|
89
89
|
## Example
|
|
90
90
|
|
|
91
|
-
See the [
|
|
91
|
+
See the [examples](https://github.com/crashmax-dev/vite-userscript-plugin/tree/master/examples) folder.
|
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 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)}
|
|
4
4
|
|
|
5
|
-
${
|
|
5
|
+
${d}`)}catch(d){console.log(d)}}r||(_.close(),process.exit(0))},buildEnd(){o&&o.sendUTF(JSON.stringify({message:"reload"}))}}}0&&(module.exports={});
|
package/dist/index.d.ts
CHANGED
|
@@ -205,4 +205,4 @@ interface UserscriptPluginConfig {
|
|
|
205
205
|
|
|
206
206
|
declare function UserscriptPlugin(config: UserscriptPluginConfig): PluginOption;
|
|
207
207
|
|
|
208
|
-
export {
|
|
208
|
+
export { UserscriptPluginConfig, UserscriptPlugin as default };
|
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 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)}
|
|
4
4
|
|
|
5
|
-
${m}`)}catch(m){console.log(m)}}t||(
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-userscript-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
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
|
}
|