From af3d88e56e3d48f730255d24d01f766f140d6536 Mon Sep 17 00:00:00 2001 From: John Rogers Date: Wed, 5 Feb 2025 17:16:57 +0000 Subject: [PATCH 01/10] refixed dependency error --- plugin.crx | Bin 0 -> 38303 bytes plugin.pem | 28 ++++++++++++++++++++++++++++ plugin.zip | Bin 0 -> 45714 bytes src/components/App.js | 2 +- 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 plugin.crx create mode 100644 plugin.pem create mode 100644 plugin.zip diff --git a/plugin.crx b/plugin.crx new file mode 100644 index 0000000000000000000000000000000000000000..f0c9dde3bcad7f5c942adbaba2bdb2026aca26bf GIT binary patch literal 38303 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�M z#x+G|OKjQ0?zO85=XXh(!8HO_b%W5e@-2@Vf*^Rou&>$y)WT_>5coal@b|z{;Gbkz zxu#BE^803T;O(-kN5)RFXpMzDI47LxnJM-!^xdoM`DuTyx895izCr{NB0qg&re1X+ zZU@wPsZ5oeblZk>&NJ2Nj~%Ek*ddHg`|YAUbN;G5r^g>8YX$l{WF+$sxQlBjQ#}K{8yRWU8#vW4c|V{y zbYL=gEWkP}_`nww{z(9(UHo1@VD^w85P@_Q`kyC%djk#u9oEav^5^+~`|w}A`*Q-o z-|)|b{=G){XF@F;X$lU zXld$T>uh86zg^bNA6IqvNB*||rm;zF(`KC&x%*iut84(j3ih&EgD$IBAd|MN#RW3s zf)Y|wv%s*Kks?u9iSAM9!bPryY?XjQvN8L|We8{(N#gPMG1rKfj)d`)!w^;Be9(`r z^G(Rbi?OXWZ}+QXHG|-pa;fEP1n0n%hEuI5wTca- z*d`?hFc2=ld=w-qn49GE zILpowD9R5R<_FeEEUKNNv@+a?MZCkE==!fr3Rx3iSctkTA(@C&1RMig^oUEgSpMp; zXrn(3M(N4NlDi&MLPTRh*|JhTT)~(gBr8akP*%{Gs~f5~@QWwSC778Yq+oa?dmQdA zdSK4%X&iF7A<;b$DuJ}z$TyZE@)Nh1XEX{zjIF%DwXaPbTFN!%NDOJOKJ*QzQ+#_3I0chTF3C6N3q!araal!Z^RLJP zO-Z+r%PuHHoh=RE_j$B0F6Rzim)wo;Zzq%_S~O-#3B9Eu#wFbR|Cg69<2&xj?h zbY`!uH-<}wNdXUc=@6@k*R4xbBLFpNL0p7+x^O<>gu@_5-NIL=RZAh+Wo^k1cFw5y zXV=P6*TCFEi>|?73N5k>^x0b`#~^^+=nFNTiAs<5Ld-SgFKWy@@t)BcU5SDT)cve# zoDvJ3wa0O}P6OvtRzTa6ox5#9t8#vU|xwU7pnR zgE$oPu1_4yZ%y3g_|2zHr4hL&o?JBey906QA;CH?mHkx`yJ@A@#cn@n&Lt zcY$gIG_a}^n3{>8X!*)se-T0kHFNI*zn!v80zCEXM$xN#Vf&L^;l-VU-HUU_hlf~6 z2a^jzl9qdG9W7vpcf{^m{lEd*XJc=3rbTqv@G4~Apv#(Lan=K|%DusDfBOSrreC0Q zyQ&Ra)7DbNi_Jv}x5D-QCQ}O<&&FJxMHgOM?fUKV2xEhDU~KB5)+WS@jP0Kv{4Ws;erxJACHS36jEa}H5!M52rn&uyk9=fwaK zwY?kqcc*%xwa*uKlT(;IWQy`0Kh1gXqBWLGR=ZM%*bXOqji^n!yFOduk9>PC7sQ!5 zqALfkh^>}c#KJFVLlkj;E(Zw)#n=!Z&nS6@Ad-3>OT%D8+D+jsU+oRSgFpm((5#i; zFbH+k5x;?2CNhif8ZL5hN*!5fskow@vpa@|@j$)C5wg~GUVzZw&!_n~iQg@hH@Q4q zJ_c%$?C45-a0-UqJf2%2yE_Jak6)*JZ#*3{KHz+|dE}SH$Yj&Ew*R`r&K$1@9WVfZ zzh3Ge|0VuE{FgD*|H~cz7uzy(vbOqHfP?NCZ_4m*3;!{Ur(<$ z$7dwu?xgjaxhLQ_)KRytykaz+y(c6}Se*g7$rR1(Id>|X8g}2aWq|Y}vX|0z0Bq1_ z5ukH6==(dHILzTT`B0D)qFWs*ylV}L0}6kNKy~W(K;MpQ z>QYBiSmUDanm@Exo!Mb+9ltx8IG2X46;cXm*-Vur=`Z8B2?o5SWGGMpGm1 z1jKL`y6B3UyD~|f!~87Eit8XcRm znT}HQ*&xAGAwR<8MBD*P9c7BoEN}vzCYDiDli21r&a}EO89sXn6SH9#9ff-{{Seu<_wcN6++IJ1pPs9n9 zj-^XfUVZi{JOVL|Vbp40HU#

