├── .gitignore
├── .nvmrc
├── LICENSE.md
├── README.md
├── build
├── background.png
├── background@2x.png
├── icon.icns
├── icon.ico
└── icon.png
├── package.json
├── packages
├── app
│ ├── .eslintignore
│ ├── .eslintrc.json
│ ├── .nvmrc
│ ├── .prettierignore
│ ├── .prettierrc.json
│ ├── jsconfig.js
│ ├── package.json
│ ├── src
│ │ ├── config.ts
│ │ ├── main
│ │ │ ├── events.ts
│ │ │ ├── main.ts
│ │ │ ├── shortcuts.ts
│ │ │ ├── updater.ts
│ │ │ └── window.ts
│ │ ├── menu.ts
│ │ ├── preload.ts
│ │ └── utils
│ │ │ └── screen-recorder.ts
│ ├── tsconfig.build.json
│ ├── tsconfig.json
│ └── yarn.lock
└── renderer
│ ├── app.css
│ └── renderer.js
├── test
└── test.js
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | .idea
5 | npm-debug.log*
6 |
7 | # Runtime data
8 | pids
9 | *.pid
10 | *.seed
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
19 | .grunt
20 |
21 | # node-waf configuration
22 | .lock-wscript
23 |
24 | # Compiled binary addons (http://nodejs.org/api/addons.html)
25 | build/Release
26 |
27 | # Dependency directory
28 | node_modules
29 |
30 | # Optional npm cache directory
31 | .npm
32 |
33 | # Optional REPL history
34 | .node_repl_history
35 |
36 | .DS_Store
37 | dist
38 |
39 | .env.local
40 | .secrets
41 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v20.10
2 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 | {one line to give the program's name and a brief idea of what it does.}
635 | Copyright (C) {year} {name of author}
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | {project} Copyright (C) {year} {fullname}
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | # Playcode
5 | > Desktop client for PLAYCODE Javascript Playground
6 |
7 |
8 | [Javascript Playground (Sandbox, Repl)](https://playcode.io)
9 |
10 | [Javascript Online Compiler (Editor)](https://playcode.io/javascript-online)
11 |
12 | [Typescript Playground](https://playcode.io/typescript-playground)
13 |
14 | [Online HTML Editor](https://playcode.io/online-html-editor)
15 |
16 | ## Development
17 |
18 | ```
19 | $ git clone https://github.com/playcode/playcode-desktop.git
20 | $ cd Playcode-desktop
21 | $ npm install
22 | $ npm start
23 | $ npm run dist
24 | ```
25 |
26 | ## License
27 |
28 | This program is free software: you can redistribute it and/or modify
29 | it under the terms of the GNU General Public License as published by
30 | the Free Software Foundation, either version 3 of the License, or
31 | (at your option) any later version.
32 |
33 | This program is distributed in the hope that it will be useful,
34 | but WITHOUT ANY WARRANTY; without even the implied warranty of
35 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36 | GNU General Public License for more details.
37 |
38 | You should have received a copy of the GNU General Public License
39 | along with this program. If not, see .
40 |
--------------------------------------------------------------------------------
/build/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/build/background.png
--------------------------------------------------------------------------------
/build/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/build/background@2x.png
--------------------------------------------------------------------------------
/build/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/build/icon.icns
--------------------------------------------------------------------------------
/build/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/build/icon.ico
--------------------------------------------------------------------------------
/build/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/build/icon.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "playcode",
3 | "productName": "PLAYCODE",
4 | "version": "2024.9.17",
5 | "description": "JavaScript Playground",
6 | "license": "GNU General Public License",
7 | "homepage": "https://github.com/playcode/playcode-desktop/",
8 | "keywords": [
9 | "JvasSript Online Compiler",
10 | "JavaScript Playground",
11 | "JavaScript Desktop",
12 | "JavaScript Sandbox",
13 | "Electron",
14 | "PlayCode",
15 | "Desktop Client",
16 | "Developer Tools"
17 | ],
18 | "bugs": {
19 | "url": "https://github.com/playcode/playcode-desktop/issues/"
20 | },
21 | "repository": {
22 | "type": "git",
23 | "url": "https://github.com/playcode/playcode-desktop.git"
24 | },
25 | "author": {
26 | "name": "playcode"
27 | },
28 | "private": true,
29 | "type": "module",
30 | "main": "./packages/app/dist/main/main.js",
31 | "scripts": {
32 | "postinstall": "install-app-deps",
33 | "start": "yarn compile && electron ./packages/app/dist/main/main.js",
34 | "compile": "rimraf packages/app/dist && tsc -p packages/app",
35 | "pack": "yarn compile && electron-builder --dir",
36 | "dist:all": "yarn compile && electron-builder -mwl",
37 | "dist:w": "yarn compile && electron-builder -m",
38 | "release": "yarn compile && op run --env-file=\"./.env.local\" -- electron-builder -mwl"
39 | },
40 | "build": {
41 | "appId": "xyz.playcode.PLAYCODE",
42 | "productName": "PLAYCODE",
43 | "files": [
44 | "packages/**/*"
45 | ],
46 | "mac": {
47 | "category": "public.app-category.developer-tools",
48 | "darkModeSupport": true,
49 | "target": {
50 | "target": "default",
51 | "arch": "universal"
52 | }
53 | },
54 | "dmg": {
55 | "artifactName": "${productName}-${version}-${arch}.${ext}",
56 | "contents": [
57 | {
58 | "x": 410,
59 | "y": 180,
60 | "type": "link",
61 | "path": "/Applications"
62 | },
63 | {
64 | "x": 130,
65 | "y": 180,
66 | "type": "file"
67 | }
68 | ]
69 | },
70 | "win": {
71 | "target": "nsis",
72 | "publish": [
73 | {
74 | "provider": "github",
75 | "owner": "playcode",
76 | "repo": "playcode-desktop"
77 | }
78 | ]
79 | },
80 | "linux": {
81 | "target": [
82 | "AppImage"
83 | ]
84 | }
85 | },
86 | "devDependencies": {
87 | "electron": "^32.1.0",
88 | "electron-builder": "^25.0.5",
89 | "mocha": "10.7.3",
90 | "rimraf": "^6.0.1",
91 | "spectron": "^19.0.0",
92 | "xo": "^0.59.3"
93 | },
94 | "xo": {
95 | "envs": [
96 | "node",
97 | "mocha"
98 | ],
99 | "esnext": true,
100 | "semicolon": false,
101 | "space": 2
102 | },
103 | "packageIgnore": [
104 | "LICENSE.md",
105 | "README.md",
106 | ".DS_Store",
107 | ".travis.yml",
108 | "appveyor.yml",
109 | "test",
110 | "dist",
111 | "build/Screenshot.png"
112 | ],
113 | "dependencies": {
114 | }
115 | }
116 |
--------------------------------------------------------------------------------
/packages/app/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | bin
3 |
--------------------------------------------------------------------------------
/packages/app/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "node": true,
4 | "jest": true
5 | },
6 | "extends": [
7 | "airbnb-base",
8 | "plugin:@typescript-eslint/recommended",
9 | "plugin:@typescript-eslint/recommended-requiring-type-checking",
10 | "plugin:prettier/recommended"
11 | ],
12 | "plugins": [
13 | "jest",
14 | "security",
15 | "@typescript-eslint",
16 | "import"
17 | ],
18 | "parser": "@typescript-eslint/parser",
19 | "parserOptions": {
20 | "ecmaVersion": 2022,
21 | "project": "./tsconfig.json",
22 | "tsconfigRootDir": "./"
23 | },
24 | "rules": {
25 | "comma-dangle": [
26 | "warn",
27 | "always-multiline"
28 | ],
29 | "semi": [
30 | "warn",
31 | "never"
32 | ],
33 | "no-console": "off",
34 | "func-names": "off",
35 | "max-classes-per-file": "off",
36 | "no-use-before-define": "off",
37 | "lines-between-class-members": "off",
38 | "no-underscore-dangle": "off",
39 | "consistent-return": "off",
40 | "jest/expect-expect": "off",
41 | "no-empty-function": "off",
42 | "no-useless-constructor": "off",
43 | "class-methods-use-this": "off",
44 | "spaced-comment": "warn",
45 | "prefer-const": "warn",
46 | "no-var": "warn",
47 | "camelcase": "off",
48 | "prefer-destructuring": "warn",
49 | "no-param-reassign": "warn",
50 | "import/no-named-as-default": "warn",
51 | "import/extensions": "off",
52 | "import/no-extraneous-dependencies": "warn",
53 | "import/prefer-default-export": "off",
54 | "@typescript-eslint/no-explicit-any": "off",
55 | "@typescript-eslint/no-unused-vars": "warn",
56 | "@typescript-eslint/ban-ts-comment": "off",
57 | "@typescript-eslint/no-this-alias": "off",
58 | "@typescript-eslint/require-await": "warn",
59 | "@typescript-eslint/no-unsafe-return": "off",
60 | "@typescript-eslint/no-unsafe-assignment": "off",
61 | "@typescript-eslint/no-var-requires": "warn",
62 | "@typescript-eslint/no-unsafe-call": "off",
63 | "@typescript-eslint/no-misused-promises": "warn",
64 | "@typescript-eslint/no-unsafe-argument": "off",
65 | "@typescript-eslint/no-unsafe-member-access": "off",
66 | "security/detect-object-injection": "off",
67 | "no-restricted-syntax": [
68 | "error",
69 | "LabeledStatement",
70 | "WithStatement"
71 | ],
72 | "no-void": [
73 | "error",
74 | {
75 | "allowAsStatement": true
76 | }
77 | ]
78 | },
79 | "settings": {
80 | "import/resolver": {
81 | "typescript": {}
82 | },
83 | "import/order": "off",
84 | "import/newline-after-import": [
85 | "warn",
86 | {
87 | "count": 1
88 | }
89 | ]
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/packages/app/.nvmrc:
--------------------------------------------------------------------------------
1 | v20.10
--------------------------------------------------------------------------------
/packages/app/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | coverage
3 | dist
4 | public
5 |
--------------------------------------------------------------------------------
/packages/app/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "importOrder": [
3 | "^@electron/(.*)$",
4 | "^electron(.*)$",
5 | "",
6 | "^@/(.*)$",
7 | "^\\./entities/(.*)$",
8 | "^\\./dto/(.*)$",
9 | "^[./]"
10 | ],
11 | "singleQuote": true,
12 | "semi": false,
13 | "printWidth": 125,
14 | "trailingComma": "all",
15 | "importOrderGroupNamespaceSpecifiers": true,
16 | "importOrderSeparation": true,
17 | "importOrderSortSpecifiers": true,
18 | "importOrderParserPlugins": [
19 | "typescript",
20 | "decorators-legacy"
21 | ],
22 | "plugins": [
23 | "@trivago/prettier-plugin-sort-imports"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/packages/app/jsconfig.js:
--------------------------------------------------------------------------------
1 | System.config({
2 | paths: {
3 | '@/*': './src/*',
4 | },
5 | })
6 |
--------------------------------------------------------------------------------
/packages/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": false,
3 | "main": "./dist/main/main.js",
4 | "type": "module",
5 | "scripts": {},
6 | "dependencies": {
7 | "@electron/remote": "^2.0.9",
8 | "@trivago/prettier-plugin-sort-imports": "^4.3.0",
9 | "@typescript-eslint/eslint-plugin": "^6.15.0",
10 | "@typescript-eslint/parser": "^6.15.0",
11 | "electron-config": "^2.0.0",
12 | "electron-context-menu": "^4.0.4",
13 | "electron-is-dev": "^3.0.1",
14 | "electron-log": "^5.2.0",
15 | "electron-store": "^10.0.0",
16 | "electron-updater": "^6.3.4",
17 | "eslint": "^8.57.0",
18 | "eslint-config-airbnb-base": "^14.2.1",
19 | "eslint-config-prettier": "^9.1.0",
20 | "eslint-import-resolver-typescript": "^3.6.1",
21 | "eslint-plugin-import": "^2.29.1",
22 | "eslint-plugin-jest": "^28.2.0",
23 | "eslint-plugin-prettier": "^5.1.3",
24 | "eslint-plugin-react": "^7.34.1",
25 | "eslint-plugin-security": "^3.0.0",
26 | "prettier": "^3.2.5",
27 | "ts-node": "10.9.2",
28 | "tsconfig-paths": "4.2.0"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/packages/app/src/config.ts:
--------------------------------------------------------------------------------
1 | import { Rectangle } from 'electron'
2 | import Store from 'electron-store'
3 |
4 | interface ConfigSchema {
5 | lastWindowState?: Rectangle
6 | }
7 |
8 | const store = new Store()
9 |
10 | export default store
11 |
--------------------------------------------------------------------------------
/packages/app/src/main/events.ts:
--------------------------------------------------------------------------------
1 | // src/main/events.ts
2 | import { BrowserWindow, Event as ElectronEvent, app } from 'electron'
3 |
4 | import appConfig from '../config.js'
5 |
6 | interface CreateWindowFn {
7 | (): BrowserWindow
8 | }
9 |
10 | interface RegisterShortcutsFn {
11 | (getMainWindow: () => BrowserWindow | null): void
12 | }
13 |
14 | interface UnregisterShortcutsFn {
15 | (): void
16 | }
17 |
18 | function handleAppEvents(
19 | createWindow: CreateWindowFn,
20 | registerShortcuts: RegisterShortcutsFn,
21 | unregisterShortcuts: UnregisterShortcutsFn,
22 | ) {
23 | let mainWindow: BrowserWindow | null = null
24 | let isQuitting = false
25 |
26 | // App ready event
27 | app.on('ready', () => {
28 | mainWindow = createWindow()
29 |
30 | // Register global shortcuts
31 | registerShortcuts(() => mainWindow)
32 |
33 | // Additional setup if needed
34 | // Handle window close events
35 | mainWindow.on('close', (e: ElectronEvent) => {
36 | if (!isQuitting) {
37 | // Assuming you set app.quitting elsewhere
38 | e.preventDefault()
39 | if (process.platform === 'darwin') {
40 | app.hide()
41 | } else {
42 | app.quit()
43 | }
44 | }
45 | })
46 | })
47 |
48 | // Handle all windows closed
49 | app.on('window-all-closed', () => {
50 | if (process.platform !== 'darwin') {
51 | app.quit()
52 | }
53 | })
54 |
55 | // Handle app activation (macOS)
56 | app.on('activate', () => {
57 | if (mainWindow) {
58 | mainWindow.show()
59 | } else {
60 | mainWindow = createWindow()
61 | }
62 | })
63 |
64 | // Handle before-quit to set the quitting flag and save window state
65 | app.on('before-quit', () => {
66 | isQuitting = true
67 |
68 | if (mainWindow && !mainWindow.isFullScreen()) {
69 | appConfig.set('lastWindowState', mainWindow.getBounds())
70 | }
71 | })
72 |
73 | // Handle will-quit to unregister all global shortcuts
74 | app.on('will-quit', () => {
75 | unregisterShortcuts()
76 | })
77 | }
78 |
79 | export { handleAppEvents }
80 |
--------------------------------------------------------------------------------
/packages/app/src/main/main.ts:
--------------------------------------------------------------------------------
1 | import remoteMain from '@electron/remote/main/index.js'
2 |
3 | import { Menu } from 'electron'
4 | import contextMenu from 'electron-context-menu'
5 |
6 | import menuTemplate from '../menu.js'
7 | import { handleAppEvents } from './events.js'
8 | import { registerGlobalShortcuts, unregisterAllShortcuts } from './shortcuts.js'
9 | import { AppUpdater } from './updater.js'
10 | import { createMainWindow } from './window.js'
11 |
12 | // Initialize context menu
13 | contextMenu()
14 |
15 | // Initialize @electron/remote
16 | remoteMain.initialize()
17 |
18 | // Set application menu
19 | Menu.setApplicationMenu(menuTemplate)
20 |
21 | // Initialize AppUpdater
22 | void new AppUpdater()
23 |
24 | // Handle app lifecycle events
25 | handleAppEvents(createMainWindow, registerGlobalShortcuts, unregisterAllShortcuts)
26 |
--------------------------------------------------------------------------------
/packages/app/src/main/shortcuts.ts:
--------------------------------------------------------------------------------
1 | // src/main/shortcuts.ts
2 | import { BrowserWindow, globalShortcut } from 'electron'
3 |
4 | import screenRecorder from '../utils/screen-recorder.js'
5 |
6 | function registerGlobalShortcuts(getMainWindow: () => BrowserWindow | null) {
7 | // Reload shortcut
8 | globalShortcut.register('CmdOrCtrl+R', () => {
9 | const mainWindow = getMainWindow()
10 | mainWindow?.webContents.reload()
11 | })
12 |
13 | // Register screen recorder global shortcuts
14 | screenRecorder.registerGlobalShortcut(() => getMainWindow() as BrowserWindow)
15 | }
16 |
17 | function unregisterAllShortcuts() {
18 | globalShortcut.unregisterAll()
19 | }
20 |
21 | export { registerGlobalShortcuts, unregisterAllShortcuts }
22 |
--------------------------------------------------------------------------------
/packages/app/src/main/updater.ts:
--------------------------------------------------------------------------------
1 | import { BrowserWindow } from 'electron'
2 | import logger from 'electron-log'
3 | import autoUpdaterPkg, { UpdateInfo } from 'electron-updater'
4 |
5 | const { autoUpdater } = autoUpdaterPkg
6 |
7 | class AppUpdater {
8 | constructor(private mainWindow: BrowserWindow | null = null) {
9 | // Configure logger
10 | logger.transports.file.level = 'info'
11 | logger.transports.console.level = 'info'
12 | autoUpdater.logger = logger
13 | autoUpdater.disableWebInstaller = true
14 | autoUpdater.autoInstallOnAppQuit = true
15 |
16 | // Listen for the 'update-downloaded' event
17 | autoUpdater.on('update-downloaded', this.onUpdateDownloaded.bind(this))
18 |
19 | // Check for updates upon initialization
20 | void this.checkForUpdates()
21 | }
22 |
23 | private async onUpdateDownloaded(info: UpdateInfo) {
24 | logger.info('Update downloaded:', info)
25 |
26 | if (this.mainWindow) {
27 | const isConfirmed = await this.mainWindow.webContents.executeJavaScript(`confirm('Update downloaded. Restart now?')`)
28 |
29 | if (isConfirmed) {
30 | autoUpdater.quitAndInstall()
31 | }
32 | }
33 | }
34 |
35 | public async checkForUpdates() {
36 | try {
37 | await autoUpdater.checkForUpdatesAndNotify({
38 | title: 'Update Downloaded',
39 | body: 'A new update has been downloaded. Would you like to restart the application to apply the updates?',
40 | })
41 | } catch (error) {
42 | logger.error('Failed to check for updates:', error)
43 | }
44 | }
45 | }
46 |
47 | export { AppUpdater }
48 |
--------------------------------------------------------------------------------
/packages/app/src/main/window.ts:
--------------------------------------------------------------------------------
1 | import remoteMain from '@electron/remote/main/index.js'
2 |
3 | import { BrowserWindow, Event as ElectronEvent, Menu, WebContents, app, shell } from 'electron'
4 |
5 | import fs from 'fs'
6 | import path from 'path'
7 |
8 | import appConfig from '../config.js'
9 | import { AppUpdater } from './updater.js'
10 |
11 | const isDev = !app.isPackaged
12 | const appTitle: string = app.getName()
13 |
14 | export function createMainWindow(): BrowserWindow {
15 | const lastWindowState = appConfig.get('lastWindowState')
16 |
17 | const appView = new BrowserWindow({
18 | title: appTitle,
19 | x: lastWindowState?.x,
20 | y: lastWindowState?.y,
21 | width: lastWindowState?.width || 1024,
22 | height: lastWindowState?.height || 800,
23 | backgroundColor: '#15222e',
24 | transparent: process.platform !== 'linux',
25 | frame: process.platform === 'linux',
26 | center: true,
27 | movable: true,
28 | resizable: true,
29 | fullscreenable: true,
30 | webPreferences: {
31 | // Maybe other day we will add whitelist for preload
32 | // preload: path.join(app.getAppPath(), '../preload.js'),
33 | nodeIntegration: true,
34 | contextIsolation: false,
35 | // If you need to enable remote module, ensure it's handled securely
36 | // enableRemoteModule: true, // Deprecated in newer Electron versions
37 | },
38 | })
39 |
40 | // Enable @electron/remote
41 | remoteMain.enable(appView.webContents)
42 |
43 | // Load the appropriate URL based on the environment
44 | if (isDev) {
45 | void appView.loadURL('http://localhost:8000/new')
46 | // Alternatively, you can load other development URLs as needed
47 | // appView.loadURL('http://localhost:7000/new');
48 | // appView.loadURL('https://playcode.io/new');
49 | // appView.loadURL(`file://${__dirname}/dist/index.html`);
50 | } else {
51 | void appView.loadURL('https://playcode.io/new')
52 | }
53 |
54 | // Initialize the app updater
55 | // eslint-disable-next-line no-new
56 | new AppUpdater(appView)
57 |
58 | // Handle fullscreen events
59 | appView.on('enter-full-screen', () => {
60 | void appView.webContents.executeJavaScript(`document.dispatchEvent(new Event("electronEnteredFullscreen"));`)
61 | })
62 |
63 | appView.on('leave-full-screen', () => {
64 | void appView.webContents.executeJavaScript(`document.dispatchEvent(new Event("electronLeavedFullscreen"));`)
65 | })
66 |
67 | // Open DevTools if in development mode
68 | if (isDev) {
69 | appView.webContents.openDevTools()
70 | }
71 |
72 | const appPage: WebContents = appView.webContents
73 |
74 | // Handle DOM ready event
75 | appPage.on('dom-ready', () => {
76 | const version = app.getVersion()
77 |
78 | // Dispatch a custom event with the Electron version
79 | void appPage.executeJavaScript(
80 | `document.dispatchEvent(new CustomEvent('setElectronVersion', { detail: { version: '${version}' } }));`,
81 | )
82 |
83 | // Insert global CSS
84 | const appCSSPath = path.join(app.getAppPath(), '../../../renderer/app.css')
85 | const appCSS = fs.readFileSync(appCSSPath, 'utf8')
86 | void appPage.insertCSS(appCSS)
87 |
88 | // Execute global JavaScript
89 | const rendererJSPath = path.join(app.getAppPath(), '../../../renderer/renderer.js')
90 | const rendererJS = fs.readFileSync(rendererJSPath, 'utf8')
91 | void appPage.executeJavaScript(rendererJS)
92 |
93 | // Show the main window
94 | appView.show()
95 |
96 | // Handle new window events (e.g., window.open)
97 | appPage.setWindowOpenHandler(({ url }) => {
98 | const hostname = new URL(url).hostname.toLowerCase()
99 |
100 | // Allow accounts.google.com to handle itself
101 | if (hostname.includes('accounts.google.com')) {
102 | return { action: 'deny' }
103 | }
104 |
105 | const isPreview = hostname.startsWith('preview-')
106 |
107 | if (isPreview) {
108 | // Allow opening the URL in a new BrowserWindow
109 | const newWin = new BrowserWindow({
110 | show: false,
111 | webPreferences: {
112 | // preload: path.join(__dirname, '../preload.js'),
113 | nodeIntegration: true,
114 | contextIsolation: false,
115 | },
116 | })
117 |
118 | newWin.once('ready-to-show', () => {
119 | newWin.show()
120 | })
121 |
122 | void newWin.loadURL(url)
123 |
124 | // Optionally open DevTools for preview windows
125 | if (isDev) {
126 | newWin.webContents.openDevTools()
127 | }
128 |
129 | return { action: 'allow', overrideBrowserWindowOptions: { parent: appView } }
130 | }
131 |
132 | // Open external links in the default browser
133 | void shell.openExternal(url)
134 | return { action: 'deny' }
135 | })
136 | })
137 |
138 | // Handle app-command events (e.g., back button on mouse)
139 | appView.on('app-command', (e: ElectronEvent, cmd: string) => {
140 | if (cmd === 'browser-backward' && appView.webContents.canGoBack()) {
141 | appView.webContents.goBack()
142 | }
143 | })
144 |
145 | return appView
146 | }
147 |
--------------------------------------------------------------------------------
/packages/app/src/menu.ts:
--------------------------------------------------------------------------------
1 | // Import necessary Electron modules and types
2 | import { BrowserWindow, Menu, MenuItem, MenuItemConstructorOptions, app, shell } from 'electron'
3 |
4 | // Retrieve application name and version
5 | const appName: string = app.getName()
6 | const appVersion: string = app.getVersion()
7 |
8 | // Define the menu template for Windows and Linux
9 | const templateWin: MenuItemConstructorOptions[] = [
10 | {
11 | label: 'File',
12 | submenu: [
13 | {
14 | label: `Hide ${appName}`,
15 | accelerator: 'Control+H',
16 | role: 'hide',
17 | },
18 | { type: 'separator' },
19 | {
20 | label: 'Quit',
21 | accelerator: 'Control+W',
22 | role: 'close',
23 | },
24 | ],
25 | },
26 | {
27 | label: 'Edit',
28 | submenu: [
29 | { label: 'Undo', accelerator: 'Control+Z', role: 'undo' },
30 | { label: 'Redo', accelerator: 'Shift+Control+Z', role: 'redo' },
31 | { type: 'separator' },
32 | { label: 'Cut', accelerator: 'Control+X', role: 'cut' },
33 | { label: 'Copy', accelerator: 'Control+C', role: 'copy' },
34 | { label: 'Paste', accelerator: 'Control+V', role: 'paste' },
35 | { label: 'Select All', accelerator: 'Control+A', role: 'selectAll' },
36 | ],
37 | },
38 | {
39 | label: 'View',
40 | submenu: [
41 | {
42 | label: 'Back',
43 | accelerator: 'Backspace',
44 | click: (menuItem: MenuItem, focusedWindow: BrowserWindow | undefined) => {
45 | if (focusedWindow && focusedWindow.webContents.canGoBack()) {
46 | focusedWindow.webContents.goBack()
47 | focusedWindow.webContents.reload()
48 | }
49 | },
50 | },
51 | { type: 'separator' },
52 | {
53 | label: 'Reload',
54 | accelerator: 'F5',
55 | click: (menuItem: MenuItem, focusedWindow: BrowserWindow | undefined) => {
56 | if (focusedWindow) {
57 | focusedWindow.webContents.reload()
58 | }
59 | },
60 | },
61 | { type: 'separator' },
62 | {
63 | label: 'Toggle Dev Tools',
64 | accelerator: 'F12',
65 | click: (menuItem: MenuItem, focusedWindow: BrowserWindow | undefined) => {
66 | if (focusedWindow) {
67 | focusedWindow.webContents.toggleDevTools()
68 | }
69 | },
70 | },
71 | ],
72 | },
73 | {
74 | label: 'Window',
75 | role: 'window',
76 | submenu: [
77 | { label: 'Minimize', accelerator: 'Control+M', role: 'minimize' },
78 | { label: 'Close', accelerator: 'Control+W', role: 'close' },
79 | ],
80 | },
81 | {
82 | label: 'Help',
83 | role: 'help',
84 | submenu: [
85 | {
86 | label: `About ${appName}`,
87 | click: () => {
88 | void shell.openExternal(`https://github.com/playcode/playcode-desktop/releases/tag/${appVersion}`)
89 | },
90 | },
91 | {
92 | label: `Version ${appVersion}`,
93 | enabled: false,
94 | },
95 | { type: 'separator' },
96 | {
97 | label: `View ${appName}`,
98 | click: () => {
99 | void shell.openExternal('https://playcode.io')
100 | },
101 | },
102 | { type: 'separator' },
103 | // Uncomment the following block if you want to include the Changelog in Windows/Linux
104 | /*
105 | {
106 | label: 'Changelog',
107 | click: () => {
108 | shell.openExternal(`https://github.com/Meadowcottage/Playcode/releases/tag/${appVersion}`)
109 | },
110 | },
111 | */
112 | ],
113 | },
114 | ]
115 |
116 | // Define the menu template for macOS
117 | const templateOSX: MenuItemConstructorOptions[] = [
118 | {
119 | label: 'Application',
120 | submenu: [
121 | {
122 | label: `Hide ${appName}`,
123 | accelerator: 'Command+H',
124 | role: 'hide',
125 | },
126 | { type: 'separator' },
127 | {
128 | label: 'Quit',
129 | accelerator: 'Command+Q',
130 | click: () => {
131 | app.quit()
132 | },
133 | },
134 | ],
135 | },
136 | {
137 | label: 'Edit',
138 | submenu: [
139 | { label: 'Undo', accelerator: 'Command+Z', role: 'undo' },
140 | { label: 'Redo', accelerator: 'Shift+Command+Z', role: 'redo' },
141 | { type: 'separator' },
142 | { label: 'Cut', accelerator: 'Command+X', role: 'cut' },
143 | { label: 'Copy', accelerator: 'Command+C', role: 'copy' },
144 | { label: 'Paste', accelerator: 'Command+V', role: 'paste' },
145 | { label: 'Select All', accelerator: 'Command+A', role: 'selectAll' },
146 | ],
147 | },
148 | {
149 | label: 'View',
150 | submenu: [
151 | {
152 | label: 'Back',
153 | accelerator: 'Command+Left',
154 | click: (menuItem: MenuItem, focusedWindow: BrowserWindow | undefined) => {
155 | if (focusedWindow && focusedWindow.webContents.canGoBack()) {
156 | focusedWindow.webContents.goBack()
157 | focusedWindow.webContents.reload()
158 | }
159 | },
160 | },
161 | { type: 'separator' },
162 | {
163 | label: 'Reload',
164 | accelerator: 'Command+R',
165 | click: (menuItem: MenuItem, focusedWindow: BrowserWindow | undefined) => {
166 | if (focusedWindow) {
167 | focusedWindow.webContents.reload()
168 | }
169 | },
170 | },
171 | { type: 'separator' },
172 | {
173 | label: 'Toggle Dev Tools',
174 | accelerator: 'F12',
175 | click: (menuItem: MenuItem, focusedWindow: BrowserWindow | undefined) => {
176 | if (focusedWindow) {
177 | focusedWindow.webContents.toggleDevTools()
178 | }
179 | },
180 | },
181 | ],
182 | },
183 | {
184 | label: 'Window',
185 | role: 'window',
186 | submenu: [
187 | { label: 'Minimize', accelerator: 'Command+M', role: 'minimize' },
188 | { label: 'Close', accelerator: 'Command+W', role: 'close' },
189 | ],
190 | },
191 | {
192 | label: 'Help',
193 | role: 'help',
194 | submenu: [
195 | {
196 | label: `About ${appName}`,
197 | click: () => {
198 | void shell.openExternal(`https://github.com/playcode/playcode-desktop/releases/tag/${appVersion}`)
199 | },
200 | },
201 | {
202 | label: `Version ${appVersion}`,
203 | enabled: false,
204 | },
205 | { type: 'separator' },
206 | {
207 | label: `View ${appName}`,
208 | click: () => {
209 | void shell.openExternal('https://playcode.io')
210 | },
211 | },
212 | { type: 'separator' },
213 | {
214 | label: 'Changelog',
215 | click: () => {
216 | void shell.openExternal(`https://github.com/playcode/playcode-desktop/releases/tag/${appVersion}`)
217 | },
218 | },
219 | ],
220 | },
221 | ]
222 |
223 | // Build the menu from the appropriate template based on the platform
224 | const menu = Menu.buildFromTemplate(process.platform === 'darwin' ? templateOSX : templateWin)
225 |
226 | // Export the constructed menu as the default export
227 | export default menu
228 |
--------------------------------------------------------------------------------
/packages/app/src/preload.ts:
--------------------------------------------------------------------------------
1 | import { contextBridge, ipcRenderer } from 'electron'
2 |
3 |
4 | // Example: Expose a safe API to the renderer
5 | // contextBridge.exposeInMainWorld('electronAPI', {
6 | // Define APIs here
7 | // Example:
8 | // send: (channel: string, data: any) => ipcRenderer.send(channel, data),
9 | // receive: (channel: string, func: (...args: any[]) => void) => ipcRenderer.on(channel, (event, ...args) => func(...args))),
10 | // })
11 |
--------------------------------------------------------------------------------
/packages/app/src/utils/screen-recorder.ts:
--------------------------------------------------------------------------------
1 | import { BrowserWindow, Notification, app, globalShortcut, screen } from 'electron'
2 |
3 | import { ChildProcess, exec } from 'child_process'
4 | import os from 'os'
5 | import path from 'path'
6 |
7 | // Constants
8 | const WINDOW_WIDTH: number = 1000
9 | const WINDOW_HEIGHT: number = 613
10 |
11 | const RECORDING_PADDING_LEFT: number = 0 // Can be positive or negative
12 | const RECORDING_PADDING_TOP: number = 0
13 | const RECORDING_PADDING_RIGHT: number = 0
14 | const RECORDING_PADDING_BOTTOM: number = 0
15 |
16 | const RECORDING_FRAME_RATE: number = 60
17 | const RECORDING_DIR: string = path.join(os.homedir(), 'Desktop')
18 |
19 | // Variables
20 | let ffmpegProcess: ChildProcess | undefined
21 |
22 | // Interfaces
23 | interface FFmpegScreenIndices {
24 | screen0Index: string
25 | screen1Index?: string
26 | }
27 |
28 | // Function to get the active screen index for Electron
29 | function getActiveScreenIndex(): number {
30 | const displays = screen.getAllDisplays()
31 | const cursorPoint = screen.getCursorScreenPoint()
32 |
33 | // eslint-disable-next-line no-plusplus
34 | for (let i = 0; i < displays.length; i++) {
35 | const display = displays[i]
36 | const bounds = display.bounds
37 |
38 | if (
39 | cursorPoint.x >= bounds.x &&
40 | cursorPoint.x <= bounds.x + bounds.width &&
41 | cursorPoint.y >= bounds.y &&
42 | cursorPoint.y <= bounds.y + bounds.height
43 | ) {
44 | return i // Return Electron screen index
45 | }
46 | }
47 |
48 | return -1
49 | }
50 |
51 | // Function to get the FFmpeg screen indices dynamically
52 | function getFFmpegScreenIndices(callback: (indices: FFmpegScreenIndices | null) => void): void {
53 | const ffmpegCommand: string = 'ffmpeg -f avfoundation -list_devices true -i ""'
54 |
55 | exec(ffmpegCommand, (error, stdout, stderr) => {
56 | let output = stdout
57 | if (error) {
58 | if (stderr.includes('Input/output error')) {
59 | console.warn('Usually it is okay. Because some input devices error.')
60 | output = stderr
61 | } else {
62 | console.error('Error listing FFmpeg devices:', error)
63 | callback(null)
64 | return
65 | }
66 | }
67 |
68 | // Parse the output to find the indices of Capture screen 0 and Capture screen 1
69 | const captureScreen0Match = output.match(/\[(\d+)\] Capture screen 0/)
70 | const captureScreen1Match = output.match(/\[(\d+)\] Capture screen 1/)
71 |
72 | if (captureScreen0Match && captureScreen1Match) {
73 | const screen0Index: string = captureScreen0Match[1]
74 | const screen1Index: string = captureScreen1Match[1]
75 | callback({ screen0Index, screen1Index })
76 | } else if (captureScreen0Match) {
77 | const screen0Index: string = captureScreen0Match[1]
78 | callback({ screen0Index })
79 | } else {
80 | console.error('Could not find Capture screen 0 or 1 in FFmpeg output.')
81 | callback(null)
82 | }
83 | })
84 | }
85 |
86 | // Function to get the window position and size centered on the active screen
87 | function getCenteredWindowPositionAndSize(): { x: number; y: number; width: number; height: number } | undefined {
88 | const activeScreenIndex: number = getActiveScreenIndex()
89 | if (activeScreenIndex === -1) {
90 | console.error('No active screen found.')
91 | return
92 | }
93 |
94 | const displays = screen.getAllDisplays()
95 | const display = displays[activeScreenIndex]
96 |
97 | let x: number = display.bounds.x
98 | let y: number = display.bounds.y
99 | const screenSizeWidth: number = display.bounds.width
100 | const screenSizeHeight: number = display.bounds.height
101 |
102 | console.log('Screen size:', screenSizeWidth, screenSizeHeight)
103 | console.log('Window size:', WINDOW_WIDTH, WINDOW_HEIGHT)
104 | console.log('Screen position:', x, y)
105 |
106 | // Calculate x/y to center the window on the screen
107 | x += Math.floor((screenSizeWidth - WINDOW_WIDTH) / 2)
108 | y += Math.floor((screenSizeHeight - WINDOW_HEIGHT) / 2)
109 |
110 | console.log('Center window position:', x, y)
111 |
112 | return { x, y, width: WINDOW_WIDTH, height: WINDOW_HEIGHT }
113 | }
114 |
115 | // Function to get the window position and size adjusted for FFmpeg's screen
116 | function getWindowPositionAndSizeFFmpeg(mainWindow: BrowserWindow):
117 | | {
118 | x: number
119 | y: number
120 | width: number
121 | height: number
122 | }
123 | | undefined {
124 | const activeScreenIndex: number = getActiveScreenIndex()
125 |
126 | if (activeScreenIndex === -1) {
127 | console.error('No active screen found.')
128 | return
129 | }
130 |
131 | const displays = screen.getAllDisplays()
132 | const display = displays[activeScreenIndex]
133 |
134 | // Get the scale factor (devicePixelRatio) for the screen
135 | const scaleFactor: number = display.scaleFactor || 1
136 |
137 | const screenSizeWidth: number = display.bounds.width
138 | const screenSizeHeight: number = display.bounds.height
139 | console.log('Display bounds:', display.bounds)
140 |
141 | const mainWindowBounds = mainWindow.getBounds()
142 | console.log('mainWindowBounds', mainWindowBounds)
143 |
144 | const width: number = mainWindowBounds.width + RECORDING_PADDING_LEFT + RECORDING_PADDING_RIGHT
145 | const height: number = mainWindowBounds.height + RECORDING_PADDING_TOP + RECORDING_PADDING_BOTTOM
146 | const x: number = mainWindowBounds.x - RECORDING_PADDING_LEFT
147 | const y: number = mainWindowBounds.y - RECORDING_PADDING_TOP
148 |
149 | console.log('Screen size (logical):', screenSizeWidth, screenSizeHeight)
150 | console.log('Window size (logical):', width, height)
151 |
152 | // Adjust the window size and position for the screen's density (scale factor)
153 | const adjustedWindowWidth: number = width * scaleFactor
154 | const adjustedWindowHeight: number = height * scaleFactor
155 | const adjustedX: number = (x - display.bounds.x) * scaleFactor
156 | const adjustedY: number = (y - display.bounds.y) * scaleFactor
157 |
158 | console.log('Adjusted window size (physical):', adjustedWindowWidth, adjustedWindowHeight)
159 | console.log('Adjusted window position (physical):', adjustedX, adjustedY)
160 |
161 | return { x: adjustedX, y: adjustedY, width: adjustedWindowWidth, height: adjustedWindowHeight }
162 | }
163 |
164 | // Function to set the window position and size
165 | function setWindowPositionAndSize(mainWindow: BrowserWindow): void {
166 | const positionSize = getCenteredWindowPositionAndSize()
167 | if (positionSize) {
168 | const { x, y, width, height } = positionSize
169 | mainWindow.setPosition(x, y)
170 | mainWindow.setSize(width, height)
171 | }
172 | }
173 |
174 | // Function to start screen recording with ffmpeg
175 | function startScreenRecording(mainWindow: BrowserWindow): void {
176 | const activeScreenIndex: number = getActiveScreenIndex()
177 | if (activeScreenIndex === -1) {
178 | console.error('No active screen found.')
179 | return
180 | }
181 |
182 | // Get the correct FFmpeg screen indices and map the active screen to it
183 | getFFmpegScreenIndices((screenIndices: FFmpegScreenIndices | null) => {
184 | if (!screenIndices) {
185 | console.error('Could not find FFmpeg screen indices.')
186 | return
187 | }
188 |
189 | console.log('Screen recording started')
190 | const windowPositionSize = getWindowPositionAndSizeFFmpeg(mainWindow)
191 | if (!windowPositionSize) {
192 | console.error('Failed to get window position and size for FFmpeg.')
193 | return
194 | }
195 |
196 | const { x, y, width, height } = windowPositionSize
197 |
198 | // Map Electron's active screen to FFmpeg's screen indices
199 | const ffmpegScreenIndex: string | undefined =
200 | activeScreenIndex === 0 ? screenIndices.screen0Index : screenIndices.screen1Index
201 |
202 | if (!ffmpegScreenIndex) {
203 | console.error('FFmpeg screen index not found for the active screen.')
204 | return
205 | }
206 |
207 | console.log('ffmpeg active screen index:', ffmpegScreenIndex)
208 |
209 | // Path to save the video in the Desktop folder
210 | const outputFilePath: string = path.join(RECORDING_DIR, `recording_${Date.now()}.mov`)
211 |
212 | // Command to record the specific region (window) using ffmpeg
213 | const ffmpegCommand: string = `ffmpeg -y -f avfoundation -framerate ${RECORDING_FRAME_RATE} -i "${ffmpegScreenIndex}" -vf "crop=${width}:${height}:${x}:${y}" -pix_fmt yuv420p "${outputFilePath}"`
214 |
215 | // Start ffmpeg process
216 | ffmpegProcess = exec(ffmpegCommand, (error, stdout, stderr) => {
217 | if (error) {
218 | console.error(`Error during screen recording: ${error.message}`)
219 | return
220 | }
221 | console.log('Recording finished:', outputFilePath)
222 | })
223 | })
224 | }
225 |
226 | // Function to stop screen recording gracefully
227 | function stopScreenRecording(): void {
228 | if (ffmpegProcess && ffmpegProcess.stdin) {
229 | // Send 'q' to ffmpeg's stdin to stop recording gracefully
230 | ffmpegProcess.stdin.write('q')
231 | console.log('Recording stopped gracefully')
232 |
233 | new Notification({ title: 'Stopped recording', body: 'Your screen recording has been stopped.' }).show()
234 | }
235 | }
236 |
237 | // Function to kill screen recording forcefully
238 | function killScreenRecording(): void {
239 | if (ffmpegProcess) {
240 | ffmpegProcess.kill('SIGTERM')
241 | console.log('Recording killed')
242 | }
243 | }
244 |
245 | // Function to register global shortcuts
246 | function registerGlobalShortcut(getMainWindow: () => BrowserWindow): void {
247 | // Start recording shortcut with window positioning
248 | const shortcut1 = 'CmdOrCtrl+Shift+7'
249 | const shortcut2 = 'CmdOrCtrl+Shift+Alt+7'
250 | const shortcut3 = 'CmdOrCtrl+Shift+8'
251 |
252 | const success1 = globalShortcut.register(shortcut1, () => {
253 | new Notification({ title: 'Started recording', body: 'With centered positioning' }).show()
254 |
255 | const mainWindow = getMainWindow()
256 | setWindowPositionAndSize(mainWindow)
257 | startScreenRecording(mainWindow)
258 | })
259 |
260 | if (!success1) {
261 | console.error(`Failed to register global shortcut: ${shortcut1}`)
262 | }
263 |
264 | // Start recording shortcut without window positioning
265 | const success2 = globalShortcut.register(shortcut2, () => {
266 | new Notification({ title: 'Started recording', body: '...' }).show()
267 |
268 | const mainWindow = getMainWindow()
269 | startScreenRecording(mainWindow)
270 | })
271 |
272 | if (!success2) {
273 | console.error(`Failed to register global shortcut: ${shortcut2}`)
274 | }
275 |
276 | // Stop recording shortcut
277 | const success3 = globalShortcut.register(shortcut3, () => {
278 | stopScreenRecording()
279 | })
280 |
281 | if (!success3) {
282 | console.error(`Failed to register global shortcut: ${shortcut3}`)
283 | }
284 |
285 | // Electron app events
286 | app.on('will-quit', () => {
287 | killScreenRecording()
288 | globalShortcut.unregisterAll()
289 | })
290 |
291 | // Stop the recording when the window is closed
292 | const mainWindow = getMainWindow()
293 | mainWindow.on('closed', () => {
294 | killScreenRecording()
295 | })
296 | }
297 |
298 | // Export the registerGlobalShortcut function
299 | export default { registerGlobalShortcut }
300 |
--------------------------------------------------------------------------------
/packages/app/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "exclude": ["node_modules", "dist", "test", "**/*spec.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "node16",
4 | "moduleResolution": "node16",
5 | "strict": true,
6 | "declaration": true,
7 | "removeComments": true,
8 | "emitDecoratorMetadata": true,
9 | "useDefineForClassFields": false,
10 | "experimentalDecorators": true,
11 | "allowSyntheticDefaultImports": true,
12 | "target": "ES2022",
13 | "sourceMap": true,
14 | "outDir": "./dist",
15 | "baseUrl": "./",
16 | "jsx": "react",
17 | "resolveJsonModule": true,
18 | "allowJs": true,
19 | "checkJs": false,
20 | "esModuleInterop": true,
21 | "downlevelIteration": true,
22 | "strictNullChecks": true,
23 | "strictFunctionTypes": false,
24 | "strictBindCallApply": false,
25 | "strictPropertyInitialization": false,
26 | "noUnusedLocals": false,
27 | "noUnusedParameters": false,
28 | "noImplicitAny": false,
29 | "noImplicitReturns": false,
30 | "noImplicitThis": false,
31 | "noStrictGenericChecks": false,
32 | "skipDefaultLibCheck": false,
33 | "importHelpers": true,
34 | "types": [
35 | "node"
36 | ],
37 | "lib": [
38 | "ESNext",
39 | "es2019",
40 | "es2020.bigint",
41 | "es2020.string",
42 | "es2020.symbol.wellknown",
43 | "dom"
44 | ],
45 | "paths": {
46 | "@/*": [
47 | "src/*"
48 | ]
49 | },
50 | "incremental": true,
51 | "skipLibCheck": true
52 | },
53 | "include": [
54 | "./src/**/*"
55 | ]
56 | }
57 |
--------------------------------------------------------------------------------
/packages/app/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.24.7":
6 | version "7.24.7"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
8 | integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
9 | dependencies:
10 | "@babel/highlight" "^7.24.7"
11 | picocolors "^1.0.0"
12 |
13 | "@babel/generator@7.17.7":
14 | version "7.17.7"
15 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad"
16 | integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==
17 | dependencies:
18 | "@babel/types" "^7.17.0"
19 | jsesc "^2.5.1"
20 | source-map "^0.5.0"
21 |
22 | "@babel/generator@^7.23.0":
23 | version "7.25.6"
24 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c"
25 | integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==
26 | dependencies:
27 | "@babel/types" "^7.25.6"
28 | "@jridgewell/gen-mapping" "^0.3.5"
29 | "@jridgewell/trace-mapping" "^0.3.25"
30 | jsesc "^2.5.1"
31 |
32 | "@babel/helper-environment-visitor@^7.22.20":
33 | version "7.24.7"
34 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9"
35 | integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==
36 | dependencies:
37 | "@babel/types" "^7.24.7"
38 |
39 | "@babel/helper-function-name@^7.23.0":
40 | version "7.24.7"
41 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2"
42 | integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==
43 | dependencies:
44 | "@babel/template" "^7.24.7"
45 | "@babel/types" "^7.24.7"
46 |
47 | "@babel/helper-hoist-variables@^7.22.5":
48 | version "7.24.7"
49 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee"
50 | integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==
51 | dependencies:
52 | "@babel/types" "^7.24.7"
53 |
54 | "@babel/helper-split-export-declaration@^7.22.6":
55 | version "7.24.7"
56 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856"
57 | integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==
58 | dependencies:
59 | "@babel/types" "^7.24.7"
60 |
61 | "@babel/helper-string-parser@^7.24.8":
62 | version "7.24.8"
63 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d"
64 | integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==
65 |
66 | "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.24.7":
67 | version "7.24.7"
68 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
69 | integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
70 |
71 | "@babel/highlight@^7.24.7":
72 | version "7.24.7"
73 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d"
74 | integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
75 | dependencies:
76 | "@babel/helper-validator-identifier" "^7.24.7"
77 | chalk "^2.4.2"
78 | js-tokens "^4.0.0"
79 | picocolors "^1.0.0"
80 |
81 | "@babel/parser@^7.20.5", "@babel/parser@^7.23.0", "@babel/parser@^7.25.0":
82 | version "7.25.6"
83 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f"
84 | integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==
85 | dependencies:
86 | "@babel/types" "^7.25.6"
87 |
88 | "@babel/template@^7.24.7":
89 | version "7.25.0"
90 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a"
91 | integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==
92 | dependencies:
93 | "@babel/code-frame" "^7.24.7"
94 | "@babel/parser" "^7.25.0"
95 | "@babel/types" "^7.25.0"
96 |
97 | "@babel/traverse@7.23.2":
98 | version "7.23.2"
99 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
100 | integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
101 | dependencies:
102 | "@babel/code-frame" "^7.22.13"
103 | "@babel/generator" "^7.23.0"
104 | "@babel/helper-environment-visitor" "^7.22.20"
105 | "@babel/helper-function-name" "^7.23.0"
106 | "@babel/helper-hoist-variables" "^7.22.5"
107 | "@babel/helper-split-export-declaration" "^7.22.6"
108 | "@babel/parser" "^7.23.0"
109 | "@babel/types" "^7.23.0"
110 | debug "^4.1.0"
111 | globals "^11.1.0"
112 |
113 | "@babel/types@7.17.0":
114 | version "7.17.0"
115 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b"
116 | integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
117 | dependencies:
118 | "@babel/helper-validator-identifier" "^7.16.7"
119 | to-fast-properties "^2.0.0"
120 |
121 | "@babel/types@^7.17.0", "@babel/types@^7.23.0", "@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.6":
122 | version "7.25.6"
123 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
124 | integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==
125 | dependencies:
126 | "@babel/helper-string-parser" "^7.24.8"
127 | "@babel/helper-validator-identifier" "^7.24.7"
128 | to-fast-properties "^2.0.0"
129 |
130 | "@cspotcode/source-map-support@^0.8.0":
131 | version "0.8.1"
132 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
133 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
134 | dependencies:
135 | "@jridgewell/trace-mapping" "0.3.9"
136 |
137 | "@electron/remote@^2.0.9":
138 | version "2.1.2"
139 | resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.1.2.tgz#52a97c8faa5b769155b649ef262f2f8c851776e6"
140 | integrity sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==
141 |
142 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
143 | version "4.4.0"
144 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
145 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
146 | dependencies:
147 | eslint-visitor-keys "^3.3.0"
148 |
149 | "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
150 | version "4.11.1"
151 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f"
152 | integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==
153 |
154 | "@eslint/eslintrc@^2.1.4":
155 | version "2.1.4"
156 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
157 | integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
158 | dependencies:
159 | ajv "^6.12.4"
160 | debug "^4.3.2"
161 | espree "^9.6.0"
162 | globals "^13.19.0"
163 | ignore "^5.2.0"
164 | import-fresh "^3.2.1"
165 | js-yaml "^4.1.0"
166 | minimatch "^3.1.2"
167 | strip-json-comments "^3.1.1"
168 |
169 | "@eslint/js@8.57.1":
170 | version "8.57.1"
171 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
172 | integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
173 |
174 | "@humanwhocodes/config-array@^0.13.0":
175 | version "0.13.0"
176 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748"
177 | integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
178 | dependencies:
179 | "@humanwhocodes/object-schema" "^2.0.3"
180 | debug "^4.3.1"
181 | minimatch "^3.0.5"
182 |
183 | "@humanwhocodes/module-importer@^1.0.1":
184 | version "1.0.1"
185 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
186 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
187 |
188 | "@humanwhocodes/object-schema@^2.0.3":
189 | version "2.0.3"
190 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
191 | integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
192 |
193 | "@jridgewell/gen-mapping@^0.3.5":
194 | version "0.3.5"
195 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
196 | integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
197 | dependencies:
198 | "@jridgewell/set-array" "^1.2.1"
199 | "@jridgewell/sourcemap-codec" "^1.4.10"
200 | "@jridgewell/trace-mapping" "^0.3.24"
201 |
202 | "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
203 | version "3.1.2"
204 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
205 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
206 |
207 | "@jridgewell/set-array@^1.2.1":
208 | version "1.2.1"
209 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
210 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
211 |
212 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
213 | version "1.5.0"
214 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
215 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
216 |
217 | "@jridgewell/trace-mapping@0.3.9":
218 | version "0.3.9"
219 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
220 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
221 | dependencies:
222 | "@jridgewell/resolve-uri" "^3.0.3"
223 | "@jridgewell/sourcemap-codec" "^1.4.10"
224 |
225 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
226 | version "0.3.25"
227 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
228 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
229 | dependencies:
230 | "@jridgewell/resolve-uri" "^3.1.0"
231 | "@jridgewell/sourcemap-codec" "^1.4.14"
232 |
233 | "@nodelib/fs.scandir@2.1.5":
234 | version "2.1.5"
235 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
236 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
237 | dependencies:
238 | "@nodelib/fs.stat" "2.0.5"
239 | run-parallel "^1.1.9"
240 |
241 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
242 | version "2.0.5"
243 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
244 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
245 |
246 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
247 | version "1.2.8"
248 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
249 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
250 | dependencies:
251 | "@nodelib/fs.scandir" "2.1.5"
252 | fastq "^1.6.0"
253 |
254 | "@nolyfill/is-core-module@1.0.39":
255 | version "1.0.39"
256 | resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e"
257 | integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==
258 |
259 | "@pkgr/core@^0.1.0":
260 | version "0.1.1"
261 | resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31"
262 | integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
263 |
264 | "@rtsao/scc@^1.1.0":
265 | version "1.1.0"
266 | resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
267 | integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
268 |
269 | "@trivago/prettier-plugin-sort-imports@^4.3.0":
270 | version "4.3.0"
271 | resolved "https://registry.yarnpkg.com/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz#725f411646b3942193a37041c84e0b2116339789"
272 | integrity sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==
273 | dependencies:
274 | "@babel/generator" "7.17.7"
275 | "@babel/parser" "^7.20.5"
276 | "@babel/traverse" "7.23.2"
277 | "@babel/types" "7.17.0"
278 | javascript-natural-sort "0.7.1"
279 | lodash "^4.17.21"
280 |
281 | "@tsconfig/node10@^1.0.7":
282 | version "1.0.11"
283 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
284 | integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
285 |
286 | "@tsconfig/node12@^1.0.7":
287 | version "1.0.11"
288 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
289 | integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
290 |
291 | "@tsconfig/node14@^1.0.0":
292 | version "1.0.3"
293 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
294 | integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
295 |
296 | "@tsconfig/node16@^1.0.2":
297 | version "1.0.4"
298 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
299 | integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
300 |
301 | "@types/json-schema@^7.0.12":
302 | version "7.0.15"
303 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
304 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
305 |
306 | "@types/json5@^0.0.29":
307 | version "0.0.29"
308 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
309 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
310 |
311 | "@types/semver@^7.5.0":
312 | version "7.5.8"
313 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
314 | integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
315 |
316 | "@typescript-eslint/eslint-plugin@^6.15.0":
317 | version "6.21.0"
318 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3"
319 | integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==
320 | dependencies:
321 | "@eslint-community/regexpp" "^4.5.1"
322 | "@typescript-eslint/scope-manager" "6.21.0"
323 | "@typescript-eslint/type-utils" "6.21.0"
324 | "@typescript-eslint/utils" "6.21.0"
325 | "@typescript-eslint/visitor-keys" "6.21.0"
326 | debug "^4.3.4"
327 | graphemer "^1.4.0"
328 | ignore "^5.2.4"
329 | natural-compare "^1.4.0"
330 | semver "^7.5.4"
331 | ts-api-utils "^1.0.1"
332 |
333 | "@typescript-eslint/parser@^6.15.0":
334 | version "6.21.0"
335 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b"
336 | integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==
337 | dependencies:
338 | "@typescript-eslint/scope-manager" "6.21.0"
339 | "@typescript-eslint/types" "6.21.0"
340 | "@typescript-eslint/typescript-estree" "6.21.0"
341 | "@typescript-eslint/visitor-keys" "6.21.0"
342 | debug "^4.3.4"
343 |
344 | "@typescript-eslint/scope-manager@6.21.0":
345 | version "6.21.0"
346 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1"
347 | integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==
348 | dependencies:
349 | "@typescript-eslint/types" "6.21.0"
350 | "@typescript-eslint/visitor-keys" "6.21.0"
351 |
352 | "@typescript-eslint/scope-manager@8.6.0":
353 | version "8.6.0"
354 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz#28cc2fc26a84b75addf45091a2c6283e29e2c982"
355 | integrity sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==
356 | dependencies:
357 | "@typescript-eslint/types" "8.6.0"
358 | "@typescript-eslint/visitor-keys" "8.6.0"
359 |
360 | "@typescript-eslint/type-utils@6.21.0":
361 | version "6.21.0"
362 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e"
363 | integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==
364 | dependencies:
365 | "@typescript-eslint/typescript-estree" "6.21.0"
366 | "@typescript-eslint/utils" "6.21.0"
367 | debug "^4.3.4"
368 | ts-api-utils "^1.0.1"
369 |
370 | "@typescript-eslint/types@6.21.0":
371 | version "6.21.0"
372 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
373 | integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
374 |
375 | "@typescript-eslint/types@8.6.0":
376 | version "8.6.0"
377 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c"
378 | integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==
379 |
380 | "@typescript-eslint/typescript-estree@6.21.0":
381 | version "6.21.0"
382 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46"
383 | integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==
384 | dependencies:
385 | "@typescript-eslint/types" "6.21.0"
386 | "@typescript-eslint/visitor-keys" "6.21.0"
387 | debug "^4.3.4"
388 | globby "^11.1.0"
389 | is-glob "^4.0.3"
390 | minimatch "9.0.3"
391 | semver "^7.5.4"
392 | ts-api-utils "^1.0.1"
393 |
394 | "@typescript-eslint/typescript-estree@8.6.0":
395 | version "8.6.0"
396 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz#f945506de42871f04868371cb5bf21e8f7266e01"
397 | integrity sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==
398 | dependencies:
399 | "@typescript-eslint/types" "8.6.0"
400 | "@typescript-eslint/visitor-keys" "8.6.0"
401 | debug "^4.3.4"
402 | fast-glob "^3.3.2"
403 | is-glob "^4.0.3"
404 | minimatch "^9.0.4"
405 | semver "^7.6.0"
406 | ts-api-utils "^1.3.0"
407 |
408 | "@typescript-eslint/utils@6.21.0":
409 | version "6.21.0"
410 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134"
411 | integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==
412 | dependencies:
413 | "@eslint-community/eslint-utils" "^4.4.0"
414 | "@types/json-schema" "^7.0.12"
415 | "@types/semver" "^7.5.0"
416 | "@typescript-eslint/scope-manager" "6.21.0"
417 | "@typescript-eslint/types" "6.21.0"
418 | "@typescript-eslint/typescript-estree" "6.21.0"
419 | semver "^7.5.4"
420 |
421 | "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0":
422 | version "8.6.0"
423 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.6.0.tgz#175fe893f32804bed1e72b3364ea6bbe1044181c"
424 | integrity sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==
425 | dependencies:
426 | "@eslint-community/eslint-utils" "^4.4.0"
427 | "@typescript-eslint/scope-manager" "8.6.0"
428 | "@typescript-eslint/types" "8.6.0"
429 | "@typescript-eslint/typescript-estree" "8.6.0"
430 |
431 | "@typescript-eslint/visitor-keys@6.21.0":
432 | version "6.21.0"
433 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47"
434 | integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==
435 | dependencies:
436 | "@typescript-eslint/types" "6.21.0"
437 | eslint-visitor-keys "^3.4.1"
438 |
439 | "@typescript-eslint/visitor-keys@8.6.0":
440 | version "8.6.0"
441 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz#5432af4a1753f376f35ab5b891fc9db237aaf76f"
442 | integrity sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==
443 | dependencies:
444 | "@typescript-eslint/types" "8.6.0"
445 | eslint-visitor-keys "^3.4.3"
446 |
447 | "@ungap/structured-clone@^1.2.0":
448 | version "1.2.0"
449 | resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
450 | integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
451 |
452 | acorn-jsx@^5.3.2:
453 | version "5.3.2"
454 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
455 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
456 |
457 | acorn-walk@^8.1.1:
458 | version "8.3.4"
459 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
460 | integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
461 | dependencies:
462 | acorn "^8.11.0"
463 |
464 | acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0:
465 | version "8.12.1"
466 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
467 | integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
468 |
469 | ajv-formats@^3.0.1:
470 | version "3.0.1"
471 | resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578"
472 | integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==
473 | dependencies:
474 | ajv "^8.0.0"
475 |
476 | ajv@^6.12.4:
477 | version "6.12.6"
478 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
479 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
480 | dependencies:
481 | fast-deep-equal "^3.1.1"
482 | fast-json-stable-stringify "^2.0.0"
483 | json-schema-traverse "^0.4.1"
484 | uri-js "^4.2.2"
485 |
486 | ajv@^8.0.0, ajv@^8.16.0:
487 | version "8.17.1"
488 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
489 | integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
490 | dependencies:
491 | fast-deep-equal "^3.1.3"
492 | fast-uri "^3.0.1"
493 | json-schema-traverse "^1.0.0"
494 | require-from-string "^2.0.2"
495 |
496 | ansi-regex@^5.0.1:
497 | version "5.0.1"
498 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
499 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
500 |
501 | ansi-regex@^6.0.1:
502 | version "6.1.0"
503 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
504 | integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
505 |
506 | ansi-styles@^3.2.1:
507 | version "3.2.1"
508 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
509 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
510 | dependencies:
511 | color-convert "^1.9.0"
512 |
513 | ansi-styles@^4.1.0:
514 | version "4.3.0"
515 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
516 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
517 | dependencies:
518 | color-convert "^2.0.1"
519 |
520 | ansi-styles@^6.0.0:
521 | version "6.2.1"
522 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
523 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
524 |
525 | arg@^4.1.0:
526 | version "4.1.3"
527 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
528 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
529 |
530 | argparse@^2.0.1:
531 | version "2.0.1"
532 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
533 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
534 |
535 | array-buffer-byte-length@^1.0.1:
536 | version "1.0.1"
537 | resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f"
538 | integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==
539 | dependencies:
540 | call-bind "^1.0.5"
541 | is-array-buffer "^3.0.4"
542 |
543 | array-includes@^3.1.6, array-includes@^3.1.8:
544 | version "3.1.8"
545 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
546 | integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
547 | dependencies:
548 | call-bind "^1.0.7"
549 | define-properties "^1.2.1"
550 | es-abstract "^1.23.2"
551 | es-object-atoms "^1.0.0"
552 | get-intrinsic "^1.2.4"
553 | is-string "^1.0.7"
554 |
555 | array-union@^2.1.0:
556 | version "2.1.0"
557 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
558 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
559 |
560 | array.prototype.findlast@^1.2.5:
561 | version "1.2.5"
562 | resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904"
563 | integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==
564 | dependencies:
565 | call-bind "^1.0.7"
566 | define-properties "^1.2.1"
567 | es-abstract "^1.23.2"
568 | es-errors "^1.3.0"
569 | es-object-atoms "^1.0.0"
570 | es-shim-unscopables "^1.0.2"
571 |
572 | array.prototype.findlastindex@^1.2.5:
573 | version "1.2.5"
574 | resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
575 | integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
576 | dependencies:
577 | call-bind "^1.0.7"
578 | define-properties "^1.2.1"
579 | es-abstract "^1.23.2"
580 | es-errors "^1.3.0"
581 | es-object-atoms "^1.0.0"
582 | es-shim-unscopables "^1.0.2"
583 |
584 | array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2:
585 | version "1.3.2"
586 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18"
587 | integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==
588 | dependencies:
589 | call-bind "^1.0.2"
590 | define-properties "^1.2.0"
591 | es-abstract "^1.22.1"
592 | es-shim-unscopables "^1.0.0"
593 |
594 | array.prototype.flatmap@^1.3.2:
595 | version "1.3.2"
596 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527"
597 | integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==
598 | dependencies:
599 | call-bind "^1.0.2"
600 | define-properties "^1.2.0"
601 | es-abstract "^1.22.1"
602 | es-shim-unscopables "^1.0.0"
603 |
604 | array.prototype.tosorted@^1.1.4:
605 | version "1.1.4"
606 | resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc"
607 | integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==
608 | dependencies:
609 | call-bind "^1.0.7"
610 | define-properties "^1.2.1"
611 | es-abstract "^1.23.3"
612 | es-errors "^1.3.0"
613 | es-shim-unscopables "^1.0.2"
614 |
615 | arraybuffer.prototype.slice@^1.0.3:
616 | version "1.0.3"
617 | resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6"
618 | integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==
619 | dependencies:
620 | array-buffer-byte-length "^1.0.1"
621 | call-bind "^1.0.5"
622 | define-properties "^1.2.1"
623 | es-abstract "^1.22.3"
624 | es-errors "^1.2.1"
625 | get-intrinsic "^1.2.3"
626 | is-array-buffer "^3.0.4"
627 | is-shared-array-buffer "^1.0.2"
628 |
629 | atomically@^2.0.3:
630 | version "2.0.3"
631 | resolved "https://registry.yarnpkg.com/atomically/-/atomically-2.0.3.tgz#27e47bbe39994d324918491ba7c0edb7783e56cb"
632 | integrity sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==
633 | dependencies:
634 | stubborn-fs "^1.2.5"
635 | when-exit "^2.1.1"
636 |
637 | available-typed-arrays@^1.0.7:
638 | version "1.0.7"
639 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
640 | integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
641 | dependencies:
642 | possible-typed-array-names "^1.0.0"
643 |
644 | balanced-match@^1.0.0:
645 | version "1.0.2"
646 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
647 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
648 |
649 | brace-expansion@^1.1.7:
650 | version "1.1.11"
651 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
652 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
653 | dependencies:
654 | balanced-match "^1.0.0"
655 | concat-map "0.0.1"
656 |
657 | brace-expansion@^2.0.1:
658 | version "2.0.1"
659 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
660 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
661 | dependencies:
662 | balanced-match "^1.0.0"
663 |
664 | braces@^3.0.3:
665 | version "3.0.3"
666 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
667 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
668 | dependencies:
669 | fill-range "^7.1.1"
670 |
671 | builder-util-runtime@9.2.5:
672 | version "9.2.5"
673 | resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.5.tgz#0afdffa0adb5c84c14926c7dd2cf3c6e96e9be83"
674 | integrity sha512-HjIDfhvqx/8B3TDN4GbABQcgpewTU4LMRTQPkVpKYV3lsuxEJoIfvg09GyWTNmfVNSUAYf+fbTN//JX4TH20pg==
675 | dependencies:
676 | debug "^4.3.4"
677 | sax "^1.2.4"
678 |
679 | call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
680 | version "1.0.7"
681 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
682 | integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
683 | dependencies:
684 | es-define-property "^1.0.0"
685 | es-errors "^1.3.0"
686 | function-bind "^1.1.2"
687 | get-intrinsic "^1.2.4"
688 | set-function-length "^1.2.1"
689 |
690 | callsites@^3.0.0:
691 | version "3.1.0"
692 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
693 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
694 |
695 | chalk@^2.4.2:
696 | version "2.4.2"
697 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
698 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
699 | dependencies:
700 | ansi-styles "^3.2.1"
701 | escape-string-regexp "^1.0.5"
702 | supports-color "^5.3.0"
703 |
704 | chalk@^4.0.0:
705 | version "4.1.2"
706 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
707 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
708 | dependencies:
709 | ansi-styles "^4.1.0"
710 | supports-color "^7.1.0"
711 |
712 | cli-truncate@^4.0.0:
713 | version "4.0.0"
714 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a"
715 | integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==
716 | dependencies:
717 | slice-ansi "^5.0.0"
718 | string-width "^7.0.0"
719 |
720 | color-convert@^1.9.0:
721 | version "1.9.3"
722 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
723 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
724 | dependencies:
725 | color-name "1.1.3"
726 |
727 | color-convert@^2.0.1:
728 | version "2.0.1"
729 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
730 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
731 | dependencies:
732 | color-name "~1.1.4"
733 |
734 | color-name@1.1.3:
735 | version "1.1.3"
736 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
737 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
738 |
739 | color-name@~1.1.4:
740 | version "1.1.4"
741 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
742 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
743 |
744 | concat-map@0.0.1:
745 | version "0.0.1"
746 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
747 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
748 |
749 | conf@^1.0.0:
750 | version "1.4.0"
751 | resolved "https://registry.yarnpkg.com/conf/-/conf-1.4.0.tgz#1ea66c9d7a9b601674a5bb9d2b8dc3c726625e67"
752 | integrity sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==
753 | dependencies:
754 | dot-prop "^4.1.0"
755 | env-paths "^1.0.0"
756 | make-dir "^1.0.0"
757 | pkg-up "^2.0.0"
758 | write-file-atomic "^2.3.0"
759 |
760 | conf@^13.0.0:
761 | version "13.0.1"
762 | resolved "https://registry.yarnpkg.com/conf/-/conf-13.0.1.tgz#a98693789c28507994f06ea0121922dab76591df"
763 | integrity sha512-l9Uwc9eOnz39oADzGO2cSBDi7siv8lwO+31ocQ2nOJijnDiW3pxqm9VV10DPYUO28wW83DjABoUqY1nfHRR2hQ==
764 | dependencies:
765 | ajv "^8.16.0"
766 | ajv-formats "^3.0.1"
767 | atomically "^2.0.3"
768 | debounce-fn "^6.0.0"
769 | dot-prop "^9.0.0"
770 | env-paths "^3.0.0"
771 | json-schema-typed "^8.0.1"
772 | semver "^7.6.2"
773 | uint8array-extras "^1.1.0"
774 |
775 | confusing-browser-globals@^1.0.10:
776 | version "1.0.11"
777 | resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
778 | integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
779 |
780 | create-require@^1.1.0:
781 | version "1.1.1"
782 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
783 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
784 |
785 | cross-spawn@^7.0.2:
786 | version "7.0.3"
787 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
788 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
789 | dependencies:
790 | path-key "^3.1.0"
791 | shebang-command "^2.0.0"
792 | which "^2.0.1"
793 |
794 | data-view-buffer@^1.0.1:
795 | version "1.0.1"
796 | resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2"
797 | integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==
798 | dependencies:
799 | call-bind "^1.0.6"
800 | es-errors "^1.3.0"
801 | is-data-view "^1.0.1"
802 |
803 | data-view-byte-length@^1.0.1:
804 | version "1.0.1"
805 | resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2"
806 | integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==
807 | dependencies:
808 | call-bind "^1.0.7"
809 | es-errors "^1.3.0"
810 | is-data-view "^1.0.1"
811 |
812 | data-view-byte-offset@^1.0.0:
813 | version "1.0.0"
814 | resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a"
815 | integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==
816 | dependencies:
817 | call-bind "^1.0.6"
818 | es-errors "^1.3.0"
819 | is-data-view "^1.0.1"
820 |
821 | debounce-fn@^6.0.0:
822 | version "6.0.0"
823 | resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-6.0.0.tgz#558169aed853eb3cf3a17c0a2438e1a91a7ba44f"
824 | integrity sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==
825 | dependencies:
826 | mimic-function "^5.0.0"
827 |
828 | debug@^3.2.7:
829 | version "3.2.7"
830 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
831 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
832 | dependencies:
833 | ms "^2.1.1"
834 |
835 | debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5:
836 | version "4.3.7"
837 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
838 | integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
839 | dependencies:
840 | ms "^2.1.3"
841 |
842 | deep-is@^0.1.3:
843 | version "0.1.4"
844 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
845 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
846 |
847 | define-data-property@^1.0.1, define-data-property@^1.1.4:
848 | version "1.1.4"
849 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
850 | integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
851 | dependencies:
852 | es-define-property "^1.0.0"
853 | es-errors "^1.3.0"
854 | gopd "^1.0.1"
855 |
856 | define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
857 | version "1.2.1"
858 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
859 | integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
860 | dependencies:
861 | define-data-property "^1.0.1"
862 | has-property-descriptors "^1.0.0"
863 | object-keys "^1.1.1"
864 |
865 | diff@^4.0.1:
866 | version "4.0.2"
867 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
868 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
869 |
870 | dir-glob@^3.0.1:
871 | version "3.0.1"
872 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
873 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
874 | dependencies:
875 | path-type "^4.0.0"
876 |
877 | doctrine@^2.1.0:
878 | version "2.1.0"
879 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
880 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
881 | dependencies:
882 | esutils "^2.0.2"
883 |
884 | doctrine@^3.0.0:
885 | version "3.0.0"
886 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
887 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
888 | dependencies:
889 | esutils "^2.0.2"
890 |
891 | dot-prop@^4.1.0:
892 | version "4.2.1"
893 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4"
894 | integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==
895 | dependencies:
896 | is-obj "^1.0.0"
897 |
898 | dot-prop@^9.0.0:
899 | version "9.0.0"
900 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-9.0.0.tgz#bae5982fe6dc6b8fddb92efef4f2ddff26779e92"
901 | integrity sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==
902 | dependencies:
903 | type-fest "^4.18.2"
904 |
905 | electron-config@^2.0.0:
906 | version "2.0.0"
907 | resolved "https://registry.yarnpkg.com/electron-config/-/electron-config-2.0.0.tgz#b00a7d55556d9c1aa59f5eec3bdf446c773425ff"
908 | integrity sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==
909 | dependencies:
910 | conf "^1.0.0"
911 |
912 | electron-context-menu@^4.0.4:
913 | version "4.0.4"
914 | resolved "https://registry.yarnpkg.com/electron-context-menu/-/electron-context-menu-4.0.4.tgz#a9fb4bd52380cd9bac1f682f0776313db7f94083"
915 | integrity sha512-XPGj35npL8+MG9Lx5ukmK/h8KLmjYJ3e1GvwWKrNZvf2ocv746WXIyltoV1yWtkEPT7g2kQ8hFmu0ZupK5KieA==
916 | dependencies:
917 | cli-truncate "^4.0.0"
918 | electron-dl "^4.0.0"
919 | electron-is-dev "^3.0.1"
920 |
921 | electron-dl@^4.0.0:
922 | version "4.0.0"
923 | resolved "https://registry.yarnpkg.com/electron-dl/-/electron-dl-4.0.0.tgz#413929460cb6bf91257378d262e904787d10e03d"
924 | integrity sha512-USiB9816d2JzKv0LiSbreRfTg5lDk3lWh0vlx/gugCO92ZIJkHVH0UM18EHvKeadErP6Xn4yiTphWzYfbA2Ong==
925 | dependencies:
926 | ext-name "^5.0.0"
927 | pupa "^3.1.0"
928 | unused-filename "^4.0.1"
929 |
930 | electron-is-dev@^3.0.1:
931 | version "3.0.1"
932 | resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-3.0.1.tgz#1cbc79b1dd046787903acd357efdfab6549dc17a"
933 | integrity sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==
934 |
935 | electron-log@^5.2.0:
936 | version "5.2.0"
937 | resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-5.2.0.tgz#505716926dfcf9cb3e74f42b1003be6d865bcb88"
938 | integrity sha512-VjLkvaLmbP3AOGOh5Fob9M8bFU0mmeSAb5G2EoTBx+kQLf2XA/0byzjsVGBTHhikbT+m1AB27NEQUv9wX9nM8w==
939 |
940 | electron-store@^10.0.0:
941 | version "10.0.0"
942 | resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-10.0.0.tgz#b6ff4d3a51457a26b394b0deffaf3ff804c8ba91"
943 | integrity sha512-BU/QZh+5twHBprRdLu3YZX/rIarmZzhTNpJvAvqG1/yN0mNCrsMh0kl7bM4xaUKDNRiHz1r7wP/7Prjh7cleIw==
944 | dependencies:
945 | conf "^13.0.0"
946 | type-fest "^4.20.0"
947 |
948 | electron-updater@^6.3.4:
949 | version "6.3.4"
950 | resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.3.4.tgz#3934bc89875bb524c2cbbd11041114e97c0c2496"
951 | integrity sha512-uZUo7p1Y53G4tl6Cgw07X1yF8Jlz6zhaL7CQJDZ1fVVkOaBfE2cWtx80avwDVi8jHp+I/FWawrMgTAeCCNIfAg==
952 | dependencies:
953 | builder-util-runtime "9.2.5"
954 | fs-extra "^10.1.0"
955 | js-yaml "^4.1.0"
956 | lazy-val "^1.0.5"
957 | lodash.escaperegexp "^4.1.2"
958 | lodash.isequal "^4.5.0"
959 | semver "^7.6.3"
960 | tiny-typed-emitter "^2.1.0"
961 |
962 | emoji-regex@^10.3.0:
963 | version "10.4.0"
964 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
965 | integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
966 |
967 | enhanced-resolve@^5.15.0:
968 | version "5.17.1"
969 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15"
970 | integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==
971 | dependencies:
972 | graceful-fs "^4.2.4"
973 | tapable "^2.2.0"
974 |
975 | env-paths@^1.0.0:
976 | version "1.0.0"
977 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
978 | integrity sha512-+6r/UAzikJWJPcQZpBQS+bVmjAMz2BkDP/N4n2Uz1zz8lyw1IHWUeVdh/85gs0dp5A+z76LOQhCZkR6F88mlUw==
979 |
980 | env-paths@^3.0.0:
981 | version "3.0.0"
982 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da"
983 | integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==
984 |
985 | es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3:
986 | version "1.23.3"
987 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
988 | integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
989 | dependencies:
990 | array-buffer-byte-length "^1.0.1"
991 | arraybuffer.prototype.slice "^1.0.3"
992 | available-typed-arrays "^1.0.7"
993 | call-bind "^1.0.7"
994 | data-view-buffer "^1.0.1"
995 | data-view-byte-length "^1.0.1"
996 | data-view-byte-offset "^1.0.0"
997 | es-define-property "^1.0.0"
998 | es-errors "^1.3.0"
999 | es-object-atoms "^1.0.0"
1000 | es-set-tostringtag "^2.0.3"
1001 | es-to-primitive "^1.2.1"
1002 | function.prototype.name "^1.1.6"
1003 | get-intrinsic "^1.2.4"
1004 | get-symbol-description "^1.0.2"
1005 | globalthis "^1.0.3"
1006 | gopd "^1.0.1"
1007 | has-property-descriptors "^1.0.2"
1008 | has-proto "^1.0.3"
1009 | has-symbols "^1.0.3"
1010 | hasown "^2.0.2"
1011 | internal-slot "^1.0.7"
1012 | is-array-buffer "^3.0.4"
1013 | is-callable "^1.2.7"
1014 | is-data-view "^1.0.1"
1015 | is-negative-zero "^2.0.3"
1016 | is-regex "^1.1.4"
1017 | is-shared-array-buffer "^1.0.3"
1018 | is-string "^1.0.7"
1019 | is-typed-array "^1.1.13"
1020 | is-weakref "^1.0.2"
1021 | object-inspect "^1.13.1"
1022 | object-keys "^1.1.1"
1023 | object.assign "^4.1.5"
1024 | regexp.prototype.flags "^1.5.2"
1025 | safe-array-concat "^1.1.2"
1026 | safe-regex-test "^1.0.3"
1027 | string.prototype.trim "^1.2.9"
1028 | string.prototype.trimend "^1.0.8"
1029 | string.prototype.trimstart "^1.0.8"
1030 | typed-array-buffer "^1.0.2"
1031 | typed-array-byte-length "^1.0.1"
1032 | typed-array-byte-offset "^1.0.2"
1033 | typed-array-length "^1.0.6"
1034 | unbox-primitive "^1.0.2"
1035 | which-typed-array "^1.1.15"
1036 |
1037 | es-define-property@^1.0.0:
1038 | version "1.0.0"
1039 | resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
1040 | integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
1041 | dependencies:
1042 | get-intrinsic "^1.2.4"
1043 |
1044 | es-errors@^1.2.1, es-errors@^1.3.0:
1045 | version "1.3.0"
1046 | resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
1047 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
1048 |
1049 | es-iterator-helpers@^1.0.19:
1050 | version "1.0.19"
1051 | resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8"
1052 | integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==
1053 | dependencies:
1054 | call-bind "^1.0.7"
1055 | define-properties "^1.2.1"
1056 | es-abstract "^1.23.3"
1057 | es-errors "^1.3.0"
1058 | es-set-tostringtag "^2.0.3"
1059 | function-bind "^1.1.2"
1060 | get-intrinsic "^1.2.4"
1061 | globalthis "^1.0.3"
1062 | has-property-descriptors "^1.0.2"
1063 | has-proto "^1.0.3"
1064 | has-symbols "^1.0.3"
1065 | internal-slot "^1.0.7"
1066 | iterator.prototype "^1.1.2"
1067 | safe-array-concat "^1.1.2"
1068 |
1069 | es-object-atoms@^1.0.0:
1070 | version "1.0.0"
1071 | resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941"
1072 | integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==
1073 | dependencies:
1074 | es-errors "^1.3.0"
1075 |
1076 | es-set-tostringtag@^2.0.3:
1077 | version "2.0.3"
1078 | resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
1079 | integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
1080 | dependencies:
1081 | get-intrinsic "^1.2.4"
1082 | has-tostringtag "^1.0.2"
1083 | hasown "^2.0.1"
1084 |
1085 | es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2:
1086 | version "1.0.2"
1087 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
1088 | integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
1089 | dependencies:
1090 | hasown "^2.0.0"
1091 |
1092 | es-to-primitive@^1.2.1:
1093 | version "1.2.1"
1094 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
1095 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
1096 | dependencies:
1097 | is-callable "^1.1.4"
1098 | is-date-object "^1.0.1"
1099 | is-symbol "^1.0.2"
1100 |
1101 | escape-goat@^4.0.0:
1102 | version "4.0.0"
1103 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081"
1104 | integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==
1105 |
1106 | escape-string-regexp@^1.0.5:
1107 | version "1.0.5"
1108 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1109 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
1110 |
1111 | escape-string-regexp@^4.0.0:
1112 | version "4.0.0"
1113 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
1114 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
1115 |
1116 | escape-string-regexp@^5.0.0:
1117 | version "5.0.0"
1118 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
1119 | integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
1120 |
1121 | eslint-config-airbnb-base@^14.2.1:
1122 | version "14.2.1"
1123 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e"
1124 | integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==
1125 | dependencies:
1126 | confusing-browser-globals "^1.0.10"
1127 | object.assign "^4.1.2"
1128 | object.entries "^1.1.2"
1129 |
1130 | eslint-config-prettier@^9.1.0:
1131 | version "9.1.0"
1132 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
1133 | integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
1134 |
1135 | eslint-import-resolver-node@^0.3.9:
1136 | version "0.3.9"
1137 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac"
1138 | integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==
1139 | dependencies:
1140 | debug "^3.2.7"
1141 | is-core-module "^2.13.0"
1142 | resolve "^1.22.4"
1143 |
1144 | eslint-import-resolver-typescript@^3.6.1:
1145 | version "3.6.3"
1146 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz#bb8e388f6afc0f940ce5d2c5fd4a3d147f038d9e"
1147 | integrity sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==
1148 | dependencies:
1149 | "@nolyfill/is-core-module" "1.0.39"
1150 | debug "^4.3.5"
1151 | enhanced-resolve "^5.15.0"
1152 | eslint-module-utils "^2.8.1"
1153 | fast-glob "^3.3.2"
1154 | get-tsconfig "^4.7.5"
1155 | is-bun-module "^1.0.2"
1156 | is-glob "^4.0.3"
1157 |
1158 | eslint-module-utils@^2.8.1, eslint-module-utils@^2.9.0:
1159 | version "2.11.0"
1160 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4"
1161 | integrity sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==
1162 | dependencies:
1163 | debug "^3.2.7"
1164 |
1165 | eslint-plugin-import@^2.29.1:
1166 | version "2.30.0"
1167 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449"
1168 | integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==
1169 | dependencies:
1170 | "@rtsao/scc" "^1.1.0"
1171 | array-includes "^3.1.8"
1172 | array.prototype.findlastindex "^1.2.5"
1173 | array.prototype.flat "^1.3.2"
1174 | array.prototype.flatmap "^1.3.2"
1175 | debug "^3.2.7"
1176 | doctrine "^2.1.0"
1177 | eslint-import-resolver-node "^0.3.9"
1178 | eslint-module-utils "^2.9.0"
1179 | hasown "^2.0.2"
1180 | is-core-module "^2.15.1"
1181 | is-glob "^4.0.3"
1182 | minimatch "^3.1.2"
1183 | object.fromentries "^2.0.8"
1184 | object.groupby "^1.0.3"
1185 | object.values "^1.2.0"
1186 | semver "^6.3.1"
1187 | tsconfig-paths "^3.15.0"
1188 |
1189 | eslint-plugin-jest@^28.2.0:
1190 | version "28.8.3"
1191 | resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz#c5699bba0ad06090ad613535e4f1572f4c2567c0"
1192 | integrity sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==
1193 | dependencies:
1194 | "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0"
1195 |
1196 | eslint-plugin-prettier@^5.1.3:
1197 | version "5.2.1"
1198 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95"
1199 | integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==
1200 | dependencies:
1201 | prettier-linter-helpers "^1.0.0"
1202 | synckit "^0.9.1"
1203 |
1204 | eslint-plugin-react@^7.34.1:
1205 | version "7.36.1"
1206 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz#f1dabbb11f3d4ebe8b0cf4e54aff4aee81144ee5"
1207 | integrity sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==
1208 | dependencies:
1209 | array-includes "^3.1.8"
1210 | array.prototype.findlast "^1.2.5"
1211 | array.prototype.flatmap "^1.3.2"
1212 | array.prototype.tosorted "^1.1.4"
1213 | doctrine "^2.1.0"
1214 | es-iterator-helpers "^1.0.19"
1215 | estraverse "^5.3.0"
1216 | hasown "^2.0.2"
1217 | jsx-ast-utils "^2.4.1 || ^3.0.0"
1218 | minimatch "^3.1.2"
1219 | object.entries "^1.1.8"
1220 | object.fromentries "^2.0.8"
1221 | object.values "^1.2.0"
1222 | prop-types "^15.8.1"
1223 | resolve "^2.0.0-next.5"
1224 | semver "^6.3.1"
1225 | string.prototype.matchall "^4.0.11"
1226 | string.prototype.repeat "^1.0.0"
1227 |
1228 | eslint-plugin-security@^3.0.0:
1229 | version "3.0.1"
1230 | resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz#bc52904f77c3b74c3942e12bdb0751831a3223d2"
1231 | integrity sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==
1232 | dependencies:
1233 | safe-regex "^2.1.1"
1234 |
1235 | eslint-scope@^7.2.2:
1236 | version "7.2.2"
1237 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
1238 | integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
1239 | dependencies:
1240 | esrecurse "^4.3.0"
1241 | estraverse "^5.2.0"
1242 |
1243 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
1244 | version "3.4.3"
1245 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
1246 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
1247 |
1248 | eslint@^8.57.0:
1249 | version "8.57.1"
1250 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9"
1251 | integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
1252 | dependencies:
1253 | "@eslint-community/eslint-utils" "^4.2.0"
1254 | "@eslint-community/regexpp" "^4.6.1"
1255 | "@eslint/eslintrc" "^2.1.4"
1256 | "@eslint/js" "8.57.1"
1257 | "@humanwhocodes/config-array" "^0.13.0"
1258 | "@humanwhocodes/module-importer" "^1.0.1"
1259 | "@nodelib/fs.walk" "^1.2.8"
1260 | "@ungap/structured-clone" "^1.2.0"
1261 | ajv "^6.12.4"
1262 | chalk "^4.0.0"
1263 | cross-spawn "^7.0.2"
1264 | debug "^4.3.2"
1265 | doctrine "^3.0.0"
1266 | escape-string-regexp "^4.0.0"
1267 | eslint-scope "^7.2.2"
1268 | eslint-visitor-keys "^3.4.3"
1269 | espree "^9.6.1"
1270 | esquery "^1.4.2"
1271 | esutils "^2.0.2"
1272 | fast-deep-equal "^3.1.3"
1273 | file-entry-cache "^6.0.1"
1274 | find-up "^5.0.0"
1275 | glob-parent "^6.0.2"
1276 | globals "^13.19.0"
1277 | graphemer "^1.4.0"
1278 | ignore "^5.2.0"
1279 | imurmurhash "^0.1.4"
1280 | is-glob "^4.0.0"
1281 | is-path-inside "^3.0.3"
1282 | js-yaml "^4.1.0"
1283 | json-stable-stringify-without-jsonify "^1.0.1"
1284 | levn "^0.4.1"
1285 | lodash.merge "^4.6.2"
1286 | minimatch "^3.1.2"
1287 | natural-compare "^1.4.0"
1288 | optionator "^0.9.3"
1289 | strip-ansi "^6.0.1"
1290 | text-table "^0.2.0"
1291 |
1292 | espree@^9.6.0, espree@^9.6.1:
1293 | version "9.6.1"
1294 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
1295 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
1296 | dependencies:
1297 | acorn "^8.9.0"
1298 | acorn-jsx "^5.3.2"
1299 | eslint-visitor-keys "^3.4.1"
1300 |
1301 | esquery@^1.4.2:
1302 | version "1.6.0"
1303 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
1304 | integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
1305 | dependencies:
1306 | estraverse "^5.1.0"
1307 |
1308 | esrecurse@^4.3.0:
1309 | version "4.3.0"
1310 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1311 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1312 | dependencies:
1313 | estraverse "^5.2.0"
1314 |
1315 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
1316 | version "5.3.0"
1317 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1318 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1319 |
1320 | esutils@^2.0.2:
1321 | version "2.0.3"
1322 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1323 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1324 |
1325 | ext-list@^2.0.0:
1326 | version "2.2.2"
1327 | resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37"
1328 | integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==
1329 | dependencies:
1330 | mime-db "^1.28.0"
1331 |
1332 | ext-name@^5.0.0:
1333 | version "5.0.0"
1334 | resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6"
1335 | integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==
1336 | dependencies:
1337 | ext-list "^2.0.0"
1338 | sort-keys-length "^1.0.0"
1339 |
1340 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
1341 | version "3.1.3"
1342 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1343 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1344 |
1345 | fast-diff@^1.1.2:
1346 | version "1.3.0"
1347 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
1348 | integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
1349 |
1350 | fast-glob@^3.2.9, fast-glob@^3.3.2:
1351 | version "3.3.2"
1352 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
1353 | integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
1354 | dependencies:
1355 | "@nodelib/fs.stat" "^2.0.2"
1356 | "@nodelib/fs.walk" "^1.2.3"
1357 | glob-parent "^5.1.2"
1358 | merge2 "^1.3.0"
1359 | micromatch "^4.0.4"
1360 |
1361 | fast-json-stable-stringify@^2.0.0:
1362 | version "2.1.0"
1363 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1364 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1365 |
1366 | fast-levenshtein@^2.0.6:
1367 | version "2.0.6"
1368 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1369 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
1370 |
1371 | fast-uri@^3.0.1:
1372 | version "3.0.1"
1373 | resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134"
1374 | integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==
1375 |
1376 | fastq@^1.6.0:
1377 | version "1.17.1"
1378 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
1379 | integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
1380 | dependencies:
1381 | reusify "^1.0.4"
1382 |
1383 | file-entry-cache@^6.0.1:
1384 | version "6.0.1"
1385 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
1386 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
1387 | dependencies:
1388 | flat-cache "^3.0.4"
1389 |
1390 | fill-range@^7.1.1:
1391 | version "7.1.1"
1392 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
1393 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
1394 | dependencies:
1395 | to-regex-range "^5.0.1"
1396 |
1397 | find-up@^2.1.0:
1398 | version "2.1.0"
1399 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
1400 | integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
1401 | dependencies:
1402 | locate-path "^2.0.0"
1403 |
1404 | find-up@^5.0.0:
1405 | version "5.0.0"
1406 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
1407 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
1408 | dependencies:
1409 | locate-path "^6.0.0"
1410 | path-exists "^4.0.0"
1411 |
1412 | flat-cache@^3.0.4:
1413 | version "3.2.0"
1414 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
1415 | integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
1416 | dependencies:
1417 | flatted "^3.2.9"
1418 | keyv "^4.5.3"
1419 | rimraf "^3.0.2"
1420 |
1421 | flatted@^3.2.9:
1422 | version "3.3.1"
1423 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
1424 | integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
1425 |
1426 | for-each@^0.3.3:
1427 | version "0.3.3"
1428 | resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
1429 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
1430 | dependencies:
1431 | is-callable "^1.1.3"
1432 |
1433 | fs-extra@^10.1.0:
1434 | version "10.1.0"
1435 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
1436 | integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
1437 | dependencies:
1438 | graceful-fs "^4.2.0"
1439 | jsonfile "^6.0.1"
1440 | universalify "^2.0.0"
1441 |
1442 | fs.realpath@^1.0.0:
1443 | version "1.0.0"
1444 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1445 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1446 |
1447 | function-bind@^1.1.2:
1448 | version "1.1.2"
1449 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
1450 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
1451 |
1452 | function.prototype.name@^1.1.6:
1453 | version "1.1.6"
1454 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
1455 | integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
1456 | dependencies:
1457 | call-bind "^1.0.2"
1458 | define-properties "^1.2.0"
1459 | es-abstract "^1.22.1"
1460 | functions-have-names "^1.2.3"
1461 |
1462 | functions-have-names@^1.2.3:
1463 | version "1.2.3"
1464 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
1465 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
1466 |
1467 | get-east-asian-width@^1.0.0:
1468 | version "1.2.0"
1469 | resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e"
1470 | integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==
1471 |
1472 | get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
1473 | version "1.2.4"
1474 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
1475 | integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
1476 | dependencies:
1477 | es-errors "^1.3.0"
1478 | function-bind "^1.1.2"
1479 | has-proto "^1.0.1"
1480 | has-symbols "^1.0.3"
1481 | hasown "^2.0.0"
1482 |
1483 | get-symbol-description@^1.0.2:
1484 | version "1.0.2"
1485 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5"
1486 | integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==
1487 | dependencies:
1488 | call-bind "^1.0.5"
1489 | es-errors "^1.3.0"
1490 | get-intrinsic "^1.2.4"
1491 |
1492 | get-tsconfig@^4.7.5:
1493 | version "4.8.1"
1494 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471"
1495 | integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==
1496 | dependencies:
1497 | resolve-pkg-maps "^1.0.0"
1498 |
1499 | glob-parent@^5.1.2:
1500 | version "5.1.2"
1501 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
1502 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1503 | dependencies:
1504 | is-glob "^4.0.1"
1505 |
1506 | glob-parent@^6.0.2:
1507 | version "6.0.2"
1508 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
1509 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1510 | dependencies:
1511 | is-glob "^4.0.3"
1512 |
1513 | glob@^7.1.3:
1514 | version "7.2.3"
1515 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1516 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1517 | dependencies:
1518 | fs.realpath "^1.0.0"
1519 | inflight "^1.0.4"
1520 | inherits "2"
1521 | minimatch "^3.1.1"
1522 | once "^1.3.0"
1523 | path-is-absolute "^1.0.0"
1524 |
1525 | globals@^11.1.0:
1526 | version "11.12.0"
1527 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1528 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1529 |
1530 | globals@^13.19.0:
1531 | version "13.24.0"
1532 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
1533 | integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
1534 | dependencies:
1535 | type-fest "^0.20.2"
1536 |
1537 | globalthis@^1.0.3:
1538 | version "1.0.4"
1539 | resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
1540 | integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
1541 | dependencies:
1542 | define-properties "^1.2.1"
1543 | gopd "^1.0.1"
1544 |
1545 | globby@^11.1.0:
1546 | version "11.1.0"
1547 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
1548 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
1549 | dependencies:
1550 | array-union "^2.1.0"
1551 | dir-glob "^3.0.1"
1552 | fast-glob "^3.2.9"
1553 | ignore "^5.2.0"
1554 | merge2 "^1.4.1"
1555 | slash "^3.0.0"
1556 |
1557 | gopd@^1.0.1:
1558 | version "1.0.1"
1559 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
1560 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
1561 | dependencies:
1562 | get-intrinsic "^1.1.3"
1563 |
1564 | graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
1565 | version "4.2.11"
1566 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
1567 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
1568 |
1569 | graphemer@^1.4.0:
1570 | version "1.4.0"
1571 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
1572 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
1573 |
1574 | has-bigints@^1.0.1, has-bigints@^1.0.2:
1575 | version "1.0.2"
1576 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
1577 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
1578 |
1579 | has-flag@^3.0.0:
1580 | version "3.0.0"
1581 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1582 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
1583 |
1584 | has-flag@^4.0.0:
1585 | version "4.0.0"
1586 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1587 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1588 |
1589 | has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
1590 | version "1.0.2"
1591 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
1592 | integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
1593 | dependencies:
1594 | es-define-property "^1.0.0"
1595 |
1596 | has-proto@^1.0.1, has-proto@^1.0.3:
1597 | version "1.0.3"
1598 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
1599 | integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
1600 |
1601 | has-symbols@^1.0.2, has-symbols@^1.0.3:
1602 | version "1.0.3"
1603 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
1604 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
1605 |
1606 | has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
1607 | version "1.0.2"
1608 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
1609 | integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
1610 | dependencies:
1611 | has-symbols "^1.0.3"
1612 |
1613 | hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
1614 | version "2.0.2"
1615 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
1616 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
1617 | dependencies:
1618 | function-bind "^1.1.2"
1619 |
1620 | ignore@^5.2.0, ignore@^5.2.4:
1621 | version "5.3.2"
1622 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
1623 | integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
1624 |
1625 | import-fresh@^3.2.1:
1626 | version "3.3.0"
1627 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1628 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1629 | dependencies:
1630 | parent-module "^1.0.0"
1631 | resolve-from "^4.0.0"
1632 |
1633 | imurmurhash@^0.1.4:
1634 | version "0.1.4"
1635 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1636 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1637 |
1638 | inflight@^1.0.4:
1639 | version "1.0.6"
1640 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1641 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1642 | dependencies:
1643 | once "^1.3.0"
1644 | wrappy "1"
1645 |
1646 | inherits@2:
1647 | version "2.0.4"
1648 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1649 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1650 |
1651 | internal-slot@^1.0.7:
1652 | version "1.0.7"
1653 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
1654 | integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==
1655 | dependencies:
1656 | es-errors "^1.3.0"
1657 | hasown "^2.0.0"
1658 | side-channel "^1.0.4"
1659 |
1660 | is-array-buffer@^3.0.4:
1661 | version "3.0.4"
1662 | resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98"
1663 | integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==
1664 | dependencies:
1665 | call-bind "^1.0.2"
1666 | get-intrinsic "^1.2.1"
1667 |
1668 | is-async-function@^2.0.0:
1669 | version "2.0.0"
1670 | resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
1671 | integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==
1672 | dependencies:
1673 | has-tostringtag "^1.0.0"
1674 |
1675 | is-bigint@^1.0.1:
1676 | version "1.0.4"
1677 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
1678 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
1679 | dependencies:
1680 | has-bigints "^1.0.1"
1681 |
1682 | is-boolean-object@^1.1.0:
1683 | version "1.1.2"
1684 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
1685 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
1686 | dependencies:
1687 | call-bind "^1.0.2"
1688 | has-tostringtag "^1.0.0"
1689 |
1690 | is-bun-module@^1.0.2:
1691 | version "1.2.1"
1692 | resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.2.1.tgz#495e706f42e29f086fd5fe1ac3c51f106062b9fc"
1693 | integrity sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==
1694 | dependencies:
1695 | semver "^7.6.3"
1696 |
1697 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
1698 | version "1.2.7"
1699 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
1700 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
1701 |
1702 | is-core-module@^2.13.0, is-core-module@^2.15.1:
1703 | version "2.15.1"
1704 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37"
1705 | integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==
1706 | dependencies:
1707 | hasown "^2.0.2"
1708 |
1709 | is-data-view@^1.0.1:
1710 | version "1.0.1"
1711 | resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f"
1712 | integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==
1713 | dependencies:
1714 | is-typed-array "^1.1.13"
1715 |
1716 | is-date-object@^1.0.1, is-date-object@^1.0.5:
1717 | version "1.0.5"
1718 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
1719 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
1720 | dependencies:
1721 | has-tostringtag "^1.0.0"
1722 |
1723 | is-extglob@^2.1.1:
1724 | version "2.1.1"
1725 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1726 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1727 |
1728 | is-finalizationregistry@^1.0.2:
1729 | version "1.0.2"
1730 | resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6"
1731 | integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==
1732 | dependencies:
1733 | call-bind "^1.0.2"
1734 |
1735 | is-fullwidth-code-point@^4.0.0:
1736 | version "4.0.0"
1737 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
1738 | integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
1739 |
1740 | is-generator-function@^1.0.10:
1741 | version "1.0.10"
1742 | resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
1743 | integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
1744 | dependencies:
1745 | has-tostringtag "^1.0.0"
1746 |
1747 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
1748 | version "4.0.3"
1749 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1750 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1751 | dependencies:
1752 | is-extglob "^2.1.1"
1753 |
1754 | is-map@^2.0.3:
1755 | version "2.0.3"
1756 | resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e"
1757 | integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
1758 |
1759 | is-negative-zero@^2.0.3:
1760 | version "2.0.3"
1761 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
1762 | integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
1763 |
1764 | is-number-object@^1.0.4:
1765 | version "1.0.7"
1766 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
1767 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
1768 | dependencies:
1769 | has-tostringtag "^1.0.0"
1770 |
1771 | is-number@^7.0.0:
1772 | version "7.0.0"
1773 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1774 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1775 |
1776 | is-obj@^1.0.0:
1777 | version "1.0.1"
1778 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
1779 | integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==
1780 |
1781 | is-path-inside@^3.0.3:
1782 | version "3.0.3"
1783 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
1784 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
1785 |
1786 | is-plain-obj@^1.0.0:
1787 | version "1.1.0"
1788 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
1789 | integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
1790 |
1791 | is-regex@^1.1.4:
1792 | version "1.1.4"
1793 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
1794 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
1795 | dependencies:
1796 | call-bind "^1.0.2"
1797 | has-tostringtag "^1.0.0"
1798 |
1799 | is-set@^2.0.3:
1800 | version "2.0.3"
1801 | resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d"
1802 | integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
1803 |
1804 | is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
1805 | version "1.0.3"
1806 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
1807 | integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
1808 | dependencies:
1809 | call-bind "^1.0.7"
1810 |
1811 | is-string@^1.0.5, is-string@^1.0.7:
1812 | version "1.0.7"
1813 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
1814 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
1815 | dependencies:
1816 | has-tostringtag "^1.0.0"
1817 |
1818 | is-symbol@^1.0.2, is-symbol@^1.0.3:
1819 | version "1.0.4"
1820 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
1821 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
1822 | dependencies:
1823 | has-symbols "^1.0.2"
1824 |
1825 | is-typed-array@^1.1.13:
1826 | version "1.1.13"
1827 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
1828 | integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
1829 | dependencies:
1830 | which-typed-array "^1.1.14"
1831 |
1832 | is-weakmap@^2.0.2:
1833 | version "2.0.2"
1834 | resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
1835 | integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
1836 |
1837 | is-weakref@^1.0.2:
1838 | version "1.0.2"
1839 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
1840 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
1841 | dependencies:
1842 | call-bind "^1.0.2"
1843 |
1844 | is-weakset@^2.0.3:
1845 | version "2.0.3"
1846 | resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007"
1847 | integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==
1848 | dependencies:
1849 | call-bind "^1.0.7"
1850 | get-intrinsic "^1.2.4"
1851 |
1852 | isarray@^2.0.5:
1853 | version "2.0.5"
1854 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
1855 | integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
1856 |
1857 | isexe@^2.0.0:
1858 | version "2.0.0"
1859 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1860 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1861 |
1862 | iterator.prototype@^1.1.2:
1863 | version "1.1.2"
1864 | resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
1865 | integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==
1866 | dependencies:
1867 | define-properties "^1.2.1"
1868 | get-intrinsic "^1.2.1"
1869 | has-symbols "^1.0.3"
1870 | reflect.getprototypeof "^1.0.4"
1871 | set-function-name "^2.0.1"
1872 |
1873 | javascript-natural-sort@0.7.1:
1874 | version "0.7.1"
1875 | resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59"
1876 | integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==
1877 |
1878 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1879 | version "4.0.0"
1880 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1881 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1882 |
1883 | js-yaml@^4.1.0:
1884 | version "4.1.0"
1885 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1886 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1887 | dependencies:
1888 | argparse "^2.0.1"
1889 |
1890 | jsesc@^2.5.1:
1891 | version "2.5.2"
1892 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1893 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1894 |
1895 | json-buffer@3.0.1:
1896 | version "3.0.1"
1897 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
1898 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
1899 |
1900 | json-schema-traverse@^0.4.1:
1901 | version "0.4.1"
1902 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1903 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1904 |
1905 | json-schema-traverse@^1.0.0:
1906 | version "1.0.0"
1907 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
1908 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
1909 |
1910 | json-schema-typed@^8.0.1:
1911 | version "8.0.1"
1912 | resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-8.0.1.tgz#826ee39e3b6cef536f85412ff048d3ff6f19dfa0"
1913 | integrity sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==
1914 |
1915 | json-stable-stringify-without-jsonify@^1.0.1:
1916 | version "1.0.1"
1917 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1918 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1919 |
1920 | json5@^1.0.2:
1921 | version "1.0.2"
1922 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
1923 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
1924 | dependencies:
1925 | minimist "^1.2.0"
1926 |
1927 | json5@^2.2.2:
1928 | version "2.2.3"
1929 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
1930 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1931 |
1932 | jsonfile@^6.0.1:
1933 | version "6.1.0"
1934 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
1935 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
1936 | dependencies:
1937 | universalify "^2.0.0"
1938 | optionalDependencies:
1939 | graceful-fs "^4.1.6"
1940 |
1941 | "jsx-ast-utils@^2.4.1 || ^3.0.0":
1942 | version "3.3.5"
1943 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a"
1944 | integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==
1945 | dependencies:
1946 | array-includes "^3.1.6"
1947 | array.prototype.flat "^1.3.1"
1948 | object.assign "^4.1.4"
1949 | object.values "^1.1.6"
1950 |
1951 | keyv@^4.5.3:
1952 | version "4.5.4"
1953 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
1954 | integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
1955 | dependencies:
1956 | json-buffer "3.0.1"
1957 |
1958 | lazy-val@^1.0.5:
1959 | version "1.0.5"
1960 | resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d"
1961 | integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==
1962 |
1963 | levn@^0.4.1:
1964 | version "0.4.1"
1965 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1966 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1967 | dependencies:
1968 | prelude-ls "^1.2.1"
1969 | type-check "~0.4.0"
1970 |
1971 | locate-path@^2.0.0:
1972 | version "2.0.0"
1973 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
1974 | integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
1975 | dependencies:
1976 | p-locate "^2.0.0"
1977 | path-exists "^3.0.0"
1978 |
1979 | locate-path@^6.0.0:
1980 | version "6.0.0"
1981 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1982 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1983 | dependencies:
1984 | p-locate "^5.0.0"
1985 |
1986 | lodash.escaperegexp@^4.1.2:
1987 | version "4.1.2"
1988 | resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
1989 | integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==
1990 |
1991 | lodash.isequal@^4.5.0:
1992 | version "4.5.0"
1993 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
1994 | integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
1995 |
1996 | lodash.merge@^4.6.2:
1997 | version "4.6.2"
1998 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1999 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
2000 |
2001 | lodash@^4.17.21:
2002 | version "4.17.21"
2003 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
2004 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
2005 |
2006 | loose-envify@^1.4.0:
2007 | version "1.4.0"
2008 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
2009 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
2010 | dependencies:
2011 | js-tokens "^3.0.0 || ^4.0.0"
2012 |
2013 | make-dir@^1.0.0:
2014 | version "1.3.0"
2015 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
2016 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
2017 | dependencies:
2018 | pify "^3.0.0"
2019 |
2020 | make-error@^1.1.1:
2021 | version "1.3.6"
2022 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
2023 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
2024 |
2025 | merge2@^1.3.0, merge2@^1.4.1:
2026 | version "1.4.1"
2027 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
2028 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
2029 |
2030 | micromatch@^4.0.4:
2031 | version "4.0.8"
2032 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
2033 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
2034 | dependencies:
2035 | braces "^3.0.3"
2036 | picomatch "^2.3.1"
2037 |
2038 | mime-db@^1.28.0:
2039 | version "1.53.0"
2040 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447"
2041 | integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==
2042 |
2043 | mimic-function@^5.0.0:
2044 | version "5.0.1"
2045 | resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076"
2046 | integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==
2047 |
2048 | minimatch@9.0.3:
2049 | version "9.0.3"
2050 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
2051 | integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
2052 | dependencies:
2053 | brace-expansion "^2.0.1"
2054 |
2055 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
2056 | version "3.1.2"
2057 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
2058 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
2059 | dependencies:
2060 | brace-expansion "^1.1.7"
2061 |
2062 | minimatch@^9.0.4:
2063 | version "9.0.5"
2064 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
2065 | integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
2066 | dependencies:
2067 | brace-expansion "^2.0.1"
2068 |
2069 | minimist@^1.2.0, minimist@^1.2.6:
2070 | version "1.2.8"
2071 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
2072 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
2073 |
2074 | ms@^2.1.1, ms@^2.1.3:
2075 | version "2.1.3"
2076 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
2077 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
2078 |
2079 | natural-compare@^1.4.0:
2080 | version "1.4.0"
2081 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
2082 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
2083 |
2084 | object-assign@^4.1.1:
2085 | version "4.1.1"
2086 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
2087 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
2088 |
2089 | object-inspect@^1.13.1:
2090 | version "1.13.2"
2091 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff"
2092 | integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==
2093 |
2094 | object-keys@^1.1.1:
2095 | version "1.1.1"
2096 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
2097 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
2098 |
2099 | object.assign@^4.1.2, object.assign@^4.1.4, object.assign@^4.1.5:
2100 | version "4.1.5"
2101 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
2102 | integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
2103 | dependencies:
2104 | call-bind "^1.0.5"
2105 | define-properties "^1.2.1"
2106 | has-symbols "^1.0.3"
2107 | object-keys "^1.1.1"
2108 |
2109 | object.entries@^1.1.2, object.entries@^1.1.8:
2110 | version "1.1.8"
2111 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41"
2112 | integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==
2113 | dependencies:
2114 | call-bind "^1.0.7"
2115 | define-properties "^1.2.1"
2116 | es-object-atoms "^1.0.0"
2117 |
2118 | object.fromentries@^2.0.8:
2119 | version "2.0.8"
2120 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65"
2121 | integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==
2122 | dependencies:
2123 | call-bind "^1.0.7"
2124 | define-properties "^1.2.1"
2125 | es-abstract "^1.23.2"
2126 | es-object-atoms "^1.0.0"
2127 |
2128 | object.groupby@^1.0.3:
2129 | version "1.0.3"
2130 | resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e"
2131 | integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
2132 | dependencies:
2133 | call-bind "^1.0.7"
2134 | define-properties "^1.2.1"
2135 | es-abstract "^1.23.2"
2136 |
2137 | object.values@^1.1.6, object.values@^1.2.0:
2138 | version "1.2.0"
2139 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
2140 | integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
2141 | dependencies:
2142 | call-bind "^1.0.7"
2143 | define-properties "^1.2.1"
2144 | es-object-atoms "^1.0.0"
2145 |
2146 | once@^1.3.0:
2147 | version "1.4.0"
2148 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2149 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
2150 | dependencies:
2151 | wrappy "1"
2152 |
2153 | optionator@^0.9.3:
2154 | version "0.9.4"
2155 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
2156 | integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
2157 | dependencies:
2158 | deep-is "^0.1.3"
2159 | fast-levenshtein "^2.0.6"
2160 | levn "^0.4.1"
2161 | prelude-ls "^1.2.1"
2162 | type-check "^0.4.0"
2163 | word-wrap "^1.2.5"
2164 |
2165 | p-limit@^1.1.0:
2166 | version "1.3.0"
2167 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
2168 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
2169 | dependencies:
2170 | p-try "^1.0.0"
2171 |
2172 | p-limit@^3.0.2:
2173 | version "3.1.0"
2174 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
2175 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
2176 | dependencies:
2177 | yocto-queue "^0.1.0"
2178 |
2179 | p-locate@^2.0.0:
2180 | version "2.0.0"
2181 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
2182 | integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
2183 | dependencies:
2184 | p-limit "^1.1.0"
2185 |
2186 | p-locate@^5.0.0:
2187 | version "5.0.0"
2188 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
2189 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
2190 | dependencies:
2191 | p-limit "^3.0.2"
2192 |
2193 | p-try@^1.0.0:
2194 | version "1.0.0"
2195 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
2196 | integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
2197 |
2198 | parent-module@^1.0.0:
2199 | version "1.0.1"
2200 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
2201 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
2202 | dependencies:
2203 | callsites "^3.0.0"
2204 |
2205 | path-exists@^3.0.0:
2206 | version "3.0.0"
2207 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
2208 | integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
2209 |
2210 | path-exists@^4.0.0:
2211 | version "4.0.0"
2212 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
2213 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
2214 |
2215 | path-exists@^5.0.0:
2216 | version "5.0.0"
2217 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7"
2218 | integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==
2219 |
2220 | path-is-absolute@^1.0.0:
2221 | version "1.0.1"
2222 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2223 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
2224 |
2225 | path-key@^3.1.0:
2226 | version "3.1.1"
2227 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2228 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2229 |
2230 | path-parse@^1.0.7:
2231 | version "1.0.7"
2232 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
2233 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
2234 |
2235 | path-type@^4.0.0:
2236 | version "4.0.0"
2237 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
2238 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
2239 |
2240 | picocolors@^1.0.0:
2241 | version "1.1.0"
2242 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
2243 | integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
2244 |
2245 | picomatch@^2.3.1:
2246 | version "2.3.1"
2247 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
2248 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
2249 |
2250 | pify@^3.0.0:
2251 | version "3.0.0"
2252 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
2253 | integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
2254 |
2255 | pkg-up@^2.0.0:
2256 | version "2.0.0"
2257 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
2258 | integrity sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==
2259 | dependencies:
2260 | find-up "^2.1.0"
2261 |
2262 | possible-typed-array-names@^1.0.0:
2263 | version "1.0.0"
2264 | resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
2265 | integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
2266 |
2267 | prelude-ls@^1.2.1:
2268 | version "1.2.1"
2269 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
2270 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
2271 |
2272 | prettier-linter-helpers@^1.0.0:
2273 | version "1.0.0"
2274 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
2275 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
2276 | dependencies:
2277 | fast-diff "^1.1.2"
2278 |
2279 | prettier@^3.2.5:
2280 | version "3.3.3"
2281 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105"
2282 | integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==
2283 |
2284 | prop-types@^15.8.1:
2285 | version "15.8.1"
2286 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
2287 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
2288 | dependencies:
2289 | loose-envify "^1.4.0"
2290 | object-assign "^4.1.1"
2291 | react-is "^16.13.1"
2292 |
2293 | punycode@^2.1.0:
2294 | version "2.3.1"
2295 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
2296 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
2297 |
2298 | pupa@^3.1.0:
2299 | version "3.1.0"
2300 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579"
2301 | integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==
2302 | dependencies:
2303 | escape-goat "^4.0.0"
2304 |
2305 | queue-microtask@^1.2.2:
2306 | version "1.2.3"
2307 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
2308 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
2309 |
2310 | react-is@^16.13.1:
2311 | version "16.13.1"
2312 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
2313 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
2314 |
2315 | reflect.getprototypeof@^1.0.4:
2316 | version "1.0.6"
2317 | resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859"
2318 | integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==
2319 | dependencies:
2320 | call-bind "^1.0.7"
2321 | define-properties "^1.2.1"
2322 | es-abstract "^1.23.1"
2323 | es-errors "^1.3.0"
2324 | get-intrinsic "^1.2.4"
2325 | globalthis "^1.0.3"
2326 | which-builtin-type "^1.1.3"
2327 |
2328 | regexp-tree@~0.1.1:
2329 | version "0.1.27"
2330 | resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd"
2331 | integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==
2332 |
2333 | regexp.prototype.flags@^1.5.2:
2334 | version "1.5.2"
2335 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
2336 | integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
2337 | dependencies:
2338 | call-bind "^1.0.6"
2339 | define-properties "^1.2.1"
2340 | es-errors "^1.3.0"
2341 | set-function-name "^2.0.1"
2342 |
2343 | require-from-string@^2.0.2:
2344 | version "2.0.2"
2345 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
2346 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
2347 |
2348 | resolve-from@^4.0.0:
2349 | version "4.0.0"
2350 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
2351 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
2352 |
2353 | resolve-pkg-maps@^1.0.0:
2354 | version "1.0.0"
2355 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
2356 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
2357 |
2358 | resolve@^1.22.4:
2359 | version "1.22.8"
2360 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
2361 | integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
2362 | dependencies:
2363 | is-core-module "^2.13.0"
2364 | path-parse "^1.0.7"
2365 | supports-preserve-symlinks-flag "^1.0.0"
2366 |
2367 | resolve@^2.0.0-next.5:
2368 | version "2.0.0-next.5"
2369 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c"
2370 | integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==
2371 | dependencies:
2372 | is-core-module "^2.13.0"
2373 | path-parse "^1.0.7"
2374 | supports-preserve-symlinks-flag "^1.0.0"
2375 |
2376 | reusify@^1.0.4:
2377 | version "1.0.4"
2378 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
2379 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
2380 |
2381 | rimraf@^3.0.2:
2382 | version "3.0.2"
2383 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
2384 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
2385 | dependencies:
2386 | glob "^7.1.3"
2387 |
2388 | run-parallel@^1.1.9:
2389 | version "1.2.0"
2390 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
2391 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
2392 | dependencies:
2393 | queue-microtask "^1.2.2"
2394 |
2395 | safe-array-concat@^1.1.2:
2396 | version "1.1.2"
2397 | resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb"
2398 | integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==
2399 | dependencies:
2400 | call-bind "^1.0.7"
2401 | get-intrinsic "^1.2.4"
2402 | has-symbols "^1.0.3"
2403 | isarray "^2.0.5"
2404 |
2405 | safe-regex-test@^1.0.3:
2406 | version "1.0.3"
2407 | resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377"
2408 | integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==
2409 | dependencies:
2410 | call-bind "^1.0.6"
2411 | es-errors "^1.3.0"
2412 | is-regex "^1.1.4"
2413 |
2414 | safe-regex@^2.1.1:
2415 | version "2.1.1"
2416 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2"
2417 | integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==
2418 | dependencies:
2419 | regexp-tree "~0.1.1"
2420 |
2421 | sax@^1.2.4:
2422 | version "1.4.1"
2423 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
2424 | integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
2425 |
2426 | semver@^6.3.1:
2427 | version "6.3.1"
2428 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
2429 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
2430 |
2431 | semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@^7.6.3:
2432 | version "7.6.3"
2433 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
2434 | integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
2435 |
2436 | set-function-length@^1.2.1:
2437 | version "1.2.2"
2438 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
2439 | integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
2440 | dependencies:
2441 | define-data-property "^1.1.4"
2442 | es-errors "^1.3.0"
2443 | function-bind "^1.1.2"
2444 | get-intrinsic "^1.2.4"
2445 | gopd "^1.0.1"
2446 | has-property-descriptors "^1.0.2"
2447 |
2448 | set-function-name@^2.0.1, set-function-name@^2.0.2:
2449 | version "2.0.2"
2450 | resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
2451 | integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
2452 | dependencies:
2453 | define-data-property "^1.1.4"
2454 | es-errors "^1.3.0"
2455 | functions-have-names "^1.2.3"
2456 | has-property-descriptors "^1.0.2"
2457 |
2458 | shebang-command@^2.0.0:
2459 | version "2.0.0"
2460 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
2461 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
2462 | dependencies:
2463 | shebang-regex "^3.0.0"
2464 |
2465 | shebang-regex@^3.0.0:
2466 | version "3.0.0"
2467 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
2468 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
2469 |
2470 | side-channel@^1.0.4, side-channel@^1.0.6:
2471 | version "1.0.6"
2472 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
2473 | integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
2474 | dependencies:
2475 | call-bind "^1.0.7"
2476 | es-errors "^1.3.0"
2477 | get-intrinsic "^1.2.4"
2478 | object-inspect "^1.13.1"
2479 |
2480 | signal-exit@^3.0.2:
2481 | version "3.0.7"
2482 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
2483 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
2484 |
2485 | slash@^3.0.0:
2486 | version "3.0.0"
2487 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
2488 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
2489 |
2490 | slice-ansi@^5.0.0:
2491 | version "5.0.0"
2492 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
2493 | integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
2494 | dependencies:
2495 | ansi-styles "^6.0.0"
2496 | is-fullwidth-code-point "^4.0.0"
2497 |
2498 | sort-keys-length@^1.0.0:
2499 | version "1.0.1"
2500 | resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188"
2501 | integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==
2502 | dependencies:
2503 | sort-keys "^1.0.0"
2504 |
2505 | sort-keys@^1.0.0:
2506 | version "1.1.2"
2507 | resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
2508 | integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==
2509 | dependencies:
2510 | is-plain-obj "^1.0.0"
2511 |
2512 | source-map@^0.5.0:
2513 | version "0.5.7"
2514 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
2515 | integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
2516 |
2517 | string-width@^7.0.0:
2518 | version "7.2.0"
2519 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc"
2520 | integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==
2521 | dependencies:
2522 | emoji-regex "^10.3.0"
2523 | get-east-asian-width "^1.0.0"
2524 | strip-ansi "^7.1.0"
2525 |
2526 | string.prototype.matchall@^4.0.11:
2527 | version "4.0.11"
2528 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a"
2529 | integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==
2530 | dependencies:
2531 | call-bind "^1.0.7"
2532 | define-properties "^1.2.1"
2533 | es-abstract "^1.23.2"
2534 | es-errors "^1.3.0"
2535 | es-object-atoms "^1.0.0"
2536 | get-intrinsic "^1.2.4"
2537 | gopd "^1.0.1"
2538 | has-symbols "^1.0.3"
2539 | internal-slot "^1.0.7"
2540 | regexp.prototype.flags "^1.5.2"
2541 | set-function-name "^2.0.2"
2542 | side-channel "^1.0.6"
2543 |
2544 | string.prototype.repeat@^1.0.0:
2545 | version "1.0.0"
2546 | resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a"
2547 | integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==
2548 | dependencies:
2549 | define-properties "^1.1.3"
2550 | es-abstract "^1.17.5"
2551 |
2552 | string.prototype.trim@^1.2.9:
2553 | version "1.2.9"
2554 | resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4"
2555 | integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==
2556 | dependencies:
2557 | call-bind "^1.0.7"
2558 | define-properties "^1.2.1"
2559 | es-abstract "^1.23.0"
2560 | es-object-atoms "^1.0.0"
2561 |
2562 | string.prototype.trimend@^1.0.8:
2563 | version "1.0.8"
2564 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229"
2565 | integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==
2566 | dependencies:
2567 | call-bind "^1.0.7"
2568 | define-properties "^1.2.1"
2569 | es-object-atoms "^1.0.0"
2570 |
2571 | string.prototype.trimstart@^1.0.8:
2572 | version "1.0.8"
2573 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
2574 | integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
2575 | dependencies:
2576 | call-bind "^1.0.7"
2577 | define-properties "^1.2.1"
2578 | es-object-atoms "^1.0.0"
2579 |
2580 | strip-ansi@^6.0.1:
2581 | version "6.0.1"
2582 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
2583 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
2584 | dependencies:
2585 | ansi-regex "^5.0.1"
2586 |
2587 | strip-ansi@^7.1.0:
2588 | version "7.1.0"
2589 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
2590 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
2591 | dependencies:
2592 | ansi-regex "^6.0.1"
2593 |
2594 | strip-bom@^3.0.0:
2595 | version "3.0.0"
2596 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2597 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
2598 |
2599 | strip-json-comments@^3.1.1:
2600 | version "3.1.1"
2601 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
2602 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
2603 |
2604 | stubborn-fs@^1.2.5:
2605 | version "1.2.5"
2606 | resolved "https://registry.yarnpkg.com/stubborn-fs/-/stubborn-fs-1.2.5.tgz#e5e244223166921ddf66ed5e062b6b3bf285bfd2"
2607 | integrity sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==
2608 |
2609 | supports-color@^5.3.0:
2610 | version "5.5.0"
2611 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
2612 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
2613 | dependencies:
2614 | has-flag "^3.0.0"
2615 |
2616 | supports-color@^7.1.0:
2617 | version "7.2.0"
2618 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
2619 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
2620 | dependencies:
2621 | has-flag "^4.0.0"
2622 |
2623 | supports-preserve-symlinks-flag@^1.0.0:
2624 | version "1.0.0"
2625 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2626 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2627 |
2628 | synckit@^0.9.1:
2629 | version "0.9.1"
2630 | resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.1.tgz#febbfbb6649979450131f64735aa3f6c14575c88"
2631 | integrity sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==
2632 | dependencies:
2633 | "@pkgr/core" "^0.1.0"
2634 | tslib "^2.6.2"
2635 |
2636 | tapable@^2.2.0:
2637 | version "2.2.1"
2638 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
2639 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
2640 |
2641 | text-table@^0.2.0:
2642 | version "0.2.0"
2643 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2644 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
2645 |
2646 | tiny-typed-emitter@^2.1.0:
2647 | version "2.1.0"
2648 | resolved "https://registry.yarnpkg.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz#b3b027fdd389ff81a152c8e847ee2f5be9fad7b5"
2649 | integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==
2650 |
2651 | to-fast-properties@^2.0.0:
2652 | version "2.0.0"
2653 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
2654 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
2655 |
2656 | to-regex-range@^5.0.1:
2657 | version "5.0.1"
2658 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2659 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2660 | dependencies:
2661 | is-number "^7.0.0"
2662 |
2663 | ts-api-utils@^1.0.1, ts-api-utils@^1.3.0:
2664 | version "1.3.0"
2665 | resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
2666 | integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
2667 |
2668 | ts-node@10.9.2:
2669 | version "10.9.2"
2670 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
2671 | integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
2672 | dependencies:
2673 | "@cspotcode/source-map-support" "^0.8.0"
2674 | "@tsconfig/node10" "^1.0.7"
2675 | "@tsconfig/node12" "^1.0.7"
2676 | "@tsconfig/node14" "^1.0.0"
2677 | "@tsconfig/node16" "^1.0.2"
2678 | acorn "^8.4.1"
2679 | acorn-walk "^8.1.1"
2680 | arg "^4.1.0"
2681 | create-require "^1.1.0"
2682 | diff "^4.0.1"
2683 | make-error "^1.1.1"
2684 | v8-compile-cache-lib "^3.0.1"
2685 | yn "3.1.1"
2686 |
2687 | tsconfig-paths@4.2.0:
2688 | version "4.2.0"
2689 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
2690 | integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==
2691 | dependencies:
2692 | json5 "^2.2.2"
2693 | minimist "^1.2.6"
2694 | strip-bom "^3.0.0"
2695 |
2696 | tsconfig-paths@^3.15.0:
2697 | version "3.15.0"
2698 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
2699 | integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==
2700 | dependencies:
2701 | "@types/json5" "^0.0.29"
2702 | json5 "^1.0.2"
2703 | minimist "^1.2.6"
2704 | strip-bom "^3.0.0"
2705 |
2706 | tslib@^2.6.2:
2707 | version "2.7.0"
2708 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
2709 | integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
2710 |
2711 | type-check@^0.4.0, type-check@~0.4.0:
2712 | version "0.4.0"
2713 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
2714 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
2715 | dependencies:
2716 | prelude-ls "^1.2.1"
2717 |
2718 | type-fest@^0.20.2:
2719 | version "0.20.2"
2720 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
2721 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
2722 |
2723 | type-fest@^4.18.2, type-fest@^4.20.0:
2724 | version "4.26.1"
2725 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.1.tgz#a4a17fa314f976dd3e6d6675ef6c775c16d7955e"
2726 | integrity sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==
2727 |
2728 | typed-array-buffer@^1.0.2:
2729 | version "1.0.2"
2730 | resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3"
2731 | integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==
2732 | dependencies:
2733 | call-bind "^1.0.7"
2734 | es-errors "^1.3.0"
2735 | is-typed-array "^1.1.13"
2736 |
2737 | typed-array-byte-length@^1.0.1:
2738 | version "1.0.1"
2739 | resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67"
2740 | integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==
2741 | dependencies:
2742 | call-bind "^1.0.7"
2743 | for-each "^0.3.3"
2744 | gopd "^1.0.1"
2745 | has-proto "^1.0.3"
2746 | is-typed-array "^1.1.13"
2747 |
2748 | typed-array-byte-offset@^1.0.2:
2749 | version "1.0.2"
2750 | resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063"
2751 | integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==
2752 | dependencies:
2753 | available-typed-arrays "^1.0.7"
2754 | call-bind "^1.0.7"
2755 | for-each "^0.3.3"
2756 | gopd "^1.0.1"
2757 | has-proto "^1.0.3"
2758 | is-typed-array "^1.1.13"
2759 |
2760 | typed-array-length@^1.0.6:
2761 | version "1.0.6"
2762 | resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
2763 | integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
2764 | dependencies:
2765 | call-bind "^1.0.7"
2766 | for-each "^0.3.3"
2767 | gopd "^1.0.1"
2768 | has-proto "^1.0.3"
2769 | is-typed-array "^1.1.13"
2770 | possible-typed-array-names "^1.0.0"
2771 |
2772 | uint8array-extras@^1.1.0:
2773 | version "1.4.0"
2774 | resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-1.4.0.tgz#e42a678a6dd335ec2d21661333ed42f44ae7cc74"
2775 | integrity sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==
2776 |
2777 | unbox-primitive@^1.0.2:
2778 | version "1.0.2"
2779 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
2780 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
2781 | dependencies:
2782 | call-bind "^1.0.2"
2783 | has-bigints "^1.0.2"
2784 | has-symbols "^1.0.3"
2785 | which-boxed-primitive "^1.0.2"
2786 |
2787 | universalify@^2.0.0:
2788 | version "2.0.1"
2789 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
2790 | integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
2791 |
2792 | unused-filename@^4.0.1:
2793 | version "4.0.1"
2794 | resolved "https://registry.yarnpkg.com/unused-filename/-/unused-filename-4.0.1.tgz#3e7285db0f3ec94fb2b089dd220a3b269b226914"
2795 | integrity sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==
2796 | dependencies:
2797 | escape-string-regexp "^5.0.0"
2798 | path-exists "^5.0.0"
2799 |
2800 | uri-js@^4.2.2:
2801 | version "4.4.1"
2802 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
2803 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
2804 | dependencies:
2805 | punycode "^2.1.0"
2806 |
2807 | v8-compile-cache-lib@^3.0.1:
2808 | version "3.0.1"
2809 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
2810 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
2811 |
2812 | when-exit@^2.1.1:
2813 | version "2.1.3"
2814 | resolved "https://registry.yarnpkg.com/when-exit/-/when-exit-2.1.3.tgz#5831cdbed8ad4984645da98c4a00d4ee3a3757e7"
2815 | integrity sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==
2816 |
2817 | which-boxed-primitive@^1.0.2:
2818 | version "1.0.2"
2819 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
2820 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
2821 | dependencies:
2822 | is-bigint "^1.0.1"
2823 | is-boolean-object "^1.1.0"
2824 | is-number-object "^1.0.4"
2825 | is-string "^1.0.5"
2826 | is-symbol "^1.0.3"
2827 |
2828 | which-builtin-type@^1.1.3:
2829 | version "1.1.4"
2830 | resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3"
2831 | integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==
2832 | dependencies:
2833 | function.prototype.name "^1.1.6"
2834 | has-tostringtag "^1.0.2"
2835 | is-async-function "^2.0.0"
2836 | is-date-object "^1.0.5"
2837 | is-finalizationregistry "^1.0.2"
2838 | is-generator-function "^1.0.10"
2839 | is-regex "^1.1.4"
2840 | is-weakref "^1.0.2"
2841 | isarray "^2.0.5"
2842 | which-boxed-primitive "^1.0.2"
2843 | which-collection "^1.0.2"
2844 | which-typed-array "^1.1.15"
2845 |
2846 | which-collection@^1.0.2:
2847 | version "1.0.2"
2848 | resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0"
2849 | integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
2850 | dependencies:
2851 | is-map "^2.0.3"
2852 | is-set "^2.0.3"
2853 | is-weakmap "^2.0.2"
2854 | is-weakset "^2.0.3"
2855 |
2856 | which-typed-array@^1.1.14, which-typed-array@^1.1.15:
2857 | version "1.1.15"
2858 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
2859 | integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
2860 | dependencies:
2861 | available-typed-arrays "^1.0.7"
2862 | call-bind "^1.0.7"
2863 | for-each "^0.3.3"
2864 | gopd "^1.0.1"
2865 | has-tostringtag "^1.0.2"
2866 |
2867 | which@^2.0.1:
2868 | version "2.0.2"
2869 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
2870 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2871 | dependencies:
2872 | isexe "^2.0.0"
2873 |
2874 | word-wrap@^1.2.5:
2875 | version "1.2.5"
2876 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
2877 | integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
2878 |
2879 | wrappy@1:
2880 | version "1.0.2"
2881 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2882 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
2883 |
2884 | write-file-atomic@^2.3.0:
2885 | version "2.4.3"
2886 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
2887 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
2888 | dependencies:
2889 | graceful-fs "^4.1.11"
2890 | imurmurhash "^0.1.4"
2891 | signal-exit "^3.0.2"
2892 |
2893 | yn@3.1.1:
2894 | version "3.1.1"
2895 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
2896 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
2897 |
2898 | yocto-queue@^0.1.0:
2899 | version "0.1.0"
2900 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
2901 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
2902 |
--------------------------------------------------------------------------------
/packages/renderer/app.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/packages/renderer/app.css
--------------------------------------------------------------------------------
/packages/renderer/renderer.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/playcode/playcode-desktop/8427383069990369715c0b19c21a3e144c332374/packages/renderer/renderer.js
--------------------------------------------------------------------------------
/test/test.js:
--------------------------------------------------------------------------------
1 | const assert = require('assert')
2 | const electron = require('electron')
3 | const Application = require('spectron').Application
4 |
5 | const app = new Application({
6 | path: electron,
7 | args: ['app']
8 | })
9 |
10 | describe('App Testing:', function () {
11 | this.timeout(10000)
12 |
13 | beforeEach(() => {
14 | return app.start()
15 | })
16 |
17 | it('Window Tests', () => {
18 | app.start().then(() => {
19 | // Check if the window is visible
20 | return app.browserWindow.isVisible()
21 | }).then(isVisible => {
22 | // Verify the window is visible
23 | assert.equal(isVisible, true)
24 | }).then(() => {
25 | // Get the window's title
26 | return app.client.getTitle()
27 | }).then(title => {
28 | // Verify the window's title
29 | assert.equal(title, 'Playcode')
30 | }).then(() => {
31 | // Stop the application
32 | return app.stop()
33 | }).catch(err => {
34 | // Log any failures
35 | console.err('Test failed', err.message)
36 | })
37 | })
38 |
39 | afterEach(() => {
40 | if (app && app.isRunning()) {
41 | return app.stop()
42 | }
43 | })
44 | })
45 |
--------------------------------------------------------------------------------