From 21b3cf8ae7df061ba6fd95462b6762d65cfb0aa2 Mon Sep 17 00:00:00 2001 From: Ethan Mahlstedt Date: Mon, 12 May 2025 13:32:56 -0700 Subject: [PATCH 1/6] Efficiency and compatibility depuration / JetBrains compatibility --- .gitignore | 3 +- README.md | 22 +++++++++++ docs/CreateFile.md | 8 ++++ docs/CustomColors.md | 0 docs/OpenFile.md | 0 docs/SaveFile.md | 1 + docs/Shortcuts.md | 3 ++ docs/ViewerWindows.md | 0 front/editor/editor.js | 85 +++++++++++++++++++----------------------- 9 files changed, 75 insertions(+), 47 deletions(-) create mode 100644 README.md create mode 100644 docs/CreateFile.md create mode 100644 docs/CustomColors.md create mode 100644 docs/OpenFile.md create mode 100644 docs/SaveFile.md create mode 100644 docs/Shortcuts.md create mode 100644 docs/ViewerWindows.md diff --git a/.gitignore b/.gitignore index b584e3a..3bd55ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules dist -test \ No newline at end of file +test +.idea \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..55f4fb5 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +

WebBox

+ +--- + +![WebBox Logo](./resources/banner/banner.png) + +WebBox is an interactive code editor focused on web development, providing live window updates. + +--- + +* [Create a File](./docs/CreateFile.md) +* [Open a File](./docs/OpenFile.md) +* [Save a File](./docs/SaveFile.md) +* [Create a Viewer Window](./docs/ViewerWindows.md) +* [Shortcuts](./docs/Shortcuts.md) +* [Customize Colors](./docs/CustomColors.md) + +--- +Developed as a school project by **Ethan Mahlstedt** + +--- +

v1.0-rc1

\ No newline at end of file diff --git a/docs/CreateFile.md b/docs/CreateFile.md new file mode 100644 index 0000000..82541ac --- /dev/null +++ b/docs/CreateFile.md @@ -0,0 +1,8 @@ +# Create File + +--- + +WebBox can create files using the built-in file creation function. + +The **"Create File"** function is capable of creating files based of presets saved on the `filePresets` folder. + diff --git a/docs/CustomColors.md b/docs/CustomColors.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/OpenFile.md b/docs/OpenFile.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/SaveFile.md b/docs/SaveFile.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docs/SaveFile.md @@ -0,0 +1 @@ + diff --git a/docs/Shortcuts.md b/docs/Shortcuts.md new file mode 100644 index 0000000..9df4564 --- /dev/null +++ b/docs/Shortcuts.md @@ -0,0 +1,3 @@ +# Shortcuts + +--- \ No newline at end of file diff --git a/docs/ViewerWindows.md b/docs/ViewerWindows.md new file mode 100644 index 0000000..e69de29 diff --git a/front/editor/editor.js b/front/editor/editor.js index 04c3b46..dbea9bc 100644 --- a/front/editor/editor.js +++ b/front/editor/editor.js @@ -71,8 +71,8 @@ OpenedFiles.NEWCOLUMN("usesCRLF"); // Control Variables /////////////////////////////////////////////////////////////// -var fieldShown = false; -var isClosing = false; +let fieldShown = false; +let isClosing = false; let currentFile = null; /////////////////////////////////////////////////////////////// @@ -121,6 +121,7 @@ function openFile(file, callback) { fileFMT.SET("savedScroll", null); fileFMT.SET("savedCursor", null); + // noinspection JSIgnoredPromiseFromCall newFileDiv(file); const fileData = fs.readFileSync(file, { encoding: "utf-8" }); @@ -162,7 +163,7 @@ async function closeFile(file) { } let savedData; - savedData = await fs.readFileSync(file, { encoding: "utf-8" }); + savedData = fs.readFileSync(file, { encoding: "utf-8" }); const data = OpenedFiles.READ( OpenedFiles.FINDQUICKINDEX("fileLink", file), @@ -202,23 +203,8 @@ async function closeFile(file) { saveButton.addEventListener( "click", () => { - fs.writeFileSync(file, normalized, { options: "utf-8" }); - OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); - div.remove(); - saveDialog.remove(); - - if (OpenedFiles.GETJSONDATA().length === 0) { - unloadFiles(); - if (isClosing) { - ipcRenderer.send("closeWindow"); - } - return; - } else { - if (currentFile === file) { - const nextFile = OpenedFiles.GETJSONDATA()[0].fileLink; - loadFileIntoEditor(nextFile); - } - } + fs.writeFileSync(file, normalized, { encoding: "utf-8" }); + closeFileClearDialogs(div, saveDialog, file); }, { once: true } ); @@ -229,26 +215,29 @@ async function closeFile(file) { dontSaveButton.addEventListener( "click", () => { - OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); - div.remove(); - saveDialog.remove(); - - if (OpenedFiles.GETJSONDATA().length === 0) { - unloadFiles(); - if (isClosing) { - ipcRenderer.send("closeWindow"); - } - return; - } else { - if (currentFile === file) { - const nextFile = OpenedFiles.GETJSONDATA()[0].fileLink; - loadFileIntoEditor(nextFile); - } - } + closeFileClearDialogs(div, saveDialog, file); }, { once: true } ); + function closeFileClearDialogs(div, saveDialog, file){ + OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); + div.remove(); + saveDialog.remove(); + + if (OpenedFiles.GETJSONDATA().length === 0) { + unloadFiles(); + if (isClosing) { + ipcRenderer.send("closeWindow"); + } + } else { + if (currentFile === file) { + const nextFile = OpenedFiles.GETJSONDATA()[0].fileLink; + loadFileIntoEditor(nextFile); + } + } + } + const cancelButton = document.createElement("button"); cancelButton.id = "cancelSaveButtonDialog"; cancelButton.innerHTML = "Cancel"; @@ -387,13 +376,14 @@ document.addEventListener("keydown", async (event) => { openNewFile(); } else if (event.key.toLowerCase() === "q") { event.preventDefault(); - closeFile(currentFile); + await closeFile(currentFile); if (OpenedFiles.GETJSONDATA().length === 0) { isClosing = true; ipcRenderer.send("closeWindow"); } } else if (event.key.toLowerCase() === "w") { event.preventDefault(); + // noinspection DuplicatedCode if (currentFile === null) return; if (event.shiftKey) { if (!currentFile.endsWith(".html") && !currentFile.endsWith(".htm")) { @@ -458,7 +448,7 @@ function saveFile() { ? data.replace(/(? { isClosing = true; if (OpenedFiles.GETJSONDATA().length > 0) { event.preventDefault(); + // noinspection ES6MissingAwait OpenedFiles.GETJSONDATA().forEach(async (e) => { await closeFile(e.fileLink); }); @@ -682,7 +673,7 @@ window.addEventListener("blur", () => { /////////////////////////////////////////////////////////////// function checkField() { - fieldShown = OpenedFiles.GETJSONDATA().length > 0 ? true : false; + fieldShown = OpenedFiles.GETJSONDATA().length > 0; if (fieldShown) { document.getElementById("noOpenedFileContainer").style.display = "none"; document.getElementById("noOpenedFileDialog").style.display = "none"; @@ -728,7 +719,7 @@ let dir = null; dirBtn.addEventListener("click", () => { ipcRenderer.invoke("get-dir").then((response) => { - if (response.status == 0) { + if (response.status === 0) { document.getElementById("fileDirLbl").innerHTML = response.dir; dir = response.dir; } @@ -778,13 +769,13 @@ createBtn.addEventListener("click", async () => { if (args.dir == null || args.name == null || args.preset == null) { alert("Argument missing."); } else { - let filedata = ""; + let fileData = ""; if (args.preset !== "none") { - filedata = fs.readFileSync(args.preset, { encoding: "utf-8" }); + fileData = fs.readFileSync(args.preset, { encoding: "utf-8" }); } - fs.writeFileSync(path.join(args.dir, args.name), filedata); + fs.writeFileSync(path.join(args.dir, args.name), fileData); openFile(path.join(args.dir, args.name), () => { loadFileIntoEditor(path.join(args.dir, args.name)); @@ -804,6 +795,7 @@ createBtn.addEventListener("click", async () => { const openViewerBtn = document.getElementById("OpenViewerBtn"); openViewerBtn.addEventListener("click", (event) => { + // noinspection DuplicatedCode if (currentFile === null) return; if (event.shiftKey) { if (!currentFile.endsWith(".html") && !currentFile.endsWith(".htm")) { @@ -880,6 +872,7 @@ ipcRenderer.on("deleteWindow", (event, fileLink) => { ///////////////////////////////////////////////////////// // prettier-ignore +// noinspection JSUnusedLocalSymbols function printOnBackConsole(args) { // eslint-disable-line // Debug function ipcRenderer.send("printOnBackConsole", args); From 02acf6eb27ec08bd136a8c5a69d268dc44754375 Mon Sep 17 00:00:00 2001 From: Ethan Mahlstedt Date: Tue, 13 May 2025 23:31:53 -0700 Subject: [PATCH 2/6] Create File --- README.md | 2 +- docs/CreateFile.md | 24 ++++++++++++++++-- .../docs/fileCreation/FileCreationWindow.png | Bin 0 -> 18891 bytes 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 resources/docs/fileCreation/FileCreationWindow.png diff --git a/README.md b/README.md index 55f4fb5..0415bc5 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,4 @@ WebBox is an interactive code editor focused on web development, providing live Developed as a school project by **Ethan Mahlstedt** --- -

