Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
·
6a2e106
1
Parent(s):
5b3357c
update VideoChain API.. it has been a long time
Browse files- .nvmrc +1 -1
- package-lock.json +278 -195
- src/production/renderVideo.mts +21 -41
- src/providers/video-generation/addBase64HeaderToMp4.mts +14 -0
- src/providers/video-generation/generateVideoWithAnimateLCM.mts +164 -0
- src/types.mts +22 -0
- src/utils/misc/getHuggingFaceSpaceStatus.mts +114 -0
- src/utils/misc/makeSureSpaceIsRunning.mts +77 -0
- src/utils/misc/tryApiCall.mts +54 -0
.nvmrc
CHANGED
@@ -1 +1 @@
|
|
1 |
-
|
|
|
1 |
+
v20.10.0
|
package-lock.json
CHANGED
@@ -38,11 +38,11 @@
|
|
38 |
}
|
39 |
},
|
40 |
"node_modules/@babel/code-frame": {
|
41 |
-
"version": "7.
|
42 |
-
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.
|
43 |
-
"integrity": "sha512-
|
44 |
"dependencies": {
|
45 |
-
"@babel/highlight": "^7.
|
46 |
"chalk": "^2.4.2"
|
47 |
},
|
48 |
"engines": {
|
@@ -58,9 +58,9 @@
|
|
58 |
}
|
59 |
},
|
60 |
"node_modules/@babel/highlight": {
|
61 |
-
"version": "7.
|
62 |
-
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.
|
63 |
-
"integrity": "sha512-
|
64 |
"dependencies": {
|
65 |
"@babel/helper-validator-identifier": "^7.22.20",
|
66 |
"chalk": "^2.4.2",
|
@@ -215,9 +215,9 @@
|
|
215 |
}
|
216 |
},
|
217 |
"node_modules/@npmcli/fs/node_modules/semver": {
|
218 |
-
"version": "7.
|
219 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.
|
220 |
-
"integrity": "sha512-
|
221 |
"dependencies": {
|
222 |
"lru-cache": "^6.0.0"
|
223 |
},
|
@@ -242,9 +242,9 @@
|
|
242 |
}
|
243 |
},
|
244 |
"node_modules/@puppeteer/browsers": {
|
245 |
-
"version": "1.
|
246 |
-
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.
|
247 |
-
"integrity": "sha512-
|
248 |
"dependencies": {
|
249 |
"debug": "4.3.4",
|
250 |
"extract-zip": "2.0.1",
|
@@ -293,9 +293,9 @@
|
|
293 |
}
|
294 |
},
|
295 |
"node_modules/@puppeteer/browsers/node_modules/tar-stream": {
|
296 |
-
"version": "3.1.
|
297 |
-
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.
|
298 |
-
"integrity": "sha512-
|
299 |
"dependencies": {
|
300 |
"b4a": "^1.6.4",
|
301 |
"fast-fifo": "^1.2.0",
|
@@ -364,9 +364,9 @@
|
|
364 |
}
|
365 |
},
|
366 |
"node_modules/@types/express-serve-static-core": {
|
367 |
-
"version": "4.17.
|
368 |
-
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.
|
369 |
-
"integrity": "sha512-
|
370 |
"dependencies": {
|
371 |
"@types/node": "*",
|
372 |
"@types/qs": "*",
|
@@ -375,9 +375,9 @@
|
|
375 |
}
|
376 |
},
|
377 |
"node_modules/@types/ffmpeg-concat": {
|
378 |
-
"version": "1.1.
|
379 |
-
"resolved": "https://registry.npmjs.org/@types/ffmpeg-concat/-/ffmpeg-concat-1.1.
|
380 |
-
"integrity": "sha512-
|
381 |
},
|
382 |
"node_modules/@types/http-errors": {
|
383 |
"version": "2.0.4",
|
@@ -390,26 +390,26 @@
|
|
390 |
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
|
391 |
},
|
392 |
"node_modules/@types/node": {
|
393 |
-
"version": "20.
|
394 |
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.
|
395 |
-
"integrity": "sha512-
|
396 |
"dependencies": {
|
397 |
"undici-types": "~5.26.4"
|
398 |
}
|
399 |
},
|
400 |
"node_modules/@types/node-fetch": {
|
401 |
-
"version": "2.6.
|
402 |
-
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.
|
403 |
-
"integrity": "sha512-
|
404 |
"dependencies": {
|
405 |
"@types/node": "*",
|
406 |
"form-data": "^4.0.0"
|
407 |
}
|
408 |
},
|
409 |
"node_modules/@types/qs": {
|
410 |
-
"version": "6.9.
|
411 |
-
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.
|
412 |
-
"integrity": "sha512-
|
413 |
},
|
414 |
"node_modules/@types/range-parser": {
|
415 |
"version": "1.2.7",
|
@@ -436,9 +436,9 @@
|
|
436 |
}
|
437 |
},
|
438 |
"node_modules/@types/uuid": {
|
439 |
-
"version": "9.0.
|
440 |
-
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.
|
441 |
-
"integrity": "sha512-
|
442 |
},
|
443 |
"node_modules/@types/yauzl": {
|
444 |
"version": "2.10.3",
|
@@ -478,9 +478,9 @@
|
|
478 |
}
|
479 |
},
|
480 |
"node_modules/acorn": {
|
481 |
-
"version": "8.11.
|
482 |
-
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.
|
483 |
-
"integrity": "sha512-
|
484 |
"bin": {
|
485 |
"acorn": "bin/acorn"
|
486 |
},
|
@@ -489,9 +489,9 @@
|
|
489 |
}
|
490 |
},
|
491 |
"node_modules/acorn-walk": {
|
492 |
-
"version": "8.3.
|
493 |
-
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.
|
494 |
-
"integrity": "sha512-
|
495 |
"engines": {
|
496 |
"node": ">=0.4.0"
|
497 |
}
|
@@ -708,15 +708,48 @@
|
|
708 |
}
|
709 |
},
|
710 |
"node_modules/b4a": {
|
711 |
-
"version": "1.6.
|
712 |
-
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.
|
713 |
-
"integrity": "sha512-
|
714 |
},
|
715 |
"node_modules/balanced-match": {
|
716 |
"version": "1.0.2",
|
717 |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
718 |
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
719 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
720 |
"node_modules/base-64": {
|
721 |
"version": "0.1.0",
|
722 |
"resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
|
@@ -742,9 +775,9 @@
|
|
742 |
]
|
743 |
},
|
744 |
"node_modules/basic-ftp": {
|
745 |
-
"version": "5.0.
|
746 |
-
"resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.
|
747 |
-
"integrity": "sha512-
|
748 |
"engines": {
|
749 |
"node": ">=10.0.0"
|
750 |
}
|
@@ -964,13 +997,17 @@
|
|
964 |
}
|
965 |
},
|
966 |
"node_modules/call-bind": {
|
967 |
-
"version": "1.0.
|
968 |
-
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.
|
969 |
-
"integrity": "sha512-
|
970 |
"dependencies": {
|
|
|
971 |
"function-bind": "^1.1.2",
|
972 |
-
"get-intrinsic": "^1.2.
|
973 |
-
"set-function-length": "^1.
|
|
|
|
|
|
|
974 |
},
|
975 |
"funding": {
|
976 |
"url": "https://github.com/sponsors/ljharb"
|
@@ -1019,12 +1056,12 @@
|
|
1019 |
}
|
1020 |
},
|
1021 |
"node_modules/chromium-bidi": {
|
1022 |
-
"version": "0.
|
1023 |
-
"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.
|
1024 |
-
"integrity": "sha512-
|
1025 |
"dependencies": {
|
1026 |
"mitt": "3.0.1",
|
1027 |
-
"urlpattern-polyfill": "
|
1028 |
},
|
1029 |
"peerDependencies": {
|
1030 |
"devtools-protocol": "*"
|
@@ -1187,14 +1224,14 @@
|
|
1187 |
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
|
1188 |
},
|
1189 |
"node_modules/cosmiconfig": {
|
1190 |
-
"version": "
|
1191 |
-
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-
|
1192 |
-
"integrity": "sha512-
|
1193 |
"dependencies": {
|
|
|
1194 |
"import-fresh": "^3.3.0",
|
1195 |
"js-yaml": "^4.1.0",
|
1196 |
-
"parse-json": "^5.2.0"
|
1197 |
-
"path-type": "^4.0.0"
|
1198 |
},
|
1199 |
"engines": {
|
1200 |
"node": ">=14"
|
@@ -1371,13 +1408,14 @@
|
|
1371 |
}
|
1372 |
},
|
1373 |
"node_modules/define-data-property": {
|
1374 |
-
"version": "1.1.
|
1375 |
-
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.
|
1376 |
-
"integrity": "sha512-
|
1377 |
"dependencies": {
|
1378 |
-
"
|
|
|
1379 |
"gopd": "^1.0.1",
|
1380 |
-
"has-property-descriptors": "^1.0.
|
1381 |
},
|
1382 |
"engines": {
|
1383 |
"node": ">= 0.4"
|
@@ -1435,9 +1473,9 @@
|
|
1435 |
}
|
1436 |
},
|
1437 |
"node_modules/devtools-protocol": {
|
1438 |
-
"version": "0.0.
|
1439 |
-
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.
|
1440 |
-
"integrity": "sha512-
|
1441 |
},
|
1442 |
"node_modules/diff": {
|
1443 |
"version": "4.0.2",
|
@@ -1457,14 +1495,14 @@
|
|
1457 |
}
|
1458 |
},
|
1459 |
"node_modules/dotenv": {
|
1460 |
-
"version": "16.
|
1461 |
-
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.
|
1462 |
-
"integrity": "sha512-
|
1463 |
"engines": {
|
1464 |
"node": ">=12"
|
1465 |
},
|
1466 |
"funding": {
|
1467 |
-
"url": "https://
|
1468 |
}
|
1469 |
},
|
1470 |
"node_modules/dup": {
|
@@ -1481,6 +1519,11 @@
|
|
1481 |
"safer-buffer": "^2.1.0"
|
1482 |
}
|
1483 |
},
|
|
|
|
|
|
|
|
|
|
|
1484 |
"node_modules/ee-first": {
|
1485 |
"version": "1.1.1",
|
1486 |
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
@@ -1549,10 +1592,18 @@
|
|
1549 |
"is-arrayish": "^0.2.1"
|
1550 |
}
|
1551 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1552 |
"node_modules/escalade": {
|
1553 |
-
"version": "3.1.
|
1554 |
-
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.
|
1555 |
-
"integrity": "sha512-
|
1556 |
"engines": {
|
1557 |
"node": ">=6"
|
1558 |
}
|
@@ -1811,9 +1862,9 @@
|
|
1811 |
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
1812 |
},
|
1813 |
"node_modules/fastq": {
|
1814 |
-
"version": "1.
|
1815 |
-
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.
|
1816 |
-
"integrity": "sha512-
|
1817 |
"dependencies": {
|
1818 |
"reusify": "^1.0.4"
|
1819 |
}
|
@@ -1918,9 +1969,9 @@
|
|
1918 |
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
|
1919 |
},
|
1920 |
"node_modules/ffmpeg-concat/node_modules/semver": {
|
1921 |
-
"version": "7.
|
1922 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.
|
1923 |
-
"integrity": "sha512-
|
1924 |
"dependencies": {
|
1925 |
"lru-cache": "^6.0.0"
|
1926 |
},
|
@@ -2038,9 +2089,9 @@
|
|
2038 |
}
|
2039 |
},
|
2040 |
"node_modules/follow-redirects": {
|
2041 |
-
"version": "1.15.
|
2042 |
-
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.
|
2043 |
-
"integrity": "sha512-
|
2044 |
"funding": [
|
2045 |
{
|
2046 |
"type": "individual",
|
@@ -2135,9 +2186,9 @@
|
|
2135 |
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
2136 |
},
|
2137 |
"node_modules/fs-extra": {
|
2138 |
-
"version": "11.
|
2139 |
-
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.
|
2140 |
-
"integrity": "sha512-
|
2141 |
"dependencies": {
|
2142 |
"graceful-fs": "^4.2.0",
|
2143 |
"jsonfile": "^6.0.1",
|
@@ -2198,15 +2249,19 @@
|
|
2198 |
}
|
2199 |
},
|
2200 |
"node_modules/get-intrinsic": {
|
2201 |
-
"version": "1.2.
|
2202 |
-
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.
|
2203 |
-
"integrity": "sha512-
|
2204 |
"dependencies": {
|
|
|
2205 |
"function-bind": "^1.1.2",
|
2206 |
"has-proto": "^1.0.1",
|
2207 |
"has-symbols": "^1.0.3",
|
2208 |
"hasown": "^2.0.0"
|
2209 |
},
|
|
|
|
|
|
|
2210 |
"funding": {
|
2211 |
"url": "https://github.com/sponsors/ljharb"
|
2212 |
}
|
@@ -2470,19 +2525,20 @@
|
|
2470 |
}
|
2471 |
},
|
2472 |
"node_modules/gpt-tokens": {
|
2473 |
-
"version": "1.
|
2474 |
-
"resolved": "https://registry.npmjs.org/gpt-tokens/-/gpt-tokens-1.
|
2475 |
-
"integrity": "sha512-
|
2476 |
"dependencies": {
|
2477 |
"decimal.js": "^10.4.3",
|
2478 |
"js-tiktoken": "^1.0.7",
|
2479 |
-
"openai": "^4.6.1"
|
|
|
2480 |
}
|
2481 |
},
|
2482 |
"node_modules/gpt-tokens/node_modules/@types/node": {
|
2483 |
-
"version": "18.
|
2484 |
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.
|
2485 |
-
"integrity": "sha512-
|
2486 |
"dependencies": {
|
2487 |
"undici-types": "~5.26.4"
|
2488 |
}
|
@@ -2507,9 +2563,9 @@
|
|
2507 |
}
|
2508 |
},
|
2509 |
"node_modules/gpt-tokens/node_modules/openai": {
|
2510 |
-
"version": "4.
|
2511 |
-
"resolved": "https://registry.npmjs.org/openai/-/openai-4.
|
2512 |
-
"integrity": "sha512-
|
2513 |
"dependencies": {
|
2514 |
"@types/node": "^18.11.18",
|
2515 |
"@types/node-fetch": "^2.6.4",
|
@@ -2598,9 +2654,9 @@
|
|
2598 |
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
|
2599 |
},
|
2600 |
"node_modules/hasown": {
|
2601 |
-
"version": "2.0.
|
2602 |
-
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.
|
2603 |
-
"integrity": "sha512-
|
2604 |
"dependencies": {
|
2605 |
"function-bind": "^1.1.2"
|
2606 |
},
|
@@ -2857,6 +2913,18 @@
|
|
2857 |
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
|
2858 |
"integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
|
2859 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2860 |
"node_modules/ipaddr.js": {
|
2861 |
"version": "1.9.1",
|
2862 |
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
@@ -2981,9 +3049,9 @@
|
|
2981 |
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
|
2982 |
},
|
2983 |
"node_modules/js-tiktoken": {
|
2984 |
-
"version": "1.0.
|
2985 |
-
"resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.
|
2986 |
-
"integrity": "sha512-
|
2987 |
"dependencies": {
|
2988 |
"base64-js": "^1.5.1"
|
2989 |
}
|
@@ -3005,9 +3073,9 @@
|
|
3005 |
}
|
3006 |
},
|
3007 |
"node_modules/jsbn": {
|
3008 |
-
"version": "
|
3009 |
-
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-
|
3010 |
-
"integrity": "sha512-
|
3011 |
},
|
3012 |
"node_modules/json-parse-even-better-errors": {
|
3013 |
"version": "2.3.1",
|
@@ -3413,9 +3481,9 @@
|
|
3413 |
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
3414 |
},
|
3415 |
"node_modules/node-abi": {
|
3416 |
-
"version": "3.
|
3417 |
-
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.
|
3418 |
-
"integrity": "sha512-
|
3419 |
"dependencies": {
|
3420 |
"semver": "^7.3.5"
|
3421 |
},
|
@@ -3435,9 +3503,9 @@
|
|
3435 |
}
|
3436 |
},
|
3437 |
"node_modules/node-abi/node_modules/semver": {
|
3438 |
-
"version": "7.
|
3439 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.
|
3440 |
-
"integrity": "sha512-
|
3441 |
"dependencies": {
|
3442 |
"lru-cache": "^6.0.0"
|
3443 |
},
|
@@ -3529,9 +3597,9 @@
|
|
3529 |
}
|
3530 |
},
|
3531 |
"node_modules/node-gyp-build": {
|
3532 |
-
"version": "4.
|
3533 |
-
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.
|
3534 |
-
"integrity": "sha512-
|
3535 |
"bin": {
|
3536 |
"node-gyp-build": "bin.js",
|
3537 |
"node-gyp-build-optional": "optional.js",
|
@@ -3550,9 +3618,9 @@
|
|
3550 |
}
|
3551 |
},
|
3552 |
"node_modules/node-gyp/node_modules/semver": {
|
3553 |
-
"version": "7.
|
3554 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.
|
3555 |
-
"integrity": "sha512-
|
3556 |
"dependencies": {
|
3557 |
"lru-cache": "^6.0.0"
|
3558 |
},
|
@@ -3678,6 +3746,14 @@
|
|
3678 |
"form-data": "^4.0.0"
|
3679 |
}
|
3680 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3681 |
"node_modules/p-finally": {
|
3682 |
"version": "1.0.0",
|
3683 |
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
@@ -3891,14 +3967,6 @@
|
|
3891 |
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
3892 |
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
3893 |
},
|
3894 |
-
"node_modules/path-type": {
|
3895 |
-
"version": "4.0.0",
|
3896 |
-
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
3897 |
-
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
|
3898 |
-
"engines": {
|
3899 |
-
"node": ">=8"
|
3900 |
-
}
|
3901 |
-
},
|
3902 |
"node_modules/pend": {
|
3903 |
"version": "1.2.0",
|
3904 |
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
@@ -4105,30 +4173,33 @@
|
|
4105 |
}
|
4106 |
},
|
4107 |
"node_modules/puppeteer": {
|
4108 |
-
"version": "21.
|
4109 |
-
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.
|
4110 |
-
"integrity": "sha512-
|
4111 |
"hasInstallScript": true,
|
4112 |
"dependencies": {
|
4113 |
-
"@puppeteer/browsers": "1.
|
4114 |
-
"cosmiconfig": "
|
4115 |
-
"puppeteer-core": "21.
|
|
|
|
|
|
|
4116 |
},
|
4117 |
"engines": {
|
4118 |
"node": ">=16.13.2"
|
4119 |
}
|
4120 |
},
|
4121 |
"node_modules/puppeteer-core": {
|
4122 |
-
"version": "21.
|
4123 |
-
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.
|
4124 |
-
"integrity": "sha512-
|
4125 |
"dependencies": {
|
4126 |
-
"@puppeteer/browsers": "1.
|
4127 |
-
"chromium-bidi": "0.
|
4128 |
"cross-fetch": "4.0.0",
|
4129 |
"debug": "4.3.4",
|
4130 |
-
"devtools-protocol": "0.0.
|
4131 |
-
"ws": "8.
|
4132 |
},
|
4133 |
"engines": {
|
4134 |
"node": ">=16.13.2"
|
@@ -4597,14 +4668,16 @@
|
|
4597 |
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
4598 |
},
|
4599 |
"node_modules/set-function-length": {
|
4600 |
-
"version": "1.
|
4601 |
-
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.
|
4602 |
-
"integrity": "sha512-
|
4603 |
"dependencies": {
|
4604 |
-
"define-data-property": "^1.1.
|
4605 |
-
"
|
|
|
|
|
4606 |
"gopd": "^1.0.1",
|
4607 |
-
"has-property-descriptors": "^1.0.
|
4608 |
},
|
4609 |
"engines": {
|
4610 |
"node": ">= 0.4"
|
@@ -4649,9 +4722,9 @@
|
|
4649 |
}
|
4650 |
},
|
4651 |
"node_modules/sharp/node_modules/semver": {
|
4652 |
-
"version": "7.
|
4653 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.
|
4654 |
-
"integrity": "sha512-
|
4655 |
"dependencies": {
|
4656 |
"lru-cache": "^6.0.0"
|
4657 |
},
|
@@ -4663,19 +4736,22 @@
|
|
4663 |
}
|
4664 |
},
|
4665 |
"node_modules/sharp/node_modules/tar-fs": {
|
4666 |
-
"version": "3.0.
|
4667 |
-
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.
|
4668 |
-
"integrity": "sha512-
|
4669 |
"dependencies": {
|
4670 |
-
"mkdirp-classic": "^0.5.2",
|
4671 |
"pump": "^3.0.0",
|
4672 |
"tar-stream": "^3.1.5"
|
|
|
|
|
|
|
|
|
4673 |
}
|
4674 |
},
|
4675 |
"node_modules/sharp/node_modules/tar-stream": {
|
4676 |
-
"version": "3.1.
|
4677 |
-
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.
|
4678 |
-
"integrity": "sha512-
|
4679 |
"dependencies": {
|
4680 |
"b4a": "^1.6.4",
|
4681 |
"fast-fifo": "^1.2.0",
|
@@ -4718,13 +4794,17 @@
|
|
4718 |
}
|
4719 |
},
|
4720 |
"node_modules/side-channel": {
|
4721 |
-
"version": "1.0.
|
4722 |
-
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.
|
4723 |
-
"integrity": "sha512-
|
4724 |
"dependencies": {
|
4725 |
-
"call-bind": "^1.0.
|
4726 |
-
"
|
4727 |
-
"
|
|
|
|
|
|
|
|
|
4728 |
},
|
4729 |
"funding": {
|
4730 |
"url": "https://github.com/sponsors/ljharb"
|
@@ -4801,15 +4881,15 @@
|
|
4801 |
}
|
4802 |
},
|
4803 |
"node_modules/socks": {
|
4804 |
-
"version": "2.7.
|
4805 |
-
"resolved": "https://registry.npmjs.org/socks/-/socks-2.7.
|
4806 |
-
"integrity": "sha512-
|
4807 |
"dependencies": {
|
4808 |
-
"ip": "^
|
4809 |
"smart-buffer": "^4.2.0"
|
4810 |
},
|
4811 |
"engines": {
|
4812 |
-
"node": ">= 10.
|
4813 |
"npm": ">= 3.0.0"
|
4814 |
}
|
4815 |
},
|
@@ -4847,11 +4927,6 @@
|
|
4847 |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
4848 |
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
4849 |
},
|
4850 |
-
"node_modules/socks/node_modules/ip": {
|
4851 |
-
"version": "2.0.0",
|
4852 |
-
"resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
|
4853 |
-
"integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
|
4854 |
-
},
|
4855 |
"node_modules/source-map": {
|
4856 |
"version": "0.6.1",
|
4857 |
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
@@ -4890,6 +4965,11 @@
|
|
4890 |
"node": ">=0.10.0"
|
4891 |
}
|
4892 |
},
|
|
|
|
|
|
|
|
|
|
|
4893 |
"node_modules/ssri": {
|
4894 |
"version": "9.0.1",
|
4895 |
"resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
|
@@ -4910,12 +4990,15 @@
|
|
4910 |
}
|
4911 |
},
|
4912 |
"node_modules/streamx": {
|
4913 |
-
"version": "2.15.
|
4914 |
-
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.
|
4915 |
-
"integrity": "sha512-
|
4916 |
"dependencies": {
|
4917 |
"fast-fifo": "^1.1.0",
|
4918 |
"queue-tick": "^1.0.1"
|
|
|
|
|
|
|
4919 |
}
|
4920 |
},
|
4921 |
"node_modules/string_decoder": {
|
@@ -5138,9 +5221,9 @@
|
|
5138 |
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
|
5139 |
},
|
5140 |
"node_modules/ts-node": {
|
5141 |
-
"version": "10.9.
|
5142 |
-
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.
|
5143 |
-
"integrity": "sha512-
|
5144 |
"dependencies": {
|
5145 |
"@cspotcode/source-map-support": "^0.8.0",
|
5146 |
"@tsconfig/node10": "^1.0.7",
|
@@ -5185,9 +5268,9 @@
|
|
5185 |
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
5186 |
},
|
5187 |
"node_modules/tts-react": {
|
5188 |
-
"version": "3.0.
|
5189 |
-
"resolved": "https://registry.npmjs.org/tts-react/-/tts-react-3.0.
|
5190 |
-
"integrity": "sha512-
|
5191 |
"engines": {
|
5192 |
"node": ">=18.16.0",
|
5193 |
"npm": ">=9.5.1"
|
@@ -5240,9 +5323,9 @@
|
|
5240 |
}
|
5241 |
},
|
5242 |
"node_modules/typescript": {
|
5243 |
-
"version": "5.
|
5244 |
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.
|
5245 |
-
"integrity": "sha512-
|
5246 |
"peer": true,
|
5247 |
"bin": {
|
5248 |
"tsc": "bin/tsc",
|
@@ -5338,9 +5421,9 @@
|
|
5338 |
}
|
5339 |
},
|
5340 |
"node_modules/urlpattern-polyfill": {
|
5341 |
-
"version": "
|
5342 |
-
"resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-
|
5343 |
-
"integrity": "sha512-
|
5344 |
},
|
5345 |
"node_modules/util-deprecate": {
|
5346 |
"version": "1.0.2",
|
@@ -5410,9 +5493,9 @@
|
|
5410 |
"integrity": "sha512-/wNyG+1FpiHhnfQo+TuA/XAUpvOOkKVl0A4qpT+oGcj5SlZCLmM+M1Py/3Sj8sy+YrEauCVITOxCsZKo6sPbQg=="
|
5411 |
},
|
5412 |
"node_modules/web-streams-polyfill": {
|
5413 |
-
"version": "3.2
|
5414 |
-
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.
|
5415 |
-
"integrity": "sha512-
|
5416 |
"engines": {
|
5417 |
"node": ">= 8"
|
5418 |
}
|
@@ -5502,9 +5585,9 @@
|
|
5502 |
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
5503 |
},
|
5504 |
"node_modules/ws": {
|
5505 |
-
"version": "8.
|
5506 |
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.
|
5507 |
-
"integrity": "sha512-
|
5508 |
"engines": {
|
5509 |
"node": ">=10.0.0"
|
5510 |
},
|
|
|
38 |
}
|
39 |
},
|
40 |
"node_modules/@babel/code-frame": {
|
41 |
+
"version": "7.23.5",
|
42 |
+
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
|
43 |
+
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
|
44 |
"dependencies": {
|
45 |
+
"@babel/highlight": "^7.23.4",
|
46 |
"chalk": "^2.4.2"
|
47 |
},
|
48 |
"engines": {
|
|
|
58 |
}
|
59 |
},
|
60 |
"node_modules/@babel/highlight": {
|
61 |
+
"version": "7.23.4",
|
62 |
+
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
|
63 |
+
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
|
64 |
"dependencies": {
|
65 |
"@babel/helper-validator-identifier": "^7.22.20",
|
66 |
"chalk": "^2.4.2",
|
|
|
215 |
}
|
216 |
},
|
217 |
"node_modules/@npmcli/fs/node_modules/semver": {
|
218 |
+
"version": "7.6.0",
|
219 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
220 |
+
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
221 |
"dependencies": {
|
222 |
"lru-cache": "^6.0.0"
|
223 |
},
|
|
|
242 |
}
|
243 |
},
|
244 |
"node_modules/@puppeteer/browsers": {
|
245 |
+
"version": "1.9.1",
|
246 |
+
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.9.1.tgz",
|
247 |
+
"integrity": "sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==",
|
248 |
"dependencies": {
|
249 |
"debug": "4.3.4",
|
250 |
"extract-zip": "2.0.1",
|
|
|
293 |
}
|
294 |
},
|
295 |
"node_modules/@puppeteer/browsers/node_modules/tar-stream": {
|
296 |
+
"version": "3.1.7",
|
297 |
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
|
298 |
+
"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
|
299 |
"dependencies": {
|
300 |
"b4a": "^1.6.4",
|
301 |
"fast-fifo": "^1.2.0",
|
|
|
364 |
}
|
365 |
},
|
366 |
"node_modules/@types/express-serve-static-core": {
|
367 |
+
"version": "4.17.43",
|
368 |
+
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
|
369 |
+
"integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
|
370 |
"dependencies": {
|
371 |
"@types/node": "*",
|
372 |
"@types/qs": "*",
|
|
|
375 |
}
|
376 |
},
|
377 |
"node_modules/@types/ffmpeg-concat": {
|
378 |
+
"version": "1.1.6",
|
379 |
+
"resolved": "https://registry.npmjs.org/@types/ffmpeg-concat/-/ffmpeg-concat-1.1.6.tgz",
|
380 |
+
"integrity": "sha512-DnKd2ZnW+NUdgvgBGQ4T7ndcApN3sIQxcQiDDDYlWutfxUAs/SldWiMtLh5W9UxGTOrXVIk9mHkobfnjOEEFTw=="
|
381 |
},
|
382 |
"node_modules/@types/http-errors": {
|
383 |
"version": "2.0.4",
|
|
|
390 |
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
|
391 |
},
|
392 |
"node_modules/@types/node": {
|
393 |
+
"version": "20.11.17",
|
394 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz",
|
395 |
+
"integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==",
|
396 |
"dependencies": {
|
397 |
"undici-types": "~5.26.4"
|
398 |
}
|
399 |
},
|
400 |
"node_modules/@types/node-fetch": {
|
401 |
+
"version": "2.6.11",
|
402 |
+
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz",
|
403 |
+
"integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==",
|
404 |
"dependencies": {
|
405 |
"@types/node": "*",
|
406 |
"form-data": "^4.0.0"
|
407 |
}
|
408 |
},
|
409 |
"node_modules/@types/qs": {
|
410 |
+
"version": "6.9.11",
|
411 |
+
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
|
412 |
+
"integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ=="
|
413 |
},
|
414 |
"node_modules/@types/range-parser": {
|
415 |
"version": "1.2.7",
|
|
|
436 |
}
|
437 |
},
|
438 |
"node_modules/@types/uuid": {
|
439 |
+
"version": "9.0.8",
|
440 |
+
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
|
441 |
+
"integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA=="
|
442 |
},
|
443 |
"node_modules/@types/yauzl": {
|
444 |
"version": "2.10.3",
|
|
|
478 |
}
|
479 |
},
|
480 |
"node_modules/acorn": {
|
481 |
+
"version": "8.11.3",
|
482 |
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
483 |
+
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
|
484 |
"bin": {
|
485 |
"acorn": "bin/acorn"
|
486 |
},
|
|
|
489 |
}
|
490 |
},
|
491 |
"node_modules/acorn-walk": {
|
492 |
+
"version": "8.3.2",
|
493 |
+
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
|
494 |
+
"integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
|
495 |
"engines": {
|
496 |
"node": ">=0.4.0"
|
497 |
}
|
|
|
708 |
}
|
709 |
},
|
710 |
"node_modules/b4a": {
|
711 |
+
"version": "1.6.6",
|
712 |
+
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
|
713 |
+
"integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg=="
|
714 |
},
|
715 |
"node_modules/balanced-match": {
|
716 |
"version": "1.0.2",
|
717 |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
718 |
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
719 |
},
|
720 |
+
"node_modules/bare-events": {
|
721 |
+
"version": "2.2.0",
|
722 |
+
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz",
|
723 |
+
"integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==",
|
724 |
+
"optional": true
|
725 |
+
},
|
726 |
+
"node_modules/bare-fs": {
|
727 |
+
"version": "2.1.3",
|
728 |
+
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.3.tgz",
|
729 |
+
"integrity": "sha512-Oa7F0QJV7We0mtKq7Tk246uiBrl7vun64cPEsJOEwv2vHjnVL9yO7aH3643aSrd4rXfVe7yhJ9LHZywQQAXKFQ==",
|
730 |
+
"optional": true,
|
731 |
+
"dependencies": {
|
732 |
+
"bare-events": "^2.0.0",
|
733 |
+
"bare-os": "^2.0.0",
|
734 |
+
"bare-path": "^2.0.0",
|
735 |
+
"streamx": "^2.13.0"
|
736 |
+
}
|
737 |
+
},
|
738 |
+
"node_modules/bare-os": {
|
739 |
+
"version": "2.1.2",
|
740 |
+
"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.1.2.tgz",
|
741 |
+
"integrity": "sha512-slQjOn78Q8itnzomNAamiKo5MDpEpV3JnoNZ93lyynaFh6paWcU+5c0GVcZ7EYIJC2unN2JGdF1qupdscYl0Yg==",
|
742 |
+
"optional": true
|
743 |
+
},
|
744 |
+
"node_modules/bare-path": {
|
745 |
+
"version": "2.1.0",
|
746 |
+
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz",
|
747 |
+
"integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==",
|
748 |
+
"optional": true,
|
749 |
+
"dependencies": {
|
750 |
+
"bare-os": "^2.1.0"
|
751 |
+
}
|
752 |
+
},
|
753 |
"node_modules/base-64": {
|
754 |
"version": "0.1.0",
|
755 |
"resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
|
|
|
775 |
]
|
776 |
},
|
777 |
"node_modules/basic-ftp": {
|
778 |
+
"version": "5.0.4",
|
779 |
+
"resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz",
|
780 |
+
"integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==",
|
781 |
"engines": {
|
782 |
"node": ">=10.0.0"
|
783 |
}
|
|
|
997 |
}
|
998 |
},
|
999 |
"node_modules/call-bind": {
|
1000 |
+
"version": "1.0.6",
|
1001 |
+
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
|
1002 |
+
"integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
|
1003 |
"dependencies": {
|
1004 |
+
"es-errors": "^1.3.0",
|
1005 |
"function-bind": "^1.1.2",
|
1006 |
+
"get-intrinsic": "^1.2.3",
|
1007 |
+
"set-function-length": "^1.2.0"
|
1008 |
+
},
|
1009 |
+
"engines": {
|
1010 |
+
"node": ">= 0.4"
|
1011 |
},
|
1012 |
"funding": {
|
1013 |
"url": "https://github.com/sponsors/ljharb"
|
|
|
1056 |
}
|
1057 |
},
|
1058 |
"node_modules/chromium-bidi": {
|
1059 |
+
"version": "0.5.8",
|
1060 |
+
"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.8.tgz",
|
1061 |
+
"integrity": "sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==",
|
1062 |
"dependencies": {
|
1063 |
"mitt": "3.0.1",
|
1064 |
+
"urlpattern-polyfill": "10.0.0"
|
1065 |
},
|
1066 |
"peerDependencies": {
|
1067 |
"devtools-protocol": "*"
|
|
|
1224 |
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
|
1225 |
},
|
1226 |
"node_modules/cosmiconfig": {
|
1227 |
+
"version": "9.0.0",
|
1228 |
+
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
|
1229 |
+
"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
|
1230 |
"dependencies": {
|
1231 |
+
"env-paths": "^2.2.1",
|
1232 |
"import-fresh": "^3.3.0",
|
1233 |
"js-yaml": "^4.1.0",
|
1234 |
+
"parse-json": "^5.2.0"
|
|
|
1235 |
},
|
1236 |
"engines": {
|
1237 |
"node": ">=14"
|
|
|
1408 |
}
|
1409 |
},
|
1410 |
"node_modules/define-data-property": {
|
1411 |
+
"version": "1.1.2",
|
1412 |
+
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
|
1413 |
+
"integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
|
1414 |
"dependencies": {
|
1415 |
+
"es-errors": "^1.3.0",
|
1416 |
+
"get-intrinsic": "^1.2.2",
|
1417 |
"gopd": "^1.0.1",
|
1418 |
+
"has-property-descriptors": "^1.0.1"
|
1419 |
},
|
1420 |
"engines": {
|
1421 |
"node": ">= 0.4"
|
|
|
1473 |
}
|
1474 |
},
|
1475 |
"node_modules/devtools-protocol": {
|
1476 |
+
"version": "0.0.1232444",
|
1477 |
+
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1232444.tgz",
|
1478 |
+
"integrity": "sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg=="
|
1479 |
},
|
1480 |
"node_modules/diff": {
|
1481 |
"version": "4.0.2",
|
|
|
1495 |
}
|
1496 |
},
|
1497 |
"node_modules/dotenv": {
|
1498 |
+
"version": "16.4.2",
|
1499 |
+
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.2.tgz",
|
1500 |
+
"integrity": "sha512-rZSSFxke7d9nYQ5NeMIwp5PP+f8wXgKNljpOb7KtH6SKW1cEqcXAz9VSJYVLKe7Jhup/gUYOkaeSVyK8GJ+nBg==",
|
1501 |
"engines": {
|
1502 |
"node": ">=12"
|
1503 |
},
|
1504 |
"funding": {
|
1505 |
+
"url": "https://dotenvx.com"
|
1506 |
}
|
1507 |
},
|
1508 |
"node_modules/dup": {
|
|
|
1519 |
"safer-buffer": "^2.1.0"
|
1520 |
}
|
1521 |
},
|
1522 |
+
"node_modules/ecc-jsbn/node_modules/jsbn": {
|
1523 |
+
"version": "0.1.1",
|
1524 |
+
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
1525 |
+
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
|
1526 |
+
},
|
1527 |
"node_modules/ee-first": {
|
1528 |
"version": "1.1.1",
|
1529 |
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
|
|
1592 |
"is-arrayish": "^0.2.1"
|
1593 |
}
|
1594 |
},
|
1595 |
+
"node_modules/es-errors": {
|
1596 |
+
"version": "1.3.0",
|
1597 |
+
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
1598 |
+
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
1599 |
+
"engines": {
|
1600 |
+
"node": ">= 0.4"
|
1601 |
+
}
|
1602 |
+
},
|
1603 |
"node_modules/escalade": {
|
1604 |
+
"version": "3.1.2",
|
1605 |
+
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
|
1606 |
+
"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
|
1607 |
"engines": {
|
1608 |
"node": ">=6"
|
1609 |
}
|
|
|
1862 |
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
1863 |
},
|
1864 |
"node_modules/fastq": {
|
1865 |
+
"version": "1.17.1",
|
1866 |
+
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
1867 |
+
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
|
1868 |
"dependencies": {
|
1869 |
"reusify": "^1.0.4"
|
1870 |
}
|
|
|
1969 |
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
|
1970 |
},
|
1971 |
"node_modules/ffmpeg-concat/node_modules/semver": {
|
1972 |
+
"version": "7.6.0",
|
1973 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
1974 |
+
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
1975 |
"dependencies": {
|
1976 |
"lru-cache": "^6.0.0"
|
1977 |
},
|
|
|
2089 |
}
|
2090 |
},
|
2091 |
"node_modules/follow-redirects": {
|
2092 |
+
"version": "1.15.5",
|
2093 |
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
|
2094 |
+
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
|
2095 |
"funding": [
|
2096 |
{
|
2097 |
"type": "individual",
|
|
|
2186 |
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
2187 |
},
|
2188 |
"node_modules/fs-extra": {
|
2189 |
+
"version": "11.2.0",
|
2190 |
+
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
|
2191 |
+
"integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
|
2192 |
"dependencies": {
|
2193 |
"graceful-fs": "^4.2.0",
|
2194 |
"jsonfile": "^6.0.1",
|
|
|
2249 |
}
|
2250 |
},
|
2251 |
"node_modules/get-intrinsic": {
|
2252 |
+
"version": "1.2.4",
|
2253 |
+
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
2254 |
+
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
2255 |
"dependencies": {
|
2256 |
+
"es-errors": "^1.3.0",
|
2257 |
"function-bind": "^1.1.2",
|
2258 |
"has-proto": "^1.0.1",
|
2259 |
"has-symbols": "^1.0.3",
|
2260 |
"hasown": "^2.0.0"
|
2261 |
},
|
2262 |
+
"engines": {
|
2263 |
+
"node": ">= 0.4"
|
2264 |
+
},
|
2265 |
"funding": {
|
2266 |
"url": "https://github.com/sponsors/ljharb"
|
2267 |
}
|
|
|
2525 |
}
|
2526 |
},
|
2527 |
"node_modules/gpt-tokens": {
|
2528 |
+
"version": "1.2.0",
|
2529 |
+
"resolved": "https://registry.npmjs.org/gpt-tokens/-/gpt-tokens-1.2.0.tgz",
|
2530 |
+
"integrity": "sha512-bi39NLFhuvDo3dZxtyz1ayznwb/bMq+mOrhZ/kK1Jta9+fpou/h3LA7ZtsiZVzlbSEd4oQXrN74yEAyv2F1xuw==",
|
2531 |
"dependencies": {
|
2532 |
"decimal.js": "^10.4.3",
|
2533 |
"js-tiktoken": "^1.0.7",
|
2534 |
+
"openai": "^4.6.1",
|
2535 |
+
"openai-chat-tokens": "^0.2.8"
|
2536 |
}
|
2537 |
},
|
2538 |
"node_modules/gpt-tokens/node_modules/@types/node": {
|
2539 |
+
"version": "18.19.15",
|
2540 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz",
|
2541 |
+
"integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==",
|
2542 |
"dependencies": {
|
2543 |
"undici-types": "~5.26.4"
|
2544 |
}
|
|
|
2563 |
}
|
2564 |
},
|
2565 |
"node_modules/gpt-tokens/node_modules/openai": {
|
2566 |
+
"version": "4.27.0",
|
2567 |
+
"resolved": "https://registry.npmjs.org/openai/-/openai-4.27.0.tgz",
|
2568 |
+
"integrity": "sha512-j1ZEx9NiBpm31rxWqQTjQt1QvH/8001xHsc/pRoPjkRDYWONCb+qkR6L9C7Wl6ar72Mz1ybtn1bv6fqAoTPlKw==",
|
2569 |
"dependencies": {
|
2570 |
"@types/node": "^18.11.18",
|
2571 |
"@types/node-fetch": "^2.6.4",
|
|
|
2654 |
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
|
2655 |
},
|
2656 |
"node_modules/hasown": {
|
2657 |
+
"version": "2.0.1",
|
2658 |
+
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
|
2659 |
+
"integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
|
2660 |
"dependencies": {
|
2661 |
"function-bind": "^1.1.2"
|
2662 |
},
|
|
|
2913 |
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
|
2914 |
"integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
|
2915 |
},
|
2916 |
+
"node_modules/ip-address": {
|
2917 |
+
"version": "9.0.5",
|
2918 |
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
|
2919 |
+
"integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
|
2920 |
+
"dependencies": {
|
2921 |
+
"jsbn": "1.1.0",
|
2922 |
+
"sprintf-js": "^1.1.3"
|
2923 |
+
},
|
2924 |
+
"engines": {
|
2925 |
+
"node": ">= 12"
|
2926 |
+
}
|
2927 |
+
},
|
2928 |
"node_modules/ipaddr.js": {
|
2929 |
"version": "1.9.1",
|
2930 |
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
|
|
3049 |
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
|
3050 |
},
|
3051 |
"node_modules/js-tiktoken": {
|
3052 |
+
"version": "1.0.10",
|
3053 |
+
"resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.10.tgz",
|
3054 |
+
"integrity": "sha512-ZoSxbGjvGyMT13x6ACo9ebhDha/0FHdKA+OsQcMOWcm1Zs7r90Rhk5lhERLzji+3rA7EKpXCgwXcM5fF3DMpdA==",
|
3055 |
"dependencies": {
|
3056 |
"base64-js": "^1.5.1"
|
3057 |
}
|
|
|
3073 |
}
|
3074 |
},
|
3075 |
"node_modules/jsbn": {
|
3076 |
+
"version": "1.1.0",
|
3077 |
+
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
|
3078 |
+
"integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
|
3079 |
},
|
3080 |
"node_modules/json-parse-even-better-errors": {
|
3081 |
"version": "2.3.1",
|
|
|
3481 |
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
3482 |
},
|
3483 |
"node_modules/node-abi": {
|
3484 |
+
"version": "3.54.0",
|
3485 |
+
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz",
|
3486 |
+
"integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==",
|
3487 |
"dependencies": {
|
3488 |
"semver": "^7.3.5"
|
3489 |
},
|
|
|
3503 |
}
|
3504 |
},
|
3505 |
"node_modules/node-abi/node_modules/semver": {
|
3506 |
+
"version": "7.6.0",
|
3507 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
3508 |
+
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
3509 |
"dependencies": {
|
3510 |
"lru-cache": "^6.0.0"
|
3511 |
},
|
|
|
3597 |
}
|
3598 |
},
|
3599 |
"node_modules/node-gyp-build": {
|
3600 |
+
"version": "4.8.0",
|
3601 |
+
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
|
3602 |
+
"integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
|
3603 |
"bin": {
|
3604 |
"node-gyp-build": "bin.js",
|
3605 |
"node-gyp-build-optional": "optional.js",
|
|
|
3618 |
}
|
3619 |
},
|
3620 |
"node_modules/node-gyp/node_modules/semver": {
|
3621 |
+
"version": "7.6.0",
|
3622 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
3623 |
+
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
3624 |
"dependencies": {
|
3625 |
"lru-cache": "^6.0.0"
|
3626 |
},
|
|
|
3746 |
"form-data": "^4.0.0"
|
3747 |
}
|
3748 |
},
|
3749 |
+
"node_modules/openai-chat-tokens": {
|
3750 |
+
"version": "0.2.8",
|
3751 |
+
"resolved": "https://registry.npmjs.org/openai-chat-tokens/-/openai-chat-tokens-0.2.8.tgz",
|
3752 |
+
"integrity": "sha512-nW7QdFDIZlAYe6jsCT/VPJ/Lam3/w2DX9oxf/5wHpebBT49KI3TN43PPhYlq1klq2ajzXWKNOLY6U4FNZM7AoA==",
|
3753 |
+
"dependencies": {
|
3754 |
+
"js-tiktoken": "^1.0.7"
|
3755 |
+
}
|
3756 |
+
},
|
3757 |
"node_modules/p-finally": {
|
3758 |
"version": "1.0.0",
|
3759 |
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
|
|
3967 |
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
3968 |
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
3969 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3970 |
"node_modules/pend": {
|
3971 |
"version": "1.2.0",
|
3972 |
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
|
|
4173 |
}
|
4174 |
},
|
4175 |
"node_modules/puppeteer": {
|
4176 |
+
"version": "21.11.0",
|
4177 |
+
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.11.0.tgz",
|
4178 |
+
"integrity": "sha512-9jTHuYe22TD3sNxy0nEIzC7ZrlRnDgeX3xPkbS7PnbdwYjl2o/z/YuCrRBwezdKpbTDTJ4VqIggzNyeRcKq3cg==",
|
4179 |
"hasInstallScript": true,
|
4180 |
"dependencies": {
|
4181 |
+
"@puppeteer/browsers": "1.9.1",
|
4182 |
+
"cosmiconfig": "9.0.0",
|
4183 |
+
"puppeteer-core": "21.11.0"
|
4184 |
+
},
|
4185 |
+
"bin": {
|
4186 |
+
"puppeteer": "lib/esm/puppeteer/node/cli.js"
|
4187 |
},
|
4188 |
"engines": {
|
4189 |
"node": ">=16.13.2"
|
4190 |
}
|
4191 |
},
|
4192 |
"node_modules/puppeteer-core": {
|
4193 |
+
"version": "21.11.0",
|
4194 |
+
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.11.0.tgz",
|
4195 |
+
"integrity": "sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==",
|
4196 |
"dependencies": {
|
4197 |
+
"@puppeteer/browsers": "1.9.1",
|
4198 |
+
"chromium-bidi": "0.5.8",
|
4199 |
"cross-fetch": "4.0.0",
|
4200 |
"debug": "4.3.4",
|
4201 |
+
"devtools-protocol": "0.0.1232444",
|
4202 |
+
"ws": "8.16.0"
|
4203 |
},
|
4204 |
"engines": {
|
4205 |
"node": ">=16.13.2"
|
|
|
4668 |
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
4669 |
},
|
4670 |
"node_modules/set-function-length": {
|
4671 |
+
"version": "1.2.1",
|
4672 |
+
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
|
4673 |
+
"integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
|
4674 |
"dependencies": {
|
4675 |
+
"define-data-property": "^1.1.2",
|
4676 |
+
"es-errors": "^1.3.0",
|
4677 |
+
"function-bind": "^1.1.2",
|
4678 |
+
"get-intrinsic": "^1.2.3",
|
4679 |
"gopd": "^1.0.1",
|
4680 |
+
"has-property-descriptors": "^1.0.1"
|
4681 |
},
|
4682 |
"engines": {
|
4683 |
"node": ">= 0.4"
|
|
|
4722 |
}
|
4723 |
},
|
4724 |
"node_modules/sharp/node_modules/semver": {
|
4725 |
+
"version": "7.6.0",
|
4726 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
4727 |
+
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
4728 |
"dependencies": {
|
4729 |
"lru-cache": "^6.0.0"
|
4730 |
},
|
|
|
4736 |
}
|
4737 |
},
|
4738 |
"node_modules/sharp/node_modules/tar-fs": {
|
4739 |
+
"version": "3.0.5",
|
4740 |
+
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz",
|
4741 |
+
"integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==",
|
4742 |
"dependencies": {
|
|
|
4743 |
"pump": "^3.0.0",
|
4744 |
"tar-stream": "^3.1.5"
|
4745 |
+
},
|
4746 |
+
"optionalDependencies": {
|
4747 |
+
"bare-fs": "^2.1.1",
|
4748 |
+
"bare-path": "^2.1.0"
|
4749 |
}
|
4750 |
},
|
4751 |
"node_modules/sharp/node_modules/tar-stream": {
|
4752 |
+
"version": "3.1.7",
|
4753 |
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
|
4754 |
+
"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
|
4755 |
"dependencies": {
|
4756 |
"b4a": "^1.6.4",
|
4757 |
"fast-fifo": "^1.2.0",
|
|
|
4794 |
}
|
4795 |
},
|
4796 |
"node_modules/side-channel": {
|
4797 |
+
"version": "1.0.5",
|
4798 |
+
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
|
4799 |
+
"integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
|
4800 |
"dependencies": {
|
4801 |
+
"call-bind": "^1.0.6",
|
4802 |
+
"es-errors": "^1.3.0",
|
4803 |
+
"get-intrinsic": "^1.2.4",
|
4804 |
+
"object-inspect": "^1.13.1"
|
4805 |
+
},
|
4806 |
+
"engines": {
|
4807 |
+
"node": ">= 0.4"
|
4808 |
},
|
4809 |
"funding": {
|
4810 |
"url": "https://github.com/sponsors/ljharb"
|
|
|
4881 |
}
|
4882 |
},
|
4883 |
"node_modules/socks": {
|
4884 |
+
"version": "2.7.3",
|
4885 |
+
"resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz",
|
4886 |
+
"integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==",
|
4887 |
"dependencies": {
|
4888 |
+
"ip-address": "^9.0.5",
|
4889 |
"smart-buffer": "^4.2.0"
|
4890 |
},
|
4891 |
"engines": {
|
4892 |
+
"node": ">= 10.0.0",
|
4893 |
"npm": ">= 3.0.0"
|
4894 |
}
|
4895 |
},
|
|
|
4927 |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
4928 |
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
4929 |
},
|
|
|
|
|
|
|
|
|
|
|
4930 |
"node_modules/source-map": {
|
4931 |
"version": "0.6.1",
|
4932 |
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
|
4965 |
"node": ">=0.10.0"
|
4966 |
}
|
4967 |
},
|
4968 |
+
"node_modules/sshpk/node_modules/jsbn": {
|
4969 |
+
"version": "0.1.1",
|
4970 |
+
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
4971 |
+
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
|
4972 |
+
},
|
4973 |
"node_modules/ssri": {
|
4974 |
"version": "9.0.1",
|
4975 |
"resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
|
|
|
4990 |
}
|
4991 |
},
|
4992 |
"node_modules/streamx": {
|
4993 |
+
"version": "2.15.8",
|
4994 |
+
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.8.tgz",
|
4995 |
+
"integrity": "sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ==",
|
4996 |
"dependencies": {
|
4997 |
"fast-fifo": "^1.1.0",
|
4998 |
"queue-tick": "^1.0.1"
|
4999 |
+
},
|
5000 |
+
"optionalDependencies": {
|
5001 |
+
"bare-events": "^2.2.0"
|
5002 |
}
|
5003 |
},
|
5004 |
"node_modules/string_decoder": {
|
|
|
5221 |
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
|
5222 |
},
|
5223 |
"node_modules/ts-node": {
|
5224 |
+
"version": "10.9.2",
|
5225 |
+
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
|
5226 |
+
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
|
5227 |
"dependencies": {
|
5228 |
"@cspotcode/source-map-support": "^0.8.0",
|
5229 |
"@tsconfig/node10": "^1.0.7",
|
|
|
5268 |
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
5269 |
},
|
5270 |
"node_modules/tts-react": {
|
5271 |
+
"version": "3.0.5",
|
5272 |
+
"resolved": "https://registry.npmjs.org/tts-react/-/tts-react-3.0.5.tgz",
|
5273 |
+
"integrity": "sha512-K69R/vTCm83UxqiPiARzlx8yXTqYmwHKAyww2OCylh+5BjB+YnGRRbAjVn7+OC2GinocSQhWUw4f+vmiN1+0Cw==",
|
5274 |
"engines": {
|
5275 |
"node": ">=18.16.0",
|
5276 |
"npm": ">=9.5.1"
|
|
|
5323 |
}
|
5324 |
},
|
5325 |
"node_modules/typescript": {
|
5326 |
+
"version": "5.3.3",
|
5327 |
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
|
5328 |
+
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
|
5329 |
"peer": true,
|
5330 |
"bin": {
|
5331 |
"tsc": "bin/tsc",
|
|
|
5421 |
}
|
5422 |
},
|
5423 |
"node_modules/urlpattern-polyfill": {
|
5424 |
+
"version": "10.0.0",
|
5425 |
+
"resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz",
|
5426 |
+
"integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg=="
|
5427 |
},
|
5428 |
"node_modules/util-deprecate": {
|
5429 |
"version": "1.0.2",
|
|
|
5493 |
"integrity": "sha512-/wNyG+1FpiHhnfQo+TuA/XAUpvOOkKVl0A4qpT+oGcj5SlZCLmM+M1Py/3Sj8sy+YrEauCVITOxCsZKo6sPbQg=="
|
5494 |
},
|
5495 |
"node_modules/web-streams-polyfill": {
|
5496 |
+
"version": "3.3.2",
|
5497 |
+
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz",
|
5498 |
+
"integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==",
|
5499 |
"engines": {
|
5500 |
"node": ">= 8"
|
5501 |
}
|
|
|
5585 |
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
5586 |
},
|
5587 |
"node_modules/ws": {
|
5588 |
+
"version": "8.16.0",
|
5589 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
|
5590 |
+
"integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
|
5591 |
"engines": {
|
5592 |
"node": ">=10.0.0"
|
5593 |
},
|
src/production/renderVideo.mts
CHANGED
@@ -1,54 +1,34 @@
|
|
1 |
-
import { RenderedScene, RenderRequest } from "../types.mts"
|
2 |
|
3 |
// import { generateVideo } from "../providers/video-generation/generateVideoWithZeroscope.mts"
|
4 |
-
import { generateVideo } from "../providers/video-generation/generateVideoWithHotshotGradioAPI.mts"
|
|
|
|
|
5 |
|
6 |
export async function renderVideo(
|
7 |
request: RenderRequest,
|
8 |
response: RenderedScene
|
9 |
): Promise<RenderedScene> {
|
10 |
|
11 |
-
const params = {
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
}
|
17 |
|
18 |
-
|
19 |
-
response.assetUrl = await generateVideo(params)
|
20 |
-
// console.log("successfull generation")
|
21 |
-
|
22 |
-
if (!response.assetUrl?.length) {
|
23 |
-
throw new Error(`url for the generated video is empty`)
|
24 |
-
}
|
25 |
-
} catch (err) {
|
26 |
-
console.error(`failed to render the video scene.. but let's try again!`)
|
27 |
-
|
28 |
-
try {
|
29 |
-
response.assetUrl = await generateVideo(params)
|
30 |
-
// console.log("successfull generation")
|
31 |
-
|
32 |
-
if (!response.assetUrl?.length) {
|
33 |
-
throw new Error(`url for the generated video is empty`)
|
34 |
-
}
|
35 |
-
|
36 |
-
} catch (err) {
|
37 |
-
try {
|
38 |
-
response.assetUrl = await generateVideo(params)
|
39 |
-
// console.log("successfull generation")
|
40 |
-
|
41 |
-
if (!response.assetUrl?.length) {
|
42 |
-
throw new Error(`url for the generated video is empty`)
|
43 |
-
}
|
44 |
-
|
45 |
-
} catch (err) {
|
46 |
-
console.error(`it failed the video for third time ${err}`)
|
47 |
-
response.error = `failed to render video scene: ${err}`
|
48 |
-
response.status = "error"
|
49 |
-
}
|
50 |
-
}
|
51 |
-
}
|
52 |
|
53 |
return response
|
54 |
}
|
|
|
1 |
+
import { RenderedScene, RenderRequest, VideoGenerationParams } from "../types.mts"
|
2 |
|
3 |
// import { generateVideo } from "../providers/video-generation/generateVideoWithZeroscope.mts"
|
4 |
+
// import { generateVideo } from "../providers/video-generation/generateVideoWithHotshotGradioAPI.mts"
|
5 |
+
import { generateVideoWithAnimateLCM } from "../providers/video-generation/generateVideoWithAnimateLCM.mts"
|
6 |
+
import { generateSeed } from "../utils/misc/generateSeed.mts"
|
7 |
|
8 |
export async function renderVideo(
|
9 |
request: RenderRequest,
|
10 |
response: RenderedScene
|
11 |
): Promise<RenderedScene> {
|
12 |
|
13 |
+
const params: VideoGenerationParams = {
|
14 |
+
prompt: request.prompt,
|
15 |
+
// image?: undefined, // can be empty (and thus, is empty)
|
16 |
+
// lora?: string // hardcoded on "3D render"
|
17 |
+
// style?: string // hardcoded on "3D render" for now
|
18 |
+
orientation: "landscape",
|
19 |
+
projection: "cartesian",
|
20 |
+
width: 512,
|
21 |
+
height: 256,
|
22 |
+
|
23 |
+
// ok, now what about those? they are in the gradio, are not exposed yet in the API
|
24 |
+
// nbFrames: request.nbFrames,
|
25 |
+
// nbSteps: request.nbSteps,
|
26 |
+
|
27 |
+
seed: request.seed || generateSeed(),
|
28 |
+
debug: true,
|
29 |
}
|
30 |
|
31 |
+
response.assetUrl = await generateVideoWithAnimateLCM(params)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
return response
|
34 |
}
|
src/providers/video-generation/addBase64HeaderToMp4.mts
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export function addBase64HeaderToMp4(base64Data: string) {
|
2 |
+
if (typeof base64Data !== "string" || !base64Data) {
|
3 |
+
return ""
|
4 |
+
}
|
5 |
+
if (base64Data.startsWith('data:')) {
|
6 |
+
if (base64Data.startsWith('data:video/mp4;base64,')) {
|
7 |
+
return base64Data
|
8 |
+
} else {
|
9 |
+
throw new Error("fatal: the input string is NOT a mp4 video!")
|
10 |
+
}
|
11 |
+
} else {
|
12 |
+
return `data:video/mp4;base64,${base64Data}`
|
13 |
+
}
|
14 |
+
}
|
src/providers/video-generation/generateVideoWithAnimateLCM.mts
ADDED
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { VideoGenerationParams } from "../../types.mts"
|
2 |
+
import { generateSeed } from "../../utils/misc/generateSeed.mts"
|
3 |
+
import { tryApiCalls } from "../../utils/misc/tryApiCall.mts"
|
4 |
+
import { addBase64HeaderToMp4 } from "./addBase64HeaderToMp4.mts"
|
5 |
+
|
6 |
+
import { getNegativePrompt, getPositivePrompt } from "./defaultPrompts.mts"
|
7 |
+
|
8 |
+
// const gradioApi = `${process.env.AI_TUBE_MODEL_ANIMATELCM_GRADIO_URL || ""}`
|
9 |
+
const gradioApi = "https://jbilcke-hf-ai-tube-model-animatelcm.hf.space"
|
10 |
+
const accessToken = `${process.env.VC_MICROSERVICE_SECRET_TOKEN || ""}`
|
11 |
+
|
12 |
+
export const generateVideoWithAnimateLCM = async ({
|
13 |
+
prompt,
|
14 |
+
orientation,
|
15 |
+
projection,
|
16 |
+
width,
|
17 |
+
height,
|
18 |
+
style = "",
|
19 |
+
seed,
|
20 |
+
debug,
|
21 |
+
}: VideoGenerationParams): Promise<string> => {
|
22 |
+
|
23 |
+
|
24 |
+
const actualFunction = async () => {
|
25 |
+
const negPrompt = ""
|
26 |
+
prompt = prompt || ""
|
27 |
+
seed = seed | generateSeed()
|
28 |
+
|
29 |
+
// label="Sampling steps", value=6, minimum=1, maximum=25, step=1
|
30 |
+
// we wanna keep this one low (this is LCM after all)
|
31 |
+
// but values like 10 also give nice results
|
32 |
+
const nbSteps = 50
|
33 |
+
|
34 |
+
|
35 |
+
// label="LoRA alpha", value=0.8, minimum=0, maximum=2
|
36 |
+
const loraAlpha = 0.8 // lora_alpha_slider,
|
37 |
+
|
38 |
+
|
39 |
+
// label="LCM LoRA alpha", value=0.8, minimum=0.0, maximum=1.0
|
40 |
+
const lcmLoraAlpha = 0.8 // spatial_lora_slider,
|
41 |
+
|
42 |
+
// label="Width", value=512, minimum=256, maximum=1024, step=64)
|
43 |
+
const width = 512
|
44 |
+
|
45 |
+
// label="Animation length", value=16, minimum=12, maximum=20, step=1)
|
46 |
+
const nbFrames = 16
|
47 |
+
|
48 |
+
// label="Height", value=512, minimum=256, maximum=1024, step=64)
|
49 |
+
const height = 256
|
50 |
+
|
51 |
+
// label="CFG Scale", value=1.5, minimum=1, maximum=2)
|
52 |
+
const cfgScale = 1.5
|
53 |
+
|
54 |
+
// pimp the prompt
|
55 |
+
|
56 |
+
// we put it at the start, to make sure it is always part of the prompt
|
57 |
+
const positivePrompt = getPositivePrompt([
|
58 |
+
style,
|
59 |
+
prompt
|
60 |
+
].map(x => x.trim()).filter(x => x).join(", "))
|
61 |
+
|
62 |
+
const negativePrompt = getNegativePrompt(negPrompt)
|
63 |
+
|
64 |
+
try {
|
65 |
+
if (debug) {
|
66 |
+
console.log(`calling AnimateLCM API with params (some are hidden):`, {
|
67 |
+
loraAlpha,
|
68 |
+
lcmLoraAlpha,
|
69 |
+
positivePrompt,
|
70 |
+
negativePrompt,
|
71 |
+
width,
|
72 |
+
height,
|
73 |
+
nbSteps,
|
74 |
+
nbFrames,
|
75 |
+
cfgScale,
|
76 |
+
seed,
|
77 |
+
})
|
78 |
+
}
|
79 |
+
|
80 |
+
const res = await fetch(gradioApi + (gradioApi.endsWith("/") ? "" : "/") + "api/predict", {
|
81 |
+
method: "POST",
|
82 |
+
headers: {
|
83 |
+
"Content-Type": "application/json",
|
84 |
+
// Authorization: `Bearer ${token}`,
|
85 |
+
},
|
86 |
+
body: JSON.stringify({
|
87 |
+
fn_index: 4, // <- important! it is currently 4, not 1!
|
88 |
+
data: [
|
89 |
+
accessToken,
|
90 |
+
|
91 |
+
// label="LoRA alpha", value=0.8, minimum=0, maximum=2
|
92 |
+
loraAlpha, // lora_alpha_slider,
|
93 |
+
|
94 |
+
|
95 |
+
// label="LCM LoRA alpha", value=0.8, minimum=0.0, maximum=1.0
|
96 |
+
lcmLoraAlpha, // spatial_lora_slider,
|
97 |
+
|
98 |
+
//
|
99 |
+
positivePrompt, // prompt_textbox,
|
100 |
+
|
101 |
+
negativePrompt, // negative_prompt_textbox,
|
102 |
+
|
103 |
+
// this is the scheduler
|
104 |
+
// so.. LCM, it is
|
105 |
+
"LCM", // sampler_dropdown,
|
106 |
+
|
107 |
+
// label="Sampling steps", value=6, minimum=1, maximum=25, step=1
|
108 |
+
// we wanna keep this one low (this is LCM after all)
|
109 |
+
// but values like 10 also give nice results
|
110 |
+
nbSteps, // sample_step_slider,
|
111 |
+
|
112 |
+
// label="Width", value=512, minimum=256, maximum=1024, step=64)
|
113 |
+
width, // width_slider,
|
114 |
+
|
115 |
+
// label="Animation length", value=16, minimum=12, maximum=20, step=1)
|
116 |
+
nbFrames, // length_slider,
|
117 |
+
|
118 |
+
// label="Height", value=512, minimum=256, maximum=1024, step=64)
|
119 |
+
height, // height_slider,
|
120 |
+
|
121 |
+
// label="CFG Scale", value=1.5, minimum=1, maximum=2)
|
122 |
+
cfgScale, // cfg_scale_slider,
|
123 |
+
|
124 |
+
seed, // seed_textbox,
|
125 |
+
],
|
126 |
+
}),
|
127 |
+
cache: "no-store",
|
128 |
+
// we can also use this (see https://vercel.com/blog/vercel-cache-api-nextjs-cache)
|
129 |
+
// next: { revalidate: 1 }
|
130 |
+
})
|
131 |
+
|
132 |
+
|
133 |
+
const { data } = await res.json()
|
134 |
+
|
135 |
+
// console.log("data:", data)
|
136 |
+
// Recommendation: handle errors
|
137 |
+
if (res.status !== 200 || !Array.isArray(data)) {
|
138 |
+
// This will activate the closest `error.js` Error Boundary
|
139 |
+
throw new Error(`Failed to fetch data (status: ${res.status})`)
|
140 |
+
}
|
141 |
+
// console.log("data:", data.slice(0, 50))
|
142 |
+
|
143 |
+
const base64Content = (data?.[0] || "") as string
|
144 |
+
|
145 |
+
if (!base64Content) {
|
146 |
+
throw new Error(`invalid response (no content)`)
|
147 |
+
}
|
148 |
+
|
149 |
+
return addBase64HeaderToMp4(base64Content)
|
150 |
+
} catch (err) {
|
151 |
+
if (debug) {
|
152 |
+
console.error(`failed to call the AnimateLCM API:`)
|
153 |
+
console.error(err)
|
154 |
+
}
|
155 |
+
throw err
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
return tryApiCalls({
|
160 |
+
func: actualFunction,
|
161 |
+
debug,
|
162 |
+
failureMessage: "failed to call the AnimateLCM endpoint"
|
163 |
+
})
|
164 |
+
}
|
src/types.mts
CHANGED
@@ -407,3 +407,25 @@ export type HotshotImageInferenceSize =
|
|
407 |
| '1024x512' // custom panoramic ratio - this isn't supported / supposed to work properly
|
408 |
| '1024x576' // movie ratio (16:9) this isn't supported / supposed to work properly
|
409 |
| '576x1024' // tiktok ratio (9:16) this isn't supported / supposed to work properly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
| '1024x512' // custom panoramic ratio - this isn't supported / supposed to work properly
|
408 |
| '1024x576' // movie ratio (16:9) this isn't supported / supposed to work properly
|
409 |
| '576x1024' // tiktok ratio (9:16) this isn't supported / supposed to work properly
|
410 |
+
|
411 |
+
export type VideoOrientation =
|
412 |
+
| "portrait"
|
413 |
+
| "landscape"
|
414 |
+
| "square"
|
415 |
+
|
416 |
+
export type VideoProjection =
|
417 |
+
| "cartesian" // this is the default
|
418 |
+
| "equirectangular"
|
419 |
+
|
420 |
+
export type VideoGenerationParams = {
|
421 |
+
prompt: string // can be empty
|
422 |
+
image?: string // can be empty
|
423 |
+
lora?: string
|
424 |
+
style?: string
|
425 |
+
orientation: VideoOrientation
|
426 |
+
projection: VideoProjection
|
427 |
+
width: number
|
428 |
+
height: number
|
429 |
+
seed?: number
|
430 |
+
debug?: boolean
|
431 |
+
}
|
src/utils/misc/getHuggingFaceSpaceStatus.mts
ADDED
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
/** Actually `hf_${string}`, but for convenience, using the string type */
|
3 |
+
type AccessToken = string;
|
4 |
+
|
5 |
+
interface Credentials {
|
6 |
+
accessToken: AccessToken;
|
7 |
+
}
|
8 |
+
|
9 |
+
type SpaceHardwareFlavor =
|
10 |
+
| "cpu-basic"
|
11 |
+
| "cpu-upgrade"
|
12 |
+
| "t4-small"
|
13 |
+
| "t4-medium"
|
14 |
+
| "a10g-small"
|
15 |
+
| "a10g-large"
|
16 |
+
| "a100-large";
|
17 |
+
|
18 |
+
type SpaceSdk = "streamlit" | "gradio" | "docker" | "static";
|
19 |
+
|
20 |
+
type SpaceStage =
|
21 |
+
| "NO_APP_FILE"
|
22 |
+
| "CONFIG_ERROR"
|
23 |
+
| "BUILDING"
|
24 |
+
| "BUILD_ERROR"
|
25 |
+
| "RUNNING"
|
26 |
+
| "RUNNING_BUILDING"
|
27 |
+
| "RUNTIME_ERROR"
|
28 |
+
| "DELETING"
|
29 |
+
| "PAUSED"
|
30 |
+
| "SLEEPING";
|
31 |
+
|
32 |
+
type AccessTokenRole = "admin" | "write" | "contributor" | "read";
|
33 |
+
|
34 |
+
type AuthType = "access_token" | "app_token" | "app_token_as_user";
|
35 |
+
|
36 |
+
|
37 |
+
interface SpaceRuntime {
|
38 |
+
stage: SpaceStage;
|
39 |
+
sdk?: SpaceSdk;
|
40 |
+
sdkVersion?: string;
|
41 |
+
errorMessage?: string;
|
42 |
+
hardware?: {
|
43 |
+
current: SpaceHardwareFlavor | null;
|
44 |
+
currentPrettyName?: string;
|
45 |
+
requested: SpaceHardwareFlavor | null;
|
46 |
+
requestedPrettyName?: string;
|
47 |
+
};
|
48 |
+
/** when calling /spaces, those props are only fetched if ?full=true */
|
49 |
+
resources?: SpaceResourceConfig;
|
50 |
+
/** in seconds */
|
51 |
+
gcTimeout?: number | null;
|
52 |
+
}
|
53 |
+
|
54 |
+
interface SpaceResourceRequirement {
|
55 |
+
cpu?: string;
|
56 |
+
memory?: string;
|
57 |
+
gpu?: string;
|
58 |
+
gpuModel?: string;
|
59 |
+
ephemeral?: string;
|
60 |
+
}
|
61 |
+
|
62 |
+
interface SpaceResourceConfig {
|
63 |
+
requests: SpaceResourceRequirement;
|
64 |
+
limits: SpaceResourceRequirement;
|
65 |
+
replicas?: number;
|
66 |
+
throttled?: boolean;
|
67 |
+
is_custom?: boolean;
|
68 |
+
}
|
69 |
+
|
70 |
+
export interface HFSpaceStatus {
|
71 |
+
_id: string
|
72 |
+
id: string
|
73 |
+
author: string
|
74 |
+
sha: string
|
75 |
+
lastModified: string
|
76 |
+
private: boolean
|
77 |
+
gated: boolean
|
78 |
+
disabled: boolean
|
79 |
+
host: string
|
80 |
+
subdomain: string
|
81 |
+
tags: string[]
|
82 |
+
likes: number
|
83 |
+
sdk: string
|
84 |
+
runtime: SpaceRuntime
|
85 |
+
createdAt: string
|
86 |
+
}
|
87 |
+
|
88 |
+
export async function getHuggingFaceSpaceStatus({
|
89 |
+
space,
|
90 |
+
// userName,
|
91 |
+
// spaceName,
|
92 |
+
}: {
|
93 |
+
space: string // a joined "user_name/space_name"
|
94 |
+
// userName: string
|
95 |
+
// spaceName: string
|
96 |
+
}): Promise<HFSpaceStatus> {
|
97 |
+
const res = await fetch(`https://huggingface.co/api/spaces/${space}`, {
|
98 |
+
method: "GET",
|
99 |
+
headers: {
|
100 |
+
Authorization: `Bearer ${process.env.VC_HF_API_TOKEN || ""}`
|
101 |
+
}
|
102 |
+
})
|
103 |
+
|
104 |
+
if (res.status !== 200) {
|
105 |
+
throw new Error("failed to get the space data")
|
106 |
+
}
|
107 |
+
|
108 |
+
try {
|
109 |
+
const data = await res.json() as HFSpaceStatus
|
110 |
+
return data
|
111 |
+
} catch (err) {
|
112 |
+
throw new Error("failed to parse space data", err)
|
113 |
+
}
|
114 |
+
}
|
src/utils/misc/makeSureSpaceIsRunning.mts
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
import { getHuggingFaceSpaceStatus } from "./getHuggingFaceSpaceStatus.mts"
|
3 |
+
import { sleep } from "./sleep.mts"
|
4 |
+
|
5 |
+
export async function makeSureSpaceIsRunning({
|
6 |
+
space,
|
7 |
+
maxWaitTimeInSec = 15 * 60, // some spaces are ultra slow to cold boot (eg. data dl at runtime)
|
8 |
+
statusUpdateFrequencyInSec = 5,
|
9 |
+
// userName,
|
10 |
+
// spaceName,
|
11 |
+
}: {
|
12 |
+
space: string // a joined "user_name/space_name"
|
13 |
+
|
14 |
+
maxWaitTimeInSec?: number
|
15 |
+
|
16 |
+
statusUpdateFrequencyInSec?: number
|
17 |
+
|
18 |
+
// userName: string
|
19 |
+
// spaceName: string
|
20 |
+
}): Promise<void> {
|
21 |
+
if (!space) { return }
|
22 |
+
|
23 |
+
// process.stdout.write(`trying to restart space "${space}"`)
|
24 |
+
try {
|
25 |
+
const { runtime: { stage } } = await getHuggingFaceSpaceStatus({ space })
|
26 |
+
if (stage === "RUNNING") {
|
27 |
+
// process.stdout.write(`: well, it is already ${stage}!\n`)
|
28 |
+
return
|
29 |
+
}
|
30 |
+
} catch (err) {
|
31 |
+
}
|
32 |
+
|
33 |
+
const res = await fetch(`https://huggingface.co/api/spaces/${space}/restart`, {
|
34 |
+
method: "POST",
|
35 |
+
headers: {
|
36 |
+
Authorization: `Bearer ${process.env.VC_HF_API_TOKEN || ""}`
|
37 |
+
}
|
38 |
+
})
|
39 |
+
|
40 |
+
if (res.status !== 200) {
|
41 |
+
process.stdout.write(`failure!\nwe couldn't trigger the restart of space "${space}"\n`)
|
42 |
+
|
43 |
+
throw new Error(`failed to trigger the restart of space "${space}" (status is not 200)`)
|
44 |
+
}
|
45 |
+
|
46 |
+
let elapsedTime = 0
|
47 |
+
|
48 |
+
process.stdout.write(`trying to restart space "${space}"`)
|
49 |
+
|
50 |
+
while (true) {
|
51 |
+
process.stdout.write(".")
|
52 |
+
const { runtime: { stage } } = await getHuggingFaceSpaceStatus({ space })
|
53 |
+
|
54 |
+
if (stage === "RUNNING") {
|
55 |
+
process.stdout.write(`success!\nspace "${space}" is ${stage} (took ${elapsedTime} sec)\n`)
|
56 |
+
return
|
57 |
+
} else if (stage === "BUILDING" || stage === "RUNNING_BUILDING") {
|
58 |
+
// let's wait more
|
59 |
+
await sleep(statusUpdateFrequencyInSec * 1000)
|
60 |
+
|
61 |
+
elapsedTime += statusUpdateFrequencyInSec
|
62 |
+
|
63 |
+
if (elapsedTime >= maxWaitTimeInSec) {
|
64 |
+
process.stdout.write(`failure!\nspace "${space}" is still ${stage} (after ${elapsedTime} sec)\n`)
|
65 |
+
if (stage === "BUILDING") {
|
66 |
+
throw new Error(`failed to start space ${space} (reason: space is ${stage}, but we reached the ${maxWaitTimeInSec} sec timeout)`)
|
67 |
+
} else {
|
68 |
+
// if we are "RUNNING_BUILDING" we assume it is.. okay? I guess?
|
69 |
+
return
|
70 |
+
}
|
71 |
+
}
|
72 |
+
} else {
|
73 |
+
process.stdout.write(`failure!\nspace "${space}" is ${stage} (after ${elapsedTime} sec)\n`)
|
74 |
+
throw new Error(`failed to build space ${space} (reason: space is ${stage})`)
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
src/utils/misc/tryApiCall.mts
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// import { Credentials, downloadFile, uploadFile, whoAmI } from "@huggingface/hub"
|
2 |
+
|
3 |
+
import { makeSureSpaceIsRunning } from "./makeSureSpaceIsRunning.mts"
|
4 |
+
import { sleep } from "./sleep.mts"
|
5 |
+
|
6 |
+
const sec = 1000
|
7 |
+
const min = 60 *sec
|
8 |
+
|
9 |
+
export async function tryApiCalls<T>({
|
10 |
+
func,
|
11 |
+
huggingFaceSpace,
|
12 |
+
debug = false,
|
13 |
+
failureMessage = "failed to call the endpoint",
|
14 |
+
delays = [
|
15 |
+
5 *sec,
|
16 |
+
15 *sec,
|
17 |
+
40 *sec, // total 1 min wait time
|
18 |
+
|
19 |
+
//at this stage, if it is so slow it means we are probably waking up a model
|
20 |
+
// which is a slow operation (takes ~5 min)
|
21 |
+
|
22 |
+
2 *min, // ~ 3 min ~
|
23 |
+
1 *min, // ~ 4 min ~
|
24 |
+
1 *min, // ~ 5 min ~
|
25 |
+
]
|
26 |
+
}: {
|
27 |
+
func: () => Promise<T>
|
28 |
+
|
29 |
+
// optional: the name of the hugging face space
|
30 |
+
// this will be used to "wake up" the space if necessary
|
31 |
+
huggingFaceSpace?: string
|
32 |
+
|
33 |
+
debug?: boolean
|
34 |
+
failureMessage?: string
|
35 |
+
delays?: number[]
|
36 |
+
}) {
|
37 |
+
|
38 |
+
for (let i = 0; i < delays.length; i++) {
|
39 |
+
try {
|
40 |
+
await makeSureSpaceIsRunning({ space: huggingFaceSpace })
|
41 |
+
const result = await func()
|
42 |
+
return result
|
43 |
+
} catch (err) {
|
44 |
+
if (debug) { console.error(err) }
|
45 |
+
process.stdout.write(".")
|
46 |
+
|
47 |
+
if (i > 0) {
|
48 |
+
await sleep(delays[i])
|
49 |
+
}
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
throw new Error(`${failureMessage} after ${delays.length} attempts`)
|
54 |
+
}
|