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 CHANGED
@@ -91,11 +91,6 @@ interface UserscriptPluginConfig {
91
91
  * Server config.
92
92
  */
93
93
  server?: ServerConfig;
94
- /**
95
- * Import all `@grant` in development mode.
96
- * @default true
97
- */
98
- autoGrants?: boolean;
99
94
  }
100
95
  ```
101
96
 
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var J=Object.create;var x=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var te=(e,t)=>{for(var r in t)x(e,r,{get:t[r],enumerable:!0})},O=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of X(t))!ee.call(e,o)&&o!==r&&x(e,o,{get:()=>t[o],enumerable:!(s=Q(t,o))||s.enumerable});return e};var M=(e,t,r)=>(r=e!=null?J(Z(e)):{},O(t||!e||!e.__esModule?x(r,"default",{value:e,enumerable:!0}):r,e)),re=e=>O(x({},"__esModule",{value:!0}),e);var ne={};te(ne,{default:()=>H});module.exports=re(ne);var F=M(require("get-port"),1),f=require("fs"),q=require("http"),d=require("path"),P=require("url"),D=M(require("open"),1),T=M(require("picocolors"),1),V=M(require("sanitize-filename"),1),W=M(require("serve-handler"),1),A=require("vite"),B=require("websocket");function $(e){let t=[],r=Object.keys(e),s=Math.max(...r.map(i=>i.length))+1,o=i=>" ".repeat(s-i.length),g=(i,a)=>{let n=typeof a=="boolean";n&&!a||(a=n?"":o(i)+a.toString(),t.push(`// @${i}${a}`))};for(let[i,a]of Object.entries(e))if(Array.isArray(a))a.forEach(n=>g(i,n));else{if(a===void 0)continue;g(i,a)}return["// ==UserScript==",...t,"// ==/UserScript=="].join(`
2
- `)}var E=new RegExp(/.(t|j)sx?/),R=new RegExp(/\.(s?css|sass)$/),b=["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 p(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function w({file:e,name:t,loader:r}){let{code:s}=await(0,L.transformWithEsbuild)(e,t,{loader:r,minify:!0});return s}function U(e){let t=[];for(let r of b)e.indexOf(r)!==-1&&t.push(r);return t}var C=class{styles=new Map;async add(t,r){let s=await w({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))}},S=new C;var k={};function H(e){let t,r,s=null,o=(0,A.createLogger)("info",{prefix:"[vite-userscript-plugin]",allowClearScreen:!0}),g=(0,q.createServer)((n,l)=>(0,W.default)(n,l,{public:t.build.outDir})),i=B.server;return new i({httpServer:g}).on("request",n=>{s=n.accept(null,n.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return{build:{lib:{entry:e.entry,name:e.header.name,formats:["iife"],fileName:()=>`${e.header.name}.js`},rollupOptions:{output:{extend:!0}}}}},async configResolved(n){t=n,r=n.build.watch??!1;let{name:l,match:m,require:y,include:_,exclude:u,resource:h,connect:G}=e.header;e.entry=(0,d.resolve)(n.root,e.entry),e.header.name=(0,V.default)(l),e.header.match=p(m),e.header.require=p(y),e.header.include=p(_),e.header.exclude=p(u),e.header.resource=p(h),e.header.connect=p(G),e.autoGrants=e.autoGrants??!0,e.server={port:await(0,F.default)(),open:!0,...e.server}},async transform(n,l){let m=n;return R.test(l)&&(m=await S.add(n,l)),l.includes(e.entry)&&(m=n+"__STYLE__"),{code:m,map:null}},generateBundle(n,l){for(let[m,y]of Object.entries(l)){let u=Object.keys(y.modules).filter(h=>R.test(h));u.length>0&&S.merge(u)}},async writeBundle(n,l){let{open:m,port:y}=e.server,_=`${e.header.name}.proxy.user.js`;for(let[u]of Object.entries(l))if(E.test(u)){let h=t.root,G=t.build.outDir,N=`${e.header.name}.user.js`,j=(0,d.resolve)(h,G,u),z=(0,d.resolve)(h,G,_),K=(0,d.resolve)(h,G,N),v=(0,d.resolve)((0,d.dirname)((0,P.fileURLToPath)(k.url)),`hot-reload-${e.header.name}.js`);try{let c=(0,f.readFileSync)(j,"utf8");if(e.header.grant=p(r?b:e.autoGrants??!0?U(c):[...e.header.grant??[],"GM_addStyle","GM_info"]),r){let Y=(0,f.readFileSync)((0,d.resolve)((0,d.dirname)((0,P.fileURLToPath)(k.url)),"hot-reload.js"),"utf8"),I=await w({file:Y.replace("__WS__",`ws://localhost:${y}`),name:v,loader:"js"});(0,f.writeFileSync)(v,I),(0,f.writeFileSync)(z,$({...e.header,require:[...e.header.require,"file://"+v,"file://"+j]}))}c=c.replace("__STYLE__",`${S.inject()}`),c=await w({file:c,name:u,loader:"js"}),(0,f.writeFileSync)(j,c),(0,f.writeFileSync)(K,`${$(e.header)}
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
- ${c}`)}catch(c){console.log(c)}}if(r&&!g.listening){let u=`http://localhost:${y}`;g.listen(y,()=>{o.clearScreen("info"),o.info(T.default.blue(`Running at: ${T.default.gray(u)}`))}),m&&await(0,D.default)(`${u}/${_}`)}else r||(g.close(),process.exit(0))},buildEnd(){r&&(o.clearScreen("info"),s&&s.sendUTF(JSON.stringify({message:"reload"})))}}}0&&(module.exports={});
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 V from"get-port";import{readFileSync as P,writeFileSync as x}from"fs";import{createServer as W}from"http";import{dirname as T,resolve as y}from"path";import{fileURLToPath as O}from"url";import A from"open";import E from"picocolors";import B from"sanitize-filename";import H from"serve-handler";import{createLogger as N}from"vite";import{server as z}from"websocket";function j(e){let n=[],t=Object.keys(e),s=Math.max(...t.map(o=>o.length))+1,d=o=>" ".repeat(s-o.length),p=(o,i)=>{let r=typeof i=="boolean";r&&!i||(i=r?"":d(o)+i.toString(),n.push(`// @${o}${i}`))};for(let[o,i]of Object.entries(e))if(Array.isArray(i))i.forEach(r=>p(o,r));else{if(i===void 0)continue;p(o,i)}return["// ==UserScript==",...n,"// ==/UserScript=="].join(`
2
- `)}var R=new RegExp(/.(t|j)sx?/),v=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 D}from"vite";function m(e){return[...new Set(Array.isArray(e)?e:e?[e]:[])]}async function G({file:e,name:n,loader:t}){let{code:s}=await D(e,n,{loader:t,minify:!0});return s}function C(e){let n=[];for(let t of M)e.indexOf(t)!==-1&&n.push(t);return n}var $=class{styles=new Map;async add(n,t){let s=await G({file:n,name:t,loader:"css"});return this.styles.set(t,s.replace(`
3
- `,"")),""}inject(){return this.styles.size?`GM_addStyle(\`${[...this.styles.values()].join("")}\`)`:void 0}merge(n){let t=[];for(let s of n){let d=this.styles.get(s);!d||t.push([s,d])}this.styles.clear(),t.forEach(s=>this.styles.set(...s))}},w=new $;function K(e){let n,t,s=null,d=N("info",{prefix:"[vite-userscript-plugin]",allowClearScreen:!0}),p=W((r,a)=>H(r,a,{public:n.build.outDir})),o=z;return new o({httpServer:p}).on("request",r=>{s=r.accept(null,r.origin)}),{name:"vite-userscript-plugin",apply:"build",config(){return{build:{lib:{entry:e.entry,name:e.header.name,formats:["iife"],fileName:()=>`${e.header.name}.js`},rollupOptions:{output:{extend:!0}}}}},async configResolved(r){n=r,t=r.build.watch??!1;let{name:a,match:c,require:f,include:h,exclude:l,resource:g,connect:_}=e.header;e.entry=y(r.root,e.entry),e.header.name=B(a),e.header.match=m(c),e.header.require=m(f),e.header.include=m(h),e.header.exclude=m(l),e.header.resource=m(g),e.header.connect=m(_),e.autoGrants=e.autoGrants??!0,e.server={port:await V(),open:!0,...e.server}},async transform(r,a){let c=r;return v.test(a)&&(c=await w.add(r,a)),a.includes(e.entry)&&(c=r+"__STYLE__"),{code:c,map:null}},generateBundle(r,a){for(let[c,f]of Object.entries(a)){let l=Object.keys(f.modules).filter(g=>v.test(g));l.length>0&&w.merge(l)}},async writeBundle(r,a){let{open:c,port:f}=e.server,h=`${e.header.name}.proxy.user.js`;for(let[l]of Object.entries(a))if(R.test(l)){let g=n.root,_=n.build.outDir,L=`${e.header.name}.user.js`,b=y(g,_,l),U=y(g,_,h),k=y(g,_,L),S=y(T(O(import.meta.url)),`hot-reload-${e.header.name}.js`);try{let u=P(b,"utf8");if(e.header.grant=m(t?M:e.autoGrants??!0?C(u):[...e.header.grant??[],"GM_addStyle","GM_info"]),t){let F=P(y(T(O(import.meta.url)),"hot-reload.js"),"utf8"),q=await G({file:F.replace("__WS__",`ws://localhost:${f}`),name:S,loader:"js"});x(S,q),x(U,j({...e.header,require:[...e.header.require,"file://"+S,"file://"+b]}))}u=u.replace("__STYLE__",`${w.inject()}`),u=await G({file:u,name:l,loader:"js"}),x(b,u),x(k,`${j(e.header)}
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(t&&!p.listening){let l=`http://localhost:${f}`;p.listen(f,()=>{d.clearScreen("info"),d.info(E.blue(`Running at: ${E.gray(l)}`))}),c&&await A(`${l}/${h}`)}else t||(p.close(),process.exit(0))},buildEnd(){t&&(d.clearScreen("info"),s&&s.sendUTF(JSON.stringify({message:"reload"})))}}}export{K as default};
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.0",
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 **"