new captions system

This commit is contained in:
Omer Sabic 2024-06-10 00:14:41 +02:00
parent f1bbf852e2
commit c53d4f6e84
5 changed files with 1359 additions and 63 deletions

View File

@ -0,0 +1,784 @@
WEBVTT
Kind: captions
Language: en
00:00:11.370 --> 00:00:14.669 align:start position:0%
[Music]
00:00:14.669 --> 00:00:14.679 align:start position:0%
00:00:14.679 --> 00:00:16.590 align:start position:0%
I<00:00:14.759><c> am</c><00:00:14.960><c> very</c><00:00:15.200><c> happy</c><00:00:15.440><c> to</c><00:00:15.679><c> say</c><00:00:16.119><c> that</c><00:00:16.279><c> thanks</c><00:00:16.440><c> to</c>
00:00:16.590 --> 00:00:16.600 align:start position:0%
I am very happy to say that thanks to
00:00:16.600 --> 00:00:19.070 align:start position:0%
I am very happy to say that thanks to
the<00:00:16.720><c> hard</c><00:00:16.920><c> work</c><00:00:17.160><c> of</c><00:00:17.400><c> IMS</c><00:00:18.039><c> null</c><00:00:18.520><c> and</c><00:00:18.720><c> several</c>
00:00:19.070 --> 00:00:19.080 align:start position:0%
the hard work of IMS null and several
00:00:19.080 --> 00:00:21.230 align:start position:0%
the hard work of IMS null and several
other<00:00:19.400><c> Iris</c><00:00:19.680><c> Shader</c><00:00:20.080><c> devs</c><00:00:20.760><c> our</c><00:00:20.960><c> most</c>
00:00:21.230 --> 00:00:21.240 align:start position:0%
other Iris Shader devs our most
00:00:21.240 --> 00:00:22.870 align:start position:0%
other Iris Shader devs our most
requested<00:00:21.680><c> feature</c><00:00:22.039><c> is</c><00:00:22.199><c> now</c><00:00:22.400><c> finally</c>
00:00:22.870 --> 00:00:22.880 align:start position:0%
requested feature is now finally
00:00:22.880 --> 00:00:26.349 align:start position:0%
requested feature is now finally
available<00:00:23.880><c> as</c><00:00:24.039><c> of</c><00:00:24.240><c> Iris</c><00:00:24.599><c> 1.7</c><00:00:25.560><c> Iris</c><00:00:25.960><c> now</c><00:00:26.160><c> has</c>
00:00:26.349 --> 00:00:26.359 align:start position:0%
available as of Iris 1.7 Iris now has
00:00:26.359 --> 00:00:29.230 align:start position:0%
available as of Iris 1.7 Iris now has
full<00:00:26.640><c> DH</c><00:00:27.240><c> support</c><00:00:28.240><c> this</c><00:00:28.359><c> means</c><00:00:28.640><c> that</c><00:00:28.800><c> shaders</c>
00:00:29.230 --> 00:00:29.240 align:start position:0%
full DH support this means that shaders
00:00:29.240 --> 00:00:31.550 align:start position:0%
full DH support this means that shaders
designed<00:00:29.560><c> with</c><00:00:29.720><c> DH</c><00:00:30.160><c> in</c><00:00:30.279><c> mind</c><00:00:30.599><c> will</c><00:00:30.759><c> render</c><00:00:31.080><c> LOD</c>
00:00:31.550 --> 00:00:31.560 align:start position:0%
designed with DH in mind will render LOD
00:00:31.560 --> 00:00:33.510 align:start position:0%
designed with DH in mind will render LOD
seamlessly<00:00:32.079><c> with</c><00:00:32.239><c> vanilla</c>
00:00:33.510 --> 00:00:33.520 align:start position:0%
seamlessly with vanilla
00:00:33.520 --> 00:00:36.069 align:start position:0%
seamlessly with vanilla
chunks<00:00:34.520><c> in</c><00:00:34.640><c> order</c><00:00:34.840><c> for</c><00:00:35.040><c> Iris</c><00:00:35.360><c> to</c><00:00:35.520><c> add</c><00:00:35.680><c> DH</c>
00:00:36.069 --> 00:00:36.079 align:start position:0%
chunks in order for Iris to add DH
00:00:36.079 --> 00:00:38.510 align:start position:0%
chunks in order for Iris to add DH
support<00:00:36.600><c> the</c><00:00:36.760><c> DH</c><00:00:37.239><c> API</c><00:00:37.680><c> has</c><00:00:37.800><c> been</c><00:00:38.000><c> updated</c><00:00:38.360><c> with</c>
00:00:38.510 --> 00:00:38.520 align:start position:0%
support the DH API has been updated with
00:00:38.520 --> 00:00:41.150 align:start position:0%
support the DH API has been updated with
several<00:00:38.800><c> new</c><00:00:38.920><c> methods</c><00:00:39.239><c> and</c><00:00:39.719><c> objects</c><00:00:40.719><c> however</c>
00:00:41.150 --> 00:00:41.160 align:start position:0%
several new methods and objects however
00:00:41.160 --> 00:00:43.830 align:start position:0%
several new methods and objects however
there<00:00:41.280><c> were</c><00:00:41.559><c> also</c><00:00:41.960><c> several</c><00:00:42.320><c> breaking</c><00:00:42.840><c> changes</c>
00:00:43.830 --> 00:00:43.840 align:start position:0%
there were also several breaking changes
00:00:43.840 --> 00:00:45.590 align:start position:0%
there were also several breaking changes
most<00:00:44.079><c> of</c><00:00:44.280><c> which</c><00:00:44.399><c> were</c><00:00:44.559><c> due</c><00:00:44.760><c> to</c><00:00:44.879><c> mistakes</c><00:00:45.200><c> on</c><00:00:45.399><c> my</c>
00:00:45.590 --> 00:00:45.600 align:start position:0%
most of which were due to mistakes on my
00:00:45.600 --> 00:00:48.630 align:start position:0%
most of which were due to mistakes on my
end<00:00:46.079><c> due</c><00:00:46.239><c> to</c><00:00:46.399><c> misnaming</c><00:00:46.879><c> a</c><00:00:47.000><c> bunch</c><00:00:47.160><c> of</c><00:00:47.640><c> objects</c>
00:00:48.630 --> 00:00:48.640 align:start position:0%
end due to misnaming a bunch of objects
00:00:48.640 --> 00:00:51.310 align:start position:0%
end due to misnaming a bunch of objects
sorry<00:00:48.960><c> about</c><00:00:49.280><c> that</c><00:00:50.280><c> the</c><00:00:50.399><c> full</c><00:00:50.640><c> list</c><00:00:50.800><c> of</c><00:00:50.960><c> API</c>
00:00:51.310 --> 00:00:51.320 align:start position:0%
sorry about that the full list of API
00:00:51.320 --> 00:00:53.430 align:start position:0%
sorry about that the full list of API
changes<00:00:51.640><c> are</c><00:00:51.800><c> linked</c><00:00:52.039><c> in</c><00:00:52.160><c> the</c><00:00:52.280><c> description</c>
00:00:53.430 --> 00:00:53.440 align:start position:0%
changes are linked in the description
00:00:53.440 --> 00:00:55.990 align:start position:0%
changes are linked in the description
below<00:00:54.440><c> along</c><00:00:54.680><c> with</c><00:00:54.879><c> those</c><00:00:55.039><c> two</c><00:00:55.239><c> major</c><00:00:55.520><c> changes</c>
00:00:55.990 --> 00:00:56.000 align:start position:0%
below along with those two major changes
00:00:56.000 --> 00:00:59.389 align:start position:0%
below along with those two major changes
DH<00:00:56.520><c> now</c><00:00:56.680><c> supports</c><00:00:57.079><c> Minecraft</c><00:00:57.520><c> versions</c><00:00:58.399><c> 1.2.2</c>
00:00:59.389 --> 00:00:59.399 align:start position:0%
DH now supports Minecraft versions 1.2.2
00:00:59.399 --> 00:01:03.590 align:start position:0%
DH now supports Minecraft versions 1.2.2
1<00:01:00.000><c> 20.4</c><00:01:00.760><c> and</c><00:01:00.960><c> 1</c><00:01:01.640><c> 1206</c><00:01:02.640><c> bringing</c><00:01:02.960><c> the</c><00:01:03.199><c> supported</c>
00:01:03.590 --> 00:01:03.600 align:start position:0%
1 20.4 and 1 1206 bringing the supported
00:01:03.600 --> 00:01:05.789 align:start position:0%
1 20.4 and 1 1206 bringing the supported
version<00:01:03.960><c> count</c><00:01:04.239><c> up</c><00:01:04.360><c> to</c>
00:01:05.789 --> 00:01:05.799 align:start position:0%
version count up to
00:01:05.799 --> 00:01:08.670 align:start position:0%
version count up to
9<00:01:06.799><c> moving</c><00:01:07.119><c> along</c><00:01:07.759><c> there</c><00:01:07.960><c> were</c><00:01:08.240><c> several</c>
00:01:08.670 --> 00:01:08.680 align:start position:0%
9 moving along there were several
00:01:08.680 --> 00:01:10.670 align:start position:0%
9 moving along there were several
graphical<00:01:09.119><c> improvements</c><00:01:09.640><c> for</c><00:01:09.840><c> your</c><00:01:10.119><c> viewing</c>
00:01:10.670 --> 00:01:10.680 align:start position:0%
graphical improvements for your viewing
00:01:10.680 --> 00:01:13.109 align:start position:0%
graphical improvements for your viewing
pleasure<00:01:11.680><c> first</c><00:01:11.920><c> and</c><00:01:12.080><c> foremost</c><00:01:12.759><c> Hollow</c>
00:01:13.109 --> 00:01:13.119 align:start position:0%
pleasure first and foremost Hollow
00:01:13.119 --> 00:01:14.630 align:start position:0%
pleasure first and foremost Hollow
structures<00:01:13.560><c> will</c><00:01:13.759><c> no</c><00:01:13.920><c> longer</c><00:01:14.200><c> turn</c><00:01:14.400><c> into</c>
00:01:14.630 --> 00:01:14.640 align:start position:0%
structures will no longer turn into
00:01:14.640 --> 00:01:17.950 align:start position:0%
structures will no longer turn into
swiss<00:01:15.000><c> cheese</c><00:01:15.400><c> at</c><00:01:15.560><c> lower</c><00:01:15.840><c> detail</c>
00:01:17.950 --> 00:01:17.960 align:start position:0%
swiss cheese at lower detail
00:01:17.960 --> 00:01:20.190 align:start position:0%
swiss cheese at lower detail
levels<00:01:18.960><c> in</c><00:01:19.040><c> order</c><00:01:19.280><c> to</c><00:01:19.439><c> help</c><00:01:19.680><c> smooth</c><00:01:20.040><c> the</c>
00:01:20.190 --> 00:01:20.200 align:start position:0%
levels in order to help smooth the
00:01:20.200 --> 00:01:22.149 align:start position:0%
levels in order to help smooth the
transition<00:01:20.799><c> between</c><00:01:21.159><c> vanilla</c><00:01:21.600><c> and</c><00:01:21.720><c> LOD</c>
00:01:22.149 --> 00:01:22.159 align:start position:0%
transition between vanilla and LOD
00:01:22.159 --> 00:01:26.030 align:start position:0%
transition between vanilla and LOD
chunks<00:01:22.880><c> grass</c><00:01:23.159><c> will</c><00:01:23.360><c> now</c><00:01:23.520><c> fade</c><00:01:23.799><c> from</c><00:01:24.079><c> green</c><00:01:24.360><c> to</c>
00:01:26.030 --> 00:01:26.040 align:start position:0%
chunks grass will now fade from green to
00:01:26.040 --> 00:01:28.510 align:start position:0%
chunks grass will now fade from green to
Brown<00:01:27.040><c> well</c><00:01:27.200><c> I</c><00:01:27.320><c> don't</c><00:01:27.560><c> recommend</c><00:01:28.040><c> using</c><00:01:28.360><c> this</c>
00:01:28.510 --> 00:01:28.520 align:start position:0%
Brown well I don't recommend using this
00:01:28.520 --> 00:01:29.950 align:start position:0%
Brown well I don't recommend using this
setting<00:01:28.840><c> unless</c><00:01:29.119><c> you</c><00:01:29.240><c> want</c><00:01:29.360><c> to</c><00:01:29.479><c> stretch</c><00:01:29.759><c> your</c>
00:01:29.950 --> 00:01:29.960 align:start position:0%
setting unless you want to stretch your
00:01:29.960 --> 00:01:32.469 align:start position:0%
setting unless you want to stretch your
your<00:01:30.079><c> GPU</c><00:01:30.439><c> to</c><00:01:30.600><c> the</c><00:01:30.759><c> max</c><00:01:31.479><c> you</c><00:01:31.640><c> can</c><00:01:31.880><c> now</c><00:01:32.040><c> render</c>
00:01:32.469 --> 00:01:32.479 align:start position:0%
your GPU to the max you can now render
00:01:32.479 --> 00:01:34.310 align:start position:0%
your GPU to the max you can now render
vertical<00:01:32.960><c> structures</c><00:01:33.439><c> like</c><00:01:33.640><c> pixelart</c><00:01:34.159><c> with</c>
00:01:34.310 --> 00:01:34.320 align:start position:0%
vertical structures like pixelart with
00:01:34.320 --> 00:01:38.429 align:start position:0%
vertical structures like pixelart with
almost<00:01:34.680><c> no</c><00:01:34.920><c> quality</c>
00:01:38.429 --> 00:01:38.439 align:start position:0%
00:01:38.439 --> 00:01:40.990 align:start position:0%
loss<00:01:39.439><c> along</c><00:01:39.759><c> with</c><00:01:39.920><c> all</c><00:01:40.200><c> those</c><00:01:40.399><c> new</c><00:01:40.640><c> visual</c>
00:01:40.990 --> 00:01:41.000 align:start position:0%
loss along with all those new visual
00:01:41.000 --> 00:01:43.230 align:start position:0%
loss along with all those new visual
changes<00:01:41.640><c> there</c><00:01:41.759><c> were</c><00:01:42.040><c> several</c><00:01:42.479><c> large</c><00:01:42.840><c> backend</c>
00:01:43.230 --> 00:01:43.240 align:start position:0%
changes there were several large backend
00:01:43.240 --> 00:01:45.590 align:start position:0%
changes there were several large backend
changes<00:01:43.640><c> as</c><00:01:43.799><c> well</c><00:01:44.520><c> the</c><00:01:44.680><c> largest</c><00:01:45.040><c> of</c><00:01:45.240><c> which</c><00:01:45.439><c> was</c>
00:01:45.590 --> 00:01:45.600 align:start position:0%
changes as well the largest of which was
00:01:45.600 --> 00:01:48.190 align:start position:0%
changes as well the largest of which was
the<00:01:45.880><c> change</c><00:01:46.159><c> to</c><00:01:46.360><c> dh's</c><00:01:47.040><c> database</c><00:01:47.520><c> format</c><00:01:48.040><c> to</c>
00:01:48.190 --> 00:01:48.200 align:start position:0%
the change to dh's database format to
00:01:48.200 --> 00:01:50.990 align:start position:0%
the change to dh's database format to
address<00:01:48.560><c> two</c><00:01:48.799><c> major</c><00:01:49.159><c> issues</c><00:01:50.159><c> but</c><00:01:50.320><c> don't</c><00:01:50.520><c> worry</c>
00:01:50.990 --> 00:01:51.000 align:start position:0%
address two major issues but don't worry
00:01:51.000 --> 00:01:52.830 align:start position:0%
address two major issues but don't worry
you<00:01:51.079><c> won't</c><00:01:51.320><c> have</c><00:01:51.439><c> to</c><00:01:51.560><c> regenerate</c><00:01:52.119><c> anything</c>
00:01:52.830 --> 00:01:52.840 align:start position:0%
you won't have to regenerate anything
00:01:52.840 --> 00:01:54.429 align:start position:0%
you won't have to regenerate anything
just<00:01:53.000><c> launch</c><00:01:53.280><c> your</c><00:01:53.439><c> world</c><00:01:53.719><c> and</c><00:01:53.920><c> DH</c><00:01:54.280><c> will</c>
00:01:54.429 --> 00:01:54.439 align:start position:0%
just launch your world and DH will
00:01:54.439 --> 00:01:57.069 align:start position:0%
just launch your world and DH will
automatically<00:01:55.000><c> migrate</c><00:01:55.320><c> to</c><00:01:55.439><c> the</c><00:01:55.560><c> new</c><00:01:56.079><c> version</c>
00:01:57.069 --> 00:01:57.079 align:start position:0%
automatically migrate to the new version
00:01:57.079 --> 00:01:58.910 align:start position:0%
automatically migrate to the new version
just<00:01:57.360><c> be</c><00:01:57.520><c> aware</c><00:01:57.799><c> that</c><00:01:57.920><c> it</c><00:01:58.039><c> will</c><00:01:58.280><c> take</c><00:01:58.439><c> a</c><00:01:58.600><c> while</c>
00:01:58.910 --> 00:01:58.920 align:start position:0%
just be aware that it will take a while
00:01:58.920 --> 00:02:00.749 align:start position:0%
just be aware that it will take a while
if<00:01:59.000><c> you</c><00:01:59.119><c> generated</c><00:01:59.560><c> a</c><00:01:59.600><c> lot</c><00:01:59.719><c> of</c><00:02:00.000><c> lods</c><00:02:00.439><c> and</c><00:02:00.600><c> have</c>
00:02:00.749 --> 00:02:00.759 align:start position:0%
if you generated a lot of lods and have
00:02:00.759 --> 00:02:02.950 align:start position:0%
if you generated a lot of lods and have
a<00:02:00.920><c> large</c>
00:02:02.950 --> 00:02:02.960 align:start position:0%
a large
00:02:02.960 --> 00:02:05.550 align:start position:0%
a large
database<00:02:03.960><c> one</c><00:02:04.119><c> of</c><00:02:04.360><c> those</c><00:02:04.600><c> issues</c><00:02:05.200><c> was</c><00:02:05.399><c> with</c>
00:02:05.550 --> 00:02:05.560 align:start position:0%
database one of those issues was with
00:02:05.560 --> 00:02:07.709 align:start position:0%
database one of those issues was with
World<00:02:05.840><c> gen</c><00:02:06.520><c> the</c><00:02:06.640><c> old</c><00:02:06.880><c> format</c><00:02:07.280><c> had</c><00:02:07.399><c> trouble</c>
00:02:07.709 --> 00:02:07.719 align:start position:0%
World gen the old format had trouble
00:02:07.719 --> 00:02:09.790 align:start position:0%
World gen the old format had trouble
determining<00:02:08.319><c> which</c><00:02:08.479><c> lods</c><00:02:09.039><c> were</c><00:02:09.319><c> or</c><00:02:09.479><c> weren't</c>
00:02:09.790 --> 00:02:09.800 align:start position:0%
determining which lods were or weren't
00:02:09.800 --> 00:02:11.949 align:start position:0%
determining which lods were or weren't
generated<00:02:10.679><c> which</c><00:02:10.920><c> caused</c><00:02:11.319><c> problems</c><00:02:11.680><c> like</c>
00:02:11.949 --> 00:02:11.959 align:start position:0%
generated which caused problems like
00:02:11.959 --> 00:02:15.589 align:start position:0%
generated which caused problems like
this<00:02:12.800><c> or</c><00:02:13.120><c> generating</c><00:02:13.560><c> areas</c><00:02:14.120><c> twice</c><00:02:15.120><c> luckily</c>
00:02:15.589 --> 00:02:15.599 align:start position:0%
this or generating areas twice luckily
00:02:15.599 --> 00:02:17.110 align:start position:0%
this or generating areas twice luckily
those<00:02:15.879><c> problems</c><00:02:16.120><c> are</c><00:02:16.319><c> both</c><00:02:16.519><c> solved</c><00:02:16.879><c> with</c><00:02:17.000><c> the</c>
00:02:17.110 --> 00:02:17.120 align:start position:0%
those problems are both solved with the
00:02:17.120 --> 00:02:19.790 align:start position:0%
those problems are both solved with the
new<00:02:17.319><c> system</c><00:02:18.280><c> and</c><00:02:18.440><c> as</c><00:02:18.560><c> a</c><00:02:18.720><c> nice</c><00:02:18.920><c> bonus</c><00:02:19.400><c> the</c><00:02:19.480><c> world</c>
00:02:19.790 --> 00:02:19.800 align:start position:0%
new system and as a nice bonus the world
00:02:19.800 --> 00:02:21.470 align:start position:0%
new system and as a nice bonus the world
generator<00:02:20.239><c> now</c><00:02:20.440><c> handles</c><00:02:20.800><c> extreme</c><00:02:21.120><c> render</c>
00:02:21.470 --> 00:02:21.480 align:start position:0%
generator now handles extreme render
00:02:21.480 --> 00:02:24.110 align:start position:0%
generator now handles extreme render
distances<00:02:22.120><c> much</c><00:02:22.360><c> better</c><00:02:23.360><c> so</c><00:02:23.599><c> if</c><00:02:23.720><c> you</c><00:02:23.879><c> want</c><00:02:24.000><c> to</c>
00:02:24.110 --> 00:02:24.120 align:start position:0%
distances much better so if you want to
00:02:24.120 --> 00:02:25.830 align:start position:0%
distances much better so if you want to
wait<00:02:24.319><c> the</c><00:02:24.440><c> 30</c><00:02:24.760><c> hours</c><00:02:25.080><c> to</c><00:02:25.239><c> generate</c><00:02:25.599><c> all</c><00:02:25.760><c> the</c>
00:02:25.830 --> 00:02:25.840 align:start position:0%
wait the 30 hours to generate all the
00:02:25.840 --> 00:02:28.710 align:start position:0%
wait the 30 hours to generate all the
way<00:02:25.959><c> out</c><00:02:26.080><c> to</c><00:02:26.239><c> 1024</c><00:02:26.840><c> render</c><00:02:27.200><c> distance</c><00:02:28.040><c> DH</c><00:02:28.519><c> will</c>
00:02:28.710 --> 00:02:28.720 align:start position:0%
way out to 1024 render distance DH will
00:02:28.720 --> 00:02:31.990 align:start position:0%
way out to 1024 render distance DH will
work<00:02:29.120><c> much</c><00:02:29.400><c> better</c>
00:02:31.990 --> 00:02:32.000 align:start position:0%
00:02:32.000 --> 00:02:33.790 align:start position:0%
along<00:02:32.239><c> with</c><00:02:32.360><c> the</c><00:02:32.480><c> new</c><00:02:32.640><c> world</c><00:02:32.879><c> gen</c><00:02:33.160><c> handling</c><00:02:33.640><c> we</c>
00:02:33.790 --> 00:02:33.800 align:start position:0%
along with the new world gen handling we
00:02:33.800 --> 00:02:35.710 align:start position:0%
along with the new world gen handling we
have<00:02:33.959><c> new</c><00:02:34.200><c> lossy</c><00:02:34.760><c> and</c><00:02:34.959><c> lossless</c><00:02:35.480><c> data</c>
00:02:35.710 --> 00:02:35.720 align:start position:0%
have new lossy and lossless data
00:02:35.720 --> 00:02:37.670 align:start position:0%
have new lossy and lossless data
compression<00:02:36.560><c> which</c><00:02:36.800><c> combined</c><00:02:37.239><c> can</c><00:02:37.360><c> reduce</c>
00:02:37.670 --> 00:02:37.680 align:start position:0%
compression which combined can reduce
00:02:37.680 --> 00:02:40.670 align:start position:0%
compression which combined can reduce
file<00:02:38.080><c> sizes</c><00:02:38.440><c> to</c><00:02:38.680><c> onethird</c><00:02:39.400><c> the</c><00:02:39.599><c> size</c><00:02:39.920><c> of</c>
00:02:40.670 --> 00:02:40.680 align:start position:0%
file sizes to onethird the size of
00:02:40.680 --> 00:02:42.949 align:start position:0%
file sizes to onethird the size of
dh2<00:02:41.680><c> just</c><00:02:41.840><c> be</c><00:02:41.959><c> aware</c><00:02:42.239><c> that</c><00:02:42.400><c> this</c><00:02:42.519><c> reduction</c>
00:02:42.949 --> 00:02:42.959 align:start position:0%
dh2 just be aware that this reduction
00:02:42.959 --> 00:02:44.990 align:start position:0%
dh2 just be aware that this reduction
won't<00:02:43.200><c> be</c><00:02:43.319><c> seen</c><00:02:43.560><c> for</c><00:02:43.760><c> old</c><00:02:44.000><c> migrated</c><00:02:44.480><c> worlds</c>
00:02:44.990 --> 00:02:45.000 align:start position:0%
won't be seen for old migrated worlds
00:02:45.000 --> 00:02:46.630 align:start position:0%
won't be seen for old migrated worlds
because<00:02:45.239><c> the</c><00:02:45.360><c> process</c><00:02:45.680><c> to</c><00:02:45.920><c> vacuum</c><00:02:46.239><c> a</c><00:02:46.360><c> large</c>
00:02:46.630 --> 00:02:46.640 align:start position:0%
because the process to vacuum a large
00:02:46.640 --> 00:02:49.030 align:start position:0%
because the process to vacuum a large
database<00:02:47.040><c> can</c><00:02:47.200><c> take</c><00:02:47.480><c> tens</c><00:02:47.760><c> of</c><00:02:47.959><c> minutes</c><00:02:48.800><c> and</c><00:02:48.920><c> we</c>
00:02:49.030 --> 00:02:49.040 align:start position:0%
database can take tens of minutes and we
00:02:49.040 --> 00:02:50.550 align:start position:0%
database can take tens of minutes and we
don't<00:02:49.200><c> want</c><00:02:49.280><c> to</c><00:02:49.440><c> make</c><00:02:49.599><c> you</c><00:02:49.800><c> wait</c><00:02:50.080><c> that</c><00:02:50.239><c> long</c><00:02:50.440><c> to</c>
00:02:50.550 --> 00:02:50.560 align:start position:0%
don't want to make you wait that long to
00:02:50.560 --> 00:02:52.110 align:start position:0%
don't want to make you wait that long to
load<00:02:50.800><c> into</c><00:02:51.000><c> a</c>
00:02:52.110 --> 00:02:52.120 align:start position:0%
load into a
00:02:52.120 --> 00:02:54.270 align:start position:0%
load into a
world<00:02:53.120><c> continuing</c><00:02:53.640><c> with</c><00:02:53.760><c> the</c><00:02:53.920><c> backend</c>
00:02:54.270 --> 00:02:54.280 align:start position:0%
world continuing with the backend
00:02:54.280 --> 00:02:55.910 align:start position:0%
world continuing with the backend
changes<00:02:54.920><c> we</c><00:02:55.040><c> have</c><00:02:55.159><c> a</c><00:02:55.280><c> few</c><00:02:55.519><c> performance</c>
00:02:55.910 --> 00:02:55.920 align:start position:0%
changes we have a few performance
00:02:55.920 --> 00:02:57.309 align:start position:0%
changes we have a few performance
improvements<00:02:56.360><c> y'all</c><00:02:56.560><c> will</c><00:02:56.680><c> be</c><00:02:56.840><c> very</c><00:02:57.000><c> excited</c>
00:02:57.309 --> 00:02:57.319 align:start position:0%
improvements y'all will be very excited
00:02:57.319 --> 00:03:00.070 align:start position:0%
improvements y'all will be very excited
to<00:02:57.440><c> hear</c><00:02:57.599><c> about</c><00:02:58.599><c> DH</c><00:02:59.040><c> is</c><00:02:59.200><c> now</c><00:02:59.360><c> significant</c><00:03:00.000><c> L</c>
00:03:00.070 --> 00:03:00.080 align:start position:0%
to hear about DH is now significant L
00:03:00.080 --> 00:03:02.670 align:start position:0%
to hear about DH is now significant L
more<00:03:00.200><c> memory</c><00:03:00.519><c> efficient</c><00:03:01.440><c> you</c><00:03:01.560><c> can</c><00:03:01.720><c> run</c><00:03:02.040><c> 512</c>
00:03:02.670 --> 00:03:02.680 align:start position:0%
more memory efficient you can run 512
00:03:02.680 --> 00:03:04.390 align:start position:0%
more memory efficient you can run 512
render<00:03:03.000><c> distance</c><00:03:03.760><c> assuming</c><00:03:04.080><c> you've</c><00:03:04.239><c> already</c>
00:03:04.390 --> 00:03:04.400 align:start position:0%
render distance assuming you've already
00:03:04.400 --> 00:03:05.949 align:start position:0%
render distance assuming you've already
waited<00:03:04.640><c> the</c><00:03:04.720><c> 8</c><00:03:04.920><c> hours</c><00:03:05.159><c> needed</c><00:03:05.400><c> to</c><00:03:05.480><c> generate</c><00:03:05.799><c> it</c>
00:03:05.949 --> 00:03:05.959 align:start position:0%
waited the 8 hours needed to generate it
00:03:05.959 --> 00:03:09.350 align:start position:0%
waited the 8 hours needed to generate it
all<00:03:06.599><c> with</c><00:03:06.720><c> only</c><00:03:06.920><c> 2</c><00:03:07.159><c> GB</c><00:03:07.519><c> of</c><00:03:07.920><c> memory</c><00:03:08.920><c> although</c>
00:03:09.350 --> 00:03:09.360 align:start position:0%
all with only 2 GB of memory although
00:03:09.360 --> 00:03:11.390 align:start position:0%
all with only 2 GB of memory although
I'd<00:03:09.560><c> still</c><00:03:09.840><c> recommend</c><00:03:10.239><c> four</c><00:03:10.519><c> or</c><00:03:10.760><c> more</c>
00:03:11.390 --> 00:03:11.400 align:start position:0%
I'd still recommend four or more
00:03:11.400 --> 00:03:12.750 align:start position:0%
I'd still recommend four or more
especially<00:03:11.799><c> if</c><00:03:11.879><c> you</c><00:03:12.000><c> want</c><00:03:12.120><c> to</c><00:03:12.239><c> run</c><00:03:12.400><c> the</c><00:03:12.519><c> world</c>
00:03:12.750 --> 00:03:12.760 align:start position:0%
especially if you want to run the world
00:03:12.760 --> 00:03:14.710 align:start position:0%
especially if you want to run the world
generator<00:03:13.560><c> since</c><00:03:13.840><c> that</c><00:03:14.000><c> uses</c><00:03:14.319><c> Minecraft</c>
00:03:14.710 --> 00:03:14.720 align:start position:0%
generator since that uses Minecraft
00:03:14.720 --> 00:03:16.630 align:start position:0%
generator since that uses Minecraft
world<00:03:14.959><c> gen</c><00:03:15.200><c> code</c><00:03:15.640><c> which</c><00:03:15.799><c> is</c><00:03:16.000><c> still</c><00:03:16.360><c> pretty</c>
00:03:16.630 --> 00:03:16.640 align:start position:0%
world gen code which is still pretty
00:03:16.640 --> 00:03:19.509 align:start position:0%
world gen code which is still pretty
memory
00:03:19.509 --> 00:03:19.519 align:start position:0%
00:03:19.519 --> 00:03:22.350 align:start position:0%
hungry<00:03:20.519><c> lastly</c><00:03:21.040><c> but</c><00:03:21.159><c> certainly</c><00:03:21.519><c> not</c><00:03:21.760><c> least</c>
00:03:22.350 --> 00:03:22.360 align:start position:0%
hungry lastly but certainly not least
00:03:22.360 --> 00:03:24.149 align:start position:0%
hungry lastly but certainly not least
thanks<00:03:22.560><c> to</c><00:03:22.720><c> null's</c><00:03:23.159><c> hard</c><00:03:23.360><c> work</c><00:03:23.680><c> we</c><00:03:23.879><c> now</c><00:03:24.040><c> have</c>
00:03:24.149 --> 00:03:24.159 align:start position:0%
thanks to null's hard work we now have
00:03:24.159 --> 00:03:25.990 align:start position:0%
thanks to null's hard work we now have
frustum<00:03:24.599><c> calling</c><00:03:25.319><c> which</c><00:03:25.480><c> means</c><00:03:25.680><c> you</c><00:03:25.799><c> can</c>
00:03:25.990 --> 00:03:26.000 align:start position:0%
frustum calling which means you can
00:03:26.000 --> 00:03:29.010 align:start position:0%
frustum calling which means you can
expect<00:03:26.280><c> a</c><00:03:26.519><c> significant</c><00:03:27.120><c> FPS</c><00:03:27.560><c> Improvement</c>
00:03:29.010 --> 00:03:29.020 align:start position:0%
expect a significant FPS Improvement
00:03:29.020 --> 00:03:30.750 align:start position:0%
expect a significant FPS Improvement
[Music]
00:03:30.750 --> 00:03:30.760 align:start position:0%
[Music]
00:03:30.760 --> 00:03:32.270 align:start position:0%
[Music]
apologies<00:03:31.200><c> for</c><00:03:31.360><c> the</c><00:03:31.480><c> long</c><00:03:31.720><c> time</c><00:03:31.959><c> between</c>
00:03:32.270 --> 00:03:32.280 align:start position:0%
apologies for the long time between
00:03:32.280 --> 00:03:34.270 align:start position:0%
apologies for the long time between
updates<00:03:33.000><c> I</c><00:03:33.080><c> was</c><00:03:33.239><c> hoping</c><00:03:33.480><c> to</c><00:03:33.599><c> have</c><00:03:33.720><c> a</c><00:03:33.879><c> smaller</c>
00:03:34.270 --> 00:03:34.280 align:start position:0%
updates I was hoping to have a smaller
00:03:34.280 --> 00:03:36.710 align:start position:0%
updates I was hoping to have a smaller
update<00:03:34.599><c> out</c><00:03:34.799><c> much</c><00:03:35.000><c> sooner</c><00:03:35.840><c> but</c><00:03:36.080><c> the</c><00:03:36.159><c> world</c><00:03:36.439><c> gen</c>
00:03:36.710 --> 00:03:36.720 align:start position:0%
update out much sooner but the world gen
00:03:36.720 --> 00:03:38.309 align:start position:0%
update out much sooner but the world gen
and<00:03:36.879><c> file</c><00:03:37.159><c> size</c><00:03:37.400><c> issues</c><00:03:37.760><c> ended</c><00:03:37.959><c> up</c><00:03:38.080><c> being</c>
00:03:38.309 --> 00:03:38.319 align:start position:0%
and file size issues ended up being
00:03:38.319 --> 00:03:40.070 align:start position:0%
and file size issues ended up being
something<00:03:38.599><c> I</c><00:03:38.720><c> couldn't</c><00:03:39.040><c> ignore</c><00:03:39.599><c> which</c><00:03:39.840><c> both</c>
00:03:40.070 --> 00:03:40.080 align:start position:0%
something I couldn't ignore which both
00:03:40.080 --> 00:03:41.949 align:start position:0%
something I couldn't ignore which both
required<00:03:40.599><c> major</c><00:03:40.959><c> changes</c><00:03:41.360><c> that</c><00:03:41.480><c> took</c><00:03:41.680><c> months</c>
00:03:41.949 --> 00:03:41.959 align:start position:0%
required major changes that took months
00:03:41.959 --> 00:03:44.550 align:start position:0%
required major changes that took months
to<00:03:42.280><c> finish</c><00:03:43.280><c> it</c><00:03:43.400><c> would</c><00:03:43.519><c> have</c><00:03:43.640><c> been</c><00:03:43.840><c> much</c><00:03:44.120><c> faster</c>
00:03:44.550 --> 00:03:44.560 align:start position:0%
to finish it would have been much faster
00:03:44.560 --> 00:03:46.229 align:start position:0%
to finish it would have been much faster
if<00:03:44.680><c> I</c><00:03:44.760><c> could</c><00:03:44.920><c> do</c><00:03:45.040><c> this</c>
00:03:46.229 --> 00:03:46.239 align:start position:0%
if I could do this
00:03:46.239 --> 00:03:48.070 align:start position:0%
if I could do this
full-time
00:03:48.070 --> 00:03:48.080 align:start position:0%
full-time
00:03:48.080 --> 00:03:54.830 align:start position:0%
full-time
H<00:03:49.080><c> hey</c><00:03:49.319><c> Mojang</c><00:03:50.319><c> are</c><00:03:50.439><c> you</c><00:03:50.640><c> hiring</c>
00:03:54.830 --> 00:03:54.840 align:start position:0%
00:03:54.840 --> 00:04:25.870 align:start position:0%
[Music]
00:04:25.870 --> 00:04:25.880 align:start position:0%
[Music]
00:04:25.880 --> 00:04:28.189 align:start position:0%
[Music]
I'm<00:04:26.880><c> call</c><00:04:27.199><c> me</c>
00:04:28.189 --> 00:04:28.199 align:start position:0%
I'm call me
00:04:28.199 --> 00:04:32.880 align:start position:0%
I'm call me
down<00:04:29.199><c> so</c><00:04:29.880><c> more</c>

