[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

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

Update to napi 3

Kasper (Sep 14, 2025, 2:42 PM +0200) 6f1f8ecc 0a4970a2

+2428 -472
+4
.github/workflows/ci.yml
··· 30 30 with: 31 31 node-version: 20 32 32 33 + - name: 'Install dependencies (Linux)' 34 + if: matrix.os == 'ubuntu-latest' 35 + run: sudo apt update && sudo apt-get install -y libwayland-dev pkg-config 36 + 33 37 - run: npm install 34 38 - run: npm run napi 35 39 - run: npm run build:web
+4
.github/workflows/release.yml
··· 33 33 with: 34 34 node-version: 20 35 35 36 + - name: 'Install dependencies (Linux)' 37 + if: matrix.os == 'ubuntu-latest' 38 + run: sudo apt update && sudo apt-get install -y libwayland-dev pkg-config 39 + 36 40 - run: npm install 37 41 - run: npm run napi -- --target ${{ matrix.target }} 38 42 - run: npm run build:web
+365 -316
Cargo.lock
··· 13 13 14 14 [[package]] 15 15 name = "adler2" 16 - version = "2.0.0" 16 + version = "2.0.1" 17 17 source = "registry+https://github.com/rust-lang/crates.io-index" 18 - checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 19 - 20 - [[package]] 21 - name = "aho-corasick" 22 - version = "1.1.3" 23 - source = "registry+https://github.com/rust-lang/crates.io-index" 24 - checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 25 - dependencies = [ 26 - "memchr", 27 - ] 18 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 28 19 29 20 [[package]] 30 21 name = "alphanumeric-sort" ··· 33 24 checksum = "d67c60c5f10f11c6ee04de72b2dd98bb9d2548cbc314d22a609bfa8bd9e87e8f" 34 25 35 26 [[package]] 36 - name = "android-tzdata" 37 - version = "0.1.1" 38 - source = "registry+https://github.com/rust-lang/crates.io-index" 39 - checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 40 - 41 - [[package]] 42 27 name = "android_system_properties" 43 28 version = "0.1.5" 44 29 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 49 34 50 35 [[package]] 51 36 name = "anyhow" 52 - version = "1.0.98" 37 + version = "1.0.99" 53 38 source = "registry+https://github.com/rust-lang/crates.io-index" 54 - checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" 39 + checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" 55 40 56 41 [[package]] 57 42 name = "ashpd" ··· 137 122 "futures-lite", 138 123 "parking", 139 124 "polling", 140 - "rustix 1.0.7", 125 + "rustix 1.1.2", 141 126 "slab", 142 127 "windows-sys 0.60.2", 143 128 ] ··· 179 164 "cfg-if", 180 165 "event-listener", 181 166 "futures-lite", 182 - "rustix 1.0.7", 167 + "rustix 1.1.2", 183 168 ] 184 169 185 170 [[package]] ··· 205 190 "cfg-if", 206 191 "futures-core", 207 192 "futures-io", 208 - "rustix 1.0.7", 193 + "rustix 1.1.2", 209 194 "signal-hook-registry", 210 195 "slab", 211 196 "windows-sys 0.60.2", ··· 247 232 248 233 [[package]] 249 234 name = "autocfg" 250 - version = "1.4.0" 235 + version = "1.5.0" 251 236 source = "registry+https://github.com/rust-lang/crates.io-index" 252 - checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 237 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 253 238 254 239 [[package]] 255 240 name = "backtrace" ··· 274 259 275 260 [[package]] 276 261 name = "bitflags" 277 - version = "1.3.2" 278 - source = "registry+https://github.com/rust-lang/crates.io-index" 279 - checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 280 - 281 - [[package]] 282 - name = "bitflags" 283 - version = "2.9.1" 284 - source = "registry+https://github.com/rust-lang/crates.io-index" 285 - checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 286 - 287 - [[package]] 288 - name = "block2" 289 - version = "0.5.1" 262 + version = "2.9.4" 290 263 source = "registry+https://github.com/rust-lang/crates.io-index" 291 - checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 292 - dependencies = [ 293 - "objc2 0.5.2", 294 - ] 264 + checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 295 265 296 266 [[package]] 297 267 name = "block2" ··· 299 269 source = "registry+https://github.com/rust-lang/crates.io-index" 300 270 checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" 301 271 dependencies = [ 302 - "objc2 0.6.2", 272 + "objc2", 303 273 ] 304 274 305 275 [[package]] ··· 317 287 318 288 [[package]] 319 289 name = "bumpalo" 320 - version = "3.18.1" 290 + version = "3.19.0" 321 291 source = "registry+https://github.com/rust-lang/crates.io-index" 322 - checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" 292 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 323 293 324 294 [[package]] 325 295 name = "bytemuck" 326 - version = "1.23.0" 296 + version = "1.23.2" 327 297 source = "registry+https://github.com/rust-lang/crates.io-index" 328 - checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" 298 + checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" 329 299 330 300 [[package]] 331 301 name = "byteorder" ··· 341 311 342 312 [[package]] 343 313 name = "cc" 344 - version = "1.2.25" 314 + version = "1.2.37" 345 315 source = "registry+https://github.com/rust-lang/crates.io-index" 346 - checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" 316 + checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" 347 317 dependencies = [ 318 + "find-msvc-tools", 348 319 "shlex", 349 320 ] 350 321 351 322 [[package]] 352 323 name = "cfg-if" 353 - version = "1.0.0" 324 + version = "1.0.3" 354 325 source = "registry+https://github.com/rust-lang/crates.io-index" 355 - checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 326 + checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 356 327 357 328 [[package]] 358 329 name = "cfg_aliases" ··· 362 333 363 334 [[package]] 364 335 name = "chrono" 365 - version = "0.4.41" 336 + version = "0.4.42" 366 337 source = "registry+https://github.com/rust-lang/crates.io-index" 367 - checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" 338 + checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 368 339 dependencies = [ 369 - "android-tzdata", 370 340 "iana-time-zone", 371 341 "num-traits", 372 - "windows-link", 342 + "windows-link 0.2.0", 373 343 ] 374 344 375 345 [[package]] ··· 383 353 384 354 [[package]] 385 355 name = "convert_case" 386 - version = "0.6.0" 356 + version = "0.8.0" 387 357 source = "registry+https://github.com/rust-lang/crates.io-index" 388 - checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" 358 + checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" 389 359 dependencies = [ 390 360 "unicode-segmentation", 391 361 ] ··· 398 368 399 369 [[package]] 400 370 name = "crc32fast" 401 - version = "1.4.2" 371 + version = "1.5.0" 402 372 source = "registry+https://github.com/rust-lang/crates.io-index" 403 - checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 373 + checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 404 374 dependencies = [ 405 375 "cfg-if", 406 376 ] ··· 432 402 433 403 [[package]] 434 404 name = "ctor" 435 - version = "0.2.9" 405 + version = "0.5.0" 436 406 source = "registry+https://github.com/rust-lang/crates.io-index" 437 - checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 407 + checksum = "67773048316103656a637612c4a62477603b777d91d9c62ff2290f9cde178fdb" 438 408 dependencies = [ 439 - "quote", 440 - "syn", 409 + "ctor-proc-macro", 410 + "dtor", 441 411 ] 442 412 443 413 [[package]] 414 + name = "ctor-proc-macro" 415 + version = "0.0.6" 416 + source = "registry+https://github.com/rust-lang/crates.io-index" 417 + checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" 418 + 419 + [[package]] 444 420 name = "data-encoding" 445 421 version = "2.9.0" 446 422 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 448 424 449 425 [[package]] 450 426 name = "deranged" 451 - version = "0.4.0" 427 + version = "0.5.3" 452 428 source = "registry+https://github.com/rust-lang/crates.io-index" 453 - checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 429 + checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" 454 430 dependencies = [ 455 431 "powerfmt", 456 432 "serde", ··· 483 459 source = "registry+https://github.com/rust-lang/crates.io-index" 484 460 checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 485 461 dependencies = [ 486 - "bitflags 2.9.1", 487 - "block2 0.6.1", 462 + "bitflags", 463 + "block2", 488 464 "libc", 489 - "objc2 0.6.2", 465 + "objc2", 490 466 ] 491 467 492 468 [[package]] ··· 525 501 checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 526 502 527 503 [[package]] 504 + name = "dtor" 505 + version = "0.1.0" 506 + source = "registry+https://github.com/rust-lang/crates.io-index" 507 + checksum = "e58a0764cddb55ab28955347b45be00ade43d4d6f3ba4bf3dc354e4ec9432934" 508 + dependencies = [ 509 + "dtor-proc-macro", 510 + ] 511 + 512 + [[package]] 513 + name = "dtor-proc-macro" 514 + version = "0.0.6" 515 + source = "registry+https://github.com/rust-lang/crates.io-index" 516 + checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" 517 + 518 + [[package]] 528 519 name = "either" 529 520 version = "1.15.0" 530 521 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 565 556 566 557 [[package]] 567 558 name = "errno" 568 - version = "0.3.12" 559 + version = "0.3.14" 569 560 source = "registry+https://github.com/rust-lang/crates.io-index" 570 - checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" 561 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 571 562 dependencies = [ 572 563 "libc", 573 - "windows-sys 0.59.0", 564 + "windows-sys 0.61.0", 574 565 ] 575 566 576 567 [[package]] ··· 596 587 597 588 [[package]] 598 589 name = "fast_image_resize" 599 - version = "5.1.4" 590 + version = "5.3.0" 600 591 source = "registry+https://github.com/rust-lang/crates.io-index" 601 - checksum = "d372ab3252d8f162d858d675a3d88a8c33ba24a6238837c50c8851911c7e89cd" 592 + checksum = "1bd1eda71e8af93f8b00e189404235d82f4de77ea4a0d182b44a7f03994d647c" 602 593 dependencies = [ 603 594 "bytemuck", 604 595 "cfg-if", 605 596 "document-features", 606 597 "image", 607 598 "num-traits", 608 - "thiserror", 599 + "thiserror 2.0.16", 609 600 ] 610 601 611 602 [[package]] ··· 654 645 ] 655 646 656 647 [[package]] 648 + name = "find-msvc-tools" 649 + version = "0.1.1" 650 + source = "registry+https://github.com/rust-lang/crates.io-index" 651 + checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" 652 + 653 + [[package]] 657 654 name = "flate2" 658 - version = "1.1.1" 655 + version = "1.1.2" 659 656 source = "registry+https://github.com/rust-lang/crates.io-index" 660 - checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" 657 + checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" 661 658 dependencies = [ 662 659 "crc32fast", 663 660 "miniz_oxide", ··· 665 662 666 663 [[package]] 667 664 name = "form_urlencoded" 668 - version = "1.2.1" 665 + version = "1.2.2" 669 666 source = "registry+https://github.com/rust-lang/crates.io-index" 670 - checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 667 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 671 668 dependencies = [ 672 669 "percent-encoding", 673 670 ] ··· 747 744 dependencies = [ 748 745 "cfg-if", 749 746 "libc", 750 - "wasi 0.11.0+wasi-snapshot-preview1", 747 + "wasi 0.11.1+wasi-snapshot-preview1", 751 748 ] 752 749 753 750 [[package]] ··· 759 756 "cfg-if", 760 757 "libc", 761 758 "r-efi", 762 - "wasi 0.14.2+wasi-0.2.4", 759 + "wasi 0.14.5+wasi-0.2.4", 763 760 ] 764 761 765 762 [[package]] ··· 770 767 771 768 [[package]] 772 769 name = "hashbrown" 773 - version = "0.15.3" 770 + version = "0.15.5" 774 771 source = "registry+https://github.com/rust-lang/crates.io-index" 775 - checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" 772 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 776 773 777 774 [[package]] 778 775 name = "hermit-abi" ··· 788 785 789 786 [[package]] 790 787 name = "iana-time-zone" 791 - version = "0.1.63" 788 + version = "0.1.64" 792 789 source = "registry+https://github.com/rust-lang/crates.io-index" 793 - checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" 790 + checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 794 791 dependencies = [ 795 792 "android_system_properties", 796 793 "core-foundation-sys", ··· 798 795 "js-sys", 799 796 "log", 800 797 "wasm-bindgen", 801 - "windows-core 0.61.2", 798 + "windows-core 0.62.0", 802 799 ] 803 800 804 801 [[package]] ··· 898 895 899 896 [[package]] 900 897 name = "idna" 901 - version = "1.0.3" 898 + version = "1.1.0" 902 899 source = "registry+https://github.com/rust-lang/crates.io-index" 903 - checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 900 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 904 901 dependencies = [ 905 902 "idna_adapter", 906 903 "smallvec", ··· 919 916 920 917 [[package]] 921 918 name = "image" 922 - version = "0.25.6" 919 + version = "0.25.8" 923 920 source = "registry+https://github.com/rust-lang/crates.io-index" 924 - checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" 921 + checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" 925 922 dependencies = [ 926 923 "bytemuck", 927 924 "byteorder-lite", 925 + "moxcms", 928 926 "num-traits", 929 927 "png", 930 928 "zune-core", ··· 933 931 934 932 [[package]] 935 933 name = "indexmap" 936 - version = "2.9.0" 934 + version = "2.11.1" 937 935 source = "registry+https://github.com/rust-lang/crates.io-index" 938 - checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" 936 + checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" 939 937 dependencies = [ 940 938 "equivalent", 941 939 "hashbrown", 942 940 ] 943 941 944 942 [[package]] 943 + name = "io-uring" 944 + version = "0.7.10" 945 + source = "registry+https://github.com/rust-lang/crates.io-index" 946 + checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" 947 + dependencies = [ 948 + "bitflags", 949 + "cfg-if", 950 + "libc", 951 + ] 952 + 953 + [[package]] 945 954 name = "itoa" 946 955 version = "1.0.15" 947 956 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 949 958 950 959 [[package]] 951 960 name = "js-sys" 952 - version = "0.3.77" 961 + version = "0.3.78" 953 962 source = "registry+https://github.com/rust-lang/crates.io-index" 954 - checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 963 + checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" 955 964 dependencies = [ 956 965 "once_cell", 957 966 "wasm-bindgen", ··· 965 974 966 975 [[package]] 967 976 name = "libc" 968 - version = "0.2.172" 977 + version = "0.2.175" 969 978 source = "registry+https://github.com/rust-lang/crates.io-index" 970 - checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" 979 + checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 971 980 972 981 [[package]] 973 982 name = "libloading" ··· 976 985 checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" 977 986 dependencies = [ 978 987 "cfg-if", 979 - "windows-targets 0.52.6", 988 + "windows-targets 0.53.3", 980 989 ] 981 990 982 991 [[package]] 983 992 name = "libredox" 984 - version = "0.1.3" 993 + version = "0.1.10" 985 994 source = "registry+https://github.com/rust-lang/crates.io-index" 986 - checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 995 + checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 987 996 dependencies = [ 988 - "bitflags 2.9.1", 997 + "bitflags", 989 998 "libc", 990 999 ] 991 1000 ··· 1006 1015 1007 1016 [[package]] 1008 1017 name = "linux-raw-sys" 1009 - version = "0.9.4" 1018 + version = "0.11.0" 1010 1019 source = "registry+https://github.com/rust-lang/crates.io-index" 1011 - checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 1020 + checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 1012 1021 1013 1022 [[package]] 1014 1023 name = "litemap" ··· 1018 1027 1019 1028 [[package]] 1020 1029 name = "litrs" 1021 - version = "0.4.1" 1030 + version = "0.4.2" 1022 1031 source = "registry+https://github.com/rust-lang/crates.io-index" 1023 - checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 1032 + checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" 1024 1033 1025 1034 [[package]] 1026 1035 name = "lofty" ··· 1050 1059 1051 1060 [[package]] 1052 1061 name = "log" 1053 - version = "0.4.27" 1062 + version = "0.4.28" 1054 1063 source = "registry+https://github.com/rust-lang/crates.io-index" 1055 - checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1064 + checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 1056 1065 1057 1066 [[package]] 1058 1067 name = "memchr" 1059 - version = "2.7.4" 1068 + version = "2.7.5" 1060 1069 source = "registry+https://github.com/rust-lang/crates.io-index" 1061 - checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1070 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 1062 1071 1063 1072 [[package]] 1064 1073 name = "memoffset" ··· 1071 1080 1072 1081 [[package]] 1073 1082 name = "miniz_oxide" 1074 - version = "0.8.8" 1083 + version = "0.8.9" 1075 1084 source = "registry+https://github.com/rust-lang/crates.io-index" 1076 - checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" 1085 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1077 1086 dependencies = [ 1078 1087 "adler2", 1079 1088 "simd-adler32", 1080 1089 ] 1081 1090 1082 1091 [[package]] 1092 + name = "mio" 1093 + version = "1.0.4" 1094 + source = "registry+https://github.com/rust-lang/crates.io-index" 1095 + checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 1096 + dependencies = [ 1097 + "libc", 1098 + "wasi 0.11.1+wasi-snapshot-preview1", 1099 + "windows-sys 0.59.0", 1100 + ] 1101 + 1102 + [[package]] 1103 + name = "moxcms" 1104 + version = "0.7.5" 1105 + source = "registry+https://github.com/rust-lang/crates.io-index" 1106 + checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" 1107 + dependencies = [ 1108 + "num-traits", 1109 + "pxfm", 1110 + ] 1111 + 1112 + [[package]] 1083 1113 name = "nanoid" 1084 1114 version = "0.4.0" 1085 1115 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1090 1120 1091 1121 [[package]] 1092 1122 name = "napi" 1093 - version = "2.16.17" 1123 + version = "3.3.0" 1094 1124 source = "registry+https://github.com/rust-lang/crates.io-index" 1095 - checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3" 1125 + checksum = "f1b74e3dce5230795bb4d2821b941706dee733c7308752507254b0497f39cad7" 1096 1126 dependencies = [ 1097 1127 "anyhow", 1098 - "bitflags 2.9.1", 1128 + "bitflags", 1099 1129 "ctor", 1100 - "napi-derive", 1130 + "napi-build", 1101 1131 "napi-sys", 1102 - "once_cell", 1132 + "nohash-hasher", 1133 + "rustc-hash", 1103 1134 "serde", 1104 1135 "serde_json", 1105 1136 "tokio", ··· 1107 1138 1108 1139 [[package]] 1109 1140 name = "napi-build" 1110 - version = "2.2.1" 1141 + version = "2.2.3" 1111 1142 source = "registry+https://github.com/rust-lang/crates.io-index" 1112 - checksum = "44e0e3177307063d3e7e55b7dd7b648cca9d7f46daa35422c0d98cc2bf48c2c1" 1143 + checksum = "dcae8ad5609d14afb3a3b91dee88c757016261b151e9dcecabf1b2a31a6cab14" 1113 1144 1114 1145 [[package]] 1115 1146 name = "napi-derive" 1116 - version = "2.16.13" 1147 + version = "3.2.5" 1117 1148 source = "registry+https://github.com/rust-lang/crates.io-index" 1118 - checksum = "7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c" 1149 + checksum = "7552d5a579b834614bbd496db5109f1b9f1c758f08224b0dee1e408333adf0d0" 1119 1150 dependencies = [ 1120 - "cfg-if", 1121 1151 "convert_case", 1152 + "ctor", 1122 1153 "napi-derive-backend", 1123 1154 "proc-macro2", 1124 1155 "quote", ··· 1127 1158 1128 1159 [[package]] 1129 1160 name = "napi-derive-backend" 1130 - version = "1.0.75" 1161 + version = "2.2.0" 1131 1162 source = "registry+https://github.com/rust-lang/crates.io-index" 1132 - checksum = "1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf" 1163 + checksum = "5f6a81ac7486b70f2532a289603340862c06eea5a1e650c1ffeda2ce1238516a" 1133 1164 dependencies = [ 1134 1165 "convert_case", 1135 - "once_cell", 1136 1166 "proc-macro2", 1137 1167 "quote", 1138 - "regex", 1139 1168 "semver", 1140 1169 "syn", 1141 1170 ] 1142 1171 1143 1172 [[package]] 1144 1173 name = "napi-sys" 1145 - version = "2.4.0" 1174 + version = "3.0.0" 1146 1175 source = "registry+https://github.com/rust-lang/crates.io-index" 1147 - checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3" 1176 + checksum = "3e4e7135a8f97aa0f1509cce21a8a1f9dcec1b50d8dee006b48a5adb69a9d64d" 1148 1177 dependencies = [ 1149 1178 "libloading", 1150 1179 ] ··· 1155 1184 source = "registry+https://github.com/rust-lang/crates.io-index" 1156 1185 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 1157 1186 dependencies = [ 1158 - "bitflags 2.9.1", 1187 + "bitflags", 1159 1188 "cfg-if", 1160 1189 "cfg_aliases", 1161 1190 "libc", 1162 1191 "memoffset", 1163 1192 ] 1193 + 1194 + [[package]] 1195 + name = "nohash-hasher" 1196 + version = "0.2.0" 1197 + source = "registry+https://github.com/rust-lang/crates.io-index" 1198 + checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" 1164 1199 1165 1200 [[package]] 1166 1201 name = "num-conv" ··· 1178 1213 ] 1179 1214 1180 1215 [[package]] 1181 - name = "objc-sys" 1182 - version = "0.3.5" 1183 - source = "registry+https://github.com/rust-lang/crates.io-index" 1184 - checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 1185 - 1186 - [[package]] 1187 - name = "objc2" 1188 - version = "0.5.2" 1189 - source = "registry+https://github.com/rust-lang/crates.io-index" 1190 - checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 1191 - dependencies = [ 1192 - "objc-sys", 1193 - "objc2-encode", 1194 - ] 1195 - 1196 - [[package]] 1197 1216 name = "objc2" 1198 1217 version = "0.6.2" 1199 1218 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1208 1227 source = "registry+https://github.com/rust-lang/crates.io-index" 1209 1228 checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" 1210 1229 dependencies = [ 1211 - "bitflags 2.9.1", 1212 - "block2 0.6.1", 1213 - "objc2 0.6.2", 1214 - "objc2-foundation 0.3.1", 1230 + "bitflags", 1231 + "block2", 1232 + "objc2", 1233 + "objc2-foundation", 1215 1234 ] 1216 1235 1217 1236 [[package]] ··· 1220 1239 source = "registry+https://github.com/rust-lang/crates.io-index" 1221 1240 checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" 1222 1241 dependencies = [ 1223 - "bitflags 2.9.1", 1242 + "bitflags", 1224 1243 "dispatch2", 1225 - "objc2 0.6.2", 1244 + "objc2", 1226 1245 ] 1227 1246 1228 1247 [[package]] ··· 1233 1252 1234 1253 [[package]] 1235 1254 name = "objc2-foundation" 1236 - version = "0.2.2" 1237 - source = "registry+https://github.com/rust-lang/crates.io-index" 1238 - checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 1239 - dependencies = [ 1240 - "bitflags 2.9.1", 1241 - "block2 0.5.1", 1242 - "libc", 1243 - "objc2 0.5.2", 1244 - ] 1245 - 1246 - [[package]] 1247 - name = "objc2-foundation" 1248 1255 version = "0.3.1" 1249 1256 source = "registry+https://github.com/rust-lang/crates.io-index" 1250 1257 checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" 1251 1258 dependencies = [ 1252 - "bitflags 2.9.1", 1253 - "objc2 0.6.2", 1259 + "bitflags", 1260 + "objc2", 1254 1261 "objc2-core-foundation", 1255 1262 ] 1256 1263 ··· 1302 1309 1303 1310 [[package]] 1304 1311 name = "percent-encoding" 1305 - version = "2.3.1" 1312 + version = "2.3.2" 1306 1313 source = "registry+https://github.com/rust-lang/crates.io-index" 1307 - checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1314 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 1308 1315 1309 1316 [[package]] 1310 1317 name = "pin-project-lite" ··· 1337 1344 1338 1345 [[package]] 1339 1346 name = "plist" 1340 - version = "1.7.1" 1347 + version = "1.7.4" 1341 1348 source = "registry+https://github.com/rust-lang/crates.io-index" 1342 - checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" 1349 + checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" 1343 1350 dependencies = [ 1344 1351 "base64", 1345 1352 "indexmap", 1346 - "quick-xml 0.32.0", 1353 + "quick-xml 0.38.3", 1347 1354 "serde", 1348 1355 "time", 1349 1356 ] 1350 1357 1351 1358 [[package]] 1352 1359 name = "png" 1353 - version = "0.17.16" 1360 + version = "0.18.0" 1354 1361 source = "registry+https://github.com/rust-lang/crates.io-index" 1355 - checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" 1362 + checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" 1356 1363 dependencies = [ 1357 - "bitflags 1.3.2", 1364 + "bitflags", 1358 1365 "crc32fast", 1359 1366 "fdeflate", 1360 1367 "flate2", ··· 1371 1378 "concurrent-queue", 1372 1379 "hermit-abi", 1373 1380 "pin-project-lite", 1374 - "rustix 1.0.7", 1381 + "rustix 1.1.2", 1375 1382 "windows-sys 0.60.2", 1376 1383 ] 1377 1384 ··· 1383 1390 1384 1391 [[package]] 1385 1392 name = "potential_utf" 1386 - version = "0.1.2" 1393 + version = "0.1.3" 1387 1394 source = "registry+https://github.com/rust-lang/crates.io-index" 1388 - checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 1395 + checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 1389 1396 dependencies = [ 1390 1397 "zerovec", 1391 1398 ] ··· 1416 1423 1417 1424 [[package]] 1418 1425 name = "proc-macro2" 1419 - version = "1.0.95" 1426 + version = "1.0.101" 1420 1427 source = "registry+https://github.com/rust-lang/crates.io-index" 1421 - checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 1428 + checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 1422 1429 dependencies = [ 1423 1430 "unicode-ident", 1424 1431 ] 1425 1432 1426 1433 [[package]] 1434 + name = "pxfm" 1435 + version = "0.1.23" 1436 + source = "registry+https://github.com/rust-lang/crates.io-index" 1437 + checksum = "f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84" 1438 + dependencies = [ 1439 + "num-traits", 1440 + ] 1441 + 1442 + [[package]] 1427 1443 name = "quick-xml" 1428 - version = "0.32.0" 1444 + version = "0.37.5" 1429 1445 source = "registry+https://github.com/rust-lang/crates.io-index" 1430 - checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" 1446 + checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" 1431 1447 dependencies = [ 1432 1448 "memchr", 1433 1449 ] 1434 1450 1435 1451 [[package]] 1436 1452 name = "quick-xml" 1437 - version = "0.37.5" 1453 + version = "0.38.3" 1438 1454 source = "registry+https://github.com/rust-lang/crates.io-index" 1439 - checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" 1455 + checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" 1440 1456 dependencies = [ 1441 1457 "memchr", 1442 1458 ] ··· 1452 1468 1453 1469 [[package]] 1454 1470 name = "r-efi" 1455 - version = "5.2.0" 1471 + version = "5.3.0" 1456 1472 source = "registry+https://github.com/rust-lang/crates.io-index" 1457 - checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 1473 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1458 1474 1459 1475 [[package]] 1460 1476 name = "rand" ··· 1523 1539 1524 1540 [[package]] 1525 1541 name = "rayon" 1526 - version = "1.10.0" 1542 + version = "1.11.0" 1527 1543 source = "registry+https://github.com/rust-lang/crates.io-index" 1528 - checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1544 + checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 1529 1545 dependencies = [ 1530 1546 "either", 1531 1547 "rayon-core", ··· 1533 1549 1534 1550 [[package]] 1535 1551 name = "rayon-core" 1536 - version = "1.12.1" 1552 + version = "1.13.0" 1537 1553 source = "registry+https://github.com/rust-lang/crates.io-index" 1538 - checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1554 + checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 1539 1555 dependencies = [ 1540 1556 "crossbeam-deque", 1541 1557 "crossbeam-utils", ··· 1543 1559 1544 1560 [[package]] 1545 1561 name = "redb" 1546 - version = "2.6.0" 1562 + version = "2.6.3" 1547 1563 source = "registry+https://github.com/rust-lang/crates.io-index" 1548 - checksum = "cef6a6d3a65ea334d6cdfb31fa2525c20184b7aa7bd1ad1e2e37502610d4609f" 1564 + checksum = "8eca1e9d98d5a7e9002d0013e18d5a9b000aee942eb134883a82f06ebffb6c01" 1549 1565 dependencies = [ 1550 1566 "libc", 1551 1567 ] ··· 1558 1574 dependencies = [ 1559 1575 "getrandom 0.2.16", 1560 1576 "libredox", 1561 - "thiserror", 1562 - ] 1563 - 1564 - [[package]] 1565 - name = "regex" 1566 - version = "1.11.1" 1567 - source = "registry+https://github.com/rust-lang/crates.io-index" 1568 - checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1569 - dependencies = [ 1570 - "aho-corasick", 1571 - "memchr", 1572 - "regex-automata", 1573 - "regex-syntax", 1574 - ] 1575 - 1576 - [[package]] 1577 - name = "regex-automata" 1578 - version = "0.4.9" 1579 - source = "registry+https://github.com/rust-lang/crates.io-index" 1580 - checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1581 - dependencies = [ 1582 - "aho-corasick", 1583 - "memchr", 1584 - "regex-syntax", 1577 + "thiserror 1.0.69", 1585 1578 ] 1586 1579 1587 1580 [[package]] 1588 - name = "regex-syntax" 1589 - version = "0.8.5" 1590 - source = "registry+https://github.com/rust-lang/crates.io-index" 1591 - checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1592 - 1593 - [[package]] 1594 1581 name = "rfd" 1595 1582 version = "0.15.4" 1596 1583 source = "registry+https://github.com/rust-lang/crates.io-index" 1597 1584 checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed" 1598 1585 dependencies = [ 1599 1586 "ashpd", 1600 - "block2 0.6.1", 1587 + "block2", 1601 1588 "dispatch2", 1602 1589 "js-sys", 1603 1590 "log", 1604 - "objc2 0.6.2", 1591 + "objc2", 1605 1592 "objc2-app-kit", 1606 1593 "objc2-core-foundation", 1607 - "objc2-foundation 0.3.1", 1594 + "objc2-foundation", 1608 1595 "pollster", 1609 1596 "raw-window-handle", 1610 1597 "urlencoding", ··· 1616 1603 1617 1604 [[package]] 1618 1605 name = "rustc-demangle" 1619 - version = "0.1.24" 1606 + version = "0.1.26" 1620 1607 source = "registry+https://github.com/rust-lang/crates.io-index" 1621 - checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1608 + checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 1609 + 1610 + [[package]] 1611 + name = "rustc-hash" 1612 + version = "2.1.1" 1613 + source = "registry+https://github.com/rust-lang/crates.io-index" 1614 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1622 1615 1623 1616 [[package]] 1624 1617 name = "rustix" ··· 1626 1619 source = "registry+https://github.com/rust-lang/crates.io-index" 1627 1620 checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 1628 1621 dependencies = [ 1629 - "bitflags 2.9.1", 1622 + "bitflags", 1630 1623 "errno", 1631 1624 "libc", 1632 1625 "linux-raw-sys 0.4.15", ··· 1635 1628 1636 1629 [[package]] 1637 1630 name = "rustix" 1638 - version = "1.0.7" 1631 + version = "1.1.2" 1639 1632 source = "registry+https://github.com/rust-lang/crates.io-index" 1640 - checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" 1633 + checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 1641 1634 dependencies = [ 1642 - "bitflags 2.9.1", 1635 + "bitflags", 1643 1636 "errno", 1644 1637 "libc", 1645 - "linux-raw-sys 0.9.4", 1646 - "windows-sys 0.59.0", 1638 + "linux-raw-sys 0.11.0", 1639 + "windows-sys 0.61.0", 1647 1640 ] 1648 1641 1649 1642 [[package]] 1650 1643 name = "rustversion" 1651 - version = "1.0.21" 1644 + version = "1.0.22" 1652 1645 source = "registry+https://github.com/rust-lang/crates.io-index" 1653 - checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" 1646 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1654 1647 1655 1648 [[package]] 1656 1649 name = "ryu" ··· 1678 1671 1679 1672 [[package]] 1680 1673 name = "serde" 1681 - version = "1.0.219" 1674 + version = "1.0.221" 1682 1675 source = "registry+https://github.com/rust-lang/crates.io-index" 1683 - checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1676 + checksum = "341877e04a22458705eb4e131a1508483c877dca2792b3781d4e5d8a6019ec43" 1677 + dependencies = [ 1678 + "serde_core", 1679 + "serde_derive", 1680 + ] 1681 + 1682 + [[package]] 1683 + name = "serde_core" 1684 + version = "1.0.221" 1685 + source = "registry+https://github.com/rust-lang/crates.io-index" 1686 + checksum = "0c459bc0a14c840cb403fc14b148620de1e0778c96ecd6e0c8c3cacb6d8d00fe" 1684 1687 dependencies = [ 1685 1688 "serde_derive", 1686 1689 ] 1687 1690 1688 1691 [[package]] 1689 1692 name = "serde_derive" 1690 - version = "1.0.219" 1693 + version = "1.0.221" 1691 1694 source = "registry+https://github.com/rust-lang/crates.io-index" 1692 - checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1695 + checksum = "d6185cf75117e20e62b1ff867b9518577271e58abe0037c40bb4794969355ab0" 1693 1696 dependencies = [ 1694 1697 "proc-macro2", 1695 1698 "quote", ··· 1698 1701 1699 1702 [[package]] 1700 1703 name = "serde_json" 1701 - version = "1.0.140" 1704 + version = "1.0.144" 1702 1705 source = "registry+https://github.com/rust-lang/crates.io-index" 1703 - checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 1706 + checksum = "56177480b00303e689183f110b4e727bb4211d692c62d4fcd16d02be93077d40" 1704 1707 dependencies = [ 1705 1708 "itoa", 1706 1709 "memchr", 1707 1710 "ryu", 1708 - "serde", 1711 + "serde_core", 1709 1712 ] 1710 1713 1711 1714 [[package]] ··· 1748 1751 1749 1752 [[package]] 1750 1753 name = "smallvec" 1751 - version = "1.15.0" 1754 + version = "1.15.1" 1752 1755 source = "registry+https://github.com/rust-lang/crates.io-index" 1753 - checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" 1756 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1754 1757 1755 1758 [[package]] 1756 1759 name = "stable_deref_trait" ··· 1766 1769 1767 1770 [[package]] 1768 1771 name = "syn" 1769 - version = "2.0.101" 1772 + version = "2.0.106" 1770 1773 source = "registry+https://github.com/rust-lang/crates.io-index" 1771 - checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" 1774 + checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 1772 1775 dependencies = [ 1773 1776 "proc-macro2", 1774 1777 "quote", ··· 1788 1791 1789 1792 [[package]] 1790 1793 name = "tempfile" 1791 - version = "3.20.0" 1794 + version = "3.22.0" 1792 1795 source = "registry+https://github.com/rust-lang/crates.io-index" 1793 - checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" 1796 + checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" 1794 1797 dependencies = [ 1795 1798 "fastrand", 1796 1799 "getrandom 0.3.3", 1797 1800 "once_cell", 1798 - "rustix 1.0.7", 1799 - "windows-sys 0.59.0", 1801 + "rustix 1.1.2", 1802 + "windows-sys 0.61.0", 1800 1803 ] 1801 1804 1802 1805 [[package]] ··· 1805 1808 source = "registry+https://github.com/rust-lang/crates.io-index" 1806 1809 checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1807 1810 dependencies = [ 1808 - "thiserror-impl", 1811 + "thiserror-impl 1.0.69", 1812 + ] 1813 + 1814 + [[package]] 1815 + name = "thiserror" 1816 + version = "2.0.16" 1817 + source = "registry+https://github.com/rust-lang/crates.io-index" 1818 + checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" 1819 + dependencies = [ 1820 + "thiserror-impl 2.0.16", 1809 1821 ] 1810 1822 1811 1823 [[package]] ··· 1820 1832 ] 1821 1833 1822 1834 [[package]] 1835 + name = "thiserror-impl" 1836 + version = "2.0.16" 1837 + source = "registry+https://github.com/rust-lang/crates.io-index" 1838 + checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" 1839 + dependencies = [ 1840 + "proc-macro2", 1841 + "quote", 1842 + "syn", 1843 + ] 1844 + 1845 + [[package]] 1823 1846 name = "time" 1824 - version = "0.3.41" 1847 + version = "0.3.43" 1825 1848 source = "registry+https://github.com/rust-lang/crates.io-index" 1826 - checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 1849 + checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" 1827 1850 dependencies = [ 1828 1851 "deranged", 1829 - "itoa", 1830 1852 "num-conv", 1831 1853 "powerfmt", 1832 1854 "serde", ··· 1836 1858 1837 1859 [[package]] 1838 1860 name = "time-core" 1839 - version = "0.1.4" 1861 + version = "0.1.6" 1840 1862 source = "registry+https://github.com/rust-lang/crates.io-index" 1841 - checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 1863 + checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 1842 1864 1843 1865 [[package]] 1844 1866 name = "time-macros" 1845 - version = "0.2.22" 1867 + version = "0.2.24" 1846 1868 source = "registry+https://github.com/rust-lang/crates.io-index" 1847 - checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" 1869 + checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" 1848 1870 dependencies = [ 1849 1871 "num-conv", 1850 1872 "time-core", ··· 1862 1884 1863 1885 [[package]] 1864 1886 name = "tinyvec" 1865 - version = "1.9.0" 1887 + version = "1.10.0" 1866 1888 source = "registry+https://github.com/rust-lang/crates.io-index" 1867 - checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 1889 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 1868 1890 dependencies = [ 1869 1891 "tinyvec_macros", 1870 1892 ] ··· 1877 1899 1878 1900 [[package]] 1879 1901 name = "tokio" 1880 - version = "1.45.1" 1902 + version = "1.47.1" 1881 1903 source = "registry+https://github.com/rust-lang/crates.io-index" 1882 - checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" 1904 + checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 1883 1905 dependencies = [ 1884 1906 "backtrace", 1907 + "io-uring", 1908 + "libc", 1909 + "mio", 1885 1910 "pin-project-lite", 1911 + "slab", 1886 1912 "tokio-macros", 1887 1913 ] 1888 1914 ··· 1947 1973 1948 1974 [[package]] 1949 1975 name = "trash" 1950 - version = "5.2.2" 1976 + version = "5.2.3" 1951 1977 source = "registry+https://github.com/rust-lang/crates.io-index" 1952 - checksum = "22746c6b0c6d85d60a8f0d858f7057dfdf11297c132679f452ec908fba42b871" 1978 + checksum = "65a334451012017a39758aa85a30827c13ac684245bf6b08249483c063f64ff3" 1953 1979 dependencies = [ 1954 1980 "chrono", 1955 1981 "libc", 1956 1982 "log", 1957 - "objc2 0.5.2", 1958 - "objc2-foundation 0.2.2", 1983 + "objc2", 1984 + "objc2-foundation", 1959 1985 "once_cell", 1960 1986 "percent-encoding", 1961 1987 "scopeguard", ··· 1976 2002 1977 2003 [[package]] 1978 2004 name = "unicode-ident" 1979 - version = "1.0.18" 2005 + version = "1.0.19" 1980 2006 source = "registry+https://github.com/rust-lang/crates.io-index" 1981 - checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 2007 + checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" 1982 2008 1983 2009 [[package]] 1984 2010 name = "unicode-normalization" ··· 1997 2023 1998 2024 [[package]] 1999 2025 name = "url" 2000 - version = "2.5.4" 2026 + version = "2.5.7" 2001 2027 source = "registry+https://github.com/rust-lang/crates.io-index" 2002 - checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2028 + checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 2003 2029 dependencies = [ 2004 2030 "form_urlencoded", 2005 2031 "idna", ··· 2021 2047 2022 2048 [[package]] 2023 2049 name = "wasi" 2024 - version = "0.11.0+wasi-snapshot-preview1" 2050 + version = "0.11.1+wasi-snapshot-preview1" 2025 2051 source = "registry+https://github.com/rust-lang/crates.io-index" 2026 - checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2052 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 2027 2053 2028 2054 [[package]] 2029 2055 name = "wasi" 2030 - version = "0.14.2+wasi-0.2.4" 2056 + version = "0.14.5+wasi-0.2.4" 2057 + source = "registry+https://github.com/rust-lang/crates.io-index" 2058 + checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" 2059 + dependencies = [ 2060 + "wasip2", 2061 + ] 2062 + 2063 + [[package]] 2064 + name = "wasip2" 2065 + version = "1.0.0+wasi-0.2.4" 2031 2066 source = "registry+https://github.com/rust-lang/crates.io-index" 2032 - checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2067 + checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" 2033 2068 dependencies = [ 2034 - "wit-bindgen-rt", 2069 + "wit-bindgen", 2035 2070 ] 2036 2071 2037 2072 [[package]] 2038 2073 name = "wasm-bindgen" 2039 - version = "0.2.100" 2074 + version = "0.2.101" 2040 2075 source = "registry+https://github.com/rust-lang/crates.io-index" 2041 - checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 2076 + checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" 2042 2077 dependencies = [ 2043 2078 "cfg-if", 2044 2079 "once_cell", 2045 2080 "rustversion", 2046 2081 "wasm-bindgen-macro", 2082 + "wasm-bindgen-shared", 2047 2083 ] 2048 2084 2049 2085 [[package]] 2050 2086 name = "wasm-bindgen-backend" 2051 - version = "0.2.100" 2087 + version = "0.2.101" 2052 2088 source = "registry+https://github.com/rust-lang/crates.io-index" 2053 - checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 2089 + checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" 2054 2090 dependencies = [ 2055 2091 "bumpalo", 2056 2092 "log", ··· 2062 2098 2063 2099 [[package]] 2064 2100 name = "wasm-bindgen-futures" 2065 - version = "0.4.50" 2101 + version = "0.4.51" 2066 2102 source = "registry+https://github.com/rust-lang/crates.io-index" 2067 - checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 2103 + checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" 2068 2104 dependencies = [ 2069 2105 "cfg-if", 2070 2106 "js-sys", ··· 2075 2111 2076 2112 [[package]] 2077 2113 name = "wasm-bindgen-macro" 2078 - version = "0.2.100" 2114 + version = "0.2.101" 2079 2115 source = "registry+https://github.com/rust-lang/crates.io-index" 2080 - checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 2116 + checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" 2081 2117 dependencies = [ 2082 2118 "quote", 2083 2119 "wasm-bindgen-macro-support", ··· 2085 2121 2086 2122 [[package]] 2087 2123 name = "wasm-bindgen-macro-support" 2088 - version = "0.2.100" 2124 + version = "0.2.101" 2089 2125 source = "registry+https://github.com/rust-lang/crates.io-index" 2090 - checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 2126 + checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" 2091 2127 dependencies = [ 2092 2128 "proc-macro2", 2093 2129 "quote", ··· 2098 2134 2099 2135 [[package]] 2100 2136 name = "wasm-bindgen-shared" 2101 - version = "0.2.100" 2137 + version = "0.2.101" 2102 2138 source = "registry+https://github.com/rust-lang/crates.io-index" 2103 - checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 2139 + checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" 2104 2140 dependencies = [ 2105 2141 "unicode-ident", 2106 2142 ] ··· 2113 2149 dependencies = [ 2114 2150 "cc", 2115 2151 "downcast-rs", 2116 - "rustix 1.0.7", 2152 + "rustix 1.1.2", 2117 2153 "scoped-tls", 2118 2154 "smallvec", 2119 2155 "wayland-sys", ··· 2125 2161 source = "registry+https://github.com/rust-lang/crates.io-index" 2126 2162 checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" 2127 2163 dependencies = [ 2128 - "bitflags 2.9.1", 2129 - "rustix 1.0.7", 2164 + "bitflags", 2165 + "rustix 1.1.2", 2130 2166 "wayland-backend", 2131 2167 "wayland-scanner", 2132 2168 ] ··· 2137 2173 source = "registry+https://github.com/rust-lang/crates.io-index" 2138 2174 checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" 2139 2175 dependencies = [ 2140 - "bitflags 2.9.1", 2176 + "bitflags", 2141 2177 "wayland-backend", 2142 2178 "wayland-client", 2143 2179 "wayland-scanner", ··· 2167 2203 2168 2204 [[package]] 2169 2205 name = "web-sys" 2170 - version = "0.3.77" 2206 + version = "0.3.78" 2171 2207 source = "registry+https://github.com/rust-lang/crates.io-index" 2172 - checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 2208 + checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" 2173 2209 dependencies = [ 2174 2210 "js-sys", 2175 2211 "wasm-bindgen", ··· 2221 2257 2222 2258 [[package]] 2223 2259 name = "windows-core" 2224 - version = "0.61.2" 2260 + version = "0.62.0" 2225 2261 source = "registry+https://github.com/rust-lang/crates.io-index" 2226 - checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 2262 + checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" 2227 2263 dependencies = [ 2228 2264 "windows-implement 0.60.0", 2229 2265 "windows-interface 0.59.1", 2230 - "windows-link", 2231 - "windows-result 0.3.4", 2266 + "windows-link 0.2.0", 2267 + "windows-result 0.4.0", 2232 2268 "windows-strings", 2233 2269 ] 2234 2270 ··· 2278 2314 2279 2315 [[package]] 2280 2316 name = "windows-link" 2281 - version = "0.1.1" 2317 + version = "0.1.3" 2282 2318 source = "registry+https://github.com/rust-lang/crates.io-index" 2283 - checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" 2319 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 2320 + 2321 + [[package]] 2322 + name = "windows-link" 2323 + version = "0.2.0" 2324 + source = "registry+https://github.com/rust-lang/crates.io-index" 2325 + checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" 2284 2326 2285 2327 [[package]] 2286 2328 name = "windows-result" ··· 2293 2335 2294 2336 [[package]] 2295 2337 name = "windows-result" 2296 - version = "0.3.4" 2338 + version = "0.4.0" 2297 2339 source = "registry+https://github.com/rust-lang/crates.io-index" 2298 - checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 2340 + checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" 2299 2341 dependencies = [ 2300 - "windows-link", 2342 + "windows-link 0.2.0", 2301 2343 ] 2302 2344 2303 2345 [[package]] 2304 2346 name = "windows-strings" 2305 - version = "0.4.2" 2347 + version = "0.5.0" 2306 2348 source = "registry+https://github.com/rust-lang/crates.io-index" 2307 - checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 2349 + checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" 2308 2350 dependencies = [ 2309 - "windows-link", 2351 + "windows-link 0.2.0", 2310 2352 ] 2311 2353 2312 2354 [[package]] ··· 2333 2375 source = "registry+https://github.com/rust-lang/crates.io-index" 2334 2376 checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 2335 2377 dependencies = [ 2336 - "windows-targets 0.53.2", 2378 + "windows-targets 0.53.3", 2379 + ] 2380 + 2381 + [[package]] 2382 + name = "windows-sys" 2383 + version = "0.61.0" 2384 + source = "registry+https://github.com/rust-lang/crates.io-index" 2385 + checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" 2386 + dependencies = [ 2387 + "windows-link 0.2.0", 2337 2388 ] 2338 2389 2339 2390 [[package]] ··· 2354 2405 2355 2406 [[package]] 2356 2407 name = "windows-targets" 2357 - version = "0.53.2" 2408 + version = "0.53.3" 2358 2409 source = "registry+https://github.com/rust-lang/crates.io-index" 2359 - checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" 2410 + checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" 2360 2411 dependencies = [ 2412 + "windows-link 0.1.3", 2361 2413 "windows_aarch64_gnullvm 0.53.0", 2362 2414 "windows_aarch64_msvc 0.53.0", 2363 2415 "windows_i686_gnu 0.53.0", ··· 2474 2526 ] 2475 2527 2476 2528 [[package]] 2477 - name = "wit-bindgen-rt" 2478 - version = "0.39.0" 2529 + name = "wit-bindgen" 2530 + version = "0.45.1" 2479 2531 source = "registry+https://github.com/rust-lang/crates.io-index" 2480 - checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 2481 - dependencies = [ 2482 - "bitflags 2.9.1", 2483 - ] 2532 + checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" 2484 2533 2485 2534 [[package]] 2486 2535 name = "writeable" ··· 2574 2623 2575 2624 [[package]] 2576 2625 name = "zerocopy" 2577 - version = "0.8.25" 2626 + version = "0.8.27" 2578 2627 source = "registry+https://github.com/rust-lang/crates.io-index" 2579 - checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" 2628 + checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 2580 2629 dependencies = [ 2581 2630 "zerocopy-derive", 2582 2631 ] 2583 2632 2584 2633 [[package]] 2585 2634 name = "zerocopy-derive" 2586 - version = "0.8.25" 2635 + version = "0.8.27" 2587 2636 source = "registry+https://github.com/rust-lang/crates.io-index" 2588 - checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" 2637 + checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 2589 2638 dependencies = [ 2590 2639 "proc-macro2", 2591 2640 "quote", ··· 2626 2675 2627 2676 [[package]] 2628 2677 name = "zerovec" 2629 - version = "0.11.2" 2678 + version = "0.11.4" 2630 2679 source = "registry+https://github.com/rust-lang/crates.io-index" 2631 - checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" 2680 + checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 2632 2681 dependencies = [ 2633 2682 "yoke", 2634 2683 "zerofrom", ··· 2654 2703 2655 2704 [[package]] 2656 2705 name = "zune-jpeg" 2657 - version = "0.4.16" 2706 + version = "0.4.21" 2658 2707 source = "registry+https://github.com/rust-lang/crates.io-index" 2659 - checksum = "3e4a518c0ea2576f4da876349d7f67a7be489297cd77c2cf9e04c2e05fcd3974" 2708 + checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" 2660 2709 dependencies = [ 2661 2710 "zune-core", 2662 2711 ]
+3 -3
Cargo.toml
··· 10 10 crate-type = ["cdylib"] 11 11 12 12 [build-dependencies] 13 - napi-build = "2.0" 13 + napi-build = "2.2" 14 14 15 15 [dependencies] 16 - napi = { version = "2.13", features = [ 16 + napi = { version = "3.3", features = [ 17 17 "serde-json", 18 18 "napi6", 19 19 "tokio_rt", 20 20 "async", 21 21 "anyhow", 22 22 ] } 23 - napi-derive = "2.15" 23 + napi-derive = "3.2" 24 24 serde = { version = "1.0", features = ["derive"] } 25 25 lofty = "0.22" 26 26 serde_json = "1.0"
+156 -108
ferrum-addon/addon.d.ts
··· 1 - /* tslint:disable */ 1 + /* auto-generated by NAPI-RS */ 2 2 /* eslint-disable */ 3 + export declare class ItunesImport { 4 + static new(): ItunesImport 5 + start(path: string, tracksDir: string): Promise<ImportStatus> 6 + finish(): void 7 + } 8 + 9 + export declare function add_play(trackId: string): void 3 10 4 - /* auto-generated by NAPI-RS */ 11 + export declare function add_play_time(id: TrackID, start: MsSinceUnixEpoch, durMs: number): void 12 + 13 + export declare function add_skip(trackId: string): void 14 + 15 + export declare function add_tracks_to_playlist(playlistId: string, trackIds: Array<string>): void 16 + 17 + export interface CountObject { 18 + count: number 19 + fromDate: MsSinceUnixEpoch 20 + toDate: MsSinceUnixEpoch 21 + } 22 + 23 + /** Returns the deleted track lists, including folder children */ 24 + export declare function delete_track_list(id: string): void 25 + 26 + export declare function delete_tracks_with_item_ids(itemIds: Array<ItemId>): void 27 + 28 + export interface Folder { 29 + id: TrackListID 30 + name: string 31 + description?: string 32 + liked: boolean 33 + disliked: boolean 34 + /** For example "itunes" */ 35 + importedFrom?: string 36 + /** For example iTunes Persistent ID */ 37 + originalId?: string 38 + dateImported?: MsSinceUnixEpoch 39 + dateCreated?: MsSinceUnixEpoch 40 + children: Array<TrackListID> 41 + } 42 + 43 + export declare function get_artists(): Array<string> 44 + 45 + export declare function get_default_sort_desc(field: string): boolean 46 + 47 + export declare function get_genres(): Array<string> 48 + 49 + export declare function get_image(index: number): JsImage | null 50 + 51 + export declare function get_paths(): PathsJs 52 + 53 + export declare function get_track(id: string): Track 54 + 55 + export declare function get_track_by_item_id(itemId: ItemId): KeyedTrack 56 + 57 + export declare function get_track_ids(itemIds: Array<ItemId>): Array<TrackID> 58 + 59 + export declare function get_track_list(id: string): TrackList 60 + 61 + export declare function get_track_lists_details(): Record<string, TrackListDetails> 62 + 63 + export declare function get_tracks_page(options: TracksPageOptions): TracksPage 64 + 65 + export declare function import_file(path: string, now: MsSinceUnixEpoch): void 66 + 67 + export interface ImportStatus { 68 + errors: Array<string> 69 + tracksCount: number 70 + playlistsCount: number 71 + } 72 + 73 + export interface JsImage { 74 + index: number 75 + totalImages: number 76 + mimeType: string 77 + data: Buffer 78 + } 79 + 80 + export interface KeyedTrack { 81 + id: TrackID 82 + track: Track 83 + } 5 84 6 85 export declare function load_data(isDev: boolean, localDataPath?: string | undefined | null, libraryPath?: string | undefined | null): void 86 + 87 + export declare function load_tags(trackId: string): void 88 + 89 + export declare function load_view_options(): ViewOptions 90 + 91 + export declare function move_playlist(id: string, fromId: string, toId: string, toIndex: number): void 92 + 93 + export declare function move_tracks(playlistId: string, itemIds: Array<ItemId>, toIndex: number): void 94 + 95 + export declare function new_playlist(name: string, description: string, isFolder: boolean, parentId: string): void 96 + 7 97 export interface PathsJs { 8 98 libraryDir: string 9 99 tracksDir: string ··· 12 102 localDataDir: string 13 103 pathSeparator: string 14 104 } 15 - export declare function get_paths(): PathsJs 105 + 106 + export interface Playlist { 107 + id: TrackListID 108 + name: string 109 + description?: string 110 + liked: boolean 111 + disliked: boolean 112 + importedFrom?: string 113 + originalId?: string 114 + dateImported?: MsSinceUnixEpoch 115 + dateCreated?: MsSinceUnixEpoch 116 + tracks: Array<ItemId> 117 + } 118 + 119 + export declare function playlist_filter_duplicates(playlistId: TrackID, ids: Array<string>): Array<TrackID> 120 + 121 + export declare function read_cover_async(trackId: string, index: number): Promise<ArrayBuffer> 122 + 123 + /** Returns `None` if the file does not have an image */ 124 + export declare function read_small_cover_async(path: string, index: number, cacheDbPath: string): Promise<Buffer | null> 125 + 126 + export declare function remove_from_playlist(playlistId: TrackID, itemIds: Array<ItemId>): void 127 + 128 + export declare function remove_image(index: number): void 129 + 16 130 export declare function save(): void 17 - export interface ImportStatus { 18 - errors: Array<string> 19 - tracksCount: number 20 - playlistsCount: number 131 + 132 + export declare function save_view_options(viewOptions: ViewOptions): void 133 + 134 + export declare function set_image(index: number, pathStr: string): void 135 + 136 + export declare function set_image_data(index: number, bytes: Uint8Array): void 137 + 138 + export interface Special { 139 + id: TrackListID 140 + name: SpecialTrackListName 141 + dateCreated: MsSinceUnixEpoch 142 + children: Array<TrackListID> 21 143 } 22 - export declare function get_default_sort_desc(field: string): boolean 23 - export declare function get_genres(): Array<string> 24 - export declare function get_artists(): Array<string> 144 + 145 + export declare const enum SpecialTrackListName { 146 + Root = 0 147 + } 148 + 25 149 export interface Track { 26 150 size: number 27 151 duration: number ··· 67 191 /** -100 to 100 */ 68 192 volume?: number 69 193 } 70 - export interface CountObject { 71 - count: number 72 - fromDate: MsSinceUnixEpoch 73 - toDate: MsSinceUnixEpoch 74 - } 75 - export interface Playlist { 76 - id: TrackListID 77 - name: string 78 - description?: string 79 - liked: boolean 80 - disliked: boolean 81 - importedFrom?: string 82 - originalId?: string 83 - dateImported?: MsSinceUnixEpoch 84 - dateCreated?: MsSinceUnixEpoch 85 - tracks: Array<ItemId> 86 - } 87 - export interface Folder { 88 - id: TrackListID 89 - name: string 90 - description?: string 91 - liked: boolean 92 - disliked: boolean 93 - /** For example "itunes" */ 94 - importedFrom?: string 95 - /** For example iTunes Persistent ID */ 96 - originalId?: string 97 - dateImported?: MsSinceUnixEpoch 98 - dateCreated?: MsSinceUnixEpoch 99 - children: Array<TrackListID> 100 - } 101 - export interface Special { 102 - id: TrackListID 103 - name: SpecialTrackListName 104 - dateCreated: MsSinceUnixEpoch 105 - children: Array<TrackListID> 106 - } 107 - export const enum SpecialTrackListName { 108 - Root = 0 109 - } 110 - export interface TracksPageOptions { 111 - playlistId: string 112 - sortKey: string 113 - sortDesc: boolean 114 - filterQuery: string 115 - groupAlbumTracks: boolean 116 - } 117 - export interface TracksPage { 118 - playlistKind: string 119 - playlistName: string 120 - playlistDescription?: string 121 - playlistLength: number 122 - itemIds: Array<ItemId> 123 - } 124 - export declare function get_tracks_page(options: TracksPageOptions): TracksPage 194 + 195 + export declare function track_exists(id: string): boolean 196 + 125 197 export interface TrackListDetails { 126 198 id: string 127 199 name: string ··· 129 201 /** Folders only */ 130 202 children?: Array<string> 131 203 } 132 - export declare function get_track_lists_details(): Record<string, TrackListDetails> 133 - export declare function get_track_list(id: string): TrackList 134 - /** Returns the deleted track lists, including folder children */ 135 - export declare function delete_track_list(id: string): void 136 - export declare function add_tracks_to_playlist(playlistId: string, trackIds: Array<string>): void 137 - export declare function playlist_filter_duplicates(playlistId: TrackID, ids: Array<string>): Array<TrackID> 138 - export declare function remove_from_playlist(playlistId: TrackID, itemIds: Array<ItemId>): void 139 - export declare function delete_tracks_with_item_ids(itemIds: Array<ItemId>): void 140 - export declare function new_playlist(name: string, description: string, isFolder: boolean, parentId: string): void 141 - export declare function update_playlist(id: string, name: string, description: string): void 142 - export declare function move_playlist(id: string, fromId: string, toId: string, toIndex: number): void 143 - export declare function move_tracks(playlistId: string, itemIds: Array<ItemId>, toIndex: number): void 144 - /** Returns `None` if the file does not have an image */ 145 - export declare function read_small_cover_async(path: string, index: number, cacheDbPath: string): Promise<Buffer | null> 146 - export declare function read_cover_async(trackId: string, index: number): Promise<ArrayBuffer | null> 204 + 147 205 export interface TrackMd { 148 206 name: string 149 207 artist: string ··· 160 218 bpm: string 161 219 comments: string 162 220 } 163 - export declare function get_track(id: string): Track 164 - export interface KeyedTrack { 165 - id: TrackID 166 - track: Track 221 + 222 + export interface TracksPage { 223 + playlistKind: string 224 + playlistName: string 225 + playlistDescription?: string 226 + playlistLength: number 227 + itemIds: Array<ItemId> 167 228 } 168 - export declare function get_track_by_item_id(itemId: ItemId): KeyedTrack 169 - export declare function get_track_ids(itemIds: Array<ItemId>): Array<TrackID> 170 - export declare function track_exists(id: string): boolean 171 - export declare function add_play(trackId: string): void 172 - export declare function add_skip(trackId: string): void 173 - export declare function add_play_time(id: TrackID, start: MsSinceUnixEpoch, durMs: number): void 174 - export declare function import_file(path: string, now: MsSinceUnixEpoch): void 175 - export declare function load_tags(trackId: string): void 176 - export interface JsImage { 177 - index: number 178 - totalImages: number 179 - mimeType: string 180 - data: Buffer 229 + 230 + export interface TracksPageOptions { 231 + playlistId: string 232 + sortKey: string 233 + sortDesc: boolean 234 + filterQuery: string 235 + groupAlbumTracks: boolean 181 236 } 182 - export declare function get_image(index: number): JsImage | null 183 - export declare function set_image(index: number, pathStr: string): void 184 - export declare function set_image_data(index: number, bytes: ArrayBuffer): void 185 - export declare function remove_image(index: number): void 237 + 238 + export declare function update_playlist(id: string, name: string, description: string): void 239 + 186 240 export declare function update_track_info(trackId: string, info: TrackMd): void 241 + 187 242 export interface ViewOptions { 188 243 shownPlaylistFolders: Array<string> 189 244 /** Empty is treated as default */ ··· 192 247 noAutoUpdate: boolean 193 248 skipUpdatingToVersion?: string 194 249 } 195 - export declare function load_view_options(): ViewOptions 196 - export declare function save_view_options(viewOptions: ViewOptions): void 197 - export declare class ItunesImport { 198 - static new(): ItunesImport 199 - start(path: string, tracksDir: string): Promise<ImportStatus> 200 - finish(): void 201 - }
+1848 -5
package-lock.json
··· 10 10 "devDependencies": { 11 11 "@eslint/compat": "^1.3.1", 12 12 "@eslint/js": "^9.30.1", 13 - "@napi-rs/cli": "^2.18.4", 13 + "@napi-rs/cli": "^3.2.0", 14 14 "@sveltejs/vite-plugin-svelte": "^5.1.0", 15 15 "@tailwindcss/vite": "^4.1.8", 16 16 "@tsconfig/svelte": "^5.0.4", ··· 656 656 "peer": true, 657 657 "engines": { 658 658 "node": ">= 10.0.0" 659 + } 660 + }, 661 + "node_modules/@emnapi/core": { 662 + "version": "1.5.0", 663 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", 664 + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", 665 + "dev": true, 666 + "license": "MIT", 667 + "optional": true, 668 + "dependencies": { 669 + "@emnapi/wasi-threads": "1.1.0", 670 + "tslib": "^2.4.0" 671 + } 672 + }, 673 + "node_modules/@emnapi/runtime": { 674 + "version": "1.5.0", 675 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", 676 + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", 677 + "dev": true, 678 + "license": "MIT", 679 + "optional": true, 680 + "dependencies": { 681 + "tslib": "^2.4.0" 682 + } 683 + }, 684 + "node_modules/@emnapi/wasi-threads": { 685 + "version": "1.1.0", 686 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", 687 + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", 688 + "dev": true, 689 + "license": "MIT", 690 + "optional": true, 691 + "dependencies": { 692 + "tslib": "^2.4.0" 659 693 } 660 694 }, 661 695 "node_modules/@esbuild/aix-ppc64": { ··· 1363 1397 "url": "https://github.com/sponsors/nzakas" 1364 1398 } 1365 1399 }, 1400 + "node_modules/@inquirer/checkbox": { 1401 + "version": "4.2.2", 1402 + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.2.tgz", 1403 + "integrity": "sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==", 1404 + "dev": true, 1405 + "license": "MIT", 1406 + "dependencies": { 1407 + "@inquirer/core": "^10.2.0", 1408 + "@inquirer/figures": "^1.0.13", 1409 + "@inquirer/type": "^3.0.8", 1410 + "ansi-escapes": "^4.3.2", 1411 + "yoctocolors-cjs": "^2.1.2" 1412 + }, 1413 + "engines": { 1414 + "node": ">=18" 1415 + }, 1416 + "peerDependencies": { 1417 + "@types/node": ">=18" 1418 + }, 1419 + "peerDependenciesMeta": { 1420 + "@types/node": { 1421 + "optional": true 1422 + } 1423 + } 1424 + }, 1425 + "node_modules/@inquirer/confirm": { 1426 + "version": "5.1.16", 1427 + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.16.tgz", 1428 + "integrity": "sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==", 1429 + "dev": true, 1430 + "license": "MIT", 1431 + "dependencies": { 1432 + "@inquirer/core": "^10.2.0", 1433 + "@inquirer/type": "^3.0.8" 1434 + }, 1435 + "engines": { 1436 + "node": ">=18" 1437 + }, 1438 + "peerDependencies": { 1439 + "@types/node": ">=18" 1440 + }, 1441 + "peerDependenciesMeta": { 1442 + "@types/node": { 1443 + "optional": true 1444 + } 1445 + } 1446 + }, 1447 + "node_modules/@inquirer/core": { 1448 + "version": "10.2.0", 1449 + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.2.0.tgz", 1450 + "integrity": "sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==", 1451 + "dev": true, 1452 + "license": "MIT", 1453 + "dependencies": { 1454 + "@inquirer/figures": "^1.0.13", 1455 + "@inquirer/type": "^3.0.8", 1456 + "ansi-escapes": "^4.3.2", 1457 + "cli-width": "^4.1.0", 1458 + "mute-stream": "^2.0.0", 1459 + "signal-exit": "^4.1.0", 1460 + "wrap-ansi": "^6.2.0", 1461 + "yoctocolors-cjs": "^2.1.2" 1462 + }, 1463 + "engines": { 1464 + "node": ">=18" 1465 + }, 1466 + "peerDependencies": { 1467 + "@types/node": ">=18" 1468 + }, 1469 + "peerDependenciesMeta": { 1470 + "@types/node": { 1471 + "optional": true 1472 + } 1473 + } 1474 + }, 1475 + "node_modules/@inquirer/core/node_modules/signal-exit": { 1476 + "version": "4.1.0", 1477 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 1478 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 1479 + "dev": true, 1480 + "license": "ISC", 1481 + "engines": { 1482 + "node": ">=14" 1483 + }, 1484 + "funding": { 1485 + "url": "https://github.com/sponsors/isaacs" 1486 + } 1487 + }, 1488 + "node_modules/@inquirer/core/node_modules/wrap-ansi": { 1489 + "version": "6.2.0", 1490 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 1491 + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 1492 + "dev": true, 1493 + "license": "MIT", 1494 + "dependencies": { 1495 + "ansi-styles": "^4.0.0", 1496 + "string-width": "^4.1.0", 1497 + "strip-ansi": "^6.0.0" 1498 + }, 1499 + "engines": { 1500 + "node": ">=8" 1501 + } 1502 + }, 1503 + "node_modules/@inquirer/editor": { 1504 + "version": "4.2.18", 1505 + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.18.tgz", 1506 + "integrity": "sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==", 1507 + "dev": true, 1508 + "license": "MIT", 1509 + "dependencies": { 1510 + "@inquirer/core": "^10.2.0", 1511 + "@inquirer/external-editor": "^1.0.1", 1512 + "@inquirer/type": "^3.0.8" 1513 + }, 1514 + "engines": { 1515 + "node": ">=18" 1516 + }, 1517 + "peerDependencies": { 1518 + "@types/node": ">=18" 1519 + }, 1520 + "peerDependenciesMeta": { 1521 + "@types/node": { 1522 + "optional": true 1523 + } 1524 + } 1525 + }, 1526 + "node_modules/@inquirer/expand": { 1527 + "version": "4.0.18", 1528 + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.18.tgz", 1529 + "integrity": "sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==", 1530 + "dev": true, 1531 + "license": "MIT", 1532 + "dependencies": { 1533 + "@inquirer/core": "^10.2.0", 1534 + "@inquirer/type": "^3.0.8", 1535 + "yoctocolors-cjs": "^2.1.2" 1536 + }, 1537 + "engines": { 1538 + "node": ">=18" 1539 + }, 1540 + "peerDependencies": { 1541 + "@types/node": ">=18" 1542 + }, 1543 + "peerDependenciesMeta": { 1544 + "@types/node": { 1545 + "optional": true 1546 + } 1547 + } 1548 + }, 1549 + "node_modules/@inquirer/external-editor": { 1550 + "version": "1.0.1", 1551 + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.1.tgz", 1552 + "integrity": "sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==", 1553 + "dev": true, 1554 + "license": "MIT", 1555 + "dependencies": { 1556 + "chardet": "^2.1.0", 1557 + "iconv-lite": "^0.6.3" 1558 + }, 1559 + "engines": { 1560 + "node": ">=18" 1561 + }, 1562 + "peerDependencies": { 1563 + "@types/node": ">=18" 1564 + }, 1565 + "peerDependenciesMeta": { 1566 + "@types/node": { 1567 + "optional": true 1568 + } 1569 + } 1570 + }, 1571 + "node_modules/@inquirer/figures": { 1572 + "version": "1.0.13", 1573 + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz", 1574 + "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==", 1575 + "dev": true, 1576 + "license": "MIT", 1577 + "engines": { 1578 + "node": ">=18" 1579 + } 1580 + }, 1581 + "node_modules/@inquirer/input": { 1582 + "version": "4.2.2", 1583 + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.2.tgz", 1584 + "integrity": "sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==", 1585 + "dev": true, 1586 + "license": "MIT", 1587 + "dependencies": { 1588 + "@inquirer/core": "^10.2.0", 1589 + "@inquirer/type": "^3.0.8" 1590 + }, 1591 + "engines": { 1592 + "node": ">=18" 1593 + }, 1594 + "peerDependencies": { 1595 + "@types/node": ">=18" 1596 + }, 1597 + "peerDependenciesMeta": { 1598 + "@types/node": { 1599 + "optional": true 1600 + } 1601 + } 1602 + }, 1603 + "node_modules/@inquirer/number": { 1604 + "version": "3.0.18", 1605 + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.18.tgz", 1606 + "integrity": "sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==", 1607 + "dev": true, 1608 + "license": "MIT", 1609 + "dependencies": { 1610 + "@inquirer/core": "^10.2.0", 1611 + "@inquirer/type": "^3.0.8" 1612 + }, 1613 + "engines": { 1614 + "node": ">=18" 1615 + }, 1616 + "peerDependencies": { 1617 + "@types/node": ">=18" 1618 + }, 1619 + "peerDependenciesMeta": { 1620 + "@types/node": { 1621 + "optional": true 1622 + } 1623 + } 1624 + }, 1625 + "node_modules/@inquirer/password": { 1626 + "version": "4.0.18", 1627 + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.18.tgz", 1628 + "integrity": "sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==", 1629 + "dev": true, 1630 + "license": "MIT", 1631 + "dependencies": { 1632 + "@inquirer/core": "^10.2.0", 1633 + "@inquirer/type": "^3.0.8", 1634 + "ansi-escapes": "^4.3.2" 1635 + }, 1636 + "engines": { 1637 + "node": ">=18" 1638 + }, 1639 + "peerDependencies": { 1640 + "@types/node": ">=18" 1641 + }, 1642 + "peerDependenciesMeta": { 1643 + "@types/node": { 1644 + "optional": true 1645 + } 1646 + } 1647 + }, 1648 + "node_modules/@inquirer/prompts": { 1649 + "version": "7.8.4", 1650 + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.4.tgz", 1651 + "integrity": "sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==", 1652 + "dev": true, 1653 + "license": "MIT", 1654 + "dependencies": { 1655 + "@inquirer/checkbox": "^4.2.2", 1656 + "@inquirer/confirm": "^5.1.16", 1657 + "@inquirer/editor": "^4.2.18", 1658 + "@inquirer/expand": "^4.0.18", 1659 + "@inquirer/input": "^4.2.2", 1660 + "@inquirer/number": "^3.0.18", 1661 + "@inquirer/password": "^4.0.18", 1662 + "@inquirer/rawlist": "^4.1.6", 1663 + "@inquirer/search": "^3.1.1", 1664 + "@inquirer/select": "^4.3.2" 1665 + }, 1666 + "engines": { 1667 + "node": ">=18" 1668 + }, 1669 + "peerDependencies": { 1670 + "@types/node": ">=18" 1671 + }, 1672 + "peerDependenciesMeta": { 1673 + "@types/node": { 1674 + "optional": true 1675 + } 1676 + } 1677 + }, 1678 + "node_modules/@inquirer/rawlist": { 1679 + "version": "4.1.6", 1680 + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.6.tgz", 1681 + "integrity": "sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==", 1682 + "dev": true, 1683 + "license": "MIT", 1684 + "dependencies": { 1685 + "@inquirer/core": "^10.2.0", 1686 + "@inquirer/type": "^3.0.8", 1687 + "yoctocolors-cjs": "^2.1.2" 1688 + }, 1689 + "engines": { 1690 + "node": ">=18" 1691 + }, 1692 + "peerDependencies": { 1693 + "@types/node": ">=18" 1694 + }, 1695 + "peerDependenciesMeta": { 1696 + "@types/node": { 1697 + "optional": true 1698 + } 1699 + } 1700 + }, 1701 + "node_modules/@inquirer/search": { 1702 + "version": "3.1.1", 1703 + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.1.tgz", 1704 + "integrity": "sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==", 1705 + "dev": true, 1706 + "license": "MIT", 1707 + "dependencies": { 1708 + "@inquirer/core": "^10.2.0", 1709 + "@inquirer/figures": "^1.0.13", 1710 + "@inquirer/type": "^3.0.8", 1711 + "yoctocolors-cjs": "^2.1.2" 1712 + }, 1713 + "engines": { 1714 + "node": ">=18" 1715 + }, 1716 + "peerDependencies": { 1717 + "@types/node": ">=18" 1718 + }, 1719 + "peerDependenciesMeta": { 1720 + "@types/node": { 1721 + "optional": true 1722 + } 1723 + } 1724 + }, 1725 + "node_modules/@inquirer/select": { 1726 + "version": "4.3.2", 1727 + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.2.tgz", 1728 + "integrity": "sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==", 1729 + "dev": true, 1730 + "license": "MIT", 1731 + "dependencies": { 1732 + "@inquirer/core": "^10.2.0", 1733 + "@inquirer/figures": "^1.0.13", 1734 + "@inquirer/type": "^3.0.8", 1735 + "ansi-escapes": "^4.3.2", 1736 + "yoctocolors-cjs": "^2.1.2" 1737 + }, 1738 + "engines": { 1739 + "node": ">=18" 1740 + }, 1741 + "peerDependencies": { 1742 + "@types/node": ">=18" 1743 + }, 1744 + "peerDependenciesMeta": { 1745 + "@types/node": { 1746 + "optional": true 1747 + } 1748 + } 1749 + }, 1750 + "node_modules/@inquirer/type": { 1751 + "version": "3.0.8", 1752 + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz", 1753 + "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==", 1754 + "dev": true, 1755 + "license": "MIT", 1756 + "engines": { 1757 + "node": ">=18" 1758 + }, 1759 + "peerDependencies": { 1760 + "@types/node": ">=18" 1761 + }, 1762 + "peerDependenciesMeta": { 1763 + "@types/node": { 1764 + "optional": true 1765 + } 1766 + } 1767 + }, 1366 1768 "node_modules/@isaacs/cliui": { 1367 1769 "version": "8.0.2", 1368 1770 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", ··· 1621 2023 } 1622 2024 }, 1623 2025 "node_modules/@napi-rs/cli": { 1624 - "version": "2.18.4", 1625 - "resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.18.4.tgz", 1626 - "integrity": "sha512-SgJeA4df9DE2iAEpr3M2H0OKl/yjtg1BnRI5/JyowS71tUWhrfSu2LT0V3vlHET+g1hBVlrO60PmEXwUEKp8Mg==", 2026 + "version": "3.2.0", 2027 + "resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-3.2.0.tgz", 2028 + "integrity": "sha512-heyXt/9OBPv/WrTFW2+PxIMzH6MCeqP9ZsvOg0LN6pLngBnszcxFsdhCAh5I6sddzQsvru53zj59GUzvmpWk8Q==", 2029 + "dev": true, 2030 + "license": "MIT", 2031 + "dependencies": { 2032 + "@inquirer/prompts": "^7.8.4", 2033 + "@napi-rs/cross-toolchain": "^1.0.3", 2034 + "@napi-rs/wasm-tools": "^1.0.1", 2035 + "@octokit/rest": "^22.0.0", 2036 + "clipanion": "^4.0.0-rc.4", 2037 + "colorette": "^2.0.20", 2038 + "debug": "^4.4.1", 2039 + "emnapi": "^1.5.0", 2040 + "es-toolkit": "^1.39.10", 2041 + "find-up": "^7.0.0", 2042 + "js-yaml": "^4.1.0", 2043 + "semver": "^7.7.2", 2044 + "typanion": "^3.14.0" 2045 + }, 2046 + "bin": { 2047 + "napi": "dist/cli.js", 2048 + "napi-raw": "cli.mjs" 2049 + }, 2050 + "engines": { 2051 + "node": ">= 16" 2052 + }, 2053 + "funding": { 2054 + "type": "github", 2055 + "url": "https://github.com/sponsors/Brooooooklyn" 2056 + }, 2057 + "peerDependencies": { 2058 + "@emnapi/runtime": "^1.1.0", 2059 + "emnapi": "^1.1.0" 2060 + }, 2061 + "peerDependenciesMeta": { 2062 + "@emnapi/runtime": { 2063 + "optional": true 2064 + }, 2065 + "emnapi": { 2066 + "optional": true 2067 + } 2068 + } 2069 + }, 2070 + "node_modules/@napi-rs/cli/node_modules/emnapi": { 2071 + "version": "1.5.0", 2072 + "resolved": "https://registry.npmjs.org/emnapi/-/emnapi-1.5.0.tgz", 2073 + "integrity": "sha512-adAaiwTxMnHbq1u2LUf+AfDR5MYrxDVBtezGspxwk5e/Zb6KHkGNdfuMU4JBIVm6ASY06K8KalhOPUht92MsnA==", 2074 + "dev": true, 2075 + "license": "MIT", 2076 + "peerDependencies": { 2077 + "node-addon-api": ">= 6.1.0" 2078 + }, 2079 + "peerDependenciesMeta": { 2080 + "node-addon-api": { 2081 + "optional": true 2082 + } 2083 + } 2084 + }, 2085 + "node_modules/@napi-rs/cli/node_modules/find-up": { 2086 + "version": "7.0.0", 2087 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", 2088 + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", 2089 + "dev": true, 2090 + "license": "MIT", 2091 + "dependencies": { 2092 + "locate-path": "^7.2.0", 2093 + "path-exists": "^5.0.0", 2094 + "unicorn-magic": "^0.1.0" 2095 + }, 2096 + "engines": { 2097 + "node": ">=18" 2098 + }, 2099 + "funding": { 2100 + "url": "https://github.com/sponsors/sindresorhus" 2101 + } 2102 + }, 2103 + "node_modules/@napi-rs/cli/node_modules/locate-path": { 2104 + "version": "7.2.0", 2105 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", 2106 + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", 1627 2107 "dev": true, 1628 2108 "license": "MIT", 2109 + "dependencies": { 2110 + "p-locate": "^6.0.0" 2111 + }, 2112 + "engines": { 2113 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2114 + }, 2115 + "funding": { 2116 + "url": "https://github.com/sponsors/sindresorhus" 2117 + } 2118 + }, 2119 + "node_modules/@napi-rs/cli/node_modules/node-addon-api": { 2120 + "version": "8.5.0", 2121 + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", 2122 + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", 2123 + "dev": true, 2124 + "license": "MIT", 2125 + "optional": true, 2126 + "peer": true, 2127 + "engines": { 2128 + "node": "^18 || ^20 || >= 21" 2129 + } 2130 + }, 2131 + "node_modules/@napi-rs/cli/node_modules/p-limit": { 2132 + "version": "4.0.0", 2133 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", 2134 + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", 2135 + "dev": true, 2136 + "license": "MIT", 2137 + "dependencies": { 2138 + "yocto-queue": "^1.0.0" 2139 + }, 2140 + "engines": { 2141 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2142 + }, 2143 + "funding": { 2144 + "url": "https://github.com/sponsors/sindresorhus" 2145 + } 2146 + }, 2147 + "node_modules/@napi-rs/cli/node_modules/p-locate": { 2148 + "version": "6.0.0", 2149 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", 2150 + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", 2151 + "dev": true, 2152 + "license": "MIT", 2153 + "dependencies": { 2154 + "p-limit": "^4.0.0" 2155 + }, 2156 + "engines": { 2157 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2158 + }, 2159 + "funding": { 2160 + "url": "https://github.com/sponsors/sindresorhus" 2161 + } 2162 + }, 2163 + "node_modules/@napi-rs/cli/node_modules/path-exists": { 2164 + "version": "5.0.0", 2165 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", 2166 + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", 2167 + "dev": true, 2168 + "license": "MIT", 2169 + "engines": { 2170 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2171 + } 2172 + }, 2173 + "node_modules/@napi-rs/cli/node_modules/semver": { 2174 + "version": "7.7.2", 2175 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 2176 + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 2177 + "dev": true, 2178 + "license": "ISC", 1629 2179 "bin": { 1630 - "napi": "scripts/index.js" 2180 + "semver": "bin/semver.js" 1631 2181 }, 1632 2182 "engines": { 2183 + "node": ">=10" 2184 + } 2185 + }, 2186 + "node_modules/@napi-rs/cli/node_modules/yocto-queue": { 2187 + "version": "1.2.1", 2188 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", 2189 + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", 2190 + "dev": true, 2191 + "license": "MIT", 2192 + "engines": { 2193 + "node": ">=12.20" 2194 + }, 2195 + "funding": { 2196 + "url": "https://github.com/sponsors/sindresorhus" 2197 + } 2198 + }, 2199 + "node_modules/@napi-rs/cross-toolchain": { 2200 + "version": "1.0.3", 2201 + "resolved": "https://registry.npmjs.org/@napi-rs/cross-toolchain/-/cross-toolchain-1.0.3.tgz", 2202 + "integrity": "sha512-ENPfLe4937bsKVTDA6zdABx4pq9w0tHqRrJHyaGxgaPq03a2Bd1unD5XSKjXJjebsABJ+MjAv1A2OvCgK9yehg==", 2203 + "dev": true, 2204 + "license": "MIT", 2205 + "workspaces": [ 2206 + ".", 2207 + "arm64/*", 2208 + "x64/*" 2209 + ], 2210 + "dependencies": { 2211 + "@napi-rs/lzma": "^1.4.5", 2212 + "@napi-rs/tar": "^1.1.0", 2213 + "debug": "^4.4.1" 2214 + }, 2215 + "peerDependencies": { 2216 + "@napi-rs/cross-toolchain-arm64-target-aarch64": "^1.0.3", 2217 + "@napi-rs/cross-toolchain-arm64-target-armv7": "^1.0.3", 2218 + "@napi-rs/cross-toolchain-arm64-target-ppc64le": "^1.0.3", 2219 + "@napi-rs/cross-toolchain-arm64-target-s390x": "^1.0.3", 2220 + "@napi-rs/cross-toolchain-arm64-target-x86_64": "^1.0.3", 2221 + "@napi-rs/cross-toolchain-x64-target-aarch64": "^1.0.3", 2222 + "@napi-rs/cross-toolchain-x64-target-armv7": "^1.0.3", 2223 + "@napi-rs/cross-toolchain-x64-target-ppc64le": "^1.0.3", 2224 + "@napi-rs/cross-toolchain-x64-target-s390x": "^1.0.3", 2225 + "@napi-rs/cross-toolchain-x64-target-x86_64": "^1.0.3" 2226 + }, 2227 + "peerDependenciesMeta": { 2228 + "@napi-rs/cross-toolchain-arm64-target-aarch64": { 2229 + "optional": true 2230 + }, 2231 + "@napi-rs/cross-toolchain-arm64-target-armv7": { 2232 + "optional": true 2233 + }, 2234 + "@napi-rs/cross-toolchain-arm64-target-ppc64le": { 2235 + "optional": true 2236 + }, 2237 + "@napi-rs/cross-toolchain-arm64-target-s390x": { 2238 + "optional": true 2239 + }, 2240 + "@napi-rs/cross-toolchain-arm64-target-x86_64": { 2241 + "optional": true 2242 + }, 2243 + "@napi-rs/cross-toolchain-x64-target-aarch64": { 2244 + "optional": true 2245 + }, 2246 + "@napi-rs/cross-toolchain-x64-target-armv7": { 2247 + "optional": true 2248 + }, 2249 + "@napi-rs/cross-toolchain-x64-target-ppc64le": { 2250 + "optional": true 2251 + }, 2252 + "@napi-rs/cross-toolchain-x64-target-s390x": { 2253 + "optional": true 2254 + }, 2255 + "@napi-rs/cross-toolchain-x64-target-x86_64": { 2256 + "optional": true 2257 + } 2258 + } 2259 + }, 2260 + "node_modules/@napi-rs/lzma": { 2261 + "version": "1.4.5", 2262 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma/-/lzma-1.4.5.tgz", 2263 + "integrity": "sha512-zS5LuN1OBPAyZpda2ZZgYOEDC+xecUdAGnrvbYzjnLXkrq/OBC3B9qcRvlxbDR3k5H/gVfvef1/jyUqPknqjbg==", 2264 + "dev": true, 2265 + "license": "MIT", 2266 + "engines": { 1633 2267 "node": ">= 10" 1634 2268 }, 1635 2269 "funding": { 1636 2270 "type": "github", 1637 2271 "url": "https://github.com/sponsors/Brooooooklyn" 2272 + }, 2273 + "optionalDependencies": { 2274 + "@napi-rs/lzma-android-arm-eabi": "1.4.5", 2275 + "@napi-rs/lzma-android-arm64": "1.4.5", 2276 + "@napi-rs/lzma-darwin-arm64": "1.4.5", 2277 + "@napi-rs/lzma-darwin-x64": "1.4.5", 2278 + "@napi-rs/lzma-freebsd-x64": "1.4.5", 2279 + "@napi-rs/lzma-linux-arm-gnueabihf": "1.4.5", 2280 + "@napi-rs/lzma-linux-arm64-gnu": "1.4.5", 2281 + "@napi-rs/lzma-linux-arm64-musl": "1.4.5", 2282 + "@napi-rs/lzma-linux-ppc64-gnu": "1.4.5", 2283 + "@napi-rs/lzma-linux-riscv64-gnu": "1.4.5", 2284 + "@napi-rs/lzma-linux-s390x-gnu": "1.4.5", 2285 + "@napi-rs/lzma-linux-x64-gnu": "1.4.5", 2286 + "@napi-rs/lzma-linux-x64-musl": "1.4.5", 2287 + "@napi-rs/lzma-wasm32-wasi": "1.4.5", 2288 + "@napi-rs/lzma-win32-arm64-msvc": "1.4.5", 2289 + "@napi-rs/lzma-win32-ia32-msvc": "1.4.5", 2290 + "@napi-rs/lzma-win32-x64-msvc": "1.4.5" 2291 + } 2292 + }, 2293 + "node_modules/@napi-rs/lzma-android-arm-eabi": { 2294 + "version": "1.4.5", 2295 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-android-arm-eabi/-/lzma-android-arm-eabi-1.4.5.tgz", 2296 + "integrity": "sha512-Up4gpyw2SacmyKWWEib06GhiDdF+H+CCU0LAV8pnM4aJIDqKKd5LHSlBht83Jut6frkB0vwEPmAkv4NjQ5u//Q==", 2297 + "cpu": [ 2298 + "arm" 2299 + ], 2300 + "dev": true, 2301 + "license": "MIT", 2302 + "optional": true, 2303 + "os": [ 2304 + "android" 2305 + ], 2306 + "engines": { 2307 + "node": ">= 10" 2308 + } 2309 + }, 2310 + "node_modules/@napi-rs/lzma-android-arm64": { 2311 + "version": "1.4.5", 2312 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-android-arm64/-/lzma-android-arm64-1.4.5.tgz", 2313 + "integrity": "sha512-uwa8sLlWEzkAM0MWyoZJg0JTD3BkPknvejAFG2acUA1raXM8jLrqujWCdOStisXhqQjZ2nDMp3FV6cs//zjfuQ==", 2314 + "cpu": [ 2315 + "arm64" 2316 + ], 2317 + "dev": true, 2318 + "license": "MIT", 2319 + "optional": true, 2320 + "os": [ 2321 + "android" 2322 + ], 2323 + "engines": { 2324 + "node": ">= 10" 2325 + } 2326 + }, 2327 + "node_modules/@napi-rs/lzma-darwin-arm64": { 2328 + "version": "1.4.5", 2329 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-darwin-arm64/-/lzma-darwin-arm64-1.4.5.tgz", 2330 + "integrity": "sha512-0Y0TQLQ2xAjVabrMDem1NhIssOZzF/y/dqetc6OT8mD3xMTDtF8u5BqZoX3MyPc9FzpsZw4ksol+w7DsxHrpMA==", 2331 + "cpu": [ 2332 + "arm64" 2333 + ], 2334 + "dev": true, 2335 + "license": "MIT", 2336 + "optional": true, 2337 + "os": [ 2338 + "darwin" 2339 + ], 2340 + "engines": { 2341 + "node": ">= 10" 2342 + } 2343 + }, 2344 + "node_modules/@napi-rs/lzma-darwin-x64": { 2345 + "version": "1.4.5", 2346 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-darwin-x64/-/lzma-darwin-x64-1.4.5.tgz", 2347 + "integrity": "sha512-vR2IUyJY3En+V1wJkwmbGWcYiT8pHloTAWdW4pG24+51GIq+intst6Uf6D/r46citObGZrlX0QvMarOkQeHWpw==", 2348 + "cpu": [ 2349 + "x64" 2350 + ], 2351 + "dev": true, 2352 + "license": "MIT", 2353 + "optional": true, 2354 + "os": [ 2355 + "darwin" 2356 + ], 2357 + "engines": { 2358 + "node": ">= 10" 2359 + } 2360 + }, 2361 + "node_modules/@napi-rs/lzma-freebsd-x64": { 2362 + "version": "1.4.5", 2363 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-freebsd-x64/-/lzma-freebsd-x64-1.4.5.tgz", 2364 + "integrity": "sha512-XpnYQC5SVovO35tF0xGkbHYjsS6kqyNCjuaLQ2dbEblFRr5cAZVvsJ/9h7zj/5FluJPJRDojVNxGyRhTp4z2lw==", 2365 + "cpu": [ 2366 + "x64" 2367 + ], 2368 + "dev": true, 2369 + "license": "MIT", 2370 + "optional": true, 2371 + "os": [ 2372 + "freebsd" 2373 + ], 2374 + "engines": { 2375 + "node": ">= 10" 2376 + } 2377 + }, 2378 + "node_modules/@napi-rs/lzma-linux-arm-gnueabihf": { 2379 + "version": "1.4.5", 2380 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-arm-gnueabihf/-/lzma-linux-arm-gnueabihf-1.4.5.tgz", 2381 + "integrity": "sha512-ic1ZZMoRfRMwtSwxkyw4zIlbDZGC6davC9r+2oX6x9QiF247BRqqT94qGeL5ZP4Vtz0Hyy7TEViWhx5j6Bpzvw==", 2382 + "cpu": [ 2383 + "arm" 2384 + ], 2385 + "dev": true, 2386 + "license": "MIT", 2387 + "optional": true, 2388 + "os": [ 2389 + "linux" 2390 + ], 2391 + "engines": { 2392 + "node": ">= 10" 2393 + } 2394 + }, 2395 + "node_modules/@napi-rs/lzma-linux-arm64-gnu": { 2396 + "version": "1.4.5", 2397 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-arm64-gnu/-/lzma-linux-arm64-gnu-1.4.5.tgz", 2398 + "integrity": "sha512-asEp7FPd7C1Yi6DQb45a3KPHKOFBSfGuJWXcAd4/bL2Fjetb2n/KK2z14yfW8YC/Fv6x3rBM0VAZKmJuz4tysg==", 2399 + "cpu": [ 2400 + "arm64" 2401 + ], 2402 + "dev": true, 2403 + "license": "MIT", 2404 + "optional": true, 2405 + "os": [ 2406 + "linux" 2407 + ], 2408 + "engines": { 2409 + "node": ">= 10" 2410 + } 2411 + }, 2412 + "node_modules/@napi-rs/lzma-linux-arm64-musl": { 2413 + "version": "1.4.5", 2414 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-arm64-musl/-/lzma-linux-arm64-musl-1.4.5.tgz", 2415 + "integrity": "sha512-yWjcPDgJ2nIL3KNvi4536dlT/CcCWO0DUyEOlBs/SacG7BeD6IjGh6yYzd3/X1Y3JItCbZoDoLUH8iB1lTXo3w==", 2416 + "cpu": [ 2417 + "arm64" 2418 + ], 2419 + "dev": true, 2420 + "license": "MIT", 2421 + "optional": true, 2422 + "os": [ 2423 + "linux" 2424 + ], 2425 + "engines": { 2426 + "node": ">= 10" 2427 + } 2428 + }, 2429 + "node_modules/@napi-rs/lzma-linux-ppc64-gnu": { 2430 + "version": "1.4.5", 2431 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-ppc64-gnu/-/lzma-linux-ppc64-gnu-1.4.5.tgz", 2432 + "integrity": "sha512-0XRhKuIU/9ZjT4WDIG/qnX7Xz7mSQHYZo9Gb3MP2gcvBgr6BA4zywQ9k3gmQaPn9ECE+CZg2V7DV7kT+x2pUMQ==", 2433 + "cpu": [ 2434 + "ppc64" 2435 + ], 2436 + "dev": true, 2437 + "license": "MIT", 2438 + "optional": true, 2439 + "os": [ 2440 + "linux" 2441 + ], 2442 + "engines": { 2443 + "node": ">= 10" 2444 + } 2445 + }, 2446 + "node_modules/@napi-rs/lzma-linux-riscv64-gnu": { 2447 + "version": "1.4.5", 2448 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-riscv64-gnu/-/lzma-linux-riscv64-gnu-1.4.5.tgz", 2449 + "integrity": "sha512-QrqDIPEUUB23GCpyQj/QFyMlr8SGxxyExeZz9OWFnHfb70kXdTLWrHS/hEI1Ru+lSbQ/6xRqeoGyQ4Aqdg+/RA==", 2450 + "cpu": [ 2451 + "riscv64" 2452 + ], 2453 + "dev": true, 2454 + "license": "MIT", 2455 + "optional": true, 2456 + "os": [ 2457 + "linux" 2458 + ], 2459 + "engines": { 2460 + "node": ">= 10" 2461 + } 2462 + }, 2463 + "node_modules/@napi-rs/lzma-linux-s390x-gnu": { 2464 + "version": "1.4.5", 2465 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-s390x-gnu/-/lzma-linux-s390x-gnu-1.4.5.tgz", 2466 + "integrity": "sha512-k8RVM5aMhW86E9H0QXdquwojew4H3SwPxbRVbl49/COJQWCUjGi79X6mYruMnMPEznZinUiT1jgKbFo2A00NdA==", 2467 + "cpu": [ 2468 + "s390x" 2469 + ], 2470 + "dev": true, 2471 + "license": "MIT", 2472 + "optional": true, 2473 + "os": [ 2474 + "linux" 2475 + ], 2476 + "engines": { 2477 + "node": ">= 10" 2478 + } 2479 + }, 2480 + "node_modules/@napi-rs/lzma-linux-x64-gnu": { 2481 + "version": "1.4.5", 2482 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.4.5.tgz", 2483 + "integrity": "sha512-6rMtBgnIq2Wcl1rQdZsnM+rtCcVCbws1nF8S2NzaUsVaZv8bjrPiAa0lwg4Eqnn1d9lgwqT+cZgm5m+//K08Kw==", 2484 + "cpu": [ 2485 + "x64" 2486 + ], 2487 + "dev": true, 2488 + "license": "MIT", 2489 + "optional": true, 2490 + "os": [ 2491 + "linux" 2492 + ], 2493 + "engines": { 2494 + "node": ">= 10" 2495 + } 2496 + }, 2497 + "node_modules/@napi-rs/lzma-linux-x64-musl": { 2498 + "version": "1.4.5", 2499 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-musl/-/lzma-linux-x64-musl-1.4.5.tgz", 2500 + "integrity": "sha512-eiadGBKi7Vd0bCArBUOO/qqRYPHt/VQVvGyYvDFt6C2ZSIjlD+HuOl+2oS1sjf4CFjK4eDIog6EdXnL0NE6iyQ==", 2501 + "cpu": [ 2502 + "x64" 2503 + ], 2504 + "dev": true, 2505 + "license": "MIT", 2506 + "optional": true, 2507 + "os": [ 2508 + "linux" 2509 + ], 2510 + "engines": { 2511 + "node": ">= 10" 2512 + } 2513 + }, 2514 + "node_modules/@napi-rs/lzma-wasm32-wasi": { 2515 + "version": "1.4.5", 2516 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-wasm32-wasi/-/lzma-wasm32-wasi-1.4.5.tgz", 2517 + "integrity": "sha512-+VyHHlr68dvey6fXc2hehw9gHVFIW3TtGF1XkcbAu65qVXsA9D/T+uuoRVqhE+JCyFHFrO0ixRbZDRK1XJt1sA==", 2518 + "cpu": [ 2519 + "wasm32" 2520 + ], 2521 + "dev": true, 2522 + "license": "MIT", 2523 + "optional": true, 2524 + "dependencies": { 2525 + "@napi-rs/wasm-runtime": "^1.0.3" 2526 + }, 2527 + "engines": { 2528 + "node": ">=14.0.0" 2529 + } 2530 + }, 2531 + "node_modules/@napi-rs/lzma-win32-arm64-msvc": { 2532 + "version": "1.4.5", 2533 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-win32-arm64-msvc/-/lzma-win32-arm64-msvc-1.4.5.tgz", 2534 + "integrity": "sha512-eewnqvIyyhHi3KaZtBOJXohLvwwN27gfS2G/YDWdfHlbz1jrmfeHAmzMsP5qv8vGB+T80TMHNkro4kYjeh6Deg==", 2535 + "cpu": [ 2536 + "arm64" 2537 + ], 2538 + "dev": true, 2539 + "license": "MIT", 2540 + "optional": true, 2541 + "os": [ 2542 + "win32" 2543 + ], 2544 + "engines": { 2545 + "node": ">= 10" 2546 + } 2547 + }, 2548 + "node_modules/@napi-rs/lzma-win32-ia32-msvc": { 2549 + "version": "1.4.5", 2550 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-win32-ia32-msvc/-/lzma-win32-ia32-msvc-1.4.5.tgz", 2551 + "integrity": "sha512-OeacFVRCJOKNU/a0ephUfYZ2Yt+NvaHze/4TgOwJ0J0P4P7X1mHzN+ig9Iyd74aQDXYqc7kaCXA2dpAOcH87Cg==", 2552 + "cpu": [ 2553 + "ia32" 2554 + ], 2555 + "dev": true, 2556 + "license": "MIT", 2557 + "optional": true, 2558 + "os": [ 2559 + "win32" 2560 + ], 2561 + "engines": { 2562 + "node": ">= 10" 2563 + } 2564 + }, 2565 + "node_modules/@napi-rs/lzma-win32-x64-msvc": { 2566 + "version": "1.4.5", 2567 + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-win32-x64-msvc/-/lzma-win32-x64-msvc-1.4.5.tgz", 2568 + "integrity": "sha512-T4I1SamdSmtyZgDXGAGP+y5LEK5vxHUFwe8mz6D4R7Sa5/WCxTcCIgPJ9BD7RkpO17lzhlaM2vmVvMy96Lvk9Q==", 2569 + "cpu": [ 2570 + "x64" 2571 + ], 2572 + "dev": true, 2573 + "license": "MIT", 2574 + "optional": true, 2575 + "os": [ 2576 + "win32" 2577 + ], 2578 + "engines": { 2579 + "node": ">= 10" 2580 + } 2581 + }, 2582 + "node_modules/@napi-rs/tar": { 2583 + "version": "1.1.0", 2584 + "resolved": "https://registry.npmjs.org/@napi-rs/tar/-/tar-1.1.0.tgz", 2585 + "integrity": "sha512-7cmzIu+Vbupriudo7UudoMRH2OA3cTw67vva8MxeoAe5S7vPFI7z0vp0pMXiA25S8IUJefImQ90FeJjl8fjEaQ==", 2586 + "dev": true, 2587 + "license": "MIT", 2588 + "engines": { 2589 + "node": ">= 10" 2590 + }, 2591 + "optionalDependencies": { 2592 + "@napi-rs/tar-android-arm-eabi": "1.1.0", 2593 + "@napi-rs/tar-android-arm64": "1.1.0", 2594 + "@napi-rs/tar-darwin-arm64": "1.1.0", 2595 + "@napi-rs/tar-darwin-x64": "1.1.0", 2596 + "@napi-rs/tar-freebsd-x64": "1.1.0", 2597 + "@napi-rs/tar-linux-arm-gnueabihf": "1.1.0", 2598 + "@napi-rs/tar-linux-arm64-gnu": "1.1.0", 2599 + "@napi-rs/tar-linux-arm64-musl": "1.1.0", 2600 + "@napi-rs/tar-linux-ppc64-gnu": "1.1.0", 2601 + "@napi-rs/tar-linux-s390x-gnu": "1.1.0", 2602 + "@napi-rs/tar-linux-x64-gnu": "1.1.0", 2603 + "@napi-rs/tar-linux-x64-musl": "1.1.0", 2604 + "@napi-rs/tar-wasm32-wasi": "1.1.0", 2605 + "@napi-rs/tar-win32-arm64-msvc": "1.1.0", 2606 + "@napi-rs/tar-win32-ia32-msvc": "1.1.0", 2607 + "@napi-rs/tar-win32-x64-msvc": "1.1.0" 2608 + } 2609 + }, 2610 + "node_modules/@napi-rs/tar-android-arm-eabi": { 2611 + "version": "1.1.0", 2612 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-android-arm-eabi/-/tar-android-arm-eabi-1.1.0.tgz", 2613 + "integrity": "sha512-h2Ryndraj/YiKgMV/r5by1cDusluYIRT0CaE0/PekQ4u+Wpy2iUVqvzVU98ZPnhXaNeYxEvVJHNGafpOfaD0TA==", 2614 + "cpu": [ 2615 + "arm" 2616 + ], 2617 + "dev": true, 2618 + "license": "MIT", 2619 + "optional": true, 2620 + "os": [ 2621 + "android" 2622 + ], 2623 + "engines": { 2624 + "node": ">= 10" 2625 + } 2626 + }, 2627 + "node_modules/@napi-rs/tar-android-arm64": { 2628 + "version": "1.1.0", 2629 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-android-arm64/-/tar-android-arm64-1.1.0.tgz", 2630 + "integrity": "sha512-DJFyQHr1ZxNZorm/gzc1qBNLF/FcKzcH0V0Vwan5P+o0aE2keQIGEjJ09FudkF9v6uOuJjHCVDdK6S6uHtShAw==", 2631 + "cpu": [ 2632 + "arm64" 2633 + ], 2634 + "dev": true, 2635 + "license": "MIT", 2636 + "optional": true, 2637 + "os": [ 2638 + "android" 2639 + ], 2640 + "engines": { 2641 + "node": ">= 10" 2642 + } 2643 + }, 2644 + "node_modules/@napi-rs/tar-darwin-arm64": { 2645 + "version": "1.1.0", 2646 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-darwin-arm64/-/tar-darwin-arm64-1.1.0.tgz", 2647 + "integrity": "sha512-Zz2sXRzjIX4e532zD6xm2SjXEym6MkvfCvL2RMpG2+UwNVDVscHNcz3d47Pf3sysP2e2af7fBB3TIoK2f6trPw==", 2648 + "cpu": [ 2649 + "arm64" 2650 + ], 2651 + "dev": true, 2652 + "license": "MIT", 2653 + "optional": true, 2654 + "os": [ 2655 + "darwin" 2656 + ], 2657 + "engines": { 2658 + "node": ">= 10" 2659 + } 2660 + }, 2661 + "node_modules/@napi-rs/tar-darwin-x64": { 2662 + "version": "1.1.0", 2663 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-darwin-x64/-/tar-darwin-x64-1.1.0.tgz", 2664 + "integrity": "sha512-EI+CptIMNweT0ms9S3mkP/q+J6FNZ1Q6pvpJOEcWglRfyfQpLqjlC0O+dptruTPE8VamKYuqdjxfqD8hifZDOA==", 2665 + "cpu": [ 2666 + "x64" 2667 + ], 2668 + "dev": true, 2669 + "license": "MIT", 2670 + "optional": true, 2671 + "os": [ 2672 + "darwin" 2673 + ], 2674 + "engines": { 2675 + "node": ">= 10" 2676 + } 2677 + }, 2678 + "node_modules/@napi-rs/tar-freebsd-x64": { 2679 + "version": "1.1.0", 2680 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-freebsd-x64/-/tar-freebsd-x64-1.1.0.tgz", 2681 + "integrity": "sha512-J0PIqX+pl6lBIAckL/c87gpodLbjZB1OtIK+RDscKC9NLdpVv6VGOxzUV/fYev/hctcE8EfkLbgFOfpmVQPg2g==", 2682 + "cpu": [ 2683 + "x64" 2684 + ], 2685 + "dev": true, 2686 + "license": "MIT", 2687 + "optional": true, 2688 + "os": [ 2689 + "freebsd" 2690 + ], 2691 + "engines": { 2692 + "node": ">= 10" 2693 + } 2694 + }, 2695 + "node_modules/@napi-rs/tar-linux-arm-gnueabihf": { 2696 + "version": "1.1.0", 2697 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-arm-gnueabihf/-/tar-linux-arm-gnueabihf-1.1.0.tgz", 2698 + "integrity": "sha512-SLgIQo3f3EjkZ82ZwvrEgFvMdDAhsxCYjyoSuWfHCz0U16qx3SuGCp8+FYOPYCECHN3ZlGjXnoAIt9ERd0dEUg==", 2699 + "cpu": [ 2700 + "arm" 2701 + ], 2702 + "dev": true, 2703 + "license": "MIT", 2704 + "optional": true, 2705 + "os": [ 2706 + "linux" 2707 + ], 2708 + "engines": { 2709 + "node": ">= 10" 2710 + } 2711 + }, 2712 + "node_modules/@napi-rs/tar-linux-arm64-gnu": { 2713 + "version": "1.1.0", 2714 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-arm64-gnu/-/tar-linux-arm64-gnu-1.1.0.tgz", 2715 + "integrity": "sha512-d014cdle52EGaH6GpYTQOP9Py7glMO1zz/+ynJPjjzYFSxvdYx0byrjumZk2UQdIyGZiJO2MEFpCkEEKFSgPYA==", 2716 + "cpu": [ 2717 + "arm64" 2718 + ], 2719 + "dev": true, 2720 + "license": "MIT", 2721 + "optional": true, 2722 + "os": [ 2723 + "linux" 2724 + ], 2725 + "engines": { 2726 + "node": ">= 10" 2727 + } 2728 + }, 2729 + "node_modules/@napi-rs/tar-linux-arm64-musl": { 2730 + "version": "1.1.0", 2731 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-arm64-musl/-/tar-linux-arm64-musl-1.1.0.tgz", 2732 + "integrity": "sha512-L/y1/26q9L/uBqiW/JdOb/Dc94egFvNALUZV2WCGKQXc6UByPBMgdiEyW2dtoYxYYYYc+AKD+jr+wQPcvX2vrQ==", 2733 + "cpu": [ 2734 + "arm64" 2735 + ], 2736 + "dev": true, 2737 + "license": "MIT", 2738 + "optional": true, 2739 + "os": [ 2740 + "linux" 2741 + ], 2742 + "engines": { 2743 + "node": ">= 10" 2744 + } 2745 + }, 2746 + "node_modules/@napi-rs/tar-linux-ppc64-gnu": { 2747 + "version": "1.1.0", 2748 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-ppc64-gnu/-/tar-linux-ppc64-gnu-1.1.0.tgz", 2749 + "integrity": "sha512-EPE1K/80RQvPbLRJDJs1QmCIcH+7WRi0F73+oTe1582y9RtfGRuzAkzeBuAGRXAQEjRQw/RjtNqr6UTJ+8UuWQ==", 2750 + "cpu": [ 2751 + "ppc64" 2752 + ], 2753 + "dev": true, 2754 + "license": "MIT", 2755 + "optional": true, 2756 + "os": [ 2757 + "linux" 2758 + ], 2759 + "engines": { 2760 + "node": ">= 10" 2761 + } 2762 + }, 2763 + "node_modules/@napi-rs/tar-linux-s390x-gnu": { 2764 + "version": "1.1.0", 2765 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-s390x-gnu/-/tar-linux-s390x-gnu-1.1.0.tgz", 2766 + "integrity": "sha512-B2jhWiB1ffw1nQBqLUP1h4+J1ovAxBOoe5N2IqDMOc63fsPZKNqF1PvO/dIem8z7LL4U4bsfmhy3gBfu547oNQ==", 2767 + "cpu": [ 2768 + "s390x" 2769 + ], 2770 + "dev": true, 2771 + "license": "MIT", 2772 + "optional": true, 2773 + "os": [ 2774 + "linux" 2775 + ], 2776 + "engines": { 2777 + "node": ">= 10" 2778 + } 2779 + }, 2780 + "node_modules/@napi-rs/tar-linux-x64-gnu": { 2781 + "version": "1.1.0", 2782 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-x64-gnu/-/tar-linux-x64-gnu-1.1.0.tgz", 2783 + "integrity": "sha512-tbZDHnb9617lTnsDMGo/eAMZxnsQFnaRe+MszRqHguKfMwkisc9CCJnks/r1o84u5fECI+J/HOrKXgczq/3Oww==", 2784 + "cpu": [ 2785 + "x64" 2786 + ], 2787 + "dev": true, 2788 + "license": "MIT", 2789 + "optional": true, 2790 + "os": [ 2791 + "linux" 2792 + ], 2793 + "engines": { 2794 + "node": ">= 10" 2795 + } 2796 + }, 2797 + "node_modules/@napi-rs/tar-linux-x64-musl": { 2798 + "version": "1.1.0", 2799 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-linux-x64-musl/-/tar-linux-x64-musl-1.1.0.tgz", 2800 + "integrity": "sha512-dV6cODlzbO8u6Anmv2N/ilQHq/AWz0xyltuXoLU3yUyXbZcnWYZuB2rL8OBGPmqNcD+x9NdScBNXh7vWN0naSQ==", 2801 + "cpu": [ 2802 + "x64" 2803 + ], 2804 + "dev": true, 2805 + "license": "MIT", 2806 + "optional": true, 2807 + "os": [ 2808 + "linux" 2809 + ], 2810 + "engines": { 2811 + "node": ">= 10" 2812 + } 2813 + }, 2814 + "node_modules/@napi-rs/tar-wasm32-wasi": { 2815 + "version": "1.1.0", 2816 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-wasm32-wasi/-/tar-wasm32-wasi-1.1.0.tgz", 2817 + "integrity": "sha512-jIa9nb2HzOrfH0F8QQ9g3WE4aMH5vSI5/1NYVNm9ysCmNjCCtMXCAhlI3WKCdm/DwHf0zLqdrrtDFXODcNaqMw==", 2818 + "cpu": [ 2819 + "wasm32" 2820 + ], 2821 + "dev": true, 2822 + "license": "MIT", 2823 + "optional": true, 2824 + "dependencies": { 2825 + "@napi-rs/wasm-runtime": "^1.0.3" 2826 + }, 2827 + "engines": { 2828 + "node": ">=14.0.0" 2829 + } 2830 + }, 2831 + "node_modules/@napi-rs/tar-win32-arm64-msvc": { 2832 + "version": "1.1.0", 2833 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-win32-arm64-msvc/-/tar-win32-arm64-msvc-1.1.0.tgz", 2834 + "integrity": "sha512-vfpG71OB0ijtjemp3WTdmBKJm9R70KM8vsSExMsIQtV0lVzP07oM1CW6JbNRPXNLhRoue9ofYLiUDk8bE0Hckg==", 2835 + "cpu": [ 2836 + "arm64" 2837 + ], 2838 + "dev": true, 2839 + "license": "MIT", 2840 + "optional": true, 2841 + "os": [ 2842 + "win32" 2843 + ], 2844 + "engines": { 2845 + "node": ">= 10" 2846 + } 2847 + }, 2848 + "node_modules/@napi-rs/tar-win32-ia32-msvc": { 2849 + "version": "1.1.0", 2850 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-win32-ia32-msvc/-/tar-win32-ia32-msvc-1.1.0.tgz", 2851 + "integrity": "sha512-hGPyPW60YSpOSgzfy68DLBHgi6HxkAM+L59ZZZPMQ0TOXjQg+p2EW87+TjZfJOkSpbYiEkULwa/f4a2hcVjsqQ==", 2852 + "cpu": [ 2853 + "ia32" 2854 + ], 2855 + "dev": true, 2856 + "license": "MIT", 2857 + "optional": true, 2858 + "os": [ 2859 + "win32" 2860 + ], 2861 + "engines": { 2862 + "node": ">= 10" 2863 + } 2864 + }, 2865 + "node_modules/@napi-rs/tar-win32-x64-msvc": { 2866 + "version": "1.1.0", 2867 + "resolved": "https://registry.npmjs.org/@napi-rs/tar-win32-x64-msvc/-/tar-win32-x64-msvc-1.1.0.tgz", 2868 + "integrity": "sha512-L6Ed1DxXK9YSCMyvpR8MiNAyKNkQLjsHsHK9E0qnHa8NzLFqzDKhvs5LfnWxM2kJ+F7m/e5n9zPm24kHb3LsVw==", 2869 + "cpu": [ 2870 + "x64" 2871 + ], 2872 + "dev": true, 2873 + "license": "MIT", 2874 + "optional": true, 2875 + "os": [ 2876 + "win32" 2877 + ], 2878 + "engines": { 2879 + "node": ">= 10" 2880 + } 2881 + }, 2882 + "node_modules/@napi-rs/wasm-runtime": { 2883 + "version": "1.0.5", 2884 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.5.tgz", 2885 + "integrity": "sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==", 2886 + "dev": true, 2887 + "license": "MIT", 2888 + "optional": true, 2889 + "dependencies": { 2890 + "@emnapi/core": "^1.5.0", 2891 + "@emnapi/runtime": "^1.5.0", 2892 + "@tybys/wasm-util": "^0.10.1" 2893 + } 2894 + }, 2895 + "node_modules/@napi-rs/wasm-tools": { 2896 + "version": "1.0.1", 2897 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools/-/wasm-tools-1.0.1.tgz", 2898 + "integrity": "sha512-enkZYyuCdo+9jneCPE/0fjIta4wWnvVN9hBo2HuiMpRF0q3lzv1J6b/cl7i0mxZUKhBrV3aCKDBQnCOhwKbPmQ==", 2899 + "dev": true, 2900 + "license": "MIT", 2901 + "engines": { 2902 + "node": ">= 10" 2903 + }, 2904 + "optionalDependencies": { 2905 + "@napi-rs/wasm-tools-android-arm-eabi": "1.0.1", 2906 + "@napi-rs/wasm-tools-android-arm64": "1.0.1", 2907 + "@napi-rs/wasm-tools-darwin-arm64": "1.0.1", 2908 + "@napi-rs/wasm-tools-darwin-x64": "1.0.1", 2909 + "@napi-rs/wasm-tools-freebsd-x64": "1.0.1", 2910 + "@napi-rs/wasm-tools-linux-arm64-gnu": "1.0.1", 2911 + "@napi-rs/wasm-tools-linux-arm64-musl": "1.0.1", 2912 + "@napi-rs/wasm-tools-linux-x64-gnu": "1.0.1", 2913 + "@napi-rs/wasm-tools-linux-x64-musl": "1.0.1", 2914 + "@napi-rs/wasm-tools-wasm32-wasi": "1.0.1", 2915 + "@napi-rs/wasm-tools-win32-arm64-msvc": "1.0.1", 2916 + "@napi-rs/wasm-tools-win32-ia32-msvc": "1.0.1", 2917 + "@napi-rs/wasm-tools-win32-x64-msvc": "1.0.1" 2918 + } 2919 + }, 2920 + "node_modules/@napi-rs/wasm-tools-android-arm-eabi": { 2921 + "version": "1.0.1", 2922 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-android-arm-eabi/-/wasm-tools-android-arm-eabi-1.0.1.tgz", 2923 + "integrity": "sha512-lr07E/l571Gft5v4aA1dI8koJEmF1F0UigBbsqg9OWNzg80H3lDPO+auv85y3T/NHE3GirDk7x/D3sLO57vayw==", 2924 + "cpu": [ 2925 + "arm" 2926 + ], 2927 + "dev": true, 2928 + "license": "MIT", 2929 + "optional": true, 2930 + "os": [ 2931 + "android" 2932 + ], 2933 + "engines": { 2934 + "node": ">= 10" 2935 + } 2936 + }, 2937 + "node_modules/@napi-rs/wasm-tools-android-arm64": { 2938 + "version": "1.0.1", 2939 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-android-arm64/-/wasm-tools-android-arm64-1.0.1.tgz", 2940 + "integrity": "sha512-WDR7S+aRLV6LtBJAg5fmjKkTZIdrEnnQxgdsb7Cf8pYiMWBHLU+LC49OUVppQ2YSPY0+GeYm9yuZWW3kLjJ7Bg==", 2941 + "cpu": [ 2942 + "arm64" 2943 + ], 2944 + "dev": true, 2945 + "license": "MIT", 2946 + "optional": true, 2947 + "os": [ 2948 + "android" 2949 + ], 2950 + "engines": { 2951 + "node": ">= 10" 2952 + } 2953 + }, 2954 + "node_modules/@napi-rs/wasm-tools-darwin-arm64": { 2955 + "version": "1.0.1", 2956 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-darwin-arm64/-/wasm-tools-darwin-arm64-1.0.1.tgz", 2957 + "integrity": "sha512-qWTI+EEkiN0oIn/N2gQo7+TVYil+AJ20jjuzD2vATS6uIjVz+Updeqmszi7zq7rdFTLp6Ea3/z4kDKIfZwmR9g==", 2958 + "cpu": [ 2959 + "arm64" 2960 + ], 2961 + "dev": true, 2962 + "license": "MIT", 2963 + "optional": true, 2964 + "os": [ 2965 + "darwin" 2966 + ], 2967 + "engines": { 2968 + "node": ">= 10" 2969 + } 2970 + }, 2971 + "node_modules/@napi-rs/wasm-tools-darwin-x64": { 2972 + "version": "1.0.1", 2973 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-darwin-x64/-/wasm-tools-darwin-x64-1.0.1.tgz", 2974 + "integrity": "sha512-bA6hubqtHROR5UI3tToAF/c6TDmaAgF0SWgo4rADHtQ4wdn0JeogvOk50gs2TYVhKPE2ZD2+qqt7oBKB+sxW3A==", 2975 + "cpu": [ 2976 + "x64" 2977 + ], 2978 + "dev": true, 2979 + "license": "MIT", 2980 + "optional": true, 2981 + "os": [ 2982 + "darwin" 2983 + ], 2984 + "engines": { 2985 + "node": ">= 10" 2986 + } 2987 + }, 2988 + "node_modules/@napi-rs/wasm-tools-freebsd-x64": { 2989 + "version": "1.0.1", 2990 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-freebsd-x64/-/wasm-tools-freebsd-x64-1.0.1.tgz", 2991 + "integrity": "sha512-90+KLBkD9hZEjPQW1MDfwSt5J1L46EUKacpCZWyRuL6iIEO5CgWU0V/JnEgFsDOGyyYtiTvHc5bUdUTWd4I9Vg==", 2992 + "cpu": [ 2993 + "x64" 2994 + ], 2995 + "dev": true, 2996 + "license": "MIT", 2997 + "optional": true, 2998 + "os": [ 2999 + "freebsd" 3000 + ], 3001 + "engines": { 3002 + "node": ">= 10" 3003 + } 3004 + }, 3005 + "node_modules/@napi-rs/wasm-tools-linux-arm64-gnu": { 3006 + "version": "1.0.1", 3007 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-linux-arm64-gnu/-/wasm-tools-linux-arm64-gnu-1.0.1.tgz", 3008 + "integrity": "sha512-rG0QlS65x9K/u3HrKafDf8cFKj5wV2JHGfl8abWgKew0GVPyp6vfsDweOwHbWAjcHtp2LHi6JHoW80/MTHm52Q==", 3009 + "cpu": [ 3010 + "arm64" 3011 + ], 3012 + "dev": true, 3013 + "license": "MIT", 3014 + "optional": true, 3015 + "os": [ 3016 + "linux" 3017 + ], 3018 + "engines": { 3019 + "node": ">= 10" 3020 + } 3021 + }, 3022 + "node_modules/@napi-rs/wasm-tools-linux-arm64-musl": { 3023 + "version": "1.0.1", 3024 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-linux-arm64-musl/-/wasm-tools-linux-arm64-musl-1.0.1.tgz", 3025 + "integrity": "sha512-jAasbIvjZXCgX0TCuEFQr+4D6Lla/3AAVx2LmDuMjgG4xoIXzjKWl7c4chuaD+TI+prWT0X6LJcdzFT+ROKGHQ==", 3026 + "cpu": [ 3027 + "arm64" 3028 + ], 3029 + "dev": true, 3030 + "license": "MIT", 3031 + "optional": true, 3032 + "os": [ 3033 + "linux" 3034 + ], 3035 + "engines": { 3036 + "node": ">= 10" 3037 + } 3038 + }, 3039 + "node_modules/@napi-rs/wasm-tools-linux-x64-gnu": { 3040 + "version": "1.0.1", 3041 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-linux-x64-gnu/-/wasm-tools-linux-x64-gnu-1.0.1.tgz", 3042 + "integrity": "sha512-Plgk5rPqqK2nocBGajkMVbGm010Z7dnUgq0wtnYRZbzWWxwWcXfZMPa8EYxrK4eE8SzpI7VlZP1tdVsdjgGwMw==", 3043 + "cpu": [ 3044 + "x64" 3045 + ], 3046 + "dev": true, 3047 + "license": "MIT", 3048 + "optional": true, 3049 + "os": [ 3050 + "linux" 3051 + ], 3052 + "engines": { 3053 + "node": ">= 10" 3054 + } 3055 + }, 3056 + "node_modules/@napi-rs/wasm-tools-linux-x64-musl": { 3057 + "version": "1.0.1", 3058 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-linux-x64-musl/-/wasm-tools-linux-x64-musl-1.0.1.tgz", 3059 + "integrity": "sha512-GW7AzGuWxtQkyHknHWYFdR0CHmW6is8rG2Rf4V6GNmMpmwtXt/ItWYWtBe4zqJWycMNazpfZKSw/BpT7/MVCXQ==", 3060 + "cpu": [ 3061 + "x64" 3062 + ], 3063 + "dev": true, 3064 + "license": "MIT", 3065 + "optional": true, 3066 + "os": [ 3067 + "linux" 3068 + ], 3069 + "engines": { 3070 + "node": ">= 10" 3071 + } 3072 + }, 3073 + "node_modules/@napi-rs/wasm-tools-wasm32-wasi": { 3074 + "version": "1.0.1", 3075 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-wasm32-wasi/-/wasm-tools-wasm32-wasi-1.0.1.tgz", 3076 + "integrity": "sha512-/nQVSTrqSsn7YdAc2R7Ips/tnw5SPUcl3D7QrXCNGPqjbatIspnaexvaOYNyKMU6xPu+pc0BTnKVmqhlJJCPLA==", 3077 + "cpu": [ 3078 + "wasm32" 3079 + ], 3080 + "dev": true, 3081 + "license": "MIT", 3082 + "optional": true, 3083 + "dependencies": { 3084 + "@napi-rs/wasm-runtime": "^1.0.3" 3085 + }, 3086 + "engines": { 3087 + "node": ">=14.0.0" 3088 + } 3089 + }, 3090 + "node_modules/@napi-rs/wasm-tools-win32-arm64-msvc": { 3091 + "version": "1.0.1", 3092 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-win32-arm64-msvc/-/wasm-tools-win32-arm64-msvc-1.0.1.tgz", 3093 + "integrity": "sha512-PFi7oJIBu5w7Qzh3dwFea3sHRO3pojMsaEnUIy22QvsW+UJfNQwJCryVrpoUt8m4QyZXI+saEq/0r4GwdoHYFQ==", 3094 + "cpu": [ 3095 + "arm64" 3096 + ], 3097 + "dev": true, 3098 + "license": "MIT", 3099 + "optional": true, 3100 + "os": [ 3101 + "win32" 3102 + ], 3103 + "engines": { 3104 + "node": ">= 10" 3105 + } 3106 + }, 3107 + "node_modules/@napi-rs/wasm-tools-win32-ia32-msvc": { 3108 + "version": "1.0.1", 3109 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-win32-ia32-msvc/-/wasm-tools-win32-ia32-msvc-1.0.1.tgz", 3110 + "integrity": "sha512-gXkuYzxQsgkj05Zaq+KQTkHIN83dFAwMcTKa2aQcpYPRImFm2AQzEyLtpXmyCWzJ0F9ZYAOmbSyrNew8/us6bw==", 3111 + "cpu": [ 3112 + "ia32" 3113 + ], 3114 + "dev": true, 3115 + "license": "MIT", 3116 + "optional": true, 3117 + "os": [ 3118 + "win32" 3119 + ], 3120 + "engines": { 3121 + "node": ">= 10" 3122 + } 3123 + }, 3124 + "node_modules/@napi-rs/wasm-tools-win32-x64-msvc": { 3125 + "version": "1.0.1", 3126 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-tools-win32-x64-msvc/-/wasm-tools-win32-x64-msvc-1.0.1.tgz", 3127 + "integrity": "sha512-rEAf05nol3e3eei2sRButmgXP+6ATgm0/38MKhz9Isne82T4rPIMYsCIFj0kOisaGeVwoi2fnm7O9oWp5YVnYQ==", 3128 + "cpu": [ 3129 + "x64" 3130 + ], 3131 + "dev": true, 3132 + "license": "MIT", 3133 + "optional": true, 3134 + "os": [ 3135 + "win32" 3136 + ], 3137 + "engines": { 3138 + "node": ">= 10" 1638 3139 } 1639 3140 }, 1640 3141 "node_modules/@nodelib/fs.scandir": { ··· 1717 3218 "node": "^12.13.0 || ^14.15.0 || >=16.0.0" 1718 3219 } 1719 3220 }, 3221 + "node_modules/@octokit/auth-token": { 3222 + "version": "6.0.0", 3223 + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz", 3224 + "integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==", 3225 + "dev": true, 3226 + "license": "MIT", 3227 + "engines": { 3228 + "node": ">= 20" 3229 + } 3230 + }, 3231 + "node_modules/@octokit/core": { 3232 + "version": "7.0.3", 3233 + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.3.tgz", 3234 + "integrity": "sha512-oNXsh2ywth5aowwIa7RKtawnkdH6LgU1ztfP9AIUCQCvzysB+WeU8o2kyyosDPwBZutPpjZDKPQGIzzrfTWweQ==", 3235 + "dev": true, 3236 + "license": "MIT", 3237 + "dependencies": { 3238 + "@octokit/auth-token": "^6.0.0", 3239 + "@octokit/graphql": "^9.0.1", 3240 + "@octokit/request": "^10.0.2", 3241 + "@octokit/request-error": "^7.0.0", 3242 + "@octokit/types": "^14.0.0", 3243 + "before-after-hook": "^4.0.0", 3244 + "universal-user-agent": "^7.0.0" 3245 + }, 3246 + "engines": { 3247 + "node": ">= 20" 3248 + } 3249 + }, 3250 + "node_modules/@octokit/endpoint": { 3251 + "version": "11.0.0", 3252 + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.0.tgz", 3253 + "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==", 3254 + "dev": true, 3255 + "license": "MIT", 3256 + "dependencies": { 3257 + "@octokit/types": "^14.0.0", 3258 + "universal-user-agent": "^7.0.2" 3259 + }, 3260 + "engines": { 3261 + "node": ">= 20" 3262 + } 3263 + }, 3264 + "node_modules/@octokit/graphql": { 3265 + "version": "9.0.1", 3266 + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.1.tgz", 3267 + "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==", 3268 + "dev": true, 3269 + "license": "MIT", 3270 + "dependencies": { 3271 + "@octokit/request": "^10.0.2", 3272 + "@octokit/types": "^14.0.0", 3273 + "universal-user-agent": "^7.0.0" 3274 + }, 3275 + "engines": { 3276 + "node": ">= 20" 3277 + } 3278 + }, 3279 + "node_modules/@octokit/openapi-types": { 3280 + "version": "25.1.0", 3281 + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", 3282 + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", 3283 + "dev": true, 3284 + "license": "MIT" 3285 + }, 3286 + "node_modules/@octokit/plugin-paginate-rest": { 3287 + "version": "13.1.1", 3288 + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-13.1.1.tgz", 3289 + "integrity": "sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==", 3290 + "dev": true, 3291 + "license": "MIT", 3292 + "dependencies": { 3293 + "@octokit/types": "^14.1.0" 3294 + }, 3295 + "engines": { 3296 + "node": ">= 20" 3297 + }, 3298 + "peerDependencies": { 3299 + "@octokit/core": ">=6" 3300 + } 3301 + }, 3302 + "node_modules/@octokit/plugin-request-log": { 3303 + "version": "6.0.0", 3304 + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-6.0.0.tgz", 3305 + "integrity": "sha512-UkOzeEN3W91/eBq9sPZNQ7sUBvYCqYbrrD8gTbBuGtHEuycE4/awMXcYvx6sVYo7LypPhmQwwpUe4Yyu4QZN5Q==", 3306 + "dev": true, 3307 + "license": "MIT", 3308 + "engines": { 3309 + "node": ">= 20" 3310 + }, 3311 + "peerDependencies": { 3312 + "@octokit/core": ">=6" 3313 + } 3314 + }, 3315 + "node_modules/@octokit/plugin-rest-endpoint-methods": { 3316 + "version": "16.0.0", 3317 + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-16.0.0.tgz", 3318 + "integrity": "sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==", 3319 + "dev": true, 3320 + "license": "MIT", 3321 + "dependencies": { 3322 + "@octokit/types": "^14.1.0" 3323 + }, 3324 + "engines": { 3325 + "node": ">= 20" 3326 + }, 3327 + "peerDependencies": { 3328 + "@octokit/core": ">=6" 3329 + } 3330 + }, 3331 + "node_modules/@octokit/request": { 3332 + "version": "10.0.3", 3333 + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.3.tgz", 3334 + "integrity": "sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==", 3335 + "dev": true, 3336 + "license": "MIT", 3337 + "dependencies": { 3338 + "@octokit/endpoint": "^11.0.0", 3339 + "@octokit/request-error": "^7.0.0", 3340 + "@octokit/types": "^14.0.0", 3341 + "fast-content-type-parse": "^3.0.0", 3342 + "universal-user-agent": "^7.0.2" 3343 + }, 3344 + "engines": { 3345 + "node": ">= 20" 3346 + } 3347 + }, 3348 + "node_modules/@octokit/request-error": { 3349 + "version": "7.0.0", 3350 + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.0.0.tgz", 3351 + "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==", 3352 + "dev": true, 3353 + "license": "MIT", 3354 + "dependencies": { 3355 + "@octokit/types": "^14.0.0" 3356 + }, 3357 + "engines": { 3358 + "node": ">= 20" 3359 + } 3360 + }, 3361 + "node_modules/@octokit/rest": { 3362 + "version": "22.0.0", 3363 + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-22.0.0.tgz", 3364 + "integrity": "sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==", 3365 + "dev": true, 3366 + "license": "MIT", 3367 + "dependencies": { 3368 + "@octokit/core": "^7.0.2", 3369 + "@octokit/plugin-paginate-rest": "^13.0.1", 3370 + "@octokit/plugin-request-log": "^6.0.0", 3371 + "@octokit/plugin-rest-endpoint-methods": "^16.0.0" 3372 + }, 3373 + "engines": { 3374 + "node": ">= 20" 3375 + } 3376 + }, 3377 + "node_modules/@octokit/types": { 3378 + "version": "14.1.0", 3379 + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", 3380 + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", 3381 + "dev": true, 3382 + "license": "MIT", 3383 + "dependencies": { 3384 + "@octokit/openapi-types": "^25.1.0" 3385 + } 3386 + }, 1720 3387 "node_modules/@parcel/watcher": { 1721 3388 "version": "2.5.1", 1722 3389 "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", ··· 2710 4377 "dev": true, 2711 4378 "license": "MIT" 2712 4379 }, 4380 + "node_modules/@tybys/wasm-util": { 4381 + "version": "0.10.1", 4382 + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", 4383 + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", 4384 + "dev": true, 4385 + "license": "MIT", 4386 + "optional": true, 4387 + "dependencies": { 4388 + "tslib": "^2.4.0" 4389 + } 4390 + }, 2713 4391 "node_modules/@types/cacheable-request": { 2714 4392 "version": "6.0.3", 2715 4393 "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", ··· 3203 4881 "ajv": "^6.9.1" 3204 4882 } 3205 4883 }, 4884 + "node_modules/ansi-escapes": { 4885 + "version": "4.3.2", 4886 + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", 4887 + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", 4888 + "dev": true, 4889 + "license": "MIT", 4890 + "dependencies": { 4891 + "type-fest": "^0.21.3" 4892 + }, 4893 + "engines": { 4894 + "node": ">=8" 4895 + }, 4896 + "funding": { 4897 + "url": "https://github.com/sponsors/sindresorhus" 4898 + } 4899 + }, 4900 + "node_modules/ansi-escapes/node_modules/type-fest": { 4901 + "version": "0.21.3", 4902 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", 4903 + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", 4904 + "dev": true, 4905 + "license": "(MIT OR CC0-1.0)", 4906 + "engines": { 4907 + "node": ">=10" 4908 + }, 4909 + "funding": { 4910 + "url": "https://github.com/sponsors/sindresorhus" 4911 + } 4912 + }, 3206 4913 "node_modules/ansi-regex": { 3207 4914 "version": "5.0.1", 3208 4915 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", ··· 3474 5181 } 3475 5182 ], 3476 5183 "license": "MIT" 5184 + }, 5185 + "node_modules/before-after-hook": { 5186 + "version": "4.0.0", 5187 + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz", 5188 + "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==", 5189 + "dev": true, 5190 + "license": "Apache-2.0" 3477 5191 }, 3478 5192 "node_modules/bl": { 3479 5193 "version": "4.1.0", ··· 3811 5525 "url": "https://github.com/chalk/chalk?sponsor=1" 3812 5526 } 3813 5527 }, 5528 + "node_modules/chardet": { 5529 + "version": "2.1.0", 5530 + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", 5531 + "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", 5532 + "dev": true, 5533 + "license": "MIT" 5534 + }, 3814 5535 "node_modules/chokidar": { 3815 5536 "version": "4.0.3", 3816 5537 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", ··· 3914 5635 "url": "https://github.com/sponsors/sindresorhus" 3915 5636 } 3916 5637 }, 5638 + "node_modules/cli-width": { 5639 + "version": "4.1.0", 5640 + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", 5641 + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", 5642 + "dev": true, 5643 + "license": "ISC", 5644 + "engines": { 5645 + "node": ">= 12" 5646 + } 5647 + }, 5648 + "node_modules/clipanion": { 5649 + "version": "4.0.0-rc.4", 5650 + "resolved": "https://registry.npmjs.org/clipanion/-/clipanion-4.0.0-rc.4.tgz", 5651 + "integrity": "sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q==", 5652 + "dev": true, 5653 + "license": "MIT", 5654 + "workspaces": [ 5655 + "website" 5656 + ], 5657 + "dependencies": { 5658 + "typanion": "^3.8.0" 5659 + }, 5660 + "peerDependencies": { 5661 + "typanion": "*" 5662 + } 5663 + }, 3917 5664 "node_modules/cliui": { 3918 5665 "version": "8.0.1", 3919 5666 "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", ··· 3979 5726 "version": "1.1.4", 3980 5727 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3981 5728 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 5729 + "dev": true, 5730 + "license": "MIT" 5731 + }, 5732 + "node_modules/colorette": { 5733 + "version": "2.0.20", 5734 + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", 5735 + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", 3982 5736 "dev": true, 3983 5737 "license": "MIT" 3984 5738 }, ··· 4771 6525 "node": ">= 0.4" 4772 6526 } 4773 6527 }, 6528 + "node_modules/es-toolkit": { 6529 + "version": "1.39.10", 6530 + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.10.tgz", 6531 + "integrity": "sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==", 6532 + "dev": true, 6533 + "license": "MIT", 6534 + "workspaces": [ 6535 + "docs", 6536 + "benchmarks" 6537 + ] 6538 + }, 4774 6539 "node_modules/es6-error": { 4775 6540 "version": "4.1.1", 4776 6541 "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", ··· 5166 6931 ], 5167 6932 "license": "MIT", 5168 6933 "optional": true 6934 + }, 6935 + "node_modules/fast-content-type-parse": { 6936 + "version": "3.0.0", 6937 + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-3.0.0.tgz", 6938 + "integrity": "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==", 6939 + "dev": true, 6940 + "funding": [ 6941 + { 6942 + "type": "github", 6943 + "url": "https://github.com/sponsors/fastify" 6944 + }, 6945 + { 6946 + "type": "opencollective", 6947 + "url": "https://opencollective.com/fastify" 6948 + } 6949 + ], 6950 + "license": "MIT" 5169 6951 }, 5170 6952 "node_modules/fast-deep-equal": { 5171 6953 "version": "3.1.3", ··· 6941 8723 "dev": true, 6942 8724 "license": "MIT" 6943 8725 }, 8726 + "node_modules/mute-stream": { 8727 + "version": "2.0.0", 8728 + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", 8729 + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", 8730 + "dev": true, 8731 + "license": "ISC", 8732 + "engines": { 8733 + "node": "^18.17.0 || >=20.5.0" 8734 + } 8735 + }, 6944 8736 "node_modules/nanoid": { 6945 8737 "version": "3.3.11", 6946 8738 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", ··· 8836 10628 "typescript": ">=4.8.4" 8837 10629 } 8838 10630 }, 10631 + "node_modules/tslib": { 10632 + "version": "2.8.1", 10633 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 10634 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 10635 + "dev": true, 10636 + "license": "0BSD", 10637 + "optional": true 10638 + }, 10639 + "node_modules/typanion": { 10640 + "version": "3.14.0", 10641 + "resolved": "https://registry.npmjs.org/typanion/-/typanion-3.14.0.tgz", 10642 + "integrity": "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==", 10643 + "dev": true, 10644 + "license": "MIT", 10645 + "workspaces": [ 10646 + "website" 10647 + ] 10648 + }, 8839 10649 "node_modules/type-check": { 8840 10650 "version": "0.4.0", 8841 10651 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", ··· 8907 10717 "dev": true, 8908 10718 "license": "MIT" 8909 10719 }, 10720 + "node_modules/unicorn-magic": { 10721 + "version": "0.1.0", 10722 + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", 10723 + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", 10724 + "dev": true, 10725 + "license": "MIT", 10726 + "engines": { 10727 + "node": ">=18" 10728 + }, 10729 + "funding": { 10730 + "url": "https://github.com/sponsors/sindresorhus" 10731 + } 10732 + }, 8910 10733 "node_modules/unique-filename": { 8911 10734 "version": "2.0.1", 8912 10735 "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", ··· 8932 10755 "engines": { 8933 10756 "node": "^12.13.0 || ^14.15.0 || >=16.0.0" 8934 10757 } 10758 + }, 10759 + "node_modules/universal-user-agent": { 10760 + "version": "7.0.3", 10761 + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", 10762 + "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", 10763 + "dev": true, 10764 + "license": "ISC" 8935 10765 }, 8936 10766 "node_modules/universalify": { 8937 10767 "version": "0.1.2", ··· 9290 11120 "license": "MIT", 9291 11121 "engines": { 9292 11122 "node": ">=10" 11123 + }, 11124 + "funding": { 11125 + "url": "https://github.com/sponsors/sindresorhus" 11126 + } 11127 + }, 11128 + "node_modules/yoctocolors-cjs": { 11129 + "version": "2.1.3", 11130 + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", 11131 + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", 11132 + "dev": true, 11133 + "license": "MIT", 11134 + "engines": { 11135 + "node": ">=18" 9293 11136 }, 9294 11137 "funding": { 9295 11138 "url": "https://github.com/sponsors/sindresorhus"
+12 -4
package.json
··· 12 12 "dev": "npm run napi:dev && vite dev", 13 13 "dev-prod": "npm run napi && APP_ENV=prod vite dev", 14 14 "dev-release": "npm run napi && vite dev", 15 - "napi": "napi build ferrum-addon --dts addon.d.ts --release", 16 - "napi:dev": "napi build ferrum-addon --dts addon.d.ts", 15 + "napi": "napi build --output-dir ferrum-addon --dts addon.d.ts --release", 16 + "napi:dev": "napi build --output-dir ferrum-addon --dts addon.d.ts", 17 17 "build": "npm run napi && npm run build:web && electron-builder && npm run generate-update-json", 18 18 "build:web": "vite build", 19 19 "electron-builder": "electron-builder", ··· 65 65 }, 66 66 "main": "build/electron/main.js", 67 67 "napi": { 68 - "name": "addon" 68 + "binaryName": "addon", 69 + "targets": [ 70 + "x86_64-pc-windows-msvc", 71 + "x86_64-apple-darwin", 72 + "x86_64-unknown-linux-gnu", 73 + "aarch64-unknown-linux-gnu", 74 + "aarch64-apple-darwin", 75 + "aarch64-pc-windows-msvc" 76 + ] 69 77 }, 70 78 "devDependencies": { 71 79 "@eslint/compat": "^1.3.1", 72 80 "@eslint/js": "^9.30.1", 73 - "@napi-rs/cli": "^2.18.4", 81 + "@napi-rs/cli": "^3.2.0", 74 82 "@sveltejs/vite-plugin-svelte": "^5.1.0", 75 83 "@tailwindcss/vite": "^4.1.8", 76 84 "@tsconfig/svelte": "^5.0.4",
+6 -6
src-native/data_js.rs
··· 1 1 use crate::data::Data; 2 2 use anyhow::Result; 3 - use napi::{Env, JsUndefined}; 3 + use napi::Env; 4 4 use rfd::MessageDialog; 5 5 6 6 pub fn get_data(env: &Env) -> &mut Data { ··· 67 67 68 68 #[napi(js_name = "get_paths")] 69 69 #[allow(dead_code)] 70 - pub fn get_paths(env: Env) -> Result<PathsJs> { 70 + pub fn get_paths(env: Env) -> PathsJs { 71 71 let data: &mut Data = get_data(&env); 72 - Ok(PathsJs { 72 + PathsJs { 73 73 library_dir: data.paths.library_dir.to_string_lossy().into(), 74 74 tracks_dir: data.paths.tracks_dir.to_string_lossy().into(), 75 75 library_json: data.paths.library_json.to_string_lossy().into(), 76 76 cache_db: data.paths.cache_db.to_string_lossy().into(), 77 77 local_data_dir: data.paths.local_data_dir.to_string_lossy().into(), 78 78 path_separator: std::path::MAIN_SEPARATOR_STR.into(), 79 - }) 79 + } 80 80 } 81 81 82 82 #[napi(js_name = "save")] 83 83 #[allow(dead_code)] 84 - pub fn save(env: Env) -> napi::Result<JsUndefined> { 84 + pub fn save(env: Env) -> napi::Result<()> { 85 85 let data: &mut Data = get_data(&env); 86 86 data.save()?; 87 - env.get_undefined() 87 + Ok(()) 88 88 }
+1 -1
src-native/library_types.rs
··· 531 531 pub children: Vec<TrackListID>, 532 532 } 533 533 534 - #[derive(Serialize, Deserialize, Debug)] 534 + #[derive(Serialize, Deserialize, Clone, Debug)] 535 535 #[non_exhaustive] 536 536 #[napi] 537 537 pub enum SpecialTrackListName {
+2 -2
src-native/playlists.rs
··· 7 7 use crate::str_to_option; 8 8 use anyhow::{Context, Result, bail}; 9 9 use linked_hash_map::LinkedHashMap; 10 - use napi::{Env, JsUnknown}; 10 + use napi::{Env, Unknown}; 11 11 use std::collections::{HashMap, HashSet}; 12 12 use std::path::PathBuf; 13 13 ··· 59 59 60 60 #[napi(js_name = "get_track_list", ts_return_type = "TrackList")] 61 61 #[allow(dead_code)] 62 - pub fn get_track_list(id: String, env: Env) -> Result<JsUnknown> { 62 + pub fn get_track_list<'a>(id: String, env: Env) -> Result<Unknown<'a>> { 63 63 let data: &mut Data = get_data(&env); 64 64 let tracklist = data.library.get_tracklist(&id)?; 65 65 Ok(env.to_js_value(&tracklist)?)
+2 -2
src-native/sort.rs
··· 1 - use crate::library::{get_track_field_type, TrackField}; 2 - use crate::library_types::{ItemId, Library, Track, TRACK_ID_MAP}; 1 + use crate::library::{TrackField, get_track_field_type}; 2 + use crate::library_types::{ItemId, Library, TRACK_ID_MAP, Track}; 3 3 use crate::page::TracksPageOptions; 4 4 use crate::playlists::get_tracklist_item_ids; 5 5 use alphanumeric_sort::compare_str;
+19 -20
src-native/tracks/cover.rs
··· 9 9 use image::codecs::png::PngEncoder; 10 10 use image::{ImageEncoder, ImageFormat, ImageReader}; 11 11 use lazy_static::lazy_static; 12 - use napi::bindgen_prelude::Buffer; 13 - use napi::{Env, JsBuffer, JsObject, Task}; 12 + use napi::bindgen_prelude::{AsyncTask, Buffer}; 13 + use napi::{Env, Task}; 14 14 use redb::{Database, TableDefinition}; 15 15 use std::fs; 16 16 use std::io::{BufWriter, Cursor}; ··· 218 218 Ok(img_bytes) 219 219 } 220 220 221 - /// File path, artwork index 222 - struct ReadCover(PathBuf, usize); 221 + pub struct ReadCover { 222 + path: PathBuf, 223 + index: usize, 224 + } 223 225 impl Task for ReadCover { 224 226 type Output = Option<Vec<u8>>; 225 - type JsValue = Option<JsBuffer>; 227 + type JsValue = Option<Buffer>; 226 228 fn compute(&mut self) -> napi::Result<Self::Output> { 227 - let path = &self.0; 228 - let index = self.1; 229 - 230 - let tag = Tag::read_from_path(path)?; 231 - let image = match tag.get_image_consume(index)? { 229 + let tag = Tag::read_from_path(&self.path)?; 230 + let image = match tag.get_image_consume(self.index)? { 232 231 Some(image) => image, 233 232 None => { 234 233 return Ok(None); ··· 237 236 238 237 Ok(Some(image.data)) 239 238 } 240 - fn resolve(&mut self, env: Env, output: Self::Output) -> napi::Result<Self::JsValue> { 239 + fn resolve(&mut self, _env: Env, output: Self::Output) -> napi::Result<Self::JsValue> { 241 240 match output { 242 - Some(output) => Ok(Some(env.create_buffer_copy(output)?.into_raw())), 241 + Some(output) => Ok(Some(Buffer::from(output))), 243 242 None => Ok(None), 244 243 } 245 244 } 246 245 } 247 - #[napi( 248 - js_name = "read_cover_async", 249 - ts_return_type = "Promise<ArrayBuffer | null>" 250 - )] 246 + #[napi(js_name = "read_cover_async", ts_return_type = "Promise<ArrayBuffer>")] 251 247 #[allow(dead_code)] 252 - pub fn read_cover_async(track_id: String, index: u16, env: Env) -> napi::Result<JsObject> { 248 + pub fn read_cover_async(track_id: String, index: u16, env: Env) -> AsyncTask<ReadCover> { 253 249 let data: &mut Data = get_data(&env); 254 - let track = id_to_track(&env, &track_id)?; 250 + let track = id_to_track(&env, &track_id).expect("Track ID not found"); 255 251 let tracks_dir = &data.paths.tracks_dir; 256 252 let file_path = tracks_dir.join(&track.file); 257 - let task = ReadCover(file_path, index.into()); 258 - env.spawn(task).map(|t| t.promise_object()) 253 + let task = ReadCover { 254 + path: file_path, 255 + index: index.into(), 256 + }; 257 + AsyncTask::new(task) 259 258 }
+6 -5
src-native/tracks/mod.rs
··· 3 3 use crate::get_now_timestamp; 4 4 use crate::library_types::{ItemId, MsSinceUnixEpoch, TRACK_ID_MAP, Track, TrackID}; 5 5 use anyhow::{Context, Result, bail}; 6 - use napi::{Env, JsArrayBuffer, JsBuffer}; 6 + use napi::Env; 7 + use napi::bindgen_prelude::{ArrayBuffer, Buffer}; 7 8 use std::fs; 8 9 use std::path::Path; 9 10 ··· 174 175 pub index: i64, 175 176 pub total_images: i64, 176 177 pub mime_type: String, 177 - pub data: JsBuffer, 178 + pub data: Buffer, 178 179 } 179 180 180 181 #[napi(js_name = "get_image")] ··· 195 196 index: img.index, 196 197 total_images: img.total_images, 197 198 mime_type: img.mime_type.to_string(), 198 - data: env.create_buffer_copy(img.data)?.into_raw(), 199 + data: img.data.into(), 199 200 }; 200 201 Ok(Some(js_image)) 201 202 } ··· 216 217 217 218 #[napi(js_name = "set_image_data")] 218 219 #[allow(dead_code)] 219 - pub fn set_image_data(index: u32, bytes: JsArrayBuffer, env: Env) -> Result<()> { 220 - let bytes: Vec<u8> = bytes.into_value()?.to_vec(); 220 + pub fn set_image_data(index: u32, bytes: ArrayBuffer, env: Env) -> Result<()> { 221 + let bytes: Vec<u8> = bytes.to_vec(); 221 222 let data: &mut Data = get_data(&env); 222 223 let tag = match &mut data.current_tag { 223 224 Some(tag) => tag,