jbilcke-hf HF staff commited on
Commit
bda5f6b
β€’
0 Parent(s):

initial commit πŸŽ₯

Browse files
.dockerignore ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ node_modules
2
+ npm-debug.log
3
+ models
4
+ sandbox
5
+ audio.pipe
6
+ video.pipe
.gitignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ node_modules
2
+ *.log
3
+ *.bin
4
+ .DS_Store
5
+ .venv
6
+ models/
7
+ sandbox/
8
+ audio.pipe
9
+ video.pipe
.nvmrc ADDED
@@ -0,0 +1 @@
 
 
1
+ v18.16.0
Dockerfile ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18
2
+
3
+
4
+ ARG DEBIAN_FRONTEND=noninteractive
5
+
6
+ RUN apt update
7
+
8
+ RUN apt --yes install ffmpeg
9
+
10
+ # Set up a new user named "user" with user ID 1000
11
+ RUN useradd -o -u 1000 user
12
+
13
+ # Switch to the "user" user
14
+ USER user
15
+
16
+ # Set home to the user's home directory
17
+ ENV HOME=/home/user \
18
+ PATH=/home/user/.local/bin:$PATH
19
+
20
+ # Set the working directory to the user's home directory
21
+ WORKDIR $HOME/app
22
+
23
+ # Install app dependencies
24
+ # A wildcard is used to ensure both package.json AND package-lock.json are copied
25
+ # where available (npm@5+)
26
+ COPY --chown=user package*.json $HOME/app
27
+
28
+ RUN npm install
29
+
30
+ # Copy the current directory contents into the container at $HOME/app setting the owner to the user
31
+ COPY --chown=user . $HOME/app
32
+
33
+ EXPOSE 7860 1935 8000
34
+
35
+ CMD [ "npm", "run", "start" ]
LICENSE.txt ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
README.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: video-service
3
+ emoji: πŸŽ₯
4
+ colorFrom: grey
5
+ colorTo: purple
6
+ sdk: docker
7
+ pinned: false
8
+ app_port: 7860
9
+ ---
10
+
11
+ A micro service to generate videos
package-lock.json ADDED
@@ -0,0 +1,2436 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "video-service",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "video-service",
9
+ "version": "1.0.0",
10
+ "license": "Apache License",
11
+ "dependencies": {
12
+ "@gradio/client": "^0.1.4",
13
+ "@types/express": "^4.17.17",
14
+ "@types/uuid": "^9.0.2",
15
+ "express": "^4.18.2",
16
+ "fluent-ffmpeg": "^2.1.2",
17
+ "fs-extra": "^11.1.1",
18
+ "node-fetch": "^3.3.1",
19
+ "puppeteer": "^20.8.0",
20
+ "temp-dir": "^3.0.0",
21
+ "ts-node": "^10.9.1",
22
+ "uuid": "^9.0.0"
23
+ }
24
+ },
25
+ "node_modules/@babel/code-frame": {
26
+ "version": "7.22.5",
27
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
28
+ "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
29
+ "dependencies": {
30
+ "@babel/highlight": "^7.22.5"
31
+ },
32
+ "engines": {
33
+ "node": ">=6.9.0"
34
+ }
35
+ },
36
+ "node_modules/@babel/helper-validator-identifier": {
37
+ "version": "7.22.5",
38
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
39
+ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
40
+ "engines": {
41
+ "node": ">=6.9.0"
42
+ }
43
+ },
44
+ "node_modules/@babel/highlight": {
45
+ "version": "7.22.5",
46
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
47
+ "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
48
+ "dependencies": {
49
+ "@babel/helper-validator-identifier": "^7.22.5",
50
+ "chalk": "^2.0.0",
51
+ "js-tokens": "^4.0.0"
52
+ },
53
+ "engines": {
54
+ "node": ">=6.9.0"
55
+ }
56
+ },
57
+ "node_modules/@cspotcode/source-map-support": {
58
+ "version": "0.8.1",
59
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
60
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
61
+ "dependencies": {
62
+ "@jridgewell/trace-mapping": "0.3.9"
63
+ },
64
+ "engines": {
65
+ "node": ">=12"
66
+ }
67
+ },
68
+ "node_modules/@gradio/client": {
69
+ "version": "0.1.4",
70
+ "resolved": "https://registry.npmjs.org/@gradio/client/-/client-0.1.4.tgz",
71
+ "integrity": "sha512-iGu5PYpqOG6jq0l3+XoB8JCQ4ppoXSSb4T9IK2i1JckY2WXVW/x/MCVTc8WTouyu6o0h46shGWSjMSBr9Xnlug==",
72
+ "dependencies": {
73
+ "bufferutil": "^4.0.7",
74
+ "semiver": "^1.1.0",
75
+ "ws": "^8.13.0"
76
+ },
77
+ "engines": {
78
+ "node": ">=18.0.0"
79
+ }
80
+ },
81
+ "node_modules/@jridgewell/resolve-uri": {
82
+ "version": "3.1.1",
83
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
84
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
85
+ "engines": {
86
+ "node": ">=6.0.0"
87
+ }
88
+ },
89
+ "node_modules/@jridgewell/sourcemap-codec": {
90
+ "version": "1.4.15",
91
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
92
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
93
+ },
94
+ "node_modules/@jridgewell/trace-mapping": {
95
+ "version": "0.3.9",
96
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
97
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
98
+ "dependencies": {
99
+ "@jridgewell/resolve-uri": "^3.0.3",
100
+ "@jridgewell/sourcemap-codec": "^1.4.10"
101
+ }
102
+ },
103
+ "node_modules/@puppeteer/browsers": {
104
+ "version": "1.4.3",
105
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.3.tgz",
106
+ "integrity": "sha512-8Jfkpb8qhPQhMsNBmIY8b6+ic2kvcmHZlyvifmcNKBC5jNZf3MAKq3gryKfmrjFAYFl3naPjiKljPUq5wuolfQ==",
107
+ "dependencies": {
108
+ "debug": "4.3.4",
109
+ "extract-zip": "2.0.1",
110
+ "progress": "2.0.3",
111
+ "proxy-agent": "6.2.1",
112
+ "tar-fs": "3.0.3",
113
+ "unbzip2-stream": "1.4.3",
114
+ "yargs": "17.7.1"
115
+ },
116
+ "bin": {
117
+ "browsers": "lib/cjs/main-cli.js"
118
+ },
119
+ "engines": {
120
+ "node": ">=16.3.0"
121
+ },
122
+ "peerDependencies": {
123
+ "typescript": ">= 4.7.4"
124
+ },
125
+ "peerDependenciesMeta": {
126
+ "typescript": {
127
+ "optional": true
128
+ }
129
+ }
130
+ },
131
+ "node_modules/@puppeteer/browsers/node_modules/debug": {
132
+ "version": "4.3.4",
133
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
134
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
135
+ "dependencies": {
136
+ "ms": "2.1.2"
137
+ },
138
+ "engines": {
139
+ "node": ">=6.0"
140
+ },
141
+ "peerDependenciesMeta": {
142
+ "supports-color": {
143
+ "optional": true
144
+ }
145
+ }
146
+ },
147
+ "node_modules/@puppeteer/browsers/node_modules/ms": {
148
+ "version": "2.1.2",
149
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
150
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
151
+ },
152
+ "node_modules/@tsconfig/node10": {
153
+ "version": "1.0.9",
154
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
155
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
156
+ },
157
+ "node_modules/@tsconfig/node12": {
158
+ "version": "1.0.11",
159
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
160
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
161
+ },
162
+ "node_modules/@tsconfig/node14": {
163
+ "version": "1.0.3",
164
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
165
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
166
+ },
167
+ "node_modules/@tsconfig/node16": {
168
+ "version": "1.0.4",
169
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
170
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="
171
+ },
172
+ "node_modules/@types/body-parser": {
173
+ "version": "1.19.2",
174
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
175
+ "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
176
+ "dependencies": {
177
+ "@types/connect": "*",
178
+ "@types/node": "*"
179
+ }
180
+ },
181
+ "node_modules/@types/connect": {
182
+ "version": "3.4.35",
183
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
184
+ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
185
+ "dependencies": {
186
+ "@types/node": "*"
187
+ }
188
+ },
189
+ "node_modules/@types/express": {
190
+ "version": "4.17.17",
191
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
192
+ "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
193
+ "dependencies": {
194
+ "@types/body-parser": "*",
195
+ "@types/express-serve-static-core": "^4.17.33",
196
+ "@types/qs": "*",
197
+ "@types/serve-static": "*"
198
+ }
199
+ },
200
+ "node_modules/@types/express-serve-static-core": {
201
+ "version": "4.17.35",
202
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz",
203
+ "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==",
204
+ "dependencies": {
205
+ "@types/node": "*",
206
+ "@types/qs": "*",
207
+ "@types/range-parser": "*",
208
+ "@types/send": "*"
209
+ }
210
+ },
211
+ "node_modules/@types/http-errors": {
212
+ "version": "2.0.1",
213
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz",
214
+ "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ=="
215
+ },
216
+ "node_modules/@types/mime": {
217
+ "version": "1.3.2",
218
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
219
+ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
220
+ },
221
+ "node_modules/@types/node": {
222
+ "version": "20.4.1",
223
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz",
224
+ "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg=="
225
+ },
226
+ "node_modules/@types/qs": {
227
+ "version": "6.9.7",
228
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
229
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
230
+ },
231
+ "node_modules/@types/range-parser": {
232
+ "version": "1.2.4",
233
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
234
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
235
+ },
236
+ "node_modules/@types/send": {
237
+ "version": "0.17.1",
238
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz",
239
+ "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
240
+ "dependencies": {
241
+ "@types/mime": "^1",
242
+ "@types/node": "*"
243
+ }
244
+ },
245
+ "node_modules/@types/serve-static": {
246
+ "version": "1.15.2",
247
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz",
248
+ "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==",
249
+ "dependencies": {
250
+ "@types/http-errors": "*",
251
+ "@types/mime": "*",
252
+ "@types/node": "*"
253
+ }
254
+ },
255
+ "node_modules/@types/uuid": {
256
+ "version": "9.0.2",
257
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.2.tgz",
258
+ "integrity": "sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ=="
259
+ },
260
+ "node_modules/@types/yauzl": {
261
+ "version": "2.10.0",
262
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
263
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
264
+ "optional": true,
265
+ "dependencies": {
266
+ "@types/node": "*"
267
+ }
268
+ },
269
+ "node_modules/accepts": {
270
+ "version": "1.3.8",
271
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
272
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
273
+ "dependencies": {
274
+ "mime-types": "~2.1.34",
275
+ "negotiator": "0.6.3"
276
+ },
277
+ "engines": {
278
+ "node": ">= 0.6"
279
+ }
280
+ },
281
+ "node_modules/acorn": {
282
+ "version": "8.10.0",
283
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
284
+ "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
285
+ "bin": {
286
+ "acorn": "bin/acorn"
287
+ },
288
+ "engines": {
289
+ "node": ">=0.4.0"
290
+ }
291
+ },
292
+ "node_modules/acorn-walk": {
293
+ "version": "8.2.0",
294
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
295
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
296
+ "engines": {
297
+ "node": ">=0.4.0"
298
+ }
299
+ },
300
+ "node_modules/agent-base": {
301
+ "version": "7.1.0",
302
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
303
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
304
+ "dependencies": {
305
+ "debug": "^4.3.4"
306
+ },
307
+ "engines": {
308
+ "node": ">= 14"
309
+ }
310
+ },
311
+ "node_modules/agent-base/node_modules/debug": {
312
+ "version": "4.3.4",
313
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
314
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
315
+ "dependencies": {
316
+ "ms": "2.1.2"
317
+ },
318
+ "engines": {
319
+ "node": ">=6.0"
320
+ },
321
+ "peerDependenciesMeta": {
322
+ "supports-color": {
323
+ "optional": true
324
+ }
325
+ }
326
+ },
327
+ "node_modules/agent-base/node_modules/ms": {
328
+ "version": "2.1.2",
329
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
330
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
331
+ },
332
+ "node_modules/ansi-regex": {
333
+ "version": "5.0.1",
334
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
335
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
336
+ "engines": {
337
+ "node": ">=8"
338
+ }
339
+ },
340
+ "node_modules/ansi-styles": {
341
+ "version": "3.2.1",
342
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
343
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
344
+ "dependencies": {
345
+ "color-convert": "^1.9.0"
346
+ },
347
+ "engines": {
348
+ "node": ">=4"
349
+ }
350
+ },
351
+ "node_modules/arg": {
352
+ "version": "4.1.3",
353
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
354
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
355
+ },
356
+ "node_modules/argparse": {
357
+ "version": "2.0.1",
358
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
359
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
360
+ },
361
+ "node_modules/array-flatten": {
362
+ "version": "1.1.1",
363
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
364
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
365
+ },
366
+ "node_modules/ast-types": {
367
+ "version": "0.13.4",
368
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
369
+ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
370
+ "dependencies": {
371
+ "tslib": "^2.0.1"
372
+ },
373
+ "engines": {
374
+ "node": ">=4"
375
+ }
376
+ },
377
+ "node_modules/async": {
378
+ "version": "3.2.4",
379
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
380
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
381
+ },
382
+ "node_modules/b4a": {
383
+ "version": "1.6.4",
384
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
385
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
386
+ },
387
+ "node_modules/base64-js": {
388
+ "version": "1.5.1",
389
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
390
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
391
+ "funding": [
392
+ {
393
+ "type": "github",
394
+ "url": "https://github.com/sponsors/feross"
395
+ },
396
+ {
397
+ "type": "patreon",
398
+ "url": "https://www.patreon.com/feross"
399
+ },
400
+ {
401
+ "type": "consulting",
402
+ "url": "https://feross.org/support"
403
+ }
404
+ ]
405
+ },
406
+ "node_modules/basic-ftp": {
407
+ "version": "5.0.3",
408
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz",
409
+ "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==",
410
+ "engines": {
411
+ "node": ">=10.0.0"
412
+ }
413
+ },
414
+ "node_modules/body-parser": {
415
+ "version": "1.20.1",
416
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
417
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
418
+ "dependencies": {
419
+ "bytes": "3.1.2",
420
+ "content-type": "~1.0.4",
421
+ "debug": "2.6.9",
422
+ "depd": "2.0.0",
423
+ "destroy": "1.2.0",
424
+ "http-errors": "2.0.0",
425
+ "iconv-lite": "0.4.24",
426
+ "on-finished": "2.4.1",
427
+ "qs": "6.11.0",
428
+ "raw-body": "2.5.1",
429
+ "type-is": "~1.6.18",
430
+ "unpipe": "1.0.0"
431
+ },
432
+ "engines": {
433
+ "node": ">= 0.8",
434
+ "npm": "1.2.8000 || >= 1.4.16"
435
+ }
436
+ },
437
+ "node_modules/buffer": {
438
+ "version": "5.7.1",
439
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
440
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
441
+ "funding": [
442
+ {
443
+ "type": "github",
444
+ "url": "https://github.com/sponsors/feross"
445
+ },
446
+ {
447
+ "type": "patreon",
448
+ "url": "https://www.patreon.com/feross"
449
+ },
450
+ {
451
+ "type": "consulting",
452
+ "url": "https://feross.org/support"
453
+ }
454
+ ],
455
+ "dependencies": {
456
+ "base64-js": "^1.3.1",
457
+ "ieee754": "^1.1.13"
458
+ }
459
+ },
460
+ "node_modules/buffer-crc32": {
461
+ "version": "0.2.13",
462
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
463
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
464
+ "engines": {
465
+ "node": "*"
466
+ }
467
+ },
468
+ "node_modules/bufferutil": {
469
+ "version": "4.0.7",
470
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
471
+ "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
472
+ "hasInstallScript": true,
473
+ "dependencies": {
474
+ "node-gyp-build": "^4.3.0"
475
+ },
476
+ "engines": {
477
+ "node": ">=6.14.2"
478
+ }
479
+ },
480
+ "node_modules/bytes": {
481
+ "version": "3.1.2",
482
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
483
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
484
+ "engines": {
485
+ "node": ">= 0.8"
486
+ }
487
+ },
488
+ "node_modules/call-bind": {
489
+ "version": "1.0.2",
490
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
491
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
492
+ "dependencies": {
493
+ "function-bind": "^1.1.1",
494
+ "get-intrinsic": "^1.0.2"
495
+ },
496
+ "funding": {
497
+ "url": "https://github.com/sponsors/ljharb"
498
+ }
499
+ },
500
+ "node_modules/callsites": {
501
+ "version": "3.1.0",
502
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
503
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
504
+ "engines": {
505
+ "node": ">=6"
506
+ }
507
+ },
508
+ "node_modules/chalk": {
509
+ "version": "2.4.2",
510
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
511
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
512
+ "dependencies": {
513
+ "ansi-styles": "^3.2.1",
514
+ "escape-string-regexp": "^1.0.5",
515
+ "supports-color": "^5.3.0"
516
+ },
517
+ "engines": {
518
+ "node": ">=4"
519
+ }
520
+ },
521
+ "node_modules/chromium-bidi": {
522
+ "version": "0.4.16",
523
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz",
524
+ "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==",
525
+ "dependencies": {
526
+ "mitt": "3.0.0"
527
+ },
528
+ "peerDependencies": {
529
+ "devtools-protocol": "*"
530
+ }
531
+ },
532
+ "node_modules/cliui": {
533
+ "version": "8.0.1",
534
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
535
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
536
+ "dependencies": {
537
+ "string-width": "^4.2.0",
538
+ "strip-ansi": "^6.0.1",
539
+ "wrap-ansi": "^7.0.0"
540
+ },
541
+ "engines": {
542
+ "node": ">=12"
543
+ }
544
+ },
545
+ "node_modules/color-convert": {
546
+ "version": "1.9.3",
547
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
548
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
549
+ "dependencies": {
550
+ "color-name": "1.1.3"
551
+ }
552
+ },
553
+ "node_modules/color-name": {
554
+ "version": "1.1.3",
555
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
556
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
557
+ },
558
+ "node_modules/content-disposition": {
559
+ "version": "0.5.4",
560
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
561
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
562
+ "dependencies": {
563
+ "safe-buffer": "5.2.1"
564
+ },
565
+ "engines": {
566
+ "node": ">= 0.6"
567
+ }
568
+ },
569
+ "node_modules/content-type": {
570
+ "version": "1.0.5",
571
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
572
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
573
+ "engines": {
574
+ "node": ">= 0.6"
575
+ }
576
+ },
577
+ "node_modules/cookie": {
578
+ "version": "0.5.0",
579
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
580
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
581
+ "engines": {
582
+ "node": ">= 0.6"
583
+ }
584
+ },
585
+ "node_modules/cookie-signature": {
586
+ "version": "1.0.6",
587
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
588
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
589
+ },
590
+ "node_modules/cosmiconfig": {
591
+ "version": "8.2.0",
592
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
593
+ "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
594
+ "dependencies": {
595
+ "import-fresh": "^3.2.1",
596
+ "js-yaml": "^4.1.0",
597
+ "parse-json": "^5.0.0",
598
+ "path-type": "^4.0.0"
599
+ },
600
+ "engines": {
601
+ "node": ">=14"
602
+ },
603
+ "funding": {
604
+ "url": "https://github.com/sponsors/d-fischer"
605
+ }
606
+ },
607
+ "node_modules/create-require": {
608
+ "version": "1.1.1",
609
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
610
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
611
+ },
612
+ "node_modules/cross-fetch": {
613
+ "version": "4.0.0",
614
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
615
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
616
+ "dependencies": {
617
+ "node-fetch": "^2.6.12"
618
+ }
619
+ },
620
+ "node_modules/cross-fetch/node_modules/node-fetch": {
621
+ "version": "2.6.12",
622
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
623
+ "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
624
+ "dependencies": {
625
+ "whatwg-url": "^5.0.0"
626
+ },
627
+ "engines": {
628
+ "node": "4.x || >=6.0.0"
629
+ },
630
+ "peerDependencies": {
631
+ "encoding": "^0.1.0"
632
+ },
633
+ "peerDependenciesMeta": {
634
+ "encoding": {
635
+ "optional": true
636
+ }
637
+ }
638
+ },
639
+ "node_modules/data-uri-to-buffer": {
640
+ "version": "4.0.1",
641
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
642
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
643
+ "engines": {
644
+ "node": ">= 12"
645
+ }
646
+ },
647
+ "node_modules/debug": {
648
+ "version": "2.6.9",
649
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
650
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
651
+ "dependencies": {
652
+ "ms": "2.0.0"
653
+ }
654
+ },
655
+ "node_modules/deep-is": {
656
+ "version": "0.1.4",
657
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
658
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
659
+ },
660
+ "node_modules/degenerator": {
661
+ "version": "4.0.4",
662
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-4.0.4.tgz",
663
+ "integrity": "sha512-MTZdZsuNxSBL92rsjx3VFWe57OpRlikyLbcx2B5Dmdv6oScqpMrvpY7zHLMymrUxo3U5+suPUMsNgW/+SZB1lg==",
664
+ "dependencies": {
665
+ "ast-types": "^0.13.4",
666
+ "escodegen": "^1.14.3",
667
+ "esprima": "^4.0.1",
668
+ "vm2": "^3.9.19"
669
+ },
670
+ "engines": {
671
+ "node": ">= 14"
672
+ }
673
+ },
674
+ "node_modules/depd": {
675
+ "version": "2.0.0",
676
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
677
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
678
+ "engines": {
679
+ "node": ">= 0.8"
680
+ }
681
+ },
682
+ "node_modules/destroy": {
683
+ "version": "1.2.0",
684
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
685
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
686
+ "engines": {
687
+ "node": ">= 0.8",
688
+ "npm": "1.2.8000 || >= 1.4.16"
689
+ }
690
+ },
691
+ "node_modules/devtools-protocol": {
692
+ "version": "0.0.1135028",
693
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1135028.tgz",
694
+ "integrity": "sha512-jEcNGrh6lOXNRJvZb9RjeevtZGrgugPKSMJZxfyxWQnhlKawMPhMtk/dfC+Z/6xNXExlzTKlY5LzIAK/fRpQIw=="
695
+ },
696
+ "node_modules/diff": {
697
+ "version": "4.0.2",
698
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
699
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
700
+ "engines": {
701
+ "node": ">=0.3.1"
702
+ }
703
+ },
704
+ "node_modules/ee-first": {
705
+ "version": "1.1.1",
706
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
707
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
708
+ },
709
+ "node_modules/emoji-regex": {
710
+ "version": "8.0.0",
711
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
712
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
713
+ },
714
+ "node_modules/encodeurl": {
715
+ "version": "1.0.2",
716
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
717
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
718
+ "engines": {
719
+ "node": ">= 0.8"
720
+ }
721
+ },
722
+ "node_modules/end-of-stream": {
723
+ "version": "1.4.4",
724
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
725
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
726
+ "dependencies": {
727
+ "once": "^1.4.0"
728
+ }
729
+ },
730
+ "node_modules/error-ex": {
731
+ "version": "1.3.2",
732
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
733
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
734
+ "dependencies": {
735
+ "is-arrayish": "^0.2.1"
736
+ }
737
+ },
738
+ "node_modules/escalade": {
739
+ "version": "3.1.1",
740
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
741
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
742
+ "engines": {
743
+ "node": ">=6"
744
+ }
745
+ },
746
+ "node_modules/escape-html": {
747
+ "version": "1.0.3",
748
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
749
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
750
+ },
751
+ "node_modules/escape-string-regexp": {
752
+ "version": "1.0.5",
753
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
754
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
755
+ "engines": {
756
+ "node": ">=0.8.0"
757
+ }
758
+ },
759
+ "node_modules/escodegen": {
760
+ "version": "1.14.3",
761
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
762
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
763
+ "dependencies": {
764
+ "esprima": "^4.0.1",
765
+ "estraverse": "^4.2.0",
766
+ "esutils": "^2.0.2",
767
+ "optionator": "^0.8.1"
768
+ },
769
+ "bin": {
770
+ "escodegen": "bin/escodegen.js",
771
+ "esgenerate": "bin/esgenerate.js"
772
+ },
773
+ "engines": {
774
+ "node": ">=4.0"
775
+ },
776
+ "optionalDependencies": {
777
+ "source-map": "~0.6.1"
778
+ }
779
+ },
780
+ "node_modules/esprima": {
781
+ "version": "4.0.1",
782
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
783
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
784
+ "bin": {
785
+ "esparse": "bin/esparse.js",
786
+ "esvalidate": "bin/esvalidate.js"
787
+ },
788
+ "engines": {
789
+ "node": ">=4"
790
+ }
791
+ },
792
+ "node_modules/estraverse": {
793
+ "version": "4.3.0",
794
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
795
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
796
+ "engines": {
797
+ "node": ">=4.0"
798
+ }
799
+ },
800
+ "node_modules/esutils": {
801
+ "version": "2.0.3",
802
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
803
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
804
+ "engines": {
805
+ "node": ">=0.10.0"
806
+ }
807
+ },
808
+ "node_modules/etag": {
809
+ "version": "1.8.1",
810
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
811
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
812
+ "engines": {
813
+ "node": ">= 0.6"
814
+ }
815
+ },
816
+ "node_modules/express": {
817
+ "version": "4.18.2",
818
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
819
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
820
+ "dependencies": {
821
+ "accepts": "~1.3.8",
822
+ "array-flatten": "1.1.1",
823
+ "body-parser": "1.20.1",
824
+ "content-disposition": "0.5.4",
825
+ "content-type": "~1.0.4",
826
+ "cookie": "0.5.0",
827
+ "cookie-signature": "1.0.6",
828
+ "debug": "2.6.9",
829
+ "depd": "2.0.0",
830
+ "encodeurl": "~1.0.2",
831
+ "escape-html": "~1.0.3",
832
+ "etag": "~1.8.1",
833
+ "finalhandler": "1.2.0",
834
+ "fresh": "0.5.2",
835
+ "http-errors": "2.0.0",
836
+ "merge-descriptors": "1.0.1",
837
+ "methods": "~1.1.2",
838
+ "on-finished": "2.4.1",
839
+ "parseurl": "~1.3.3",
840
+ "path-to-regexp": "0.1.7",
841
+ "proxy-addr": "~2.0.7",
842
+ "qs": "6.11.0",
843
+ "range-parser": "~1.2.1",
844
+ "safe-buffer": "5.2.1",
845
+ "send": "0.18.0",
846
+ "serve-static": "1.15.0",
847
+ "setprototypeof": "1.2.0",
848
+ "statuses": "2.0.1",
849
+ "type-is": "~1.6.18",
850
+ "utils-merge": "1.0.1",
851
+ "vary": "~1.1.2"
852
+ },
853
+ "engines": {
854
+ "node": ">= 0.10.0"
855
+ }
856
+ },
857
+ "node_modules/extract-zip": {
858
+ "version": "2.0.1",
859
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
860
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
861
+ "dependencies": {
862
+ "debug": "^4.1.1",
863
+ "get-stream": "^5.1.0",
864
+ "yauzl": "^2.10.0"
865
+ },
866
+ "bin": {
867
+ "extract-zip": "cli.js"
868
+ },
869
+ "engines": {
870
+ "node": ">= 10.17.0"
871
+ },
872
+ "optionalDependencies": {
873
+ "@types/yauzl": "^2.9.1"
874
+ }
875
+ },
876
+ "node_modules/extract-zip/node_modules/debug": {
877
+ "version": "4.3.4",
878
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
879
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
880
+ "dependencies": {
881
+ "ms": "2.1.2"
882
+ },
883
+ "engines": {
884
+ "node": ">=6.0"
885
+ },
886
+ "peerDependenciesMeta": {
887
+ "supports-color": {
888
+ "optional": true
889
+ }
890
+ }
891
+ },
892
+ "node_modules/extract-zip/node_modules/ms": {
893
+ "version": "2.1.2",
894
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
895
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
896
+ },
897
+ "node_modules/fast-fifo": {
898
+ "version": "1.3.0",
899
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz",
900
+ "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw=="
901
+ },
902
+ "node_modules/fast-levenshtein": {
903
+ "version": "2.0.6",
904
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
905
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
906
+ },
907
+ "node_modules/fd-slicer": {
908
+ "version": "1.1.0",
909
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
910
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
911
+ "dependencies": {
912
+ "pend": "~1.2.0"
913
+ }
914
+ },
915
+ "node_modules/fetch-blob": {
916
+ "version": "3.2.0",
917
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
918
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
919
+ "funding": [
920
+ {
921
+ "type": "github",
922
+ "url": "https://github.com/sponsors/jimmywarting"
923
+ },
924
+ {
925
+ "type": "paypal",
926
+ "url": "https://paypal.me/jimmywarting"
927
+ }
928
+ ],
929
+ "dependencies": {
930
+ "node-domexception": "^1.0.0",
931
+ "web-streams-polyfill": "^3.0.3"
932
+ },
933
+ "engines": {
934
+ "node": "^12.20 || >= 14.13"
935
+ }
936
+ },
937
+ "node_modules/finalhandler": {
938
+ "version": "1.2.0",
939
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
940
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
941
+ "dependencies": {
942
+ "debug": "2.6.9",
943
+ "encodeurl": "~1.0.2",
944
+ "escape-html": "~1.0.3",
945
+ "on-finished": "2.4.1",
946
+ "parseurl": "~1.3.3",
947
+ "statuses": "2.0.1",
948
+ "unpipe": "~1.0.0"
949
+ },
950
+ "engines": {
951
+ "node": ">= 0.8"
952
+ }
953
+ },
954
+ "node_modules/fluent-ffmpeg": {
955
+ "version": "2.1.2",
956
+ "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz",
957
+ "integrity": "sha512-IZTB4kq5GK0DPp7sGQ0q/BWurGHffRtQQwVkiqDgeO6wYJLLV5ZhgNOQ65loZxxuPMKZKZcICCUnaGtlxBiR0Q==",
958
+ "dependencies": {
959
+ "async": ">=0.2.9",
960
+ "which": "^1.1.1"
961
+ },
962
+ "engines": {
963
+ "node": ">=0.8.0"
964
+ }
965
+ },
966
+ "node_modules/formdata-polyfill": {
967
+ "version": "4.0.10",
968
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
969
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
970
+ "dependencies": {
971
+ "fetch-blob": "^3.1.2"
972
+ },
973
+ "engines": {
974
+ "node": ">=12.20.0"
975
+ }
976
+ },
977
+ "node_modules/forwarded": {
978
+ "version": "0.2.0",
979
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
980
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
981
+ "engines": {
982
+ "node": ">= 0.6"
983
+ }
984
+ },
985
+ "node_modules/fresh": {
986
+ "version": "0.5.2",
987
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
988
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
989
+ "engines": {
990
+ "node": ">= 0.6"
991
+ }
992
+ },
993
+ "node_modules/fs-extra": {
994
+ "version": "11.1.1",
995
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
996
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
997
+ "dependencies": {
998
+ "graceful-fs": "^4.2.0",
999
+ "jsonfile": "^6.0.1",
1000
+ "universalify": "^2.0.0"
1001
+ },
1002
+ "engines": {
1003
+ "node": ">=14.14"
1004
+ }
1005
+ },
1006
+ "node_modules/function-bind": {
1007
+ "version": "1.1.1",
1008
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1009
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1010
+ },
1011
+ "node_modules/get-caller-file": {
1012
+ "version": "2.0.5",
1013
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1014
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1015
+ "engines": {
1016
+ "node": "6.* || 8.* || >= 10.*"
1017
+ }
1018
+ },
1019
+ "node_modules/get-intrinsic": {
1020
+ "version": "1.2.1",
1021
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
1022
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
1023
+ "dependencies": {
1024
+ "function-bind": "^1.1.1",
1025
+ "has": "^1.0.3",
1026
+ "has-proto": "^1.0.1",
1027
+ "has-symbols": "^1.0.3"
1028
+ },
1029
+ "funding": {
1030
+ "url": "https://github.com/sponsors/ljharb"
1031
+ }
1032
+ },
1033
+ "node_modules/get-stream": {
1034
+ "version": "5.2.0",
1035
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
1036
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
1037
+ "dependencies": {
1038
+ "pump": "^3.0.0"
1039
+ },
1040
+ "engines": {
1041
+ "node": ">=8"
1042
+ },
1043
+ "funding": {
1044
+ "url": "https://github.com/sponsors/sindresorhus"
1045
+ }
1046
+ },
1047
+ "node_modules/get-uri": {
1048
+ "version": "6.0.1",
1049
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz",
1050
+ "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==",
1051
+ "dependencies": {
1052
+ "basic-ftp": "^5.0.2",
1053
+ "data-uri-to-buffer": "^5.0.1",
1054
+ "debug": "^4.3.4",
1055
+ "fs-extra": "^8.1.0"
1056
+ },
1057
+ "engines": {
1058
+ "node": ">= 14"
1059
+ }
1060
+ },
1061
+ "node_modules/get-uri/node_modules/data-uri-to-buffer": {
1062
+ "version": "5.0.1",
1063
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz",
1064
+ "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==",
1065
+ "engines": {
1066
+ "node": ">= 14"
1067
+ }
1068
+ },
1069
+ "node_modules/get-uri/node_modules/debug": {
1070
+ "version": "4.3.4",
1071
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1072
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1073
+ "dependencies": {
1074
+ "ms": "2.1.2"
1075
+ },
1076
+ "engines": {
1077
+ "node": ">=6.0"
1078
+ },
1079
+ "peerDependenciesMeta": {
1080
+ "supports-color": {
1081
+ "optional": true
1082
+ }
1083
+ }
1084
+ },
1085
+ "node_modules/get-uri/node_modules/fs-extra": {
1086
+ "version": "8.1.0",
1087
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
1088
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
1089
+ "dependencies": {
1090
+ "graceful-fs": "^4.2.0",
1091
+ "jsonfile": "^4.0.0",
1092
+ "universalify": "^0.1.0"
1093
+ },
1094
+ "engines": {
1095
+ "node": ">=6 <7 || >=8"
1096
+ }
1097
+ },
1098
+ "node_modules/get-uri/node_modules/jsonfile": {
1099
+ "version": "4.0.0",
1100
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1101
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
1102
+ "optionalDependencies": {
1103
+ "graceful-fs": "^4.1.6"
1104
+ }
1105
+ },
1106
+ "node_modules/get-uri/node_modules/ms": {
1107
+ "version": "2.1.2",
1108
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1109
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1110
+ },
1111
+ "node_modules/get-uri/node_modules/universalify": {
1112
+ "version": "0.1.2",
1113
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1114
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
1115
+ "engines": {
1116
+ "node": ">= 4.0.0"
1117
+ }
1118
+ },
1119
+ "node_modules/graceful-fs": {
1120
+ "version": "4.2.11",
1121
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1122
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
1123
+ },
1124
+ "node_modules/has": {
1125
+ "version": "1.0.3",
1126
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1127
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1128
+ "dependencies": {
1129
+ "function-bind": "^1.1.1"
1130
+ },
1131
+ "engines": {
1132
+ "node": ">= 0.4.0"
1133
+ }
1134
+ },
1135
+ "node_modules/has-flag": {
1136
+ "version": "3.0.0",
1137
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1138
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1139
+ "engines": {
1140
+ "node": ">=4"
1141
+ }
1142
+ },
1143
+ "node_modules/has-proto": {
1144
+ "version": "1.0.1",
1145
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
1146
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
1147
+ "engines": {
1148
+ "node": ">= 0.4"
1149
+ },
1150
+ "funding": {
1151
+ "url": "https://github.com/sponsors/ljharb"
1152
+ }
1153
+ },
1154
+ "node_modules/has-symbols": {
1155
+ "version": "1.0.3",
1156
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1157
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1158
+ "engines": {
1159
+ "node": ">= 0.4"
1160
+ },
1161
+ "funding": {
1162
+ "url": "https://github.com/sponsors/ljharb"
1163
+ }
1164
+ },
1165
+ "node_modules/http-errors": {
1166
+ "version": "2.0.0",
1167
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1168
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1169
+ "dependencies": {
1170
+ "depd": "2.0.0",
1171
+ "inherits": "2.0.4",
1172
+ "setprototypeof": "1.2.0",
1173
+ "statuses": "2.0.1",
1174
+ "toidentifier": "1.0.1"
1175
+ },
1176
+ "engines": {
1177
+ "node": ">= 0.8"
1178
+ }
1179
+ },
1180
+ "node_modules/http-proxy-agent": {
1181
+ "version": "7.0.0",
1182
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
1183
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
1184
+ "dependencies": {
1185
+ "agent-base": "^7.1.0",
1186
+ "debug": "^4.3.4"
1187
+ },
1188
+ "engines": {
1189
+ "node": ">= 14"
1190
+ }
1191
+ },
1192
+ "node_modules/http-proxy-agent/node_modules/debug": {
1193
+ "version": "4.3.4",
1194
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1195
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1196
+ "dependencies": {
1197
+ "ms": "2.1.2"
1198
+ },
1199
+ "engines": {
1200
+ "node": ">=6.0"
1201
+ },
1202
+ "peerDependenciesMeta": {
1203
+ "supports-color": {
1204
+ "optional": true
1205
+ }
1206
+ }
1207
+ },
1208
+ "node_modules/http-proxy-agent/node_modules/ms": {
1209
+ "version": "2.1.2",
1210
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1211
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1212
+ },
1213
+ "node_modules/https-proxy-agent": {
1214
+ "version": "7.0.0",
1215
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz",
1216
+ "integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==",
1217
+ "dependencies": {
1218
+ "agent-base": "^7.0.2",
1219
+ "debug": "4"
1220
+ },
1221
+ "engines": {
1222
+ "node": ">= 14"
1223
+ }
1224
+ },
1225
+ "node_modules/https-proxy-agent/node_modules/debug": {
1226
+ "version": "4.3.4",
1227
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1228
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1229
+ "dependencies": {
1230
+ "ms": "2.1.2"
1231
+ },
1232
+ "engines": {
1233
+ "node": ">=6.0"
1234
+ },
1235
+ "peerDependenciesMeta": {
1236
+ "supports-color": {
1237
+ "optional": true
1238
+ }
1239
+ }
1240
+ },
1241
+ "node_modules/https-proxy-agent/node_modules/ms": {
1242
+ "version": "2.1.2",
1243
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1244
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1245
+ },
1246
+ "node_modules/iconv-lite": {
1247
+ "version": "0.4.24",
1248
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1249
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1250
+ "dependencies": {
1251
+ "safer-buffer": ">= 2.1.2 < 3"
1252
+ },
1253
+ "engines": {
1254
+ "node": ">=0.10.0"
1255
+ }
1256
+ },
1257
+ "node_modules/ieee754": {
1258
+ "version": "1.2.1",
1259
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1260
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1261
+ "funding": [
1262
+ {
1263
+ "type": "github",
1264
+ "url": "https://github.com/sponsors/feross"
1265
+ },
1266
+ {
1267
+ "type": "patreon",
1268
+ "url": "https://www.patreon.com/feross"
1269
+ },
1270
+ {
1271
+ "type": "consulting",
1272
+ "url": "https://feross.org/support"
1273
+ }
1274
+ ]
1275
+ },
1276
+ "node_modules/import-fresh": {
1277
+ "version": "3.3.0",
1278
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1279
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1280
+ "dependencies": {
1281
+ "parent-module": "^1.0.0",
1282
+ "resolve-from": "^4.0.0"
1283
+ },
1284
+ "engines": {
1285
+ "node": ">=6"
1286
+ },
1287
+ "funding": {
1288
+ "url": "https://github.com/sponsors/sindresorhus"
1289
+ }
1290
+ },
1291
+ "node_modules/inherits": {
1292
+ "version": "2.0.4",
1293
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1294
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1295
+ },
1296
+ "node_modules/ip": {
1297
+ "version": "1.1.8",
1298
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
1299
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
1300
+ },
1301
+ "node_modules/ipaddr.js": {
1302
+ "version": "1.9.1",
1303
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1304
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
1305
+ "engines": {
1306
+ "node": ">= 0.10"
1307
+ }
1308
+ },
1309
+ "node_modules/is-arrayish": {
1310
+ "version": "0.2.1",
1311
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1312
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
1313
+ },
1314
+ "node_modules/is-fullwidth-code-point": {
1315
+ "version": "3.0.0",
1316
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1317
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1318
+ "engines": {
1319
+ "node": ">=8"
1320
+ }
1321
+ },
1322
+ "node_modules/isexe": {
1323
+ "version": "2.0.0",
1324
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1325
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1326
+ },
1327
+ "node_modules/js-tokens": {
1328
+ "version": "4.0.0",
1329
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1330
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1331
+ },
1332
+ "node_modules/js-yaml": {
1333
+ "version": "4.1.0",
1334
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1335
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1336
+ "dependencies": {
1337
+ "argparse": "^2.0.1"
1338
+ },
1339
+ "bin": {
1340
+ "js-yaml": "bin/js-yaml.js"
1341
+ }
1342
+ },
1343
+ "node_modules/json-parse-even-better-errors": {
1344
+ "version": "2.3.1",
1345
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1346
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
1347
+ },
1348
+ "node_modules/jsonfile": {
1349
+ "version": "6.1.0",
1350
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
1351
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
1352
+ "dependencies": {
1353
+ "universalify": "^2.0.0"
1354
+ },
1355
+ "optionalDependencies": {
1356
+ "graceful-fs": "^4.1.6"
1357
+ }
1358
+ },
1359
+ "node_modules/levn": {
1360
+ "version": "0.3.0",
1361
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1362
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
1363
+ "dependencies": {
1364
+ "prelude-ls": "~1.1.2",
1365
+ "type-check": "~0.3.2"
1366
+ },
1367
+ "engines": {
1368
+ "node": ">= 0.8.0"
1369
+ }
1370
+ },
1371
+ "node_modules/lines-and-columns": {
1372
+ "version": "1.2.4",
1373
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1374
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
1375
+ },
1376
+ "node_modules/lru-cache": {
1377
+ "version": "7.18.3",
1378
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
1379
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
1380
+ "engines": {
1381
+ "node": ">=12"
1382
+ }
1383
+ },
1384
+ "node_modules/make-error": {
1385
+ "version": "1.3.6",
1386
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
1387
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
1388
+ },
1389
+ "node_modules/media-typer": {
1390
+ "version": "0.3.0",
1391
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1392
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1393
+ "engines": {
1394
+ "node": ">= 0.6"
1395
+ }
1396
+ },
1397
+ "node_modules/merge-descriptors": {
1398
+ "version": "1.0.1",
1399
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1400
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
1401
+ },
1402
+ "node_modules/methods": {
1403
+ "version": "1.1.2",
1404
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1405
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1406
+ "engines": {
1407
+ "node": ">= 0.6"
1408
+ }
1409
+ },
1410
+ "node_modules/mime": {
1411
+ "version": "1.6.0",
1412
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1413
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1414
+ "bin": {
1415
+ "mime": "cli.js"
1416
+ },
1417
+ "engines": {
1418
+ "node": ">=4"
1419
+ }
1420
+ },
1421
+ "node_modules/mime-db": {
1422
+ "version": "1.52.0",
1423
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1424
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1425
+ "engines": {
1426
+ "node": ">= 0.6"
1427
+ }
1428
+ },
1429
+ "node_modules/mime-types": {
1430
+ "version": "2.1.35",
1431
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1432
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1433
+ "dependencies": {
1434
+ "mime-db": "1.52.0"
1435
+ },
1436
+ "engines": {
1437
+ "node": ">= 0.6"
1438
+ }
1439
+ },
1440
+ "node_modules/mitt": {
1441
+ "version": "3.0.0",
1442
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
1443
+ "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
1444
+ },
1445
+ "node_modules/mkdirp-classic": {
1446
+ "version": "0.5.3",
1447
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
1448
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
1449
+ },
1450
+ "node_modules/ms": {
1451
+ "version": "2.0.0",
1452
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1453
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1454
+ },
1455
+ "node_modules/negotiator": {
1456
+ "version": "0.6.3",
1457
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1458
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1459
+ "engines": {
1460
+ "node": ">= 0.6"
1461
+ }
1462
+ },
1463
+ "node_modules/netmask": {
1464
+ "version": "2.0.2",
1465
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
1466
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
1467
+ "engines": {
1468
+ "node": ">= 0.4.0"
1469
+ }
1470
+ },
1471
+ "node_modules/node-domexception": {
1472
+ "version": "1.0.0",
1473
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
1474
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
1475
+ "funding": [
1476
+ {
1477
+ "type": "github",
1478
+ "url": "https://github.com/sponsors/jimmywarting"
1479
+ },
1480
+ {
1481
+ "type": "github",
1482
+ "url": "https://paypal.me/jimmywarting"
1483
+ }
1484
+ ],
1485
+ "engines": {
1486
+ "node": ">=10.5.0"
1487
+ }
1488
+ },
1489
+ "node_modules/node-fetch": {
1490
+ "version": "3.3.1",
1491
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
1492
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
1493
+ "dependencies": {
1494
+ "data-uri-to-buffer": "^4.0.0",
1495
+ "fetch-blob": "^3.1.4",
1496
+ "formdata-polyfill": "^4.0.10"
1497
+ },
1498
+ "engines": {
1499
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1500
+ },
1501
+ "funding": {
1502
+ "type": "opencollective",
1503
+ "url": "https://opencollective.com/node-fetch"
1504
+ }
1505
+ },
1506
+ "node_modules/node-gyp-build": {
1507
+ "version": "4.6.0",
1508
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
1509
+ "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
1510
+ "bin": {
1511
+ "node-gyp-build": "bin.js",
1512
+ "node-gyp-build-optional": "optional.js",
1513
+ "node-gyp-build-test": "build-test.js"
1514
+ }
1515
+ },
1516
+ "node_modules/object-inspect": {
1517
+ "version": "1.12.3",
1518
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
1519
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
1520
+ "funding": {
1521
+ "url": "https://github.com/sponsors/ljharb"
1522
+ }
1523
+ },
1524
+ "node_modules/on-finished": {
1525
+ "version": "2.4.1",
1526
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1527
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1528
+ "dependencies": {
1529
+ "ee-first": "1.1.1"
1530
+ },
1531
+ "engines": {
1532
+ "node": ">= 0.8"
1533
+ }
1534
+ },
1535
+ "node_modules/once": {
1536
+ "version": "1.4.0",
1537
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1538
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1539
+ "dependencies": {
1540
+ "wrappy": "1"
1541
+ }
1542
+ },
1543
+ "node_modules/optionator": {
1544
+ "version": "0.8.3",
1545
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1546
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1547
+ "dependencies": {
1548
+ "deep-is": "~0.1.3",
1549
+ "fast-levenshtein": "~2.0.6",
1550
+ "levn": "~0.3.0",
1551
+ "prelude-ls": "~1.1.2",
1552
+ "type-check": "~0.3.2",
1553
+ "word-wrap": "~1.2.3"
1554
+ },
1555
+ "engines": {
1556
+ "node": ">= 0.8.0"
1557
+ }
1558
+ },
1559
+ "node_modules/pac-proxy-agent": {
1560
+ "version": "6.0.3",
1561
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-6.0.3.tgz",
1562
+ "integrity": "sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ==",
1563
+ "dependencies": {
1564
+ "agent-base": "^7.0.2",
1565
+ "debug": "^4.3.4",
1566
+ "get-uri": "^6.0.1",
1567
+ "http-proxy-agent": "^7.0.0",
1568
+ "https-proxy-agent": "^7.0.0",
1569
+ "pac-resolver": "^6.0.1",
1570
+ "socks-proxy-agent": "^8.0.1"
1571
+ },
1572
+ "engines": {
1573
+ "node": ">= 14"
1574
+ }
1575
+ },
1576
+ "node_modules/pac-proxy-agent/node_modules/debug": {
1577
+ "version": "4.3.4",
1578
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1579
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1580
+ "dependencies": {
1581
+ "ms": "2.1.2"
1582
+ },
1583
+ "engines": {
1584
+ "node": ">=6.0"
1585
+ },
1586
+ "peerDependenciesMeta": {
1587
+ "supports-color": {
1588
+ "optional": true
1589
+ }
1590
+ }
1591
+ },
1592
+ "node_modules/pac-proxy-agent/node_modules/ms": {
1593
+ "version": "2.1.2",
1594
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1595
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1596
+ },
1597
+ "node_modules/pac-resolver": {
1598
+ "version": "6.0.2",
1599
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-6.0.2.tgz",
1600
+ "integrity": "sha512-EQpuJ2ifOjpZY5sg1Q1ZeAxvtLwR7Mj3RgY8cysPGbsRu3RBXyJFWxnMus9PScjxya/0LzvVDxNh/gl0eXBU4w==",
1601
+ "dependencies": {
1602
+ "degenerator": "^4.0.4",
1603
+ "ip": "^1.1.8",
1604
+ "netmask": "^2.0.2"
1605
+ },
1606
+ "engines": {
1607
+ "node": ">= 14"
1608
+ }
1609
+ },
1610
+ "node_modules/parent-module": {
1611
+ "version": "1.0.1",
1612
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1613
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1614
+ "dependencies": {
1615
+ "callsites": "^3.0.0"
1616
+ },
1617
+ "engines": {
1618
+ "node": ">=6"
1619
+ }
1620
+ },
1621
+ "node_modules/parse-json": {
1622
+ "version": "5.2.0",
1623
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
1624
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
1625
+ "dependencies": {
1626
+ "@babel/code-frame": "^7.0.0",
1627
+ "error-ex": "^1.3.1",
1628
+ "json-parse-even-better-errors": "^2.3.0",
1629
+ "lines-and-columns": "^1.1.6"
1630
+ },
1631
+ "engines": {
1632
+ "node": ">=8"
1633
+ },
1634
+ "funding": {
1635
+ "url": "https://github.com/sponsors/sindresorhus"
1636
+ }
1637
+ },
1638
+ "node_modules/parseurl": {
1639
+ "version": "1.3.3",
1640
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1641
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1642
+ "engines": {
1643
+ "node": ">= 0.8"
1644
+ }
1645
+ },
1646
+ "node_modules/path-to-regexp": {
1647
+ "version": "0.1.7",
1648
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1649
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1650
+ },
1651
+ "node_modules/path-type": {
1652
+ "version": "4.0.0",
1653
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1654
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1655
+ "engines": {
1656
+ "node": ">=8"
1657
+ }
1658
+ },
1659
+ "node_modules/pend": {
1660
+ "version": "1.2.0",
1661
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1662
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="
1663
+ },
1664
+ "node_modules/prelude-ls": {
1665
+ "version": "1.1.2",
1666
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1667
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
1668
+ "engines": {
1669
+ "node": ">= 0.8.0"
1670
+ }
1671
+ },
1672
+ "node_modules/progress": {
1673
+ "version": "2.0.3",
1674
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1675
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1676
+ "engines": {
1677
+ "node": ">=0.4.0"
1678
+ }
1679
+ },
1680
+ "node_modules/proxy-addr": {
1681
+ "version": "2.0.7",
1682
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1683
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1684
+ "dependencies": {
1685
+ "forwarded": "0.2.0",
1686
+ "ipaddr.js": "1.9.1"
1687
+ },
1688
+ "engines": {
1689
+ "node": ">= 0.10"
1690
+ }
1691
+ },
1692
+ "node_modules/proxy-agent": {
1693
+ "version": "6.2.1",
1694
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.2.1.tgz",
1695
+ "integrity": "sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q==",
1696
+ "dependencies": {
1697
+ "agent-base": "^7.0.2",
1698
+ "debug": "^4.3.4",
1699
+ "http-proxy-agent": "^7.0.0",
1700
+ "https-proxy-agent": "^7.0.0",
1701
+ "lru-cache": "^7.14.1",
1702
+ "pac-proxy-agent": "^6.0.3",
1703
+ "proxy-from-env": "^1.1.0",
1704
+ "socks-proxy-agent": "^8.0.1"
1705
+ },
1706
+ "engines": {
1707
+ "node": ">= 14"
1708
+ }
1709
+ },
1710
+ "node_modules/proxy-agent/node_modules/debug": {
1711
+ "version": "4.3.4",
1712
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1713
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1714
+ "dependencies": {
1715
+ "ms": "2.1.2"
1716
+ },
1717
+ "engines": {
1718
+ "node": ">=6.0"
1719
+ },
1720
+ "peerDependenciesMeta": {
1721
+ "supports-color": {
1722
+ "optional": true
1723
+ }
1724
+ }
1725
+ },
1726
+ "node_modules/proxy-agent/node_modules/ms": {
1727
+ "version": "2.1.2",
1728
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1729
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1730
+ },
1731
+ "node_modules/proxy-from-env": {
1732
+ "version": "1.1.0",
1733
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
1734
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
1735
+ },
1736
+ "node_modules/pump": {
1737
+ "version": "3.0.0",
1738
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1739
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1740
+ "dependencies": {
1741
+ "end-of-stream": "^1.1.0",
1742
+ "once": "^1.3.1"
1743
+ }
1744
+ },
1745
+ "node_modules/puppeteer": {
1746
+ "version": "20.8.0",
1747
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.8.0.tgz",
1748
+ "integrity": "sha512-DnTwtQMUzWGkJYN3rvUW8y2LciFMnM0YR9cgwWmYmMLhUnYQw1XX+Q+5cAO8+AADglVuJCz0kaopd0lMI5j04g==",
1749
+ "hasInstallScript": true,
1750
+ "dependencies": {
1751
+ "@puppeteer/browsers": "1.4.3",
1752
+ "cosmiconfig": "8.2.0",
1753
+ "puppeteer-core": "20.8.0"
1754
+ },
1755
+ "engines": {
1756
+ "node": ">=16.3.0"
1757
+ }
1758
+ },
1759
+ "node_modules/puppeteer-core": {
1760
+ "version": "20.8.0",
1761
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.8.0.tgz",
1762
+ "integrity": "sha512-sQcuH6nv9jnFiaaePk53+C0O9BaJP6OaPmYKqJ3sWhziThv6uaaosK49Kg3g1HUUEP9KYhbOhedPIUCXJSQUxw==",
1763
+ "dependencies": {
1764
+ "@puppeteer/browsers": "1.4.3",
1765
+ "chromium-bidi": "0.4.16",
1766
+ "cross-fetch": "4.0.0",
1767
+ "debug": "4.3.4",
1768
+ "devtools-protocol": "0.0.1135028",
1769
+ "ws": "8.13.0"
1770
+ },
1771
+ "engines": {
1772
+ "node": ">=16.3.0"
1773
+ },
1774
+ "peerDependencies": {
1775
+ "typescript": ">= 4.7.4"
1776
+ },
1777
+ "peerDependenciesMeta": {
1778
+ "typescript": {
1779
+ "optional": true
1780
+ }
1781
+ }
1782
+ },
1783
+ "node_modules/puppeteer-core/node_modules/debug": {
1784
+ "version": "4.3.4",
1785
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1786
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1787
+ "dependencies": {
1788
+ "ms": "2.1.2"
1789
+ },
1790
+ "engines": {
1791
+ "node": ">=6.0"
1792
+ },
1793
+ "peerDependenciesMeta": {
1794
+ "supports-color": {
1795
+ "optional": true
1796
+ }
1797
+ }
1798
+ },
1799
+ "node_modules/puppeteer-core/node_modules/ms": {
1800
+ "version": "2.1.2",
1801
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1802
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1803
+ },
1804
+ "node_modules/qs": {
1805
+ "version": "6.11.0",
1806
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
1807
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
1808
+ "dependencies": {
1809
+ "side-channel": "^1.0.4"
1810
+ },
1811
+ "engines": {
1812
+ "node": ">=0.6"
1813
+ },
1814
+ "funding": {
1815
+ "url": "https://github.com/sponsors/ljharb"
1816
+ }
1817
+ },
1818
+ "node_modules/queue-tick": {
1819
+ "version": "1.0.1",
1820
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
1821
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
1822
+ },
1823
+ "node_modules/range-parser": {
1824
+ "version": "1.2.1",
1825
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1826
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1827
+ "engines": {
1828
+ "node": ">= 0.6"
1829
+ }
1830
+ },
1831
+ "node_modules/raw-body": {
1832
+ "version": "2.5.1",
1833
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1834
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1835
+ "dependencies": {
1836
+ "bytes": "3.1.2",
1837
+ "http-errors": "2.0.0",
1838
+ "iconv-lite": "0.4.24",
1839
+ "unpipe": "1.0.0"
1840
+ },
1841
+ "engines": {
1842
+ "node": ">= 0.8"
1843
+ }
1844
+ },
1845
+ "node_modules/require-directory": {
1846
+ "version": "2.1.1",
1847
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1848
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1849
+ "engines": {
1850
+ "node": ">=0.10.0"
1851
+ }
1852
+ },
1853
+ "node_modules/resolve-from": {
1854
+ "version": "4.0.0",
1855
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1856
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1857
+ "engines": {
1858
+ "node": ">=4"
1859
+ }
1860
+ },
1861
+ "node_modules/safe-buffer": {
1862
+ "version": "5.2.1",
1863
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1864
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1865
+ "funding": [
1866
+ {
1867
+ "type": "github",
1868
+ "url": "https://github.com/sponsors/feross"
1869
+ },
1870
+ {
1871
+ "type": "patreon",
1872
+ "url": "https://www.patreon.com/feross"
1873
+ },
1874
+ {
1875
+ "type": "consulting",
1876
+ "url": "https://feross.org/support"
1877
+ }
1878
+ ]
1879
+ },
1880
+ "node_modules/safer-buffer": {
1881
+ "version": "2.1.2",
1882
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1883
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1884
+ },
1885
+ "node_modules/semiver": {
1886
+ "version": "1.1.0",
1887
+ "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
1888
+ "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==",
1889
+ "engines": {
1890
+ "node": ">=6"
1891
+ }
1892
+ },
1893
+ "node_modules/send": {
1894
+ "version": "0.18.0",
1895
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1896
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1897
+ "dependencies": {
1898
+ "debug": "2.6.9",
1899
+ "depd": "2.0.0",
1900
+ "destroy": "1.2.0",
1901
+ "encodeurl": "~1.0.2",
1902
+ "escape-html": "~1.0.3",
1903
+ "etag": "~1.8.1",
1904
+ "fresh": "0.5.2",
1905
+ "http-errors": "2.0.0",
1906
+ "mime": "1.6.0",
1907
+ "ms": "2.1.3",
1908
+ "on-finished": "2.4.1",
1909
+ "range-parser": "~1.2.1",
1910
+ "statuses": "2.0.1"
1911
+ },
1912
+ "engines": {
1913
+ "node": ">= 0.8.0"
1914
+ }
1915
+ },
1916
+ "node_modules/send/node_modules/ms": {
1917
+ "version": "2.1.3",
1918
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1919
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1920
+ },
1921
+ "node_modules/serve-static": {
1922
+ "version": "1.15.0",
1923
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1924
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1925
+ "dependencies": {
1926
+ "encodeurl": "~1.0.2",
1927
+ "escape-html": "~1.0.3",
1928
+ "parseurl": "~1.3.3",
1929
+ "send": "0.18.0"
1930
+ },
1931
+ "engines": {
1932
+ "node": ">= 0.8.0"
1933
+ }
1934
+ },
1935
+ "node_modules/setprototypeof": {
1936
+ "version": "1.2.0",
1937
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1938
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1939
+ },
1940
+ "node_modules/side-channel": {
1941
+ "version": "1.0.4",
1942
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1943
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1944
+ "dependencies": {
1945
+ "call-bind": "^1.0.0",
1946
+ "get-intrinsic": "^1.0.2",
1947
+ "object-inspect": "^1.9.0"
1948
+ },
1949
+ "funding": {
1950
+ "url": "https://github.com/sponsors/ljharb"
1951
+ }
1952
+ },
1953
+ "node_modules/smart-buffer": {
1954
+ "version": "4.2.0",
1955
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1956
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
1957
+ "engines": {
1958
+ "node": ">= 6.0.0",
1959
+ "npm": ">= 3.0.0"
1960
+ }
1961
+ },
1962
+ "node_modules/socks": {
1963
+ "version": "2.7.1",
1964
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
1965
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
1966
+ "dependencies": {
1967
+ "ip": "^2.0.0",
1968
+ "smart-buffer": "^4.2.0"
1969
+ },
1970
+ "engines": {
1971
+ "node": ">= 10.13.0",
1972
+ "npm": ">= 3.0.0"
1973
+ }
1974
+ },
1975
+ "node_modules/socks-proxy-agent": {
1976
+ "version": "8.0.1",
1977
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz",
1978
+ "integrity": "sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ==",
1979
+ "dependencies": {
1980
+ "agent-base": "^7.0.1",
1981
+ "debug": "^4.3.4",
1982
+ "socks": "^2.7.1"
1983
+ },
1984
+ "engines": {
1985
+ "node": ">= 14"
1986
+ }
1987
+ },
1988
+ "node_modules/socks-proxy-agent/node_modules/debug": {
1989
+ "version": "4.3.4",
1990
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1991
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1992
+ "dependencies": {
1993
+ "ms": "2.1.2"
1994
+ },
1995
+ "engines": {
1996
+ "node": ">=6.0"
1997
+ },
1998
+ "peerDependenciesMeta": {
1999
+ "supports-color": {
2000
+ "optional": true
2001
+ }
2002
+ }
2003
+ },
2004
+ "node_modules/socks-proxy-agent/node_modules/ms": {
2005
+ "version": "2.1.2",
2006
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2007
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2008
+ },
2009
+ "node_modules/socks/node_modules/ip": {
2010
+ "version": "2.0.0",
2011
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
2012
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
2013
+ },
2014
+ "node_modules/source-map": {
2015
+ "version": "0.6.1",
2016
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2017
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2018
+ "optional": true,
2019
+ "engines": {
2020
+ "node": ">=0.10.0"
2021
+ }
2022
+ },
2023
+ "node_modules/statuses": {
2024
+ "version": "2.0.1",
2025
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2026
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
2027
+ "engines": {
2028
+ "node": ">= 0.8"
2029
+ }
2030
+ },
2031
+ "node_modules/streamx": {
2032
+ "version": "2.15.0",
2033
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz",
2034
+ "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==",
2035
+ "dependencies": {
2036
+ "fast-fifo": "^1.1.0",
2037
+ "queue-tick": "^1.0.1"
2038
+ }
2039
+ },
2040
+ "node_modules/string-width": {
2041
+ "version": "4.2.3",
2042
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2043
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2044
+ "dependencies": {
2045
+ "emoji-regex": "^8.0.0",
2046
+ "is-fullwidth-code-point": "^3.0.0",
2047
+ "strip-ansi": "^6.0.1"
2048
+ },
2049
+ "engines": {
2050
+ "node": ">=8"
2051
+ }
2052
+ },
2053
+ "node_modules/strip-ansi": {
2054
+ "version": "6.0.1",
2055
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2056
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2057
+ "dependencies": {
2058
+ "ansi-regex": "^5.0.1"
2059
+ },
2060
+ "engines": {
2061
+ "node": ">=8"
2062
+ }
2063
+ },
2064
+ "node_modules/supports-color": {
2065
+ "version": "5.5.0",
2066
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2067
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2068
+ "dependencies": {
2069
+ "has-flag": "^3.0.0"
2070
+ },
2071
+ "engines": {
2072
+ "node": ">=4"
2073
+ }
2074
+ },
2075
+ "node_modules/tar-fs": {
2076
+ "version": "3.0.3",
2077
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.3.tgz",
2078
+ "integrity": "sha512-ZK36riGYnFI6LujIBfBRoDfeaaWUkStIFKwtPjnDWCKnsDE9kuQthG09aQjLjpzoRtVElEMZ/AIAURNb7N9mkA==",
2079
+ "dependencies": {
2080
+ "mkdirp-classic": "^0.5.2",
2081
+ "pump": "^3.0.0",
2082
+ "tar-stream": "^3.1.0"
2083
+ }
2084
+ },
2085
+ "node_modules/tar-stream": {
2086
+ "version": "3.1.6",
2087
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
2088
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
2089
+ "dependencies": {
2090
+ "b4a": "^1.6.4",
2091
+ "fast-fifo": "^1.2.0",
2092
+ "streamx": "^2.15.0"
2093
+ }
2094
+ },
2095
+ "node_modules/temp-dir": {
2096
+ "version": "3.0.0",
2097
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
2098
+ "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
2099
+ "engines": {
2100
+ "node": ">=14.16"
2101
+ }
2102
+ },
2103
+ "node_modules/through": {
2104
+ "version": "2.3.8",
2105
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2106
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
2107
+ },
2108
+ "node_modules/toidentifier": {
2109
+ "version": "1.0.1",
2110
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
2111
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
2112
+ "engines": {
2113
+ "node": ">=0.6"
2114
+ }
2115
+ },
2116
+ "node_modules/tr46": {
2117
+ "version": "0.0.3",
2118
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2119
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
2120
+ },
2121
+ "node_modules/ts-node": {
2122
+ "version": "10.9.1",
2123
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
2124
+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
2125
+ "dependencies": {
2126
+ "@cspotcode/source-map-support": "^0.8.0",
2127
+ "@tsconfig/node10": "^1.0.7",
2128
+ "@tsconfig/node12": "^1.0.7",
2129
+ "@tsconfig/node14": "^1.0.0",
2130
+ "@tsconfig/node16": "^1.0.2",
2131
+ "acorn": "^8.4.1",
2132
+ "acorn-walk": "^8.1.1",
2133
+ "arg": "^4.1.0",
2134
+ "create-require": "^1.1.0",
2135
+ "diff": "^4.0.1",
2136
+ "make-error": "^1.1.1",
2137
+ "v8-compile-cache-lib": "^3.0.1",
2138
+ "yn": "3.1.1"
2139
+ },
2140
+ "bin": {
2141
+ "ts-node": "dist/bin.js",
2142
+ "ts-node-cwd": "dist/bin-cwd.js",
2143
+ "ts-node-esm": "dist/bin-esm.js",
2144
+ "ts-node-script": "dist/bin-script.js",
2145
+ "ts-node-transpile-only": "dist/bin-transpile.js",
2146
+ "ts-script": "dist/bin-script-deprecated.js"
2147
+ },
2148
+ "peerDependencies": {
2149
+ "@swc/core": ">=1.2.50",
2150
+ "@swc/wasm": ">=1.2.50",
2151
+ "@types/node": "*",
2152
+ "typescript": ">=2.7"
2153
+ },
2154
+ "peerDependenciesMeta": {
2155
+ "@swc/core": {
2156
+ "optional": true
2157
+ },
2158
+ "@swc/wasm": {
2159
+ "optional": true
2160
+ }
2161
+ }
2162
+ },
2163
+ "node_modules/tslib": {
2164
+ "version": "2.6.0",
2165
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
2166
+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
2167
+ },
2168
+ "node_modules/type-check": {
2169
+ "version": "0.3.2",
2170
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2171
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
2172
+ "dependencies": {
2173
+ "prelude-ls": "~1.1.2"
2174
+ },
2175
+ "engines": {
2176
+ "node": ">= 0.8.0"
2177
+ }
2178
+ },
2179
+ "node_modules/type-is": {
2180
+ "version": "1.6.18",
2181
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
2182
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2183
+ "dependencies": {
2184
+ "media-typer": "0.3.0",
2185
+ "mime-types": "~2.1.24"
2186
+ },
2187
+ "engines": {
2188
+ "node": ">= 0.6"
2189
+ }
2190
+ },
2191
+ "node_modules/typescript": {
2192
+ "version": "5.1.6",
2193
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
2194
+ "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
2195
+ "peer": true,
2196
+ "bin": {
2197
+ "tsc": "bin/tsc",
2198
+ "tsserver": "bin/tsserver"
2199
+ },
2200
+ "engines": {
2201
+ "node": ">=14.17"
2202
+ }
2203
+ },
2204
+ "node_modules/unbzip2-stream": {
2205
+ "version": "1.4.3",
2206
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
2207
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
2208
+ "dependencies": {
2209
+ "buffer": "^5.2.1",
2210
+ "through": "^2.3.8"
2211
+ }
2212
+ },
2213
+ "node_modules/universalify": {
2214
+ "version": "2.0.0",
2215
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
2216
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
2217
+ "engines": {
2218
+ "node": ">= 10.0.0"
2219
+ }
2220
+ },
2221
+ "node_modules/unpipe": {
2222
+ "version": "1.0.0",
2223
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2224
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
2225
+ "engines": {
2226
+ "node": ">= 0.8"
2227
+ }
2228
+ },
2229
+ "node_modules/utils-merge": {
2230
+ "version": "1.0.1",
2231
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2232
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
2233
+ "engines": {
2234
+ "node": ">= 0.4.0"
2235
+ }
2236
+ },
2237
+ "node_modules/uuid": {
2238
+ "version": "9.0.0",
2239
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
2240
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
2241
+ "bin": {
2242
+ "uuid": "dist/bin/uuid"
2243
+ }
2244
+ },
2245
+ "node_modules/v8-compile-cache-lib": {
2246
+ "version": "3.0.1",
2247
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
2248
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
2249
+ },
2250
+ "node_modules/vary": {
2251
+ "version": "1.1.2",
2252
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2253
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
2254
+ "engines": {
2255
+ "node": ">= 0.8"
2256
+ }
2257
+ },
2258
+ "node_modules/vm2": {
2259
+ "version": "3.9.19",
2260
+ "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.19.tgz",
2261
+ "integrity": "sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==",
2262
+ "dependencies": {
2263
+ "acorn": "^8.7.0",
2264
+ "acorn-walk": "^8.2.0"
2265
+ },
2266
+ "bin": {
2267
+ "vm2": "bin/vm2"
2268
+ },
2269
+ "engines": {
2270
+ "node": ">=6.0"
2271
+ }
2272
+ },
2273
+ "node_modules/web-streams-polyfill": {
2274
+ "version": "3.2.1",
2275
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
2276
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
2277
+ "engines": {
2278
+ "node": ">= 8"
2279
+ }
2280
+ },
2281
+ "node_modules/webidl-conversions": {
2282
+ "version": "3.0.1",
2283
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
2284
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
2285
+ },
2286
+ "node_modules/whatwg-url": {
2287
+ "version": "5.0.0",
2288
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
2289
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
2290
+ "dependencies": {
2291
+ "tr46": "~0.0.3",
2292
+ "webidl-conversions": "^3.0.0"
2293
+ }
2294
+ },
2295
+ "node_modules/which": {
2296
+ "version": "1.3.1",
2297
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2298
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2299
+ "dependencies": {
2300
+ "isexe": "^2.0.0"
2301
+ },
2302
+ "bin": {
2303
+ "which": "bin/which"
2304
+ }
2305
+ },
2306
+ "node_modules/word-wrap": {
2307
+ "version": "1.2.3",
2308
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2309
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
2310
+ "engines": {
2311
+ "node": ">=0.10.0"
2312
+ }
2313
+ },
2314
+ "node_modules/wrap-ansi": {
2315
+ "version": "7.0.0",
2316
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2317
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2318
+ "dependencies": {
2319
+ "ansi-styles": "^4.0.0",
2320
+ "string-width": "^4.1.0",
2321
+ "strip-ansi": "^6.0.0"
2322
+ },
2323
+ "engines": {
2324
+ "node": ">=10"
2325
+ },
2326
+ "funding": {
2327
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2328
+ }
2329
+ },
2330
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
2331
+ "version": "4.3.0",
2332
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2333
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2334
+ "dependencies": {
2335
+ "color-convert": "^2.0.1"
2336
+ },
2337
+ "engines": {
2338
+ "node": ">=8"
2339
+ },
2340
+ "funding": {
2341
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2342
+ }
2343
+ },
2344
+ "node_modules/wrap-ansi/node_modules/color-convert": {
2345
+ "version": "2.0.1",
2346
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2347
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2348
+ "dependencies": {
2349
+ "color-name": "~1.1.4"
2350
+ },
2351
+ "engines": {
2352
+ "node": ">=7.0.0"
2353
+ }
2354
+ },
2355
+ "node_modules/wrap-ansi/node_modules/color-name": {
2356
+ "version": "1.1.4",
2357
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2358
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2359
+ },
2360
+ "node_modules/wrappy": {
2361
+ "version": "1.0.2",
2362
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2363
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2364
+ },
2365
+ "node_modules/ws": {
2366
+ "version": "8.13.0",
2367
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
2368
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
2369
+ "engines": {
2370
+ "node": ">=10.0.0"
2371
+ },
2372
+ "peerDependencies": {
2373
+ "bufferutil": "^4.0.1",
2374
+ "utf-8-validate": ">=5.0.2"
2375
+ },
2376
+ "peerDependenciesMeta": {
2377
+ "bufferutil": {
2378
+ "optional": true
2379
+ },
2380
+ "utf-8-validate": {
2381
+ "optional": true
2382
+ }
2383
+ }
2384
+ },
2385
+ "node_modules/y18n": {
2386
+ "version": "5.0.8",
2387
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2388
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2389
+ "engines": {
2390
+ "node": ">=10"
2391
+ }
2392
+ },
2393
+ "node_modules/yargs": {
2394
+ "version": "17.7.1",
2395
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
2396
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
2397
+ "dependencies": {
2398
+ "cliui": "^8.0.1",
2399
+ "escalade": "^3.1.1",
2400
+ "get-caller-file": "^2.0.5",
2401
+ "require-directory": "^2.1.1",
2402
+ "string-width": "^4.2.3",
2403
+ "y18n": "^5.0.5",
2404
+ "yargs-parser": "^21.1.1"
2405
+ },
2406
+ "engines": {
2407
+ "node": ">=12"
2408
+ }
2409
+ },
2410
+ "node_modules/yargs-parser": {
2411
+ "version": "21.1.1",
2412
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
2413
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
2414
+ "engines": {
2415
+ "node": ">=12"
2416
+ }
2417
+ },
2418
+ "node_modules/yauzl": {
2419
+ "version": "2.10.0",
2420
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
2421
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
2422
+ "dependencies": {
2423
+ "buffer-crc32": "~0.2.3",
2424
+ "fd-slicer": "~1.1.0"
2425
+ }
2426
+ },
2427
+ "node_modules/yn": {
2428
+ "version": "3.1.1",
2429
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
2430
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
2431
+ "engines": {
2432
+ "node": ">=6"
2433
+ }
2434
+ }
2435
+ }
2436
+ }
package.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "video-service",
3
+ "version": "1.0.0",
4
+ "description": "Micro-service used to generate video sequences",
5
+ "main": "src/index.mts",
6
+ "scripts": {
7
+ "start": "node --loader ts-node/esm src/index.mts",
8
+ "test": "node --loader ts-node/esm src/test.mts",
9
+ "docker": "npm run docker:build && npm run docker:run",
10
+ "docker:build": "docker build -t ai-webtv .",
11
+ "docker:run": "docker run -it -p 7860:7860 video-service"
12
+ },
13
+ "author": "Julian Bilcke <julian.bilcke@huggingface.co>",
14
+ "license": "Apache License",
15
+ "dependencies": {
16
+ "@gradio/client": "^0.1.4",
17
+ "@types/express": "^4.17.17",
18
+ "@types/uuid": "^9.0.2",
19
+ "express": "^4.18.2",
20
+ "fluent-ffmpeg": "^2.1.2",
21
+ "fs-extra": "^11.1.1",
22
+ "node-fetch": "^3.3.1",
23
+ "puppeteer": "^20.8.0",
24
+ "temp-dir": "^3.0.0",
25
+ "ts-node": "^10.9.1",
26
+ "uuid": "^9.0.0"
27
+ }
28
+ }
src/index.mts ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { promises as fs } from 'fs'
2
+
3
+ import express from 'express'
4
+
5
+ import { callZeroscope } from './services/callZeroscope.mts'
6
+ import { downloadVideo } from './services/downloadVideo.mts'
7
+ import { upscaleVideo } from './services/upscaleVideo.mts'
8
+
9
+ const app = express()
10
+ const port = 7860
11
+
12
+ app.post('/shot', async (req, res) => {
13
+ const shotPrompt = `${req.query.shotPrompt || ''}`
14
+ if (shotPrompt.length) {
15
+ res.write(JSON.stringify({ error: true, message: 'prompt too short' }))
16
+ res.end()
17
+ return
18
+ }
19
+
20
+ // optional video URL
21
+ const inputVideo = `${req.query.inputVideo || ''}`
22
+
23
+ // optional audio prompt
24
+ const audioPrompt = `${req.query.audioPrompt || ''}`
25
+
26
+ // should we upscale or not?
27
+ const upscale = `${req.query.audioPrompt || 'false'}` === 'true'
28
+
29
+ // duration of the prompt, in seconds
30
+ const durationStr = Number(`${req.query.audioPrompt || '3'}`)
31
+ const maybeDuration = Number(durationStr)
32
+ const duration = Math.min(3, Math.max(1, isNaN(maybeDuration) || isFinite(maybeDuration) ? 3 : maybeDuration))
33
+
34
+ // const frames per second
35
+ const fps = `${req.query.audioPrompt || 'false'}` === 'true'
36
+
37
+ console.log('calling zeroscope..')
38
+ const generatedVideoUrl = await callZeroscope(shotPrompt)
39
+
40
+ const shotFileName = `${Date.now()}.mp4`
41
+
42
+
43
+ console.log('downloading video..')
44
+ const videoFileName = await downloadVideo(generatedVideoUrl, shotFileName)
45
+
46
+ if (upscale) {
47
+ console.log('upscaling video..')
48
+ await upscaleVideo(videoFileName, shotPrompt)
49
+ }
50
+
51
+ // TODO call AudioLDM
52
+ if (audioPrompt) {
53
+ // const baseAudio = await callAudioLDM(audioPrompt)
54
+ console.log('calling audio prompt')
55
+ }
56
+
57
+ console.log('returning result to user..')
58
+ const buffer = await fs.readFile(videoFileName)
59
+ res.setHeader('Content-Type', 'media/mp4')
60
+ res.setHeader('Content-Length', buffer.length)
61
+ res.end(buffer)
62
+ })
63
+
64
+ app.listen(port, () => { console.log(`Open http://localhost:${port}`) })
src/services/callZeroscope.mts ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { client } from '@gradio/client'
2
+
3
+ import { getRandomInt } from "./generateSeed.mts"
4
+
5
+ const videoSpaceApiUrl = process.env.VS_VIDEO_SPACE_API_URL
6
+
7
+ export const callZeroscope = async (prompt: string, options?: {
8
+ seed: number;
9
+ nbFrames: number;
10
+ nbSteps: number;
11
+ }) => {
12
+ const seed = options?.seed || getRandomInt()
13
+ const nbFrames = options?.nbFrames || 24 // we can go up to 48 frames, but then upscaling quill require too much memory!
14
+ const nbSteps = options?.nbSteps || 35
15
+
16
+ const api = await client(videoSpaceApiUrl)
17
+
18
+ const rawResponse = await api.predict('/run', [
19
+ prompt, // string in 'Prompt' Textbox component
20
+ seed, // number (numeric value between 0 and 2147483647) in 'Seed' Slider component
21
+ nbFrames, // 24 // it is the nb of frames per seconds I think?
22
+ nbSteps, // 10, (numeric value between 10 and 50) in 'Number of inference steps' Slider component
23
+ ]) as any
24
+
25
+ const { name } = rawResponse?.data?.[0]?.[0] as { name: string, orig_name: string }
26
+
27
+ return `${videoSpaceApiUrl}/file=${name}`
28
+ }
src/services/downloadVideo.mts ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import path from 'node:path'
2
+ import fs from 'node:fs'
3
+
4
+ import tmpDir from 'temp-dir'
5
+
6
+ export const downloadVideo = async (remoteUrl: string, fileName: string): Promise<string> => {
7
+
8
+ const filePath = path.resolve(tmpDir, fileName)
9
+
10
+ // download the video
11
+ const response = await fetch(remoteUrl)
12
+
13
+ // write it to the disk
14
+ const arrayBuffer = await response.arrayBuffer()
15
+
16
+ await fs.promises.writeFile(
17
+ filePath,
18
+ Buffer.from(arrayBuffer)
19
+ )
20
+
21
+ return fileName
22
+ }
src/services/generateSeed.mts ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ export function getRandomInt() {
2
+ return Math.floor(Math.random() * Math.pow(2, 31));
3
+ }
src/services/interpolateVideo.mts ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { promises as fs } from "node:fs"
2
+ import path from "node:path"
3
+ import { Blob } from "buffer"
4
+ // import { blobFrom } from "fetch-blob"
5
+
6
+ import { client } from "@gradio/client"
7
+ import tmpDir from "temp-dir"
8
+
9
+ import { downloadVideo } from './downloadVideo.mts'
10
+
11
+ const instances: string[] = [
12
+ process.env.VS_INTERPOLATION_SPACE_URL
13
+ ]
14
+
15
+ export const interpolateVideo = async (fileName: string) => {
16
+
17
+ const inputFilePath = path.join(tmpDir, fileName)
18
+
19
+ const instance = instances.shift()
20
+ instances.push(instance)
21
+
22
+ const app = await client(instance)
23
+
24
+ const video = await fs.readFile(inputFilePath)
25
+
26
+ const blob = new Blob([video], { type: 'video/mp4' })
27
+ // const blob = blobFrom(filePath)
28
+ const result = await app.predict(1, [
29
+ blob, // blob in 'parameter_5' Video component
30
+ 1, // number (numeric value between 1 and 4) in 'Interpolation Steps' Slider component
31
+ 24, // string in 'FPS output' Radio component
32
+ ])
33
+
34
+ const data = (result as any).data[0]
35
+ console.log('raw data:', data)
36
+ const { orig_name, data: remoteFilePath } = data
37
+ const remoteUrl = `${instance}/file=${remoteFilePath}`
38
+ console.log("remoteUrl:", remoteUrl)
39
+ await downloadVideo(remoteUrl, fileName)
40
+ }
src/services/upscaleVideo.mts ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import path from 'node:path'
2
+ import fs from 'node:fs'
3
+
4
+ import tmpDir from 'temp-dir'
5
+ import puppeteer from 'puppeteer'
6
+ import { downloadVideo } from './downloadVideo.mts'
7
+
8
+ // TODO we should use an inference endpoint instead (or a space which bakes generation + upscale at the same time)
9
+ export async function upscaleVideo(fileName: string, prompt: string) {
10
+
11
+ const browser = await puppeteer.launch({
12
+ // headless: true,
13
+ protocolTimeout: 800000,
14
+ })
15
+
16
+ const spaceUrl = process.env.VS_UPSCALE_SPACE_API_URL
17
+
18
+ const page = await browser.newPage()
19
+
20
+ await page.goto(spaceUrl, {
21
+ waitUntil: 'networkidle2',
22
+ })
23
+
24
+ const promptField = await page.$('textarea')
25
+ await promptField.type(prompt)
26
+
27
+ const inputFilePath = path.join(tmpDir, fileName)
28
+ // console.log(`local file to upscale: ${inputFilePath}`)
29
+
30
+ await new Promise(r => setTimeout(r, 3000))
31
+
32
+ const fileField = await page.$('input[type=file]')
33
+
34
+ // console.log(`uploading file..`)
35
+ await fileField.uploadFile(inputFilePath)
36
+
37
+ // console.log('looking for the button to submit')
38
+ const submitButton = await page.$('button.lg')
39
+
40
+ // console.log('clicking on the button')
41
+ await submitButton.click()
42
+
43
+ /*
44
+ const client = await page.target().createCDPSession()
45
+
46
+ await client.send('Page.setDownloadBehavior', {
47
+ behavior: 'allow',
48
+ downloadPath: tmpDir,
49
+ })
50
+ */
51
+
52
+ await page.waitForSelector('a[download="xl_result.mp4"]', {
53
+ timeout: 800000, // need to be large enough in case someone else attemps to use our space
54
+ })
55
+
56
+ const upscaledFileUrl = await page.$$eval('a[download="xl_result.mp4"]', el => el.map(x => x.getAttribute("href"))[0])
57
+
58
+ // console.log('downloading upscaled image from:', upscaledFileUrl)
59
+
60
+ const tmpFileName = `${fileName}_xl`
61
+
62
+ // console.log('downloading file from space..')
63
+ console.log(`- downloading ${fileName} from ${upscaledFileUrl}`)
64
+
65
+ await downloadVideo(upscaledFileUrl, tmpFileName)
66
+
67
+ const tmpFilePath = path.join(tmpDir, tmpFileName)
68
+ const filePath = path.join(tmpDir, fileName)
69
+
70
+ await fs.promises.copyFile(tmpFilePath, filePath)
71
+ try {
72
+ await fs.promises.unlink(tmpFilePath)
73
+ } catch (err) {
74
+ console.log('failed to cleanup (no big deal..)')
75
+ }
76
+
77
+ return fileName
78
+ }
src/types.mts ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export interface Shot {
2
+ shotId: string
3
+ index: number
4
+ lastGenerationAt: string
5
+ videoPrompt: string
6
+ audioPrompt: string
7
+ duration: number // no more than 3 (we don't have the ressources for it)
8
+ fps: number // typically 8, 12, 24
9
+ }
10
+
11
+ export interface Sequence {
12
+ sequenceId: string
13
+ skip: boolean
14
+ lastGenerationAt: string
15
+ videoPrompt: string
16
+ audioPrompt: string
17
+ channel: string
18
+ tags: string[]
19
+ shots: Shot[]
20
+ }
21
+
22
+ export interface Database {
23
+ version: number
24
+ startAtShotId: string
25
+ sequences: Sequence[]
26
+ }
tsconfig.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "allowJs": true,
4
+ "esModuleInterop": true,
5
+ "allowSyntheticDefaultImports": true,
6
+ "module": "nodenext",
7
+ "noEmit": true,
8
+ "allowImportingTsExtensions": true,
9
+ "target": "es2017"
10
+ },
11
+ "include": ["**/*.ts", "**/*.mts"],
12
+ }