396
package-lock.json generated
View File

@ -23,6 +23,7 @@
"simple-get": "^4.0.1", "simple-get": "^4.0.1",
"stripe": "^15.7.0", "stripe": "^15.7.0",
"tsc": "^2.0.4", "tsc": "^2.0.4",
"youtube-dl-exec": "^3.0.2",
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"devDependencies": { "devDependencies": {
@ -922,6 +923,15 @@
"dev": true, "dev": true,
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/@jclem/logfmt2": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/@jclem/logfmt2/-/logfmt2-2.4.3.tgz",
"integrity": "sha512-d7zluLlx+JRtVICF0+ghcrVdXBdE3eXrpIuFdcCcWxA3ABOyemkTySG4ha2AdsWFwAnh8tkB1vtyeZsWAbLumg==",
"engines": {
"node": ">= 14.x",
"npm": ">= 7.x"
}
},
"node_modules/@jridgewell/gen-mapping": { "node_modules/@jridgewell/gen-mapping": {
"version": "0.3.5", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
@ -986,6 +996,14 @@
"@jridgewell/sourcemap-codec": "^1.4.14" "@jridgewell/sourcemap-codec": "^1.4.14"
} }
}, },
"node_modules/@kikobeats/time-span": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@kikobeats/time-span/-/time-span-1.0.5.tgz",
"integrity": "sha512-txRAdmi35N1wnsLS1AO5mTlbY5Cv5/61WXqek2y3L9Q7u4mgdUVq819so5xe753hL5gYeLzlWoJ/VJfXg9nx8g==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@neondatabase/serverless": { "node_modules/@neondatabase/serverless": {
"version": "0.9.3", "version": "0.9.3",
"resolved": "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.9.3.tgz", "resolved": "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.9.3.tgz",
@ -2110,6 +2128,23 @@
"node": "*" "node": "*"
} }
}, },
"node_modules/bin-version-check": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-6.0.0.tgz",
"integrity": "sha512-k9TS/pADINX9UlErjAkbkxDer8C+WlguMwySI8sLMGLUMDvwuHmDx00yoHe7nxshgwtLBcMWQgrlwjzscUeQKg==",
"deprecated": "Renamed to binary-version-check: https://www.npmjs.com/package/binary-version-check",
"dependencies": {
"binary-version": "^7.1.0",
"semver": "^7.6.0",
"semver-truncate": "^3.0.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-extensions": { "node_modules/binary-extensions": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@ -2120,6 +2155,145 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/binary-version": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/binary-version/-/binary-version-7.1.0.tgz",
"integrity": "sha512-Iy//vPc3ANPNlIWd242Npqc8MK0a/i4kVcHDlDA6HNMv5zMxz4ulIFhOSYJVKw/8AbHdHy0CnGYEt1QqSXxPsw==",
"dependencies": {
"execa": "^8.0.1",
"find-versions": "^6.0.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/execa": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
"human-signals": "^5.0.0",
"is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
"onetime": "^6.0.0",
"signal-exit": "^4.1.0",
"strip-final-newline": "^3.0.0"
},
"engines": {
"node": ">=16.17"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/binary-version/node_modules/get-stream": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
"integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/human-signals": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
"integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"engines": {
"node": ">=16.17.0"
}
},
"node_modules/binary-version/node_modules/is-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/mimic-fn": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/npm-run-path": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
"integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dependencies": {
"path-key": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/onetime": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dependencies": {
"mimic-fn": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/path-key": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binary-version/node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/binary-version/node_modules/strip-final-newline": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/bplist-parser": { "node_modules/bplist-parser": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
@ -2473,6 +2647,17 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/convert-hrtime": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz",
"integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cookie": { "node_modules/cookie": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
@ -2522,7 +2707,6 @@
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"path-key": "^3.1.0", "path-key": "^3.1.0",
@ -2537,13 +2721,20 @@
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"es5-ext": "^0.10.50", "es5-ext": "^0.10.50",
"type": "^1.0.1" "type": "^1.0.1"
} }
}, },
"node_modules/dargs": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
"integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
"engines": {
"node": ">=8"
}
},
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.4", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -2561,6 +2752,32 @@
} }
} }
}, },
"node_modules/debug-fabulous": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-2.0.2.tgz",
"integrity": "sha512-XfAbX8/owqC+pjIg0/+3V1gp8TugJT7StX/TE1TYedjrRf7h7SgUAL/+gKoAQGPCLbSU5L5LPvDg4/cGn1E/WA==",
"dependencies": {
"debug": "^4",
"memoizee": "0.4"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/debug-logfmt": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/debug-logfmt/-/debug-logfmt-1.2.2.tgz",
"integrity": "sha512-MAPU+m9lzLMkxI8k6/kJ/MGLGNtHOsW8RHriLkRxe/jFFW2iXmiGGUG9aYTRIWo5ejOFqLB10HqZ6+TN4toQFQ==",
"dependencies": {
"@jclem/logfmt2": "~2.4.3",
"@kikobeats/time-span": "~1.0.2",
"debug-fabulous": "~2.0.2",
"pretty-ms": "~7.0.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/decompress-response": { "node_modules/decompress-response": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
@ -3241,7 +3458,6 @@
"version": "0.10.62", "version": "0.10.62",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
"integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
"dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -3257,7 +3473,6 @@
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"d": "1", "d": "1",
@ -3269,7 +3484,6 @@
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
"integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"d": "^1.0.1", "d": "^1.0.1",
@ -3280,7 +3494,6 @@
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"d": "1", "d": "1",
@ -4431,7 +4644,6 @@
"version": "0.3.5", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"d": "1", "d": "1",
@ -4484,7 +4696,6 @@
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
"integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"type": "^2.7.2" "type": "^2.7.2"
@ -4494,7 +4705,6 @@
"version": "2.7.2", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
"dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/extend": { "node_modules/extend": {
@ -4828,6 +5038,21 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/find-versions": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz",
"integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==",
"dependencies": {
"semver-regex": "^4.0.5",
"super-regex": "^1.0.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/flat-cache": { "node_modules/flat-cache": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
@ -4956,6 +5181,17 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/function-timeout": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz",
"integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/function.prototype.name": { "node_modules/function.prototype.name": {
"version": "1.1.6", "version": "1.1.6",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
@ -5918,7 +6154,6 @@
"version": "2.2.2", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/is-proto-prop": { "node_modules/is-proto-prop": {
@ -6061,6 +6296,14 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/is-unix": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/is-unix/-/is-unix-2.0.10.tgz",
"integrity": "sha512-CcasZSEOQUoE7JHy56se4wyRhdJfjohuMWYmceSTaDY4naKyd1fpLiY8rJsIT6AKfVstQAhHJOfPx7jcUxK61Q==",
"engines": {
"node": ">= 12"
}
},
"node_modules/is-weakref": { "node_modules/is-weakref": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@ -6108,7 +6351,6 @@
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/jest-worker": { "node_modules/jest-worker": {
@ -6422,23 +6664,10 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/lru-queue": { "node_modules/lru-queue": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
"integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"es5-ext": "~0.10.2" "es5-ext": "~0.10.2"
@ -6472,7 +6701,6 @@
"version": "0.4.15", "version": "0.4.15",
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
"integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"d": "^1.0.1", "d": "^1.0.1",
@ -6509,7 +6737,6 @@
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/merge2": { "node_modules/merge2": {
@ -6675,7 +6902,6 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
"dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/node-domexception": { "node_modules/node-domexception": {
@ -7044,6 +7270,14 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/parse-ms": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
"integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==",
"engines": {
"node": ">=6"
}
},
"node_modules/path-exists": { "node_modules/path-exists": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@ -7068,7 +7302,6 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -7390,6 +7623,20 @@
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/pretty-ms": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz",
"integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==",
"dependencies": {
"parse-ms": "^2.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/process": { "node_modules/process": {
"version": "0.11.10", "version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@ -7996,13 +8243,9 @@
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.5.4", "version": "7.6.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
"license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
}, },
@ -8010,6 +8253,31 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/semver-regex": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz",
"integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/semver-truncate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-3.0.0.tgz",
"integrity": "sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==",
"dependencies": {
"semver": "^7.3.5"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/serialize-javascript": { "node_modules/serialize-javascript": {
"version": "6.0.2", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
@ -8061,7 +8329,6 @@
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"shebang-regex": "^3.0.0" "shebang-regex": "^3.0.0"
@ -8074,7 +8341,6 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -8479,6 +8745,21 @@
"node": ">=12.*" "node": ">=12.*"
} }
}, },
"node_modules/super-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz",
"integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==",
"dependencies": {
"function-timeout": "^1.0.1",
"time-span": "^5.1.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/supports-color": { "node_modules/supports-color": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@ -8623,17 +8904,38 @@
"real-require": "^0.2.0" "real-require": "^0.2.0"
} }
}, },
"node_modules/time-span": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz",
"integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
"dependencies": {
"convert-hrtime": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/timers-ext": { "node_modules/timers-ext": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"es5-ext": "~0.10.46", "es5-ext": "~0.10.46",
"next-tick": "1" "next-tick": "1"
} }
}, },
"node_modules/tinyspawn": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/tinyspawn/-/tinyspawn-1.2.13.tgz",
"integrity": "sha512-XZG5oVXMvbGzxggFzLebCAoXBqRsA2Ew/UsZUguOGhC2699uID6GTA5tcuW2GH3s/i/thFYDuPRyaG3A46LwgA==",
"engines": {
"node": ">= 18"
}
},
"node_modules/titleize": { "node_modules/titleize": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
@ -8771,7 +9073,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
"dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/type-check": { "node_modules/type-check": {
@ -9153,7 +9454,6 @@
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"isexe": "^2.0.0" "isexe": "^2.0.0"
@ -9438,6 +9738,22 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/youtube-dl-exec": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-3.0.2.tgz",
"integrity": "sha512-kSNss5pkiZ7nXqh13m8pw1Os5s4t81RkpsZ7YozaJYVUDFrSXWKtvzhfaJ8dJH7QiK5qbeiuWs2z86lLuzMkRA==",
"hasInstallScript": true,
"dependencies": {
"bin-version-check": "~6.0.0",
"dargs": "~7.0.0",
"debug-logfmt": "~1.2.2",
"is-unix": "~2.0.10",
"tinyspawn": "~1.2.9"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/zod": { "node_modules/zod": {
"version": "3.22.4", "version": "3.22.4",
"resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz",

View File

@ -44,6 +44,7 @@
"simple-get": "^4.0.1", "simple-get": "^4.0.1",
"stripe": "^15.7.0", "stripe": "^15.7.0",
"tsc": "^2.0.4", "tsc": "^2.0.4",
"youtube-dl-exec": "^3.0.2",
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"xo": { "xo": {

View File

@ -5,6 +5,7 @@ import { db } from "../db/index.js";
import { articles, articles as articlesTable, signups as signupsTable, sites, users } from "../db/schemas.js"; import { articles, articles as articlesTable, signups as signupsTable, sites, users } from "../db/schemas.js";
import { authMiddleware, authMiddlewareFn } from "../modules/middleware.js"; import { authMiddleware, authMiddlewareFn } from "../modules/middleware.js";
import { jsonToCsv, getAccessToken, getVideoCaptions, getCaptionText, parseTextFromCaptions, createBlogFromCaptions, createArticleSlug, getVideoById, env } from "../utils/index.js"; import { jsonToCsv, getAccessToken, getVideoCaptions, getCaptionText, parseTextFromCaptions, createBlogFromCaptions, createArticleSlug, getVideoById, env } from "../utils/index.js";
import youtubeDl from "youtube-dl-exec";
/** /**
* *
@ -215,15 +216,39 @@ export const dashboardRoutes = (fastify, _, done) => {
} }
const access_token = await getAccessToken(fastify, req); const access_token = await getAccessToken(fastify, req);
const captions = await getVideoCaptions(access_token, req.body.video_id);
const preferred_caption_id = captions.find(x => x.snippet.language == 'en').id; let urlRegex = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;
let match = req.body.video_id.match(urlRegex);
if (!match) {
reply.status(400).send({
success: false,
message: "Invalid Youtube URL"
});
return;
}
// youtube-dl --write-sub --sub-lang en --skip-download URL
const result = await youtubeDl(req.body.video_id, {
skipDownload: true,
writeAutoSub: true,
subLang: "en",
dumpSingleJson: true,
});
const captions = await (await fetch(result.automatic_captions.en.find(x=>x.ext==="srv1").url)).text();
const caption_text = convertSRV1ToPlainText(captions);
// const captions = await getVideoCaptions(access_token, req.body.video_id);
// const preferred_caption_id = captions.find(x => x.snippet.language == 'en').id;
reply.send({ reply.send({
success: true success: true
}); });
const caption_body = await getCaptionText(access_token, preferred_caption_id); // const caption_body = await getCaptionText(access_token, preferred_caption_id);
const caption_text = parseTextFromCaptions(caption_body).substring(28); // const caption_text = parseTextFromCaptions(caption_body).substring(28);
// const caption_text
const video_data = await getVideoById(access_token, req.body.video_id); const video_data = await getVideoById(access_token, req.body.video_id);
@ -369,3 +394,24 @@ export const dashboardRoutes = (fastify, _, done) => {
done(); done();
}; };
function convertSRV1ToPlainText(transcript) {
// Define regular expression to extract text content
const textRegex = /<text[^>]+>(.*?)<\/text>/g;
// Initialize an empty array to hold the plain text lines
const plainTextLines = [];
// Match text segments using regular expression
let match;
while ((match = textRegex.exec(transcript)) !== null) {
// Extract text content and remove any HTML tags
const textContent = match[1].replace(/<[^>]+>/g, '');
// Add text content to the plain text lines array
plainTextLines.push(textContent);
}
// Join the plain text lines into a single string and return it
return plainTextLines.join('\n');
}

187
yarn.lock
View File

@ -225,6 +225,11 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz" resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz"
integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==
"@jclem/logfmt2@~2.4.3":
version "2.4.3"
resolved "https://registry.npmjs.org/@jclem/logfmt2/-/logfmt2-2.4.3.tgz"
integrity sha512-d7zluLlx+JRtVICF0+ghcrVdXBdE3eXrpIuFdcCcWxA3ABOyemkTySG4ha2AdsWFwAnh8tkB1vtyeZsWAbLumg==
"@jridgewell/gen-mapping@^0.3.5": "@jridgewell/gen-mapping@^0.3.5":
version "0.3.5" version "0.3.5"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
@ -265,6 +270,11 @@
"@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14" "@jridgewell/sourcemap-codec" "^1.4.14"
"@kikobeats/time-span@~1.0.2":
version "1.0.5"
resolved "https://registry.npmjs.org/@kikobeats/time-span/-/time-span-1.0.5.tgz"
integrity sha512-txRAdmi35N1wnsLS1AO5mTlbY5Cv5/61WXqek2y3L9Q7u4mgdUVq819so5xe753hL5gYeLzlWoJ/VJfXg9nx8g==
"@neondatabase/serverless@>=0.1": "@neondatabase/serverless@>=0.1":
version "0.9.3" version "0.9.3"
resolved "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.9.3.tgz" resolved "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.9.3.tgz"
@ -911,11 +921,28 @@ bignumber.js@^9.0.0:
resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz"
integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
bin-version-check@~6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-6.0.0.tgz"
integrity sha512-k9TS/pADINX9UlErjAkbkxDer8C+WlguMwySI8sLMGLUMDvwuHmDx00yoHe7nxshgwtLBcMWQgrlwjzscUeQKg==
dependencies:
binary-version "^7.1.0"
semver "^7.6.0"
semver-truncate "^3.0.0"
binary-extensions@^2.0.0: binary-extensions@^2.0.0:
version "2.2.0" version "2.2.0"
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
binary-version@^7.1.0:
version "7.1.0"
resolved "https://registry.npmjs.org/binary-version/-/binary-version-7.1.0.tgz"
integrity sha512-Iy//vPc3ANPNlIWd242Npqc8MK0a/i4kVcHDlDA6HNMv5zMxz4ulIFhOSYJVKw/8AbHdHy0CnGYEt1QqSXxPsw==
dependencies:
execa "^8.0.1"
find-versions "^6.0.0"
bplist-parser@^0.2.0: bplist-parser@^0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz" resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz"
@ -1136,6 +1163,11 @@ confusing-browser-globals@1.0.11:
resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz" resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz"
integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
convert-hrtime@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz"
integrity sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==
cookie-signature@^1.1.0: cookie-signature@^1.1.0:
version "1.2.1" version "1.2.1"
resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.1.tgz" resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.1.tgz"
@ -1173,6 +1205,29 @@ d@^1.0.1, d@1:
es5-ext "^0.10.50" es5-ext "^0.10.50"
type "^1.0.1" type "^1.0.1"
dargs@~7.0.0:
version "7.0.0"
resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz"
integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
debug-fabulous@~2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-2.0.2.tgz"
integrity sha512-XfAbX8/owqC+pjIg0/+3V1gp8TugJT7StX/TE1TYedjrRf7h7SgUAL/+gKoAQGPCLbSU5L5LPvDg4/cGn1E/WA==
dependencies:
debug "^4"
memoizee "0.4"
debug-logfmt@~1.2.2:
version "1.2.2"
resolved "https://registry.npmjs.org/debug-logfmt/-/debug-logfmt-1.2.2.tgz"
integrity sha512-MAPU+m9lzLMkxI8k6/kJ/MGLGNtHOsW8RHriLkRxe/jFFW2iXmiGGUG9aYTRIWo5ejOFqLB10HqZ6+TN4toQFQ==
dependencies:
"@jclem/logfmt2" "~2.4.3"
"@kikobeats/time-span" "~1.0.2"
debug-fabulous "~2.0.2"
pretty-ms "~7.0.1"
debug@^3.2.7: debug@^3.2.7:
version "3.2.7" version "3.2.7"
resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
@ -1180,7 +1235,7 @@ debug@^3.2.7:
dependencies: dependencies:
ms "^2.1.1" ms "^2.1.1"
debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@4: debug@^4, debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@4:
version "4.3.4" version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@ -1911,6 +1966,21 @@ execa@^7.1.1:
signal-exit "^3.0.7" signal-exit "^3.0.7"
strip-final-newline "^3.0.0" strip-final-newline "^3.0.0"
execa@^8.0.1:
version "8.0.1"
resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz"
integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
dependencies:
cross-spawn "^7.0.3"
get-stream "^8.0.1"
human-signals "^5.0.0"
is-stream "^3.0.0"
merge-stream "^2.0.0"
npm-run-path "^5.1.0"
onetime "^6.0.0"
signal-exit "^4.1.0"
strip-final-newline "^3.0.0"
ext@^1.1.2: ext@^1.1.2:
version "1.7.0" version "1.7.0"
resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz"
@ -2111,6 +2181,14 @@ find-up@^6.3.0:
locate-path "^7.1.0" locate-path "^7.1.0"
path-exists "^5.0.0" path-exists "^5.0.0"
find-versions@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz"
integrity sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==
dependencies:
semver-regex "^4.0.5"
super-regex "^1.0.0"
flat-cache@^3.0.4: flat-cache@^3.0.4:
version "3.2.0" version "3.2.0"
resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz"
@ -2174,6 +2252,11 @@ function-bind@^1.1.2:
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
function-timeout@^1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz"
integrity sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==
function.prototype.name@^1.1.6: function.prototype.name@^1.1.6:
version "1.1.6" version "1.1.6"
resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz"
@ -2249,6 +2332,11 @@ get-stream@^6.0.0, get-stream@^6.0.1:
resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
get-stream@^8.0.1:
version "8.0.1"
resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz"
integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
get-symbol-description@^1.0.0: get-symbol-description@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
@ -2484,6 +2572,11 @@ human-signals@^4.3.0:
resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz" resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz"
integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
human-signals@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz"
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
humanize-ms@^1.2.1: humanize-ms@^1.2.1:
version "1.2.1" version "1.2.1"
resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz"
@ -2803,6 +2896,11 @@ is-unicode-supported@^0.1.0:
resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
is-unix@~2.0.10:
version "2.0.10"
resolved "https://registry.npmjs.org/is-unix/-/is-unix-2.0.10.tgz"
integrity sha512-CcasZSEOQUoE7JHy56se4wyRhdJfjohuMWYmceSTaDY4naKyd1fpLiY8rJsIT6AKfVstQAhHJOfPx7jcUxK61Q==
is-weakref@^1.0.2: is-weakref@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
@ -3032,13 +3130,6 @@ lowercase-keys@^1.0.0:
resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz"
integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
dependencies:
yallist "^4.0.0"
lru-queue@^0.1.0: lru-queue@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz" resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz"
@ -3053,7 +3144,7 @@ mailtrap@^3.3.0:
dependencies: dependencies:
axios ">=0.27" axios ">=0.27"
memoizee@^0.4.15: memoizee@^0.4.15, memoizee@0.4:
version "0.4.15" version "0.4.15"
resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz" resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz"
integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==
@ -3221,9 +3312,9 @@ npm-run-path@^4.0.1:
path-key "^3.0.0" path-key "^3.0.0"
npm-run-path@^5.1.0: npm-run-path@^5.1.0:
version "5.1.0" version "5.3.0"
resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz"
integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==
dependencies: dependencies:
path-key "^4.0.0" path-key "^4.0.0"
@ -3416,6 +3507,11 @@ parse-json@^5.0.0, parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0" json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6" lines-and-columns "^1.1.6"
parse-ms@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz"
integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==
path-exists@^4.0.0: path-exists@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
@ -3664,6 +3760,13 @@ prettier@^3.0.0, prettier@^3.1.1, prettier@>=3.0.0:
resolved "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz" resolved "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz"
integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==
pretty-ms@~7.0.1:
version "7.0.1"
resolved "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz"
integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==
dependencies:
parse-ms "^2.1.0"
process-warning@^2.0.0: process-warning@^2.0.0:
version "2.2.0" version "2.2.0"
resolved "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz" resolved "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz"
@ -3929,6 +4032,18 @@ secure-json-parse@^2.4.0, secure-json-parse@^2.7.0:
resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz" resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz"
integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==
semver-regex@^4.0.5:
version "4.0.5"
resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz"
integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==
semver-truncate@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-3.0.0.tgz"
integrity sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==
dependencies:
semver "^7.3.5"
semver@^5.7.2: semver@^5.7.2:
version "5.7.2" version "5.7.2"
resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz"
@ -3939,12 +4054,10 @@ semver@^6.3.0:
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.0.0, semver@^7.5.3, semver@^7.5.4: semver@^7.0.0, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
version "7.5.4" version "7.6.2"
resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
dependencies:
lru-cache "^6.0.0"
"semver@2 || 3 || 4 || 5": "semver@2 || 3 || 4 || 5":
version "5.7.2" version "5.7.2"
@ -4030,6 +4143,11 @@ signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
signal-exit@^4.1.0:
version "4.1.0"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
simple-concat@^1.0.0: simple-concat@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"
@ -4203,6 +4321,14 @@ stripe@^15.7.0:
"@types/node" ">=8.1.0" "@types/node" ">=8.1.0"
qs "^6.11.0" qs "^6.11.0"
super-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz"
integrity sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==
dependencies:
function-timeout "^1.0.1"
time-span "^5.1.0"
supports-color@^5.3.0: supports-color@^5.3.0:
version "5.5.0" version "5.5.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
@ -4288,6 +4414,13 @@ thread-stream@^2.0.0:
dependencies: dependencies:
real-require "^0.2.0" real-require "^0.2.0"
time-span@^5.1.0:
version "5.1.0"
resolved "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz"
integrity sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==
dependencies:
convert-hrtime "^5.0.0"
timers-ext@^0.1.7: timers-ext@^0.1.7:
version "0.1.7" version "0.1.7"
resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz" resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz"
@ -4296,6 +4429,11 @@ timers-ext@^0.1.7:
es5-ext "~0.10.46" es5-ext "~0.10.46"
next-tick "1" next-tick "1"
tinyspawn@~1.2.9:
version "1.2.13"
resolved "https://registry.npmjs.org/tinyspawn/-/tinyspawn-1.2.13.tgz"
integrity sha512-XZG5oVXMvbGzxggFzLebCAoXBqRsA2Ew/UsZUguOGhC2699uID6GTA5tcuW2GH3s/i/thFYDuPRyaG3A46LwgA==
titleize@^3.0.0: titleize@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz" resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz"
@ -4670,7 +4808,7 @@ xtend@^4.0.0:
resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
yallist@^4.0.0, yallist@4.0.0: yallist@4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
@ -4685,6 +4823,17 @@ yocto-queue@^1.0.0:
resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
youtube-dl-exec@^3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-3.0.2.tgz"
integrity sha512-kSNss5pkiZ7nXqh13m8pw1Os5s4t81RkpsZ7YozaJYVUDFrSXWKtvzhfaJ8dJH7QiK5qbeiuWs2z86lLuzMkRA==
dependencies:
bin-version-check "~6.0.0"
dargs "~7.0.0"
debug-logfmt "~1.2.2"
is-unix "~2.0.10"
tinyspawn "~1.2.9"
zod@^3.22.4: zod@^3.22.4:
version "3.22.4" version "3.22.4"
resolved "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz" resolved "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz"