diff --git a/.DS_Store b/.DS_Store index 5b745ebe84333d2465a4e0f42a7981169749b3c1..f358e48d3c851c4ce895aff256a939ad25c36621 100644 GIT binary patch delta 20 bcmZoMXffDe%E-t**^Duokz?~D#v(BQJ3j?e delta 20 bcmZoMXffDe%E-tu*^Duok#qAT#v(BQJ5dEy diff --git a/package-lock.json b/package-lock.json index 984460c..78d773c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@atproto/api": "^0.19.5", "@atproto/oauth-client-browser": "^0.3.41", + "@huggingface/transformers": "^4.0.0", "hls.js": "^1.6.15" }, "devDependencies": { @@ -261,6 +262,16 @@ "zod": "^3.23.8" } }, + "node_modules/@emnapi/runtime": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.4", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", @@ -621,84 +632,625 @@ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", "cpu": [ - "arm64" + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", + "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", + "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", + "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", + "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@huggingface/jinja": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.6.tgz", + "integrity": "sha512-MyMWyLnjqo+KRJYSH7oWNbsOn5onuIvfXYPcc0WOGxU0eHUV7oAYUoQTl2BMdu7ml+ea/bu11UM+EshbeHwtIA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@huggingface/tokenizers": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@huggingface/tokenizers/-/tokenizers-0.1.3.tgz", + "integrity": "sha512-8rF/RRT10u+kn7YuUbUg0OF30K8rjTc78aHpxT+qJ1uWSqxT1MHi8+9ltwYfkFYJzT/oS+qw3JVfHtNMGAdqyA==", + "license": "Apache-2.0" + }, + "node_modules/@huggingface/transformers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@huggingface/transformers/-/transformers-4.0.0.tgz", + "integrity": "sha512-7shdBRvtjIDP7UUhdi0b4CMRCD+QXvQIsEsxECWS9VEDEsxSQF9Ci+51mwy2OWI8vbsoic8e4dbR4eI8aZWxaw==", + "license": "Apache-2.0", + "dependencies": { + "@huggingface/jinja": "^0.5.6", + "@huggingface/tokenizers": "^0.1.3", + "onnxruntime-node": "1.24.3", + "onnxruntime-web": "1.25.0-dev.20260327-722743c0e2", + "sharp": "^0.34.5" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" ], - "dev": true, - "license": "MIT", + "libc": [ + "musl" + ], + "license": "Apache-2.0", "optional": true, "os": [ - "openharmony" + "linux" ], "engines": { - "node": ">=18" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", - "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", "cpu": [ - "x64" + "wasm32" ], - "dev": true, - "license": "MIT", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, "engines": { - "node": ">=18" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", - "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", "cpu": [ "arm64" ], - "dev": true, - "license": "MIT", + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=18" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", - "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", "cpu": [ "ia32" ], - "dev": true, - "license": "MIT", + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=18" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", - "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=18" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, "node_modules/@jridgewell/gen-mapping": { @@ -746,6 +1298,70 @@ "dev": true, "license": "MIT" }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.60.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", @@ -1249,6 +1865,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "dev": true, @@ -1277,6 +1902,15 @@ "node": ">=0.4.0" } }, + "node_modules/adm-zip": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz", + "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==", + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, "node_modules/aria-query": { "version": "5.3.1", "dev": true, @@ -1299,6 +1933,13 @@ "node": ">= 0.4" } }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, "node_modules/chokidar": { "version": "4.0.3", "dev": true, @@ -1348,11 +1989,84 @@ "node": ">=0.10.0" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, "node_modules/devalue": { "version": "5.6.4", "dev": true, "license": "MIT" }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "license": "MIT" + }, "node_modules/esbuild": { "version": "0.27.4", "dev": true, @@ -1393,6 +2107,18 @@ "@esbuild/win32-x64": "0.27.4" } }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/esm-env": { "version": "1.2.2", "dev": true, @@ -1423,6 +2149,12 @@ } } }, + "node_modules/flatbuffers": { + "version": "25.9.23", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz", + "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==", + "license": "Apache-2.0" + }, "node_modules/fsevents": { "version": "2.3.3", "dev": true, @@ -1435,6 +2167,69 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "license": "BSD-3-Clause", + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/guid-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==", + "license": "ISC" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hls.js": { "version": "1.6.15", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz", @@ -1464,6 +2259,12 @@ "url": "https://github.com/sponsors/panva" } }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, "node_modules/kleur": { "version": "4.1.5", "dev": true, @@ -1477,6 +2278,12 @@ "dev": true, "license": "MIT" }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -1491,6 +2298,18 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mri": { "version": "1.2.0", "dev": true, @@ -1530,6 +2349,15 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/obug": { "version": "2.1.1", "dev": true, @@ -1539,6 +2367,49 @@ ], "license": "MIT" }, + "node_modules/onnxruntime-common": { + "version": "1.24.3", + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.24.3.tgz", + "integrity": "sha512-GeuPZO6U/LBJXvwdaqHbuUmoXiEdeCjWi/EG7Y1HNnDwJYuk6WUbNXpF6luSUY8yASul3cmUlLGrCCL1ZgVXqA==", + "license": "MIT" + }, + "node_modules/onnxruntime-node": { + "version": "1.24.3", + "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.24.3.tgz", + "integrity": "sha512-JH7+czbc8ALA819vlTgcV+Q214/+VjGeBHDjX81+ZCD0PCVCIFGFNtT0V4sXG/1JXypKPgScQcB3ij/hk3YnTg==", + "hasInstallScript": true, + "license": "MIT", + "os": [ + "win32", + "darwin", + "linux" + ], + "dependencies": { + "adm-zip": "^0.5.16", + "global-agent": "^3.0.0", + "onnxruntime-common": "1.24.3" + } + }, + "node_modules/onnxruntime-web": { + "version": "1.25.0-dev.20260327-722743c0e2", + "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.25.0-dev.20260327-722743c0e2.tgz", + "integrity": "sha512-8PXdZy4Ekhg10CLg+cFFt39b4tFDGMRJB6lGjnQL6eA+2boUQYDymZ0gtxiS+H6oIWoCjQp/ziyirvFbaFKfiw==", + "license": "MIT", + "dependencies": { + "flatbuffers": "^25.1.24", + "guid-typescript": "^1.0.9", + "long": "^5.2.3", + "onnxruntime-common": "1.24.0-dev.20251116-b39e144322", + "platform": "^1.3.6", + "protobufjs": "^7.2.4" + } + }, + "node_modules/onnxruntime-web/node_modules/onnxruntime-common": { + "version": "1.24.0-dev.20251116-b39e144322", + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.24.0-dev.20251116-b39e144322.tgz", + "integrity": "sha512-BOoomdHYmNRL5r4iQ4bMvsl2t0/hzVQ3OM3PHD0gxeXu1PmggqBv3puZicEUVOA3AtHHYmqZtjMj9FOfGrATTw==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -1555,6 +2426,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", + "license": "MIT" + }, "node_modules/postcss": { "version": "8.5.8", "dev": true, @@ -1582,6 +2459,30 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/protobufjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/readdirp": { "version": "4.1.2", "dev": true, @@ -1594,6 +2495,23 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "license": "BSD-3-Clause", + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/rollup": { "version": "4.60.1", "dev": true, @@ -1648,11 +2566,88 @@ "node": ">=6" } }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT" + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/set-cookie-parser": { "version": "3.1.0", "dev": true, "license": "MIT" }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, "node_modules/sirv": { "version": "3.0.2", "dev": true, @@ -1674,6 +2669,12 @@ "node": ">=0.10.0" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" + }, "node_modules/svelte": { "version": "5.55.1", "dev": true, @@ -1760,6 +2761,18 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "5.9.3", "dev": true, @@ -1781,6 +2794,12 @@ "multiformats": "^9.4.2" } }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, "node_modules/unicode-segmenter": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz", diff --git a/package.json b/package.json index 03faecb..79f554d 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "dependencies": { "@atproto/api": "^0.19.5", "@atproto/oauth-client-browser": "^0.3.41", + "@huggingface/transformers": "^4.0.0", "hls.js": "^1.6.15" } } diff --git a/spec/cc_off.png b/spec/cc_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e65f4ff35c70cfb0eb848cdd012fb9a96c9d9aa1 GIT binary patch literal 8507 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 Tujyc5U|{fc^>bP0l+XkK6OMCQ literal 0 HcmV?d00001 diff --git a/spec/cc_on.png b/spec/cc_on.png new file mode 100644 index 0000000000000000000000000000000000000000..fced6a4a450b5ee89fb417938cfe51bddc3b02b4 GIT binary patch literal 9426 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 rk37xTJAd-yz0 import LoginButton from './LoginButton.svelte'; import WavyButton from './WavyButton.svelte'; + import WavyBorder from './WavyBorder.svelte'; import { playCroak } from './croak'; import { getSettings, setSoundEnabled, setPacifistMode } from './settings.svelte'; + import { getModelStatus, getModelProgress, getModelError, loadModel } from './captions.svelte'; let { onHomeClick }: { onHomeClick?: () => void } = $props(); const settings = getSettings(); @@ -127,18 +129,20 @@