Spaces:
Running
Running
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 |
+
}
|