From 2423274a2013bcbbe243da1d73377728611cbe74 Mon Sep 17 00:00:00 2001 From: Ben Pevsner Date: Tue, 7 Jan 2025 20:41:19 +0700 Subject: [PATCH 1/4] feat: allow for barebones builds - only copy static dir if existing - only copy existing source files - add barebones example - adjust preact meta to distinguish from barebones --- deno.json | 11 +++-- examples/barebones/.gitignore | 8 ++++ examples/barebones/README.md | 6 +++ examples/barebones/deno.json | 9 ++++ examples/barebones/source/content_script.ts | 1 + examples/barebones/source/manifest.json | 23 ++++++++++ examples/preact/README.md | 2 + examples/preact/deno.json | 14 +++--- examples/preact/source/content_script.ts | 2 +- examples/preact/source/manifest.json | 2 +- examples/preact/static/icons/128.png | Bin 5861 -> 16186 bytes examples/preact/static/icons/256.png | Bin 15176 -> 36725 bytes examples/preact/static/icons/32.png | Bin 1476 -> 2871 bytes examples/preact/static/icons/48.png | Bin 2295 -> 4910 bytes examples/preact/static/icons/64.png | Bin 2954 -> 6420 bytes examples/preact/static/options.html | 6 +-- examples/preact/static/popup.html | 6 +-- examples/preact/static/styles/options.css | 2 +- examples/preact/static/styles/popup.css | 1 + source/main.ts | 47 ++++++++++++++------ 20 files changed, 107 insertions(+), 33 deletions(-) create mode 100644 examples/barebones/.gitignore create mode 100644 examples/barebones/README.md create mode 100644 examples/barebones/deno.json create mode 100644 examples/barebones/source/content_script.ts create mode 100644 examples/barebones/source/manifest.json diff --git a/deno.json b/deno.json index 07271cf..7e4f591 100644 --- a/deno.json +++ b/deno.json @@ -26,11 +26,14 @@ "exclude": ["dist", "examples"] }, "tasks": { - "build": "(cd examples/preact && deno run -A ../../source/main.ts build)", + "build": "deno task build:preact && deno task build:barebones", + "build:barebones": "(cd examples/barebones && deno run -A ../../source/main.ts internal-dev-only-build)", + "build:preact": "(cd examples/preact && deno run -A ../../source/main.ts internal-dev-only-build)", "check": "deno check source/main.ts && deno check source/mod.ts", - "dev": "(cd examples/preact && deno run -A ../../source/main.ts build -w)", - "test": "deno task test:source && deno task build && deno task test:examples && deno publish --dry-run --allow-dirty", - "test:examples": "(cd examples/preact && deno task test)", + "dev:barebones": "(cd examples/barebones && deno run -A ../../source/main.ts internal-dev-only-build -w)", + "dev:preact": "(cd examples/preact && deno run -A ../../source/main.ts internal-dev-only-build -w)", + "test": "deno task test:source && deno task build && deno task test:preact && deno publish --dry-run --allow-dirty", + "test:preact": "(cd examples/preact && deno task test)", "test:source": "deno fmt && deno lint && deno task check && deno test source" }, "test": { diff --git a/examples/barebones/.gitignore b/examples/barebones/.gitignore new file mode 100644 index 0000000..f016002 --- /dev/null +++ b/examples/barebones/.gitignore @@ -0,0 +1,8 @@ +# build files +dist + +# misc +._* +.DS_Store +.env +.Trashes diff --git a/examples/barebones/README.md b/examples/barebones/README.md new file mode 100644 index 0000000..67704e6 --- /dev/null +++ b/examples/barebones/README.md @@ -0,0 +1,6 @@ +# Barebones + +The bare minimum needed for a chrome extension + +Note: Since is also used for internal dev. In your own app, the +`internal-dev-only` tasks can be removed. diff --git a/examples/barebones/deno.json b/examples/barebones/deno.json new file mode 100644 index 0000000..570662d --- /dev/null +++ b/examples/barebones/deno.json @@ -0,0 +1,9 @@ +{ + "tasks": { + "dev": "bext --watch", + "build": "bext", + "internal-dev-only-install": "deno install --name=bext-internal -Agf ../../source/main.ts", + "internal-dev-only-dev": "bext-internal --watch", + "internal-dev-only-build": "bext-internal" + } +} diff --git a/examples/barebones/source/content_script.ts b/examples/barebones/source/content_script.ts new file mode 100644 index 0000000..7879ec9 --- /dev/null +++ b/examples/barebones/source/content_script.ts @@ -0,0 +1 @@ +globalThis.alert('Running Barebones Browser Extension') diff --git a/examples/barebones/source/manifest.json b/examples/barebones/source/manifest.json new file mode 100644 index 0000000..9de4a6b --- /dev/null +++ b/examples/barebones/source/manifest.json @@ -0,0 +1,23 @@ +{ + "manifest_version": 3, + "name": "Barebones Browser Extension", + "description": "A browser Extension", + "version": "0.0.1", + "content_scripts": [ + { + "matches": [ + "*://*/*" + ], + "js": [ + "content_script.js" + ], + "run_at": "document_end" + } + ], + "permissions": [], + "applications": { + "gecko": { + "id": "browser-extension@my-extension-id-email.com" + } + } +} diff --git a/examples/preact/README.md b/examples/preact/README.md index b77ff71..5434eab 100644 --- a/examples/preact/README.md +++ b/examples/preact/README.md @@ -2,6 +2,8 @@ A Preact-Rendered Chrome/Firefox extension built with Bext. +Note: Since is also used for internal dev. In your own app, the `browser` dependency should point to `jsr:@bpev/bext`. Also, the `internal-dev-only` tasks can be removed. + Uses: - `background.ts` logs url to extension console for each new tab update diff --git a/examples/preact/deno.json b/examples/preact/deno.json index 52e6002..c21b94e 100644 --- a/examples/preact/deno.json +++ b/examples/preact/deno.json @@ -29,11 +29,10 @@ }, "tasks": { - "install": "deno install --name=bext-internal -Agf ../../source/main.ts", - "dev": "bext-internal --watch", - "build": "bext-internal", - "build:chrome": "bext-internal chrome", - "build:firefox": "bext-internal firefox", + "dev": "bext --watch", + "build": "bext", + "build:chrome": "bext chrome", + "build:firefox": "bext firefox", "test": "deno task check && deno task test:unit && deno lint", "test:unit": "deno test -A source", "test:unit:update": "deno test -A -- --update source", @@ -41,6 +40,9 @@ "check:background": "deno check source/background.ts", "check:content_script": "deno check source/content_script.ts", "check:options": "deno check source/options.tsx", - "check:popup": "deno check source/popup.tsx" + "check:popup": "deno check source/popup.tsx", + "bext-internal-dev-only-install": "deno install --name=bext-internal -Agf ../../source/main.ts", + "bext-internal-dev-only-dev": "bext-internal --watch", + "bext-internal-dev-only-build": "bext-internal" } } diff --git a/examples/preact/source/content_script.ts b/examples/preact/source/content_script.ts index 9a547e0..54f8e9c 100644 --- a/examples/preact/source/content_script.ts +++ b/examples/preact/source/content_script.ts @@ -5,7 +5,7 @@ /// -globalThis.alert('Running Sample Browser Extension') +globalThis.alert('Running Preact Browser Extension') Array.prototype.forEach.call( document.getElementsByTagName('*'), diff --git a/examples/preact/source/manifest.json b/examples/preact/source/manifest.json index 1485688..008dcc5 100644 --- a/examples/preact/source/manifest.json +++ b/examples/preact/source/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 3, - "name": "Browser Extension", + "name": "Preact Browser Extension", "description": "A browser Extension", "version": "0.0.1", "background": { diff --git a/examples/preact/static/icons/128.png b/examples/preact/static/icons/128.png index fff0aaafe3b88dcf936c61303962aef2fb62e706..82b1093c587f74014336429e42d665cae67a2fc3 100644 GIT binary patch literal 16186 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 LPNZ7MAn5-AGk_k7 literal 5861 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 diff --git a/examples/preact/static/icons/256.png b/examples/preact/static/icons/256.png index 083c5b09ac3f61dabad123fb155e35960229b353..d1b928a31d0e81bdefed5c2c03333b094cca0c18 100644 GIT binary patch literal 36725 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 diff --git a/examples/preact/static/icons/32.png b/examples/preact/static/icons/32.png index ab3b7417485e90d42e9669e972f2c74b6f61cdd2..eff2e8826738558793bf145ee3c69a1a2a6e96f6 100644 GIT binary patch literal 2871 zcmY*b2{@E%8~zw(Le@bHG1g?8#URVrL-r73NrY;cVKO62_Mz-cB3mc>k|-(>Dx_(w zDV<7|Nsh4=M}(Arbox90|9;o=J@@;(_j5n*^M2R$U2lqmodqv9j2i#|-eZ<#jw}z~ zvwdLJn;aSWh2_}Djus|B4w3h|whwHK+(VyZ24<{0W$hzTJ z*`Ewu7TyaZWZ^$4lt8R3&ej2L8XV#e*HTBSBV`S^;c&Qqh~F7qM>F$Z>8u%6_8f&m z(nTP`!ot+UG}MDb&LU7cIywj>8i7Wuu^4LPh#-njxLOcd?jMo=>X`YHeM9gh3O+ap zzNhPRIyjVqm6hEq^n3iXPYV9bzmzuICoh}c^}pwy9w-`cEH{k^EJeF)y4Re4X} z0Hyzv`G2urb@UN?#s6nB|8)8@%4*esTOaZJ*bKPEy*@x#AD?;5%-9*n)!@qO;QU6! zAZ*GYCP`!__Jpt?CgE@bIJP#e^iS!M%*aM1C%a@-RoPY8KRtSI@#2t2J}~{%rX%=M$J!?>Q;&I_{29w+ zkD@)(acwut&a9kdwucRAZj4RVS^~J#gK_ESi1Xvyy{pP9q2>62Izk;|CffFcl?z~afEU#u}zLXu9|u`3@_uwtjQ`Aei)B(u?wlH@=VWyh(Fee z<|j~LaebpoaHz&hwk)X@A_9eJL`lZ5SDU0sURAx>dc98a3e-sf?adyBSyZrizCXkL zL4cUepGiN6Gv^*RB)@t|eUzvl6zwCf$6Mo5c)dV1pSgHjd;$G1Z1 zcVM~JhWMa-I_AprbkhVq5XMUDz%i3?gvqV_0^W7Snuq;Bi2X{@Plb8a=s;j2S zOU${kn+w7#+sRn$&)V?Pn=<(E!cLBZ-BQL~d&Eg4uKm(g;4SexR=E}B@WHCd{RqXd zg*xA4iv}gvx0o4Cca()y%V&%yZnj}JJ0A*z&>C&Z8o4?StE~%t)zN=ldoNmo^MH)W zD^@k~K?}H@2iGTdW_z_RxK44h!A*=(_wgxM0?M9TYFk40;y6a=UdZz;()_Sb^j45$ z#AVo07J__!>qd`^Ivo+_Nmwz*RE|~U=DepXY}ySBqr9-i6M*)*TFADPn#YgDl!U5= zVrwnEwT<)4fcxABJ+H3m{T+aE%?fGbqu_Wbyn zZYSA_-(8xZ>AM^#^|~quK8zQ1I(`;4?;^2(2>JHmlFWlfgCxbyUYORvAXY6}646)x z*Jt&{(}E0eQB#0uI}W5Vi;vhI)86V1D`&jDaZ{MTar5NqWUS~Qn$1`i+eQm@`{ z#n#-Xxwl5GUY^5sP+Q+oVW}AfadHL+$_W(VT2twLlPaFgM@VflJ3_U*TK@qoNP1M> znqzOxWpU}7P0}PI2zW3Q)}4PB3daX=3}YiMAKZKgI=Y~3A-8oiV>OC!D`(l0V(peJ zZ_40$b)Tg0*sd#aa**k$mCWV{f)G>nqFSb9ibwQQZ|jI~x%Gca0LwI6Rj-U3@A0OM znQUy))R2K?=Ei+Hc+GmHbMd_2pb;)9+J1KGzM`Y~=h3j|0^PC$hqk4LV=H1w{78{M z2%9@=xAO>tv-A$7iKi}vNRaEM!1IEtv+MpY;k%!6kg;xoU62s^$!^J!7tlwJtZ1UysW0(B6sCPKNb`irzK)4Xnjz{FA zn?(QG(4SB8)2QZQ}^k%+LKwXY^dAd|e-(b97kO5pCJ0!FYDd% z$naf+2IK1u^R9*xyQXYiOfd1}@s)hLNd~3z~IJo1oj%4BM3qo(nE)ya#E|l>nu$=)IP7iofZ#WCT}+Ut*EqPkFDRi#%aS(BuNwQ zLj(0)EKyi^d4x}jnV`Tp|!MdW9rB<`IarBy{558Nsf(0^GhlqL5$m$tDxe{lM}bW%^H{Okm)1X(^KI z9(XNhrfda0d;0joSMH;A{m?Jwrjgd?DnS9#_ks|I&v`nLT1AS|R6`ineIXk8e;L2h zTqsoep4S{TDz^LCC7&NTos>o&Y<~9r4KI-%QM`IuNY=Wj_K!3=wxgiH3?+h4%w0K+ zM*Vn=P>c@cvwAf)cTqEUbvtxEVWi-GSpuS~{+-YfT1qvlh#cRs@Oq$kw;|YFIvP=< zHhA5`(9qq#$_|q>$n|#-q6Vb)%{-^s<h(*G)Y83R9HvtmwQZ=WgN#3 z_lpN_^Fn|eIEO$Xv5Z3y0{{1?5xF(bxIRKHf}kaGJi}89aIZN&Bbyi1Qs@Q zVsR0VauJzq&`dZ-z#+LPEG06({eF*ok9gh}=dC~5`fi`?efRus&-Hy?)&IInc@h~! z4RM0_l=y;ZA`TMCgcI>Vi^YQO?rxE|x3^b3Tdh{{e(KaIR8&-mLdf?zv4{iRt7^G7)z#H#X=xEX z@95|d&rDleo9Map-qqEGGiT0-XC58$XNp9md(cASl7CvQMngk`2+F;al8uLCQ&v_c z6>ypeChk~sh0>G7*zOvgEQ8@ItkB2dqW%O4~<3xolb|Cm>8H$CgkMg zVBfxdC@CpHR#q00lary>>xGT5C7|J2TxB=k63_1LqnqN?Af!(%gaM}csQ2E1Yz5{Fbp1AWQ#jl?aT#qh^%8Y zjX>h#(`<$k*UgJ@^<*MOyK*sNDaDlwNAYW)85gZB7_goeT(mS{xc@k=^dH7Z_b!Zf zuE$mLbFx^>Y>g)uFetK)kq?2Sr)DTRJ%32Tf+lbQLn7-KsR=BLovP?G(hw`!B164! z;kzhB8>ad5aD)bWV%5t&itUWQw;LB=6ms9vDsbz z;pV(cT&atNlcU&*eA3EP?ckuog@f`Qns?qT;IoV%S-XU3`9n6lp_&+3`;nq~Qh)na zLMGmuC`{AI9Dm&ZC|x*i1g_i?Dr=Y6VDuL@UY<@EJr*ZxH@@I474QThlQ;2ah{i*l z1@_KWA3cIS>x0Fvuy2##A^v!s4kvbn%i4ZE6b-e96DRK_c-t##H-VkEnP-V6T5!DB z(v$q?%!pL98B59v+xkf7MB~Yy_(rSv`H@Ls~X?FzBr7o zX~MpT@E~q06Cw8NZ%5@TnR)HW>9*t&AFK*gwEgMpNX(ex!Zz24c;b$;%eLh#mpUf|8O+ zTqPQbY{HNDSH&N%dBkJHVjhBT(yqjRO)Awt0P3-3aR( zi4j1Ao~k0CbdX^i^AKihtZt{J1>nW#cmNzAIRN_>g1G=dIsne!Isl*nr2kjf19Jbt zU;zL~2f&>_7!!=V9cq|~@%|&RbAbOb=3xDchUQ@Zr{B7969Y*x0^eQj2?78hq_~|x zKt>iVhV6-ifw7mdmZsD*Hx~gb8#ilP0bdvQTQ7i&uM|dgvGuZI@pW-_MM(KRVEY>( zh0$-#5H^;-Azn@o*o?JwSzvCSwk%=-Pyr~LECCA(i;Sm@os^!E${%;k(*riRmzTQ~ z1mff4Bj6(};O1!$5tNjagg}KLLPGa3i2H~au3lEY_gxX}|B(DIkCH9onWuxhmxG%t z%Pp^!wcB&A2W)J&f&Lx;tkcWE?!QQ`h(Bpz5`^5ofd~pfA^&n?TxD*pQaYXvwwTDb z{IY^Feo@^9H>3GSKyzy$#AE~+aj7{GA`OmKY- zrYhbe>dO4E@kQnFtkl(v6)EZI@qr`-;0oq1cQmb+yS@$$sc&gBiE*;hLho)?t!{#7 z&9J`GYI;~h)za+1N@Qv|iexD9j|&ry-xppk_CF~x##d7R3%t4NIMignk)5u;k(G|! z>SHFcNiLhQSAHBj+Yoe9_d<0&t!~9wr=(1Da~SqK?t@Y&>CxAlyq29H${g4|;%EIK z#@ha*9`#Akx!MF|n}*DBA0#dlYA~^2vT_}RR`RtQ zCtSIbdo;~_$ANO|%|t9+(a{R;lE4LoJnt<9=ZvzyJ7rYvzAMs2r-FKdRgWE$wG$ZZ zXrRgT?;9oHR|dZFgnOVPVP`{9f-)+lQtd0IxUeUS-L9I~FkO>1=J>3v zEQaTHcAPyvG)<=lew3=OVL&x!xP4iiD@wFX^5s{KXS)_GK!ir<#MYQV0(+V{VDwyxU{41`zFEX zREFP&5w53v>#s>sRJh!Zd|%#$1HpJ(WmrqJqS}OB?C?sqJn!*&oO?^Xie@wk83m*X z%Z`<1iMc10gtOA<7_}T6byw^s8DIT_kB3(kezk1}n5zyZqtX}^bOm=%nJ-lfY3mO6 zK*e(U9_QVC`bZP&o6Ae(q@SK}MX<{}CHqHvq{j^lBVzigu7&M72bZbwh$?k?E_o9O z-r553=KCNu=We6sz(3AI$9x&OUr;18o+_;n*T?x_lMw%2$XBC}Zyio};V!jD`nYt{ z`A-eq#dt`BPPU0dSzNp;e$=}zNwgdJ_3#jKTUK94~_)FXnjlZjq%Bwm_ zIDh?6^eFBCYPSN&O?YUS7A7z{MxjOQ;x1Me!8q;5sO=^Q1E5&EvOw-%l-`#2(4R`@ zQkkKbiR8Wo^3v%cmC^A~<`L~fDl-b+8Zer4@4h{AlL093%Aj-?*I8qqRb`;K2F4<| zu#dQrze?;}8<}|)9M;EuHc|&|x!Cz?RS2`zH>eFZu4%TeBQ9v7>B!DV#Iis9Yo-$@M$`Bw*W!7y70;i zMNh~<$%P*uWp*htx-iptAm7`)nrE5ja|BNn2+i8TX0`h}y!@wJS;cg(AH0couJj#Z zdum;7TErKg-Ha;2c}^wev(!EEu6!~K8K9U&k~!-)`BdXvk7ix5lq0xjq)eO19f@h&(HbtS^@ws(_ucARzyQ zUt*lwCXqzxSqtkiXTaNSyKUECI9VgN(Ayq3Ec8C7Gz&`uM^sJSa`j93PW@7P!;ipEaSvCNB)1_t+?LRk|7DvYSyO-4lH303%kA*$`( zNJ8C+_z64jcxM%u>24Ob7OFq1oud#7Hw#3fCWJY z8Vp{F1P5=!>Ka6fThd0>T=ID|6s6?xdfjn6|q2J>`b2_ zbSXM6@*+wPWjY_yhAH0$7^E7HkF|2SnNj9JU(Q&fc%KLB zL=y0x&ahmihM*e87sUE!3IKb*j)_LdE{Q_EacdG!#Fx z4?|)J)-M*$N0!ngStIsQ3wyYa3%aO-VK4TEsHdxH(ug&8x;9;RNa^L=B8rXLEqgB> z%{zLuu3&1?`&@iFn3*=GNg*V>KJ@%EW4iyuX1YJwm5F z_=^h)N8t6)`g-A)0fQPc_@tLrzHkr6<8+0KFiZL6Bc zm|a2TkwJy0KBdUVG-%zu%PM)_tejWk@>n<5ZCph}X}7c0{s(C@u$_g!9qgQ-P`NjG zghhEX|NM?j*c#3^;iwnellaN{(8#v^#f9OS{dZa7eC96g->vvVXg|FB6{=k~8xoXQ zv6)e~#qjTn%ML&_*mxJE%4m9iB?B@-sGnWR2 zw1H~9EjUTP4=b)~(|5`gAWwrH_aBm2th!JmeGlWzRx!N1E#<)5ebOBJr`gn~>x~iu z>O41j!kTgfKg2b!g{?U>L(jKyb1oIJFCA1QGq04O3}%L;hGS&L$TuP6p+EZDeQOKZ!Ag)YRVZ zQty7tD60Fi4-_cz!E3NVzkU^Oxq|B1)4RZLRfObt$fi?XUg|QSQzGF9_eUEgP9gci zi1dZMmFOEZH1pb=KWWbmi54`;F-~XtJSOgFdWd|~?~3qP={22W`=`Y*wIc9S6Wew# z9L)oEsvyWh@2O?(k$$@O_Hu5%$lXyI#D68a!eXatG_@(nXprN1)V)^zJzwi`Tk@0t z`hgcT+3Jh&R-op(P_ax338op2DiO2?cOh28xou7C*?l6YOQE9q6?`iWs5%7#q3bmi>JLwh010aHFw1s($+@ zYc?_h9)9%|2Vxg@3Lq|3KP*_X5x5U=QS& zXH@|2yUV6>v#@UUjnSYkiHZ-TRxv3vQSlsz?&xy;bqN2a|?9aRSavU z+M>F;-b-}ju``iwg0SBtjd5HM?=rL~9EsxcEslYH_zvc3M&QA9Q@C<+p%Wl)xT_J4Tx)&bufP@IrXQ!U^%0Wn`kf7y{lB(?(KD zq1J~8gl@jWJwuNO=8SyKxwK|?eu8+f)DaWji#{7yfbJm=zP#a`Hj>aH5YG%D$!JD> z%x$^jD2ET#$K{57V@pqJK3Fq)u3%kD5lu_moF%F7zO=Cc6fwhk??2slEbRH6;{M6=@PbQCdwu4lxjVZ zdaZFYMBbLB9F)#NA#wyHdDR3=!l-yIht}%X_%Fq;3a{fI+$Yczy1-M$0cxZ?jhuOF z*n8z9Id}F!x;U7mUiDC}4fG2N@p65(eIrKCjwq@P0z&${x99 z=SZf%_3+Klrrf!zzw}ba*@#ntS{?Imbu;D}!-I|^+2v_$z$zf2m@S!V8%?Kh=^C}Q z#ZO)8W!>uRTsSlONR>rXN3wHiLb_4W`ne6WM`=swznC=lsDoy~s&B?Z26go2(6q6s z)YhNl6?|qyn$Qb~)B1v|<%k}WLqrrOz+Ll+_Cy`)_pVd<< ztS7lSmy2Y9r&;Fvd*M=DtNwZA?aC3uIJhaWGg+b~`yP&asWfY~D$ePqM8Gy)dtEwn z_vr&?o%HQJ{X&Y0yjS4rAQTaKi^nWaomjny@RIsufjwy4vNfoY@C}L4FyptYKyik}K2F>1nahlG$+?~UtKCwbA5p$tl(9ydU-%MPi`hxg0QZ=FZgu6oDKEydwAYNE zD~_x`3hKY)N!#k;-VUe(T$lm5$StcMe!Yy#Fy$|;y@}-2F zS0~u?Jd~}_XJ`IdE!D7w;O@(Jb3Tk`MmiSu|0Lw;fcg9o*ni$@6qf2AwKT+G;R8cA zeHV3_I7yir3Ubn(xzrS#eyXkNTWh!)FklirRV+niUKN;v*UNrMz@CTQlIUdU*0k67 zhTZeK@@W_1WPpBZSoxI3-;dJVYZZ19>-1W(hIPotZzNzz!^d7e96si5amSK<5@s`V z;=TA|*S~A%s1x>sBOp(VRPJCIG2}GdaoTj1Aav#x!F+pYAhh(;XGugsRA@u(nR`@KRUXGL zZ~;w$e4wHc@5=y!Hy;S1(Mp+?jyW+_Hck&zT$&h60a7SNS$|jyF@^ZxTHA7BD&b7r5%MJ_5q}~s5@;t)L?SVs=t10enTajL zPlPTwdwY90Ie$6n+H7rY;q2@zKDF)FXd&JudJ?xqlZi`&E|5Nb`e5nOrKqc`Lt|qj zs;a6G9UYCNq$C_VbV#)ECx15@jk>VH;D7Mp!y>Ty`g$BadK5>F98qVY zp`iiCj~^Fp{K?tcI;Sf5-$^-A~)g+f$;EfHF$;tJ9g|CYHDh9?FSAV zz`lL^bZz|okC@aeqq{M(}-H3^H}Oy{-53NX@)0qB=&)>vxx{5cIHU%c+zgoghykCzWW>T(Vvv)QgNlj@ ztXsDZn>TNk1}J00h7F=mNl6JZGBU6{Z4C0K8-Fl4!T?uiT@uV0B8upc77(hFhXM`w zB;J67?-=m+YphM{ju}%PM`B{4*c0>S%|lsPnYf}HBqx-cn~RkzS7OJG9iojti;9Xc zXU-haCm|sLanFv%rdN%s-~E{eEPC1i-+sCz_}2X}(Jl=q#0l%v#elqNR~^^9WrKpa zu78*{z9+&$2EfC^L*V7*1(V5y(9lrC$HyZjB?WWm&J{uC=jS6cGgJJ{3G!!bY%GF; zfhc17G!-Gk<4d=+L3Mpk;V^dSF6CUz8;~h(uGv2hTR;{`&0dC_Bo}HbIWy_Xf{P^)we+t9Q-uN3wqzI-{(oja$(bx~<)si=#T1U7Bj zB+iS|r%$VPXV0D$x6*Or#;F^d*Zt@bz9^V)#`!HHbul=1vr`hNB&6y^2&1Gw+^6fT zaBf}0hjmG8u({S(=1HH>=TdJP(&@Q*mYAWbzRy_uY!f!D^|&=YdoKgfPmS?Im^cOY%rq z4<&*B5K^f#@Y?kD&A^%U;eRN9I}k@ou5PxDP`$#8zvK+WrS1B)Zi!K5bp}onQt_jl zFq$>dP3lC;cN@du-q%ssJJ3P1lLC_2$#^TyQwavqk@_2kCH(2mc&*P~!lJnHLsV!F zsS_;~nSp8$%nMKSm)gnjaJ!l~!)H!2T@0C>0^d9w?A6n_jIb#2%zxX<#a^5NGG_`U z83Ae#OzebyQac&F@3q(UJykheYNt?B^nlhrov^4k2w}LhpzS4bI}>>G`Ja~@!H>2U z6+sBYKTaATb*8W;D@f}UFa5r4do6zM>UxH)tqp$IG(u{}@VOA+d5>b>OgIo0WluB` z=KI4zY@` zs@Dk7VQGr5)TsjB0uOvN7(aex`3hQsi^XH5!=(Sy^4NpDl;HUx>p{Y*`2CM~Ch+Lz zD6X{3aa-`T|CKi0yUD(If1U{qpM^^8tg)xiOiN6?`g;hj*MHijw+YeF+7!2jZ+Xv* z?W27ZgrkEk-m@~Bt!W`YWA-UM2Q)HsWxx^-bDRH4-k}rEi`EPer*(`?aQMzDYZS-xBV`4M|-} zo^D-m)Jo0Mw0|~CybMtKv?gqzleC|fGODdK&%pc|e;jecvLi|f;jlN|F1ZMk4b0r^ z3@l0V5$A%YPXck%;)A1{5Kg<$hRmRokvEwvi22jxd%%tYv$O~P{Y4lijd9i5^U~$t z+iscofa4$S)IkP%-y=%tD?9XwT;4ts)2OV_E~Rc=?SD`(*H351@Clq1?=22Ojqmfs zvqY!pX@ZY)b-;l>-H`pFH(f=2JyT1YKL2H3e3Z5(Nb-kAF ziTOkq;#amQnBdpn;!Va4a*BA9a3y{*@$bB`L5Svj^+nO8%=y5$0j-4tMp0yErr5 z>9w?S@$!^mVYxH(Z~J?ko^ad$S#tLH$1Svj0(W-=g!lyo{?&~ZmA<1&g5BXTwB~-asEHrKX#-A?u`GR!Tjy%UsSZKvINos|2{TZ0$TGmTmXQoPfZbI;ES>G3?G?1 z+aULKR6I%Z&l?#wc`-bP1vLPi^reyGZZ9W6G5?3W=Jr+t4QosILYQS!(59@Yngb=lgdD6H^U z%=qYa)#G9DytvKluNPgJtL0ZW`{m>xzMV$dT zWz)Ic!9}q~+VKA9As{ey-oT_jc6Yc>)6XK4yk4y>XuviE*R6=Ts-!~csmbS%>bxGe z>lCu9S|1S{!hEmS1@?fkUrk?38CoK}8~Um`9jG5uNY&rWTpOk(4gGwe$DggsEYo!I ziO}N@+5$mWraO$?Ml)zT#;LX-ks_NP#!<)5ocCAv9 z+g1?!D^$J=TVUuU!vK4N)f#hiX+L@T(9w+TQhPj#tMDXxIO{s{Y&(?9AiH<5Z9oKP zd&soB1^m$2XAHs9FX-V+(9e$3KHwSj3CV*ooymz3c#LGl7R0+=a_Q2lvzzdCqvxwD z%O6jz+l}_SrMCU$b(x^uH+nE5_0yS52kg?4AL<$@p6+Q-*Rry~l)v1;{8ao;TY?j* zE=G&yHn&ljM{fl2MW%D>t0(&xMwHzjt+IA8Fk{XGyfatM4Gv`;rU^-?6A^ZqBHJ&5 zLRWEo8cruy{9hSCA!po0f=%nW4HD#>8AOD+v>KtpFXJvViK5eQBeZXHI-|e(&-b^V zoi=LOP*PEBbPS%`2L`nkd=@)t*!(k-Iy*aFubDJ#261Z?rphhz&)<0nQ=-A7bccj< zeQI);p&p1CrK*6em28Mhd-J>T&qC2zrfWJirT(V!A# zci(sV(Y}o*>!-Mx9aMwM|=?K`D~ z72u`EwxwOCy;H+OuL4XzUYrTQvL-?le3my0{mh#+0SMH}wO?s(NA34K*umnU_smp0 z-*~-a639hoXjURugM(;ttis*lB@~NaC75`!oM3yB!aV9^Pp&!ZrMhf`)Jzqz*dvHo z#B>BUqY#Z(d@YMui1>(G4}2zi*`#bT$2gi~Eh{Bu&`Cu6y@V!X<$KQ(Ey41T1ixbE zrcl!gv*q=PKZq34jF(;%q7ZN(vt;=_t|4QXyggpj?H?*}lla!5@!Je)f$`!u5E-Rd zAw7oXHjlXNh6uxHfj2vhIvqQW3TnMoXe#XUbkK(Z-o2| zsw$BilPgeCE?58lq_DF=xlp9-@i3AtDQMX@+Fy)8I(3Oc4 zh?#WV@Q85sFlKT}M0(W!LPcZu8nR_8{uo)T7D8V2r||Q8=#IExI*T>d5Jg_%2zy!0 zoN^=~koz`hLg$Po1=HG~Lcp_mXIIp1lM(k_QWv#GO+aYS2r{)=lkee|_H%FDU=@w4 zppN4HntgeY_1O->f5>!qnhcRexWCwFN*(@NeA29?7k&^$<6>&|%}7JaFgcr42{EgV zYHRScasVoo&~o_(=R^|mV)hR7GOW|>S0@a)e^feQ*QOI3%dK^eDbY2lDX>s)CZiZN zl>k4f?TRoTm5}G-%%*tofipbv_1m9Mb?VJKHXEiykw{;C*RrqiCit1s!hWg_n4OVqJ?jUwlPF)W|@M* zv1scI@cI{{`XN4Z5uN0m;9RQrqA^72*;lcdO6p85X|>`v23T+>24#hld0mb2q;dLr z`#m#D(Vr!X!!*=j5Ho{7CNGn6ojagUWP2g|=ji?LthVz6xnYAe#-8^!dBT-^R34xWDI zsYlx(m|TKNSGDHgm>fC`*r@Z5dpjo=pqXlMcA1}*##nPKfK{2?e z48e}xnY4h+i{jE+dozGMq1%HVOJ(ry}NgQZQxj- zyW~Q8?W*qs6}qEGrH|FuYRlHkNlaz1&#=26OqW`7VE|wI`B{OzT1!t%G0KL_8G+Ig z$;rw2mYCKDNP+`F1&1vJ$XcRUcU_y)3H3yM+3!|WnC8R)QL82!#Y&9evfijI^QcL^ z=K@uwCF5v=HhdwN_}trSeA{6ZoS9a~Z0RTY+c1<(+Si6C{B-ktVTo{WJhA4iM&F>V zAC!+plZ9z3ix?&GaDo}4WlC;B~~Xt?11j=Ac?0~{PE=m|up3cyH9Z!H#W!Q0z4| zv7-M6fJwSm$%h^#sU{;;;V*TG8$oG|&R(8c@7G7<8fJb9aL!zVZOEiphVu(v94-Vo zm9}#Nxi{#NvZ{nSNmUlD#T_}5K_;JDu2XCzdqltI035YQI+j8)(j8Cu%|$#x9#ho0 z6aaL-)Fz015ajimHJTETc;4dX#FA~5Hs3vBaCQkPXEtzOEX*Y$uX6@+e3d(Q5ZZ|0 zH(13`wy^%5Qn+>GJFSBQBeh+TjCp8DmlqCLT*WX~#d3iHQnh%;2&yp(1$sEK^RTPs zYaY5ym7MguOJ*TFB#G1EEdJTiMD69T4(FT4)HIG%qPay9DSh1psurKVv!&E$0Y^i~ z5B$t|#)hovNhqTJ8;_Sb_8}bhp}4;6LKC~`;+WMClDee61-~73YP~2I0;qa=hE*wW z`#Q41{w@OjC5vYj_ThDxX?cvhFX#51`DPWj5mD&x<9=DlqUwICl&va2DI* zPQ4B#SKOD<$0PZs>aaWu`YS*ntol?ztw|i>gN!c6W;|PCTAE<&^x(1i)jCY*8&Pld z0%hP)#SRHXFiR(UN6^bcwh#&ufFS03-)=iKMJEAsCS0 za!zZ6Q21FTpd^aHyvvorFlbr3>c%;jo}X1uir9fFtoW#&G60qN0<)Ph~;N&;z`W0-)mC@zQNR(zF1h* zLuPhwca|pDxd9p8M{CNOjf_qvdKy3rDK_IkH8`odexcd>W&yBJkflCLrLaz0cz|2u z==~dT*4o77Wsjcaf?V)mgv!^ocO%kwlMiGzDHsIT&#}tLBYt>5+fCk%c80(BB)>vK zUtXNO4dL;T+_$A1>J%JsO^90_Nl3jt+F$?L1gl<#vK`?!&A)LwP0@Yyk#0V4C+}UF zB58@F=Q?>YF~vht`L5?8x_x$U%b0Wdq@E!lE)f6YA7T}i^{P%S&+Q@s-|&W>(k3f0 z{N*D$gd_);;JYk4oW1Z*_EIB|-?fTSh5@(da$%|=jYu5@pCYG1>&P8N`}D5bt#i!; zNvQ{%Qtp0F2_uTO;JrJA>i(G=)%k0*n18K2p|$B`y40fbgrXpzbT=VJd*Q+b)<{44 zJ@R|yZ6|MVf4H5|i2mHwaz2abauL0Z4(lAsHwFhRG(}EMNQo*)+>Vz`Q?h2f&w0%0 z)SmwlSbS|DSzj5R6UYXZ@NSN)*0)(J4O^dZr8`2W7<#P$VM)uA*Y{wx$9W&6cOlCF zRM6IBbM!o{7BT20OktEIk6!^6r)+M^@yq6g*_BQE;S$fzkkhtNpfJf7ru~@2lR770 zBeFFk45%o493GTSzS7fUZo5BnTS9?>J%@!^5z>2@g^zaf`0azK>|cu6;vHP9uj8_z zvzZEtDP|Fh&aVqWR}8EZ&+BDS?QYQTIo;yD04W#citmn;$ngn4l^%TiY-P9+JhD-H z%1IKNfBBV`jmOuT;@PrgC=tbkRELw@^CJ*Fy!wK&{bxjNStv~SZ(Hc;=lfFp9u5^W z5hx2! zak)plW7nG%yq+=Cvahv%1HEI3P5V>tI1dS_%?oMG!!X4|&%agdoL?w7$KUR>(DG=U z?hkTecMIbxZo!XYZuH8)x2E3v)z({(HA^)~rlnl-4C9KcHF0d|xh4Cv^e616p=zQz z6XcU)8*q|bET*`67^8M73`(tY7oGa=l{!sx{UJnxOaSt`l`nsuKwjf9qwDknwk1W{ z0~TYb#Z7)HODWX9t#GzY@CRFIN{V2wqJ^xv3V69Qboez;(MI!uOuAIULzHM(M!fye zxx`=sRX+mOfAVeK$1%-Ihgx)eR@gs&l)SwQ*_m2RcaH;#rQE``gZbl1pu-3tEuv8v z9ibJKIQ)lW<)-MrGQA{c*Kn(gD2F{x&0AOYHqj!vIwi}U|XVQ7=4=@p%gz39A zI{0b^+{i@rFLGQ3UR}J2!2DNOA1S04D3s`qK5`!AEB z-PW&wlV3aqQkD(xp_K=N_6ZK_+2(&ecILTm%RZA&>AdoN-;C&Sg|AssA9OFG%Y2Bg zpUK=f+I@YX{Ru@k5WNQXaB|9X(oFmy&Tt%KUiwxw5&c>l~Z}or^4)Wn5i}b8<^=g2J2mA)-7YAtld~ z-pAx7auGCTrc9uOW>5`$?lois{s|>`f9R*43*u*ET20g>3JFrZ`h?n9m6DPMo=@VB zmjaqbHdqShP0I^$xeVI7bcq2Ly#J$jcwzRuZzupu}AyQ#2cYF9=Msz!b+;b&95kVDYTsf>=@@Xb%YvJ0f z-fj@iv#1B=MAeM&xz-ED4L+!5&w27GzGUSMQ3_Z0z&Vo7*mi_*Xmuar;Q8puxa}th zwHf06{qx(6c=M|EpK%DppD(D$!bf(`WEkTDv)IWlA}tZ>{#_LXFAz_7792#P%9;V} zmhxQjgF3?Q^UAB{tbYOwi;)9^X4paY1=Wf&;U&jUer3rB`iL{mmc0^x%CQX8Ha-?I z9XRvtp=M{7#a)V;K~k9@UXrMQm%r>4!6J(&nEA*O9tU&6+JmV~2sJrl@TqPaW*0=>id2k`;}2Aldd(Z zh{YT9X9gW?0jDWkmI2zK_z8l5R;H;wYBt~72V#wkE{R1j9DNpk)jm)2H?He1!?NS{ zUgTwu0J%Mr)j@7ZZOC`m*_^pP@LbV5{mST#9GdA%LNXlyChuAnuP`O-1A2QdtH~(i zKP(|QQj~FVK=~HaeC*J?ef~|-x=8mBZx>M~ORt7$j0(NuN5Km+=z-uwuP3y{VP%sg zvzPB@Oyqq@9l?o5y5v_ws4cR=qrJt^$O}5#uOeX=#rMn?DQQXEj4-!+TG%%1=Zzjp zK^fY;r<{4dyznX+!_)b)t<##@*Uiwul2+9E*3lO^s*&v22#3#v5)rx&PIi-mRAK^m z#M{_5bTMzHfCm#s&&SWMZdTvoEKL{uL~89vbWA4lI!EO09D6|?bR>7n5M(koEBpI- zNPSgey_Ny0@Dy^K!q*rIi(`(Do+s_b#bV2C7T6eu!+NM1_o`$K3Qn{{wiFUOv!fIF z2DA6|*|ksG?PfkZ<_LYe#IAz18~-RMYGU!Dp*pJAdu7FIks>3X+XY$Igk3_3RyF#* zLQCf|OJh7ldU-t;!niivWKSw-dfRa$XM#bXT#uV355qYi1utd}2@!1237^^d8}K1- z9909`2ZXD5Hjksn5uX4S@&tAE8&%)2K7Ia@`8#N+X*4Tf@Eo`w=uA``ParYQe=d-I zyTmo&yP9ipJ~EA3m88w}Fzf6rd0hIYYNVo8Y#kuloelZ%l{k6I_;a7}2X#-J|vGVhuz zy|CYU{>i5I)?Q`qbY-T#WJT*OOLCa^S1Kx=Q9^t zr@M!R<*)gEnnDsQP{*Z0qK?n)4WZRvDR1qEftRpYkN78>buBZcruC;cdOVfu;O{>o zvacPTozFOk;lHk14DyKPujgbl+ukdjD!!jl7AWm80so%cIN5bT6%x*)@YVUS)a0aEmWuVvu ki!~URfUoSDy*jh(=`bk7VRCr$Pn|D-JR}#QK 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 @oJp$Y43g(cY5?Heo>4o zjOg#6vtmRpBV&<9|9=6ocp~eNM{fwv>AK)Igf?l7@^Q4GLhlzBAoP@YLDYsr2z|Fi z|Df^G2>o+YUxX%0`aI<}!V8WEefyh>e2BOr{})0D@k8D~-bJV@CqE??8H3QIO5Z3o gNs}~5Lx@WCKZECATw&P4k^lez07*qoM6N<$f^151M*si- diff --git a/examples/preact/static/options.html b/examples/preact/static/options.html index 1a58bc3..eaac108 100644 --- a/examples/preact/static/options.html +++ b/examples/preact/static/options.html @@ -1,9 +1,9 @@ - Options - - + Options + + diff --git a/examples/preact/static/popup.html b/examples/preact/static/popup.html index 94a1d10..58ecbbe 100644 --- a/examples/preact/static/popup.html +++ b/examples/preact/static/popup.html @@ -1,8 +1,8 @@ - Popup - - + Popup + + diff --git a/examples/preact/static/styles/options.css b/examples/preact/static/styles/options.css index 20d0a05..6773a2b 100644 --- a/examples/preact/static/styles/options.css +++ b/examples/preact/static/styles/options.css @@ -2,7 +2,7 @@ input { margin: 10px; } -button: { +button { margin: 10px; display: block; } diff --git a/examples/preact/static/styles/popup.css b/examples/preact/static/styles/popup.css index e69de29..8b13789 100644 --- a/examples/preact/static/styles/popup.css +++ b/examples/preact/static/styles/popup.css @@ -0,0 +1 @@ + diff --git a/source/main.ts b/source/main.ts index f03de9a..632835f 100644 --- a/source/main.ts +++ b/source/main.ts @@ -22,8 +22,8 @@ import * as esbuild from 'npm:esbuild@^0.23.0' import { denoPlugins } from 'jsr:@luca/esbuild-deno-loader@^0.10.3' import { parseArgs } from 'jsr:@std/cli@^1.0.0' -import { copySync, ensureDir } from 'jsr:@std/fs@^0.229.3' -import { resolve } from 'jsr:@std/path@^1.0.1' +import { copy, ensureDir, exists } from 'jsr:@std/fs@^0.229.3' +import { join, resolve } from 'jsr:@std/path@^1.0.1' interface BrowserManifestSettings { color: string @@ -74,29 +74,48 @@ const browsers: BrowserManifests = { if (args._[0] === 'chrome') delete browsers.firefox if (args._[0] === 'firefox') delete browsers.chrome -const entryPoints = [ - 'options.tsx', - 'content_script.ts', - 'background.ts', - 'popup.tsx', -].map((file) => `${args.source}/${file}`) +const entryNames = [ + 'options', + 'content_script', + 'contentScript', + 'background', + 'popup', +] +const entryPoints: string[] = [] + +await Promise.all(entryNames.map(async (name) => { + const tsPath = `${args.source}/${name}.ts` + const tsxPath = `${args.source}/${name}.tsx` + if (await exists(tsPath)) { + entryPoints.push(tsPath) + } else if (await exists(tsxPath)) { + entryPoints.push(tsxPath) + } +})) console.log('\x1b[37mPackager\n========\x1b[0m') console.log(`Using paths: -Source: "${resolve(args.source)}" -Static: "${resolve(args.static)}" +source: "${resolve(args.source)}" +static: "${resolve(args.static)}" output: "${resolve(args.output)}" `) +await ensureDir(resolve(args.output)) + const builds = Object.keys(browsers).map(async (browserId) => { /** Browser-Specific Build Path */ - const outdir = `${args.output}/${browserId}` + const outdir = join(args.output, browserId) + await ensureDir(resolve(outdir)) + console.log(resolve(outdir)) // Copy JS/HTML/CSS/ICONS - ensureDir(`${outdir}/static`) + if (await exists(args.static)) { + console.log('static exists') + await ensureDir(join(outdir, 'static')) - const options = { overwrite: true } - copySync(args.static, outdir, options) + const options = { overwrite: true } + await copy(args.static, outdir, options) + } const browserManifestSettings = browsers[browserId] From 45f8f0c1b6021957180a2eb8faad0a0433fa04b8 Mon Sep 17 00:00:00 2001 From: Ben Pevsner Date: Tue, 7 Jan 2025 20:49:57 +0700 Subject: [PATCH 2/4] fix: add js and jsx targets, because they exist --- .../source/{content_script.ts => content_script.js} | 0 source/main.ts | 11 ++++++----- 2 files changed, 6 insertions(+), 5 deletions(-) rename examples/barebones/source/{content_script.ts => content_script.js} (100%) diff --git a/examples/barebones/source/content_script.ts b/examples/barebones/source/content_script.js similarity index 100% rename from examples/barebones/source/content_script.ts rename to examples/barebones/source/content_script.js diff --git a/source/main.ts b/source/main.ts index 632835f..f7fad4e 100644 --- a/source/main.ts +++ b/source/main.ts @@ -84,13 +84,14 @@ const entryNames = [ const entryPoints: string[] = [] await Promise.all(entryNames.map(async (name) => { + const jsPath = `${args.source}/${name}.js` + const jsxPath = `${args.source}/${name}.jsx` const tsPath = `${args.source}/${name}.ts` const tsxPath = `${args.source}/${name}.tsx` - if (await exists(tsPath)) { - entryPoints.push(tsPath) - } else if (await exists(tsxPath)) { - entryPoints.push(tsxPath) - } + if (await exists(jsPath)) entryPoints.push(jsPath) + else if (await exists(jsxPath)) entryPoints.push(jsxPath) + else if (await exists(tsPath)) entryPoints.push(tsPath) + else if (await exists(tsxPath)) entryPoints.push(tsxPath) })) console.log('\x1b[37mPackager\n========\x1b[0m') From b4cf303c26aa994b14b7539d0601b02e70c14ed8 Mon Sep 17 00:00:00 2001 From: Ben Pevsner Date: Tue, 7 Jan 2025 20:55:49 +0700 Subject: [PATCH 3/4] chore: remove unnecessary log --- source/main.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/source/main.ts b/source/main.ts index f7fad4e..8b8487c 100644 --- a/source/main.ts +++ b/source/main.ts @@ -111,7 +111,6 @@ const builds = Object.keys(browsers).map(async (browserId) => { // Copy JS/HTML/CSS/ICONS if (await exists(args.static)) { - console.log('static exists') await ensureDir(join(outdir, 'static')) const options = { overwrite: true } From 250a42c2e9d3d7b11adcdcf00d9b658e1ee60d07 Mon Sep 17 00:00:00 2001 From: Ben Pevsner Date: Tue, 7 Jan 2025 20:57:58 +0700 Subject: [PATCH 4/4] chore: remove another unnecessary log --- source/main.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/source/main.ts b/source/main.ts index 8b8487c..d1aabd0 100644 --- a/source/main.ts +++ b/source/main.ts @@ -107,7 +107,6 @@ const builds = Object.keys(browsers).map(async (browserId) => { /** Browser-Specific Build Path */ const outdir = join(args.output, browserId) await ensureDir(resolve(outdir)) - console.log(resolve(outdir)) // Copy JS/HTML/CSS/ICONS if (await exists(args.static)) {