My blog (https://blog.eldridge.cam)
0
fork

Configure Feed

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

did some silliness with AI and implemented a (pretty bad) search?

+2070 -38
+3 -3
bundler.js
··· 32 32 } 33 33 34 34 async function build() { 35 - compileArticles(); 35 + await compileArticles(); 36 36 await vite.build(await config()); 37 37 } 38 38 ··· 44 44 45 45 switch (process.argv[2]) { 46 46 case "build": 47 - build(); 47 + await build(); 48 48 break; 49 49 default: 50 - dev(); 50 + await dev(); 51 51 break; 52 52 }
+38 -20
compile-articles.js
··· 1 - import { readdirSync, existsSync, readFileSync, writeFileSync } from "node:fs"; 2 1 import { spawnSync } from "node:child_process"; 2 + import { readdir, readFile, writeFile } from "node:fs/promises"; 3 + import { existsSync } from "node:fs"; 4 + 3 5 import fm from "front-matter"; 6 + 7 + const { pipeline, env } = await import("@huggingface/transformers"); 8 + env.allowLocalModels = false; 9 + env.cacheDir = ".cache"; 4 10 5 11 const html = (article) => `<!DOCTYPE HTML> 6 12 <html> ··· 48 54 return value; 49 55 } 50 56 51 - export function compileArticles(force = false) { 57 + export async function compileArticles(force = false) { 58 + const embed = await pipeline("feature-extraction", "intfloat/e5-small-v2", { 59 + dtype: "fp32", 60 + subfolder: "", 61 + }); 62 + 52 63 const articles = []; 53 - const dir = readdirSync("./article/"); 64 + const dir = await readdir("./article/"); 54 65 let previousManifest = []; 55 66 if (existsSync("./article/manifest.json")) { 56 67 previousManifest = JSON.parse( 57 - readFileSync("./article/manifest.json"), 58 - dater 68 + await readFile("./article/manifest.json", "utf8"), 69 + dater, 59 70 ); 60 71 } 61 72 62 73 for (const id of dir) { 63 74 if (id === "manifest.json") continue; 64 - const article = readFileSync(`./article/${id}/article.svx`).toString(); 65 - const { attributes } = fm(article); 75 + const article = await readFile(`./article/${id}/article.svx`, "utf8"); 76 + const { attributes, body } = fm(article); 66 77 attributes.id = id; 67 - if ( 68 - !equal( 69 - attributes, 70 - previousManifest.find((entry) => entry.id === id) 71 - ) 72 - ) { 78 + const existing = previousManifest.find((entry) => entry.id === id); 79 + 80 + let embedding = existing?.embedding; 81 + if (existing) delete existing.embedding; 82 + 83 + if (!existing || !embedding || !equal(attributes, existing)) { 73 84 console.log(`Replacing article ${id}`); 74 - writeFileSync(`./article/${id}/index.html`, html(attributes)); 75 - writeFileSync(`./article/${id}/index.js`, js(id)); 85 + [, , embedding] = await Promise.all([ 86 + writeFile(`./article/${id}/index.html`, html(attributes)), 87 + writeFile(`./article/${id}/index.js`, js(id)), 88 + embed(`query: ${body}`, { 89 + pooling: "mean", 90 + normalize: true, 91 + }), 92 + ]); 93 + embedding = embedding.tolist()[0]; 76 94 } 77 95 if (attributes.outline) { 78 96 for (const { language, output } of attributes.outline) { 79 - const input = readFileSync(`./article/${id}/article.svx`); 97 + const input = await readFile(`./article/${id}/article.svx`, "utf8"); 80 98 const { stdout: tangle } = spawnSync("outline", ["-l", language], { 81 99 input, 82 100 }); 83 101 const filename = output || `article.${language}`; 84 102 const previous = existsSync(`./article/${id}/${output}`) 85 - ? readFileSync(`./article/${id}/${output}`) 103 + ? await readFile(`./article/${id}/${output}`) 86 104 : Buffer.from(""); 87 105 if (Buffer.compare(previous, tangle) !== 0) { 88 - writeFileSync(`./article/${id}/${output}`, tangle); 106 + await writeFile(`./article/${id}/${output}`, tangle); 89 107 } 90 108 } 91 109 } 92 - articles.push(attributes); 110 + articles.push({ ...attributes, embedding }); 93 111 } 94 112 95 113 articles.sort((a, b) => new Date(b.date) - new Date(a.date)); 96 114 if (!equal(previousManifest, articles)) { 97 115 console.log("Replacing manifest"); 98 - writeFileSync("./article/manifest.json", JSON.stringify(articles)); 116 + await writeFile("./article/manifest.json", JSON.stringify(articles)); 99 117 } 100 118 }
+1873 -4
package-lock.json
··· 9 9 "version": "1.0.0", 10 10 "license": "ISC", 11 11 "dependencies": { 12 + "@huggingface/transformers": "^3.4.0", 13 + "@xenova/transformers": "^2.17.2", 12 14 "tau-prolog": "^0.2.81" 13 15 }, 14 16 "devDependencies": { ··· 38 40 }, 39 41 "engines": { 40 42 "node": ">=6.0.0" 43 + } 44 + }, 45 + "node_modules/@emnapi/runtime": { 46 + "version": "1.3.1", 47 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", 48 + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", 49 + "license": "MIT", 50 + "optional": true, 51 + "dependencies": { 52 + "tslib": "^2.4.0" 41 53 } 42 54 }, 43 55 "node_modules/@esbuild/aix-ppc64": { ··· 431 443 "node": ">=12" 432 444 } 433 445 }, 446 + "node_modules/@huggingface/jinja": { 447 + "version": "0.3.3", 448 + "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.3.3.tgz", 449 + "integrity": "sha512-vQQr2JyWvVFba3Lj9es4q9vCl1sAc74fdgnEMoX8qHrXtswap9ge9uO3ONDzQB0cQ0PUyaKY2N6HaVbTBvSXvw==", 450 + "license": "MIT", 451 + "engines": { 452 + "node": ">=18" 453 + } 454 + }, 455 + "node_modules/@huggingface/transformers": { 456 + "version": "3.4.0", 457 + "resolved": "https://registry.npmjs.org/@huggingface/transformers/-/transformers-3.4.0.tgz", 458 + "integrity": "sha512-jyuglsWc+Ls9/U7eGDDY+xYgDgDtwxQ4ul/5VQoqo2r0LfAnJ+zSRUjKnY6paOyzyhbKaftfEsvXJ049aL1cyw==", 459 + "license": "Apache-2.0", 460 + "dependencies": { 461 + "@huggingface/jinja": "^0.3.3", 462 + "onnxruntime-node": "1.20.1", 463 + "onnxruntime-web": "1.22.0-dev.20250306-ccf8fdd9ea", 464 + "sharp": "^0.33.5" 465 + } 466 + }, 467 + "node_modules/@img/sharp-darwin-arm64": { 468 + "version": "0.33.5", 469 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 470 + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 471 + "cpu": [ 472 + "arm64" 473 + ], 474 + "license": "Apache-2.0", 475 + "optional": true, 476 + "os": [ 477 + "darwin" 478 + ], 479 + "engines": { 480 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 481 + }, 482 + "funding": { 483 + "url": "https://opencollective.com/libvips" 484 + }, 485 + "optionalDependencies": { 486 + "@img/sharp-libvips-darwin-arm64": "1.0.4" 487 + } 488 + }, 489 + "node_modules/@img/sharp-darwin-x64": { 490 + "version": "0.33.5", 491 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 492 + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 493 + "cpu": [ 494 + "x64" 495 + ], 496 + "license": "Apache-2.0", 497 + "optional": true, 498 + "os": [ 499 + "darwin" 500 + ], 501 + "engines": { 502 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 503 + }, 504 + "funding": { 505 + "url": "https://opencollective.com/libvips" 506 + }, 507 + "optionalDependencies": { 508 + "@img/sharp-libvips-darwin-x64": "1.0.4" 509 + } 510 + }, 511 + "node_modules/@img/sharp-libvips-darwin-arm64": { 512 + "version": "1.0.4", 513 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 514 + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 515 + "cpu": [ 516 + "arm64" 517 + ], 518 + "license": "LGPL-3.0-or-later", 519 + "optional": true, 520 + "os": [ 521 + "darwin" 522 + ], 523 + "funding": { 524 + "url": "https://opencollective.com/libvips" 525 + } 526 + }, 527 + "node_modules/@img/sharp-libvips-darwin-x64": { 528 + "version": "1.0.4", 529 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 530 + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 531 + "cpu": [ 532 + "x64" 533 + ], 534 + "license": "LGPL-3.0-or-later", 535 + "optional": true, 536 + "os": [ 537 + "darwin" 538 + ], 539 + "funding": { 540 + "url": "https://opencollective.com/libvips" 541 + } 542 + }, 543 + "node_modules/@img/sharp-libvips-linux-arm": { 544 + "version": "1.0.5", 545 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 546 + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 547 + "cpu": [ 548 + "arm" 549 + ], 550 + "license": "LGPL-3.0-or-later", 551 + "optional": true, 552 + "os": [ 553 + "linux" 554 + ], 555 + "funding": { 556 + "url": "https://opencollective.com/libvips" 557 + } 558 + }, 559 + "node_modules/@img/sharp-libvips-linux-arm64": { 560 + "version": "1.0.4", 561 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 562 + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 563 + "cpu": [ 564 + "arm64" 565 + ], 566 + "license": "LGPL-3.0-or-later", 567 + "optional": true, 568 + "os": [ 569 + "linux" 570 + ], 571 + "funding": { 572 + "url": "https://opencollective.com/libvips" 573 + } 574 + }, 575 + "node_modules/@img/sharp-libvips-linux-s390x": { 576 + "version": "1.0.4", 577 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 578 + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 579 + "cpu": [ 580 + "s390x" 581 + ], 582 + "license": "LGPL-3.0-or-later", 583 + "optional": true, 584 + "os": [ 585 + "linux" 586 + ], 587 + "funding": { 588 + "url": "https://opencollective.com/libvips" 589 + } 590 + }, 591 + "node_modules/@img/sharp-libvips-linux-x64": { 592 + "version": "1.0.4", 593 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 594 + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 595 + "cpu": [ 596 + "x64" 597 + ], 598 + "license": "LGPL-3.0-or-later", 599 + "optional": true, 600 + "os": [ 601 + "linux" 602 + ], 603 + "funding": { 604 + "url": "https://opencollective.com/libvips" 605 + } 606 + }, 607 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 608 + "version": "1.0.4", 609 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 610 + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 611 + "cpu": [ 612 + "arm64" 613 + ], 614 + "license": "LGPL-3.0-or-later", 615 + "optional": true, 616 + "os": [ 617 + "linux" 618 + ], 619 + "funding": { 620 + "url": "https://opencollective.com/libvips" 621 + } 622 + }, 623 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 624 + "version": "1.0.4", 625 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 626 + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 627 + "cpu": [ 628 + "x64" 629 + ], 630 + "license": "LGPL-3.0-or-later", 631 + "optional": true, 632 + "os": [ 633 + "linux" 634 + ], 635 + "funding": { 636 + "url": "https://opencollective.com/libvips" 637 + } 638 + }, 639 + "node_modules/@img/sharp-linux-arm": { 640 + "version": "0.33.5", 641 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 642 + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 643 + "cpu": [ 644 + "arm" 645 + ], 646 + "license": "Apache-2.0", 647 + "optional": true, 648 + "os": [ 649 + "linux" 650 + ], 651 + "engines": { 652 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 653 + }, 654 + "funding": { 655 + "url": "https://opencollective.com/libvips" 656 + }, 657 + "optionalDependencies": { 658 + "@img/sharp-libvips-linux-arm": "1.0.5" 659 + } 660 + }, 661 + "node_modules/@img/sharp-linux-arm64": { 662 + "version": "0.33.5", 663 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 664 + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 665 + "cpu": [ 666 + "arm64" 667 + ], 668 + "license": "Apache-2.0", 669 + "optional": true, 670 + "os": [ 671 + "linux" 672 + ], 673 + "engines": { 674 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 675 + }, 676 + "funding": { 677 + "url": "https://opencollective.com/libvips" 678 + }, 679 + "optionalDependencies": { 680 + "@img/sharp-libvips-linux-arm64": "1.0.4" 681 + } 682 + }, 683 + "node_modules/@img/sharp-linux-s390x": { 684 + "version": "0.33.5", 685 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 686 + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 687 + "cpu": [ 688 + "s390x" 689 + ], 690 + "license": "Apache-2.0", 691 + "optional": true, 692 + "os": [ 693 + "linux" 694 + ], 695 + "engines": { 696 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 697 + }, 698 + "funding": { 699 + "url": "https://opencollective.com/libvips" 700 + }, 701 + "optionalDependencies": { 702 + "@img/sharp-libvips-linux-s390x": "1.0.4" 703 + } 704 + }, 705 + "node_modules/@img/sharp-linux-x64": { 706 + "version": "0.33.5", 707 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 708 + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 709 + "cpu": [ 710 + "x64" 711 + ], 712 + "license": "Apache-2.0", 713 + "optional": true, 714 + "os": [ 715 + "linux" 716 + ], 717 + "engines": { 718 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 719 + }, 720 + "funding": { 721 + "url": "https://opencollective.com/libvips" 722 + }, 723 + "optionalDependencies": { 724 + "@img/sharp-libvips-linux-x64": "1.0.4" 725 + } 726 + }, 727 + "node_modules/@img/sharp-linuxmusl-arm64": { 728 + "version": "0.33.5", 729 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 730 + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 731 + "cpu": [ 732 + "arm64" 733 + ], 734 + "license": "Apache-2.0", 735 + "optional": true, 736 + "os": [ 737 + "linux" 738 + ], 739 + "engines": { 740 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 741 + }, 742 + "funding": { 743 + "url": "https://opencollective.com/libvips" 744 + }, 745 + "optionalDependencies": { 746 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 747 + } 748 + }, 749 + "node_modules/@img/sharp-linuxmusl-x64": { 750 + "version": "0.33.5", 751 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 752 + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 753 + "cpu": [ 754 + "x64" 755 + ], 756 + "license": "Apache-2.0", 757 + "optional": true, 758 + "os": [ 759 + "linux" 760 + ], 761 + "engines": { 762 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 763 + }, 764 + "funding": { 765 + "url": "https://opencollective.com/libvips" 766 + }, 767 + "optionalDependencies": { 768 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 769 + } 770 + }, 771 + "node_modules/@img/sharp-wasm32": { 772 + "version": "0.33.5", 773 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 774 + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 775 + "cpu": [ 776 + "wasm32" 777 + ], 778 + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 779 + "optional": true, 780 + "dependencies": { 781 + "@emnapi/runtime": "^1.2.0" 782 + }, 783 + "engines": { 784 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 785 + }, 786 + "funding": { 787 + "url": "https://opencollective.com/libvips" 788 + } 789 + }, 790 + "node_modules/@img/sharp-win32-ia32": { 791 + "version": "0.33.5", 792 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 793 + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 794 + "cpu": [ 795 + "ia32" 796 + ], 797 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 798 + "optional": true, 799 + "os": [ 800 + "win32" 801 + ], 802 + "engines": { 803 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 804 + }, 805 + "funding": { 806 + "url": "https://opencollective.com/libvips" 807 + } 808 + }, 809 + "node_modules/@img/sharp-win32-x64": { 810 + "version": "0.33.5", 811 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 812 + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 813 + "cpu": [ 814 + "x64" 815 + ], 816 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 817 + "optional": true, 818 + "os": [ 819 + "win32" 820 + ], 821 + "engines": { 822 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 823 + }, 824 + "funding": { 825 + "url": "https://opencollective.com/libvips" 826 + } 827 + }, 828 + "node_modules/@isaacs/cliui": { 829 + "version": "8.0.2", 830 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 831 + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 832 + "license": "ISC", 833 + "dependencies": { 834 + "string-width": "^5.1.2", 835 + "string-width-cjs": "npm:string-width@^4.2.0", 836 + "strip-ansi": "^7.0.1", 837 + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 838 + "wrap-ansi": "^8.1.0", 839 + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 840 + }, 841 + "engines": { 842 + "node": ">=12" 843 + } 844 + }, 845 + "node_modules/@isaacs/fs-minipass": { 846 + "version": "4.0.1", 847 + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", 848 + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", 849 + "license": "ISC", 850 + "dependencies": { 851 + "minipass": "^7.0.4" 852 + }, 853 + "engines": { 854 + "node": ">=18.0.0" 855 + } 856 + }, 434 857 "node_modules/@jridgewell/gen-mapping": { 435 858 "version": "0.3.8", 436 859 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", ··· 484 907 "@jridgewell/sourcemap-codec": "^1.4.14" 485 908 } 486 909 }, 910 + "node_modules/@pkgjs/parseargs": { 911 + "version": "0.11.0", 912 + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 913 + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 914 + "license": "MIT", 915 + "optional": true, 916 + "engines": { 917 + "node": ">=14" 918 + } 919 + }, 920 + "node_modules/@protobufjs/aspromise": { 921 + "version": "1.1.2", 922 + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 923 + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", 924 + "license": "BSD-3-Clause" 925 + }, 926 + "node_modules/@protobufjs/base64": { 927 + "version": "1.1.2", 928 + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 929 + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", 930 + "license": "BSD-3-Clause" 931 + }, 932 + "node_modules/@protobufjs/codegen": { 933 + "version": "2.0.4", 934 + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 935 + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", 936 + "license": "BSD-3-Clause" 937 + }, 938 + "node_modules/@protobufjs/eventemitter": { 939 + "version": "1.1.0", 940 + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 941 + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", 942 + "license": "BSD-3-Clause" 943 + }, 944 + "node_modules/@protobufjs/fetch": { 945 + "version": "1.1.0", 946 + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 947 + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", 948 + "license": "BSD-3-Clause", 949 + "dependencies": { 950 + "@protobufjs/aspromise": "^1.1.1", 951 + "@protobufjs/inquire": "^1.1.0" 952 + } 953 + }, 954 + "node_modules/@protobufjs/float": { 955 + "version": "1.0.2", 956 + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 957 + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", 958 + "license": "BSD-3-Clause" 959 + }, 960 + "node_modules/@protobufjs/inquire": { 961 + "version": "1.1.0", 962 + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 963 + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", 964 + "license": "BSD-3-Clause" 965 + }, 966 + "node_modules/@protobufjs/path": { 967 + "version": "1.1.2", 968 + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 969 + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", 970 + "license": "BSD-3-Clause" 971 + }, 972 + "node_modules/@protobufjs/pool": { 973 + "version": "1.1.0", 974 + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 975 + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", 976 + "license": "BSD-3-Clause" 977 + }, 978 + "node_modules/@protobufjs/utf8": { 979 + "version": "1.1.0", 980 + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 981 + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", 982 + "license": "BSD-3-Clause" 983 + }, 487 984 "node_modules/@rollup/rollup-android-arm-eabi": { 488 985 "version": "4.36.0", 489 986 "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz", ··· 825 1322 "dev": true, 826 1323 "license": "MIT" 827 1324 }, 1325 + "node_modules/@types/long": { 1326 + "version": "4.0.2", 1327 + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", 1328 + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", 1329 + "license": "MIT" 1330 + }, 828 1331 "node_modules/@types/mdast": { 829 1332 "version": "3.0.15", 830 1333 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", ··· 842 1345 "dev": true, 843 1346 "license": "MIT" 844 1347 }, 1348 + "node_modules/@types/node": { 1349 + "version": "22.13.11", 1350 + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", 1351 + "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", 1352 + "license": "MIT", 1353 + "dependencies": { 1354 + "undici-types": "~6.20.0" 1355 + } 1356 + }, 845 1357 "node_modules/@types/unist": { 846 1358 "version": "2.0.11", 847 1359 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", ··· 849 1361 "dev": true, 850 1362 "license": "MIT" 851 1363 }, 1364 + "node_modules/@xenova/transformers": { 1365 + "version": "2.17.2", 1366 + "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.17.2.tgz", 1367 + "integrity": "sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ==", 1368 + "license": "Apache-2.0", 1369 + "dependencies": { 1370 + "@huggingface/jinja": "^0.2.2", 1371 + "onnxruntime-web": "1.14.0", 1372 + "sharp": "^0.32.0" 1373 + }, 1374 + "optionalDependencies": { 1375 + "onnxruntime-node": "1.14.0" 1376 + } 1377 + }, 1378 + "node_modules/@xenova/transformers/node_modules/@huggingface/jinja": { 1379 + "version": "0.2.2", 1380 + "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.2.2.tgz", 1381 + "integrity": "sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA==", 1382 + "license": "MIT", 1383 + "engines": { 1384 + "node": ">=18" 1385 + } 1386 + }, 1387 + "node_modules/@xenova/transformers/node_modules/flatbuffers": { 1388 + "version": "1.12.0", 1389 + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz", 1390 + "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==", 1391 + "license": "SEE LICENSE IN LICENSE.txt" 1392 + }, 1393 + "node_modules/@xenova/transformers/node_modules/long": { 1394 + "version": "4.0.0", 1395 + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 1396 + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", 1397 + "license": "Apache-2.0" 1398 + }, 1399 + "node_modules/@xenova/transformers/node_modules/onnxruntime-common": { 1400 + "version": "1.14.0", 1401 + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz", 1402 + "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==", 1403 + "license": "MIT" 1404 + }, 1405 + "node_modules/@xenova/transformers/node_modules/onnxruntime-node": { 1406 + "version": "1.14.0", 1407 + "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz", 1408 + "integrity": "sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==", 1409 + "license": "MIT", 1410 + "optional": true, 1411 + "os": [ 1412 + "win32", 1413 + "darwin", 1414 + "linux" 1415 + ], 1416 + "dependencies": { 1417 + "onnxruntime-common": "~1.14.0" 1418 + } 1419 + }, 1420 + "node_modules/@xenova/transformers/node_modules/onnxruntime-web": { 1421 + "version": "1.14.0", 1422 + "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz", 1423 + "integrity": "sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==", 1424 + "license": "MIT", 1425 + "dependencies": { 1426 + "flatbuffers": "^1.12.0", 1427 + "guid-typescript": "^1.0.9", 1428 + "long": "^4.0.0", 1429 + "onnx-proto": "^4.0.4", 1430 + "onnxruntime-common": "~1.14.0", 1431 + "platform": "^1.3.6" 1432 + } 1433 + }, 1434 + "node_modules/@xenova/transformers/node_modules/sharp": { 1435 + "version": "0.32.6", 1436 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", 1437 + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", 1438 + "hasInstallScript": true, 1439 + "license": "Apache-2.0", 1440 + "dependencies": { 1441 + "color": "^4.2.3", 1442 + "detect-libc": "^2.0.2", 1443 + "node-addon-api": "^6.1.0", 1444 + "prebuild-install": "^7.1.1", 1445 + "semver": "^7.5.4", 1446 + "simple-get": "^4.0.1", 1447 + "tar-fs": "^3.0.4", 1448 + "tunnel-agent": "^0.6.0" 1449 + }, 1450 + "engines": { 1451 + "node": ">=14.15.0" 1452 + }, 1453 + "funding": { 1454 + "url": "https://opencollective.com/libvips" 1455 + } 1456 + }, 852 1457 "node_modules/acorn": { 853 1458 "version": "8.14.1", 854 1459 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", ··· 862 1467 "node": ">=0.4.0" 863 1468 } 864 1469 }, 1470 + "node_modules/ansi-regex": { 1471 + "version": "6.1.0", 1472 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 1473 + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 1474 + "license": "MIT", 1475 + "engines": { 1476 + "node": ">=12" 1477 + }, 1478 + "funding": { 1479 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 1480 + } 1481 + }, 1482 + "node_modules/ansi-styles": { 1483 + "version": "6.2.1", 1484 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 1485 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 1486 + "license": "MIT", 1487 + "engines": { 1488 + "node": ">=12" 1489 + }, 1490 + "funding": { 1491 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1492 + } 1493 + }, 865 1494 "node_modules/ansi-to-html": { 866 1495 "version": "0.7.2", 867 1496 "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.7.2.tgz", ··· 908 1537 "node": ">= 0.4" 909 1538 } 910 1539 }, 1540 + "node_modules/b4a": { 1541 + "version": "1.6.7", 1542 + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", 1543 + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", 1544 + "license": "Apache-2.0" 1545 + }, 911 1546 "node_modules/bail": { 912 1547 "version": "2.0.2", 913 1548 "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", ··· 923 1558 "version": "1.0.2", 924 1559 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 925 1560 "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 926 - "dev": true, 1561 + "license": "MIT" 1562 + }, 1563 + "node_modules/bare-events": { 1564 + "version": "2.5.4", 1565 + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", 1566 + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", 1567 + "license": "Apache-2.0", 1568 + "optional": true 1569 + }, 1570 + "node_modules/bare-fs": { 1571 + "version": "4.0.1", 1572 + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", 1573 + "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", 1574 + "license": "Apache-2.0", 1575 + "optional": true, 1576 + "dependencies": { 1577 + "bare-events": "^2.0.0", 1578 + "bare-path": "^3.0.0", 1579 + "bare-stream": "^2.0.0" 1580 + }, 1581 + "engines": { 1582 + "bare": ">=1.7.0" 1583 + } 1584 + }, 1585 + "node_modules/bare-os": { 1586 + "version": "3.6.0", 1587 + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.0.tgz", 1588 + "integrity": "sha512-BUrFS5TqSBdA0LwHop4OjPJwisqxGy6JsWVqV6qaFoe965qqtaKfDzHY5T2YA1gUL0ZeeQeA+4BBc1FJTcHiPw==", 1589 + "license": "Apache-2.0", 1590 + "optional": true, 1591 + "engines": { 1592 + "bare": ">=1.14.0" 1593 + } 1594 + }, 1595 + "node_modules/bare-path": { 1596 + "version": "3.0.0", 1597 + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", 1598 + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", 1599 + "license": "Apache-2.0", 1600 + "optional": true, 1601 + "dependencies": { 1602 + "bare-os": "^3.0.1" 1603 + } 1604 + }, 1605 + "node_modules/bare-stream": { 1606 + "version": "2.6.5", 1607 + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", 1608 + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", 1609 + "license": "Apache-2.0", 1610 + "optional": true, 1611 + "dependencies": { 1612 + "streamx": "^2.21.0" 1613 + }, 1614 + "peerDependencies": { 1615 + "bare-buffer": "*", 1616 + "bare-events": "*" 1617 + }, 1618 + "peerDependenciesMeta": { 1619 + "bare-buffer": { 1620 + "optional": true 1621 + }, 1622 + "bare-events": { 1623 + "optional": true 1624 + } 1625 + } 1626 + }, 1627 + "node_modules/base64-js": { 1628 + "version": "1.5.1", 1629 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1630 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 1631 + "funding": [ 1632 + { 1633 + "type": "github", 1634 + "url": "https://github.com/sponsors/feross" 1635 + }, 1636 + { 1637 + "type": "patreon", 1638 + "url": "https://www.patreon.com/feross" 1639 + }, 1640 + { 1641 + "type": "consulting", 1642 + "url": "https://feross.org/support" 1643 + } 1644 + ], 927 1645 "license": "MIT" 928 1646 }, 1647 + "node_modules/bl": { 1648 + "version": "4.1.0", 1649 + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 1650 + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 1651 + "license": "MIT", 1652 + "dependencies": { 1653 + "buffer": "^5.5.0", 1654 + "inherits": "^2.0.4", 1655 + "readable-stream": "^3.4.0" 1656 + } 1657 + }, 929 1658 "node_modules/brace-expansion": { 930 1659 "version": "1.1.11", 931 1660 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", ··· 937 1666 "concat-map": "0.0.1" 938 1667 } 939 1668 }, 1669 + "node_modules/buffer": { 1670 + "version": "5.7.1", 1671 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 1672 + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 1673 + "funding": [ 1674 + { 1675 + "type": "github", 1676 + "url": "https://github.com/sponsors/feross" 1677 + }, 1678 + { 1679 + "type": "patreon", 1680 + "url": "https://www.patreon.com/feross" 1681 + }, 1682 + { 1683 + "type": "consulting", 1684 + "url": "https://feross.org/support" 1685 + } 1686 + ], 1687 + "license": "MIT", 1688 + "dependencies": { 1689 + "base64-js": "^1.3.1", 1690 + "ieee754": "^1.1.13" 1691 + } 1692 + }, 940 1693 "node_modules/character-entities": { 941 1694 "version": "2.0.2", 942 1695 "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", ··· 946 1699 "funding": { 947 1700 "type": "github", 948 1701 "url": "https://github.com/sponsors/wooorm" 1702 + } 1703 + }, 1704 + "node_modules/chownr": { 1705 + "version": "3.0.0", 1706 + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", 1707 + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", 1708 + "license": "BlueOak-1.0.0", 1709 + "engines": { 1710 + "node": ">=18" 949 1711 } 950 1712 }, 951 1713 "node_modules/code-red": { ··· 962 1724 "periscopic": "^3.1.0" 963 1725 } 964 1726 }, 1727 + "node_modules/color": { 1728 + "version": "4.2.3", 1729 + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 1730 + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 1731 + "license": "MIT", 1732 + "dependencies": { 1733 + "color-convert": "^2.0.1", 1734 + "color-string": "^1.9.0" 1735 + }, 1736 + "engines": { 1737 + "node": ">=12.5.0" 1738 + } 1739 + }, 1740 + "node_modules/color-convert": { 1741 + "version": "2.0.1", 1742 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1743 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1744 + "license": "MIT", 1745 + "dependencies": { 1746 + "color-name": "~1.1.4" 1747 + }, 1748 + "engines": { 1749 + "node": ">=7.0.0" 1750 + } 1751 + }, 1752 + "node_modules/color-name": { 1753 + "version": "1.1.4", 1754 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1755 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1756 + "license": "MIT" 1757 + }, 1758 + "node_modules/color-string": { 1759 + "version": "1.9.1", 1760 + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 1761 + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 1762 + "license": "MIT", 1763 + "dependencies": { 1764 + "color-name": "^1.0.0", 1765 + "simple-swizzle": "^0.2.2" 1766 + } 1767 + }, 965 1768 "node_modules/comma-separated-tokens": { 966 1769 "version": "2.0.3", 967 1770 "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", ··· 990 1793 "dev": true, 991 1794 "license": "MIT" 992 1795 }, 1796 + "node_modules/cross-spawn": { 1797 + "version": "7.0.6", 1798 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 1799 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 1800 + "license": "MIT", 1801 + "dependencies": { 1802 + "path-key": "^3.1.0", 1803 + "shebang-command": "^2.0.0", 1804 + "which": "^2.0.1" 1805 + }, 1806 + "engines": { 1807 + "node": ">= 8" 1808 + } 1809 + }, 993 1810 "node_modules/css-tree": { 994 1811 "version": "2.3.1", 995 1812 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", ··· 1036 1853 "url": "https://github.com/sponsors/wooorm" 1037 1854 } 1038 1855 }, 1856 + "node_modules/decompress-response": { 1857 + "version": "6.0.0", 1858 + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", 1859 + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", 1860 + "license": "MIT", 1861 + "dependencies": { 1862 + "mimic-response": "^3.1.0" 1863 + }, 1864 + "engines": { 1865 + "node": ">=10" 1866 + }, 1867 + "funding": { 1868 + "url": "https://github.com/sponsors/sindresorhus" 1869 + } 1870 + }, 1871 + "node_modules/deep-extend": { 1872 + "version": "0.6.0", 1873 + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 1874 + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 1875 + "license": "MIT", 1876 + "engines": { 1877 + "node": ">=4.0.0" 1878 + } 1879 + }, 1039 1880 "node_modules/deepmerge": { 1040 1881 "version": "4.3.1", 1041 1882 "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", ··· 1054 1895 "license": "MIT", 1055 1896 "engines": { 1056 1897 "node": ">=6" 1898 + } 1899 + }, 1900 + "node_modules/detect-libc": { 1901 + "version": "2.0.3", 1902 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 1903 + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 1904 + "license": "Apache-2.0", 1905 + "engines": { 1906 + "node": ">=8" 1057 1907 } 1058 1908 }, 1059 1909 "node_modules/devlop": { ··· 1080 1930 "node": ">=0.3.1" 1081 1931 } 1082 1932 }, 1933 + "node_modules/eastasianwidth": { 1934 + "version": "0.2.0", 1935 + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 1936 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 1937 + "license": "MIT" 1938 + }, 1939 + "node_modules/emoji-regex": { 1940 + "version": "9.2.2", 1941 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1942 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1943 + "license": "MIT" 1944 + }, 1945 + "node_modules/end-of-stream": { 1946 + "version": "1.4.4", 1947 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1948 + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1949 + "license": "MIT", 1950 + "dependencies": { 1951 + "once": "^1.4.0" 1952 + } 1953 + }, 1083 1954 "node_modules/entities": { 1084 1955 "version": "2.2.0", 1085 1956 "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", ··· 1153 2024 "@types/estree": "^1.0.0" 1154 2025 } 1155 2026 }, 2027 + "node_modules/expand-template": { 2028 + "version": "2.0.3", 2029 + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 2030 + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", 2031 + "license": "(MIT OR WTFPL)", 2032 + "engines": { 2033 + "node": ">=6" 2034 + } 2035 + }, 1156 2036 "node_modules/extend": { 1157 2037 "version": "3.0.2", 1158 2038 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", ··· 1160 2040 "dev": true, 1161 2041 "license": "MIT" 1162 2042 }, 2043 + "node_modules/fast-fifo": { 2044 + "version": "1.3.2", 2045 + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", 2046 + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", 2047 + "license": "MIT" 2048 + }, 2049 + "node_modules/flatbuffers": { 2050 + "version": "25.2.10", 2051 + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.2.10.tgz", 2052 + "integrity": "sha512-7JlN9ZvLDG1McO3kbX0k4v+SUAg48L1rIwEvN6ZQl/eCtgJz9UylTMzE9wrmYrcorgxm3CX/3T/w5VAub99UUw==", 2053 + "license": "Apache-2.0" 2054 + }, 2055 + "node_modules/foreground-child": { 2056 + "version": "3.3.1", 2057 + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", 2058 + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", 2059 + "license": "ISC", 2060 + "dependencies": { 2061 + "cross-spawn": "^7.0.6", 2062 + "signal-exit": "^4.0.1" 2063 + }, 2064 + "engines": { 2065 + "node": ">=14" 2066 + }, 2067 + "funding": { 2068 + "url": "https://github.com/sponsors/isaacs" 2069 + } 2070 + }, 1163 2071 "node_modules/front-matter": { 1164 2072 "version": "4.0.2", 1165 2073 "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", ··· 1169 2077 "dependencies": { 1170 2078 "js-yaml": "^3.13.1" 1171 2079 } 2080 + }, 2081 + "node_modules/fs-constants": { 2082 + "version": "1.0.0", 2083 + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 2084 + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", 2085 + "license": "MIT" 1172 2086 }, 1173 2087 "node_modules/fs.realpath": { 1174 2088 "version": "1.0.0", ··· 1192 2106 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1193 2107 } 1194 2108 }, 2109 + "node_modules/github-from-package": { 2110 + "version": "0.0.0", 2111 + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 2112 + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", 2113 + "license": "MIT" 2114 + }, 1195 2115 "node_modules/glob": { 1196 2116 "version": "7.2.3", 1197 2117 "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", ··· 1225 2145 "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 1226 2146 "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 1227 2147 "license": "MIT" 2148 + }, 2149 + "node_modules/guid-typescript": { 2150 + "version": "1.0.9", 2151 + "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", 2152 + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==", 2153 + "license": "ISC" 1228 2154 }, 1229 2155 "node_modules/hast-util-from-dom": { 1230 2156 "version": "5.0.1", ··· 1412 2338 "url": "https://opencollective.com/unified" 1413 2339 } 1414 2340 }, 2341 + "node_modules/ieee754": { 2342 + "version": "1.2.1", 2343 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 2344 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 2345 + "funding": [ 2346 + { 2347 + "type": "github", 2348 + "url": "https://github.com/sponsors/feross" 2349 + }, 2350 + { 2351 + "type": "patreon", 2352 + "url": "https://www.patreon.com/feross" 2353 + }, 2354 + { 2355 + "type": "consulting", 2356 + "url": "https://feross.org/support" 2357 + } 2358 + ], 2359 + "license": "BSD-3-Clause" 2360 + }, 1415 2361 "node_modules/inflight": { 1416 2362 "version": "1.0.6", 1417 2363 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", ··· 1428 2374 "version": "2.0.4", 1429 2375 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1430 2376 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1431 - "dev": true, 2377 + "license": "ISC" 2378 + }, 2379 + "node_modules/ini": { 2380 + "version": "1.3.8", 2381 + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 2382 + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", 1432 2383 "license": "ISC" 1433 2384 }, 2385 + "node_modules/is-arrayish": { 2386 + "version": "0.3.2", 2387 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 2388 + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 2389 + "license": "MIT" 2390 + }, 2391 + "node_modules/is-fullwidth-code-point": { 2392 + "version": "3.0.0", 2393 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2394 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 2395 + "license": "MIT", 2396 + "engines": { 2397 + "node": ">=8" 2398 + } 2399 + }, 1434 2400 "node_modules/is-plain-obj": { 1435 2401 "version": "4.1.0", 1436 2402 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", ··· 1454 2420 "@types/estree": "^1.0.6" 1455 2421 } 1456 2422 }, 2423 + "node_modules/isexe": { 2424 + "version": "2.0.0", 2425 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2426 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2427 + "license": "ISC" 2428 + }, 2429 + "node_modules/jackspeak": { 2430 + "version": "3.4.3", 2431 + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", 2432 + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 2433 + "license": "BlueOak-1.0.0", 2434 + "dependencies": { 2435 + "@isaacs/cliui": "^8.0.2" 2436 + }, 2437 + "funding": { 2438 + "url": "https://github.com/sponsors/isaacs" 2439 + }, 2440 + "optionalDependencies": { 2441 + "@pkgjs/parseargs": "^0.11.0" 2442 + } 2443 + }, 1457 2444 "node_modules/js-yaml": { 1458 2445 "version": "3.14.1", 1459 2446 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", ··· 1502 2489 "dev": true, 1503 2490 "license": "MIT" 1504 2491 }, 2492 + "node_modules/long": { 2493 + "version": "5.3.1", 2494 + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", 2495 + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", 2496 + "license": "Apache-2.0" 2497 + }, 1505 2498 "node_modules/longest-streak": { 1506 2499 "version": "3.1.0", 1507 2500 "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", ··· 1512 2505 "type": "github", 1513 2506 "url": "https://github.com/sponsors/wooorm" 1514 2507 } 2508 + }, 2509 + "node_modules/lru-cache": { 2510 + "version": "10.4.3", 2511 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 2512 + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 2513 + "license": "ISC" 1515 2514 }, 1516 2515 "node_modules/magic-string": { 1517 2516 "version": "0.30.17", ··· 2800 3799 ], 2801 3800 "license": "MIT" 2802 3801 }, 3802 + "node_modules/mimic-response": { 3803 + "version": "3.1.0", 3804 + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", 3805 + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", 3806 + "license": "MIT", 3807 + "engines": { 3808 + "node": ">=10" 3809 + }, 3810 + "funding": { 3811 + "url": "https://github.com/sponsors/sindresorhus" 3812 + } 3813 + }, 2803 3814 "node_modules/minimatch": { 2804 3815 "version": "3.1.2", 2805 3816 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", ··· 2813 3824 "node": "*" 2814 3825 } 2815 3826 }, 3827 + "node_modules/minimist": { 3828 + "version": "1.2.8", 3829 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 3830 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 3831 + "license": "MIT", 3832 + "funding": { 3833 + "url": "https://github.com/sponsors/ljharb" 3834 + } 3835 + }, 3836 + "node_modules/minipass": { 3837 + "version": "7.1.2", 3838 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 3839 + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 3840 + "license": "ISC", 3841 + "engines": { 3842 + "node": ">=16 || 14 >=14.17" 3843 + } 3844 + }, 3845 + "node_modules/minizlib": { 3846 + "version": "3.0.1", 3847 + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", 3848 + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", 3849 + "license": "MIT", 3850 + "dependencies": { 3851 + "minipass": "^7.0.4", 3852 + "rimraf": "^5.0.5" 3853 + }, 3854 + "engines": { 3855 + "node": ">= 18" 3856 + } 3857 + }, 3858 + "node_modules/mkdirp": { 3859 + "version": "3.0.1", 3860 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", 3861 + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", 3862 + "license": "MIT", 3863 + "bin": { 3864 + "mkdirp": "dist/cjs/src/bin.js" 3865 + }, 3866 + "engines": { 3867 + "node": ">=10" 3868 + }, 3869 + "funding": { 3870 + "url": "https://github.com/sponsors/isaacs" 3871 + } 3872 + }, 3873 + "node_modules/mkdirp-classic": { 3874 + "version": "0.5.3", 3875 + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 3876 + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", 3877 + "license": "MIT" 3878 + }, 2816 3879 "node_modules/mri": { 2817 3880 "version": "1.2.0", 2818 3881 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", ··· 2849 3912 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2850 3913 } 2851 3914 }, 3915 + "node_modules/napi-build-utils": { 3916 + "version": "2.0.0", 3917 + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", 3918 + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", 3919 + "license": "MIT" 3920 + }, 3921 + "node_modules/node-abi": { 3922 + "version": "3.74.0", 3923 + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", 3924 + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", 3925 + "license": "MIT", 3926 + "dependencies": { 3927 + "semver": "^7.3.5" 3928 + }, 3929 + "engines": { 3930 + "node": ">=10" 3931 + } 3932 + }, 3933 + "node_modules/node-addon-api": { 3934 + "version": "6.1.0", 3935 + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", 3936 + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", 3937 + "license": "MIT" 3938 + }, 2852 3939 "node_modules/node-watch": { 2853 3940 "version": "0.7.3", 2854 3941 "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz", ··· 2862 3949 "version": "1.4.0", 2863 3950 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2864 3951 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2865 - "dev": true, 2866 3952 "license": "ISC", 2867 3953 "dependencies": { 2868 3954 "wrappy": "1" 2869 3955 } 2870 3956 }, 3957 + "node_modules/onnx-proto": { 3958 + "version": "4.0.4", 3959 + "resolved": "https://registry.npmjs.org/onnx-proto/-/onnx-proto-4.0.4.tgz", 3960 + "integrity": "sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==", 3961 + "license": "MIT", 3962 + "dependencies": { 3963 + "protobufjs": "^6.8.8" 3964 + } 3965 + }, 3966 + "node_modules/onnx-proto/node_modules/long": { 3967 + "version": "4.0.0", 3968 + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 3969 + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", 3970 + "license": "Apache-2.0" 3971 + }, 3972 + "node_modules/onnx-proto/node_modules/protobufjs": { 3973 + "version": "6.11.4", 3974 + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", 3975 + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", 3976 + "hasInstallScript": true, 3977 + "license": "BSD-3-Clause", 3978 + "dependencies": { 3979 + "@protobufjs/aspromise": "^1.1.2", 3980 + "@protobufjs/base64": "^1.1.2", 3981 + "@protobufjs/codegen": "^2.0.4", 3982 + "@protobufjs/eventemitter": "^1.1.0", 3983 + "@protobufjs/fetch": "^1.1.0", 3984 + "@protobufjs/float": "^1.0.2", 3985 + "@protobufjs/inquire": "^1.1.0", 3986 + "@protobufjs/path": "^1.1.2", 3987 + "@protobufjs/pool": "^1.1.0", 3988 + "@protobufjs/utf8": "^1.1.0", 3989 + "@types/long": "^4.0.1", 3990 + "@types/node": ">=13.7.0", 3991 + "long": "^4.0.0" 3992 + }, 3993 + "bin": { 3994 + "pbjs": "bin/pbjs", 3995 + "pbts": "bin/pbts" 3996 + } 3997 + }, 3998 + "node_modules/onnxruntime-common": { 3999 + "version": "1.20.1", 4000 + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.20.1.tgz", 4001 + "integrity": "sha512-YiU0s0IzYYC+gWvqD1HzLc46Du1sXpSiwzKb63PACIJr6LfL27VsXSXQvt68EzD3V0D5Bc0vyJTjmMxp0ylQiw==", 4002 + "license": "MIT" 4003 + }, 4004 + "node_modules/onnxruntime-node": { 4005 + "version": "1.20.1", 4006 + "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.20.1.tgz", 4007 + "integrity": "sha512-di/I4HDXRw+FLgq+TyHmQEDd3cEp9iFFZm0r4uJ1Wd7b/WE1VXtKWo8yemex347c6GNF/3Pv86ZfPhIWxORr0w==", 4008 + "hasInstallScript": true, 4009 + "license": "MIT", 4010 + "os": [ 4011 + "win32", 4012 + "darwin", 4013 + "linux" 4014 + ], 4015 + "dependencies": { 4016 + "onnxruntime-common": "1.20.1", 4017 + "tar": "^7.0.1" 4018 + } 4019 + }, 4020 + "node_modules/onnxruntime-web": { 4021 + "version": "1.22.0-dev.20250306-ccf8fdd9ea", 4022 + "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.22.0-dev.20250306-ccf8fdd9ea.tgz", 4023 + "integrity": "sha512-YwqS9Qqx2eKFXIx+HQloqRUG5/STHPUuNk8wn+qVVmwXBIfNdXX0/Lm7wgo5CnC2k+yqZmjDV5V1dZi4PeSPGQ==", 4024 + "license": "MIT", 4025 + "dependencies": { 4026 + "flatbuffers": "^25.1.24", 4027 + "guid-typescript": "^1.0.9", 4028 + "long": "^5.2.3", 4029 + "onnxruntime-common": "1.22.0-dev.20250306-aafa8d170a", 4030 + "platform": "^1.3.6", 4031 + "protobufjs": "^7.2.4" 4032 + } 4033 + }, 4034 + "node_modules/onnxruntime-web/node_modules/onnxruntime-common": { 4035 + "version": "1.22.0-dev.20250306-aafa8d170a", 4036 + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.22.0-dev.20250306-aafa8d170a.tgz", 4037 + "integrity": "sha512-NfIQnW4lIk/8LnhnYqknYPeet0U0+AADgKQRlKex36QrNoVSCY+aNaX6wyy2VzQ4CNWxsYh0E203ajRD/zxn0g==", 4038 + "license": "MIT" 4039 + }, 4040 + "node_modules/package-json-from-dist": { 4041 + "version": "1.0.1", 4042 + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", 4043 + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", 4044 + "license": "BlueOak-1.0.0" 4045 + }, 2871 4046 "node_modules/parse5": { 2872 4047 "version": "7.2.1", 2873 4048 "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", ··· 2902 4077 "license": "MIT", 2903 4078 "engines": { 2904 4079 "node": ">=0.10.0" 4080 + } 4081 + }, 4082 + "node_modules/path-key": { 4083 + "version": "3.1.1", 4084 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 4085 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 4086 + "license": "MIT", 4087 + "engines": { 4088 + "node": ">=8" 4089 + } 4090 + }, 4091 + "node_modules/path-scurry": { 4092 + "version": "1.11.1", 4093 + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", 4094 + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 4095 + "license": "BlueOak-1.0.0", 4096 + "dependencies": { 4097 + "lru-cache": "^10.2.0", 4098 + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 4099 + }, 4100 + "engines": { 4101 + "node": ">=16 || 14 >=14.18" 4102 + }, 4103 + "funding": { 4104 + "url": "https://github.com/sponsors/isaacs" 2905 4105 } 2906 4106 }, 2907 4107 "node_modules/periscopic": { ··· 2923 4123 "dev": true, 2924 4124 "license": "ISC" 2925 4125 }, 4126 + "node_modules/platform": { 4127 + "version": "1.3.6", 4128 + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", 4129 + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", 4130 + "license": "MIT" 4131 + }, 2926 4132 "node_modules/postcss": { 2927 4133 "version": "8.5.3", 2928 4134 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", ··· 2952 4158 "node": "^10 || ^12 || >=14" 2953 4159 } 2954 4160 }, 4161 + "node_modules/prebuild-install": { 4162 + "version": "7.1.3", 4163 + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", 4164 + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", 4165 + "license": "MIT", 4166 + "dependencies": { 4167 + "detect-libc": "^2.0.0", 4168 + "expand-template": "^2.0.3", 4169 + "github-from-package": "0.0.0", 4170 + "minimist": "^1.2.3", 4171 + "mkdirp-classic": "^0.5.3", 4172 + "napi-build-utils": "^2.0.0", 4173 + "node-abi": "^3.3.0", 4174 + "pump": "^3.0.0", 4175 + "rc": "^1.2.7", 4176 + "simple-get": "^4.0.0", 4177 + "tar-fs": "^2.0.0", 4178 + "tunnel-agent": "^0.6.0" 4179 + }, 4180 + "bin": { 4181 + "prebuild-install": "bin.js" 4182 + }, 4183 + "engines": { 4184 + "node": ">=10" 4185 + } 4186 + }, 4187 + "node_modules/prebuild-install/node_modules/chownr": { 4188 + "version": "1.1.4", 4189 + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 4190 + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 4191 + "license": "ISC" 4192 + }, 4193 + "node_modules/prebuild-install/node_modules/tar-fs": { 4194 + "version": "2.1.2", 4195 + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", 4196 + "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", 4197 + "license": "MIT", 4198 + "dependencies": { 4199 + "chownr": "^1.1.1", 4200 + "mkdirp-classic": "^0.5.2", 4201 + "pump": "^3.0.0", 4202 + "tar-stream": "^2.1.4" 4203 + } 4204 + }, 4205 + "node_modules/prebuild-install/node_modules/tar-stream": { 4206 + "version": "2.2.0", 4207 + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 4208 + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 4209 + "license": "MIT", 4210 + "dependencies": { 4211 + "bl": "^4.0.3", 4212 + "end-of-stream": "^1.4.1", 4213 + "fs-constants": "^1.0.0", 4214 + "inherits": "^2.0.3", 4215 + "readable-stream": "^3.1.1" 4216 + }, 4217 + "engines": { 4218 + "node": ">=6" 4219 + } 4220 + }, 2955 4221 "node_modules/prism-svelte": { 2956 4222 "version": "0.4.7", 2957 4223 "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz", ··· 2980 4246 "url": "https://github.com/sponsors/wooorm" 2981 4247 } 2982 4248 }, 4249 + "node_modules/protobufjs": { 4250 + "version": "7.4.0", 4251 + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", 4252 + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", 4253 + "hasInstallScript": true, 4254 + "license": "BSD-3-Clause", 4255 + "dependencies": { 4256 + "@protobufjs/aspromise": "^1.1.2", 4257 + "@protobufjs/base64": "^1.1.2", 4258 + "@protobufjs/codegen": "^2.0.4", 4259 + "@protobufjs/eventemitter": "^1.1.0", 4260 + "@protobufjs/fetch": "^1.1.0", 4261 + "@protobufjs/float": "^1.0.2", 4262 + "@protobufjs/inquire": "^1.1.0", 4263 + "@protobufjs/path": "^1.1.2", 4264 + "@protobufjs/pool": "^1.1.0", 4265 + "@protobufjs/utf8": "^1.1.0", 4266 + "@types/node": ">=13.7.0", 4267 + "long": "^5.0.0" 4268 + }, 4269 + "engines": { 4270 + "node": ">=12.0.0" 4271 + } 4272 + }, 4273 + "node_modules/pump": { 4274 + "version": "3.0.2", 4275 + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", 4276 + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", 4277 + "license": "MIT", 4278 + "dependencies": { 4279 + "end-of-stream": "^1.1.0", 4280 + "once": "^1.3.1" 4281 + } 4282 + }, 2983 4283 "node_modules/qunit": { 2984 4284 "version": "2.24.1", 2985 4285 "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.24.1.tgz", ··· 3006 4306 "node": ">= 10" 3007 4307 } 3008 4308 }, 4309 + "node_modules/rc": { 4310 + "version": "1.2.8", 4311 + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 4312 + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 4313 + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", 4314 + "dependencies": { 4315 + "deep-extend": "^0.6.0", 4316 + "ini": "~1.3.0", 4317 + "minimist": "^1.2.0", 4318 + "strip-json-comments": "~2.0.1" 4319 + }, 4320 + "bin": { 4321 + "rc": "cli.js" 4322 + } 4323 + }, 4324 + "node_modules/readable-stream": { 4325 + "version": "3.6.2", 4326 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 4327 + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 4328 + "license": "MIT", 4329 + "dependencies": { 4330 + "inherits": "^2.0.3", 4331 + "string_decoder": "^1.1.1", 4332 + "util-deprecate": "^1.0.1" 4333 + }, 4334 + "engines": { 4335 + "node": ">= 6" 4336 + } 4337 + }, 3009 4338 "node_modules/readline-sync": { 3010 4339 "version": "1.4.9", 3011 4340 "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.9.tgz", ··· 3082 4411 "@types/unist": "*" 3083 4412 } 3084 4413 }, 4414 + "node_modules/rimraf": { 4415 + "version": "5.0.10", 4416 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", 4417 + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", 4418 + "license": "ISC", 4419 + "dependencies": { 4420 + "glob": "^10.3.7" 4421 + }, 4422 + "bin": { 4423 + "rimraf": "dist/esm/bin.mjs" 4424 + }, 4425 + "funding": { 4426 + "url": "https://github.com/sponsors/isaacs" 4427 + } 4428 + }, 4429 + "node_modules/rimraf/node_modules/brace-expansion": { 4430 + "version": "2.0.1", 4431 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 4432 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 4433 + "license": "MIT", 4434 + "dependencies": { 4435 + "balanced-match": "^1.0.0" 4436 + } 4437 + }, 4438 + "node_modules/rimraf/node_modules/glob": { 4439 + "version": "10.4.5", 4440 + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", 4441 + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 4442 + "license": "ISC", 4443 + "dependencies": { 4444 + "foreground-child": "^3.1.0", 4445 + "jackspeak": "^3.1.2", 4446 + "minimatch": "^9.0.4", 4447 + "minipass": "^7.1.2", 4448 + "package-json-from-dist": "^1.0.0", 4449 + "path-scurry": "^1.11.1" 4450 + }, 4451 + "bin": { 4452 + "glob": "dist/esm/bin.mjs" 4453 + }, 4454 + "funding": { 4455 + "url": "https://github.com/sponsors/isaacs" 4456 + } 4457 + }, 4458 + "node_modules/rimraf/node_modules/minimatch": { 4459 + "version": "9.0.5", 4460 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 4461 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 4462 + "license": "ISC", 4463 + "dependencies": { 4464 + "brace-expansion": "^2.0.1" 4465 + }, 4466 + "engines": { 4467 + "node": ">=16 || 14 >=14.17" 4468 + }, 4469 + "funding": { 4470 + "url": "https://github.com/sponsors/isaacs" 4471 + } 4472 + }, 3085 4473 "node_modules/rollup": { 3086 4474 "version": "4.36.0", 3087 4475 "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz", ··· 3134 4522 "node": ">=6" 3135 4523 } 3136 4524 }, 4525 + "node_modules/safe-buffer": { 4526 + "version": "5.2.1", 4527 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 4528 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 4529 + "funding": [ 4530 + { 4531 + "type": "github", 4532 + "url": "https://github.com/sponsors/feross" 4533 + }, 4534 + { 4535 + "type": "patreon", 4536 + "url": "https://www.patreon.com/feross" 4537 + }, 4538 + { 4539 + "type": "consulting", 4540 + "url": "https://feross.org/support" 4541 + } 4542 + ], 4543 + "license": "MIT" 4544 + }, 3137 4545 "node_modules/scattered-papers": { 3138 4546 "version": "1.0.0", 3139 4547 "resolved": "git+ssh://git@github.com/foxfriends/scattered-papers.git#37f9fe973dd224acae2f24501478c47b4dbca6d9", 3140 4548 "dev": true, 3141 4549 "license": "ISC" 3142 4550 }, 4551 + "node_modules/semver": { 4552 + "version": "7.7.1", 4553 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 4554 + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 4555 + "license": "ISC", 4556 + "bin": { 4557 + "semver": "bin/semver.js" 4558 + }, 4559 + "engines": { 4560 + "node": ">=10" 4561 + } 4562 + }, 4563 + "node_modules/sharp": { 4564 + "version": "0.33.5", 4565 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 4566 + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 4567 + "hasInstallScript": true, 4568 + "license": "Apache-2.0", 4569 + "dependencies": { 4570 + "color": "^4.2.3", 4571 + "detect-libc": "^2.0.3", 4572 + "semver": "^7.6.3" 4573 + }, 4574 + "engines": { 4575 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 4576 + }, 4577 + "funding": { 4578 + "url": "https://opencollective.com/libvips" 4579 + }, 4580 + "optionalDependencies": { 4581 + "@img/sharp-darwin-arm64": "0.33.5", 4582 + "@img/sharp-darwin-x64": "0.33.5", 4583 + "@img/sharp-libvips-darwin-arm64": "1.0.4", 4584 + "@img/sharp-libvips-darwin-x64": "1.0.4", 4585 + "@img/sharp-libvips-linux-arm": "1.0.5", 4586 + "@img/sharp-libvips-linux-arm64": "1.0.4", 4587 + "@img/sharp-libvips-linux-s390x": "1.0.4", 4588 + "@img/sharp-libvips-linux-x64": "1.0.4", 4589 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 4590 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 4591 + "@img/sharp-linux-arm": "0.33.5", 4592 + "@img/sharp-linux-arm64": "0.33.5", 4593 + "@img/sharp-linux-s390x": "0.33.5", 4594 + "@img/sharp-linux-x64": "0.33.5", 4595 + "@img/sharp-linuxmusl-arm64": "0.33.5", 4596 + "@img/sharp-linuxmusl-x64": "0.33.5", 4597 + "@img/sharp-wasm32": "0.33.5", 4598 + "@img/sharp-win32-ia32": "0.33.5", 4599 + "@img/sharp-win32-x64": "0.33.5" 4600 + } 4601 + }, 4602 + "node_modules/shebang-command": { 4603 + "version": "2.0.0", 4604 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4605 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4606 + "license": "MIT", 4607 + "dependencies": { 4608 + "shebang-regex": "^3.0.0" 4609 + }, 4610 + "engines": { 4611 + "node": ">=8" 4612 + } 4613 + }, 4614 + "node_modules/shebang-regex": { 4615 + "version": "3.0.0", 4616 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4617 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4618 + "license": "MIT", 4619 + "engines": { 4620 + "node": ">=8" 4621 + } 4622 + }, 4623 + "node_modules/signal-exit": { 4624 + "version": "4.1.0", 4625 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 4626 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 4627 + "license": "ISC", 4628 + "engines": { 4629 + "node": ">=14" 4630 + }, 4631 + "funding": { 4632 + "url": "https://github.com/sponsors/isaacs" 4633 + } 4634 + }, 4635 + "node_modules/simple-concat": { 4636 + "version": "1.0.1", 4637 + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 4638 + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", 4639 + "funding": [ 4640 + { 4641 + "type": "github", 4642 + "url": "https://github.com/sponsors/feross" 4643 + }, 4644 + { 4645 + "type": "patreon", 4646 + "url": "https://www.patreon.com/feross" 4647 + }, 4648 + { 4649 + "type": "consulting", 4650 + "url": "https://feross.org/support" 4651 + } 4652 + ], 4653 + "license": "MIT" 4654 + }, 4655 + "node_modules/simple-get": { 4656 + "version": "4.0.1", 4657 + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", 4658 + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", 4659 + "funding": [ 4660 + { 4661 + "type": "github", 4662 + "url": "https://github.com/sponsors/feross" 4663 + }, 4664 + { 4665 + "type": "patreon", 4666 + "url": "https://www.patreon.com/feross" 4667 + }, 4668 + { 4669 + "type": "consulting", 4670 + "url": "https://feross.org/support" 4671 + } 4672 + ], 4673 + "license": "MIT", 4674 + "dependencies": { 4675 + "decompress-response": "^6.0.0", 4676 + "once": "^1.3.1", 4677 + "simple-concat": "^1.0.0" 4678 + } 4679 + }, 4680 + "node_modules/simple-swizzle": { 4681 + "version": "0.2.2", 4682 + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 4683 + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 4684 + "license": "MIT", 4685 + "dependencies": { 4686 + "is-arrayish": "^0.3.1" 4687 + } 4688 + }, 3143 4689 "node_modules/source-map-js": { 3144 4690 "version": "1.2.1", 3145 4691 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 3168 4714 "dev": true, 3169 4715 "license": "BSD-3-Clause" 3170 4716 }, 4717 + "node_modules/streamx": { 4718 + "version": "2.22.0", 4719 + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", 4720 + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", 4721 + "license": "MIT", 4722 + "dependencies": { 4723 + "fast-fifo": "^1.3.2", 4724 + "text-decoder": "^1.1.0" 4725 + }, 4726 + "optionalDependencies": { 4727 + "bare-events": "^2.2.0" 4728 + } 4729 + }, 4730 + "node_modules/string_decoder": { 4731 + "version": "1.3.0", 4732 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 4733 + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 4734 + "license": "MIT", 4735 + "dependencies": { 4736 + "safe-buffer": "~5.2.0" 4737 + } 4738 + }, 4739 + "node_modules/string-width": { 4740 + "version": "5.1.2", 4741 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 4742 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 4743 + "license": "MIT", 4744 + "dependencies": { 4745 + "eastasianwidth": "^0.2.0", 4746 + "emoji-regex": "^9.2.2", 4747 + "strip-ansi": "^7.0.1" 4748 + }, 4749 + "engines": { 4750 + "node": ">=12" 4751 + }, 4752 + "funding": { 4753 + "url": "https://github.com/sponsors/sindresorhus" 4754 + } 4755 + }, 4756 + "node_modules/string-width-cjs": { 4757 + "name": "string-width", 4758 + "version": "4.2.3", 4759 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4760 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4761 + "license": "MIT", 4762 + "dependencies": { 4763 + "emoji-regex": "^8.0.0", 4764 + "is-fullwidth-code-point": "^3.0.0", 4765 + "strip-ansi": "^6.0.1" 4766 + }, 4767 + "engines": { 4768 + "node": ">=8" 4769 + } 4770 + }, 4771 + "node_modules/string-width-cjs/node_modules/ansi-regex": { 4772 + "version": "5.0.1", 4773 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 4774 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 4775 + "license": "MIT", 4776 + "engines": { 4777 + "node": ">=8" 4778 + } 4779 + }, 4780 + "node_modules/string-width-cjs/node_modules/emoji-regex": { 4781 + "version": "8.0.0", 4782 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4783 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4784 + "license": "MIT" 4785 + }, 4786 + "node_modules/string-width-cjs/node_modules/strip-ansi": { 4787 + "version": "6.0.1", 4788 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4789 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4790 + "license": "MIT", 4791 + "dependencies": { 4792 + "ansi-regex": "^5.0.1" 4793 + }, 4794 + "engines": { 4795 + "node": ">=8" 4796 + } 4797 + }, 4798 + "node_modules/strip-ansi": { 4799 + "version": "7.1.0", 4800 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4801 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4802 + "license": "MIT", 4803 + "dependencies": { 4804 + "ansi-regex": "^6.0.1" 4805 + }, 4806 + "engines": { 4807 + "node": ">=12" 4808 + }, 4809 + "funding": { 4810 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 4811 + } 4812 + }, 4813 + "node_modules/strip-ansi-cjs": { 4814 + "name": "strip-ansi", 4815 + "version": "6.0.1", 4816 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4817 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4818 + "license": "MIT", 4819 + "dependencies": { 4820 + "ansi-regex": "^5.0.1" 4821 + }, 4822 + "engines": { 4823 + "node": ">=8" 4824 + } 4825 + }, 4826 + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 4827 + "version": "5.0.1", 4828 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 4829 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 4830 + "license": "MIT", 4831 + "engines": { 4832 + "node": ">=8" 4833 + } 4834 + }, 4835 + "node_modules/strip-json-comments": { 4836 + "version": "2.0.1", 4837 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 4838 + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", 4839 + "license": "MIT", 4840 + "engines": { 4841 + "node": ">=0.10.0" 4842 + } 4843 + }, 3171 4844 "node_modules/svelte": { 3172 4845 "version": "4.2.19", 3173 4846 "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", ··· 3207 4880 "svelte": "^3.19.0 || ^4.0.0" 3208 4881 } 3209 4882 }, 4883 + "node_modules/tar": { 4884 + "version": "7.4.3", 4885 + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", 4886 + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", 4887 + "license": "ISC", 4888 + "dependencies": { 4889 + "@isaacs/fs-minipass": "^4.0.0", 4890 + "chownr": "^3.0.0", 4891 + "minipass": "^7.1.2", 4892 + "minizlib": "^3.0.1", 4893 + "mkdirp": "^3.0.1", 4894 + "yallist": "^5.0.0" 4895 + }, 4896 + "engines": { 4897 + "node": ">=18" 4898 + } 4899 + }, 4900 + "node_modules/tar-fs": { 4901 + "version": "3.0.8", 4902 + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", 4903 + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", 4904 + "license": "MIT", 4905 + "dependencies": { 4906 + "pump": "^3.0.0", 4907 + "tar-stream": "^3.1.5" 4908 + }, 4909 + "optionalDependencies": { 4910 + "bare-fs": "^4.0.1", 4911 + "bare-path": "^3.0.0" 4912 + } 4913 + }, 4914 + "node_modules/tar-stream": { 4915 + "version": "3.1.7", 4916 + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", 4917 + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", 4918 + "license": "MIT", 4919 + "dependencies": { 4920 + "b4a": "^1.6.4", 4921 + "fast-fifo": "^1.2.0", 4922 + "streamx": "^2.15.0" 4923 + } 4924 + }, 3210 4925 "node_modules/tau-prolog": { 3211 4926 "version": "0.2.81", 3212 4927 "resolved": "https://registry.npmjs.org/tau-prolog/-/tau-prolog-0.2.81.tgz", ··· 3217 4932 "readline-sync": "1.4.9" 3218 4933 } 3219 4934 }, 4935 + "node_modules/text-decoder": { 4936 + "version": "1.2.3", 4937 + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", 4938 + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", 4939 + "license": "Apache-2.0", 4940 + "dependencies": { 4941 + "b4a": "^1.6.4" 4942 + } 4943 + }, 3220 4944 "node_modules/tiny-glob": { 3221 4945 "version": "0.2.9", 3222 4946 "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", ··· 3237 4961 "type": "github", 3238 4962 "url": "https://github.com/sponsors/wooorm" 3239 4963 } 4964 + }, 4965 + "node_modules/tslib": { 4966 + "version": "2.8.1", 4967 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 4968 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 4969 + "license": "0BSD", 4970 + "optional": true 4971 + }, 4972 + "node_modules/tunnel-agent": { 4973 + "version": "0.6.0", 4974 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 4975 + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", 4976 + "license": "Apache-2.0", 4977 + "dependencies": { 4978 + "safe-buffer": "^5.0.1" 4979 + }, 4980 + "engines": { 4981 + "node": "*" 4982 + } 4983 + }, 4984 + "node_modules/undici-types": { 4985 + "version": "6.20.0", 4986 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", 4987 + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", 4988 + "license": "MIT" 3240 4989 }, 3241 4990 "node_modules/unified": { 3242 4991 "version": "11.0.5", ··· 3448 5197 "url": "https://opencollective.com/unified" 3449 5198 } 3450 5199 }, 5200 + "node_modules/util-deprecate": { 5201 + "version": "1.0.2", 5202 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 5203 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 5204 + "license": "MIT" 5205 + }, 3451 5206 "node_modules/uvu": { 3452 5207 "version": "0.5.6", 3453 5208 "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", ··· 3655 5410 "url": "https://github.com/sponsors/wooorm" 3656 5411 } 3657 5412 }, 5413 + "node_modules/which": { 5414 + "version": "2.0.2", 5415 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 5416 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 5417 + "license": "ISC", 5418 + "dependencies": { 5419 + "isexe": "^2.0.0" 5420 + }, 5421 + "bin": { 5422 + "node-which": "bin/node-which" 5423 + }, 5424 + "engines": { 5425 + "node": ">= 8" 5426 + } 5427 + }, 5428 + "node_modules/wrap-ansi": { 5429 + "version": "8.1.0", 5430 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 5431 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 5432 + "license": "MIT", 5433 + "dependencies": { 5434 + "ansi-styles": "^6.1.0", 5435 + "string-width": "^5.0.1", 5436 + "strip-ansi": "^7.0.1" 5437 + }, 5438 + "engines": { 5439 + "node": ">=12" 5440 + }, 5441 + "funding": { 5442 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 5443 + } 5444 + }, 5445 + "node_modules/wrap-ansi-cjs": { 5446 + "name": "wrap-ansi", 5447 + "version": "7.0.0", 5448 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 5449 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 5450 + "license": "MIT", 5451 + "dependencies": { 5452 + "ansi-styles": "^4.0.0", 5453 + "string-width": "^4.1.0", 5454 + "strip-ansi": "^6.0.0" 5455 + }, 5456 + "engines": { 5457 + "node": ">=10" 5458 + }, 5459 + "funding": { 5460 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 5461 + } 5462 + }, 5463 + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 5464 + "version": "5.0.1", 5465 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 5466 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 5467 + "license": "MIT", 5468 + "engines": { 5469 + "node": ">=8" 5470 + } 5471 + }, 5472 + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 5473 + "version": "4.3.0", 5474 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 5475 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 5476 + "license": "MIT", 5477 + "dependencies": { 5478 + "color-convert": "^2.0.1" 5479 + }, 5480 + "engines": { 5481 + "node": ">=8" 5482 + }, 5483 + "funding": { 5484 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 5485 + } 5486 + }, 5487 + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 5488 + "version": "8.0.0", 5489 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 5490 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 5491 + "license": "MIT" 5492 + }, 5493 + "node_modules/wrap-ansi-cjs/node_modules/string-width": { 5494 + "version": "4.2.3", 5495 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 5496 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 5497 + "license": "MIT", 5498 + "dependencies": { 5499 + "emoji-regex": "^8.0.0", 5500 + "is-fullwidth-code-point": "^3.0.0", 5501 + "strip-ansi": "^6.0.1" 5502 + }, 5503 + "engines": { 5504 + "node": ">=8" 5505 + } 5506 + }, 5507 + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 5508 + "version": "6.0.1", 5509 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 5510 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 5511 + "license": "MIT", 5512 + "dependencies": { 5513 + "ansi-regex": "^5.0.1" 5514 + }, 5515 + "engines": { 5516 + "node": ">=8" 5517 + } 5518 + }, 3658 5519 "node_modules/wrappy": { 3659 5520 "version": "1.0.2", 3660 5521 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3661 5522 "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 3662 - "dev": true, 3663 5523 "license": "ISC" 5524 + }, 5525 + "node_modules/yallist": { 5526 + "version": "5.0.0", 5527 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", 5528 + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", 5529 + "license": "BlueOak-1.0.0", 5530 + "engines": { 5531 + "node": ">=18" 5532 + } 3664 5533 }, 3665 5534 "node_modules/zwitch": { 3666 5535 "version": "2.0.4",
+2
package.json
··· 34 34 "vite": "^5.0.2" 35 35 }, 36 36 "dependencies": { 37 + "@huggingface/transformers": "^3.4.0", 38 + "@xenova/transformers": "^2.17.2", 37 39 "tau-prolog": "^0.2.81" 38 40 }, 39 41 "browserslist": "last 1 firefox version, last 1 chrome version"
+154 -11
src/app/Index.svelte
··· 1 1 <script> 2 2 import Paper from "scattered-papers/Paper.svelte"; 3 + import Text from "scattered-papers/Text.svelte"; 3 4 import Header from "../component/Header.svelte"; 4 5 import Summary from "../component/Summary.svelte"; 5 6 7 + let embed = null; 8 + let cosineSimilarity = null; 9 + async function getEmbed() { 10 + if (embed) return embed; 11 + const { pipeline, cos_sim } = await import("@huggingface/transformers"); 12 + cosineSimilarity = cos_sim; 13 + embed = await pipeline("feature-extraction", "intfloat/e5-small-v2", { 14 + dtype: "fp32", 15 + subfolder: "", 16 + }); 17 + return embed; 18 + } 19 + 6 20 export let articles; 7 21 8 22 let filter = null; 23 + let search = ""; 24 + let appliedSearch = ""; 25 + let searchLoading = false; 26 + let embedded = null; 27 + 9 28 function applyFilter(event) { 10 29 if (event.detail.tag) { 11 30 filter = event.detail.tag; ··· 13 32 filter = null; 14 33 } 15 34 } 35 + 36 + $: filteredArticles = articles 37 + .filter(({ tags }) => (filter ? tags.includes(filter) : true)) 38 + .map((article) => 39 + embedded 40 + ? { 41 + ...article, 42 + relevance: cosineSimilarity( 43 + article.embedding, 44 + embedded.tolist()[0], 45 + ), 46 + } 47 + : { ...article, relevance: 1 }, 48 + ) 49 + .sort((a, b) => b.relevance - a.relevance); 50 + 51 + $: console.log(filteredArticles); 52 + 53 + async function applySearch(value) { 54 + appliedSearch = value; 55 + if (!appliedSearch) { 56 + embedded = null; 57 + } else { 58 + searchLoading = true; 59 + const embed = await getEmbed(); 60 + embedded = await embed(`query: ${appliedSearch}`, { 61 + pooling: "mean", 62 + normalize: true, 63 + }); 64 + searchLoading = false; 65 + } 66 + } 16 67 </script> 17 68 18 69 <div class="index"> 19 70 <Header /> 20 71 21 72 <div class="tickets"> 22 - {#if filter} 23 - <button on:click={() => (filter = null)}> 73 + <div class="tools"> 74 + <div class="focus-within"> 75 + <Paper> 76 + <div class="search-area"> 77 + <label for="search"><Text accent sc>Search:</Text></label> 78 + <input 79 + id="search" 80 + type="search" 81 + placeholder="" 82 + bind:value={search} 83 + on:keydown={(event) => 84 + event.key === "Enter" && applySearch(search)} 85 + /> 86 + <button on:click={() => applySearch(search)}>&RightArrow;</button> 87 + </div> 88 + </Paper> 89 + </div> 90 + {#if appliedSearch} 91 + <button on:click={() => applySearch("")}> 92 + <Paper> 93 + <div class="button-content"> 94 + <Text> 95 + Searching for "{appliedSearch}" &times; 96 + </Text> 97 + </div> 98 + </Paper> 99 + </button> 100 + {/if} 101 + {#if filter} 102 + <button on:click={() => (filter = null)}> 103 + <Paper> 104 + <div class="button-content"> 105 + <Text> 106 + Filtering for #{filter} &times; 107 + </Text> 108 + </div> 109 + </Paper> 110 + </button> 111 + {/if} 112 + </div> 113 + {#if searchLoading} 114 + <div class="loading"> 24 115 <Paper> 25 - <div class="button-content"> 26 - Filtering for #{filter} &times; 116 + <div class="loading-content"> 117 + <Text>Searching...</Text> 27 118 </div> 28 119 </Paper> 29 - </button> 30 - {/if} 31 - {#await articles then articles} 32 - {#each articles.filter( ({ tags }) => (filter ? tags.includes(filter) : true), ) as article (article.id)} 120 + </div> 121 + {:else} 122 + {#each filteredArticles as article (article.id)} 33 123 <Summary {...article} on:filter={applyFilter} /> 34 124 {/each} 35 - {/await} 125 + {/if} 36 126 </div> 37 127 </div> 38 128 ··· 43 133 align-items: center; 44 134 } 45 135 46 - button { 136 + button, 137 + input { 47 138 font: inherit; 48 139 background: none; 49 140 border: none; 50 141 margin-left: auto; 142 + flex-shrink: 0; 143 + } 144 + 145 + button { 51 146 cursor: pointer; 52 147 } 53 148 54 - .button-content { 149 + input { 150 + flex-grow: 1; 151 + outline: none; 152 + } 153 + 154 + label { 155 + color: var(--color-ink-light); 156 + text-transform: lowercase; 157 + } 158 + 159 + .button-content, 160 + .search-area { 55 161 padding: 0.5rem; 56 162 } 57 163 ··· 59 165 display: flex; 60 166 flex-direction: column; 61 167 gap: 1rem; 168 + } 169 + 170 + .tools, 171 + .search-area { 172 + display: flex; 173 + flex-direction: row; 174 + } 175 + 176 + .tools { 177 + width: 50rem; 178 + gap: 1rem; 179 + } 180 + 181 + .search-area { 182 + align-items: baseline; 183 + gap: 0.5rem; 184 + } 185 + 186 + .focus-within { 187 + flex-grow: 1; 188 + } 189 + 190 + .focus-within:focus-within, 191 + button:hover { 192 + --paper--shadow: 0.125rem 0.125rem 0.5rem rgb(0 0 0 / 0.75); 193 + & > :global(*) { 194 + transition: box-shadow 100ms; 195 + } 196 + } 197 + 198 + .loading { 199 + width: 30ch; 200 + margin: 0 auto; 201 + } 202 + 203 + .loading-content { 204 + padding: 1rem; 62 205 } 63 206 </style>