T{ZDMZyR+(T@gbwqC3aQ=PsaM_F7V!a8>mC~%VT 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 S7Y2q9^5={K*}ddJ@BSagN?ect literal 0 HcmV?d00001 diff --git a/src/components/App.js b/src/components/App.js index 2afe226..1cdfd70 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -154,7 +154,7 @@ function App() { setApiData(simpleApi); }); }, - [history, fileInfos] + [match, fileInfos] ); useEffect(() => { From adce021fb2694b44b1b51fe27292f52ce1240699 Mon Sep 17 00:00:00 2001 From: John Rogers Date: Thu, 6 Feb 2025 11:52:33 +0000 Subject: [PATCH 02/10] Added readmes and tidied up layout of folder - perhaps it should have it's own repo!? --- .DS_Store | Bin 6148 -> 6148 bytes plugin/.DS_Store | Bin 6148 -> 6148 bytes plugin/README.md | 19 ++++++++++ plugin/Store submisson attributes.md | 39 +++++++++++++++++++++ plugin/{ => chrome}/Screenshot 640.png | Bin plugin/{ => chrome}/background.js | 19 ++++++++-- plugin/{ => chrome}/icons/128.png | Bin plugin/{ => chrome}/icons/16.png | Bin plugin/{ => chrome}/icons/48.png | Bin plugin/{ => chrome}/js-base64/LICENSE.md | 0 plugin/{ => chrome}/js-base64/README.md | 0 plugin/{ => chrome}/js-base64/base64.d.mts | 0 plugin/{ => chrome}/js-base64/base64.d.ts | 0 plugin/{ => chrome}/js-base64/base64.js | 0 plugin/{ => chrome}/js-base64/base64.mjs | 0 plugin/{ => chrome}/js-base64/package.json | 0 plugin/{ => chrome}/manifest.json | 0 plugin/{ => chrome}/popup.html | 0 plugin/{ => chrome}/popup.js | 0 plugin/icons/Thumbs.db | Bin 7680 -> 0 bytes 20 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 plugin/README.md create mode 100644 plugin/Store submisson attributes.md rename plugin/{ => chrome}/Screenshot 640.png (100%) rename plugin/{ => chrome}/background.js (88%) rename plugin/{ => chrome}/icons/128.png (100%) rename plugin/{ => chrome}/icons/16.png (100%) rename plugin/{ => chrome}/icons/48.png (100%) rename plugin/{ => chrome}/js-base64/LICENSE.md (100%) rename plugin/{ => chrome}/js-base64/README.md (100%) rename plugin/{ => chrome}/js-base64/base64.d.mts (100%) rename plugin/{ => chrome}/js-base64/base64.d.ts (100%) rename plugin/{ => chrome}/js-base64/base64.js (100%) rename plugin/{ => chrome}/js-base64/base64.mjs (100%) rename plugin/{ => chrome}/js-base64/package.json (100%) rename plugin/{ => chrome}/manifest.json (100%) rename plugin/{ => chrome}/popup.html (100%) rename plugin/{ => chrome}/popup.js (100%) delete mode 100644 plugin/icons/Thumbs.db diff --git a/.DS_Store b/.DS_Store index 4837e51188ce9279a5c030feed3490afac158c13..7269109194afbe42ce449bde60aebfcc84cbc568 100644 GIT binary patch delta 272 zcmZoMXfc=|#>B!ku~2NHo+2ar#(>?7i&&T#*(dWbNi*)8tie>MAz58*YGkUTU}$b` zQLCd+ZE0knqhMleR$I%-A*!rz9TcCPlbe^{J$XNqJY&z~`%Ln_91H~vISi!?=?s|+ zc?=2+MxHtO$w@i+Nem1O0zk|U!vCQF$i`5gR9;*FRZqGjM0>Cqx%oZQTgJ`o9Q+(W c|8D-s{GE9+zlb9TBLf2yP&vcq2$40+0Gd=r=>Px# delta 100 zcmZoMXfc=|#>B)qu~2NHo+2a5#(>?7j4YFRSfm-ZPxfUkB)qu~2NHo}wr-0|Nsi1A_nqLoP#VQh9MfQcix-#*NDv>p?PX49N@` z3`Gq2$g)83ok;~bnZ+dr2G;i=7gSqCvcn{QR6G z7&|d3EHkw{UO>b-Kd&S)GcUCWtRXWc6{sX8JTosPzuYOmG%uwXsJ9+y6hwxDlY=u} zK(e~p)W}pv!O+~?qE<(t+S15CN5RC{thSbuLsVJcIw(FnCpRy@8|XS9U-lFcC^8<;0HumAuB22|q! delta 84 zcmZoMXfc=|#>CJzu~2NHo}w@#0|NsP3otMgmjxH)<>cq3Pb}2j{D+B~b+Z9;A=74d j4t@@x^396O- { chrome.storage.local.set({ history: [] }); }); -// Function to open Harmony URL in new tab -function openHarmonyTab(url) { - chrome.tabs.create({ url: url }); +// Function to find or create Harmony tab +async function findOrCreateHarmonyTab(url) { + // First, try to find an existing tab with our target name in the URL + const tabs = await chrome.tabs.query({}); + const harmonyTab = tabs.find( + (tab) => tab.url && tab.url.includes(harmonyURL) + ); + + if (harmonyTab) { + // Update existing tab + await chrome.tabs.update(harmonyTab.id, { url: url, active: true }); + await chrome.windows.update(harmonyTab.windowId, { focused: true }); + } else { + // Create new tab + await chrome.tabs.create({ url: url }); + } } // Listen for messages from popup diff --git a/plugin/icons/128.png b/plugin/chrome/icons/128.png similarity index 100% rename from plugin/icons/128.png rename to plugin/chrome/icons/128.png diff --git a/plugin/icons/16.png b/plugin/chrome/icons/16.png similarity index 100% rename from plugin/icons/16.png rename to plugin/chrome/icons/16.png diff --git a/plugin/icons/48.png b/plugin/chrome/icons/48.png similarity index 100% rename from plugin/icons/48.png rename to plugin/chrome/icons/48.png diff --git a/plugin/js-base64/LICENSE.md b/plugin/chrome/js-base64/LICENSE.md similarity index 100% rename from plugin/js-base64/LICENSE.md rename to plugin/chrome/js-base64/LICENSE.md diff --git a/plugin/js-base64/README.md b/plugin/chrome/js-base64/README.md similarity index 100% rename from plugin/js-base64/README.md rename to plugin/chrome/js-base64/README.md diff --git a/plugin/js-base64/base64.d.mts b/plugin/chrome/js-base64/base64.d.mts similarity index 100% rename from plugin/js-base64/base64.d.mts rename to plugin/chrome/js-base64/base64.d.mts diff --git a/plugin/js-base64/base64.d.ts b/plugin/chrome/js-base64/base64.d.ts similarity index 100% rename from plugin/js-base64/base64.d.ts rename to plugin/chrome/js-base64/base64.d.ts diff --git a/plugin/js-base64/base64.js b/plugin/chrome/js-base64/base64.js similarity index 100% rename from plugin/js-base64/base64.js rename to plugin/chrome/js-base64/base64.js diff --git a/plugin/js-base64/base64.mjs b/plugin/chrome/js-base64/base64.mjs similarity index 100% rename from plugin/js-base64/base64.mjs rename to plugin/chrome/js-base64/base64.mjs diff --git a/plugin/js-base64/package.json b/plugin/chrome/js-base64/package.json similarity index 100% rename from plugin/js-base64/package.json rename to plugin/chrome/js-base64/package.json diff --git a/plugin/manifest.json b/plugin/chrome/manifest.json similarity index 100% rename from plugin/manifest.json rename to plugin/chrome/manifest.json diff --git a/plugin/popup.html b/plugin/chrome/popup.html similarity index 100% rename from plugin/popup.html rename to plugin/chrome/popup.html diff --git a/plugin/popup.js b/plugin/chrome/popup.js similarity index 100% rename from plugin/popup.js rename to plugin/chrome/popup.js diff --git a/plugin/icons/Thumbs.db b/plugin/icons/Thumbs.db deleted file mode 100644 index cba85a47d1ffed6937546ca86e65f013deb5e664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7680 zcmeI$c{o+y-T?4@9J3Q0p^k_QnPmteQ!*Sh;ouN5Mdn!!B1QO-nFg7YA(@FXW+r7G zPRcAY9z(|5b^6_U@AG?}d!OF-dH=chxy$p}5 zz8_FQI-wzHB{yYdlVDrD}-{=YKgSryikBAgBA{jtza|(bG zpaQ4?8UO(t0*HD4oBlJNfHvd={@fvUNCk2PYgfn{wD9jICeUMkK8asr!#}w^D&4!H z#|;mIgYyB5e`XScBp^x16f%dbAaTeHumsyukQi87f~5plN`w7>miQqO7;zl>S%-g? z@2|(ZY5zR(v-~rlYza^Y2~e6iK&;6bNaRNyq#=vHUjAzzl>e)2VjX^+_!k@Jz`5)H zII#YUyuWkmXY9XQ{y*N6*k;7%M{JYdegBD%jt&5y00;@t14jS`fY_`|z)|2BfC89- z;{Xf53Y-Ag0CwOczyWXqTmUz43g7{F0X~2q5C8-LAwU>74Tu1ufEXYSoB<>NNr2d6 z&H~ba3?K^-$1ORqmIo97ML-ES4=4i{02M$LPy^HfG@t=!0$RXD;1X~dxB^@Sv;iGJ z7r+4jPU9o7jfibu`Srb=lu!T^0EclvBuE$>2|H*c_9++{sO_%`gMAV>DH%BhB^5Od$WV3|j23V>2`QY6 zj1=^Cm>)O~ks`_HPl_s$AGvBq!QsLnb|*TGlJk5~J)?H_3YWOKYakUh)6runX6{ow zynOs;BqXKIO3Nr;P*GJ=M{DTlV)XP4u!a_vRyV9|ZrZxJdw6=?^2Xi07ZiLyBs450 zHZDFP@!_M#=^2^NvYuz>otzv8q7;TFZQi~SEqP@T)l+2pNj)=39yaSJDQNq&QLh`%hs-u^EP`U&W}%`R zbzj691E99-se%uMuc+Mz2K|f%cl!3Mk0j|ewtsUm=47RxTkFPqeH?d`M{V64{=)!Y zrI3I^n34B6bTXzBrj&(AUgrfvW*ULxZ}eLZAS%n1dA|w`e@U{)&V*B3Z*FmklI99z zH%~AWsSneLi#n%VL}PJTDNGqh6M4IiiH*fiUsB`86yiik9kq3*=mjc}2|5MGv3%}! zY6s9EPp|84GNo3Ycw?P@iSqZ>GcWeuhuOUBoyZEhnYxv=BqYrwK=m{$P=b_SbwMMQ zY?{+%(kwwQa_P*2c7s)q?FbFWq$HEM;l0R#99;}YX1VRx8HTGWmbPF4{lvJWP-4&P zv^+a@*1%#n46P?TMb2LA+kKLolE;xsAj(&!CV2nx!kCfW*XK^3+XQVx%W4*En}*6I z5vV9KE?Gw|62_4ALh23u_XPi(HShIG=h(I4<;}!7&(A73%k&s5e_yD=JU zaTNyrU>_wFhAXh2OwD}RRvMF0A2=%>20sc&xE$Y?*A72p-B~AZxS&(y=^c2UwVw1= zVuQkcDdvGR@;u)xS$Fq@QIwZ=6AM#oE1o%9;m!3{<0$($N97Hb2Px!<_T?Y=a}h-& zB!Qip;%17d8{7||Hm<>5D|cq!T|dZ!YLck``>Gh$-dtL`}+?K^;MP(ck6;fKzc zGwQFo&_7bwUdRqsqkh0@vA_K>BJs))e%-A_CnGbt#_+pZ=U8#oP|z*4OUo)FgE*6~ zcAuwnmR&J71?q+5<&Dq09K3SuLnDUN8W&1F@dC41iO{%z!nq-P1WtdsV9TwE>4e}t zbQXHHq7!@7p!lBlLRTv5A7z$iu~8u=DvGLpET_ygN=i+tlOvaK$r1MDVP* z^4D<{`O2 zFlX<%L%Z?~=RbW#5K0tdIL>i%V2>3JwRgpehLc8DG>75eq~90p-WM~!Fs@6Nn$1;U z@_?3V^y|E@DreZL#AJK^rG2yNYAeqwA?B~2wf+#|$7_bGkxbgYxE^D0PpRyv8^+vA*QK7VAQAxyfA zSq7obAreli$+bZqT+~|y6D^@e*9Msfq*)giI@mw4qT?UT;Vr`#?sjf7N;yz5FJjnu zmz(rAMS8u`ztneEb~bsId=R?3y>!6bu4@B4xd~pqnDe0H%9Zu2N5@_B`<|_`3vrl5DC-I-o zGCHZsKo_sry~$JnPwb zR{nHKUAQpiHR9b&!8?l90@QV@MthpWoY8G+b;|2~xvd)VQaSv1tbwJob34|+I)jg2 zjXnC^?bopr-zzkF`}4VHXPq<^jAhuKOs>@Gbm z#S>By)vOvRgC{c9vhC&%DXW%LW3U!_R8Q05#KMy*+Fj-Cqdr;&o25LQZ9V5PX0TrU zt;)viu(=_Jvcu)&9GEM`@w%&}NdZTKwzXP<=f~4$DHb`(aE55F@(R%3O9$}yFV0(E z`aN+9b-Nkp-icoO0ZO!JM3WbP4t1x&p&Y_XDc7UtV$e6Z!+Uh++q-j2s}!4*xV;(P zPjmC|c)j+r($DSj$~%q8TsCT;SAu!7Pg*+DohV5NtG0@#n|A zq&_-#F6v!firr1wV{6^EUy`3PwRWoZuls6|8k1XX2;8pJ+P1aA@&_%x@j_2`b{5e~ z#b0T$xqi8QNN+BR3eN7^?%c2!e`#!-?!#bedghCrjJ`}C|GVdOtS2Ib1v;?W7vjXz zE)beW7f2R6c&*@w+!iNTprnQIu)w%~@Bws8!U=X^$BijPGinLBbUZC;BZ0myV5sX$ z7rluT0Zy0sMs)RC18%?2Cois~lJZ&l)AGF*$0;PRhI9v?)H)0a?aI!)1xe2`-u+^qg8 zqCC(gfx7df$4Sf+c)(@Gsbrb`RQH<>hODevkH;;^FuH*5`2e5>&fpb(LIP3 zelZOt!kab*a>CO`jW?vvRlkT_3o;q-@X5!0chK0VxGc-$q%_3a<(vy)P~(cMxe>k_ zxSD}Wre5g^sji*W_1(G^c361=t~O@aqZs^T&=>t0#Bf!S%*Uy2U-grw(UVh;k1biq zHmKuK6O;s53jfh)lon-Ybdfj4?7>Yd_FM5rJsYwSCzfRKdU!!=PB}Vr$|cINUHxYP zP3I&qI_cdT-OE4eJL=)tbF1U+ZYGt#{rtUv1`Mq3EF!JF=6E(DcZk#VZj^#u!wq)< zft=H-3xm0ycI}&$D})B!%!S?!!-8s?n`nc_OL?^M_TT8MQo|`^6K`=k9~-%?ed!iL z@hrRJS=D!gH5@jEmXs^kTHM6bELdbiRS|WZMaBVziuD=d{Gptq!Jl%bYIs-kXG5YL zbmK~NUOS;Yzwh1i;AG?9@0+!0<665Rz0V>inc6qgA7eONEnz!gyix05C>JhF>x#=e zt?*&`OM2Lz;LeACF;RdY4F8y^{{G_U{8#<&|Brdjl=FQ4-Tt+IhxxAvB=X<+?~i%? zf5!Z`du2ZkmymC5CDQ43P31V`^7fTZ>y$IDS7T|kHLg;}DZO?yr+3S3Tq@L8)23oz zHB;|>M83dSl&ULIS^gs42o#u;?p}+k)tir zakn0k8AwOU!n~V{<(6*oeCDuY+FLO>bNi-d$b6Sqskc+6$E8t;{?97}dG_=IJG~r> zoKeF@k?4yYyj{2S*j;feGX2b3H`U_tSP@M8nN|+G=lgc z8dt#+F~6qsVlKzWKaS-LS)3~pSl7Q_L%F4(+&dX&EQxYNxNH|l?<#u-(23-!XTQc4 zLx-Cs$KvQ(=bx1Yw^4?W!68q0068>KH#_N2Av#edryJ=WtCD4jhGT;5AeU$8djj)K%4c6B|OyMIa0ea_$}QeB^V7(03i zvEWRTQ->tqEy`WgV!)C_6&D@{cR4~v(HZ&_Ys#+w z;Yt@Lb5g=L&zZIAg70iCIm7o`d6@Y#ZtquC3T-<0_(yh3SNc!X-hJL9f%dSoJk>m1 zQG{|5R^6=+{emiPccyq(>OR|*w{W~Qqv~=J39Zulxx=oq;YaEj-`akMuWWP*7u-m@ z=V~uf81$y$d53xZHGBOLtZ(_pfIDRmR!76fb1<L}@n2S? zQ>ro~JWHz9wB(y(CNQv|9gwfn>-PXCVpYD4z1Ir!z=BVvM*b-($3l>0=m&R@xJNhuuwaZIi zVN&4_dG6Kzs^NKU)r2s&>GOBsC!{@PGhG_?UQCPS?s`o}wko5JspaqBQj*QiDj=yt zFSbO>Sw3-S^3)sM9`;U>W4LN^a@TvK{E0vLGqXeQDo0sDUQ)HJ@;Z*vDYz5PQY2qA z8q`IZLtWBmr&eTk9&gXSt&tmeBMvJo^{{hwn{Is_psl2_UH8>QYPw{x)iKdCc>=HqHR@2~_hd+;BwY_h+Yfgh9ws}Xse9id% P|N3+E`ya0Vr<{KS{RJto From 9af0ab613d04e6a638090e8e6eea0b70f08dca73 Mon Sep 17 00:00:00 2001 From: John Rogers Date: Fri, 7 Mar 2025 14:15:09 +0000 Subject: [PATCH 03/10] The trailing slash on the APIs should NOT be there --- .env | 2 +- .env.development | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 895f64e..82490c4 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -REACT_APP_API_URL=https://api.harmonydata.ac.uk/ +REACT_APP_API_URL=https://api.harmonydata.ac.uk REACT_APP_API_EXAMPLES=$REACT_APP_API_URL/text/examples REACT_APP_API_PARSE=$REACT_APP_API_URL/text/parse REACT_APP_API_MATCH=$REACT_APP_API_URL/text/match diff --git a/.env.development b/.env.development index 895f64e..82490c4 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,4 @@ -REACT_APP_API_URL=https://api.harmonydata.ac.uk/ +REACT_APP_API_URL=https://api.harmonydata.ac.uk REACT_APP_API_EXAMPLES=$REACT_APP_API_URL/text/examples REACT_APP_API_PARSE=$REACT_APP_API_URL/text/parse REACT_APP_API_MATCH=$REACT_APP_API_URL/text/match From 1d3e9f814e8c9f111f59d27a775a31567829ea5b Mon Sep 17 00:00:00 2001 From: John Rogers Date: Fri, 7 Mar 2025 14:25:38 +0000 Subject: [PATCH 04/10] Handle misconfigured env files better! --- src/components/App.js | 9 ++++-- src/contexts/DataContext.js | 63 +++++++++++++++++++++++++------------ 2 files changed, 49 insertions(+), 23 deletions(-) diff --git a/src/components/App.js b/src/components/App.js index 1cdfd70..9e4bdec 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -118,11 +118,14 @@ function App() { } exampleInstruments() .then((data) => { - setExistingInstruments(data); - console.log(data); + if (Array.isArray(data)) { + setExistingInstruments(data); + } else { + console.error("Error fetching example instruments", data); + } }) .catch((e) => { - console.log(e); + console.error("Error fetching example instruments", e); }); }, [exampleInstruments]); diff --git a/src/contexts/DataContext.js b/src/contexts/DataContext.js index dd1714a..cd114e6 100644 --- a/src/contexts/DataContext.js +++ b/src/contexts/DataContext.js @@ -30,7 +30,7 @@ export function DataProvider({ children }) { return new Promise(async (resolve, reject) => { var retries = 3; var response; - while (retries > 0 && !(response && response.ok)) { + while (retries > 0) { try { const controller = new AbortController(); const id = setTimeout(() => controller.abort(), timeout); @@ -48,20 +48,39 @@ export function DataProvider({ children }) { signal: controller.signal, }); clearTimeout(id); + + // Handle 404 immediately + if (response.status === 404) { + reject(new Error("Resource not found")); + return; + } + + // Handle other non-200 responses + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + // Success case + resolve(response.json()); + return; } catch (e) { - console.log(e); - reject(e); + console.log("Post error:", e); + retries--; + if (retries === 0) { + reject(e); + } else { + await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait 1 second before retry + } } - retries--; } - resolve(response.json()); }); }; + const retryableGetData = async ({ url = "", timeout = 5000 }) => { return new Promise(async (resolve, reject) => { var retries = 3; var response; - while (retries > 0 && !(response && response.ok)) { + while (retries > 0) { try { const controller = new AbortController(); const id = setTimeout(() => controller.abort(), timeout); @@ -78,26 +97,30 @@ export function DataProvider({ children }) { signal: controller.signal, }); clearTimeout(id); - // If successful, resolve immediately - if (response.ok) { - resolve(response.json()); - return; // Exit the loop and promise + + // Handle 404 immediately + if (response.status === 404) { + reject(new Error("Resource not found")); + return; + } + + // Handle other non-200 responses + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); } + + // Success case + resolve(response.json()); + return; } catch (e) { - console.log("Get rejection", e); - // Only reject if there are no more retries + console.log("Get error:", e); + retries--; if (retries === 0) { reject(e); + } else { + await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait 1 second before retry } } - retries--; - if (retries > 0) { - await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait 1 second - } - } - // If the loop completes without a successful response, reject - if (!(response && response.ok)) { - reject(new Error("Failed to fetch data after multiple retries")); } }); }; From faa411c4eaf5354416a7a2dbde1edad1f6695e80 Mon Sep 17 00:00:00 2001 From: John Rogers Date: Fri, 7 Mar 2025 14:37:56 +0000 Subject: [PATCH 05/10] Remove Chrome extension (moved to harmony-browser-extension) --- .gitignore | 1 + plugin/chrome/Screenshot 640.png | Bin 117833 -> 0 bytes plugin/chrome/background.js | 158 -------------- plugin/chrome/icons/128.png | Bin 7762 -> 0 bytes plugin/chrome/icons/16.png | Bin 518 -> 0 bytes plugin/chrome/icons/48.png | Bin 2559 -> 0 bytes plugin/chrome/js-base64/LICENSE.md | 27 --- plugin/chrome/js-base64/README.md | 169 -------------- plugin/chrome/js-base64/base64.d.mts | 135 ------------ plugin/chrome/js-base64/base64.d.ts | 135 ------------ plugin/chrome/js-base64/base64.js | 314 --------------------------- plugin/chrome/js-base64/base64.mjs | 294 ------------------------- plugin/chrome/js-base64/package.json | 43 ---- plugin/chrome/manifest.json | 31 --- plugin/chrome/popup.html | 109 ---------- plugin/chrome/popup.js | 89 -------- 16 files changed, 1 insertion(+), 1504 deletions(-) delete mode 100644 plugin/chrome/Screenshot 640.png delete mode 100644 plugin/chrome/background.js delete mode 100644 plugin/chrome/icons/128.png delete mode 100644 plugin/chrome/icons/16.png delete mode 100644 plugin/chrome/icons/48.png delete mode 100644 plugin/chrome/js-base64/LICENSE.md delete mode 100644 plugin/chrome/js-base64/README.md delete mode 100644 plugin/chrome/js-base64/base64.d.mts delete mode 100644 plugin/chrome/js-base64/base64.d.ts delete mode 100644 plugin/chrome/js-base64/base64.js delete mode 100644 plugin/chrome/js-base64/base64.mjs delete mode 100644 plugin/chrome/js-base64/package.json delete mode 100644 plugin/chrome/manifest.json delete mode 100644 plugin/chrome/popup.html delete mode 100644 plugin/chrome/popup.js diff --git a/.gitignore b/.gitignore index 1892a38..2f206e8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ package-lock.json package-lock.json functions/venv functions/__pycache__ +.DS_Store diff --git a/plugin/chrome/Screenshot 640.png b/plugin/chrome/Screenshot 640.png deleted file mode 100644 index 4f76bf58e81f65b3ec16f3629baa802a844cc2ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117833 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ⅆ8SkkAd*j-!T5H$)KlO4`#dfr&nyE=BEa})Z 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 E01T@id;kCd diff --git a/plugin/chrome/background.js b/plugin/chrome/background.js deleted file mode 100644 index 0d33cc0..0000000 --- a/plugin/chrome/background.js +++ /dev/null @@ -1,158 +0,0 @@ -importScripts("./js-base64/base64.js"); - -const harmonyURL = "https://harmonydata.ac.uk/app/#/"; - -const createHarmonyUrl = ({ questions, instrument_name }) => { - if ( - Array.isArray(questions) && - questions.length && - questions.every( - (q) => - typeof q === "string" || - q instanceof String || - (q.question_text && - (typeof q.question_text === "string" || - q.question_text instanceof String)) - ) - ) { - const qArray = questions.map((q, i) => { - return { - question_no: q.question_no || i, - question_text: q.question_text || q, - }; - }); - const iArray = { instrument_name: instrument_name, questions: qArray }; - return harmonyURL + "import/" + Base64.encode(JSON.stringify(iArray), true); - } else { - throw new Error( - "questions is not properly formatted - it must be an array of question texts, or an array of objects which each must have a question_text property" - ); - } -}; - -// Create context menu item -chrome.runtime.onInstalled.addListener(() => { - // Create different menu items for PDFs and regular pages - chrome.contextMenus.create({ - id: "sendToHarmony", - title: "Send to Harmony", - contexts: ["selection"], - }); - // Initialize history in storage - chrome.storage.local.set({ history: [] }); -}); - -// Function to find or create Harmony tab -async function findOrCreateHarmonyTab(url) { - // First, try to find an existing tab with our target name in the URL - const tabs = await chrome.tabs.query({}); - const harmonyTab = tabs.find( - (tab) => tab.url && tab.url.includes(harmonyURL) - ); - - if (harmonyTab) { - // Update existing tab - await chrome.tabs.update(harmonyTab.id, { url: url, active: true }); - await chrome.windows.update(harmonyTab.windowId, { focused: true }); - } else { - // Create new tab - await chrome.tabs.create({ url: url }); - } -} - -// Listen for messages from popup -chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { - if (request.action === "openHarmonyUrl") { - findOrCreateHarmonyTab(request.url); - return true; - } - if (request.action === "processPdfText") { - processSelection(request.text, request.tab); - return true; - } -}); - -chrome.contextMenus.onClicked.addListener(async function (info, tab) { - if (info.menuItemId === "sendToHarmony") { - if (tab?.id === -1 || tab?.url?.toLowerCase().includes("pdf")) { - // For PDF tabs, show popup - chrome.action.openPopup(); - return; - } - - // For non-PDF tabs, use scripting API - try { - const resultArray = await chrome.scripting.executeScript({ - target: { tabId: tab.id }, - function: () => { - const selection = document.getSelection(); - return selection ? selection.toString() : ""; - }, - }); - const selectedText = resultArray[0]?.result || ""; - if (selectedText) { - processSelection(selectedText, tab); - } - } catch (error) { - console.error("Error getting selected text:", error); - chrome.action.setBadgeText({ text: "!" }); - chrome.action.setBadgeBackgroundColor({ color: "#F44336" }); - setTimeout(() => { - chrome.action.setBadgeText({ text: "" }); - }, 2000); - } - } -}); - -async function processSelection(selectedText, tab) { - if (!selectedText) { - return; // Handle cases where no text is selected - } - - // Process the selected text here... - const questionsArray = selectedText - .split(/\r?\n|\s*/i) - .filter((line) => line.trim() !== ""); - - try { - // Create the Harmony URL with the selected text as a question - const harmonyUrl = createHarmonyUrl({ - questions: questionsArray, - instrument_name: `Imported from ${tab.title} ${tab.url}`, - }); - - // Store in history - chrome.storage.local.get(["history"], function (result) { - const history = result.history || []; - history.unshift({ - text: - selectedText.substring(0, 100) + - (selectedText.length > 100 ? "..." : ""), - url: tab.url, - timestamp: new Date().toISOString(), - harmonyUrl: harmonyUrl, - }); - // Keep only last 10 items - if (history.length > 10) history.pop(); - chrome.storage.local.set({ history: history }); - }); - - // Open or update the Harmony tab - await findOrCreateHarmonyTab(harmonyUrl); - - // Show success notification - chrome.action.setBadgeText({ text: "✓" }); - chrome.action.setBadgeBackgroundColor({ color: "#4CAF50" }); - setTimeout(() => { - chrome.action.setBadgeText({ text: "" }); - }, 2000); - } catch (error) { - // Show error notification - chrome.action.setBadgeText({ text: "!" }); - chrome.action.setBadgeBackgroundColor({ color: "#F44336" }); - setTimeout(() => { - chrome.action.setBadgeText({ text: "" }); - }, 2000); - console.error("Error:", error); - } -} diff --git a/plugin/chrome/icons/128.png b/plugin/chrome/icons/128.png deleted file mode 100644 index b96668161c1ac1e599333e7b1b95e309cefb9cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7762 zcma)hWl)?^v*rsETxNja?hxD)+$~6e;O-ED1$Pe;2m>LwYjAfB76J@z!3K8*cLJMl zZ`D@qR&CvTtgHGtPxp^L-9Ju8zf)7d!6d^3002ixQC9Px4F1nXNBwv9iJOo76Ev2J znyLWc%k)nl4gmN6!S?{bgBt)2%m6?*6#$4`GTSsn{{g5LZxv*L=l{&y&XRBcG-&Qh zs&Z)iNYq%w1ailP!T>vY&FEy#?`<6*J< zQZO=f0WXrH15E&1Q~)hHpAsryT~iccQr{IH+DZ%*iDV|P?sJ!*xHEtZr_=wf?v?}Eae#SY=$e_GB%mT-e3lZp6sBd z0E8v!Y={XDqxuU%uX7~mDQLj*E~h78C(iD1DX75wt~ztIae6E$38_J9zE{GQ=_vhE z%UBzJttxfVEBydl?mj=h(ki}aZ&U^lgJdFrA&F13*yzYwXstag`|!ko1)xq>I}V=2;TC z{uQ8+fdXjs>1I50bflxx^e^1AOxtPI#IOPr<}LQ_SFafApG%2960hKte*jn9^Okts zHJnnL1DpBIG{;rcy|1`JwY3lznG%OcR71CK><7IeT1riadtJjohv_{T7$n$sEfj$=!x<85P@@Ktc82i3wuVLCP^seuE|q5#Batb+X>V_ zrqZ9T%b?s0v*8SCwEG}AYx*>@56yfj_K5)s_W&~X_QUV)(Ew|YvO;~ z9Rrl%NE2vrvWsrjHs99UD7MU)A^bl5J z9m_07xzj+UdFlGWU{#UB5~v#w7`A^yS^SH%CurVM@otA7YNLW`X;N|p*|b-=QM-

7sRSvQUuufBr~88pD_`3>_*i8 zx&k;Lhc=6h69nvM+oldt2j(wFa&fez zWdA@{>^Q@cRQfaOMGHE(QL_#k(s3sXu>Yk@{twe2c_;M~#2G~{Assh8qwNTGXyVk8 zy#Qst0%@@AW$4Xkk>wi4UrZqs1gsCmCYLp|l~L2m!m{zL=vKQXDCZ?%{+>X3GFrY9 zKfWZ5+@Zr|#s+g$KerV_jcv(vzFHL3G$?9ZD5S_bc)3dyGV;k_91n6RQ#Kj7-$nJ! zKNpR(=kL|qTwE%QsVlyyTEMFL%_EW`RWV#_g!@nz<0VTnCcw+%iEqya~~*`6!LB&Ph|EbNZ6r*(J!rY zr+vSoxO$-96z1d=gC!T|{RYWGoZz56TQwPrT_jnZuF8YW5^=?Jp8W-d{CY7U#2%WT zcd1LvWn0DnJMKM0nU@G<@8;C8GpKVOj(J`pLn-Rdzdy)m?D4?tia$~uC0TYjb!2El zE??%5LbVrpdfiMBwHQ5Jsg87ibkeh2Pu>VmQ(|Xyp=4D?*#GWIg7!Ai9C;r~9FD|) zQuoYEXb}wd^D`E?5hCuZ;QH)*q^cHqcI%r(4S3kiEWMRKEVx{Y{GjGU!0M>w`jVlV^sO<@t99#txDW~yMS;=YU-BDs~S z=d9W9R?wQRYovm$Bc1d~3=*EGTl|J{*mBAdXYKB~^ItlJYkNw1sJ36C?5MSt9Qy}| zf)pFrQ3<7o!drEj@Y$^R@AE!lIyD}?VmmMiWJ!GZ<*#)1dND>`DL6G|qx~~&z!-9K zVsZw|_(`L%b=)@Q&|>4>C79LJF?eqJ8x)c-m^05Au)#CF$M%s;@9VvQgqv`oLXja^ zkH-~GRM+3`p}RsL`q+?jm$cIaO>63F+Ud2U;R3I@lRSUjP*t^w&P9RY^)CA|&Cxli zM#h8t#u0R5+iQUrj(dber^;O?FXdJwHJ8*&B8ak_fy&s)rA(bAtAE2Wto8UNg%{?> zw|V~_GXK?xBbJLan1-W%3Nv}7qWH>G`*u2y`?KlS1%y`??lGRb2&iSO9a4H>DsOS4 zw$La5nh6XeN>~@ZXi@NYFl54ikZsv-_Ea4p*N+csueiSJrtb<6`}BN{^)lOyl+FPz zL5qWk)}?pZ6b;wq4EO85JN?>@uX;#iTUP2b&qKdWwK4dkDV%y1;BX|3_qUsSx!h~K zzdeecdtE?`w|Z||BI8f8G6vXp`xCCcva0!6j!kt&*V+lE^_NR=9tn?8Bp;oqXd(XwnngH_f4>q z1@L#{OCGGPiSdrQTGLoJVABZ!7DbxVT&cIdqdc_+DNeJ$#AyW2J|F$mU9mOBpB_|| ze=N9xJoc&6UK3{u2H4b4z;d`y_}snaVK2h%IUcWOGgf{4MsSPU1_`w4aB&y|?BB(t zDjVfkU8cP^eu{r+@W*dN0+Y8RZ?Yuzc=4>Ym@xd}n`A$=Ng#`;3sPOat zu*he29M4W+4x}l*ToCvUr}Tw4zLn8#vigh_7xX|ayL#N=R-tbkK2bG$iYtcY-1#Iv z#hG3&QRjRiuNhk_`vHO1h_d}NFr-z{HEWyPRiFFv?xcAy%`&3;DkK_6EV+gH3#p zbH`aBwj^xoUWg0JfPeP8jX9FlK+NHG#ZkLog>jRRl)MQf>1_7hcCwHZS_z=eS~ZC)czevm}B@W4M;-{0i7>-LHTGW9Mc(|8o;5Y2u zkHU_}(r{C1&badb7Fmbb4z@*mfnS0wC}*sQN+cpD5N zWlxf8-x!0FQoMYF)sixo;HV)|{nGjdb3<|}S4N8Y0{y?p#fdbP`JN&uvHngvRRxx8 z!OCM$10Bj$_>V$n^`dspE4h(df82dEDcKYE0I8$~C!NVaM&RIpxov11%q-v`*q`;C z0=CR?YCX&LHu1E+{2EC!nU7X49hBByz}PA?Y`zS>}ZNSb#O8iSw+6{&4{{7=Yk*lRa-0 zJb3Gzv}hZJPn3^~WStZw`krl0JO)6j7yiAQ+c{)}a%ak7HWO7j+U+N8Ey+dC&IWvu zLPsZP^qwu9L9=ncG~xPryfiVF@4(`nA&pKa2#OzFjGwx$$)Cg#v2zeNfzVa&M!NKK zmVcag?zuRhUJHAW>fXZS7rT}*rj+3Q;!dBkj4+zI`k3m;Nm}&;*;6C2g!)=em{J`CrLqJ`&m_8vN^Mn1lv%s%tw^SoX5|Ss^#LD)?8HXnE&tLdgl^Vm z{8<|mnm6%y?>y$e{IFIK`l<}?@z6PI?97#i$p|axg!PBPHTt0!yyT*V&5;uqVHt@d zsSus^LMd^oX%jkwy;PQ@Ik`tJTlM1z|3^vHA)ME)qTF6NlZf!WGcBy`_<^4GM@A8Tet0)M%Dlu zMl#$E+&&3Z#+=np?<*CSQP20a){SppnEg=<+9Hl}G!&6fdwp-8OynJ7G^pR-N{Cf@{Hm9m9$F&`>`9!p?vs&zHmdxW>^SiW%f3LE~C zWl)F{wEt@3+1HZg1iq`mB06x^i)CY>`wkOXTgpy6@wUey_S;NPS7IFDWKe$HYrh=&EGwDllPws_W@q#s1WAL1? z;yQbAZ1_z~fFGXYUaP{hRO(3Nef*)h+`;t+gBX-gAH;TkPNRafMCYw>eNNR?&YUc5 zRa$Y9cG}6x66ZO}oD@mvtE-o*O2h90$DfQ%0K0`YbWeVCrx(LgimxltpfpqWt^zLG zjNq>*OPAw0RzDp__XMry*~|6c>x3VjYnrV=N@g>8M>9Zt-T)mHrn0$Q)*J|seKFX{ zmn_!I5T;SxfLB;5lSMT9^+&9Hx-~oM(a{s3U>BxF9hGMxk!MRAskA#52mp8jT0U&y z>JIHvfyW-zus+CWSctNTAR}&Lucpyl73=6}h};a6GZ-w8if;#5Y6iF=rC;Iql(NGt zcaLXIZpy+qcKb3w6pL%)5(!}Ts*t3jr^u^(v6z<%OJAfZwa_ag=Y_DfYy+;Q9>#g8 z`37gnHbuB(QXk7e)|8Kyj5_j?6MwTaPi1dF$&>L)xc7iff6RRPRIGq-Ws%s6DxM*y z>AU9K!>hTcPSfm?Y0wTJz*L9EFs~nn&@0wP=$;9Bu|9_VjhmD1ux-IO$3x zXQ`{Fw4!7(54R3L+x`=s5Lj}030r^czpi{Y-DWDb_l>dT%*$@|fwYhi&JjWBX`qfp zhZH5IBFOI;QWK^&f&|#>KUm51QE8Zdsj>4k7_*lleNCj(g6~-dGO zPX(D?een7n{{5tZ27pH2c87uCx|U8W*pHpIYRGTM=AJ5}Qk`{p!=lOI2iEJX2=nFG33_?PtUKVkN6j(fF@7m!fnX z!~VFKaU9*+jO{4ILOAHCA>b6gRe})#<|fK7wEg zScg5bXszrLq|Om#jqwI2NvFnfMLOs{)p?pm45VVs-o;biGo75L&`3cO^iZiYZ|GXZ zgb1Q=IgXv0PwW3`o_sT)P!6_Nkdrz6v*35~SDI3MISHl_9yoI~kex~Ma2~PNMjgEt zxHA2m-@2?Al$6`Dh-vKQ?YftjNuj}Nj89XP6kRN25!X(&R#r`9^s6g=?8StWHI!nO zy6TM=vJML!W{fy(vq;=~YwRCaXz6OUV6#88lMAomi?y35)Tpk6K}bbByW)rSR|FK zSVpf60*iWyp|#rw>20M{m^;x+#R!wdwyLKfLAk+0W~bc+&yTw!!xQGNJ6CkK8y8}} zPeGB!3w$SHkhvC_bH-^rx`93Nsq3H3Z^aj`FM_KDyAuIPVVS$hAHjU6ArL67v*s z^(1{001CN_2p<-{YKu+PJU2?TOfxI+pGY1Vd6JWj5K$LzMn!wgWm`mrV^~X4b9bxT z>8dR`1a#a5aCgN=`OC6{WDS<2e{Grs16F^eNaF%n!t!h@LPJpwCh{JVM%im#Qj-yL z%KF=n=iCR>@e@}85nu9lGjY5SZ(O!jIHSJ@)n&FMfVqXDZs?$aTVSKcr+|eJCfW$f zWSvU_5fceG_Q`WCv){c9n*m$uj>7C$IL-U}MLe>vBA2_qkDRi*9N}KS-%eC_5!J%~ z(#GA4WT-gJ^Rpbh(3}Z`@P2REKz2n*t}$E03l^X;M<^^WvSg%7)L~tJ?e8Qq z4GrU*n^P^AcKK?AOREOoIkq=d3-RG|7?WSNTG{+43eaEHRIqjIkl=R*Cu?n=AI9jW zXgi0`cN}Oe|Ji?$oagiK(3)NrBm3H1kP=;L$be1L#Pt3wC?e8S7rDL_+mHw>XEs66 zFDo$IJSv9p6iLE49>y|vTEO0HBJcT(`$Am_sqn?f7_v_X^e59$44I?`P1zyMHBsJO zN_U9(v1q?;wX5);SWHq^N`9;N8{T4Z(0~vmW|CL3yv^M>~ zEB^g{}p3$g3r4&A72(yITueezN{20A6lh z0S;~+4nCguJUqg@Ji`2fY~0+!+}r^_Fzf#>f}^vQy^YWRpMZT;2mVK3`9B`q?H#S% h+|3Px$z)3_wR5(v#WS|f*QmCH+rvcKl_sjhM&705kgYiG(C&men8;qV|vkbcdt5&f| z{E)lK^qp0O=^HZx(^saOj~@NfWte618{H7B28b;`XvOr0<0#WN76z~ZVEV7+gI4_$ zL>VBy;;;|nZ??_I1~7j8@AI%tcPnuQtU6lF_>-jt#eg4-)eoDs+Xx!Kw`zwF2Q%+Q z#;;5}Sw8)n%kY)sKl3lvB&Hv19{=9`(tk8v?>(|1h%jhqU=p;pwqp6kI*s8c^QPB9 zwl&BK70RzSGW}!@VEp_q>+W3jV+;(8|3UJM9M{&$v;XCs#`J^Pj_DgK57Sqsm#^=9 zlV`~D`iX3SO71rHf6S_nn7*-yF@9(H%=C@6f%Ej zQf2tUyyBgc>rQ<6Lpk}52h$I>aK`UUx4%7q)K9z2L~Jev0EObN37VW?k^lez07*qo IM6N<$f;HR#SpWb4 diff --git a/plugin/chrome/icons/48.png b/plugin/chrome/icons/48.png deleted file mode 100644 index 3473e60ee2e26cbe08df8ff6327661d5710ef121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2559 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 CK$Ow| diff --git a/plugin/chrome/js-base64/LICENSE.md b/plugin/chrome/js-base64/LICENSE.md deleted file mode 100644 index fd579a4..0000000 --- a/plugin/chrome/js-base64/LICENSE.md +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2014, Dan Kogai -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of {{{project}}} nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/plugin/chrome/js-base64/README.md b/plugin/chrome/js-base64/README.md deleted file mode 100644 index 19b0709..0000000 --- a/plugin/chrome/js-base64/README.md +++ /dev/null @@ -1,169 +0,0 @@ -[![CI via GitHub Actions](https://github.com/dankogai/js-base64/actions/workflows/node.js.yml/badge.svg)](https://github.com/dankogai/js-base64/actions/workflows/node.js.yml) - -# base64.js - -Yet another [Base64] transcoder. - -[Base64]: http://en.wikipedia.org/wiki/Base64 - -## Install - -```shell -$ npm install --save js-base64 -``` - -## Usage - -### In Browser - -Locally… - -```html - -``` - -… or Directly from CDN. In which case you don't even need to install. - -```html - -``` - -This good old way loads `Base64` in the global context (`window`). Though `Base64.noConflict()` is made available, you should consider using ES6 Module to avoid tainting `window`. - -### As an ES6 Module - -locally… - -```javascript -import { Base64 } from 'js-base64'; -``` - -```javascript -// or if you prefer no Base64 namespace -import { encode, decode } from 'js-base64'; -``` - -or even remotely. - -```html - -``` - -```html - -``` - -### node.js (commonjs) - -```javascript -const {Base64} = require('js-base64'); -``` - -Unlike the case above, the global context is no longer modified. - -You can also use [esm] to `import` instead of `require`. - -[esm]: https://github.com/standard-things/esm - -```javascript -require=require('esm')(module); -import {Base64} from 'js-base64'; -``` - -## SYNOPSIS - -```javascript -let latin = 'dankogai'; -let utf8 = '小飼弾' -let u8s = new Uint8Array([100,97,110,107,111,103,97,105]); -Base64.encode(latin); // ZGFua29nYWk= -Base64.encode(latin, true); // ZGFua29nYWk skips padding -Base64.encodeURI(latin); // ZGFua29nYWk -Base64.btoa(latin); // ZGFua29nYWk= -Base64.btoa(utf8); // raises exception -Base64.fromUint8Array(u8s); // ZGFua29nYWk= -Base64.fromUint8Array(u8s, true); // ZGFua29nYW which is URI safe -Base64.encode(utf8); // 5bCP6aO85by+ -Base64.encode(utf8, true) // 5bCP6aO85by- -Base64.encodeURI(utf8); // 5bCP6aO85by- -``` - -```javascript -Base64.decode( 'ZGFua29nYWk=');// dankogai -Base64.decode( 'ZGFua29nYWk'); // dankogai -Base64.atob( 'ZGFua29nYWk=');// dankogai -Base64.atob( '5bCP6aO85by+');// '小飼弾' which is nonsense -Base64.toUint8Array('ZGFua29nYWk=');// u8s above -Base64.decode( '5bCP6aO85by+');// 小飼弾 -// note .decodeURI() is unnecessary since it accepts both flavors -Base64.decode( '5bCP6aO85by-');// 小飼弾 -``` - -```javascript -Base64.isValid(0); // false: 0 is not string -Base64.isValid(''); // true: a valid Base64-encoded empty byte -Base64.isValid('ZA=='); // true: a valid Base64-encoded 'd' -Base64.isValid('Z A='); // true: whitespaces are okay -Base64.isValid('ZA'); // true: padding ='s can be omitted -Base64.isValid('++'); // true: can be non URL-safe -Base64.isValid('--'); // true: or URL-safe -Base64.isValid('+-'); // false: can't mix both -``` - -### Built-in Extensions - -By default `Base64` leaves built-in prototypes untouched. But you can extend them as below. - -```javascript -// you have to explicitly extend String.prototype -Base64.extendString(); -// once extended, you can do the following -'dankogai'.toBase64(); // ZGFua29nYWk= -'小飼弾'.toBase64(); // 5bCP6aO85by+ -'小飼弾'.toBase64(true); // 5bCP6aO85by- -'小飼弾'.toBase64URI(); // 5bCP6aO85by- ab alias of .toBase64(true) -'小飼弾'.toBase64URL(); // 5bCP6aO85by- an alias of .toBase64URI() -'ZGFua29nYWk='.fromBase64(); // dankogai -'5bCP6aO85by+'.fromBase64(); // 小飼弾 -'5bCP6aO85by-'.fromBase64(); // 小飼弾 -'5bCP6aO85by-'.toUint8Array();// u8s above -``` - -```javascript -// you have to explicitly extend Uint8Array.prototype -Base64.extendUint8Array(); -// once extended, you can do the following -u8s.toBase64(); // 'ZGFua29nYWk=' -u8s.toBase64URI(); // 'ZGFua29nYWk' -u8s.toBase64URL(); // 'ZGFua29nYWk' an alias of .toBase64URI() -``` - -```javascript -// extend all at once -Base64.extendBuiltins() -``` - -## `.decode()` vs `.atob` (and `.encode()` vs `btoa()`) - -Suppose you have: - -``` -var pngBase64 = - "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="; -``` - -Which is a Base64-encoded 1x1 transparent PNG, **DO NOT USE** `Base64.decode(pngBase64)`.  Use `Base64.atob(pngBase64)` instead.  `Base64.decode()` decodes to UTF-8 string while `Base64.atob()` decodes to bytes, which is compatible to browser built-in `atob()` (Which is absent in node.js).  The same rule applies to the opposite direction. - -Or even better, `Base64.toUint8Array(pngBase64)`. - -## Brief History - -* Since version 3.3 it is written in TypeScript. Now `base64.mjs` is compiled from `base64.ts` then `base64.js` is generated from `base64.mjs`. -* Since version 3.7 `base64.js` is ES5-compatible again (hence IE11-compatible). -* Since 3.0 `js-base64` switch to ES2015 module so it is no longer compatible with legacy browsers like IE (see above) diff --git a/plugin/chrome/js-base64/base64.d.mts b/plugin/chrome/js-base64/base64.d.mts deleted file mode 100644 index e44249c..0000000 --- a/plugin/chrome/js-base64/base64.d.mts +++ /dev/null @@ -1,135 +0,0 @@ -/** - * base64.ts - * - * Licensed under the BSD 3-Clause License. - * http://opensource.org/licenses/BSD-3-Clause - * - * References: - * http://en.wikipedia.org/wiki/Base64 - * - * @author Dan Kogai (https://github.com/dankogai) - */ -declare const version = "3.7.7"; -/** - * @deprecated use lowercase `version`. - */ -declare const VERSION = "3.7.7"; -/** - * polyfill version of `btoa` - */ -declare const btoaPolyfill: (bin: string) => string; -/** - * does what `window.btoa` of web browsers do. - * @param {String} bin binary string - * @returns {string} Base64-encoded string - */ -declare const _btoa: (bin: string) => string; -/** - * converts a Uint8Array to a Base64 string. - * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5 - * @returns {string} Base64 string - */ -declare const fromUint8Array: (u8a: Uint8Array, urlsafe?: boolean) => string; -/** - * @deprecated should have been internal use only. - * @param {string} src UTF-8 string - * @returns {string} UTF-16 string - */ -declare const utob: (u: string) => string; -/** - * converts a UTF-8-encoded string to a Base64 string. - * @param {boolean} [urlsafe] if `true` make the result URL-safe - * @returns {string} Base64 string - */ -declare const encode: (src: string, urlsafe?: boolean) => string; -/** - * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5. - * @returns {string} Base64 string - */ -declare const encodeURI: (src: string) => string; -/** - * @deprecated should have been internal use only. - * @param {string} src UTF-16 string - * @returns {string} UTF-8 string - */ -declare const btou: (b: string) => string; -/** - * polyfill version of `atob` - */ -declare const atobPolyfill: (asc: string) => string; -/** - * does what `window.atob` of web browsers do. - * @param {String} asc Base64-encoded string - * @returns {string} binary string - */ -declare const _atob: (asc: string) => string; -/** - * converts a Base64 string to a Uint8Array. - */ -declare const toUint8Array: (a: string) => Uint8Array; -/** - * converts a Base64 string to a UTF-8 string. - * @param {String} src Base64 string. Both normal and URL-safe are supported - * @returns {string} UTF-8 string - */ -declare const decode: (src: string) => string; -/** - * check if a value is a valid Base64 string - * @param {String} src a value to check - */ -declare const isValid: (src: any) => boolean; -/** - * extend String.prototype with relevant methods - */ -declare const extendString: () => void; -/** - * extend Uint8Array.prototype with relevant methods - */ -declare const extendUint8Array: () => void; -/** - * extend Builtin prototypes with relevant methods - */ -declare const extendBuiltins: () => void; -declare const gBase64: { - version: string; - VERSION: string; - atob: (asc: string) => string; - atobPolyfill: (asc: string) => string; - btoa: (bin: string) => string; - btoaPolyfill: (bin: string) => string; - fromBase64: (src: string) => string; - toBase64: (src: string, urlsafe?: boolean) => string; - encode: (src: string, urlsafe?: boolean) => string; - encodeURI: (src: string) => string; - encodeURL: (src: string) => string; - utob: (u: string) => string; - btou: (b: string) => string; - decode: (src: string) => string; - isValid: (src: any) => boolean; - fromUint8Array: (u8a: Uint8Array, urlsafe?: boolean) => string; - toUint8Array: (a: string) => Uint8Array; - extendString: () => void; - extendUint8Array: () => void; - extendBuiltins: () => void; -}; -export { version }; -export { VERSION }; -export { _atob as atob }; -export { atobPolyfill }; -export { _btoa as btoa }; -export { btoaPolyfill }; -export { decode as fromBase64 }; -export { encode as toBase64 }; -export { utob }; -export { encode }; -export { encodeURI }; -export { encodeURI as encodeURL }; -export { btou }; -export { decode }; -export { isValid }; -export { fromUint8Array }; -export { toUint8Array }; -export { extendString }; -export { extendUint8Array }; -export { extendBuiltins }; -export { gBase64 as Base64 }; diff --git a/plugin/chrome/js-base64/base64.d.ts b/plugin/chrome/js-base64/base64.d.ts deleted file mode 100644 index e44249c..0000000 --- a/plugin/chrome/js-base64/base64.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -/** - * base64.ts - * - * Licensed under the BSD 3-Clause License. - * http://opensource.org/licenses/BSD-3-Clause - * - * References: - * http://en.wikipedia.org/wiki/Base64 - * - * @author Dan Kogai (https://github.com/dankogai) - */ -declare const version = "3.7.7"; -/** - * @deprecated use lowercase `version`. - */ -declare const VERSION = "3.7.7"; -/** - * polyfill version of `btoa` - */ -declare const btoaPolyfill: (bin: string) => string; -/** - * does what `window.btoa` of web browsers do. - * @param {String} bin binary string - * @returns {string} Base64-encoded string - */ -declare const _btoa: (bin: string) => string; -/** - * converts a Uint8Array to a Base64 string. - * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5 - * @returns {string} Base64 string - */ -declare const fromUint8Array: (u8a: Uint8Array, urlsafe?: boolean) => string; -/** - * @deprecated should have been internal use only. - * @param {string} src UTF-8 string - * @returns {string} UTF-16 string - */ -declare const utob: (u: string) => string; -/** - * converts a UTF-8-encoded string to a Base64 string. - * @param {boolean} [urlsafe] if `true` make the result URL-safe - * @returns {string} Base64 string - */ -declare const encode: (src: string, urlsafe?: boolean) => string; -/** - * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5. - * @returns {string} Base64 string - */ -declare const encodeURI: (src: string) => string; -/** - * @deprecated should have been internal use only. - * @param {string} src UTF-16 string - * @returns {string} UTF-8 string - */ -declare const btou: (b: string) => string; -/** - * polyfill version of `atob` - */ -declare const atobPolyfill: (asc: string) => string; -/** - * does what `window.atob` of web browsers do. - * @param {String} asc Base64-encoded string - * @returns {string} binary string - */ -declare const _atob: (asc: string) => string; -/** - * converts a Base64 string to a Uint8Array. - */ -declare const toUint8Array: (a: string) => Uint8Array; -/** - * converts a Base64 string to a UTF-8 string. - * @param {String} src Base64 string. Both normal and URL-safe are supported - * @returns {string} UTF-8 string - */ -declare const decode: (src: string) => string; -/** - * check if a value is a valid Base64 string - * @param {String} src a value to check - */ -declare const isValid: (src: any) => boolean; -/** - * extend String.prototype with relevant methods - */ -declare const extendString: () => void; -/** - * extend Uint8Array.prototype with relevant methods - */ -declare const extendUint8Array: () => void; -/** - * extend Builtin prototypes with relevant methods - */ -declare const extendBuiltins: () => void; -declare const gBase64: { - version: string; - VERSION: string; - atob: (asc: string) => string; - atobPolyfill: (asc: string) => string; - btoa: (bin: string) => string; - btoaPolyfill: (bin: string) => string; - fromBase64: (src: string) => string; - toBase64: (src: string, urlsafe?: boolean) => string; - encode: (src: string, urlsafe?: boolean) => string; - encodeURI: (src: string) => string; - encodeURL: (src: string) => string; - utob: (u: string) => string; - btou: (b: string) => string; - decode: (src: string) => string; - isValid: (src: any) => boolean; - fromUint8Array: (u8a: Uint8Array, urlsafe?: boolean) => string; - toUint8Array: (a: string) => Uint8Array; - extendString: () => void; - extendUint8Array: () => void; - extendBuiltins: () => void; -}; -export { version }; -export { VERSION }; -export { _atob as atob }; -export { atobPolyfill }; -export { _btoa as btoa }; -export { btoaPolyfill }; -export { decode as fromBase64 }; -export { encode as toBase64 }; -export { utob }; -export { encode }; -export { encodeURI }; -export { encodeURI as encodeURL }; -export { btou }; -export { decode }; -export { isValid }; -export { fromUint8Array }; -export { toUint8Array }; -export { extendString }; -export { extendUint8Array }; -export { extendBuiltins }; -export { gBase64 as Base64 }; diff --git a/plugin/chrome/js-base64/base64.js b/plugin/chrome/js-base64/base64.js deleted file mode 100644 index dc837a7..0000000 --- a/plugin/chrome/js-base64/base64.js +++ /dev/null @@ -1,314 +0,0 @@ -// -// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND! -// -; -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - ? module.exports = factory() - : typeof define === 'function' && define.amd - ? define(factory) : - // cf. https://github.com/dankogai/js-base64/issues/119 - (function () { - // existing version for noConflict() - var _Base64 = global.Base64; - var gBase64 = factory(); - gBase64.noConflict = function () { - global.Base64 = _Base64; - return gBase64; - }; - if (global.Meteor) { // Meteor.js - Base64 = gBase64; - } - global.Base64 = gBase64; - })(); -}((typeof self !== 'undefined' ? self - : typeof window !== 'undefined' ? window - : typeof global !== 'undefined' ? global - : this), function () { - 'use strict'; - /** - * base64.ts - * - * Licensed under the BSD 3-Clause License. - * http://opensource.org/licenses/BSD-3-Clause - * - * References: - * http://en.wikipedia.org/wiki/Base64 - * - * @author Dan Kogai (https://github.com/dankogai) - */ - var version = '3.7.7'; - /** - * @deprecated use lowercase `version`. - */ - var VERSION = version; - var _hasBuffer = typeof Buffer === 'function'; - var _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined; - var _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined; - var b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - var b64chs = Array.prototype.slice.call(b64ch); - var b64tab = (function (a) { - var tab = {}; - a.forEach(function (c, i) { return tab[c] = i; }); - return tab; - })(b64chs); - var b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/; - var _fromCC = String.fromCharCode.bind(String); - var _U8Afrom = typeof Uint8Array.from === 'function' - ? Uint8Array.from.bind(Uint8Array) - : function (it) { return new Uint8Array(Array.prototype.slice.call(it, 0)); }; - var _mkUriSafe = function (src) { return src - .replace(/=/g, '').replace(/[+\/]/g, function (m0) { return m0 == '+' ? '-' : '_'; }); }; - var _tidyB64 = function (s) { return s.replace(/[^A-Za-z0-9\+\/]/g, ''); }; - /** - * polyfill version of `btoa` - */ - var btoaPolyfill = function (bin) { - // console.log('polyfilled'); - var u32, c0, c1, c2, asc = ''; - var pad = bin.length % 3; - for (var i = 0; i < bin.length;) { - if ((c0 = bin.charCodeAt(i++)) > 255 || - (c1 = bin.charCodeAt(i++)) > 255 || - (c2 = bin.charCodeAt(i++)) > 255) - throw new TypeError('invalid character found'); - u32 = (c0 << 16) | (c1 << 8) | c2; - asc += b64chs[u32 >> 18 & 63] - + b64chs[u32 >> 12 & 63] - + b64chs[u32 >> 6 & 63] - + b64chs[u32 & 63]; - } - return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc; - }; - /** - * does what `window.btoa` of web browsers do. - * @param {String} bin binary string - * @returns {string} Base64-encoded string - */ - var _btoa = typeof btoa === 'function' ? function (bin) { return btoa(bin); } - : _hasBuffer ? function (bin) { return Buffer.from(bin, 'binary').toString('base64'); } - : btoaPolyfill; - var _fromUint8Array = _hasBuffer - ? function (u8a) { return Buffer.from(u8a).toString('base64'); } - : function (u8a) { - // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326 - var maxargs = 0x1000; - var strs = []; - for (var i = 0, l = u8a.length; i < l; i += maxargs) { - strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs))); - } - return _btoa(strs.join('')); - }; - /** - * converts a Uint8Array to a Base64 string. - * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5 - * @returns {string} Base64 string - */ - var fromUint8Array = function (u8a, urlsafe) { - if (urlsafe === void 0) { urlsafe = false; } - return urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a); - }; - // This trick is found broken https://github.com/dankogai/js-base64/issues/130 - // const utob = (src: string) => unescape(encodeURIComponent(src)); - // reverting good old fationed regexp - var cb_utob = function (c) { - if (c.length < 2) { - var cc = c.charCodeAt(0); - return cc < 0x80 ? c - : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6)) - + _fromCC(0x80 | (cc & 0x3f))) - : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f)) - + _fromCC(0x80 | ((cc >>> 6) & 0x3f)) - + _fromCC(0x80 | (cc & 0x3f))); - } - else { - var cc = 0x10000 - + (c.charCodeAt(0) - 0xD800) * 0x400 - + (c.charCodeAt(1) - 0xDC00); - return (_fromCC(0xf0 | ((cc >>> 18) & 0x07)) - + _fromCC(0x80 | ((cc >>> 12) & 0x3f)) - + _fromCC(0x80 | ((cc >>> 6) & 0x3f)) - + _fromCC(0x80 | (cc & 0x3f))); - } - }; - var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; - /** - * @deprecated should have been internal use only. - * @param {string} src UTF-8 string - * @returns {string} UTF-16 string - */ - var utob = function (u) { return u.replace(re_utob, cb_utob); }; - // - var _encode = _hasBuffer - ? function (s) { return Buffer.from(s, 'utf8').toString('base64'); } - : _TE - ? function (s) { return _fromUint8Array(_TE.encode(s)); } - : function (s) { return _btoa(utob(s)); }; - /** - * converts a UTF-8-encoded string to a Base64 string. - * @param {boolean} [urlsafe] if `true` make the result URL-safe - * @returns {string} Base64 string - */ - var encode = function (src, urlsafe) { - if (urlsafe === void 0) { urlsafe = false; } - return urlsafe - ? _mkUriSafe(_encode(src)) - : _encode(src); - }; - /** - * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5. - * @returns {string} Base64 string - */ - var encodeURI = function (src) { return encode(src, true); }; - // This trick is found broken https://github.com/dankogai/js-base64/issues/130 - // const btou = (src: string) => decodeURIComponent(escape(src)); - // reverting good old fationed regexp - var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g; - var cb_btou = function (cccc) { - switch (cccc.length) { - case 4: - var cp = ((0x07 & cccc.charCodeAt(0)) << 18) - | ((0x3f & cccc.charCodeAt(1)) << 12) - | ((0x3f & cccc.charCodeAt(2)) << 6) - | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000; - return (_fromCC((offset >>> 10) + 0xD800) - + _fromCC((offset & 0x3FF) + 0xDC00)); - case 3: - return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12) - | ((0x3f & cccc.charCodeAt(1)) << 6) - | (0x3f & cccc.charCodeAt(2))); - default: - return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6) - | (0x3f & cccc.charCodeAt(1))); - } - }; - /** - * @deprecated should have been internal use only. - * @param {string} src UTF-16 string - * @returns {string} UTF-8 string - */ - var btou = function (b) { return b.replace(re_btou, cb_btou); }; - /** - * polyfill version of `atob` - */ - var atobPolyfill = function (asc) { - // console.log('polyfilled'); - asc = asc.replace(/\s+/g, ''); - if (!b64re.test(asc)) - throw new TypeError('malformed base64.'); - asc += '=='.slice(2 - (asc.length & 3)); - var u24, bin = '', r1, r2; - for (var i = 0; i < asc.length;) { - u24 = b64tab[asc.charAt(i++)] << 18 - | b64tab[asc.charAt(i++)] << 12 - | (r1 = b64tab[asc.charAt(i++)]) << 6 - | (r2 = b64tab[asc.charAt(i++)]); - bin += r1 === 64 ? _fromCC(u24 >> 16 & 255) - : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255) - : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255); - } - return bin; - }; - /** - * does what `window.atob` of web browsers do. - * @param {String} asc Base64-encoded string - * @returns {string} binary string - */ - var _atob = typeof atob === 'function' ? function (asc) { return atob(_tidyB64(asc)); } - : _hasBuffer ? function (asc) { return Buffer.from(asc, 'base64').toString('binary'); } - : atobPolyfill; - // - var _toUint8Array = _hasBuffer - ? function (a) { return _U8Afrom(Buffer.from(a, 'base64')); } - : function (a) { return _U8Afrom(_atob(a).split('').map(function (c) { return c.charCodeAt(0); })); }; - /** - * converts a Base64 string to a Uint8Array. - */ - var toUint8Array = function (a) { return _toUint8Array(_unURI(a)); }; - // - var _decode = _hasBuffer - ? function (a) { return Buffer.from(a, 'base64').toString('utf8'); } - : _TD - ? function (a) { return _TD.decode(_toUint8Array(a)); } - : function (a) { return btou(_atob(a)); }; - var _unURI = function (a) { return _tidyB64(a.replace(/[-_]/g, function (m0) { return m0 == '-' ? '+' : '/'; })); }; - /** - * converts a Base64 string to a UTF-8 string. - * @param {String} src Base64 string. Both normal and URL-safe are supported - * @returns {string} UTF-8 string - */ - var decode = function (src) { return _decode(_unURI(src)); }; - /** - * check if a value is a valid Base64 string - * @param {String} src a value to check - */ - var isValid = function (src) { - if (typeof src !== 'string') - return false; - var s = src.replace(/\s+/g, '').replace(/={0,2}$/, ''); - return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s); - }; - // - var _noEnum = function (v) { - return { - value: v, enumerable: false, writable: true, configurable: true - }; - }; - /** - * extend String.prototype with relevant methods - */ - var extendString = function () { - var _add = function (name, body) { return Object.defineProperty(String.prototype, name, _noEnum(body)); }; - _add('fromBase64', function () { return decode(this); }); - _add('toBase64', function (urlsafe) { return encode(this, urlsafe); }); - _add('toBase64URI', function () { return encode(this, true); }); - _add('toBase64URL', function () { return encode(this, true); }); - _add('toUint8Array', function () { return toUint8Array(this); }); - }; - /** - * extend Uint8Array.prototype with relevant methods - */ - var extendUint8Array = function () { - var _add = function (name, body) { return Object.defineProperty(Uint8Array.prototype, name, _noEnum(body)); }; - _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); }); - _add('toBase64URI', function () { return fromUint8Array(this, true); }); - _add('toBase64URL', function () { return fromUint8Array(this, true); }); - }; - /** - * extend Builtin prototypes with relevant methods - */ - var extendBuiltins = function () { - extendString(); - extendUint8Array(); - }; - var gBase64 = { - version: version, - VERSION: VERSION, - atob: _atob, - atobPolyfill: atobPolyfill, - btoa: _btoa, - btoaPolyfill: btoaPolyfill, - fromBase64: decode, - toBase64: encode, - encode: encode, - encodeURI: encodeURI, - encodeURL: encodeURI, - utob: utob, - btou: btou, - decode: decode, - isValid: isValid, - fromUint8Array: fromUint8Array, - toUint8Array: toUint8Array, - extendString: extendString, - extendUint8Array: extendUint8Array, - extendBuiltins: extendBuiltins - }; - // - // export Base64 to the namespace - // - // ES5 is yet to have Object.assign() that may make transpilers unhappy. - // gBase64.Base64 = Object.assign({}, gBase64); - gBase64.Base64 = {}; - Object.keys(gBase64).forEach(function (k) { return gBase64.Base64[k] = gBase64[k]; }); - return gBase64; -})); diff --git a/plugin/chrome/js-base64/base64.mjs b/plugin/chrome/js-base64/base64.mjs deleted file mode 100644 index fe9cfa5..0000000 --- a/plugin/chrome/js-base64/base64.mjs +++ /dev/null @@ -1,294 +0,0 @@ -/** - * base64.ts - * - * Licensed under the BSD 3-Clause License. - * http://opensource.org/licenses/BSD-3-Clause - * - * References: - * http://en.wikipedia.org/wiki/Base64 - * - * @author Dan Kogai (https://github.com/dankogai) - */ -const version = '3.7.7'; -/** - * @deprecated use lowercase `version`. - */ -const VERSION = version; -const _hasBuffer = typeof Buffer === 'function'; -const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined; -const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined; -const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; -const b64chs = Array.prototype.slice.call(b64ch); -const b64tab = ((a) => { - let tab = {}; - a.forEach((c, i) => tab[c] = i); - return tab; -})(b64chs); -const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/; -const _fromCC = String.fromCharCode.bind(String); -const _U8Afrom = typeof Uint8Array.from === 'function' - ? Uint8Array.from.bind(Uint8Array) - : (it) => new Uint8Array(Array.prototype.slice.call(it, 0)); -const _mkUriSafe = (src) => src - .replace(/=/g, '').replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_'); -const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, ''); -/** - * polyfill version of `btoa` - */ -const btoaPolyfill = (bin) => { - // console.log('polyfilled'); - let u32, c0, c1, c2, asc = ''; - const pad = bin.length % 3; - for (let i = 0; i < bin.length;) { - if ((c0 = bin.charCodeAt(i++)) > 255 || - (c1 = bin.charCodeAt(i++)) > 255 || - (c2 = bin.charCodeAt(i++)) > 255) - throw new TypeError('invalid character found'); - u32 = (c0 << 16) | (c1 << 8) | c2; - asc += b64chs[u32 >> 18 & 63] - + b64chs[u32 >> 12 & 63] - + b64chs[u32 >> 6 & 63] - + b64chs[u32 & 63]; - } - return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc; -}; -/** - * does what `window.btoa` of web browsers do. - * @param {String} bin binary string - * @returns {string} Base64-encoded string - */ -const _btoa = typeof btoa === 'function' ? (bin) => btoa(bin) - : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64') - : btoaPolyfill; -const _fromUint8Array = _hasBuffer - ? (u8a) => Buffer.from(u8a).toString('base64') - : (u8a) => { - // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326 - const maxargs = 0x1000; - let strs = []; - for (let i = 0, l = u8a.length; i < l; i += maxargs) { - strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs))); - } - return _btoa(strs.join('')); - }; -/** - * converts a Uint8Array to a Base64 string. - * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5 - * @returns {string} Base64 string - */ -const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a); -// This trick is found broken https://github.com/dankogai/js-base64/issues/130 -// const utob = (src: string) => unescape(encodeURIComponent(src)); -// reverting good old fationed regexp -const cb_utob = (c) => { - if (c.length < 2) { - var cc = c.charCodeAt(0); - return cc < 0x80 ? c - : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6)) - + _fromCC(0x80 | (cc & 0x3f))) - : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f)) - + _fromCC(0x80 | ((cc >>> 6) & 0x3f)) - + _fromCC(0x80 | (cc & 0x3f))); - } - else { - var cc = 0x10000 - + (c.charCodeAt(0) - 0xD800) * 0x400 - + (c.charCodeAt(1) - 0xDC00); - return (_fromCC(0xf0 | ((cc >>> 18) & 0x07)) - + _fromCC(0x80 | ((cc >>> 12) & 0x3f)) - + _fromCC(0x80 | ((cc >>> 6) & 0x3f)) - + _fromCC(0x80 | (cc & 0x3f))); - } -}; -const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; -/** - * @deprecated should have been internal use only. - * @param {string} src UTF-8 string - * @returns {string} UTF-16 string - */ -const utob = (u) => u.replace(re_utob, cb_utob); -// -const _encode = _hasBuffer - ? (s) => Buffer.from(s, 'utf8').toString('base64') - : _TE - ? (s) => _fromUint8Array(_TE.encode(s)) - : (s) => _btoa(utob(s)); -/** - * converts a UTF-8-encoded string to a Base64 string. - * @param {boolean} [urlsafe] if `true` make the result URL-safe - * @returns {string} Base64 string - */ -const encode = (src, urlsafe = false) => urlsafe - ? _mkUriSafe(_encode(src)) - : _encode(src); -/** - * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5. - * @returns {string} Base64 string - */ -const encodeURI = (src) => encode(src, true); -// This trick is found broken https://github.com/dankogai/js-base64/issues/130 -// const btou = (src: string) => decodeURIComponent(escape(src)); -// reverting good old fationed regexp -const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g; -const cb_btou = (cccc) => { - switch (cccc.length) { - case 4: - var cp = ((0x07 & cccc.charCodeAt(0)) << 18) - | ((0x3f & cccc.charCodeAt(1)) << 12) - | ((0x3f & cccc.charCodeAt(2)) << 6) - | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000; - return (_fromCC((offset >>> 10) + 0xD800) - + _fromCC((offset & 0x3FF) + 0xDC00)); - case 3: - return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12) - | ((0x3f & cccc.charCodeAt(1)) << 6) - | (0x3f & cccc.charCodeAt(2))); - default: - return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6) - | (0x3f & cccc.charCodeAt(1))); - } -}; -/** - * @deprecated should have been internal use only. - * @param {string} src UTF-16 string - * @returns {string} UTF-8 string - */ -const btou = (b) => b.replace(re_btou, cb_btou); -/** - * polyfill version of `atob` - */ -const atobPolyfill = (asc) => { - // console.log('polyfilled'); - asc = asc.replace(/\s+/g, ''); - if (!b64re.test(asc)) - throw new TypeError('malformed base64.'); - asc += '=='.slice(2 - (asc.length & 3)); - let u24, bin = '', r1, r2; - for (let i = 0; i < asc.length;) { - u24 = b64tab[asc.charAt(i++)] << 18 - | b64tab[asc.charAt(i++)] << 12 - | (r1 = b64tab[asc.charAt(i++)]) << 6 - | (r2 = b64tab[asc.charAt(i++)]); - bin += r1 === 64 ? _fromCC(u24 >> 16 & 255) - : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255) - : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255); - } - return bin; -}; -/** - * does what `window.atob` of web browsers do. - * @param {String} asc Base64-encoded string - * @returns {string} binary string - */ -const _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc)) - : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary') - : atobPolyfill; -// -const _toUint8Array = _hasBuffer - ? (a) => _U8Afrom(Buffer.from(a, 'base64')) - : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0))); -/** - * converts a Base64 string to a Uint8Array. - */ -const toUint8Array = (a) => _toUint8Array(_unURI(a)); -// -const _decode = _hasBuffer - ? (a) => Buffer.from(a, 'base64').toString('utf8') - : _TD - ? (a) => _TD.decode(_toUint8Array(a)) - : (a) => btou(_atob(a)); -const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/')); -/** - * converts a Base64 string to a UTF-8 string. - * @param {String} src Base64 string. Both normal and URL-safe are supported - * @returns {string} UTF-8 string - */ -const decode = (src) => _decode(_unURI(src)); -/** - * check if a value is a valid Base64 string - * @param {String} src a value to check - */ -const isValid = (src) => { - if (typeof src !== 'string') - return false; - const s = src.replace(/\s+/g, '').replace(/={0,2}$/, ''); - return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s); -}; -// -const _noEnum = (v) => { - return { - value: v, enumerable: false, writable: true, configurable: true - }; -}; -/** - * extend String.prototype with relevant methods - */ -const extendString = function () { - const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body)); - _add('fromBase64', function () { return decode(this); }); - _add('toBase64', function (urlsafe) { return encode(this, urlsafe); }); - _add('toBase64URI', function () { return encode(this, true); }); - _add('toBase64URL', function () { return encode(this, true); }); - _add('toUint8Array', function () { return toUint8Array(this); }); -}; -/** - * extend Uint8Array.prototype with relevant methods - */ -const extendUint8Array = function () { - const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body)); - _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); }); - _add('toBase64URI', function () { return fromUint8Array(this, true); }); - _add('toBase64URL', function () { return fromUint8Array(this, true); }); -}; -/** - * extend Builtin prototypes with relevant methods - */ -const extendBuiltins = () => { - extendString(); - extendUint8Array(); -}; -const gBase64 = { - version: version, - VERSION: VERSION, - atob: _atob, - atobPolyfill: atobPolyfill, - btoa: _btoa, - btoaPolyfill: btoaPolyfill, - fromBase64: decode, - toBase64: encode, - encode: encode, - encodeURI: encodeURI, - encodeURL: encodeURI, - utob: utob, - btou: btou, - decode: decode, - isValid: isValid, - fromUint8Array: fromUint8Array, - toUint8Array: toUint8Array, - extendString: extendString, - extendUint8Array: extendUint8Array, - extendBuiltins: extendBuiltins -}; -// makecjs:CUT // -export { version }; -export { VERSION }; -export { _atob as atob }; -export { atobPolyfill }; -export { _btoa as btoa }; -export { btoaPolyfill }; -export { decode as fromBase64 }; -export { encode as toBase64 }; -export { utob }; -export { encode }; -export { encodeURI }; -export { encodeURI as encodeURL }; -export { btou }; -export { decode }; -export { isValid }; -export { fromUint8Array }; -export { toUint8Array }; -export { extendString }; -export { extendUint8Array }; -export { extendBuiltins }; -// and finally, -export { gBase64 as Base64 }; diff --git a/plugin/chrome/js-base64/package.json b/plugin/chrome/js-base64/package.json deleted file mode 100644 index 477bbc5..0000000 --- a/plugin/chrome/js-base64/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "js-base64", - "version": "3.7.7", - "description": "Yet another Base64 transcoder in pure-JS", - "main": "base64.js", - "module": "base64.mjs", - "types": "base64.d.ts", - "sideEffects": false, - "files": [ - "base64.js", - "base64.mjs", - "base64.d.ts", - "base64.d.mts" - ], - "exports": { - ".": { - "import": { - "types": "./base64.d.mts", - "default": "./base64.mjs" - }, - "require": { - "types": "./base64.d.ts", - "default": "./base64.js" - } - }, - "./package.json": "./package.json" - }, - "scripts": { - "test": "make clean && make test" - }, - "devDependencies": { - "@types/node": "^20.11.5", - "mocha": "^10.2.0", - "typescript": "^5.3.3" - }, - "repository": "git+https://github.com/dankogai/js-base64.git", - "keywords": [ - "base64", - "binary" - ], - "author": "Dan Kogai", - "license": "BSD-3-Clause" -} diff --git a/plugin/chrome/manifest.json b/plugin/chrome/manifest.json deleted file mode 100644 index c549681..0000000 --- a/plugin/chrome/manifest.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "manifest_version": 3, - "name": "Send to Harmony", - "version": "1.0", - "description": "Send selected text to Harmony with a right-click. For PDFs, use the popup to paste your selected text.", - "permissions": ["contextMenus", "storage", "scripting", "activeTab", "tabs"], - "icons": { - "16": "icons/16.png", - "48": "icons/48.png", - "128": "icons/128.png" - }, - "background": { - "service_worker": "background.js" - }, - "action": { - "default_popup": "popup.html", - "default_icon": { - "16": "icons/16.png", - "48": "icons/48.png", - "128": "icons/128.png" - }, - "context_menus": [ - { - "id": "sendToHarmony", - "title": "Send to Harmony", - "contexts": ["selection"] - } - ] - }, - "host_permissions": [] -} diff --git a/plugin/chrome/popup.html b/plugin/chrome/popup.html deleted file mode 100644 index ac4e106..0000000 --- a/plugin/chrome/popup.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - Send to Harmony - - - -

- -

Send to Harmony

-

- Select text you would like to harmonise, right-click, and choose "Send - to Harmony". -

-

- Harmony will open in a new tab with your items ready to harmonise, vist - other websites to add further items to your harmonisation. -

- - - -
-

Recent Imports

-
-
No imports yet
-
-
-
- - - diff --git a/plugin/chrome/popup.js b/plugin/chrome/popup.js deleted file mode 100644 index 1ef2f02..0000000 --- a/plugin/chrome/popup.js +++ /dev/null @@ -1,89 +0,0 @@ -// Check if we're dealing with a PDF tab -chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { - const currentTab = tabs[0]; - if (currentTab?.id === -1 || currentTab?.url?.toLowerCase().includes("pdf")) { - document.getElementById("pdfInput").style.display = "block"; - } -}); - -// Handle PDF text submission -document.getElementById("submitPdf").addEventListener("click", function () { - const text = document.getElementById("pdfText").value; - if (text) { - chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { - const currentTab = tabs[0]; - chrome.runtime.sendMessage({ - action: "processPdfText", - text: text, - tab: currentTab, - }); - window.close(); - }); - } -}); - -// Function to format relative time -function getRelativeTime(timestamp) { - const now = new Date(); - const past = new Date(timestamp); - const diffInSeconds = Math.floor((now - past) / 1000); - - if (diffInSeconds < 60) { - return "just now"; - } else if (diffInSeconds < 3600) { - const minutes = Math.floor(diffInSeconds / 60); - return `${minutes} minute${minutes > 1 ? "s" : ""} ago`; - } else if (diffInSeconds < 86400) { - const hours = Math.floor(diffInSeconds / 3600); - return `${hours} hour${hours > 1 ? "s" : ""} ago`; - } else { - const days = Math.floor(diffInSeconds / 86400); - return `${days} day${days > 1 ? "s" : ""} ago`; - } -} - -// Update history list -function updateHistory() { - chrome.storage.local.get(["history"], function (result) { - const historyList = document.getElementById("historyList"); - const history = result.history || []; - - if (history.length === 0) { - historyList.innerHTML = '
No imports yet
'; - return; - } - - historyList.innerHTML = history - .map( - (item) => ` -
-
${item.text}
-
From: ${item.url}
-
${getRelativeTime(item.timestamp)}
-
- ` - ) - .join(""); - - // Make history items clickable to reopen in Harmony - const historyItems = historyList.getElementsByClassName("history-item"); - Array.from(historyItems).forEach((item, index) => { - item.style.cursor = "pointer"; - item.addEventListener("click", () => { - // Send message to background script to open URL - chrome.runtime.sendMessage({ - action: "openHarmonyUrl", - url: history[index].harmonyUrl, - }); - // Close the popup - window.close(); - }); - }); - }); -} - -// Update history when popup opens -document.addEventListener("DOMContentLoaded", updateHistory); - -// Update history every minute to refresh relative times -setInterval(updateHistory, 60000); From cc4407d05bfc26bb0176714b52b91939f6018314 Mon Sep 17 00:00:00 2001 From: John Rogers Date: Fri, 7 Mar 2025 15:37:52 +0000 Subject: [PATCH 06/10] tidied up plugin move --- .DS_Store | Bin 6148 -> 8196 bytes .gitignore | 42 ++++++++-- README.md | 120 +++++++++++++++++++++++++++ plugin.zip | Bin 45714 -> 0 bytes plugin/README.md | 19 ----- plugin/Store submisson attributes.md | 39 --------- 6 files changed, 155 insertions(+), 65 deletions(-) delete mode 100644 plugin.zip delete mode 100644 plugin/README.md delete mode 100644 plugin/Store submisson attributes.md diff --git a/.DS_Store b/.DS_Store index 7269109194afbe42ce449bde60aebfcc84cbc568..2bf305b4274375503a86c2237d0e1f2a8b1e65bb 100644 GIT binary patch literal 8196 zcmeHMO>fgc5S>lGoVJuA0V?8Ri5n_yX&cn4myougN`O#<-~cH2Bc!H|H?k8_sj8GS z{0}59+>p5PC-^(?X6;6{Q*!}91-sSm*z0+-yKiR4S(k`Jt>@k*S|B0=mF4^lnllPN z=Q>hKNzXM%0X&hr=S#=-r9GmnJ2V5D0nLDBKr^5jI3En)oz2B4c<;wgb*mZB4E&c2 zaDFgRSymG{h^0y$Xw(q^ava^N;2P%ug)tLZP2?b!3JRO?=|Ln=ksL8Z499bm)gh~i z9K!{LUNcKI-asRTOlN z9Fi1Lgg=KYYEy@n=nd{91*x+?W54FG)6}FR>Y@#x?=gZRH*$PiN}sJ?px5XQpzPz!PMwhXGt%9ic{rwm#=8-hwE#KTOjBCK-9r<6OU=mG7~Hto_Qs?%}r;5q6h1r~iA{_IX#!Uj} zW0o!Ue~uA^v$&b!FQaSsqfYYa>Wkg+y{Nmg@=cV+#wRAHj45Nrcv(M?{d(8x_M(~< zKIgk92wnU1+OnT|&3uYyTPRhoW8_Qe!jYGd3$ah#Pib&pp*fH7i9=Dk_y{(6V zFM}3?P^Z(}U`IHJyQ3UO*tQvt@|X_1+0J4(YBCs}Ll3*yhYy^bE+VB^_iy`PZG(BQ ztp5fd4A-CYL7DckU+>ZmJ%n7su1bG2MdIY0kYQ*Hdp6ATSVG)qv<#J6IsZL|?R)u5 z#koU#NX7nj>cf-vaF=m3a0cQW+)}Y2F}IHD2_qP{}q!g_;PDhL{N9EViLame96 i3~_Bjl`+*s4q}NOlt2C<;Ag+V^!s1G|5a4}`^^te?+EPx delta 318 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50D98?y2a9DgtqckbMxHtO$x!Ve+xbEGKNJAj80tX|A;LPv9&DP+f{XHU^7GPxa*UHZMLtg~ udAFFIgF}!RC;$Wk+(5z=6a*U!zcWwfm+=HSiGc|cIH2%i*c{I@hZz9MZAM%G diff --git a/.gitignore b/.gitignore index 2f206e8..fbd521c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,37 @@ -/build +# Dependencies /node_modules -/testPDFs -package-lock.json -/wireframes -package-lock.json -functions/venv -functions/__pycache__ +/.pnp +.pnp.js + +# Testing +/coverage + +# Next.js +/.next/ +/out/ + +# Production +/build + +# Misc .DS_Store +*.pem + +# Debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Local env files +.env*.local + +# Vercel +.vercel + +# TypeScript +*.tsbuildinfo +next-env.d.ts + +# Extension files +/extensions/ +harmonydata.github.io.code-workspace diff --git a/README.md b/README.md index 885d81a..045ee43 100644 --- a/README.md +++ b/README.md @@ -118,3 +118,123 @@ The alternative method is to call the globally available function `createHarmony You can raise an issue in the [issue tracker](https://github.com/harmonydata/harmony/issues), and you can open a [pull request](https://github.com/harmonydata/harmony/pulls). Please contact us at https://harmonydata.ac.uk/contact or write to thomas@fastdatascience.com if you would like to be involved in the project. + +# Harmony Browser Extensions + +Browser extensions for sending selected text to Harmony. Available for Chrome, Firefox, and Safari. + +## Features + +- Right-click to send selected text to Harmony +- Popup interface for pasting text from PDFs +- Seamless integration with Harmony Data platform +- Cross-browser support + +## Development + +The extensions are built using vanilla JavaScript and browser-specific Extension APIs. Each browser extension is located in its own directory: + +- `extensions/chrome/`: Chrome extension +- `extensions/firefox/`: Firefox add-on +- `extensions/safari/`: Safari extension + +### Common Components + +Each extension shares similar core functionality: +- Context menu integration +- Popup interface +- Text selection handling +- PDF text extraction + +### Local Development + +1. Clone the repository: + ```bash + git clone https://github.com/harmonydata/harmony-browser-extension.git + cd harmony-browser-extension + ``` + +2. Install dependencies: + ```bash + npm install + ``` + +3. Load the extension in your browser: + + **Chrome:** + - Open Chrome and go to `chrome://extensions/` + - Enable "Developer mode" + - Click "Load unpacked" and select the `extensions/chrome` directory + + **Firefox:** + - Open Firefox and go to `about:debugging` + - Click "This Firefox" on the left + - Click "Load Temporary Add-on" + - Select the `extensions/firefox/manifest.json` file + + **Safari:** + - Open Safari and go to Safari > Settings > Extensions + - Enable "Developer mode" + - Click "Load Extension" + - Select the `extensions/safari` directory + +## Publishing + +The extensions are automatically published to their respective stores when changes are pushed to the main branch. This is handled by GitHub Actions. + +### Chrome Web Store + +1. Go to the [Chrome Web Store Developer Dashboard](https://chrome.google.com/webstore/devconsole) +2. Create a new item or select your existing extension +3. Get your Extension ID from the URL +4. Go to the "API Access" tab +5. Create a new API key: + - Click "Create new credentials" + - Choose "Chrome Web Store API" + - Save the Client ID and Client Secret + +### Firefox Add-ons + +1. Go to the [Firefox Add-ons Developer Hub](https://addons.mozilla.org/developers/) +2. Create a new add-on or select your existing one +3. Get your Add-on ID +4. Generate API credentials in the Developer Hub + +### Safari Extensions + +1. Go to the [Apple Developer Portal](https://developer.apple.com) +2. Create a new Safari extension or select your existing one +3. Get your Extension ID +4. Generate API credentials in the Developer Portal + +### Configuring GitHub Secrets + +Add the following secrets to your GitHub repository (Settings > Secrets and variables > Actions): + +**Chrome:** +- `CHROME_EXTENSION_ID` +- `CHROME_CLIENT_ID` +- `CHROME_CLIENT_SECRET` +- `CHROME_REFRESH_TOKEN` + +**Firefox:** +- `FIREFOX_EXTENSION_ID` +- `FIREFOX_API_KEY` +- `FIREFOX_API_SECRET` + +**Safari:** +- `SAFARI_EXTENSION_ID` +- `SAFARI_API_KEY` +- `SAFARI_API_SECRET` + +## Contributing + +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/amazing-feature`) +3. Commit your changes (`git commit -m 'Add some amazing feature'`) +4. Push to the branch (`git push origin feature/amazing-feature`) +5. Open a Pull Request + +## License + +This project is licensed under the MIT License - see the LICENSE file for details. diff --git a/plugin.zip b/plugin.zip deleted file mode 100644 index d9c9a04246e1e027969a8d2b528e1797ae194c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45714 zcma&N1C%Ds(k|NOv~AnAZM&y!+qP|6)3)vIY1_8#J~R9O&;9*T+Gzya_9?5vzk&28vZlwknCaa^)Z|F<~1K?4AS zJOTm${Oe}YdsZ);!+a`EdY}#|y}(e< zt^9>%>icmAlaodtTcXGePJ?Q%`YQK~NZEtH)`O2>`KepySawom^o+w z3SVFCos-pnQR%31o`_1;I7B5#Cv#{ii1sm~-74uZYPv3M7Rr`xhe{16V*gaT2?bM; ziIk?OsJXZJVOeM^&5IzFa1Ux;%~Tv;_#=>gnq0C&?h~-I=(#HXqJ~9a7nCcy3E(NHU+L7swo9|{*DUMsR}!ZI1C}^fA8gj z#9gbY6IMC&C@r3vxtZ1Co@a#i%GYx1=e$;+!LRQ2t(`bqTAV1ve$Aqd)PE2dprH94 z+!c;WZAr9rXm`yrf(~;mSs>pr=&82+klJ(nEVpUp8JND-NPq^L}+ zQa34S9n?(Ys$0$0yUm$gWoVB5lCw1%@Sw@sh&#}p{oH&JO1_!Kn)17<(LFaq3X)TV zTtp)oYf&n+5%4`xGM6r4nX#C&ichQF;tS_B1IG^SziS84&GB zO;it)&7sL4|LGHf8cy)r_>Yt?++ZyoPp6&@o=-e^DR2lfLUcw3kUwzr2Xp>GBWNwY z{|C}Q&;bD8|3M>KVI^H9CtC;Of5FjleU_=ANVe(U_TS*>GED%gpB`T1djSfRO{0Ah zrBeW&M}Q8WJPaQN`KRk)8+QiGYk>i@bMc8UeW!@&oJ-;uh@VXCFUTDLWbt8)D�M z#x+G|OKjQ0?zO85=XXh(!8HO_b%W5e@-2@Vf*^Rou&>$y)WT_>5coal@b|z{;Gbkz zxu#BE^803T;O(-kN5)RFXpMzDI47LxnJM-!^xdoM`DuTyx895izCr{NB0qg&re1X+ zZU@wPsZ5oeblZk>&NJ2Nj~%Ek*ddHg`|YAUbN;G5r^g>8YX$l{WF+$sxQlBjQ#}K{8yRWU8#vW4c|V{y zbYL=gEWkP}_`nww{z(9(UHo1@VD^w85P@_Q`kyC%djk#u9oEav^5^+~`|w}A`*Q-o z-|)|b{=G){XF@F;X$lU zXld$T>uh86zg^bNA6IqvNB*||rm;zF(`KC&x%*iut84(j3ih&EgD$IBAd|MN#RW3s zf)Y|wv%s*Kks?u9iSAM9!bPryY?XjQvN8L|We8{(N#gPMG1rKfj)d`)!w^;Be9(`r z^G(Rbi?OXWZ}+QXHG|-pa;fEP1n0n%hEuI5wTca- z*d`?hFc2=ld=w-qn49GE zILpowD9R5R<_FeEEUKNNv@+a?MZCkE==!fr3Rx3iSctkTA(@C&1RMig^oUEgSpMp; zXrn(3M(N4NlDi&MLPTRh*|JhTT)~(gBr8akP*%{Gs~f5~@QWwSC778Yq+oa?dmQdA zdSK4%X&iF7A<;b$DuJ}z$TyZE@)Nh1XEX{zjIF%DwXaPbTFN!%NDOJOKJ*QzQ+#_3I0chTF3C6N3q!araal!Z^RLJP zO-Z+r%PuHHoh=RE_j$B0F6Rzim)wo;Zzq%_S~O-#3B9Eu#wFbR|Cg69<2&xj?h zbY`!uH-<}wNdXUc=@6@k*R4xbBLFpNL0p7+x^O<>gu@_5-NIL=RZAh+Wo^k1cFw5y zXV=P6*TCFEi>|?73N5k>^x0b`#~^^+=nFNTiAs<5Ld-SgFKWy@@t)BcU5SDT)cve# zoDvJ3wa0O}P6OvtRzTa6ox5#9t8#vU|xwU7pnR zgE$oPu1_4yZ%y3g_|2zHr4hL&o?JBey906QA;CH?mHkx`yJ@A@#cn@n&Lt zcY$gIG_a}^n3{>8X!*)se-T0kHFNI*zn!v80zCEXM$xN#Vf&L^;l-VU-HUU_hlf~6 z2a^jzl9qdG9W7vpcf{^m{lEd*XJc=3rbTqv@G4~Apv#(Lan=K|%DusDfBOSrreC0Q zyQ&Ra)7DbNi_Jv}x5D-QCQ}O<&&FJxMHgOM?fUKV2xEhDU~KB5)+WS@jP0Kv{4Ws;erxJACHS36jEa}H5!M52rn&uyk9=fwaK zwY?kqcc*%xwa*uKlT(;IWQy`0Kh1gXqBWLGR=ZM%*bXOqji^n!yFOduk9>PC7sQ!5 zqALfkh^>}c#KJFVLlkj;E(Zw)#n=!Z&nS6@Ad-3>OT%D8+D+jsU+oRSgFpm((5#i; zFbH+k5x;?2CNhif8ZL5hN*!5fskow@vpa@|@j$)C5wg~GUVzZw&!_n~iQg@hH@Q4q zJ_c%$?C45-a0-UqJf2%2yE_Jak6)*JZ#*3{KHz+|dE}SH$Yj&Ew*R`r&K$1@9WVfZ zzh3Ge|0VuE{FgD*|H~cz7uzy(vbOqHfP?NCZ_4m*3;!{Ur(<$ z$7dwu?xgjaxhLQ_)KRytykaz+y(c6}Se*g7$rR1(Id>|X8g}2aWq|Y}vX|0z0Bq1_ z5ukH6==(dHILzTT`B0D)qFWs*ylV}L0}6kNKy~W(K;MpQ z>QYBiSmUDanm@Exo!Mb+9ltx8IG2X46;cXm*-Vur=`Z8B2?o5SWGGMpGm1 z1jKL`y6B3UyD~|f!~87Eit8XcRm znT}HQ*&xAGAwR<8MBD*P9c7BoEN}vzCYDiDli21r&a}EO89sXn6SH9#9ff-{{Seu<_wcN6++IJ1pPs9n9 zj-^XfUVZi{JOVL|Vbp40HU#

T{ZDMZyR+(T@gbwqC3aQ=PsaM_F7V!a8>mC~%VT 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 S7Y2q9^5={K*}ddJ@BSagN?ect diff --git a/plugin/README.md b/plugin/README.md deleted file mode 100644 index b6ab95f..0000000 --- a/plugin/README.md +++ /dev/null @@ -1,19 +0,0 @@ -![The Harmony Project logo](https://raw.githubusercontent.com/harmonydata/brand/main/Logo/PNG/%D0%BB%D0%BE%D0%B3%D0%BE%20%D1%84%D1%83%D0%BB-05.png) - -# Harmony Plugin - -## Chrome developer installation - -[Google instructions](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world) - -### TL:DR - -Open chrome extensions settings: "chrome://extensions" -Toggle "Developer mode" -Click the new "Load unpacked" button -Select the chrome folder. -When the extension appears is it most useful to pin it to allow the popover features - -## Deployment - -Until Google approve the plugin there seems to be no way to setup a CI/CD pathway - though once we have a published ID and url we can use Github Actions to update the plugin in store. diff --git a/plugin/Store submisson attributes.md b/plugin/Store submisson attributes.md deleted file mode 100644 index adf0e5f..0000000 --- a/plugin/Store submisson attributes.md +++ /dev/null @@ -1,39 +0,0 @@ -# Description ( seperate to manifest summary ) - -Send to Harmony enables users to send selected text from any webpage to the Harmony Data Harmonization (https://harmonydata.ac.uk/) platform for analysis. This plugin provides a right-click or context menu item which allows users to add selected content from any page on the internet into their harmonisations, making it easier to compare and analyze different measurement scales across research studies. - -# Justifications - -## Single purpose - -Send to Harmony enables users to send selected text from any webpage or PDF to the Harmony Data Harmonization platform for analysis. With a simple right-click, users can harmonize questionnaire items and survey instruments, making it easier to compare and analyze different measurement scales across research studies. - -## Context Menu - -Justification: Required for the right-click "Send to Harmony" menu functionality. -Used for: Creating and handling the context menu item that allows users to select text for harmonization. - -## Storage - -Justification: Required for maintaining user's harmonization history. -Used for: Storing and retrieving previous harmonizations, allowing users to access their history through the popup. - -## Scriping - -Justification: Required for executing content scripts to capture selected text. -Used for: Running the text selection script in active tabs via chrome.scripting.executeScript(). - -## ActiveTab - -Justification: Required for accessing the current tab's content. -Used for: Getting selected text and tab information from the active tab. - -## Tabs - -Justification: Required for advanced tab management. -Used for: - -Finding existing Harmony tabs (chrome.tabs.query) -Updating tab URLs (chrome.tabs.update) -Managing window focus (chrome.windows.update) -Creating new tabs (chrome.tabs.create) From 810543aaa96637a78c48340567964014ddf7596c Mon Sep 17 00:00:00 2001 From: John Rogers Date: Tue, 11 Mar 2025 12:22:29 +0000 Subject: [PATCH 07/10] Fix to https://github.com/harmonydata/app/issues/46 --- src/components/App.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/App.js b/src/components/App.js index 9e4bdec..dd3561d 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -154,6 +154,20 @@ function App() { if (fileInfos) return match(fileInfos, forceModel).then((data) => { let simpleApi = simplifyApi(data, fileInfos); + + // Filter existing computedMatches to remove any references to removed instruments + setComputedMatches(prev => { + if (!prev) return prev; + const validQuestionIndices = new Set( + fileInfos.flatMap((f, i) => + f.questions.map((_, qIdx) => qIdx) + ) + ); + return prev.filter(match => + validQuestionIndices.has(match.qi) && validQuestionIndices.has(match.mqi) + ); + }); + setApiData(simpleApi); }); }, From a1fec8239cb7027333d69257157ea50daacea271 Mon Sep 17 00:00:00 2001 From: ronnyTodgers Date: Thu, 13 Mar 2025 22:37:47 +0000 Subject: [PATCH 08/10] Delete plugin directory --- plugin/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 plugin/.DS_Store diff --git a/plugin/.DS_Store b/plugin/.DS_Store deleted file mode 100644 index c3d0bca1dce608fb5bf07c0fb2a45edda6e46fbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}&BV5T4~nN{9&uP4u>jR}uk5G+r9S7qCVTYLE(%#?mDe?17N|-uzJ*#FJ|EU1YMk{6@hkI3?%K8>qyabSKle)g9l^ zuS=yue_?n1tDv8B%3EhDnskGxKh_CBua6Ff< zimWx8$McGuoz$xpd3bO%pBJ6&z5UaR&Qmyy)Qe$K;76xr)8YbN(O4?#*&9cpiXPEV zIe7@MWCan#Uv?HJFfs$o05h=G4A|?_DXn#tTpTmN4E%-xx*sGep=&WUsILxO^ay~M zL$?;RX_lZIY0G%lZBm7gnl}nFLgKw z*C4OV05h=60L^|VW$ORuKhOU Date: Thu, 13 Mar 2025 22:38:22 +0000 Subject: [PATCH 09/10] Delete plugin.pem --- plugin.pem | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 plugin.pem diff --git a/plugin.pem b/plugin.pem deleted file mode 100644 index d602a0f..0000000 --- a/plugin.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3PsQmrgFl/3+o -KC7tQ+JkoZdgVJVicPxRu7hEjEDr4DGs6p+8gFGIkT4imqH+eNc2Kmjr1hlaIiQp -AksFyVl7pUHi0W02PYC6MbQgBLojUmnnBFWPqavFr2AgjMnN8cLxx6ktkRd8KcLz -JuZMULzTqzqEgNj+67yWzBF2dyD7g0omax6dVS/ZvP38CaiFG83FTwBhCAQ2PN6K -OrpWOLBjONGHi7R34ljb+MLPyradAHCqRjdNmAZbarf2nkxfUSLE+9S8eMKfc2Ld -cszGd9ccH1vwR4kQFIZhfjVt/knKVArBxP1Hifv0zKzRYs6plpC5L5MEm8ZFCKvE -GCGJQVI1AgMBAAECggEABEmqMlOBAd98H7Ws/21Gt18WmTDxe+ez57+yPJxhioNo -9ihZS4JfJghsAUhIARnXw1MzuEz+s963pOQCWGTRPLTtuT54RTwkLncqRVOG/XuY -scimreFk/Q+w+qIAuNpu2tR2r3PFLmkVwDXJTsDW4kcP6/jN2w0uEQM+Z1y7P1dV -XdyDf4tQD8JNrRneLLXJmUulfs34OxRdT8+O06ZOc7kYZ05k0nb8RSFLNCkqotUG -+kM04mo1CFhSQFBqD8tXPagFeCIZhWbarW16lfJq/CdzwGL+E1U+0f5hAj6ui7Ag -VpB9GG19B5LaanxNP7bjXiBghWcpzKfirdxtlt6PoQKBgQD7QDfL8P/uv2FuteEg -KmXo/g3JxD+PNS/DurPi/8zBC6wEyBmEITZMnATXEcyacYZoh7LMJER7IABon6ck -uK7FfweahwXDqWH9zu2bfQJWO7cuPx4vNtKhPMD8STwXQirqS6WVrDVp3oOlbSyR -32e2IYP+a10cn9K6fk6wnkGGcQKBgQC6tXl14zQuz6zelfKQxY6x7occqWSJ3PoC -KHFzOS9nHYfv/P8lmDo9ejQi7EGWSRS7YOWHGnQbCnF44n+QdBF0uoRGM9oN/EP2 -vzLOY2rUqunnxZIccckW70kd/tTt8SLcvG7B2dW0Ye2MYoGSLRI10mRF7IQooddQ -4xu//0HSBQKBgEorzAz9qWA+yTGYqcwIGCuvDDz7HVRWfDJI5J/nqfd3TaHfvICg -GVqGWHtxOriBOQ+Ut7jCICFE8jnwn7QcfSO6e3En2RDI6S+3LbfQMKdqW4pggbWo -doe42rPfnsiy9N5T1J8Zxm7pjG2CjDzH+eLvg/rQkR1JJTl+3hYPsgJRAoGADu8Z -Cf7kW6Is15jyz/WdVkoX8Ij0C7rrHGUTvf2i9wJ7rwxzdBRbBDPUG779+AFccShs -84OAKfGJ5ftn7Kv8AXQxxFO9a0T0QrZEYBG/p8cL8ofxCeloBjeZh5asfWO+QB2q -VkMQPt9eWs4+Quzr+fYcIyOp5n4bdNLVk2PdZekCgYBiCh2D0tz/4hFZEAHOYP46 -SGg/l/y81kAHT9iXqv9lNwqRiuIeL7+dZjfHxcjgOT1MZXxV4NEjpjcePnnok4JK -Vsb3G2qVylAuZIxaMki4h3PBlc4D5iiUawLGKxdpc6PDD9JTl5XCcUqV2McmPZMW -C3opgefkMSncPmcLV5J02g== ------END PRIVATE KEY----- From 88ebab945836a323254ee10e3e5ec0f5d258d707 Mon Sep 17 00:00:00 2001 From: ronnyTodgers Date: Thu, 13 Mar 2025 22:38:52 +0000 Subject: [PATCH 10/10] Delete plugin.crx --- plugin.crx | Bin 38303 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 plugin.crx diff --git a/plugin.crx b/plugin.crx deleted file mode 100644 index f0c9dde3bcad7f5c942adbaba2bdb2026aca26bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38303 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 LgFvGZjM;wx