From 56fd8448ba5d4bb86b9c72db05033410c79d0986 Mon Sep 17 00:00:00 2001 From: JianMiau Date: Fri, 21 Aug 2026 11:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=20electron-builder=20=E6=89=93?= =?UTF-8?q?=E5=8C=85=E6=88=90=20Windows=20exe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 摘要: 加上 electron-builder 設定,`npm run dist` 產出 NSIS 安裝檔與免安裝版,並修正打包後才會出現的路徑問題。 根本原因: 原本三處路徑都假設程式是攤在資料夾裡跑的,打包成 asar 後會壞: 1. hook 腳本路徑會落在 app.asar 內,而 Claude Code 是用 `node <路徑>` 執行它,node 讀不到 asar 裡的檔案,hook 會直接失敗。 2. pets 資料夾同樣在 asar 內,使用者無法自己丟寵物進去,選單「開啟寵物資料夾」也開不起來。 3. 開機自動啟動寫入的是 `electron.exe + 專案路徑`,打包後沒有 node_modules,登錄值會指向不存在的檔案。 影響: 沒有可散佈的執行檔;直接打包的話 hook、換寵物、開機啟動三個功能都會壞掉。 修法: - 新增 lib/paths.js:unpacked() 把 app.asar 換成 app.asar.unpacked,isPackaged() 以 process.defaultApp 判斷是否為打包版。 - build.asarUnpack 把 hook/ 與 pets/ 解到 asar 外,hooks-installer 與 main.js 的 PETS_DIR 都改走 unpacked()。 - autostart 打包後改用 process.execPath,並跳過開發版才需要的 electron.exe 存在檢查。 - NSIS 設為 per-user、可改安裝路徑、建立桌面與開始選單捷徑,解除安裝不刪 ~/.claude-pet。 - 新增 build/icon.ico(16–256,七種尺寸),取自小念 spritesheet 第 0 列第 6 欄的頭肩方形裁切。 - dist/ 加入 .gitignore;README 補上「打包成 exe」一節與安裝檔的使用方式。 驗證: 以 ELECTRON_RUN_AS_NODE 執行打包後的 exe(不開視窗)載入打包內的 lib,確認 isPackaged 為 true、hook 路徑指到 app.asar.unpacked 且檔案存在、autostart 指到 exe 本身、pets 掃得到 xiao-nian、renderer 讀得到 asar 內的 index.html;另確認 exe 版本資訊與七種尺寸圖示皆已嵌入。 Co-Authored-By: Claude Fable 5 --- .gitignore | 1 + README.md | 39 +- build/icon.ico | Bin 0 -> 119920 bytes lib/autostart.js | 5 +- lib/hooks-installer.js | 4 +- lib/paths.js | 21 + main.js | 9 +- package-lock.json | 3425 +++++++++++++++++++++++++++++++++++++++- package.json | 51 +- 9 files changed, 3545 insertions(+), 10 deletions(-) create mode 100644 build/icon.ico create mode 100644 lib/paths.js diff --git a/.gitignore b/.gitignore index 552f221..3c25e1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/ +dist/ *.log diff --git a/README.md b/README.md index 095a11d..b87c945 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ - [設定檔](#設定檔) - [架構與檔案](#架構與檔案) - [HTTP API](#http-api) +- [打包成 exe](#打包成-exe) - [疑難排解](#疑難排解) - [移除](#移除) @@ -50,6 +51,12 @@ ## 快速開始 +### 用安裝檔(一般使用) + +執行 `dist\Claude Pet-<版本>-setup.exe`(見[打包成 exe](#打包成-exe)),裝在 `%LOCALAPPDATA%\Programs\Claude Pet`,不需要系統管理員權限。裝完從開始選單開啟,再用系統匣選單的 **Claude Code hooks → 安裝** 接上 Claude Code。 + +### 從原始碼跑(開發) + ```powershell cd E:\Project\Test\AI\Claude\claude-pet npm install @@ -200,10 +207,12 @@ Claude Code ──hook(stdin JSON)──▶ hook/claude-pet-hook.js ──PO | `renderer/index.html`、`style.css` | 版面與氣泡樣式(CSP 僅允許 self / data:) | | `hook/claude-pet-hook.js` | Claude Code hook 端:讀 stdin → 擷取欄位 → POST;800 ms 逾時、永遠 exit 0 | | `lib/hooks-installer.js` | 安全地合併 / 移除 `~/.claude/settings.json` 的 hooks(保留其他設定與其他 hooks,先備份) | -| `lib/autostart.js` | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ClaudePet` 登錄值 | +| `lib/autostart.js` | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ClaudePet` 登錄值;開發時指向 `electron.exe + 專案路徑`,打包後直接指向那顆 exe | +| `lib/paths.js` | 開發/打包兩種情境的路徑解析(`app.asar` → `app.asar.unpacked`、是否為打包版) | | `scripts/*.js` | 上述兩者的 CLI 包裝 | | `pets/` | 內附寵物 | | `docs/` | README 用圖 | +| `build/icon.ico` | exe 與安裝檔的圖示,取自小念 spritesheet 第 0 列第 6 欄(中立正面)的頭肩方形裁切 | 設計重點: @@ -257,6 +266,30 @@ curl http://127.0.0.1:17333/state 也可以送 `{"event":"__test","anim":"waiting"}`(`idle|running|waiting|review|failed|jumping|waving|clear`)直接指定動畫,與選單「動作測試」相同。 +## 打包成 exe + +```powershell +npm run dist # 安裝檔 + 免安裝版 +npm run pack # 只產免安裝版,快很多,開發時驗證用 +``` + +產物在 `dist\`: + +| 檔案 | 說明 | +|---|---| +| `Claude Pet-<版本>-setup.exe` | NSIS 安裝檔(約 100 MB)。per-user 安裝、不需要系統管理員權限,預設裝到 `%LOCALAPPDATA%\Programs\Claude Pet`,可自選路徑,會建立桌面與開始選單捷徑 | +| `win-unpacked\Claude Pet.exe` | 免安裝版,整個資料夾複製走就能直接執行 | + +第一次建置時 electron-builder 會從 GitHub 抓 NSIS 與相關工具到 `%LOCALAPPDATA%\electron-builder\Cache`,需要網路,之後就會走快取。 + +**打包後和原始碼跑有三個地方不一樣**(都已經處理好,改程式時要留意): + +- **`hook/` 和 `pets/` 不放進 asar**(`build.asarUnpack`)。前者是因為 Claude Code 用 `node <路徑>` 執行 hook,而 node 讀不到 asar 裡的檔案;後者是因為使用者要能自己丟寵物進去、選單「開啟寵物資料夾」也要打得開。程式裡由 `lib/paths.js` 的 `unpacked()` 把 `app.asar` 換成 `app.asar.unpacked`。 +- **開機自動啟動**寫入的指令是那顆 exe 本身(`process.execPath`),不再是 `electron.exe + 專案路徑`。判斷方式是 `lib/paths.js` 的 `isPackaged()`。 +- **hook 指令仍然需要 `node` 在 PATH 裡**。安裝路徑含空白(`Claude Pet`)時會自動加引號。 + +換圖示就換掉 `build/icon.ico`(要含 256×256)。目前這顆是從 `pets/xiao-nian/spritesheet.webp` 第 0 列第 6 欄(中立正面)取頭肩方形裁切產生的。 + ## 疑難排解 ### Electron 裝完沒有 `electron.exe` @@ -290,12 +323,14 @@ npm config set allow-scripts=@anthropic-ai/claude-code,electron --location=user ## 移除 +先在系統匣選單關掉 **開機自動啟動**、並用 **Claude Code hooks → 移除** 拆掉 hooks,然後結束程式。從原始碼跑的話也可以下指令: + ```powershell npm run hooks:uninstall # 從 ~/.claude/settings.json 移除所有 Claude Pet hook(先備份) npm run autostart:uninstall # 移除開機啟動登錄值 ``` -然後刪掉專案資料夾與 `%USERPROFILE%\.claude-pet\` 即可。 +裝過安裝檔的話,到「設定 → 應用程式 → 已安裝的應用程式」移除 **Claude Pet**(解除安裝不會動到 `%USERPROFILE%\.claude-pet\`)。最後刪掉專案資料夾與 `%USERPROFILE%\.claude-pet\` 即可。 --- diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..622241e71c0b05c4a7c43dc33ed71ffe912b0dde GIT binary patch literal 119920 zcmafaV{m4{*7XzHwmGqFYhv3I+qP}nm?RV1eq!6!#Qx^q`}eDQyZY4WRlE9h|2TW^ zRjYRc03ZM;05US*Un2&jg8=|;|3=u@|HA>00008`KMV2yFgh#%5c}_8V)`Ejq5=Sg z=m3C_(Eo4n{~7$C?0f0zF1xW;0+<#vJAV^Dz zDgS%_X9vj8|JDN#-GBd^2Bt49Camg_W1FmJsbhvcnt#GiMP)F}Ev=o*{_9**zO%W- z)n?s=ho?l2ktYEt;Sg0sOvI(2jn;L zGi%woAC7s`(tS*1^r>HSl0Bf!^}ro7CX7j zE~EgfoAwqN(ulAQzK*R|?ZZ$YO!I2esRnfi_EpQb3Gy`MS9=SN*6YRSgLqU0z;a zdK+PBf@1$><^a*CC2DJSgkFu@Adf2DSFb`>yNai+I;{GsrdEofR#J67I352LQTj(| zz5;_=#cPo>Zb%*^q_hLEDUNCe_$|LSt!uXuW2q4p8)j5xhAxhted`KG zvjrUT`CsHk)kg-o{AGEkzc7;v!C|c; z?2Awr{gf=)48_t1oh&C29+oMKzzqjaUx;h=L8+DZ`?P+~=E_PxnezNO)84@BiuOCJ z=v^GqX>f25+xzYVNx$di?bVt{A+lTE&Y>f&R5dN&gd~#GDu=@yl!6lz&4#16NvKwG z&5WJ@ZT)io5VK`Q@kjnykTG)uw##RWMqUr&1rIR~hy%sw>FJ%3q0 zmnCJHv( z6mkXyot>D>ntGfCla)dpHTOX=xAmg*OvhO`01xt^N`MRGc0{JBa@0p;t^a~2_QXtC z-PC27d-l?~sChe@|B(S6|7>IqN+(gFR7sJ>iY_Rwk@TZp^HQJjA@aRVP2MOY3IV-!JyPKp}z*!-3s1;Rm*kf=b*8o(u@|N?perp0Od{E_$dh z`RggZI~AF6t2!Y*%%G3NllD?}u;zT(klB}TmZKO^ZYAakizJf9BEsl>F zGp0Wc5jhQ&qO5+6nhDe?1ry>Px$13th+KSjDQY;Ss`$CN-m~gAAf;wStOWW>e0?~+ zUCB}Vcdh zaD?@E8Yf9FTcsBsc9*yVk*HbcT_uzDtKYYqMX9yoF3s=L5Bm^EtoE{o<7fuBzyw5YPTVM#>~vD_9pB>#qFe%v{7MUVKGW@ zFFF#oNw0}%WdRN^vbC43KmC(a93gANkwDL|Gs=p-4;}F@Ey2@gL}?C@Z>4M~v(U^< z_DT$!fMg&qR2*VWM|~Lq62WZne&4S*e46(u+N!*dw_UwT`~B=KCa(w2LKsmtv=9o! zt4o^!^Tzo1lhRWXa4&4AV1dC;p5FGl;@Iz;YFgq-rNYV(zy5w0*ndzrr1e%*Qluog zS0?EVt}i{4_&X6$o>CtsY0{zJzH`>^OvQ|D>7!jzY@vB?r! zDBZX6+4=c(EAeV+@Z(;~bh+K1(VFiGgSwr~ZukJ(*Me{*4K||#%>pqFIo64yUh^F` zfen2|4RZTQ)PNJHDl#T{(m~|ZoWr*%nM<0P(@8Jq&l48TyQ!(w89q6QUNsFBJ`=pn zD0?`FBoMGc+vPR1^ZeY<*~-*`^U3qLp{BYV30)vw8pNcjBGv95_QAlJKKvaMdrb0rO4E)_^pIIcU>9?BV&D^V-Hb`TgA+3kivE z=b_h~F>_~Rx~!MS=sSOPet_B}X7ZB=7q>090Y3UCqHjh9VeXhj*eaC$m$N=%1hd2j z_5o%5)%)I9zlDYY0(>_-4+u%k(bDJkO-r}N?7B?N*O#9F=KvZ5H1rg~t-*m)XYeAW zR*#_}0!awShU3;;Hy)_pwIgcWHs4#nL2KOAj;rmq@#G~*VLC%jq9WcYt9=fvqV}sk z-5LMiC4!sUs_JSL9c}Fj6}N3riHORxjza6QKD7PBVJf80gLY#PZF*r9I~FK~3`mkC zGsH(T6Pu6au01?+1G?PG)t>HP>m3<6dg~?L?oc>_M%9s5(A=4>b=Pmso4RKhjxR)Z zjKDnU`!kOe-dD%gBPVF#iSdi#gRS^i+0S@QAZQAt@AGiDLjD!+TIU5{;MK7W_)BIr zl;PWQp7sFv>s(5aW>r=L$I9C9Mmq3wdaVg))>Uc_$@|<<)`ZDtcEshqOMf2A5Rejg z?IN!Qp)?$DnMBv$uY?w&t~!;^KfwyaG$O?iN6#BSVHNquz#UpV)pXO#RF;HDz%ynz z4qI&hHJq|+P$p6*XqqwElsxDyn=^6n{b}f2jK6=p<7PG-OjB1doHnvT3F9^eTfzn} zAivPWn;|lG5|xbLRb(%_(}0$ynXsdW4)Q7|XpWT(Flk6zoa23WWA8pr0nv&w zpvjUbM2<^B1tqEJ>lk>q`pKEd9{pis>V&%24Z^xAx#jQ^zRz#8rB(2N3m2pFFGb=lTEJKxcBCQHUyIh`^Au`KyeObERTcQWp zc58!jkEiNbTUS3`GU~KkZ-2hsbjIT+E~j)h6s$^?8B51Vph{UonubGX_Z{tr)Ak~1 zb3|*h1a8wHkm1@hAbN2z_7B!S#$LmR_BFQ-cF}?sBDZO*8!fA*eFG%k?nVl7)ga*7 zq-dk>oRvyc5!?bL)mwpR0MXg2pwTN~F5KWUb0&O^8kjbzQo19_(*mT-~`=G-aUar&DOI7(XG02}-mXnf;e zX^cbpx@khE1H_|k%JpOSS_{U>FrnlN zII3gl(-+G@%mj98AS#>%7r0%7jMOB%FoRvg(G4v|Fjd{8s)IrjtRzn0VTG98ZYA}n z`{Ka$h;_!zg{t!cM6@y^=B?St6$Qmz#)0ujY>AQbIaPz`KSdxPmte0^T1CDS2LRYvHR9_)f z&p88910r`_xGz7dNn{YAlhA&CUy*&BPYZl}FhVsP%n(%2GKS9l5=}HMey*z%mQYjo z?J*K20k)d5`~X?ToDejSMC9;kD6EpxP^}yiSTO1L}=P7)~5z7$Sn~ zahem-bb`u-B`cD4Sy872m}J_0?f{u2ZU*5Da`RW>Nvj=Svv0=-IXnjlapYo(rH4~C z0&f29#ZBWm?(maHX`@fv+0oTh0yaS+wgFt@xk%$-7|wIVVGX5)mI9~ZOTPFi z1GCtBRa=4O26)(?3e-aa4fG3I(7$Viu0=zbJOsV2QxjKw^X5Cl%UQ~#=}nVRutN$O z-54&Zymkrs;*P4*z(B)YXye%Ax@KKb8Qlp($&oWKCE>V;q!WjD+ezWV1xwL@@S|lD zje=9zRCU@e2i+#w_8SpzW)L+KRKFXeSkM`@pq14i=?Q~rBe72}L~q7P@Nr{yb4?C* zX-u?|k8riZ&@O{x?)Zi9S>FNuW+5PlAOWpaX*u;`n6WNKi+YI9W%VY1 zE)Zg3Vvea?T?s@<2}k?uy0PVnof>L00pB2*oZgL|4+JRx2PgcG_{j8MPN)I;8V&%U zrv8r;PHX*2&|PxO_bP}vXoGsS%1H1-O2W%A6KfX!Kk{_ zSz1`I=ilMpdA)8wLG20;c2)pD1F%U#9D#%1gC-y(AqPl43HSaEz_X*xL2fJ{==W!= zGo;OC8?)=n>8^#_6t@BsIY{l*U!@^I= za!S?>u2xSDR+opNJ2Is9BWa*#WIW;4y{Wx@y+fLEFGS&U=MP8Hi z;m5b&H$U6gH}#w^AwN*bY@>w}EA_8Qj|$%rt96#Monv{*UDteu|J&Ht$_#5xPUp!( zKWFbK9Iwam5|Mywvzs1+_WXkAD%O{?=xF+v_5CHGh^GAw&UKw$XN#Ag>ER1_p|R5P z0VtL!W}6*xL=}K`-qKcnqo>tCAD{AXnS6GY(rUZ2o(>)MJ6jwQxJVCm&+R}*=2|hH zKmVV*yLX`bR3~J@^%aIl`KQNV1MddU@eM!v%j*Cn!1 zZHm`0#WplFe1>o1d_G&%ArEX*ghIb9*TBp>pG@p*GkqWkr)SG5^s$yn{ydf$P_|ut zUySNFTA9*)h>@D6blAZFk89QUBK*GJVq$`u1 zSofqJK_NkPqHh2q*U$|obo{O_!Da7s_GRVR|9Gco+}j(X(Olla6-5&Q7MPg3{QalT zM0QHKe;QqHbG!epkDhtTKIQi{mEh=DT@svWe(m~f-@TDZY<&~ak(xmKr&qvZW{>7>v6 zHxt*Vcic0@v1Wc6LTQ8OkGpn9nVKlLA}a@2?nA_5j~Z_A5q`(FJ~*&%^r@7N$BZ=S zO&@Gj=--$(f%n-U2R@o5pDD4TOIYO(We!+{ZoL0iy^pirBKR+cEThE zaQ#mj7=Jpr5JOs@5u(rAJLAsMc7o4aG$)0F>B)tQM*$J%rVrjhh+S{FQ_;2aHjGG4okF)*$Pd~TRDWAUB^c={4dXuzGA4GZgcMTiLzZ1|~k$FY|D>cv(t| z2>7c_NWDH!;+On9Az=|wC4C;<3XvqBEf*vPjz$ppDB@x)#zJXk=yGtN&&)?m_)}iL zedAu`QCyZK!Q@dx&{TlW{!Q*LaAz*srx%@no*7|?`F6IpyTA{buQpzkNOq z&sOu?A%`BbcZ3>LM-b$Bj+aJ-NDONfMaG>B+X>6$un^c$#!~uDz~#re*rdhUbwds` z9fAOoP9SmVT;xh(k|GDviJmDG8us{nf4y*#-vVTV+H|)N>JReUF5)1_27~JnW6YCa znENK;z<*Un7G8pnsmHcf{kaPQB$10~V4OBa)cm7@;D1U{6)`YEjX^Lrf-abIXg#rA zsmaME%*D;BJhrVF3AwvF@OJqt%4Wq!%`oK7T(VF_nE71xn@mcLtF)l}{VjqPhfN%~ zYn4at!8G#>x&@TvH9^cK#kcI*zEeX~@Y;!net3FpNY$jt zvMb$aozPUYS50PRqb3cXI+-;^Q2$p|r3ODB%j}1a`7EYq|I57AOG*6C=@ia^)y*sp-dY+gXg6H`S$t3*ZXY zE(nd}h1lBi;sMIkh8cQ9qVoxfv*==~5LI-A3{?fpWhUyj;O>kz;vsL;+KBio;Y1E? z!T>Ge1aOcrsogcoYNoje*u>OAgdZApB{x+$h~aqP&*PgU2(U(l1K3UhD(x)rYIR<- z4Yn?n7^jicHY;@!eJ(Q|?ZwLh)6|-~yCY`Nvl*Fv_AQse(_FfY6~|#SfK25@YEs&s zaGPOaa!QSrrN>7d1|A|^c!IMF(b;aN((_Iqad;3@Em9g$$zewTuu7i}UHXsknyY)Nq|hy7F#kX z4o9Qg~=ox{W}yHE4?? z%OcE5j~dtr7NQ=kg8OyrIaNGK4ViEfKnqqM3>O_$0Htyf41StDdk!}BV*bt4k7ywt zy-(Pn0yPXS@Cna;H^o0QW5mz=i_-Xd1h!ItW<*MLg;Y}$6AX0_;q`>+2*V417VRsjHR~r(oQAR^A4MvD1#GEQpz-Y4}c56yB?C%b1v<}|+h>@Zo%P?pD zASMaBj|^}chAKq|IUtGEOqmd|CT)JWLZf;rS@<>YzFepQFI1$gkcw>@NQU>jif;l` zeD0wjQXp-o3*U7d`>FR1l5QbH#CI&Dm^rlu)2+j(4-UKTm$c#8U$Y9^Uy|ggV9o^a zhzLe2c%4Qa3}siO_#=C)h>7YaFHB!VV7DGznflZ)4A8sy+cC*_2%c8&DJfg5%?dJw znyYI8X3cp+yjEbXiZ z&o>Y%))7tJ@rR`5!Y2cBuoOqBs5RGy-CbOl5=}-aXE0JUPy?+9jDH?M(a|_|NQEBv zndlx8W^U<5$8Ua;tjhHze}CdjP{~$A{%Uhxvng3O518Z;)2aeu)R_oJiV-^?dB4XW zboy>Evm}bD3<$}JqCWc?GI#Ls&T(h-dw8OTKxwYe$+2ifd+Il+$7FJbTjePPhuzPc zRnKx)WWqDLe@`2vxNy4w4q&u~8beo%23&3*CG!WIJAWD;T$^aNy2JZFC)1DRObE@P z2ZSMXGcm(}D+vjKe^^}@VG}qv7(dd_DkC@yQTshSs5@v0dz-+5<6}_uO=va09LnqQ z+4Bs!kJn;3{uMX<)7t6<^nAaIue(;QUxJ1c8#wJ+1~&)V43Y_Y!>rKhhaE3-EV6U# z0XH;)t6(m&ZPW!~K0BvadojEdZxV%2UJg*oh z&aQ{mXA&h{DR>%4ERSaG~0AU zq-Gq97G`?3*47vK9UKCdaIK^yfVHTP1bEWQBi+xNAa$q2iI!tpznKCjJ%67qRG5~N zuuX?xM+UWXXlGprqw(ZaI;xgY?xjpX+u#Kf5tm6vjIi-FStk%-XOdqfs#m>4f(Z)# z*%7eD>@C74E(s5h&O(S6c#j_}&fHln-B)Er-#>O{t5D@)#Msrs?5d>uP)4yUjOgPa zaV)1T_G??6BNN)~n>O2B$E0flcecV;s01(96lzx$*>+3d-Q&m`;?ml3oKn|4zN;* ziPMrfnii|0C}_cq8cYA%hG>v?XCRWl)A9K;KY&ikFc50TRnZBbE5wA{e!u_ZsYuPl z0Zg5~0ZgGF60~V*cd03-Ppxvcir(VzM``mFO(!X#@7d{~bDGan%Q%fYdXbRa$`RrH zUI!-au+0+J=%0pXsQCSd4*i%~gYYwinc~VG%%rM;x{Qi8#J_O}oHoL+sDz%5j0y^A zRUa8Gd_%+3vb4AsR!6lblr0EhbZv^!M~!bHM%9d$+&(UD8veAFTi=Jf$MN;we+4&} zx6is1(~DTh_TW*L`%%T@!*OGa8@-WERWYaT_d=uJ%%Y8W5oup(JdRK^PDqnmZ?_D3 z1L@y??q+G@)S|#h!ci)VfTe>6Mkt-wa}s6ySyB+&fB+YnHJT{(ohg-tx9J7!8cqB$ z2;bxLKP!sci?zJI3E*BYd1RCw!BEk`(H+2H&L3CExcFh!X+aXHX;V=_JK=Zgh*?ud zvn5$peH`GSB%GF{bug&Q=;9}fgv2BuBZaKN>TKXXTVV}#wu6EA0<(sT6wPl$(#uio z$=j1NK!a}M=Gu8;L1yYd6zEeGKMl=gVQU|0#EKdmf>8r6RI3;7D(SWb*rMFSMjS{j z299Zs6RE|NhAw#Bi}g##cm-rnQzSw?ZfZ{9?N@O-{WU06+7(IM*HEDC1vYlGUgn#x zdjGEO@{eoDQd+O$`EIy_%I6P`mX9>-mGY0p$L`%%o0~|;^0TQ0UT|?GW)5YCD;S?} ziEd2&3v+)&k`B-3RZ_^Oq{I_vunJ`M{HSS`rRCeHYqxrTG?hD5O5B*;Nas$2@!gKP z&lqwTbezvzf60hp?P$=Y5Af@?DL|w;!IZ}lNmO|tH(3qxgcafw{&>k)%u2Mp3Zecn zmO4?PdU?Jv2yIGP_WSEK)-o1t2*boWsM%j5q|w^fd}VC7%U>J-?93DV_!yKi?ehW{ z%Gm0OHveTvhcz^!BF!79{92h+Cj3_qCMJ+Q+_s6h&Ifg5OjviJel+yxt4d2rS>Cj? zQ*YxFda+1_(2%9!79(fZE7JKzJZi@M><@y+$au<2z;F70s98e)>_Y!lv#NeMZUX>> zvj0=FuDoF!ay3$q-M@W3J29;rI3{%tDco{~hoq%=NCwkPEhoxQSrQcHehtiS2^nS; zmg%@@%rNoegh6%`l0bkDSW%G7N{`9x*8q)2N8<2xT56`X^GnKGKi<3D&-J-oRF=d` zkTdcs+Zo2aO5eBrXWDnxdYr*Oz8~MU{vD{Qai8qVqSSMrh<$v#eZTm7Is(V*ySFqGR_?FYorodxOCHHF2PRwmO|cZ_3L;7l${` z?TMtOYTmvy+o&~bdD6V5KQb`(@8AsITV~VOu13E56MOsB$i~)OGL-*itRPVwzyFE5 z{aTCsiO*eoFFo5I&i4_0U@Cve?-isD55xg~Uo6R=KjT3qOptT4?G&h@M7T^+SnD*; zywuoz80y-On|_IeboD-=z>Xux0H&SpC%|1=TA`DHP;Dl^c-$P6{3fcT-JNI0xaBN^M z{|PGo^CwWhBRT%_*4bCE_j~)|<@S@$Z-27ur7yi)(EBLWHF`$ZFJyKb{_@%9z4Aw} zjnVVznKTdci3-2k%UIn;k7?}V=Suw5x;U-HRR#>#bB)2Xfz1ZPkZ`8RLcbO~u#JyC z)(5JksRqQYC~_uT9y?t0`8DZvvyhQ- z!lvYDW^VH^d+VTEXA$QxTjfBOKoO9et^uToTf+Mw0l3?A=rK# zPX7{HtzGpy$#r+rX=%=tAS4r0nKT(JFao5B6*xkVa8($9A&?m{hB#D}&>dKjjP3Xx z*s~sphWC0NVdx?8(6nw_T>+fuHG8kRke2D`bd|GnO@@jlY#KhA!xi%2*Wyc64trT4 z9Dw6tlO!m!HQceGf5aQLbmrs`bk&-*<<1sGRv))xfjdO}ADiLBSGMbmP5o>sKBy2m z!vdQfJjl}kY!G?Wl#>%CCZ+(ZcJL7siof8vs}wn+-Di3leogJ;JzDo84+U&9IA-8w zV7%Eam32yFrPalwVT5lZNYDO~FEEYP=`Lgcc7ZJN!XQ$#eIw|LVX&vGQ>&_(!9-C4 zQ`Ut|#%lIx>)Lerc8@>bVysQ(!}oETGKR2e}IGM$m;^|HGw$Yn&#N({hV9oyT(fh|1gDNWtNvpDseo){`dL`nH~Y>VKI9)6N!EUT8$*4 z3Jy8J06Q~eUNItfcHtE58EttE=DD%j@%$+LZh~KMIFwf~;5ZhK>H8dI@wiMe>R5@} z1zLx**+G&$LJ8Jkrw{z?XWX7jemh}HVK6zNCAy(q*%;lAQaP+isIR|e8;l*<0eP{Y zAN0|nIg#Muw~U`BPz$2TA0NtmsP$HI)+i8>G{ZzSlLZM4D9jKh<&<~38efFz`c63N zlFqk{5Pp=1eFk_-*{v=C_8kDZRwnNUwNpFX?44%;F<6I>KDdZM+-4uQkD=i0?)K`vV+HuS0#;#BKRRc{@(a{=k4^?Q#(~0 zNq}B)ekxOPb?g4xZnC}}?`^;G&WtP5IUp|_6gTLu+X^S7xFyBgWu9MyFN6AN%yCe} zUtCy(yq|7je|dKouK<+yQI$S07H7>UvXVi5x$VLom<>Pirkg6bFhurk9k-C?m` zfeuV!Fyh!DfB!^P4Y0VbrbTKhz5XGZMO)}`JKuP}-IG;6*pJPX(!$-;1rcr!;fhQw z(M>U*T&xOPpOSNlN7i?M2)Wd9qb8T#qEd8tJxb4h_PZgV zh%ym{{s1)HJ9`}M3i~`$J)3kK4zksTENHr_B5RZ~^(!KfO?kq|poA8KKE{RpsU?#O z2#pX`Vh_;`ExXXvoBdr&9}fpS6XP(G`ZJW$Kphi#Gk2mO*C@E@dsEE%H^KBZ5?Sk9 zB5^wk{w9=)@MY}$`iU14@~4>TPO?>3hYo@c?{7sqV^dS?_$zP186trw?SaI3)e0p9 zdYXTopiBmNXuzJl0-V`rBC$E-7E`$eVQ)y5od~u(;#ZI(5q6zZNDNuIW6nyVsD%k; zRZt185HCND@9CF8UYqp^FxSe!V5d>EKy&ggGbo9)lQI17Hh=cb*!r8ib8tB_xzJMm zUizrQZi9vXNMxcTd5W>T{wOyDl-7ns0y(uhAGtIsh9Ux1>a4C*pbDgfs;M4cog!#4 zv@a5Dd_R}yT(pC+K)-2$$O<%iS^;ye@iZm{v(nGzg<9SoPHGfl)7RY0zKaW2s$!oT zB0+y^{8!#ls4zw@FQ-}0qg9$1EQ^K#c1OG7$m=k+2;+it$&7k+B{(v2=H!VA2^eFA zS?&Bl;ebY>!FjcsvGPO~`PYEVSJV&UfIyt%V&IyWo%@L_>ydIY(a0&#`tYL+{Vxp`%v?!$y{AACc~U|>1dP~M zLZj=r4R;!%?8>ervy5;^N@cOYQ2|3Xh*^LJeeu3`g}59ax;SHhC2X+q#&26JTbfjD zN9;7KwX65hIHEI%v|4Zod*iG1W?9doR*enE>yi2a5$6FMgJcqAj}^y$HKiwIrV%lD zIugbLMmBY+H6}KB^`KJifVHY{rb4OAFb6vpo*^TE=!#({_o^FgM;%FEP*Cw+4k!rH z#4Q-oLSc}m27wOaP8etVnA6T}$KYCz(V%2T+NPtq6^~YWkX!!*yhv4$B`&OrPzH$tsaPT7XB3e* zs<43BDI?{qGB>(zFncw$;`pV9OV{_TlTrblieG7ceSEF0U7d!@Q~G@>tidl7*TE>Z zi9J&PY*w{XLn&0)#M_Fjs1T5%oC_RC3GzTW<40r3F2K1#%Q!YPRII8QOBZ0~sdKwqgvMM^`Vk!Jx}c9-;2nghR#< z3716?a^jw%T0n^75Ii(Zx|B3_vciHPN)WN)L<6XmMk^T8(-oK=V&gc=Vfui(X;XVg zDgvWCaN5;=g4#zdw-%be(0cpwpJgz*{P09WDwl!zm8)ItKY z>LGhn)lGv{MMg(z4T{C3ff((!GQ`6JLs@2;-Io!vSQl9}Sw!U@YY@r3>Ea9-3ks)C zuDJd|T6IjDj5M;z#hl{)W_TEr6_&(icD6&k!+R}7V8Jg~^o`-Sd*I;lwYjM@sWh^Z zAULVJR0g@KsD#lk@D7m#c4!auzp(Mlg>M(>v@=c^LQj_<7r#!Wm1H>XnaH{IltKdQ z#<*CFP>?a?6wxVegRzf7SPbV-mH&87CSU1{`+`q*86QP$NK_auZJble7kM;XbM zXogbStTw`2xzd=r>^-33C_vzfbr2~Pq9Uqjn6fD)f%kYYtcYL0^YhEr!=#kb3i%vd z4}>Y}>gB6pq_LO@3f(b$!A;an|?7cGgp=N@1 z4xsB|o!P+h>`4s(vI+w;FtapVi~Yn2Skl6RN`o9)EEj{mAQQiYsOJ_{HEC0v)`AnU z_4rSjhs@}gdTC_W{@h=NYjvy*fxbng}cl?&iP zVAz-;4Gy81gG*`0u!)1r>Li-GviJ`e?v&H(04U!>ENbQ3JZsn>H@LC{>6bfGterMb%A*zawUL@MxhP|{zg!dWyMP(dXhw;s3&(CENfUoc0-hi-bXjH9& zh@q0h$Y59~iVlAGf@mYU3!Vyldr9Nf2rCR~K4HBPagHleMmuGY34LN`@H>Gtazz&~ zxMn~KScmOoy{a!6kl&t6byC7t06{~eVDbqn`1D6uicFYPK^PUfKJtd2h&-LiugSGb z3KTW$)LE=>WJkXSE>o6|_7JjEr`=;`%L_|UHOE3U(2dyy>9xNtwv!^*$|+sY9YO(x zlbsVK1XDjzOdGYPfapq9s!ExR!Qn6&dqwy!jb1r~G(pH_j#2?a5}-P0*&U2~%>XMjANQROn~^5BRuvxdQD+F?;+lvm(vMy>-f#Kg%Ti+|kB; zLgdDVq9V6w!b;lX1fT-Jo9sFS#o=7duwG<5%< ztl1#8>k{TraPfQKLd7E*x)>{zO|gEFCeq57s}(xHBXkrYix; z-mBGjG>v_hG0N?b>GZIDS1%|88=f&8=Z$B&4#m)(fnAGKVMN4Ga!O%Xk!7 zL=6)MJ4BXu5ht;lLUTCozM4YN(ZXF{dIs{W}DeGZhw66Dk3~; z;mKxffi!h{2zg{dxY>|VLEbT(~U1`e} z9p`7S`lTa9n$BHt-iOkf9kZ5 zsw|VP(}IOlg65&6vHR=O`h#fmy!No|-rq#2DS~un6&+L;Pwq2v>Gzse45FMnv>lyx z$q7Bbm=u7aNpe~{%JHqXn*j#+rzfIKtV0tUqt?zqPbf;tE>5d7YT3lE$No}YuNw#d zkNA9d&U!0h{BYxK7%i2-tYyfWYpcP)!Oxe)s~ySdIxtpSwptsB!gdVCX_}YG`W>Y6 zRI|GJQy#YIfTGAO!@2B>Fqk5pwr8yR-C&{~6i)wL+|8#G|BxpjgNv){?);U`-Bvz- zu%@EPYYe%h@d)w|K3k!tLH)rz{g!DRsxx6$ZEkEV3(2`}u&jC-WPm`s{iymu*;3^^ zH^V)u>`FwLLqyeW&NT<}^w7@MBQ$WQ0c-=fLwf(kezAN|M3BB;FL+N+6M2t3Ek+w_NCQ-zH) z8)wD~1<;5JJDS5I{DQ+-DK)|`HCDdXlKE9bFAu^?0lxT3_QP5{zB4VFNxFcxs^(O^ z?tEzP;2zr z0FP5#At?&w@Pz^SzvZf!&<II|XlDh9q0B;Imu5VJe}!c<@xwPtc$f_68G zZS3P|$A|9f86D+lm>F~o>Yg+-YStM1!$U~8%v#=NVa{z9{ujt%}(UW%{%3?BhiL7ZlWZ_>+<8O*WRmP zh%lN@Kn8Yk5uHMT6J<1UYG~VahkrPcJi>lX3H2Fke5u1DZ@sXI2P8GRDFTRs87g_2 z)JS6s$cp^l(2I1;1zd+zmqe2E8m;$V1oDM6^6zVnQW*F+IX*97M;w2qi1q?>c%@St zDfk-A88sY%o?)r53p>;1+gk64v#)yrnK<&Ar%mq@7`3S@xe};26BQd|5;C+HBl0XA z7GK=&y6L`A`}g<^TwIY$HO2h#!UhJhODL%!TPU?mNDDdw2p#dc_{5nKhcZp`PcXD7 z<0juiE2d`+vhsI7Z-@kb@71;b(O@{No9=oOvkfS*Yjr6ct6(xp!BA1Mf+bWoQAs{e zP+lIE)u-`zvLf`e5s9QghYEpUy&_xRs%XKdXDMfMB ztY8fW(M2BVQusx_p@xE~z(1wM6bM>0+pj~_*guwj&)Y@XEO29vjz@5Ln;h5!AyOzv zgaQno?YL>(Eq7lmy0ZK`nz-v>_d6K!gEgw1$eD@5GOEmQT#NsL#*mAxH}?ktq_Jh{ z>7jCq0FIuBU#rp{&f-Hbsm_9=Xy{6^zh(VA37d^kj7mXOt0SToZe`%42C$p6Dj-zP zLNrY2`P^K<8FTT;idJ^-3)JElaAM2!(N3<<-v3>+N~;Rs_a3_KCp4QOjPd(>m2Jo5 z`p!J!D>>6vF^wgydf$G$0v#zb2LZwizxE@bC@`8NfGb4=w~Ts)n^XgxCy30^lwqc7 z;Fu=jc#JX%6=K&oLpgy=DWvatPbJDpj`;$jk((5@N*nv&VG*0HpFD7I34XX#eHZO2 zrHd=z#`6a{@p2wND7cfudFXR3V-CPVhkxhxEDWWYlp#pjkFiPl;*%VB5mzTYbH0>fh0LY1ooYzdM3xcT| zF+SBDjep7?Xb41cIdKh1LMM$lHP$Q8?Ba&`Tp`5f_IRtw_xpbUgg|@0YY=dD@!h+3 z3!lZWNB!Z2XnxC&UK;#*Te11CKDH+KQlZVhxi&jXEz#!!feJx@#-I^J6p7ocVDQkZ zc=hXd9&`lGM9y^0a4xB{^cMDnL^b$9s5C-;cti`QtlPcs!l%6a{(Gkw** zC;I&=&6TbE7m`QZLr#hbIgXlf>Q z6hvTQ3`J9+nFffy7%2=ljUBgq1o6>+AdJA`L{e)_YdfJfG{CP_5c)Ovl`107lS9=a zay)co2w%QuKRnMv-Xd7xsGv-wL87XpV*Xg=)Zuz;9|1~a_wPyp0GRB(jT9$#bR<7s zV6~gVBwxpY>VJ6pg^Qnhu4cdU+Dq8^>vL+}B%qWa2z}`k4O>!}&}|3WhIQbR6Ch!T zSW%Ez7J||o0>1((B1RHQdVFxYf~Ss+}}M8 zEB?&?T$xnVCa1B$vvp}ws->2r9c3m^DrR@SaqV&ZLhjX z>i+)W6O%i!Q|-gjrpB~4qkvzj0U$Mo|DLzA|6@wo_r#X%JLavw6%4h zRxM+AWDrjtJcdV}>&GpZwWFmmFNYsZT|*c~n4YhSaeKTrHiOqH2G*`!g~rA@sG5mL zcAcU{*2l5Y(Oi#maaxk1X_HV}Q#F&Of8JuZu8mmm&E-zL5WEHJFW$B5_9W}xeZ{*j z|A8OZR@G`%nbbtFm<$t+F2q7<9#aEH&=ikhbz3tC(GmF`!YD$e=HpB`LD^|Up=~v6 zHzQ{Wsx=Qm7(!JwIccJ)y4-*FKRpaB@sUpvG}`HfBy?_Wv|851X8C_Tbn@ilFv0Ij z0k_<8i~daWJh|1}^v?QR_Pe#fOH!GPW*H`;D1aD@j)MT2rh*e4#Zxb%P(FdiLZhq+ ze7}NX4X6~>LCZEENn$CqkRTDvFI~(BJkLkDT#=^p)U(fHd}xd|)fsBmaPO^F+)s~T z4CS(<5tcPCOz;-1FMQz(c0nndhYlUWmMvS*+1Uw{0OWw7A@Ku{>&yYUEf~7<6WAht z?CeBoXb3~OEy!*8_b3fLd3J9Jot;}yDwP($#J`~uhDt-o<#O^phYk;;vm=YxZS};T z=HdVFBL4=S|EA9HzX8KfzF>pCEbIUP002ovPDHLkV1kKIPDc$28VUda01Zhkcn8XPVd3NI15Ie?sF?QT)hZiS~9Zz|AvBL{?unh)-ZNL~C1c*Tlnx$@atLLe@ z=Bhj2Gk@>5_PM1HKj+#0M=jC(b)Y0w)vY_6Z-4vSd+oK?241;dxn8+mxn8+mxn8+m zxxRZYO(~`A+qX|w3ff=w0RCPnrGMMkU-`IKu8ZvAVrrW9|N7Zq`u?w6?0x(8{SS|O z<+|vu7uMDL#eef}UiIt0{_C%)R#BJV42@#r-#_{8cVGUcFZ|hi4j*{(SHJd^&;83A zZ@hexKYzs&T!a_h{BU8N&;0SH{@!y34t;2Gaq+q3m6g+n4h%VIa)6CwQ-X_@rh6TK(E`&WKHu( zrEy0om8sR`rE|aXAAjXeKIZ3t{ui!aTU(pwLk7)-u)TDAy|Z$vtyHK^9eeD+Pyh2D z+x_j&`Ty&C`Rji6%Jm{$YItt{+OPfcElW#FN7JMqw^mNBwO3CJnoCFet(9YKl@HYE zgNGjZ#0P%ohYlWm`olDe^`#S?*16}C{=zZUJbNTsnLo6qvNiS4pM3P)!$tdB#{(M+ zz4!V{M?dfB*fX z!z1NyymQs?vHSMD|GMMPJ@UnP=~~HiYxUjmWsh@t=Ke_UU-ud?by#2CWuTGmM`h(8N&W>G^_rCM{Zu|8u zQ10-(Y8!FO&>&t`qqx`&;Dt+NDhG5e&r&ED%5;2~mJiGEVf!V`wmid7rl~>K4b6gK zd2swHyix~SZ|t1 zYh8uM&&K7x+WM9^-E)Z;)xLeQ@R|nxgE=c5m-hd62C#3R()X$1*FHIK|5t88s8YQz zPoe9%WqB}d7n*6%M7bYyz%;EY7Q`P$8KYpnBH(mT< zF*Wu6pZLc&jBRr6!1|oZmX*s$y=i|%3$nM>{r*fqX zevg;wGGB(*q{(x4<=FpiKh$)npZixj_V4G?{7o;F=Q)ihd*tDV4*|PiyCo~v^jyo8 zp+Q0Rmg4#QZLd}QDRM>A$YB_oW*COwZLJTk*mK2O9{RISoV)w=Z}|o062tuRuU(+K z?z!o8m0GqbnOjcH)bQds19Vf_=D_NhQS0dw=T8^*qAK6`#7Ew{W%uU05v|(ob8Ck` z^e3PEx9|VJ#}9586TXWLKw~V#d;0hP<$t=TvT5hF-Apr==g%Jb%rCs_Pq2S~21fON zJ0qYmsfQl=ERO(ax!mXQE((JnrMzGHt%rZixb%|uhF)#F z-OEs#-r0NGuYBRRjz9cI|L5cT_aFb88i52~x}N{iFZ{xu-Mg;%fjrN0l_?mO!Il5Z zk1o6bZ9`T)L$TKi6G_tqwq@GQrIk*l7L;zh{;Hq*;BWr>!@92j>Cg!Nr$OixrhHc$ z-G)H~6*V&h&{JfYsWKh8LVFM%0}y@uDo%+9RGTcbFsw$!)>UXU;4iu-naesJAV(%Qts7V&}^0#c_BdIs2_rsWiIf%B^p6tWX=AI2o0!O4V}RTC(0U`)60I*~-jFvFz%* z&jSq4eD%+N_IK{xcGJ!O`|;*tcj^2ZqEHK3{Rr(|6sd)kRexgZEz>u><-abSJ@DrJ z`}dy%w?Zz*u=<}Aee#d}!SBCmW@hHKN!UwNp6RA(>v^8huQT3%VR5yb%lkt9g`D53 z9ENE_(>3HOLzbq{O%0}D*{#)XQVzVUfA|0T^}qK6Kk}acd-xgtU*1RUmuEGUYH5fv zWMQT$k6SobRu&npcK_I;-#U5Z_kQIk-{l3Zo!LSsw-PrnE>yx;z_6DQ{R z^naVo<0A0@a--D9$VjhZ(F*Vg%>KKC%ZYP1(iIkRTrkkt0+*>>w*2ku=zw2%P z`!8R0(|xn_7_#_(^-YmGfAh_+dP})n9!ZjZWZ90JXBkwMLzjg$pi+LHL8%ORnnI;1 zcc*-xMIqMDpG0?Ug@z`^kz}bDKria0b_uncuD#+PkByC$hDJEd;fr8RDdqk0PrUz@ zFMRAnKUoU&OEE}bk8ZNGY7M%jn@A$`SKDf4c53_W*KGSomAp5Z%$--Z;n|_o71{c46uUOv|vN zEKUtA&VnsF9w@#0SNB}kS$%H#`KSKdXMXKRKc$pPhr2^}5OhcnL>390d zR$AkhYp)&q)aO3e-M4R_93b>O*Iqk0_L1NC@UP5l+I7EUwR}C9xA->v&D$+R5zH(! zlTMD(xZ3vCH*EjuGK|se^kSZ`cXU-7MdBo3S*hUMT6Fk7fA*2zlza6O@BWv>0QNoj zptc`S*Iaeeh;LSRwmZGt&@_E=#Mhu(NYkA79g>`W)HJg!&O1q%YrcO;eWY>8^vsp7 z_RZQ)XqxuHzg+8o*Sp?zPq|#WBugX7<_H4mmJKaU&^dJsaleC+T~`3G#S@6Dry($J zOk)_1hb>p#jJVeo?*K&5RgRQkQkEgjRAxH*=<9F4>4r~z?sKOeeDFa@Uw{4I{q!Ag zdHVyuG&4PRQ@V0G$vf*bNu`;(ruerifd*YON;Nb}bw|@M9kp6{vfkFTT+>2ish)HV zEe^HiLH{#<@X#|yUXB#-B{~8g6qh*?Py3UpU#pa~WULlwp6hCv##;`AIS^$zl1w4Z z4L!*+EgN*g_2uPunzl-J-g?>le&k1f@_OF$1JNnD-t`6(R?f}J{X(E z=&ozvRz|oO5(@BPn$nOZnd~;(bz%azP!$FuSL)VOY zMbk&Bh|<;2S?zm=9$)$5FaPmFzw}*>1b&ITR#}xaD395&4Iot-qEsPDx!ZEYS&lGM z=p`xoVS+r<^>%Eyt+l3ii8>y>?Y6O?tl5a8h!Wha$UV_7)nc%kgKa{ zjKae{(lmlUHU`7_uqflzaE<$+tEMu%(@o#EY~l&TAo||l|^mP zY67|g7%ssM!50{l2;OL#nzAfJh8CBsz;AYwwXYsM`|BTj__+l<_~6U3`!DDbK&$@P z$DqIMZCZNQTi&&0>NU6i^Nt(k;bN>0qRhy2Ln10&*N|oz21zD2j1<1LZj7+s!t1tW z*7x2pX-)WAjMBta-}9#X|I45L$?s1Qpn2ed2aMV2ZP#m>g*fWPre?WW)JK-Ygmtlg z_5=<;`Is0N?R@tQufo{O7OXFvL1mBTH)# zcVpXkzkYG;h{>gI*75yF2~U zuYL0ec1~9}>HQ^zPRFtw+f4gCq}>jjS{2^ZRv<1skY*U-{*m&4llla*xX4Bv+p`8) z+8Y@u2iI(!`QZn?=f*Dq4=yS^$nulA=nY_4MN>EJ{l3}T?)$-4&s=rYPt`ZgUVZ-T zLf9Lmj%DZqy`?b00$!A7h%ya*MuBk$mzVn3yT!(xm)B4&`REQ(Xa@Aa2`X#zORe!O zo2s|ndh5^Jf6r}CJ@(|czOiZZ^xIrFDD}Io$TTcNb(&E97HmUD*zVx)SHFVG_wGew za#CV}D2j3F&=G9A@=Cn%9q)h@_u#o6Zod9nM8}VzedG|ViD@Ku1(==DqE-vt?m6Sq zdgc0ZwvIGRlx^B3p=8~!A@HjLG&SeWpyawREE{PU0U2X~f+b)On9_k>y9vv$!nR9J zd$}ENZq)92_p5JvkEUtwlQ`gIhy-5Dm*mP5TGM`f|9}17v72ABuU^}{$5sQZbXSsY z2s2ii*6&B~EFE#C&`%YTJcFU-DC;RMt0cI4r;i=8H4Neug8|*S0h30>V6oRtP219S z$LSsZ`hl;6-K2BnUDw|0mn)5arm1iew zIYjW{xUcd!QC8Q~d&^B2Q$F0$QRGpC{P;7_&YVEHvVbTH;q84LyvuHYsRJjUeG-p; z?n_ubatu})W8(75vFA;1k=Kc%2-)HS^2Is94^q!XVq56+m-FSNqj7lfta1G%Gv?Mk zJGHRcLv&^ZmS({lAH&Hw!JmHRX?XMoc@MYUbq%&&wjKSIb@2vy8bW1}xPQj4&AGEu zrZ&8KnuK9)8@m0(k@NrlzJK{&{>4RH4J_XHrI+46I&<9}KYLW6a`fpV?UG@7Y9ug{ zJlE2kiIIjuqM#=UZriM|d&)(o`v_bcj_V?cQp_)&M-oSR$i2-nggX4{UdOf2 zb)8_uONs`*C7CPg|YH8kq@3?5Xan|DbhGZ z5)IJrG_k(2tOn6K^5sEl91PBk?(%I^y{UMhOtW5xX1f@eOVC^oTgMu>qZi}I)6d~m zw_bsr+c!b=`J54;CFqASoKF0!w;sdF(h}xRoWvXNx)Y;=Wwf4q7Ut}BDBaX@GuM)CAL_~6(EBm^SFNF+bl}1k z_?NGl_j<^(90Z7x-dd4uSUh$doI80!zSk`iN~H+99mIn!y6fxt(&}>LSi09*?tbdu zfBL{X|2J>*^*^+A>_b|ZZ|Z7;K`HP(f5#RnHrcj`@B5xx(R$UD2r6}~EUqH#w=uJM z9G#UFeB~?8U@7$xuFv77c8tp|-yy-_pxa^zTE)>=(oA2B^4QQVp68Y+M_SxZ;khP8OBTNT)kpD-M-O6lrh)Hy^IcH6hI6OS zB%Er9!VrT&FYgQnNpUmrl3p*K2gq~nw62Gr{_~%I-<9|M zOhX^p{Ki;MqTXPTCP{8CbTTwMUA%UihTCRzJonUNsL$-c)TV9dcUywZ$2#BzCEWPx zd(k|19w(l97PsGjKk8GXXdO9#Y*Q6#au!|0Nw3w`la;LZ)s=()`h&my*{}YGANuis zHnq9@t84LUN*LL%5Cu%W{w-N3-9P8baP)gdeS=yOiL$ z#}DA@8?VJJcixB-&;J2RmRBBaZVGm)RA;~ht(6HWI$NJie)?aQbwUpWQdVTYsKJmqE z)nh)^+g*KPYz(%iOBTVMmL#d5gT!Xmnr#fC1cB?w0<5ezkqJLQq1)$f3=t;@2vm-i zOH;b1PaR%b!}u?;=fH*bZYh1~(~e&%ssK?!wNUo6*a3z;-1zy5!1T z_<z0*We@sQaT`eCG%97AOq(&cV@P~1mc#6XayDKdHX@85rB+ot+I z&1e3}AB0}x`qkF?{_UGx|L^aqW4i96mjELZvp93)FpeL13L_Kaxcb&RQJb8?{HfD; z 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 JE0wK3{vRmV;$#2- literal 0 HcmV?d00001 diff --git a/lib/autostart.js b/lib/autostart.js index 005bc7a..dc9a39b 100644 --- a/lib/autostart.js +++ b/lib/autostart.js @@ -3,6 +3,7 @@ const path = require("node:path"); const fs = require("node:fs"); const { spawnSync } = require("node:child_process"); +const { isPackaged } = require("./paths"); const APP_DIR = path.resolve(__dirname, ".."); const RUN_KEY = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"; @@ -13,6 +14,8 @@ function electronExe() { } function command() { + // 打包後就是那顆 exe 本身;開發時要用 node_modules 裡的 electron 帶上專案路徑 + if (isPackaged()) return `"${process.execPath}"`; return `"${electronExe()}" "${APP_DIR}"`; } @@ -35,7 +38,7 @@ function currentValue() { function install() { if (process.platform !== "win32") throw new Error("只支援 Windows"); - if (!fs.existsSync(electronExe())) throw new Error(`找不到 Electron:${electronExe()}(先執行 npm install)`); + if (!isPackaged() && !fs.existsSync(electronExe())) throw new Error(`找不到 Electron:${electronExe()}(先執行 npm install)`); const r = reg(["add", RUN_KEY, "/v", VALUE_NAME, "/t", "REG_SZ", "/d", command(), "/f"]); if (!r.ok) throw new Error(r.stderr || r.stdout || "reg add 失敗"); return command(); diff --git a/lib/hooks-installer.js b/lib/hooks-installer.js index 004f0e2..03938a7 100644 --- a/lib/hooks-installer.js +++ b/lib/hooks-installer.js @@ -3,12 +3,14 @@ const fs = require("node:fs"); const os = require("node:os"); const path = require("node:path"); +const { unpacked } = require("./paths"); const APP_DIR = path.resolve(__dirname, ".."); const CLAUDE_DIR = path.join(os.homedir(), ".claude"); const SETTINGS_PATH = path.join(CLAUDE_DIR, "settings.json"); const BACKUP_DIR = path.join(CLAUDE_DIR, "backups"); -const HOOK_SCRIPT = path.join(APP_DIR, "hook", "claude-pet-hook.js"); +// node 執行不了 asar 內的檔案,打包後要指到解開的那份 +const HOOK_SCRIPT = unpacked(path.join(APP_DIR, "hook", "claude-pet-hook.js")); const MARKER = "claude-pet-hook"; // Claude Code 2.1.x 支援的 hook 事件(對應到寵物狀態) diff --git a/lib/paths.js b/lib/paths.js new file mode 100644 index 0000000..37b3c21 --- /dev/null +++ b/lib/paths.js @@ -0,0 +1,21 @@ +"use strict"; +// 開發時直接跑資料夾;打包後程式碼會在 resources/app.asar 裡面。 +// 有些東西不能待在 asar 內: +// - hook/claude-pet-hook.js:Claude Code 會用 `node <路徑>` 執行它,node 讀不到 asar 內的檔案 +// - pets/:使用者要能自己丟寵物進去,選單也要能開這個資料夾 +// 這兩個在 build 設定裡以 asarUnpack 解開到 resources/app.asar.unpacked,路徑要跟著換過去。 +const path = require("node:path"); + +const PACKED = `${path.sep}app.asar${path.sep}`; +const UNPACKED = `${path.sep}app.asar.unpacked${path.sep}`; + +function unpacked(p) { + return p.includes(PACKED) ? p.replace(PACKED, UNPACKED) : p; +} + +// 在 Electron 裡跑,而且不是 `electron .` 的開發模式(開發模式 process.defaultApp 為 true) +function isPackaged() { + return Boolean(process.versions.electron) && !process.defaultApp; +} + +module.exports = { unpacked, isPackaged }; diff --git a/main.js b/main.js index d928cc6..36ca5ea 100644 --- a/main.js +++ b/main.js @@ -6,8 +6,11 @@ const path = require("node:path"); const os = require("node:os"); const autostart = require("./lib/autostart"); const hooksInstaller = require("./lib/hooks-installer"); +const { unpacked } = require("./lib/paths"); const APP_DIR = __dirname; +// 打包後 pets 會被 asarUnpack 解到 app.asar.unpacked,才能讓使用者自己丟寵物進去、選單也開得起來 +const PETS_DIR = unpacked(path.join(APP_DIR, "pets")); const HOME = os.homedir(); const CONFIG_DIR = path.join(HOME, ".claude-pet"); const CONFIG_PATH = path.join(CONFIG_DIR, "config.json"); @@ -26,7 +29,7 @@ const SCALES = [0.5, 0.75, 1, 1.25, 1.5]; const DEFAULT_CONFIG = { activePetId: "xiao-nian", - petSources: [path.join(APP_DIR, "pets"), path.join(HOME, ".codex", "pets")], + petSources: [PETS_DIR, path.join(HOME, ".codex", "pets")], scale: 1, position: null, alwaysOnTop: true, @@ -51,7 +54,7 @@ function loadConfig() { const merged = { ...DEFAULT_CONFIG, ...saved }; if (!Array.isArray(merged.petSources)) merged.petSources = []; // 永遠包含 app 自己的 pets 資料夾(就算專案搬家了也找得到) - const ownPets = path.join(APP_DIR, "pets"); + const ownPets = PETS_DIR; merged.petSources = [ownPets, ...merged.petSources.filter((p) => typeof p === "string" && path.resolve(p) !== ownPets && fs.existsSync(p))]; if (!merged.petSources.includes(DEFAULT_CONFIG.petSources[1]) && fs.existsSync(DEFAULT_CONFIG.petSources[1])) merged.petSources.push(DEFAULT_CONFIG.petSources[1]); if (!SCALES.includes(Number(merged.scale))) merged.scale = 1; @@ -349,7 +352,7 @@ function buildMenu() { })), { type: "separator" }, { label: "重新掃描", click: () => { pets = discoverPets(); if (!activePet()) return; refreshTray(); } }, - { label: "開啟寵物資料夾", click: () => shell.openPath(path.join(APP_DIR, "pets")) }, + { label: "開啟寵物資料夾", click: () => shell.openPath(PETS_DIR) }, ], }, { diff --git a/package-lock.json b/package-lock.json index b38b3eb..c8bd37b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,8 @@ "name": "claude-pet", "version": "0.1.0", "devDependencies": { - "electron": "^43.4.1" + "electron": "^43.4.1", + "electron-builder": "^26.0.12" } }, "node_modules/@electron-internal/extract-zip": { @@ -21,6 +22,86 @@ "node": ">=22.12.0" } }, + "node_modules/@electron/asar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/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/@electron/asar/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/asar/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/fuses": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.8.0.tgz", + "integrity": "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "fs-extra": "^9.0.1", + "minimist": "^1.2.5" + }, + "bin": { + "electron-fuses": "dist/bin.js" + } + }, + "node_modules/@electron/fuses/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@electron/get": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@electron/get/-/get-5.1.0.tgz", @@ -42,6 +123,418 @@ "undici": "^7.24.4" } }, + "node_modules/@electron/notarize": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", + "integrity": "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.3.tgz", + "integrity": "sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/rebuild": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-4.2.0.tgz", + "integrity": "sha512-RKL/O+jGoXJMxrx/5771y1n0xTKmFuOYGO3gMmwypBM6rsH0kou0mswwdXA2JrhIkE4xyC7v9vGk0n6NPzgOxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.1.1", + "node-abi": "^4.2.0", + "node-api-version": "^0.2.1", + "node-gyp": "^12.2.0", + "read-binary-file-arch": "^1.0.6" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@electron/universal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.3.tgz", + "integrity": "sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.3.1", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "dir-compare": "^4.2.0", + "fs-extra": "^11.1.1", + "minimatch": "^9.0.3", + "plist": "^3.1.0" + }, + "engines": { + "node": ">=16.4" + } + }, + "node_modules/@electron/universal/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/@electron/universal/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", + "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/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/windows-sign": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.2.tgz", + "integrity": "sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "cross-dirname": "^0.1.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8", + "postject": "^1.0.0-alpha.6" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/windows-sign/node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", + "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/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@noble/hashes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.3.0.tgz", + "integrity": "sha512-oN+QwyX7VSHotibwubG3kpzbwKrfnyR6OOO+3Nk/53ADL7FmgHHz4TgrbaYKvvOw09u6QTx0oiH1cNCIOuN0CQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz", + "integrity": "sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.7.1.tgz", + "integrity": "sha512-ODOov0sGMJMf3jPonOkgGqPknTsu+DdQ7kD++gz8aI+aFMOMHFbWAA2taqXXVTdP+OTOQR/znGvSpmkeI0WTYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/json-schema": "^1.1.12", + "@peculiar/utils": "^2.0.2", + "tslib": "^2.8.1", + "webcrypto-core": "^1.9.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "24.13.3", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", @@ -52,6 +545,667 @@ "undici-types": "~7.18.0" } }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.14.tgz", + "integrity": "sha512-T4EDRUBVZYRldYApjEJiU0e1stYWaRAX7CuSnKzrpwdZKo53zGV8/pqfzV6FfwNl9YThD2OumQYvqtvjvgG7aQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/abbrev": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "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" + } + }, + "node_modules/ansi-styles": { + "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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/app-builder-lib": { + "version": "26.15.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-26.15.3.tgz", + "integrity": "sha512-2VnyWkqsP5v5XbBhL3tD5Syx8iNPBYsoU7kY4S2fz7wg8Rj/nztWKCUzGKaFRTv0Xwf3/H058CR1Kvtd/3lRow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "3.4.1", + "@electron/fuses": "^1.8.0", + "@electron/get": "^3.0.0", + "@electron/notarize": "2.5.0", + "@electron/osx-sign": "1.3.3", + "@electron/rebuild": "^4.0.4", + "@electron/universal": "2.0.3", + "@malept/flatpak-bundler": "^0.4.0", + "@noble/hashes": "^2.2.0", + "@peculiar/webcrypto": "^1.7.1", + "@types/fs-extra": "9.0.13", + "ajv": "^8.18.0", + "asn1js": "^3.0.10", + "async-exit-hook": "^2.0.1", + "builder-util": "26.15.3", + "builder-util-runtime": "9.7.0", + "chromium-pickle-js": "^0.2.0", + "ci-info": "4.3.1", + "debug": "^4.3.4", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "ejs": "^3.1.8", + "electron-publish": "26.15.3", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "isbinaryfile": "^5.0.0", + "jiti": "^2.4.2", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "lazy-val": "^1.0.5", + "minimatch": "^10.2.5", + "pkijs": "^3.4.0", + "plist": "3.1.0", + "proper-lockfile": "^4.1.2", + "resedit": "^1.7.0", + "semver": "~7.7.3", + "tar": "^7.5.7", + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0", + "unzipper": "^0.12.3", + "which": "^5.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "dmg-builder": "26.15.3", + "electron-builder-squirrel-windows": "26.15.3" + } + }, + "node_modules/app-builder-lib/node_modules/@electron/get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-3.1.0.tgz", + "integrity": "sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/app-builder-lib/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/app-builder-lib/node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/app-builder-lib/node_modules/ci-info": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/app-builder-lib/node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/async": { + "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": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "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", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builder-util": { + "version": "26.15.3", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-26.15.3.tgz", + "integrity": "sha512-q2hn7Mbo2nFNkVekPiHFx6Nfo3hURmES3tfBn+k5Pqxl2RkmP3QGqZUhH/q9Pch/4G05NRhPjDlVj1O8q4Txvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.6", + "builder-util-runtime": "9.7.0", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.6", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "js-yaml": "^4.1.0", + "sanitize-filename": "^1.6.3", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.7.0.tgz", + "integrity": "sha512-g/kR520giAFYkSXTzcmF3kqQq7wi8F6N6SzeDgZrqTBN+VHdmgWOyTdD1yD7AATDId/yXLvuP34CxW46/BwCdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "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" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "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": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-dirname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", + "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/cross-spawn": { + "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", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "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/cross-spawn/node_modules/which": { + "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" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -70,6 +1224,226 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/dir-compare": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", + "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5", + "p-limit": "^3.1.0 " + } + }, + "node_modules/dir-compare/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/dir-compare/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dmg-builder": { + "version": "26.15.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.15.3.tgz", + "integrity": "sha512-O3zJUFUYHJKgzPqioHxfxzBzlSC1eXCSr79gMSBKBP5AgjjpmrydMsMLotEg9fAJF36vdUncb+4ndRNxoPdlSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "26.15.3", + "builder-util": "26.15.3", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron": { "version": "43.4.1", "resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz", @@ -89,6 +1463,140 @@ "node": ">= 22.12.0" } }, + "node_modules/electron-builder": { + "version": "26.15.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-26.15.3.tgz", + "integrity": "sha512-a1KM5heqS3gQCZzizXEI8RjJy3QVogULPdeSknt76uLDpBIW/HDGsMg/XgP0riP6PI9COsRvFITKKGDqA8fJxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "26.15.3", + "builder-util": "26.15.3", + "builder-util-runtime": "9.7.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "dmg-builder": "26.15.3", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "simple-update-notifier": "2.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder-squirrel-windows": { + "version": "26.15.3", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.15.3.tgz", + "integrity": "sha512-Jc19XPV9y9+2bAdZPkXuVNGNIEFBq9poHC61l8Kv6FdK7DRG3+Ic0rerC0DXOaeHNz8yW0fg/JnF8GQROOF5MA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "26.15.3", + "builder-util": "26.15.3", + "electron-winstaller": "5.4.0" + } + }, + "node_modules/electron-publish": { + "version": "26.15.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-26.15.3.tgz", + "integrity": "sha512-g/2bn8YTavY4cuS5F+jOS7zmZbXXBV8KZ8yHKfJjFPoKtzBqrpCdNPxBd3tqdBwP7BVd0lGzf7Bk2s0KesWZ4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "aws4": "^1.13.2", + "builder-util": "26.15.3", + "builder-util-runtime": "9.7.0", + "chalk": "^4.1.2", + "form-data": "^4.0.5", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-winstaller": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.4.0.tgz", + "integrity": "sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.21", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "@electron/windows-sign": "^1.1.2" + } + }, + "node_modules/electron-winstaller/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron-winstaller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-winstaller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/emoji-regex": { + "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/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/env-paths": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", @@ -102,6 +1610,426 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/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/filelist/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob/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/glob/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -109,6 +2037,472 @@ "dev": true, "license": "ISC" }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "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/is-fullwidth-code-point": { + "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" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.7.tgz", + "integrity": "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -116,6 +2510,331 @@ "dev": true, "license": "MIT" }, + "node_modules/node-abi": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.33.0.tgz", + "integrity": "sha512-vLBWCKb+7LWsX+TbfzWOkw0W81m377tyx3hOweBTjO43CXZnRGS1/JPWs20fr0PgZyDXk6ROYrylsEycK8raDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.6.3" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/node-api-version": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz", + "integrity": "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-gyp": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", + "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "nopt": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "tar": "^7.5.4", + "tinyglobby": "^0.2.12", + "undici": "^6.25.0", + "which": "^6.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/node-gyp/node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, + "node_modules/node-gyp/node_modules/undici": { + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.0.tgz", + "integrity": "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^4.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "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" + } + }, + "node_modules/pe-library": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-0.4.1.tgz", + "integrity": "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/pkijs/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/postject": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", + "integrity": "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "commander": "^9.4.0" + }, + "bin": { + "postject": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/postject/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.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==", + "dev": true, + "license": "MIT" + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -126,6 +2845,234 @@ "node": ">=0.4.0" } }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", + "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, + "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==", + "dev": true, + "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/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resedit": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", + "integrity": "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pe-library": "^0.4.1" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/sanitize-filename": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.4.tgz", + "integrity": "sha512-9ZyI08PsvdQl2r/bBIGubpVdR3RR9sY6RDiWFPreA21C/EFlQhmgo20UZlNjZMMZNubusLhAQozkA0Od5J21Eg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/semver": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", @@ -139,6 +3086,151 @@ "node": ">=10" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "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" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "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", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "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" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -152,6 +3244,160 @@ "node": ">= 8.0" } }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "7.5.22", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", + "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/tiny-async-pool": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", + "integrity": "sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.5.0" + } + }, + "node_modules/tiny-async-pool/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tmp": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/undici": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", @@ -169,6 +3415,183 @@ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" + }, + "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/unzipper": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.5.tgz", + "integrity": "sha512-tXYOi9R57Uj/2Z25SOs5RRSzq886MBQj2gY8dPL+xl/kv6s6SvByoKfAtvfVeEuhntWDgjd2o9p2lb4TVPAz0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "~3.7.2", + "duplexer2": "~0.1.4", + "fs-extra": "11.3.1", + "graceful-fs": "^4.2.2", + "node-int64": "^0.4.0" + } + }, + "node_modules/unzipper/node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/util-deprecate": { + "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/webcrypto-core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.9.2.tgz", + "integrity": "sha512-gsXecm82UQNlTBURJGuqOWy1Ww08S3kZUcr3aOJS02Pk0xLtkfeUAVC0u0xhgdonFme80edSJUIJyuvL/7250Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/json-schema": "^1.1.12", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/wrap-ansi": { + "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", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 8a6c2e4..dcf00ea 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,56 @@ "hooks:uninstall": "node scripts/uninstall-hooks.js", "autostart:install": "node scripts/autostart.js install", "autostart:uninstall": "node scripts/autostart.js uninstall", - "autostart:status": "node scripts/autostart.js status" + "autostart:status": "node scripts/autostart.js status", + "dist": "electron-builder --win", + "pack": "electron-builder --win --dir" }, "devDependencies": { - "electron": "^43.4.1" + "electron": "^43.4.1", + "electron-builder": "^26.0.12" + }, + "author": "JianMiau", + "build": { + "appId": "com.jianmiau.claude-pet", + "productName": "Claude Pet", + "copyright": "JianMiau", + "directories": { + "output": "dist", + "buildResources": "build" + }, + "files": [ + "main.js", + "preload.js", + "renderer/**/*", + "lib/**/*", + "hook/**/*", + "pets/**/*", + "package.json" + ], + "asarUnpack": [ + "hook/**/*", + "pets/**/*" + ], + "win": { + "target": [ + { + "target": "nsis", + "arch": [ + "x64" + ] + } + ], + "icon": "build/icon.ico", + "artifactName": "${productName}-${version}-setup.${ext}" + }, + "nsis": { + "oneClick": false, + "perMachine": false, + "allowToChangeInstallationDirectory": true, + "createDesktopShortcut": true, + "createStartMenuShortcut": true, + "shortcutName": "Claude Pet", + "deleteAppDataOnUninstall": false + } } }