Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #53 from tsirysndr/feat/electron-app

electron: add desktop app (electron)

authored by

Tsiry Sandratraina and committed by
GitHub
9ae1ac47 855052b4

+1865 -59
+50
.github/workflows/release-desktop.yml
··· 1 + name: release desktop 2 + on: 3 + push: 4 + tags: 5 + - "*" 6 + workflow_dispatch: 7 + inputs: 8 + tag: 9 + description: "The existing tag to publish" 10 + type: "string" 11 + required: true 12 + 13 + jobs: 14 + publish: 15 + runs-on: ubuntu-latest 16 + permissions: 17 + contents: write 18 + packages: write 19 + steps: 20 + - uses: actions/checkout@v4 21 + - name: Setup Fluent CI and build webui 22 + uses: fluentci-io/setup-fluentci@v5 23 + with: 24 + wasm: true 25 + pipeline: bun 26 + args: | 27 + run build:electron 28 + working-directory: webui/rockbox 29 + env: 30 + GITHUB_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} 31 + - name: List files 32 + run: ls -ltr release/* 33 + working-directory: webui/rockbox 34 + - name: Prepare release assets 35 + run: | 36 + shasum -a 256 rockbox_${{ env.RELEASE_VERSION }}.AppImage > rockbox_${{ env.RELEASE_VERSION }}.AppImage.sha256 37 + working-directory: webui/rockbox/release/${{ env.RELEASE_VERSION }} 38 + env: 39 + RELEASE_VERSION: v${{ inputs.tag || github.ref_name }} 40 + - name: Upload release assets 41 + run: | 42 + for ext in tar.gz AppImage tar.gz.sha256 AppImage.sha256; do 43 + export FILE=rockbox_${{ env.RELEASE_VERSION }}.$ext 44 + fluentci run --wasm github release_upload $TAG $FILE 45 + done 46 + env: 47 + RELEASE_VERSION: v${{ inputs.tag || github.ref_name }} 48 + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 49 + GITHUB_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} 50 + working-directory: webui/rockbox/release/${{ env.RELEASE_VERSION }}
+3 -3
Dockerfile
··· 23 23 24 24 RUN curl -Ssf https://pkgx.sh | sh 25 25 26 - RUN pkgx install zig@0.13.0 protoc buf deno 26 + RUN pkgx install zig@0.13.0 protoc buf deno bun 27 27 28 28 COPY . /app 29 29 ··· 33 33 34 34 WORKDIR /app/webui/rockbox 35 35 36 - RUN deno install && deno install --dev 36 + RUN bun install 37 37 38 - RUN deno task build 38 + RUN bun run build 39 39 40 40 WORKDIR /app/build 41 41
+1 -1
README.md
··· 73 73 - [x] HTTP API 74 74 - [x] Web Client (React) 75 75 - [x] Fast search engine, built with [Tantivy](https://github.com/quickwit-oss/tantivy) 76 - - [ ] Desktop Client (Electron/Gtk) 76 + - [x] Desktop Client (Electron/Gtk) 77 77 - [ ] Terminal Client (TUI) 78 78 - [ ] Android Library 79 79 - [ ] Mobile version (React Native)
+2
webui/rockbox/.gitignore
··· 10 10 node_modules 11 11 dist 12 12 dist-ssr 13 + dist-electron 13 14 *.local 15 + release 14 16 15 17 # Editor directories and files 16 18 .vscode/*
+115
webui/rockbox/assets/icon.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <!-- Created with Inkscape (http://www.inkscape.org/) --> 3 + 4 + <svg 5 + xmlns:dc="http://purl.org/dc/elements/1.1/" 6 + xmlns:cc="http://creativecommons.org/ns#" 7 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 8 + xmlns:svg="http://www.w3.org/2000/svg" 9 + xmlns="http://www.w3.org/2000/svg" 10 + xmlns:xlink="http://www.w3.org/1999/xlink" 11 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 13 + version="1.1" 14 + width="120" 15 + height="120" 16 + viewBox="0 0 3386.6665 3386.6666" 17 + id="svg2" 18 + xml:space="preserve" 19 + style="fill-rule:evenodd" 20 + inkscape:version="0.48.1 r9760" 21 + sodipodi:docname="rockbox-clef.svg"><metadata 22 + id="metadata18"><rdf:RDF><cc:Work 23 + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 24 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview 25 + pagecolor="#ffffff" 26 + bordercolor="#666666" 27 + borderopacity="1" 28 + objecttolerance="10" 29 + gridtolerance="10" 30 + guidetolerance="10" 31 + inkscape:pageopacity="0" 32 + inkscape:pageshadow="2" 33 + inkscape:window-width="864" 34 + inkscape:window-height="720" 35 + id="namedview16" 36 + showgrid="true" 37 + inkscape:zoom="4" 38 + inkscape:cx="82.5729" 39 + inkscape:cy="69.674808" 40 + inkscape:window-x="0" 41 + inkscape:window-y="24" 42 + inkscape:window-maximized="0" 43 + inkscape:current-layer="Ebene_x0020_1"><inkscape:grid 44 + type="xygrid" 45 + id="grid2993" 46 + empspacing="5" 47 + visible="true" 48 + enabled="true" 49 + snapvisiblegridlinesonly="true" /></sodipodi:namedview><defs 50 + id="defs38"><linearGradient 51 + id="linearGradient3657"><stop 52 + id="stop3659" 53 + style="stop-color:#aa8800;stop-opacity:1" 54 + offset="0" /><stop 55 + id="stop3661" 56 + style="stop-color:#aa8800;stop-opacity:0" 57 + offset="1" /></linearGradient><linearGradient 58 + x1="-89.260162" 59 + y1="-2.1270833" 60 + x2="-14.333748" 61 + y2="85.830009" 62 + id="linearGradient3663" 63 + xlink:href="#linearGradient3657" 64 + gradientUnits="userSpaceOnUse" /></defs> 65 + <g 66 + transform="matrix(0.90063697,0,0,0.88724946,748.25202,-1317.6084)" 67 + id="Ebene_x0020_1"> 68 + <defs 69 + id="defs5"> 70 + <linearGradient 71 + x1="17608" 72 + y1="4190.54" 73 + x2="17715.699" 74 + y2="4801.2798" 75 + id="id0" 76 + gradientUnits="userSpaceOnUse"> 77 + <stop 78 + id="stop8" 79 + style="stop-color:#a67d00;stop-opacity:1" 80 + offset="0" /> 81 + 82 + <stop 83 + id="stop12" 84 + style="stop-color:#ffffff;stop-opacity:1" 85 + offset="1" /> 86 + </linearGradient> 87 + </defs> 88 + 89 + 90 + 91 + 92 + 93 + <rect 94 + width="3133.5845" 95 + height="3180.8667" 96 + ry="302.44305" 97 + x="-517.4447" 98 + y="1803.135" 99 + id="rect3694" 100 + style="fill:#ffc001;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path 101 + d="m 1133.6395,3200.4269 c 11.2559,18.2986 22.432,36.6011 33.5473,54.9487 60.3406,-16.5847 123.9814,-25.3702 188.4648,-26.059 126.1999,-1.316 246.2441,48.6846 317.2687,132.1614 64.2026,75.4539 101.1079,162.6951 106.6733,252.1193 2.3212,37.3762 -5.6502,74.466 -23.3869,108.7376 -43.5526,84.192 -117.9946,155.791 -214.1337,205.9842 45.7615,89.9291 90.0403,180.2716 132.8495,271.0265 81.8832,173.6387 132.6702,354.6655 150.8198,537.8489 4.676,47.2371 -2.5858,94.4734 -21.3927,138.9539 -19.2847,45.5742 -58.1673,84.1121 -110.1785,109.1541 -37.7378,18.1621 -83.751,23.2435 -127.4177,14.0995 -43.6802,-9.1436 -81.2498,-31.7365 -104.0476,-62.5664 -26.5203,-35.904 -42.2855,-75.8627 -46.0345,-116.7994 -2.1173,-23.0223 9.3653,-45.2202 31.1441,-60.2062 27.4567,-18.8993 62.7411,-29.5144 99.7917,-30.07 24.3266,-0.3368 47.3936,9.6188 60.3568,26.0881 12.9472,16.4494 13.7396,36.8489 2.1096,53.3337 -14.3314,20.3045 -37.0946,36.0653 -64.6429,44.7438 l 11.8035,16.1533 c 5.7557,9.2105 16.8132,15.7847 29.6363,17.5515 12.8112,1.7777 25.7362,-1.4481 34.5823,-8.6399 43.6788,-34.3792 67.7315,-81.3042 66.8875,-130.5556 -3.562,-84.7728 -16.3171,-169.3555 -38.1543,-252.8527 -55.7305,-177.8644 -127.5412,-352.777 -214.8999,-523.3512 -16.3737,5.1045 -33.0607,9.6178 -49.9908,13.5678 -49.5652,11.5132 -99.9157,21.0976 -150.8427,28.7217 l -100.813,-814.0936 z m 248.7771,672.5156 c -50.5142,19.7875 -104.412,34.1161 -160.2241,42.5737 l -50.7294,-409.6546 c 72.2514,121.1726 142.3288,243.0983 210.2123,365.7262 0.2567,0.458 0.4978,0.8959 0.7412,1.3547 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 m -150.076,-508.6879 c 17.5147,-4.8294 35.3415,-9.0782 53.3625,-12.729 56.5362,-11.4397 117.3362,-3.637 167.586,21.5055 45.7565,22.8959 80.8463,56.9138 99.7551,96.6234 42.1044,88.5079 47.194,184.4321 14.5179,273.6257 -6.8456,18.7164 -19.8851,35.5583 -37.8052,48.8537 -13.7547,10.2054 -28.1066,19.8974 -43.0038,29.0629 -80.5314,-153.6773 -165.3681,-306.0385 -254.4125,-456.9422 m -10.1481,551.2616 c -14.298,2.1559 -28.7086,3.9408 -43.196,5.3209 -157.9011,15.1267 -314.30239,-47.8917 -393.33817,-158.4708 -140.27886,-196.2782 -185.31029,-423.8857 -126.59762,-639.7364 20.62766,-75.767 42.25356,-151.3353 64.91887,-226.6963 6.26181,-20.8439 12.63094,-41.6829 19.09409,-62.5163 104.89649,154.512 206.20813,310.449 303.84503,467.7319 -104.88444,52.3821 -185.1784,129.7162 -229.58648,221.109 -7.33244,15.1065 -1.5786,32.4892 14.38626,43.3632 15.95163,10.8746 38.6339,12.8768 56.5858,5.0072 15.19318,-10.1136 29.0455,-21.3616 41.40015,-33.6098 49.89688,-51.7003 111.96607,-95.3657 183.00107,-128.7738 19.7486,32.4884 39.3155,65.0179 58.7576,97.6166 l -37.8236,-305.4347 c -92.6263,-150.6417 -189.46344,-299.7421 -290.47048,-447.1875 -16.73566,-24.4224 -33.73799,-48.7363 -51.00315,-72.9107 12.53936,-37.7911 25.36472,-75.5343 38.46801,-113.1874 18.72476,-53.759 31.27196,-108.8276 37.52831,-164.6129 7.04724,-63.0773 -7.52517,-127.0079 -42.2481,-185.2058 -79.1109,-132.6193 -213.39469,-241.1725 -380.18823,-307.3322 -73.37553,-29.1121 -155.31083,-41.0734 -235.85269,-34.4583 -67.48248,5.551 -116.971987,50.5243 -114.340324,103.8724 2.381016,48.4159 22.574124,95.696 58.086904,136.1456 32.88527,37.4341 67.82132,73.7652 104.71321,108.8721 113.82257,108.3303 214.95374,224.3585 302.12809,346.5898 17.13041,24.0557 34.19842,48.1462 51.17499,72.252 -15.99656,48.3246 -31.52841,96.7397 -46.59165,145.277 -69.85813,225.1541 -104.21032,456.9898 -102.24126,690.3515 0.92822,110.1406 26.98496,219.8501 76.97168,323.9736 68.55723,142.8242 245.98138,237.2059 438.57406,233.2775 86.18513,-1.7571 171.82603,-8.9862 256.10363,-21.6231 l -12.26,-99.0043" 102 + id="path24" 103 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd" 104 + inkscape:connector-curvature="0" /> 105 + 106 + 107 + <path 108 + d="M 659.33533,2503.3767 C 573.5524,2394.5355 482.17708,2288.3563 385.43749,2185.1728 c -30.76545,-32.8099 -59.12968,-66.9092 -84.95666,-102.1687 -16.86386,-22.98 -28.28033,-48.07 -33.73308,-74.0078 -1.1599,-5.5966 0.71447,-11.2481 5.21013,-15.5497 4.45467,-4.3102 11.12647,-6.8716 18.3068,-7.0503 34.58075,-0.8971 69.10856,5.1026 100.42147,17.453 134.57561,53.071 237.34107,146.2148 284.58433,257.9109 13.77151,32.583 18.33147,66.9284 13.33714,100.5928 -7.04096,47.4029 -16.80734,94.4462 -29.27229,141.0237 l 0,0" 109 + id="path30" 110 + style="fill:#ffc000" 111 + inkscape:connector-curvature="0" /> 112 + 113 + 114 + </g> 115 + </svg>
webui/rockbox/bun.lockb

This is a binary file and will not be displayed.

+1157 -40
webui/rockbox/deno.lock
··· 40 40 "npm:@testing-library/react@^16.0.1": "16.0.1_@testing-library+dom@10.4.0_@types+react@18.3.11_@types+react-dom@18.3.0_react@18.3.1_react-dom@18.3.1__react@18.3.1", 41 41 "npm:@testing-library/user-event@^14.5.2": "14.5.2_@testing-library+dom@10.4.0", 42 42 "npm:@types/jest@^29.5.13": "29.5.13", 43 + "npm:@types/lodash@^4.17.13": "4.17.13", 43 44 "npm:@types/node@^22.7.4": "22.7.5", 44 45 "npm:@types/react-dom@^18.3.0": "18.3.0", 45 46 "npm:@types/react-lazy-load-image-component@^1.6.4": "1.6.4", ··· 51 52 "npm:bignumber.js@^9.1.2": "9.1.2", 52 53 "npm:cross-env@^7.0.3": "7.0.3", 53 54 "npm:dayjs@^1.11.13": "1.11.13", 55 + "npm:electron-builder@^24.13.3": "24.13.3_dmg-builder@24.13.3", 56 + "npm:electron@30.0.8": "30.0.8", 54 57 "npm:eslint-plugin-react-hooks@^5.1.0-rc.0": "5.1.0-rc-fb9a90fa48-20240614_eslint@9.12.0", 55 58 "npm:eslint-plugin-react-refresh@~0.4.9": "0.4.12_eslint@9.12.0", 56 59 "npm:eslint-plugin-storybook@0.9": "0.9.0_eslint@9.12.0_typescript@5.6.3", ··· 76 79 "npm:subscriptions-transport-ws@0.11": "0.11.0_graphql@15.7.2", 77 80 "npm:typescript-eslint@^8.0.1": "8.8.1_@typescript-eslint+parser@8.8.1__eslint@9.12.0__typescript@5.6.3_eslint@9.12.0_typescript@5.6.3", 78 81 "npm:typescript@^5.5.3": "5.6.3", 82 + "npm:vite-plugin-electron-renderer@~0.14.6": "0.14.6", 83 + "npm:vite-plugin-electron@~0.28.8": "0.28.8", 79 84 "npm:vite@^5.4.1": "5.4.8_@types+node@22.7.5", 80 85 "npm:vitest@^2.1.2": "2.1.2_@types+node@22.7.5_@vitest+ui@2.1.2__vitest@2.1.2__@types+node@22.7.5__jsdom@25.0.1_jsdom@25.0.1_@vitest+spy@2.1.2_vite@5.4.8__@types+node@22.7.5" 81 86 }, 82 87 "npm": { 88 + "7zip-bin@5.2.0": { 89 + "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==" 90 + }, 83 91 "@adobe/css-tools@4.4.0": { 84 92 "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==" 85 93 }, ··· 132 140 "chalk@4.1.2", 133 141 "fb-watchman", 134 142 "fbjs", 135 - "glob", 143 + "glob@7.2.3", 136 144 "graphql", 137 145 "immutable", 138 146 "invariant", ··· 199 207 "@babel/compat-data", 200 208 "@babel/helper-validator-option", 201 209 "browserslist", 202 - "lru-cache", 210 + "lru-cache@5.1.1", 203 211 "semver@6.3.1" 204 212 ] 205 213 }, ··· 571 579 "dependencies": [ 572 580 "chromatic", 573 581 "filesize", 574 - "jsonfile", 582 + "jsonfile@6.1.0", 575 583 "react-confetti", 576 584 "strip-ansi@7.1.0" 577 585 ] ··· 586 594 "date-fns" 587 595 ] 588 596 }, 597 + "@develar/schema-utils@2.6.5": { 598 + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", 599 + "dependencies": [ 600 + "ajv", 601 + "ajv-keywords@3.5.2" 602 + ] 603 + }, 604 + "@develar/schema-utils@2.6.5_ajv@6.12.6": { 605 + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", 606 + "dependencies": [ 607 + "ajv", 608 + "ajv-keywords@3.5.2_ajv@6.12.6" 609 + ] 610 + }, 611 + "@electron/asar@3.2.16": { 612 + "integrity": "sha512-5M6EyPGmU35bYdXGOvjlzLE5bAVPN2nbcNtHPMt407KR8wNoHj+36AhUTwGUSZ03u2LleAp4qz9ga9lfNxak8g==", 613 + "dependencies": [ 614 + "commander@5.1.0", 615 + "glob@7.2.3", 616 + "minimatch@3.1.2" 617 + ] 618 + }, 619 + "@electron/get@2.0.3": { 620 + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", 621 + "dependencies": [ 622 + "debug@4.3.7", 623 + "env-paths", 624 + "fs-extra@8.1.0", 625 + "global-agent", 626 + "got", 627 + "progress", 628 + "semver@6.3.1", 629 + "sumchecker" 630 + ] 631 + }, 632 + "@electron/notarize@2.2.1": { 633 + "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", 634 + "dependencies": [ 635 + "debug@4.3.7", 636 + "fs-extra@9.1.0", 637 + "promise-retry" 638 + ] 639 + }, 640 + "@electron/osx-sign@1.0.5": { 641 + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", 642 + "dependencies": [ 643 + "compare-version", 644 + "debug@4.3.7", 645 + "fs-extra@10.1.0", 646 + "isbinaryfile@4.0.10", 647 + "minimist", 648 + "plist" 649 + ] 650 + }, 651 + "@electron/universal@1.5.1": { 652 + "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", 653 + "dependencies": [ 654 + "@electron/asar", 655 + "@malept/cross-spawn-promise", 656 + "debug@4.3.7", 657 + "dir-compare", 658 + "fs-extra@9.1.0", 659 + "minimatch@3.1.2", 660 + "plist" 661 + ] 662 + }, 589 663 "@emotion/babel-plugin@11.12.0": { 590 664 "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", 591 665 "dependencies": [ ··· 1258 1332 "@whatwg-node/fetch", 1259 1333 "chalk@4.1.2", 1260 1334 "debug@4.3.7", 1261 - "dotenv", 1335 + "dotenv@16.4.5", 1262 1336 "graphql", 1263 1337 "graphql-request", 1264 - "http-proxy-agent", 1265 - "https-proxy-agent", 1338 + "http-proxy-agent@7.0.2", 1339 + "https-proxy-agent@7.0.5", 1266 1340 "jose", 1267 1341 "js-yaml", 1268 1342 "lodash", ··· 1387 1461 "@humanwhocodes/retry@0.3.1": { 1388 1462 "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==" 1389 1463 }, 1464 + "@isaacs/cliui@8.0.2": { 1465 + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 1466 + "dependencies": [ 1467 + "string-width@5.1.2", 1468 + "string-width-cjs@npm:string-width@4.2.3", 1469 + "strip-ansi@7.1.0", 1470 + "strip-ansi-cjs@npm:strip-ansi@6.0.1", 1471 + "wrap-ansi@8.1.0", 1472 + "wrap-ansi-cjs@npm:wrap-ansi@7.0.0" 1473 + ] 1474 + }, 1390 1475 "@jest/expect-utils@29.7.0": { 1391 1476 "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", 1392 1477 "dependencies": [ ··· 1413 1498 "@joshwooding/vite-plugin-react-docgen-typescript@0.3.0_typescript@5.6.3_vite@5.4.8__@types+node@22.7.5_glob@7.2.3_@types+node@22.7.5": { 1414 1499 "integrity": "sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==", 1415 1500 "dependencies": [ 1416 - "glob", 1501 + "glob@7.2.3", 1417 1502 "glob-promise", 1418 1503 "magic-string@0.27.0", 1419 1504 "react-docgen-typescript", ··· 1448 1533 "@kamilkisiela/fast-url-parser@1.1.4": { 1449 1534 "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==" 1450 1535 }, 1536 + "@malept/cross-spawn-promise@1.1.1": { 1537 + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", 1538 + "dependencies": [ 1539 + "cross-spawn" 1540 + ] 1541 + }, 1542 + "@malept/flatpak-bundler@0.4.0": { 1543 + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", 1544 + "dependencies": [ 1545 + "debug@4.3.7", 1546 + "fs-extra@9.1.0", 1547 + "lodash", 1548 + "tmp-promise" 1549 + ] 1550 + }, 1451 1551 "@mdx-js/react@3.0.1_@types+react@18.3.11_react@18.3.1": { 1452 1552 "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", 1453 1553 "dependencies": [ ··· 1558 1658 "fastq" 1559 1659 ] 1560 1660 }, 1661 + "@pkgjs/parseargs@0.11.0": { 1662 + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==" 1663 + }, 1561 1664 "@polka/url@1.0.0-next.28": { 1562 1665 "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==" 1563 1666 }, ··· 1632 1735 "@sinclair/typebox@0.27.8": { 1633 1736 "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" 1634 1737 }, 1738 + "@sindresorhus/is@4.6.0": { 1739 + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" 1740 + }, 1635 1741 "@storybook/addon-actions@8.3.5_storybook@8.3.5": { 1636 1742 "integrity": "sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==", 1637 1743 "dependencies": [ ··· 1671 1777 "@storybook/global", 1672 1778 "@storybook/react-dom-shim", 1673 1779 "@types/react", 1674 - "fs-extra", 1780 + "fs-extra@11.2.0", 1675 1781 "react@18.3.1", 1676 1782 "react-dom@18.3.1_react@18.3.1", 1677 1783 "rehype-external-links", ··· 1766 1872 "@storybook/csf@0.1.11", 1767 1873 "@storybook/global", 1768 1874 "@storybook/icons", 1769 - "@types/lodash", 1875 + "@types/lodash@4.17.10", 1770 1876 "color-convert@2.0.1", 1771 1877 "dequal", 1772 1878 "lodash", ··· 1791 1897 "es-module-lexer", 1792 1898 "express", 1793 1899 "find-cache-dir", 1794 - "fs-extra", 1900 + "fs-extra@11.2.0", 1795 1901 "magic-string@0.30.11", 1796 1902 "storybook", 1797 1903 "ts-dedent", ··· 2064 2170 "@styled-icons/styled-icon", 2065 2171 "react@18.3.1", 2066 2172 "styled-components" 2173 + ] 2174 + }, 2175 + "@szmarczak/http-timer@4.0.6": { 2176 + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", 2177 + "dependencies": [ 2178 + "defer-to-connect" 2067 2179 ] 2068 2180 }, 2069 2181 "@tanstack/query-core@5.59.6": { ··· 2140 2252 "@testing-library/dom" 2141 2253 ] 2142 2254 }, 2255 + "@tootallnate/once@2.0.0": { 2256 + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" 2257 + }, 2143 2258 "@types/aria-query@5.0.4": { 2144 2259 "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" 2145 2260 }, ··· 2179 2294 "@types/node@22.5.4" 2180 2295 ] 2181 2296 }, 2297 + "@types/cacheable-request@6.0.3": { 2298 + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", 2299 + "dependencies": [ 2300 + "@types/http-cache-semantics", 2301 + "@types/keyv", 2302 + "@types/node@22.5.4", 2303 + "@types/responselike" 2304 + ] 2305 + }, 2182 2306 "@types/connect@3.4.38": { 2183 2307 "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", 2184 2308 "dependencies": [ 2185 2309 "@types/node@22.5.4" 2310 + ] 2311 + }, 2312 + "@types/debug@4.1.12": { 2313 + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", 2314 + "dependencies": [ 2315 + "@types/ms" 2186 2316 ] 2187 2317 }, 2188 2318 "@types/doctrine@0.0.9": { ··· 2218 2348 "@types/find-cache-dir@3.2.1": { 2219 2349 "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==" 2220 2350 }, 2351 + "@types/fs-extra@9.0.13": { 2352 + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", 2353 + "dependencies": [ 2354 + "@types/node@22.5.4" 2355 + ] 2356 + }, 2221 2357 "@types/glob@7.2.0": { 2222 2358 "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", 2223 2359 "dependencies": [ ··· 2230 2366 "dependencies": [ 2231 2367 "@types/unist" 2232 2368 ] 2369 + }, 2370 + "@types/http-cache-semantics@4.0.4": { 2371 + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" 2233 2372 }, 2234 2373 "@types/http-errors@2.0.4": { 2235 2374 "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" ··· 2262 2401 "@types/json-schema@7.0.15": { 2263 2402 "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" 2264 2403 }, 2404 + "@types/keyv@3.1.4": { 2405 + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", 2406 + "dependencies": [ 2407 + "@types/node@22.5.4" 2408 + ] 2409 + }, 2265 2410 "@types/lodash@4.17.10": { 2266 2411 "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==" 2267 2412 }, 2413 + "@types/lodash@4.17.13": { 2414 + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==" 2415 + }, 2268 2416 "@types/mdx@2.0.13": { 2269 2417 "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" 2270 2418 }, ··· 2274 2422 "@types/minimatch@5.1.2": { 2275 2423 "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" 2276 2424 }, 2425 + "@types/ms@0.7.34": { 2426 + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" 2427 + }, 2428 + "@types/node@20.17.6": { 2429 + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", 2430 + "dependencies": [ 2431 + "undici-types" 2432 + ] 2433 + }, 2277 2434 "@types/node@22.5.4": { 2278 2435 "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", 2279 2436 "dependencies": [ ··· 2288 2445 }, 2289 2446 "@types/parse-json@4.0.2": { 2290 2447 "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" 2448 + }, 2449 + "@types/plist@3.0.5": { 2450 + "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", 2451 + "dependencies": [ 2452 + "@types/node@22.5.4", 2453 + "xmlbuilder" 2454 + ] 2291 2455 }, 2292 2456 "@types/prop-types@15.7.13": { 2293 2457 "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" ··· 2339 2503 "@types/resolve@1.20.6": { 2340 2504 "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==" 2341 2505 }, 2506 + "@types/responselike@1.0.3": { 2507 + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", 2508 + "dependencies": [ 2509 + "@types/node@22.5.4" 2510 + ] 2511 + }, 2342 2512 "@types/semver@7.5.8": { 2343 2513 "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" 2344 2514 }, ··· 2369 2539 "@types/uuid@9.0.8": { 2370 2540 "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" 2371 2541 }, 2542 + "@types/verror@1.10.10": { 2543 + "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==" 2544 + }, 2372 2545 "@types/wicg-file-system-access@2023.10.5": { 2373 2546 "integrity": "sha512-e9kZO9kCdLqT2h9Tw38oGv9UNzBBWaR1MzuAavxPcsV/7FJ3tWbU6RI3uB+yKIDPGLkGVbplS52ub0AcRLvrhA==" 2374 2547 }, ··· 2385 2558 "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", 2386 2559 "dependencies": [ 2387 2560 "@types/yargs-parser" 2561 + ] 2562 + }, 2563 + "@types/yauzl@2.10.3": { 2564 + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 2565 + "dependencies": [ 2566 + "@types/node@22.5.4" 2388 2567 ] 2389 2568 }, 2390 2569 "@typescript-eslint/eslint-plugin@8.8.1_@typescript-eslint+parser@8.8.1__eslint@9.12.0__typescript@5.6.3_eslint@9.12.0_typescript@5.6.3": { ··· 2675 2854 "tslib@2.7.0" 2676 2855 ] 2677 2856 }, 2857 + "@xmldom/xmldom@0.8.10": { 2858 + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" 2859 + }, 2678 2860 "accepts@1.3.8": { 2679 2861 "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 2680 2862 "dependencies": [ ··· 2703 2885 "acorn@8.12.1": { 2704 2886 "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==" 2705 2887 }, 2888 + "agent-base@6.0.2": { 2889 + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 2890 + "dependencies": [ 2891 + "debug@4.3.7" 2892 + ] 2893 + }, 2706 2894 "agent-base@7.1.1": { 2707 2895 "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", 2708 2896 "dependencies": [ ··· 2716 2904 "indent-string" 2717 2905 ] 2718 2906 }, 2907 + "ajv-keywords@3.5.2": { 2908 + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" 2909 + }, 2910 + "ajv-keywords@3.5.2_ajv@6.12.6": { 2911 + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", 2912 + "dependencies": [ 2913 + "ajv" 2914 + ] 2915 + }, 2719 2916 "ajv@6.12.6": { 2720 2917 "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2721 2918 "dependencies": [ ··· 2752 2949 "ansi-styles@5.2.0": { 2753 2950 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" 2754 2951 }, 2952 + "ansi-styles@6.2.1": { 2953 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" 2954 + }, 2955 + "app-builder-bin@4.0.0": { 2956 + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==" 2957 + }, 2958 + "app-builder-lib@24.13.3": { 2959 + "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", 2960 + "dependencies": [ 2961 + "@develar/schema-utils@2.6.5", 2962 + "@electron/notarize", 2963 + "@electron/osx-sign", 2964 + "@electron/universal", 2965 + "@malept/flatpak-bundler", 2966 + "@types/fs-extra", 2967 + "async-exit-hook", 2968 + "bluebird-lst", 2969 + "builder-util", 2970 + "builder-util-runtime", 2971 + "chromium-pickle-js", 2972 + "debug@4.3.7" 2973 + ] 2974 + }, 2975 + "app-builder-lib@24.13.3_dmg-builder@24.13.3_electron-builder-squirrel-windows@24.13.3__dmg-builder@24.13.3": { 2976 + "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", 2977 + "dependencies": [ 2978 + "@develar/schema-utils@2.6.5_ajv@6.12.6", 2979 + "@electron/notarize", 2980 + "@electron/osx-sign", 2981 + "@electron/universal", 2982 + "@malept/flatpak-bundler", 2983 + "@types/fs-extra", 2984 + "async-exit-hook", 2985 + "bluebird-lst", 2986 + "builder-util", 2987 + "builder-util-runtime", 2988 + "chromium-pickle-js", 2989 + "debug@4.3.7", 2990 + "dmg-builder@24.13.3_electron-builder-squirrel-windows@24.13.3__dmg-builder@24.13.3", 2991 + "ejs", 2992 + "electron-builder-squirrel-windows", 2993 + "electron-publish", 2994 + "form-data", 2995 + "fs-extra@10.1.0", 2996 + "hosted-git-info", 2997 + "is-ci", 2998 + "isbinaryfile@5.0.4", 2999 + "js-yaml", 3000 + "lazy-val", 3001 + "minimatch@5.1.6", 3002 + "read-config-file", 3003 + "sanitize-filename", 3004 + "semver@7.6.3", 3005 + "tar", 3006 + "temp-file" 3007 + ] 3008 + }, 3009 + "archiver-utils@2.1.0": { 3010 + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", 3011 + "dependencies": [ 3012 + "glob@7.2.3", 3013 + "graceful-fs", 3014 + "lazystream", 3015 + "lodash.defaults", 3016 + "lodash.difference", 3017 + "lodash.flatten", 3018 + "lodash.isplainobject", 3019 + "lodash.union", 3020 + "normalize-path@3.0.0", 3021 + "readable-stream@2.3.8" 3022 + ] 3023 + }, 3024 + "archiver-utils@3.0.4": { 3025 + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", 3026 + "dependencies": [ 3027 + "glob@7.2.3", 3028 + "graceful-fs", 3029 + "lazystream", 3030 + "lodash.defaults", 3031 + "lodash.difference", 3032 + "lodash.flatten", 3033 + "lodash.isplainobject", 3034 + "lodash.union", 3035 + "normalize-path@3.0.0", 3036 + "readable-stream@3.6.2" 3037 + ] 3038 + }, 3039 + "archiver@5.3.2": { 3040 + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", 3041 + "dependencies": [ 3042 + "archiver-utils@2.1.0", 3043 + "async", 3044 + "buffer-crc32", 3045 + "readable-stream@3.6.2", 3046 + "readdir-glob", 3047 + "tar-stream", 3048 + "zip-stream" 3049 + ] 3050 + }, 2755 3051 "argparse@2.0.1": { 2756 3052 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 2757 3053 }, ··· 2772 3068 }, 2773 3069 "asap@2.0.6": { 2774 3070 "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" 3071 + }, 3072 + "assert-plus@1.0.0": { 3073 + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" 2775 3074 }, 2776 3075 "assertion-error@2.0.1": { 2777 3076 "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==" ··· 2785 3084 "astral-regex@2.0.0": { 2786 3085 "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" 2787 3086 }, 3087 + "async-exit-hook@2.0.1": { 3088 + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==" 3089 + }, 3090 + "async@3.2.6": { 3091 + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" 3092 + }, 2788 3093 "asynckit@0.4.0": { 2789 3094 "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 3095 + }, 3096 + "at-least-node@1.0.0": { 3097 + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" 2790 3098 }, 2791 3099 "attr-accept@1.1.3": { 2792 3100 "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==", ··· 2866 3174 "d3", 2867 3175 "date-fns", 2868 3176 "date-fns-tz", 2869 - "glob", 3177 + "glob@7.2.3", 2870 3178 "just-extend", 2871 3179 "memoize-one", 2872 3180 "mockdate", ··· 2903 3211 "dependencies": [ 2904 3212 "buffer", 2905 3213 "inherits", 2906 - "readable-stream" 3214 + "readable-stream@3.6.2" 3215 + ] 3216 + }, 3217 + "bluebird-lst@1.0.9": { 3218 + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", 3219 + "dependencies": [ 3220 + "bluebird" 2907 3221 ] 2908 3222 }, 3223 + "bluebird@3.7.2": { 3224 + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" 3225 + }, 2909 3226 "body-parser@1.20.3": { 2910 3227 "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", 2911 3228 "dependencies": [ ··· 2922 3239 "type-is", 2923 3240 "unpipe" 2924 3241 ] 3242 + }, 3243 + "boolean@3.2.0": { 3244 + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" 2925 3245 }, 2926 3246 "brace-expansion@1.1.11": { 2927 3247 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", ··· 2960 3280 "node-int64" 2961 3281 ] 2962 3282 }, 3283 + "buffer-crc32@0.2.13": { 3284 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" 3285 + }, 3286 + "buffer-equal@1.0.1": { 3287 + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==" 3288 + }, 3289 + "buffer-from@1.1.2": { 3290 + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 3291 + }, 2963 3292 "buffer@5.7.1": { 2964 3293 "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 2965 3294 "dependencies": [ ··· 2967 3296 "ieee754" 2968 3297 ] 2969 3298 }, 3299 + "builder-util-runtime@9.2.4": { 3300 + "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", 3301 + "dependencies": [ 3302 + "debug@4.3.7", 3303 + "sax" 3304 + ] 3305 + }, 3306 + "builder-util@24.13.1": { 3307 + "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", 3308 + "dependencies": [ 3309 + "7zip-bin", 3310 + "@types/debug", 3311 + "app-builder-bin", 3312 + "bluebird-lst", 3313 + "builder-util-runtime", 3314 + "chalk@4.1.2", 3315 + "cross-spawn", 3316 + "debug@4.3.7", 3317 + "fs-extra@10.1.0", 3318 + "http-proxy-agent@5.0.0", 3319 + "https-proxy-agent@5.0.1", 3320 + "is-ci", 3321 + "js-yaml", 3322 + "source-map-support", 3323 + "stat-mode", 3324 + "temp-file" 3325 + ] 3326 + }, 2970 3327 "busboy@1.6.0": { 2971 3328 "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 2972 3329 "dependencies": [ ··· 2978 3335 }, 2979 3336 "cac@6.7.14": { 2980 3337 "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" 3338 + }, 3339 + "cacheable-lookup@5.0.4": { 3340 + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" 3341 + }, 3342 + "cacheable-request@7.0.4": { 3343 + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", 3344 + "dependencies": [ 3345 + "clone-response", 3346 + "get-stream", 3347 + "http-cache-semantics", 3348 + "keyv", 3349 + "lowercase-keys", 3350 + "normalize-url", 3351 + "responselike" 3352 + ] 2981 3353 }, 2982 3354 "call-bind@1.0.7": { 2983 3355 "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", ··· 3107 3479 "check-error@2.1.1": { 3108 3480 "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==" 3109 3481 }, 3482 + "chownr@2.0.0": { 3483 + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" 3484 + }, 3110 3485 "chromatic@11.12.5": { 3111 3486 "integrity": "sha512-5z+BXQy3TMyXIzCdCDO9Psc8aMs9kIrCFHhMgYbwA6dTXxAL0oUjHZbICn5h4Ay/fM9cZQPaCH9T7a3myPA8Sw==" 3487 + }, 3488 + "chromium-pickle-js@0.2.0": { 3489 + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==" 3112 3490 }, 3113 3491 "ci-info@3.9.0": { 3114 3492 "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==" ··· 3129 3507 "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", 3130 3508 "dependencies": [ 3131 3509 "slice-ansi@3.0.0", 3132 - "string-width" 3510 + "string-width@4.2.3" 3133 3511 ] 3134 3512 }, 3135 3513 "cli-width@3.0.0": { ··· 3138 3516 "cliui@6.0.0": { 3139 3517 "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 3140 3518 "dependencies": [ 3141 - "string-width", 3519 + "string-width@4.2.3", 3142 3520 "strip-ansi@6.0.1", 3143 3521 "wrap-ansi@6.2.0" 3144 3522 ] ··· 3146 3524 "cliui@8.0.1": { 3147 3525 "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 3148 3526 "dependencies": [ 3149 - "string-width", 3527 + "string-width@4.2.3", 3150 3528 "strip-ansi@6.0.1", 3151 3529 "wrap-ansi@7.0.0" 3152 3530 ] 3153 3531 }, 3532 + "clone-response@1.0.3": { 3533 + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", 3534 + "dependencies": [ 3535 + "mimic-response@1.0.1" 3536 + ] 3537 + }, 3154 3538 "clone@1.0.4": { 3155 3539 "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" 3156 3540 }, ··· 3190 3574 "commander@2.20.3": { 3191 3575 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 3192 3576 }, 3577 + "commander@5.1.0": { 3578 + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" 3579 + }, 3193 3580 "common-tags@1.8.2": { 3194 3581 "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" 3195 3582 }, 3196 3583 "commondir@1.0.1": { 3197 3584 "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" 3198 3585 }, 3586 + "compare-version@0.1.2": { 3587 + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==" 3588 + }, 3589 + "compress-commons@4.1.2": { 3590 + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", 3591 + "dependencies": [ 3592 + "buffer-crc32", 3593 + "crc32-stream", 3594 + "normalize-path@3.0.0", 3595 + "readable-stream@3.6.2" 3596 + ] 3597 + }, 3199 3598 "concat-map@0.0.1": { 3200 3599 "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 3201 3600 }, 3601 + "config-file-ts@0.2.6": { 3602 + "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", 3603 + "dependencies": [ 3604 + "glob@10.4.5", 3605 + "typescript" 3606 + ] 3607 + }, 3202 3608 "constant-case@3.0.4": { 3203 3609 "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", 3204 3610 "dependencies": [ ··· 3210 3616 "content-disposition@0.5.4": { 3211 3617 "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 3212 3618 "dependencies": [ 3213 - "safe-buffer" 3619 + "safe-buffer@5.2.1" 3214 3620 ] 3215 3621 }, 3216 3622 "content-type@1.0.5": { ··· 3230 3636 }, 3231 3637 "core-js@2.6.12": { 3232 3638 "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" 3639 + }, 3640 + "core-util-is@1.0.2": { 3641 + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" 3233 3642 }, 3234 3643 "cosmiconfig@7.1.0": { 3235 3644 "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", ··· 3251 3660 "typescript" 3252 3661 ] 3253 3662 }, 3663 + "crc-32@1.2.2": { 3664 + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" 3665 + }, 3666 + "crc32-stream@4.0.3": { 3667 + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", 3668 + "dependencies": [ 3669 + "crc-32", 3670 + "readable-stream@3.6.2" 3671 + ] 3672 + }, 3673 + "crc@3.8.0": { 3674 + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", 3675 + "dependencies": [ 3676 + "buffer" 3677 + ] 3678 + }, 3254 3679 "credit-card-type@8.3.0": { 3255 3680 "integrity": "sha512-czfZUpQ7W9CDxZL4yFLb1kFtM/q2lTOY975hL2aO+DC8+GRNDVSXVCHXhVFZPxiUKmQCZbFP8vIhxx5TBQaThw==" 3256 3681 }, ··· 3363 3788 "d3-dsv@2.0.0": { 3364 3789 "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", 3365 3790 "dependencies": [ 3366 - "commander", 3791 + "commander@2.20.3", 3367 3792 "iconv-lite@0.4.24", 3368 3793 "rw" 3369 3794 ] ··· 3558 3983 "decimal.js@10.4.3": { 3559 3984 "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" 3560 3985 }, 3986 + "decompress-response@6.0.0": { 3987 + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", 3988 + "dependencies": [ 3989 + "mimic-response@3.1.0" 3990 + ] 3991 + }, 3561 3992 "deep-eql@5.0.2": { 3562 3993 "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==" 3563 3994 }, ··· 3570 4001 "clone" 3571 4002 ] 3572 4003 }, 4004 + "defer-to-connect@2.0.1": { 4005 + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" 4006 + }, 3573 4007 "define-data-property@1.1.4": { 3574 4008 "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 3575 4009 "dependencies": [ ··· 3581 4015 "define-lazy-prop@2.0.0": { 3582 4016 "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" 3583 4017 }, 4018 + "define-properties@1.2.1": { 4019 + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 4020 + "dependencies": [ 4021 + "define-data-property", 4022 + "has-property-descriptors", 4023 + "object-keys" 4024 + ] 4025 + }, 3584 4026 "delaunator@4.0.1": { 3585 4027 "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" 3586 4028 }, ··· 3604 4046 }, 3605 4047 "detect-node-es@1.1.0": { 3606 4048 "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" 4049 + }, 4050 + "detect-node@2.1.0": { 4051 + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" 3607 4052 }, 3608 4053 "diff-sequences@29.6.3": { 3609 4054 "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==" 3610 4055 }, 4056 + "dir-compare@3.3.0": { 4057 + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", 4058 + "dependencies": [ 4059 + "buffer-equal", 4060 + "minimatch@3.1.2" 4061 + ] 4062 + }, 3611 4063 "dir-glob@3.0.1": { 3612 4064 "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 3613 4065 "dependencies": [ 3614 4066 "path-type" 3615 4067 ] 3616 4068 }, 4069 + "dmg-builder@24.13.3": { 4070 + "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", 4071 + "dependencies": [ 4072 + "app-builder-lib@24.13.3_dmg-builder@24.13.3_electron-builder-squirrel-windows@24.13.3__dmg-builder@24.13.3", 4073 + "builder-util", 4074 + "builder-util-runtime", 4075 + "dmg-license", 4076 + "fs-extra@10.1.0", 4077 + "iconv-lite@0.6.3", 4078 + "js-yaml" 4079 + ] 4080 + }, 4081 + "dmg-builder@24.13.3_electron-builder-squirrel-windows@24.13.3__dmg-builder@24.13.3": { 4082 + "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", 4083 + "dependencies": [ 4084 + "app-builder-lib@24.13.3", 4085 + "builder-util", 4086 + "builder-util-runtime", 4087 + "dmg-license", 4088 + "fs-extra@10.1.0", 4089 + "iconv-lite@0.6.3", 4090 + "js-yaml" 4091 + ] 4092 + }, 4093 + "dmg-license@1.0.11": { 4094 + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", 4095 + "dependencies": [ 4096 + "@types/plist", 4097 + "@types/verror", 4098 + "ajv", 4099 + "crc", 4100 + "iconv-corefoundation", 4101 + "plist", 4102 + "smart-buffer", 4103 + "verror" 4104 + ] 4105 + }, 3617 4106 "doctrine@3.0.0": { 3618 4107 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 3619 4108 "dependencies": [ ··· 3640 4129 "tslib@2.7.0" 3641 4130 ] 3642 4131 }, 4132 + "dotenv-expand@5.1.0": { 4133 + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" 4134 + }, 3643 4135 "dotenv@16.4.5": { 3644 4136 "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" 3645 4137 }, 4138 + "dotenv@9.0.2": { 4139 + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" 4140 + }, 3646 4141 "dset@3.1.4": { 3647 4142 "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==" 3648 4143 }, 4144 + "eastasianwidth@0.2.0": { 4145 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 4146 + }, 3649 4147 "ee-first@1.1.1": { 3650 4148 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 3651 4149 }, 4150 + "ejs@3.1.10": { 4151 + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", 4152 + "dependencies": [ 4153 + "jake" 4154 + ] 4155 + }, 4156 + "electron-builder-squirrel-windows@24.13.3_dmg-builder@24.13.3": { 4157 + "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", 4158 + "dependencies": [ 4159 + "app-builder-lib@24.13.3_dmg-builder@24.13.3_electron-builder-squirrel-windows@24.13.3__dmg-builder@24.13.3", 4160 + "archiver", 4161 + "builder-util", 4162 + "fs-extra@10.1.0" 4163 + ] 4164 + }, 4165 + "electron-builder@24.13.3_dmg-builder@24.13.3": { 4166 + "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", 4167 + "dependencies": [ 4168 + "app-builder-lib@24.13.3_dmg-builder@24.13.3_electron-builder-squirrel-windows@24.13.3__dmg-builder@24.13.3", 4169 + "builder-util", 4170 + "builder-util-runtime", 4171 + "chalk@4.1.2", 4172 + "dmg-builder@24.13.3", 4173 + "fs-extra@10.1.0", 4174 + "is-ci", 4175 + "lazy-val", 4176 + "read-config-file", 4177 + "simple-update-notifier", 4178 + "yargs@17.7.2" 4179 + ] 4180 + }, 4181 + "electron-publish@24.13.1": { 4182 + "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", 4183 + "dependencies": [ 4184 + "@types/fs-extra", 4185 + "builder-util", 4186 + "builder-util-runtime", 4187 + "chalk@4.1.2", 4188 + "fs-extra@10.1.0", 4189 + "lazy-val", 4190 + "mime@2.6.0" 4191 + ] 4192 + }, 3652 4193 "electron-to-chromium@1.5.35": { 3653 4194 "integrity": "sha512-hOSRInrIDm0Brzp4IHW2F/VM+638qOL2CzE0DgpnGzKW27C95IqqeqgKz/hxHGnvPxvQGpHUGD5qRVC9EZY2+A==" 3654 4195 }, 4196 + "electron@30.0.8": { 4197 + "integrity": "sha512-ivzXJJ/9gdb4oOw+5SDuaZpSInz8C+Z021dKZfFLMltKbDa4sSqt5cRBiUg7J36Z2kdus+Jai0bdHWutYE9wAA==", 4198 + "dependencies": [ 4199 + "@electron/get", 4200 + "@types/node@20.17.6", 4201 + "extract-zip" 4202 + ] 4203 + }, 3655 4204 "emoji-regex@8.0.0": { 3656 4205 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 4206 + }, 4207 + "emoji-regex@9.2.2": { 4208 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 3657 4209 }, 3658 4210 "encodeurl@1.0.2": { 3659 4211 "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" ··· 3661 4213 "encodeurl@2.0.0": { 3662 4214 "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" 3663 4215 }, 4216 + "end-of-stream@1.4.4": { 4217 + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 4218 + "dependencies": [ 4219 + "once" 4220 + ] 4221 + }, 3664 4222 "entities@4.5.0": { 3665 4223 "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" 4224 + }, 4225 + "env-paths@2.2.1": { 4226 + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" 4227 + }, 4228 + "err-code@2.0.3": { 4229 + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" 3666 4230 }, 3667 4231 "error-ex@1.3.2": { 3668 4232 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", ··· 3682 4246 "es-module-lexer@1.5.4": { 3683 4247 "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" 3684 4248 }, 4249 + "es6-error@4.1.1": { 4250 + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" 4251 + }, 3685 4252 "esbuild-register@3.6.0_esbuild@0.21.5": { 3686 4253 "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", 3687 4254 "dependencies": [ ··· 3964 4531 "proxy-addr", 3965 4532 "qs", 3966 4533 "range-parser", 3967 - "safe-buffer", 4534 + "safe-buffer@5.2.1", 3968 4535 "send", 3969 4536 "serve-static", 3970 4537 "setprototypeof", ··· 3979 4546 "dependencies": [ 3980 4547 "chardet", 3981 4548 "iconv-lite@0.4.24", 3982 - "tmp" 4549 + "tmp@0.0.33" 3983 4550 ] 3984 4551 }, 3985 4552 "extract-files@11.0.0": { 3986 4553 "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==" 4554 + }, 4555 + "extract-zip@2.0.1": { 4556 + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 4557 + "dependencies": [ 4558 + "@types/yauzl", 4559 + "debug@4.3.7", 4560 + "get-stream", 4561 + "yauzl" 4562 + ] 4563 + }, 4564 + "extsprintf@1.4.1": { 4565 + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" 3987 4566 }, 3988 4567 "fast-decode-uri-component@1.0.1": { 3989 4568 "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" ··· 4040 4619 "ua-parser-js" 4041 4620 ] 4042 4621 }, 4622 + "fd-slicer@1.1.0": { 4623 + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 4624 + "dependencies": [ 4625 + "pend" 4626 + ] 4627 + }, 4043 4628 "fdir@6.4.0_picomatch@4.0.2": { 4044 4629 "integrity": "sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==", 4045 4630 "dependencies": [ ··· 4071 4656 "integrity": "sha512-kCWw3+Aai8Uox+5tHCNgMFaUdgidxvMnLWO6fM5sZ0hA2wlHP5/DHGF0ECe84BiB95qdJbKNEJhWKVDvMN+JDQ==", 4072 4657 "dependencies": [ 4073 4658 "tslib@2.7.0" 4659 + ] 4660 + }, 4661 + "filelist@1.0.4": { 4662 + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", 4663 + "dependencies": [ 4664 + "minimatch@5.1.6" 4074 4665 ] 4075 4666 }, 4076 4667 "filesize@10.1.6": { ··· 4149 4740 "is-callable" 4150 4741 ] 4151 4742 }, 4743 + "foreground-child@3.3.0": { 4744 + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", 4745 + "dependencies": [ 4746 + "cross-spawn", 4747 + "signal-exit@4.1.0" 4748 + ] 4749 + }, 4152 4750 "form-data@4.0.1": { 4153 4751 "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", 4154 4752 "dependencies": [ ··· 4163 4761 "fresh@0.5.2": { 4164 4762 "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" 4165 4763 }, 4764 + "fs-constants@1.0.0": { 4765 + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 4766 + }, 4767 + "fs-extra@10.1.0": { 4768 + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 4769 + "dependencies": [ 4770 + "graceful-fs", 4771 + "jsonfile@6.1.0", 4772 + "universalify@2.0.1" 4773 + ] 4774 + }, 4166 4775 "fs-extra@11.2.0": { 4167 4776 "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", 4168 4777 "dependencies": [ 4169 4778 "graceful-fs", 4170 - "jsonfile", 4171 - "universalify" 4779 + "jsonfile@6.1.0", 4780 + "universalify@2.0.1" 4781 + ] 4782 + }, 4783 + "fs-extra@8.1.0": { 4784 + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 4785 + "dependencies": [ 4786 + "graceful-fs", 4787 + "jsonfile@4.0.0", 4788 + "universalify@0.1.2" 4789 + ] 4790 + }, 4791 + "fs-extra@9.1.0": { 4792 + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", 4793 + "dependencies": [ 4794 + "at-least-node", 4795 + "graceful-fs", 4796 + "jsonfile@6.1.0", 4797 + "universalify@2.0.1" 4798 + ] 4799 + }, 4800 + "fs-minipass@2.1.0": { 4801 + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 4802 + "dependencies": [ 4803 + "minipass@3.3.6" 4172 4804 ] 4173 4805 }, 4174 4806 "fs.realpath@1.0.0": { ··· 4196 4828 "hasown" 4197 4829 ] 4198 4830 }, 4831 + "get-stream@5.2.0": { 4832 + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 4833 + "dependencies": [ 4834 + "pump" 4835 + ] 4836 + }, 4199 4837 "github-slugger@2.0.0": { 4200 4838 "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" 4201 4839 }, ··· 4215 4853 "integrity": "sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==", 4216 4854 "dependencies": [ 4217 4855 "@types/glob", 4218 - "glob" 4856 + "glob@7.2.3" 4857 + ] 4858 + }, 4859 + "glob@10.4.5": { 4860 + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 4861 + "dependencies": [ 4862 + "foreground-child", 4863 + "jackspeak", 4864 + "minimatch@9.0.5", 4865 + "minipass@7.1.2", 4866 + "package-json-from-dist", 4867 + "path-scurry" 4219 4868 ] 4220 4869 }, 4221 4870 "glob@7.2.3": { ··· 4229 4878 "path-is-absolute" 4230 4879 ] 4231 4880 }, 4881 + "global-agent@3.0.0": { 4882 + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", 4883 + "dependencies": [ 4884 + "boolean", 4885 + "es6-error", 4886 + "matcher", 4887 + "roarr", 4888 + "semver@7.6.3", 4889 + "serialize-error" 4890 + ] 4891 + }, 4232 4892 "globals@11.12.0": { 4233 4893 "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" 4234 4894 }, ··· 4244 4904 "globals@15.11.0": { 4245 4905 "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==" 4246 4906 }, 4907 + "globalthis@1.0.4": { 4908 + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", 4909 + "dependencies": [ 4910 + "define-properties", 4911 + "gopd" 4912 + ] 4913 + }, 4247 4914 "globby@11.1.0": { 4248 4915 "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 4249 4916 "dependencies": [ ··· 4261 4928 "get-intrinsic" 4262 4929 ] 4263 4930 }, 4931 + "got@11.8.6": { 4932 + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", 4933 + "dependencies": [ 4934 + "@sindresorhus/is", 4935 + "@szmarczak/http-timer", 4936 + "@types/cacheable-request", 4937 + "@types/responselike", 4938 + "cacheable-lookup", 4939 + "cacheable-request", 4940 + "decompress-response", 4941 + "http2-wrapper", 4942 + "lowercase-keys", 4943 + "p-cancelable", 4944 + "responselike" 4945 + ] 4946 + }, 4264 4947 "graceful-fs@4.2.11": { 4265 4948 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 4266 4949 }, ··· 4372 5055 "react-is@16.13.1" 4373 5056 ] 4374 5057 }, 5058 + "hosted-git-info@4.1.0": { 5059 + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", 5060 + "dependencies": [ 5061 + "lru-cache@6.0.0" 5062 + ] 5063 + }, 4375 5064 "html-encoding-sniffer@4.0.0": { 4376 5065 "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", 4377 5066 "dependencies": [ ··· 4381 5070 "html-tags@3.3.1": { 4382 5071 "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==" 4383 5072 }, 5073 + "http-cache-semantics@4.1.1": { 5074 + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" 5075 + }, 4384 5076 "http-errors@2.0.0": { 4385 5077 "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 4386 5078 "dependencies": [ ··· 4391 5083 "toidentifier" 4392 5084 ] 4393 5085 }, 5086 + "http-proxy-agent@5.0.0": { 5087 + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", 5088 + "dependencies": [ 5089 + "@tootallnate/once", 5090 + "agent-base@6.0.2", 5091 + "debug@4.3.7" 5092 + ] 5093 + }, 4394 5094 "http-proxy-agent@7.0.2": { 4395 5095 "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", 4396 5096 "dependencies": [ 4397 - "agent-base", 5097 + "agent-base@7.1.1", 5098 + "debug@4.3.7" 5099 + ] 5100 + }, 5101 + "http2-wrapper@1.0.3": { 5102 + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", 5103 + "dependencies": [ 5104 + "quick-lru", 5105 + "resolve-alpn" 5106 + ] 5107 + }, 5108 + "https-proxy-agent@5.0.1": { 5109 + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 5110 + "dependencies": [ 5111 + "agent-base@6.0.2", 4398 5112 "debug@4.3.7" 4399 5113 ] 4400 5114 }, 4401 5115 "https-proxy-agent@7.0.5": { 4402 5116 "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", 4403 5117 "dependencies": [ 4404 - "agent-base", 5118 + "agent-base@7.1.1", 4405 5119 "debug@4.3.7" 4406 5120 ] 4407 5121 }, 4408 5122 "hyphenate-style-name@1.1.0": { 4409 5123 "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" 4410 5124 }, 5125 + "iconv-corefoundation@1.1.7": { 5126 + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", 5127 + "dependencies": [ 5128 + "cli-truncate", 5129 + "node-addon-api" 5130 + ] 5131 + }, 4411 5132 "iconv-lite@0.4.24": { 4412 5133 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 4413 5134 "dependencies": [ ··· 4475 5196 "ora", 4476 5197 "run-async", 4477 5198 "rxjs", 4478 - "string-width", 5199 + "string-width@4.2.3", 4479 5200 "strip-ansi@6.0.1", 4480 5201 "through", 4481 5202 "wrap-ansi@6.2.0" ··· 4516 5237 "is-callable@1.2.7": { 4517 5238 "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" 4518 5239 }, 5240 + "is-ci@3.0.1": { 5241 + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", 5242 + "dependencies": [ 5243 + "ci-info" 5244 + ] 5245 + }, 4519 5246 "is-core-module@2.15.1": { 4520 5247 "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", 4521 5248 "dependencies": [ ··· 4600 5327 "is-docker" 4601 5328 ] 4602 5329 }, 5330 + "isarray@1.0.0": { 5331 + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 5332 + }, 5333 + "isbinaryfile@4.0.10": { 5334 + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==" 5335 + }, 5336 + "isbinaryfile@5.0.4": { 5337 + "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==" 5338 + }, 4603 5339 "isexe@2.0.0": { 4604 5340 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 4605 5341 }, ··· 4615 5351 "iterall@1.3.0": { 4616 5352 "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" 4617 5353 }, 5354 + "jackspeak@3.4.3": { 5355 + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 5356 + "dependencies": [ 5357 + "@isaacs/cliui", 5358 + "@pkgjs/parseargs" 5359 + ] 5360 + }, 5361 + "jake@10.9.2": { 5362 + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", 5363 + "dependencies": [ 5364 + "async", 5365 + "chalk@4.1.2", 5366 + "filelist", 5367 + "minimatch@3.1.2" 5368 + ] 5369 + }, 4618 5370 "jest-diff@29.7.0": { 4619 5371 "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", 4620 5372 "dependencies": [ ··· 4690 5442 "decimal.js", 4691 5443 "form-data", 4692 5444 "html-encoding-sniffer", 4693 - "http-proxy-agent", 4694 - "https-proxy-agent", 5445 + "http-proxy-agent@7.0.2", 5446 + "https-proxy-agent@7.0.5", 4695 5447 "is-potential-custom-element-name", 4696 5448 "nwsapi", 4697 5449 "parse5", ··· 4723 5475 "json-stable-stringify-without-jsonify@1.0.1": { 4724 5476 "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" 4725 5477 }, 5478 + "json-stringify-safe@5.0.1": { 5479 + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" 5480 + }, 4726 5481 "json-to-pretty-yaml@1.2.2": { 4727 5482 "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", 4728 5483 "dependencies": [ ··· 4732 5487 }, 4733 5488 "json5@2.2.3": { 4734 5489 "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" 5490 + }, 5491 + "jsonfile@4.0.0": { 5492 + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", 5493 + "dependencies": [ 5494 + "graceful-fs" 5495 + ] 4735 5496 }, 4736 5497 "jsonfile@6.1.0": { 4737 5498 "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 4738 5499 "dependencies": [ 4739 5500 "graceful-fs", 4740 - "universalify" 5501 + "universalify@2.0.1" 4741 5502 ] 4742 5503 }, 4743 5504 "just-extend@4.2.1": { ··· 4749 5510 "json-buffer" 4750 5511 ] 4751 5512 }, 5513 + "lazy-val@1.0.5": { 5514 + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" 5515 + }, 5516 + "lazystream@1.0.1": { 5517 + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", 5518 + "dependencies": [ 5519 + "readable-stream@2.3.8" 5520 + ] 5521 + }, 4752 5522 "levn@0.4.1": { 4753 5523 "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 4754 5524 "dependencies": [ ··· 4787 5557 "lodash.debounce@4.0.8": { 4788 5558 "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" 4789 5559 }, 5560 + "lodash.defaults@4.2.0": { 5561 + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" 5562 + }, 5563 + "lodash.difference@4.5.0": { 5564 + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" 5565 + }, 5566 + "lodash.flatten@4.4.0": { 5567 + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" 5568 + }, 5569 + "lodash.isplainobject@4.0.6": { 5570 + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" 5571 + }, 4790 5572 "lodash.merge@4.6.2": { 4791 5573 "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" 4792 5574 }, ··· 4795 5577 }, 4796 5578 "lodash.throttle@4.1.1": { 4797 5579 "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" 5580 + }, 5581 + "lodash.union@4.6.0": { 5582 + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" 4798 5583 }, 4799 5584 "lodash@4.17.21": { 4800 5585 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" ··· 4836 5621 "tslib@2.7.0" 4837 5622 ] 4838 5623 }, 5624 + "lowercase-keys@2.0.0": { 5625 + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" 5626 + }, 5627 + "lru-cache@10.4.3": { 5628 + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" 5629 + }, 4839 5630 "lru-cache@5.1.1": { 4840 5631 "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 4841 5632 "dependencies": [ 4842 - "yallist" 5633 + "yallist@3.1.1" 5634 + ] 5635 + }, 5636 + "lru-cache@6.0.0": { 5637 + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 5638 + "dependencies": [ 5639 + "yallist@4.0.0" 4843 5640 ] 4844 5641 }, 4845 5642 "lz-string@1.5.0": { ··· 4873 5670 "integrity": "sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==", 4874 5671 "dependencies": [ 4875 5672 "react@18.3.1" 5673 + ] 5674 + }, 5675 + "matcher@3.0.0": { 5676 + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", 5677 + "dependencies": [ 5678 + "escape-string-regexp@4.0.0" 4876 5679 ] 4877 5680 }, 4878 5681 "media-typer@0.3.0": { ··· 4921 5724 "mime@1.6.0": { 4922 5725 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 4923 5726 }, 5727 + "mime@2.6.0": { 5728 + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" 5729 + }, 4924 5730 "mimic-fn@2.1.0": { 4925 5731 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 4926 5732 }, 5733 + "mimic-response@1.0.1": { 5734 + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" 5735 + }, 5736 + "mimic-response@3.1.0": { 5737 + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" 5738 + }, 4927 5739 "min-indent@1.0.1": { 4928 5740 "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" 4929 5741 }, ··· 4933 5745 "brace-expansion@1.1.11" 4934 5746 ] 4935 5747 }, 5748 + "minimatch@5.1.6": { 5749 + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", 5750 + "dependencies": [ 5751 + "brace-expansion@2.0.1" 5752 + ] 5753 + }, 4936 5754 "minimatch@9.0.5": { 4937 5755 "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 4938 5756 "dependencies": [ ··· 4941 5759 }, 4942 5760 "minimist@1.2.8": { 4943 5761 "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" 5762 + }, 5763 + "minipass@3.3.6": { 5764 + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 5765 + "dependencies": [ 5766 + "yallist@4.0.0" 5767 + ] 5768 + }, 5769 + "minipass@5.0.0": { 5770 + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" 5771 + }, 5772 + "minipass@7.1.2": { 5773 + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" 5774 + }, 5775 + "minizlib@2.1.2": { 5776 + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 5777 + "dependencies": [ 5778 + "minipass@3.3.6", 5779 + "yallist@4.0.0" 5780 + ] 5781 + }, 5782 + "mkdirp@1.0.4": { 5783 + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 4944 5784 }, 4945 5785 "mockdate@3.0.5": { 4946 5786 "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==" ··· 4973 5813 "tslib@2.7.0" 4974 5814 ] 4975 5815 }, 5816 + "node-addon-api@1.7.2": { 5817 + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" 5818 + }, 4976 5819 "node-fetch@2.7.0": { 4977 5820 "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 4978 5821 "dependencies": [ ··· 4991 5834 "remove-trailing-separator" 4992 5835 ] 4993 5836 }, 5837 + "normalize-path@3.0.0": { 5838 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" 5839 + }, 5840 + "normalize-url@6.1.0": { 5841 + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" 5842 + }, 4994 5843 "nullthrows@1.1.1": { 4995 5844 "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" 4996 5845 }, ··· 5003 5852 "object-inspect@1.13.2": { 5004 5853 "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" 5005 5854 }, 5855 + "object-keys@1.1.1": { 5856 + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 5857 + }, 5006 5858 "on-finished@2.4.1": { 5007 5859 "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 5008 5860 "dependencies": [ ··· 5065 5917 }, 5066 5918 "os-tmpdir@1.0.2": { 5067 5919 "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" 5920 + }, 5921 + "p-cancelable@2.1.1": { 5922 + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" 5068 5923 }, 5069 5924 "p-limit@2.3.0": { 5070 5925 "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", ··· 5099 5954 "p-try@2.2.0": { 5100 5955 "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 5101 5956 }, 5957 + "package-json-from-dist@1.0.1": { 5958 + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" 5959 + }, 5102 5960 "param-case@3.0.4": { 5103 5961 "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", 5104 5962 "dependencies": [ ··· 5173 6031 "path-root-regex" 5174 6032 ] 5175 6033 }, 6034 + "path-scurry@1.11.1": { 6035 + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 6036 + "dependencies": [ 6037 + "lru-cache@10.4.3", 6038 + "minipass@7.1.2" 6039 + ] 6040 + }, 5176 6041 "path-to-regexp@0.1.10": { 5177 6042 "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" 5178 6043 }, ··· 5184 6049 }, 5185 6050 "pathval@2.0.0": { 5186 6051 "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==" 6052 + }, 6053 + "pend@1.2.0": { 6054 + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 5187 6055 }, 5188 6056 "picocolors@1.1.0": { 5189 6057 "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" ··· 5198 6066 "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 5199 6067 "dependencies": [ 5200 6068 "find-up@4.1.0" 6069 + ] 6070 + }, 6071 + "plist@3.1.0": { 6072 + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", 6073 + "dependencies": [ 6074 + "@xmldom/xmldom", 6075 + "base64-js", 6076 + "xmlbuilder" 5201 6077 ] 5202 6078 }, 5203 6079 "polished@3.7.2": { ··· 5256 6132 "react-is@18.1.0" 5257 6133 ] 5258 6134 }, 6135 + "process-nextick-args@2.0.1": { 6136 + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 6137 + }, 5259 6138 "process@0.11.10": { 5260 6139 "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" 6140 + }, 6141 + "progress@2.0.3": { 6142 + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 6143 + }, 6144 + "promise-retry@2.0.1": { 6145 + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", 6146 + "dependencies": [ 6147 + "err-code", 6148 + "retry" 6149 + ] 5261 6150 }, 5262 6151 "promise@7.3.1": { 5263 6152 "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", ··· 5288 6177 "ipaddr.js" 5289 6178 ] 5290 6179 }, 6180 + "pump@3.0.2": { 6181 + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", 6182 + "dependencies": [ 6183 + "end-of-stream", 6184 + "once" 6185 + ] 6186 + }, 5291 6187 "punycode@2.3.1": { 5292 6188 "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" 5293 6189 }, ··· 5299 6195 }, 5300 6196 "queue-microtask@1.2.3": { 5301 6197 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 6198 + }, 6199 + "quick-lru@5.1.1": { 6200 + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" 5302 6201 }, 5303 6202 "range-parser@1.2.1": { 5304 6203 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" ··· 5556 6455 "loose-envify" 5557 6456 ] 5558 6457 }, 6458 + "read-config-file@6.3.2": { 6459 + "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", 6460 + "dependencies": [ 6461 + "config-file-ts", 6462 + "dotenv@9.0.2", 6463 + "dotenv-expand", 6464 + "js-yaml", 6465 + "json5", 6466 + "lazy-val" 6467 + ] 6468 + }, 6469 + "readable-stream@2.3.8": { 6470 + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", 6471 + "dependencies": [ 6472 + "core-util-is", 6473 + "inherits", 6474 + "isarray", 6475 + "process-nextick-args", 6476 + "safe-buffer@5.1.2", 6477 + "string_decoder@1.1.1", 6478 + "util-deprecate" 6479 + ] 6480 + }, 5559 6481 "readable-stream@3.6.2": { 5560 6482 "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 5561 6483 "dependencies": [ 5562 6484 "inherits", 5563 - "string_decoder", 6485 + "string_decoder@1.3.0", 5564 6486 "util-deprecate" 6487 + ] 6488 + }, 6489 + "readdir-glob@1.1.3": { 6490 + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", 6491 + "dependencies": [ 6492 + "minimatch@5.1.6" 5565 6493 ] 5566 6494 }, 5567 6495 "recast@0.23.9": { ··· 5648 6576 "resize-observer-polyfill@1.5.1": { 5649 6577 "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" 5650 6578 }, 6579 + "resolve-alpn@1.2.1": { 6580 + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" 6581 + }, 5651 6582 "resolve-from@4.0.0": { 5652 6583 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" 5653 6584 }, ··· 5665 6596 "response-iterator@0.2.6": { 5666 6597 "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" 5667 6598 }, 6599 + "responselike@2.0.1": { 6600 + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", 6601 + "dependencies": [ 6602 + "lowercase-keys" 6603 + ] 6604 + }, 5668 6605 "restore-cursor@3.1.0": { 5669 6606 "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 5670 6607 "dependencies": [ 5671 6608 "onetime", 5672 - "signal-exit" 6609 + "signal-exit@3.0.7" 5673 6610 ] 5674 6611 }, 6612 + "retry@0.12.0": { 6613 + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" 6614 + }, 5675 6615 "reusify@1.0.4": { 5676 6616 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 5677 6617 }, ··· 5681 6621 "rimraf@3.0.2": { 5682 6622 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 5683 6623 "dependencies": [ 5684 - "glob" 6624 + "glob@7.2.3" 6625 + ] 6626 + }, 6627 + "roarr@2.15.4": { 6628 + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", 6629 + "dependencies": [ 6630 + "boolean", 6631 + "detect-node", 6632 + "globalthis", 6633 + "json-stringify-safe", 6634 + "semver-compare", 6635 + "sprintf-js" 5685 6636 ] 5686 6637 }, 5687 6638 "rollup@4.24.0": { ··· 5728 6679 "tslib@2.7.0" 5729 6680 ] 5730 6681 }, 6682 + "safe-buffer@5.1.2": { 6683 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 6684 + }, 5731 6685 "safe-buffer@5.2.1": { 5732 6686 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 5733 6687 }, 5734 6688 "safer-buffer@2.1.2": { 5735 6689 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 6690 + }, 6691 + "sanitize-filename@1.6.3": { 6692 + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", 6693 + "dependencies": [ 6694 + "truncate-utf8-bytes" 6695 + ] 6696 + }, 6697 + "sax@1.4.1": { 6698 + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" 5736 6699 }, 5737 6700 "saxes@6.0.0": { 5738 6701 "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", ··· 5755 6718 }, 5756 6719 "scuid@1.1.0": { 5757 6720 "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==" 6721 + }, 6722 + "semver-compare@1.0.0": { 6723 + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" 5758 6724 }, 5759 6725 "semver@6.3.1": { 5760 6726 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" ··· 5773 6739 "etag", 5774 6740 "fresh", 5775 6741 "http-errors", 5776 - "mime", 6742 + "mime@1.6.0", 5777 6743 "ms@2.1.3", 5778 6744 "on-finished", 5779 6745 "range-parser", ··· 5786 6752 "no-case", 5787 6753 "tslib@2.7.0", 5788 6754 "upper-case-first" 6755 + ] 6756 + }, 6757 + "serialize-error@7.0.1": { 6758 + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", 6759 + "dependencies": [ 6760 + "type-fest@0.13.1" 5789 6761 ] 5790 6762 }, 5791 6763 "serve-static@1.16.2": { ··· 5847 6819 "signal-exit@3.0.7": { 5848 6820 "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 5849 6821 }, 6822 + "signal-exit@4.1.0": { 6823 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" 6824 + }, 5850 6825 "signedsource@1.0.0": { 5851 6826 "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==" 6827 + }, 6828 + "simple-update-notifier@2.0.0": { 6829 + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", 6830 + "dependencies": [ 6831 + "semver@7.6.3" 6832 + ] 5852 6833 }, 5853 6834 "sirv@2.0.4": { 5854 6835 "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", ··· 5877 6858 "is-fullwidth-code-point" 5878 6859 ] 5879 6860 }, 6861 + "smart-buffer@4.2.0": { 6862 + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" 6863 + }, 5880 6864 "snake-case@3.0.4": { 5881 6865 "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", 5882 6866 "dependencies": [ ··· 5887 6871 "source-map-js@1.2.1": { 5888 6872 "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" 5889 6873 }, 6874 + "source-map-support@0.5.21": { 6875 + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 6876 + "dependencies": [ 6877 + "buffer-from", 6878 + "source-map@0.6.1" 6879 + ] 6880 + }, 5890 6881 "source-map@0.5.7": { 5891 6882 "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" 5892 6883 }, ··· 5902 6893 "tslib@2.7.0" 5903 6894 ] 5904 6895 }, 6896 + "sprintf-js@1.1.3": { 6897 + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" 6898 + }, 5905 6899 "stack-utils@2.0.6": { 5906 6900 "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", 5907 6901 "dependencies": [ ··· 5910 6904 }, 5911 6905 "stackback@0.0.2": { 5912 6906 "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" 6907 + }, 6908 + "stat-mode@1.0.0": { 6909 + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==" 5913 6910 }, 5914 6911 "statuses@2.0.1": { 5915 6912 "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" ··· 5932 6929 "string-width@4.2.3": { 5933 6930 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 5934 6931 "dependencies": [ 5935 - "emoji-regex", 6932 + "emoji-regex@8.0.0", 5936 6933 "is-fullwidth-code-point", 5937 6934 "strip-ansi@6.0.1" 5938 6935 ] 5939 6936 }, 6937 + "string-width@5.1.2": { 6938 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 6939 + "dependencies": [ 6940 + "eastasianwidth", 6941 + "emoji-regex@9.2.2", 6942 + "strip-ansi@7.1.0" 6943 + ] 6944 + }, 6945 + "string_decoder@1.1.1": { 6946 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 6947 + "dependencies": [ 6948 + "safe-buffer@5.1.2" 6949 + ] 6950 + }, 5940 6951 "string_decoder@1.3.0": { 5941 6952 "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 5942 6953 "dependencies": [ 5943 - "safe-buffer" 6954 + "safe-buffer@5.2.1" 5944 6955 ] 5945 6956 }, 5946 6957 "strip-ansi@6.0.1": { ··· 6029 7040 "ws@7.5.10" 6030 7041 ] 6031 7042 }, 7043 + "sumchecker@3.0.1": { 7044 + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", 7045 + "dependencies": [ 7046 + "debug@4.3.7" 7047 + ] 7048 + }, 6032 7049 "supports-color@5.5.0": { 6033 7050 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 6034 7051 "dependencies": [ ··· 6059 7076 "symbol-tree@3.2.4": { 6060 7077 "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" 6061 7078 }, 7079 + "tar-stream@2.2.0": { 7080 + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 7081 + "dependencies": [ 7082 + "bl", 7083 + "end-of-stream", 7084 + "fs-constants", 7085 + "inherits", 7086 + "readable-stream@3.6.2" 7087 + ] 7088 + }, 7089 + "tar@6.2.1": { 7090 + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", 7091 + "dependencies": [ 7092 + "chownr", 7093 + "fs-minipass", 7094 + "minipass@5.0.0", 7095 + "minizlib", 7096 + "mkdirp", 7097 + "yallist@4.0.0" 7098 + ] 7099 + }, 6062 7100 "telejson@7.2.0": { 6063 7101 "integrity": "sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==", 6064 7102 "dependencies": [ 6065 7103 "memoizerific" 7104 + ] 7105 + }, 7106 + "temp-file@3.4.0": { 7107 + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", 7108 + "dependencies": [ 7109 + "async-exit-hook", 7110 + "fs-extra@10.1.0" 6066 7111 ] 6067 7112 }, 6068 7113 "text-table@0.2.0": { ··· 6114 7159 "tldts-core" 6115 7160 ] 6116 7161 }, 7162 + "tmp-promise@3.0.3": { 7163 + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", 7164 + "dependencies": [ 7165 + "tmp@0.2.3" 7166 + ] 7167 + }, 6117 7168 "tmp@0.0.33": { 6118 7169 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 6119 7170 "dependencies": [ 6120 7171 "os-tmpdir" 6121 7172 ] 6122 7173 }, 7174 + "tmp@0.2.3": { 7175 + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==" 7176 + }, 6123 7177 "to-fast-properties@2.0.0": { 6124 7178 "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" 6125 7179 }, ··· 6148 7202 "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", 6149 7203 "dependencies": [ 6150 7204 "punycode" 7205 + ] 7206 + }, 7207 + "truncate-utf8-bytes@1.0.2": { 7208 + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", 7209 + "dependencies": [ 7210 + "utf8-byte-length" 6151 7211 ] 6152 7212 }, 6153 7213 "ts-api-utils@1.3.0_typescript@5.6.3": { ··· 6206 7266 "dependencies": [ 6207 7267 "prelude-ls" 6208 7268 ] 7269 + }, 7270 + "type-fest@0.13.1": { 7271 + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" 6209 7272 }, 6210 7273 "type-fest@0.20.2": { 6211 7274 "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" ··· 6264 7327 "unist-util-visit-parents" 6265 7328 ] 6266 7329 }, 7330 + "universalify@0.1.2": { 7331 + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" 7332 + }, 6267 7333 "universalify@2.0.1": { 6268 7334 "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" 6269 7335 }, 6270 7336 "unixify@1.0.0": { 6271 7337 "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", 6272 7338 "dependencies": [ 6273 - "normalize-path" 7339 + "normalize-path@2.1.1" 6274 7340 ] 6275 7341 }, 6276 7342 "unpipe@1.0.0": { ··· 6329 7395 "tslib@2.7.0" 6330 7396 ] 6331 7397 }, 7398 + "utf8-byte-length@1.0.5": { 7399 + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==" 7400 + }, 6332 7401 "util-deprecate@1.0.2": { 6333 7402 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 6334 7403 }, ··· 6354 7423 "vary@1.1.2": { 6355 7424 "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 6356 7425 }, 7426 + "verror@1.10.1": { 7427 + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", 7428 + "dependencies": [ 7429 + "assert-plus", 7430 + "core-util-is", 7431 + "extsprintf" 7432 + ] 7433 + }, 6357 7434 "vite-node@2.1.2_@types+node@22.7.5": { 6358 7435 "integrity": "sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==", 6359 7436 "dependencies": [ ··· 6362 7439 "pathe", 6363 7440 "vite" 6364 7441 ] 7442 + }, 7443 + "vite-plugin-electron-renderer@0.14.6": { 7444 + "integrity": "sha512-oqkWFa7kQIkvHXG7+Mnl1RTroA4sP0yesKatmAy0gjZC4VwUqlvF9IvOpHd1fpLWsqYX/eZlVxlhULNtaQ78Jw==" 7445 + }, 7446 + "vite-plugin-electron@0.28.8": { 7447 + "integrity": "sha512-ir+B21oSGK9j23OEvt4EXyco9xDCaF6OGFe0V/8Zc0yL2+HMyQ6mmNQEIhXsEsZCSfIowBpwQBeHH4wVsfraeg==" 6365 7448 }, 6366 7449 "vite@5.4.8_@types+node@22.7.5": { 6367 7450 "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", ··· 6510 7593 "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 6511 7594 "dependencies": [ 6512 7595 "ansi-styles@4.3.0", 6513 - "string-width", 7596 + "string-width@4.2.3", 6514 7597 "strip-ansi@6.0.1" 6515 7598 ] 6516 7599 }, ··· 6518 7601 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 6519 7602 "dependencies": [ 6520 7603 "ansi-styles@4.3.0", 6521 - "string-width", 7604 + "string-width@4.2.3", 6522 7605 "strip-ansi@6.0.1" 6523 7606 ] 6524 7607 }, 7608 + "wrap-ansi@8.1.0": { 7609 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 7610 + "dependencies": [ 7611 + "ansi-styles@6.2.1", 7612 + "string-width@5.1.2", 7613 + "strip-ansi@7.1.0" 7614 + ] 7615 + }, 6525 7616 "wrappy@1.0.2": { 6526 7617 "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 6527 7618 }, ··· 6533 7624 }, 6534 7625 "xml-name-validator@5.0.0": { 6535 7626 "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==" 7627 + }, 7628 + "xmlbuilder@15.1.1": { 7629 + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" 6536 7630 }, 6537 7631 "xmlchars@2.2.0": { 6538 7632 "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" ··· 6546 7640 "yallist@3.1.1": { 6547 7641 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 6548 7642 }, 7643 + "yallist@4.0.0": { 7644 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 7645 + }, 6549 7646 "yaml-ast-parser@0.0.43": { 6550 7647 "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==" 6551 7648 }, ··· 6575 7672 "require-directory", 6576 7673 "require-main-filename", 6577 7674 "set-blocking", 6578 - "string-width", 7675 + "string-width@4.2.3", 6579 7676 "which-module", 6580 7677 "y18n@4.0.3", 6581 7678 "yargs-parser@18.1.3" ··· 6588 7685 "escalade", 6589 7686 "get-caller-file", 6590 7687 "require-directory", 6591 - "string-width", 7688 + "string-width@4.2.3", 6592 7689 "y18n@5.0.8", 6593 7690 "yargs-parser@21.1.1" 6594 7691 ] 6595 7692 }, 7693 + "yauzl@2.10.0": { 7694 + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 7695 + "dependencies": [ 7696 + "buffer-crc32", 7697 + "fd-slicer" 7698 + ] 7699 + }, 6596 7700 "yocto-queue@0.1.0": { 6597 7701 "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" 6598 7702 }, ··· 6604 7708 }, 6605 7709 "zen-observable@0.8.15": { 6606 7710 "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" 7711 + }, 7712 + "zip-stream@4.1.1": { 7713 + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", 7714 + "dependencies": [ 7715 + "archiver-utils@3.0.4", 7716 + "compress-commons", 7717 + "readable-stream@3.6.2" 7718 + ] 6607 7719 } 6608 7720 }, 6609 7721 "workspace": { ··· 6648 7760 "npm:@testing-library/react@^16.0.1", 6649 7761 "npm:@testing-library/user-event@^14.5.2", 6650 7762 "npm:@types/jest@^29.5.13", 7763 + "npm:@types/lodash@^4.17.13", 6651 7764 "npm:@types/node@^22.7.4", 6652 7765 "npm:@types/react-dom@^18.3.0", 6653 7766 "npm:@types/react-lazy-load-image-component@^1.6.4", ··· 6659 7772 "npm:bignumber.js@^9.1.2", 6660 7773 "npm:cross-env@^7.0.3", 6661 7774 "npm:dayjs@^1.11.13", 7775 + "npm:electron-builder@^24.13.3", 7776 + "npm:electron@30.0.8", 6662 7777 "npm:eslint-plugin-react-hooks@^5.1.0-rc.0", 6663 7778 "npm:eslint-plugin-react-refresh@~0.4.9", 6664 7779 "npm:eslint-plugin-storybook@0.9", ··· 6684 7799 "npm:subscriptions-transport-ws@0.11", 6685 7800 "npm:typescript-eslint@^8.0.1", 6686 7801 "npm:typescript@^5.5.3", 7802 + "npm:vite-plugin-electron-renderer@~0.14.6", 7803 + "npm:vite-plugin-electron@~0.28.8", 6687 7804 "npm:vite@^5.4.1", 6688 7805 "npm:vitest@^2.1.2" 6689 7806 ]
+32
webui/rockbox/electron-builder.json5
··· 1 + /** 2 + * @see https://www.electron.build/configuration/configuration 3 + */ 4 + { 5 + appId: "com.rockbox-zig.app", 6 + asar: true, 7 + directories: { 8 + output: "release/v${version}", 9 + }, 10 + files: ["dist-electron", "dist"], 11 + mac: { 12 + icon: "assets/icon.svg", 13 + artifactName: "${productName}_v${version}_${arch}.${ext}", 14 + target: ["dmg", "zip"], 15 + }, 16 + linux: { 17 + icon: "assets/icon.svg", 18 + artifactName: "${productName}_v${version}.${ext}", 19 + target: ["AppImage", "tar.gz"], 20 + }, 21 + nsis: { 22 + oneClick: false, 23 + perMachine: false, 24 + allowToChangeInstallationDirectory: true, 25 + deleteAppDataOnUninstall: false, 26 + }, 27 + publish: { 28 + provider: "generic", 29 + channel: "latest", 30 + url: "https://github.com/tsirysndr/rockbox-zig/releases/download/v${version}/", 31 + }, 32 + }
+23
webui/rockbox/electron/electron-env.d.ts
··· 1 + /// <reference types="vite-electron-plugin/electron-env" /> 2 + 3 + declare namespace NodeJS { 4 + interface ProcessEnv { 5 + VSCODE_DEBUG?: 'true' 6 + /** 7 + * The built directory structure 8 + * 9 + * ```tree 10 + * ├─┬ dist-electron 11 + * │ ├─┬ main 12 + * │ │ └── index.js > Electron-Main 13 + * │ └─┬ preload 14 + * │ └── index.mjs > Preload-Scripts 15 + * ├─┬ dist 16 + * │ └── index.html > Electron-Renderer 17 + * ``` 18 + */ 19 + APP_ROOT: string 20 + /** /dist/ or /public/ */ 21 + VITE_PUBLIC: string 22 + } 23 + }
+158
webui/rockbox/electron/main/index.ts
··· 1 + /* eslint-disable @typescript-eslint/no-unused-vars */ 2 + import { app, BrowserWindow, shell, ipcMain } from "electron"; 3 + import { createRequire } from "node:module"; 4 + import { fileURLToPath } from "node:url"; 5 + import path from "node:path"; 6 + import os from "node:os"; 7 + import { update } from "./update"; 8 + import { execSync, spawn } from "node:child_process"; 9 + 10 + const require = createRequire(import.meta.url); 11 + const __dirname = path.dirname(fileURLToPath(import.meta.url)); 12 + 13 + // The built directory structure 14 + // 15 + // ├─┬ dist-electron 16 + // │ ├─┬ main 17 + // │ │ └── index.js > Electron-Main 18 + // │ └─┬ preload 19 + // │ └── index.mjs > Preload-Scripts 20 + // ├─┬ dist 21 + // │ └── index.html > Electron-Renderer 22 + // 23 + process.env.APP_ROOT = path.join(__dirname, "../.."); 24 + 25 + export const MAIN_DIST = path.join(process.env.APP_ROOT, "dist-electron"); 26 + export const RENDERER_DIST = path.join(process.env.APP_ROOT, "dist"); 27 + export const VITE_DEV_SERVER_URL = process.env.VITE_DEV_SERVER_URL; 28 + 29 + process.env.VITE_PUBLIC = VITE_DEV_SERVER_URL 30 + ? path.join(process.env.APP_ROOT, "public") 31 + : RENDERER_DIST; 32 + 33 + // Disable GPU Acceleration for Windows 7 34 + if (os.release().startsWith("6.1")) app.disableHardwareAcceleration(); 35 + 36 + // Set application name for Windows 10+ notifications 37 + if (process.platform === "win32") app.setAppUserModelId(app.getName()); 38 + 39 + if (!app.requestSingleInstanceLock()) { 40 + app.quit(); 41 + process.exit(0); 42 + } 43 + 44 + app.commandLine.appendSwitch("ignore-gpu-blacklist"); 45 + app.commandLine.appendSwitch("disable-gpu"); 46 + app.commandLine.appendSwitch("disable-gpu-compositing"); 47 + 48 + let win: BrowserWindow | null = null; 49 + const preload = path.join(__dirname, "../preload/index.mjs"); 50 + const indexHtml = path.join(RENDERER_DIST, "index.html"); 51 + 52 + let child; 53 + 54 + async function createWindow() { 55 + win = new BrowserWindow({ 56 + frame: true, // Enable window frame 57 + transparent: false, // Ensure transparency is disabled 58 + width: 800, 59 + height: 600, 60 + webPreferences: { 61 + preload, 62 + // Warning: Enable nodeIntegration and disable contextIsolation is not secure in production 63 + nodeIntegration: true, 64 + 65 + // Consider using contextBridge.exposeInMainWorld 66 + // Read more on https://www.electronjs.org/docs/latest/tutorial/context-isolation 67 + // contextIsolation: false, 68 + }, 69 + }); 70 + 71 + if (VITE_DEV_SERVER_URL) { 72 + // #298 73 + win.loadURL(VITE_DEV_SERVER_URL); 74 + // Open devTool if the app is not packaged 75 + win.webContents.openDevTools(); 76 + } else { 77 + win.loadFile(indexHtml); 78 + } 79 + 80 + // Test actively push message to the Electron-Renderer 81 + win.webContents.on("did-finish-load", () => { 82 + win?.webContents.send("main-process-message", new Date().toLocaleString()); 83 + }); 84 + 85 + // Make all links open with the browser, not with the application 86 + win.webContents.setWindowOpenHandler(({ url }) => { 87 + if (url.startsWith("https:")) shell.openExternal(url); 88 + return { action: "deny" }; 89 + }); 90 + 91 + win.setMenuBarVisibility(false); 92 + win.autoHideMenuBar = true; 93 + win.maximize(); 94 + 95 + // Auto update 96 + update(win); 97 + } 98 + 99 + app.whenReady().then(createWindow); 100 + 101 + app.on("web-contents-created", () => {}); 102 + 103 + app.on("before-quit", () => { 104 + if (child) { 105 + // Kill the child process 106 + child.kill("SIGKILL"); 107 + } 108 + }); 109 + 110 + app.on("window-all-closed", () => { 111 + win = null; 112 + if (process.platform !== "darwin") app.quit(); 113 + }); 114 + 115 + app.on("second-instance", () => { 116 + if (win) { 117 + // Focus on the main window if the user tried to open another 118 + if (win.isMinimized()) win.restore(); 119 + win.focus(); 120 + } 121 + }); 122 + 123 + app.on("activate", () => { 124 + const allWindows = BrowserWindow.getAllWindows(); 125 + if (allWindows.length) { 126 + allWindows[0].focus(); 127 + } else { 128 + createWindow(); 129 + } 130 + }); 131 + 132 + // New window example arg: new windows url 133 + ipcMain.handle("open-win", (_, arg) => { 134 + const childWindow = new BrowserWindow({ 135 + webPreferences: { 136 + preload, 137 + nodeIntegration: true, 138 + contextIsolation: false, 139 + }, 140 + }); 141 + 142 + if (VITE_DEV_SERVER_URL) { 143 + childWindow.loadURL(`${VITE_DEV_SERVER_URL}#${arg}`); 144 + } else { 145 + childWindow.loadFile(indexHtml, { hash: arg }); 146 + } 147 + }); 148 + 149 + ipcMain.on("window-control", (event, action) => { 150 + const window = BrowserWindow.fromWebContents(event.sender); 151 + if (action === "minimize") { 152 + window?.minimize(); 153 + } else if (action === "maximize") { 154 + window?.isMaximized() ? window?.unmaximize() : window?.maximize(); 155 + } else if (action === "close") { 156 + window?.close(); 157 + } 158 + });
+76
webui/rockbox/electron/main/update.ts
··· 1 + import { app, ipcMain } from 'electron' 2 + import { createRequire } from 'node:module' 3 + import type { 4 + ProgressInfo, 5 + UpdateDownloadedEvent, 6 + UpdateInfo, 7 + } from 'electron-updater' 8 + 9 + const { autoUpdater } = createRequire(import.meta.url)('electron-updater'); 10 + 11 + export function update(win: Electron.BrowserWindow) { 12 + 13 + // When set to false, the update download will be triggered through the API 14 + autoUpdater.autoDownload = false 15 + autoUpdater.disableWebInstaller = false 16 + autoUpdater.allowDowngrade = false 17 + 18 + // start check 19 + autoUpdater.on('checking-for-update', function () { }) 20 + // update available 21 + autoUpdater.on('update-available', (arg: UpdateInfo) => { 22 + win.webContents.send('update-can-available', { update: true, version: app.getVersion(), newVersion: arg?.version }) 23 + }) 24 + // update not available 25 + autoUpdater.on('update-not-available', (arg: UpdateInfo) => { 26 + win.webContents.send('update-can-available', { update: false, version: app.getVersion(), newVersion: arg?.version }) 27 + }) 28 + 29 + // Checking for updates 30 + ipcMain.handle('check-update', async () => { 31 + if (!app.isPackaged) { 32 + const error = new Error('The update feature is only available after the package.') 33 + return { message: error.message, error } 34 + } 35 + 36 + try { 37 + return await autoUpdater.checkForUpdatesAndNotify() 38 + } catch (error) { 39 + return { message: 'Network error', error } 40 + } 41 + }) 42 + 43 + // Start downloading and feedback on progress 44 + ipcMain.handle('start-download', (event: Electron.IpcMainInvokeEvent) => { 45 + startDownload( 46 + (error, progressInfo) => { 47 + if (error) { 48 + // feedback download error message 49 + event.sender.send('update-error', { message: error.message, error }) 50 + } else { 51 + // feedback update progress message 52 + event.sender.send('download-progress', progressInfo) 53 + } 54 + }, 55 + () => { 56 + // feedback update downloaded message 57 + event.sender.send('update-downloaded') 58 + } 59 + ) 60 + }) 61 + 62 + // Install now 63 + ipcMain.handle('quit-and-install', () => { 64 + autoUpdater.quitAndInstall(false, true) 65 + }) 66 + } 67 + 68 + function startDownload( 69 + callback: (error: Error | null, info: ProgressInfo | null) => void, 70 + complete: (event: UpdateDownloadedEvent) => void, 71 + ) { 72 + autoUpdater.on('download-progress', (info: ProgressInfo) => callback(null, info)) 73 + autoUpdater.on('error', (error: Error) => callback(error, null)) 74 + autoUpdater.on('update-downloaded', complete) 75 + autoUpdater.downloadUpdate() 76 + }
+133
webui/rockbox/electron/preload/index.ts
··· 1 + import { ipcRenderer, contextBridge } from "electron"; 2 + 3 + contextBridge.exposeInMainWorld("electron", { 4 + // eslint-disable-next-line @typescript-eslint/no-explicit-any 5 + send: (channel: string, data: any) => { 6 + const validChannels = ["window-control"]; 7 + if (validChannels.includes(channel)) { 8 + ipcRenderer.send(channel, data); 9 + } 10 + }, 11 + }); 12 + 13 + // --------- Expose some API to the Renderer process --------- 14 + contextBridge.exposeInMainWorld("ipcRenderer", { 15 + on(...args: Parameters<typeof ipcRenderer.on>) { 16 + const [channel, listener] = args; 17 + return ipcRenderer.on(channel, (event, ...args) => 18 + listener(event, ...args) 19 + ); 20 + }, 21 + off(...args: Parameters<typeof ipcRenderer.off>) { 22 + const [channel, ...omit] = args; 23 + return ipcRenderer.off(channel, ...omit); 24 + }, 25 + send(...args: Parameters<typeof ipcRenderer.send>) { 26 + const [channel, ...omit] = args; 27 + return ipcRenderer.send(channel, ...omit); 28 + }, 29 + invoke(...args: Parameters<typeof ipcRenderer.invoke>) { 30 + const [channel, ...omit] = args; 31 + return ipcRenderer.invoke(channel, ...omit); 32 + }, 33 + 34 + // You can expose other APTs you need here. 35 + // ... 36 + }); 37 + 38 + // --------- Preload scripts loading --------- 39 + function domReady( 40 + condition: DocumentReadyState[] = ["complete", "interactive"] 41 + ) { 42 + return new Promise((resolve) => { 43 + if (condition.includes(document.readyState)) { 44 + resolve(true); 45 + } else { 46 + document.addEventListener("readystatechange", () => { 47 + if (condition.includes(document.readyState)) { 48 + resolve(true); 49 + } 50 + }); 51 + } 52 + }); 53 + } 54 + 55 + const safeDOM = { 56 + append(parent: HTMLElement, child: HTMLElement) { 57 + if (!Array.from(parent.children).find((e) => e === child)) { 58 + return parent.appendChild(child); 59 + } 60 + }, 61 + remove(parent: HTMLElement, child: HTMLElement) { 62 + if (Array.from(parent.children).find((e) => e === child)) { 63 + return parent.removeChild(child); 64 + } 65 + }, 66 + }; 67 + 68 + /** 69 + * https://tobiasahlin.com/spinkit 70 + * https://connoratherton.com/loaders 71 + * https://projects.lukehaas.me/css-loaders 72 + * https://matejkustec.github.io/SpinThatShit 73 + */ 74 + function useLoading() { 75 + const className = `loaders-css__square-spin`; 76 + const styleContent = ` 77 + @keyframes square-spin { 78 + 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); } 79 + 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 80 + 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); } 81 + 100% { transform: perspective(100px) rotateX(0) rotateY(0); } 82 + } 83 + .${className} > div { 84 + animation-fill-mode: both; 85 + width: 50px; 86 + height: 50px; 87 + background: #fff; 88 + animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; 89 + } 90 + .app-loading-wrap { 91 + position: fixed; 92 + top: 0; 93 + left: 0; 94 + width: 100vw; 95 + height: 100vh; 96 + display: flex; 97 + align-items: center; 98 + justify-content: center; 99 + background: #282c34; 100 + z-index: 9; 101 + } 102 + `; 103 + const oStyle = document.createElement("style"); 104 + const oDiv = document.createElement("div"); 105 + 106 + oStyle.id = "app-loading-style"; 107 + oStyle.innerHTML = styleContent; 108 + oDiv.className = "app-loading-wrap"; 109 + oDiv.innerHTML = `<div class="${className}"><div></div></div>`; 110 + 111 + return { 112 + appendLoading() { 113 + safeDOM.append(document.head, oStyle); 114 + safeDOM.append(document.body, oDiv); 115 + }, 116 + removeLoading() { 117 + safeDOM.remove(document.head, oStyle); 118 + safeDOM.remove(document.body, oDiv); 119 + }, 120 + }; 121 + } 122 + 123 + // ---------------------------------------------------------------------- 124 + 125 + // eslint-disable-next-line react-hooks/rules-of-hooks 126 + const { appendLoading, removeLoading } = useLoading(); 127 + domReady().then(appendLoading); 128 + 129 + window.onmessage = (ev) => { 130 + ev.data.payload === "removeLoading" && removeLoading(); 131 + }; 132 + 133 + setTimeout(removeLoading, 4999);
+23 -7
webui/rockbox/package.json
··· 1 1 { 2 2 "name": "rockbox", 3 3 "private": true, 4 - "version": "0.0.0", 4 + "version": "2024.11.5", 5 5 "type": "module", 6 + "main": "dist-electron/main/index.js", 7 + "author": "Tsiry Sandratraina <tsiry.sndr@fluentci.io>", 8 + "debug": { 9 + "env": { 10 + "VITE_DEV_SERVER_URL": "http://127.0.0.1:5173/" 11 + } 12 + }, 6 13 "scripts": { 7 - "dev": "vite", 8 - "build": "tsc -b && vite build", 14 + "dev": "vite --config vite.dev.config.ts", 15 + "build": "tsc -b && vite build --config vite.dev.config.ts", 16 + "build:electron-web": "tsc && vite build", 17 + "build:electron": "tsc && vite build && electron-builder", 18 + "start": "VITE_DEV_SERVER_URL=http://localhost:5173/ electron .", 9 19 "lint": "eslint .", 10 - "preview": "vite preview", 20 + "preview": "vite preview --config vite.dev.config.ts", 11 21 "storybook": "storybook dev -p 6006", 12 22 "build-storybook": "storybook build", 13 - "test": "vitest", 23 + "test": "vitest --config vite.dev.config.ts", 24 + "coverage": "vitest run --config vite.dev.config.ts --coverage", 14 25 "graphql:generate": "graphql-codegen" 15 26 }, 16 27 "dependencies": { ··· 49 60 "baseui": "12.2.0", 50 61 "bignumber.js": "^9.1.2", 51 62 "dayjs": "^1.11.13", 63 + "electron-updater": "^6.1.8", 52 64 "graphql": "15.7.2", 53 65 "jsdom": "^25.0.1", 54 66 "lodash": "^4.17.21", ··· 85 97 "@types/wicg-file-system-access": "^2023.10.5", 86 98 "@vitejs/plugin-react": "^4.3.1", 87 99 "cross-env": "^7.0.3", 100 + "electron": "30.0.8", 101 + "electron-builder": "^24.13.3", 88 102 "eslint": "^9.9.0", 89 103 "eslint-plugin-react-hooks": "^5.1.0-rc.0", 90 104 "eslint-plugin-react-refresh": "^0.4.9", ··· 93 107 "storybook": "^8.3.4", 94 108 "typescript": "^5.5.3", 95 109 "typescript-eslint": "^8.0.1", 96 - "vite": "^5.4.1" 110 + "vite": "^5.4.1", 111 + "vite-plugin-electron": "^0.28.8", 112 + "vite-plugin-electron-renderer": "^0.14.6" 97 113 }, 98 114 "eslintConfig": { 99 115 "extends": [ 100 116 "plugin:storybook/recommended" 101 117 ] 102 118 } 103 - } 119 + }
+79 -8
webui/rockbox/vite.config.ts
··· 1 - /// <reference types="vitest" /> 1 + import { rmSync } from "node:fs"; 2 + import path from "node:path"; 2 3 import { defineConfig } from "vite"; 3 4 import react from "@vitejs/plugin-react"; 5 + import electron from "vite-plugin-electron/simple"; 6 + import pkg from "./package.json"; 4 7 5 8 // https://vitejs.dev/config/ 6 - export default defineConfig({ 7 - plugins: [react()], 8 - test: { 9 - globals: true, 10 - environment: "jsdom", 11 - setupFiles: "./tests/setup.js", 12 - }, 9 + export default defineConfig(({ command }) => { 10 + rmSync("dist-electron", { recursive: true, force: true }); 11 + 12 + const isServe = command === "serve"; 13 + const isBuild = command === "build"; 14 + const sourcemap = isServe || !!process.env.VSCODE_DEBUG; 15 + 16 + return { 17 + resolve: { 18 + alias: { 19 + "@": path.join(__dirname, "src"), 20 + }, 21 + }, 22 + plugins: [ 23 + react(), 24 + electron({ 25 + main: { 26 + // Shortcut of `build.lib.entry` 27 + entry: "electron/main/index.ts", 28 + onstart(args) { 29 + if (process.env.VSCODE_DEBUG) { 30 + console.log( 31 + /* For `.vscode/.debug.script.mjs` */ "[startup] Electron App" 32 + ); 33 + } else { 34 + args.startup(); 35 + } 36 + }, 37 + vite: { 38 + build: { 39 + sourcemap, 40 + minify: isBuild, 41 + outDir: "dist-electron/main", 42 + rollupOptions: { 43 + external: Object.keys( 44 + "dependencies" in pkg ? pkg.dependencies : {} 45 + ), 46 + }, 47 + }, 48 + }, 49 + }, 50 + preload: { 51 + // Shortcut of `build.rollupOptions.input`. 52 + // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. 53 + input: "electron/preload/index.ts", 54 + vite: { 55 + build: { 56 + sourcemap: sourcemap ? "inline" : undefined, // #332 57 + minify: isBuild, 58 + outDir: "dist-electron/preload", 59 + rollupOptions: { 60 + external: Object.keys( 61 + "dependencies" in pkg ? pkg.dependencies : {} 62 + ), 63 + }, 64 + }, 65 + }, 66 + }, 67 + // Ployfill the Electron and Node.js API for Renderer process. 68 + // If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process. 69 + // See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer 70 + renderer: {}, 71 + }), 72 + ], 73 + server: 74 + process.env.VSCODE_DEBUG && 75 + (() => { 76 + const url = new URL(pkg.debug.env.VITE_DEV_SERVER_URL); 77 + return { 78 + host: url.hostname, 79 + port: +url.port, 80 + }; 81 + })(), 82 + clearScreen: false, 83 + }; 13 84 });
+13
webui/rockbox/vite.dev.config.ts
··· 1 + /// <reference types="vitest" /> 2 + import { defineConfig } from "vite"; 3 + import react from "@vitejs/plugin-react"; 4 + 5 + // https://vitejs.dev/config/ 6 + export default defineConfig({ 7 + plugins: [react()], 8 + test: { 9 + globals: true, 10 + environment: "jsdom", 11 + setupFiles: "./tests/setup.js", 12 + }, 13 + });