v1.0-rc1

\ No newline at end of file +

Last modified at 12/05/25 by Ethan Mahlstedt; v1.0-rc1

\ No newline at end of file diff --git a/docs/CreateFile.md b/docs/CreateFile.md index 82541ac..37cf08a 100644 --- a/docs/CreateFile.md +++ b/docs/CreateFile.md @@ -1,8 +1,28 @@ +###### Go back to [index](../README.md) + +--- + # Create File +### Shortcut `Ctrl + N` + --- -WebBox can create files using the built-in file creation function. +WebBox can create files using the built-in file creation function. The **"Create File"** function is capable of creating files based of presets saved on the `filePresets` folder. + +
+ Create File Dialog +
+ +--- -The **"Create File"** function is capable of creating files based of presets saved on the `filePresets` folder. +Filename **must** include extension. + +--- + + +Filename and folder **are mandatory**. + +--- +

Last modified at 12/05/25 by Ethan Mahlstedt; v1.0-rc1

\ No newline at end of file diff --git a/resources/docs/fileCreation/FileCreationWindow.png b/resources/docs/fileCreation/FileCreationWindow.png new file mode 100644 index 0000000000000000000000000000000000000000..8b85d2696f97de56f987133b2bb73b95a5d65dab GIT binary patch literal 18891 zcmcG#Wn5cdw>4U&Sc^lEVuc2$P%OoYd$8ix;uI^v-6cqo-~=rtrD$-c6!!wftv~`4 zcbB{Sf1c;u_n!BDJm*7xu(J1FS$nRv<{Wd5v0!QtxyQIvxOeW{d8{BWt#RkhT_o@^ zz{Uc;acY&g0RG%{){v9DQ#wTR2WUL7l2DPja|acRclG`u(8l>FujhQ{4mtDR&s_x# zroB6N6y7OFOT6_k-p<7HA;r|+#zzIn;*4wKN(AT3v8T{4F*2D;2|Z+HeD{V+oiQZi z0rOLaIWMm}-fT5_+WB&Jsxj5?*gZHImoDUtg>?-TWJmt9;(!uup;pc~DvP|tfyp$wz3(>vL z!{5(*WipSU4NLnRw!AYU^>LSz?einEmUnII61r~v^u;tQFLpn*)a{mv>AtL{TUGfJ z-iSPst9iHc>^`Zb3T?z6@g|(H7f*g9;sn2Bwa31(HzXc)pe+5xIZHolIxZ_|O4JAI zc)+_C`wV=KMD_{AK|Q5A&bj;_j(Uriw1f$IuTEar(ForWSKW?9YFsW0u3Y@C4KiBs z`Yg1Kl_)gVlr=$e`M@!HGw}YW&3(6qjD+KTk7HQ>UU#-}peTV!Ur#NZMBNIV40D#GqsT`V{Z3y?i}RY{60YSmE_v5aDqDibIFVnAiJO z3Emi)_%V3O(zprVCmlcXaPcd&;??Oz5z2S`wA{i|@Txm+b59Mz&C$CN?CE~gjn7b` zz&M+5Df>P?86pZk-WbQ*-`}^Mt>M(K{vdub-ZbfpR&d+bvyUK@#KvLn!dHYOJQee)lY?}j3R-+G^&JBK zUf{2YQti(|Pr*^PWl1QdSUnPkkU06#0u}0ciA3OkLW4J8B1vr2vws@1694Os8u-}W zQajIwUo6p-udrBISwjdV(}^gfER>T`(`=UEc(Xk=>pyd!ih5OH+JNzmUiCc9OiVPV zY?q4RL^E}ED8mRPw_>Bm;|UWv(H+q+YjX>W_v7ERbX)yI89K0vjhm_5=Upi@G&PSG z3!|rl9}(0^V%lIGFEkX(T5n!+88=~*lapU2U0?ab9TZQ)mnq~9$@?P2==2;ICjzzDLw z`ii%P=yN=l6TcuD9UWx>jY9Pr-8i`n>vE!bd@o!c87VJLWNP|7;NajGG=Q}5s#E+5 zh2N@m0LLdsy+BsdwMMJf8hyLE(^BZ6cy(vvC(2Cj*Tlp(aUyc^3Z>-65|8xDz*#1TU%?4`Ut#jU;0Mk&}B< z^!0}5K{S{?y@(2dRy_aD^*j{xgZ^sbVWnx4i7(X}*H^sp`rlW1xR2cIJBq8ElZ00rOSJKRqi-%1vT+$%9zh;laj-TvwY`C}^fn&*6_IfKXYK)NI)DAi% zooGb;Un*OzVv#1%w*9FLOSazD-FlObddAjB(3r#jsQbj!r{VJgZ`+&y*oKi4$zkWY z{q)1JwLz;8!S2NU))rAC2-h#4rI4jzqO{1(bz^jtt0=UeqU|~wRA-Q+Dfwm^i{~lk z?WS~$QitPdt8%Aa%i|2cTU8$|t8>o2Y%0fOs07gyzdvBhJMAB5XlfY=#eAHkWjQ~!? zH;+$WRg;3$A%0PK8zwpBT;c9G@%e?9ak0yvDXx?>$WyG%+!|Pe^ANhark{cN4$3Bc zPp)Q$PPBUR6UkP7iL93-FYM{_rYX}I_i8CB`Tm3`WUOjC4b4=63~t=-VT?E8oQf8` zp9>3TY2x+`lsJC&P=VzRVu-u-m`zW6F2y zI?H4kl4>lsaiFri`HCIh!fP&Dq4cqdFlKJ`B>3ZohFflf3-!TT#0hfs-60-E$b!(# zwO4V3d|Nl{$$u6bkpy^IWyt#vC&Up^~v;vYMe zqt1SI9{leup)9QiG3Zw#kxt3dChcW8;O#G59aITx*zk8`MV_Be)f}pN9Ad*mO;vhuLb(=)f{-yZx{8*MN zBO7Q;8rCE6Un`OY`DnmQYWz~0dSYMhIp*ki?a<1`d;D62MpjusKfU7QzJ^_Yc4(E;tMV<_q*L+4SaNy=r)fr;eB*mH;B8L0 zfR~Z)QxJ1^!Cv&(LRX%753yQp9o2JqM%$tNGnAY2lNt>)jh5!^2amOoEpwckCl) z*jfkiK(`DIG~61He9YlLaq9fAFE$4aYToaKr>qCPc3!vnMSJs%A)iv{@aEOo0mj8h znK`3jlad0Rh7(%YruD@pPGLJg$!?o%ZuCuN5`a{1@hwhJj}WqXtqH zPrW*-{BQlt&COX*jWYcYd4WdQ+bb z6)TwHfgeA6ooJ>iEur|~|H3ILjLhfMNvPMXti8O+;lu_#3XBgs@go6<6BRuYPYCZ2 zfR4tQsX=pM(nuLX_{4e1`%^j0DzyflP}IQx;y20vJ;e527`(p=bRXdxao)Pt(Hf!z z*!{)o4RI+c$tz|6G>Y?T%So!$#F4yuA&Cv6H6NfA@hGW!{uE7SAb);Ahs;$s4V47!fgMz){{_wBWXA?Xz1?STUW%5%_u zPI-CxH{nm79c=~@3Xiq;dIK<73&sftsmgkJHDLH5>0u%*{{dSSbQ;PBJC!EnivOOnL~wNExD%Rn6y z9C{Vf^+hRd_EY8WpYobxFR!e4KBvKA0TJ_wC_x`g8ov)# z#m9o&10Y<)Ul@mlAr<>OOaPmW<{*AN0>*=dk=Cb5)I0;OZ?`QSQtWdEu@42$#_c?{ zLS=@PKT6_K&D82#iO;gEMmz*Uk0!F@Pe&VabP3zdD1%5JjQKuN^H{%VGM+h;B+ldd zT|UGhBI%g+jK3^9!6>47GkQ^w6xHlz|9IA5zGJ&Y4x%qyWp6)4=YKRPy^vne;$-%) z;5z5o%vaZwA;U0!+mhtUJl0KFZeU0`hF{P`@zd|BT+WYR^=k*5 z8ZPKB+y03P_}9j-T<&(<+P6#heO!%=bc%JDH7KiGm z#UyS@8>Q5>!i}P%RE(l0_>3T-y78H?5h?FwZym!t`PVy*uyr`!-OAnCZ{pZ(U%T_& zQ`kFs;%7HQ^P{KhTKDcMKd#z|v{P2xiQOzE7Q{c$b%DIuWqMSADJ}NjqDu`6+^#x& zMecmK+u0#u^s}&9h`_X2!p!RZdHSlq)62h$3W?RriWj?kiC^vYvxcSgL!y`f^(Uvo zu;Z(K)?17sVjrcV6GOsv&CU%bBh9_)f9>1&FJviWFe+lt)7$%p)POH#Bf-aA&=N0x z?85sQ7ML;xj~w9yB4k^UM&FlK&1u1BG9L3-6Cy9ZG`A=p>=a*~NO z`zYPIC!iRe7;YoAeEe?ln*r{s*i)Zc(-lnBy;sr47fesCk!VV$WmU+-)Fc|Zqo=7h z^BCEYGsY(hW7-}QfPtchMC0RERxFu*{N3{;j8~+G<`MQR;`Tin(%R5Hf>?S%dm4>3 z$F9;=|4)@(*@&}?`DZ&jJk<~r=*)@#;+x&-U_Aau?kn*!6}B%QW%!>yfuwDj#f_an zg^tOLzH-fnU4d=nt94a}!=!zW(JqSEHY;}dX}ryQgzDfD{Xk|t)^!US=Z3C8&x=&J zBRH+`9?8qswqWhv-3fAf_XB#D(blL}#cRw+a1@X4`Z(jyqDik>Ci67jlJ5^h8GhLE zO22nwTb}irnPRsfPcDN-mFxxD37N}&u@`jU+hHTz)|fbcjS2bG zDt4N+k_Wn~y0}Yoa-VpB$dz*Pm9M`GcURQze0B!r?fEFpNb+8k0x<;qPuNuqu8Ppx%-0QoeGxYssu(HVJD!mp>ia_65 zbA0`j@CuLLBAq*j<|_kkuq)-7FYVUdfBd<4Ckv9(kt)d7{$Zrc{?nH@$`NQBh6Jab z*CiP9o2CnX2Hfxz7N3EMS?4LTIwe)WzfTD)%o|rCzNsg0*629ilk>0^19vj;@Xy-% zbfzGnOD`Ynj5s$37jh3kdBjn@-gPE_# z^Sl&An=z+nx;pZfZ@zPh5|~x$G|p}^Bh{UM4Xd~chy&jIcdBNb86=ka6%plDD5A@g z+ln~>tEZQb{EM04i(gROL0ye<02J@fqX(*7lrvgK^MnUe5c%fCVgw=LU>xNY&9;#` z9+0~*AGr6OqHotlYDwhp2Xc6Cum=1$O8tDE3e#FUgX@-5G^>SJe?H;djFsgk??Wt{>+*79cAc7 z%)pn&qOI|PP+Yo1&GO3QEb)-ThQ~knR$ZDNoSSC8>q2DtcH8V&4v@P(91)cR+ngng z;hH}tYBPFVaomlNen)rddqlhXecPFQscn45-4cA9R{rLXEJrH%-u{KIisChjN}LY@ zfes8jhm}Wz(_W~5J)?4FBX#}L%{&y&!I^_FrR`%~FGR}-9mQBR?+r}c|FEECwK<;@ zUg9sZ>|L{PNcNFZ+vOQ|XAN0pNRB1_?mwxLrisclx$jmqbaamyBwl$OlBzwRD3Nyt z$*7*_%`NyEOyT9s~%;)J0C$-Hm z`Pe)?Yly^BS(P_8Xr>OttI|g6*tObCg0Y6K>r+_k8Uk>*!7ffsF=n=2vTlyAXJ8j| zv(KXHi>g;LV{HUIKiTZ|_NR;7kNao7?xRWPs2RVhRiFYLBhKa-d@!~dKuu=*O513X z1tbwTwL>XxT0}CPxhM!^;mOd12VPPk179tvvK#lGgD9soMFX3o2xI=(V~bfgAs)0f zF))q^M;(Gd_8DUNAZgK)#{-W7{do$jYhPTB))mwZ4Ve;F*b+qeC6Pjscp~QU^Q4ylCVfc|&I3SbSYTUan z89Ith4}xJDkBNDNFm7{3yYnu9L3F`*&zGw&yxuS8eIFL(SAgJ7>`qXNKs8ntOKMy0 zfJx-mcPBI#oCQsZcZ^Zw1j^5HVwLnti&_lI*7$YmCdq=7*M;#(EV;}4IarXXAOI<* zNB!)B#jS?_wb%bN0L?+jcK{!y;QzaGv%W;u^(oY6=mG_YZh-4%`pL#q$#nP^r4-Yd zDx13F34@VbsYiXR9e?5PoZGDZ`a*N#K~}?3d$`%Q{W*3NSqB zG!ai;uj7qST2U{Sc^~)-l^@HUQLL=QWId%K(=kXGP|n5yh=YOjA8(?PNw}Y0E`1bw z36#3=DS4&S=yR`oa9{%Yspi}PP04Beq2&K0CFX=xGftyTJ#?-}Nao)4u0LIGZ?EEs z`SA*Y}oJe(TeY8{oGR(i_bsBHRkT{k%T_2{m9m)Eo zU_fO(KFAacpgK-uy4K|*6ilhXHa$En;GbQ}Kr)(6_kR}Xdw~i(P)Gu}jVYi8MkpDv zo%281D9=QkodP{}h;>{oIxn02U=AVlCUN%1(TRkm5d*(UM_KfofyJN)MhRrV(geJg z1hgVkyjkIqmMQS9?y7&iFEbcC&0Fx#cQn?OGfsbPAk($;(NY!2PCxMzNy;BFn7KzK z!^a^ce{)$B2w7tBweXU>LWsbj-L6|GU!N1XC)D?0gFdB{4HEu*@I#tfe6T%pxYI^) zqrD>7IOy@8C()IL3k0z?m%5?ND>98G$%WkxZyUHGeO>de3isbHOj@p@?hAP?ipr9U0HCQK=tBC`>#CCHDH!wq3dOH049H z-2+Ubjv;eU#0*yoUa39>BHWE}KHjpv$%F-T%U6VOTWNPbNRL#W2R5X(sUai}@jAlZ zS;j5l0}6N)05e#Ml}~oN5J!CC(}sj| z_^}Mj^*Y~>*SN`xjclVbKccHmX=#^av)Pl{J#OS&si6c-#$*jvVwr`}5Y^jcv9-gx zJ}1OzEF^6bTv9W9+4VdC0j1^a%KgxeDs^rb#}iZB*8U zt9ojr(84TloP*E;ICke)&%eRqT2I&HZDc!Wc-i2%s;@z*W~hz(=9CE|otKcBJhpJ8 zb>@HDaHlrAxZxBCK%2c9KH5cCM(XIN@%>+Jq{vgIZuA*aoVvEht@>Noer16l>0~x! zVN3Vbd|*cj8}+f`8Jzlt>D!AaUK$%1lTMB_>)IoPmXsh58HHb)&09{Q*bt=ggNl&z z)}rq^SixSqMTdK|WfxlD@z+a<{e|}Aws{AgV6l6}8O5L{5j90bhO;_SMx`XoQ@jfz z3QV`5vQ@(xkY(N5)ra~POm=B{UIj@UOxJ13jDs!!?KmsGmCyz z!|=!sqtgBGT`9<`Y?<@Pondv&Kp@)S;MCuDmw3 z+~KlA6j?mco7!7uKxo`gJG5{2N`}rvkCJ?gP}O=j*){zkV{kV9?jRFV<%>`*E!|qK z(Uf`d?K!VcDQ<(;;s^Cxp=v)ZNQDr4xfv|3*wD)F2~Y7o%JVW|=%SvrVn7z>;R+?KtV+86SqZyv z-s@ox-%o-@8wwp!tGB+GiV3?|JpFc?q=-R$91F;UlCiZ0D?5<<|<5_JOaeB0A zg!ICrDjv^P+x=*-#6W&!l1#VH3coa_!8@OJ4m%<9vUp3Jy$*jS5CK)oeFsIWdM#h<@qs-P3D6F5bibaV+!jM643GeqlxLMf5gF z8m#>T<%pOJmhtvs^4PV1TX!F-RAO4S1FAibiuEc3S+LEpi+hg42hY005lx%5uPyU# zxK)mAXNfOQln(2Xx;_P)G=|E8<5_~Cqhj11WLj(H9|;51u{-CRt(ZZJD{8U=Tbi%p z(|PSGdW4!#iEva2WBIy0KT2Y^w8+yLuB$Vb3B=OVM_d+^R_6jl(k15gWET1pdA$l0 z$t+y1SMB#o-jYS-uszJ}@746bz9`l^30E9Di=mNn@>35DE)xyU7W+uiMF}d2IH|wi zz|vN=JC2XqH5FwCi#ijU6isK13-Ha!(0sPnpvMBU+-lEaDCnRUWnmNC=1eE;9PDPI z4iz_RW_9TOe1v?W1emg=|Mv3oO+r*z zP%(l~&wRI7B8YLp3RTn4nSobkPMIw2pE~tVzr0BM9ccpIJ||pDG$U8W2}V#Ew#JQ- z1Y+_XQ=p9MSQzsQF*@&0UxRx}6}J$VqzgCSoS>txkR)GvD2~r|(xD`g1BG5DExJ19 ziDen)zK;s8sIw6FK_GDuXYcxVs$Of(|040H4WRmGLZ z!BGCj45BwhmcWA){ff`G%I8eMHq2fq*qQG~oeZwYc% zj@Miwa(%-neFDo9;OZ_CQI_Gnt6%JTyHm$1#C@X=*M?cgt`8FxNX5`cyImJ0-LV^o zGz-GdYniR~3iWa)d3~@`q}dbUoxJDVbSEOVdE{ovzv8C76xCuo>_qFur}JW3EI0pX z{;*X$i8vdu{k~ZF>@y<7oS-m)OrtWr1PSZWVy`K3eCr#6zBIjB zpeH+Zt1Q>dC_xS+AC8EjK23<#HgTd8D|%m1O3k_G4kjDCsE9kv<2}cpS+LkS5!G=T zQfoc6YxcSN(&u~ip|9raD}3LcUftVEz<6oy_sp(4`#Ty|&~|TJZwYo$sU@}dZ`~E` zG<{US@z%l63jMCBW+b^Lh4EXlwJQ8ZakbN4J=lEL8X}9ko3;8$C1P$C8YS!FT=l?! z!rL5CX;W)uV%sM|&@G@1VVymib}uz!o?_g9?iRfRm}@%i*|J|>BHvKN#GVw+SIoTb zJFiKEBcgLfl{Y0->d(`@SPXm6Hn=@ozz_uvuOXo2+mDX}jh#p|ui_G6S93qf*7@6q z9ItPg9k_}&C@znkPx4E1DD*nx@7d_-=M2|Jg)1yFLQOoWf~vUzfQHk@*R#0M6GbO`)R{c5u+3nX?Y z#`ZWtf?#p>F5&Fd#S#!wSMY4!i}60|#Vip*;A);_4F-+B77eXU+J|326VP@uuvX7z zVTh-Waaw1KfCPm2JgcEKs$s};;pp=(t;0a@E8dcoN?+btKJ$0P+0cXt4h&3ZaJPm; z#2P3>X~{rv{g8b=|H`Z9FXV96!)j)Kxs}C>yfwyCHysV?*}9fOpB#pigSd81<1so z20|m}0bUw~L>P-jA5yexsiws)L)%=x{g-s*xZaQK1Soo1UbW;l8RDckd9RFR)QB!y zu40MkoNzZ?im$})l%Fk7YW1yIR*AVSrYrK&D4w zPT(_i(oSepgL49j*aGq?Dwz>_a2oT9kK-fqFGvR08(xk^TbeAEC?YU;@y7*vvmD*| zp{`i@88hY=d;iEvvVZrDHJKeY(BBJOG@3Jo16|@v<^N6OF}(HDb|+0Zwno=>2rf`E z;FExe``sV^A-3b1$#RSF$VcjN=)@*7BM-VYM&6HVeid?;SVXRKV9q=h<>oHX-a_6C z4X62qfDncx6goNupj+3hM$R<}JCgnwybsqLb{;p5LK@CPNA1aGx{pje@#~Mf%6$NK z#K2fMOh1^}g2L>L!VZs}s-o)(-r1}ivNLwTK;Gt{VWC;k+U1Q02#XYi#wW7pW=-woMtDFS37+)} z8#6lqo$<=qPtzRw?9CaglO|%^@RJmEA!bo@U`y%IJp676hfnXt;bX9#9Vi1_u_o&aEa1+0;6RpcWUbD zm2TkDcT$W=tz7DpGcH11Hk(u!rh99wDF?Sl z8U}&S6lW{;B2xI8qkwb?75i;~`Bm+5Kw|T*R)8jEDtS9TJHv-G$sYsyTBmkcAU740 z0=Hi5#cOHw`{hav0y#C^ytR0pvLHiSCW-RB_E1PyfXMm#3coh?B8dEy7JP1y!6g+g zoGsC5wYzk#m3Af}NnO=~raHP=;uX2{&yHGIuJ#}L%(9RW6)iFUv!ME{`IP2Uy{&(g zd&^$KlP4n4{jZffUxkacd$)4FS^fRM;@tMa;@xyv-+p~ouU8+;SCzrB?~RM?7*$G@ zV#nU}=Kid|Pt5Bgk~55wu8W?x@|Dbyg{ncVLnkQPhtZ+$s`j#SSWGk7wZ6%(65u=2 zV5VSusdF3EavT9?udBiIoSmU>rzNrtbp~#=$QFd9sCpPxdzc~PeO{bFI$7{THhzn# zJf#j6tR)%vCE<2&0#uOixGc(XLARc+fn<2mCJ^Oc*2W6+RcP>=1;p#cl@t# zy>G6pn$FJdMei<<+lO&~-@UaV%w|NoC};EBo9~*Bk@G)gGrlw<5*Vr@+MY2CTFN+G zDQ;P+^w<>lkJ#k052mdxYp?V+ZqN3=Wg?H>{ZwP0fI4w4>Lrldmz=P$7T>0%f#o^$ zZO_(z_Psn=ANl;~37y!MrrP-U_*0>e^!l|9G2OJ@18e7BfHj+ofX3Zcn!LY7RjxKR zwl|8-+q6t%*W-l`Q3YKV;%?p8aE*2izFB~mZB}+CnkHoGL6~O=mX)MxRxa}JXMNl} z^?q}Lbodo(*Vr|ecjv3{{L2J(GVsV+M;l6;Flb`QnT@0pPN{u$DOuJNr(so!$Srm< zz5bfz<5fGp!|{d4RFj-sXVeJp&nMGCW|RE0;)92$ zyimhF+aCd^r>YID+^^AOq=3`)JH2y4E*ch29vS`f!>xH&u9fvTOTB^llP-+%V*h|7 zjUz^wx>tcFHa2F(qm|U2=UG|v>TdSYg;>Xf#Iad|&*6kJtCe(=6$0)~{Wcs~SKZ)L z@9u>k7yZ)7O!=;|xKg+~6(`mir??Q@yJ=B`lOO6c|FB%h4??xTF}_WC#1(c1!V|aWYS);WinO{iXWTnyZr!^$lrku$zf9ITnkY%| zODh942}}I|gdt;H33;2*c2H4miyXut+Q_SGfQ9e{*fZ%h>iQnhoyQ4y5$ccvW$EYr zh-;eJsQtW>1?Yi%e|ahXf`rQ-n=jvVAGj0cS7w!c7xZ(`GctLbchuTU>){}OnyrUgXrdvN{#V4;# zZ}gFe-cvMFdjX0%xM2p!RtDzn;^W|?%M-p@ejxRpCpIksxO>D_(Ou|)(V98GCh@T$*M|B^n5s0^Y0PPu^s^NA zCeqq%A=Bv>jVb=un>KMv=i7L#l7=9t(!dXs;fSf9MB9%XI~G4Q&;D+ec3#aV z`j}Ot@_k8FZsoMb z^FS+RGkE1h78o1p;C(ukW+U!n`W!reOX0)8Si0sx7U^q?-p9SGLg$Pt37JWSPYfct zFkCI&h zsRa1&v=`KEnyblqbT2b;vi)0=G8Ag{8tScA@CQv!LhZ9O|7`VJTbsB@p2(GOySHrS zTxskyP;yk9rqB0mD{tvJF!p+Y_r+R9yXr7gGiyuTT-dv!Q>=hIH*bO@|C^Gw7mf;K zcs4bGd_z(LptwQ?+}PlUJO*WhTa2-FLCJ8!I9<08 zUAK>I>|ezk>jb#!79Tj-Y}T`U`*thT1^^GaZlyK3aXV2H%u1|y7s{-gis^+O3+NS! z86;6Y4DLmdiIN;JfTpjtU3&J2HHZS}h+H4ibbsj49fWDLw^y|Fuwuscr(w!U@bU4ikzj6&bLv{qxG5Hj5WgkK)7`CEy zl*MrW$Y^UH0Y|vd2VHFoZ!|Zscz|KcyI`cTB>gTm)5slg@4#k>O5t+lgnaQSLX$#y z(WxhoeV-+(`IxsVo62Yy9NGXlBvS|k;65cS-wIDgxK?qAXG4ieNk4BO)SsS*(Qn-c zxc9H;KbUtae)&^H0aR*FLop^_*}>y5BraxLcD|DjCBZ<~D31Nn@K;*=YBAfM7r&!; z47h+xwahB2YE&7j@oDmg#E*INwZ2`3pmZHbM!D@tS!pF!uLAj+`2J{tVRUQnby$S$ zMU2cz1BDMj!|HpXv2l)xC2i+3Uqib<*>mJG|QWGDR6G2e>mZk&+(vEA9xFYp z?UxTMo|$Hc-T`PB!Q+JzP~_suxZ&=E^9|WU(HXN*flZvpBif&Cyl}Z1PZ*k@8s@ee zRw!Lyq$i1*O2{lkP$ouJ|FuM~0x6~htw3PbTHdI`OJebbMx1Vhs8+14HbE0&$%0%B zfHI0%>6~ZbHQATI zOn;oow|OcM-oIy4VyO80pxp+1i6r|{QV%*uc@_CARsOm1m`-f&UsrGfNPqPuu`5Iq z+M6c)AF|G9TG1Kk8V*3(5l~jPr|~P;F(7lL!n;LIuTFd{V^&2e`^rxh_*mxP@I!loUfG>_qOM@9W)IY?*!2yWc zU_YM-QR~GP(FV8eZ-$zH{8f7>ZM@!&qX|o1=x6C{{Bt?BN&CNw*kda}^ezWtTC=jB zm8vV?S0OQlUuUzCjqlV_E-~H%)ywM4aBBrB5`nutnuv;;v z+M41YcDZ84rjcPcImR@>C_aju^GAd0X1U+BmnlgyhhE;?U^Q?Ktv)pzpE3wI4;PBY zl3y61>SQVl48@~3prTiiHLiu?%VDj&Zx3UgwD<98O2{=ZigF8revma6FK_y2{vF;e z=~v^nt=}INJr%51Y5C{+e7?a|YImVI!-b;HHb6S)ueNrwWJ{oBzl+*F8#wYb7(w$j zks?xr_P`-cg7tOWn#xU&h4_t@j?sAj)}ILjM;SnOdu;n|Fr7cym3Z{6d044Yt&WLr z^>(-@3)0g3KMDdGsI&8Q3<)!bQ3L5%fr@4aBZ!L+Bga)1*w59dT#rT0q5B;$%HtJR z_LWcbjVHjf(oceH=fR<&p~)1aD9{*ERcA*MBeOsX?zMe$nF|~?o2lTElniy7ulXy@ z)p#Zi)_Vh%;Rg6vfL9ev)V#xj1WJ{RBiI;p7!>yohO`-AlBjYKb83*gIfy(8plJ9! z5l-F5dM8oy2$1kwhd`lH;D-UwNMk^&8>0pRBu#hJAR~ZOKaZ%d_c4Yv;A5XnXR~I! zle4&?{~%c%n)np;>C%Dmg6WG{U(=&plxj#4Xt_0~rTe)GL^tN}A-tw!KKnGQ2|v`fI{ce+oS%(wRbedzKtO+A3Ofp+z54FQ z_oAOOAEQeml$5)oFDFbh#|8B1Q7@1|o+K}SH`;f&s@=|cM@TL2ad7BW4xLQ4McUc> zdp&oyVZi*7|Ciw;xsXj9Ob_wpu^PV6U$#vVzUAm;-5q*==8!S*p@1|sgvVJu=aD*f zUXP^Vq@p(~vfvH4J{NJ1P#;|K{TE%847HK+{yJRXKHj0u<^k(Ke;Zm|)XBnjcz-t` zIhfz=i82GDC7S8pW1rN zaThx7m)u{4aUmtn7X)sl=1+w=&c;|<8Z2`zB8t`|7uXoI9%^{{SlZ^Q zk_X>y_n$dsiL8(Y^DNhZ>-=L*4=h;=<~aR&2+Yk!_ipM=*ibEJA}t1V(RIhh#YfB% z;N+J)l-G^^a<>_>(9HKFmhb*3nixSI>Ly^`Xbjta46XPy(`8__aw8e#8;JvkIcE@; zE!NjYZpIEUi*;FPTRi7S2|7R;pH)(bT2loND3G|{+Rx3dXVyPevW%9^-i=h=B6f;) zl>f1fhd=vkXuf(;y)j`W{-^s>nlbVVvBifRq@o-{oI{|$GU@QpvB+5y=#Js6IoyZskr{5 z&@6q4K_zdu4$a?SY^CVs1pl?(bK!7o#ae6$Yw_hx5WUWW#W43tvdHg=EHx`&@r90S z`Z3$+9~?-r_Jp5CTX3xujk)iIx;vb;fF^jgjJ@KJ9ym(dMPsPVDX|&{5ewEXa!}|w z&$KlD~cL=?=R1j7M`y zwbOv-yi_+7o66^<(qU>;Bbif(UR`_tEeBaN3KR& z@Z_brT*0$Ni=~ag-|X4u9O%e_%s54~uj@Sovg8nibet_{r)9poSde$ub}rG@5zHLj zK+@mb;Ez|SNmMpYHc3a~d@$aCi!#;5B|hf(9%n<@{mJES;q2R)(udKg)JA>tmKpc1 zW3*qId3^Xl3vD2CbQ6guL7^ZsyR%FfXPM2ZXR8m|$fMl2w(8*v@Od}lF25{f=frkX zx4N}t;U+EbI=9||71YW;}*5r9ZW5<3s1Z)33F?5udrWM*?^KA*DXLKsdj)FC= zFJ%euUXZ+!7MMZ`h6y`#BRaEq;+ur=6Y7~8jl-<3#JF6uZhSdpxx{q&fy!Zs0+Ox;RtVXS& zt`#3F-gq~)I@14ZKQO>G-wViw(>ssGziJ@2e9r#r{^zi#bib=+TJ#`Bqs`1K{4c(g zW#EOs-+F&!xH4bv2ptuX#EX!SMA0LEfNMj}ITn^$)<6 z1*WEbACERmRSJGi*aRSUR0QQY2_@V{WHcao*C~;{uN=k%^RAVGE;G-9{)s;H=FkJ& zqZnFe{fuxun`<*})faya6L$f`8>JOqgQk|0powAZ9ioaU~BAR&}GOu|OOr&i)A&wE@;uGH|^ zi>Tl4SaZ7idO3cf)3Wv%{DHHn;!1}q%00cdHO47USq_6?K)Ot-)NG%MN#xrO{66oN z00_m|rSlfgI*ekBrR2;;kG#v*he(NDRtJp8gN@)}o}rJMcQ~!Nz_61=66IPmlAM1< zr%VL;j_ckq7?Xe8<{B&)k@J%7R5TxgXA&PO;q`kxXr!|0t^-W`F26Q}J&wPFKHbX< za^P9awJtgkIQw|m45PAxiI27+&-OQ!gdC(kyawc~hL=pH>pcpoVz*+NwFd9NFt09; zppSDAjcSA)(!qdWIBWZaY|Wv1X)cX72dhT`dlzdz^Ri(Z2E)rp)?<~2F)yPXJ9BRd))-8D&-Bvx3r)DQYE{ufBC{%2 zx##tn0J6x-^y55(YcldeF(UD=L;d6IeUeZ-+dU*_8s<{6S zd^hCHgkhSwb)4^9lc>4%i>I6@6ZH6ZkY@);NG+C72;R|5DU`^0N1h;~=6p*pv&zpi zc^%^ap0+|Zm2N-)h{MJazCx4~`fSP@$_#v9Kr`*j<02I9L@I3CcfAoq~}; zjk1v^)DA2hOU{to5Gd}O9t@KnaIz-g{t%-z(+jioNrPTz(1|1{I3&8m{nMlg=PyNb zgDi?rfRs&m;}{V~Ij(F*@%fFL!uhORRIOr10)pwGv&Kk~W=;U-qM{g?QuMrS&~HGL zD|WxVW$kjVllhZO%>{jJ#Z{l)(|u8*qmtyTv|c z+N78N3eUQmcPj&t`cjxpn>=j~$&{mV%F1 zsn&dEIHg$yJYB%V3EWsDx~)FLD3!~q?9B?9_B(fC)@-g>DzH)7d%E7yEt!`KUa#H0 z$hn=*chclNY9oG=la?n>nXxdpG>};x0@H(qdWEcNgKa>-`4Ee z-}adcNj|BZTs|MPE*aF7QL#MfaB**S`CqAs&1t=PIZ5gm{ zz9@LPpW@EnQ_8pOt@;|Yj`8N%9Z<-CnK8d z@m+KhTN@4&>Dlz-^U?r4lscwEJ6b&A#sUe^LJZ zebcmoE0`4*E{oq^mjT?U`e;6|Gdk<(m7T@uv3|hwW)eXQEL4<0=gdUCj|HwWHvlfr z=$`{z$iB2*^CfVf>{HMIHWLC05A&M8h@8B{yG};_8(Xz&PD=Q^!Z)Dx;GHZ*YcdZsFfLo;IeoI4#(U5nW)4nq mqhu+If&^Pb(CJ41 Date: Tue, 13 May 2025 23:56:42 -0700 Subject: [PATCH 3/6] Try mac builder --- README.md | 7 +- electron-builder.json | 4 +- package-lock.json | 731 ++++++++++++++++++++++++++++++++------- package.json | 6 +- scripts/mac/AfterPack.js | 38 ++ 5 files changed, 649 insertions(+), 137 deletions(-) create mode 100644 scripts/mac/AfterPack.js diff --git a/README.md b/README.md index 0415bc5..c3c3397 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,12 @@ WebBox is an interactive code editor focused on web development, providing live * [Customize Colors](./docs/CustomColors.md) --- + Developed as a school project by **Ethan Mahlstedt** --- -

