Spaces:
Sleeping
Sleeping
Julian Bilcke
commited on
Commit
·
b3c7e0f
1
Parent(s):
3adb71a
debuggin the new Hugging Face Login
Browse files- README.md +1 -0
- package-lock.json +539 -194
- package.json +1 -0
- src/app/interface/hf-login/index.tsx +22 -0
- src/app/main.tsx +3 -1
- src/app/server/actions/ai-tube-hf/downloadClapProject.ts +2 -2
- src/app/views/public-video-view/index.tsx +2 -1
- src/huggingface/hub/src/lib/index.ts +2 -0
- src/huggingface/hub/src/lib/oauth-handle-redirect.ts +214 -0
- src/huggingface/hub/src/lib/oauth-login-url.ts +132 -0
- src/lib/useHuggingFaceLogin.ts +32 -0
README.md
CHANGED
|
@@ -7,6 +7,7 @@ sdk: docker
|
|
| 7 |
pinned: true
|
| 8 |
app_port: 3000
|
| 9 |
disable_embedding: false
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
# 🍿 AI Tube
|
|
|
|
| 7 |
pinned: true
|
| 8 |
app_port: 3000
|
| 9 |
disable_embedding: false
|
| 10 |
+
hf_oauth: true
|
| 11 |
---
|
| 12 |
|
| 13 |
# 🍿 AI Tube
|
package-lock.json
CHANGED
|
@@ -8,6 +8,7 @@
|
|
| 8 |
"name": "ai-tube",
|
| 9 |
"version": "0.0.0",
|
| 10 |
"dependencies": {
|
|
|
|
| 11 |
"@huggingface/inference": "^2.6.4",
|
| 12 |
"@photo-sphere-viewer/core": "^5.5.1",
|
| 13 |
"@photo-sphere-viewer/video-plugin": "^5.5.1",
|
|
@@ -107,9 +108,9 @@
|
|
| 107 |
}
|
| 108 |
},
|
| 109 |
"node_modules/@babel/runtime": {
|
| 110 |
-
"version": "7.23.
|
| 111 |
-
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.
|
| 112 |
-
"integrity": "sha512-
|
| 113 |
"dependencies": {
|
| 114 |
"regenerator-runtime": "^0.14.0"
|
| 115 |
},
|
|
@@ -151,9 +152,9 @@
|
|
| 151 |
"integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
|
| 152 |
},
|
| 153 |
"node_modules/@emotion/unitless": {
|
| 154 |
-
"version": "0.8.
|
| 155 |
-
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.
|
| 156 |
-
"integrity": "sha512-
|
| 157 |
},
|
| 158 |
"node_modules/@eslint-community/eslint-utils": {
|
| 159 |
"version": "4.4.0",
|
|
@@ -208,28 +209,28 @@
|
|
| 208 |
}
|
| 209 |
},
|
| 210 |
"node_modules/@floating-ui/core": {
|
| 211 |
-
"version": "1.5.
|
| 212 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.
|
| 213 |
-
"integrity": "sha512-
|
| 214 |
"dependencies": {
|
| 215 |
-
"@floating-ui/utils": "^0.
|
| 216 |
}
|
| 217 |
},
|
| 218 |
"node_modules/@floating-ui/dom": {
|
| 219 |
-
"version": "1.5.
|
| 220 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.
|
| 221 |
-
"integrity": "sha512-
|
| 222 |
"dependencies": {
|
| 223 |
-
"@floating-ui/core": "^1.
|
| 224 |
-
"@floating-ui/utils": "^0.
|
| 225 |
}
|
| 226 |
},
|
| 227 |
"node_modules/@floating-ui/react-dom": {
|
| 228 |
-
"version": "2.0.
|
| 229 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.
|
| 230 |
-
"integrity": "sha512-
|
| 231 |
"dependencies": {
|
| 232 |
-
"@floating-ui/dom": "^1.5.
|
| 233 |
},
|
| 234 |
"peerDependencies": {
|
| 235 |
"react": ">=16.8.0",
|
|
@@ -237,9 +238,20 @@
|
|
| 237 |
}
|
| 238 |
},
|
| 239 |
"node_modules/@floating-ui/utils": {
|
| 240 |
-
"version": "0.1
|
| 241 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.
|
| 242 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
},
|
| 244 |
"node_modules/@huggingface/inference": {
|
| 245 |
"version": "2.6.4",
|
|
@@ -250,12 +262,12 @@
|
|
| 250 |
}
|
| 251 |
},
|
| 252 |
"node_modules/@humanwhocodes/config-array": {
|
| 253 |
-
"version": "0.11.
|
| 254 |
-
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.
|
| 255 |
-
"integrity": "sha512-
|
| 256 |
"dependencies": {
|
| 257 |
-
"@humanwhocodes/object-schema": "^2.0.
|
| 258 |
-
"debug": "^4.
|
| 259 |
"minimatch": "^3.0.5"
|
| 260 |
},
|
| 261 |
"engines": {
|
|
@@ -275,9 +287,50 @@
|
|
| 275 |
}
|
| 276 |
},
|
| 277 |
"node_modules/@humanwhocodes/object-schema": {
|
| 278 |
-
"version": "2.0.
|
| 279 |
-
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.
|
| 280 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 281 |
},
|
| 282 |
"node_modules/@jridgewell/gen-mapping": {
|
| 283 |
"version": "0.3.3",
|
|
@@ -314,9 +367,9 @@
|
|
| 314 |
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
| 315 |
},
|
| 316 |
"node_modules/@jridgewell/trace-mapping": {
|
| 317 |
-
"version": "0.3.
|
| 318 |
-
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.
|
| 319 |
-
"integrity": "sha512-
|
| 320 |
"dependencies": {
|
| 321 |
"@jridgewell/resolve-uri": "^3.1.0",
|
| 322 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
|
@@ -503,25 +556,25 @@
|
|
| 503 |
}
|
| 504 |
},
|
| 505 |
"node_modules/@photo-sphere-viewer/autorotate-plugin": {
|
| 506 |
-
"version": "5.5.
|
| 507 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/autorotate-plugin/-/autorotate-plugin-5.5.
|
| 508 |
-
"integrity": "sha512-
|
| 509 |
"peerDependencies": {
|
| 510 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 511 |
}
|
| 512 |
},
|
| 513 |
"node_modules/@photo-sphere-viewer/compass-plugin": {
|
| 514 |
-
"version": "5.5.
|
| 515 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/compass-plugin/-/compass-plugin-5.5.
|
| 516 |
-
"integrity": "sha512-
|
| 517 |
"peerDependencies": {
|
| 518 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 519 |
}
|
| 520 |
},
|
| 521 |
"node_modules/@photo-sphere-viewer/core": {
|
| 522 |
-
"version": "5.5.
|
| 523 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/core/-/core-5.5.
|
| 524 |
-
"integrity": "sha512-
|
| 525 |
"dependencies": {
|
| 526 |
"three": "^0.159.0"
|
| 527 |
}
|
|
@@ -532,126 +585,135 @@
|
|
| 532 |
"integrity": "sha512-eCmhlLGbBgucuo4VEA9IO3Qpc7dh8Bd4VKzr7WfW4+8hMcIfoAVi1ev0pJYN9PTTsCslbcKgBwr2wNZ1EvLInA=="
|
| 533 |
},
|
| 534 |
"node_modules/@photo-sphere-viewer/cubemap-adapter": {
|
| 535 |
-
"version": "5.5.
|
| 536 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/cubemap-adapter/-/cubemap-adapter-5.5.
|
| 537 |
-
"integrity": "sha512-
|
| 538 |
"peerDependencies": {
|
| 539 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 540 |
}
|
| 541 |
},
|
| 542 |
"node_modules/@photo-sphere-viewer/cubemap-tiles-adapter": {
|
| 543 |
-
"version": "5.5.
|
| 544 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/cubemap-tiles-adapter/-/cubemap-tiles-adapter-5.5.
|
| 545 |
-
"integrity": "sha512-
|
| 546 |
"peerDependencies": {
|
| 547 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 548 |
-
"@photo-sphere-viewer/cubemap-adapter": "5.5.
|
| 549 |
}
|
| 550 |
},
|
| 551 |
"node_modules/@photo-sphere-viewer/cubemap-video-adapter": {
|
| 552 |
-
"version": "5.5.
|
| 553 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/cubemap-video-adapter/-/cubemap-video-adapter-5.5.
|
| 554 |
-
"integrity": "sha512-
|
| 555 |
"peerDependencies": {
|
| 556 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 557 |
}
|
| 558 |
},
|
| 559 |
"node_modules/@photo-sphere-viewer/equirectangular-tiles-adapter": {
|
| 560 |
-
"version": "5.5.
|
| 561 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/equirectangular-tiles-adapter/-/equirectangular-tiles-adapter-5.5.
|
| 562 |
-
"integrity": "sha512-
|
| 563 |
"peerDependencies": {
|
| 564 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 565 |
}
|
| 566 |
},
|
| 567 |
"node_modules/@photo-sphere-viewer/equirectangular-video-adapter": {
|
| 568 |
-
"version": "5.5.
|
| 569 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/equirectangular-video-adapter/-/equirectangular-video-adapter-5.5.
|
| 570 |
-
"integrity": "sha512-
|
| 571 |
"peerDependencies": {
|
| 572 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 573 |
}
|
| 574 |
},
|
| 575 |
"node_modules/@photo-sphere-viewer/gallery-plugin": {
|
| 576 |
-
"version": "5.5.
|
| 577 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/gallery-plugin/-/gallery-plugin-5.5.
|
| 578 |
-
"integrity": "sha512-
|
| 579 |
"peerDependencies": {
|
| 580 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 581 |
}
|
| 582 |
},
|
| 583 |
"node_modules/@photo-sphere-viewer/gyroscope-plugin": {
|
| 584 |
-
"version": "5.5.
|
| 585 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/gyroscope-plugin/-/gyroscope-plugin-5.5.
|
| 586 |
-
"integrity": "sha512-
|
| 587 |
"peerDependencies": {
|
| 588 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 589 |
}
|
| 590 |
},
|
| 591 |
"node_modules/@photo-sphere-viewer/map-plugin": {
|
| 592 |
-
"version": "5.5.
|
| 593 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/map-plugin/-/map-plugin-5.5.
|
| 594 |
-
"integrity": "sha512-
|
| 595 |
"peerDependencies": {
|
| 596 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 597 |
}
|
| 598 |
},
|
| 599 |
"node_modules/@photo-sphere-viewer/markers-plugin": {
|
| 600 |
-
"version": "5.5.
|
| 601 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/markers-plugin/-/markers-plugin-5.5.
|
| 602 |
-
"integrity": "sha512-
|
| 603 |
"peerDependencies": {
|
| 604 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 605 |
}
|
| 606 |
},
|
| 607 |
"node_modules/@photo-sphere-viewer/resolution-plugin": {
|
| 608 |
-
"version": "5.5.
|
| 609 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/resolution-plugin/-/resolution-plugin-5.5.
|
| 610 |
-
"integrity": "sha512-
|
| 611 |
"peerDependencies": {
|
| 612 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 613 |
-
"@photo-sphere-viewer/settings-plugin": "5.5.
|
| 614 |
}
|
| 615 |
},
|
| 616 |
"node_modules/@photo-sphere-viewer/settings-plugin": {
|
| 617 |
-
"version": "5.5.
|
| 618 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/settings-plugin/-/settings-plugin-5.5.
|
| 619 |
-
"integrity": "sha512
|
| 620 |
"peerDependencies": {
|
| 621 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 622 |
}
|
| 623 |
},
|
| 624 |
"node_modules/@photo-sphere-viewer/stereo-plugin": {
|
| 625 |
-
"version": "5.5.
|
| 626 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/stereo-plugin/-/stereo-plugin-5.5.
|
| 627 |
-
"integrity": "sha512-
|
| 628 |
"peerDependencies": {
|
| 629 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 630 |
-
"@photo-sphere-viewer/gyroscope-plugin": "5.5.
|
| 631 |
}
|
| 632 |
},
|
| 633 |
"node_modules/@photo-sphere-viewer/video-plugin": {
|
| 634 |
-
"version": "5.5.
|
| 635 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/video-plugin/-/video-plugin-5.5.
|
| 636 |
-
"integrity": "sha512-
|
| 637 |
"peerDependencies": {
|
| 638 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 639 |
}
|
| 640 |
},
|
| 641 |
"node_modules/@photo-sphere-viewer/virtual-tour-plugin": {
|
| 642 |
-
"version": "5.5.
|
| 643 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/virtual-tour-plugin/-/virtual-tour-plugin-5.5.
|
| 644 |
-
"integrity": "sha512-
|
| 645 |
"peerDependencies": {
|
| 646 |
-
"@photo-sphere-viewer/core": "5.5.
|
| 647 |
}
|
| 648 |
},
|
| 649 |
"node_modules/@photo-sphere-viewer/visible-range-plugin": {
|
| 650 |
-
"version": "5.5.
|
| 651 |
-
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/visible-range-plugin/-/visible-range-plugin-5.5.
|
| 652 |
-
"integrity": "sha512
|
| 653 |
"peerDependencies": {
|
| 654 |
-
"@photo-sphere-viewer/core": "5.5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 655 |
}
|
| 656 |
},
|
| 657 |
"node_modules/@radix-ui/number": {
|
|
@@ -1915,9 +1977,9 @@
|
|
| 1915 |
}
|
| 1916 |
},
|
| 1917 |
"node_modules/@types/qs": {
|
| 1918 |
-
"version": "6.9.
|
| 1919 |
-
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.
|
| 1920 |
-
"integrity": "sha512-
|
| 1921 |
"dev": true
|
| 1922 |
},
|
| 1923 |
"node_modules/@types/react": {
|
|
@@ -1975,9 +2037,9 @@
|
|
| 1975 |
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
|
| 1976 |
},
|
| 1977 |
"node_modules/@types/stylis": {
|
| 1978 |
-
"version": "4.2.
|
| 1979 |
-
"resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.
|
| 1980 |
-
"integrity": "sha512-
|
| 1981 |
},
|
| 1982 |
"node_modules/@types/uuid": {
|
| 1983 |
"version": "9.0.7",
|
|
@@ -2081,17 +2143,17 @@
|
|
| 2081 |
}
|
| 2082 |
},
|
| 2083 |
"node_modules/@upstash/redis": {
|
| 2084 |
-
"version": "1.
|
| 2085 |
-
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.
|
| 2086 |
-
"integrity": "sha512-
|
| 2087 |
"dependencies": {
|
| 2088 |
"crypto-js": "^4.2.0"
|
| 2089 |
}
|
| 2090 |
},
|
| 2091 |
"node_modules/acorn": {
|
| 2092 |
-
"version": "8.11.
|
| 2093 |
-
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.
|
| 2094 |
-
"integrity": "sha512-
|
| 2095 |
"bin": {
|
| 2096 |
"acorn": "bin/acorn"
|
| 2097 |
},
|
|
@@ -2108,9 +2170,9 @@
|
|
| 2108 |
}
|
| 2109 |
},
|
| 2110 |
"node_modules/acorn-walk": {
|
| 2111 |
-
"version": "8.3.
|
| 2112 |
-
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.
|
| 2113 |
-
"integrity": "sha512-
|
| 2114 |
"engines": {
|
| 2115 |
"node": ">=0.4.0"
|
| 2116 |
}
|
|
@@ -2567,9 +2629,9 @@
|
|
| 2567 |
}
|
| 2568 |
},
|
| 2569 |
"node_modules/caniuse-lite": {
|
| 2570 |
-
"version": "1.0.
|
| 2571 |
-
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.
|
| 2572 |
-
"integrity": "sha512
|
| 2573 |
"funding": [
|
| 2574 |
{
|
| 2575 |
"type": "opencollective",
|
|
@@ -2667,9 +2729,9 @@
|
|
| 2667 |
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
| 2668 |
},
|
| 2669 |
"node_modules/clsx": {
|
| 2670 |
-
"version": "2.
|
| 2671 |
-
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.
|
| 2672 |
-
"integrity": "sha512-
|
| 2673 |
"engines": {
|
| 2674 |
"node": ">=6"
|
| 2675 |
}
|
|
@@ -3000,9 +3062,9 @@
|
|
| 3000 |
}
|
| 3001 |
},
|
| 3002 |
"node_modules/cookies-next/node_modules/@types/node": {
|
| 3003 |
-
"version": "16.18.
|
| 3004 |
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.
|
| 3005 |
-
"integrity": "sha512-
|
| 3006 |
},
|
| 3007 |
"node_modules/copy-to-clipboard": {
|
| 3008 |
"version": "3.3.3",
|
|
@@ -3319,10 +3381,15 @@
|
|
| 3319 |
"url": "https://github.com/fb55/domutils?sponsor=1"
|
| 3320 |
}
|
| 3321 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3322 |
"node_modules/electron-to-chromium": {
|
| 3323 |
-
"version": "1.4.
|
| 3324 |
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
| 3325 |
-
"integrity": "sha512
|
| 3326 |
},
|
| 3327 |
"node_modules/emoji-regex": {
|
| 3328 |
"version": "9.2.2",
|
|
@@ -4022,6 +4089,21 @@
|
|
| 4022 |
"is-callable": "^1.1.3"
|
| 4023 |
}
|
| 4024 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4025 |
"node_modules/fraction.js": {
|
| 4026 |
"version": "4.3.7",
|
| 4027 |
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
|
|
@@ -4568,6 +4650,14 @@
|
|
| 4568 |
"url": "https://github.com/sponsors/ljharb"
|
| 4569 |
}
|
| 4570 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4571 |
"node_modules/is-generator-function": {
|
| 4572 |
"version": "1.0.10",
|
| 4573 |
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
|
|
@@ -4779,6 +4869,23 @@
|
|
| 4779 |
"set-function-name": "^2.0.1"
|
| 4780 |
}
|
| 4781 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4782 |
"node_modules/jiti": {
|
| 4783 |
"version": "1.21.0",
|
| 4784 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
|
|
@@ -5028,6 +5135,14 @@
|
|
| 5028 |
"url": "https://github.com/sponsors/ljharb"
|
| 5029 |
}
|
| 5030 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5031 |
"node_modules/mkdirp-classic": {
|
| 5032 |
"version": "0.5.3",
|
| 5033 |
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
|
@@ -5149,9 +5264,9 @@
|
|
| 5149 |
}
|
| 5150 |
},
|
| 5151 |
"node_modules/node-abi": {
|
| 5152 |
-
"version": "3.
|
| 5153 |
-
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.
|
| 5154 |
-
"integrity": "sha512-
|
| 5155 |
"dependencies": {
|
| 5156 |
"semver": "^7.3.5"
|
| 5157 |
},
|
|
@@ -5399,6 +5514,29 @@
|
|
| 5399 |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
| 5400 |
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
|
| 5401 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5402 |
"node_modules/path-type": {
|
| 5403 |
"version": "4.0.0",
|
| 5404 |
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
|
@@ -5578,9 +5716,9 @@
|
|
| 5578 |
}
|
| 5579 |
},
|
| 5580 |
"node_modules/postcss-selector-parser": {
|
| 5581 |
-
"version": "6.0.
|
| 5582 |
-
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.
|
| 5583 |
-
"integrity": "sha512-
|
| 5584 |
"dependencies": {
|
| 5585 |
"cssesc": "^3.0.0",
|
| 5586 |
"util-deprecate": "^1.0.2"
|
|
@@ -6181,14 +6319,17 @@
|
|
| 6181 |
]
|
| 6182 |
},
|
| 6183 |
"node_modules/safe-regex-test": {
|
| 6184 |
-
"version": "1.0.
|
| 6185 |
-
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.
|
| 6186 |
-
"integrity": "sha512-
|
| 6187 |
"dependencies": {
|
| 6188 |
-
"call-bind": "^1.0.
|
| 6189 |
-
"get-intrinsic": "^1.
|
| 6190 |
"is-regex": "^1.1.4"
|
| 6191 |
},
|
|
|
|
|
|
|
|
|
|
| 6192 |
"funding": {
|
| 6193 |
"url": "https://github.com/sponsors/ljharb"
|
| 6194 |
}
|
|
@@ -6331,6 +6472,17 @@
|
|
| 6331 |
"url": "https://github.com/sponsors/ljharb"
|
| 6332 |
}
|
| 6333 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6334 |
"node_modules/simple-concat": {
|
| 6335 |
"version": "1.0.1",
|
| 6336 |
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
|
@@ -6428,6 +6580,66 @@
|
|
| 6428 |
"safe-buffer": "~5.2.0"
|
| 6429 |
}
|
| 6430 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6431 |
"node_modules/string.prototype.matchall": {
|
| 6432 |
"version": "4.0.10",
|
| 6433 |
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
|
|
@@ -6500,6 +6712,18 @@
|
|
| 6500 |
"node": ">=8"
|
| 6501 |
}
|
| 6502 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6503 |
"node_modules/strip-bom": {
|
| 6504 |
"version": "3.0.0",
|
| 6505 |
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
|
@@ -6528,19 +6752,19 @@
|
|
| 6528 |
}
|
| 6529 |
},
|
| 6530 |
"node_modules/styled-components": {
|
| 6531 |
-
"version": "6.1.
|
| 6532 |
-
"resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.
|
| 6533 |
-
"integrity": "sha512-
|
| 6534 |
-
"dependencies": {
|
| 6535 |
-
"@emotion/is-prop-valid": "
|
| 6536 |
-
"@emotion/unitless": "
|
| 6537 |
-
"@types/stylis": "
|
| 6538 |
-
"css-to-react-native": "
|
| 6539 |
-
"csstype": "
|
| 6540 |
-
"postcss": "
|
| 6541 |
-
"shallowequal": "
|
| 6542 |
-
"stylis": "
|
| 6543 |
-
"tslib": "
|
| 6544 |
},
|
| 6545 |
"engines": {
|
| 6546 |
"node": ">= 16"
|
|
@@ -6554,10 +6778,15 @@
|
|
| 6554 |
"react-dom": ">= 16.8.0"
|
| 6555 |
}
|
| 6556 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6557 |
"node_modules/styled-components/node_modules/postcss": {
|
| 6558 |
-
"version": "8.4.
|
| 6559 |
-
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.
|
| 6560 |
-
"integrity": "sha512-
|
| 6561 |
"funding": [
|
| 6562 |
{
|
| 6563 |
"type": "opencollective",
|
|
@@ -6573,7 +6802,7 @@
|
|
| 6573 |
}
|
| 6574 |
],
|
| 6575 |
"dependencies": {
|
| 6576 |
-
"nanoid": "^3.3.
|
| 6577 |
"picocolors": "^1.0.0",
|
| 6578 |
"source-map-js": "^1.0.2"
|
| 6579 |
},
|
|
@@ -6581,6 +6810,11 @@
|
|
| 6581 |
"node": "^10 || ^12 || >=14"
|
| 6582 |
}
|
| 6583 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6584 |
"node_modules/styled-jsx": {
|
| 6585 |
"version": "5.1.1",
|
| 6586 |
"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
|
|
@@ -6604,18 +6838,18 @@
|
|
| 6604 |
}
|
| 6605 |
},
|
| 6606 |
"node_modules/stylis": {
|
| 6607 |
-
"version": "4.3.
|
| 6608 |
-
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.
|
| 6609 |
-
"integrity": "sha512-
|
| 6610 |
},
|
| 6611 |
"node_modules/sucrase": {
|
| 6612 |
-
"version": "3.
|
| 6613 |
-
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.
|
| 6614 |
-
"integrity": "sha512-
|
| 6615 |
"dependencies": {
|
| 6616 |
"@jridgewell/gen-mapping": "^0.3.2",
|
| 6617 |
"commander": "^4.0.0",
|
| 6618 |
-
"glob": "
|
| 6619 |
"lines-and-columns": "^1.1.6",
|
| 6620 |
"mz": "^2.7.0",
|
| 6621 |
"pirates": "^4.0.1",
|
|
@@ -6626,23 +6860,47 @@
|
|
| 6626 |
"sucrase-node": "bin/sucrase-node"
|
| 6627 |
},
|
| 6628 |
"engines": {
|
| 6629 |
-
"node": ">=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6630 |
}
|
| 6631 |
},
|
| 6632 |
"node_modules/sucrase/node_modules/glob": {
|
| 6633 |
-
"version": "
|
| 6634 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-
|
| 6635 |
-
"integrity": "sha512-
|
| 6636 |
"dependencies": {
|
| 6637 |
-
"
|
| 6638 |
-
"
|
| 6639 |
-
"
|
| 6640 |
-
"
|
| 6641 |
-
"
|
| 6642 |
-
|
|
|
|
|
|
|
| 6643 |
},
|
| 6644 |
"engines": {
|
| 6645 |
-
"node": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6646 |
},
|
| 6647 |
"funding": {
|
| 6648 |
"url": "https://github.com/sponsors/isaacs"
|
|
@@ -6671,9 +6929,9 @@
|
|
| 6671 |
}
|
| 6672 |
},
|
| 6673 |
"node_modules/tailwind-merge": {
|
| 6674 |
-
"version": "2.
|
| 6675 |
-
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.
|
| 6676 |
-
"integrity": "sha512-
|
| 6677 |
"dependencies": {
|
| 6678 |
"@babel/runtime": "^7.23.5"
|
| 6679 |
},
|
|
@@ -6918,9 +7176,9 @@
|
|
| 6918 |
}
|
| 6919 |
},
|
| 6920 |
"node_modules/type-fest": {
|
| 6921 |
-
"version": "4.
|
| 6922 |
-
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.
|
| 6923 |
-
"integrity": "sha512
|
| 6924 |
"engines": {
|
| 6925 |
"node": ">=16"
|
| 6926 |
},
|
|
@@ -7053,9 +7311,9 @@
|
|
| 7053 |
}
|
| 7054 |
},
|
| 7055 |
"node_modules/use-callback-ref": {
|
| 7056 |
-
"version": "1.3.
|
| 7057 |
-
"resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.
|
| 7058 |
-
"integrity": "sha512-
|
| 7059 |
"dependencies": {
|
| 7060 |
"tslib": "^2.0.0"
|
| 7061 |
},
|
|
@@ -7102,12 +7360,12 @@
|
|
| 7102 |
}
|
| 7103 |
},
|
| 7104 |
"node_modules/usehooks-ts": {
|
| 7105 |
-
"version": "2.9.
|
| 7106 |
-
"resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-2.9.
|
| 7107 |
-
"integrity": "sha512-
|
|
|
|
| 7108 |
"engines": {
|
| 7109 |
-
"node": ">=16.15.0"
|
| 7110 |
-
"npm": ">=8"
|
| 7111 |
},
|
| 7112 |
"peerDependencies": {
|
| 7113 |
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
@@ -7234,6 +7492,93 @@
|
|
| 7234 |
"url": "https://github.com/sponsors/ljharb"
|
| 7235 |
}
|
| 7236 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7237 |
"node_modules/wrappy": {
|
| 7238 |
"version": "1.0.2",
|
| 7239 |
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
|
|
|
| 8 |
"name": "ai-tube",
|
| 9 |
"version": "0.0.0",
|
| 10 |
"dependencies": {
|
| 11 |
+
"@huggingface/hub": "0.12.3-oauth",
|
| 12 |
"@huggingface/inference": "^2.6.4",
|
| 13 |
"@photo-sphere-viewer/core": "^5.5.1",
|
| 14 |
"@photo-sphere-viewer/video-plugin": "^5.5.1",
|
|
|
|
| 108 |
}
|
| 109 |
},
|
| 110 |
"node_modules/@babel/runtime": {
|
| 111 |
+
"version": "7.23.8",
|
| 112 |
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
|
| 113 |
+
"integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
|
| 114 |
"dependencies": {
|
| 115 |
"regenerator-runtime": "^0.14.0"
|
| 116 |
},
|
|
|
|
| 152 |
"integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
|
| 153 |
},
|
| 154 |
"node_modules/@emotion/unitless": {
|
| 155 |
+
"version": "0.8.0",
|
| 156 |
+
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
|
| 157 |
+
"integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
|
| 158 |
},
|
| 159 |
"node_modules/@eslint-community/eslint-utils": {
|
| 160 |
"version": "4.4.0",
|
|
|
|
| 209 |
}
|
| 210 |
},
|
| 211 |
"node_modules/@floating-ui/core": {
|
| 212 |
+
"version": "1.5.3",
|
| 213 |
+
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz",
|
| 214 |
+
"integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==",
|
| 215 |
"dependencies": {
|
| 216 |
+
"@floating-ui/utils": "^0.2.0"
|
| 217 |
}
|
| 218 |
},
|
| 219 |
"node_modules/@floating-ui/dom": {
|
| 220 |
+
"version": "1.5.4",
|
| 221 |
+
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz",
|
| 222 |
+
"integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==",
|
| 223 |
"dependencies": {
|
| 224 |
+
"@floating-ui/core": "^1.5.3",
|
| 225 |
+
"@floating-ui/utils": "^0.2.0"
|
| 226 |
}
|
| 227 |
},
|
| 228 |
"node_modules/@floating-ui/react-dom": {
|
| 229 |
+
"version": "2.0.5",
|
| 230 |
+
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.5.tgz",
|
| 231 |
+
"integrity": "sha512-UsBK30Bg+s6+nsgblXtZmwHhgS2vmbuQK22qgt2pTQM6M3X6H1+cQcLXqgRY3ihVLcZJE6IvqDQozhsnIVqK/Q==",
|
| 232 |
"dependencies": {
|
| 233 |
+
"@floating-ui/dom": "^1.5.4"
|
| 234 |
},
|
| 235 |
"peerDependencies": {
|
| 236 |
"react": ">=16.8.0",
|
|
|
|
| 238 |
}
|
| 239 |
},
|
| 240 |
"node_modules/@floating-ui/utils": {
|
| 241 |
+
"version": "0.2.1",
|
| 242 |
+
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz",
|
| 243 |
+
"integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
|
| 244 |
+
},
|
| 245 |
+
"node_modules/@huggingface/hub": {
|
| 246 |
+
"version": "0.12.3-oauth",
|
| 247 |
+
"resolved": "https://registry.npmjs.org/@huggingface/hub/-/hub-0.12.3-oauth.tgz",
|
| 248 |
+
"integrity": "sha512-9LE4Ded2VsjQTK/rxsIF/nvhkxs1UE+lcpNpuBxnTGNpaVzbO6HIlAtbThgNenKPplRt1iDkn82AQYBco1QHug==",
|
| 249 |
+
"dependencies": {
|
| 250 |
+
"hash-wasm": "^4.9.0"
|
| 251 |
+
},
|
| 252 |
+
"engines": {
|
| 253 |
+
"node": ">=18"
|
| 254 |
+
}
|
| 255 |
},
|
| 256 |
"node_modules/@huggingface/inference": {
|
| 257 |
"version": "2.6.4",
|
|
|
|
| 262 |
}
|
| 263 |
},
|
| 264 |
"node_modules/@humanwhocodes/config-array": {
|
| 265 |
+
"version": "0.11.14",
|
| 266 |
+
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
| 267 |
+
"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
|
| 268 |
"dependencies": {
|
| 269 |
+
"@humanwhocodes/object-schema": "^2.0.2",
|
| 270 |
+
"debug": "^4.3.1",
|
| 271 |
"minimatch": "^3.0.5"
|
| 272 |
},
|
| 273 |
"engines": {
|
|
|
|
| 287 |
}
|
| 288 |
},
|
| 289 |
"node_modules/@humanwhocodes/object-schema": {
|
| 290 |
+
"version": "2.0.2",
|
| 291 |
+
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
|
| 292 |
+
"integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
|
| 293 |
+
},
|
| 294 |
+
"node_modules/@isaacs/cliui": {
|
| 295 |
+
"version": "8.0.2",
|
| 296 |
+
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
| 297 |
+
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
| 298 |
+
"dependencies": {
|
| 299 |
+
"string-width": "^5.1.2",
|
| 300 |
+
"string-width-cjs": "npm:string-width@^4.2.0",
|
| 301 |
+
"strip-ansi": "^7.0.1",
|
| 302 |
+
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
|
| 303 |
+
"wrap-ansi": "^8.1.0",
|
| 304 |
+
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
|
| 305 |
+
},
|
| 306 |
+
"engines": {
|
| 307 |
+
"node": ">=12"
|
| 308 |
+
}
|
| 309 |
+
},
|
| 310 |
+
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
|
| 311 |
+
"version": "6.0.1",
|
| 312 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
| 313 |
+
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
|
| 314 |
+
"engines": {
|
| 315 |
+
"node": ">=12"
|
| 316 |
+
},
|
| 317 |
+
"funding": {
|
| 318 |
+
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
|
| 319 |
+
}
|
| 320 |
+
},
|
| 321 |
+
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
|
| 322 |
+
"version": "7.1.0",
|
| 323 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
|
| 324 |
+
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
|
| 325 |
+
"dependencies": {
|
| 326 |
+
"ansi-regex": "^6.0.1"
|
| 327 |
+
},
|
| 328 |
+
"engines": {
|
| 329 |
+
"node": ">=12"
|
| 330 |
+
},
|
| 331 |
+
"funding": {
|
| 332 |
+
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
| 333 |
+
}
|
| 334 |
},
|
| 335 |
"node_modules/@jridgewell/gen-mapping": {
|
| 336 |
"version": "0.3.3",
|
|
|
|
| 367 |
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
| 368 |
},
|
| 369 |
"node_modules/@jridgewell/trace-mapping": {
|
| 370 |
+
"version": "0.3.21",
|
| 371 |
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz",
|
| 372 |
+
"integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==",
|
| 373 |
"dependencies": {
|
| 374 |
"@jridgewell/resolve-uri": "^3.1.0",
|
| 375 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
|
|
|
| 556 |
}
|
| 557 |
},
|
| 558 |
"node_modules/@photo-sphere-viewer/autorotate-plugin": {
|
| 559 |
+
"version": "5.5.2",
|
| 560 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/autorotate-plugin/-/autorotate-plugin-5.5.2.tgz",
|
| 561 |
+
"integrity": "sha512-DVmYD+G+0swAdky/Jh6Qw/Q4rpgraRFYEKgj9lD0h68/9iC8XTDTsR6YPIPENNjW8deYNZO7T5INs8WJfesa5w==",
|
| 562 |
"peerDependencies": {
|
| 563 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 564 |
}
|
| 565 |
},
|
| 566 |
"node_modules/@photo-sphere-viewer/compass-plugin": {
|
| 567 |
+
"version": "5.5.2",
|
| 568 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/compass-plugin/-/compass-plugin-5.5.2.tgz",
|
| 569 |
+
"integrity": "sha512-pNsuAj8PMGFdq8DcSBDXkvLb0FxMh7WjkFsTGZ030Re68XewcZXdLrB801o9C7FOZ6q4vUvPuF5j962IsTPitg==",
|
| 570 |
"peerDependencies": {
|
| 571 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 572 |
}
|
| 573 |
},
|
| 574 |
"node_modules/@photo-sphere-viewer/core": {
|
| 575 |
+
"version": "5.5.2",
|
| 576 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/core/-/core-5.5.2.tgz",
|
| 577 |
+
"integrity": "sha512-coEFnredLadny6tRike4KNjoWuKVEzUJ6Qr5mJif2LbgIV5+dq4dVqAWZRqp2OspMq3sq/iSyDwraI4t+Whl6A==",
|
| 578 |
"dependencies": {
|
| 579 |
"three": "^0.159.0"
|
| 580 |
}
|
|
|
|
| 585 |
"integrity": "sha512-eCmhlLGbBgucuo4VEA9IO3Qpc7dh8Bd4VKzr7WfW4+8hMcIfoAVi1ev0pJYN9PTTsCslbcKgBwr2wNZ1EvLInA=="
|
| 586 |
},
|
| 587 |
"node_modules/@photo-sphere-viewer/cubemap-adapter": {
|
| 588 |
+
"version": "5.5.2",
|
| 589 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/cubemap-adapter/-/cubemap-adapter-5.5.2.tgz",
|
| 590 |
+
"integrity": "sha512-zf1V6B8GXELEeFIMYVZS/lkiHk5TZG6dUj6MzcQPNiHN2kKzth+XaglIncOKHwGU9NDrJn/RmuR4MwbOKuqqcw==",
|
| 591 |
"peerDependencies": {
|
| 592 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 593 |
}
|
| 594 |
},
|
| 595 |
"node_modules/@photo-sphere-viewer/cubemap-tiles-adapter": {
|
| 596 |
+
"version": "5.5.2",
|
| 597 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/cubemap-tiles-adapter/-/cubemap-tiles-adapter-5.5.2.tgz",
|
| 598 |
+
"integrity": "sha512-K5VcdrQgNIudfGdBdg+UsQSntPNVlzJLdTUSLFBGl8djzDnodDx2EfB/2OSnMl86cD1evVIjKYpOamZWs8PDJQ==",
|
| 599 |
"peerDependencies": {
|
| 600 |
+
"@photo-sphere-viewer/core": "5.5.2",
|
| 601 |
+
"@photo-sphere-viewer/cubemap-adapter": "5.5.2"
|
| 602 |
}
|
| 603 |
},
|
| 604 |
"node_modules/@photo-sphere-viewer/cubemap-video-adapter": {
|
| 605 |
+
"version": "5.5.2",
|
| 606 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/cubemap-video-adapter/-/cubemap-video-adapter-5.5.2.tgz",
|
| 607 |
+
"integrity": "sha512-p2y3ooAdskVjS87uMfjuu6KLlBFmkxZrTflKKaPIwd40wfXXQrYIU+ZG7glugE/r+DsRftHBU2lPqDNpn5fp/g==",
|
| 608 |
"peerDependencies": {
|
| 609 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 610 |
}
|
| 611 |
},
|
| 612 |
"node_modules/@photo-sphere-viewer/equirectangular-tiles-adapter": {
|
| 613 |
+
"version": "5.5.2",
|
| 614 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/equirectangular-tiles-adapter/-/equirectangular-tiles-adapter-5.5.2.tgz",
|
| 615 |
+
"integrity": "sha512-3aGsb+oGJomQBFnGqk8kVbH0I8+a1iU0OXfDkUf5AJpeUHu7RgK9wrKutoVGKV0CPbND0Mx8WjHS2doxluPdNg==",
|
| 616 |
"peerDependencies": {
|
| 617 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 618 |
}
|
| 619 |
},
|
| 620 |
"node_modules/@photo-sphere-viewer/equirectangular-video-adapter": {
|
| 621 |
+
"version": "5.5.2",
|
| 622 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/equirectangular-video-adapter/-/equirectangular-video-adapter-5.5.2.tgz",
|
| 623 |
+
"integrity": "sha512-EOcCe6sxAvPFVDLjadpDw24V/IncIaOOzgsbo/adc8cZ87EOdbqnX8GkxpXXVDF0IiVi78WoocVwaybGXdMwyA==",
|
| 624 |
"peerDependencies": {
|
| 625 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 626 |
}
|
| 627 |
},
|
| 628 |
"node_modules/@photo-sphere-viewer/gallery-plugin": {
|
| 629 |
+
"version": "5.5.2",
|
| 630 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/gallery-plugin/-/gallery-plugin-5.5.2.tgz",
|
| 631 |
+
"integrity": "sha512-QuZNYfcHHkDvvSxz0Z2wOD8uuF7sakmcRwX4Ys052H1V2qFkQKB/7uxDz+1AVbTqvyG6r5Rf7tMSPfqoggMW7A==",
|
| 632 |
"peerDependencies": {
|
| 633 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 634 |
}
|
| 635 |
},
|
| 636 |
"node_modules/@photo-sphere-viewer/gyroscope-plugin": {
|
| 637 |
+
"version": "5.5.2",
|
| 638 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/gyroscope-plugin/-/gyroscope-plugin-5.5.2.tgz",
|
| 639 |
+
"integrity": "sha512-0TAsjeQee1DImQGZUCY+ZfGm9RCtDgx2PRxqmBH/ZTMRspyCmVYc2ibTexfYLC6AYKowSiLrzDAxTkHdsLdt5Q==",
|
| 640 |
"peerDependencies": {
|
| 641 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 642 |
}
|
| 643 |
},
|
| 644 |
"node_modules/@photo-sphere-viewer/map-plugin": {
|
| 645 |
+
"version": "5.5.2",
|
| 646 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/map-plugin/-/map-plugin-5.5.2.tgz",
|
| 647 |
+
"integrity": "sha512-YU/3IYTAW8ky5scL5+hF+JbV3ZOGIvbFxIJYxckf6uP0GlrNUSow3z2wEX1T9nR8SzAklncGUPygB2vOh1cOQA==",
|
| 648 |
"peerDependencies": {
|
| 649 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 650 |
}
|
| 651 |
},
|
| 652 |
"node_modules/@photo-sphere-viewer/markers-plugin": {
|
| 653 |
+
"version": "5.5.2",
|
| 654 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/markers-plugin/-/markers-plugin-5.5.2.tgz",
|
| 655 |
+
"integrity": "sha512-vz+kt9CqMTOr09/HH+czBLMAwv0tsYFGINAMCsxlrl+HM9RGBi5cRqOwXLWNEfvdLdqGgEw1K6gXxZxkJjLGDg==",
|
| 656 |
"peerDependencies": {
|
| 657 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 658 |
}
|
| 659 |
},
|
| 660 |
"node_modules/@photo-sphere-viewer/resolution-plugin": {
|
| 661 |
+
"version": "5.5.2",
|
| 662 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/resolution-plugin/-/resolution-plugin-5.5.2.tgz",
|
| 663 |
+
"integrity": "sha512-HI61gfETeleHE0kLSIqYMc9HYu4VSP7NzEwNJKr0nrVGyD7pz1eO3luYtrUMVGezQdjGRdiG9vKgT+Z1SeJzFQ==",
|
| 664 |
"peerDependencies": {
|
| 665 |
+
"@photo-sphere-viewer/core": "5.5.2",
|
| 666 |
+
"@photo-sphere-viewer/settings-plugin": "5.5.2"
|
| 667 |
}
|
| 668 |
},
|
| 669 |
"node_modules/@photo-sphere-viewer/settings-plugin": {
|
| 670 |
+
"version": "5.5.2",
|
| 671 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/settings-plugin/-/settings-plugin-5.5.2.tgz",
|
| 672 |
+
"integrity": "sha512-+jbtIwHme4San/jYLUFHjZtEdgh2Gp+RLHIfB9nPtQFYo8Mu56daVz5TAmnIErmsRCbTzw8tA/YywWwzugSxWQ==",
|
| 673 |
"peerDependencies": {
|
| 674 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 675 |
}
|
| 676 |
},
|
| 677 |
"node_modules/@photo-sphere-viewer/stereo-plugin": {
|
| 678 |
+
"version": "5.5.2",
|
| 679 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/stereo-plugin/-/stereo-plugin-5.5.2.tgz",
|
| 680 |
+
"integrity": "sha512-M7KGYpSMEZtmux3IO4CkaObKKu7wHFDyUVm1NuDwkO/G6Vc9BhmKVE+XFqD6DfOkcMWH92YCSXwepNt5ozULRw==",
|
| 681 |
"peerDependencies": {
|
| 682 |
+
"@photo-sphere-viewer/core": "5.5.2",
|
| 683 |
+
"@photo-sphere-viewer/gyroscope-plugin": "5.5.2"
|
| 684 |
}
|
| 685 |
},
|
| 686 |
"node_modules/@photo-sphere-viewer/video-plugin": {
|
| 687 |
+
"version": "5.5.2",
|
| 688 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/video-plugin/-/video-plugin-5.5.2.tgz",
|
| 689 |
+
"integrity": "sha512-np635jW4Ln2FpetlIEznjRWB5a0/ZHJf1FLwl0yHpFtRellQtCL8NCmgu3mbP9XUJEq1//E6nPPRE9bdCzurkA==",
|
| 690 |
"peerDependencies": {
|
| 691 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 692 |
}
|
| 693 |
},
|
| 694 |
"node_modules/@photo-sphere-viewer/virtual-tour-plugin": {
|
| 695 |
+
"version": "5.5.2",
|
| 696 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/virtual-tour-plugin/-/virtual-tour-plugin-5.5.2.tgz",
|
| 697 |
+
"integrity": "sha512-gsF/oHAeL+zahF3MtesyJO3bJ1/94sSCAycZiaio2uWQ6vtDwT9OaWzNh+kmhaZZdoMlVd79zoZfEQu5SaTMAw==",
|
| 698 |
"peerDependencies": {
|
| 699 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 700 |
}
|
| 701 |
},
|
| 702 |
"node_modules/@photo-sphere-viewer/visible-range-plugin": {
|
| 703 |
+
"version": "5.5.2",
|
| 704 |
+
"resolved": "https://registry.npmjs.org/@photo-sphere-viewer/visible-range-plugin/-/visible-range-plugin-5.5.2.tgz",
|
| 705 |
+
"integrity": "sha512-/3da5q3lxrwoqU6JcKGFZj9G0cxc2yyVjbzlp7acSLqO5Bd9EOl+rsT+CThcBVtL5eqTufla0Ro+HtF/feEOjg==",
|
| 706 |
"peerDependencies": {
|
| 707 |
+
"@photo-sphere-viewer/core": "5.5.2"
|
| 708 |
+
}
|
| 709 |
+
},
|
| 710 |
+
"node_modules/@pkgjs/parseargs": {
|
| 711 |
+
"version": "0.11.0",
|
| 712 |
+
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
| 713 |
+
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
| 714 |
+
"optional": true,
|
| 715 |
+
"engines": {
|
| 716 |
+
"node": ">=14"
|
| 717 |
}
|
| 718 |
},
|
| 719 |
"node_modules/@radix-ui/number": {
|
|
|
|
| 1977 |
}
|
| 1978 |
},
|
| 1979 |
"node_modules/@types/qs": {
|
| 1980 |
+
"version": "6.9.11",
|
| 1981 |
+
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
|
| 1982 |
+
"integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
|
| 1983 |
"dev": true
|
| 1984 |
},
|
| 1985 |
"node_modules/@types/react": {
|
|
|
|
| 2037 |
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
|
| 2038 |
},
|
| 2039 |
"node_modules/@types/stylis": {
|
| 2040 |
+
"version": "4.2.0",
|
| 2041 |
+
"resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz",
|
| 2042 |
+
"integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw=="
|
| 2043 |
},
|
| 2044 |
"node_modules/@types/uuid": {
|
| 2045 |
"version": "9.0.7",
|
|
|
|
| 2143 |
}
|
| 2144 |
},
|
| 2145 |
"node_modules/@upstash/redis": {
|
| 2146 |
+
"version": "1.28.0",
|
| 2147 |
+
"resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.28.0.tgz",
|
| 2148 |
+
"integrity": "sha512-vvFMUHGA5jUAXQHuAzFHNLD2TND/2aaf1BUPYBeg73CkQ9X+jorWVi7VGxZtRXPDEFJR9KvzuwCacbSproOKcw==",
|
| 2149 |
"dependencies": {
|
| 2150 |
"crypto-js": "^4.2.0"
|
| 2151 |
}
|
| 2152 |
},
|
| 2153 |
"node_modules/acorn": {
|
| 2154 |
+
"version": "8.11.3",
|
| 2155 |
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
| 2156 |
+
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
|
| 2157 |
"bin": {
|
| 2158 |
"acorn": "bin/acorn"
|
| 2159 |
},
|
|
|
|
| 2170 |
}
|
| 2171 |
},
|
| 2172 |
"node_modules/acorn-walk": {
|
| 2173 |
+
"version": "8.3.2",
|
| 2174 |
+
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
|
| 2175 |
+
"integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
|
| 2176 |
"engines": {
|
| 2177 |
"node": ">=0.4.0"
|
| 2178 |
}
|
|
|
|
| 2629 |
}
|
| 2630 |
},
|
| 2631 |
"node_modules/caniuse-lite": {
|
| 2632 |
+
"version": "1.0.30001576",
|
| 2633 |
+
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz",
|
| 2634 |
+
"integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==",
|
| 2635 |
"funding": [
|
| 2636 |
{
|
| 2637 |
"type": "opencollective",
|
|
|
|
| 2729 |
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
| 2730 |
},
|
| 2731 |
"node_modules/clsx": {
|
| 2732 |
+
"version": "2.1.0",
|
| 2733 |
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
|
| 2734 |
+
"integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
|
| 2735 |
"engines": {
|
| 2736 |
"node": ">=6"
|
| 2737 |
}
|
|
|
|
| 3062 |
}
|
| 3063 |
},
|
| 3064 |
"node_modules/cookies-next/node_modules/@types/node": {
|
| 3065 |
+
"version": "16.18.70",
|
| 3066 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.70.tgz",
|
| 3067 |
+
"integrity": "sha512-8eIk20G5VVVQNZNouHjLA2b8utE2NvGybLjMaF4lyhA9uhGwnmXF8o+icdXKGSQSNANJewXva/sFUoZLwAaYAg=="
|
| 3068 |
},
|
| 3069 |
"node_modules/copy-to-clipboard": {
|
| 3070 |
"version": "3.3.3",
|
|
|
|
| 3381 |
"url": "https://github.com/fb55/domutils?sponsor=1"
|
| 3382 |
}
|
| 3383 |
},
|
| 3384 |
+
"node_modules/eastasianwidth": {
|
| 3385 |
+
"version": "0.2.0",
|
| 3386 |
+
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
| 3387 |
+
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
| 3388 |
+
},
|
| 3389 |
"node_modules/electron-to-chromium": {
|
| 3390 |
+
"version": "1.4.629",
|
| 3391 |
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.629.tgz",
|
| 3392 |
+
"integrity": "sha512-5UUkr3k3CZ/k+9Sw7vaaIMyOzMC0XbPyprKI3n0tbKDqkzTDOjK4izm7DxlkueRMim6ZZQ1ja9F7hoFVplHihA=="
|
| 3393 |
},
|
| 3394 |
"node_modules/emoji-regex": {
|
| 3395 |
"version": "9.2.2",
|
|
|
|
| 4089 |
"is-callable": "^1.1.3"
|
| 4090 |
}
|
| 4091 |
},
|
| 4092 |
+
"node_modules/foreground-child": {
|
| 4093 |
+
"version": "3.1.1",
|
| 4094 |
+
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
|
| 4095 |
+
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
|
| 4096 |
+
"dependencies": {
|
| 4097 |
+
"cross-spawn": "^7.0.0",
|
| 4098 |
+
"signal-exit": "^4.0.1"
|
| 4099 |
+
},
|
| 4100 |
+
"engines": {
|
| 4101 |
+
"node": ">=14"
|
| 4102 |
+
},
|
| 4103 |
+
"funding": {
|
| 4104 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 4105 |
+
}
|
| 4106 |
+
},
|
| 4107 |
"node_modules/fraction.js": {
|
| 4108 |
"version": "4.3.7",
|
| 4109 |
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
|
|
|
|
| 4650 |
"url": "https://github.com/sponsors/ljharb"
|
| 4651 |
}
|
| 4652 |
},
|
| 4653 |
+
"node_modules/is-fullwidth-code-point": {
|
| 4654 |
+
"version": "3.0.0",
|
| 4655 |
+
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
| 4656 |
+
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
| 4657 |
+
"engines": {
|
| 4658 |
+
"node": ">=8"
|
| 4659 |
+
}
|
| 4660 |
+
},
|
| 4661 |
"node_modules/is-generator-function": {
|
| 4662 |
"version": "1.0.10",
|
| 4663 |
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
|
|
|
|
| 4869 |
"set-function-name": "^2.0.1"
|
| 4870 |
}
|
| 4871 |
},
|
| 4872 |
+
"node_modules/jackspeak": {
|
| 4873 |
+
"version": "2.3.6",
|
| 4874 |
+
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
|
| 4875 |
+
"integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
|
| 4876 |
+
"dependencies": {
|
| 4877 |
+
"@isaacs/cliui": "^8.0.2"
|
| 4878 |
+
},
|
| 4879 |
+
"engines": {
|
| 4880 |
+
"node": ">=14"
|
| 4881 |
+
},
|
| 4882 |
+
"funding": {
|
| 4883 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 4884 |
+
},
|
| 4885 |
+
"optionalDependencies": {
|
| 4886 |
+
"@pkgjs/parseargs": "^0.11.0"
|
| 4887 |
+
}
|
| 4888 |
+
},
|
| 4889 |
"node_modules/jiti": {
|
| 4890 |
"version": "1.21.0",
|
| 4891 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
|
|
|
|
| 5135 |
"url": "https://github.com/sponsors/ljharb"
|
| 5136 |
}
|
| 5137 |
},
|
| 5138 |
+
"node_modules/minipass": {
|
| 5139 |
+
"version": "7.0.4",
|
| 5140 |
+
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
|
| 5141 |
+
"integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
|
| 5142 |
+
"engines": {
|
| 5143 |
+
"node": ">=16 || 14 >=14.17"
|
| 5144 |
+
}
|
| 5145 |
+
},
|
| 5146 |
"node_modules/mkdirp-classic": {
|
| 5147 |
"version": "0.5.3",
|
| 5148 |
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
|
|
|
| 5264 |
}
|
| 5265 |
},
|
| 5266 |
"node_modules/node-abi": {
|
| 5267 |
+
"version": "3.54.0",
|
| 5268 |
+
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz",
|
| 5269 |
+
"integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==",
|
| 5270 |
"dependencies": {
|
| 5271 |
"semver": "^7.3.5"
|
| 5272 |
},
|
|
|
|
| 5514 |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
| 5515 |
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
|
| 5516 |
},
|
| 5517 |
+
"node_modules/path-scurry": {
|
| 5518 |
+
"version": "1.10.1",
|
| 5519 |
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
|
| 5520 |
+
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
|
| 5521 |
+
"dependencies": {
|
| 5522 |
+
"lru-cache": "^9.1.1 || ^10.0.0",
|
| 5523 |
+
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
| 5524 |
+
},
|
| 5525 |
+
"engines": {
|
| 5526 |
+
"node": ">=16 || 14 >=14.17"
|
| 5527 |
+
},
|
| 5528 |
+
"funding": {
|
| 5529 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 5530 |
+
}
|
| 5531 |
+
},
|
| 5532 |
+
"node_modules/path-scurry/node_modules/lru-cache": {
|
| 5533 |
+
"version": "10.1.0",
|
| 5534 |
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz",
|
| 5535 |
+
"integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
|
| 5536 |
+
"engines": {
|
| 5537 |
+
"node": "14 || >=16.14"
|
| 5538 |
+
}
|
| 5539 |
+
},
|
| 5540 |
"node_modules/path-type": {
|
| 5541 |
"version": "4.0.0",
|
| 5542 |
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
|
|
|
| 5716 |
}
|
| 5717 |
},
|
| 5718 |
"node_modules/postcss-selector-parser": {
|
| 5719 |
+
"version": "6.0.15",
|
| 5720 |
+
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
|
| 5721 |
+
"integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
|
| 5722 |
"dependencies": {
|
| 5723 |
"cssesc": "^3.0.0",
|
| 5724 |
"util-deprecate": "^1.0.2"
|
|
|
|
| 6319 |
]
|
| 6320 |
},
|
| 6321 |
"node_modules/safe-regex-test": {
|
| 6322 |
+
"version": "1.0.2",
|
| 6323 |
+
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz",
|
| 6324 |
+
"integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==",
|
| 6325 |
"dependencies": {
|
| 6326 |
+
"call-bind": "^1.0.5",
|
| 6327 |
+
"get-intrinsic": "^1.2.2",
|
| 6328 |
"is-regex": "^1.1.4"
|
| 6329 |
},
|
| 6330 |
+
"engines": {
|
| 6331 |
+
"node": ">= 0.4"
|
| 6332 |
+
},
|
| 6333 |
"funding": {
|
| 6334 |
"url": "https://github.com/sponsors/ljharb"
|
| 6335 |
}
|
|
|
|
| 6472 |
"url": "https://github.com/sponsors/ljharb"
|
| 6473 |
}
|
| 6474 |
},
|
| 6475 |
+
"node_modules/signal-exit": {
|
| 6476 |
+
"version": "4.1.0",
|
| 6477 |
+
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
| 6478 |
+
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
|
| 6479 |
+
"engines": {
|
| 6480 |
+
"node": ">=14"
|
| 6481 |
+
},
|
| 6482 |
+
"funding": {
|
| 6483 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 6484 |
+
}
|
| 6485 |
+
},
|
| 6486 |
"node_modules/simple-concat": {
|
| 6487 |
"version": "1.0.1",
|
| 6488 |
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
|
|
|
| 6580 |
"safe-buffer": "~5.2.0"
|
| 6581 |
}
|
| 6582 |
},
|
| 6583 |
+
"node_modules/string-width": {
|
| 6584 |
+
"version": "5.1.2",
|
| 6585 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
| 6586 |
+
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
| 6587 |
+
"dependencies": {
|
| 6588 |
+
"eastasianwidth": "^0.2.0",
|
| 6589 |
+
"emoji-regex": "^9.2.2",
|
| 6590 |
+
"strip-ansi": "^7.0.1"
|
| 6591 |
+
},
|
| 6592 |
+
"engines": {
|
| 6593 |
+
"node": ">=12"
|
| 6594 |
+
},
|
| 6595 |
+
"funding": {
|
| 6596 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 6597 |
+
}
|
| 6598 |
+
},
|
| 6599 |
+
"node_modules/string-width-cjs": {
|
| 6600 |
+
"name": "string-width",
|
| 6601 |
+
"version": "4.2.3",
|
| 6602 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 6603 |
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
| 6604 |
+
"dependencies": {
|
| 6605 |
+
"emoji-regex": "^8.0.0",
|
| 6606 |
+
"is-fullwidth-code-point": "^3.0.0",
|
| 6607 |
+
"strip-ansi": "^6.0.1"
|
| 6608 |
+
},
|
| 6609 |
+
"engines": {
|
| 6610 |
+
"node": ">=8"
|
| 6611 |
+
}
|
| 6612 |
+
},
|
| 6613 |
+
"node_modules/string-width-cjs/node_modules/emoji-regex": {
|
| 6614 |
+
"version": "8.0.0",
|
| 6615 |
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 6616 |
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
|
| 6617 |
+
},
|
| 6618 |
+
"node_modules/string-width/node_modules/ansi-regex": {
|
| 6619 |
+
"version": "6.0.1",
|
| 6620 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
| 6621 |
+
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
|
| 6622 |
+
"engines": {
|
| 6623 |
+
"node": ">=12"
|
| 6624 |
+
},
|
| 6625 |
+
"funding": {
|
| 6626 |
+
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
|
| 6627 |
+
}
|
| 6628 |
+
},
|
| 6629 |
+
"node_modules/string-width/node_modules/strip-ansi": {
|
| 6630 |
+
"version": "7.1.0",
|
| 6631 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
|
| 6632 |
+
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
|
| 6633 |
+
"dependencies": {
|
| 6634 |
+
"ansi-regex": "^6.0.1"
|
| 6635 |
+
},
|
| 6636 |
+
"engines": {
|
| 6637 |
+
"node": ">=12"
|
| 6638 |
+
},
|
| 6639 |
+
"funding": {
|
| 6640 |
+
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
| 6641 |
+
}
|
| 6642 |
+
},
|
| 6643 |
"node_modules/string.prototype.matchall": {
|
| 6644 |
"version": "4.0.10",
|
| 6645 |
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
|
|
|
|
| 6712 |
"node": ">=8"
|
| 6713 |
}
|
| 6714 |
},
|
| 6715 |
+
"node_modules/strip-ansi-cjs": {
|
| 6716 |
+
"name": "strip-ansi",
|
| 6717 |
+
"version": "6.0.1",
|
| 6718 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 6719 |
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
| 6720 |
+
"dependencies": {
|
| 6721 |
+
"ansi-regex": "^5.0.1"
|
| 6722 |
+
},
|
| 6723 |
+
"engines": {
|
| 6724 |
+
"node": ">=8"
|
| 6725 |
+
}
|
| 6726 |
+
},
|
| 6727 |
"node_modules/strip-bom": {
|
| 6728 |
"version": "3.0.0",
|
| 6729 |
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
|
|
|
| 6752 |
}
|
| 6753 |
},
|
| 6754 |
"node_modules/styled-components": {
|
| 6755 |
+
"version": "6.1.8",
|
| 6756 |
+
"resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.8.tgz",
|
| 6757 |
+
"integrity": "sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw==",
|
| 6758 |
+
"dependencies": {
|
| 6759 |
+
"@emotion/is-prop-valid": "1.2.1",
|
| 6760 |
+
"@emotion/unitless": "0.8.0",
|
| 6761 |
+
"@types/stylis": "4.2.0",
|
| 6762 |
+
"css-to-react-native": "3.2.0",
|
| 6763 |
+
"csstype": "3.1.2",
|
| 6764 |
+
"postcss": "8.4.31",
|
| 6765 |
+
"shallowequal": "1.1.0",
|
| 6766 |
+
"stylis": "4.3.1",
|
| 6767 |
+
"tslib": "2.5.0"
|
| 6768 |
},
|
| 6769 |
"engines": {
|
| 6770 |
"node": ">= 16"
|
|
|
|
| 6778 |
"react-dom": ">= 16.8.0"
|
| 6779 |
}
|
| 6780 |
},
|
| 6781 |
+
"node_modules/styled-components/node_modules/csstype": {
|
| 6782 |
+
"version": "3.1.2",
|
| 6783 |
+
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
|
| 6784 |
+
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
|
| 6785 |
+
},
|
| 6786 |
"node_modules/styled-components/node_modules/postcss": {
|
| 6787 |
+
"version": "8.4.31",
|
| 6788 |
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
| 6789 |
+
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
| 6790 |
"funding": [
|
| 6791 |
{
|
| 6792 |
"type": "opencollective",
|
|
|
|
| 6802 |
}
|
| 6803 |
],
|
| 6804 |
"dependencies": {
|
| 6805 |
+
"nanoid": "^3.3.6",
|
| 6806 |
"picocolors": "^1.0.0",
|
| 6807 |
"source-map-js": "^1.0.2"
|
| 6808 |
},
|
|
|
|
| 6810 |
"node": "^10 || ^12 || >=14"
|
| 6811 |
}
|
| 6812 |
},
|
| 6813 |
+
"node_modules/styled-components/node_modules/tslib": {
|
| 6814 |
+
"version": "2.5.0",
|
| 6815 |
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
| 6816 |
+
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
|
| 6817 |
+
},
|
| 6818 |
"node_modules/styled-jsx": {
|
| 6819 |
"version": "5.1.1",
|
| 6820 |
"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
|
|
|
|
| 6838 |
}
|
| 6839 |
},
|
| 6840 |
"node_modules/stylis": {
|
| 6841 |
+
"version": "4.3.1",
|
| 6842 |
+
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
|
| 6843 |
+
"integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ=="
|
| 6844 |
},
|
| 6845 |
"node_modules/sucrase": {
|
| 6846 |
+
"version": "3.35.0",
|
| 6847 |
+
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
| 6848 |
+
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
|
| 6849 |
"dependencies": {
|
| 6850 |
"@jridgewell/gen-mapping": "^0.3.2",
|
| 6851 |
"commander": "^4.0.0",
|
| 6852 |
+
"glob": "^10.3.10",
|
| 6853 |
"lines-and-columns": "^1.1.6",
|
| 6854 |
"mz": "^2.7.0",
|
| 6855 |
"pirates": "^4.0.1",
|
|
|
|
| 6860 |
"sucrase-node": "bin/sucrase-node"
|
| 6861 |
},
|
| 6862 |
"engines": {
|
| 6863 |
+
"node": ">=16 || 14 >=14.17"
|
| 6864 |
+
}
|
| 6865 |
+
},
|
| 6866 |
+
"node_modules/sucrase/node_modules/brace-expansion": {
|
| 6867 |
+
"version": "2.0.1",
|
| 6868 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
| 6869 |
+
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
| 6870 |
+
"dependencies": {
|
| 6871 |
+
"balanced-match": "^1.0.0"
|
| 6872 |
}
|
| 6873 |
},
|
| 6874 |
"node_modules/sucrase/node_modules/glob": {
|
| 6875 |
+
"version": "10.3.10",
|
| 6876 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
| 6877 |
+
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
|
| 6878 |
"dependencies": {
|
| 6879 |
+
"foreground-child": "^3.1.0",
|
| 6880 |
+
"jackspeak": "^2.3.5",
|
| 6881 |
+
"minimatch": "^9.0.1",
|
| 6882 |
+
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
|
| 6883 |
+
"path-scurry": "^1.10.1"
|
| 6884 |
+
},
|
| 6885 |
+
"bin": {
|
| 6886 |
+
"glob": "dist/esm/bin.mjs"
|
| 6887 |
},
|
| 6888 |
"engines": {
|
| 6889 |
+
"node": ">=16 || 14 >=14.17"
|
| 6890 |
+
},
|
| 6891 |
+
"funding": {
|
| 6892 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 6893 |
+
}
|
| 6894 |
+
},
|
| 6895 |
+
"node_modules/sucrase/node_modules/minimatch": {
|
| 6896 |
+
"version": "9.0.3",
|
| 6897 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
|
| 6898 |
+
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
| 6899 |
+
"dependencies": {
|
| 6900 |
+
"brace-expansion": "^2.0.1"
|
| 6901 |
+
},
|
| 6902 |
+
"engines": {
|
| 6903 |
+
"node": ">=16 || 14 >=14.17"
|
| 6904 |
},
|
| 6905 |
"funding": {
|
| 6906 |
"url": "https://github.com/sponsors/isaacs"
|
|
|
|
| 6929 |
}
|
| 6930 |
},
|
| 6931 |
"node_modules/tailwind-merge": {
|
| 6932 |
+
"version": "2.2.0",
|
| 6933 |
+
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.2.0.tgz",
|
| 6934 |
+
"integrity": "sha512-SqqhhaL0T06SW59+JVNfAqKdqLs0497esifRrZ7jOaefP3o64fdFNDMrAQWZFMxTLJPiHVjRLUywT8uFz1xNWQ==",
|
| 6935 |
"dependencies": {
|
| 6936 |
"@babel/runtime": "^7.23.5"
|
| 6937 |
},
|
|
|
|
| 7176 |
}
|
| 7177 |
},
|
| 7178 |
"node_modules/type-fest": {
|
| 7179 |
+
"version": "4.9.0",
|
| 7180 |
+
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz",
|
| 7181 |
+
"integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==",
|
| 7182 |
"engines": {
|
| 7183 |
"node": ">=16"
|
| 7184 |
},
|
|
|
|
| 7311 |
}
|
| 7312 |
},
|
| 7313 |
"node_modules/use-callback-ref": {
|
| 7314 |
+
"version": "1.3.1",
|
| 7315 |
+
"resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz",
|
| 7316 |
+
"integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==",
|
| 7317 |
"dependencies": {
|
| 7318 |
"tslib": "^2.0.0"
|
| 7319 |
},
|
|
|
|
| 7360 |
}
|
| 7361 |
},
|
| 7362 |
"node_modules/usehooks-ts": {
|
| 7363 |
+
"version": "2.9.2",
|
| 7364 |
+
"resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-2.9.2.tgz",
|
| 7365 |
+
"integrity": "sha512-fOzPeG01rs51CGYzqgioP/zs9v1Cgpe+zcXeqJPlDHYfdfG/wjsdjBWHJi+Ph1JgQAGUrDo5sJbPlaZd+Z9lxw==",
|
| 7366 |
+
"hasInstallScript": true,
|
| 7367 |
"engines": {
|
| 7368 |
+
"node": ">=16.15.0"
|
|
|
|
| 7369 |
},
|
| 7370 |
"peerDependencies": {
|
| 7371 |
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
|
|
| 7492 |
"url": "https://github.com/sponsors/ljharb"
|
| 7493 |
}
|
| 7494 |
},
|
| 7495 |
+
"node_modules/wrap-ansi": {
|
| 7496 |
+
"version": "8.1.0",
|
| 7497 |
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
| 7498 |
+
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
| 7499 |
+
"dependencies": {
|
| 7500 |
+
"ansi-styles": "^6.1.0",
|
| 7501 |
+
"string-width": "^5.0.1",
|
| 7502 |
+
"strip-ansi": "^7.0.1"
|
| 7503 |
+
},
|
| 7504 |
+
"engines": {
|
| 7505 |
+
"node": ">=12"
|
| 7506 |
+
},
|
| 7507 |
+
"funding": {
|
| 7508 |
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 7509 |
+
}
|
| 7510 |
+
},
|
| 7511 |
+
"node_modules/wrap-ansi-cjs": {
|
| 7512 |
+
"name": "wrap-ansi",
|
| 7513 |
+
"version": "7.0.0",
|
| 7514 |
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
| 7515 |
+
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
| 7516 |
+
"dependencies": {
|
| 7517 |
+
"ansi-styles": "^4.0.0",
|
| 7518 |
+
"string-width": "^4.1.0",
|
| 7519 |
+
"strip-ansi": "^6.0.0"
|
| 7520 |
+
},
|
| 7521 |
+
"engines": {
|
| 7522 |
+
"node": ">=10"
|
| 7523 |
+
},
|
| 7524 |
+
"funding": {
|
| 7525 |
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 7526 |
+
}
|
| 7527 |
+
},
|
| 7528 |
+
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
|
| 7529 |
+
"version": "8.0.0",
|
| 7530 |
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 7531 |
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
|
| 7532 |
+
},
|
| 7533 |
+
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
|
| 7534 |
+
"version": "4.2.3",
|
| 7535 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 7536 |
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
| 7537 |
+
"dependencies": {
|
| 7538 |
+
"emoji-regex": "^8.0.0",
|
| 7539 |
+
"is-fullwidth-code-point": "^3.0.0",
|
| 7540 |
+
"strip-ansi": "^6.0.1"
|
| 7541 |
+
},
|
| 7542 |
+
"engines": {
|
| 7543 |
+
"node": ">=8"
|
| 7544 |
+
}
|
| 7545 |
+
},
|
| 7546 |
+
"node_modules/wrap-ansi/node_modules/ansi-regex": {
|
| 7547 |
+
"version": "6.0.1",
|
| 7548 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
| 7549 |
+
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
|
| 7550 |
+
"engines": {
|
| 7551 |
+
"node": ">=12"
|
| 7552 |
+
},
|
| 7553 |
+
"funding": {
|
| 7554 |
+
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
|
| 7555 |
+
}
|
| 7556 |
+
},
|
| 7557 |
+
"node_modules/wrap-ansi/node_modules/ansi-styles": {
|
| 7558 |
+
"version": "6.2.1",
|
| 7559 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
|
| 7560 |
+
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
|
| 7561 |
+
"engines": {
|
| 7562 |
+
"node": ">=12"
|
| 7563 |
+
},
|
| 7564 |
+
"funding": {
|
| 7565 |
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
| 7566 |
+
}
|
| 7567 |
+
},
|
| 7568 |
+
"node_modules/wrap-ansi/node_modules/strip-ansi": {
|
| 7569 |
+
"version": "7.1.0",
|
| 7570 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
|
| 7571 |
+
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
|
| 7572 |
+
"dependencies": {
|
| 7573 |
+
"ansi-regex": "^6.0.1"
|
| 7574 |
+
},
|
| 7575 |
+
"engines": {
|
| 7576 |
+
"node": ">=12"
|
| 7577 |
+
},
|
| 7578 |
+
"funding": {
|
| 7579 |
+
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
| 7580 |
+
}
|
| 7581 |
+
},
|
| 7582 |
"node_modules/wrappy": {
|
| 7583 |
"version": "1.0.2",
|
| 7584 |
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
package.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
| 9 |
"lint": "next lint"
|
| 10 |
},
|
| 11 |
"dependencies": {
|
|
|
|
| 12 |
"@huggingface/inference": "^2.6.4",
|
| 13 |
"@photo-sphere-viewer/core": "^5.5.1",
|
| 14 |
"@photo-sphere-viewer/video-plugin": "^5.5.1",
|
|
|
|
| 9 |
"lint": "next lint"
|
| 10 |
},
|
| 11 |
"dependencies": {
|
| 12 |
+
"@huggingface/hub": "0.12.3-oauth",
|
| 13 |
"@huggingface/inference": "^2.6.4",
|
| 14 |
"@photo-sphere-viewer/core": "^5.5.1",
|
| 15 |
"@photo-sphere-viewer/video-plugin": "^5.5.1",
|
src/app/interface/hf-login/index.tsx
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use client"
|
| 2 |
+
|
| 3 |
+
import { useCurrentUser } from "@/app/state/userCurrentUser"
|
| 4 |
+
import { Button } from "@/components/ui/button"
|
| 5 |
+
import { useHuggingFaceLogin } from "@/lib/useHuggingFaceLogin"
|
| 6 |
+
|
| 7 |
+
export function HuggingFaceLogin() {
|
| 8 |
+
|
| 9 |
+
const user = useCurrentUser()
|
| 10 |
+
const hf = useHuggingFaceLogin()
|
| 11 |
+
|
| 12 |
+
// feature is not finished yet
|
| 13 |
+
if (user?.userName !== "Julian Bilcke") { return }
|
| 14 |
+
|
| 15 |
+
console.log("user:", user)
|
| 16 |
+
console.log("hf.isLoggedIn:", hf.isLoggedIn)
|
| 17 |
+
console.log("hf.oauthResult:", hf.oauthResult)
|
| 18 |
+
|
| 19 |
+
return (
|
| 20 |
+
<div><Button onClick={hf.login}>Click me</Button></div>
|
| 21 |
+
)
|
| 22 |
+
}
|
src/app/main.tsx
CHANGED
|
@@ -16,6 +16,8 @@ import { PublicMusicVideosView } from "./views/public-music-videos-view"
|
|
| 16 |
import { getCollectionKey } from "@/lib/getCollectionKey"
|
| 17 |
import { PublicVideoEmbedView } from "./views/public-video-embed-view"
|
| 18 |
|
|
|
|
|
|
|
| 19 |
// this is where we transition from the server-side space
|
| 20 |
// and the client-side space
|
| 21 |
// basically, all the views are generated in client-side space
|
|
@@ -136,9 +138,9 @@ export function Main({
|
|
| 136 |
|
| 137 |
|
| 138 |
const view = useStore(s => s.view)
|
| 139 |
-
|
| 140 |
return (
|
| 141 |
<TubeLayout>
|
|
|
|
| 142 |
{view === "home" && <HomeView />}
|
| 143 |
{view === "public_video_embed" && <PublicVideoEmbedView />}
|
| 144 |
{view === "public_video" && <PublicVideoView />}
|
|
|
|
| 16 |
import { getCollectionKey } from "@/lib/getCollectionKey"
|
| 17 |
import { PublicVideoEmbedView } from "./views/public-video-embed-view"
|
| 18 |
|
| 19 |
+
import { HuggingFaceLogin } from "./interface/hf-login"
|
| 20 |
+
|
| 21 |
// this is where we transition from the server-side space
|
| 22 |
// and the client-side space
|
| 23 |
// basically, all the views are generated in client-side space
|
|
|
|
| 138 |
|
| 139 |
|
| 140 |
const view = useStore(s => s.view)
|
|
|
|
| 141 |
return (
|
| 142 |
<TubeLayout>
|
| 143 |
+
<HuggingFaceLogin />
|
| 144 |
{view === "home" && <HomeView />}
|
| 145 |
{view === "public_video_embed" && <PublicVideoEmbedView />}
|
| 146 |
{view === "public_video" && <PublicVideoView />}
|
src/app/server/actions/ai-tube-hf/downloadClapProject.ts
CHANGED
|
@@ -37,8 +37,8 @@ export async function downloadClapProject({
|
|
| 37 |
|
| 38 |
const clapProject = await parseClap(clapString)
|
| 39 |
|
| 40 |
-
const id = uuidv4()
|
| 41 |
-
|
| 42 |
const videoRequest: VideoRequest = {
|
| 43 |
id,
|
| 44 |
label: clapProject.meta.title || "Untitled",
|
|
|
|
| 37 |
|
| 38 |
const clapProject = await parseClap(clapString)
|
| 39 |
|
| 40 |
+
const id = clapProject.meta.id || uuidv4()
|
| 41 |
+
|
| 42 |
const videoRequest: VideoRequest = {
|
| 43 |
id,
|
| 44 |
label: clapProject.meta.title || "Untitled",
|
src/app/views/public-video-view/index.tsx
CHANGED
|
@@ -24,11 +24,12 @@ import { ReportModal } from "../report-modal"
|
|
| 24 |
import { formatLargeNumber } from "@/lib/formatLargeNumber"
|
| 25 |
import { CommentList } from "@/app/interface/comment-list"
|
| 26 |
import { Input } from "@/components/ui/input"
|
| 27 |
-
|
| 28 |
import { localStorageKeys } from "@/app/state/localStorageKeys"
|
| 29 |
import { defaultSettings } from "@/app/state/defaultSettings"
|
| 30 |
import { getComments, submitComment } from "@/app/server/actions/comments"
|
| 31 |
import { useCurrentUser } from "@/app/state/userCurrentUser"
|
|
|
|
| 32 |
|
| 33 |
export function PublicVideoView() {
|
| 34 |
const [_pending, startTransition] = useTransition()
|
|
|
|
| 24 |
import { formatLargeNumber } from "@/lib/formatLargeNumber"
|
| 25 |
import { CommentList } from "@/app/interface/comment-list"
|
| 26 |
import { Input } from "@/components/ui/input"
|
| 27 |
+
|
| 28 |
import { localStorageKeys } from "@/app/state/localStorageKeys"
|
| 29 |
import { defaultSettings } from "@/app/state/defaultSettings"
|
| 30 |
import { getComments, submitComment } from "@/app/server/actions/comments"
|
| 31 |
import { useCurrentUser } from "@/app/state/userCurrentUser"
|
| 32 |
+
import { useLocalStorage } from "usehooks-ts"
|
| 33 |
|
| 34 |
export function PublicVideoView() {
|
| 35 |
const [_pending, startTransition] = useTransition()
|
src/huggingface/hub/src/lib/index.ts
CHANGED
|
@@ -10,6 +10,8 @@ export * from "./list-datasets";
|
|
| 10 |
export * from "./list-files";
|
| 11 |
export * from "./list-models";
|
| 12 |
export * from "./list-spaces";
|
|
|
|
|
|
|
| 13 |
export * from "./parse-safetensors-metadata";
|
| 14 |
export * from "./upload-file";
|
| 15 |
export * from "./upload-files";
|
|
|
|
| 10 |
export * from "./list-files";
|
| 11 |
export * from "./list-models";
|
| 12 |
export * from "./list-spaces";
|
| 13 |
+
export * from "./oauth-handle-redirect";
|
| 14 |
+
export * from "./oauth-login-url";
|
| 15 |
export * from "./parse-safetensors-metadata";
|
| 16 |
export * from "./upload-file";
|
| 17 |
export * from "./upload-files";
|
src/huggingface/hub/src/lib/oauth-handle-redirect.ts
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { HUB_URL } from "../consts";
|
| 2 |
+
import { createApiError } from "../error";
|
| 3 |
+
|
| 4 |
+
export interface OAuthResult {
|
| 5 |
+
accessToken: string;
|
| 6 |
+
accessTokenExpiresAt: Date;
|
| 7 |
+
userInfo: {
|
| 8 |
+
id: string;
|
| 9 |
+
name: string;
|
| 10 |
+
fullname: string;
|
| 11 |
+
email?: string;
|
| 12 |
+
emailVerified?: boolean;
|
| 13 |
+
avatarUrl: string;
|
| 14 |
+
websiteUrl?: string;
|
| 15 |
+
isPro: boolean;
|
| 16 |
+
orgs: Array<{
|
| 17 |
+
name: string;
|
| 18 |
+
isEnterprise: boolean;
|
| 19 |
+
}>;
|
| 20 |
+
};
|
| 21 |
+
/**
|
| 22 |
+
* State passed to the OAuth provider in the original request to the OAuth provider.
|
| 23 |
+
*/
|
| 24 |
+
state?: string;
|
| 25 |
+
/**
|
| 26 |
+
* Granted scope
|
| 27 |
+
*/
|
| 28 |
+
scope: string;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
/**
|
| 32 |
+
* To call after the OAuth provider redirects back to the app.
|
| 33 |
+
*
|
| 34 |
+
* There is also a helper function {@link oauthHandleRedirectIfPresent}, which will call `oauthHandleRedirect` if the URL contains an oauth code
|
| 35 |
+
* in the query parameters and return `false` otherwise.
|
| 36 |
+
*/
|
| 37 |
+
export async function oauthHandleRedirect(opts?: { hubUrl?: string }): Promise<OAuthResult> {
|
| 38 |
+
if (typeof window === "undefined") {
|
| 39 |
+
throw new Error("oauthHandleRedirect is only available in the browser");
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
const searchParams = new URLSearchParams(window.location.search);
|
| 43 |
+
|
| 44 |
+
const [error, errorDescription] = [searchParams.get("error"), searchParams.get("error_description")];
|
| 45 |
+
|
| 46 |
+
if (error) {
|
| 47 |
+
throw new Error(`${error}: ${errorDescription}`);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
const code = searchParams.get("code");
|
| 51 |
+
const nonce = localStorage.getItem("huggingface.co:oauth:nonce");
|
| 52 |
+
|
| 53 |
+
if (!code) {
|
| 54 |
+
throw new Error("Missing oauth code from query parameters in redirected URL");
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
if (!nonce) {
|
| 58 |
+
throw new Error("Missing oauth nonce from localStorage");
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
const codeVerifier = localStorage.getItem("huggingface.co:oauth:code_verifier");
|
| 62 |
+
|
| 63 |
+
if (!codeVerifier) {
|
| 64 |
+
throw new Error("Missing oauth code_verifier from localStorage");
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
const state = searchParams.get("state");
|
| 68 |
+
|
| 69 |
+
if (!state) {
|
| 70 |
+
throw new Error("Missing oauth state from query parameters in redirected URL");
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
let parsedState: { nonce: string; redirectUri: string; state?: string };
|
| 74 |
+
|
| 75 |
+
try {
|
| 76 |
+
parsedState = JSON.parse(state);
|
| 77 |
+
} catch {
|
| 78 |
+
throw new Error("Invalid oauth state in redirected URL, unable to parse JSON: " + state);
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
if (parsedState.nonce !== nonce) {
|
| 82 |
+
throw new Error("Invalid oauth state in redirected URL");
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
const hubUrl = opts?.hubUrl || HUB_URL;
|
| 86 |
+
|
| 87 |
+
const openidConfigUrl = `${new URL(hubUrl).origin}/.well-known/openid-configuration`;
|
| 88 |
+
const openidConfigRes = await fetch(openidConfigUrl, {
|
| 89 |
+
headers: {
|
| 90 |
+
Accept: "application/json",
|
| 91 |
+
},
|
| 92 |
+
});
|
| 93 |
+
|
| 94 |
+
if (!openidConfigRes.ok) {
|
| 95 |
+
throw await createApiError(openidConfigRes);
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
const opendidConfig: {
|
| 99 |
+
authorization_endpoint: string;
|
| 100 |
+
token_endpoint: string;
|
| 101 |
+
userinfo_endpoint: string;
|
| 102 |
+
} = await openidConfigRes.json();
|
| 103 |
+
|
| 104 |
+
const tokenRes = await fetch(opendidConfig.token_endpoint, {
|
| 105 |
+
method: "POST",
|
| 106 |
+
headers: {
|
| 107 |
+
"Content-Type": "application/x-www-form-urlencoded",
|
| 108 |
+
},
|
| 109 |
+
body: new URLSearchParams({
|
| 110 |
+
grant_type: "authorization_code",
|
| 111 |
+
code,
|
| 112 |
+
redirect_uri: parsedState.redirectUri,
|
| 113 |
+
code_verifier: codeVerifier,
|
| 114 |
+
}).toString(),
|
| 115 |
+
});
|
| 116 |
+
|
| 117 |
+
localStorage.removeItem("huggingface.co:oauth:code_verifier");
|
| 118 |
+
localStorage.removeItem("huggingface.co:oauth:nonce");
|
| 119 |
+
|
| 120 |
+
if (!tokenRes.ok) {
|
| 121 |
+
throw await createApiError(tokenRes);
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
const token: {
|
| 125 |
+
access_token: string;
|
| 126 |
+
expires_in: number;
|
| 127 |
+
id_token: string;
|
| 128 |
+
// refresh_token: string;
|
| 129 |
+
scope: string;
|
| 130 |
+
token_type: string;
|
| 131 |
+
} = await tokenRes.json();
|
| 132 |
+
|
| 133 |
+
const accessTokenExpiresAt = new Date(Date.now() + token.expires_in * 1000);
|
| 134 |
+
|
| 135 |
+
const userInfoRes = await fetch(opendidConfig.userinfo_endpoint, {
|
| 136 |
+
headers: {
|
| 137 |
+
Authorization: `Bearer ${token.access_token}`,
|
| 138 |
+
},
|
| 139 |
+
});
|
| 140 |
+
|
| 141 |
+
if (!userInfoRes.ok) {
|
| 142 |
+
throw await createApiError(userInfoRes);
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
const userInfo: {
|
| 146 |
+
sub: string;
|
| 147 |
+
name: string;
|
| 148 |
+
preferred_username: string;
|
| 149 |
+
email_verified?: boolean;
|
| 150 |
+
email?: string;
|
| 151 |
+
picture: string;
|
| 152 |
+
website?: string;
|
| 153 |
+
isPro: boolean;
|
| 154 |
+
orgs?: Array<{
|
| 155 |
+
name: string;
|
| 156 |
+
isEnterprise: boolean;
|
| 157 |
+
}>;
|
| 158 |
+
} = await userInfoRes.json();
|
| 159 |
+
|
| 160 |
+
return {
|
| 161 |
+
accessToken: token.access_token,
|
| 162 |
+
accessTokenExpiresAt,
|
| 163 |
+
userInfo: {
|
| 164 |
+
id: userInfo.sub,
|
| 165 |
+
name: userInfo.name,
|
| 166 |
+
fullname: userInfo.preferred_username,
|
| 167 |
+
email: userInfo.email,
|
| 168 |
+
emailVerified: userInfo.email_verified,
|
| 169 |
+
avatarUrl: userInfo.picture,
|
| 170 |
+
websiteUrl: userInfo.website,
|
| 171 |
+
isPro: userInfo.isPro,
|
| 172 |
+
orgs: userInfo.orgs || [],
|
| 173 |
+
},
|
| 174 |
+
state: parsedState.state,
|
| 175 |
+
scope: token.scope,
|
| 176 |
+
};
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
// if (code && !nonce) {
|
| 180 |
+
// console.warn("Missing oauth nonce from localStorage");
|
| 181 |
+
// }
|
| 182 |
+
|
| 183 |
+
/**
|
| 184 |
+
* To call after the OAuth provider redirects back to the app.
|
| 185 |
+
*
|
| 186 |
+
* It returns false if the URL does not contain an oauth code in the query parameters, otherwise
|
| 187 |
+
* it calls {@link oauthHandleRedirect}.
|
| 188 |
+
*
|
| 189 |
+
* Depending on your app, you may want to call {@link oauthHandleRedirect} directly instead.
|
| 190 |
+
*/
|
| 191 |
+
export async function oauthHandleRedirectIfPresent(opts?: { hubUrl?: string }): Promise<OAuthResult | false> {
|
| 192 |
+
if (typeof window === "undefined") {
|
| 193 |
+
throw new Error("oauthHandleRedirect is only available in the browser");
|
| 194 |
+
}
|
| 195 |
+
|
| 196 |
+
const searchParams = new URLSearchParams(window.location.search);
|
| 197 |
+
|
| 198 |
+
if (searchParams.has("error")) {
|
| 199 |
+
return oauthHandleRedirect(opts);
|
| 200 |
+
}
|
| 201 |
+
|
| 202 |
+
if (searchParams.has("code")) {
|
| 203 |
+
if (!localStorage.getItem("huggingface.co:oauth:nonce")) {
|
| 204 |
+
console.warn(
|
| 205 |
+
"Missing oauth nonce from localStorage. This can happen when the user refreshes the page after logging in, without changing the URL."
|
| 206 |
+
);
|
| 207 |
+
return false;
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
return oauthHandleRedirect(opts);
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
return false;
|
| 214 |
+
}
|
src/huggingface/hub/src/lib/oauth-login-url.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { base64FromBytes } from "../../../shared/base64FromBytes";
|
| 2 |
+
import { HUB_URL } from "../consts";
|
| 3 |
+
import { createApiError } from "../error";
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Use "Sign in with Hub" to authenticate a user, and get oauth user info / access token.
|
| 7 |
+
*
|
| 8 |
+
* Returns an url to redirect to. After the user is redirected back to your app, call `oauthHandleRedirect` to get the oauth user info / access token.
|
| 9 |
+
*
|
| 10 |
+
* When called from inside a static Space with OAuth enabled, it will load the config from the space, otherwise you need to at least specify
|
| 11 |
+
* the client ID of your OAuth App.
|
| 12 |
+
*
|
| 13 |
+
* @example
|
| 14 |
+
* ```ts
|
| 15 |
+
* import { oauthLoginUrl, oauthHandleRedirectIfPresent } from "@huggingface/hub";
|
| 16 |
+
*
|
| 17 |
+
* const oauthResult = await oauthHandleRedirectIfPresent();
|
| 18 |
+
*
|
| 19 |
+
* if (!oauthResult) {
|
| 20 |
+
* // If the user is not logged in, redirect to the login page
|
| 21 |
+
* window.location.href = await oauthLoginUrl();
|
| 22 |
+
* }
|
| 23 |
+
*
|
| 24 |
+
* // You can use oauthResult.accessToken, oauthResult.accessTokenExpiresAt and oauthResult.userInfo
|
| 25 |
+
* console.log(oauthResult);
|
| 26 |
+
* ```
|
| 27 |
+
*
|
| 28 |
+
* (Theoretically, this function could be used to authenticate a user for any OAuth provider supporting PKCE and OpenID Connect by changing `hubUrl`,
|
| 29 |
+
* but it is currently only tested with the Hugging Face Hub.)
|
| 30 |
+
*/
|
| 31 |
+
export async function oauthLoginUrl(opts?: {
|
| 32 |
+
/**
|
| 33 |
+
* OAuth client ID.
|
| 34 |
+
*
|
| 35 |
+
* For static Spaces, you can omit this and it will be loaded from the Space config, as long as `hf_oauth: true` is present in the README.md's metadata.
|
| 36 |
+
* For other Spaces, it is available to the backend in the OAUTH_CLIENT_ID environment variable, as long as `hf_oauth: true` is present in the README.md's metadata.
|
| 37 |
+
*
|
| 38 |
+
* You can also create a Developer Application at https://huggingface.co/settings/connected-applications and use its client ID.
|
| 39 |
+
*/
|
| 40 |
+
clientId?: string;
|
| 41 |
+
hubUrl?: string;
|
| 42 |
+
/**
|
| 43 |
+
* OAuth scope, a list of space separate scopes.
|
| 44 |
+
*
|
| 45 |
+
* For static Spaces, you can omit this and it will be loaded from the Space config, as long as `hf_oauth: true` is present in the README.md's metadata.
|
| 46 |
+
* For other Spaces, it is available to the backend in the OAUTH_SCOPES environment variable, as long as `hf_oauth: true` is present in the README.md's metadata.
|
| 47 |
+
*
|
| 48 |
+
* Defaults to "openid profile".
|
| 49 |
+
*
|
| 50 |
+
* You can also create a Developer Application at https://huggingface.co/settings/connected-applications and use its scopes.
|
| 51 |
+
*
|
| 52 |
+
* See https://huggingface.co/docs/hub/oauth for a list of available scopes.
|
| 53 |
+
*/
|
| 54 |
+
scopes?: string;
|
| 55 |
+
/**
|
| 56 |
+
* Redirect URI, defaults to the current URL.
|
| 57 |
+
*
|
| 58 |
+
* For Spaces, any URL within the Space is allowed.
|
| 59 |
+
*
|
| 60 |
+
* For Developer Applications, you can add any URL you want to the list of allowed redirect URIs at https://huggingface.co/settings/connected-applications.
|
| 61 |
+
*/
|
| 62 |
+
redirectUrl?: string;
|
| 63 |
+
/**
|
| 64 |
+
* State to pass to the OAuth provider, which will be returned in the call to `oauthLogin` after the redirect.
|
| 65 |
+
*/
|
| 66 |
+
state?: string;
|
| 67 |
+
}): Promise<string> {
|
| 68 |
+
if (typeof window === "undefined") {
|
| 69 |
+
throw new Error("oauthLogin is only available in the browser");
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
const hubUrl = opts?.hubUrl || HUB_URL;
|
| 73 |
+
const openidConfigUrl = `${new URL(hubUrl).origin}/.well-known/openid-configuration`;
|
| 74 |
+
const openidConfigRes = await fetch(openidConfigUrl, {
|
| 75 |
+
headers: {
|
| 76 |
+
Accept: "application/json",
|
| 77 |
+
},
|
| 78 |
+
});
|
| 79 |
+
|
| 80 |
+
if (!openidConfigRes.ok) {
|
| 81 |
+
throw await createApiError(openidConfigRes);
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
const opendidConfig: {
|
| 85 |
+
authorization_endpoint: string;
|
| 86 |
+
token_endpoint: string;
|
| 87 |
+
userinfo_endpoint: string;
|
| 88 |
+
} = await openidConfigRes.json();
|
| 89 |
+
|
| 90 |
+
const newNonce = crypto.randomUUID();
|
| 91 |
+
// Two random UUIDs concatenated together, because min length is 43 and max length is 128
|
| 92 |
+
const newCodeVerifier = crypto.randomUUID() + crypto.randomUUID();
|
| 93 |
+
|
| 94 |
+
localStorage.setItem("huggingface.co:oauth:nonce", newNonce);
|
| 95 |
+
localStorage.setItem("huggingface.co:oauth:code_verifier", newCodeVerifier);
|
| 96 |
+
|
| 97 |
+
const redirectUri = opts?.redirectUrl || window.location.href;
|
| 98 |
+
const state = JSON.stringify({
|
| 99 |
+
nonce: newNonce,
|
| 100 |
+
redirectUri,
|
| 101 |
+
state: opts?.state,
|
| 102 |
+
});
|
| 103 |
+
|
| 104 |
+
// @ts-expect-error window.huggingface is defined inside static Spaces.
|
| 105 |
+
const variables: Record<string, string> | null = window?.huggingface?.variables ?? null;
|
| 106 |
+
|
| 107 |
+
const clientId = opts?.clientId || variables?.OAUTH_CLIENT_ID;
|
| 108 |
+
|
| 109 |
+
if (!clientId) {
|
| 110 |
+
if (variables) {
|
| 111 |
+
throw new Error("Missing clientId, please add hf_oauth: true to the README.md's metadata in your static Space");
|
| 112 |
+
}
|
| 113 |
+
throw new Error("Missing clientId");
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
const challenge = base64FromBytes(
|
| 117 |
+
new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256", new TextEncoder().encode(newCodeVerifier)))
|
| 118 |
+
)
|
| 119 |
+
.replace(/[+]/g, "-")
|
| 120 |
+
.replace(/[/]/g, "_")
|
| 121 |
+
.replace(/=/g, "");
|
| 122 |
+
|
| 123 |
+
return `${opendidConfig.authorization_endpoint}?${new URLSearchParams({
|
| 124 |
+
client_id: clientId,
|
| 125 |
+
scope: opts?.scopes || "openid profile",
|
| 126 |
+
response_type: "code",
|
| 127 |
+
redirect_uri: redirectUri,
|
| 128 |
+
state,
|
| 129 |
+
code_challenge: challenge,
|
| 130 |
+
code_challenge_method: "S256",
|
| 131 |
+
}).toString()}`;
|
| 132 |
+
}
|
src/lib/useHuggingFaceLogin.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useEffect, useState } from "react"
|
| 2 |
+
|
| 3 |
+
import { oauthHandleRedirectIfPresent, oauthLoginUrl } from "@huggingface/hub"
|
| 4 |
+
|
| 5 |
+
export function useHuggingFaceLogin(onLogin?: (data: any) => void) {
|
| 6 |
+
const [isLoggedIn, setLoggedIn] = useState(false)
|
| 7 |
+
const [oauthResult, setOauthResult] = useState<any>({})
|
| 8 |
+
|
| 9 |
+
useEffect(() => {
|
| 10 |
+
const fn = async () => {
|
| 11 |
+
const res = await oauthHandleRedirectIfPresent()
|
| 12 |
+
if (res) {
|
| 13 |
+
setOauthResult(res)
|
| 14 |
+
setLoggedIn(true)
|
| 15 |
+
onLogin?.(res)
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
fn()
|
| 19 |
+
}, [])
|
| 20 |
+
|
| 21 |
+
const login = async () => {
|
| 22 |
+
window.location.href = await oauthLoginUrl()
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
console.log(JSON.stringify(oauthResult, null, 2))
|
| 26 |
+
|
| 27 |
+
return {
|
| 28 |
+
isLoggedIn,
|
| 29 |
+
login,
|
| 30 |
+
oauthResult,
|
| 31 |
+
}
|
| 32 |
+
}
|