├── .eslintrc.json
├── .gitignore
├── .husky
├── .gitignore
└── pre-commit
├── .prettierrc.json
├── LICENSE.md
├── README.md
├── dist
├── index.d.ts
├── index.js
└── nui-events
│ ├── context
│ ├── NuiContext.d.ts
│ └── NuiContext.js
│ ├── hooks
│ ├── useNuiCallback.d.ts
│ ├── useNuiCallback.js
│ ├── useNuiEvent.d.ts
│ ├── useNuiEvent.js
│ ├── useNuiRequest.d.ts
│ └── useNuiRequest.js
│ ├── providers
│ ├── NuiProvider.d.ts
│ └── NuiProvider.js
│ └── utils
│ ├── eventNameFactory.d.ts
│ └── eventNameFactory.js
├── lib
└── ui
│ ├── index.ts
│ └── nui-events
│ ├── context
│ └── NuiContext.ts
│ ├── hooks
│ ├── useNuiCallback.ts
│ ├── useNuiEvent.ts
│ └── useNuiRequest.ts
│ ├── providers
│ └── NuiProvider.tsx
│ └── utils
│ └── eventNameFactory.ts
├── package.json
├── tsconfig.json
└── yarn.lock
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": ["eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended"],
7 | "parser": "@typescript-eslint/parser",
8 | "parserOptions": {
9 | "ecmaFeatures": {
10 | "jsx": true
11 | },
12 | "ecmaVersion": 12,
13 | "sourceType": "module"
14 | },
15 | "plugins": ["react", "@typescript-eslint", "react-hooks"],
16 | "rules": {
17 | "react-hooks/rules-of-hooks": "error",
18 | "react-hooks/exhaustive-deps": "error",
19 | "no-console": "warn"
20 | },
21 | "ignorePatterns": ["dist/**/*"]
22 | }
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/.husky/.gitignore:
--------------------------------------------------------------------------------
1 | _
2 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx lint-staged
5 | npx lint-staged
6 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 2,
3 | "printWidth": 120
4 | }
5 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # GNU General Public License
2 |
3 | _Version 3, 29 June 2007_
4 | _Copyright © 2007 Free Software Foundation, Inc. <>_
5 |
6 | Everyone is permitted to copy and distribute verbatim copies of this license
7 | document, but changing it is not allowed.
8 |
9 | ## Preamble
10 |
11 | The GNU General Public License is a free, copyleft license for software and other
12 | kinds of works.
13 |
14 | The licenses for most software and other practical works are designed to take away
15 | your freedom to share and change the works. By contrast, the GNU General Public
16 | License is intended to guarantee your freedom to share and change all versions of a
17 | program--to make sure it remains free software for all its users. We, the Free
18 | Software Foundation, use the GNU General Public License for most of our software; it
19 | applies also to 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 price. Our General
23 | Public Licenses are designed to make sure that you have the freedom to distribute
24 | copies of free software (and charge for them if you wish), that you receive source
25 | code or can get it if you want it, that you can change the software or use pieces of
26 | it in new free programs, and that you know you can do these things.
27 |
28 | To protect your rights, we need to prevent others from denying you these rights or
29 | asking you to surrender the rights. Therefore, you have certain responsibilities if
30 | you distribute copies of the software, or if you modify it: responsibilities to
31 | respect the freedom of others.
32 |
33 | For example, if you distribute copies of such a program, whether gratis or for a fee,
34 | you must pass on to the recipients the same freedoms that you received. You must make
35 | sure that they, too, receive or can get the source code. And you must show them these
36 | terms so they know their rights.
37 |
38 | Developers that use the GNU GPL protect your rights with two steps: **(1)** assert
39 | copyright on the software, and **(2)** offer you this License giving you legal permission
40 | to copy, distribute and/or modify it.
41 |
42 | For the developers' and authors' protection, the GPL clearly explains that there is
43 | no warranty for this free software. For both users' and authors' sake, the GPL
44 | requires that modified versions be marked as changed, so that their problems will not
45 | be attributed erroneously to authors of previous versions.
46 |
47 | Some devices are designed to deny users access to install or run modified versions of
48 | the software inside them, although the manufacturer can do so. This is fundamentally
49 | incompatible with the aim of protecting users' freedom to change the software. The
50 | systematic pattern of such abuse occurs in the area of products for individuals to
51 | use, which is precisely where it is most unacceptable. Therefore, we have designed
52 | this version of the GPL to prohibit the practice for those products. If such problems
53 | arise substantially in other domains, we stand ready to extend this provision to
54 | those domains in future versions of the GPL, as needed to protect the freedom of
55 | users.
56 |
57 | Finally, every program is threatened constantly by software patents. States should
58 | not allow patents to restrict development and use of software on general-purpose
59 | computers, but in those that do, we wish to avoid the special danger that patents
60 | applied to a free program could make it effectively proprietary. To prevent this, the
61 | GPL assures that patents cannot be used to render the program non-free.
62 |
63 | The precise terms and conditions for copying, distribution and modification follow.
64 |
65 | ## TERMS AND CONDITIONS
66 |
67 | ### 0. Definitions
68 |
69 | “This License” refers to version 3 of the GNU General Public License.
70 |
71 | “Copyright” also means copyright-like laws that apply to other kinds of
72 | works, such as semiconductor masks.
73 |
74 | “The Program” refers to any copyrightable work licensed under this
75 | License. Each licensee is addressed as “you”. “Licensees” and
76 | “recipients” may be individuals or organizations.
77 |
78 | To “modify” a work means to copy from or adapt all or part of the work in
79 | a fashion requiring copyright permission, other than the making of an exact copy. The
80 | resulting work is called a “modified version” of the earlier work or a
81 | work “based on” the earlier work.
82 |
83 | A “covered work” means either the unmodified Program or a work based on
84 | the Program.
85 |
86 | To “propagate” a work means to do anything with it that, without
87 | permission, would make you directly or secondarily liable for infringement under
88 | applicable copyright law, except executing it on a computer or modifying a private
89 | copy. Propagation includes copying, distribution (with or without modification),
90 | making available to the public, and in some countries other activities as well.
91 |
92 | To “convey” a work means any kind of propagation that enables other
93 | parties to make or receive copies. Mere interaction with a user through a computer
94 | network, with no transfer of a copy, is not conveying.
95 |
96 | An interactive user interface displays “Appropriate Legal Notices” to the
97 | extent that it includes a convenient and prominently visible feature that **(1)**
98 | displays an appropriate copyright notice, and **(2)** tells the user that there is no
99 | warranty for the work (except to the extent that warranties are provided), that
100 | licensees may convey the work under this License, and how to view a copy of this
101 | License. If the interface presents a list of user commands or options, such as a
102 | menu, a prominent item in the list meets this criterion.
103 |
104 | ### 1. Source Code
105 |
106 | The “source code” for a work means the preferred form of the work for
107 | making modifications to it. “Object code” means any non-source form of a
108 | work.
109 |
110 | A “Standard Interface” means an interface that either is an official
111 | standard defined by a recognized standards body, or, in the case of interfaces
112 | specified for a particular programming language, one that is widely used among
113 | developers working in that language.
114 |
115 | The “System Libraries” of an executable work include anything, other than
116 | the work as a whole, that **(a)** is included in the normal form of packaging a Major
117 | Component, but which is not part of that Major Component, and **(b)** serves only to
118 | enable use of the work with that Major Component, or to implement a Standard
119 | Interface for which an implementation is available to the public in source code form.
120 | A “Major Component”, in this context, means a major essential component
121 | (kernel, window system, and so on) of the specific operating system (if any) on which
122 | the executable work runs, or a compiler used to produce the work, or an object code
123 | interpreter used to run it.
124 |
125 | The “Corresponding Source” for a work in object code form means all the
126 | source code needed to generate, install, and (for an executable work) run the object
127 | code and to modify the work, including scripts to control those activities. However,
128 | it does not include the work's System Libraries, or general-purpose tools or
129 | generally available free programs which are used unmodified in performing those
130 | activities but which are not part of the work. For example, Corresponding Source
131 | includes interface definition files associated with source files for the work, and
132 | the source code for shared libraries and dynamically linked subprograms that the work
133 | is specifically designed to require, such as by intimate data communication or
134 | control flow between those subprograms and other parts of the work.
135 |
136 | The Corresponding Source need not include anything that users can regenerate
137 | automatically from other parts of the Corresponding Source.
138 |
139 | The Corresponding Source for a work in source code form is that same work.
140 |
141 | ### 2. Basic Permissions
142 |
143 | All rights granted under this License are granted for the term of copyright on the
144 | Program, and are irrevocable provided the stated conditions are met. This License
145 | explicitly affirms your unlimited permission to run the unmodified Program. The
146 | output from running a covered work is covered by this License only if the output,
147 | given its content, constitutes a covered work. This License acknowledges your rights
148 | of fair use or other equivalent, as provided by copyright law.
149 |
150 | You may make, run and propagate covered works that you do not convey, without
151 | conditions so long as your license otherwise remains in force. You may convey covered
152 | works to others for the sole purpose of having them make modifications exclusively
153 | for you, or provide you with facilities for running those works, provided that you
154 | comply with the terms of this License in conveying all material for which you do not
155 | control copyright. Those thus making or running the covered works for you must do so
156 | exclusively on your behalf, under your direction and control, on terms that prohibit
157 | them from making any copies of your copyrighted material outside their relationship
158 | with you.
159 |
160 | Conveying under any other circumstances is permitted solely under the conditions
161 | stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
162 |
163 | ### 3. Protecting Users' Legal Rights From Anti-Circumvention Law
164 |
165 | No covered work shall be deemed part of an effective technological measure under any
166 | applicable law fulfilling obligations under article 11 of the WIPO copyright treaty
167 | adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention
168 | of such measures.
169 |
170 | When you convey a covered work, you waive any legal power to forbid circumvention of
171 | technological measures to the extent such circumvention is effected by exercising
172 | rights under this License with respect to the covered work, and you disclaim any
173 | intention to limit operation or modification of the work as a means of enforcing,
174 | against the work's users, your or third parties' legal rights to forbid circumvention
175 | of technological measures.
176 |
177 | ### 4. Conveying Verbatim Copies
178 |
179 | You may convey verbatim copies of the Program's source code as you receive it, in any
180 | medium, provided that you conspicuously and appropriately publish on each copy an
181 | appropriate copyright notice; keep intact all notices stating that this License and
182 | any non-permissive terms added in accord with section 7 apply to the code; keep
183 | intact all notices of the absence of any warranty; and give all recipients a copy of
184 | this License along with the Program.
185 |
186 | You may charge any price or no price for each copy that you convey, and you may offer
187 | support or warranty protection for a fee.
188 |
189 | ### 5. Conveying Modified Source Versions
190 |
191 | You may convey a work based on the Program, or the modifications to produce it from
192 | the Program, in the form of source code under the terms of section 4, provided that
193 | you also meet all of these conditions:
194 |
195 | - **a)** The work must carry prominent notices stating that you modified it, and giving a
196 | relevant date.
197 | - **b)** The work must carry prominent notices stating that it is released under this
198 | License and any conditions added under section 7. This requirement modifies the
199 | requirement in section 4 to “keep intact all notices”.
200 | - **c)** You must license the entire work, as a whole, under this License to anyone who
201 | comes into possession of a copy. This License will therefore apply, along with any
202 | applicable section 7 additional terms, to the whole of the work, and all its parts,
203 | regardless of how they are packaged. This License gives no permission to license the
204 | work in any other way, but it does not invalidate such permission if you have
205 | separately received it.
206 | - **d)** If the work has interactive user interfaces, each must display Appropriate Legal
207 | Notices; however, if the Program has interactive interfaces that do not display
208 | Appropriate Legal Notices, your work need not make them do so.
209 |
210 | A compilation of a covered work with other separate and independent works, which are
211 | not by their nature extensions of the covered work, and which are not combined with
212 | it such as to form a larger program, in or on a volume of a storage or distribution
213 | medium, is called an “aggregate” if the compilation and its resulting
214 | copyright are not used to limit the access or legal rights of the compilation's users
215 | beyond what the individual works permit. Inclusion of a covered work in an aggregate
216 | does not cause this License to apply to the other parts of the aggregate.
217 |
218 | ### 6. Conveying Non-Source Forms
219 |
220 | You may convey a covered work in object code form under the terms of sections 4 and
221 | 5, provided that you also convey the machine-readable Corresponding Source under the
222 | terms of this License, in one of these ways:
223 |
224 | - **a)** Convey the object code in, or embodied in, a physical product (including a
225 | physical distribution medium), accompanied by the Corresponding Source fixed on a
226 | durable physical medium customarily used for software interchange.
227 | - **b)** Convey the object code in, or embodied in, a physical product (including a
228 | physical distribution medium), accompanied by a written offer, valid for at least
229 | three years and valid for as long as you offer spare parts or customer support for
230 | that product model, to give anyone who possesses the object code either **(1)** a copy of
231 | the Corresponding Source for all the software in the product that is covered by this
232 | License, on a durable physical medium customarily used for software interchange, for
233 | a price no more than your reasonable cost of physically performing this conveying of
234 | source, or **(2)** access to copy the Corresponding Source from a network server at no
235 | charge.
236 | - **c)** Convey individual copies of the object code with a copy of the written offer to
237 | provide the Corresponding Source. This alternative is allowed only occasionally and
238 | noncommercially, and only if you received the object code with such an offer, in
239 | accord with subsection 6b.
240 | - **d)** Convey the object code by offering access from a designated place (gratis or for
241 | a charge), and offer equivalent access to the Corresponding Source in the same way
242 | through the same place at no further charge. You need not require recipients to copy
243 | the Corresponding Source along with the object code. If the place to copy the object
244 | code is a network server, the Corresponding Source may be on a different server
245 | (operated by you or a third party) that supports equivalent copying facilities,
246 | provided you maintain clear directions next to the object code saying where to find
247 | the Corresponding Source. Regardless of what server hosts the Corresponding Source,
248 | you remain obligated to ensure that it is available for as long as needed to satisfy
249 | these requirements.
250 | - **e)** Convey the object code using peer-to-peer transmission, provided you inform
251 | other peers where the object code and Corresponding Source of the work are being
252 | offered to the general public at no charge under subsection 6d.
253 |
254 | A separable portion of the object code, whose source code is excluded from the
255 | Corresponding Source as a System Library, need not be included in conveying the
256 | object code work.
257 |
258 | A “User Product” is either **(1)** a “consumer product”, which
259 | means any tangible personal property which is normally used for personal, family, or
260 | household purposes, or **(2)** anything designed or sold for incorporation into a
261 | dwelling. In determining whether a product is a consumer product, doubtful cases
262 | shall be resolved in favor of coverage. For a particular product received by a
263 | particular user, “normally used” refers to a typical or common use of
264 | that class of product, regardless of the status of the particular user or of the way
265 | in which the particular user actually uses, or expects or is expected to use, the
266 | product. A product is a consumer product regardless of whether the product has
267 | substantial commercial, industrial or non-consumer uses, unless such uses represent
268 | the only significant mode of use of the product.
269 |
270 | “Installation Information” for a User Product means any methods,
271 | procedures, authorization keys, or other information required to install and execute
272 | modified versions of a covered work in that User Product from a modified version of
273 | its Corresponding Source. The information must suffice to ensure that the continued
274 | functioning of the modified object code is in no case prevented or interfered with
275 | solely because modification has been made.
276 |
277 | If you convey an object code work under this section in, or with, or specifically for
278 | use in, a User Product, and the conveying occurs as part of a transaction in which
279 | the right of possession and use of the User Product is transferred to the recipient
280 | in perpetuity or for a fixed term (regardless of how the transaction is
281 | characterized), the Corresponding Source conveyed under this section must be
282 | accompanied by the Installation Information. But this requirement does not apply if
283 | neither you nor any third party retains the ability to install modified object code
284 | on the User Product (for example, the work has been installed in ROM).
285 |
286 | The requirement to provide Installation Information does not include a requirement to
287 | continue to provide support service, warranty, or updates for a work that has been
288 | modified or installed by the recipient, or for the User Product in which it has been
289 | modified or installed. Access to a network may be denied when the modification itself
290 | materially and adversely affects the operation of the network or violates the rules
291 | and protocols for communication across the network.
292 |
293 | Corresponding Source conveyed, and Installation Information provided, in accord with
294 | this section must be in a format that is publicly documented (and with an
295 | implementation available to the public in source code form), and must require no
296 | special password or key for unpacking, reading or copying.
297 |
298 | ### 7. Additional Terms
299 |
300 | “Additional permissions” are terms that supplement the terms of this
301 | License by making exceptions from one or more of its conditions. Additional
302 | permissions that are applicable to the entire Program shall be treated as though they
303 | were included in this License, to the extent that they are valid under applicable
304 | law. If additional permissions apply only to part of the Program, that part may be
305 | used separately under those permissions, but the entire Program remains governed by
306 | this License without regard to the additional permissions.
307 |
308 | When you convey a copy of a covered work, you may at your option remove any
309 | additional permissions from that copy, or from any part of it. (Additional
310 | permissions may be written to require their own removal in certain cases when you
311 | modify the work.) You may place additional permissions on material, added by you to a
312 | covered work, for which you have or can give appropriate copyright permission.
313 |
314 | Notwithstanding any other provision of this License, for material you add to a
315 | covered work, you may (if authorized by the copyright holders of that material)
316 | supplement the terms of this License with terms:
317 |
318 | - **a)** Disclaiming warranty or limiting liability differently from the terms of
319 | sections 15 and 16 of this License; or
320 | - **b)** Requiring preservation of specified reasonable legal notices or author
321 | attributions in that material or in the Appropriate Legal Notices displayed by works
322 | containing it; or
323 | - **c)** Prohibiting misrepresentation of the origin of that material, or requiring that
324 | modified versions of such material be marked in reasonable ways as different from the
325 | original version; or
326 | - **d)** Limiting the use for publicity purposes of names of licensors or authors of the
327 | material; or
328 | - **e)** Declining to grant rights under trademark law for use of some trade names,
329 | trademarks, or service marks; or
330 | - **f)** Requiring indemnification of licensors and authors of that material by anyone
331 | who conveys the material (or modified versions of it) with contractual assumptions of
332 | liability to the recipient, for any liability that these contractual assumptions
333 | directly impose on those licensors and authors.
334 |
335 | All other non-permissive additional terms are considered “further
336 | restrictions” within the meaning of section 10. If the Program as you received
337 | it, or any part of it, contains a notice stating that it is governed by this License
338 | along with a term that is a further restriction, you may remove that term. If a
339 | license document contains a further restriction but permits relicensing or conveying
340 | under this License, you may add to a covered work material governed by the terms of
341 | that license document, provided that the further restriction does not survive such
342 | relicensing or conveying.
343 |
344 | If you add terms to a covered work in accord with this section, you must place, in
345 | the relevant source files, a statement of the additional terms that apply to those
346 | files, or a notice indicating where to find the applicable terms.
347 |
348 | Additional terms, permissive or non-permissive, may be stated in the form of a
349 | separately written license, or stated as exceptions; the above requirements apply
350 | either way.
351 |
352 | ### 8. Termination
353 |
354 | You may not propagate or modify a covered work except as expressly provided under
355 | this License. Any attempt otherwise to propagate or modify it is void, and will
356 | automatically terminate your rights under this License (including any patent licenses
357 | granted under the third paragraph of section 11).
358 |
359 | However, if you cease all violation of this License, then your license from a
360 | particular copyright holder is reinstated **(a)** provisionally, unless and until the
361 | copyright holder explicitly and finally terminates your license, and **(b)** permanently,
362 | if the copyright holder fails to notify you of the violation by some reasonable means
363 | prior to 60 days after the cessation.
364 |
365 | Moreover, your license from a particular copyright holder is reinstated permanently
366 | if the copyright holder notifies you of the violation by some reasonable means, this
367 | is the first time you have received notice of violation of this License (for any
368 | work) from that copyright holder, and you cure the violation prior to 30 days after
369 | your receipt of the notice.
370 |
371 | Termination of your rights under this section does not terminate the licenses of
372 | parties who have received copies or rights from you under this License. If your
373 | rights have been terminated and not permanently reinstated, you do not qualify to
374 | receive new licenses for the same material under section 10.
375 |
376 | ### 9. Acceptance Not Required for Having Copies
377 |
378 | You are not required to accept this License in order to receive or run a copy of the
379 | Program. Ancillary propagation of a covered work occurring solely as a consequence of
380 | using peer-to-peer transmission to receive a copy likewise does not require
381 | acceptance. However, nothing other than this License grants you permission to
382 | propagate or modify any covered work. These actions infringe copyright if you do not
383 | accept this License. Therefore, by modifying or propagating a covered work, you
384 | indicate your acceptance of this License to do so.
385 |
386 | ### 10. Automatic Licensing of Downstream Recipients
387 |
388 | Each time you convey a covered work, the recipient automatically receives a license
389 | from the original licensors, to run, modify and propagate that work, subject to this
390 | License. You are not responsible for enforcing compliance by third parties with this
391 | License.
392 |
393 | An “entity transaction” is a transaction transferring control of an
394 | organization, or substantially all assets of one, or subdividing an organization, or
395 | merging organizations. If propagation of a covered work results from an entity
396 | transaction, each party to that transaction who receives a copy of the work also
397 | receives whatever licenses to the work the party's predecessor in interest had or
398 | could give under the previous paragraph, plus a right to possession of the
399 | Corresponding Source of the work from the predecessor in interest, if the predecessor
400 | has it or can get it with reasonable efforts.
401 |
402 | You may not impose any further restrictions on the exercise of the rights granted or
403 | affirmed under this License. For example, you may not impose a license fee, royalty,
404 | or other charge for exercise of rights granted under this License, and you may not
405 | initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging
406 | that any patent claim is infringed by making, using, selling, offering for sale, or
407 | importing the Program or any portion of it.
408 |
409 | ### 11. Patents
410 |
411 | A “contributor” is a copyright holder who authorizes use under this
412 | License of the Program or a work on which the Program is based. The work thus
413 | licensed is called the contributor's “contributor version”.
414 |
415 | A contributor's “essential patent claims” are all patent claims owned or
416 | controlled by the contributor, whether already acquired or hereafter acquired, that
417 | would be infringed by some manner, permitted by this License, of making, using, or
418 | selling its contributor version, but do not include claims that would be infringed
419 | only as a consequence of further modification of the contributor version. For
420 | purposes of this definition, “control” includes the right to grant patent
421 | sublicenses in a manner consistent with the requirements of this License.
422 |
423 | Each contributor grants you a non-exclusive, worldwide, royalty-free patent license
424 | under the contributor's essential patent claims, to make, use, sell, offer for sale,
425 | import and otherwise run, modify and propagate the contents of its contributor
426 | version.
427 |
428 | In the following three paragraphs, a “patent license” is any express
429 | agreement or commitment, however denominated, not to enforce a patent (such as an
430 | express permission to practice a patent or covenant not to sue for patent
431 | infringement). To “grant” such a patent license to a party means to make
432 | such an agreement or commitment not to enforce a patent against the party.
433 |
434 | If you convey a covered work, knowingly relying on a patent license, and the
435 | Corresponding Source of the work is not available for anyone to copy, free of charge
436 | and under the terms of this License, through a publicly available network server or
437 | other readily accessible means, then you must either **(1)** cause the Corresponding
438 | Source to be so available, or **(2)** arrange to deprive yourself of the benefit of the
439 | patent license for this particular work, or **(3)** arrange, in a manner consistent with
440 | the requirements of this License, to extend the patent license to downstream
441 | recipients. “Knowingly relying” means you have actual knowledge that, but
442 | for the patent license, your conveying the covered work in a country, or your
443 | recipient's use of the covered work in a country, would infringe one or more
444 | identifiable patents in that country that you have reason to believe are valid.
445 |
446 | If, pursuant to or in connection with a single transaction or arrangement, you
447 | convey, or propagate by procuring conveyance of, a covered work, and grant a patent
448 | license to some of the parties receiving the covered work authorizing them to use,
449 | propagate, modify or convey a specific copy of the covered work, then the patent
450 | license you grant is automatically extended to all recipients of the covered work and
451 | works based on it.
452 |
453 | A patent license is “discriminatory” if it does not include within the
454 | scope of its coverage, prohibits the exercise of, or is conditioned on the
455 | non-exercise of one or more of the rights that are specifically granted under this
456 | License. You may not convey a covered work if you are a party to an arrangement with
457 | a third party that is in the business of distributing software, under which you make
458 | payment to the third party based on the extent of your activity of conveying the
459 | work, and under which the third party grants, to any of the parties who would receive
460 | the covered work from you, a discriminatory patent license **(a)** in connection with
461 | copies of the covered work conveyed by you (or copies made from those copies), or **(b)**
462 | primarily for and in connection with specific products or compilations that contain
463 | the covered work, unless you entered into that arrangement, or that patent license
464 | was granted, prior to 28 March 2007.
465 |
466 | Nothing in this License shall be construed as excluding or limiting any implied
467 | license or other defenses to infringement that may otherwise be available to you
468 | under applicable patent law.
469 |
470 | ### 12. No Surrender of Others' Freedom
471 |
472 | If conditions are imposed on you (whether by court order, agreement or otherwise)
473 | that contradict the conditions of this License, they do not excuse you from the
474 | conditions of this License. If you cannot convey a covered work so as to satisfy
475 | simultaneously your obligations under this License and any other pertinent
476 | obligations, then as a consequence you may not convey it at all. For example, if you
477 | agree to terms that obligate you to collect a royalty for further conveying from
478 | those to whom you convey the Program, the only way you could satisfy both those terms
479 | and this License would be to refrain entirely from conveying the Program.
480 |
481 | ### 13. Use with the GNU Affero General Public License
482 |
483 | Notwithstanding any other provision of this License, you have permission to link or
484 | combine any covered work with a work licensed under version 3 of the GNU Affero
485 | General Public License into a single combined work, and to convey the resulting work.
486 | The terms of this License will continue to apply to the part which is the covered
487 | work, but the special requirements of the GNU Affero General Public License, section
488 | 13, concerning interaction through a network will apply to the combination as such.
489 |
490 | ### 14. Revised Versions of this License
491 |
492 | The Free Software Foundation may publish revised and/or new versions of the GNU
493 | General Public License from time to time. Such new versions will be similar in spirit
494 | to the present version, but may differ in detail to address new problems or concerns.
495 |
496 | Each version is given a distinguishing version number. If the Program specifies that
497 | a certain numbered version of the GNU General Public License “or any later
498 | version” applies to it, you have the option of following the terms and
499 | conditions either of that numbered version or of any later version published by the
500 | Free Software Foundation. If the Program does not specify a version number of the GNU
501 | General Public License, you may choose any version ever published by the Free
502 | Software Foundation.
503 |
504 | If the Program specifies that a proxy can decide which future versions of the GNU
505 | General Public License can be used, that proxy's public statement of acceptance of a
506 | version permanently authorizes you to choose that version for the Program.
507 |
508 | Later license versions may give you additional or different permissions. However, no
509 | additional obligations are imposed on any author or copyright holder as a result of
510 | your choosing to follow a later version.
511 |
512 | ### 15. Disclaimer of Warranty
513 |
514 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
515 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
516 | PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
517 | EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
518 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
519 | QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
520 | DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
521 |
522 | ### 16. Limitation of Liability
523 |
524 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
525 | COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS
526 | PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
527 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
528 | PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE
529 | OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
530 | WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
531 | POSSIBILITY OF SUCH DAMAGES.
532 |
533 | ### 17. Interpretation of Sections 15 and 16
534 |
535 | If the disclaimer of warranty and limitation of liability provided above cannot be
536 | given local legal effect according to their terms, reviewing courts shall apply local
537 | law that most closely approximates an absolute waiver of all civil liability in
538 | connection with the Program, unless a warranty or assumption of liability accompanies
539 | a copy of the Program in return for a fee.
540 |
541 | _END OF TERMS AND CONDITIONS_
542 |
543 | ## How to Apply These Terms to Your New Programs
544 |
545 | If you develop a new program, and you want it to be of the greatest possible use to
546 | the public, the best way to achieve this is to make it free software which everyone
547 | can redistribute and change under these terms.
548 |
549 | To do so, attach the following notices to the program. It is safest to attach them
550 | to the start of each source file to most effectively state the exclusion of warranty;
551 | and each file should have at least the “copyright” line and a pointer to
552 | where the full notice is found.
553 |
554 | fivem-nui-react-lib - A set of tools for using FiveM NUI events in React
555 | Copyright (C) 2021 fran
556 |
557 | This program is free software: you can redistribute it and/or modify
558 | it under the terms of the GNU General Public License as published by
559 | the Free Software Foundation, either version 3 of the License, or
560 | (at your option) any later version.
561 |
562 | This program is distributed in the hope that it will be useful,
563 | but WITHOUT ANY WARRANTY; without even the implied warranty of
564 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
565 | GNU General Public License for more details.
566 |
567 | You should have received a copy of the GNU General Public License
568 | along with this program. If not, see .
569 |
570 | Also add information on how to contact you by electronic and paper mail.
571 |
572 | If the program does terminal interaction, make it output a short notice like this
573 | when it starts in an interactive mode:
574 |
575 | fivem-nui-react-lib - A set of tools for using FiveM NUI events in React
576 | Copyright (C) 2021 fran
577 | This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
578 | This is free software, and you are welcome to redistribute it
579 | under certain conditions; type 'show c' for details.
580 |
581 | The hypothetical commands `show w` and `show c` should show the appropriate parts of
582 | the General Public License. Of course, your program's commands might be different;
583 | for a GUI interface, you would use an “about box”.
584 |
585 | You should also get your employer (if you work as a programmer) or school, if any, to
586 | sign a “copyright disclaimer” for the program, if necessary. For more
587 | information on this, and how to apply and follow the GNU GPL, see
588 | <>.
589 |
590 | The GNU General Public License does not permit incorporating your program into
591 | proprietary programs. If your program is a subroutine library, you may consider it
592 | more useful to permit linking proprietary applications with the library. If this is
593 | what you want to do, use the GNU Lesser General Public License instead of this
594 | License. But first, please read
595 | <>.
596 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # fivem-nui-react-lib
2 |
3 | A (very opinionated) set of tools for using FiveM NUI events in React
4 |
5 | # example
6 |
7 | https://github.com/jfrader/fivem-nui-react-boilerplate
8 |
9 | # usage
10 |
11 | ### install
12 |
13 | `npm install --save fivem-nui-react-lib`
14 |
15 | ### provider
16 |
17 | You need a provider to set the resource name for events
18 |
19 | ```js
20 | import { NuiProvider } from "fivem-nui-react-lib";
21 |
22 | function App() {
23 | return (
24 |
25 | This is my app
26 |
27 | );
28 | }
29 | ```
30 |
31 | ### useNuiEvent
32 |
33 | This library receives the following schema on NUI events
34 |
35 | ```js
36 | {
37 | app: 'app-name', // can be always the same or change to differenciate events better on the UI
38 | method: 'method-name', // the actual event name which is sent to NUI
39 | data: 'response' // the response which will be handled from the UI
40 | }
41 | ```
42 |
43 | Receive events from client and set your state
44 |
45 | ```js
46 | // UI
47 | import { useNuiEvent } from "fivem-nui-react-lib";
48 |
49 | function MyComponent() {
50 | const [myState, setMyState] = useState(false);
51 | useNuiEvent("app-name", "method-name", setMyState);
52 | }
53 | ```
54 |
55 | ```js
56 | // CLIENT
57 | sendNuiMessage(
58 | JSON.stringify({
59 | app: "app-name",
60 | method: "method-name",
61 | data: true, // myState will be set as true in this example
62 | })
63 | );
64 | ```
65 |
66 | ### useNuiRequest
67 |
68 | Send requests to client
69 |
70 | ```js
71 | // UI
72 | import { useNuiRequest } from "fivem-nui-react-lib";
73 |
74 | function MyComponent() {
75 | const { send } = useNuiRequest();
76 | send("method-name", { myArgument: "isAwesome" });
77 | }
78 | ```
79 |
80 | ```js
81 | // CLIENT
82 | RegisterNuiCallbackType(`myEvent`);
83 | on(`__cfx_nui:myEvent`, (data, cb) => {
84 | // Use the arguments
85 | emitNet("myEvent", { input: data.myArgument });
86 | // Callback to prevent errors
87 | cb();
88 | });
89 | ```
90 |
91 | Send requests to another resoruce, overriding provider
92 |
93 | ```js
94 | // UI
95 | import { useNuiRequest } from "fivem-nui-react-lib";
96 |
97 | function MyComponent() {
98 | const { send } = useNuiRequest({ resource: "another-resource" });
99 | send("method-name", { myArgument: "isAwesome" });
100 | }
101 | ```
102 |
103 | ### useNuiCallback
104 |
105 | Make a callback to "myEvent" by sending back "myEventSuccess" or "myEventError" from the client
106 |
107 | ```js
108 | // UI
109 | import { useNuiCallback } from "fivem-nui-react-lib";
110 |
111 | function MyComponent() {
112 | const [myState, setMyState] = useState(null);
113 | const [error, setError] = useState(null);
114 | const [fetchMyMethod, { loading }] = useNuiCallback("app-name", "myEvent", setMyState, setError);
115 |
116 | useEffect(() => {
117 | fetchMyMethod({ argument: 1 });
118 | }, [fetchMyMethod]);
119 | }
120 | ```
121 |
122 | ```js
123 | // CLIENT
124 | RegisterNuiCallbackType(`myEvent`);
125 | on(`__cfx_nui:myEvent`, (data, cb) => {
126 | // emit some event to the server:
127 | emitNet("myEvent", { input: data });
128 | // callback so you prevent errors
129 | cb();
130 | });
131 |
132 | // ... on success
133 | sendNuiMessage(
134 | JSON.stringify({
135 | app: "app-name",
136 | method: "myEventSuccess",
137 | data: true,
138 | })
139 | );
140 |
141 | // ... on error
142 | sendNuiMessage(
143 | JSON.stringify({
144 | app: "app-name",
145 | method: "myEventError",
146 | data: true,
147 | })
148 | );
149 | ```
150 |
151 | The example above will request myEvent to the client and be in loading state until client sends back either myEventSuccess or myEventError.
152 | After one of those are received, the handlers will be executed (setMyState if success, setError if errored).
153 | If no event is received after the timeout time, it will throw as timeout error.
154 |
155 | # contributions
156 |
157 | Feel free to contribute and/or suggest changes.
158 |
159 | # license
160 |
161 | fivem-nui-react-lib - A set of tools for using FiveM NUI events in React
162 |
163 | Copyright (C) 2023 Fran
164 |
165 | This program is free software: you can redistribute it and/or modify
166 | it under the terms of the GNU General Public License as published by
167 | the Free Software Foundation, either version 3 of the License, or
168 | (at your option) any later version.
169 |
170 | This program is distributed in the hope that it will be useful,
171 | but WITHOUT ANY WARRANTY; without even the implied warranty of
172 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
173 | GNU General Public License for more details.
174 |
175 | You should have received a copy of the GNU General Public License
176 | along with this program. If not, see .
177 |
--------------------------------------------------------------------------------
/dist/index.d.ts:
--------------------------------------------------------------------------------
1 | export * from "./nui-events/hooks/useNuiEvent";
2 | export * from "./nui-events/hooks/useNuiCallback";
3 | export * from "./nui-events/hooks/useNuiRequest";
4 | export * from "./nui-events/context/NuiContext";
5 | export * from "./nui-events/providers/NuiProvider";
6 | export * from "./nui-events/utils/eventNameFactory";
7 |
--------------------------------------------------------------------------------
/dist/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5 | }) : (function(o, m, k, k2) {
6 | if (k2 === undefined) k2 = k;
7 | o[k2] = m[k];
8 | }));
9 | var __exportStar = (this && this.__exportStar) || function(m, exports) {
10 | for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11 | };
12 | Object.defineProperty(exports, "__esModule", { value: true });
13 | __exportStar(require("./nui-events/hooks/useNuiEvent"), exports);
14 | __exportStar(require("./nui-events/hooks/useNuiCallback"), exports);
15 | __exportStar(require("./nui-events/hooks/useNuiRequest"), exports);
16 | __exportStar(require("./nui-events/context/NuiContext"), exports);
17 | __exportStar(require("./nui-events/providers/NuiProvider"), exports);
18 | __exportStar(require("./nui-events/utils/eventNameFactory"), exports);
19 |
--------------------------------------------------------------------------------
/dist/nui-events/context/NuiContext.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | import { IAbortableFetch } from "../providers/NuiProvider";
3 | export interface NuiContext {
4 | resource: string;
5 | callbackTimeout: number;
6 | send: (e: string, data?: unknown, resource?: string) => Promise;
7 | sendAbortable: (e: string, data?: unknown, resource?: string) => IAbortableFetch;
8 | }
9 | export declare const NuiContext: import("react").Context;
10 |
--------------------------------------------------------------------------------
/dist/nui-events/context/NuiContext.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.NuiContext = void 0;
4 | var react_1 = require("react");
5 | exports.NuiContext = react_1.createContext(null);
6 |
--------------------------------------------------------------------------------
/dist/nui-events/hooks/useNuiCallback.d.ts:
--------------------------------------------------------------------------------
1 | declare type UseNuiCallbackFetchOptions = {
2 | timeout: number | false;
3 | };
4 | declare type UseNuiCallbackFetch = (input?: I, options?: UseNuiCallbackFetchOptions) => void;
5 | declare type UseNuiCallbackResponse = [UseNuiCallbackFetch, {
6 | loading: boolean;
7 | error: unknown;
8 | response: R;
9 | }];
10 | /**
11 | * @callback nuiEventHandler
12 | * @param {any} responseData
13 | *
14 | * @callback nuiEventErrorHandler
15 | * @param {any} responseError
16 | *
17 | * @function nuiFetchFn
18 | * @param {any} data - Request body
19 | * @param {Object} options - Fetch options
20 | * @param {string} options.timeout - Timeout to stop waiting for callback response in milliseconds.
21 | */
22 | /**
23 | * Make a callback to "myEvent" by sending back "myEventSuccess" or "myEventError" from the client
24 | * @param {string} app needs to be the same here and in the success and error response events
25 | * @param {string} method the event name which is sent to client
26 | * @param {nuiEventHandler} [handler] receive the data sent by the client when success
27 | * @param {nuiEventErrorHandler} [errHandler] receive the data sent by the client when errored
28 | * @returns {[nuiFetchFn, { loading, error, response }]} [fetchFn, { loading, error, response }]
29 | * @example
30 | * const [user, setUser] = useState(null)
31 | * const [fetchUser, { loading, error, response }] = useNuiCallback("appname", "fetchUser", setUser);
32 | * useEffect(() => {
33 | * fetchUser(11);
34 | * }, [fetchUser]);
35 | */
36 | export declare const useNuiCallback: (app: string, method: string, handler?: (res: R) => void, errHandler?: (err: unknown) => void) => UseNuiCallbackResponse;
37 | export {};
38 |
--------------------------------------------------------------------------------
/dist/nui-events/hooks/useNuiCallback.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.useNuiCallback = void 0;
4 | var react_1 = require("react");
5 | var NuiContext_1 = require("../context/NuiContext");
6 | var eventNameFactory_1 = require("../utils/eventNameFactory");
7 | var useNuiEvent_1 = require("./useNuiEvent");
8 | /**
9 | * @callback nuiEventHandler
10 | * @param {any} responseData
11 | *
12 | * @callback nuiEventErrorHandler
13 | * @param {any} responseError
14 | *
15 | * @function nuiFetchFn
16 | * @param {any} data - Request body
17 | * @param {Object} options - Fetch options
18 | * @param {string} options.timeout - Timeout to stop waiting for callback response in milliseconds.
19 | */
20 | /**
21 | * Make a callback to "myEvent" by sending back "myEventSuccess" or "myEventError" from the client
22 | * @param {string} app needs to be the same here and in the success and error response events
23 | * @param {string} method the event name which is sent to client
24 | * @param {nuiEventHandler} [handler] receive the data sent by the client when success
25 | * @param {nuiEventErrorHandler} [errHandler] receive the data sent by the client when errored
26 | * @returns {[nuiFetchFn, { loading, error, response }]} [fetchFn, { loading, error, response }]
27 | * @example
28 | * const [user, setUser] = useState(null)
29 | * const [fetchUser, { loading, error, response }] = useNuiCallback("appname", "fetchUser", setUser);
30 | * useEffect(() => {
31 | * fetchUser(11);
32 | * }, [fetchUser]);
33 | */
34 | var useNuiCallback = function (app, method, handler, errHandler) {
35 | var _a = react_1.useContext(NuiContext_1.NuiContext), sendAbortable = _a.sendAbortable, callbackTimeout = _a.callbackTimeout;
36 | var fetchRef = react_1.useRef();
37 | var timeoutRef = react_1.useRef();
38 | // These are Refs to avoid re renders.
39 | // We dont care if "app" and "method" arguments change.
40 | var eventNameRef = react_1.useRef(eventNameFactory_1.eventNameFactory(app, method));
41 | var methodNameRef = react_1.useRef(method);
42 | var appNameRef = react_1.useRef(app);
43 | // has timed out
44 | var _b = react_1.useState(false), timedOut = _b[0], setTimedOut = _b[1];
45 | // has failed at network or browser level
46 | var _c = react_1.useState(false), failed = _c[0], setFailed = _c[1];
47 | // is waiting for server callback response event
48 | var _d = react_1.useState(false), loading = _d[0], setLoading = _d[1];
49 | // returned error from server callback event or network failure
50 | var _e = react_1.useState(null), error = _e[0], setError = _e[1];
51 | // response from server callback event
52 | var _f = react_1.useState(null), response = _f[0], setResponse = _f[1];
53 | var onSuccess = react_1.useCallback(function (data) {
54 | if (!loading) {
55 | return;
56 | }
57 | // If we receive success event, clear timeout
58 | timeoutRef.current && clearTimeout(timeoutRef.current);
59 | // If already timed out, don't do shit :)
60 | if (timedOut) {
61 | return;
62 | }
63 | // Set new state after success event received
64 | setResponse(data);
65 | setError(null);
66 | setLoading(false);
67 | handler === null || handler === void 0 ? void 0 : handler(data);
68 | }, [handler, timedOut, loading]);
69 | var onError = react_1.useCallback(function (err) {
70 | // If we receive error event, clear timeout
71 | timeoutRef.current && clearTimeout(timeoutRef.current);
72 | // Set new state after error event received
73 | setError(err);
74 | setResponse(null);
75 | setLoading(false);
76 | errHandler === null || errHandler === void 0 ? void 0 : errHandler(err);
77 | }, [errHandler]);
78 | // Handle the success and error events for this method
79 | useNuiEvent_1.useNuiEvent(appNameRef.current, methodNameRef.current + "Success", onSuccess);
80 | useNuiEvent_1.useNuiEvent(appNameRef.current, methodNameRef.current + "Error", onError);
81 | // Only fetch if we are not loading/waiting the events.
82 | var fetch = react_1.useCallback(function (data, options) {
83 | setLoading(function (curr) {
84 | if (!curr) {
85 | setTimedOut(false);
86 | setFailed(false);
87 | setError(null);
88 | setResponse(null);
89 | fetchRef.current = sendAbortable(methodNameRef.current, data);
90 | fetchRef.current.promise.catch(function (e) {
91 | if (!timedOut) {
92 | onError(e);
93 | setFailed(true);
94 | timeoutRef.current = undefined;
95 | fetchRef.current = undefined;
96 | }
97 | });
98 | var _options = options || { timeout: callbackTimeout };
99 | var timeoutTime_1 = _options.timeout === false ? false : _options.timeout || callbackTimeout;
100 | if (timeoutTime_1 && !failed) {
101 | clearTimeout(timeoutRef.current);
102 | timeoutRef.current = setTimeout(function () {
103 | setTimedOut(true);
104 | onError(new Error("fivem-nui-react-lib: \"" + eventNameRef.current + "\" event callback timed out after " + timeoutTime_1 + " milliseconds"));
105 | fetchRef.current && fetchRef.current.abort();
106 | timeoutRef.current = undefined;
107 | fetchRef.current = undefined;
108 | }, timeoutTime_1);
109 | }
110 | return true;
111 | }
112 | return curr;
113 | });
114 | },
115 | // eslint-disable-next-line react-hooks/exhaustive-deps
116 | []);
117 | return [fetch, { loading: loading, response: response, error: error }];
118 | };
119 | exports.useNuiCallback = useNuiCallback;
120 |
--------------------------------------------------------------------------------
/dist/nui-events/hooks/useNuiEvent.d.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * @callback nuiEventHandler
3 | * @param {any} responseData
4 | */
5 | /**
6 | * A hook to receive data from the client in the following schema:
7 | *
8 | * {
9 | * "app": "app-name",
10 | * "method": "method-name",
11 | * "data": { anyValue: 1 }
12 | * }
13 | *
14 | * @param {string} app The app name which the client will emit to
15 | * @param {string} method The specific `method` field that should be listened for.
16 | * @param {nuiEventHandler} handler The callback function that will handle the data received from the server
17 | *
18 | * @example
19 | * const [dataState, setDataState] = useState();
20 | * useNuiEvent("appname", "methodname", setDataState);
21 | **/
22 | export declare const useNuiEvent: (app: string, method: string, handler: (r: D) => void) => void;
23 |
--------------------------------------------------------------------------------
/dist/nui-events/hooks/useNuiEvent.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.useNuiEvent = void 0;
4 | var react_1 = require("react");
5 | var eventNameFactory_1 = require("../utils/eventNameFactory");
6 | function addEventListener(element, type, handler) {
7 | element.addEventListener(type, handler);
8 | }
9 | /**
10 | * @callback nuiEventHandler
11 | * @param {any} responseData
12 | */
13 | /**
14 | * A hook to receive data from the client in the following schema:
15 | *
16 | * {
17 | * "app": "app-name",
18 | * "method": "method-name",
19 | * "data": { anyValue: 1 }
20 | * }
21 | *
22 | * @param {string} app The app name which the client will emit to
23 | * @param {string} method The specific `method` field that should be listened for.
24 | * @param {nuiEventHandler} handler The callback function that will handle the data received from the server
25 | *
26 | * @example
27 | * const [dataState, setDataState] = useState();
28 | * useNuiEvent("appname", "methodname", setDataState);
29 | **/
30 | var useNuiEvent = function (app, method, handler) {
31 | var savedHandler = react_1.useRef();
32 | // When handler value changes set mutable ref to handler val
33 | react_1.useEffect(function () {
34 | savedHandler.current = handler;
35 | }, [handler]);
36 | react_1.useEffect(function () {
37 | var eventName = eventNameFactory_1.eventNameFactory(app, method);
38 | var eventListener = function (event) {
39 | if (savedHandler.current && savedHandler.current.call) {
40 | var data = event.data;
41 | var newData = data;
42 | savedHandler.current(newData);
43 | }
44 | };
45 | addEventListener(window, eventName, eventListener);
46 | // Remove Event Listener on component cleanup
47 | return function () { return window.removeEventListener(eventName, eventListener); };
48 | }, [app, method]);
49 | };
50 | exports.useNuiEvent = useNuiEvent;
51 |
--------------------------------------------------------------------------------
/dist/nui-events/hooks/useNuiRequest.d.ts:
--------------------------------------------------------------------------------
1 | import { NuiContext } from "../context/NuiContext";
2 | declare type UseNuiRequestOptions = {
3 | resource?: string;
4 | };
5 | /**
6 | * @typedef {Object} useNuiRequestResponse
7 | * @property {number} send - Method to send an event to the server
8 | * @property {number} sendAbortable - Same as send but able to abort mission :)
9 | *
10 | * @function sendFn
11 | * @param {string} event
12 | * @param {any} data
13 | *
14 | * @function sendAbortableFn
15 | * @param {string} event
16 | * @param {any} data
17 | */
18 | /**
19 | * Send requests to the client
20 | * @param {Object} [options]
21 | * @param {string} [options.resource] override the provider resource name with the resource name to send the event to
22 | * @returns {useNuiRequestResponse} object with send event method
23 | * @example
24 | * const { send } = useNuiRequest();
25 | * const { send: sendToAnotherResource } = useNuiRequest("another-resource");
26 | *
27 | * return
28 | *
29 | *
30 | *
31 | *
32 | */
33 | export declare const useNuiRequest: ({ resource }?: UseNuiRequestOptions) => Pick;
34 | export {};
35 |
--------------------------------------------------------------------------------
/dist/nui-events/hooks/useNuiRequest.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.useNuiRequest = void 0;
4 | var react_1 = require("react");
5 | var NuiContext_1 = require("../context/NuiContext");
6 | /**
7 | * @typedef {Object} useNuiRequestResponse
8 | * @property {number} send - Method to send an event to the server
9 | * @property {number} sendAbortable - Same as send but able to abort mission :)
10 | *
11 | * @function sendFn
12 | * @param {string} event
13 | * @param {any} data
14 | *
15 | * @function sendAbortableFn
16 | * @param {string} event
17 | * @param {any} data
18 | */
19 | /**
20 | * Send requests to the client
21 | * @param {Object} [options]
22 | * @param {string} [options.resource] override the provider resource name with the resource name to send the event to
23 | * @returns {useNuiRequestResponse} object with send event method
24 | * @example
25 | * const { send } = useNuiRequest();
26 | * const { send: sendToAnotherResource } = useNuiRequest("another-resource");
27 | *
28 | * return
29 | *
30 | *
31 | *
32 | *
33 | */
34 | var useNuiRequest = function (_a) {
35 | var _b = _a === void 0 ? {} : _a, resource = _b.resource;
36 | var context = react_1.useContext(NuiContext_1.NuiContext);
37 | if (!context) {
38 | throw new Error("fivem-nui-react-lib: useNuiRequest must be used inside NuiProvider passing the `resource` prop");
39 | }
40 | var send = context.send, sendAbortable = context.sendAbortable;
41 | return react_1.useMemo(function () { return ({
42 | send: function (event, data) {
43 | if (data === void 0) { data = {}; }
44 | return send(event, data, resource);
45 | },
46 | sendAbortable: function (event, data) {
47 | if (data === void 0) { data = {}; }
48 | return sendAbortable(event, data, resource);
49 | },
50 | }); }, [send, sendAbortable, resource]);
51 | };
52 | exports.useNuiRequest = useNuiRequest;
53 |
--------------------------------------------------------------------------------
/dist/nui-events/providers/NuiProvider.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | export interface IAbortableFetch {
3 | abort: () => void;
4 | promise: Promise;
5 | }
6 | export declare const NuiProvider: ({ resource, children, timeout, }: {
7 | timeout?: number | false;
8 | resource: string;
9 | children: JSX.Element;
10 | }) => JSX.Element;
11 |
--------------------------------------------------------------------------------
/dist/nui-events/providers/NuiProvider.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __assign = (this && this.__assign) || function () {
3 | __assign = Object.assign || function(t) {
4 | for (var s, i = 1, n = arguments.length; i < n; i++) {
5 | s = arguments[i];
6 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7 | t[p] = s[p];
8 | }
9 | return t;
10 | };
11 | return __assign.apply(this, arguments);
12 | };
13 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15 | return new (P || (P = Promise))(function (resolve, reject) {
16 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19 | step((generator = generator.apply(thisArg, _arguments || [])).next());
20 | });
21 | };
22 | var __generator = (this && this.__generator) || function (thisArg, body) {
23 | var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24 | return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25 | function verb(n) { return function (v) { return step([n, v]); }; }
26 | function step(op) {
27 | if (f) throw new TypeError("Generator is already executing.");
28 | while (_) try {
29 | if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30 | if (y = 0, t) op = [op[0] & 2, t.value];
31 | switch (op[0]) {
32 | case 0: case 1: t = op; break;
33 | case 4: _.label++; return { value: op[1], done: false };
34 | case 5: _.label++; y = op[1]; op = [0]; continue;
35 | case 7: op = _.ops.pop(); _.trys.pop(); continue;
36 | default:
37 | if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38 | if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39 | if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40 | if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41 | if (t[2]) _.ops.pop();
42 | _.trys.pop(); continue;
43 | }
44 | op = body.call(thisArg, _);
45 | } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47 | }
48 | };
49 | Object.defineProperty(exports, "__esModule", { value: true });
50 | exports.NuiProvider = void 0;
51 | var jsx_runtime_1 = require("react/jsx-runtime");
52 | var react_1 = require("react");
53 | var NuiContext_1 = require("../context/NuiContext");
54 | var eventNameFactory_1 = require("../utils/eventNameFactory");
55 | function abortableFetch(request, opts) {
56 | var controller = new AbortController();
57 | var signal = controller.signal;
58 | return {
59 | abort: function () { return controller.abort(); },
60 | promise: fetch(request, __assign(__assign({}, opts), { signal: signal })),
61 | };
62 | }
63 | function getParams(resource, event, data) {
64 | return [
65 | "https://" + resource + "/" + event,
66 | {
67 | method: "post",
68 | headers: {
69 | "Content-Type": "application/json; charset=UTF-8",
70 | },
71 | body: JSON.stringify(data),
72 | },
73 | ];
74 | }
75 | var DEFAULT_TIMEOUT = 10000;
76 | var NuiProvider = function (_a) {
77 | var resource = _a.resource, children = _a.children, timeout = _a.timeout;
78 | var resourceRef = react_1.useRef(resource || "");
79 | var timeoutRef = react_1.useRef(timeout || DEFAULT_TIMEOUT);
80 | var eventListener = function (event) {
81 | var _a = event.data, app = _a.app, method = _a.method, data = _a.data;
82 | if (app && method) {
83 | window.dispatchEvent(new MessageEvent(eventNameFactory_1.eventNameFactory(app, method), {
84 | data: data,
85 | }));
86 | }
87 | };
88 | react_1.useEffect(function () {
89 | window.addEventListener("message", eventListener);
90 | return function () { return window.removeEventListener("message", eventListener); };
91 | }, []);
92 | var send = react_1.useCallback(function (event, data, res) {
93 | if (data === void 0) { data = {}; }
94 | return __awaiter(void 0, void 0, void 0, function () {
95 | return __generator(this, function (_a) {
96 | return [2 /*return*/, fetch.apply(void 0, getParams(res || resourceRef.current, event, data))];
97 | });
98 | });
99 | }, []);
100 | var sendAbortable = react_1.useCallback(function (event, data, res) {
101 | if (data === void 0) { data = {}; }
102 | return abortableFetch.apply(void 0, getParams(res || resourceRef.current, event, data));
103 | }, []);
104 | return (jsx_runtime_1.jsx(NuiContext_1.NuiContext.Provider, __assign({ value: {
105 | send: send,
106 | sendAbortable: sendAbortable,
107 | resource: resourceRef.current,
108 | callbackTimeout: timeoutRef.current,
109 | } }, { children: children }), void 0));
110 | };
111 | exports.NuiProvider = NuiProvider;
112 |
--------------------------------------------------------------------------------
/dist/nui-events/utils/eventNameFactory.d.ts:
--------------------------------------------------------------------------------
1 | export declare const eventNameFactory: (app: string, method: string) => string;
2 |
--------------------------------------------------------------------------------
/dist/nui-events/utils/eventNameFactory.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.eventNameFactory = void 0;
4 | var eventNameFactory = function (app, method) { return app + ":" + method; };
5 | exports.eventNameFactory = eventNameFactory;
6 |
--------------------------------------------------------------------------------
/lib/ui/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./nui-events/hooks/useNuiEvent";
2 | export * from "./nui-events/hooks/useNuiCallback";
3 | export * from "./nui-events/hooks/useNuiRequest";
4 | export * from "./nui-events/context/NuiContext";
5 | export * from "./nui-events/providers/NuiProvider";
6 | export * from "./nui-events/utils/eventNameFactory";
7 |
--------------------------------------------------------------------------------
/lib/ui/nui-events/context/NuiContext.ts:
--------------------------------------------------------------------------------
1 | import { createContext } from "react";
2 | import { IAbortableFetch } from "../providers/NuiProvider";
3 |
4 | export interface NuiContext {
5 | resource: string;
6 | callbackTimeout: number;
7 | send: (e: string, data?: unknown, resource?: string) => Promise;
8 | sendAbortable: (e: string, data?: unknown, resource?: string) => IAbortableFetch;
9 | }
10 |
11 | export const NuiContext = createContext(null);
12 |
--------------------------------------------------------------------------------
/lib/ui/nui-events/hooks/useNuiCallback.ts:
--------------------------------------------------------------------------------
1 | import { useCallback, useContext, useRef, useState } from "react";
2 | import { NuiContext } from "../context/NuiContext";
3 | import { IAbortableFetch } from "../providers/NuiProvider";
4 | import { eventNameFactory } from "../utils/eventNameFactory";
5 | import { useNuiEvent } from "./useNuiEvent";
6 |
7 | type UseNuiCallbackFetchOptions = {
8 | timeout: number | false;
9 | };
10 |
11 | type UseNuiCallbackFetch = (input?: I, options?: UseNuiCallbackFetchOptions) => void;
12 |
13 | type UseNuiCallbackResponse = [UseNuiCallbackFetch, { loading: boolean; error: unknown; response: R }];
14 |
15 | /**
16 | * @callback nuiEventHandler
17 | * @param {any} responseData
18 | *
19 | * @callback nuiEventErrorHandler
20 | * @param {any} responseError
21 | *
22 | * @function nuiFetchFn
23 | * @param {any} data - Request body
24 | * @param {Object} options - Fetch options
25 | * @param {string} options.timeout - Timeout to stop waiting for callback response in milliseconds.
26 | */
27 |
28 | /**
29 | * Make a callback to "myEvent" by sending back "myEventSuccess" or "myEventError" from the client
30 | * @param {string} app needs to be the same here and in the success and error response events
31 | * @param {string} method the event name which is sent to client
32 | * @param {nuiEventHandler} [handler] receive the data sent by the client when success
33 | * @param {nuiEventErrorHandler} [errHandler] receive the data sent by the client when errored
34 | * @returns {[nuiFetchFn, { loading, error, response }]} [fetchFn, { loading, error, response }]
35 | * @example
36 | * const [user, setUser] = useState(null)
37 | * const [fetchUser, { loading, error, response }] = useNuiCallback("appname", "fetchUser", setUser);
38 | * useEffect(() => {
39 | * fetchUser(11);
40 | * }, [fetchUser]);
41 | */
42 | export const useNuiCallback = (
43 | app: string,
44 | method: string,
45 | handler?: (res: R) => void,
46 | errHandler?: (err: unknown) => void
47 | ): UseNuiCallbackResponse => {
48 | const { sendAbortable, callbackTimeout } = useContext(NuiContext);
49 |
50 | const fetchRef = useRef();
51 | const timeoutRef = useRef();
52 |
53 | // These are Refs to avoid re renders.
54 | // We dont care if "app" and "method" arguments change.
55 | const eventNameRef = useRef(eventNameFactory(app, method));
56 | const methodNameRef = useRef(method);
57 | const appNameRef = useRef(app);
58 |
59 | // has timed out
60 | const [timedOut, setTimedOut] = useState(false);
61 |
62 | // has failed at network or browser level
63 | const [failed, setFailed] = useState(false);
64 |
65 | // is waiting for server callback response event
66 | const [loading, setLoading] = useState(false);
67 |
68 | // returned error from server callback event or network failure
69 | const [error, setError] = useState(null);
70 |
71 | // response from server callback event
72 | const [response, setResponse] = useState(null);
73 |
74 | const onSuccess = useCallback(
75 | (data: R) => {
76 | if (!loading) {
77 | return;
78 | }
79 | // If we receive success event, clear timeout
80 | timeoutRef.current && clearTimeout(timeoutRef.current);
81 | // If already timed out, don't do shit :)
82 | if (timedOut) {
83 | return;
84 | }
85 | // Set new state after success event received
86 | setResponse(data);
87 | setError(null);
88 | setLoading(false);
89 | handler?.(data);
90 | },
91 | [handler, timedOut, loading]
92 | );
93 |
94 | const onError = useCallback(
95 | (err: unknown) => {
96 | // If we receive error event, clear timeout
97 | timeoutRef.current && clearTimeout(timeoutRef.current);
98 | // Set new state after error event received
99 | setError(err);
100 | setResponse(null);
101 | setLoading(false);
102 | errHandler?.(err);
103 | },
104 | [errHandler]
105 | );
106 |
107 | // Handle the success and error events for this method
108 | useNuiEvent(appNameRef.current, `${methodNameRef.current}Success`, onSuccess);
109 | useNuiEvent(appNameRef.current, `${methodNameRef.current}Error`, onError);
110 |
111 | // Only fetch if we are not loading/waiting the events.
112 | const fetch = useCallback(
113 | (data?: I, options?: UseNuiCallbackFetchOptions) => {
114 | setLoading((curr) => {
115 | if (!curr) {
116 | setTimedOut(false);
117 | setFailed(false);
118 | setError(null);
119 | setResponse(null);
120 | fetchRef.current = sendAbortable(methodNameRef.current, data);
121 |
122 | fetchRef.current.promise.catch((e) => {
123 | if (!timedOut) {
124 | onError(e);
125 | setFailed(true);
126 | timeoutRef.current = undefined;
127 | fetchRef.current = undefined;
128 | }
129 | });
130 |
131 | const _options = options || { timeout: callbackTimeout };
132 | const timeoutTime = _options.timeout === false ? false : _options.timeout || callbackTimeout;
133 |
134 | if (timeoutTime && !failed) {
135 | clearTimeout(timeoutRef.current);
136 | timeoutRef.current = setTimeout(() => {
137 | setTimedOut(true);
138 | onError(
139 | new Error(
140 | `fivem-nui-react-lib: "${eventNameRef.current}" event callback timed out after ${timeoutTime} milliseconds`
141 | )
142 | );
143 | fetchRef.current && fetchRef.current.abort();
144 | timeoutRef.current = undefined;
145 | fetchRef.current = undefined;
146 | }, timeoutTime);
147 | }
148 |
149 | return true;
150 | }
151 | return curr;
152 | });
153 | },
154 | // eslint-disable-next-line react-hooks/exhaustive-deps
155 | []
156 | );
157 |
158 | return [fetch, { loading, response, error }];
159 | };
160 |
--------------------------------------------------------------------------------
/lib/ui/nui-events/hooks/useNuiEvent.ts:
--------------------------------------------------------------------------------
1 | import { MutableRefObject, useEffect, useRef } from "react";
2 | import { eventNameFactory } from "../utils/eventNameFactory";
3 |
4 | function addEventListener(
5 | element: T,
6 | type: string,
7 | handler: (this: T, evt: E) => void
8 | ) {
9 | element.addEventListener(type, handler as (evt: Event) => void);
10 | }
11 |
12 | /**
13 | * @callback nuiEventHandler
14 | * @param {any} responseData
15 | */
16 |
17 | /**
18 | * A hook to receive data from the client in the following schema:
19 | *
20 | * {
21 | * "app": "app-name",
22 | * "method": "method-name",
23 | * "data": { anyValue: 1 }
24 | * }
25 | *
26 | * @param {string} app The app name which the client will emit to
27 | * @param {string} method The specific `method` field that should be listened for.
28 | * @param {nuiEventHandler} handler The callback function that will handle the data received from the server
29 | *
30 | * @example
31 | * const [dataState, setDataState] = useState();
32 | * useNuiEvent("appname", "methodname", setDataState);
33 | **/
34 | export const useNuiEvent = (app: string, method: string, handler: (r: D) => void): void => {
35 | const savedHandler: MutableRefObject<(r: D) => void> = useRef();
36 |
37 | // When handler value changes set mutable ref to handler val
38 | useEffect(() => {
39 | savedHandler.current = handler;
40 | }, [handler]);
41 |
42 | useEffect(() => {
43 | const eventName = eventNameFactory(app, method);
44 | const eventListener = (event) => {
45 | if (savedHandler.current && savedHandler.current.call) {
46 | const { data } = event;
47 | const newData = data;
48 | savedHandler.current(newData as D);
49 | }
50 | };
51 |
52 | addEventListener(window, eventName, eventListener);
53 | // Remove Event Listener on component cleanup
54 | return () => window.removeEventListener(eventName, eventListener);
55 | }, [app, method]);
56 | };
57 |
--------------------------------------------------------------------------------
/lib/ui/nui-events/hooks/useNuiRequest.ts:
--------------------------------------------------------------------------------
1 | import { useContext, useMemo } from "react";
2 | import { NuiContext } from "../context/NuiContext";
3 |
4 | type UseNuiRequestOptions = {
5 | resource?: string;
6 | };
7 |
8 | /**
9 | * @typedef {Object} useNuiRequestResponse
10 | * @property {number} send - Method to send an event to the server
11 | * @property {number} sendAbortable - Same as send but able to abort mission :)
12 | *
13 | * @function sendFn
14 | * @param {string} event
15 | * @param {any} data
16 | *
17 | * @function sendAbortableFn
18 | * @param {string} event
19 | * @param {any} data
20 | */
21 |
22 | /**
23 | * Send requests to the client
24 | * @param {Object} [options]
25 | * @param {string} [options.resource] override the provider resource name with the resource name to send the event to
26 | * @returns {useNuiRequestResponse} object with send event method
27 | * @example
28 | * const { send } = useNuiRequest();
29 | * const { send: sendToAnotherResource } = useNuiRequest("another-resource");
30 | *
31 | * return
32 | *
33 | *
34 | *
35 | *
36 | */
37 | export const useNuiRequest = ({ resource }: UseNuiRequestOptions = {}): Pick => {
38 | const context = useContext(NuiContext);
39 |
40 | if (!context) {
41 | throw new Error("fivem-nui-react-lib: useNuiRequest must be used inside NuiProvider passing the `resource` prop");
42 | }
43 |
44 | const { send, sendAbortable } = context;
45 | return useMemo(
46 | () => ({
47 | send: (event: string, data = {}) => send(event, data, resource),
48 | sendAbortable: (event: string, data = {}) => sendAbortable(event, data, resource),
49 | }),
50 | [send, sendAbortable, resource]
51 | );
52 | };
53 |
--------------------------------------------------------------------------------
/lib/ui/nui-events/providers/NuiProvider.tsx:
--------------------------------------------------------------------------------
1 | import React, { useCallback, useEffect, useRef } from "react";
2 | import { NuiContext } from "../context/NuiContext";
3 | import { eventNameFactory } from "../utils/eventNameFactory";
4 |
5 | export interface IAbortableFetch {
6 | abort: () => void;
7 | promise: Promise;
8 | }
9 |
10 | function abortableFetch(request, opts): IAbortableFetch {
11 | const controller = new AbortController();
12 | const signal = controller.signal;
13 |
14 | return {
15 | abort: () => controller.abort(),
16 | promise: fetch(request, { ...opts, signal }),
17 | };
18 | }
19 |
20 | function getParams(resource, event, data): [RequestInfo, RequestInit] {
21 | return [
22 | `https://${resource}/${event}`,
23 | {
24 | method: "post",
25 | headers: {
26 | "Content-Type": "application/json; charset=UTF-8",
27 | },
28 | body: JSON.stringify(data),
29 | },
30 | ];
31 | }
32 |
33 | const DEFAULT_TIMEOUT = 10000;
34 |
35 | export const NuiProvider = ({
36 | resource,
37 | children,
38 | timeout,
39 | }: {
40 | timeout?: number | false;
41 | resource: string;
42 | children: JSX.Element;
43 | }): JSX.Element => {
44 | const resourceRef = useRef(resource || "");
45 | const timeoutRef = useRef(timeout || DEFAULT_TIMEOUT);
46 |
47 | const eventListener = (event: { data: { app: string; method: string; data: unknown } }) => {
48 | const { app, method, data } = event.data;
49 | if (app && method) {
50 | window.dispatchEvent(
51 | new MessageEvent(eventNameFactory(app, method), {
52 | data,
53 | })
54 | );
55 | }
56 | };
57 |
58 | useEffect(() => {
59 | window.addEventListener("message", eventListener);
60 | return () => window.removeEventListener("message", eventListener);
61 | }, []);
62 |
63 | const send = useCallback(async (event: string, data = {}, res?: string) => {
64 | return fetch(...getParams(res || resourceRef.current, event, data));
65 | }, []);
66 |
67 | const sendAbortable = useCallback((event: string, data = {}, res?: string): IAbortableFetch => {
68 | return abortableFetch(...getParams(res || resourceRef.current, event, data));
69 | }, []);
70 |
71 | return (
72 |
80 | {children}
81 |
82 | );
83 | };
84 |
--------------------------------------------------------------------------------
/lib/ui/nui-events/utils/eventNameFactory.ts:
--------------------------------------------------------------------------------
1 | export const eventNameFactory = (app: string, method: string): string => `${app}:${method}`;
2 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fivem-nui-react-lib",
3 | "description": "React provider and hooks for FiveM NUI",
4 | "author": "fran ",
5 | "license": "GPL-3.0-or-later",
6 | "version": "2.3.13",
7 | "main": "dist/index.js",
8 | "scripts": {
9 | "build": "yarn rimraf dist && tsc",
10 | "lint": "yarn eslint lib",
11 | "prepare": "yarn lint && yarn build && husky install",
12 | "test": "echo \"Error: no test specified\" && exit 1"
13 | },
14 | "repository": {
15 | "type": "git",
16 | "url": "git+https://github.com/jfrader/fivem-nui-react-lib.git"
17 | },
18 | "files": [
19 | "dist"
20 | ],
21 | "peerDependencies": {
22 | "react": "^17.0.2",
23 | "react-dom": "^17.0.2"
24 | },
25 | "devDependencies": {
26 | "@types/node": "^12.0.0",
27 | "@types/react": "^17.0.3",
28 | "@typescript-eslint/eslint-plugin": "^5.49.0",
29 | "@typescript-eslint/parser": "^5.49.0",
30 | "eslint": "^8.40.0",
31 | "eslint-config-prettier": "^8.6.0",
32 | "eslint-plugin-prettier": "^4.2.1",
33 | "eslint-plugin-react": "^7.32.1",
34 | "eslint-plugin-react-hooks": "^4.6.0",
35 | "husky": "^6.0.0",
36 | "lint-staged": "^10.5.4",
37 | "prettier": "^2.2.1",
38 | "react": "^17.0.2",
39 | "react-dom": "^17.0.2",
40 | "rimraf": "^3.0.2",
41 | "typescript": "^4.1.2"
42 | },
43 | "lint-staged": {
44 | "*.js,*.ts": "yarn lint",
45 | "*.{js,ts,css,md}": "prettier --write"
46 | },
47 | "keywords": [
48 | "fivem",
49 | "gta5",
50 | "gtarp",
51 | "nui",
52 | "react",
53 | "lib",
54 | "library",
55 | "events"
56 | ]
57 | }
58 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "outDir": "dist",
4 | "declaration": true,
5 | "target": "es5",
6 | "lib": ["dom", "dom.iterable", "esnext"],
7 | "allowJs": true,
8 | "skipLibCheck": true,
9 | "esModuleInterop": true,
10 | "allowSyntheticDefaultImports": true,
11 | "strict": false,
12 | "strictFunctionTypes": false,
13 | "forceConsistentCasingInFileNames": true,
14 | "noFallthroughCasesInSwitch": true,
15 | "module": "commonjs",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "noEmit": false,
20 | "jsx": "react-jsx"
21 | },
22 | "include": ["lib"]
23 | }
24 |
--------------------------------------------------------------------------------
/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.0.0":
6 | version "7.12.13"
7 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz"
8 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
9 | dependencies:
10 | "@babel/highlight" "^7.12.13"
11 |
12 | "@babel/helper-validator-identifier@^7.12.11":
13 | version "7.12.11"
14 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz"
15 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
16 |
17 | "@babel/highlight@^7.12.13":
18 | version "7.13.10"
19 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz"
20 | integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.12.11"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@eslint-community/eslint-utils@^4.2.0":
27 | version "4.4.0"
28 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
29 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
30 | dependencies:
31 | eslint-visitor-keys "^3.3.0"
32 |
33 | "@eslint-community/regexpp@^4.4.0":
34 | version "4.5.1"
35 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
36 | integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
37 |
38 | "@eslint/eslintrc@^2.0.3":
39 | version "2.0.3"
40 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331"
41 | integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==
42 | dependencies:
43 | ajv "^6.12.4"
44 | debug "^4.3.2"
45 | espree "^9.5.2"
46 | globals "^13.19.0"
47 | ignore "^5.2.0"
48 | import-fresh "^3.2.1"
49 | js-yaml "^4.1.0"
50 | minimatch "^3.1.2"
51 | strip-json-comments "^3.1.1"
52 |
53 | "@eslint/js@8.40.0":
54 | version "8.40.0"
55 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec"
56 | integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==
57 |
58 | "@humanwhocodes/config-array@^0.11.8":
59 | version "0.11.8"
60 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
61 | integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
62 | dependencies:
63 | "@humanwhocodes/object-schema" "^1.2.1"
64 | debug "^4.1.1"
65 | minimatch "^3.0.5"
66 |
67 | "@humanwhocodes/module-importer@^1.0.1":
68 | version "1.0.1"
69 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
70 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
71 |
72 | "@humanwhocodes/object-schema@^1.2.1":
73 | version "1.2.1"
74 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
75 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
76 |
77 | "@nodelib/fs.scandir@2.1.5":
78 | version "2.1.5"
79 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
80 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
81 | dependencies:
82 | "@nodelib/fs.stat" "2.0.5"
83 | run-parallel "^1.1.9"
84 |
85 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
86 | version "2.0.5"
87 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
88 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
89 |
90 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
91 | version "1.2.8"
92 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
93 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
94 | dependencies:
95 | "@nodelib/fs.scandir" "2.1.5"
96 | fastq "^1.6.0"
97 |
98 | "@types/json-schema@^7.0.9":
99 | version "7.0.11"
100 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz"
101 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
102 |
103 | "@types/node@^12.0.0":
104 | version "12.20.7"
105 | resolved "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz"
106 | integrity sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==
107 |
108 | "@types/parse-json@^4.0.0":
109 | version "4.0.0"
110 | resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
111 | integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
112 |
113 | "@types/prop-types@*":
114 | version "15.7.3"
115 | resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz"
116 | integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
117 |
118 | "@types/react@^17.0.3":
119 | version "17.0.3"
120 | resolved "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz"
121 | integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==
122 | dependencies:
123 | "@types/prop-types" "*"
124 | "@types/scheduler" "*"
125 | csstype "^3.0.2"
126 |
127 | "@types/scheduler@*":
128 | version "0.16.1"
129 | resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz"
130 | integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==
131 |
132 | "@types/semver@^7.3.12":
133 | version "7.3.13"
134 | resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz"
135 | integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==
136 |
137 | "@typescript-eslint/eslint-plugin@^5.49.0":
138 | version "5.49.0"
139 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz#d0b4556f0792194bf0c2fb297897efa321492389"
140 | integrity sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==
141 | dependencies:
142 | "@typescript-eslint/scope-manager" "5.49.0"
143 | "@typescript-eslint/type-utils" "5.49.0"
144 | "@typescript-eslint/utils" "5.49.0"
145 | debug "^4.3.4"
146 | ignore "^5.2.0"
147 | natural-compare-lite "^1.4.0"
148 | regexpp "^3.2.0"
149 | semver "^7.3.7"
150 | tsutils "^3.21.0"
151 |
152 | "@typescript-eslint/parser@^5.49.0":
153 | version "5.49.0"
154 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.49.0.tgz#d699734b2f20e16351e117417d34a2bc9d7c4b90"
155 | integrity sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==
156 | dependencies:
157 | "@typescript-eslint/scope-manager" "5.49.0"
158 | "@typescript-eslint/types" "5.49.0"
159 | "@typescript-eslint/typescript-estree" "5.49.0"
160 | debug "^4.3.4"
161 |
162 | "@typescript-eslint/scope-manager@5.49.0":
163 | version "5.49.0"
164 | resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz"
165 | integrity sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==
166 | dependencies:
167 | "@typescript-eslint/types" "5.49.0"
168 | "@typescript-eslint/visitor-keys" "5.49.0"
169 |
170 | "@typescript-eslint/type-utils@5.49.0":
171 | version "5.49.0"
172 | resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz"
173 | integrity sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==
174 | dependencies:
175 | "@typescript-eslint/typescript-estree" "5.49.0"
176 | "@typescript-eslint/utils" "5.49.0"
177 | debug "^4.3.4"
178 | tsutils "^3.21.0"
179 |
180 | "@typescript-eslint/types@5.49.0":
181 | version "5.49.0"
182 | resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz"
183 | integrity sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==
184 |
185 | "@typescript-eslint/typescript-estree@5.49.0":
186 | version "5.49.0"
187 | resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz"
188 | integrity sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==
189 | dependencies:
190 | "@typescript-eslint/types" "5.49.0"
191 | "@typescript-eslint/visitor-keys" "5.49.0"
192 | debug "^4.3.4"
193 | globby "^11.1.0"
194 | is-glob "^4.0.3"
195 | semver "^7.3.7"
196 | tsutils "^3.21.0"
197 |
198 | "@typescript-eslint/utils@5.49.0":
199 | version "5.49.0"
200 | resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz"
201 | integrity sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==
202 | dependencies:
203 | "@types/json-schema" "^7.0.9"
204 | "@types/semver" "^7.3.12"
205 | "@typescript-eslint/scope-manager" "5.49.0"
206 | "@typescript-eslint/types" "5.49.0"
207 | "@typescript-eslint/typescript-estree" "5.49.0"
208 | eslint-scope "^5.1.1"
209 | eslint-utils "^3.0.0"
210 | semver "^7.3.7"
211 |
212 | "@typescript-eslint/visitor-keys@5.49.0":
213 | version "5.49.0"
214 | resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz"
215 | integrity sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==
216 | dependencies:
217 | "@typescript-eslint/types" "5.49.0"
218 | eslint-visitor-keys "^3.3.0"
219 |
220 | acorn-jsx@^5.3.2:
221 | version "5.3.2"
222 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
223 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
224 |
225 | acorn@^8.8.0:
226 | version "8.8.2"
227 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
228 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
229 |
230 | aggregate-error@^3.0.0:
231 | version "3.1.0"
232 | resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz"
233 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
234 | dependencies:
235 | clean-stack "^2.0.0"
236 | indent-string "^4.0.0"
237 |
238 | ajv@^6.10.0, ajv@^6.12.4:
239 | version "6.12.6"
240 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
241 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
242 | dependencies:
243 | fast-deep-equal "^3.1.1"
244 | fast-json-stable-stringify "^2.0.0"
245 | json-schema-traverse "^0.4.1"
246 | uri-js "^4.2.2"
247 |
248 | ansi-colors@^4.1.1:
249 | version "4.1.1"
250 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"
251 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
252 |
253 | ansi-escapes@^4.3.0:
254 | version "4.3.2"
255 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
256 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
257 | dependencies:
258 | type-fest "^0.21.3"
259 |
260 | ansi-regex@^5.0.0:
261 | version "5.0.0"
262 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"
263 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
264 |
265 | ansi-regex@^5.0.1:
266 | version "5.0.1"
267 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
268 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
269 |
270 | ansi-styles@^3.2.1:
271 | version "3.2.1"
272 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
273 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
274 | dependencies:
275 | color-convert "^1.9.0"
276 |
277 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
278 | version "4.3.0"
279 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
280 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
281 | dependencies:
282 | color-convert "^2.0.1"
283 |
284 | argparse@^2.0.1:
285 | version "2.0.1"
286 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
287 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
288 |
289 | array-includes@^3.1.2, array-includes@^3.1.6:
290 | version "3.1.6"
291 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz"
292 | integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==
293 | dependencies:
294 | call-bind "^1.0.2"
295 | define-properties "^1.1.4"
296 | es-abstract "^1.20.4"
297 | get-intrinsic "^1.1.3"
298 | is-string "^1.0.7"
299 |
300 | array-union@^2.1.0:
301 | version "2.1.0"
302 | resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
303 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
304 |
305 | array.prototype.flatmap@^1.3.1:
306 | version "1.3.1"
307 | resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz"
308 | integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==
309 | dependencies:
310 | call-bind "^1.0.2"
311 | define-properties "^1.1.4"
312 | es-abstract "^1.20.4"
313 | es-shim-unscopables "^1.0.0"
314 |
315 | array.prototype.tosorted@^1.1.1:
316 | version "1.1.1"
317 | resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz"
318 | integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==
319 | dependencies:
320 | call-bind "^1.0.2"
321 | define-properties "^1.1.4"
322 | es-abstract "^1.20.4"
323 | es-shim-unscopables "^1.0.0"
324 | get-intrinsic "^1.1.3"
325 |
326 | astral-regex@^2.0.0:
327 | version "2.0.0"
328 | resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz"
329 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
330 |
331 | available-typed-arrays@^1.0.5:
332 | version "1.0.5"
333 | resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz"
334 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
335 |
336 | balanced-match@^1.0.0:
337 | version "1.0.2"
338 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
339 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
340 |
341 | brace-expansion@^1.1.7:
342 | version "1.1.11"
343 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
344 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
345 | dependencies:
346 | balanced-match "^1.0.0"
347 | concat-map "0.0.1"
348 |
349 | braces@^3.0.2:
350 | version "3.0.2"
351 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
352 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
353 | dependencies:
354 | fill-range "^7.0.1"
355 |
356 | call-bind@^1.0.0, call-bind@^1.0.2:
357 | version "1.0.2"
358 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
359 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
360 | dependencies:
361 | function-bind "^1.1.1"
362 | get-intrinsic "^1.0.2"
363 |
364 | callsites@^3.0.0:
365 | version "3.1.0"
366 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
367 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
368 |
369 | chalk@^2.0.0:
370 | version "2.4.2"
371 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
372 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
373 | dependencies:
374 | ansi-styles "^3.2.1"
375 | escape-string-regexp "^1.0.5"
376 | supports-color "^5.3.0"
377 |
378 | chalk@^4.0.0, chalk@^4.1.0:
379 | version "4.1.0"
380 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"
381 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
382 | dependencies:
383 | ansi-styles "^4.1.0"
384 | supports-color "^7.1.0"
385 |
386 | clean-stack@^2.0.0:
387 | version "2.2.0"
388 | resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz"
389 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
390 |
391 | cli-cursor@^3.1.0:
392 | version "3.1.0"
393 | resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"
394 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
395 | dependencies:
396 | restore-cursor "^3.1.0"
397 |
398 | cli-truncate@^2.1.0:
399 | version "2.1.0"
400 | resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz"
401 | integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
402 | dependencies:
403 | slice-ansi "^3.0.0"
404 | string-width "^4.2.0"
405 |
406 | color-convert@^1.9.0:
407 | version "1.9.3"
408 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
409 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
410 | dependencies:
411 | color-name "1.1.3"
412 |
413 | color-convert@^2.0.1:
414 | version "2.0.1"
415 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
416 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
417 | dependencies:
418 | color-name "~1.1.4"
419 |
420 | color-name@1.1.3:
421 | version "1.1.3"
422 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
423 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
424 |
425 | color-name@~1.1.4:
426 | version "1.1.4"
427 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
428 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
429 |
430 | commander@^6.2.0:
431 | version "6.2.1"
432 | resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz"
433 | integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
434 |
435 | concat-map@0.0.1:
436 | version "0.0.1"
437 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
438 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
439 |
440 | cosmiconfig@^7.0.0:
441 | version "7.0.0"
442 | resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz"
443 | integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
444 | dependencies:
445 | "@types/parse-json" "^4.0.0"
446 | import-fresh "^3.2.1"
447 | parse-json "^5.0.0"
448 | path-type "^4.0.0"
449 | yaml "^1.10.0"
450 |
451 | cross-spawn@^7.0.0, cross-spawn@^7.0.2:
452 | version "7.0.3"
453 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
454 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
455 | dependencies:
456 | path-key "^3.1.0"
457 | shebang-command "^2.0.0"
458 | which "^2.0.1"
459 |
460 | csstype@^3.0.2:
461 | version "3.0.7"
462 | resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz"
463 | integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==
464 |
465 | debug@^4.1.1, debug@^4.2.0, debug@^4.3.2, debug@^4.3.4:
466 | version "4.3.4"
467 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
468 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
469 | dependencies:
470 | ms "2.1.2"
471 |
472 | dedent@^0.7.0:
473 | version "0.7.0"
474 | resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz"
475 | integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
476 |
477 | deep-is@^0.1.3:
478 | version "0.1.3"
479 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
480 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
481 |
482 | define-properties@^1.1.3, define-properties@^1.1.4:
483 | version "1.1.4"
484 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz"
485 | integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
486 | dependencies:
487 | has-property-descriptors "^1.0.0"
488 | object-keys "^1.1.1"
489 |
490 | dir-glob@^3.0.1:
491 | version "3.0.1"
492 | resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
493 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
494 | dependencies:
495 | path-type "^4.0.0"
496 |
497 | doctrine@^2.1.0:
498 | version "2.1.0"
499 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
500 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
501 | dependencies:
502 | esutils "^2.0.2"
503 |
504 | doctrine@^3.0.0:
505 | version "3.0.0"
506 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
507 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
508 | dependencies:
509 | esutils "^2.0.2"
510 |
511 | emoji-regex@^8.0.0:
512 | version "8.0.0"
513 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
514 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
515 |
516 | end-of-stream@^1.1.0:
517 | version "1.4.4"
518 | resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
519 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
520 | dependencies:
521 | once "^1.4.0"
522 |
523 | enquirer@^2.3.6:
524 | version "2.3.6"
525 | resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
526 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
527 | dependencies:
528 | ansi-colors "^4.1.1"
529 |
530 | error-ex@^1.3.1:
531 | version "1.3.2"
532 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
533 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
534 | dependencies:
535 | is-arrayish "^0.2.1"
536 |
537 | es-abstract@^1.19.0, es-abstract@^1.20.4:
538 | version "1.21.1"
539 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz"
540 | integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==
541 | dependencies:
542 | available-typed-arrays "^1.0.5"
543 | call-bind "^1.0.2"
544 | es-set-tostringtag "^2.0.1"
545 | es-to-primitive "^1.2.1"
546 | function-bind "^1.1.1"
547 | function.prototype.name "^1.1.5"
548 | get-intrinsic "^1.1.3"
549 | get-symbol-description "^1.0.0"
550 | globalthis "^1.0.3"
551 | gopd "^1.0.1"
552 | has "^1.0.3"
553 | has-property-descriptors "^1.0.0"
554 | has-proto "^1.0.1"
555 | has-symbols "^1.0.3"
556 | internal-slot "^1.0.4"
557 | is-array-buffer "^3.0.1"
558 | is-callable "^1.2.7"
559 | is-negative-zero "^2.0.2"
560 | is-regex "^1.1.4"
561 | is-shared-array-buffer "^1.0.2"
562 | is-string "^1.0.7"
563 | is-typed-array "^1.1.10"
564 | is-weakref "^1.0.2"
565 | object-inspect "^1.12.2"
566 | object-keys "^1.1.1"
567 | object.assign "^4.1.4"
568 | regexp.prototype.flags "^1.4.3"
569 | safe-regex-test "^1.0.0"
570 | string.prototype.trimend "^1.0.6"
571 | string.prototype.trimstart "^1.0.6"
572 | typed-array-length "^1.0.4"
573 | unbox-primitive "^1.0.2"
574 | which-typed-array "^1.1.9"
575 |
576 | es-set-tostringtag@^2.0.1:
577 | version "2.0.1"
578 | resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz"
579 | integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
580 | dependencies:
581 | get-intrinsic "^1.1.3"
582 | has "^1.0.3"
583 | has-tostringtag "^1.0.0"
584 |
585 | es-shim-unscopables@^1.0.0:
586 | version "1.0.0"
587 | resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
588 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==
589 | dependencies:
590 | has "^1.0.3"
591 |
592 | es-to-primitive@^1.2.1:
593 | version "1.2.1"
594 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
595 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
596 | dependencies:
597 | is-callable "^1.1.4"
598 | is-date-object "^1.0.1"
599 | is-symbol "^1.0.2"
600 |
601 | escape-string-regexp@^1.0.5:
602 | version "1.0.5"
603 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
604 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
605 |
606 | escape-string-regexp@^4.0.0:
607 | version "4.0.0"
608 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
609 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
610 |
611 | eslint-config-prettier@^8.6.0:
612 | version "8.6.0"
613 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207"
614 | integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
615 |
616 | eslint-plugin-prettier@^4.2.1:
617 | version "4.2.1"
618 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
619 | integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
620 | dependencies:
621 | prettier-linter-helpers "^1.0.0"
622 |
623 | eslint-plugin-react-hooks@^4.6.0:
624 | version "4.6.0"
625 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
626 | integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
627 |
628 | eslint-plugin-react@^7.32.1:
629 | version "7.32.1"
630 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200"
631 | integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==
632 | dependencies:
633 | array-includes "^3.1.6"
634 | array.prototype.flatmap "^1.3.1"
635 | array.prototype.tosorted "^1.1.1"
636 | doctrine "^2.1.0"
637 | estraverse "^5.3.0"
638 | jsx-ast-utils "^2.4.1 || ^3.0.0"
639 | minimatch "^3.1.2"
640 | object.entries "^1.1.6"
641 | object.fromentries "^2.0.6"
642 | object.hasown "^1.1.2"
643 | object.values "^1.1.6"
644 | prop-types "^15.8.1"
645 | resolve "^2.0.0-next.4"
646 | semver "^6.3.0"
647 | string.prototype.matchall "^4.0.8"
648 |
649 | eslint-scope@^5.1.1:
650 | version "5.1.1"
651 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
652 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
653 | dependencies:
654 | esrecurse "^4.3.0"
655 | estraverse "^4.1.1"
656 |
657 | eslint-scope@^7.2.0:
658 | version "7.2.0"
659 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b"
660 | integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==
661 | dependencies:
662 | esrecurse "^4.3.0"
663 | estraverse "^5.2.0"
664 |
665 | eslint-utils@^3.0.0:
666 | version "3.0.0"
667 | resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
668 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
669 | dependencies:
670 | eslint-visitor-keys "^2.0.0"
671 |
672 | eslint-visitor-keys@^2.0.0:
673 | version "2.1.0"
674 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
675 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
676 |
677 | eslint-visitor-keys@^3.3.0:
678 | version "3.3.0"
679 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
680 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
681 |
682 | eslint-visitor-keys@^3.4.1:
683 | version "3.4.1"
684 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994"
685 | integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
686 |
687 | eslint@^8.40.0:
688 | version "8.40.0"
689 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4"
690 | integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==
691 | dependencies:
692 | "@eslint-community/eslint-utils" "^4.2.0"
693 | "@eslint-community/regexpp" "^4.4.0"
694 | "@eslint/eslintrc" "^2.0.3"
695 | "@eslint/js" "8.40.0"
696 | "@humanwhocodes/config-array" "^0.11.8"
697 | "@humanwhocodes/module-importer" "^1.0.1"
698 | "@nodelib/fs.walk" "^1.2.8"
699 | ajv "^6.10.0"
700 | chalk "^4.0.0"
701 | cross-spawn "^7.0.2"
702 | debug "^4.3.2"
703 | doctrine "^3.0.0"
704 | escape-string-regexp "^4.0.0"
705 | eslint-scope "^7.2.0"
706 | eslint-visitor-keys "^3.4.1"
707 | espree "^9.5.2"
708 | esquery "^1.4.2"
709 | esutils "^2.0.2"
710 | fast-deep-equal "^3.1.3"
711 | file-entry-cache "^6.0.1"
712 | find-up "^5.0.0"
713 | glob-parent "^6.0.2"
714 | globals "^13.19.0"
715 | grapheme-splitter "^1.0.4"
716 | ignore "^5.2.0"
717 | import-fresh "^3.0.0"
718 | imurmurhash "^0.1.4"
719 | is-glob "^4.0.0"
720 | is-path-inside "^3.0.3"
721 | js-sdsl "^4.1.4"
722 | js-yaml "^4.1.0"
723 | json-stable-stringify-without-jsonify "^1.0.1"
724 | levn "^0.4.1"
725 | lodash.merge "^4.6.2"
726 | minimatch "^3.1.2"
727 | natural-compare "^1.4.0"
728 | optionator "^0.9.1"
729 | strip-ansi "^6.0.1"
730 | strip-json-comments "^3.1.0"
731 | text-table "^0.2.0"
732 |
733 | espree@^9.5.2:
734 | version "9.5.2"
735 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b"
736 | integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==
737 | dependencies:
738 | acorn "^8.8.0"
739 | acorn-jsx "^5.3.2"
740 | eslint-visitor-keys "^3.4.1"
741 |
742 | esquery@^1.4.2:
743 | version "1.5.0"
744 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
745 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
746 | dependencies:
747 | estraverse "^5.1.0"
748 |
749 | esrecurse@^4.3.0:
750 | version "4.3.0"
751 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
752 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
753 | dependencies:
754 | estraverse "^5.2.0"
755 |
756 | estraverse@^4.1.1:
757 | version "4.3.0"
758 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
759 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
760 |
761 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
762 | version "5.3.0"
763 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
764 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
765 |
766 | esutils@^2.0.2:
767 | version "2.0.3"
768 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
769 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
770 |
771 | execa@^4.1.0:
772 | version "4.1.0"
773 | resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz"
774 | integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
775 | dependencies:
776 | cross-spawn "^7.0.0"
777 | get-stream "^5.0.0"
778 | human-signals "^1.1.1"
779 | is-stream "^2.0.0"
780 | merge-stream "^2.0.0"
781 | npm-run-path "^4.0.0"
782 | onetime "^5.1.0"
783 | signal-exit "^3.0.2"
784 | strip-final-newline "^2.0.0"
785 |
786 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
787 | version "3.1.3"
788 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
789 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
790 |
791 | fast-diff@^1.1.2:
792 | version "1.2.0"
793 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
794 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
795 |
796 | fast-glob@^3.2.9:
797 | version "3.2.12"
798 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz"
799 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
800 | dependencies:
801 | "@nodelib/fs.stat" "^2.0.2"
802 | "@nodelib/fs.walk" "^1.2.3"
803 | glob-parent "^5.1.2"
804 | merge2 "^1.3.0"
805 | micromatch "^4.0.4"
806 |
807 | fast-json-stable-stringify@^2.0.0:
808 | version "2.1.0"
809 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
810 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
811 |
812 | fast-levenshtein@^2.0.6:
813 | version "2.0.6"
814 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
815 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
816 |
817 | fastq@^1.6.0:
818 | version "1.15.0"
819 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"
820 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
821 | dependencies:
822 | reusify "^1.0.4"
823 |
824 | figures@^3.2.0:
825 | version "3.2.0"
826 | resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz"
827 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
828 | dependencies:
829 | escape-string-regexp "^1.0.5"
830 |
831 | file-entry-cache@^6.0.1:
832 | version "6.0.1"
833 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
834 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
835 | dependencies:
836 | flat-cache "^3.0.4"
837 |
838 | fill-range@^7.0.1:
839 | version "7.0.1"
840 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
841 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
842 | dependencies:
843 | to-regex-range "^5.0.1"
844 |
845 | find-up@^5.0.0:
846 | version "5.0.0"
847 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
848 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
849 | dependencies:
850 | locate-path "^6.0.0"
851 | path-exists "^4.0.0"
852 |
853 | flat-cache@^3.0.4:
854 | version "3.0.4"
855 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
856 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
857 | dependencies:
858 | flatted "^3.1.0"
859 | rimraf "^3.0.2"
860 |
861 | flatted@^3.1.0:
862 | version "3.1.1"
863 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz"
864 | integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
865 |
866 | for-each@^0.3.3:
867 | version "0.3.3"
868 | resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"
869 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
870 | dependencies:
871 | is-callable "^1.1.3"
872 |
873 | fs.realpath@^1.0.0:
874 | version "1.0.0"
875 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
876 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
877 |
878 | function-bind@^1.1.1:
879 | version "1.1.1"
880 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
881 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
882 |
883 | function.prototype.name@^1.1.5:
884 | version "1.1.5"
885 | resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
886 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
887 | dependencies:
888 | call-bind "^1.0.2"
889 | define-properties "^1.1.3"
890 | es-abstract "^1.19.0"
891 | functions-have-names "^1.2.2"
892 |
893 | functions-have-names@^1.2.2:
894 | version "1.2.3"
895 | resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
896 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
897 |
898 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
899 | version "1.2.0"
900 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz"
901 | integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
902 | dependencies:
903 | function-bind "^1.1.1"
904 | has "^1.0.3"
905 | has-symbols "^1.0.3"
906 |
907 | get-own-enumerable-property-symbols@^3.0.0:
908 | version "3.0.2"
909 | resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"
910 | integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
911 |
912 | get-stream@^5.0.0:
913 | version "5.2.0"
914 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"
915 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
916 | dependencies:
917 | pump "^3.0.0"
918 |
919 | get-symbol-description@^1.0.0:
920 | version "1.0.0"
921 | resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
922 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
923 | dependencies:
924 | call-bind "^1.0.2"
925 | get-intrinsic "^1.1.1"
926 |
927 | glob-parent@^5.1.2:
928 | version "5.1.2"
929 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
930 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
931 | dependencies:
932 | is-glob "^4.0.1"
933 |
934 | glob-parent@^6.0.2:
935 | version "6.0.2"
936 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
937 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
938 | dependencies:
939 | is-glob "^4.0.3"
940 |
941 | glob@^7.1.3:
942 | version "7.1.6"
943 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
944 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
945 | dependencies:
946 | fs.realpath "^1.0.0"
947 | inflight "^1.0.4"
948 | inherits "2"
949 | minimatch "^3.0.4"
950 | once "^1.3.0"
951 | path-is-absolute "^1.0.0"
952 |
953 | globals@^13.19.0:
954 | version "13.20.0"
955 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
956 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
957 | dependencies:
958 | type-fest "^0.20.2"
959 |
960 | globalthis@^1.0.3:
961 | version "1.0.3"
962 | resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz"
963 | integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
964 | dependencies:
965 | define-properties "^1.1.3"
966 |
967 | globby@^11.1.0:
968 | version "11.1.0"
969 | resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
970 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
971 | dependencies:
972 | array-union "^2.1.0"
973 | dir-glob "^3.0.1"
974 | fast-glob "^3.2.9"
975 | ignore "^5.2.0"
976 | merge2 "^1.4.1"
977 | slash "^3.0.0"
978 |
979 | gopd@^1.0.1:
980 | version "1.0.1"
981 | resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"
982 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
983 | dependencies:
984 | get-intrinsic "^1.1.3"
985 |
986 | grapheme-splitter@^1.0.4:
987 | version "1.0.4"
988 | resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
989 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
990 |
991 | has-bigints@^1.0.1, has-bigints@^1.0.2:
992 | version "1.0.2"
993 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
994 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
995 |
996 | has-flag@^3.0.0:
997 | version "3.0.0"
998 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
999 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1000 |
1001 | has-flag@^4.0.0:
1002 | version "4.0.0"
1003 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
1004 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1005 |
1006 | has-property-descriptors@^1.0.0:
1007 | version "1.0.0"
1008 | resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
1009 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
1010 | dependencies:
1011 | get-intrinsic "^1.1.1"
1012 |
1013 | has-proto@^1.0.1:
1014 | version "1.0.1"
1015 | resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"
1016 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
1017 |
1018 | has-symbols@^1.0.2, has-symbols@^1.0.3:
1019 | version "1.0.3"
1020 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
1021 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
1022 |
1023 | has-tostringtag@^1.0.0:
1024 | version "1.0.0"
1025 | resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
1026 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
1027 | dependencies:
1028 | has-symbols "^1.0.2"
1029 |
1030 | has@^1.0.3:
1031 | version "1.0.3"
1032 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
1033 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1034 | dependencies:
1035 | function-bind "^1.1.1"
1036 |
1037 | human-signals@^1.1.1:
1038 | version "1.1.1"
1039 | resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
1040 | integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
1041 |
1042 | husky@^6.0.0:
1043 | version "6.0.0"
1044 | resolved "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz"
1045 | integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==
1046 |
1047 | ignore@^5.2.0:
1048 | version "5.2.4"
1049 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
1050 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
1051 |
1052 | import-fresh@^3.0.0, import-fresh@^3.2.1:
1053 | version "3.3.0"
1054 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
1055 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1056 | dependencies:
1057 | parent-module "^1.0.0"
1058 | resolve-from "^4.0.0"
1059 |
1060 | imurmurhash@^0.1.4:
1061 | version "0.1.4"
1062 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
1063 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1064 |
1065 | indent-string@^4.0.0:
1066 | version "4.0.0"
1067 | resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
1068 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
1069 |
1070 | inflight@^1.0.4:
1071 | version "1.0.6"
1072 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
1073 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1074 | dependencies:
1075 | once "^1.3.0"
1076 | wrappy "1"
1077 |
1078 | inherits@2:
1079 | version "2.0.4"
1080 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
1081 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1082 |
1083 | internal-slot@^1.0.3, internal-slot@^1.0.4:
1084 | version "1.0.4"
1085 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz"
1086 | integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==
1087 | dependencies:
1088 | get-intrinsic "^1.1.3"
1089 | has "^1.0.3"
1090 | side-channel "^1.0.4"
1091 |
1092 | is-array-buffer@^3.0.1:
1093 | version "3.0.1"
1094 | resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz"
1095 | integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==
1096 | dependencies:
1097 | call-bind "^1.0.2"
1098 | get-intrinsic "^1.1.3"
1099 | is-typed-array "^1.1.10"
1100 |
1101 | is-arrayish@^0.2.1:
1102 | version "0.2.1"
1103 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
1104 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1105 |
1106 | is-bigint@^1.0.1:
1107 | version "1.0.4"
1108 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
1109 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
1110 | dependencies:
1111 | has-bigints "^1.0.1"
1112 |
1113 | is-boolean-object@^1.1.0:
1114 | version "1.1.0"
1115 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz"
1116 | integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==
1117 | dependencies:
1118 | call-bind "^1.0.0"
1119 |
1120 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
1121 | version "1.2.7"
1122 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
1123 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
1124 |
1125 | is-core-module@^2.9.0:
1126 | version "2.11.0"
1127 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz"
1128 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
1129 | dependencies:
1130 | has "^1.0.3"
1131 |
1132 | is-date-object@^1.0.1:
1133 | version "1.0.5"
1134 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
1135 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
1136 | dependencies:
1137 | has-tostringtag "^1.0.0"
1138 |
1139 | is-extglob@^2.1.1:
1140 | version "2.1.1"
1141 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1142 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
1143 |
1144 | is-fullwidth-code-point@^3.0.0:
1145 | version "3.0.0"
1146 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
1147 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1148 |
1149 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
1150 | version "4.0.3"
1151 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
1152 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1153 | dependencies:
1154 | is-extglob "^2.1.1"
1155 |
1156 | is-negative-zero@^2.0.2:
1157 | version "2.0.2"
1158 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
1159 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
1160 |
1161 | is-number-object@^1.0.4:
1162 | version "1.0.4"
1163 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz"
1164 | integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==
1165 |
1166 | is-number@^7.0.0:
1167 | version "7.0.0"
1168 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
1169 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1170 |
1171 | is-obj@^1.0.1:
1172 | version "1.0.1"
1173 | resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz"
1174 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
1175 |
1176 | is-path-inside@^3.0.3:
1177 | version "3.0.3"
1178 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
1179 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
1180 |
1181 | is-regex@^1.1.4:
1182 | version "1.1.4"
1183 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
1184 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
1185 | dependencies:
1186 | call-bind "^1.0.2"
1187 | has-tostringtag "^1.0.0"
1188 |
1189 | is-regexp@^1.0.0:
1190 | version "1.0.0"
1191 | resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz"
1192 | integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
1193 |
1194 | is-shared-array-buffer@^1.0.2:
1195 | version "1.0.2"
1196 | resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
1197 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
1198 | dependencies:
1199 | call-bind "^1.0.2"
1200 |
1201 | is-stream@^2.0.0:
1202 | version "2.0.0"
1203 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"
1204 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
1205 |
1206 | is-string@^1.0.5, is-string@^1.0.7:
1207 | version "1.0.7"
1208 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
1209 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
1210 | dependencies:
1211 | has-tostringtag "^1.0.0"
1212 |
1213 | is-symbol@^1.0.2, is-symbol@^1.0.3:
1214 | version "1.0.4"
1215 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
1216 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
1217 | dependencies:
1218 | has-symbols "^1.0.2"
1219 |
1220 | is-typed-array@^1.1.10, is-typed-array@^1.1.9:
1221 | version "1.1.10"
1222 | resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz"
1223 | integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
1224 | dependencies:
1225 | available-typed-arrays "^1.0.5"
1226 | call-bind "^1.0.2"
1227 | for-each "^0.3.3"
1228 | gopd "^1.0.1"
1229 | has-tostringtag "^1.0.0"
1230 |
1231 | is-unicode-supported@^0.1.0:
1232 | version "0.1.0"
1233 | resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
1234 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
1235 |
1236 | is-weakref@^1.0.2:
1237 | version "1.0.2"
1238 | resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
1239 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
1240 | dependencies:
1241 | call-bind "^1.0.2"
1242 |
1243 | isexe@^2.0.0:
1244 | version "2.0.0"
1245 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
1246 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1247 |
1248 | js-sdsl@^4.1.4:
1249 | version "4.4.0"
1250 | resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430"
1251 | integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==
1252 |
1253 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1254 | version "4.0.0"
1255 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
1256 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1257 |
1258 | js-yaml@^4.1.0:
1259 | version "4.1.0"
1260 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1261 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1262 | dependencies:
1263 | argparse "^2.0.1"
1264 |
1265 | json-parse-even-better-errors@^2.3.0:
1266 | version "2.3.1"
1267 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
1268 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
1269 |
1270 | json-schema-traverse@^0.4.1:
1271 | version "0.4.1"
1272 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
1273 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1274 |
1275 | json-stable-stringify-without-jsonify@^1.0.1:
1276 | version "1.0.1"
1277 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
1278 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
1279 |
1280 | "jsx-ast-utils@^2.4.1 || ^3.0.0":
1281 | version "3.2.0"
1282 | resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz"
1283 | integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==
1284 | dependencies:
1285 | array-includes "^3.1.2"
1286 | object.assign "^4.1.2"
1287 |
1288 | levn@^0.4.1:
1289 | version "0.4.1"
1290 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
1291 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1292 | dependencies:
1293 | prelude-ls "^1.2.1"
1294 | type-check "~0.4.0"
1295 |
1296 | lines-and-columns@^1.1.6:
1297 | version "1.1.6"
1298 | resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
1299 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
1300 |
1301 | lint-staged@^10.5.4:
1302 | version "10.5.4"
1303 | resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz"
1304 | integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==
1305 | dependencies:
1306 | chalk "^4.1.0"
1307 | cli-truncate "^2.1.0"
1308 | commander "^6.2.0"
1309 | cosmiconfig "^7.0.0"
1310 | debug "^4.2.0"
1311 | dedent "^0.7.0"
1312 | enquirer "^2.3.6"
1313 | execa "^4.1.0"
1314 | listr2 "^3.2.2"
1315 | log-symbols "^4.0.0"
1316 | micromatch "^4.0.2"
1317 | normalize-path "^3.0.0"
1318 | please-upgrade-node "^3.2.0"
1319 | string-argv "0.3.1"
1320 | stringify-object "^3.3.0"
1321 |
1322 | listr2@^3.2.2:
1323 | version "3.6.2"
1324 | resolved "https://registry.npmjs.org/listr2/-/listr2-3.6.2.tgz"
1325 | integrity sha512-B2vlu7Zx/2OAMVUovJ7Tv1kQ2v2oXd0nZKzkSAcRCej269d8gkS/gupDEdNl23KQ3ZjVD8hQmifrrBFbx8F9LA==
1326 | dependencies:
1327 | chalk "^4.1.0"
1328 | cli-truncate "^2.1.0"
1329 | figures "^3.2.0"
1330 | indent-string "^4.0.0"
1331 | log-update "^4.0.0"
1332 | p-map "^4.0.0"
1333 | rxjs "^6.6.7"
1334 | through "^2.3.8"
1335 | wrap-ansi "^7.0.0"
1336 |
1337 | locate-path@^6.0.0:
1338 | version "6.0.0"
1339 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1340 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1341 | dependencies:
1342 | p-locate "^5.0.0"
1343 |
1344 | lodash.merge@^4.6.2:
1345 | version "4.6.2"
1346 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1347 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1348 |
1349 | log-symbols@^4.0.0:
1350 | version "4.1.0"
1351 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz"
1352 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
1353 | dependencies:
1354 | chalk "^4.1.0"
1355 | is-unicode-supported "^0.1.0"
1356 |
1357 | log-update@^4.0.0:
1358 | version "4.0.0"
1359 | resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz"
1360 | integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
1361 | dependencies:
1362 | ansi-escapes "^4.3.0"
1363 | cli-cursor "^3.1.0"
1364 | slice-ansi "^4.0.0"
1365 | wrap-ansi "^6.2.0"
1366 |
1367 | loose-envify@^1.1.0, loose-envify@^1.4.0:
1368 | version "1.4.0"
1369 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
1370 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1371 | dependencies:
1372 | js-tokens "^3.0.0 || ^4.0.0"
1373 |
1374 | lru-cache@^6.0.0:
1375 | version "6.0.0"
1376 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
1377 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1378 | dependencies:
1379 | yallist "^4.0.0"
1380 |
1381 | merge-stream@^2.0.0:
1382 | version "2.0.0"
1383 | resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
1384 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1385 |
1386 | merge2@^1.3.0, merge2@^1.4.1:
1387 | version "1.4.1"
1388 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
1389 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1390 |
1391 | micromatch@^4.0.2, micromatch@^4.0.4:
1392 | version "4.0.5"
1393 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
1394 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1395 | dependencies:
1396 | braces "^3.0.2"
1397 | picomatch "^2.3.1"
1398 |
1399 | mimic-fn@^2.1.0:
1400 | version "2.1.0"
1401 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
1402 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1403 |
1404 | minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2:
1405 | version "3.1.2"
1406 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
1407 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1408 | dependencies:
1409 | brace-expansion "^1.1.7"
1410 |
1411 | ms@2.1.2:
1412 | version "2.1.2"
1413 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1414 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1415 |
1416 | natural-compare-lite@^1.4.0:
1417 | version "1.4.0"
1418 | resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz"
1419 | integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
1420 |
1421 | natural-compare@^1.4.0:
1422 | version "1.4.0"
1423 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
1424 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1425 |
1426 | normalize-path@^3.0.0:
1427 | version "3.0.0"
1428 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1429 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1430 |
1431 | npm-run-path@^4.0.0:
1432 | version "4.0.1"
1433 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
1434 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1435 | dependencies:
1436 | path-key "^3.0.0"
1437 |
1438 | object-assign@^4.1.1:
1439 | version "4.1.1"
1440 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
1441 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1442 |
1443 | object-inspect@^1.12.2, object-inspect@^1.9.0:
1444 | version "1.12.3"
1445 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
1446 | integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
1447 |
1448 | object-keys@^1.1.1:
1449 | version "1.1.1"
1450 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
1451 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1452 |
1453 | object.assign@^4.1.2, object.assign@^4.1.4:
1454 | version "4.1.4"
1455 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz"
1456 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
1457 | dependencies:
1458 | call-bind "^1.0.2"
1459 | define-properties "^1.1.4"
1460 | has-symbols "^1.0.3"
1461 | object-keys "^1.1.1"
1462 |
1463 | object.entries@^1.1.6:
1464 | version "1.1.6"
1465 | resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz"
1466 | integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==
1467 | dependencies:
1468 | call-bind "^1.0.2"
1469 | define-properties "^1.1.4"
1470 | es-abstract "^1.20.4"
1471 |
1472 | object.fromentries@^2.0.6:
1473 | version "2.0.6"
1474 | resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz"
1475 | integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==
1476 | dependencies:
1477 | call-bind "^1.0.2"
1478 | define-properties "^1.1.4"
1479 | es-abstract "^1.20.4"
1480 |
1481 | object.hasown@^1.1.2:
1482 | version "1.1.2"
1483 | resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz"
1484 | integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==
1485 | dependencies:
1486 | define-properties "^1.1.4"
1487 | es-abstract "^1.20.4"
1488 |
1489 | object.values@^1.1.6:
1490 | version "1.1.6"
1491 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz"
1492 | integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
1493 | dependencies:
1494 | call-bind "^1.0.2"
1495 | define-properties "^1.1.4"
1496 | es-abstract "^1.20.4"
1497 |
1498 | once@^1.3.0, once@^1.3.1, once@^1.4.0:
1499 | version "1.4.0"
1500 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1501 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1502 | dependencies:
1503 | wrappy "1"
1504 |
1505 | onetime@^5.1.0:
1506 | version "5.1.2"
1507 | resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
1508 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1509 | dependencies:
1510 | mimic-fn "^2.1.0"
1511 |
1512 | optionator@^0.9.1:
1513 | version "0.9.1"
1514 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
1515 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
1516 | dependencies:
1517 | deep-is "^0.1.3"
1518 | fast-levenshtein "^2.0.6"
1519 | levn "^0.4.1"
1520 | prelude-ls "^1.2.1"
1521 | type-check "^0.4.0"
1522 | word-wrap "^1.2.3"
1523 |
1524 | p-limit@^3.0.2:
1525 | version "3.1.0"
1526 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1527 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1528 | dependencies:
1529 | yocto-queue "^0.1.0"
1530 |
1531 | p-locate@^5.0.0:
1532 | version "5.0.0"
1533 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1534 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1535 | dependencies:
1536 | p-limit "^3.0.2"
1537 |
1538 | p-map@^4.0.0:
1539 | version "4.0.0"
1540 | resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz"
1541 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
1542 | dependencies:
1543 | aggregate-error "^3.0.0"
1544 |
1545 | parent-module@^1.0.0:
1546 | version "1.0.1"
1547 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
1548 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1549 | dependencies:
1550 | callsites "^3.0.0"
1551 |
1552 | parse-json@^5.0.0:
1553 | version "5.2.0"
1554 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
1555 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
1556 | dependencies:
1557 | "@babel/code-frame" "^7.0.0"
1558 | error-ex "^1.3.1"
1559 | json-parse-even-better-errors "^2.3.0"
1560 | lines-and-columns "^1.1.6"
1561 |
1562 | path-exists@^4.0.0:
1563 | version "4.0.0"
1564 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1565 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1566 |
1567 | path-is-absolute@^1.0.0:
1568 | version "1.0.1"
1569 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1570 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1571 |
1572 | path-key@^3.0.0, path-key@^3.1.0:
1573 | version "3.1.1"
1574 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
1575 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1576 |
1577 | path-parse@^1.0.7:
1578 | version "1.0.7"
1579 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1580 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1581 |
1582 | path-type@^4.0.0:
1583 | version "4.0.0"
1584 | resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
1585 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1586 |
1587 | picomatch@^2.3.1:
1588 | version "2.3.1"
1589 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1590 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1591 |
1592 | please-upgrade-node@^3.2.0:
1593 | version "3.2.0"
1594 | resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz"
1595 | integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
1596 | dependencies:
1597 | semver-compare "^1.0.0"
1598 |
1599 | prelude-ls@^1.2.1:
1600 | version "1.2.1"
1601 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
1602 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1603 |
1604 | prettier-linter-helpers@^1.0.0:
1605 | version "1.0.0"
1606 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
1607 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
1608 | dependencies:
1609 | fast-diff "^1.1.2"
1610 |
1611 | prettier@^2.2.1:
1612 | version "2.2.1"
1613 | resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz"
1614 | integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
1615 |
1616 | prop-types@^15.8.1:
1617 | version "15.8.1"
1618 | resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
1619 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
1620 | dependencies:
1621 | loose-envify "^1.4.0"
1622 | object-assign "^4.1.1"
1623 | react-is "^16.13.1"
1624 |
1625 | pump@^3.0.0:
1626 | version "3.0.0"
1627 | resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
1628 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
1629 | dependencies:
1630 | end-of-stream "^1.1.0"
1631 | once "^1.3.1"
1632 |
1633 | punycode@^2.1.0:
1634 | version "2.1.1"
1635 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1636 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1637 |
1638 | queue-microtask@^1.2.2:
1639 | version "1.2.3"
1640 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1641 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1642 |
1643 | react-dom@^17.0.2:
1644 | version "17.0.2"
1645 | resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
1646 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
1647 | dependencies:
1648 | loose-envify "^1.1.0"
1649 | object-assign "^4.1.1"
1650 | scheduler "^0.20.2"
1651 |
1652 | react-is@^16.13.1:
1653 | version "16.13.1"
1654 | resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
1655 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1656 |
1657 | react@^17.0.2:
1658 | version "17.0.2"
1659 | resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
1660 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
1661 | dependencies:
1662 | loose-envify "^1.1.0"
1663 | object-assign "^4.1.1"
1664 |
1665 | regexp.prototype.flags@^1.4.3:
1666 | version "1.4.3"
1667 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"
1668 | integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
1669 | dependencies:
1670 | call-bind "^1.0.2"
1671 | define-properties "^1.1.3"
1672 | functions-have-names "^1.2.2"
1673 |
1674 | regexpp@^3.2.0:
1675 | version "3.2.0"
1676 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
1677 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
1678 |
1679 | resolve-from@^4.0.0:
1680 | version "4.0.0"
1681 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
1682 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1683 |
1684 | resolve@^2.0.0-next.4:
1685 | version "2.0.0-next.4"
1686 | resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz"
1687 | integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==
1688 | dependencies:
1689 | is-core-module "^2.9.0"
1690 | path-parse "^1.0.7"
1691 | supports-preserve-symlinks-flag "^1.0.0"
1692 |
1693 | restore-cursor@^3.1.0:
1694 | version "3.1.0"
1695 | resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"
1696 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
1697 | dependencies:
1698 | onetime "^5.1.0"
1699 | signal-exit "^3.0.2"
1700 |
1701 | reusify@^1.0.4:
1702 | version "1.0.4"
1703 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1704 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1705 |
1706 | rimraf@^3.0.2:
1707 | version "3.0.2"
1708 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
1709 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1710 | dependencies:
1711 | glob "^7.1.3"
1712 |
1713 | run-parallel@^1.1.9:
1714 | version "1.2.0"
1715 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1716 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1717 | dependencies:
1718 | queue-microtask "^1.2.2"
1719 |
1720 | rxjs@^6.6.7:
1721 | version "6.6.7"
1722 | resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz"
1723 | integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
1724 | dependencies:
1725 | tslib "^1.9.0"
1726 |
1727 | safe-regex-test@^1.0.0:
1728 | version "1.0.0"
1729 | resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz"
1730 | integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
1731 | dependencies:
1732 | call-bind "^1.0.2"
1733 | get-intrinsic "^1.1.3"
1734 | is-regex "^1.1.4"
1735 |
1736 | scheduler@^0.20.2:
1737 | version "0.20.2"
1738 | resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz"
1739 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
1740 | dependencies:
1741 | loose-envify "^1.1.0"
1742 | object-assign "^4.1.1"
1743 |
1744 | semver-compare@^1.0.0:
1745 | version "1.0.0"
1746 | resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz"
1747 | integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
1748 |
1749 | semver@^6.3.0:
1750 | version "6.3.0"
1751 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
1752 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1753 |
1754 | semver@^7.3.7:
1755 | version "7.3.8"
1756 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"
1757 | integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
1758 | dependencies:
1759 | lru-cache "^6.0.0"
1760 |
1761 | shebang-command@^2.0.0:
1762 | version "2.0.0"
1763 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1764 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1765 | dependencies:
1766 | shebang-regex "^3.0.0"
1767 |
1768 | shebang-regex@^3.0.0:
1769 | version "3.0.0"
1770 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1771 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1772 |
1773 | side-channel@^1.0.4:
1774 | version "1.0.4"
1775 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
1776 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
1777 | dependencies:
1778 | call-bind "^1.0.0"
1779 | get-intrinsic "^1.0.2"
1780 | object-inspect "^1.9.0"
1781 |
1782 | signal-exit@^3.0.2:
1783 | version "3.0.3"
1784 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"
1785 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
1786 |
1787 | slash@^3.0.0:
1788 | version "3.0.0"
1789 | resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
1790 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1791 |
1792 | slice-ansi@^3.0.0:
1793 | version "3.0.0"
1794 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz"
1795 | integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
1796 | dependencies:
1797 | ansi-styles "^4.0.0"
1798 | astral-regex "^2.0.0"
1799 | is-fullwidth-code-point "^3.0.0"
1800 |
1801 | slice-ansi@^4.0.0:
1802 | version "4.0.0"
1803 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz"
1804 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1805 | dependencies:
1806 | ansi-styles "^4.0.0"
1807 | astral-regex "^2.0.0"
1808 | is-fullwidth-code-point "^3.0.0"
1809 |
1810 | string-argv@0.3.1:
1811 | version "0.3.1"
1812 | resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz"
1813 | integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
1814 |
1815 | string-width@^4.1.0, string-width@^4.2.0:
1816 | version "4.2.2"
1817 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz"
1818 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
1819 | dependencies:
1820 | emoji-regex "^8.0.0"
1821 | is-fullwidth-code-point "^3.0.0"
1822 | strip-ansi "^6.0.0"
1823 |
1824 | string.prototype.matchall@^4.0.8:
1825 | version "4.0.8"
1826 | resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz"
1827 | integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==
1828 | dependencies:
1829 | call-bind "^1.0.2"
1830 | define-properties "^1.1.4"
1831 | es-abstract "^1.20.4"
1832 | get-intrinsic "^1.1.3"
1833 | has-symbols "^1.0.3"
1834 | internal-slot "^1.0.3"
1835 | regexp.prototype.flags "^1.4.3"
1836 | side-channel "^1.0.4"
1837 |
1838 | string.prototype.trimend@^1.0.6:
1839 | version "1.0.6"
1840 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz"
1841 | integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
1842 | dependencies:
1843 | call-bind "^1.0.2"
1844 | define-properties "^1.1.4"
1845 | es-abstract "^1.20.4"
1846 |
1847 | string.prototype.trimstart@^1.0.6:
1848 | version "1.0.6"
1849 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz"
1850 | integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
1851 | dependencies:
1852 | call-bind "^1.0.2"
1853 | define-properties "^1.1.4"
1854 | es-abstract "^1.20.4"
1855 |
1856 | stringify-object@^3.3.0:
1857 | version "3.3.0"
1858 | resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz"
1859 | integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
1860 | dependencies:
1861 | get-own-enumerable-property-symbols "^3.0.0"
1862 | is-obj "^1.0.1"
1863 | is-regexp "^1.0.0"
1864 |
1865 | strip-ansi@^6.0.0:
1866 | version "6.0.0"
1867 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz"
1868 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1869 | dependencies:
1870 | ansi-regex "^5.0.0"
1871 |
1872 | strip-ansi@^6.0.1:
1873 | version "6.0.1"
1874 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1875 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1876 | dependencies:
1877 | ansi-regex "^5.0.1"
1878 |
1879 | strip-final-newline@^2.0.0:
1880 | version "2.0.0"
1881 | resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
1882 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1883 |
1884 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
1885 | version "3.1.1"
1886 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
1887 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1888 |
1889 | supports-color@^5.3.0:
1890 | version "5.5.0"
1891 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
1892 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1893 | dependencies:
1894 | has-flag "^3.0.0"
1895 |
1896 | supports-color@^7.1.0:
1897 | version "7.2.0"
1898 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1899 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1900 | dependencies:
1901 | has-flag "^4.0.0"
1902 |
1903 | supports-preserve-symlinks-flag@^1.0.0:
1904 | version "1.0.0"
1905 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1906 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1907 |
1908 | text-table@^0.2.0:
1909 | version "0.2.0"
1910 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
1911 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1912 |
1913 | through@^2.3.8:
1914 | version "2.3.8"
1915 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
1916 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
1917 |
1918 | to-regex-range@^5.0.1:
1919 | version "5.0.1"
1920 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1921 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1922 | dependencies:
1923 | is-number "^7.0.0"
1924 |
1925 | tslib@^1.8.1, tslib@^1.9.0:
1926 | version "1.14.1"
1927 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
1928 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
1929 |
1930 | tsutils@^3.21.0:
1931 | version "3.21.0"
1932 | resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
1933 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
1934 | dependencies:
1935 | tslib "^1.8.1"
1936 |
1937 | type-check@^0.4.0, type-check@~0.4.0:
1938 | version "0.4.0"
1939 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
1940 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1941 | dependencies:
1942 | prelude-ls "^1.2.1"
1943 |
1944 | type-fest@^0.20.2:
1945 | version "0.20.2"
1946 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
1947 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1948 |
1949 | type-fest@^0.21.3:
1950 | version "0.21.3"
1951 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
1952 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
1953 |
1954 | typed-array-length@^1.0.4:
1955 | version "1.0.4"
1956 | resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz"
1957 | integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
1958 | dependencies:
1959 | call-bind "^1.0.2"
1960 | for-each "^0.3.3"
1961 | is-typed-array "^1.1.9"
1962 |
1963 | typescript@^4.1.2:
1964 | version "4.2.3"
1965 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz"
1966 | integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
1967 |
1968 | unbox-primitive@^1.0.2:
1969 | version "1.0.2"
1970 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
1971 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
1972 | dependencies:
1973 | call-bind "^1.0.2"
1974 | has-bigints "^1.0.2"
1975 | has-symbols "^1.0.3"
1976 | which-boxed-primitive "^1.0.2"
1977 |
1978 | uri-js@^4.2.2:
1979 | version "4.4.1"
1980 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
1981 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1982 | dependencies:
1983 | punycode "^2.1.0"
1984 |
1985 | which-boxed-primitive@^1.0.2:
1986 | version "1.0.2"
1987 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
1988 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
1989 | dependencies:
1990 | is-bigint "^1.0.1"
1991 | is-boolean-object "^1.1.0"
1992 | is-number-object "^1.0.4"
1993 | is-string "^1.0.5"
1994 | is-symbol "^1.0.3"
1995 |
1996 | which-typed-array@^1.1.9:
1997 | version "1.1.9"
1998 | resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz"
1999 | integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
2000 | dependencies:
2001 | available-typed-arrays "^1.0.5"
2002 | call-bind "^1.0.2"
2003 | for-each "^0.3.3"
2004 | gopd "^1.0.1"
2005 | has-tostringtag "^1.0.0"
2006 | is-typed-array "^1.1.10"
2007 |
2008 | which@^2.0.1:
2009 | version "2.0.2"
2010 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
2011 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2012 | dependencies:
2013 | isexe "^2.0.0"
2014 |
2015 | word-wrap@^1.2.3:
2016 | version "1.2.3"
2017 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
2018 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
2019 |
2020 | wrap-ansi@^6.2.0:
2021 | version "6.2.0"
2022 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
2023 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
2024 | dependencies:
2025 | ansi-styles "^4.0.0"
2026 | string-width "^4.1.0"
2027 | strip-ansi "^6.0.0"
2028 |
2029 | wrap-ansi@^7.0.0:
2030 | version "7.0.0"
2031 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
2032 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
2033 | dependencies:
2034 | ansi-styles "^4.0.0"
2035 | string-width "^4.1.0"
2036 | strip-ansi "^6.0.0"
2037 |
2038 | wrappy@1:
2039 | version "1.0.2"
2040 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
2041 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
2042 |
2043 | yallist@^4.0.0:
2044 | version "4.0.0"
2045 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
2046 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2047 |
2048 | yaml@^1.10.0:
2049 | version "1.10.2"
2050 | resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
2051 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
2052 |
2053 | yocto-queue@^0.1.0:
2054 | version "0.1.0"
2055 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
2056 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
2057 |
--------------------------------------------------------------------------------