Last modified at 12/05/25 by Ethan Mahlstedt; v1.0-rc1

\ No newline at end of file + +Want to help? Send me a [mail](mailto:ethan.mahlstedt@hotmail.com) + +--- +

Last modified at 13/05/25 by Ethan Mahlstedt; v1.0.0-rc2

\ No newline at end of file diff --git a/electron-builder.json b/electron-builder.json index dd4b363..a8f6af0 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -18,8 +18,8 @@ "artifactName": "webbox-${version}-win.zip" }, "mac": { - "target": "zip", - "artifactName": "webbox-${version}-mac-${arch}.zip" + "target": "dir", + "artifactName": "webbox-${version}-mac-${arch}" }, "linux": { "target": "zip", diff --git a/package-lock.json b/package-lock.json index 5fb6a03..0a70b1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,8 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { + "archiver": "^7.0.1", + "fs-extra": "^11.3.0", "highlight.js": "^11.11.1", "needle-db": "^1.1.3" }, @@ -135,6 +137,21 @@ "global-agent": "^3.0.0" } }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/@electron/node-gyp": { "version": "10.2.0-electron.1", "resolved": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", @@ -453,34 +470,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@electron/universal/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/@electron/universal/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -497,16 +486,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@electron/universal/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@electron/windows-sign": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.1.tgz", @@ -529,50 +508,6 @@ "node": ">=14.14" } }, - "node_modules/@electron/windows-sign/node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@electron/windows-sign/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/windows-sign/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", @@ -791,7 +726,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -809,7 +743,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -822,7 +755,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -835,14 +767,12 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -860,7 +790,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -876,7 +805,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -1014,7 +942,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "license": "MIT", "optional": true, "engines": { @@ -1183,6 +1110,18 @@ "dev": true, "license": "ISC" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -1274,7 +1213,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1284,7 +1222,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1429,6 +1366,184 @@ "node": ">= 10.0.0" } }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/archiver-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/archiver/node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1440,7 +1555,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, "license": "MIT" }, "node_modules/async-exit-hook": { @@ -1470,18 +1584,29 @@ "node": ">= 4.0.0" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "license": "Apache-2.0", + "optional": true + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -1915,7 +2040,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1928,7 +2052,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/combined-stream": { @@ -1964,6 +2087,62 @@ "node": ">=0.10.0" } }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2039,6 +2218,77 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/crc32-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/cross-dirname": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", @@ -2052,7 +2302,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -2321,7 +2570,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, "license": "MIT" }, "node_modules/ejs": { @@ -2533,7 +2781,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/encoding": { @@ -2821,6 +3068,24 @@ "node": ">=0.10.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/exponential-backoff": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", @@ -2856,6 +3121,12 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2968,7 +3239,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", @@ -2985,7 +3255,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -3011,18 +3280,38 @@ } }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=14.14" + } + }, + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" } }, "node_modules/fs-minipass": { @@ -3262,7 +3551,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/has-flag": { @@ -3429,7 +3717,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -3516,7 +3803,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, "license": "ISC" }, "node_modules/ip-address": { @@ -3560,7 +3846,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3596,6 +3881,18 @@ "dev": true, "license": "MIT" }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3609,6 +3906,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, "node_modules/isbinaryfile": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", @@ -3626,14 +3929,12 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -3753,6 +4054,48 @@ "dev": true, "license": "MIT" }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3787,7 +4130,6 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { @@ -4225,6 +4567,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -4379,7 +4730,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/parent-module": { @@ -4419,7 +4769,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4429,7 +4778,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", @@ -4446,14 +4794,12 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, "license": "ISC" }, "node_modules/path-scurry/node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -4562,6 +4908,21 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -4655,6 +5016,36 @@ "node": ">= 6" } }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4777,7 +5168,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -4857,7 +5247,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -4870,7 +5259,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5014,11 +5402,23 @@ "node": ">= 6" } }, + "node_modules/streamx": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -5028,7 +5428,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -5044,7 +5443,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -5059,7 +5457,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5073,7 +5470,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5139,6 +5535,17 @@ "node": ">=10" } }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -5242,6 +5649,15 @@ "rimraf": "bin.js" } }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/tiny-async-pool": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", @@ -5397,7 +5813,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/wcwidth": { @@ -5414,7 +5829,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -5459,7 +5873,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -5559,6 +5972,60 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zip-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } } } } diff --git a/package.json b/package.json index 1bc4093..df2592c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webbox", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Live Editor for HTML, CSS and JS", "main": "main.js", "scripts": { @@ -16,7 +16,9 @@ "eslint": "^9.19.0", "eslint-config-prettier": "^10.0.1", "globals": "^16.0.0", - "prettier": "3.4.2" + "prettier": "3.4.2", + "archiver": "^7.0.1", + "fs-extra": "^11.3.0" }, "dependencies": { "highlight.js": "^11.11.1", diff --git a/scripts/mac/AfterPack.js b/scripts/mac/AfterPack.js new file mode 100644 index 0000000..1793ed6 --- /dev/null +++ b/scripts/mac/AfterPack.js @@ -0,0 +1,38 @@ +const fs = require("fs-extra"); +const path = require("path"); +const archiver = require("archiver"); + +module.exports = async (context) => { + const { appOutDir, packager } = context; + const appName = packager.appInfo.productFilename; + const version = packager.config.extraMetadata?.version || "0.0.0"; + const arch = process.arch; + + const customDirName = `webbox-${version}-mac-${arch}`; + const customDirPath = path.resolve(appOutDir, "..", customDirName); + + await fs.remove(customDirPath); + await fs.ensureDir(customDirPath); + await fs.copy( + path.join(appOutDir, `${appName}.app`), + path.join(customDirPath, `${appName}.app`) + ); + + await fs.copy("filePresets", path.join(customDirPath, "filePresets")); + await fs.copy("front/editor/highlighter.css", path.join(customDirPath, "front/editor/highlighter.css")); + + const zipPath = path.join(appOutDir, `webbox-${version}-mac-${arch}.zip`); + const output = fs.createWriteStream(zipPath); + const archive = archiver("zip", { zlib: { level: 9 } }); + + return new Promise((resolve, reject) => { + output.on("close", () => { + console.log(`✅ Created zip at ${zipPath}`); + resolve(); + }); + archive.on("error", reject); + archive.pipe(output); + archive.directory(customDirPath, false); + archive.finalize(); + }); +}; From 006f6023db4c8ad5309e02230b5213f2a97177f9 Mon Sep 17 00:00:00 2001 From: Ethan Mahlstedt Date: Wed, 14 May 2025 19:39:39 -0700 Subject: [PATCH 4/6] Drop off Mac Compatibility --- .github/workflows/build.yml | 8 +------- electron-builder.json | 10 +++++----- scripts/mac/AfterPack.js | 38 ------------------------------------- 3 files changed, 6 insertions(+), 50 deletions(-) delete mode 100644 scripts/mac/AfterPack.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6b59e4..09f9539 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest] permissions: contents: write @@ -34,12 +34,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Build Mac x64 - if: matrix.os == 'macos-latest' - run: npx electron-builder --mac --x64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Upload Release uses: softprops/action-gh-release@v1 with: diff --git a/electron-builder.json b/electron-builder.json index a8f6af0..02a6beb 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -4,12 +4,16 @@ "directories": { "output": "dist" }, - "files": ["!filePresets/**", "!front/editor/highlighter.css"], + "files": ["!filePresets/**", "!front/editor/highlighter.css", "!front/editor/editor.css"], "extraResources": [ { "from": "filePresets", "to": "../filePresets" }, { "from": "front/editor/highlighter.css", "to": "../front/editor/highlighter.css" + }, + { + "from": "front/editor/editor.css", + "to": "../front/editor/editor.css" } ], "icon": "resources/icon/icon.png", @@ -17,10 +21,6 @@ "target": "zip", "artifactName": "webbox-${version}-win.zip" }, - "mac": { - "target": "dir", - "artifactName": "webbox-${version}-mac-${arch}" - }, "linux": { "target": "zip", "artifactName": "webbox-${version}-linux.zip" diff --git a/scripts/mac/AfterPack.js b/scripts/mac/AfterPack.js deleted file mode 100644 index 1793ed6..0000000 --- a/scripts/mac/AfterPack.js +++ /dev/null @@ -1,38 +0,0 @@ -const fs = require("fs-extra"); -const path = require("path"); -const archiver = require("archiver"); - -module.exports = async (context) => { - const { appOutDir, packager } = context; - const appName = packager.appInfo.productFilename; - const version = packager.config.extraMetadata?.version || "0.0.0"; - const arch = process.arch; - - const customDirName = `webbox-${version}-mac-${arch}`; - const customDirPath = path.resolve(appOutDir, "..", customDirName); - - await fs.remove(customDirPath); - await fs.ensureDir(customDirPath); - await fs.copy( - path.join(appOutDir, `${appName}.app`), - path.join(customDirPath, `${appName}.app`) - ); - - await fs.copy("filePresets", path.join(customDirPath, "filePresets")); - await fs.copy("front/editor/highlighter.css", path.join(customDirPath, "front/editor/highlighter.css")); - - const zipPath = path.join(appOutDir, `webbox-${version}-mac-${arch}.zip`); - const output = fs.createWriteStream(zipPath); - const archive = archiver("zip", { zlib: { level: 9 } }); - - return new Promise((resolve, reject) => { - output.on("close", () => { - console.log(`✅ Created zip at ${zipPath}`); - resolve(); - }); - archive.on("error", reject); - archive.pipe(output); - archive.directory(customDirPath, false); - archive.finalize(); - }); -}; From b190081024bd4093c23450eb612d629ad52d4834 Mon Sep 17 00:00:00 2001 From: Ethan Mahlstedt Date: Wed, 14 May 2025 19:39:48 -0700 Subject: [PATCH 5/6] Add Docs --- docs/CustomColors.md | 17 +++++++++++++++++ docs/OpenFile.md | 27 +++++++++++++++++++++++++++ front/editor/editor.css | 29 ++++------------------------- 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/docs/CustomColors.md b/docs/CustomColors.md index e69de29..52ce308 100644 --- a/docs/CustomColors.md +++ b/docs/CustomColors.md @@ -0,0 +1,17 @@ +###### Go back to [index](../README.md) + +--- + +# Use custom colors + +--- + +If you want to use custom colors, you must edit the files located at `editor/front`. + +`editor.css` includes all the editor window color configuration. + +`highlighter.css` includes the highlighter color configuration in [highlight.js](https://highlightjs.org/) syntax + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/OpenFile.md b/docs/OpenFile.md index e69de29..ec8bd68 100644 --- a/docs/OpenFile.md +++ b/docs/OpenFile.md @@ -0,0 +1,27 @@ +###### Go back to [index](../README.md) + +--- + +# Open File + +### Shortcut `Ctrl + O` + +--- + +To open files, WebBox will prompt you to choose a file that matches the following file types: + +* **HTML** (.html, .htm) +* **JavaScript** (.js, .jsx, .mjs, .cjs) +* **TypeScript** (.ts, .tsx) +* **CSS** (.css) +* **JSON** (.JSON) +* **Markdown** (.md) +* **PHP** (.php) +* **Text Documents** (.txt) +* **XML** (.xml) + + + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc1

\ No newline at end of file diff --git a/front/editor/editor.css b/front/editor/editor.css index 3d00019..7bfdf89 100644 --- a/front/editor/editor.css +++ b/front/editor/editor.css @@ -1,3 +1,5 @@ +/* Editor */ + html, body { height: 100%; @@ -68,8 +70,7 @@ body { .fileDivText { font-family: "Segoe UI"; color: white; - margin: 0; - margin-right: 10px; + margin: 0 10px 0 0; white-space: nowrap; } @@ -92,26 +93,6 @@ body { color: white; } -button { - background-color: gray; - font-family: Arial; - color: black; - padding: 5px 10px; - border-radius: 5px; - border: 1px ridge black; - font-size: 16px; - font-weight: bold; - cursor: pointer; - transition: - background-color 0.3s ease, - color 0.3s ease; -} - -button:hover { - background-color: rgb(64, 64, 64); - color: white; -} - #TextAreaContainer { display: flex; width: calc(100% - 2%); @@ -154,8 +135,6 @@ button:hover { word-wrap: normal; min-height: 100px; /* Ensure it has height */ box-sizing: border-box; - overflow-x: auto; /* Add horizontal scrollbar */ - overflow-y: auto; /* Add vertical scrollbar */ } #saveDialog { @@ -258,7 +237,7 @@ textarea { #fileDirLbl { font-weight: normal; - font-size: 12; + font-size: 12px; text-wrap: wrap; overflow-wrap: anywhere; } From f03df9e7226579428c84d9097cc7c5c992b5b049 Mon Sep 17 00:00:00 2001 From: Ethan Mahlstedt Date: Wed, 14 May 2025 22:20:44 -0700 Subject: [PATCH 6/6] Upload Docs --- README.md | 2 +- docs/OpenFile.md | 2 +- docs/SaveFile.md | 19 + docs/Shortcuts.md | 22 +- docs/ViewerWindows.md | 22 + front/editor/editor.html | 4 +- main.js | 2 +- package-lock.json | 607 ++---------------- package.json | 4 +- .../ViewerWindows/WindowPickingDialog.png | Bin 0 -> 4999 bytes resources/docs/fileSaving/fileSaveDialog.png | Bin 0 -> 3616 bytes 11 files changed, 116 insertions(+), 568 deletions(-) create mode 100644 resources/docs/ViewerWindows/WindowPickingDialog.png create mode 100644 resources/docs/fileSaving/fileSaveDialog.png diff --git a/README.md b/README.md index c3c3397..c8a9791 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ WebBox is an interactive code editor focused on web development, providing live * [Create a File](./docs/CreateFile.md) * [Open a File](./docs/OpenFile.md) * [Save a File](./docs/SaveFile.md) -* [Create a Viewer Window](./docs/ViewerWindows.md) +* [Viewer Windows](./docs/ViewerWindows.md) * [Shortcuts](./docs/Shortcuts.md) * [Customize Colors](./docs/CustomColors.md) diff --git a/docs/OpenFile.md b/docs/OpenFile.md index ec8bd68..29d1d4b 100644 --- a/docs/OpenFile.md +++ b/docs/OpenFile.md @@ -24,4 +24,4 @@ To open files, WebBox will prompt you to choose a file that matches the followin --- -

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc1

\ No newline at end of file +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/SaveFile.md b/docs/SaveFile.md index 8b13789..20ae6f6 100644 --- a/docs/SaveFile.md +++ b/docs/SaveFile.md @@ -1 +1,20 @@ +###### Go back to [index](../README.md) + +--- + +# Close File + +### Shortcut `Ctrl + Q` + +--- + +When closing files, WebBox will prompt you to save the file if it has unsaved changes. You can choose to save the file or discard the changes. + +![fileSaveDialog.png](../resources/docs/fileSaving/fileSaveDialog.png) + +Whenever a file has unsaved changes, the file name will be displayed in *italic* in the tab bar. This is a visual indicator that the file has unsaved changes. + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/Shortcuts.md b/docs/Shortcuts.md index 9df4564..54e69eb 100644 --- a/docs/Shortcuts.md +++ b/docs/Shortcuts.md @@ -1,3 +1,23 @@ +###### Go back to [index](../README.md) + +--- + # Shortcuts ---- \ No newline at end of file +--- + +## Shortcut list + +| Shortcut | Action | +|--------------------|-------------------------------------| +| `Ctrl + N` | Create File | +| `Ctrl + O` | Open File | +| `Ctrl + S` | Save File | +| `Ctrl + Q` | Close File | +| `Ctrl + W` | Open Viewer | +| `Ctrl + Shift + W` | Open Viewer (based on current file) | +| `Ctrl + R` | Refresh Viewer | + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/ViewerWindows.md b/docs/ViewerWindows.md index e69de29..6b4b35d 100644 --- a/docs/ViewerWindows.md +++ b/docs/ViewerWindows.md @@ -0,0 +1,22 @@ + +###### Go back to [index](../README.md) + +--- + +# Viewer Windows + +--- + +WebBox has a built-in viewer that allows you to visualize HTML files on a separate window. + +The viewer is based of a Chromium browser window, which means that it is capable of using all the features of a modern browser. This includes the ability to use JavaScript and CSS files. + +To open the viewer, you can use the **"Open Viewer"** function in the file menu or use the shortcut `Ctrl + W`. If you press the `Shift` Key, the viewer will open a new window off the current opened file (in the case it is a `.html` / `.htm` file), linking the viewer to the file. If not, the viewer will prompt you to pick a valid file type. + +In the case you want to refresh the viewer, you can use the **"Refresh Viewer"** function in the file menu or use the shortcut `Ctrl + R`. This will refresh the current opened file in the viewer. In case the current file is not linked to any window, a prompt will show up, showing you all windows. + +![WindowPickingDialog.png](../resources/docs/ViewerWindows/WindowPickingDialog.png) + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/front/editor/editor.html b/front/editor/editor.html index 8797730..e6daccd 100644 --- a/front/editor/editor.html +++ b/front/editor/editor.html @@ -14,12 +14,12 @@
- +
-

WebBox vx.x.x

+

WebBox

No opened file...

Open one using the "Open" button or create a new one using the "New diff --git a/main.js b/main.js index ef1be49..086bb69 100644 --- a/main.js +++ b/main.js @@ -100,7 +100,7 @@ function createNewDisplay(fileLink) { ipcMain.on("new-window", async () => { const result = await dialog.showOpenDialog({ properties: ["openFile"], - filters: [{ name: "HTML Files", extensions: ["html"] }] + filters: [{ name: "HTML Files", extensions: ["html", "htm"] }] }); var flag = true; if (openedDisplays.GETJSONDATA().length > 0) { diff --git a/package-lock.json b/package-lock.json index 0a70b1d..d0a2b68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,15 @@ { "name": "webbox", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "webbox", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "hasInstallScript": true, "license": "ISC", "dependencies": { - "archiver": "^7.0.1", - "fs-extra": "^11.3.0", "highlight.js": "^11.11.1", "needle-db": "^1.1.3" }, @@ -726,6 +724,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -743,6 +742,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -755,6 +755,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -767,12 +768,14 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -790,6 +793,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -805,6 +809,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -942,6 +947,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "license": "MIT", "optional": true, "engines": { @@ -1110,18 +1116,6 @@ "dev": true, "license": "ISC" }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -1213,6 +1207,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1222,6 +1217,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1366,184 +1362,6 @@ "node": ">= 10.0.0" } }, - "node_modules/archiver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", - "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", - "license": "MIT", - "dependencies": { - "archiver-utils": "^5.0.2", - "async": "^3.2.4", - "buffer-crc32": "^1.0.0", - "readable-stream": "^4.0.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^3.0.0", - "zip-stream": "^6.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/archiver-utils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", - "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", - "license": "MIT", - "dependencies": { - "glob": "^10.0.0", - "graceful-fs": "^4.2.0", - "is-stream": "^2.0.1", - "lazystream": "^1.0.0", - "lodash": "^4.17.15", - "normalize-path": "^3.0.0", - "readable-stream": "^4.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/archiver-utils/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/archiver/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/archiver/node_modules/buffer-crc32": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", - "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1555,6 +1373,7 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, "license": "MIT" }, "node_modules/async-exit-hook": { @@ -1584,29 +1403,18 @@ "node": ">= 4.0.0" } }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", - "license": "Apache-2.0" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, "license": "MIT" }, - "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", - "license": "Apache-2.0", - "optional": true - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "funding": [ { "type": "github", @@ -2040,6 +1848,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -2052,6 +1861,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/combined-stream": { @@ -2087,62 +1897,6 @@ "node": ">=0.10.0" } }, - "node_modules/compress-commons": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", - "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "crc32-stream": "^6.0.0", - "is-stream": "^2.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^4.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/compress-commons/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/compress-commons/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2218,77 +1972,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", - "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^4.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/crc32-stream/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/cross-dirname": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", @@ -2302,6 +1985,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -2570,6 +2254,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, "license": "MIT" }, "node_modules/ejs": { @@ -2781,6 +2466,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/encoding": { @@ -3068,24 +2754,6 @@ "node": ">=0.10.0" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/exponential-backoff": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", @@ -3121,12 +2789,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3239,6 +2901,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", @@ -3255,6 +2918,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -3283,6 +2947,7 @@ "version": "11.3.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -3297,6 +2962,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -3309,6 +2975,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -3551,6 +3218,7 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, "node_modules/has-flag": { @@ -3717,6 +3385,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -3803,6 +3472,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, "node_modules/ip-address": { @@ -3846,6 +3516,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3881,18 +3552,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3906,12 +3565,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, "node_modules/isbinaryfile": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", @@ -3929,12 +3582,14 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, "license": "ISC" }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -4054,48 +3709,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4130,6 +3743,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { @@ -4567,15 +4181,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -4730,6 +4335,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/parent-module": { @@ -4769,6 +4375,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4778,6 +4385,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", @@ -4794,12 +4402,14 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, "license": "ISC" }, "node_modules/path-scurry/node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -4908,21 +4518,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -5016,36 +4611,6 @@ "node": ">= 6" } }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5168,6 +4733,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -5247,6 +4813,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -5259,6 +4826,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5402,23 +4970,11 @@ "node": ">= 6" } }, - "node_modules/streamx": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -5428,6 +4984,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -5443,6 +5000,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -5457,6 +5015,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5470,6 +5029,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5535,17 +5095,6 @@ "node": ">=10" } }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -5649,15 +5198,6 @@ "rimraf": "bin.js" } }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, "node_modules/tiny-async-pool": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", @@ -5813,6 +5353,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "license": "MIT" }, "node_modules/wcwidth": { @@ -5829,6 +5370,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -5873,6 +5415,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -5972,60 +5515,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zip-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", - "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", - "license": "MIT", - "dependencies": { - "archiver-utils": "^5.0.0", - "compress-commons": "^6.0.2", - "readable-stream": "^4.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/zip-stream/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } } } } diff --git a/package.json b/package.json index df2592c..5d38c22 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,7 @@ "eslint": "^9.19.0", "eslint-config-prettier": "^10.0.1", "globals": "^16.0.0", - "prettier": "3.4.2", - "archiver": "^7.0.1", - "fs-extra": "^11.3.0" + "prettier": "3.4.2" }, "dependencies": { "highlight.js": "^11.11.1", diff --git a/resources/docs/ViewerWindows/WindowPickingDialog.png b/resources/docs/ViewerWindows/WindowPickingDialog.png new file mode 100644 index 0000000000000000000000000000000000000000..76869c9b1f869ce892e4b7543ce03f31d7d2ac50 GIT binary patch literal 4999 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 literal 0 HcmV?d00001 diff --git a/resources/docs/fileSaving/fileSaveDialog.png b/resources/docs/fileSaving/fileSaveDialog.png new file mode 100644 index 0000000000000000000000000000000000000000..2cbe7248cc60b79a939713cd1b9b3f39af9974f3 GIT binary patch literal 3616 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 literal 0 HcmV?d00001