this repo has no description
0
fork

Configure Feed

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

here goes nothing

alice a59b5839 4bd2ac11

+1627 -39
avatars/.gitkeep

This is a binary file and will not be displayed.

+1513 -2
package-lock.json
··· 8 8 "name": "pronouns-bsky", 9 9 "version": "1.0.0", 10 10 "dependencies": { 11 + "@ai-sdk/openai": "^0.0.58", 11 12 "@atproto/api": "^0.13.0", 12 13 "@skyware/firehose": "^0.3.1", 13 14 "@skyware/labeler": "^0.1.2-fix.1", 14 - "dotenv": "^16.4.5" 15 + "ai": "^3.3.28", 16 + "canvas": "^2.11.2", 17 + "dotenv": "^16.4.5", 18 + "zod": "^3.23.8" 15 19 }, 16 20 "devDependencies": { 17 21 "@types/better-sqlite3": "^7.6.11", 18 22 "@types/node": "^20.14.10", 19 23 "typescript": "^5.5.3" 24 + } 25 + }, 26 + "node_modules/@ai-sdk/openai": { 27 + "version": "0.0.58", 28 + "resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-0.0.58.tgz", 29 + "integrity": "sha512-Eao1L0vzfXdymgvc5FDHwV2g2A7BCWml1cShNA+wliY1RL7NNREGcuQvBDNoggB9PM24fawzZyk0ZJ5jlo9Q0w==", 30 + "license": "Apache-2.0", 31 + "dependencies": { 32 + "@ai-sdk/provider": "0.0.23", 33 + "@ai-sdk/provider-utils": "1.0.18" 34 + }, 35 + "engines": { 36 + "node": ">=18" 37 + }, 38 + "peerDependencies": { 39 + "zod": "^3.0.0" 40 + } 41 + }, 42 + "node_modules/@ai-sdk/provider": { 43 + "version": "0.0.23", 44 + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-0.0.23.tgz", 45 + "integrity": "sha512-oAc49O5+xypVrKM7EUU5P/Y4DUL4JZUWVxhejoAVOTOl3WZUEWsMbP3QZR+TrimQIsS0WR/n9UuF6U0jPdp0tQ==", 46 + "license": "Apache-2.0", 47 + "dependencies": { 48 + "json-schema": "0.4.0" 49 + }, 50 + "engines": { 51 + "node": ">=18" 52 + } 53 + }, 54 + "node_modules/@ai-sdk/provider-utils": { 55 + "version": "1.0.18", 56 + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.18.tgz", 57 + "integrity": "sha512-9u/XE/dB1gsIGcxiC5JfGOLzUz+EKRXt66T8KYWwDg4x8d02P+fI/EPOgkf+T4oLBrcQgvs4GPXPKoXGPJxBbg==", 58 + "license": "Apache-2.0", 59 + "dependencies": { 60 + "@ai-sdk/provider": "0.0.23", 61 + "eventsource-parser": "1.1.2", 62 + "nanoid": "3.3.6", 63 + "secure-json-parse": "2.7.0" 64 + }, 65 + "engines": { 66 + "node": ">=18" 67 + }, 68 + "peerDependencies": { 69 + "zod": "^3.0.0" 70 + }, 71 + "peerDependenciesMeta": { 72 + "zod": { 73 + "optional": true 74 + } 75 + } 76 + }, 77 + "node_modules/@ai-sdk/react": { 78 + "version": "0.0.55", 79 + "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-0.0.55.tgz", 80 + "integrity": "sha512-9fUUEEEoH01M6ZhvyZ/2v0DI6tiYnSldBg6RaKoy+qx2tSeKvOpFNZhT/iOvQ7oqAyyp0Ocg5Rj7L/jcLXSMxw==", 81 + "license": "Apache-2.0", 82 + "dependencies": { 83 + "@ai-sdk/provider-utils": "1.0.18", 84 + "@ai-sdk/ui-utils": "0.0.41", 85 + "swr": "2.2.5" 86 + }, 87 + "engines": { 88 + "node": ">=18" 89 + }, 90 + "peerDependencies": { 91 + "react": "^18 || ^19", 92 + "zod": "^3.0.0" 93 + }, 94 + "peerDependenciesMeta": { 95 + "react": { 96 + "optional": true 97 + }, 98 + "zod": { 99 + "optional": true 100 + } 101 + } 102 + }, 103 + "node_modules/@ai-sdk/solid": { 104 + "version": "0.0.44", 105 + "resolved": "https://registry.npmjs.org/@ai-sdk/solid/-/solid-0.0.44.tgz", 106 + "integrity": "sha512-3kMhxalepc78jWr2Qg1BAHbY04JKYxp8wRu3TACrRUdokxzwD5sbZYtTb7vu9tw2wx78rfu0DH44CESFWpSfZg==", 107 + "license": "Apache-2.0", 108 + "dependencies": { 109 + "@ai-sdk/provider-utils": "1.0.18", 110 + "@ai-sdk/ui-utils": "0.0.41" 111 + }, 112 + "engines": { 113 + "node": ">=18" 114 + }, 115 + "peerDependencies": { 116 + "solid-js": "^1.7.7" 117 + }, 118 + "peerDependenciesMeta": { 119 + "solid-js": { 120 + "optional": true 121 + } 122 + } 123 + }, 124 + "node_modules/@ai-sdk/svelte": { 125 + "version": "0.0.46", 126 + "resolved": "https://registry.npmjs.org/@ai-sdk/svelte/-/svelte-0.0.46.tgz", 127 + "integrity": "sha512-cokqS91vQkpqiRgf8xKwOONFb/RwkIbRg9jYVRb+z5NR9OsWXKMEfoCAf8+VgURfVbp8nqA+ddRXvtgYCwqQjQ==", 128 + "license": "Apache-2.0", 129 + "dependencies": { 130 + "@ai-sdk/provider-utils": "1.0.18", 131 + "@ai-sdk/ui-utils": "0.0.41", 132 + "sswr": "2.1.0" 133 + }, 134 + "engines": { 135 + "node": ">=18" 136 + }, 137 + "peerDependencies": { 138 + "svelte": "^3.0.0 || ^4.0.0" 139 + }, 140 + "peerDependenciesMeta": { 141 + "svelte": { 142 + "optional": true 143 + } 144 + } 145 + }, 146 + "node_modules/@ai-sdk/ui-utils": { 147 + "version": "0.0.41", 148 + "resolved": "https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-0.0.41.tgz", 149 + "integrity": "sha512-I0trJKWxVG8hXeG0MvKqLG54fZjdeGjXvcVZocaSnWMBhl9lpTQxrqAR6ZsQMFDXs5DbvXoKtQs488qu2Bzaiw==", 150 + "license": "Apache-2.0", 151 + "dependencies": { 152 + "@ai-sdk/provider": "0.0.23", 153 + "@ai-sdk/provider-utils": "1.0.18", 154 + "json-schema": "0.4.0", 155 + "secure-json-parse": "2.7.0", 156 + "zod-to-json-schema": "3.23.2" 157 + }, 158 + "engines": { 159 + "node": ">=18" 160 + }, 161 + "peerDependencies": { 162 + "zod": "^3.0.0" 163 + }, 164 + "peerDependenciesMeta": { 165 + "zod": { 166 + "optional": true 167 + } 168 + } 169 + }, 170 + "node_modules/@ai-sdk/vue": { 171 + "version": "0.0.46", 172 + "resolved": "https://registry.npmjs.org/@ai-sdk/vue/-/vue-0.0.46.tgz", 173 + "integrity": "sha512-H366ydskPbZP8uRs4sm3SAi97P3JVTRI5Q8xYTI6uTaY4UFBA6aOWdDxniYZNa67ebemfe11m7ksX4wHW6Wl8g==", 174 + "license": "Apache-2.0", 175 + "dependencies": { 176 + "@ai-sdk/provider-utils": "1.0.18", 177 + "@ai-sdk/ui-utils": "0.0.41", 178 + "swrv": "1.0.4" 179 + }, 180 + "engines": { 181 + "node": ">=18" 182 + }, 183 + "peerDependencies": { 184 + "vue": "^3.3.4" 185 + }, 186 + "peerDependenciesMeta": { 187 + "vue": { 188 + "optional": true 189 + } 190 + } 191 + }, 192 + "node_modules/@ampproject/remapping": { 193 + "version": "2.3.0", 194 + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 195 + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 196 + "license": "Apache-2.0", 197 + "peer": true, 198 + "dependencies": { 199 + "@jridgewell/gen-mapping": "^0.3.5", 200 + "@jridgewell/trace-mapping": "^0.3.24" 201 + }, 202 + "engines": { 203 + "node": ">=6.0.0" 20 204 } 21 205 }, 22 206 "node_modules/@atcute/base32": { ··· 284 468 "@atproto/common-web": "^0.2.4" 285 469 } 286 470 }, 471 + "node_modules/@babel/helper-string-parser": { 472 + "version": "7.24.8", 473 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", 474 + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", 475 + "license": "MIT", 476 + "peer": true, 477 + "engines": { 478 + "node": ">=6.9.0" 479 + } 480 + }, 481 + "node_modules/@babel/helper-validator-identifier": { 482 + "version": "7.24.7", 483 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", 484 + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", 485 + "license": "MIT", 486 + "peer": true, 487 + "engines": { 488 + "node": ">=6.9.0" 489 + } 490 + }, 491 + "node_modules/@babel/parser": { 492 + "version": "7.25.6", 493 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", 494 + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", 495 + "license": "MIT", 496 + "peer": true, 497 + "dependencies": { 498 + "@babel/types": "^7.25.6" 499 + }, 500 + "bin": { 501 + "parser": "bin/babel-parser.js" 502 + }, 503 + "engines": { 504 + "node": ">=6.0.0" 505 + } 506 + }, 507 + "node_modules/@babel/types": { 508 + "version": "7.25.6", 509 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", 510 + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", 511 + "license": "MIT", 512 + "peer": true, 513 + "dependencies": { 514 + "@babel/helper-string-parser": "^7.24.8", 515 + "@babel/helper-validator-identifier": "^7.24.7", 516 + "to-fast-properties": "^2.0.0" 517 + }, 518 + "engines": { 519 + "node": ">=6.9.0" 520 + } 521 + }, 287 522 "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { 288 523 "version": "2.2.0", 289 524 "resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz", ··· 429 664 "multiformats": "^9.5.4" 430 665 } 431 666 }, 667 + "node_modules/@jridgewell/gen-mapping": { 668 + "version": "0.3.5", 669 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 670 + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 671 + "license": "MIT", 672 + "peer": true, 673 + "dependencies": { 674 + "@jridgewell/set-array": "^1.2.1", 675 + "@jridgewell/sourcemap-codec": "^1.4.10", 676 + "@jridgewell/trace-mapping": "^0.3.24" 677 + }, 678 + "engines": { 679 + "node": ">=6.0.0" 680 + } 681 + }, 682 + "node_modules/@jridgewell/resolve-uri": { 683 + "version": "3.1.2", 684 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 685 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 686 + "license": "MIT", 687 + "peer": true, 688 + "engines": { 689 + "node": ">=6.0.0" 690 + } 691 + }, 692 + "node_modules/@jridgewell/set-array": { 693 + "version": "1.2.1", 694 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 695 + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 696 + "license": "MIT", 697 + "peer": true, 698 + "engines": { 699 + "node": ">=6.0.0" 700 + } 701 + }, 702 + "node_modules/@jridgewell/sourcemap-codec": { 703 + "version": "1.5.0", 704 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 705 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 706 + "license": "MIT", 707 + "peer": true 708 + }, 709 + "node_modules/@jridgewell/trace-mapping": { 710 + "version": "0.3.25", 711 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 712 + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 713 + "license": "MIT", 714 + "peer": true, 715 + "dependencies": { 716 + "@jridgewell/resolve-uri": "^3.1.0", 717 + "@jridgewell/sourcemap-codec": "^1.4.14" 718 + } 719 + }, 720 + "node_modules/@mapbox/node-pre-gyp": { 721 + "version": "1.0.11", 722 + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", 723 + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", 724 + "license": "BSD-3-Clause", 725 + "dependencies": { 726 + "detect-libc": "^2.0.0", 727 + "https-proxy-agent": "^5.0.0", 728 + "make-dir": "^3.1.0", 729 + "node-fetch": "^2.6.7", 730 + "nopt": "^5.0.0", 731 + "npmlog": "^5.0.1", 732 + "rimraf": "^3.0.2", 733 + "semver": "^7.3.5", 734 + "tar": "^6.1.11" 735 + }, 736 + "bin": { 737 + "node-pre-gyp": "bin/node-pre-gyp" 738 + } 739 + }, 432 740 "node_modules/@noble/curves": { 433 741 "version": "1.6.0", 434 742 "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", ··· 454 762 }, 455 763 "funding": { 456 764 "url": "https://paulmillr.com/funding/" 765 + } 766 + }, 767 + "node_modules/@opentelemetry/api": { 768 + "version": "1.9.0", 769 + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", 770 + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", 771 + "license": "Apache-2.0", 772 + "engines": { 773 + "node": ">=8.0.0" 457 774 } 458 775 }, 459 776 "node_modules/@skyware/firehose": { ··· 587 904 "@types/node": "*" 588 905 } 589 906 }, 907 + "node_modules/@types/diff-match-patch": { 908 + "version": "1.0.36", 909 + "resolved": "https://registry.npmjs.org/@types/diff-match-patch/-/diff-match-patch-1.0.36.tgz", 910 + "integrity": "sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==", 911 + "license": "MIT" 912 + }, 913 + "node_modules/@types/estree": { 914 + "version": "1.0.5", 915 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", 916 + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", 917 + "license": "MIT", 918 + "peer": true 919 + }, 590 920 "node_modules/@types/node": { 591 921 "version": "20.16.5", 592 922 "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", ··· 597 927 "undici-types": "~6.19.2" 598 928 } 599 929 }, 930 + "node_modules/@vue/compiler-core": { 931 + "version": "3.5.3", 932 + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.3.tgz", 933 + "integrity": "sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==", 934 + "license": "MIT", 935 + "peer": true, 936 + "dependencies": { 937 + "@babel/parser": "^7.25.3", 938 + "@vue/shared": "3.5.3", 939 + "entities": "^4.5.0", 940 + "estree-walker": "^2.0.2", 941 + "source-map-js": "^1.2.0" 942 + } 943 + }, 944 + "node_modules/@vue/compiler-core/node_modules/estree-walker": { 945 + "version": "2.0.2", 946 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 947 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 948 + "license": "MIT", 949 + "peer": true 950 + }, 951 + "node_modules/@vue/compiler-dom": { 952 + "version": "3.5.3", 953 + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz", 954 + "integrity": "sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==", 955 + "license": "MIT", 956 + "peer": true, 957 + "dependencies": { 958 + "@vue/compiler-core": "3.5.3", 959 + "@vue/shared": "3.5.3" 960 + } 961 + }, 962 + "node_modules/@vue/compiler-sfc": { 963 + "version": "3.5.3", 964 + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.3.tgz", 965 + "integrity": "sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==", 966 + "license": "MIT", 967 + "peer": true, 968 + "dependencies": { 969 + "@babel/parser": "^7.25.3", 970 + "@vue/compiler-core": "3.5.3", 971 + "@vue/compiler-dom": "3.5.3", 972 + "@vue/compiler-ssr": "3.5.3", 973 + "@vue/shared": "3.5.3", 974 + "estree-walker": "^2.0.2", 975 + "magic-string": "^0.30.11", 976 + "postcss": "^8.4.44", 977 + "source-map-js": "^1.2.0" 978 + } 979 + }, 980 + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { 981 + "version": "2.0.2", 982 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 983 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 984 + "license": "MIT", 985 + "peer": true 986 + }, 987 + "node_modules/@vue/compiler-ssr": { 988 + "version": "3.5.3", 989 + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.3.tgz", 990 + "integrity": "sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==", 991 + "license": "MIT", 992 + "peer": true, 993 + "dependencies": { 994 + "@vue/compiler-dom": "3.5.3", 995 + "@vue/shared": "3.5.3" 996 + } 997 + }, 998 + "node_modules/@vue/reactivity": { 999 + "version": "3.5.3", 1000 + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.3.tgz", 1001 + "integrity": "sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==", 1002 + "license": "MIT", 1003 + "peer": true, 1004 + "dependencies": { 1005 + "@vue/shared": "3.5.3" 1006 + } 1007 + }, 1008 + "node_modules/@vue/runtime-core": { 1009 + "version": "3.5.3", 1010 + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.3.tgz", 1011 + "integrity": "sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==", 1012 + "license": "MIT", 1013 + "peer": true, 1014 + "dependencies": { 1015 + "@vue/reactivity": "3.5.3", 1016 + "@vue/shared": "3.5.3" 1017 + } 1018 + }, 1019 + "node_modules/@vue/runtime-dom": { 1020 + "version": "3.5.3", 1021 + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.3.tgz", 1022 + "integrity": "sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==", 1023 + "license": "MIT", 1024 + "peer": true, 1025 + "dependencies": { 1026 + "@vue/reactivity": "3.5.3", 1027 + "@vue/runtime-core": "3.5.3", 1028 + "@vue/shared": "3.5.3", 1029 + "csstype": "^3.1.3" 1030 + } 1031 + }, 1032 + "node_modules/@vue/server-renderer": { 1033 + "version": "3.5.3", 1034 + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.3.tgz", 1035 + "integrity": "sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==", 1036 + "license": "MIT", 1037 + "peer": true, 1038 + "dependencies": { 1039 + "@vue/compiler-ssr": "3.5.3", 1040 + "@vue/shared": "3.5.3" 1041 + }, 1042 + "peerDependencies": { 1043 + "vue": "3.5.3" 1044 + } 1045 + }, 1046 + "node_modules/@vue/shared": { 1047 + "version": "3.5.3", 1048 + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.3.tgz", 1049 + "integrity": "sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==", 1050 + "license": "MIT", 1051 + "peer": true 1052 + }, 1053 + "node_modules/abbrev": { 1054 + "version": "1.1.1", 1055 + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 1056 + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 1057 + "license": "ISC" 1058 + }, 600 1059 "node_modules/abort-controller": { 601 1060 "version": "3.0.0", 602 1061 "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", ··· 628 1087 "node": ">= 0.6" 629 1088 } 630 1089 }, 1090 + "node_modules/acorn": { 1091 + "version": "8.12.1", 1092 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", 1093 + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", 1094 + "license": "MIT", 1095 + "peer": true, 1096 + "bin": { 1097 + "acorn": "bin/acorn" 1098 + }, 1099 + "engines": { 1100 + "node": ">=0.4.0" 1101 + } 1102 + }, 1103 + "node_modules/agent-base": { 1104 + "version": "6.0.2", 1105 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 1106 + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 1107 + "license": "MIT", 1108 + "dependencies": { 1109 + "debug": "4" 1110 + }, 1111 + "engines": { 1112 + "node": ">= 6.0.0" 1113 + } 1114 + }, 1115 + "node_modules/agent-base/node_modules/debug": { 1116 + "version": "4.3.7", 1117 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", 1118 + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 1119 + "license": "MIT", 1120 + "dependencies": { 1121 + "ms": "^2.1.3" 1122 + }, 1123 + "engines": { 1124 + "node": ">=6.0" 1125 + }, 1126 + "peerDependenciesMeta": { 1127 + "supports-color": { 1128 + "optional": true 1129 + } 1130 + } 1131 + }, 1132 + "node_modules/agent-base/node_modules/ms": { 1133 + "version": "2.1.3", 1134 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1135 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 1136 + "license": "MIT" 1137 + }, 1138 + "node_modules/ai": { 1139 + "version": "3.3.28", 1140 + "resolved": "https://registry.npmjs.org/ai/-/ai-3.3.28.tgz", 1141 + "integrity": "sha512-ogrsMscar8oXa4nTEcnjvb37cs0UJ7AxVga/642BQGkGBevnKhS0hbnXEOUKmlWcny/xRuWQ3GaXA3u9CxhfhQ==", 1142 + "license": "Apache-2.0", 1143 + "dependencies": { 1144 + "@ai-sdk/provider": "0.0.23", 1145 + "@ai-sdk/provider-utils": "1.0.18", 1146 + "@ai-sdk/react": "0.0.55", 1147 + "@ai-sdk/solid": "0.0.44", 1148 + "@ai-sdk/svelte": "0.0.46", 1149 + "@ai-sdk/ui-utils": "0.0.41", 1150 + "@ai-sdk/vue": "0.0.46", 1151 + "@opentelemetry/api": "1.9.0", 1152 + "eventsource-parser": "1.1.2", 1153 + "json-schema": "0.4.0", 1154 + "jsondiffpatch": "0.6.0", 1155 + "nanoid": "3.3.6", 1156 + "secure-json-parse": "2.7.0", 1157 + "zod-to-json-schema": "3.23.2" 1158 + }, 1159 + "engines": { 1160 + "node": ">=18" 1161 + }, 1162 + "peerDependencies": { 1163 + "openai": "^4.42.0", 1164 + "react": "^18 || ^19", 1165 + "sswr": "^2.1.0", 1166 + "svelte": "^3.0.0 || ^4.0.0", 1167 + "zod": "^3.0.0" 1168 + }, 1169 + "peerDependenciesMeta": { 1170 + "openai": { 1171 + "optional": true 1172 + }, 1173 + "react": { 1174 + "optional": true 1175 + }, 1176 + "sswr": { 1177 + "optional": true 1178 + }, 1179 + "svelte": { 1180 + "optional": true 1181 + }, 1182 + "zod": { 1183 + "optional": true 1184 + } 1185 + } 1186 + }, 631 1187 "node_modules/ajv": { 632 1188 "version": "8.17.1", 633 1189 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", ··· 667 1223 "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", 668 1224 "license": "MIT" 669 1225 }, 1226 + "node_modules/ansi-regex": { 1227 + "version": "5.0.1", 1228 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1229 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1230 + "license": "MIT", 1231 + "engines": { 1232 + "node": ">=8" 1233 + } 1234 + }, 1235 + "node_modules/aproba": { 1236 + "version": "2.0.0", 1237 + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", 1238 + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", 1239 + "license": "ISC" 1240 + }, 1241 + "node_modules/are-we-there-yet": { 1242 + "version": "2.0.0", 1243 + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", 1244 + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", 1245 + "deprecated": "This package is no longer supported.", 1246 + "license": "ISC", 1247 + "dependencies": { 1248 + "delegates": "^1.0.0", 1249 + "readable-stream": "^3.6.0" 1250 + }, 1251 + "engines": { 1252 + "node": ">=10" 1253 + } 1254 + }, 1255 + "node_modules/aria-query": { 1256 + "version": "5.3.0", 1257 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", 1258 + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", 1259 + "license": "Apache-2.0", 1260 + "peer": true, 1261 + "dependencies": { 1262 + "dequal": "^2.0.3" 1263 + } 1264 + }, 670 1265 "node_modules/array-flatten": { 671 1266 "version": "1.1.1", 672 1267 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", ··· 713 1308 "follow-redirects": "^1.14.9", 714 1309 "form-data": "^4.0.0" 715 1310 } 1311 + }, 1312 + "node_modules/axobject-query": { 1313 + "version": "4.1.0", 1314 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 1315 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 1316 + "license": "Apache-2.0", 1317 + "peer": true, 1318 + "engines": { 1319 + "node": ">= 0.4" 1320 + } 1321 + }, 1322 + "node_modules/balanced-match": { 1323 + "version": "1.0.2", 1324 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1325 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1326 + "license": "MIT" 716 1327 }, 717 1328 "node_modules/base64-js": { 718 1329 "version": "1.5.1", ··· 789 1400 "npm": "1.2.8000 || >= 1.4.16" 790 1401 } 791 1402 }, 1403 + "node_modules/brace-expansion": { 1404 + "version": "1.1.11", 1405 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1406 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1407 + "license": "MIT", 1408 + "dependencies": { 1409 + "balanced-match": "^1.0.0", 1410 + "concat-map": "0.0.1" 1411 + } 1412 + }, 792 1413 "node_modules/buffer": { 793 1414 "version": "5.7.1", 794 1415 "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", ··· 841 1462 "url": "https://github.com/sponsors/ljharb" 842 1463 } 843 1464 }, 1465 + "node_modules/canvas": { 1466 + "version": "2.11.2", 1467 + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", 1468 + "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", 1469 + "hasInstallScript": true, 1470 + "license": "MIT", 1471 + "dependencies": { 1472 + "@mapbox/node-pre-gyp": "^1.0.0", 1473 + "nan": "^2.17.0", 1474 + "simple-get": "^3.0.3" 1475 + }, 1476 + "engines": { 1477 + "node": ">=6" 1478 + } 1479 + }, 1480 + "node_modules/canvas/node_modules/decompress-response": { 1481 + "version": "4.2.1", 1482 + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 1483 + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 1484 + "license": "MIT", 1485 + "dependencies": { 1486 + "mimic-response": "^2.0.0" 1487 + }, 1488 + "engines": { 1489 + "node": ">=8" 1490 + } 1491 + }, 1492 + "node_modules/canvas/node_modules/mimic-response": { 1493 + "version": "2.1.0", 1494 + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 1495 + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", 1496 + "license": "MIT", 1497 + "engines": { 1498 + "node": ">=8" 1499 + }, 1500 + "funding": { 1501 + "url": "https://github.com/sponsors/sindresorhus" 1502 + } 1503 + }, 1504 + "node_modules/canvas/node_modules/simple-get": { 1505 + "version": "3.1.1", 1506 + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", 1507 + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", 1508 + "license": "MIT", 1509 + "dependencies": { 1510 + "decompress-response": "^4.2.0", 1511 + "once": "^1.3.1", 1512 + "simple-concat": "^1.0.0" 1513 + } 1514 + }, 844 1515 "node_modules/cbor-extract": { 845 1516 "version": "2.2.0", 846 1517 "resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz", ··· 881 1552 "cborg": "cli.js" 882 1553 } 883 1554 }, 1555 + "node_modules/chalk": { 1556 + "version": "5.3.0", 1557 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", 1558 + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", 1559 + "license": "MIT", 1560 + "engines": { 1561 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 1562 + }, 1563 + "funding": { 1564 + "url": "https://github.com/chalk/chalk?sponsor=1" 1565 + } 1566 + }, 884 1567 "node_modules/chownr": { 885 1568 "version": "1.1.4", 886 1569 "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 887 1570 "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 888 1571 "license": "ISC" 889 1572 }, 1573 + "node_modules/client-only": { 1574 + "version": "0.0.1", 1575 + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", 1576 + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", 1577 + "license": "MIT" 1578 + }, 1579 + "node_modules/code-red": { 1580 + "version": "1.0.4", 1581 + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", 1582 + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", 1583 + "license": "MIT", 1584 + "peer": true, 1585 + "dependencies": { 1586 + "@jridgewell/sourcemap-codec": "^1.4.15", 1587 + "@types/estree": "^1.0.1", 1588 + "acorn": "^8.10.0", 1589 + "estree-walker": "^3.0.3", 1590 + "periscopic": "^3.1.0" 1591 + } 1592 + }, 1593 + "node_modules/color-support": { 1594 + "version": "1.1.3", 1595 + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", 1596 + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", 1597 + "license": "ISC", 1598 + "bin": { 1599 + "color-support": "bin.js" 1600 + } 1601 + }, 890 1602 "node_modules/combined-stream": { 891 1603 "version": "1.0.8", 892 1604 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", ··· 898 1610 "engines": { 899 1611 "node": ">= 0.8" 900 1612 } 1613 + }, 1614 + "node_modules/concat-map": { 1615 + "version": "0.0.1", 1616 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1617 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1618 + "license": "MIT" 1619 + }, 1620 + "node_modules/console-control-strings": { 1621 + "version": "1.1.0", 1622 + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 1623 + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", 1624 + "license": "ISC" 901 1625 }, 902 1626 "node_modules/content-disposition": { 903 1627 "version": "0.5.4", ··· 935 1659 "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", 936 1660 "license": "MIT" 937 1661 }, 1662 + "node_modules/css-tree": { 1663 + "version": "2.3.1", 1664 + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", 1665 + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 1666 + "license": "MIT", 1667 + "peer": true, 1668 + "dependencies": { 1669 + "mdn-data": "2.0.30", 1670 + "source-map-js": "^1.0.1" 1671 + }, 1672 + "engines": { 1673 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 1674 + } 1675 + }, 1676 + "node_modules/csstype": { 1677 + "version": "3.1.3", 1678 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 1679 + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", 1680 + "license": "MIT", 1681 + "peer": true 1682 + }, 938 1683 "node_modules/debug": { 939 1684 "version": "2.6.9", 940 1685 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", ··· 994 1739 "node": ">=0.4.0" 995 1740 } 996 1741 }, 1742 + "node_modules/delegates": { 1743 + "version": "1.0.0", 1744 + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 1745 + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", 1746 + "license": "MIT" 1747 + }, 997 1748 "node_modules/depd": { 998 1749 "version": "2.0.0", 999 1750 "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", ··· 1003 1754 "node": ">= 0.8" 1004 1755 } 1005 1756 }, 1757 + "node_modules/dequal": { 1758 + "version": "2.0.3", 1759 + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 1760 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 1761 + "license": "MIT", 1762 + "peer": true, 1763 + "engines": { 1764 + "node": ">=6" 1765 + } 1766 + }, 1006 1767 "node_modules/destroy": { 1007 1768 "version": "1.2.0", 1008 1769 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", ··· 1021 1782 "engines": { 1022 1783 "node": ">=8" 1023 1784 } 1785 + }, 1786 + "node_modules/diff-match-patch": { 1787 + "version": "1.0.5", 1788 + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", 1789 + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", 1790 + "license": "Apache-2.0" 1024 1791 }, 1025 1792 "node_modules/dotenv": { 1026 1793 "version": "16.4.5", ··· 1052 1819 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", 1053 1820 "license": "MIT" 1054 1821 }, 1822 + "node_modules/emoji-regex": { 1823 + "version": "8.0.0", 1824 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1825 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 1826 + "license": "MIT" 1827 + }, 1055 1828 "node_modules/encodeurl": { 1056 1829 "version": "1.0.2", 1057 1830 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", ··· 1070 1843 "once": "^1.4.0" 1071 1844 } 1072 1845 }, 1846 + "node_modules/entities": { 1847 + "version": "4.5.0", 1848 + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 1849 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 1850 + "license": "BSD-2-Clause", 1851 + "peer": true, 1852 + "engines": { 1853 + "node": ">=0.12" 1854 + }, 1855 + "funding": { 1856 + "url": "https://github.com/fb55/entities?sponsor=1" 1857 + } 1858 + }, 1073 1859 "node_modules/es-define-property": { 1074 1860 "version": "1.0.0", 1075 1861 "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", ··· 1097 1883 "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", 1098 1884 "license": "MIT" 1099 1885 }, 1886 + "node_modules/estree-walker": { 1887 + "version": "3.0.3", 1888 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 1889 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 1890 + "license": "MIT", 1891 + "peer": true, 1892 + "dependencies": { 1893 + "@types/estree": "^1.0.0" 1894 + } 1895 + }, 1100 1896 "node_modules/etag": { 1101 1897 "version": "1.8.1", 1102 1898 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", ··· 1122 1918 "license": "MIT", 1123 1919 "engines": { 1124 1920 "node": ">=0.8.x" 1921 + } 1922 + }, 1923 + "node_modules/eventsource-parser": { 1924 + "version": "1.1.2", 1925 + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", 1926 + "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", 1927 + "license": "MIT", 1928 + "engines": { 1929 + "node": ">=14.18" 1125 1930 } 1126 1931 }, 1127 1932 "node_modules/expand-template": { ··· 1452 2257 "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", 1453 2258 "license": "MIT" 1454 2259 }, 2260 + "node_modules/fs-minipass": { 2261 + "version": "2.1.0", 2262 + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 2263 + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 2264 + "license": "ISC", 2265 + "dependencies": { 2266 + "minipass": "^3.0.0" 2267 + }, 2268 + "engines": { 2269 + "node": ">= 8" 2270 + } 2271 + }, 2272 + "node_modules/fs-minipass/node_modules/minipass": { 2273 + "version": "3.3.6", 2274 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 2275 + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 2276 + "license": "ISC", 2277 + "dependencies": { 2278 + "yallist": "^4.0.0" 2279 + }, 2280 + "engines": { 2281 + "node": ">=8" 2282 + } 2283 + }, 2284 + "node_modules/fs.realpath": { 2285 + "version": "1.0.0", 2286 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2287 + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 2288 + "license": "ISC" 2289 + }, 1455 2290 "node_modules/function-bind": { 1456 2291 "version": "1.1.2", 1457 2292 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", ··· 1461 2296 "url": "https://github.com/sponsors/ljharb" 1462 2297 } 1463 2298 }, 2299 + "node_modules/gauge": { 2300 + "version": "3.0.2", 2301 + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", 2302 + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", 2303 + "deprecated": "This package is no longer supported.", 2304 + "license": "ISC", 2305 + "dependencies": { 2306 + "aproba": "^1.0.3 || ^2.0.0", 2307 + "color-support": "^1.1.2", 2308 + "console-control-strings": "^1.0.0", 2309 + "has-unicode": "^2.0.1", 2310 + "object-assign": "^4.1.1", 2311 + "signal-exit": "^3.0.0", 2312 + "string-width": "^4.2.3", 2313 + "strip-ansi": "^6.0.1", 2314 + "wide-align": "^1.1.2" 2315 + }, 2316 + "engines": { 2317 + "node": ">=10" 2318 + } 2319 + }, 1464 2320 "node_modules/get-intrinsic": { 1465 2321 "version": "1.2.4", 1466 2322 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", ··· 1486 2342 "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", 1487 2343 "license": "MIT" 1488 2344 }, 2345 + "node_modules/glob": { 2346 + "version": "7.2.3", 2347 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 2348 + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 2349 + "deprecated": "Glob versions prior to v9 are no longer supported", 2350 + "license": "ISC", 2351 + "dependencies": { 2352 + "fs.realpath": "^1.0.0", 2353 + "inflight": "^1.0.4", 2354 + "inherits": "2", 2355 + "minimatch": "^3.1.1", 2356 + "once": "^1.3.0", 2357 + "path-is-absolute": "^1.0.0" 2358 + }, 2359 + "engines": { 2360 + "node": "*" 2361 + }, 2362 + "funding": { 2363 + "url": "https://github.com/sponsors/isaacs" 2364 + } 2365 + }, 1489 2366 "node_modules/gopd": { 1490 2367 "version": "1.0.1", 1491 2368 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", ··· 1540 2417 "url": "https://github.com/sponsors/ljharb" 1541 2418 } 1542 2419 }, 2420 + "node_modules/has-unicode": { 2421 + "version": "2.0.1", 2422 + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 2423 + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", 2424 + "license": "ISC" 2425 + }, 1543 2426 "node_modules/hasown": { 1544 2427 "version": "2.0.2", 1545 2428 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", ··· 1568 2451 "node": ">= 0.8" 1569 2452 } 1570 2453 }, 2454 + "node_modules/https-proxy-agent": { 2455 + "version": "5.0.1", 2456 + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 2457 + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 2458 + "license": "MIT", 2459 + "dependencies": { 2460 + "agent-base": "6", 2461 + "debug": "4" 2462 + }, 2463 + "engines": { 2464 + "node": ">= 6" 2465 + } 2466 + }, 2467 + "node_modules/https-proxy-agent/node_modules/debug": { 2468 + "version": "4.3.7", 2469 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", 2470 + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 2471 + "license": "MIT", 2472 + "dependencies": { 2473 + "ms": "^2.1.3" 2474 + }, 2475 + "engines": { 2476 + "node": ">=6.0" 2477 + }, 2478 + "peerDependenciesMeta": { 2479 + "supports-color": { 2480 + "optional": true 2481 + } 2482 + } 2483 + }, 2484 + "node_modules/https-proxy-agent/node_modules/ms": { 2485 + "version": "2.1.3", 2486 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2487 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2488 + "license": "MIT" 2489 + }, 1571 2490 "node_modules/iconv-lite": { 1572 2491 "version": "0.4.24", 1573 2492 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", ··· 1600 2519 ], 1601 2520 "license": "BSD-3-Clause" 1602 2521 }, 2522 + "node_modules/inflight": { 2523 + "version": "1.0.6", 2524 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2525 + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2526 + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 2527 + "license": "ISC", 2528 + "dependencies": { 2529 + "once": "^1.3.0", 2530 + "wrappy": "1" 2531 + } 2532 + }, 1603 2533 "node_modules/inherits": { 1604 2534 "version": "2.0.4", 1605 2535 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", ··· 1621 2551 "node": ">= 0.10" 1622 2552 } 1623 2553 }, 2554 + "node_modules/is-fullwidth-code-point": { 2555 + "version": "3.0.0", 2556 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2557 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 2558 + "license": "MIT", 2559 + "engines": { 2560 + "node": ">=8" 2561 + } 2562 + }, 2563 + "node_modules/is-reference": { 2564 + "version": "3.0.2", 2565 + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", 2566 + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", 2567 + "license": "MIT", 2568 + "peer": true, 2569 + "dependencies": { 2570 + "@types/estree": "*" 2571 + } 2572 + }, 1624 2573 "node_modules/iso-datestring-validator": { 1625 2574 "version": "2.2.2", 1626 2575 "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", 1627 2576 "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==", 1628 2577 "license": "MIT" 1629 2578 }, 2579 + "node_modules/js-tokens": { 2580 + "version": "4.0.0", 2581 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2582 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2583 + "license": "MIT", 2584 + "peer": true 2585 + }, 2586 + "node_modules/json-schema": { 2587 + "version": "0.4.0", 2588 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", 2589 + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", 2590 + "license": "(AFL-2.1 OR BSD-3-Clause)" 2591 + }, 1630 2592 "node_modules/json-schema-ref-resolver": { 1631 2593 "version": "1.0.1", 1632 2594 "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz", ··· 1642 2604 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 1643 2605 "license": "MIT" 1644 2606 }, 2607 + "node_modules/jsondiffpatch": { 2608 + "version": "0.6.0", 2609 + "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.6.0.tgz", 2610 + "integrity": "sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==", 2611 + "license": "MIT", 2612 + "dependencies": { 2613 + "@types/diff-match-patch": "^1.0.36", 2614 + "chalk": "^5.3.0", 2615 + "diff-match-patch": "^1.0.5" 2616 + }, 2617 + "bin": { 2618 + "jsondiffpatch": "bin/jsondiffpatch.js" 2619 + }, 2620 + "engines": { 2621 + "node": "^18.0.0 || >=20.0.0" 2622 + } 2623 + }, 1645 2624 "node_modules/kleur": { 1646 2625 "version": "3.0.3", 1647 2626 "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", ··· 1662 2641 "set-cookie-parser": "^2.4.1" 1663 2642 } 1664 2643 }, 2644 + "node_modules/locate-character": { 2645 + "version": "3.0.0", 2646 + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 2647 + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 2648 + "license": "MIT", 2649 + "peer": true 2650 + }, 2651 + "node_modules/loose-envify": { 2652 + "version": "1.4.0", 2653 + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2654 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2655 + "license": "MIT", 2656 + "peer": true, 2657 + "dependencies": { 2658 + "js-tokens": "^3.0.0 || ^4.0.0" 2659 + }, 2660 + "bin": { 2661 + "loose-envify": "cli.js" 2662 + } 2663 + }, 2664 + "node_modules/magic-string": { 2665 + "version": "0.30.11", 2666 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", 2667 + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", 2668 + "license": "MIT", 2669 + "peer": true, 2670 + "dependencies": { 2671 + "@jridgewell/sourcemap-codec": "^1.5.0" 2672 + } 2673 + }, 2674 + "node_modules/make-dir": { 2675 + "version": "3.1.0", 2676 + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 2677 + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 2678 + "license": "MIT", 2679 + "dependencies": { 2680 + "semver": "^6.0.0" 2681 + }, 2682 + "engines": { 2683 + "node": ">=8" 2684 + }, 2685 + "funding": { 2686 + "url": "https://github.com/sponsors/sindresorhus" 2687 + } 2688 + }, 2689 + "node_modules/make-dir/node_modules/semver": { 2690 + "version": "6.3.1", 2691 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 2692 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 2693 + "license": "ISC", 2694 + "bin": { 2695 + "semver": "bin/semver.js" 2696 + } 2697 + }, 2698 + "node_modules/mdn-data": { 2699 + "version": "2.0.30", 2700 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", 2701 + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 2702 + "license": "CC0-1.0", 2703 + "peer": true 2704 + }, 1665 2705 "node_modules/media-typer": { 1666 2706 "version": "0.3.0", 1667 2707 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", ··· 1731 2771 "url": "https://github.com/sponsors/sindresorhus" 1732 2772 } 1733 2773 }, 2774 + "node_modules/minimatch": { 2775 + "version": "3.1.2", 2776 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2777 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2778 + "license": "ISC", 2779 + "dependencies": { 2780 + "brace-expansion": "^1.1.7" 2781 + }, 2782 + "engines": { 2783 + "node": "*" 2784 + } 2785 + }, 1734 2786 "node_modules/minimist": { 1735 2787 "version": "1.2.8", 1736 2788 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", ··· 1740 2792 "url": "https://github.com/sponsors/ljharb" 1741 2793 } 1742 2794 }, 2795 + "node_modules/minipass": { 2796 + "version": "5.0.0", 2797 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", 2798 + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", 2799 + "license": "ISC", 2800 + "engines": { 2801 + "node": ">=8" 2802 + } 2803 + }, 2804 + "node_modules/minizlib": { 2805 + "version": "2.1.2", 2806 + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 2807 + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 2808 + "license": "MIT", 2809 + "dependencies": { 2810 + "minipass": "^3.0.0", 2811 + "yallist": "^4.0.0" 2812 + }, 2813 + "engines": { 2814 + "node": ">= 8" 2815 + } 2816 + }, 2817 + "node_modules/minizlib/node_modules/minipass": { 2818 + "version": "3.3.6", 2819 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 2820 + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 2821 + "license": "ISC", 2822 + "dependencies": { 2823 + "yallist": "^4.0.0" 2824 + }, 2825 + "engines": { 2826 + "node": ">=8" 2827 + } 2828 + }, 2829 + "node_modules/mkdirp": { 2830 + "version": "1.0.4", 2831 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 2832 + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 2833 + "license": "MIT", 2834 + "bin": { 2835 + "mkdirp": "bin/cmd.js" 2836 + }, 2837 + "engines": { 2838 + "node": ">=10" 2839 + } 2840 + }, 1743 2841 "node_modules/mkdirp-classic": { 1744 2842 "version": "0.5.3", 1745 2843 "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", ··· 1758 2856 "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", 1759 2857 "license": "(Apache-2.0 AND MIT)" 1760 2858 }, 2859 + "node_modules/nan": { 2860 + "version": "2.20.0", 2861 + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", 2862 + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", 2863 + "license": "MIT" 2864 + }, 2865 + "node_modules/nanoid": { 2866 + "version": "3.3.6", 2867 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 2868 + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 2869 + "funding": [ 2870 + { 2871 + "type": "github", 2872 + "url": "https://github.com/sponsors/ai" 2873 + } 2874 + ], 2875 + "license": "MIT", 2876 + "bin": { 2877 + "nanoid": "bin/nanoid.cjs" 2878 + }, 2879 + "engines": { 2880 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2881 + } 2882 + }, 1761 2883 "node_modules/napi-build-utils": { 1762 2884 "version": "1.0.2", 1763 2885 "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", ··· 1785 2907 "node": ">=10" 1786 2908 } 1787 2909 }, 2910 + "node_modules/node-fetch": { 2911 + "version": "2.7.0", 2912 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 2913 + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 2914 + "license": "MIT", 2915 + "dependencies": { 2916 + "whatwg-url": "^5.0.0" 2917 + }, 2918 + "engines": { 2919 + "node": "4.x || >=6.0.0" 2920 + }, 2921 + "peerDependencies": { 2922 + "encoding": "^0.1.0" 2923 + }, 2924 + "peerDependenciesMeta": { 2925 + "encoding": { 2926 + "optional": true 2927 + } 2928 + } 2929 + }, 1788 2930 "node_modules/node-gyp-build-optional-packages": { 1789 2931 "version": "5.1.1", 1790 2932 "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", ··· 1800 2942 "node-gyp-build-optional-packages-test": "build-test.js" 1801 2943 } 1802 2944 }, 2945 + "node_modules/nopt": { 2946 + "version": "5.0.0", 2947 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", 2948 + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", 2949 + "license": "ISC", 2950 + "dependencies": { 2951 + "abbrev": "1" 2952 + }, 2953 + "bin": { 2954 + "nopt": "bin/nopt.js" 2955 + }, 2956 + "engines": { 2957 + "node": ">=6" 2958 + } 2959 + }, 2960 + "node_modules/npmlog": { 2961 + "version": "5.0.1", 2962 + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", 2963 + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", 2964 + "deprecated": "This package is no longer supported.", 2965 + "license": "ISC", 2966 + "dependencies": { 2967 + "are-we-there-yet": "^2.0.0", 2968 + "console-control-strings": "^1.1.0", 2969 + "gauge": "^3.0.0", 2970 + "set-blocking": "^2.0.0" 2971 + } 2972 + }, 2973 + "node_modules/object-assign": { 2974 + "version": "4.1.1", 2975 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2976 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 2977 + "license": "MIT", 2978 + "engines": { 2979 + "node": ">=0.10.0" 2980 + } 2981 + }, 1803 2982 "node_modules/object-inspect": { 1804 2983 "version": "1.13.2", 1805 2984 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", ··· 1851 3030 "node": ">= 0.8" 1852 3031 } 1853 3032 }, 3033 + "node_modules/path-is-absolute": { 3034 + "version": "1.0.1", 3035 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3036 + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 3037 + "license": "MIT", 3038 + "engines": { 3039 + "node": ">=0.10.0" 3040 + } 3041 + }, 1854 3042 "node_modules/path-to-regexp": { 1855 3043 "version": "0.1.7", 1856 3044 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1857 3045 "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", 1858 3046 "license": "MIT" 3047 + }, 3048 + "node_modules/periscopic": { 3049 + "version": "3.1.0", 3050 + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", 3051 + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", 3052 + "license": "MIT", 3053 + "peer": true, 3054 + "dependencies": { 3055 + "@types/estree": "^1.0.0", 3056 + "estree-walker": "^3.0.0", 3057 + "is-reference": "^3.0.0" 3058 + } 3059 + }, 3060 + "node_modules/picocolors": { 3061 + "version": "1.1.0", 3062 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", 3063 + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", 3064 + "license": "ISC", 3065 + "peer": true 1859 3066 }, 1860 3067 "node_modules/pino": { 1861 3068 "version": "8.21.0", ··· 1935 3142 "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", 1936 3143 "license": "MIT" 1937 3144 }, 3145 + "node_modules/postcss": { 3146 + "version": "8.4.45", 3147 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", 3148 + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", 3149 + "funding": [ 3150 + { 3151 + "type": "opencollective", 3152 + "url": "https://opencollective.com/postcss/" 3153 + }, 3154 + { 3155 + "type": "tidelift", 3156 + "url": "https://tidelift.com/funding/github/npm/postcss" 3157 + }, 3158 + { 3159 + "type": "github", 3160 + "url": "https://github.com/sponsors/ai" 3161 + } 3162 + ], 3163 + "license": "MIT", 3164 + "peer": true, 3165 + "dependencies": { 3166 + "nanoid": "^3.3.7", 3167 + "picocolors": "^1.0.1", 3168 + "source-map-js": "^1.2.0" 3169 + }, 3170 + "engines": { 3171 + "node": "^10 || ^12 || >=14" 3172 + } 3173 + }, 3174 + "node_modules/postcss/node_modules/nanoid": { 3175 + "version": "3.3.7", 3176 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 3177 + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 3178 + "funding": [ 3179 + { 3180 + "type": "github", 3181 + "url": "https://github.com/sponsors/ai" 3182 + } 3183 + ], 3184 + "license": "MIT", 3185 + "peer": true, 3186 + "bin": { 3187 + "nanoid": "bin/nanoid.cjs" 3188 + }, 3189 + "engines": { 3190 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3191 + } 3192 + }, 1938 3193 "node_modules/prebuild-install": { 1939 3194 "version": "7.1.2", 1940 3195 "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", ··· 2078 3333 "rc": "cli.js" 2079 3334 } 2080 3335 }, 3336 + "node_modules/react": { 3337 + "version": "18.3.1", 3338 + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", 3339 + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 3340 + "license": "MIT", 3341 + "peer": true, 3342 + "dependencies": { 3343 + "loose-envify": "^1.1.0" 3344 + }, 3345 + "engines": { 3346 + "node": ">=0.10.0" 3347 + } 3348 + }, 2081 3349 "node_modules/readable-stream": { 2082 3350 "version": "3.6.2", 2083 3351 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", ··· 2135 3403 "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", 2136 3404 "license": "MIT" 2137 3405 }, 3406 + "node_modules/rimraf": { 3407 + "version": "3.0.2", 3408 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3409 + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3410 + "deprecated": "Rimraf versions prior to v4 are no longer supported", 3411 + "license": "ISC", 3412 + "dependencies": { 3413 + "glob": "^7.1.3" 3414 + }, 3415 + "bin": { 3416 + "rimraf": "bin.js" 3417 + }, 3418 + "funding": { 3419 + "url": "https://github.com/sponsors/isaacs" 3420 + } 3421 + }, 2138 3422 "node_modules/safe-buffer": { 2139 3423 "version": "5.2.1", 2140 3424 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ··· 2242 3526 "node": ">= 0.8.0" 2243 3527 } 2244 3528 }, 3529 + "node_modules/set-blocking": { 3530 + "version": "2.0.0", 3531 + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3532 + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", 3533 + "license": "ISC" 3534 + }, 2245 3535 "node_modules/set-cookie-parser": { 2246 3536 "version": "2.7.0", 2247 3537 "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.0.tgz", ··· 2288 3578 "funding": { 2289 3579 "url": "https://github.com/sponsors/ljharb" 2290 3580 } 3581 + }, 3582 + "node_modules/signal-exit": { 3583 + "version": "3.0.7", 3584 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 3585 + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 3586 + "license": "ISC" 2291 3587 }, 2292 3588 "node_modules/simple-concat": { 2293 3589 "version": "1.0.1", ··· 2349 3645 "atomic-sleep": "^1.0.0" 2350 3646 } 2351 3647 }, 3648 + "node_modules/source-map-js": { 3649 + "version": "1.2.0", 3650 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", 3651 + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", 3652 + "license": "BSD-3-Clause", 3653 + "peer": true, 3654 + "engines": { 3655 + "node": ">=0.10.0" 3656 + } 3657 + }, 2352 3658 "node_modules/split2": { 2353 3659 "version": "4.2.0", 2354 3660 "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", ··· 2358 3664 "node": ">= 10.x" 2359 3665 } 2360 3666 }, 3667 + "node_modules/sswr": { 3668 + "version": "2.1.0", 3669 + "resolved": "https://registry.npmjs.org/sswr/-/sswr-2.1.0.tgz", 3670 + "integrity": "sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==", 3671 + "license": "MIT", 3672 + "dependencies": { 3673 + "swrev": "^4.0.0" 3674 + }, 3675 + "peerDependencies": { 3676 + "svelte": "^4.0.0 || ^5.0.0-next.0" 3677 + } 3678 + }, 2361 3679 "node_modules/statuses": { 2362 3680 "version": "2.0.1", 2363 3681 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", ··· 2382 3700 "safe-buffer": "~5.2.0" 2383 3701 } 2384 3702 }, 3703 + "node_modules/string-width": { 3704 + "version": "4.2.3", 3705 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3706 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3707 + "license": "MIT", 3708 + "dependencies": { 3709 + "emoji-regex": "^8.0.0", 3710 + "is-fullwidth-code-point": "^3.0.0", 3711 + "strip-ansi": "^6.0.1" 3712 + }, 3713 + "engines": { 3714 + "node": ">=8" 3715 + } 3716 + }, 3717 + "node_modules/strip-ansi": { 3718 + "version": "6.0.1", 3719 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3720 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3721 + "license": "MIT", 3722 + "dependencies": { 3723 + "ansi-regex": "^5.0.1" 3724 + }, 3725 + "engines": { 3726 + "node": ">=8" 3727 + } 3728 + }, 2385 3729 "node_modules/strip-json-comments": { 2386 3730 "version": "2.0.1", 2387 3731 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", ··· 2391 3735 "node": ">=0.10.0" 2392 3736 } 2393 3737 }, 3738 + "node_modules/svelte": { 3739 + "version": "4.2.19", 3740 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", 3741 + "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", 3742 + "license": "MIT", 3743 + "peer": true, 3744 + "dependencies": { 3745 + "@ampproject/remapping": "^2.2.1", 3746 + "@jridgewell/sourcemap-codec": "^1.4.15", 3747 + "@jridgewell/trace-mapping": "^0.3.18", 3748 + "@types/estree": "^1.0.1", 3749 + "acorn": "^8.9.0", 3750 + "aria-query": "^5.3.0", 3751 + "axobject-query": "^4.0.0", 3752 + "code-red": "^1.0.3", 3753 + "css-tree": "^2.3.1", 3754 + "estree-walker": "^3.0.3", 3755 + "is-reference": "^3.0.1", 3756 + "locate-character": "^3.0.0", 3757 + "magic-string": "^0.30.4", 3758 + "periscopic": "^3.1.0" 3759 + }, 3760 + "engines": { 3761 + "node": ">=16" 3762 + } 3763 + }, 3764 + "node_modules/swr": { 3765 + "version": "2.2.5", 3766 + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", 3767 + "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", 3768 + "license": "MIT", 3769 + "dependencies": { 3770 + "client-only": "^0.0.1", 3771 + "use-sync-external-store": "^1.2.0" 3772 + }, 3773 + "peerDependencies": { 3774 + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" 3775 + } 3776 + }, 3777 + "node_modules/swrev": { 3778 + "version": "4.0.0", 3779 + "resolved": "https://registry.npmjs.org/swrev/-/swrev-4.0.0.tgz", 3780 + "integrity": "sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==", 3781 + "license": "MIT" 3782 + }, 3783 + "node_modules/swrv": { 3784 + "version": "1.0.4", 3785 + "resolved": "https://registry.npmjs.org/swrv/-/swrv-1.0.4.tgz", 3786 + "integrity": "sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==", 3787 + "license": "Apache-2.0", 3788 + "peerDependencies": { 3789 + "vue": ">=3.2.26 < 4" 3790 + } 3791 + }, 3792 + "node_modules/tar": { 3793 + "version": "6.2.1", 3794 + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", 3795 + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", 3796 + "license": "ISC", 3797 + "dependencies": { 3798 + "chownr": "^2.0.0", 3799 + "fs-minipass": "^2.0.0", 3800 + "minipass": "^5.0.0", 3801 + "minizlib": "^2.1.1", 3802 + "mkdirp": "^1.0.3", 3803 + "yallist": "^4.0.0" 3804 + }, 3805 + "engines": { 3806 + "node": ">=10" 3807 + } 3808 + }, 2394 3809 "node_modules/tar-fs": { 2395 3810 "version": "2.1.1", 2396 3811 "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", ··· 2419 3834 "node": ">=6" 2420 3835 } 2421 3836 }, 3837 + "node_modules/tar/node_modules/chownr": { 3838 + "version": "2.0.0", 3839 + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 3840 + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", 3841 + "license": "ISC", 3842 + "engines": { 3843 + "node": ">=10" 3844 + } 3845 + }, 2422 3846 "node_modules/thread-stream": { 2423 3847 "version": "2.7.0", 2424 3848 "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", ··· 2437 3861 "tlds": "bin.js" 2438 3862 } 2439 3863 }, 3864 + "node_modules/to-fast-properties": { 3865 + "version": "2.0.0", 3866 + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3867 + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 3868 + "license": "MIT", 3869 + "peer": true, 3870 + "engines": { 3871 + "node": ">=4" 3872 + } 3873 + }, 2440 3874 "node_modules/toad-cache": { 2441 3875 "version": "3.7.0", 2442 3876 "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", ··· 2455 3889 "node": ">=0.6" 2456 3890 } 2457 3891 }, 3892 + "node_modules/tr46": { 3893 + "version": "0.0.3", 3894 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 3895 + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 3896 + "license": "MIT" 3897 + }, 2458 3898 "node_modules/tunnel-agent": { 2459 3899 "version": "0.6.0", 2460 3900 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", ··· 2484 3924 "version": "5.5.4", 2485 3925 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", 2486 3926 "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", 2487 - "dev": true, 3927 + "devOptional": true, 2488 3928 "license": "Apache-2.0", 2489 3929 "bin": { 2490 3930 "tsc": "bin/tsc", ··· 2519 3959 "node": ">= 0.8" 2520 3960 } 2521 3961 }, 3962 + "node_modules/use-sync-external-store": { 3963 + "version": "1.2.2", 3964 + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", 3965 + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", 3966 + "license": "MIT", 3967 + "peerDependencies": { 3968 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 3969 + } 3970 + }, 2522 3971 "node_modules/util-deprecate": { 2523 3972 "version": "1.0.2", 2524 3973 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", ··· 2549 3998 "node": ">= 0.8" 2550 3999 } 2551 4000 }, 4001 + "node_modules/vue": { 4002 + "version": "3.5.3", 4003 + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.3.tgz", 4004 + "integrity": "sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==", 4005 + "license": "MIT", 4006 + "peer": true, 4007 + "dependencies": { 4008 + "@vue/compiler-dom": "3.5.3", 4009 + "@vue/compiler-sfc": "3.5.3", 4010 + "@vue/runtime-dom": "3.5.3", 4011 + "@vue/server-renderer": "3.5.3", 4012 + "@vue/shared": "3.5.3" 4013 + }, 4014 + "peerDependencies": { 4015 + "typescript": "*" 4016 + }, 4017 + "peerDependenciesMeta": { 4018 + "typescript": { 4019 + "optional": true 4020 + } 4021 + } 4022 + }, 4023 + "node_modules/webidl-conversions": { 4024 + "version": "3.0.1", 4025 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 4026 + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", 4027 + "license": "BSD-2-Clause" 4028 + }, 4029 + "node_modules/whatwg-url": { 4030 + "version": "5.0.0", 4031 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 4032 + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 4033 + "license": "MIT", 4034 + "dependencies": { 4035 + "tr46": "~0.0.3", 4036 + "webidl-conversions": "^3.0.0" 4037 + } 4038 + }, 4039 + "node_modules/wide-align": { 4040 + "version": "1.1.5", 4041 + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", 4042 + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", 4043 + "license": "ISC", 4044 + "dependencies": { 4045 + "string-width": "^1.0.2 || 2 || 3 || 4" 4046 + } 4047 + }, 2552 4048 "node_modules/wrappy": { 2553 4049 "version": "1.0.2", 2554 4050 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", ··· 2576 4072 } 2577 4073 } 2578 4074 }, 4075 + "node_modules/yallist": { 4076 + "version": "4.0.0", 4077 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 4078 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 4079 + "license": "ISC" 4080 + }, 2579 4081 "node_modules/zod": { 2580 4082 "version": "3.23.8", 2581 4083 "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", ··· 2583 4085 "license": "MIT", 2584 4086 "funding": { 2585 4087 "url": "https://github.com/sponsors/colinhacks" 4088 + } 4089 + }, 4090 + "node_modules/zod-to-json-schema": { 4091 + "version": "3.23.2", 4092 + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.2.tgz", 4093 + "integrity": "sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==", 4094 + "license": "ISC", 4095 + "peerDependencies": { 4096 + "zod": "^3.23.3" 2586 4097 } 2587 4098 } 2588 4099 }
+5 -1
package.json
··· 12 12 "typescript": "^5.5.3" 13 13 }, 14 14 "dependencies": { 15 + "@ai-sdk/openai": "^0.0.58", 15 16 "@atproto/api": "^0.13.0", 16 17 "@skyware/firehose": "^0.3.1", 17 18 "@skyware/labeler": "^0.1.2-fix.1", 18 - "dotenv": "^16.4.5" 19 + "ai": "^3.3.28", 20 + "canvas": "^2.11.2", 21 + "dotenv": "^16.4.5", 22 + "zod": "^3.23.8" 19 23 } 20 24 }
-6
src/constants.ts
··· 4 4 export const SIGNING_KEY = process.env.SIGNING_KEY ?? ""; 5 5 export const PORT = 4001; 6 6 export const DELETE = "3l3izhv734g2o"; 7 - export const HOUSES = [ 8 - "gryffindor", 9 - "slytherin", 10 - "ravenclaw", 11 - "hufflepuff", 12 - ];
+109 -30
src/label.ts
··· 1 1 import { AppBskyActorDefs, ComAtprotoLabelDefs } from "@atproto/api"; 2 - import { 3 - DID, 4 - PORT, 5 - HOUSES, 6 - SIGNING_KEY, 7 - DELETE, 8 - } from "./constants.js"; 2 + import { DID, SIGNING_KEY, DELETE, PORT } from "./constants.js"; 9 3 import { LabelerServer } from "@skyware/labeler"; 4 + import { createCanvas, loadImage } from "canvas"; 5 + import { generateText, tool } from "ai"; 6 + import { openai } from "@ai-sdk/openai"; 7 + import { z } from "zod"; 8 + import { AtpAgent } from "@atproto/api"; 9 + import "dotenv/config"; 10 + import fs from "node:fs"; 11 + 12 + 13 + const agent = new AtpAgent({ 14 + service: process.env.BSKY_SERVICE ?? "https://bsky.social", 15 + }); 16 + 17 + await agent.login({ 18 + identifier: process.env.BSKY_IDENTIFIER!, 19 + password: process.env.BSKY_PASSWORD!, 20 + }); 21 + 22 + console.log("Logged in to BlueSky"); 10 23 11 24 const server = new LabelerServer({ did: DID, signingKey: SIGNING_KEY }); 12 25 ··· 18 31 } 19 32 }); 20 33 34 + const HOUSES = ["gryffindor", "slytherin", "ravenclaw", "hufflepuff"]; 35 + 21 36 export const label = async ( 22 37 subject: string | AppBskyActorDefs.ProfileView, 23 - rkey: string, 38 + rkey: string 24 39 ) => { 25 40 const did = AppBskyActorDefs.isProfileView(subject) ? subject.did : subject; 26 41 27 42 const query = server.db 28 - .prepare< 29 - unknown[], 30 - ComAtprotoLabelDefs.Label 31 - >(`SELECT * FROM labels WHERE uri = ?`) 43 + .prepare<unknown[], ComAtprotoLabelDefs.Label>( 44 + `SELECT * FROM labels WHERE uri = ?` 45 + ) 32 46 .all(did); 33 47 34 - const labels = query.reduce((set, label) => { 35 - if (!label.neg) set.add(label.val); 36 - else set.delete(label.val); 37 - return set; 38 - }, new Set<string>()); 48 + const currentLabel = query.find( 49 + (label) => !label.neg && HOUSES.includes(label.val) 50 + ); 39 51 40 - if (rkey.includes(DELETE)) { await server 41 - .createLabels({ uri: did }, { negate: [...labels] }) 42 - .catch((err) => { 43 - console.log(err); 44 - }) 45 - .then(() => console.log(`Deleted labels for ${did}`)); 52 + if (rkey.includes(DELETE)) { 53 + if (currentLabel) { 54 + await server 55 + .createLabels({ uri: did }, { negate: [currentLabel.val] }) 56 + .catch((err) => console.log(err)) 57 + .then(() => console.log(`Deleted label for ${did}`)); 58 + } 46 59 } else { 47 - const randomHouse = HOUSES[Math.floor(Math.random() * HOUSES.length)]; 48 - await server 49 - .createLabel({ uri: did, val: randomHouse }) 50 - .catch((err) => { 51 - console.log(err); 52 - }) 53 - .then(() => console.log(`Labeled ${did} with ${randomHouse}`)); 60 + if (currentLabel) { 61 + console.log(`${did} already has a house: ${currentLabel.val}`); 62 + return; 63 + } 64 + 65 + let avatarBuffer: Buffer; 66 + 67 + const avatar = `avatars/${subject}.png`; 68 + 69 + if (typeof subject === "string") { 70 + const { data } = await agent.getProfile({ actor: subject }); 71 + if (!data) throw new Error("Profile not found"); 72 + subject = data; 73 + } 74 + 75 + if (AppBskyActorDefs.isProfileView(subject) && subject.avatar) { 76 + const image = await loadImage(subject.avatar); 77 + const canvas = createCanvas(100, 100); 78 + const ctx = canvas.getContext("2d"); 79 + ctx.drawImage(image, 0, 0, 100, 100); 80 + avatarBuffer = canvas.toBuffer(); 81 + fs.writeFileSync(avatar, avatarBuffer); 82 + } else { 83 + const canvas = createCanvas(1, 1); 84 + const ctx = canvas.getContext("2d"); 85 + ctx.fillStyle = "white"; 86 + ctx.fillRect(0, 0, 1, 1); 87 + avatarBuffer = canvas.toBuffer(); 88 + } 89 + 90 + const promptTemplate = ` 91 + You're the Sorting Hat from Harry Potter, operating as a bot on the microblogging social network BlueSky on data from user profiles. 92 + Which Hogwarts house would this user belong to? 93 + ${AppBskyActorDefs.isProfileView(subject) ? ` 94 + The user's name is ${subject.displayName || subject.handle} (@${subject.handle}). 95 + ${subject.description ? `Their bio is: "${subject.description}"` : ''} 96 + ` : ''} 97 + If the user has an avatar, it's been attached to the message. If it's a 1x1 white image, please ignore it and focus on the name and bio. 98 + `; 99 + 100 + await generateText({ 101 + model: openai("gpt-4o"), 102 + messages: [ 103 + { 104 + role: "user", 105 + content: [ 106 + { 107 + type: "text", 108 + text: promptTemplate, 109 + }, 110 + { 111 + type: "image", 112 + image: avatarBuffer, 113 + }, 114 + ], 115 + }, 116 + ], 117 + toolChoice: "required", 118 + tools: { 119 + decideHouse: tool({ 120 + parameters: z.object({ 121 + answer: z.union([z.literal("gryffindor"), z.literal("slytherin"), z.literal("ravenclaw"), z.literal("hufflepuff")]), 122 + }), 123 + execute: async ({ answer }) => { 124 + await server 125 + .createLabel({ uri: did, val: answer }) 126 + .catch((err) => console.log(err)) 127 + .then(() => console.log(`Labeled ${did} with ${answer}`)); 128 + return answer; 129 + }, 130 + }), 131 + }, 132 + }); 54 133 } 55 134 };